SVN r8577

This commit is contained in:
Jordan Sherer 2018-03-19 01:23:56 -04:00
parent 45cc6416c1
commit 419c039d08
5 changed files with 100 additions and 69 deletions

Binary file not shown.

View File

@ -13,6 +13,42 @@
Copyright 2001 - 2018 by Joe Taylor, K1JT.
Release: WSJT-X Version 1.9.0-rc3
March 18, 2018
---------------------------------
Changes from WSJT-X Version 1.9.0-rc2 include the following:
- Corrected a number of flaws in Fox behavior, FT8 DXpedition Mode
- Allow Hounds to use compound callsigns
- Write debugging information to FoxQSO.txt.
- Fix the "Blue Decode Button" bug
- Allow partial processing of incoming UDP Reply messages so that
non-CQ/QRZ decodes can be processed. The processing is the same as
double-clicking the same decoded message within WSJT-X except that
"Enable Tx" will not be enabled.
- Send DX grid locator to wsjt_status.txt, for use by applications like
PstRotatorAZ
- Correct the display of DXCC status of KG4 calls
- Updated copy of cty.dat
- Updates to documentation
- Other minor bug fixes
- This release contains updated Hamlib functionality including changes
to the Yaesu FT-817 back end that allows the uBITx kit transceiver
to be CAT controlled by WSJT-X.
Release: WSJT-X Version 1.9.0-rc2
February 26, 2018
---------------------------------

View File

@ -2,5 +2,5 @@
set (WSJTX_VERSION_MAJOR 1)
set (WSJTX_VERSION_MINOR 9)
set (WSJTX_VERSION_PATCH 0)
set (WSJTX_RC 2) # release candidate number, comment out or zero for development versions
set (WSJTX_RC 3) # release candidate number, comment out or zero for development versions
set (WSJTX_VERSION_IS_RELEASE 0) # set to 1 for final release build

View File

