diff --git a/modem/arq_data_type_handler.py b/modem/arq_data_type_handler.py index 4de79f13..8745056a 100644 --- a/modem/arq_data_type_handler.py +++ b/modem/arq_data_type_handler.py @@ -54,6 +54,9 @@ class ARQDataTypeHandler: def dispatch(self, type_byte: int, data: bytearray): session_type = self.get_session_type_from_value(type_byte) + + self.state_manager.setARQ(False) + if session_type and session_type in self.handlers and 'handle' in self.handlers[session_type]: return self.handlers[session_type]['handle'](data) else: @@ -61,6 +64,9 @@ class ARQDataTypeHandler: def failed(self, type_byte: int, data: bytearray): session_type = self.get_session_type_from_value(type_byte) + + self.state_manager.setARQ(False) + if session_type in self.handlers and 'failed' in self.handlers[session_type]: return self.handlers[session_type]['failed'](data) else: @@ -74,6 +80,9 @@ class ARQDataTypeHandler: def transmitted(self, type_byte: int, data: bytearray): session_type = self.get_session_type_from_value(type_byte) + + self.state_manager.setARQ(False) + if session_type in self.handlers and 'transmitted' in self.handlers[session_type]: return self.handlers[session_type]['transmitted'](data) else: diff --git a/modem/arq_session.py b/modem/arq_session.py index 4fd424d4..8bae69af 100644 --- a/modem/arq_session.py +++ b/modem/arq_session.py @@ -98,7 +98,6 @@ class ARQSession(): if isinstance(received_data, bytearray) and isinstance(type_byte, int): self.arq_data_type_handler.dispatch(type_byte, received_data) - self.states.setARQ(False) return self.log(f"Ignoring unknown transition from state {self.state.name} with frame {frame['frame_type']}") diff --git a/modem/rigctld.py b/modem/rigctld.py index 79ca0108..fc4628dd 100644 --- a/modem/rigctld.py +++ b/modem/rigctld.py @@ -229,29 +229,33 @@ class radio: return value in ['ignore', 0] # Model ID, Serial Port, and Speed - if not should_ignore(config.get('model_id', "0")): + if not should_ignore(config.get('model_id')): args += ['-m', str(config['model_id'])] - if not should_ignore(config.get('serial_port', "0")): + if not should_ignore(config.get('serial_port')): args += ['-r', config['serial_port']] - if not should_ignore(config.get('serial_speed', "0")): + if not should_ignore(config.get('serial_speed')): args += ['-s', str(config['serial_speed'])] # PTT Port and Type - if not should_ignore(config.get('ptt_port', "0")): + if not should_ignore(config.get('ptt_port')): args += ['--ptt-port', config['ptt_port']] - if not should_ignore(config.get('ptt_type', "0")): + if not should_ignore(config.get('ptt_type')): args += ['--ptt-type', config['ptt_type']] # Serial DCD and DTR - if not should_ignore(config.get('serial_dcd', "0")): + if not should_ignore(config.get('serial_dcd')): args += ['--set-dcd', config['serial_dcd']] - if not should_ignore(config.get('serial_dtr', "0")): - args += ['--set-dtr', config['serial_dtr']] + if not should_ignore(config.get('serial_dtr')): + args += ['--set-conf', f'dtr_state={config["serial_dtr"]}'] - # Handling Stop Bits with the corrected --set-conf syntax - if not should_ignore(config.get('stop_bits', "0")): + # Handling Data Bits and Stop Bits + if not should_ignore(config.get('data_bits')): + args += ['--set-conf', f'data_bits={config["data_bits"]}'] + if not should_ignore(config.get('stop_bits')): args += ['--set-conf', f'stop_bits={config["stop_bits"]}'] + # Fixme #rts_state + # Handle custom arguments for rigctld # Custom args are split via ' ' so python doesn't add extranaeous quotes on windows args += config_rigctld["arguments"].split(" ") diff --git a/modem/schedule_manager.py b/modem/schedule_manager.py index 93b62823..2bc22adf 100644 --- a/modem/schedule_manager.py +++ b/modem/schedule_manager.py @@ -70,7 +70,7 @@ class ScheduleManager: cmd.run(self.event_manager, self.modem) def delete_beacons(self): - DatabaseManagerBeacon(self.event_manager).beacon_cleanup_older_than_days(14) + DatabaseManagerBeacon(self.event_manager).beacon_cleanup_older_than_days(2) def push_to_explorer(self): self.config = self.config_manager.read()