mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	Tick marks on waterfall displays.
Display percent of deopped packets. Save all decodes to ALL65.txt. Shift F12/F11 to inrecment/decrement fqso. Save even/odd ip00 separately. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@414 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									648d63e207
								
							
						
					
					
						commit
						3b219465c7
					
				@ -11,7 +11,7 @@
 | 
			
		||||
!   18  test file to be transmitted (wsjtgen.f90)
 | 
			
		||||
!   19  bandmap.txt
 | 
			
		||||
!   20  bandmap2.txt
 | 
			
		||||
!   21  ALL.TXT
 | 
			
		||||
!   21  ALL65.TXT
 | 
			
		||||
!   22  kvasd.dat
 | 
			
		||||
!   23  CALL3.TXT
 | 
			
		||||
 | 
			
		||||
@ -88,10 +88,10 @@ subroutine ftn_init
 | 
			
		||||
  endfile 20
 | 
			
		||||
 | 
			
		||||
#ifdef Win32
 | 
			
		||||
  open(21,file=appdir(:iz)//'/ALL.TXT',status='unknown',                   &
 | 
			
		||||
  open(21,file=appdir(:iz)//'/ALL65.TXT',status='unknown',                   &
 | 
			
		||||
       access='append',share='denynone',err=950)
 | 
			
		||||
#else
 | 
			
		||||
  open(21,file=appdir(:iz)//'/ALL.TXT',status='unknown',                   &
 | 
			
		||||
  open(21,file=appdir(:iz)//'/ALL65.TXT',status='unknown',                   &
 | 
			
		||||
	access='append',err=950)
 | 
			
		||||
  do i=1,9999999
 | 
			
		||||
     read(21,*,end=10) cjunk
 | 
			
		||||
@ -135,7 +135,7 @@ subroutine ftn_init
 | 
			
		||||
  stop
 | 
			
		||||
940 print*,'Error opening DEBUG.TXT'
 | 
			
		||||
  stop
 | 
			
		||||
950 print*,'Error opening ALL.TXT'
 | 
			
		||||
950 print*,'Error opening ALL65.TXT'
 | 
			
		||||
  stop
 | 
			
		||||
 | 
			
		||||
end subroutine ftn_init
 | 
			
		||||
 | 
			
		||||
@ -6,6 +6,7 @@ real s2                !2d spectrum for horizontal waterfall    GUI
 | 
			
		||||
real ccf               !CCF in time (blue curve)                Decoder
 | 
			
		||||
real green             !Data for green line                     GUI
 | 
			
		||||
real fselect           !Specified QSO frequency                 GUI
 | 
			
		||||
real pctlost           !Percent of lost packets                 Decoder
 | 
			
		||||
real rxnoise           !Rx noise in dB                        recvpkt
 | 
			
		||||
integer ngreen         !Length of green                         GUI
 | 
			
		||||
real dgain             !Digital audio gain setting              GUI
 | 
			
		||||
@ -90,7 +91,7 @@ character*12 pttport
 | 
			
		||||
character*8 utcdata     !HHMM UTC for the processed data       Decoder
 | 
			
		||||
 | 
			
		||||
common/gcom2/ps0(431),psavg(450),s2(64,3100),ccf(-5:540),               &
 | 
			
		||||
     green(500),fselect,rxnoise,ngreen,dgain,iter,ndecoding,          &
 | 
			
		||||
     green(500),fselect,pctlost,rxnoise,ngreen,dgain,iter,ndecoding,    &
 | 
			
		||||
     ndecoding0,mousebutton,   &
 | 
			
		||||
     ndecdone,npingtime,ierr,lauto,mantx,nrestart,ntr,nmsg,nsave,nadd5, &
 | 
			
		||||
     dftolerance,LDecoded,rxdone,monitoring,nzap,nsavecum,minsigdb,     &
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								map65.py
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								map65.py
									
									
									
									
									
								
							@ -880,6 +880,14 @@ def left_arrow(event=NONE):
 | 
			
		||||
    if n==Audio.gcom2.mousedf: n=n-5
 | 
			
		||||
    Audio.gcom2.mousedf=n
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------ inc_fqso
 | 
			
		||||
def inc_fqso(event=NONE):
 | 
			
		||||
    Audio.gcom2.mousefqso=Audio.gcom2.mousefqso + 1
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------ dec_fqso
 | 
			
		||||
def dec_fqso(event=NONE):
 | 
			
		||||
    Audio.gcom2.mousefqso=Audio.gcom2.mousefqso - 1
 | 
			
		||||
    
 | 
			
		||||
#------------------------------------------------------ GenStdMsgs
 | 
			
		||||
def GenStdMsgs(event=NONE):
 | 
			
		||||
    global altmsg
 | 
			
		||||
@ -1086,8 +1094,10 @@ def update():
 | 
			
		||||
        t=time.strftime('%Y %b %d\n%H:%M:%S',utc)
 | 
			
		||||
        Audio.gcom2.utcdate=t[:12]
 | 
			
		||||
        ldate.configure(text=t)
 | 
			
		||||
        t="Rx noise: %.1f" % Audio.gcom2.rxnoise
 | 
			
		||||
        t="Rx noise: %.1f dB" % Audio.gcom2.rxnoise
 | 
			
		||||
        msg5.configure(text=t)
 | 
			
		||||
        t="Drop: %.1f %%" % Audio.gcom2.pctlost
 | 
			
		||||
        msg6.configure(text=t)
 | 
			
		||||
        root_geom=root.geometry()
 | 
			
		||||
        try:
 | 
			
		||||
            bm_geom=bm.geometry()
 | 
			
		||||
@ -1363,7 +1373,7 @@ filemenu.add_separator()
 | 
			
		||||
filemenu.add('command', label = 'Delete all *.WAV files in RxWav', \
 | 
			
		||||
             command = delwav)
 | 
			
		||||
filemenu.add_separator()
 | 
			
		||||
filemenu.add('command', label = 'Erase ALL.TXT', command = del_all)
 | 
			
		||||
filemenu.add('command', label = 'Erase ALL65.TXT', command = del_all)
 | 
			
		||||
filemenu.add_separator()
 | 
			
		||||
filemenu.add('command', label = 'Exit', command = quit)
 | 
			
		||||
 | 
			
		||||
@ -1528,7 +1538,9 @@ root.bind_all('<Control-F8>', ModeJT65C)
 | 
			
		||||
root.bind_all('<F10>', showspecjt)
 | 
			
		||||
root.bind_all('<Shift-F10>', astro1)
 | 
			
		||||
root.bind_all('<F11>',left_arrow)
 | 
			
		||||
root.bind_all('<Shift-F11>',dec_fqso)
 | 
			
		||||
root.bind_all('<F12>',right_arrow)
 | 
			
		||||
root.bind_all('<Shift-F12>',inc_fqso)
 | 
			
		||||
root.bind_all('<Alt-Key-1>',btx1)
 | 
			
		||||
root.bind_all('<Alt-Key-2>',btx2)
 | 
			
		||||
root.bind_all('<Alt-Key-3>',btx3)
 | 
			
		||||
@ -1754,6 +1766,8 @@ msg4=Message(iframe6, text="", width=300,relief=SUNKEN)
 | 
			
		||||
msg4.pack(side=LEFT, fill=X, padx=1)
 | 
			
		||||
msg5=Message(iframe6, text="", width=300,relief=SUNKEN)
 | 
			
		||||
msg5.pack(side=LEFT, fill=X, padx=1)
 | 
			
		||||
msg6=Message(iframe6, text="", width=300,relief=SUNKEN)
 | 
			
		||||
msg6.pack(side=LEFT, fill=X, padx=1)
 | 
			
		||||
msg7=Message(iframe6, text='                        ', width=300,relief=SUNKEN)
 | 
			
		||||
msg7.pack(side=RIGHT, fill=X, padx=1)
 | 
			
		||||
iframe6.pack(expand=1, fill=X, padx=4)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								map65a.f90
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								map65a.f90
									
									
									
									
									
								
							@ -15,17 +15,20 @@ subroutine map65a
 | 
			
		||||
  character*3 shmsg0(4),shmsg
 | 
			
		||||
  integer indx(MAXMSG),nsiz(MAXMSG)
 | 
			
		||||
  logical done(MAXMSG)
 | 
			
		||||
  logical even
 | 
			
		||||
  character decoded*22,blank*22
 | 
			
		||||
  include 'datcom.f90'
 | 
			
		||||
  common/spcom/ip0,ss(4,322,NFFT),ss5(322,NFFT)
 | 
			
		||||
  data blank/'                      '/
 | 
			
		||||
  data shmsg0/'ATT','RO ','RRR','73 '/
 | 
			
		||||
  data nfile/0/,nutc0/-999/,nid/0/,ip00/1/
 | 
			
		||||
  data nfile/0/,nutc0/-999/,nid/0/,ip000/1/,ip001/1/
 | 
			
		||||
  include 'gcom2.f90'
 | 
			
		||||
  save
 | 
			
		||||
 | 
			
		||||
  if(nlost.ne.0) write(*,1001) nutc,nlost
 | 
			
		||||
1001 format('UTC:',i5.4,'   Lost packets:',i6)
 | 
			
		||||
  pctlost=nlost/331.03
 | 
			
		||||
  if(nlost.ne.0) write(*,1001) nutc,nlost,pctlost
 | 
			
		||||
1001 format('UTC:',i5.4,'   Lost packets:',i6,', or',f6.1,' %')
 | 
			
		||||
  even=mod(nutc,2).eq.0
 | 
			
		||||
 | 
			
		||||
  if(newdat2.eq.0) newdat2=1                      !###
 | 
			
		||||
  if(newdat2.gt.0) nid=1
 | 
			
		||||
@ -75,7 +78,8 @@ subroutine map65a
 | 
			
		||||
     nfilt=2                      !nfilt=2 is faster for selected freq
 | 
			
		||||
     do kpol=0,3
 | 
			
		||||
        freq=fselect + 0.001*mousedf
 | 
			
		||||
        ip0=ip00+kpol
 | 
			
		||||
        if(even) ip0=ip000+kpol
 | 
			
		||||
        if(.not.even) ip0=ip001+kpol
 | 
			
		||||
        if(ip0.gt.4) ip0=ip0-4
 | 
			
		||||
        dt00=2.314240
 | 
			
		||||
        dt=dt00
 | 
			
		||||
@ -91,7 +95,9 @@ subroutine map65a
 | 
			
		||||
        if(nkv.gt.0) go to 5
 | 
			
		||||
     enddo
 | 
			
		||||
 | 
			
		||||
5    ip00=ip0
 | 
			
		||||
5    if(even) ip000=ip0
 | 
			
		||||
     if(.not.even) ip001=ip0
 | 
			
		||||
 | 
			
		||||
     nkHz=nint(freq-1.600)
 | 
			
		||||
     npol=nint(57.2957795*pol)
 | 
			
		||||
     nqual=qual
 | 
			
		||||
@ -304,6 +310,8 @@ subroutine map65a
 | 
			
		||||
           nsync2=nint(10.0*log10(sync2)) - 40 !### empirical ###
 | 
			
		||||
           write(26,1014) f0,ndf,ndf0,ndf1,ndf2,dt,npol,nsync1,       &
 | 
			
		||||
                nsync2,nutc,decoded,nkv,nqual,nhist
 | 
			
		||||
           write(21,1014) f0,ndf,ndf0,ndf1,ndf2,dt,npol,nsync1,       &
 | 
			
		||||
                nsync2,nutc,decoded,nkv,nqual,nhist
 | 
			
		||||
1014       format(f7.3,i5,3i3,f5.1,i5,i3,i4,i5.4,2x,a22,3i3)
 | 
			
		||||
 | 
			
		||||
        endif
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										67
									
								
								specjt.py
									
									
									
									
									
								
							
							
						
						
									
										67
									
								
								specjt.py
									
									
									
									
									
								
							@ -43,6 +43,7 @@ frange0=2000
 | 
			
		||||
isec0=-99
 | 
			
		||||
mode0=""
 | 
			
		||||
mousedf0=0
 | 
			
		||||
mousefqso0=0
 | 
			
		||||
naxis=IntVar()
 | 
			
		||||
ncall=0
 | 
			
		||||
newMinute=0
 | 
			
		||||
@ -123,11 +124,13 @@ def fdf_change2(event):
 | 
			
		||||
def set_fqso(event):
 | 
			
		||||
    n=int(g.Freq + 0.5)
 | 
			
		||||
    Audio.gcom2.mousefqso=n
 | 
			
		||||
    df_mark()
 | 
			
		||||
 | 
			
		||||
#---------------------------------------------------- set_freezedf
 | 
			
		||||
def set_freezedf(event):
 | 
			
		||||
    n=int(g.DFreq + 0.5)
 | 
			
		||||
    Audio.gcom2.mousedf=n
 | 
			
		||||
    df_mark()
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------ ftnstr
 | 
			
		||||
def ftnstr(x):
 | 
			
		||||
@ -139,41 +142,28 @@ def ftnstr(x):
 | 
			
		||||
#---------------------------------------------------- df_mark
 | 
			
		||||
def df_mark():
 | 
			
		||||
    draw_axis()
 | 
			
		||||
    if nmark.get()==0 or Audio.gcom2.nfreeze:
 | 
			
		||||
        fstep=10.0*11025.0/4096.0
 | 
			
		||||
        if g.mode[4:5]=='B': fstep=2*fstep
 | 
			
		||||
        if g.mode[4:5]=='C': fstep=4*fstep
 | 
			
		||||
 | 
			
		||||
# Mark sync tone and top JT65 tone (green) and shorthand tones (red)
 | 
			
		||||
        dx=288.7 + (1500-fmid)/df
 | 
			
		||||
#    if nmark.get()==0 or Audio.gcom2.nfreeze:
 | 
			
		||||
# Mark QSO freq in top graph
 | 
			
		||||
    color='green'
 | 
			
		||||
        x1=(Audio.gcom2.mousedf + 6.6*fstep)/df + dx
 | 
			
		||||
    df=96.0/750.0
 | 
			
		||||
    x1=393.0 + (Audio.gcom2.mousefqso-125)/df
 | 
			
		||||
    c.create_line(x1-0.5,25,x1-0.5,12,fill=color)
 | 
			
		||||
    c.create_line(x1+0.5,25,x1+0.5,12,fill=color)
 | 
			
		||||
 | 
			
		||||
    df=96000.0/32768.0
 | 
			
		||||
# Mark sync tone and top JT65 tone (green) and shorthand tones (red)
 | 
			
		||||
    fstep=20.0*11025.0/4096.0
 | 
			
		||||
    x1=375.0 + (Audio.gcom2.mousedf + 6.6*fstep)/df
 | 
			
		||||
    c2.create_line(x1-0.5,25,x1-0.5,12,fill=color)
 | 
			
		||||
    c2.create_line(x1+0.5,25,x1+0.5,12,fill=color)
 | 
			
		||||
    for i in range(5):
 | 
			
		||||
            x1=(Audio.gcom2.mousedf + i*fstep)/df + dx
 | 
			
		||||
        x1=375.0 + (Audio.gcom2.mousedf + i*fstep)/df
 | 
			
		||||
        j=12
 | 
			
		||||
        if i>0: j=15
 | 
			
		||||
            if i!=1: c.create_line(x1-0.5,25,x1-0.5,j,fill=color)
 | 
			
		||||
            if i!=1: c.create_line(x1+0.5,25,x1+0.5,j,fill=color)
 | 
			
		||||
        if i!=1: c2.create_line(x1-0.5,25,x1-0.5,j,fill=color)
 | 
			
		||||
        if i!=1: c2.create_line(x1+0.5,25,x1+0.5,j,fill=color)
 | 
			
		||||
        color='red'
 | 
			
		||||
 | 
			
		||||
#---------------------------------------------------- change_fmid
 | 
			
		||||
##def change_fmid1():
 | 
			
		||||
##    global fmid
 | 
			
		||||
##    fmid=fmid+100
 | 
			
		||||
##    if fmid>5000-1000*nfr.get(): fmid=5000-1000*nfr.get()
 | 
			
		||||
##
 | 
			
		||||
##def change_fmid2():
 | 
			
		||||
##    global fmid
 | 
			
		||||
##    fmid=fmid-100
 | 
			
		||||
##    if fmid<1000*nfr.get(): fmid=1000*nfr.get()
 | 
			
		||||
##
 | 
			
		||||
##def set_fmid():
 | 
			
		||||
##    global fmid
 | 
			
		||||
##    if nfr.get()==1: fmid=1200
 | 
			
		||||
##    if nfr.get()==2: fmid=2200
 | 
			
		||||
 | 
			
		||||
#---------------------------------------------------- freq_range
 | 
			
		||||
def freq_range(event):
 | 
			
		||||
# Move frequency scale left or right in 100 Hz increments
 | 
			
		||||
@ -221,7 +211,7 @@ def freeze_decode(event):
 | 
			
		||||
def update():
 | 
			
		||||
    global a,a2,b0,c0,g0,im,im2,isec0,line0,line02,newMinute,\
 | 
			
		||||
           nscroll,pim,pim2, \
 | 
			
		||||
           root_geom,t0,mousedf0,nfreeze0,tol0,mode0,nmark0, \
 | 
			
		||||
           root_geom,t0,mousedf0,mousefqso0,nfreeze0,tol0,mode0,nmark0, \
 | 
			
		||||
           fmid,fmid0,frange,frange0
 | 
			
		||||
    
 | 
			
		||||
    utc=time.gmtime(time.time()+0.1*Audio.gcom1.ndsec)
 | 
			
		||||
@ -299,13 +289,14 @@ def update():
 | 
			
		||||
        newMinute=0
 | 
			
		||||
        Audio.gcom2.newspec=0
 | 
			
		||||
 | 
			
		||||
    if (Audio.gcom2.mousedf != mousedf0 or Audio.gcom2.dftolerance != tol0):
 | 
			
		||||
    if (Audio.gcom2.mousedf != mousedf0 or
 | 
			
		||||
            Audio.gcom2.mousefqso != mousefqso0):
 | 
			
		||||
        df_mark()
 | 
			
		||||
        
 | 
			
		||||
# The following int() calls are to ensure that the values copied to
 | 
			
		||||
# mousedf0 and tol0 are static.
 | 
			
		||||
# mousedf0 and mousefqso0 are static.
 | 
			
		||||
        mousedf0=int(Audio.gcom2.mousedf)
 | 
			
		||||
        tol0=int(Audio.gcom2.dftolerance)
 | 
			
		||||
        mousefqso0=int(Audio.gcom2.mousefqso)
 | 
			
		||||
 | 
			
		||||
    if Audio.gcom2.nfreeze != nfreeze0:
 | 
			
		||||
        if not Audio.gcom2.nfreeze: draw_axis()
 | 
			
		||||
@ -376,10 +367,10 @@ def draw_axis():
 | 
			
		||||
            c2.create_text(x,y,text=str(ix))
 | 
			
		||||
        c2.create_line(i,25,i,j,fill='black')
 | 
			
		||||
 | 
			
		||||
    tol=Audio.gcom2.dftolerance
 | 
			
		||||
    x1=(Audio.gcom2.mousedf-tol)/xdf2 + 0.5*NX
 | 
			
		||||
    x2=(Audio.gcom2.mousedf+tol)/xdf2 + 0.5*NX
 | 
			
		||||
    c2.create_line(x1,25,x2,25,fill='green',width=2)
 | 
			
		||||
#    tol=Audio.gcom2.dftolerance
 | 
			
		||||
#    x1=(Audio.gcom2.mousedf-tol)/xdf2 + 0.5*NX
 | 
			
		||||
#    x2=(Audio.gcom2.mousedf+tol)/xdf2 + 0.5*NX
 | 
			
		||||
#    c2.create_line(x1,25,x2,25,fill='green',width=2)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#-------------------------------------------------------- Create GUI widgets
 | 
			
		||||
@ -476,8 +467,6 @@ Widget.bind(c2,"<Shift-Button-3>",freq_range)
 | 
			
		||||
graph2=Canvas(iframe1, bg='black', width=NX, height=NY,bd=0,cursor='crosshair')
 | 
			
		||||
graph2.pack(side=TOP)
 | 
			
		||||
Widget.bind(graph2,"<Motion>",fdf_change2)
 | 
			
		||||
#Widget.bind(graph2,"<Button-1>",decode_request)
 | 
			
		||||
#Widget.bind(graph2,"<Button-3>",decode_request)
 | 
			
		||||
Widget.bind(graph2,"<Button-1>",set_freezedf)
 | 
			
		||||
Widget.bind(graph2,"<Double-Button-1>",freeze_decode)
 | 
			
		||||
iframe1.pack(expand=1, fill=X)
 | 
			
		||||
@ -553,7 +542,9 @@ if g.cmap == "AFMHot":
 | 
			
		||||
    npal.set(5)
 | 
			
		||||
 | 
			
		||||
#---------------------------------------------- Display GUI and start mainloop
 | 
			
		||||
draw_axis()
 | 
			
		||||
#draw_axis()
 | 
			
		||||
df_mark()
 | 
			
		||||
 | 
			
		||||
try:
 | 
			
		||||
    ndevin=g.ndevin.get()
 | 
			
		||||
except:
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,7 @@ C  Compute spectra at four polarizations, using half-symbol steps.
 | 
			
		||||
 | 
			
		||||
!      fac=1.e-4
 | 
			
		||||
!      fac=1.7e-4
 | 
			
		||||
      fac=0.0002 * 10.0**(0.1*(-rxnoise))
 | 
			
		||||
      fac=0.0002 * 10.0**(0.05*(-rxnoise))
 | 
			
		||||
 | 
			
		||||
      hsym=2048.d0*96000.d0/11025.d0     !Samples per half symbol
 | 
			
		||||
      npts=hsym                          !Integral samples per half symbol
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user