def serialToggle(): global serialServerRunning, server if serialServerRunning: SerialButton.configure(bg='#F00') serialServerRunning = False else: server = WebsocketServer(WebSpinBoxVar.get(), host='127.0.0.1', loglevel=logging.INFO) server.set_fn_new_client(new_client) server.timeout = 0 serialServerRunning = True serialthread = threading.Thread(target=serialServerLoop) serialthread.daemon = True serialthread.start() SerialButton.configure(bg='#0F0')
args = parser.parse_args() logging.basicConfig(level=args.loglevel, format='%(asctime)s %(message)s') commandQueue = multiprocessing.Queue() reporterValuesQueue = multiprocessing.Queue() completedCommandsQueue = multiprocessing.Queue() server = WebsocketServer(WEBSOCKETS_PORT_NUMBER) server.reporterValues = {} server.reporterValuesQueue = reporterValuesQueue server.completedCommandsQueue = completedCommandsQueue server.set_fn_new_client(new_client) server.set_fn_client_left(client_left) server.set_fn_message_received(message_received) if args.mode == MODE_SIMULATOR: httpRobotSimulator = JSRobotSimulator(commandQueue, reporterValuesQueue, completedCommandsQueue) elif args.mode == MODE_LIVE: robot = py_websockets_bot.WebsocketsBot( args.remoteRobotHostname ) httpRobotSimulator = JSRobotController(commandQueue, reporterValuesQueue, completedCommandsQueue, robot) else: raise "Unrecognised mode" server.httpRobotSimulator = httpRobotSimulator httpRobotSimulator.start() server.timeout = 0.1 #allows us to check if any commands have completed logging.info("Server is listening ") while 1: check_completed_commands(server) server.handle_request()