mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-03-20 19:19:02 -04:00
Implement Special Operating Activity "Q65 Pileup". Needs more checking for completeness.
This commit is contained in:
parent
39c935a882
commit
3f5cbbb147
@ -1227,6 +1227,7 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network
|
||||
ui_->special_op_activity_button_group->setId (ui_->rbARRL_Digi, static_cast<int> (SpecialOperatingActivity::ARRL_DIGI));
|
||||
ui_->special_op_activity_button_group->setId (ui_->rbFox, static_cast<int> (SpecialOperatingActivity::FOX));
|
||||
ui_->special_op_activity_button_group->setId (ui_->rbHound, static_cast<int> (SpecialOperatingActivity::HOUND));
|
||||
ui_->special_op_activity_button_group->setId (ui_->rbQ65pileup, static_cast<int> (SpecialOperatingActivity::Q65_PILEUP));
|
||||
|
||||
//
|
||||
// setup PTT port combo box drop down content
|
||||
|
@ -190,8 +190,8 @@ public:
|
||||
bool highlight_DXgrid () const;
|
||||
bool Individual_Contest_Name() const;
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8
|
||||
enum class SpecialOperatingActivity {NONE, NA_VHF, EU_VHF, FIELD_DAY, RTTY, WW_DIGI, FOX, HOUND, ARRL_DIGI};
|
||||
// 0 1 2 3 4 5 6 7 8 9
|
||||
enum class SpecialOperatingActivity {NONE, NA_VHF, EU_VHF, FIELD_DAY, RTTY, WW_DIGI, FOX, HOUND, ARRL_DIGI, Q65_PILEUP};
|
||||
SpecialOperatingActivity special_op_id () const;
|
||||
|
||||
struct CalibrationParams
|
||||
|
@ -2923,6 +2923,25 @@ Right click for insert and delete options.</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QRadioButton" name="rbQ65pileup">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>18</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Exchange 4-character locator instead of signal report. Provides q3-level sensitivities for the DX operator. Especially useful for 6m EME DXpeditions.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Q65 Pileup</string>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">special_op_activity_button_group</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_18" stretch="2,1,1">
|
||||
<item>
|
||||
@ -3337,12 +3356,12 @@ Right click for insert and delete options.</string>
|
||||
</connections>
|
||||
<buttongroups>
|
||||
<buttongroup name="split_mode_button_group"/>
|
||||
<buttongroup name="CAT_data_bits_button_group"/>
|
||||
<buttongroup name="PTT_method_button_group"/>
|
||||
<buttongroup name="CAT_handshake_button_group"/>
|
||||
<buttongroup name="TX_audio_source_button_group"/>
|
||||
<buttongroup name="special_op_activity_button_group"/>
|
||||
<buttongroup name="TX_mode_button_group"/>
|
||||
<buttongroup name="CAT_handshake_button_group"/>
|
||||
<buttongroup name="CAT_data_bits_button_group"/>
|
||||
<buttongroup name="PTT_method_button_group"/>
|
||||
<buttongroup name="CAT_stop_bits_button_group"/>
|
||||
</buttongroups>
|
||||
</ui>
|
||||
|
@ -3380,8 +3380,9 @@ void MainWindow::decode() //decode()
|
||||
if(m_config.decode_at_52s()) dec_data.params.emedelay=2.5;
|
||||
dec_data.params.minSync=ui->syncSpinBox->isVisible () ? m_minSync : 0;
|
||||
dec_data.params.nexp_decode=int(m_specOp);
|
||||
if(dec_data.params.nexp_decode==5) dec_data.params.nexp_decode=1; //NA VHF, WW Digi, and ARRL Digi
|
||||
if(dec_data.params.nexp_decode==8) dec_data.params.nexp_decode=1; //contests all use grid exchange
|
||||
if(dec_data.params.nexp_decode==5) dec_data.params.nexp_decode=1; //NA VHF, WW Digi, ARRL Digi contests
|
||||
if(dec_data.params.nexp_decode==8) dec_data.params.nexp_decode=1; //and Q65 Pileup all use 4-character
|
||||
if(dec_data.params.nexp_decode==9) dec_data.params.nexp_decode=1; //grid exchange
|
||||
if(m_config.single_decode()) dec_data.params.nexp_decode += 32;
|
||||
if(m_config.enable_VHF_features()) dec_data.params.nexp_decode += 64;
|
||||
if(m_mode.startsWith("FST4")) dec_data.params.nexp_decode += 256*(ui->sbNB->value()+3);
|
||||
@ -3565,7 +3566,8 @@ void MainWindow::decodeDone ()
|
||||
if(m_mode!="FT8" or dec_data.params.nzhsym==50) m_nDecodes=0;
|
||||
|
||||
if(m_mode=="Q65" and (m_specOp==SpecOp::NA_VHF or m_specOp==SpecOp::ARRL_DIGI
|
||||
or m_specOp==SpecOp::WW_DIGI) and m_ActiveStationsWidget!=NULL) {
|
||||
or m_specOp==SpecOp::WW_DIGI or m_specOp==SpecOp::Q65_PILEUP)
|
||||
and m_ActiveStationsWidget!=NULL) {
|
||||
|
||||
int nlist=0;
|
||||
char list[2000];
|
||||
@ -3579,11 +3581,16 @@ void MainWindow::decodeDone ()
|
||||
get_q3list_(const_cast<char *> (fname.toLatin1().constData()), &nlist,
|
||||
&list[0], (FCL)fname.length(), (FCL)2000);
|
||||
QString t="";
|
||||
QString t0="";
|
||||
for(int i=0; i<nlist; i++) {
|
||||
memcpy(line,&list[36*i],36);
|
||||
t+=QString::fromLatin1(line)+"\n";
|
||||
t0=QString::fromLatin1(line)+"\n";
|
||||
m_callers[i]=t0;
|
||||
t+=t0;
|
||||
}
|
||||
m_ActiveStationsWidget->setClickOK(false);
|
||||
m_ActiveStationsWidget->displayRecentStations("Q65-pileup",t);
|
||||
m_ActiveStationsWidget->setClickOK(true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3750,6 +3757,24 @@ void MainWindow::callSandP2(int n)
|
||||
{
|
||||
if(m_mode!="Q65" and m_ready2call[n]=="") return;
|
||||
QStringList w=m_ready2call[n].split(' ', SkipEmptyParts);
|
||||
if(m_mode=="Q65" and m_specOp==SpecOp::Q65_PILEUP) {
|
||||
// This is the mode for 6m EME DXpeditions
|
||||
w=m_callers[n].split(' ', SkipEmptyParts);
|
||||
m_deCall=w[2];
|
||||
m_deGrid=w[3];
|
||||
m_bDoubleClicked=true; //### needed?
|
||||
m_txFirst=true;
|
||||
ui->dxCallEntry->setText(m_deCall);
|
||||
ui->dxGridEntry->setText(m_deGrid);
|
||||
ui->txFirstCheckBox->setChecked(m_txFirst);
|
||||
genStdMsgs("-22");
|
||||
setTxMsg(3);
|
||||
if (!ui->autoButton->isChecked()) ui->autoButton->click(); // Enable Tx
|
||||
if(m_transmitting) m_restart=true;
|
||||
// qDebug() << "aa" << int(m_specOp) << n << m_callers[n];
|
||||
return;
|
||||
}
|
||||
|
||||
if(m_mode=="Q65") {
|
||||
double kHz=w[1].toDouble();
|
||||
int nMHz=m_freqNominal/1000000;
|
||||
@ -4877,7 +4902,8 @@ void MainWindow::guiUpdate()
|
||||
SpecOp::FIELD_DAY==m_specOp or
|
||||
SpecOp::RTTY==m_specOp or
|
||||
SpecOp::WW_DIGI==m_specOp or
|
||||
SpecOp::ARRL_DIGI==m_specOp) ) {
|
||||
SpecOp::ARRL_DIGI==m_specOp or
|
||||
SpecOp::Q65_PILEUP==m_specOp) ) {
|
||||
//We're in a contest-like mode other than EU_VHF: start QSO with Tx2.
|
||||
ui->tx1->setEnabled(false);
|
||||
ui->txb1->setEnabled(false);
|
||||
@ -5521,7 +5547,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|
||||
or bEU_VHF_w2 or (m_QSOProgress==CALLING))) {
|
||||
if(message_words.at(4).contains(grid_regexp) and SpecOp::EU_VHF!=m_specOp) {
|
||||
if((SpecOp::NA_VHF==m_specOp or SpecOp::WW_DIGI==m_specOp or
|
||||
SpecOp::ARRL_DIGI==m_specOp )
|
||||
SpecOp::ARRL_DIGI==m_specOp or SpecOp::Q65_PILEUP==m_specOp)
|
||||
and bContestOK) {
|
||||
setTxMsg(3);
|
||||
m_QSOProgress=ROGER_REPORT;
|
||||
@ -6009,6 +6035,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
|
||||
if(SpecOp::NA_VHF==m_specOp) sent=my_grid;
|
||||
if(SpecOp::WW_DIGI==m_specOp) sent=my_grid;
|
||||
if(SpecOp::ARRL_DIGI==m_specOp) sent=my_grid;
|
||||
if(SpecOp::Q65_PILEUP==m_specOp) sent=my_grid;
|
||||
if(SpecOp::FIELD_DAY==m_specOp) sent=m_config.Field_Day_Exchange();
|
||||
if(SpecOp::RTTY==m_specOp) {
|
||||
sent=rst + m_config.RTTY_Exchange();
|
||||
@ -6949,8 +6976,9 @@ void MainWindow::on_actionFT8_triggered()
|
||||
if(SpecOp::EU_VHF==m_specOp) t0="EU VHF";
|
||||
if(SpecOp::FIELD_DAY==m_specOp) t0="Field Day";
|
||||
if(SpecOp::RTTY==m_specOp) t0="FT RU";
|
||||
if(SpecOp::WW_DIGI==m_specOp) t0="WW_DIGI";
|
||||
if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL_DIGI";
|
||||
if(SpecOp::WW_DIGI==m_specOp) t0="WW Digi";
|
||||
if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL Digi";
|
||||
if(SpecOp::Q65_PILEUP==m_specOp) t0="Q65 Pileup";
|
||||
if(t0=="") {
|
||||
ui->labDXped->setVisible(false);
|
||||
} else {
|
||||
@ -7185,8 +7213,9 @@ void MainWindow::on_actionQ65_triggered()
|
||||
if(SpecOp::EU_VHF==m_specOp) t0="EU VHF";
|
||||
if(SpecOp::FIELD_DAY==m_specOp) t0="Field Day";
|
||||
if(SpecOp::RTTY==m_specOp) t0="FT RU";
|
||||
if(SpecOp::WW_DIGI==m_specOp) t0="WW_DIGI";
|
||||
if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL_DIGI";
|
||||
if(SpecOp::WW_DIGI==m_specOp) t0="WW Digi";
|
||||
if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL Digi";
|
||||
if(SpecOp::Q65_PILEUP==m_specOp) t0="Q65 Pileup";
|
||||
if(t0=="") {
|
||||
ui->labDXped->setVisible(false);
|
||||
} else {
|
||||
@ -10254,8 +10283,9 @@ void MainWindow::chkFT4()
|
||||
if(SpecOp::EU_VHF==m_specOp) t0="EU VHF";
|
||||
if(SpecOp::FIELD_DAY==m_specOp) t0="Field Day";
|
||||
if(SpecOp::RTTY==m_specOp) t0="FT RU";
|
||||
if(SpecOp::WW_DIGI==m_specOp) t0="WW_DIGI";
|
||||
if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL_DIGI";
|
||||
if(SpecOp::WW_DIGI==m_specOp) t0="WW Digi";
|
||||
if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL Digi";
|
||||
if(SpecOp::Q65_PILEUP==m_specOp) t0="Q65 Pileup";
|
||||
if(t0=="") {
|
||||
ui->labDXped->setVisible(false);
|
||||
} else {
|
||||
|
@ -667,6 +667,7 @@ private:
|
||||
QString m_deCall;
|
||||
QString m_deGrid;
|
||||
QString m_ready2call[50];
|
||||
QString m_callers[40];
|
||||
|
||||
QSet<QString> m_pfx;
|
||||
QSet<QString> m_sfx;
|
||||
|
Loading…
Reference in New Issue
Block a user