Resolve some issues with sequencing of R+rprt and sign-off messages

This commit is contained in:
Bill Somerville 2020-11-12 13:32:56 +00:00
parent c7f2fdc404
commit dc169c3a84
No known key found for this signature in database
GPG Key ID: D864B06D1E81618F

View File

@ -4932,34 +4932,38 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
m_QSOProgress=ROGER_REPORT; m_QSOProgress=ROGER_REPORT;
} }
} else { // no grid on end of msg } else { // no grid on end of msg
QString r=message_words.at (3); auto const& word_3 = message_words.at (3);
if(m_QSOProgress >= ROGER_REPORT && (r=="RRR" || r.toInt()==73 || "RR73" == r)) { bool word_3_is_int;
if(m_mode=="FT4" and r=="RR73") m_dateTimeRcvdRR73=QDateTime::currentDateTimeUtc(); auto word_3_as_number = word_3.toInt (&word_3_is_int);
m_bTUmsg=false; if(m_QSOProgress >= ROGER_REPORT && ("RRR" == word_3
m_nextCall=""; //### Temporary: disable use of "TU;" message || (word_3_is_int && word_3_as_number == 73)
if(SpecOp::RTTY == m_config.special_op_id() and m_nextCall!="") { || "RR73" == word_3)) {
// We're in RTTY contest and have "nextCall" queued up: send a "TU; ..." message if(m_mode=="FT4" and "RR73" == word_3) m_dateTimeRcvdRR73=QDateTime::currentDateTimeUtc();
m_bTUmsg=false;
m_nextCall=""; //### Temporary: disable use of "TU;" message
if(SpecOp::RTTY == m_config.special_op_id() and m_nextCall!="") {
// We're in RTTY contest and have "nextCall" queued up: send a "TU; ..." message
logQSOTimer.start(0);
ui->tx3->setText(ui->tx3->text().remove("TU; "));
useNextCall();
QString t="TU; " + ui->tx3->text();
ui->tx3->setText(t);
m_bTUmsg=true;
} else {
if(SpecOp::RTTY == m_config.special_op_id()) {
logQSOTimer.start(0); logQSOTimer.start(0);
ui->tx3->setText(ui->tx3->text().remove("TU; ")); m_ntx=6;
useNextCall(); ui->txrb6->setChecked(true);
QString t="TU; " + ui->tx3->text();
ui->tx3->setText(t);
m_bTUmsg=true;
} else { } else {
if(SpecOp::RTTY == m_config.special_op_id()) { m_ntx=5;
logQSOTimer.start(0); ui->txrb5->setChecked(true);
m_ntx=6;
ui->txrb6->setChecked(true);
} else {
m_ntx=5;
ui->txrb5->setChecked(true);
}
} }
}
m_QSOProgress = SIGNOFF; m_QSOProgress = SIGNOFF;
} else if((m_QSOProgress >= REPORT } else if((m_QSOProgress >= REPORT
|| (m_QSOProgress >= REPLYING && || (m_QSOProgress >= REPLYING &&
(m_mode=="MSK144" or m_mode=="FT8" or m_mode=="FT4"))) (m_mode=="MSK144" or m_mode=="FT8" or m_mode=="FT4")))
&& r.mid(0,1)=="R") { && word_3.startsWith ('R')) {
m_ntx=4; m_ntx=4;
m_QSOProgress = ROGERS; m_QSOProgress = ROGERS;
if(SpecOp::RTTY == m_config.special_op_id()) { if(SpecOp::RTTY == m_config.special_op_id()) {
@ -4968,23 +4972,30 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
if(nRpt>=529 and nRpt<=599) m_xRcvd=t[n-2] + " " + t[n-1]; if(nRpt>=529 and nRpt<=599) m_xRcvd=t[n-2] + " " + t[n-1];
} }
ui->txrb4->setChecked(true); ui->txrb4->setChecked(true);
} else if(m_QSOProgress>=CALLING and } else if (m_QSOProgress >= CALLING)
((r.toInt()>=-50 && r.toInt()<=49) or (r.toInt()>=529 && r.toInt()<=599))) { {
if(SpecOp::EU_VHF==m_config.special_op_id() or if (word_3_is_int
SpecOp::FIELD_DAY==m_config.special_op_id() or && ((word_3_as_number >= -50 && word_3_as_number <= 49)
SpecOp::RTTY==m_config.special_op_id()) { || (word_3_as_number >= 529 && word_3_as_number <= 599))) {
setTxMsg(2); if(SpecOp::EU_VHF==m_config.special_op_id() or
m_QSOProgress=REPORT; SpecOp::FIELD_DAY==m_config.special_op_id() or
} else { SpecOp::RTTY==m_config.special_op_id()) {
if(r.left(2)=="R-" or r.left(2)=="R+") { setTxMsg(2);
setTxMsg(4); m_QSOProgress=REPORT;
m_QSOProgress=ROGERS; }
else {
setTxMsg (3);
m_QSOProgress = ROGER_REPORT;
}
} else { } else {
setTxMsg(3); if (word_3.startsWith ("R-") || word_3.startsWith ("R+")) {
m_QSOProgress=ROGER_REPORT; setTxMsg(4);
m_QSOProgress=ROGERS;
} }
} }
} else { // nothing for us }
else
{ // nothing for us
return; return;
} }
} }