mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-22 04:11:16 -05:00
Use the "TU; ..." message when starting another FT4 QSO almost right away.
This commit is contained in:
parent
7a0823301a
commit
e9a999cda1
@ -51,10 +51,11 @@ DecodedText::DecodedText (QString const& the_string)
|
|||||||
|
|
||||||
QStringList DecodedText::messageWords () const
|
QStringList DecodedText::messageWords () const
|
||||||
{
|
{
|
||||||
if (is_standard_)
|
if(is_standard_) {
|
||||||
{
|
|
||||||
// extract up to the first four message words
|
// extract up to the first four message words
|
||||||
return words_re.match (message_).capturedTexts ();
|
QString t=message_;
|
||||||
|
if(t.left(4)=="TU; ") t=message_.mid(4,-1);
|
||||||
|
return words_re.match(t).capturedTexts();
|
||||||
}
|
}
|
||||||
// simple word split for free text messages
|
// simple word split for free text messages
|
||||||
auto words = message_.split (' ', QString::SkipEmptyParts);
|
auto words = message_.split (' ', QString::SkipEmptyParts);
|
||||||
|
4
main.cpp
4
main.cpp
@ -91,8 +91,8 @@ namespace
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
// Add timestamps to all debug messages
|
// ### Add timestamps to all debug messages
|
||||||
qSetMessagePattern ("[%{time yyyyMMdd HH:mm:ss.zzz t} %{if-debug}D%{endif}%{if-info}I%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{message}");
|
// qSetMessagePattern ("[%{time yyyyMMdd HH:mm:ss.zzz t} %{if-debug}D%{endif}%{if-info}I%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{message}");
|
||||||
|
|
||||||
init_random_seed ();
|
init_random_seed ();
|
||||||
|
|
||||||
|
@ -808,6 +808,9 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
|||||||
ui->TxPowerComboBox->addItem(t);
|
ui->TxPowerComboBox->addItem(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_dateTimeRcvdRR73=QDateTime::currentDateTimeUtc();
|
||||||
|
m_dateTimeSentTx3=QDateTime::currentDateTimeUtc();
|
||||||
|
|
||||||
ui->labAz->setStyleSheet("border: 0px;");
|
ui->labAz->setStyleSheet("border: 0px;");
|
||||||
ui->labAz->setText("");
|
ui->labAz->setText("");
|
||||||
auto t = "UTC dB DT Freq Message";
|
auto t = "UTC dB DT Freq Message";
|
||||||
@ -4377,6 +4380,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|
|||||||
hiscall+="/P";
|
hiscall+="/P";
|
||||||
ui->dxCallEntry->setText(hiscall);
|
ui->dxCallEntry->setText(hiscall);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool is_73 = message_words.filter (QRegularExpression {"^(73|RR73)$"}).size ();
|
bool is_73 = message_words.filter (QRegularExpression {"^(73|RR73)$"}).size ();
|
||||||
if (!is_73 and !message.isStandardMessage() and !message.string().contains("<")) {
|
if (!is_73 and !message.isStandardMessage() and !message.string().contains("<")) {
|
||||||
qDebug () << "Not processing message - hiscall:" << hiscall << "hisgrid:" << hisgrid
|
qDebug () << "Not processing message - hiscall:" << hiscall << "hisgrid:" << hisgrid
|
||||||
@ -4384,6 +4388,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// only allow automatic mode changes between JT9 and JT65, and when not transmitting
|
// only allow automatic mode changes between JT9 and JT65, and when not transmitting
|
||||||
if (!m_transmitting and m_mode == "JT9+JT65") {
|
if (!m_transmitting and m_mode == "JT9+JT65") {
|
||||||
if (message.isJT9())
|
if (message.isJT9())
|
||||||
@ -4981,6 +4986,15 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
|
|||||||
msgtype(t + sent, ui->tx2);
|
msgtype(t + sent, ui->tx2);
|
||||||
if(sent==rpt) msgtype(t + "R" + sent, ui->tx3);
|
if(sent==rpt) msgtype(t + "R" + sent, ui->tx3);
|
||||||
if(sent!=rpt) msgtype(t + "R " + sent, ui->tx3);
|
if(sent!=rpt) msgtype(t + "R " + sent, ui->tx3);
|
||||||
|
if(m_mode=="FT4") {
|
||||||
|
QDateTime now=QDateTime::currentDateTimeUtc();
|
||||||
|
int sinceTx3 = m_dateTimeSentTx3.secsTo(now);
|
||||||
|
int sinceRR73 = m_dateTimeRcvdRR73.secsTo(now);
|
||||||
|
if(m_bDoubleClicked and (qAbs(sinceTx3-12) <= 3) and (sinceRR73 < 5)) {
|
||||||
|
t="TU; " + ui->tx3->text();
|
||||||
|
ui->tx3->setText(t);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_mode=="MSK144" and m_bShMsgs) {
|
if(m_mode=="MSK144" and m_bShMsgs) {
|
||||||
@ -8740,15 +8754,16 @@ void MainWindow::ft4_rx(int k)
|
|||||||
auto const& parts = decodedtext.string().remove("<").remove(">")
|
auto const& parts = decodedtext.string().remove("<").remove(">")
|
||||||
.split (' ', QString::SkipEmptyParts);
|
.split (' ', QString::SkipEmptyParts);
|
||||||
if(parts.size() > 6) {
|
if(parts.size() > 6) {
|
||||||
auto for_us = parts[5].contains(m_baseCall)
|
int iFirstCall=5;
|
||||||
|| ("DE" == parts[5] && qAbs(ui->TxFreqSpinBox->value() - audioFreq) <= 150);
|
if(parts[5]=="TU;") iFirstCall=6;
|
||||||
if(m_baseCall==m_config.my_callsign() and m_baseCall!=parts[5]) for_us=false;
|
auto for_us = parts[iFirstCall].contains(m_baseCall);
|
||||||
|
if(m_baseCall==m_config.my_callsign() and m_baseCall!=parts[iFirstCall]) for_us=false;
|
||||||
if(m_bCallingCQ && !m_bAutoReply && for_us && ui->cbFirst->isChecked()) {
|
if(m_bCallingCQ && !m_bAutoReply && for_us && ui->cbFirst->isChecked()) {
|
||||||
m_bDoubleClicked=true;
|
m_bDoubleClicked=true;
|
||||||
m_bAutoReply = true;
|
m_bAutoReply = true;
|
||||||
ui->cbFirst->setStyleSheet("");
|
ui->cbFirst->setStyleSheet("");
|
||||||
}
|
}
|
||||||
if(for_us or ((qAbs(audioFreq - ui->TxFreqSpinBox->value()) <= 150) and parts[5]!="CQ")) {
|
if(for_us or ((qAbs(audioFreq - ui->TxFreqSpinBox->value()) <= 150) and parts[iFirstCall]!="CQ")) {
|
||||||
// This msg contains MyCall, or is within 150 hertz of our Tx frequency
|
// This msg contains MyCall, or is within 150 hertz of our Tx frequency
|
||||||
// (Is that the best logic to use here??)
|
// (Is that the best logic to use here??)
|
||||||
ui->decodedTextBrowser2->displayDecodedText(decodedtext,m_baseCall,
|
ui->decodedTextBrowser2->displayDecodedText(decodedtext,m_baseCall,
|
||||||
@ -8756,6 +8771,7 @@ void MainWindow::ft4_rx(int k)
|
|||||||
if(decodedtext.string().trimmed().contains(m_inQSOwith)) processMessage(decodedtext);
|
if(decodedtext.string().trimmed().contains(m_inQSOwith)) processMessage(decodedtext);
|
||||||
m_QSOText = decodedtext.string().trimmed ();
|
m_QSOText = decodedtext.string().trimmed ();
|
||||||
}
|
}
|
||||||
|
if(for_us and parts[iFirstCall+2]=="RR73") m_dateTimeRcvdRR73=QDateTime::currentDateTimeUtc();
|
||||||
write_all("Rx",decodedtext.string().trimmed());
|
write_all("Rx",decodedtext.string().trimmed());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -8809,7 +8825,7 @@ void MainWindow::ft4_tx(int ntx)
|
|||||||
float f0=ui->TxFreqSpinBox->value() - m_XIT;
|
float f0=ui->TxFreqSpinBox->value() - m_XIT;
|
||||||
int nwave=(nsym+2)*nsps;
|
int nwave=(nsym+2)*nsps;
|
||||||
gen_ft4wave_(const_cast<int *>(itone),&nsym,&nsps,&fsample,&f0,foxcom_.wave,&nwave);
|
gen_ft4wave_(const_cast<int *>(itone),&nsym,&nsps,&fsample,&f0,foxcom_.wave,&nwave);
|
||||||
|
if(m_ntx==3) m_dateTimeSentTx3=QDateTime::currentDateTimeUtc();
|
||||||
Q_EMIT m_config.transceiver_ptt (true); //Assert the PTT
|
Q_EMIT m_config.transceiver_ptt (true); //Assert the PTT
|
||||||
m_tx_when_ready = true;
|
m_tx_when_ready = true;
|
||||||
qint64 ms=QDateTime::currentMSecsSinceEpoch();
|
qint64 ms=QDateTime::currentMSecsSinceEpoch();
|
||||||
|
@ -651,6 +651,8 @@ private:
|
|||||||
|
|
||||||
QDateTime m_dateTimeQSOOn;
|
QDateTime m_dateTimeQSOOn;
|
||||||
QDateTime m_dateTimeLastTX;
|
QDateTime m_dateTimeLastTX;
|
||||||
|
QDateTime m_dateTimeSentTx3;
|
||||||
|
QDateTime m_dateTimeRcvdRR73;
|
||||||
|
|
||||||
QSharedMemory *mem_jt9;
|
QSharedMemory *mem_jt9;
|
||||||
QString m_QSOText;
|
QString m_QSOText;
|
||||||
|
Loading…
Reference in New Issue
Block a user