From 40c053ae9f5dffea178d098cba047e86f22dfabb Mon Sep 17 00:00:00 2001 From: Rob French Date: Tue, 27 Oct 2020 12:45:14 -0500 Subject: [PATCH] More changes trying to get bi-directional frequency changes to work. The problem is that I can't control/predict where the H/W frequency will be relative to the VFO frequency. --- gqrx-panadapter.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/gqrx-panadapter.py b/gqrx-panadapter.py index 042ad38..a8d842e 100755 --- a/gqrx-panadapter.py +++ b/gqrx-panadapter.py @@ -31,8 +31,8 @@ DEBUG=True delay_secs = 0.05 # 50 msec delay timeout = 0.0 -usb_if_offset = 0 #-2250 -lsb_if_offset = -1000 #0 +usb_if_offset = 0 #-3000 # 0 #-2250 +lsb_if_offset = 0 #3000 # -1000 #0 rs = 0 gs = 0 @@ -92,6 +92,8 @@ class MainWindow: self.__g2r_ctrl = Checkbutton(self.__gqrx_frame, text="Gqrx-to-Rig", variable=self.gqrx_to_rig) self.__g2r_ctrl.grid(row=0, column=2, padx=5) self.gqrx_to_rig.set(1) + + #self.__hw_freq = Entry(self.__gqrx_frame, text=H def calc_lnb_lo(freq, ifreq, isusb=True): if DEBUG: @@ -101,12 +103,14 @@ def calc_lnb_lo(freq, ifreq, isusb=True): if DEBUG: print('USB IF: ' + str(ifreq + usb_if_offset)) #return - freq - (ifreq - usb_if_offset) - return -freq + usb_if_offset - ifreq + #return freq + usb_if_offset - (ifreq + (129600*2)) # need to make this configurable; would be great to get it from Gqrx + return freq - (ifreq + 129600*2 + usb_if_offset) else: if DEBUG: print('LSB IF: ' + str(ifreq + lsb_if_offset)) #return - freq - (ifreq + lsb_if_offset) - return freq + lsb_if_offset - ifreq + #return freq + lsb_if_offset - (ifreq + (129600*2)) # need to make this configurable; would be great to get it from Gqrx + return freq - (ifreq + 129600*2 + lsb_if_offset) def get_rig_freq(rs): rs.send(b'm\n') @@ -137,6 +141,11 @@ def set_gqrx_lnb_lo(gs, freq, ifreq, isusb): gs.send('LNB_LO {}'.format(lnb).encode()) gs.recv(1024) +def reset_gqrx(gs, ifreq): + set_gqrx_lnb_lo(gs, 0, 0, True) + set_gqrx_freq(gs, 28800000) + set_gqrx_freq(gs, ifreq) + def main(): parser = argparse.ArgumentParser() parser.add_argument('-ga', '--gqrx-address', type=str, default='localhost', @@ -169,7 +178,9 @@ def main(): return 1 try: - if_freq = int(args.ifreq * 1e6) + if_freq = int(args.ifreq * 1e6) + #reset_gqrx(gs, if_freq) + old_is_usb = False old_rig_freq = -1 # force initial update old_gqrx_freq = -1 # force initial update @@ -209,6 +220,8 @@ def main(): # LNB LO frequency must be updated (even if allow_rig_to_gqrx is # false). if rig_freq != old_rig_freq or is_usb != old_is_usb: + #if abs(rig_freq - old_rig_freq) > 500000: + # reset_gqrx(gs, if_freq) if DEBUG: print("\nRig freq changed -- update LNB LO\n") set_gqrx_lnb_lo(gs, rig_freq, if_freq, is_usb)