diff --git a/gcom2.f90 b/gcom2.f90 index 2cf692a58..a8f0fedc3 100644 --- a/gcom2.f90 +++ b/gcom2.f90 @@ -1,6 +1,7 @@ ! Variable Purpose Set in Thread !------------------------------------------------------------------------- real*8 fcenter !Linrad center freq, from pkt header recvpkt +real*8 forcefcenter !Optional override of fcenter GUI real ps0 !Spectrum of best ping, FSK441/JT6m Decoder real psavg !Average spectrum Decoder real s2 !2d spectrum for horizontal waterfall GUI @@ -105,7 +106,7 @@ character*80 filetokillb character*12 pttport character*8 utcdata !HHMM UTC for the processed data Decoder -common/gcom2/fcenter,ps0(431),psavg(450),s2(64,3100),ccf(-5:540), & +common/gcom2/fcenter,forcefcenter,ps0(431),psavg(450),s2(64,3100),ccf(-5:540), & green(500),fselect,pctlost,pctblank,rxnoise,dphi,ngreen,dgain, & ndecoding,ndecoding0,mcall3,mousebutton,multicast,nsetftx,ierr, & ndecdone,nfloat,lauto,mantx,nrestart,ntr,nmsg,nsave,nadd5, & diff --git a/map65.py b/map65.py index ce3a6df4f..8f8402729 100644 --- a/map65.py +++ b/map65.py @@ -1344,6 +1344,10 @@ def update(): Audio.gcom2.nt1=options.nt1.get() except: Audio.gcom2.nt1=48 + try: + Audio.gcom2.forcefcenter=options.forceFcenter.get() + except: + Audio.gcom2.forcefcenter=0.0 t=options.savedir.get() + \ ' ' + \ ' ' @@ -1862,6 +1866,7 @@ try: elif key == 'fcal': options.fcal.set(value) elif key == 'CSmin': options.ncsmin.set(value) elif key == 'Nt1': options.nt1.set(value) + elif key == 'ForceFcenter': options.forceFcenter.set(value) elif key == 'dphi': options.dphi.set(value) elif key == 'SaveDir': options.savedir.set(value.replace("#"," ")) elif key == 'AzElDir': options.azeldir.set(value.replace("#"," ")) @@ -1960,6 +1965,7 @@ f.write("fb " + str(options.fb.get()) + "\n") f.write("fcal " + str(options.fcal.get()) + "\n") f.write("CSmin " + str(options.ncsmin.get()) + "\n") f.write("Nt1 " + str(options.nt1.get()) + "\n") +f.write("ForceFcenter " + str(options.forceFcenter.get()) + "\n") savedir2=options.savedir.get().replace(" ","#") azeldir2=options.azeldir.get().replace(" ","#") f.write("SaveDir " + str(savedir2) + "\n") diff --git a/options.py b/options.py index 46cd41ba1..e0bc9d01d 100644 --- a/options.py +++ b/options.py @@ -30,6 +30,7 @@ ndevin=IntVar() ndevout=IntVar() DevinName=StringVar() DevoutName=StringVar() +forceFcenter=DoubleVar() samfacin=DoubleVar() samfacout=DoubleVar() Template1=StringVar() @@ -117,13 +118,15 @@ min_callsign_entry=Pmw.EntryField(g3.interior(),labelpos=W, \ label_text='CSmin:',entry_width=9,value=4,entry_textvariable=ncsmin) nt1_entry=Pmw.EntryField(g3.interior(),labelpos=W, \ label_text='Rx t1:',entry_width=9,value=48,entry_textvariable=nt1) +forceFreq_entry=Pmw.EntryField(g3.interior(),labelpos=W, \ + label_text='Force Fcenter:',entry_width=9,value=0,entry_textvariable=forceFcenter) savedir_entry=Pmw.EntryField(g3.interior(),labelpos=W,label_text='SaveDir:', entry_width=23,value=g.appdir+'\save',entry_textvariable=savedir) azeldir_entry=Pmw.EntryField(g3.interior(),labelpos=W,label_text='AzElDir:', entry_width=23,value=g.appdir,entry_textvariable=azeldir) widgets = (temp_prefix,aux_ra,aux_dec,nkeep_entry,dphi_entry, \ fa_entry,fb_entry,fcal_entry,min_callsign_entry, \ - nt1_entry,savedir_entry,azeldir_entry,) + nt1_entry,forceFreq_entry,savedir_entry,azeldir_entry,) for widget in widgets: widget.pack(padx=2,pady=2) Pmw.alignlabels(widgets) diff --git a/recvpkt.F90 b/recvpkt.F90 index dcc337e00..77a76f734 100644 --- a/recvpkt.F90 +++ b/recvpkt.F90 @@ -47,6 +47,7 @@ subroutine recvpkt(iarg) nsec=mod(Tsec,86400.d0) !Time according to MAP65 nseclr=msec/1000 !Time according to Linrad fcenter=center_freq + if(forcefcenter.gt.0.0) fcenter=forcefcenter ! Reset buffer pointers at start of minute. ns=mod(nsec,60) @@ -145,6 +146,7 @@ subroutine recvpkt(iarg) if(ns.ge.nt1 .and. ndone1.eq.0 .and. synced) then nutc=mutc fcenter=center_freq + if(forcefcenter.gt.0.0) fcenter=forcefcenter kbuf=kb kk=k ndiskdat=0