Exemplo n.º 1
0
 def HeartBeat(self):    # Called at about 10 Hz by the main
   BaseHardware.HeartBeat(self)
   if self.serial:
     chars = self.serial.read(1024)
     if chars:
       print chars
     if self.serial_out and time.time() - self.time0 > self.timer:
       self.serial.write(self.serial_out[0])
       self.time0 = time.time()
       del self.serial_out[0]
Exemplo n.º 2
0
 def HeartBeat(self):  # Called at about 10 Hz by the main
     ## JMH 20190909 Not used in current version of quisk_KW4KD.py; replaced by KeyThread routine
     BaseHardware.HeartBeat(self)
     if self.serial:
         chars = self.serial.read(1024)
         if chars:
             if (self.HrdwrTalk):
                 print chars  ##JMH Only print SS micro response if .quisk_conf.py 'HrdwrTalk' has been set to 'True'
         if self.serial_out and time.time() - self.time0 > self.timer:
             self.serial.write(self.serial_out[0])
             self.time0 = time.time()
             del self.serial_out[0]
Exemplo n.º 3
0
class Hardware(BaseHardware):
    def __init__(self, app, conf):
        BaseHardware.__init__(self, app, conf)
        global UseSdriq, UseRxudp, Application, Config
        Application = app
        Config = conf
        UseSdriq = conf.use_sdriq
        UseRxudp = conf.use_rx_udp
        self.use_sidetone = 1
        self.vfo_frequency = 0  # current vfo frequency
        # Select receiver
        if conf.use_rx_udp:
            from hiqsdr import quisk_hardware as hw
            self.receiver = hw.Hardware(app, conf)
            self.rf_gain_labels = ('RF 0 dB', 'RF +16', 'RF -20', 'RF -10')
        elif UseSdriq:
            from sdriqpkg import quisk_hardware as quisk_hardware_sdriq
            self.receiver = quisk_hardware_sdriq.Hardware(app, conf)
            self.rf_gain_labels = self.receiver.rf_gain_labels
        else:
            self.receiver = HwRxEthVfo()
            self.rf_gain_labels = ('RF 0 dB', 'RF +16', 'RF -20', 'RF -10')
        # Select transmitter
        if conf.use_rx_udp:
            self.transmitter = self.receiver  # this is a transceiver
        elif Config.tx_ip:
            self.transmitter = HwTx2007()
        else:
            self.transmitter = BaseHardware(app, conf)
        # Other hardware
        self.anttuner = AntennaTuner()  # Control the antenna tuner
        self.lpfilter = LowPassFilter()  # Control LP filter box
        self.hpfilter = HighPassFilter()  # Control HP filter box
        #self.antenna = AntennaControl(self.AntCtrlAddress)		# Control antenna
    def open(self):
        if self.transmitter is not self.receiver:
            self.transmitter.open()
        self.anttuner.open()
        return self.receiver.open()

    def close(self):
        if self.transmitter is not self.receiver:
            self.transmitter.close()
        self.anttuner.close()
        self.receiver.close()

    def ReturnFrequency(self):  # Return the current tuning and VFO frequency
        return None, None  # frequencies have not changed

    def ChangeFilterFrequency(self, tx_freq):
        # Change the filters but not the receiver; used for panadapter
        if tx_freq and tx_freq > 0:
            self.anttuner.SetTxFreq(tx_freq)
            self.lpfilter.SetTxFreq(tx_freq)
            self.hpfilter.SetTxFreq(tx_freq)
            #self.antenna.SetTxFreq(tx_freq)
    def ChangeFrequency(self,
                        tx_freq,
                        vfo_freq,
                        source='',
                        band='',
                        event=None):
        self.receiver.ChangeFrequency(tx_freq, vfo_freq, source, band, event)
        if self.transmitter is not self.receiver:
            self.transmitter.ChangeFrequency(tx_freq, vfo_freq, source, band,
                                             event)
        if tx_freq and tx_freq > 0:
            self.anttuner.SetTxFreq(tx_freq)
            self.lpfilter.SetTxFreq(tx_freq)
            self.hpfilter.SetTxFreq(tx_freq)
            #self.antenna.SetTxFreq(tx_freq)
        return tx_freq, vfo_freq

    def ChangeMode(self, mode):
        # mode is a string: "USB", "AM", etc.
        #if mode[0:3] == 'IMD':
        #  QS.set_fdx(1)
        #else:
        #  QS.set_fdx(0)
        self.receiver.ChangeMode(mode)
        self.transmitter.ChangeMode(mode)

    def ChangeBand(self, band):
        # band is a string: "60", "40", "WWV", etc.
        self.receiver.ChangeBand(band)
        self.transmitter.ChangeBand(band)
        self.anttuner.ChangeBand(band)
        self.lpfilter.ChangeBand(band)
        self.hpfilter.ChangeBand(band)
        #self.antenna.ChangeBand(band)
        if band == '40':
            self.correct_smeter = 20.5
        else:
            self.correct_smeter = 20.5

    def HeartBeat(self):  # Called at about 10 Hz by the main
        self.receiver.HeartBeat()
        if self.transmitter != self.receiver:
            self.transmitter.HeartBeat()
        self.anttuner.HeartBeat()
        self.lpfilter.HeartBeat()
        self.hpfilter.HeartBeat()
        #self.antenna.HeartBeat()
    def OnSpot(self, level):
        self.anttuner.OnSpot(level)
        if hasattr(self.transmitter, 'OnSpot'):
            self.transmitter.OnSpot(level)

    def OnButtonRfGain(self, event):
        if UseSdriq:
            self.receiver.OnButtonRfGain(event)
        else:
            if self.hpfilter:
                self.hpfilter.OnButtonRfGain(event)

    def GetFirmwareVersion(self):
        if UseRxudp:
            return self.receiver.firmware_version
        return 0

    def VarDecimGetChoices(self):
        return self.receiver.VarDecimGetChoices()

    def VarDecimGetLabel(self):
        return self.receiver.VarDecimGetLabel()

    def VarDecimGetIndex(self):
        return self.receiver.VarDecimGetIndex()

    def VarDecimSet(self, index=None):
        return self.receiver.VarDecimSet(index)

    def SetVNA(self, key_down=None, freq=None):
        if hasattr(self.transmitter, 'SetVNA'):
            self.transmitter.SetVNA(key_down, freq)