mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	Resolve more issues for display of JT4 decodes; improve JT4 sync at low spread.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6679 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									f82ee7c4e3
								
							
						
					
					
						commit
						f5cec462d4
					
				| @ -159,27 +159,30 @@ contains | ||||
| 
 | ||||
|     character*2 :: cqual | ||||
| 
 | ||||
|     write(*,3101) 'A',is_deep,is_average,qual,decoded | ||||
| 3101 format(a1,2L3,f6.1,1x,a22) | ||||
| 
 | ||||
|     if (have_sync) then | ||||
|        if (int(qual).gt.0) then | ||||
|           write(cqual, '(i2)') int(qual) | ||||
|           if (ave.gt.0) then | ||||
|              write(*,1000) params%nutc,snr,dt,freq,sync,decoded,cqual,    & | ||||
|                   char(ichar('A')+ich-1), ave | ||||
|                   char(ichar('A')+ich-1),ave | ||||
|           else | ||||
|              write(*,1000) params%nutc,snr,dt,freq,sync,decoded,cqual,    & | ||||
|                   char(ichar('A')+ich-1) | ||||
|           end if | ||||
|        else | ||||
|           write(*,1000) params%nutc,snr,dt,freq,sync,decoded,' *',        & | ||||
|                char(ichar('A')+ich-1) | ||||
|           if (ave.gt.0) then | ||||
|              write(*,1000) params%nutc,snr,dt,freq,sync,decoded,'*',    & | ||||
|                   char(ichar('A')+ich-1),ave | ||||
|           else | ||||
|              write(*,1000) params%nutc,snr,dt,freq,sync,decoded,' *',        & | ||||
|                   char(ichar('A')+ich-1) | ||||
|           endif | ||||
|        end if | ||||
|     else | ||||
|        write(*,1000) params%nutc,snr,dt,freq | ||||
|     end if | ||||
| 1000 format(i4.4,i4,f5.2,i5,1x,'$',a1,1x,a22,a2,1x,a1,i3) | ||||
| 1000 format(i4.4,i4,f5.1,i5,1x,'$',a1,1x,a22,a2,1x,a1,i3) | ||||
| 
 | ||||
|     select type(this) | ||||
|     type is (counting_jt4_decoder) | ||||
|        this%decoded = this%decoded + 1 | ||||
|  | ||||
| @ -7,9 +7,7 @@ module jt4_decode | ||||
|      procedure, private :: wsjt4, avg4 | ||||
|   end type jt4_decoder | ||||
| 
 | ||||
|   ! | ||||
|   ! Callback function to be called with each decode | ||||
|   ! | ||||
| ! Callback function to be called with each decode | ||||
|   abstract interface | ||||
|      subroutine jt4_decode_callback (this, snr, dt, freq, have_sync,     & | ||||
|           sync, is_deep, decoded, qual, ich, is_average, ave) | ||||
| @ -30,9 +28,7 @@ module jt4_decode | ||||
|      end subroutine jt4_decode_callback | ||||
|   end interface | ||||
| 
 | ||||
|   ! | ||||
|   ! Callback function to be called with each average result | ||||
|   ! | ||||
| ! Callback function to be called with each average result | ||||
|   abstract interface | ||||
|      subroutine jt4_average_callback (this, used, utc, sync, dt, freq, flip) | ||||
|        import jt4_decoder | ||||
| @ -86,13 +82,6 @@ contains | ||||
|     call lpf1(dd,jz,dat,jz2) | ||||
|     call timer('lpf1    ',1) | ||||
| 
 | ||||
|     !i=index(MyCall,char(0)) | ||||
|     !if(i.le.0) i=index(MyCall,' ') | ||||
|     !mycall=MyCall(1:i-1)//'            ' | ||||
|     !i=index(HisCall,char(0)) | ||||
|     !if(i.le.0) i=index(HisCall,' ') | ||||
|     !hiscall=HisCall(1:i-1)//'            ' | ||||
| 
 | ||||
|     write(cfile6(1:4),1000) nutc | ||||
| 1000 format(i4.4) | ||||
|     cfile6(5:6)='  ' | ||||
| @ -137,7 +126,6 @@ contains | ||||
|        blank='                      ' | ||||
|        ccfblue=0. | ||||
|        ccfred=0. | ||||
|        !nagain=.false. | ||||
|     endif | ||||
| 
 | ||||
