Merge branch 'develop' of bitbucket.org:k1jt/wsjtx into develop

This commit is contained in:
Steven Franke 2020-04-26 14:17:46 -05:00
commit 93223ea455
3 changed files with 39 additions and 21 deletions

View File

@ -177,15 +177,6 @@ unsigned DecodedText::timeInSeconds() const
+ (padding_ ? string_.mid (column_time + 2 + padding_, 2).toUInt () : 0U);
}
/*
2343 -11 0.8 1259 # YV6BFE F6GUU R-08
2343 -19 0.3 718 # VE6WQ SQ2NIJ -14
2343 -7 0.3 815 # KK4DSD W7VP -16
2343 -13 0.1 3627 @ CT1FBK IK5YZT R+02
0605 Tx 1259 # CQ VK3ACF QF22
*/
QString DecodedText::report() const // returns a string of the SNR field with a leading + or - followed by two digits
{
int sr = snr();

View File

@ -40,6 +40,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
character(len=20) :: datetime
character(len=12) :: mycall, hiscall
character(len=6) :: mygrid, hisgrid
character*60 line
data ndec8/0/
save
type(counting_jt4_decoder) :: my_jt4
@ -61,6 +62,21 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
my_jt9%decoded = 0
my_ft8%decoded = 0
my_ft4%decoded = 0
! For testing only: return Rx messages stored in a file as decodes
inquire(file='rx_messages.txt',exist=ex)
if(ex) then
if(params%nzhsym.eq.41) then
open(39,file='rx_messages.txt',status='old')
do i=1,9999
read(39,'(a60)',end=5) line
if(line(1:1).eq.' ' .or. line(1:1).eq.'-') go to 800
write(*,'(a)') trim(line)
enddo
5 close(39)
endif
go to 800
endif
ncontest=iand(params%nexp_decode,7)
single_decode=iand(params%nexp_decode,32).ne.0
@ -86,7 +102,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
if(params%nmode.eq.8) then
! We're in FT8 mode
if(ncontest.eq.6) then
! Fox mode: initialize and open houndcallers.txt
inquire(file=trim(temp_dir)//'/houndcallers.txt',exist=ex)

View File

@ -4517,6 +4517,19 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
ui->dxCallEntry->setText(hiscall);
}
QStringList w=message.string().mid(22).remove("<").remove(">").split(" ",QString::SkipEmptyParts);
int nw=w.size();
if(nw>=4) {
if(message_words.size()<3) return;
// Temporary? Correct for the fact that message.deCallAndGrid() does not work for EU VHF contest messages
QString t=message_words.at(nw-2);
int n=w.at(nw-2).toInt();
if(n>=520001 and n<=592047) {
hiscall=w.at(1);
hisgrid=w.at(nw-1);
}
}
bool is_73 = message_words.filter (QRegularExpression {"^(73|RR73)$"}).size ();
if (!is_73 and !message.isStandardMessage() and !message.string().contains("<")) {
qDebug () << "Not processing message - hiscall:" << hiscall << "hisgrid:" << hisgrid
@ -4577,7 +4590,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|| dtext.contains (" " + m_baseCall + "/")
|| (firstcall == "DE")) {
QStringList w=message.string().mid(22).remove("<").remove(">").split(" ",QString::SkipEmptyParts);
QString w2;
if(w.size()>=3) w2=w.at(2);
QString w34;
@ -4589,15 +4601,9 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
}
bool bEU_VHF_w2=(nrpt>=520001 and nrpt<=594000);
if(bEU_VHF_w2 and SpecOp::EU_VHF!=m_config.special_op_id()) {
// Switch automatically to EU VHF Contest mode
m_config.setEU_VHF_Contest();
// m_nContest=EU_VHF;
if(m_transmitting) m_restart=true;
ui->decodedTextBrowser2->displayQSY (QString{"Enabled EU VHF Contest messages."});
QString t0="EU VHF";
ui->labDXped->setVisible(true);
ui->labDXped->setText(t0);
MessageBox::information_message (this, tr ("Should you switch to EU VHF Contest mode?"));
}
QStringList t=message.string().split(' ', QString::SkipEmptyParts);
int n=t.size();
QString t0=t.at(n-2);
@ -4609,7 +4615,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
m_xRcvd=t.at(n-2) + " " + t.at(n-1);
t0=t.at(n-3);
}
if(bFieldDay_msg and SpecOp::FIELD_DAY!=m_config.special_op_id()) {
// ### Should be in ARRL Field Day mode ??? ###
MessageBox::information_message (this, tr ("Should you switch to ARRL Field Day mode?"));
@ -4622,9 +4627,15 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
// ### Should be in RTTY contest mode ??? ###
MessageBox::information_message (this, tr ("Should you switch to RTTY contest mode?"));
}
if(SpecOp::EU_VHF==m_config.special_op_id() and message_words.at(1).contains(m_baseCall) and
(!message_words.at(2).contains(qso_partner_base_call)) and (!m_bDoubleClicked)) {
// qDebug() << "aa" << "Ignoring:" << message.string().mid(24);
return;
}
if(message_words.size () > 3 // enough fields for a normal message
&& (message_words.at(1).contains(m_baseCall) || "DE" == message_words.at(1))
// && (message_words.at(2).contains(qso_partner_base_call) or bEU_VHF_w2)) {
&& (message_words.at(2).contains(qso_partner_base_call) or m_bDoubleClicked
or bEU_VHF_w2 or (m_QSOProgress==CALLING))) {