class SensorApp(object): #def __init__(self, ip='192.168.43.48', port=2019): def __init__(self, ip='192.168.1.80', port=2024): self.ip = ip self.port = port self._run = True self.io_controller = IOController() self.start() def start(self): self._sensor_client_thread = threading.Thread( target=self._sensor_client_worker) self._sensor_client_thread.start() def stop(self): self._run = False def _sensor_client_worker(self): ## XXX Mock sensor values #import numpy as np #while self._run: # updates = {'acc_x': int(np.random.random() * 1024), # 'acc_y': int(np.random.random() * 1024), # 'acc_z': int(np.random.random() * 1024), # 'switch': np.random.random() * 360, # 'distance': np.random.random() * 90, # 'potentiometer': np.random.random()} # self.io_controller.set(**updates) # import time # time.sleep(.1) context = zmq.Context() # Socket to talk to server socket = context.socket(zmq.REQ) socket.connect("tcp://{}:{}".format(self.ip, self.port)) while self._run: send = {} if self.io_controller.added_links: add = self.io_controller.added_links self.io_controller.added_links = [] send['add_link'] = add if self.io_controller.removed_links: remove = self.io_controller.removed_links self.io_controller.removed_links = [] send['remove_link'] = remove if self.io_controller.outputs: outputs = self.io_controller.outputs self.io_controller.outputs = {} send['out'] = outputs socket.send(json.dumps(send)) message = socket.recv() self.io_controller.set(**json.loads(message)) socket.close()
class SensorApp(object): def __init__(self, ip='192.168.43.186', port=2024): self.ip = ip self.port = port self._run = True self.mock_server = False self.io_controller = IOController() self.start() def start(self): self._run = True self._sensor_client_thread = threading.Thread( target=self._sensor_client_worker) self._sensor_client_thread.start() def stop(self): self._run = False def _sensor_client_worker(self): if self.mock_server: while self._run: updates = {'acc_x': int(np.random.random() * 1024), 'acc_y': int(np.random.random() * 1024), 'acc_z': int(np.random.random() * 1024)} self.io_controller.set(**updates) self.io_controller.push_to_plot_data() time.sleep(.1) else: context = zmq.Context() socket = context.socket(zmq.REQ) socket.connect("tcp://{}:{}".format(self.ip, self.port)) print 'connected to:', self.ip, self.port while self._run: send = 'r' socket.send(json.dumps(send)) message = socket.recv() print 'received:', message self.io_controller.set(**json.loads(message)) self.io_controller.push_to_plot_data() socket.close()
class SensorApp(object): def __init__(self, ip="192.168.43.186", port=2024): self.ip = ip self.port = port self._run = True self.mock_server = False self.io_controller = IOController() self.start() def start(self): self._run = True self._sensor_client_thread = threading.Thread(target=self._sensor_client_worker) self._sensor_client_thread.start() def stop(self): self._run = False def _sensor_client_worker(self): if self.mock_server: while self._run: updates = { "acc_x": int(np.random.random() * 1024), "acc_y": int(np.random.random() * 1024), "acc_z": int(np.random.random() * 1024), } self.io_controller.set(**updates) self.io_controller.push_to_plot_data() time.sleep(0.1) else: context = zmq.Context() socket = context.socket(zmq.REQ) socket.connect("tcp://{}:{}".format(self.ip, self.port)) print "connected to:", self.ip, self.port while self._run: send = "r" socket.send(json.dumps(send)) message = socket.recv() print "received:", message self.io_controller.set(**json.loads(message)) self.io_controller.push_to_plot_data() socket.close()