mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	1. Fix end-of-transmission logic so that CW ID works again.
2. Much better logic for choosing frequencies at which to attempt decodes. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3143 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									ac6f986dc9
								
							
						
					
					
						commit
						d2d0583e5a
					
				@ -71,7 +71,7 @@ subroutine decode9(i1SoftSymbols,limit,nlim,msg)
 | 
				
			|||||||
  call fano232(i1SoftSymbols,nbits+31,mettab,ndelta,limit,i1DecodedBytes,   &
 | 
					  call fano232(i1SoftSymbols,nbits+31,mettab,ndelta,limit,i1DecodedBytes,   &
 | 
				
			||||||
       ncycles,metric,ierr)
 | 
					       ncycles,metric,ierr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  nlim=ncycles/nbits
 | 
					  nlim=ncycles/(nbits+31)
 | 
				
			||||||
  if(ncycles.lt.(nbits*limit)) then
 | 
					  if(ncycles.lt.(nbits*limit)) then
 | 
				
			||||||
     nbytes=(nbits+7)/8
 | 
					     nbytes=(nbits+7)/8
 | 
				
			||||||
     do i=1,nbytes
 | 
					     do i=1,nbytes
 | 
				
			||||||
 | 
				
			|||||||
@ -59,7 +59,6 @@ subroutine decoder(ss,c0)
 | 
				
			|||||||
  idf=ntol/df3 + 0.999
 | 
					  idf=ntol/df3 + 0.999
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  do nqd=1,0,-1
 | 
					  do nqd=1,0,-1
 | 
				
			||||||
 | 
					 | 
				
			||||||
     limit=5000
 | 
					     limit=5000
 | 
				
			||||||
     ccflim=4.0
 | 
					     ccflim=4.0
 | 
				
			||||||
     if(ndepth.ge.2) then
 | 
					     if(ndepth.ge.2) then
 | 
				
			||||||
@ -110,7 +109,8 @@ subroutine decoder(ss,c0)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
     do i=ia,ib
 | 
					     do i=ia,ib
 | 
				
			||||||
        f=(i-1)*df3
 | 
					        f=(i-1)*df3
 | 
				
			||||||
        if(.not.ccfok(i)) cycle
 | 
					        if(.not.ccfok(i) .or. ccfred(i).lt.ccflim-1.0 .or.                &
 | 
				
			||||||
 | 
					             ccfred(i).lt.ccfred(i+1)) cycle
 | 
				
			||||||
        if(nqd.eq.1 .or.                                                  &
 | 
					        if(nqd.eq.1 .or.                                                  &
 | 
				
			||||||
           (ccfred(i).ge.3.0 .and. abs(f-fgood).gt.10.0*df8)) then
 | 
					           (ccfred(i).ge.3.0 .and. abs(f-fgood).gt.10.0*df8)) then
 | 
				
			||||||
           call timer('decode9a',0)
 | 
					           call timer('decode9a',0)
 | 
				
			||||||
@ -122,6 +122,8 @@ subroutine decoder(ss,c0)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
           call timer('decode9 ',0)
 | 
					           call timer('decode9 ',0)
 | 
				
			||||||
           call decode9(i1SoftSymbols,limit,nlim,msg)
 | 
					           call decode9(i1SoftSymbols,limit,nlim,msg)
 | 
				
			||||||
 | 
					!           write(69,3300) nqd,i,f+1000.0,ccflim,ccfred(i),limit,nlim,msg(1:18)
 | 
				
			||||||
 | 
					!3300       format(i1,i6,f10.3,2f8.1,2i9,2x,a18)
 | 
				
			||||||
           call timer('decode9 ',1)
 | 
					           call timer('decode9 ',1)
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
           sync=(syncpk+1)/4.0
 | 
					           sync=(syncpk+1)/4.0
 | 
				
			||||||
@ -149,6 +151,7 @@ subroutine decoder(ss,c0)
 | 
				
			|||||||
1010 format('<DecodeFinished>',2i4)
 | 
					1010 format('<DecodeFinished>',2i4)
 | 
				
			||||||
  call flush(6)
 | 
					  call flush(6)
 | 
				
			||||||
  close(13)
 | 
					  close(13)
 | 
				
			||||||
 | 
					!  call flush(69)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  call timer('decoder ',1)
 | 
					  call timer('decoder ',1)
 | 
				
			||||||
  if(nstandalone.eq.0) call timer('decoder ',101)
 | 
					  if(nstandalone.eq.0) call timer('decoder ',101)
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
//------------------------------------------------------------- MainWindow
 | 
					//-------------------------------------------------------------- MainWindow
 | 
				
			||||||
#include "mainwindow.h"
 | 
					#include "mainwindow.h"
 | 
				
			||||||
#include "ui_mainwindow.h"
 | 
					#include "ui_mainwindow.h"
 | 
				
			||||||
#include "devsetup.h"
 | 
					#include "devsetup.h"
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										10
									
								
								soundout.cpp
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								soundout.cpp
									
									
									
									
									
								
							@ -92,7 +92,10 @@ extern "C" int d2aCallback(const void *inputBuffer, void *outputBuffer,
 | 
				
			|||||||
    return paContinue;
 | 
					    return paContinue;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if(isym>=85 and itone[0]>=0) return paComplete;
 | 
					  if(isym>=85 and icw[0]>=0) {
 | 
				
			||||||
 | 
					//    qDebug() << "C" << isym << icw[0];
 | 
				
			||||||
 | 
					    return paComplete;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  baud=12000.0/udata->nsps;
 | 
					  baud=12000.0/udata->nsps;
 | 
				
			||||||
  freq=udata->ntxfreq + itone[isym]*baud;
 | 
					  freq=udata->ntxfreq + itone[isym]*baud;
 | 
				
			||||||
  dphi=twopi*freq/48000.0;
 | 
					  dphi=twopi*freq/48000.0;
 | 
				
			||||||
@ -118,7 +121,10 @@ extern "C" int d2aCallback(const void *inputBuffer, void *outputBuffer,
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
    ic++;
 | 
					    ic++;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  if(amp<1.0 and itone[0]>=0) return paComplete;
 | 
					  if(amp<1.0 and icw[0]==0) {
 | 
				
			||||||
 | 
					//    qDebug() << "A" << isym << amp << icw[0];
 | 
				
			||||||
 | 
					    return paComplete;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  return paContinue;
 | 
					  return paContinue;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user