mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-25 21:58:38 -05:00
Test code: starting to implement WSPR-15. Not for general use!
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7418 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
a92f9c3cc1
commit
b0e738b1f2
129
mainwindow.cpp
129
mainwindow.cpp
@ -818,7 +818,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
m_wait=0;
|
||||
ui->txrb1->setChecked(true);
|
||||
|
||||
if(m_mode.startsWith ("WSPR") and m_pctx>0) {
|
||||
if(m_mode=="WSPR" and m_pctx>0) {
|
||||
QPalette palette {ui->sbTxPercent->palette ()};
|
||||
palette.setColor(QPalette::Base,Qt::yellow);
|
||||
ui->sbTxPercent->setPalette(palette);
|
||||
@ -875,15 +875,12 @@ void MainWindow::on_the_minute ()
|
||||
}
|
||||
}
|
||||
|
||||
if (m_config.watchdog () && !m_mode.startsWith ("WSPR"))
|
||||
{
|
||||
if (m_config.watchdog () && m_mode!="WSPR") {
|
||||
if (m_idleMinutes < m_config.watchdog ()) ++m_idleMinutes;
|
||||
update_watchdog_label ();
|
||||
}
|
||||
else
|
||||
{
|
||||
tx_watchdog (false);
|
||||
}
|
||||
} else {
|
||||
tx_watchdog (false);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------- MainWindow destructor
|
||||
@ -928,9 +925,9 @@ void MainWindow::writeSettings()
|
||||
m_settings->setValue("DTtol",m_DTtol);
|
||||
m_settings->setValue("FtolIndex",m_FtolIndex);
|
||||
m_settings->setValue("MinSync",m_minSync);
|
||||
m_settings->setValue ("AutoSeq", ui->cbAutoSeq->isChecked ());
|
||||
m_settings->setValue("AutoSeq", ui->cbAutoSeq->isChecked ());
|
||||
m_settings->setValue("ShMsgs",m_bShMsgs);
|
||||
m_settings->setValue ("DialFreq", QVariant::fromValue(m_lastMonitoredFrequency));
|
||||
m_settings->setValue("DialFreq", QVariant::fromValue(m_lastMonitoredFrequency));
|
||||
m_settings->setValue("InGain",m_inGain);
|
||||
m_settings->setValue("OutAttenuation", ui->outAttenuation->value ());
|
||||
m_settings->setValue("NoSuffix",m_noSuffix);
|
||||
@ -939,13 +936,14 @@ void MainWindow::writeSettings()
|
||||
m_settings->setValue("LockTxFreq",m_lockTxFreq);
|
||||
m_settings->setValue("PctTx",m_pctx);
|
||||
m_settings->setValue("dBm",m_dBm);
|
||||
m_settings->setValue ("WSPRPreferType1", ui->WSPR_prefer_type_1_check_box->isChecked ());
|
||||
m_settings->setValue("WSPRPreferType1", ui->WSPR_prefer_type_1_check_box->isChecked ());
|
||||
m_settings->setValue("WSPR15",ui->rbWSPR15->isChecked());
|
||||
m_settings->setValue("UploadSpots",m_uploadSpots);
|
||||
m_settings->setValue ("BandHopping", ui->band_hopping_group_box->isChecked ());
|
||||
m_settings->setValue("BandHopping", ui->band_hopping_group_box->isChecked ());
|
||||
m_settings->setValue("TRindex",m_TRindex);
|
||||
m_settings->setValue("FastMode",m_bFastMode);
|
||||
m_settings->setValue("Fast9",m_bFast9);
|
||||
m_settings->setValue ("CQTxfreq", ui->sbCQTxFreq->value ());
|
||||
m_settings->setValue("CQTxfreq", ui->sbCQTxFreq->value ());
|
||||
m_settings->setValue("pwrBandTxMemory",m_pwrBandTxMemory);
|
||||
m_settings->setValue("pwrBandTuneMemory",m_pwrBandTuneMemory);
|
||||
m_settings->endGroup();
|
||||
@ -1002,6 +1000,7 @@ void MainWindow::readSettings()
|
||||
m_pctx=m_settings->value("PctTx",20).toInt();
|
||||
m_dBm=m_settings->value("dBm",37).toInt();
|
||||
ui->WSPR_prefer_type_1_check_box->setChecked (m_settings->value ("WSPRPreferType1", true).toBool ());
|
||||
ui->rbWSPR15->setChecked(m_settings->value("WSPR15",false).toBool());
|
||||
m_uploadSpots=m_settings->value("UploadSpots",false).toBool();
|
||||
if(!m_uploadSpots) ui->cbUploadWSPR_Spots->setStyleSheet("QCheckBox{background-color: yellow}");
|
||||
ui->band_hopping_group_box->setChecked (m_settings->value ("BandHopping", false).toBool());
|
||||
@ -1049,8 +1048,9 @@ void MainWindow::fixStop()
|
||||
m_hsymStop=179;
|
||||
if(m_mode=="WSPR") {
|
||||
m_hsymStop=396;
|
||||
} else if(m_mode=="WSPR-15") {
|
||||
m_hsymStop=3090;
|
||||
if(ui->rbWSPR15->isChecked()) {
|
||||
m_hsymStop=3090;
|
||||
}
|
||||
} else if(m_mode=="Echo") {
|
||||
m_hsymStop=10;
|
||||
} else if (m_mode=="JT4"){
|
||||
@ -1153,7 +1153,7 @@ void MainWindow::dataSink(qint64 frames)
|
||||
dec_data.params.nzhsym=m_hsymStop;
|
||||
QDateTime now {QDateTime::currentDateTimeUtc ()};
|
||||
m_dateTime = now.toString ("yyyy-MMM-dd hh:mm");
|
||||
if(!m_mode.startsWith ("WSPR")) decode(); //Start decoder
|
||||
if(m_mode!="WSPR") decode(); //Start decoder
|
||||
|
||||
if(!m_diskData) { //Always save; may delete later
|
||||
auto const& period_start = now.addSecs (-(now.time ().minute () % (m_TRperiod / 60)) * 60);
|
||||
@ -1164,22 +1164,28 @@ void MainWindow::dataSink(qint64 frames)
|
||||
m_saveWAVWatcher.setFuture (QtConcurrent::run (std::bind (&MainWindow::save_wave_file,
|
||||
this, m_fnameWE, &dec_data.d2[0], m_TRperiod, m_config.my_callsign(),
|
||||
m_config.my_grid(), m_mode, m_nSubMode, m_freqNominal, m_hisCall, m_hisGrid)));
|
||||
if (m_mode.startsWith ("WSPR")) {
|
||||
if (m_mode=="WSPR") {
|
||||
QString c2name_string {m_fnameWE + ".c2"};
|
||||
int len1=c2name_string.length();
|
||||
char c2name[80];
|
||||
strcpy(c2name,c2name_string.toLatin1 ().constData ());
|
||||
int nsec=120;
|
||||
int nbfo=1500;
|
||||
double f0m1500=m_freqNominal/1000000.0 + nbfo - 1500;
|
||||
double fBFO=1500;
|
||||
if(ui->rbWSPR15->isChecked()) {
|
||||
nsec=900;
|
||||
fBFO=1612.5;
|
||||
}
|
||||
double f0m1500=m_freqNominal/1000000.0 + 0.000001*(fBFO - 1500.0);
|
||||
int err = savec2_(c2name,&nsec,&f0m1500,len1);
|
||||
if (err!=0) MessageBox::warning_message (this, tr ("Error saving c2 file"), c2name);
|
||||
}
|
||||
}
|
||||
|
||||
if(m_mode.startsWith ("WSPR")) {
|
||||
if(m_mode=="WSPR") {
|
||||
QString t2,cmnd;
|
||||
double f0m1500=m_dialFreqRxWSPR/1000000.0; // + 0.000001*(m_BFO - 1500);
|
||||
double fBFO=1500;
|
||||
if(ui->rbWSPR15->isChecked()) fBFO=1612.5;
|
||||
double f0m1500=m_dialFreqRxWSPR/1000000.0 + 0.000001*(fBFO - 1500);
|
||||
t2.sprintf(" -f %.6f ",f0m1500);
|
||||
|
||||
if(m_diskData) {
|
||||
@ -1193,9 +1199,14 @@ void MainWindow::dataSink(qint64 frames)
|
||||
}
|
||||
QString t3=cmnd;
|
||||
int i1=cmnd.indexOf("/wsprd ");
|
||||
cmnd=t3.mid(0,i1+7) + t3.mid(i1+7);
|
||||
if(ui->rbWSPR15->isChecked()) {
|
||||
cmnd=t3.mid(0,i1+7) + "-m " + t3.mid(i1+7);
|
||||
} else {
|
||||
cmnd=t3.mid(0,i1+7) + t3.mid(i1+7);
|
||||
}
|
||||
if (ui) ui->DecodeButton->setChecked (true);
|
||||
m_cmndP1=QDir::toNativeSeparators(cmnd);
|
||||
qDebug() << m_cmndP1;
|
||||
p1Timer.start(1000);
|
||||
m_decoderBusy = true;
|
||||
statusUpdate ();
|
||||
@ -1514,7 +1525,7 @@ void MainWindow::on_autoButton_clicked (bool checked)
|
||||
m_nclearave=1;
|
||||
echocom_.nsum=0;
|
||||
}
|
||||
if(m_mode.startsWith ("WSPR")) {
|
||||
if(m_mode=="WSPR") {
|
||||
QPalette palette {ui->sbTxPercent->palette ()};
|
||||
if(m_auto or m_pctx==0) {
|
||||
palette.setColor(QPalette::Base,Qt::white);
|
||||
@ -1621,7 +1632,7 @@ void MainWindow::bumpFqso(int n) //bumpFqso()
|
||||
{
|
||||
ui->RxFreqSpinBox->setValue (i);
|
||||
}
|
||||
if(ctrl and m_mode.startsWith ("WSPR")) {
|
||||
if(ctrl and m_mode=="WSPR") {
|
||||
ui->WSPRfreqSpinBox->setValue(i);
|
||||
} else {
|
||||
if(ctrl && ui->TxFreqSpinBox->isEnabled ()) {
|
||||
@ -1783,7 +1794,7 @@ void MainWindow::setup_status_bar (bool vhf)
|
||||
last_tx_label.setText (QString {});
|
||||
if (m_mode.contains (QRegularExpression {R"(^(Echo|ISCAT))"})) {
|
||||
if (band_hopping_label.isVisible ()) statusBar ()->removeWidget (&band_hopping_label);
|
||||
} else if (m_mode.startsWith ("WSPR")) {
|
||||
} else if (m_mode=="WSPR") {
|
||||
mode_label.setStyleSheet ("QLabel{background-color: #ff66ff}");
|
||||
if (!band_hopping_label.isVisible ()) {
|
||||
statusBar ()->addWidget (&band_hopping_label);
|
||||
@ -2126,7 +2137,7 @@ void MainWindow::on_DecodeButton_clicked (bool /* checked */) //Decode request
|
||||
if(m_mode=="MSK144") {
|
||||
ui->DecodeButton->setChecked(false);
|
||||
} else {
|
||||
if(!m_mode.startsWith ("WSPR") && !m_decoderBusy) {
|
||||
if(m_mode!="WSPR" && !m_decoderBusy) {
|
||||
dec_data.params.newdat=0;
|
||||
dec_data.params.nagain=1;
|
||||
m_blankLine=false; // don't insert the separator again
|
||||
@ -2551,7 +2562,7 @@ void MainWindow::killFile ()
|
||||
!(m_saveAll || (m_saveDecoded && m_bDecoded) || m_fnameWE == m_fileToSave)) {
|
||||
QFile f1 {m_fnameWE + ".wav"};
|
||||
if(f1.exists()) f1.remove();
|
||||
if(m_mode.startsWith ("WSPR")) {
|
||||
if(m_mode=="WSPR") {
|
||||
QFile f2 {m_fnameWE + ".c2"};
|
||||
if(f2.exists()) f2.remove();
|
||||
}
|
||||
@ -2562,7 +2573,7 @@ void MainWindow::on_EraseButton_clicked() //Erase
|
||||
{
|
||||
qint64 ms=QDateTime::currentMSecsSinceEpoch();
|
||||
ui->decodedTextBrowser2->clear();
|
||||
if(m_mode.startsWith ("WSPR") or m_mode=="Echo" or m_mode=="ISCAT") {
|
||||
if(m_mode=="WSPR" or m_mode=="Echo" or m_mode=="ISCAT") {
|
||||
ui->decodedTextBrowser->clear();
|
||||
} else {
|
||||
m_QSOText.clear();
|
||||
@ -2602,7 +2613,13 @@ void MainWindow::guiUpdate()
|
||||
if(m_modeTx=="JT9") txDuration=1.0 + 85.0*m_nsps/12000.0; // JT9
|
||||
if(m_modeTx=="JT65") txDuration=1.0 + 126*4096/11025.0; // JT65
|
||||
if(m_mode=="QRA64") txDuration=1.0 + 84*6912/12000.0; // QRA64
|
||||
if(m_mode=="WSPR") txDuration=2.0 + 162*8192/12000.0; // WSPR
|
||||
if(m_mode=="WSPR") {
|
||||
txDuration=2.0 + 162*8192/12000.0; // WSPR-2
|
||||
if(ui->rbWSPR15->isChecked()) {
|
||||
m_TRperiod=900;
|
||||
txDuration=2.0 + 162*8*8192/12000.0; //WSPR-15
|
||||
}
|
||||
}
|
||||
if(m_mode=="ISCAT" or m_mode=="MSK144" or m_bFast9) {
|
||||
txDuration=m_TRperiod-0.25; // ISCAT, JT9-fast, MSK144
|
||||
}
|
||||
@ -2612,7 +2629,7 @@ void MainWindow::guiUpdate()
|
||||
if((icw[0]>0) and (!m_bFast9)) tx2 += icw[0]*2560.0/48000.0; //Full length including CW ID
|
||||
if(tx2>m_TRperiod) tx2=m_TRperiod;
|
||||
|
||||
if(!m_txFirst and !m_mode.startsWith ("WSPR")) {
|
||||
if(!m_txFirst and m_mode!="WSPR") {
|
||||
tx1 += m_TRperiod;
|
||||
tx2 += m_TRperiod;
|
||||
}
|
||||
@ -2633,24 +2650,24 @@ void MainWindow::guiUpdate()
|
||||
if(m_transmitting) m_bEchoTxed=true;
|
||||
}
|
||||
|
||||
if(m_mode.startsWith ("WSPR")) {
|
||||
if(m_mode=="WSPR") {
|
||||
if(m_nseq==0 and m_ntr==0) { //Decide whether to Tx or Rx
|
||||
m_tuneup=false; //This is not an ATU tuneup
|
||||
if(m_pctx==0) m_WSPR_tx_next = false; //Don't transmit if m_pctx=0
|
||||
bool btx = m_auto && m_WSPR_tx_next; // To Tx, we need m_auto and
|
||||
// scheduled transmit
|
||||
if(m_pctx==0) m_WSPR_tx_next = false; //Don't transmit if m_pctx=0
|
||||
bool btx = m_auto && m_WSPR_tx_next; // To Tx, we need m_auto and
|
||||
// scheduled transmit
|
||||
if(m_auto and m_txNext) btx=true; //TxNext button overrides
|
||||
if(m_auto and m_pctx==100) btx=true; //Always transmit
|
||||
|
||||
if(btx) {
|
||||
m_ntr=-1; //This says we will have transmitted
|
||||
m_ntr=-1; //This says we will have transmitted
|
||||
m_txNext=false;
|
||||
ui->pbTxNext->setChecked(false);
|
||||
m_bTxTime=true; //Start a WSPR Tx sequence
|
||||
m_bTxTime=true; //Start a WSPR Tx sequence
|
||||
} else {
|
||||
// This will be a WSPR Rx sequence.
|
||||
m_ntr=1; //This says we will have received
|
||||
m_bTxTime=false; //Start a WSPR Rx sequence
|
||||
m_ntr=1; //This says we will have received
|
||||
m_bTxTime=false; //Start a WSPR Rx sequence
|
||||
}
|
||||
}
|
||||
|
||||
@ -2670,7 +2687,7 @@ void MainWindow::guiUpdate()
|
||||
// Don't transmit another mode in the 30 m WSPR sub-band
|
||||
Frequency onAirFreq = m_freqNominal + ui->TxFreqSpinBox->value();
|
||||
if ((onAirFreq > 10139900 and onAirFreq < 10140320) and
|
||||
!m_mode.startsWith ("WSPR")) {
|
||||
m_mode!="WSPR") {
|
||||
m_bTxTime=false;
|
||||
// if (m_tune) stop_tuning ();
|
||||
if (m_auto) auto_tx_mode (false);
|
||||
@ -2689,7 +2706,7 @@ void MainWindow::guiUpdate()
|
||||
}
|
||||
}
|
||||
|
||||
if (m_config.watchdog() && !m_mode.startsWith ("WSPR")
|
||||
if (m_config.watchdog() && m_mode!="WSPR"
|
||||
&& m_idleMinutes >= m_config.watchdog ()) {
|
||||
tx_watchdog (true); // disable transmit
|
||||
}
|
||||
@ -2708,7 +2725,7 @@ void MainWindow::guiUpdate()
|
||||
if(!m_bTxTime and !m_tune) m_btxok=false; //Time to stop transmitting
|
||||
}
|
||||
|
||||
if(m_mode.startsWith ("WSPR") and
|
||||
if(m_mode=="WSPR" and
|
||||
((m_ntr==1 and m_rxDone) or (m_ntr==-1 and m_nseq>tx2))) {
|
||||
if(m_monitoring) {
|
||||
m_rxDone=false;
|
||||
@ -2729,7 +2746,7 @@ void MainWindow::guiUpdate()
|
||||
//----------------------------------------------------------------------
|
||||
QByteArray ba;
|
||||
|
||||
if(m_mode.startsWith ("WSPR")) {
|
||||
if(m_mode=="WSPR") {
|
||||
QString sdBm,msg0,msg1,msg2;
|
||||
sdBm.sprintf(" %d",m_dBm);
|
||||
m_tx=1-m_tx;
|
||||
@ -2786,7 +2803,7 @@ void MainWindow::guiUpdate()
|
||||
&m_currentMessageType, len1, len1);
|
||||
if(m_mode=="QRA64") genqra64_(message, &ichk, msgsent, const_cast<int *> (itone),
|
||||
&m_currentMessageType, len1, len1);
|
||||
if(m_mode.startsWith ("WSPR")) genwspr_(message, msgsent, const_cast<int *> (itone),
|
||||
if(m_mode=="WSPR") genwspr_(message, msgsent, const_cast<int *> (itone),
|
||||
len1, len1);
|
||||
if(m_modeTx=="MSK144") {
|
||||
bool bcontest=m_config.contestMode();
|
||||
@ -2913,7 +2930,7 @@ void MainWindow::guiUpdate()
|
||||
if (g_iptt == 1 && m_iptt0 == 0)
|
||||
{
|
||||
auto const& current_message = QString::fromLatin1 (msgsent);
|
||||
if(m_config.watchdog () && !m_mode.startsWith ("WSPR")
|
||||
if(m_config.watchdog () && m_mode!="WSPR"
|
||||
&& current_message != m_msgSent0) {
|
||||
tx_watchdog (false); // in case we are auto sequencing
|
||||
m_msgSent0 = current_message;
|
||||
@ -3059,7 +3076,7 @@ void MainWindow::startTx2()
|
||||
ui->signal_meter_widget->setValue(0);
|
||||
if(m_mode=="Echo" and !m_tune) m_bTransmittedEcho=true;
|
||||
|
||||
if(m_mode.startsWith ("WSPR") and !m_tune) {
|
||||
if(m_mode=="WSPR" and !m_tune) {
|
||||
if (m_config.TX_messages ()) {
|
||||
t = " Transmitting " + m_mode + " ----------------------- " +
|
||||
m_config.bands ()->find (m_freqNominal);
|
||||
@ -3107,7 +3124,7 @@ void MainWindow::stopTx2()
|
||||
on_stopTxButton_clicked ();
|
||||
m_nTx73 = 0;
|
||||
}
|
||||
if(m_mode.startsWith ("WSPR") and m_ntr==-1 and !m_tuneup) {
|
||||
if(m_mode=="WSPR" and m_ntr==-1 and !m_tuneup) {
|
||||
m_wideGraph->setWSPRtransmitted();
|
||||
WSPR_scheduling ();
|
||||
m_ntr=0;
|
||||
@ -4131,7 +4148,7 @@ void MainWindow::on_actionJT9_JT65_triggered()
|
||||
|
||||
void MainWindow::on_actionJT65_triggered()
|
||||
{
|
||||
if(m_mode=="JT4" or m_mode.startsWith ("WSPR")) {
|
||||
if(m_mode=="JT4" or m_mode=="WSPR") {
|
||||
// If coming from JT4 or WSPR mode, pretend temporarily that we're coming
|
||||
// from JT9 and click the pbTxMode button
|
||||
m_modeTx="JT9";
|
||||
@ -4566,7 +4583,7 @@ void MainWindow::band_changed (Frequency f)
|
||||
}
|
||||
|
||||
if (m_bandEdited) {
|
||||
if (!m_mode.startsWith ("WSPR")) { // band hopping preserves auto Tx
|
||||
if (m_mode!="WSPR") { // WSPR band hopping preserves auto Tx
|
||||
if (f + m_wideGraph->nStartFreq () > m_freqNominal + ui->TxFreqSpinBox->value ()
|
||||
|| f + m_wideGraph->nStartFreq () + m_wideGraph->fSpan () <=
|
||||
m_freqNominal + ui->TxFreqSpinBox->value ()) {
|
||||
@ -4606,7 +4623,7 @@ void MainWindow::vhfWarning()
|
||||
|
||||
void MainWindow::enable_DXCC_entity (bool on)
|
||||
{
|
||||
if (on and !m_mode.startsWith ("WSPR") and m_mode!="Echo") {
|
||||
if (on and m_mode!="WSPR" and m_mode!="Echo") {
|
||||
m_logBook.init(); // re-read the log and cty.dat files
|
||||
ui->gridLayout->setColumnStretch(0,55); // adjust proportions of text displays
|
||||
ui->gridLayout->setColumnStretch(1,45);
|
||||
@ -4870,7 +4887,7 @@ void MainWindow::setFreq4(int rxFreq, int txFreq)
|
||||
ui->RxFreqSpinBox->setValue(rxFreq);
|
||||
}
|
||||
|
||||
if(m_mode.startsWith ("WSPR")) {
|
||||
if(m_mode=="WSPR") {
|
||||
ui->WSPRfreqSpinBox->setValue(txFreq);
|
||||
} else {
|
||||
if (ui->TxFreqSpinBox->isEnabled ()) {
|
||||
@ -4928,7 +4945,7 @@ void MainWindow::handle_transceiver_update (Transceiver::TransceiverState const&
|
||||
|| !(ui->cbCQTx->isEnabled () && ui->cbCQTx->isVisible () && ui->cbCQTx->isChecked()))) {
|
||||
m_lastDialFreq = m_freqNominal;
|
||||
m_secBandChanged=QDateTime::currentMSecsSinceEpoch()/1000;
|
||||
if(s.frequency () < 30000000u && !m_mode.startsWith ("WSPR")) {
|
||||
if(s.frequency () < 30000000u && m_mode!="WSPR") {
|
||||
// Write freq changes to ALL.TXT only below 30 MHz.
|
||||
QFile f2 {m_dataDir.absoluteFilePath ("ALL.TXT")};
|
||||
if (f2.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) {
|
||||
@ -5088,11 +5105,19 @@ void MainWindow::transmit (double snr)
|
||||
|
||||
int nToneSpacing=1;
|
||||
if(m_config.x2ToneSpacing()) nToneSpacing=2;
|
||||
Q_EMIT sendMessage (NUM_WSPR_SYMBOLS, 8192.0,
|
||||
if(ui->rbWSPR15->isChecked()) {
|
||||
Q_EMIT sendMessage (NUM_WSPR_SYMBOLS, 65536.0,
|
||||
ui->TxFreqSpinBox->value() - 1.5*12000.0/65536.0,
|
||||
m_toneSpacing*nToneSpacing/8.0, m_soundOutput,
|
||||
m_config.audio_output_channel(),true, false, snr,
|
||||
m_TRperiod);
|
||||
} else {
|
||||
Q_EMIT sendMessage (NUM_WSPR_SYMBOLS, 8192.0,
|
||||
ui->TxFreqSpinBox->value() - 1.5 * 12000 / 8192,
|
||||
m_toneSpacing*nToneSpacing, m_soundOutput,
|
||||
m_config.audio_output_channel(),true, false, snr,
|
||||
m_TRperiod);
|
||||
}
|
||||
}
|
||||
if(m_mode=="Echo") {
|
||||
//??? should use "fastMode = true" here ???
|
||||
|
@ -2,6 +2,14 @@
|
||||
<ui version="4.0">
|
||||
<class>MainWindow</class>
|
||||
<widget class="QMainWindow" name="MainWindow">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>890</width>
|
||||
<height>560</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>WSJT-X by K1JT</string>
|
||||
</property>
|
||||
@ -1705,6 +1713,48 @@ list. The list can be maintained in Settings (F2).</string>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>50</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Submode (min)</string>
|
||||
</property>
|
||||
<widget class="QRadioButton" name="rbWSPR2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>17</x>
|
||||
<y>20</y>
|
||||
<width>31</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QRadioButton" name="rbWSPR15">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>57</x>
|
||||
<y>20</y>
|
||||
<width>41</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>15</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
@ -1803,6 +1853,19 @@ list. The list can be maintained in Settings (F2).</string>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
@ -2276,6 +2339,14 @@ QPushButton[state="ok"] {
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menuBar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>890</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuFile">
|
||||
<property name="title">
|
||||
<string>File</string>
|
||||
|
Loading…
Reference in New Issue
Block a user