def run_read_event(self): print('Wait for connection ...') client_socket, addr = self.socket.accept() print("Connection from :", addr) dict = {'addr': addr, 'server': self.data['server']} self.data['server'].connects.add_connect((client_socket, addr)) EventLoop.add_revent( RelayServerCommandExecuteEvent(client_socket, dict))
def run_read_event(self): data = self.socket.recv(self.data['server'].conf.buffsize).decode() if not data: return try: output = self.data['server'].execute_command(data) self.socket.send('%s\n' % output.encode()) except DisConnectException as e: self.socket.send('%s\n' % str(e).encode()) EventLoop.del_revent(self) self.socket.close() except OpenBashException as e: #EventLoop.del_revent(self) output = self.data['server'].open_bash(e.client_id, self.socket) self.socket.send(output.encode()) except Exception as e: self.socket.send(str(e))
#! /usr/bin/python from sensors.webcam import Webcam, CupDetector, FaceDetector, TableDetector from controllers.table_state import TableState from controllers.nxt_controller import NxtController from motors.pyrobot import Create from event import EventLoop import sys if __name__ == "__main__": e = EventLoop() irobo = Create() irobo.Control() td = TableDetector(e) ts = TableState(e, irobo) n_c = NxtController(e) e.register('webcam', Webcam(e, cam=1)) e.register('td', td, 'frame') e.register('ts', ts, 'table_pos') # Obstacle avoidance e.register('ts', ts, 'obstacle') # Response (ts) e.register('n_c', n_c, 'obstacle_distance') # Request e.run()
#! /usr/bin/python from controllers.cup_state import CupState from controllers.face_state import FaceState from controllers.nxt_controller import NxtController from sensors.webcam import Webcam, CupDetector, FaceDetector from event import EventLoop from motors.pyrobot import Create import sys if __name__ == "__main__": e = EventLoop() irobot_controller = Create() irobot_controller.Control() c_s = CupState(e, cam_angle=-25) f_s = FaceState(e, irobot_controller) cd = CupDetector(e, cam_angle=-25) fd = FaceDetector(e) e.register('webcam', Webcam(e, cam=1)) e.register('fd', fd, 'frame') # We can see! # Events for face tracking and killing actions e.register('f_s', f_s, 'cups_done') e.register('f_s', f_s, 'face_pos') e.register('f_s', f_s, 'face_gone') e.register('f_s', f_s, 'no_face') e.add_event('cups_done', None) e.run()
def run_eventloop(self): dict = {'server': self} EventLoop.add_revent(RelayServerAcceptEvent(self.socket, dict)) EventLoop.event_loop()
def run_exception_event(self): self.socket.send('found error,disconnect\n'.encode()) EventLoop.del_revent(self) self.socket.close()
#! /usr/bin/python from controllers.cup_state import CupState from controllers.face_state import FaceState from controllers.table_state import TableState from sensors.webcam import Webcam, CupDetector, FaceDetector, TableDetector from motors import lynx_motion from motors.nxt_controller import NxtController from sensors.ultrasonic import Ultrasonic from event import EventLoop from motors.pyrobot import Create if __name__ == "__main__": e = EventLoop() lynx = lynx_motion.Arm() nxt = NxtController() irobot_controller = Create("/dev/ttyUSB1") irobot_controller.Control() ud = Ultrasonic(e) c_s = CupState(e, lynx, nxt, cam_angle=-25) f_s = FaceState(e, lynx, irobot_controller) t_s = TableState(e, lynx, nxt, irobot_controller) cd = CupDetector(e, cam_angle=-25) fd = FaceDetector(e) td = TableDetector(e) e.register('webcam', Webcam(e, cam=1))