diff --git a/freedata_server/schedule_manager.py b/freedata_server/schedule_manager.py index 94b03d74..2e873332 100644 --- a/freedata_server/schedule_manager.py +++ b/freedata_server/schedule_manager.py @@ -65,7 +65,7 @@ class ScheduleManager: def transmit_beacon(self): try: - if not self.state_manager.getARQ() and self.state_manager.is_beacon_running: + if not self.state_manager.getARQ() and self.state_manager.is_beacon_running and self.state_manager.is_modem_running: cmd = command_beacon.BeaconCommand(self.config, self.state_manager, self.event_manager) cmd.run(self.event_manager, self.modem) except Exception as e: @@ -79,14 +79,14 @@ class ScheduleManager: def push_to_explorer(self): self.config = self.config_manager.read() - if self.config['STATION']['enable_explorer']: + if self.config['STATION']['enable_explorer'] and self.state_manager.is_modem_running: try: explorer.explorer(self.modem_version, self.config_manager, self.state_manager).push() except Exception as e: print(e) def check_for_queued_messages(self): - if not self.state_manager.getARQ(): + if not self.state_manager.getARQ() and not self.state_manager.is_receiving_codec2_signal() and self.state_manager.is_modem_running: try: if first_queued_message := DatabaseManagerMessages( self.event_manager diff --git a/freedata_server/state_manager.py b/freedata_server/state_manager.py index 75f6f5e2..7128598a 100644 --- a/freedata_server/state_manager.py +++ b/freedata_server/state_manager.py @@ -100,6 +100,7 @@ class StateManager: "is_away_from_key": self.is_away_from_key, "radio_status": self.radio_status, "channel_busy_slot": self.channel_busy_slot, + "is_codec2_traffic": self.is_receiving_codec2_signal(), "audio_dbfs": self.audio_dbfs, "activities": self.activities_list, "is_modem_busy" : self.getARQ() @@ -233,6 +234,9 @@ class StateManager: self.channel_busy_condition_codec2 = threading.Event() self.calculate_channel_busy_state() + def is_receiving_codec2_signal(self): + return not self.channel_busy_condition_codec2.is_set() + def get_radio_status(self): return { "radio_status": self.radio_status,