def start_htm(server_port, settings_id): setjson = RunSettings.select().where(RunSettings.id == settings_id).get() f = SettingsForm.from_json(jsonpickle.json.loads(setjson.json_string), skip_unknown_keys=True) inset = f.getInputSettings() spset = f.getSpatialSettings() tpset = f.getTemporalSettings() htm = HTMCore(inset, spset, tpset) htm.move() # десиреализовать объект из строки - jsonpickle.decode(s) server = SocketServer(server_port) while True: data = server.receive_message() message = SystemMessages.get_keys_in_text(data) data = SystemMessages.clear_keys_in_text(data) if SystemMessages.GET_DATA in message: # сериализуем нужные нам части в объекте HTMSerialization htm_serialization = HTMSerialization(htm) server.send_message(jsonpickle.encode(htm_serialization)) continue if SystemMessages.MOVE in message: # сериализуем нужные нам части в объекте HTMSerialization htm.move() htm_serialization = HTMSerialization(htm) server.send_message(jsonpickle.encode(htm_serialization)) continue if SystemMessages.MOVE100 in message: # сериализуем нужные нам части в объекте HTMSerialization for i in range(100): htm.move() htm_serialization = HTMSerialization(htm) server.send_message(jsonpickle.encode(htm_serialization)) continue if SystemMessages.MOVE1000 in message: # сериализуем нужные нам части в объекте HTMSerialization for i in range(1000): htm.move() htm_serialization = HTMSerialization(htm) server.send_message(jsonpickle.encode(htm_serialization)) continue if SystemMessages.RESTART_WITH_SETTINGS: port, settings_id = data.replace('(', '', 1).replace(')', '', 1).split(',') setjson = RunSettings.select().where(RunSettings.id == settings_id).get() f = SettingsForm.from_json(jsonpickle.json.loads(setjson.json_string), skip_unknown_keys=True) inset = f.getInputSettings() spset = f.getSpatialSettings() tpset = f.getTemporalSettings() htm = HTMCore(inset, spset, tpset) htm.move() server.send_message("ok") continue if SystemMessages.STOP in message: server.send_message("ok") server.close() break print("Сообщение не обработано, нет ключей или .п.")
msg = server.receiveData(80) # Maximum number of bytes we expect if len(msg) < 1: break print('Client said: ' + msg.decode('utf-8')) # Python 3 requires decoding sleep(.01) if __name__ == '__main__': host, port = hostport() server = SocketServer(host, port) server.acceptConnection() thread = Thread(target=talk, args=(server, )) thread.daemon = True thread.start() while True: stdout.write('> ') stdout.flush() message = input() server.sendData(message.encode('utf-8'))
server.close() break print("Сообщение не обработано, нет ключей или .п.") if __name__ == "__main__": # In order to start using WTForms-JSON, you need to first initialize the extension. # This monkey patches some classes and methods within WTForms and adds JSON handling support # wtf ???? wtforms_json.init() active_ports = set() running_port = 10100 runner_server = SocketServer(running_port) print(" * Running on port %d (Press CTRL+C to quit)" % running_port) while True: data = runner_server.receive_message() message = SystemMessages.get_keys_in_text(data) data = SystemMessages.clear_keys_in_text(data) if SystemMessages.TURN_ON_HTM_WITH_SETTINGS in message: (port, settings_id) = data.replace('(', '', 1).replace(')', '', 1).split(',') (port, settings_id) = (int(port), int(settings_id)) if port in active_ports: client = SocketClient(port) client.request((port, settings_id), SystemMessages.RESTART_WITH_SETTINGS) client.close() else: active_ports.add(port)