mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	Starting on the data input and waterfall display necessities ...
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@332 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									4ef03f3b8e
								
							
						
					
					
						commit
						170e192c89
					
				
							
								
								
									
										12
									
								
								Makefile.win
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								Makefile.win
									
									
									
									
									
								
							@ -19,12 +19,12 @@ SRCS2F90 = a2d.f90 astro0.f90 audio_init.f90 azdist0.f90 \
 | 
			
		||||
	i1tor4.f90 pix2d65.f90 rfile.f90 savedata.f90 spec.f90 \
 | 
			
		||||
	wsjtgen.f90 runqqq.f90 fivehz.f90
 | 
			
		||||
 | 
			
		||||
SRCS2F77 = wsjt1.f avesp2.f bzap.f \
 | 
			
		||||
	stdecode.f indexx.f s2shape.f flat2.f gen65.f chkmsg.f \
 | 
			
		||||
	gentone.f \
 | 
			
		||||
	set.f flatten.f db.f pctile.f sort.f ssort.f ps.f smooth.f \
 | 
			
		||||
	peakup.f sync.f detect.f avemsg65.f decode65.f demod64a.f \
 | 
			
		||||
	encode65.f extract.f flat1.f four2.f gencw.f getpfx1.f \
 | 
			
		||||
SRCS2F77 = wsjt1.f bzap.f avesp2.f flatten.f \
 | 
			
		||||
	indexx.f flat2.f gen65.f chkmsg.f \
 | 
			
		||||
	gentone.f gencwid.f \
 | 
			
		||||
	set.f db.f pctile.f sort.f ssort.f ps.f smooth.f \
 | 
			
		||||
	peakup.f avemsg65.f decode65.f demod64a.f \
 | 
			
		||||
	encode65.f extract.f flat1.f four2.f getpfx1.f \
 | 
			
		||||
	getpfx2.f getsnr.f graycode.f grid2k.f interleave63.f k2grid.f \
 | 
			
		||||
	limit.f lpf1.f deep65.f morse.f nchar.f packcall.f packgrid.f \
 | 
			
		||||
	packmsg.f packtext.f setup65.f short65.f slope.f spec2d65.f \
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,6 @@ integer newdat         !New data available for waterfall?       GUI
 | 
			
		||||
integer ndsec          !Dsec in units of 0.1 s                  GUI
 | 
			
		||||
integer ndevin         !Device# for audio input                 GUI
 | 
			
		||||
integer ndevout        !Device# for audio output                GUI
 | 
			
		||||
integer nx             !x coordinate for waterfall pixmap       GUI
 | 
			
		||||
integer mfsample       !Measured sample rate, input             SoundIn
 | 
			
		||||
integer mfsample2      !Measured sample rate, output            SoundOut
 | 
			
		||||
integer ns0            !Time at last ALL.TXT date entry         Decoder
 | 
			
		||||
@ -46,7 +45,7 @@ common/gcom1/Tbuf(1024),ntrbuf(1024),Tsec,rxdelay,txdelay,              &
 | 
			
		||||
     samfacin,samfacout,txsnrdb,y1(NRXMAX),y2(NRXMAX),                  &
 | 
			
		||||
     nmax,iwrite,iread,iwave(NTXMAX),nwave,TxOK,Receiving,Transmitting, &
 | 
			
		||||
     TxFirst,TRPeriod,ibuf,ibuf0,ave,rms,ngo,level,mute,newdat,ndsec,   &
 | 
			
		||||
     ndevin,ndevout,nx,mfsample,mfsample2,ns0,devin_name,devout_name
 | 
			
		||||
     ndevin,ndevout,mfsample,mfsample2,ns0,devin_name,devout_name
 | 
			
		||||
 | 
			
		||||
!### volatile /gcom1/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -120,6 +120,7 @@ static int SoundOut( void *inputBuffer, void *outputBuffer,
 | 
			
		||||
  } else {
 | 
			
		||||
    memset((void*)outputBuffer, 0, 2*sizeof(short)*framesPerBuffer);
 | 
			
		||||
  }
 | 
			
		||||
  fivehz_();                               //Call fortran routine
 | 
			
		||||
  fivehztx_();                             //Call fortran routine
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										28
									
								
								spec.f90
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								spec.f90
									
									
									
									
									
								
							@ -1,17 +1,18 @@
 | 
			
		||||
!---------------------------------------------------- spec
 | 
			
		||||
subroutine spec(brightness,contrast,logmap,ngain,nspeed,a)
 | 
			
		||||
 | 
			
		||||
! Called by SpecJT in its TopLevel Python code.  
 | 
			
		||||
! Called by SpecJT.  
 | 
			
		||||
! Probably should use the "!f2py intent(...)" structure here.
 | 
			
		||||
 | 
			
		||||
! Input:
 | 
			
		||||
  parameter (NX=750,NY=130,NTOT=NX*NY)
 | 
			
		||||
  integer brightness,contrast   !Display parameters
 | 
			
		||||
  integer ngain                 !Digital gain for input audio
 | 
			
		||||
  integer nspeed                !Scrolling speed index
 | 
			
		||||
! Output:
 | 
			
		||||
  integer*2 a(225000)           !Pixel values for 750 x 300 array
 | 
			
		||||
  integer*2 a(NTOT)             !Pixel values for NX x NY array
 | 
			
		||||
 | 
			
		||||
  real a0(225000)               !Save the last 300 spectra
 | 
			
		||||
  real a0(NTOT)                 !Save the last NY spectra
 | 
			
		||||
  integer nstep(5)
 | 
			
		||||
  integer b0,c0
 | 
			
		||||
  real x(4096)                  !Data for FFT
 | 
			
		||||