@ -4020,21 +4020,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
return;
}
if(m_bFastMode or m_mode=="FT8") {
auto i1=message.string ().indexOf(" CQ ");
if(i1>10) {
bool ok;
Frequency kHz {message.string ().mid (i1+4,3).toUInt (&ok)};
if(ok && kHz >= 10 && kHz <= 999) {
if (m_config.is_transceiver_online ()) {
//QSY Freq for answering CQ nnn
setRig (m_freqNominal / 1000000 * 1000000 + 1000 * kHz);
ui->decodedTextBrowser2->displayQSY (QString {"QSY %1"}.arg (m_freqNominal / 1e6, 7, 'f', 3));
}
}
}
}
//Skip the rest if no decoded text extracted
int frequency = message.frequencyOffset();
if (message.isTX()) {
@ -4047,6 +4032,20 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
return;
}
// check for CQ with listening frequency
if (parts.size () >= 7
&& (m_bFastMode || m_mode=="FT8")
&& "CQ" == parts[5]
&& m_config.is_transceiver_online ()) {
bool ok;
auto kHz = parts[6].toUInt (&ok);
if (ok && kHz >= 10 && 3 == parts[6].size ()) {
// QSY Freq for answering CQ nnn
setRig (m_freqNominal / 1000000 * 1000000 + 1000 * kHz);
ui->decodedTextBrowser2->displayQSY (QString {"QSY %1"}.arg (m_freqNominal / 1e6, 7, 'f', 3));
}
}
int nmod = message.timeInSeconds () % (2*m_TRperiod);
m_txFirst=(nmod!=0);
ui->txFirstCheckBox->setChecked(m_txFirst);
@ -4921,9 +4920,10 @@ void MainWindow::displayWidgets(qint64 n)
if(i==4) ui->rptSpinBox->setVisible(b);
if(i==5) ui->sbTR->setVisible(b);
if(i==6) {
ui->sbCQTxFreq->setVisible(b);
ui->cbCQTx->setVisible(b);
ui->cbCQTx->setEnabled(b);
ui->sbCQTxFreq->setVisible (b);
ui->cbCQTx->setVisible (b);
auto is_compound = m_config.my_callsign () != m_baseCall;
ui->cbCQTx->setEnabled (b && (!is_compound || shortList (m_config.my_callsign ())));
}
if(i==7) ui->cbShMsgs->setVisible(b);
if(i==8) ui->cbFast9->setVisible(b);
@ -6529,63 +6529,58 @@ void MainWindow::replyToCQ (QTime time, qint32 snr, float delta_time, quint32 de
return;
}
if (message_text.contains (QRegularExpression {R"(^(CQ |CQDX |QRZ ))"}))
QString format_string {"%1 %2 %3 %4 %5 %6"};
auto const& time_string = time.toString ("~" == mode || "&" == mode ? "hhmmss" : "hhmm");
auto cqtext = format_string
.arg (time_string)
.arg (snr, 3)
.arg (delta_time, 4, 'f', 1)
.arg (delta_frequency, 4)
.arg (mode, -2)
.arg (message_text);
auto messages = ui->decodedTextBrowser->toPlainText ();
auto position = messages.lastIndexOf (cqtext);
if (position < 0)
{
// a message we are willing to accept
QString format_string {"%1 %2 %3 %4 %5 %6"};
auto const& time_string = time.toString ("~" == mode || "&" == mode ? "hhmmss" : "hhmm");
auto cqtext = format_string
.arg (time_string)
.arg (snr, 3)
.arg (delta_time, 4, 'f', 1)
.arg (delta_frequency, 4)
.arg (mode, -2)
.arg (message_text);
auto messages = ui->decodedTextBrowser->toPlainText ();
auto position = messages.lastIndexOf (cqtext);
if (position < 0)
// try again with with -0.0 delta time
position = messages.lastIndexOf (format_string
.arg (time_string)
.arg (snr, 3)
.arg ('-' + QString::number (delta_time, 'f', 1), 4)
.arg (delta_frequency, 4)
.arg (mode, -2)
.arg (message_text));
}
if (position >= 0)
{
if (m_config.udpWindowToFront ())
{
// try again with with -0.0 delta time
position = messages.lastIndexOf (format_string
.arg (time_string)
.arg (snr, 3)
.arg ('-' + QString::number (delta_time, 'f', 1), 4)
.arg (delta_frequency, 4)
.arg (mode, -2)
.arg (message_text));
show ();
raise ();
activateWindow ();
}
if (position >= 0)
if (m_config.udpWindowRestore () && isMinimized ())
{
if (m_config.udpWindowToFront ())
{
show ();
raise ();
activateWindow ();
}
if (m_config.udpWindowRestore () && isMinimized ())
{
showNormal ();
raise ();
}
// find the linefeed at the end of the line
position = ui->decodedTextBrowser->toPlainText().indexOf(QChar::LineFeed,position);
m_bDoubleClicked = true;
auto start = messages.left (position).lastIndexOf (QChar::LineFeed) + 1;
DecodedText message {messages.mid (start, position - start), ("MSK144" == m_mode || "FT8" == m_mode) &&
ui->cbVHFcontest->isChecked(), m_config.my_grid ()};
Qt::KeyboardModifiers kbmod {modifiers << 24};
processMessage (message, kbmod);
tx_watchdog (false);
QApplication::alert (this);
}
else
{
qDebug () << "reply to CQ request ignored, decode not found:" << cqtext;
showNormal ();
raise ();
}
// find the linefeed at the end of the line
position = ui->decodedTextBrowser->toPlainText().indexOf(QChar::LineFeed,position);
if (message_text.contains (QRegularExpression {R"(^(CQ |CQDX |QRZ ))"})) {
// a message we are willing to accept and auto reply to
m_bDoubleClicked = true;
}
auto start = messages.left (position).lastIndexOf (QChar::LineFeed) + 1;
DecodedText message {messages.mid (start, position - start), ("MSK144" == m_mode || "FT8" == m_mode) &&
ui->cbVHFcontest->isChecked(), m_config.my_grid ()};
Qt::KeyboardModifiers kbmod {modifiers << 24};
processMessage (message, kbmod);
tx_watchdog (false);
QApplication::alert (this);
}
else
{
qDebug () << "rejecting UDP request to reply as decode is not a CQ or QRZ";
qDebug () << "process reply message ignored, decode not found:" << cqtext;
}
}

View File

@ -792,7 +792,7 @@ QLabel[oob=&quot;true&quot;] {
<bool>false</bool>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Check this to call CQ on the &amp;quot;Tx CQ&amp;quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Check this to call CQ on the &amp;quot;Tx CQ&amp;quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.&lt;/p&gt;&lt;p&gt;Not available to type 2 compound callsign holders.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string/>