|     zz=0. | ||||
| @ -166,7 +154,7 @@ contains | ||||
|     call timer('sync4   ',1) | ||||
| 
 | ||||
|     call timer('zplt    ',0) | ||||
|     do ich=4,7 | ||||
|     do ich=1,7 | ||||
|        z(1:458,1:65)=zz(274:731,1:65,ich) | ||||
|        call zplt(z,ich-4,syncz,dtxz,nfreqz,flipz,sync2z,0,emedelay,dttol,     & | ||||
|             nfqso,ntol) | ||||
| @ -178,7 +166,7 @@ contains | ||||
|     call timer('zplt    ',1) | ||||
| 
 | ||||
| ! Use results from zplt | ||||
| !### NB: JT4 is severely "sync limited" at present... | ||||
| !### NB: JT4 is severely "sync limited" at present...  (Maybe not still true???) | ||||
| 
 | ||||
|     flip=flipz | ||||
|     sync=syncz | ||||
| @ -208,7 +196,6 @@ contains | ||||
|        dtx=dtxz + 0.03*idt | ||||
|        nfreq=nfreqz + 2*idf | ||||
| 
 | ||||
| 
 | ||||
| ! Attempt a single-sequence decode, including deep4 if Fano fails. | ||||
|        call timer('decode4 ',0) | ||||
|        call decode4(dat,npts,dtx,nfreq,flip,mode4,ndepth,neme,minw,           & | ||||
| @ -253,7 +240,7 @@ contains | ||||
|           endif | ||||
| 
 | ||||
|           if(nfanoave.gt.0) then | ||||
|              ! Fano succeeded: report the message                   AVG FANO OK | ||||
| ! Fano succeeded: report the message                       AVG FANO OK | ||||
|              if (associated (this%decode_callback)) then | ||||
|                 call this%decode_callback(nsnr,dtx,nfreq,.true.,csync,   & | ||||
|                      .false.,avemsg,0.,ich,.true.,nfanoave) | ||||
| @ -277,6 +264,7 @@ contains | ||||
|     deepmsg=deepmsg0 | ||||
|     ich=ich0 | ||||
|     qual=qbest | ||||
| 
 | ||||
|     if (associated (this%decode_callback)) then | ||||
|        if(int(qual).ge.nq1) then | ||||
|           call this%decode_callback(nsnr,dtx,nfreqz,.true.,csync,.true., & | ||||
| @ -292,7 +280,8 @@ contains | ||||
|     deepave=deepave1 | ||||
|     ich=ich1 | ||||
|     qave=qabest | ||||
|     if (associated (this%decode_callback)) then | ||||
| 
 | ||||
|     if (associated (this%decode_callback) .and. ndeepave.ge.2) then | ||||
|        if(int(qave).ge.nq1) then | ||||
|           call this%decode_callback(nsnr,dtx,nfreq,.true.,csync,.true.,  & | ||||
|                deepave,qave,ich,.true.,ndeepave) | ||||
| @ -347,7 +336,7 @@ contains | ||||
|     do i=1,64 | ||||
|        cused(i)='.' | ||||
|        if(iutc(i).lt.0) cycle | ||||
|        if(mod(iutc(i),2).ne.mod(nutc,2)) cycle  !Use only same (odd/even) sequence | ||||
|        if(mod(iutc(i),2).ne.mod(nutc,2)) cycle  !Use only same sequence | ||||
|        if(abs(dtxx-dtsave(i)).gt.dtdiff) cycle  !DT must match | ||||
|        if(abs(nfreq-nfsave(i)).gt.ntol) cycle   !Freq must match | ||||
|        if(flip.ne.flipsave(i)) cycle            !Sync (*/#) must match | ||||
| @ -412,7 +401,6 @@ contains | ||||
|     qave=0. | ||||
| 
 | ||||
| ! Possibly should pass nadd=nused, also ? | ||||
| !    if(ndepth.ge.3) then | ||||
|     if(iand(ndepth,32).eq.32) then | ||||
|        flipx=1.0                     !Normal flip not relevant for ave msg | ||||
|        qbest=0. | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user