@ -45,7 +46,6 @@ subroutine spec(brightness,contrast,logmap,ngain,nspeed,a)
 | 
			
		||||
     c0=-999
 | 
			
		||||
     logmap0=-999
 | 
			
		||||
     nspeed0=-999
 | 
			
		||||
     nx=0
 | 
			
		||||
     ncall=0
 | 
			
		||||
     jza=0
 | 
			
		||||
     rms=0.
 | 
			
		||||
@ -123,15 +123,15 @@ subroutine spec(brightness,contrast,logmap,ngain,nspeed,a)
 | 
			
		||||
 | 
			
		||||
  if(nsum.ge.nstep(nspeed)) then      !Integrate for specified time
 | 
			
		||||
     nlines=nlines+1
 | 
			
		||||
     do i=225000,751,-1               !Move spectra up one row
 | 
			
		||||
        a0(i)=a0(i-750)               ! (will be "down" on display)
 | 
			
		||||
     do i=NTOT,NX+1,-1               !Move spectra up one row
 | 
			
		||||
        a0(i)=a0(i-NX)               ! (will be "down" on display)
 | 
			
		||||
     enddo
 | 
			
		||||
     if(ndiskdat.eq.1 .and. nlines.eq.1) then
 | 
			
		||||
        do i=1,750
 | 
			
		||||
        do i=1,NX
 | 
			
		||||
           a0(i)=255
 | 
			
		||||
        enddo
 | 
			
		||||
        do i=225000,751,-1
 | 
			
		||||
           a0(i)=a0(i-750)
 | 
			
		||||
        do i=NTOT,NX+1,-1
 | 
			
		||||
           a0(i)=a0(i-NX)
 | 
			
		||||
        enddo
 | 
			
		||||
     endif
 | 
			
		||||
 | 
			
		||||
@ -142,10 +142,10 @@ subroutine spec(brightness,contrast,logmap,ngain,nspeed,a)
 | 
			
		||||
        i0=182 + nint((nfmid-1500)/df)
 | 
			
		||||
        if(i0.lt.0) ia=1-i0
 | 
			
		||||
     else if(nfrange.eq.4000) then
 | 
			
		||||
        i0=nint(nfmid/df - 752.0)
 | 
			
		||||
        i0=nint(nfmid/df - (NX+2.0))
 | 
			
		||||
        if(i0.lt.0) ia=1-i0/2
 | 
			
		||||
     endif
 | 
			
		||||
     do i=ia,750                       !Insert new data in top row
 | 
			
		||||
     do i=ia,NX                       !Insert new data in top row
 | 
			
		||||
        if(nfrange.eq.2000) then
 | 
			
		||||
           a0(i)=5*ss(i+i0)/nsum
 | 
			
		||||
        else if(nfrange.eq.4000) then
 | 
			
		||||
@ -158,7 +158,7 @@ subroutine spec(brightness,contrast,logmap,ngain,nspeed,a)
 | 
			
		||||
     do i=1,nh                         !Zero the accumulating array
 | 
			
		||||
        ss(i)=0.
 | 
			
		||||
     enddo
 | 
			
		||||
     if(jz.lt.300) jz=jz+1
 | 
			
		||||
     if(jz.lt.NY) jz=jz+1
 | 
			
		||||
  endif
 | 
			
		||||
 | 
			
		||||
  if(ndiskdat.eq.1) then
 | 
			
		||||
@ -171,11 +171,11 @@ subroutine spec(brightness,contrast,logmap,ngain,nspeed,a)
 | 
			
		||||
  if(npts.ge.4096) go to 10
 | 
			
		||||
 | 
			
		||||
!  Compute pixel values 
 | 
			
		||||
  iz=750
 | 
			
		||||
  iz=NX
 | 
			
		||||
  logmap=0
 | 
			
		||||
  if(brightness.ne.b0 .or. contrast.ne.c0 .or. logmap.ne.logmap0 .or.    &
 | 
			
		||||
          nspeed.ne.nspeed0 .or. nlines.gt.1) then
 | 
			
		||||
     iz=225000
 | 
			
		||||
     iz=NTOT
 | 
			
		||||
     gain=40*sqrt(nstep(nspeed)/5.0) * 5.0**(0.01*contrast)
 | 
			
		||||
     gamma=1.3 + 0.01*contrast
 | 
			
		||||
     offset=(brightness+64.0)/2
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								specjt.py
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								specjt.py
									
									
									
									
									
								
							@ -68,11 +68,19 @@ tol0=400
 | 
			
		||||
ttot=0.0
 | 
			
		||||
 | 
			
		||||
c=Canvas()
 | 
			
		||||
a=zeros(225000,'s')
 | 
			
		||||
im=Image.new('P',(750,300))
 | 
			
		||||
 | 
			
		||||
a=zeros(750*130,'s')
 | 
			
		||||
im=Image.new('P',(750,130))
 | 
			
		||||
line0=Image.new('P',(750,1))  #Image fragment for top line of waterfall
 | 
			
		||||
draw=ImageDraw.Draw(im)
 | 
			
		||||
pim=ImageTk.PhotoImage(im)
 | 
			
		||||
 | 
			
		||||
a2=zeros(750*130,'s')
 | 
			
		||||
im2=Image.new('P',(750,130))
 | 
			
		||||
line02=Image.new('P',(750,1)) #Image fragment for top line of zoomed waterfall
 | 
			
		||||
draw2=ImageDraw.Draw(im2)
 | 
			
		||||
pim2=ImageTk.PhotoImage(im2)
 | 
			
		||||
 | 
			
		||||
balloon=Pmw.Balloon(root)
 | 
			
		||||
 | 
			
		||||
def pal_gray0():
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user