def ChangeFrequency(self, tx_freq, vfo_freq, source='', band='', event=None): self.tx_frequency = tx_freq if not self.adf4351_freq - 3E6 < vfo_freq < self.adf4351_freq + 3E6: self.NewAdf4351(vfo_freq) self.vfo_frequency = -1 if self.vfo_frequency != vfo_freq: self.vfo_frequency = vfo_freq self.scan_deltaf = int(1152E3 * self.fft_scan_valid + 0.5) self.scan_phase = int(1152.E3 * self.fft_scan_valid / self.conf.rx_udp_clock * 2.0**32 + 0.5) self.scan_vfo0 = vfo_freq rx_phase1 = int((vfo_freq - self.adf4351_freq) / self.conf.rx_udp_clock * 2.0**32 + 0.5) if self.scan_enable: self.scan_vfo0 = self.scan_vfo0 - self.scan_deltaf * (self.scan_blocks - 1) / 2 rx_phase1 = rx_phase1 - int(self.scan_phase * (self.scan_blocks - 1) / 2.0 + 0.5) self.rx_phase1 = rx_phase1 & 0xFFFFFFFF rx_tune_freq = float(rx_phase1) * self.conf.rx_udp_clock / 2.0**32 QS.change_rates(96000, tx_freq, self.vfo_sample_rate, vfo_freq) QS.change_scan(self.scan_blocks, 1152000, self.fft_scan_valid, self.scan_vfo0, self.scan_deltaf) if DEBUG: #print( "vfo", vfo_freq, "adf4351", self.adf4351_freq, "phase", rx_phase1, "rx_tune", self.adf4351_freq - vfo_freq, rx_tune_freq) #print ("VFO", self.adf4351_freq + rx_tune_freq) print ("Change to Tx %d Vfo %d; VFO %.0f = adf4351_freq %.0f + rx_tune_freq %.0f" % (tx_freq, vfo_freq, self.adf4351_freq + rx_tune_freq, self.adf4351_freq, rx_tune_freq)) #print ("scan_enable %d, scan_blocks %d, scan_vfo0 %d, scan_deltaf %d" % (self.scan_enable, self.scan_blocks, self.scan_vfo0, self.scan_deltaf)) else: QS.change_rates(96000, tx_freq, self.vfo_sample_rate, self.vfo_frequency) rx_phase0 = int((tx_freq - self.adf4351_freq) / self.conf.rx_udp_clock * 2.0**32 + 0.5) self.rx_phase0 = rx_phase0 & 0xFFFFFFFF self.NewUdpStatus() self.NewStatus() return tx_freq, vfo_freq
def ChangeFrequency(self, tx_freq, vfo_freq, source='', band='', event=None): self.tx_frequency = tx_freq if not self.Rx4351.frequency - 3E6 < vfo_freq < self.Rx4351.frequency + 3E6: self.NewAdf4351(self.Rx4351, vfo_freq) self.vfo_frequency = -1 self.NewAd9951(tx_freq) if abs(self.ad9951_freq - 10.7e6) > 15000: self.NewAdf4351(self.Tx4351, tx_freq) self.NewAd9951(tx_freq) self.NewAd9951(tx_freq) if self.vfo_frequency != vfo_freq: self.vfo_frequency = vfo_freq self.scan_deltaf = int(1152E3 * self.fft_scan_valid + 0.5) self.scan_phase = int(1152.E3 * self.fft_scan_valid / self.conf.rx_udp_clock * 2.0**32 + 0.5) self.scan_vfo0 = vfo_freq rx_phase1 = int((vfo_freq - self.Rx4351.frequency) / self.conf.rx_udp_clock * 2.0**32 + 0.5) if self.scan_enable: self.scan_vfo0 = self.scan_vfo0 - self.scan_deltaf * ( self.scan_blocks - 1) // 2 rx_phase1 = rx_phase1 - int(self.scan_phase * (self.scan_blocks - 1) / 2.0 + 0.5) self.rx_phase1 = rx_phase1 & 0xFFFFFFFF rx_tune_freq = float(rx_phase1) * self.conf.rx_udp_clock / 2.0**32 QS.change_rates(96000, tx_freq, self.vfo_sample_rate, vfo_freq) QS.change_scan(self.scan_blocks, 1152000, self.fft_scan_valid, self.scan_vfo0, self.scan_deltaf) if DEBUG: #print( "vfo", vfo_freq, "adf4351", self.Rx4351.frequency, "phase", rx_phase1, "rx_tune", self.Rx4351.frequency - vfo_freq, rx_tune_freq) #print ("VFO", self.Rx4351.frequency + rx_tune_freq) print( "Change to Tx %d Vfo %d; VFO %.0f = adf4351_freq %.0f + rx_tune_freq %.0f" % (tx_freq, vfo_freq, self.Rx4351.frequency + rx_tune_freq, self.Rx4351.frequency, rx_tune_freq)) #print ("scan_enable %d, scan_blocks %d, scan_vfo0 %d, scan_deltaf %d" % (self.scan_enable, self.scan_blocks, self.scan_vfo0, self.scan_deltaf)) else: QS.change_rates(96000, tx_freq, self.vfo_sample_rate, self.vfo_frequency) rx_phase0 = int((tx_freq - self.Rx4351.frequency) / self.conf.rx_udp_clock * 2.0**32 + 0.5) self.rx_phase0 = rx_phase0 & 0xFFFFFFFF self.NewUdpStatus() if self.application.bottom_widgets: Rx1 = self.Rx4351.frequency * 1e-6 Rx2 = (self.ReturnVfoFloat() - self.Rx4351.frequency) * 1e-6 t = "Rx Div %d; ADF4351 %.6f + rx_tune %.6f = %.6f Tx Adf4351 %.6f AD9951 %.6f" % ( 2**self.Rx4351.rf_divider, Rx1, Rx2, Rx1 + Rx2, self.Tx4351.frequency * 1e-6, self.ad9951_freq * 1e-6) self.application.bottom_widgets.UpdateText(t) return tx_freq, vfo_freq
def ChangeFrequency(self, tx_freq, vfo_freq, source='', band='', event=None): self.tx_frequency = tx_freq if not self.adf4351_freq - 3E6 < vfo_freq < self.adf4351_freq + 3E6: self.NewAdf4351(vfo_freq) self.vfo_frequency = -1 if self.vfo_frequency != vfo_freq: self.vfo_frequency = vfo_freq self.scan_deltaf = int(1152E3 * self.fft_scan_valid + 0.5) self.scan_phase = int(1152.E3 * self.fft_scan_valid / self.conf.rx_udp_clock * 2.0**32 + 0.5) self.scan_vfo0 = vfo_freq rx_phase1 = int((vfo_freq - self.adf4351_freq) / self.conf.rx_udp_clock * 2.0**32 + 0.5) if self.scan_enable: self.scan_vfo0 = self.scan_vfo0 - self.scan_deltaf * ( self.scan_blocks - 1) / 2 rx_phase1 = rx_phase1 - int(self.scan_phase * (self.scan_blocks - 1) / 2.0 + 0.5) self.rx_phase1 = rx_phase1 & 0xFFFFFFFF rx_tune_freq = float(rx_phase1) * self.conf.rx_udp_clock / 2.0**32 QS.change_rates(96000, tx_freq, self.vfo_sample_rate, vfo_freq) QS.change_scan(self.scan_blocks, 1152000, self.fft_scan_valid, self.scan_vfo0, self.scan_deltaf) if DEBUG: #print( "vfo", vfo_freq, "adf4351", self.adf4351_freq, "phase", rx_phase1, "rx_tune", self.adf4351_freq - vfo_freq, rx_tune_freq) #print ("VFO", self.adf4351_freq + rx_tune_freq) print( "Change to Tx %d Vfo %d; VFO %.0f = adf4351_freq %.0f + rx_tune_freq %.0f" % (tx_freq, vfo_freq, self.adf4351_freq + rx_tune_freq, self.adf4351_freq, rx_tune_freq)) #print ("scan_enable %d, scan_blocks %d, scan_vfo0 %d, scan_deltaf %d" % (self.scan_enable, self.scan_blocks, self.scan_vfo0, self.scan_deltaf)) else: QS.change_rates(96000, tx_freq, self.vfo_sample_rate, self.vfo_frequency) rx_phase0 = int((tx_freq - self.adf4351_freq) / self.conf.rx_udp_clock * 2.0**32 + 0.5) self.rx_phase0 = rx_phase0 & 0xFFFFFFFF self.NewUdpStatus() self.NewStatus() return tx_freq, vfo_freq
def ChangeFrequency(self, tx_freq, vfo_freq, source='', band='', event=None): self.tx_frequency = tx_freq if not self.Rx4351.frequency - 3E6 < vfo_freq < self.Rx4351.frequency + 3E6: self.NewAdf4351(self.Rx4351, vfo_freq) self.vfo_frequency = -1 self.NewAd9951(tx_freq) if abs(self.ad9951_freq - 10.7e6) > 15000: self.NewAdf4351(self.Tx4351, tx_freq) self.NewAd9951(tx_freq) self.NewAd9951(tx_freq) if self.vfo_frequency != vfo_freq: self.vfo_frequency = vfo_freq self.scan_deltaf = int(1152E3 * self.fft_scan_valid + 0.5) self.scan_phase = int(1152.E3 * self.fft_scan_valid / self.conf.rx_udp_clock * 2.0**32 + 0.5) self.scan_vfo0 = vfo_freq rx_phase1 = int((vfo_freq - self.Rx4351.frequency) / self.conf.rx_udp_clock * 2.0**32 + 0.5) if self.scan_enable: self.scan_vfo0 = self.scan_vfo0 - self.scan_deltaf * (self.scan_blocks - 1) / 2 rx_phase1 = rx_phase1 - int(self.scan_phase * (self.scan_blocks - 1) / 2.0 + 0.5) self.rx_phase1 = rx_phase1 & 0xFFFFFFFF rx_tune_freq = float(rx_phase1) * self.conf.rx_udp_clock / 2.0**32 QS.change_rates(96000, tx_freq, self.vfo_sample_rate, vfo_freq) QS.change_scan(self.scan_blocks, 1152000, self.fft_scan_valid, self.scan_vfo0, self.scan_deltaf) if DEBUG: #print( "vfo", vfo_freq, "adf4351", self.Rx4351.frequency, "phase", rx_phase1, "rx_tune", self.Rx4351.frequency - vfo_freq, rx_tune_freq) #print ("VFO", self.Rx4351.frequency + rx_tune_freq) print ("Change to Tx %d Vfo %d; VFO %.0f = adf4351_freq %.0f + rx_tune_freq %.0f" % (tx_freq, vfo_freq, self.Rx4351.frequency + rx_tune_freq, self.Rx4351.frequency, rx_tune_freq)) #print ("scan_enable %d, scan_blocks %d, scan_vfo0 %d, scan_deltaf %d" % (self.scan_enable, self.scan_blocks, self.scan_vfo0, self.scan_deltaf)) else: QS.change_rates(96000, tx_freq, self.vfo_sample_rate, self.vfo_frequency) rx_phase0 = int((tx_freq - self.Rx4351.frequency) / self.conf.rx_udp_clock * 2.0**32 + 0.5) self.rx_phase0 = rx_phase0 & 0xFFFFFFFF self.NewUdpStatus() if self.application.bottom_widgets: Rx1 = self.Rx4351.frequency * 1e-6 Rx2 = (self.ReturnVfoFloat() - self.Rx4351.frequency) * 1e-6 t = "Rx Div %d; ADF4351 %.6f + rx_tune %.6f = %.6f Tx Adf4351 %.6f AD9951 %.6f" % ( 2**self.Rx4351.rf_divider, Rx1, Rx2, Rx1 + Rx2, self.Tx4351.frequency * 1e-6, self.ad9951_freq * 1e-6) self.application.bottom_widgets.UpdateText(t) return tx_freq, vfo_freq