Skip to content

Commit

Permalink
simplify IP address handling
Browse files Browse the repository at this point in the history
  • Loading branch information
lindemann09 committed Jul 27, 2020
1 parent dd7219b commit eb5fd25
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 32 deletions.
2 changes: 1 addition & 1 deletion forceDAQ/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "0.8.6"
__version__ = "0.8.7"
__author__ = "Oliver Lindemann"

"""
Expand Down
8 changes: 4 additions & 4 deletions forceDAQ/_lib/polling_time_profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ def __init__(self, timing_range=10):
self._timing_range = 10
self._zero_cnt = 0

self._zero_time_polling_frequency = {}
#self._zero_time_polling_frequency = {}
self.profile_frequency = np.array([0] * (timing_range + 1))

def stop(self):
Expand Down Expand Up @@ -40,6 +40,6 @@ def profile_percent(self):
n = np.sum(self.profile_frequency)
return self.profile_frequency / n

@property
def zero_time_polling_frequency(self):
return np.array(list(self._zero_time_polling_frequency.items()))
#@property
#def zero_time_polling_frequency(self):
# return np.array(list(self._zero_time_polling_frequency.items()))
30 changes: 12 additions & 18 deletions forceDAQ/_lib/udp_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@
"""

__author__ = "Oliver Lindemann <oliver@expyriment.org>"
__version__ = "0.4"
__version__ = "0.5"

import atexit
import os
import socket
from multiprocessing import Process, Event, Queue
from multiprocessing.sharedctypes import Array
from time import sleep, time
import logging

Expand Down Expand Up @@ -41,18 +40,23 @@ class UDPConnection(object):
COMMAND_REPLY = COMMAND_CHAR + b"ok"
PING = COMMAND_CHAR + b"ping"

MY_IP = get_lan_ip()

def __init__(self, udp_port=5005):
self.udp_port = udp_port

self._socket = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
self.my_ip = get_lan_ip()
self._socket.bind((self.my_ip, self.udp_port))
self._socket.bind((UDPConnection.MY_IP, self.udp_port))
self._socket.setblocking(False)
self.peer_ip = None

@property
def my_ip(self):
return UDPConnection.MY_IP

def __str__(self):
return "ip: {0} (port: {1}); peer: {2}".format(self.my_ip,
return "ip: {0} (port: {1}); peer: {2}".format(UDPConnection.MY_IP,
self.udp_port, self.peer_ip)

def receive(self, timeout):
Expand Down Expand Up @@ -237,7 +241,6 @@ def __init__(self, sync_timer=None, event_trigger = (),
self.event_is_connected = Event()
self._event_stop_request = Event()
self._event_is_polling = Event()
self._ip_address = Array("c", b"xxx.xxx.xxx.xxx")
self._event_ignore_tag = event_ignore_tag

if isinstance(event_trigger, type(Event) ):
Expand All @@ -250,17 +253,8 @@ def __init__(self, sync_timer=None, event_trigger = (),
atexit.register(self.quit)

@property
def ip_address(self):
rtn = self._ip_address.value
if PYTHON3:
rtn = rtn.decode()
return rtn

@ip_address.setter
def ip_address(self, ip):
if PYTHON3:
ip = ip.encode()
self._ip_address.value = ip
def my_ip(self):
return UDPConnection.MY_IP

def quit(self):
self._event_stop_request.set()
Expand All @@ -278,7 +272,7 @@ def run(self):
logging.info("start {}".format(self))
print("UDP process started")
print(udp_connection)
self.ip_address = udp_connection.my_ip

self.start_polling()
timer = Timer(self._sync_timer)
ptp = PollingTimeProfile()
Expand Down
2 changes: 1 addition & 1 deletion forceDAQ/gui/_run.py
Original file line number Diff line number Diff line change
Expand Up @@ -734,7 +734,7 @@ def run_with_options(remote_control,

if remote_control:
logo_text_line("Waiting to connect (my IP: {0})".format(
recorder.udp.ip_address)).present()
recorder.udp.my_ip)).present()
while not recorder.udp.event_is_connected.is_set():
key = exp.keyboard.check(check_for_control_keys=False)
if key == misc.constants.K_q or key == misc.constants.K_ESCAPE:
Expand Down
23 changes: 15 additions & 8 deletions forceDAQ/gui/tk_launcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
from os import path

import PySimpleGUI as _sg
from .. import __version__
from .. import __version__, USE_DUMMY_SENSOR
from .._lib.misc import find_calibration_file
from ._settings import settings
from ._run import run as _gui_run

from .._lib.udp_connection import UDPConnection
def _group(title, objects):
return [_sg.Frame(title, [objects])]

Expand Down Expand Up @@ -54,9 +54,9 @@ def _run_window():
s = settings.recording
n_sensor = len(s.device_ids)

info = []
info.append([_sg.Text("Remote Control: {}".format(s.remote_control))])
info.append([_sg.Text("Number of sensors: {}".format(n_sensor))])
info_settings = []
info_settings.append([_sg.Text("Remote Control: {}".format(s.remote_control))])
info_settings.append([_sg.Text("Number of sensors: {}".format(n_sensor))])

for d_id, name, cal, error in _check_sensor_calibration_settings(
s.device_ids,
Expand All @@ -67,20 +67,26 @@ def _run_window():
else:
col = _sg.DEFAULT_ELEMENT_TEXT_COLOR

info.append([_sg.Text("- {}{}: {}, {}".format(s.device_name_prefix,
info_settings.append([_sg.Text("- {}{}: {}, {}".format(s.device_name_prefix,
d_id, name, cal),
text_color=col)])

info = [[_sg.Text("forceDAQ version: {}".format(__version__))]]
info.append([_sg.Text("IP address: {}".format(UDPConnection.MY_IP))])
if USE_DUMMY_SENSOR:
info.append([_sg.Text("!!! USING DUMMY SENSORS !!!",
text_color="red")])

layout = [
[_sg.Button("Start Recording", size=(29, 4),
button_color=('black', 'lightgreen'),
key="Start")],
[_sg.Frame('Settings', info)],
[_sg.Frame('Settings', info_settings)],
[_sg.Frame('Info', info)],
[_sg.Button("Edit Settings", key="Settings", size=(12, 2)),
_sg.Cancel(size=(12, 2))]]

window = _sg.Window('ForceGUI {}'.format(__version__), layout)
window = _sg.Window('ForceGUI'.format(), layout)
event, values = window.read()
window.close()
return event, values
Expand All @@ -99,6 +105,7 @@ def _settings_window():
key="zip_data")]]
)])


layout.append([_sg.Frame('Sensor',
[_input_text_list("Device Name Prefix:",
s.device_name_prefix,
Expand Down

0 comments on commit eb5fd25

Please sign in to comment.