mirror of https://github.com/DJ2LS/FreeDATA.git
added queue timeouts
parent
2bb65c4d4b
commit
28c9f824d1
|
@ -59,6 +59,8 @@ class DISPATCHER():
|
|||
self.states = states
|
||||
self.event_manager = event_manager
|
||||
|
||||
self.stop_event = threading.Event()
|
||||
|
||||
self._initialize_handlers(config, states)
|
||||
|
||||
self.modem = modem
|
||||
|
@ -66,6 +68,7 @@ class DISPATCHER():
|
|||
|
||||
self.arq_sessions = []
|
||||
|
||||
|
||||
def _initialize_handlers(self, config, states):
|
||||
"""Initializes various data handlers."""
|
||||
|
||||
|
@ -75,9 +78,12 @@ class DISPATCHER():
|
|||
"""Starts worker threads for transmit and receive operations."""
|
||||
threading.Thread(target=self.worker_receive, name="Receive Worker", daemon=True).start()
|
||||
|
||||
def stop(self):
|
||||
self.stop_event.set()
|
||||
|
||||
def worker_receive(self) -> None:
|
||||
"""Queue received data for processing"""
|
||||
while True:
|
||||
while not self.stop_event.is_set():
|
||||
try:
|
||||
data = self.data_queue_received.get(timeout=1)
|
||||
if data:
|
||||
|
|
|
@ -125,6 +125,7 @@ class SM:
|
|||
self.modem = False
|
||||
self.state_manager.set("is_modem_running", False)
|
||||
self.schedule_manager.stop()
|
||||
self.frame_dispatcher.stop()
|
||||
self.event_manager.modem_stopped()
|
||||
def test_audio(self):
|
||||
try:
|
||||
|
|
Loading…
Reference in New Issue