Added profile-specific transceiver rig control setting.
This commit is contained in:
parent
c6ab38641c
commit
284a283d34
|
|
@ -471,6 +471,7 @@ class DspManager(SdrSourceEventClient, ClientDemodulatorSecondaryDspEventClient)
|
|||
"wfm_deemphasis_tau",
|
||||
"wfm_rds_rbds",
|
||||
"digital_voice_codecserver",
|
||||
"rig_enabled",
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -310,6 +310,8 @@ class RigControl():
|
|||
}
|
||||
|
||||
def __init__(self, props: PropertyStack):
|
||||
pm = Config.get()
|
||||
self.enabled = pm["rig_enabled"]
|
||||
self.rigctl = None
|
||||
self.thread = None
|
||||
self.mod = None
|
||||
|
|
@ -318,10 +320,13 @@ class RigControl():
|
|||
self.subscriptions = [
|
||||
props.wireProperty("offset_freq", self.setFrequencyOffset),
|
||||
props.wireProperty("center_freq", self.setCenterFrequency),
|
||||
props.wireProperty("rig_enabled", self.setRigEnabled),
|
||||
props.wireProperty("mod", self.setDemodulator),
|
||||
]
|
||||
super().__init__()
|
||||
self.rigStart()
|
||||
# Start RigControl if enabled
|
||||
if self.enabled:
|
||||
self.enabled = self.rigStart()
|
||||
|
||||
def stop(self):
|
||||
for sub in self.subscriptions:
|
||||
|
|
@ -331,17 +336,26 @@ class RigControl():
|
|||
|
||||
def setFrequencyOffset(self, offset: int) -> None:
|
||||
if self.fCenter is not None and offset != self.fOffset:
|
||||
if self.rigFrequency(self.fCenter + offset):
|
||||
self.fOffset = offset
|
||||
self.rigFrequency(self.fCenter + offset)
|
||||
self.fOffset = offset
|
||||
|
||||
def setCenterFrequency(self, center: int) -> None:
|
||||
self.fCenter = center
|
||||
self.fOffset = None
|
||||
|
||||
def setDemodulator(self, mod: str) -> None:
|
||||
if mod != self.mod and self.rigModulation(mod):
|
||||
if mod != self.mod:
|
||||
self.rigModulation(mod)
|
||||
self.mod = mod
|
||||
|
||||
def setRigEnabled(self, enabled: bool) -> None:
|
||||
if enabled != self.enabled:
|
||||
self.enabled = enabled
|
||||
if enabled:
|
||||
self.enabled = self.rigStart()
|
||||
else:
|
||||
self.rigStop()
|
||||
|
||||
# Press or release rig's PTT (i.e. transmit)
|
||||
def rigTX(self, active: bool) -> bool:
|
||||
return self.rigCommand("T {0}".format(1 if active else 0))
|
||||
|
|
@ -366,10 +380,10 @@ class RigControl():
|
|||
if not FeatureDetector().is_available("rigcontrol"):
|
||||
return False
|
||||
# Must have rig control enabled
|
||||
pm = Config.get()
|
||||
if not pm["rig_enabled"]:
|
||||
if not self.enabled:
|
||||
return False
|
||||
# Compose Rigctl command
|
||||
pm = Config.get()
|
||||
address = pm["rig_address"]
|
||||
cmd = [
|
||||
"rigctl", "-m", str(pm["rig_model"]), "-r", pm["rig_device"]
|
||||
|
|
|
|||
|
|
@ -745,6 +745,10 @@ class SdrDeviceDescription(object):
|
|||
options=[Option(str(i), "{} Hz".format(i)) for i in [1, 10, 20, 50, 100, 500, 1000, 2500, 3000, 5000, 6000, 6250, 8330, 9000, 10000, 12000, 12500, 25000, 50000]],
|
||||
converter=IntConverter(),
|
||||
),
|
||||
CheckboxInput(
|
||||
"rig_enabled",
|
||||
"Enable sending changes to a standalone transceiver",
|
||||
),
|
||||
NumberInput(
|
||||
"eibi_bookmarks_range",
|
||||
"Shortwave bookmarks range",
|
||||
|
|
@ -798,7 +802,8 @@ class SdrDeviceDescription(object):
|
|||
"waterfall_levels",
|
||||
"waterfall_auto_level_default_mode",
|
||||
"eibi_bookmarks_range",
|
||||
"repeater_range"
|
||||
"repeater_range",
|
||||
"rig_enabled",
|
||||
]
|
||||
|
||||
def getDeviceSection(self):
|
||||
|
|
|
|||
Loading…
Reference in New Issue