mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
WIP: added tuner option and swr
This commit is contained in:
parent
dd2c782f1d
commit
f99eecb894
5 changed files with 97 additions and 3 deletions
|
@ -1,5 +1,4 @@
|
||||||
import rigctld
|
import rigctld
|
||||||
import tci
|
|
||||||
import rigdummy
|
import rigdummy
|
||||||
import time
|
import time
|
||||||
import threading
|
import threading
|
||||||
|
@ -33,6 +32,9 @@ class RadioManager:
|
||||||
def set_ptt(self, state):
|
def set_ptt(self, state):
|
||||||
self.radio.set_ptt(state)
|
self.radio.set_ptt(state)
|
||||||
|
|
||||||
|
def set_tuner(self, state):
|
||||||
|
self.radio.set_tuner(state)
|
||||||
|
|
||||||
def set_frequency(self, frequency):
|
def set_frequency(self, frequency):
|
||||||
self.radio.set_frequency(frequency)
|
self.radio.set_frequency(frequency)
|
||||||
|
|
||||||
|
@ -49,9 +51,12 @@ class RadioManager:
|
||||||
self.state_manager.set("radio_mode", parameters['mode'])
|
self.state_manager.set("radio_mode", parameters['mode'])
|
||||||
self.state_manager.set("radio_bandwidth", parameters['bandwidth'])
|
self.state_manager.set("radio_bandwidth", parameters['bandwidth'])
|
||||||
self.state_manager.set("radio_rf_level", parameters['rf'])
|
self.state_manager.set("radio_rf_level", parameters['rf'])
|
||||||
|
self.state_manager.set("radio_tuner", parameters['tuner'])
|
||||||
|
|
||||||
if self.state_manager.isTransmitting():
|
if self.state_manager.isTransmitting():
|
||||||
self.radio_alc = parameters['alc']
|
self.radio_alc = parameters['alc']
|
||||||
|
self.state_manager.set("radio_swr", parameters['swr'])
|
||||||
|
|
||||||
self.state_manager.set("s_meter_strength", parameters['strength'])
|
self.state_manager.set("s_meter_strength", parameters['strength'])
|
||||||
time.sleep(self.refresh_rate)
|
time.sleep(self.refresh_rate)
|
||||||
def stop(self):
|
def stop(self):
|
||||||
|
|
|
@ -27,7 +27,9 @@ class radio:
|
||||||
'strength': '---',
|
'strength': '---',
|
||||||
'bandwidth': '---',
|
'bandwidth': '---',
|
||||||
'rf': '---',
|
'rf': '---',
|
||||||
'ptt': False # Initial PTT state is set to False
|
'ptt': False, # Initial PTT state is set to False,
|
||||||
|
'tuner': False,
|
||||||
|
'swr': '---'
|
||||||
}
|
}
|
||||||
|
|
||||||
# start rigctld...
|
# start rigctld...
|
||||||
|
@ -62,7 +64,9 @@ class radio:
|
||||||
'strength': '---',
|
'strength': '---',
|
||||||
'bandwidth': '---',
|
'bandwidth': '---',
|
||||||
'rf': '---',
|
'rf': '---',
|
||||||
'ptt': False # Initial PTT state is set to False
|
'ptt': False, # Initial PTT state is set to False,
|
||||||
|
'tuner': False,
|
||||||
|
'swr': '---'
|
||||||
}
|
}
|
||||||
|
|
||||||
def send_command(self, command) -> str:
|
def send_command(self, command) -> str:
|
||||||
|
@ -168,6 +172,8 @@ class radio:
|
||||||
self.connected = False
|
self.connected = False
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def set_rf_level(self, rf):
|
def set_rf_level(self, rf):
|
||||||
"""Set the RF.
|
"""Set the RF.
|
||||||
|
|
||||||
|
@ -188,6 +194,49 @@ class radio:
|
||||||
self.connected = False
|
self.connected = False
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def set_tuner(self, state):
|
||||||
|
"""Set the TUNER state.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
state (bool): True to enable PTT, False to disable.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
bool: True if the PTT state was set successfully, False otherwise.
|
||||||
|
"""
|
||||||
|
if self.connected:
|
||||||
|
try:
|
||||||
|
if state:
|
||||||
|
self.send_command('U TUNER 1') # Enable PTT
|
||||||
|
else:
|
||||||
|
self.send_command('U TUNER 0') # Disable PTT
|
||||||
|
self.parameters['tuner'] = state # Update PTT state in parameters
|
||||||
|
return True
|
||||||
|
except Exception as err:
|
||||||
|
self.log.warning(f"[RIGCTLD] Error setting TUNER state: {err}")
|
||||||
|
self.connected = False
|
||||||
|
return False
|
||||||
|
|
||||||
|
def get_tuner(self):
|
||||||
|
"""Set the TUNER state.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
state (bool): True to enable PTT, False to disable.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
bool: True if the PTT state was set successfully, False otherwise.
|
||||||
|
"""
|
||||||
|
if self.connected:
|
||||||
|
try:
|
||||||
|
result = self.send_command('u TUNER')
|
||||||
|
state = result == 1
|
||||||
|
self.parameters['tuner'] = state # Update TUNER state in parameters
|
||||||
|
return True
|
||||||
|
except Exception as err:
|
||||||
|
self.log.warning(f"[RIGCTLD] Error setting TUNER state: {err}")
|
||||||
|
self.connected = False
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def get_parameters(self):
|
def get_parameters(self):
|
||||||
if not self.connected:
|
if not self.connected:
|
||||||
self.connect()
|
self.connect()
|
||||||
|
@ -198,6 +247,8 @@ class radio:
|
||||||
self.get_alc()
|
self.get_alc()
|
||||||
self.get_strength()
|
self.get_strength()
|
||||||
self.get_rf()
|
self.get_rf()
|
||||||
|
self.get_tuner()
|
||||||
|
self.get_swr()
|
||||||
|
|
||||||
return self.parameters
|
return self.parameters
|
||||||
|
|
||||||
|
@ -258,6 +309,19 @@ class radio:
|
||||||
self.log.warning(f"Error getting RF power: {e}")
|
self.log.warning(f"Error getting RF power: {e}")
|
||||||
self.parameters['rf'] = 'err'
|
self.parameters['rf'] = 'err'
|
||||||
|
|
||||||
|
def get_swr(self):
|
||||||
|
try:
|
||||||
|
rf_response = self.send_command('l SWR')
|
||||||
|
if rf_response is not None:
|
||||||
|
self.parameters['swr'] = rf_response
|
||||||
|
else:
|
||||||
|
self.parameters['swr'] = 'err'
|
||||||
|
except ValueError:
|
||||||
|
self.parameters['swr'] = 'err'
|
||||||
|
except Exception as e:
|
||||||
|
self.log.warning(f"Error getting SWR: {e}")
|
||||||
|
self.parameters['swr'] = 'err'
|
||||||
|
|
||||||
def start_service(self):
|
def start_service(self):
|
||||||
binary_name = "rigctld"
|
binary_name = "rigctld"
|
||||||
binary_paths = helpers.find_binary_paths(binary_name, search_system_wide=True)
|
binary_paths = helpers.find_binary_paths(binary_name, search_system_wide=True)
|
||||||
|
|
|
@ -63,6 +63,14 @@ class radio:
|
||||||
""" """
|
""" """
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def get_tuner(self):
|
||||||
|
""" """
|
||||||
|
return None
|
||||||
|
|
||||||
|
def get_swr(self):
|
||||||
|
""" """
|
||||||
|
return None
|
||||||
|
|
||||||
def set_bandwidth(self):
|
def set_bandwidth(self):
|
||||||
""" """
|
""" """
|
||||||
return None
|
return None
|
||||||
|
@ -77,6 +85,17 @@ class radio:
|
||||||
"""
|
"""
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def set_tuner(self, state):
|
||||||
|
"""
|
||||||
|
|
||||||
|
Args:
|
||||||
|
mode:
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
"""
|
||||||
|
return None
|
||||||
|
|
||||||
def set_frequency(self, frequency):
|
def set_frequency(self, frequency):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
|
@ -260,6 +260,8 @@ def get_post_radio():
|
||||||
app.radio_manager.set_mode(request.json['radio_mode'])
|
app.radio_manager.set_mode(request.json['radio_mode'])
|
||||||
if "radio_rf_level" in request.json:
|
if "radio_rf_level" in request.json:
|
||||||
app.radio_manager.set_rf_level(int(request.json['radio_rf_level']))
|
app.radio_manager.set_rf_level(int(request.json['radio_rf_level']))
|
||||||
|
if "radio_tuner" in request.json:
|
||||||
|
app.radio_manager.set_tuner(int(request.json['radio_tuner']))
|
||||||
|
|
||||||
return api_response(request.json)
|
return api_response(request.json)
|
||||||
elif request.method == 'GET':
|
elif request.method == 'GET':
|
||||||
|
|
|
@ -48,6 +48,8 @@ class StateManager:
|
||||||
self.radio_bandwidth = 0
|
self.radio_bandwidth = 0
|
||||||
self.radio_rf_level = 0
|
self.radio_rf_level = 0
|
||||||
self.s_meter_strength = 0
|
self.s_meter_strength = 0
|
||||||
|
self.radio_tuner = False
|
||||||
|
self.radio_swr = 0
|
||||||
# Set rig control status regardless or rig control method
|
# Set rig control status regardless or rig control method
|
||||||
self.radio_status = False
|
self.radio_status = False
|
||||||
|
|
||||||
|
@ -216,6 +218,8 @@ class StateManager:
|
||||||
"radio_mode": self.radio_mode,
|
"radio_mode": self.radio_mode,
|
||||||
"radio_rf_level": self.radio_rf_level,
|
"radio_rf_level": self.radio_rf_level,
|
||||||
"s_meter_strength": self.s_meter_strength,
|
"s_meter_strength": self.s_meter_strength,
|
||||||
|
"radio_swr": self.radio_swr,
|
||||||
|
"radio_tuner": self.radio_tuner
|
||||||
}
|
}
|
||||||
|
|
||||||
def register_p2p_connection_session(self, session):
|
def register_p2p_connection_session(self, session):
|
||||||
|
|
Loading…
Reference in a new issue