mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
some fixes...
This commit is contained in:
parent
c2ff18b111
commit
eccd0e12a7
|
@ -23,8 +23,8 @@ class P2PConnectionCommand(TxCommand):
|
||||||
def run(self, event_queue: Queue, modem):
|
def run(self, event_queue: Queue, modem):
|
||||||
try:
|
try:
|
||||||
self.emit_event(event_queue)
|
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)
|
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:
|
if session.session_id:
|
||||||
self.state_manager.register_p2p_connection_session(session)
|
self.state_manager.register_p2p_connection_session(session)
|
||||||
session.connect()
|
session.connect()
|
||||||
|
|
|
@ -337,7 +337,7 @@ class Demodulator():
|
||||||
for mode in self.MODE_DICT:
|
for mode in self.MODE_DICT:
|
||||||
codec2.api.freedv_set_sync(self.MODE_DICT[mode]["instance"], 0)
|
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
|
# Reset all modes to not decode
|
||||||
for m in self.MODE_DICT:
|
for m in self.MODE_DICT:
|
||||||
self.MODE_DICT[m]["decode"] = False
|
self.MODE_DICT[m]["decode"] = False
|
||||||
|
@ -349,6 +349,7 @@ class Demodulator():
|
||||||
self.MODE_DICT[codec2.FREEDV_MODE.datac4.value]["decode"] = True
|
self.MODE_DICT[codec2.FREEDV_MODE.datac4.value]["decode"] = True
|
||||||
|
|
||||||
# Enable specified modes
|
# Enable specified modes
|
||||||
for mode, decode in modes_to_decode.items():
|
if modes_to_decode:
|
||||||
if mode in self.MODE_DICT:
|
for mode, decode in modes_to_decode.items():
|
||||||
self.MODE_DICT[mode]["decode"] = decode
|
if mode in self.MODE_DICT:
|
||||||
|
self.MODE_DICT[mode]["decode"] = decode
|
||||||
|
|
|
@ -59,6 +59,7 @@ class P2PConnection:
|
||||||
def __init__(self, config: dict, modem, origin: str, destination: str, state_manager, event_manager, socket_command_handler=None):
|
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.logger = structlog.get_logger(type(self).__name__)
|
||||||
self.config = config
|
self.config = config
|
||||||
|
|
||||||
self.frame_factory = data_frame_factory.DataFrameFactory(self.config)
|
self.frame_factory = data_frame_factory.DataFrameFactory(self.config)
|
||||||
|
|
||||||
self.socket_command_handler = socket_command_handler
|
self.socket_command_handler = socket_command_handler
|
||||||
|
@ -70,7 +71,7 @@ class P2PConnection:
|
||||||
self.state_manager = state_manager
|
self.state_manager = state_manager
|
||||||
self.event_manager = event_manager
|
self.event_manager = event_manager
|
||||||
self.modem = modem
|
self.modem = modem
|
||||||
self.modem.demodulator.set_decode_mode([])
|
self.modem.demodulator.set_decode_mode()
|
||||||
|
|
||||||
self.p2p_data_rx_queue = Queue()
|
self.p2p_data_rx_queue = Queue()
|
||||||
self.p2p_data_tx_queue = Queue()
|
self.p2p_data_tx_queue = Queue()
|
||||||
|
@ -83,8 +84,8 @@ class P2PConnection:
|
||||||
|
|
||||||
self.event_frame_received = threading.Event()
|
self.event_frame_received = threading.Event()
|
||||||
|
|
||||||
self.RETRIES_CONNECT = 1
|
self.RETRIES_CONNECT = 5
|
||||||
self.TIMEOUT_CONNECT = 10
|
self.TIMEOUT_CONNECT = 5
|
||||||
self.TIMEOUT_DATA = 5
|
self.TIMEOUT_DATA = 5
|
||||||
self.RETRIES_DATA = 5
|
self.RETRIES_DATA = 5
|
||||||
self.ENTIRE_CONNECTION_TIMEOUT = 100
|
self.ENTIRE_CONNECTION_TIMEOUT = 100
|
||||||
|
@ -92,7 +93,6 @@ class P2PConnection:
|
||||||
self.is_ISS = False # Indicator, if we are ISS or IRS
|
self.is_ISS = False # Indicator, if we are ISS or IRS
|
||||||
|
|
||||||
self.last_data_timestamp= time.time()
|
self.last_data_timestamp= time.time()
|
||||||
|
|
||||||
self.start_data_processing_worker()
|
self.start_data_processing_worker()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -34,13 +34,13 @@ class SM:
|
||||||
self.start_radio_manager()
|
self.start_radio_manager()
|
||||||
self.start_modem()
|
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()
|
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:
|
elif cmd in ['stop'] and self.modem:
|
||||||
self.stop_modem()
|
self.stop_modem()
|
||||||
self.stop_radio_manager()
|
self.stop_radio_manager()
|
||||||
if self.config['MODEM']['enable_socket_interface']:
|
if self.config['SOCKET_INTERFACE']['enable']:
|
||||||
self.socket_interface_manager.stop_servers()
|
self.socket_interface_manager.stop_servers()
|
||||||
# we need to wait a bit for avoiding a portaudio crash
|
# we need to wait a bit for avoiding a portaudio crash
|
||||||
threading.Event().wait(0.5)
|
threading.Event().wait(0.5)
|
||||||
|
@ -48,7 +48,7 @@ class SM:
|
||||||
elif cmd in ['restart']:
|
elif cmd in ['restart']:
|
||||||
self.stop_modem()
|
self.stop_modem()
|
||||||
self.stop_radio_manager()
|
self.stop_radio_manager()
|
||||||
if self.config['MODEM']['enable_socket_interface']:
|
if self.config['SOCKET_INTERFACE']['enable']:
|
||||||
self.socket_interface_manager.stop_servers()
|
self.socket_interface_manager.stop_servers()
|
||||||
|
|
||||||
# we need to wait a bit for avoiding a portaudio crash
|
# we need to wait a bit for avoiding a portaudio crash
|
||||||
|
|
|
@ -154,6 +154,13 @@ class SocketInterfaceHandler:
|
||||||
logger(msg)
|
logger(msg)
|
||||||
|
|
||||||
def start_servers(self):
|
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
|
# 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.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))
|
self.data_server_thread = threading.Thread(target=self.run_server, args=(self.data_port, DataSocket))
|
||||||
|
|
|
@ -17,8 +17,6 @@ class SocketCommandHandler:
|
||||||
self.cmd_request.sendall(full_message.encode())
|
self.cmd_request.sendall(full_message.encode())
|
||||||
|
|
||||||
def handle_connect(self, data):
|
def handle_connect(self, data):
|
||||||
# Your existing connect logic
|
|
||||||
self.send_response("OK")
|
|
||||||
|
|
||||||
params = {
|
params = {
|
||||||
'origin': data[0],
|
'origin': data[0],
|
||||||
|
@ -26,10 +24,13 @@ class SocketCommandHandler:
|
||||||
}
|
}
|
||||||
cmd = P2PConnectionCommand(self.config_manager.read(), self.state_manager, self.event_manager, params, self)
|
cmd = P2PConnectionCommand(self.config_manager.read(), self.state_manager, self.event_manager, params, self)
|
||||||
self.session = cmd.run(self.event_manager.queues, self.modem)
|
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):
|
def handle_disconnect(self, data):
|
||||||
# Your existing connect logic
|
# Your existing connect logic
|
||||||
|
|
Loading…
Reference in a new issue