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:
Joe Taylor 2013-04-09 20:59:53 +00:00
parent 6446c255ea
commit 2bfeaf813c
4 changed files with 15 additions and 6 deletions

View File

@ -71,7 +71,7 @@ subroutine decode9(i1SoftSymbols,limit,nlim,msg)
call fano232(i1SoftSymbols,nbits+31,mettab,ndelta,limit,i1DecodedBytes, &
ncycles,metric,ierr)
nlim=ncycles/nbits
nlim=ncycles/(nbits+31)
if(ncycles.lt.(nbits*limit)) then
nbytes=(nbits+7)/8
do i=1,nbytes

View File

@ -59,7 +59,6 @@ subroutine decoder(ss,c0)
idf=ntol/df3 + 0.999
do nqd=1,0,-1
limit=5000
ccflim=4.0
if(ndepth.ge.2) then
@ -110,7 +109,8 @@ subroutine decoder(ss,c0)
do i=ia,ib
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. &
(ccfred(i).ge.3.0 .and. abs(f-fgood).gt.10.0*df8)) then
call timer('decode9a',0)
@ -122,6 +122,8 @@ subroutine decoder(ss,c0)
call timer('decode9 ',0)
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)
sync=(syncpk+1)/4.0
@ -149,6 +151,7 @@ subroutine decoder(ss,c0)
1010 format('<DecodeFinished>',2i4)
call flush(6)
close(13)
! call flush(69)
call timer('decoder ',1)
if(nstandalone.eq.0) call timer('decoder ',101)

View File

@ -1,4 +1,4 @@
//------------------------------------------------------------- MainWindow
//-------------------------------------------------------------- MainWindow
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "devsetup.h"

View File

@ -92,7 +92,10 @@ extern "C" int d2aCallback(const void *inputBuffer, void *outputBuffer,
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;
freq=udata->ntxfreq + itone[isym]*baud;
dphi=twopi*freq/48000.0;
@ -118,7 +121,10 @@ extern "C" int d2aCallback(const void *inputBuffer, void *outputBuffer,
#endif
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;
}