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.

This commit is contained in:
Rob French 2020-10-27 12:45:14 -05:00
parent bb5a0579b9
commit 40c053ae9f
1 changed files with 18 additions and 5 deletions

View File

@ -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)