- Force the use of standardized CQ modifier for FT4/FT8 contest operation.

- Pass CQ modifier string to the ft4 decoder.
This commit is contained in:
Steven Franke 2020-01-08 08:41:47 -06:00
parent 52075fca24
commit a63e6e1209
6 changed files with 22 additions and 8 deletions

View File

@ -65,6 +65,7 @@ extern struct dec_data {
char mygrid[6]; char mygrid[6];
char hiscall[12]; char hiscall[12];
char hisgrid[6]; char hisgrid[6];
char cqstr[4];
} params; } params;
} dec_data; } dec_data;

View File

@ -40,6 +40,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
character(len=20) :: datetime character(len=20) :: datetime
character(len=12) :: mycall, hiscall character(len=12) :: mycall, hiscall
character(len=6) :: mygrid, hisgrid character(len=6) :: mygrid, hisgrid
character(len=4) :: cqstr
save save
type(counting_jt4_decoder) :: my_jt4 type(counting_jt4_decoder) :: my_jt4
type(counting_jt65_decoder) :: my_jt65 type(counting_jt65_decoder) :: my_jt65
@ -53,6 +54,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
hiscall=transfer(params%hiscall,hiscall) hiscall=transfer(params%hiscall,hiscall)
mygrid=transfer(params%mygrid,mygrid) mygrid=transfer(params%mygrid,mygrid)
hisgrid=transfer(params%hisgrid,hisgrid) hisgrid=transfer(params%hisgrid,hisgrid)
cqstr=transfer(params%cqstr,cqstr)
! initialize decode counts ! initialize decode counts
my_jt4%decoded = 0 my_jt4%decoded = 0
@ -153,7 +155,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
call timer('decft4 ',0) call timer('decft4 ',0)
call my_ft4%decode(ft4_decoded,id2,params%nQSOProgress,params%nfqso, & call my_ft4%decode(ft4_decoded,id2,params%nQSOProgress,params%nfqso, &
params%nutc,params%nfa,params%nfb,params%ndepth, & params%nutc,params%nfa,params%nfb,params%ndepth, &
logical(params%lapcqonly),ncontest,mycall,hiscall) logical(params%lapcqonly),ncontest,cqstr,mycall,hiscall)
call timer('decft4 ',1) call timer('decft4 ',1)
go to 800 go to 800
endif endif

View File

@ -24,7 +24,7 @@ module ft4_decode
contains contains
subroutine decode(this,callback,iwave,nQSOProgress,nfqso, & subroutine decode(this,callback,iwave,nQSOProgress,nfqso, &
nutc,nfa,nfb,ndepth,lapcqonly,ncontest,mycall,hiscall) nutc,nfa,nfb,ndepth,lapcqonly,ncontest,cqstr,mycall,hiscall)
use timer_module, only: timer use timer_module, only: timer
use packjt77 use packjt77
include 'ft4/ft4_params.f90' include 'ft4/ft4_params.f90'

View File

@ -46,6 +46,7 @@
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)
character(kind=c_char) :: cqstr(4)
end type params_block end type params_block
type, bind(C) :: dec_data type, bind(C) :: dec_data

View File

@ -331,6 +331,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
tx_status_label {"Receiving"}, tx_status_label {"Receiving"},
wsprNet {new WSPRNet {&m_network_manager, this}}, wsprNet {new WSPRNet {&m_network_manager, this}},
m_appDir {QApplication::applicationDirPath ()}, m_appDir {QApplication::applicationDirPath ()},
m_cqStr {""},
m_palette {"Linrad"}, m_palette {"Linrad"},
m_mode {"JT9"}, m_mode {"JT9"},
m_rpt {"-15"}, m_rpt {"-15"},
@ -2932,6 +2933,7 @@ void MainWindow::decode() //decode()
QString hisGrid {ui->dxGridEntry->text ()}; QString hisGrid {ui->dxGridEntry->text ()};
memcpy(dec_data.params.hiscall,(hisCall + " ").toLatin1 ().constData (), sizeof dec_data.params.hiscall); memcpy(dec_data.params.hiscall,(hisCall + " ").toLatin1 ().constData (), sizeof dec_data.params.hiscall);
memcpy(dec_data.params.hisgrid,(hisGrid + " ").toLatin1 ().constData (), sizeof dec_data.params.hisgrid); memcpy(dec_data.params.hisgrid,(hisGrid + " ").toLatin1 ().constData (), sizeof dec_data.params.hisgrid);
memcpy(dec_data.params.cqstr,(m_cqStr + " ").toLatin1 ().constData (), sizeof dec_data.params.cqstr);
//newdat=1 ==> this is new data, must do the big FFT //newdat=1 ==> this is new data, must do the big FFT
//nagain=1 ==> decode only at fQSO +/- Tol //nagain=1 ==> decode only at fQSO +/- Tol
@ -4929,16 +4931,23 @@ void MainWindow::genCQMsg ()
} }
QString t=ui->tx6->text(); QString t=ui->tx6->text();
QStringList tlist=t.split(" ");
if((m_mode=="FT4" or m_mode=="FT8" or m_mode=="MSK144") and if((m_mode=="FT4" or m_mode=="FT8" or m_mode=="MSK144") and
SpecOp::NONE != m_config.special_op_id() and SpecOp::NONE != m_config.special_op_id() and
t.split(" ").at(1)==m_config.my_callsign() and ( tlist.at(1)==m_config.my_callsign() or
tlist.at(2)==m_config.my_callsign() ) and
stdCall(m_config.my_callsign())) { stdCall(m_config.my_callsign())) {
if(SpecOp::NA_VHF == m_config.special_op_id()) t="CQ TEST" + t.mid(2,-1); if(SpecOp::NA_VHF == m_config.special_op_id()) m_cqStr="TEST";
if(SpecOp::EU_VHF == m_config.special_op_id()) t="CQ TEST" + t.mid(2,-1); if(SpecOp::EU_VHF == m_config.special_op_id()) m_cqStr="TEST";
if(SpecOp::FIELD_DAY == m_config.special_op_id()) t="CQ FD" + t.mid(2,-1); if(SpecOp::FIELD_DAY == m_config.special_op_id()) m_cqStr="FD";
if(SpecOp::RTTY == m_config.special_op_id()) { if(SpecOp::RTTY == m_config.special_op_id()) {
if(m_config.RTTY_Exchange()!="SCC") t="CQ RU" + t.mid(2,-1); if(m_config.RTTY_Exchange()!="SCC") m_cqStr="RU";
if(m_config.RTTY_Exchange()=="SCC") t="CQ SCC" + t.mid(2,-1); if(m_config.RTTY_Exchange()=="SCC") m_cqStr="SCC";
}
if( tlist.at(1)==m_config.my_callsign() ) {
t="CQ " + m_cqStr + " " + tlist.at(1) + " " + tlist.at(2);
} else {
t="CQ " + m_cqStr + " " + tlist.at(2) + " " + tlist.at(3);
} }
ui->tx6->setText(t); ui->tx6->setText(t);
} }

View File

@ -589,6 +589,7 @@ private:
QString m_hisCall; QString m_hisCall;
QString m_hisGrid; QString m_hisGrid;
QString m_appDir; QString m_appDir;
QString m_cqStr;
QString m_palette; QString m_palette;
QString m_dateTime; QString m_dateTime;
QString m_mode; QString m_mode;