diff --git a/modem/command_p2p_connection.py b/modem/command_p2p_connection.py index 2ec44960..42f821bd 100644 --- a/modem/command_p2p_connection.py +++ b/modem/command_p2p_connection.py @@ -23,8 +23,8 @@ class P2PConnectionCommand(TxCommand): def run(self, event_queue: Queue, modem): try: self.emit_event(event_queue) - self.logger.info(self.log_message()) session = P2PConnection(self.config, modem, self.origin, self.destination, self.state_manager, self.event_manager, self.socket_command_handler) + print(session) if session.session_id: self.state_manager.register_p2p_connection_session(session) session.connect() diff --git a/modem/demodulator.py b/modem/demodulator.py index df5b2de0..6a428079 100644 --- a/modem/demodulator.py +++ b/modem/demodulator.py @@ -337,7 +337,7 @@ class Demodulator(): for mode in self.MODE_DICT: codec2.api.freedv_set_sync(self.MODE_DICT[mode]["instance"], 0) - def set_decode_mode(self, modes_to_decode): + def set_decode_mode(self, modes_to_decode=None): # Reset all modes to not decode for m in self.MODE_DICT: self.MODE_DICT[m]["decode"] = False @@ -349,6 +349,7 @@ class Demodulator(): self.MODE_DICT[codec2.FREEDV_MODE.datac4.value]["decode"] = True # Enable specified modes - for mode, decode in modes_to_decode.items(): - if mode in self.MODE_DICT: - self.MODE_DICT[mode]["decode"] = decode + if modes_to_decode: + for mode, decode in modes_to_decode.items(): + if mode in self.MODE_DICT: + self.MODE_DICT[mode]["decode"] = decode diff --git a/modem/p2p_connection.py b/modem/p2p_connection.py index 17d8fe65..825271a5 100644 --- a/modem/p2p_connection.py +++ b/modem/p2p_connection.py @@ -59,6 +59,7 @@ class P2PConnection: def __init__(self, config: dict, modem, origin: str, destination: str, state_manager, event_manager, socket_command_handler=None): self.logger = structlog.get_logger(type(self).__name__) self.config = config + self.frame_factory = data_frame_factory.DataFrameFactory(self.config) self.socket_command_handler = socket_command_handler @@ -70,7 +71,7 @@ class P2PConnection: self.state_manager = state_manager self.event_manager = event_manager self.modem = modem - self.modem.demodulator.set_decode_mode([]) + self.modem.demodulator.set_decode_mode() self.p2p_data_rx_queue = Queue() self.p2p_data_tx_queue = Queue() @@ -83,8 +84,8 @@ class P2PConnection: self.event_frame_received = threading.Event() - self.RETRIES_CONNECT = 1 - self.TIMEOUT_CONNECT = 10 + self.RETRIES_CONNECT = 5 + self.TIMEOUT_CONNECT = 5 self.TIMEOUT_DATA = 5 self.RETRIES_DATA = 5 self.ENTIRE_CONNECTION_TIMEOUT = 100 @@ -92,7 +93,6 @@ class P2PConnection: self.is_ISS = False # Indicator, if we are ISS or IRS self.last_data_timestamp= time.time() - self.start_data_processing_worker() diff --git a/modem/service_manager.py b/modem/service_manager.py index a2f9a0c1..8466b1c1 100644 --- a/modem/service_manager.py +++ b/modem/service_manager.py @@ -34,13 +34,13 @@ class SM: self.start_radio_manager() self.start_modem() - if self.config['MODEM']['enable_socket_interface']: + if self.config['SOCKET_INTERFACE']['enable']: self.socket_interface_manager = SocketInterfaceHandler(self.modem, self.app.config_manager, self.state_manager, self.event_manager).start_servers() elif cmd in ['stop'] and self.modem: self.stop_modem() self.stop_radio_manager() - if self.config['MODEM']['enable_socket_interface']: + if self.config['SOCKET_INTERFACE']['enable']: self.socket_interface_manager.stop_servers() # we need to wait a bit for avoiding a portaudio crash threading.Event().wait(0.5) @@ -48,7 +48,7 @@ class SM: elif cmd in ['restart']: self.stop_modem() self.stop_radio_manager() - if self.config['MODEM']['enable_socket_interface']: + if self.config['SOCKET_INTERFACE']['enable']: self.socket_interface_manager.stop_servers() # we need to wait a bit for avoiding a portaudio crash diff --git a/modem/socket_interface.py b/modem/socket_interface.py index 0b41b4fc..0bb5620d 100644 --- a/modem/socket_interface.py +++ b/modem/socket_interface.py @@ -154,6 +154,13 @@ class SocketInterfaceHandler: logger(msg) def start_servers(self): + + if self.command_port == 0: + self.command_port = 8300 + + if self.data_port == 0: + self.data_port = 8301 + # Method to start both command and data server threads self.command_server_thread = threading.Thread(target=self.run_server, args=(self.command_port, CommandSocket)) self.data_server_thread = threading.Thread(target=self.run_server, args=(self.data_port, DataSocket)) diff --git a/modem/socket_interface_commands.py b/modem/socket_interface_commands.py index fe4c18f4..2f7f13d4 100644 --- a/modem/socket_interface_commands.py +++ b/modem/socket_interface_commands.py @@ -17,8 +17,6 @@ class SocketCommandHandler: self.cmd_request.sendall(full_message.encode()) def handle_connect(self, data): - # Your existing connect logic - self.send_response("OK") params = { 'origin': data[0], @@ -26,10 +24,13 @@ class SocketCommandHandler: } cmd = P2PConnectionCommand(self.config_manager.read(), self.state_manager, self.event_manager, params, self) self.session = cmd.run(self.event_manager.queues, self.modem) - if self.session.session_id: - self.state_manager.register_p2p_connection_session(self.session) - self.session.connect() + #if self.session.session_id: + # self.state_manager.register_p2p_connection_session(self.session) + # self.send_response("OK") + # self.session.connect() + #else: + # self.send_response("ERROR") def handle_disconnect(self, data): # Your existing connect logic