def on_post_reiceived(self, command, handler, packet=None): if command is OreCommandType.INIT: self.on_init_command_received(handler, packet) elif not self.m_is_server_init: handler.send_complete_response(400, PacketFactory.get_program_state_json(False, 'Server not ready')) elif command is OreCommandType.START_AI: self.on_start_command_received(handler, packet) elif command is OreCommandType.STOP_AI: self.on_stop_command_received(handler, packet) elif command is OreCommandType.BIOFEEDBACK: self.on_bio_packet_received(handler, packet)
def packet_parser(self, packet): print('packet_parser', packet) if packet["message_type"] == MessageType['CONTROL_SESSION']: self.on_control_session_packet_received(packet) elif packet["message_type"] == MessageType['INIT']: self.on_init_packet_received(packet) elif packet["message_type"] == MessageType['BIOFEEDBACK']: self.on_biofeedback_packet_received(packet) else: print('ERROR: Unknown message_type') self.send_complete_response( 400, PacketFactory.get_program_state_json(False, 'Unknown message_type'))
def on_positive_init_response_received(self): print("on_positive_init_response_received") AwesomeHTTPSender.post_data_to_endpoint( self.m_android_ip, self.m_android_port, '/', PacketFactory.get_control_session_json(True), self.on_positive_control_session_response_received)
def on_biofeedback_packet_received(self, packet): self.server.on_biofeedback_packet_received(packet) self.send_complete_response( 200, PacketFactory.get_program_state_json(True, "Biofeedback received"))
def stop_android(self): log(self, 'Stopping Android...') self.m_middleware_http_sender.post_data_to_endpoint( PacketFactory.get_control_session_packet(False), self.get_android_endpoint())
def init_android(self): log(self, 'Init Android...') self.m_middleware_http_sender.post_data_to_endpoint( PacketFactory.get_init_packet(self.m_ip, self.m_port, self.m_android_rte), self.get_android_endpoint())
def init_ore(self): log(self, 'Init ORE...') self.m_middleware_http_sender.post_data_to_endpoint( PacketFactory.get_init_packet(self.m_ip, self.m_port, self.m_ore_rte), self.get_ore_endpoint())
def on_ia_has_predicted(self, status, accuracy, timestamp): print('on_ia_has_predicted', status, accuracy, timestamp) self.m_socket_server.send_packet_to_client(PacketFactory.get_fear_event_json(status, accuracy, timestamp))
def on_bio_packet_received(self, handler, packet): if not self.m_fear_engine.m_is_running: handler.send_complete_response(400, PacketFactory.get_program_state_json(False, 'Unable to add biofeedback : AI stopped')) else: self.m_fear_engine.add_bf(packet["bf"], packet["timestamp"], self.on_ia_has_predicted) handler.send_complete_response(200, PacketFactory.get_program_state_json(True, 'Biofeedback added'))
def on_stop_command_received(self, handler, packet): if not self.m_fear_engine.stop(): handler.send_complete_response(400, PacketFactory.get_program_state_json(False, 'AI already stopped')) else: self.stop_websocket_server() handler.send_complete_response(200, PacketFactory.get_program_state_json(True, 'Stopping Onion Ring Engine AI'))
def on_start_command_received(self, handler, packet): if not self.m_fear_engine.launch(): handler.send_complete_response(400, PacketFactory.get_program_state_json(False, 'AI already launched')) else: handler.send_complete_response(200, PacketFactory.get_program_state_json(True, 'Launching Onion Ring Engine AI'))