mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-07-31 05:02:26 -04:00
Preparing to allow calling a SuperFox decoder.
This commit is contained in:
parent
b299700d97
commit
835e4936c1
@ -64,6 +64,8 @@ typedef struct dec_data {
|
|||||||
char mygrid[6];
|
char mygrid[6];
|
||||||
char hiscall[12];
|
char hiscall[12];
|
||||||
char hisgrid[6];
|
char hisgrid[6];
|
||||||
|
bool b_even_seq;
|
||||||
|
bool b_superfox;
|
||||||
} params;
|
} params;
|
||||||
} dec_data_t;
|
} dec_data_t;
|
||||||
|
|
||||||
|
@ -124,8 +124,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
|||||||
|
|
||||||
if(params%nmode.eq.8) then
|
if(params%nmode.eq.8) then
|
||||||
! We're in FT8 mode
|
! We're in FT8 mode
|
||||||
|
if(ncontest.eq.6) then !Fox=6, Hound=7
|
||||||
if(ncontest.eq.6) then
|
|
||||||
! Fox mode: initialize and open houndcallers.txt
|
! Fox mode: initialize and open houndcallers.txt
|
||||||
inquire(file=trim(temp_dir)//'/houndcallers.txt',exist=ex)
|
inquire(file=trim(temp_dir)//'/houndcallers.txt',exist=ex)
|
||||||
if(.not.ex) then
|
if(.not.ex) then
|
||||||
@ -140,19 +139,25 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
|||||||
open(19,file=trim(temp_dir)//'/houndcallers.txt',status='unknown')
|
open(19,file=trim(temp_dir)//'/houndcallers.txt',status='unknown')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call timer('decft8 ',0)
|
if(ncontest.eq.7 .and. params%b_superfox .and. params%b_even_seq) then
|
||||||
newdat=params%newdat
|
! Call the superFox decoder
|
||||||
if(params%emedelay.ne.0.0) then
|
print*,'Calling SuperFox decoder',params%nzhsym,params%b_superfox, &
|
||||||
id2(1:156000)=id2(24001:180000) ! Drop the first 2 seconds of data
|
params%b_even_seq
|
||||||
id2(156001:180000)=0
|
else
|
||||||
|
call timer('decft8 ',0)
|
||||||
|
newdat=params%newdat
|
||||||
|
if(params%emedelay.ne.0.0) then
|
||||||
|
id2(1:156000)=id2(24001:180000) ! Drop the first 2 seconds of data
|
||||||
|
id2(156001:180000)=0
|
||||||
|
endif
|
||||||
|
call my_ft8%decode(ft8_decoded,id2,params%nQSOProgress,params%nfqso, &
|
||||||
|
params%nftx,newdat,params%nutc,params%nfa,params%nfb, &
|
||||||
|
params%nzhsym,params%ndepth,params%emedelay,ncontest, &
|
||||||
|
logical(params%nagain),logical(params%lft8apon), &
|
||||||
|
logical(params%lapcqonly),params%napwid,mycall,hiscall, &
|
||||||
|
params%ndiskdat)
|
||||||
|
call timer('decft8 ',1)
|
||||||
endif
|
endif
|
||||||
call my_ft8%decode(ft8_decoded,id2,params%nQSOProgress,params%nfqso, &
|
|
||||||
params%nftx,newdat,params%nutc,params%nfa,params%nfb, &
|
|
||||||
params%nzhsym,params%ndepth,params%emedelay,ncontest, &
|
|
||||||
logical(params%nagain),logical(params%lft8apon), &
|
|
||||||
logical(params%lapcqonly),params%napwid,mycall,hiscall, &
|
|
||||||
params%ndiskdat)
|
|
||||||
call timer('decft8 ',1)
|
|
||||||
if(nfox.gt.0) then
|
if(nfox.gt.0) then
|
||||||
n30min=minval(n30fox(1:nfox))
|
n30min=minval(n30fox(1:nfox))
|
||||||
n30max=maxval(n30fox(1:nfox))
|
n30max=maxval(n30fox(1:nfox))
|
||||||
|
@ -47,6 +47,8 @@
|
|||||||
character(kind=c_char) :: mygrid(6)
|
character(kind=c_char) :: mygrid(6)
|
||||||
character(kind=c_char) :: hiscall(12)
|
character(kind=c_char) :: hiscall(12)
|
||||||
character(kind=c_char) :: hisgrid(6)
|
character(kind=c_char) :: hisgrid(6)
|
||||||
|
logical(c_bool) :: b_even_seq
|
||||||
|
logical(c_bool) :: b_superfox
|
||||||
end type params_block
|
end type params_block
|
||||||
|
|
||||||
type, bind(C) :: dec_data
|
type, bind(C) :: dec_data
|
||||||
|
@ -3456,6 +3456,12 @@ void MainWindow::decode() //decode()
|
|||||||
dec_data.params.nfb=m_wideGraph->Fmax();
|
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::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;
|
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 ();
|
dec_data.params.ntol=ui->sbFtol->value ();
|
||||||
if(!m_config.enable_VHF_features()) {
|
if(!m_config.enable_VHF_features()) {
|
||||||
dec_data.params.ntol=20;
|
dec_data.params.ntol=20;
|
||||||
@ -3515,7 +3521,7 @@ void MainWindow::decode() //decode()
|
|||||||
if(m_config.single_decode()) dec_data.params.nexp_decode += 32;
|
if(m_config.single_decode()) dec_data.params.nexp_decode += 32;
|
||||||
if(m_config.enable_VHF_features()) dec_data.params.nexp_decode += 64;
|
if(m_config.enable_VHF_features()) dec_data.params.nexp_decode += 64;
|
||||||
if(m_mode.startsWith("FST4")) dec_data.params.nexp_decode += 256*(ui->sbNB->value()+3);
|
if(m_mode.startsWith("FST4")) dec_data.params.nexp_decode += 256*(ui->sbNB->value()+3);
|
||||||
dec_data.params.max_drift=ui->sbMaxDrift->value();
|
dec_data.params.max_drift=ui->sbMaxDrift->value();
|
||||||
|
|
||||||
::memcpy(dec_data.params.datetime, m_dateTime.toLatin1()+" ", sizeof dec_data.params.datetime);
|
::memcpy(dec_data.params.datetime, m_dateTime.toLatin1()+" ", sizeof dec_data.params.datetime);
|
||||||
::memcpy(dec_data.params.mycall, (m_config.my_callsign()+" ").toLatin1(), sizeof dec_data.params.mycall);
|
::memcpy(dec_data.params.mycall, (m_config.my_callsign()+" ").toLatin1(), sizeof dec_data.params.mycall);
|
||||||
@ -7178,7 +7184,7 @@ void MainWindow::on_actionFT8_triggered()
|
|||||||
// 01234567890123456789012345678901234567
|
// 01234567890123456789012345678901234567
|
||||||
displayWidgets(nWidgets("11101000010011100001000000000010000000"));
|
displayWidgets(nWidgets("11101000010011100001000000000010000000"));
|
||||||
if(m_config.superFox()) {
|
if(m_config.superFox()) {
|
||||||
ui->labDXped->setText(tr ("SuperFox"));
|
ui->labDXped->setText(tr ("Super Fox"));
|
||||||
} else {
|
} else {
|
||||||
ui->labDXped->setText(tr ("Fox"));
|
ui->labDXped->setText(tr ("Fox"));
|
||||||
}
|
}
|
||||||
@ -7194,7 +7200,7 @@ void MainWindow::on_actionFT8_triggered()
|
|||||||
// 01234567890123456789012345678901234567
|
// 01234567890123456789012345678901234567
|
||||||
displayWidgets(nWidgets("11101000010011000001000000000011000000"));
|
displayWidgets(nWidgets("11101000010011000001000000000011000000"));
|
||||||
if(m_config.superFox()) {
|
if(m_config.superFox()) {
|
||||||
ui->labDXped->setText(tr ("SuperHound"));
|
ui->labDXped->setText(tr ("Super Hound"));
|
||||||
} else {
|
} else {
|
||||||
ui->labDXped->setText(tr ("Hound"));
|
ui->labDXped->setText(tr ("Hound"));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user