From 4df7aae11a58f045763c1802e512c728a442b069 Mon Sep 17 00:00:00 2001 From: Jordan Sherer Date: Thu, 8 Mar 2018 17:01:33 -0500 Subject: [PATCH] Merged in the extended free text experiment patch --- .svn/wc.db | Bin 5376000 -> 5376000 bytes Modes.cpp | 3 +- Modes.hpp | 1 + main.cpp | 4 + mainwindow.cpp | 150 ++ mainwindow.h | 8 + mainwindow.ui | 5090 ++++++++++++++++++++++++------------------------ 7 files changed, 2745 insertions(+), 2511 deletions(-) diff --git a/.svn/wc.db b/.svn/wc.db index feffee15049203670e58bb76863efc28bf550e40..9f2a8c6ea885cfc547b652814e4251908b53c125 100644 GIT binary patch delta 353 zcmXAlIZspp00#3=j^$WEK)?k#1-VfHfy;P9-R6iYLa$yt(QJ5EnccSoa6y`@^ z!OyVp^T+(t)$i#wDU>2fNU@Yisgy}l?n${+$bG4lDyfzSQX{oeCl4hh_0k}Zq*0or zSz4r3+T^jcONTs>PU(_v>5*RPlYSYHr}9jm%b*O&u)L6$G9sfgCgU<8lk!Sl%Nv=J zX_=9<%*ve1OGXytt-O=P1C|CW|Nk5M6_4yLT^=TGb}sXKWj~qD4#b-uvKL=&1H>Db r*|YQHwXpIp*Zya_Hql#@+W+w_sEW6amQR9PYj^#4IbJ`0|F!7~R06_UP)5|(bFE!6hO)s_7D}R)h{QvC7seG z-Ev!cq*rosNBX2+2IQ{XlR+7hVadyVc_1S)Dq}J(59N_e$fP`$Co&~Z<(W)NL1tuD zp39uf%L{oa3$iFn@=9L+V0pAD`RmW0#S>f0r-!M;rz_=!gVjoUu9%P4-xg1HlVHF3 vD1LWZ{QEDR_;_zQ_w#*gYOpR_`SvBq#2ZJYKf!sGi?-H|OYz$A%3kMxUEhot diff --git a/Modes.cpp b/Modes.cpp index a04c092..ce7bdd0 100644 --- a/Modes.cpp +++ b/Modes.cpp @@ -23,7 +23,8 @@ namespace "MSK144", "QRA64", "FreqCal", - "FT8" + "FT8", + "FT8Free" }; std::size_t constexpr mode_names_size = sizeof (mode_names) / sizeof (mode_names[0]); } diff --git a/Modes.hpp b/Modes.hpp index 8504cda..592ca06 100644 --- a/Modes.hpp +++ b/Modes.hpp @@ -50,6 +50,7 @@ public: QRA64, FreqCal, FT8, + FT8Free, MODES_END_SENTINAL_AND_COUNT // this must be last }; Q_ENUM (Mode) diff --git a/main.cpp b/main.cpp index 8ce40a7..2d30706 100644 --- a/main.cpp +++ b/main.cpp @@ -295,8 +295,12 @@ int main(int argc, char *argv[]) mem_jt9.setKey(a.applicationName ()); if(!mem_jt9.attach()) { + std::cerr << QString("memory attach error: %1").arg(mem_jt9.error()).toLocal8Bit ().data () << std::endl; + if (!mem_jt9.create(sizeof(struct dec_data))) { splash.hide (); + std::cerr << QString("memory create error: %1").arg(mem_jt9.error()).toLocal8Bit ().data () << std::endl; + MessageBox::critical_message (nullptr, a.translate ("main", "Shared memory error"), a.translate ("main", "Unable to create shared memory segment")); throw std::runtime_error {"Shared memory error"}; diff --git a/mainwindow.cpp b/mainwindow.cpp index f1328ba..f6896f8 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -664,6 +664,8 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->tx5->setValidator (new QRegExpValidator {message_alphabet, this}); ui->tx6->setValidator (new QRegExpValidator {message_alphabet, this}); ui->freeTextMsg->setValidator (new QRegExpValidator {message_alphabet, this}); + ui->nextFreeTextMsg->setValidator (new QRegExpValidator {message_alphabet, this}); + //ui->extFreeTextMsg->setValidator (new QRegExpValidator {message_alphabet, this}); // Free text macros model to widget hook up. ui->tx5->setModel (m_config.macros ()); @@ -673,6 +675,12 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect (ui->freeTextMsg->lineEdit () , &QLineEdit::editingFinished , [this] () {on_freeTextMsg_currentTextChanged (ui->freeTextMsg->lineEdit ()->text ());}); + connect (ui->nextFreeTextMsg + , &QLineEdit::editingFinished + , [this] () {on_nextFreeTextMsg_currentTextChanged (ui->nextFreeTextMsg->text ());}); + connect (ui->extFreeTextMsg + , &QTextEdit::textChanged + , [this] () {on_extFreeTextMsg_currentTextChanged (ui->extFreeTextMsg->toPlainText ());}); connect(&m_guiTimer, &QTimer::timeout, this, &MainWindow::guiUpdate); m_guiTimer.start(100); //### Don't change the 100 ms! ### @@ -917,10 +925,12 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, } */ + /* if(QCoreApplication::applicationVersion().contains("-devel") or QCoreApplication::applicationVersion().contains("-rc")) { QTimer::singleShot (0, this, SLOT (not_GA_warning_message ())); } + */ if(!ui->cbMenus->isChecked()) { ui->cbMenus->setChecked(true); @@ -2959,6 +2969,8 @@ void MainWindow::readFromStdout() //readFromStdout if(!b65 and m_modeTx=="JT65") on_pbTxMode_clicked(); } m_QSOText = decodedtext.string ().trimmed (); + + //ui->textEditRX->insertHtml(decodedtext.messageWords().first().trimmed() + " "); } if(m_mode=="FT8" and m_config.bHound()) { @@ -3363,6 +3375,7 @@ void MainWindow::guiUpdate() if(m_ntx == 6) ba=ui->tx6->text().toLocal8Bit(); if(m_ntx == 7) ba=ui->genMsg->text().toLocal8Bit(); if(m_ntx == 8) ba=ui->freeTextMsg->currentText().toLocal8Bit(); + if(m_ntx == 9) ba=ui->nextFreeTextMsg->text().toLocal8Bit(); } ba2msg(ba,message); @@ -3720,6 +3733,27 @@ void MainWindow::stopTx() tx_status_label.setStyleSheet(""); tx_status_label.setText(""); } + + if(ui->tabWidget->currentIndex() == 3){ + //1. check to see if there are more messages to send + //2. if there are, fixup next message and continue transmitting + //3. if not, allow the transmission to stop + // TODO: refactor this to "count remaining" + QString txt = ui->extFreeTextMsg->toPlainText(); + int sz = countFreeTextMsgs(txt.trimmed().mid(m_extFreeTxtPos).trimmed()); + if(sz > 0){ + splitNextFreeTextMsg(); + ui->txFirstCheckBox->setChecked(!m_txFirst); + } else { + if(ui->autoButton->isChecked()){ + ui->autoButton->click(); + } + ui->nextFreeTextMsg->clear(); + ui->extFreeTextMsg->clear(); + m_extFreeTxtPos = 0; + } + } + ptt0Timer.start(200); //end-of-transmission sequencer delay monitor (true); statusUpdate (); @@ -3944,6 +3978,35 @@ void MainWindow::on_txb6_clicked() if (m_transmitting) m_restart=true; } +void MainWindow::on_pbNextFreeTextMsg_clicked() +{ + m_ntx=9; + m_QSOProgress = CALLING; + set_dateTimeQSO(-1); + ui->rbNextFreeTextMsg->setChecked(true); + if (m_transmitting) m_restart=true; + + splitNextFreeTextMsg(); + + // TODO: detect if we're currently in a possible transmit cycle...and if so, wait... + QDateTime now {QDateTime::currentDateTimeUtc()}; + int s=now.time().second(); + int n=s % (2*m_TRperiod); + if((n <= m_TRperiod && m_txFirst) || (n > m_TRperiod && !m_txFirst)){ + ui->txFirstCheckBox->setChecked(!m_txFirst); + } + if(!ui->autoButton->isChecked()){ + ui->autoButton->click(); + } +} + +void MainWindow::on_rbNextFreeTextMsg_toggled (bool status) +{ + if (status) { + m_ntx = 9; + } +} + void MainWindow::doubleClickOnCall2(Qt::KeyboardModifiers modifiers) { set_dateTimeQSO(-1); // reset our QSO start time @@ -4794,6 +4857,92 @@ void MainWindow::on_tx6_editingFinished() //tx6 edited msgtype(t, ui->tx6); } +void MainWindow::on_nextFreeTextMsg_currentTextChanged (QString const& text) +{ + msgtype(text, ui->nextFreeTextMsg); +} + +void MainWindow::on_extFreeTextMsg_currentTextChanged (QString const& text) +{ + QString x; + QString::const_iterator i; + for(i = text.constBegin(); i != text.constEnd(); i++){ + if(message_alphabet.exactMatch(QString(*i))){ + x += (*i).toUpper(); + } + } + if(x != text){ + int pos = ui->extFreeTextMsg->textCursor().position(); + int maxpos = x.size(); + ui->extFreeTextMsg->setPlainText(x); + QTextCursor c = ui->extFreeTextMsg->textCursor(); + c.setPosition(pos < maxpos ? pos : maxpos, QTextCursor::MoveAnchor); + ui->extFreeTextMsg->setTextCursor(c); + } + + int count = countFreeTextMsgs(x.trimmed().mid(m_extFreeTxtPos).trimmed()); + ui->lblTxNum->setText(QString("Remaining Tx Sequences: %1").arg(count)); +} + +QString MainWindow::parseFT8Message(QString input){ + char message[29]; + char msgsent[29]; + char volatile ft8msgbits[75]; + int volatile itone[NUM_ISCAT_SYMBOLS]; + + QByteArray ba = input.toLocal8Bit(); + ba2msg(ba,message); + + qint32 i3bit = 0; + bool bcontest=ui->cbVHFcontest->isChecked(); + char MyGrid[6]; + strncpy(MyGrid, (m_config.my_grid()+" ").toLatin1(),6); + genft8_(message, MyGrid, &bcontest, &i3bit, msgsent, const_cast (ft8msgbits), + const_cast (itone), 22, 6, 22); + msgsent[22]=0; + + return QString::fromLatin1(msgsent).trimmed(); +} + +int MainWindow::countFreeTextMsgs(QString input){ + int count = 0; + while(input.size() > 0){ + QString nextTxt = parseFT8Message(input); + QRegExp n = QRegExp("^" + QRegExp::escape(nextTxt)); + int sz = input.size(); + input = input.remove(n).trimmed(); + count++; + if(input.size() == sz){ + break; + } + } + return count; +} + +void MainWindow::splitNextFreeTextMsg() +{ + QString txt = ui->extFreeTextMsg->toPlainText().trimmed().mid(m_extFreeTxtPos).trimmed(); + + QString nextTxt = parseFT8Message(txt); + ui->nextFreeTextMsg->setText(nextTxt); + QRegExp n = QRegExp("^" + QRegExp::escape(nextTxt)); + + ui->extFreeTextMsg->setPlainText(txt.remove(n).trimmed()); + + /* + if(txt.contains(n)){ + QTextCursor tc = ui->extFreeTextMsg->textCursor(); + tc.setPosition(0); + m_extFreeTxtPos += n.matchedLength(); + tc.setPosition(m_extFreeTxtPos, QTextCursor::KeepAnchor); + QTextCharFormat cf = tc.charFormat(); + cf.setFontStrikeOut(true); + tc.mergeCharFormat(cf); + } + */ + +} + void MainWindow::on_dxCallEntry_textChanged (QString const& call) { m_hisCall = call; @@ -4940,6 +5089,7 @@ void MainWindow::displayWidgets(qint64 n) if(i==32) ui->cbCQonly->setVisible(b); j=j>>1; } + ui->tabWidget->setTabEnabled(2, "FT8" == m_mode); m_lastCallsign.clear (); // ensures Tx5 is updated for new modes genStdMsgs (m_rpt, true); } diff --git a/mainwindow.h b/mainwindow.h index db7852c..fad49d0 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -180,6 +180,8 @@ private slots: void on_txb5_clicked(); void on_txb5_doubleClicked (); void on_txb6_clicked(); + void on_pbNextFreeTextMsg_clicked(); + void on_rbNextFreeTextMsg_toggled (bool status); void on_lookupButton_clicked(); void on_addButton_clicked(); void on_dxCallEntry_textChanged (QString const&); @@ -214,6 +216,11 @@ private slots: void on_rbGenMsg_clicked(bool checked); void on_rbFreeText_clicked(bool checked); void on_freeTextMsg_currentTextChanged (QString const&); + void on_nextFreeTextMsg_currentTextChanged (QString const&); + void on_extFreeTextMsg_currentTextChanged (QString const&); + QString parseFT8Message(QString input); + int countFreeTextMsgs(QString input); + void splitNextFreeTextMsg(); void on_rptSpinBox_valueChanged(int n); void killFile(); void on_tuneButton_clicked (bool); @@ -498,6 +505,7 @@ private: } m_QSOProgress; + int m_extFreeTxtPos; int m_ihsym; int m_nzap; int m_npts8; diff --git a/mainwindow.ui b/mainwindow.ui index 51977fc..04a64dd 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -17,2159 +17,563 @@ - - - - - Qt::Horizontal - - - - - - - - 500 - 16777215 - - - - - 10 - 50 - false - - - - Band Activity - - - Qt::AlignCenter - - - - - - - - 300 - 20 - - - - - 16777215 - 20 - - - - - - - - - 252 - 252 - 252 - - - - - - - 170 - 170 - 170 - - - - - - - - - 252 - 252 - 252 - - - - - - - 170 - 170 - 170 - - - - - - - - - 170 - 170 - 170 - - - - - - - 170 - 170 - 170 - - - - - - - - true - - - UTC dB DT Freq Dr - - - Qt::PlainText - - - 5 - - - - - - - - 0 - 10 - - - - - 200 - 100 - - - - QFrame::StyledPanel - - - Qt::ScrollBarAlwaysOn - - - Qt::ScrollBarAsNeeded - - - 0 - - - Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse - - - - - - - - - - - - 10 - 50 - false - - - - Rx Frequency - - - Qt::AlignCenter - - - - - - - - 300 - 20 - - - - - 16777215 - 20 - - - - - - - - - 252 - 252 - 252 - - - - - - - 170 - 170 - 170 - - - - - - - - - 252 - 252 - 252 - - - - - - - 170 - 170 - 170 - - - - - - - - - 170 - 170 - 170 - - - - - - - 170 - 170 - 170 - - - - - - - - true - - - UTC dB DT Freq Dr - - - Qt::PlainText - - - 5 - - - - - - - true - - - - 0 - 10 - - - - - 200 - 100 - - - - Qt::ScrollBarAlwaysOn - - - 0 - - - Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse - - - - - + + + + + Qt::Horizontal + + + + + + + + 500 + 16777215 + + + + + 10 + 50 + false + + + + Band Activity + + + Qt::AlignCenter + + + + + + + + 300 + 20 + + + + + 16777215 + 20 + + + + + + + + + 252 + 252 + 252 + + + + + + + 170 + 170 + 170 + + + + + + + + + 252 + 252 + 252 + + + + + + + 170 + 170 + 170 + + + + + + + + + 170 + 170 + 170 + + + + + + + 170 + 170 + 170 + + + + + + + + true + + + UTC dB DT Freq Dr + + + Qt::PlainText + + + 5 + + + + + + + + 0 + 10 + + + + + 200 + 100 + + + + QFrame::StyledPanel + + + Qt::ScrollBarAlwaysOn + + + Qt::ScrollBarAsNeeded + + + 0 + + + Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + + + - - - - - - - CQ only - - - - - - - - 50 - 0 - - - - <html><head/><body><p>Enter this QSO in log</p></body></html> - - - Log &QSO - - - - - - - - 50 - 0 - - - - Stop monitoring - - - &Stop - - - - - - - - 50 - 0 - - - - <html><head/><body><p>Toggle monitoring On/Off</p></body></html> - - - QPushButton:checked { - background-color: #00ff00; - border-style: outset; - border-width: 1px; - border-radius: 5px; - border-color: black; - min-width: 5em; - padding: 3px; + + + + + + + 10 + 50 + false + + + + Rx Frequency + + + Qt::AlignCenter + + + + + + + + 300 + 20 + + + + + 16777215 + 20 + + + + + + + + + 252 + 252 + 252 + + + + + + + 170 + 170 + 170 + + + + + + + + + 252 + 252 + 252 + + + + + + + 170 + 170 + 170 + + + + + + + + + 170 + 170 + 170 + + + + + + + 170 + 170 + 170 + + + + + + + + true + + + UTC dB DT Freq Dr + + + Qt::PlainText + + + 5 + + + + + + + true + + + + 0 + 10 + + + + + 200 + 100 + + + + Qt::ScrollBarAlwaysOn + + + 0 + + + Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + + + + + + + + + + + + CQ only + + + + + + + + 50 + 0 + + + + <html><head/><body><p>Enter this QSO in log</p></body></html> + + + Log &QSO + + + + + + + + 50 + 0 + + + + Stop monitoring + + + &Stop + + + + + + + + 50 + 0 + + + + <html><head/><body><p>Toggle monitoring On/Off</p></body></html> + + + QPushButton:checked { + background-color: #00ff00; + border-style: outset; + border-width: 1px; + border-radius: 5px; + border-color: black; + min-width: 5em; + padding: 3px; } - - - &Monitor - - - true - - - false - - - - - - - - 50 - 0 - - - - <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> - - - &Erase - - - - - - - true - - - <html><head/><body><p>Clear the accumulating message average.</p></body></html> - - - Clear Avg - - - - - - - - 50 - 0 - - - - <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> - - - QPushButton:checked { - background-color: cyan; - border-style: outset; - border-width: 1px; - border-radius: 5px; - border-color: black; - min-width: 5em; - padding: 3px; + + + &Monitor + + + true + + + false + + + + + + + + 50 + 0 + + + + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> + + + &Erase + + + + + + + true + + + <html><head/><body><p>Clear the accumulating message average.</p></body></html> + + + Clear Avg + + + + + + + + 50 + 0 + + + + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> + + + QPushButton:checked { + background-color: cyan; + border-style: outset; + border-width: 1px; + border-radius: 5px; + border-color: black; + min-width: 5em; + padding: 3px; } - - - &Decode - - - true - - - - - - - - 50 - 0 - - - - <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> - - - QPushButton:checked { - background-color: red; - border-style: outset; - border-width: 1px; - border-radius: 5px; - border-color: black; - min-width: 5em; - padding: 3px; + + + &Decode + + + true + + + + + + + + 50 + 0 + + + + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> + + + QPushButton:checked { + background-color: red; + border-style: outset; + border-width: 1px; + border-radius: 5px; + border-color: black; + min-width: 5em; + padding: 3px; } - - - Enable Tx - - - true - - - - - - - - 50 - 0 - - - - Stop transmitting immediately - - - &Halt Tx - - - - - - - <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> - - - QPushButton:checked { - background-color: red; - border-style: outset; - border-width: 1px; - border-radius: 5px; - border-color: black; - min-width: 5em; - padding: 3px; + + + Enable Tx + + + true + + + + + + + + 50 + 0 + + + + Stop transmitting immediately + + + &Halt Tx + + + + + + + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> + + + QPushButton:checked { + background-color: red; + border-style: outset; + border-width: 1px; + border-radius: 5px; + border-color: black; + min-width: 5em; + padding: 3px; } - - - &Tune - - - true - - - - - - - Menus - - - true - - - - - - - - - - - - 0 - 0 - - - - USB dial frequency - - - QLabel { - font-family: MS Shell Dlg 2; - font-size: 16pt; - color : yellow; - background-color : black; + + + &Tune + + + true + + + + + + + Menus + + + true + + + + + + + + + + + + 0 + 0 + + + + USB dial frequency + + + QLabel { + font-family: MS Shell Dlg 2; + font-size: 16pt; + color : yellow; + background-color : black; } QLabel[oob="true"] { - background-color: red; + background-color: red; } - - - 14.078 000 - - - Qt::AlignCenter - - - 5 - - - - - - - 0 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - - <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> - - - Hold Tx Freq - - - - - - - - - <html><head/><body><p>Check to use short-format messages.</p></body></html> - - - Sh - - - - - - - <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> - - - Fast - - - - - - - <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> - - - Auto Seq - - - - - - - <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> - - - Call 1st - - - - - - - false - - - Check to generate "@1250 (SEND MSGS)" in Tx6. - - - Tx6 - - - - - - - - - Audio Rx frequency - - - Qt::AlignCenter - - - Hz - - - Rx - - - 200 - - - 5000 - - - 1500 - - - - - - - - 0 - 0 - - - - Set Rx frequency to Tx Frequency - - - Rx ← Tx - - - - - - - <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> - - - Qt::AlignCenter - - - Sync - - - -1 - - - 10 - - - 1 - - - - - - - <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> - - - Qt::AlignCenter - - - Submode - - - 0 - - - 7 - - - - - - - <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> - - - Tx even/1st - - - - - - - - - false - - - <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> - - - Tx CQ - - - 1 - - - 999 - - - 260 - - - - - - - false - - - <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&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.</p></body></html> - - - - - - - - - - Rx All Freqs - - - - - - - - - - - Fox - - - - - - - <html><head/><body><p>Check to monitor Sh messages.</p></body></html> - - - SWL - - - - - - - <html><head/><body><p>Check to exchange grid locators instead of signal reports. DO NOT USE when propagation supports making world-wide contacts!</p></body></html> - - - NA VHF Contest - - - - - - - <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> - - - Measure - - - - - - - - - Frequency tolerance (Hz) - - - Qt::AlignCenter - - - F Tol - - - 10 - - - 1000 - - - 10 - - - - - - - <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> - - - Qt::AlignCenter - - - Report - - - -50 - - - 49 - - - -15 - - - - - - - - 0 - 0 - - - - Set Tx frequency to Rx Frequency - - - Tx ← Rx - - - - - - - <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> - - - Qt::AlignCenter - - - s - - - T/R - - - 5 - - - 30 - - - 30 - - - - - - - true - - - - 0 - 0 - - - - Toggle Tx mode - - - Tx JT9 @ - - - - - - - Audio Tx frequency - - - Qt::AlignCenter - - - Hz - - - Tx - - - 200 - - - 5000 - - - 1500 - - - - - - - - - - 0 - 0 - - - - QTabWidget::West - - - QTabWidget::Triangular - - - 0 - - - - 1 - - - - - - - - Send this message in next Tx interval - - - margin-left: 10%; margin-right: 0% - - - - - - Ctrl+2 - - - buttonGroup - - - - - - - <html><head/><body><p>Send this message in next Tx interval</p><p>Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compound call holders)</p></body></html> - - - margin-left: 10%; margin-right: 0% - - - - - - Ctrl+1 - - - buttonGroup - - - - - - - Switch to this Tx message NOW - - - padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% - - - Tx &2 - - - Alt+2 - - - - - - - - - - <html><head/><body><p>Switch to this Tx message NOW</p><p>Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compund call holders)</p></body></html> - - - Qt::LeftToRight - - - padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% - - - Tx &1 - - - Alt+1 - - - - - - - Send this message in next Tx interval - - - margin-left: 10%; margin-right: 0% - - - - - - Ctrl+6 - - - true - - - buttonGroup - - - - - - - - - - <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> - - - margin-left: 10%; margin-right: 0% - - - - - - Ctrl+5 - - - buttonGroup - - - - - - - Send this message in next Tx interval - - - margin-left: 10%; margin-right: 0% - - - - - - Ctrl+3 - - - buttonGroup - - - - - - - Switch to this Tx message NOW - - - padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% - - - Tx &3 - - - Alt+3 - - - - - - - <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders)</p><p>RR73 messages should only be used when you are reasonably confident that no message repetitions will be required</p></body></html> - - - margin-left: 10%; margin-right: 0% - - - - - - Ctrl+4 - - - buttonGroup - - - - - - - <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders)</p><p>RR73 messages should only be used when you are reasonably confident that no message repetitions will be required</p></body></html> - - - padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% - - - Tx &4 - - - Alt+4 - - - - - - - <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> - - - padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% - - - Tx &5 - - - Alt+5 - - - - - - - - - - Switch to this Tx message NOW - - - Now - - - Qt::AlignCenter - - - - - - - Generate standard messages for minimal QSO - - - Generate Std Msgs - - - - - - - Switch to this Tx message NOW - - - padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% - - - Tx &6 - - - Alt+6 - - - - - - - Enter a free text message (maximum 13 characters) -or select a predefined macro from the dropdown list. -Press ENTER to add the current text to the predefined -list. The list can be maintained in Settings (F2). - - - true - - - QComboBox::InsertAtBottom - - - - - - - - - - - - - - - - - - - - - Queue up the next Tx message - - - Next - - - Qt::AlignCenter - - - - - - - - - - 2 - - - - 6 - - - 6 - - - 6 - - - 6 - - - - - 0 - - - - - - 2 - 0 - - - - - 0 - 30 - - - - - 16777215 - 30 - - - - Calling CQ - - - Qt::AlignCenter - - - - - - - - 2 - 0 - - - - Generate a CQ message - - - CQ - - - - - - - - 2 - 0 - - - - Generate message with RRR - - - RRR - - - - - - - - 2 - 0 - - - - Generate message with report - - - dB - - - - - - - - 2 - 0 - - - - - 0 - 30 - - - - - 16777215 - 30 - - - - Answering CQ - - - Qt::AlignCenter - - - - - - - - 2 - 0 - - - - Generate message for replying to a CQ - - - Grid - - - - - - - - 2 - 0 - - - - Generate message with R+report - - - R+dB - - - - - - - - 2 - 0 - - - - Generate message with 73 - - - 73 - - - - - - - - - - - - 3 - 0 - - - - - - - - - 1 - 0 - - - - - 0 - 26 - - - - Send this standard (generated) message - - - Gen msg - - - true - - - - - - - - - - - - 3 - 0 - - - - - 150 - 0 - - - - Enter a free text message (maximum 13 characters) -or select a predefined macro from the dropdown list. -Press ENTER to add the current text to the predefined -list. The list can be maintained in Settings (F2). - - - true - - - QComboBox::InsertAtBottom - - - - - - - - 1 - 0 - - - - Send this free-text message (max 13 characters) - - - Free msg - - - - - - - - - - 3 - - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - N List - - - 5 - - - 100 - - - 12 - - - - - - - Reset - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - - - - N Slots - - - 1 - - - 5 - - - 1 - - - 10 - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Max dB - - - -15 - - - 30 - - - 30 - - - - - - - - CQ - - - - - CQ AF - - - - - CQ AN - - - - - CQ AS - - - - - CQ EU - - - - - CQ NA - - - - - CQ OC - - - - - CQ SA - - - - - CQ 0 - - - - - CQ 1 - - - - - CQ 2 - - - - - CQ 3 - - - - - CQ 4 - - - - - CQ 5 - - - - - CQ 6 - - - - - CQ 7 - - - - - CQ 8 - - - - - CQ 9 - - - - - - - - false - - - No Dupes - - - true - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Max Calls - - - 1 - - - 10 - - - 4 - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Random - - - 5 - - - - Random - - - - - Call - - - - - Grid - - - - - S/N (dB) - - - - - Distance - - - - - - - - - - - 16777215 - 16777215 - - - - - - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - Qt::AlignCenter - - - Hz - - - Tx - - - 1400 - - - 1700 - - - 1500 - - - - - - - Percentage of 2-minute sequences devoted to transmitting. - - - Qt::AlignCenter - - - % - - - Tx Pct - - - 100 - - - - - - - Band Hopping - - - true - - - - - - Choose bands and times of day for band-hopping. - - - Schedule ... - - - - - - - - - - - - - - - - - - Upload decoded messages to WSPRnet.org. - - - Upload spots - - - - - - - - - <html><head/><body><p>6 digit locators cause 2 different mesages to be sent, the second contains the full locator but only a hashed callsign, other stations must have decoded the first once before they can decode your call in the second. Check this option to only send 4 digit locators if it will avoid the two message protocol.</p></body></html> - - - Prefer type 1 messages - - - true - - - - - - - - - Transmit during the next 2-minute sequence. - - - QPushButton:checked { - background-color: red; - border-style: outset; - border-width: 1px; - border-radius: 5px; - border-color: black; - min-width: 5em; - padding: 3px; -} - - - Tx Next - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - - - - - - - 0 - 0 - - - - - 100 - 16777215 - - - - <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> - - - QFrame::Panel - - - QFrame::Sunken - - - - - - - - 0 - 0 - - - + + + 14.078 000 + + + Qt::AlignCenter + + + 5 + + + + + + + 0 + + + 0 @@ -2182,387 +586,2053 @@ list. The list can be maintained in Settings (F2). 0 - - - - - 0 - 0 - - - - - - - - - 252 - 252 - 252 - - - - - - - 159 - 175 - 213 - - - - - - - - - 252 - 252 - 252 - - - - - - - 159 - 175 - 213 - - - - - - - - - 159 - 175 - 213 - - - - - - - 159 - 175 - 213 - - - - - - - - true - - - DX Call - - - Qt::AlignCenter - - - 5 - - - 2 - - - - - - - - 0 - 0 - - - - - - - - - 252 - 252 - 252 - - - - - - - 159 - 175 - 213 - - - - - - - - - 252 - 252 - 252 - - - - - - - 159 - 175 - 213 - - - - - - - - - 159 - 175 - 213 - - - - - - - 159 - 175 - 213 - - - - - - - - true - - - DX Grid - - - Qt::AlignCenter - - - 5 - - - 2 - - - - - - - Callsign of station to be worked - - - - - - Qt::AlignCenter - - - - - - - Locator of station to be worked - - - - - - Qt::AlignCenter - - - - - - - Search for callsign in database - - - &Lookup - - - - - - - Add callsign and locator to database - - - Add - - - - - - - - 0 - 0 - - - - true - - - Az: 251 16553 km - - - Qt::AlignCenter - - - 4 - + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> + + + Hold Tx Freq + + + + + + + + + <html><head/><body><p>Check to use short-format messages.</p></body></html> + + + Sh + + + + + + + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> + + + Fast + + + + + + + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> + + + Auto Seq + + + + + + + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> + + + Call 1st + + + + + + + false + + + Check to generate "@1250 (SEND MSGS)" in Tx6. + + + Tx6 + + + + + + + + + Audio Rx frequency + + + Qt::AlignCenter + + + Hz + + + Rx + + + 200 + + + 5000 + + + 1500 + + + + + + + + 0 + 0 + + + + Set Rx frequency to Tx Frequency + + + Rx ← Tx + + + + + + + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> + + + Qt::AlignCenter + + + Sync + + + -1 + + + 10 + + + 1 + + + + + + + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> + + + Qt::AlignCenter + + + Submode + + + 0 + + + 7 + + + + + + + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> + + + Tx even/1st + + + + + + + + + false + + + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> + + + Tx CQ + + + 1 + + + 999 + + + 260 + + + + + + + false + + + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&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.</p></body></html> + + + + + + + + + + Rx All Freqs + + + + + + + + + + + Fox + + + + + + + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> + + + SWL + + + + + + + <html><head/><body><p>Check to exchange grid locators instead of signal reports. DO NOT USE when propagation supports making world-wide contacts!</p></body></html> + + + NA VHF Contest + + + + + + + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> + + + Measure + + + + + + + + + Frequency tolerance (Hz) + + + Qt::AlignCenter + + + F Tol + + + 10 + + + 1000 + + + 10 + + + + + + + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> + + + Qt::AlignCenter + + + Report + + + -50 + + + 49 + + + -15 + + + + + + + + 0 + 0 + + + + Set Tx frequency to Rx Frequency + + + Tx ← Rx + + + + + + + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> + + + Qt::AlignCenter + + + s + + + T/R + + + 5 + + + 30 + + + 30 + + + + + + + true + + + + 0 + 0 + + + + Toggle Tx mode + + + Tx JT9 @ + + + + + + + Audio Tx frequency + + + Qt::AlignCenter + + + Hz + + + Tx + + + 200 + + + 5000 + + + 1500 + + + + + + + + + + 0 + 0 + + + + QTabWidget::West + + + QTabWidget::Triangular + + + 0 + + + + 1 + + + + + + + + Send this message in next Tx interval + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+2 + + + buttonGroup + + + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compound call holders)</p></body></html> + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+1 + + + buttonGroup + + + + + + + Switch to this Tx message NOW + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &2 + + + Alt+2 + + + + + + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compund call holders)</p></body></html> + + + Qt::LeftToRight + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &1 + + + Alt+1 + + + + + + + Send this message in next Tx interval + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+6 + + + true + + + buttonGroup + + + + + + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+5 + + + buttonGroup + + + + + + + Send this message in next Tx interval + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+3 + + + buttonGroup + + + + + + + Switch to this Tx message NOW + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &3 + + + Alt+3 + + + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders)</p><p>RR73 messages should only be used when you are reasonably confident that no message repetitions will be required</p></body></html> + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+4 + + + buttonGroup + + + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders)</p><p>RR73 messages should only be used when you are reasonably confident that no message repetitions will be required</p></body></html> + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &4 + + + Alt+4 + + + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &5 + + + Alt+5 + + + + + + + + + + Switch to this Tx message NOW + + + Now + + + Qt::AlignCenter + + + + + + + Generate standard messages for minimal QSO + + + Generate Std Msgs + + + + + + + Switch to this Tx message NOW + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &6 + + + Alt+6 + + + + + + + Enter a free text message (maximum 13 characters) +or select a predefined macro from the dropdown list. +Press ENTER to add the current text to the predefined +list. The list can be maintained in Settings (F2). + + + true + + + QComboBox::InsertAtBottom + + + + + + + + + + + + + + + + + + + + + Queue up the next Tx message + + + Next + + + Qt::AlignCenter + + + + + + + + + + 2 + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + 0 + + + + + + 2 + 0 + + + + + 0 + 30 + + + + + 16777215 + 30 + + + + Calling CQ + + + Qt::AlignCenter + + + + + + + + 2 + 0 + + + + Generate a CQ message + + + CQ + + + + + + + + 2 + 0 + + + + Generate message with RRR + + + RRR + + + + + + + + 2 + 0 + + + + Generate message with report + + + dB + + + + + + + + 2 + 0 + + + + + 0 + 30 + + + + + 16777215 + 30 + + + + Answering CQ + + + Qt::AlignCenter + + + + + + + + 2 + 0 + + + + Generate message for replying to a CQ + + + Grid + + + + + + + + 2 + 0 + + + + Generate message with R+report + + + R+dB + + + + + + + + 2 + 0 + + + + Generate message with 73 + + + 73 + + + + + + + + + + + + 3 + 0 + + + + + + + + + 1 + 0 + + + + + 0 + 26 + + + + Send this standard (generated) message + + + Gen msg + + + true + + + + + + + + + + + + 3 + 0 + + + + + 150 + 0 + + + + Enter a free text message (maximum 13 characters) +or select a predefined macro from the dropdown list. +Press ENTER to add the current text to the predefined +list. The list can be maintained in Settings (F2). + + + true + + + QComboBox::InsertAtBottom + + + + + + + + 1 + 0 + + + + Send this free-text message (max 13 characters) + + + Free msg + + + + + + + + + + 3 + + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + N List + + + 5 + + + 100 + + + 12 + + + + + + + Reset + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + + + + N Slots + + + 1 + + + 5 + + + 1 + + + 10 + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Max dB + + + -15 + + + 30 + + + 30 + + + + + + + + CQ + + + + + CQ AF + + + + + CQ AN + + + + + CQ AS + + + + + CQ EU + + + + + CQ NA + + + + + CQ OC + + + + + CQ SA + + + + + CQ 0 + + + + + CQ 1 + + + + + CQ 2 + + + + + CQ 3 + + + + + CQ 4 + + + + + CQ 5 + + + + + CQ 6 + + + + + CQ 7 + + + + + CQ 8 + + + + + CQ 9 + + + + + + + + false + + + No Dupes + + + true + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Max Calls + + + 1 + + + 10 + + + 4 + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Random + + + 5 + + + + Random + + + + + Call + + + + + Grid + + + + + S/N (dB) + + + + + Distance + + + + + + + + + + + 16777215 + 16777215 + + + + + + + + + 4 + + + + + + Extended free msg + + + true + + + + + + + 100 + + + false + + + false + + + Next Tx Msg... + + + + + + + Message: + + + + + + + QFrame::Box + + + false + + + false + + + Your message, if longer than 13 characters, will be split into separate free text transmissions. At the start of each tx cycle, the next chunk of the message will move from here to the textbox above for transmission. + + + + + + + Remaining Tx Sequences: 0 + + + + + + + Next + + + + + + + + - - - - - Pwr - + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + Qt::AlignCenter + + + Hz + + + Tx + + + 1400 + + + 1700 + + + 1500 + + + + + + + Percentage of 2-minute sequences devoted to transmitting. + + + Qt::AlignCenter + + + % + + + Tx Pct + + + 100 + + + + + + + Band Hopping + + + true + + + + + + Choose bands and times of day for band-hopping. + + + Schedule ... + + + + + + + + + + + + + + + + + + Upload decoded messages to WSPRnet.org. + + + Upload spots + + + + + + + + + <html><head/><body><p>6 digit locators cause 2 different mesages to be sent, the second contains the full locator but only a hashed callsign, other stations must have decoded the first once before they can decode your call in the second. Check this option to only send 4 digit locators if it will avoid the two message protocol.</p></body></html> + + + Prefer type 1 messages + + + true + + + + + + + + + Transmit during the next 2-minute sequence. + + + QPushButton:checked { + background-color: red; + border-style: outset; + border-width: 1px; + border-radius: 5px; + border-color: black; + min-width: 5em; + padding: 3px; +} + + + Tx Next + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + - - - - - false + + + + + + + 0 + 0 + + + + + 100 + 16777215 + + + + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + + + QFrame::Panel + + + QFrame::Sunken + + + + + + + + 0 + 0 + + + + + 0 - - <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + + 0 - - QPushButton { - font-family: helvetica; - font-size: 9pt; - font-weight: bold; - background-color: white; - color: black; - border-style: solid; - border-width:1px; - border-radius:10px; - border-color: gray; - max-width:20px; - max-height:20px; - min-width:20px; - min-height:20px; + + 0 + + + 0 + + + + + + 0 + 0 + + + + + + + + + 252 + 252 + 252 + + + + + + + 159 + 175 + 213 + + + + + + + + + 252 + 252 + 252 + + + + + + + 159 + 175 + 213 + + + + + + + + + 159 + 175 + 213 + + + + + + + 159 + 175 + 213 + + + + + + + + true + + + DX Call + + + Qt::AlignCenter + + + 5 + + + 2 + + + + + + + + 0 + 0 + + + + + + + + + 252 + 252 + 252 + + + + + + + 159 + 175 + 213 + + + + + + + + + 252 + 252 + 252 + + + + + + + 159 + 175 + 213 + + + + + + + + + 159 + 175 + 213 + + + + + + + 159 + 175 + 213 + + + + + + + + true + + + DX Grid + + + Qt::AlignCenter + + + 5 + + + 2 + + + + + + + Callsign of station to be worked + + + + + + Qt::AlignCenter + + + + + + + Locator of station to be worked + + + + + + Qt::AlignCenter + + + + + + + Search for callsign in database + + + &Lookup + + + + + + + Add callsign and locator to database + + + Add + + + + + + + + 0 + 0 + + + + true + + + Az: 251 16553 km + + + Qt::AlignCenter + + + 4 + + + + + + + + + + Pwr + + + + + + + false + + + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + + + QPushButton { +font-family: helvetica; +font-size: 9pt; +font-weight: bold; +background-color: white; +color: black; +border-style: solid; +border-width:1px; +border-radius:10px; +border-color: gray; +max-width:20px; +max-height:20px; +min-width:20px; +min-height:20px; } QPushButton[state="error"] { - background-color: red; +background-color: red; } QPushButton[state="warning"] { - background-color: orange; +background-color: orange; } QPushButton[state="ok"] { - background-color: #00ff00; +background-color: #00ff00; } - - - ? - - - - - - - Adjust Tx audio level - - - 450 - - - 0 - - - Qt::Vertical - - - true - - - true - - - QSlider::TicksBelow - - - 50 - - - - - - - <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> - - - true - - - QComboBox::NoInsert - - - QComboBox::AdjustToMinimumContentsLength - - - - - - - - 0 - 0 - - - - QLabel { - font-family: MS Shell Dlg 2; - font-size: 16pt; - background-color : black; - color : yellow; + + + ? + + + + + + + Adjust Tx audio level + + + 450 + + + 0 + + + Qt::Vertical + + + true + + + true + + + QSlider::TicksBelow + + + 50 + + + + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + + + true + + + QComboBox::NoInsert + + + QComboBox::AdjustToMinimumContentsLength + + + + + + + + 0 + 0 + + + + QLabel { + font-family: MS Shell Dlg 2; + font-size: 16pt; + background-color : black; + color : yellow; } - - - QFrame::StyledPanel - - - QFrame::Sunken - - - 2 - - - 0 - - - <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - - - Qt::AlignCenter - - - 5 - - - - - - + + + QFrame::StyledPanel + + + QFrame::Sunken + + + 2 + + + 0 + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + + + Qt::AlignCenter + + + 5 + + + + + +