mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-26 22:28:41 -05:00
Changed specjt to allow selected BW for upper waterfall.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@490 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
0807ab8cd5
commit
c309bf79f7
12
spec.f90
12
spec.f90
@ -56,14 +56,14 @@ subroutine spec(brightness,contrast,ngain,nspeed,a,a2)
|
|||||||
gamma=1.3 + 0.01*contrast
|
gamma=1.3 + 0.01*contrast
|
||||||
offset=(brightness+64.0)/2
|
offset=(brightness+64.0)/2
|
||||||
fac=20.0/nadd
|
fac=20.0/nadd
|
||||||
|
foffset=0.001*(1270+nfcal)
|
||||||
nbpp=(nfb-nfa)*NFFT/(96.0*NX) !Bins per pixel in wideband (upper) waterfall
|
nbpp=(nfb-nfa)*NFFT/(96.0*NX) !Bins per pixel in wideband (upper) waterfall
|
||||||
fselect=mousefqso + 1.6
|
fselect=mousefqso + foffset
|
||||||
imid=nint(1000.0*(fselect-125.0+48.0)/df)
|
imid=nint(1000.0*(fselect-125.0+48.0)/df)
|
||||||
fmid=0.5*(nfa+nfb)
|
fmid=0.5*(nfa+nfb) + foffset
|
||||||
imid0=nint(1000.0*(fmid-125.0+48.0)/df)
|
imid0=nint(1000.0*(fmid-125.0+48.0)/df) - nbpp/2 !Last term is empirical
|
||||||
i0=imid-374
|
i0=imid-375
|
||||||
ii0=imid-374*nbpp
|
ii0=imid0-375*nbpp
|
||||||
if(nfullspec.eq.1) then
|
if(nfullspec.eq.1) then
|
||||||
nbpp=NFFT/NX
|
nbpp=NFFT/NX
|
||||||
ii0=0
|
ii0=0
|
||||||
|
122
specjt.py
122
specjt.py
@ -35,6 +35,7 @@ b0=0
|
|||||||
c0=0
|
c0=0
|
||||||
g0=0
|
g0=0
|
||||||
g.cmap="Linrad"
|
g.cmap="Linrad"
|
||||||
|
bw=96.0
|
||||||
df=2.69165
|
df=2.69165
|
||||||
fmid=1500
|
fmid=1500
|
||||||
fmid0=1500
|
fmid0=1500
|
||||||
@ -110,16 +111,14 @@ def pal_AFMHot():
|
|||||||
#---------------------------------------------------- fdf_change
|
#---------------------------------------------------- fdf_change
|
||||||
# Readout of graphical cursor location
|
# Readout of graphical cursor location
|
||||||
def fdf_change(event):
|
def fdf_change(event):
|
||||||
|
global bw
|
||||||
bw=float(Audio.gcom2.nfb - Audio.gcom2.nfa)
|
fmid=0.5*float(Audio.gcom2.nfb + Audio.gcom2.nfa)
|
||||||
fmid=130.0
|
if Audio.gcom2.nfullspec: fmid=125.0 - 2.2 #Empirical
|
||||||
if Audio.gcom2.nfullspec:
|
|
||||||
bw=96.0 #Total bw 96 kHz
|
|
||||||
fmid=125.0 - 2.2 #Empirical
|
|
||||||
df=bw/NX #kHz per pixel
|
df=bw/NX #kHz per pixel
|
||||||
g.Freq=df*(event.x-375) + fmid
|
g.Freq=df*(event.x-375) + fmid
|
||||||
n=int(g.Freq+0.5)
|
n=int(g.Freq+0.5)
|
||||||
t="%d" % (n,)
|
t="%d" % (n,)
|
||||||
|
t="%d " % event.x + t ### for tests only
|
||||||
if g.fc[n] != "":
|
if g.fc[n] != "":
|
||||||
t=t + ": " + g.fc[n]
|
t=t + ": " + g.fc[n]
|
||||||
fdf.configure(text=t)
|
fdf.configure(text=t)
|
||||||
@ -149,14 +148,19 @@ def ftnstr(x):
|
|||||||
|
|
||||||
#---------------------------------------------------- df_mark
|
#---------------------------------------------------- df_mark
|
||||||
def df_mark():
|
def df_mark():
|
||||||
|
global bw
|
||||||
draw_axis()
|
draw_axis()
|
||||||
# Mark QSO freq in top graph
|
# Mark QSO freq in top graph
|
||||||
color='green'
|
color='green'
|
||||||
df=96.0/750.0
|
fmid=0.5*float(Audio.gcom2.nfb + Audio.gcom2.nfa)
|
||||||
x1=393.0 + (Audio.gcom2.mousefqso-125)/df
|
if Audio.gcom2.nfullspec: fmid=125.0 - 2.3 #Empirical
|
||||||
|
df=bw/NX #kHz per pixel
|
||||||
|
# print 'A ',Audio.gcom2.nfullspec,bw,df,fmid
|
||||||
|
# These 375's were 393:
|
||||||
|
x1=375.0 + (Audio.gcom2.mousefqso-fmid)/df
|
||||||
c.create_line(x1,25,x1,12,fill=color,width=2)
|
c.create_line(x1,25,x1,12,fill=color,width=2)
|
||||||
x1=393.0 + (Audio.gcom2.nfa-125)/df
|
x1=375.0 + (Audio.gcom2.nfa-fmid)/df
|
||||||
x2=393.0 + (Audio.gcom2.nfb-125)/df
|
x2=375.0 + (Audio.gcom2.nfb-fmid)/df
|
||||||
c.create_line(x1,25,x2,25,fill=color,width=2)
|
c.create_line(x1,25,x2,25,fill=color,width=2)
|
||||||
|
|
||||||
df=96000.0/32768.0
|
df=96000.0/32768.0
|
||||||
@ -174,6 +178,52 @@ def df_mark():
|
|||||||
if i!=1: c2.create_line(x1,25,x1,j,fill=color,width=2)
|
if i!=1: c2.create_line(x1,25,x1,j,fill=color,width=2)
|
||||||
color='red'
|
color='red'
|
||||||
|
|
||||||
|
#-------------------------------------------------------- draw_axis
|
||||||
|
def draw_axis():
|
||||||
|
c.delete(ALL)
|
||||||
|
xdf=bw/NX #kHz per pixel
|
||||||
|
xmid=0.5*float(Audio.gcom2.nfb + Audio.gcom2.nfa)
|
||||||
|
if Audio.gcom2.nfullspec:
|
||||||
|
xmid=125.0 - 2.3 #Empirical
|
||||||
|
x1=int(xmid-0.6*bw) #Make it too wide, to be
|
||||||
|
x2=int(xmid+0.6*bw) #sure to get all the numbers
|
||||||
|
# print 'B ',Audio.gcom2.nfullspec,bw,xdf,xmid
|
||||||
|
ilab=10
|
||||||
|
if bw <= 60.0: ilab=5
|
||||||
|
if bw <= 30.0: ilab=2
|
||||||
|
for ix in range(x1,x2,1):
|
||||||
|
i=0.5*NX + (ix-xmid)/xdf
|
||||||
|
j=20
|
||||||
|
if (ix%5)==0: j=16
|
||||||
|
if (ix%ilab)==0 :
|
||||||
|
j=16
|
||||||
|
x=i-1
|
||||||
|
if ix<100: x=x+1
|
||||||
|
y=8
|
||||||
|
c.create_text(x,y,text=str(ix))
|
||||||
|
c.create_line(i,25,i,j,fill='black') #Draw the upper scale
|
||||||
|
|
||||||
|
c2.delete(ALL)
|
||||||
|
xmid2=0
|
||||||
|
bw2=750.0*96000.0/32768.0 #approx 2197.27 Hz
|
||||||
|
x1=int(xmid-0.5*bw2)/100 - 1
|
||||||
|
x1=100*x1
|
||||||
|
x2=int(xmid+0.5*bw2)
|
||||||
|
xdf2=bw2/NX
|
||||||
|
for ix in range(x1,x2,20):
|
||||||
|
i=0.5*NX + (ix-xmid2)/xdf2
|
||||||
|
j=20
|
||||||
|
# if (ix%5)==0: j=16
|
||||||
|
if (ix%100)==0 :
|
||||||
|
j=16
|
||||||
|
x=i-1
|
||||||
|
if ix<1000: x=x+2
|
||||||
|
if ix<0: x=x-2
|
||||||
|
y=8
|
||||||
|
c2.create_text(x,y,text=str(ix))
|
||||||
|
c2.create_line(i,25,i,j,fill='black')
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------- freq_range
|
#---------------------------------------------------- freq_range
|
||||||
def freq_range(event):
|
def freq_range(event):
|
||||||
# Move frequency scale left or right in 100 Hz increments
|
# Move frequency scale left or right in 100 Hz increments
|
||||||
@ -203,7 +253,7 @@ def freeze_decode2(event):
|
|||||||
#---------------------------------------------------- update
|
#---------------------------------------------------- update
|
||||||
def update():
|
def update():
|
||||||
global a,a2,b0,c0,g0,im,im2,isec0,line0,line02,newMinute,\
|
global a,a2,b0,c0,g0,im,im2,isec0,line0,line02,newMinute,\
|
||||||
nscroll,pim,pim2,nfa0,nfb0, \
|
nscroll,pim,pim2,nfa0,nfb0,bw, \
|
||||||
root_geom,t0,mousedf0,mousefqso0,nfreeze0,tol0,mode0,nmark0, \
|
root_geom,t0,mousedf0,mousefqso0,nfreeze0,tol0,mode0,nmark0, \
|
||||||
fmid,fmid0,frange,frange0,dftolerance0
|
fmid,fmid0,frange,frange0,dftolerance0
|
||||||
|
|
||||||
@ -219,6 +269,12 @@ def update():
|
|||||||
if isec==0: nscroll=0
|
if isec==0: nscroll=0
|
||||||
if isec==59: newMinute=1
|
if isec==59: newMinute=1
|
||||||
|
|
||||||
|
nbpp=int((Audio.gcom2.nfb - Audio.gcom2.nfa)*32768/(96.0*NX))
|
||||||
|
bw=750.0*(96.0/32768.0)*nbpp
|
||||||
|
if Audio.gcom2.nfullspec:
|
||||||
|
nbpp=int(32768.0/NX)
|
||||||
|
bw=750.0*(96.0/32768.0)*nbpp
|
||||||
|
|
||||||
if g.showspecjt==1:
|
if g.showspecjt==1:
|
||||||
showspecjt()
|
showspecjt()
|
||||||
nspeed=nspeed0.get() #Waterfall update rate
|
nspeed=nspeed0.get() #Waterfall update rate
|
||||||
@ -321,50 +377,6 @@ def update():
|
|||||||
|
|
||||||
ltime.after(200,update) #Reset the timer
|
ltime.after(200,update) #Reset the timer
|
||||||
|
|
||||||
#-------------------------------------------------------- draw_axis
|
|
||||||
def draw_axis():
|
|
||||||
c.delete(ALL)
|
|
||||||
bw=float(Audio.gcom2.nfb - Audio.gcom2.nfa)
|
|
||||||
xmid=130.0
|
|
||||||
if Audio.gcom2.nfullspec:
|
|
||||||
bw=96.0 #Total bw 96 kHz
|
|
||||||
xmid=125.0 - 2.3 #Empirical
|
|
||||||
xdf=bw/NX #kHz per pixel
|
|
||||||
x1=int(xmid-0.6*bw) #Make it too wide, to be
|
|
||||||
x2=int(xmid+0.6*bw) #sure to get all the numbers
|
|
||||||
# print Audio.gcom2.nfullspec,bw,xdf,x1,x2
|
|
||||||
for ix in range(x1,x2,1):
|
|
||||||
i=0.5*NX + (ix-xmid)/xdf
|
|
||||||
j=20
|
|
||||||
if (ix%5)==0: j=16
|
|
||||||
if (ix%10)==0 :
|
|
||||||
j=16
|
|
||||||
x=i-1
|
|
||||||
if ix<100: x=x+1
|
|
||||||
y=8
|
|
||||||
c.create_text(x,y,text=str(ix))
|
|
||||||
c.create_line(i,25,i,j,fill='black') #Draw the upper scale
|
|
||||||
|
|
||||||
c2.delete(ALL)
|
|
||||||
xmid2=0
|
|
||||||
bw2=750.0*96000.0/32768.0 #approx 2197.27 Hz
|
|
||||||
x1=int(xmid-0.5*bw2)/100 - 1
|
|
||||||
x1=100*x1
|
|
||||||
x2=int(xmid+0.5*bw2)
|
|
||||||
xdf2=bw2/NX
|
|
||||||
for ix in range(x1,x2,20):
|
|
||||||
i=0.5*NX + (ix-xmid2)/xdf2
|
|
||||||
j=20
|
|
||||||
# if (ix%5)==0: j=16
|
|
||||||
if (ix%100)==0 :
|
|
||||||
j=16
|
|
||||||
x=i-1
|
|
||||||
if ix<1000: x=x+2
|
|
||||||
if ix<0: x=x-2
|
|
||||||
y=8
|
|
||||||
c2.create_text(x,y,text=str(ix))
|
|
||||||
c2.create_line(i,25,i,j,fill='black')
|
|
||||||
|
|
||||||
#-------------------------------------------------------- Create GUI widgets
|
#-------------------------------------------------------- Create GUI widgets
|
||||||
|
|
||||||
#-------------------------------------------------------- Menu bar
|
#-------------------------------------------------------- Menu bar
|
||||||
|
Loading…
Reference in New Issue
Block a user