mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-15 08:31:57 -05:00
Reduce FT4 chunk size fro 500 to 288 ms; suppress duplicate decodes from close to chunk ends.
This commit is contained in:
parent
186482811a
commit
c2cb55a68a
@ -5,7 +5,7 @@ subroutine ft4_decode(cdatetime0,tbuf,nfa,nfb,nQSOProgress,ncontest,nfqso, &
|
|||||||
include 'ft4_params.f90'
|
include 'ft4_params.f90'
|
||||||
parameter (NSS=NSPS/NDOWN)
|
parameter (NSS=NSPS/NDOWN)
|
||||||
|
|
||||||
character message*37,msgsent*37
|
character message*37,msgsent*37,msg0*37
|
||||||
character c77*77
|
character c77*77
|
||||||
character*61 line,linex(100)
|
character*61 line,linex(100)
|
||||||
character*37 decodes(100)
|
character*37 decodes(100)
|
||||||
@ -53,6 +53,7 @@ subroutine ft4_decode(cdatetime0,tbuf,nfa,nfb,nQSOProgress,ncontest,nfqso, &
|
|||||||
data icos4c/2,3,1,0/
|
data icos4c/2,3,1,0/
|
||||||
data icos4d/3,2,0,1/
|
data icos4d/3,2,0,1/
|
||||||
data graymap/0,1,3,2/
|
data graymap/0,1,3,2/
|
||||||
|
data msg0/' '/
|
||||||
data first/.true./
|
data first/.true./
|
||||||
data mcq/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0/
|
data mcq/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0/
|
||||||
data mcqru/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,0,0/
|
data mcqru/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,0,0/
|
||||||
@ -65,7 +66,7 @@ subroutine ft4_decode(cdatetime0,tbuf,nfa,nfb,nQSOProgress,ncontest,nfqso, &
|
|||||||
1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, &
|
1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, &
|
||||||
0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/
|
0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/
|
||||||
save fs,dt,tt,txt,twopi,h,one,first,nrxx,linex,apbits,nappasses,naptypes, &
|
save fs,dt,tt,txt,twopi,h,one,first,nrxx,linex,apbits,nappasses,naptypes, &
|
||||||
mycall0,hiscall0,ncontest0
|
mycall0,hiscall0,ncontest0,msg0
|
||||||
|
|
||||||
call clockit('ft4_deco',0)
|
call clockit('ft4_deco',0)
|
||||||
hhmmss=cdatetime0(8:13)
|
hhmmss=cdatetime0(8:13)
|
||||||
@ -183,7 +184,7 @@ subroutine ft4_decode(cdatetime0,tbuf,nfa,nfb,nQSOProgress,ncontest,nfqso, &
|
|||||||
idfmax=12
|
idfmax=12
|
||||||
idfstp=3
|
idfstp=3
|
||||||
ibmin=0
|
ibmin=0
|
||||||
ibmax=374
|
ibmax=215
|
||||||
ibstp=4
|
ibstp=4
|
||||||
else
|
else
|
||||||
idfmin=idfbest-4
|
idfmin=idfbest-4
|
||||||
@ -440,6 +441,7 @@ subroutine ft4_decode(cdatetime0,tbuf,nfa,nfb,nQSOProgress,ncontest,nfqso, &
|
|||||||
do i=1,ndecodes
|
do i=1,ndecodes
|
||||||
if(decodes(i).eq.message) idupe=1
|
if(decodes(i).eq.message) idupe=1
|
||||||
enddo
|
enddo
|
||||||
|
if(ibest.le.10 .and. message.eq.msg0) idupe=1 !Already decoded
|
||||||
if(idupe.eq.1) exit
|
if(idupe.eq.1) exit
|
||||||
ndecodes=ndecodes+1
|
ndecodes=ndecodes+1
|
||||||
decodes(ndecodes)=message
|
decodes(ndecodes)=message
|
||||||
@ -466,6 +468,7 @@ subroutine ft4_decode(cdatetime0,tbuf,nfa,nfb,nQSOProgress,ncontest,nfqso, &
|
|||||||
1002 format(a17,i4,f5.1,i5,' Rx ',a37,5i5)
|
1002 format(a17,i4,f5.1,i5,' Rx ',a37,5i5)
|
||||||
close(24)
|
close(24)
|
||||||
linex(ndecodes)=line
|
linex(ndecodes)=line
|
||||||
|
if(ibest.ge.210) msg0=message !Possible dupe candidate
|
||||||
|
|
||||||
!### Temporary: assume most recent decoded message conveys "hiscall". ###
|
!### Temporary: assume most recent decoded message conveys "hiscall". ###
|
||||||
i0=index(message,' ')
|
i0=index(message,' ')
|
||||||
|
@ -8612,18 +8612,14 @@ void MainWindow::write_all(QString txRx, QString message)
|
|||||||
|
|
||||||
void MainWindow::ft4Data(int k)
|
void MainWindow::ft4Data(int k)
|
||||||
{
|
{
|
||||||
static int nhsec0=-1;
|
|
||||||
static bool wrapped=false;
|
static bool wrapped=false;
|
||||||
short id[60000];
|
short id[60000];
|
||||||
|
|
||||||
int nhsec=k/6000;
|
|
||||||
if(nhsec0>nhsec) nhsec0=-1;
|
|
||||||
if(nhsec==nhsec0) return;
|
|
||||||
if(k<60000 and !wrapped) return;
|
if(k<60000 and !wrapped) return;
|
||||||
|
|
||||||
//Process FT4 data at 0.5 s intervals
|
//Process FT4 data at 0.288 s intervals
|
||||||
int j=k/6000;
|
int j=k/3456;
|
||||||
j=6000*j-60000;
|
j=3456*j-60000;
|
||||||
if(j<0) j+=NRING;
|
if(j<0) j+=NRING;
|
||||||
float tbuf=j/12000.0;
|
float tbuf=j/12000.0;
|
||||||
for(int i=0; i<60000; i++) {
|
for(int i=0; i<60000; i++) {
|
||||||
@ -8707,8 +8703,7 @@ void MainWindow::ft4Data(int k)
|
|||||||
}
|
}
|
||||||
//###
|
//###
|
||||||
}
|
}
|
||||||
nhsec0=nhsec;
|
if(m_diskData and (k > (dec_data.params.kin-3456))) m_startAnother=m_loopall;
|
||||||
if(m_diskData and (k > (dec_data.params.kin-6000))) m_startAnother=m_loopall;
|
|
||||||
if(m_bNoMoreFiles) {
|
if(m_bNoMoreFiles) {
|
||||||
MessageBox::information_message(this, tr("Just one more file to open."));
|
MessageBox::information_message(this, tr("Just one more file to open."));
|
||||||
m_bNoMoreFiles=false;
|
m_bNoMoreFiles=false;
|
||||||
|
Loading…
Reference in New Issue
Block a user