Files
quisk/quisk_hardware_hl2_oob.py

64 lines
2.1 KiB
Python

# This hardware file is for use with the Hermes Lite 2. It disables the power amplifier when the
# transmit frequency including the sidebands is outside of the band selected. Enter this file name
# quisk_hardware_hl2_oob.py as your hardware file on the Config/radio/Hardware screen.
from __future__ import print_function
from __future__ import absolute_import
from hermes.quisk_hardware import Hardware as BaseHardware
class Hardware(BaseHardware):
def __init__(self, app, conf):
BaseHardware.__init__(self, app, conf)
self.bandEdge1 = 0
self.bandEdge2 = 0
def ChangeMode(self, mode):
BaseHardware.ChangeMode(self, mode)
self.FixBandEdge()
def ChangeBand(self, band):
BaseHardware.ChangeBand(self, band)
self.FixBandEdge()
def FixBandEdge(self): # Reduce the band edges accordig to the transmit mode sidebands
if self.band in ("Audio", "Time"): # Rx only
freq1 = 0
freq2 = 0
else:
try:
freq1, freq2 = self.conf.BandEdge[self.band]
except:
freq1 = 0
freq2 = 0
mode = self.mode
if mode in ("CWL", "CWU"):
freq1 += 40
freq2 -= 40
elif mode in ("USB", "DGT-U", "FDV-U", "IMD"):
freq2 -= 3000
elif mode in ("LSB", "DGT-L", "FDV-L"):
freq1 += 3000
elif mode == "AM":
freq1 += 3000
freq2 -= 3000
elif mode in ("FM", "DGT-FM"):
freq1 += 8000
freq2 -= 8000
else:
freq1 += 3000
freq2 -= 3000
self.bandEdge1 = freq1
self.bandEdge2 = freq2
def HeartBeat(self):
BaseHardware.HeartBeat(self)
power_amp_enabled = self.pc2hermes[37] & 0b1000
if self.bandEdge1 <= self.tx_frequency <= self.bandEdge2: # Tx frequency is in band
if not power_amp_enabled and self.conf.hermes_power_amp:
#print ("Turn HL2 power amp on")
self.SetControlBit(0x09, 19, 1)
elif power_amp_enabled and not self.conf.hermes_power_amp: # Should not happen
#print ("Turn HL2 power amp ??")
self.SetControlBit(0x09, 19, 0)
else: # Tx frequency is out of band
if power_amp_enabled:
#print ("Turn HL2 power amp off")
self.SetControlBit(0x09, 19, 0)