Preparing to allow calling a SuperFox decoder.

This commit is contained in:
Joe Taylor 2024-03-06 15:49:54 -05:00
parent b299700d97
commit 835e4936c1
4 changed files with 32 additions and 17 deletions

View File

@ -64,6 +64,8 @@ typedef struct dec_data {
char mygrid[6];
char hiscall[12];
char hisgrid[6];
bool b_even_seq;
bool b_superfox;
} params;
} dec_data_t;

View File

@ -124,8 +124,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
if(params%nmode.eq.8) then
! We're in FT8 mode
if(ncontest.eq.6) then
if(ncontest.eq.6) then !Fox=6, Hound=7
! Fox mode: initialize and open houndcallers.txt
inquire(file=trim(temp_dir)//'/houndcallers.txt',exist=ex)
if(.not.ex) then
@ -140,6 +139,11 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
open(19,file=trim(temp_dir)//'/houndcallers.txt',status='unknown')
endif
if(ncontest.eq.7 .and. params%b_superfox .and. params%b_even_seq) then
! Call the superFox decoder
print*,'Calling SuperFox decoder',params%nzhsym,params%b_superfox, &
params%b_even_seq
else
call timer('decft8 ',0)
newdat=params%newdat
if(params%emedelay.ne.0.0) then
@ -153,6 +157,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
logical(params%lapcqonly),params%napwid,mycall,hiscall, &
params%ndiskdat)
call timer('decft8 ',1)
endif
if(nfox.gt.0) then
n30min=minval(n30fox(1:nfox))
n30max=maxval(n30fox(1:nfox))

View File

@ -47,6 +47,8 @@
character(kind=c_char) :: mygrid(6)
character(kind=c_char) :: hiscall(12)
character(kind=c_char) :: hisgrid(6)
logical(c_bool) :: b_even_seq
logical(c_bool) :: b_superfox
end type params_block
type, bind(C) :: dec_data

View File

@ -3456,6 +3456,12 @@ void MainWindow::decode() //decode()
dec_data.params.nfb=m_wideGraph->Fmax();
if(m_mode=="FT8" and SpecOp::HOUND == m_specOp and !ui->cbRxAll->isChecked()) dec_data.params.nfb=1000;
if(m_mode=="FT8" and SpecOp::FOX == m_specOp ) dec_data.params.nfqso=200;
dec_data.params.b_even_seq=(dec_data.params.nutc%10)==0;
dec_data.params.b_superfox=(m_config.superFox() and (SpecOp::FOX == m_specOp or SpecOp::HOUND == m_specOp));
if(dec_data.params.b_superfox and dec_data.params.b_even_seq and m_ihsym<50) return;
// qDebug() << "aa" << dec_data.params.nutc << dec_data.params.b_even_seq
// << dec_data.params.b_superfox << m_ihsym;
dec_data.params.ntol=ui->sbFtol->value ();
if(!m_config.enable_VHF_features()) {
dec_data.params.ntol=20;