From a0bd95bed1a7d618ed701d629788ffdca45b5afb Mon Sep 17 00:00:00 2001 From: DJ2LS Date: Fri, 31 May 2024 09:41:50 +0200 Subject: [PATCH] set ptt via serial rts / dtr - first run --- freedata_server/radio_manager.py | 2 +- freedata_server/serial_ptt.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/freedata_server/radio_manager.py b/freedata_server/radio_manager.py index 9f394d6c..68d9113a 100644 --- a/freedata_server/radio_manager.py +++ b/freedata_server/radio_manager.py @@ -23,7 +23,7 @@ class RadioManager: if self.radiocontrol in ["rigctld", "rigctld_bundle"]: self.radio = rigctld.radio(self.config, self.state_manager, hostname=self.rigctld_ip,port=self.rigctld_port) elif self.radiocontrol == "serial_ptt": - self.radio = serial_ptt.radio(self.config) + self.radio = serial_ptt.radio(self.config, self.state_manager) elif self.radiocontrol == "tci": raise NotImplementedError diff --git a/freedata_server/serial_ptt.py b/freedata_server/serial_ptt.py index c95cb76b..a325090c 100644 --- a/freedata_server/serial_ptt.py +++ b/freedata_server/serial_ptt.py @@ -5,7 +5,7 @@ class radio: log = structlog.get_logger("radio (rigctld)") - def __init__(self, config): + def __init__(self, config, state_manager): self.parameters = { 'frequency': '---', 'mode': '---', @@ -18,19 +18,25 @@ class radio: 'swr': '---' } self.config = config + self.state_manager = state_manager self.serial_rts = self.config["RADIO"]["serial_rts"] self.serial_dtr = self.config["RADIO"]["serial_dtr"] self.serial_comport = self.config["RADIO"]["ptt_port"] try: if self.serial_comport in ["ignore"]: + self.state_manager.set_radio("radio_status", False) raise serial.SerialException self.serial_connection = serial.Serial(self.serial_comport) # Set initial states for RTS and DTR based on config self.set_rts_state(self.serial_rts) self.set_dtr_state(self.serial_dtr) + self.set_ptt(False) + + self.state_manager.set_radio("radio_status", True) except serial.SerialException as e: self.log.warning(f"Error: could not open PTT port {self.serial_comport}: {e}") + self.state_manager.set_radio("radio_status", False) self.serial_connection = None def connect(self, **kwargs):