mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-23 12:48:40 -05:00
Add facility to disallow CAT commands while transmitting.
Some rigs either do not honour some CAT commands while transmitting or interpret them incorrectly. To deal with this a settings option to allow TX frequency changes while transmitting has been added with a default value of off. Any UI actions that directly or indirectly change the TX frequency are guarded according to this new option. As well as this band changes and use of the +2kHz check box are disabled and guarded respectively in transmit mode. Mode changes via the menu are now disabled while transmitting. When TX frequency changes are allowed; frequency changes are correctly implemented while in tune mode. Double clicking decodes while transmitting now correctly regenerate and change the message sent on the fly. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4349 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
ec86773191
commit
a576aa3c06
@ -369,6 +369,7 @@ private:
|
|||||||
QString my_grid_;
|
QString my_grid_;
|
||||||
qint32 id_interval_;
|
qint32 id_interval_;
|
||||||
bool id_after_73_;
|
bool id_after_73_;
|
||||||
|
bool tx_QSY_allowed_;
|
||||||
bool spot_to_psk_reporter_;
|
bool spot_to_psk_reporter_;
|
||||||
bool monitor_off_at_startup_;
|
bool monitor_off_at_startup_;
|
||||||
bool log_as_RTTY_;
|
bool log_as_RTTY_;
|
||||||
@ -425,6 +426,7 @@ QString Configuration::my_grid () const {return m_->my_grid_;}
|
|||||||
QFont Configuration::decoded_text_font () const {return m_->decoded_text_font_;}
|
QFont Configuration::decoded_text_font () const {return m_->decoded_text_font_;}
|
||||||
qint32 Configuration::id_interval () const {return m_->id_interval_;}
|
qint32 Configuration::id_interval () const {return m_->id_interval_;}
|
||||||
bool Configuration::id_after_73 () const {return m_->id_after_73_;}
|
bool Configuration::id_after_73 () const {return m_->id_after_73_;}
|
||||||
|
bool Configuration::tx_QSY_allowed () const {return m_->tx_QSY_allowed_ || !split_mode ();}
|
||||||
bool Configuration::spot_to_psk_reporter () const {return m_->spot_to_psk_reporter_;}
|
bool Configuration::spot_to_psk_reporter () const {return m_->spot_to_psk_reporter_;}
|
||||||
bool Configuration::monitor_off_at_startup () const {return m_->monitor_off_at_startup_;}
|
bool Configuration::monitor_off_at_startup () const {return m_->monitor_off_at_startup_;}
|
||||||
bool Configuration::log_as_RTTY () const {return m_->log_as_RTTY_;}
|
bool Configuration::log_as_RTTY () const {return m_->log_as_RTTY_;}
|
||||||
@ -839,6 +841,7 @@ void Configuration::impl::initialise_models ()
|
|||||||
ui_->PTT_method_button_group->button (rig_params_.PTT_method_)->setChecked (true);
|
ui_->PTT_method_button_group->button (rig_params_.PTT_method_)->setChecked (true);
|
||||||
ui_->save_path_display_label->setText (save_directory_.absolutePath ());
|
ui_->save_path_display_label->setText (save_directory_.absolutePath ());
|
||||||
ui_->CW_id_after_73_check_box->setChecked (id_after_73_);
|
ui_->CW_id_after_73_check_box->setChecked (id_after_73_);
|
||||||
|
ui_->tx_QSY_check_box->setChecked (tx_QSY_allowed_);
|
||||||
ui_->psk_reporter_check_box->setChecked (spot_to_psk_reporter_);
|
ui_->psk_reporter_check_box->setChecked (spot_to_psk_reporter_);
|
||||||
ui_->monitor_off_check_box->setChecked (monitor_off_at_startup_);
|
ui_->monitor_off_check_box->setChecked (monitor_off_at_startup_);
|
||||||
ui_->log_as_RTTY_check_box->setChecked (log_as_RTTY_);
|
ui_->log_as_RTTY_check_box->setChecked (log_as_RTTY_);
|
||||||
@ -987,6 +990,7 @@ void Configuration::impl::read_settings ()
|
|||||||
monitor_off_at_startup_ = settings_->value ("MonitorOFF", false).toBool ();
|
monitor_off_at_startup_ = settings_->value ("MonitorOFF", false).toBool ();
|
||||||
spot_to_psk_reporter_ = settings_->value ("PSKReporter", false).toBool ();
|
spot_to_psk_reporter_ = settings_->value ("PSKReporter", false).toBool ();
|
||||||
id_after_73_ = settings_->value ("After73", false).toBool ();
|
id_after_73_ = settings_->value ("After73", false).toBool ();
|
||||||
|
tx_QSY_allowed_ = settings_->value ("TxQSYAllowed", false).toBool ();
|
||||||
|
|
||||||
macros_.setStringList (settings_->value ("Macros", QStringList {"TNX 73 GL"}).toStringList ());
|
macros_.setStringList (settings_->value ("Macros", QStringList {"TNX 73 GL"}).toStringList ());
|
||||||
|
|
||||||
@ -1067,6 +1071,7 @@ void Configuration::impl::write_settings ()
|
|||||||
settings_->setValue ("MonitorOFF", monitor_off_at_startup_);
|
settings_->setValue ("MonitorOFF", monitor_off_at_startup_);
|
||||||
settings_->setValue ("PSKReporter", spot_to_psk_reporter_);
|
settings_->setValue ("PSKReporter", spot_to_psk_reporter_);
|
||||||
settings_->setValue ("After73", id_after_73_);
|
settings_->setValue ("After73", id_after_73_);
|
||||||
|
settings_->setValue ("TxQSYAllowed", tx_QSY_allowed_);
|
||||||
settings_->setValue ("Macros", macros_.stringList ());
|
settings_->setValue ("Macros", macros_.stringList ());
|
||||||
settings_->setValue ("frequencies", QVariant::fromValue (frequencies_.frequencies ()));
|
settings_->setValue ("frequencies", QVariant::fromValue (frequencies_.frequencies ()));
|
||||||
settings_->setValue ("stations", QVariant::fromValue (stations_.stations ()));
|
settings_->setValue ("stations", QVariant::fromValue (stations_.stations ()));
|
||||||
@ -1404,6 +1409,7 @@ void Configuration::impl::accept ()
|
|||||||
spot_to_psk_reporter_ = ui_->psk_reporter_check_box->isChecked ();
|
spot_to_psk_reporter_ = ui_->psk_reporter_check_box->isChecked ();
|
||||||
id_interval_ = ui_->CW_id_interval_spin_box->value ();
|
id_interval_ = ui_->CW_id_interval_spin_box->value ();
|
||||||
id_after_73_ = ui_->CW_id_after_73_check_box->isChecked ();
|
id_after_73_ = ui_->CW_id_after_73_check_box->isChecked ();
|
||||||
|
tx_QSY_allowed_ = ui_->tx_QSY_check_box->isChecked ();
|
||||||
monitor_off_at_startup_ = ui_->monitor_off_check_box->isChecked ();
|
monitor_off_at_startup_ = ui_->monitor_off_check_box->isChecked ();
|
||||||
jt9w_bw_mult_ = ui_->jt9w_bandwidth_mult_combo_box->currentText ().toUInt ();
|
jt9w_bw_mult_ = ui_->jt9w_bandwidth_mult_combo_box->currentText ().toUInt ();
|
||||||
jt9w_min_dt_ = static_cast<float> (ui_->jt9w_min_dt_double_spin_box->value ());
|
jt9w_min_dt_ = static_cast<float> (ui_->jt9w_min_dt_double_spin_box->value ());
|
||||||
|
@ -85,6 +85,7 @@ public:
|
|||||||
QFont decoded_text_font () const;
|
QFont decoded_text_font () const;
|
||||||
qint32 id_interval () const;
|
qint32 id_interval () const;
|
||||||
bool id_after_73 () const;
|
bool id_after_73 () const;
|
||||||
|
bool tx_QSY_allowed () const;
|
||||||
bool spot_to_psk_reporter () const;
|
bool spot_to_psk_reporter () const;
|
||||||
bool monitor_off_at_startup () const;
|
bool monitor_off_at_startup () const;
|
||||||
bool log_as_RTTY () const;
|
bool log_as_RTTY () const;
|
||||||
|
@ -214,6 +214,27 @@
|
|||||||
<string>Behavior</string>
|
<string>Behavior</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_8">
|
<layout class="QGridLayout" name="gridLayout_8">
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QCheckBox" name="disable_TX_on_73_check_box">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Turns off automatic transmissions after sending a 73 or any other free
|
||||||
|
text message.</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Di&sable Tx after sending 73</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QCheckBox" name="watchdog_check_box">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Stop transmitting automatically after five periods.</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Runaway Tx &watchdog</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QCheckBox" name="monitor_off_check_box">
|
<widget class="QCheckBox" name="monitor_off_check_box">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
@ -237,28 +258,17 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="0" column="1">
|
||||||
<widget class="QCheckBox" name="disable_TX_on_73_check_box">
|
<widget class="QCheckBox" name="tx_QSY_check_box">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Turns off automatic transmissions after sending a 73 or any other free
|
<string><html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html></string>
|
||||||
text message.</string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Di&sable Tx after sending 73</string>
|
<string>Allow Tx Frequency Changes While Transmitting</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="4" column="0" colspan="2">
|
||||||
<widget class="QCheckBox" name="watchdog_check_box">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Stop transmitting automatically after five periods.</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Runaway Tx &watchdog</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="CW_id_after_73_check_box">
|
<widget class="QCheckBox" name="CW_id_after_73_check_box">
|
||||||
@ -1825,11 +1835,11 @@ soundcard changes</string>
|
|||||||
</connections>
|
</connections>
|
||||||
<buttongroups>
|
<buttongroups>
|
||||||
<buttongroup name="CAT_stop_bits_button_group"/>
|
<buttongroup name="CAT_stop_bits_button_group"/>
|
||||||
<buttongroup name="TX_audio_source_button_group"/>
|
|
||||||
<buttongroup name="CAT_data_bits_button_group"/>
|
<buttongroup name="CAT_data_bits_button_group"/>
|
||||||
<buttongroup name="CAT_handshake_button_group"/>
|
<buttongroup name="CAT_handshake_button_group"/>
|
||||||
|
<buttongroup name="TX_mode_button_group"/>
|
||||||
|
<buttongroup name="TX_audio_source_button_group"/>
|
||||||
<buttongroup name="split_mode_button_group"/>
|
<buttongroup name="split_mode_button_group"/>
|
||||||
<buttongroup name="PTT_method_button_group"/>
|
<buttongroup name="PTT_method_button_group"/>
|
||||||
<buttongroup name="TX_mode_button_group"/>
|
|
||||||
</buttongroups>
|
</buttongroups>
|
||||||
</ui>
|
</ui>
|
||||||
|
@ -58,7 +58,9 @@ void Modulator::start (unsigned symbolsLength, double framesPerSymbol, unsigned
|
|||||||
m_quickClose = false;
|
m_quickClose = false;
|
||||||
|
|
||||||
m_symbolsLength = symbolsLength;
|
m_symbolsLength = symbolsLength;
|
||||||
m_isym0 = std::numeric_limits<unsigned>::max (); // Arbitrary big number
|
m_isym0 = std::numeric_limits<unsigned>::max (); // Arbitrary big
|
||||||
|
// number
|
||||||
|
m_frequency0 = 0.;
|
||||||
m_addNoise = dBSNR < 0.;
|
m_addNoise = dBSNR < 0.;
|
||||||
m_nsps = framesPerSymbol;
|
m_nsps = framesPerSymbol;
|
||||||
m_frequency = frequency;
|
m_frequency = frequency;
|
||||||
@ -223,7 +225,7 @@ qint64 Modulator::readData (char * data, qint64 maxSize)
|
|||||||
|
|
||||||
for (unsigned i = 0; i < numFrames && m_ic <= i1; ++i) {
|
for (unsigned i = 0; i < numFrames && m_ic <= i1; ++i) {
|
||||||
isym = m_tuning ? 0 : m_ic / (4.0 * m_nsps); //Actual fsample=48000
|
isym = m_tuning ? 0 : m_ic / (4.0 * m_nsps); //Actual fsample=48000
|
||||||
if (isym != m_isym0) {
|
if (isym != m_isym0 || m_frequency != m_frequency0) {
|
||||||
// qDebug () << "@m_ic:" << m_ic << "itone[" << isym << "] =" << itone[isym] << "@" << i << "in numFrames:" << numFrames;
|
// qDebug () << "@m_ic:" << m_ic << "itone[" << isym << "] =" << itone[isym] << "@" << i << "in numFrames:" << numFrames;
|
||||||
|
|
||||||
if(m_toneSpacing==0.0) {
|
if(m_toneSpacing==0.0) {
|
||||||
@ -233,6 +235,7 @@ qint64 Modulator::readData (char * data, qint64 maxSize)
|
|||||||
}
|
}
|
||||||
m_dphi = m_twoPi * toneFrequency0 / m_frameRate;
|
m_dphi = m_twoPi * toneFrequency0 / m_frameRate;
|
||||||
m_isym0 = isym;
|
m_isym0 = isym;
|
||||||
|
m_frequency0 = m_frequency;
|
||||||
}
|
}
|
||||||
|
|
||||||
int j=m_ic/480;
|
int j=m_ic/480;
|
||||||
|
@ -60,6 +60,7 @@ private:
|
|||||||
double m_amp;
|
double m_amp;
|
||||||
double m_nsps;
|
double m_nsps;
|
||||||
double volatile m_frequency;
|
double volatile m_frequency;
|
||||||
|
double m_frequency0;
|
||||||
double m_snr;
|
double m_snr;
|
||||||
double m_fac;
|
double m_fac;
|
||||||
double m_toneSpacing;
|
double m_toneSpacing;
|
||||||
|
232
mainwindow.cpp
232
mainwindow.cpp
@ -285,8 +285,6 @@ MainWindow::MainWindow(bool multiple, QSettings * settings, QSharedMemory *shdme
|
|||||||
m_killAll=false;
|
m_killAll=false;
|
||||||
m_widebandDecode=false;
|
m_widebandDecode=false;
|
||||||
m_ntx=1;
|
m_ntx=1;
|
||||||
m_rxFreq=1500;
|
|
||||||
m_txFreq=1500;
|
|
||||||
m_setftx=0;
|
m_setftx=0;
|
||||||
m_loopall=false;
|
m_loopall=false;
|
||||||
m_startAnother=false;
|
m_startAnother=false;
|
||||||
@ -373,8 +371,6 @@ MainWindow::MainWindow(bool multiple, QSettings * settings, QSharedMemory *shdme
|
|||||||
if(m_mode!="JT9" and m_mode!="JT9W-1" and m_mode!="JT65" and
|
if(m_mode!="JT9" and m_mode!="JT9W-1" and m_mode!="JT65" and
|
||||||
m_mode!="JT9+JT65") m_mode="JT9";
|
m_mode!="JT9+JT65") m_mode="JT9";
|
||||||
on_actionWide_Waterfall_triggered(); //###
|
on_actionWide_Waterfall_triggered(); //###
|
||||||
m_wideGraph->setRxFreq(m_rxFreq);
|
|
||||||
m_wideGraph->setTxFreq(m_txFreq);
|
|
||||||
m_wideGraph->setLockTxFreq(m_lockTxFreq);
|
m_wideGraph->setLockTxFreq(m_lockTxFreq);
|
||||||
m_wideGraph->setModeTx(m_mode);
|
m_wideGraph->setModeTx(m_mode);
|
||||||
m_wideGraph->setModeTx(m_modeTx);
|
m_wideGraph->setModeTx(m_modeTx);
|
||||||
@ -398,7 +394,7 @@ MainWindow::MainWindow(bool multiple, QSettings * settings, QSharedMemory *shdme
|
|||||||
Q_EMIT startAudioInputStream (m_config.audio_input_device (), m_framesAudioInputBuffered, &m_detector, m_downSampleFactor, m_config.audio_input_channel ());
|
Q_EMIT startAudioInputStream (m_config.audio_input_device (), m_framesAudioInputBuffered, &m_detector, m_downSampleFactor, m_config.audio_input_channel ());
|
||||||
Q_EMIT initializeAudioOutputStream (m_config.audio_output_device (), AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2, m_msAudioOutputBuffered);
|
Q_EMIT initializeAudioOutputStream (m_config.audio_output_device (), AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2, m_msAudioOutputBuffered);
|
||||||
|
|
||||||
Q_EMIT transmitFrequency (m_txFreq - m_XIT);
|
Q_EMIT transmitFrequency (ui->TxFreqSpinBox->value () - m_XIT);
|
||||||
|
|
||||||
auto t = "UTC dB DT Freq Message";
|
auto t = "UTC dB DT Freq Message";
|
||||||
ui->decodedTextLabel->setText(t);
|
ui->decodedTextLabel->setText(t);
|
||||||
@ -447,8 +443,8 @@ void MainWindow::writeSettings()
|
|||||||
m_settings->setValue("SaveDecoded",ui->actionSave_decoded->isChecked());
|
m_settings->setValue("SaveDecoded",ui->actionSave_decoded->isChecked());
|
||||||
m_settings->setValue("SaveAll",ui->actionSave_all->isChecked());
|
m_settings->setValue("SaveAll",ui->actionSave_all->isChecked());
|
||||||
m_settings->setValue("NDepth",m_ndepth);
|
m_settings->setValue("NDepth",m_ndepth);
|
||||||
m_settings->setValue("RxFreq",m_rxFreq);
|
m_settings->setValue("RxFreq",ui->RxFreqSpinBox->value ());
|
||||||
m_settings->setValue("TxFreq",m_txFreq);
|
m_settings->setValue("TxFreq",ui->TxFreqSpinBox->value ());
|
||||||
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("InGain",m_inGain);
|
||||||
m_settings->setValue("OutAttenuation", ui->outAttenuation->value ());
|
m_settings->setValue("OutAttenuation", ui->outAttenuation->value ());
|
||||||
@ -500,12 +496,10 @@ void MainWindow::readSettings()
|
|||||||
ui->actionSave_decoded->setChecked(m_settings->value(
|
ui->actionSave_decoded->setChecked(m_settings->value(
|
||||||
"SaveDecoded",false).toBool());
|
"SaveDecoded",false).toBool());
|
||||||
ui->actionSave_all->setChecked(m_settings->value("SaveAll",false).toBool());
|
ui->actionSave_all->setChecked(m_settings->value("SaveAll",false).toBool());
|
||||||
m_rxFreq=m_settings->value("RxFreq",1500).toInt();
|
ui->RxFreqSpinBox->setValue(m_settings->value("RxFreq",1500).toInt());
|
||||||
ui->RxFreqSpinBox->setValue(m_rxFreq);
|
|
||||||
m_txFreq=m_settings->value("TxFreq",1500).toInt();
|
|
||||||
m_lastMonitoredFrequency = m_settings->value ("DialFreq", QVariant::fromValue<Frequency> (default_frequency)).value<Frequency> ();
|
m_lastMonitoredFrequency = m_settings->value ("DialFreq", QVariant::fromValue<Frequency> (default_frequency)).value<Frequency> ();
|
||||||
ui->TxFreqSpinBox->setValue(m_txFreq);
|
ui->TxFreqSpinBox->setValue(m_settings->value("TxFreq",1500).toInt());
|
||||||
Q_EMIT transmitFrequency (m_txFreq - m_XIT);
|
Q_EMIT transmitFrequency (ui->TxFreqSpinBox->value () - m_XIT);
|
||||||
m_saveDecoded=ui->actionSave_decoded->isChecked();
|
m_saveDecoded=ui->actionSave_decoded->isChecked();
|
||||||
m_saveAll=ui->actionSave_all->isChecked();
|
m_saveAll=ui->actionSave_all->isChecked();
|
||||||
m_ndepth=m_settings->value("NDepth",3).toInt();
|
m_ndepth=m_settings->value("NDepth",3).toInt();
|
||||||
@ -644,7 +638,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog
|
|||||||
displayDialFrequency ();
|
displayDialFrequency ();
|
||||||
}
|
}
|
||||||
|
|
||||||
setXIT (m_txFreq);
|
setXIT (ui->TxFreqSpinBox->value ());
|
||||||
if (m_config.transceiver_online ())
|
if (m_config.transceiver_online ())
|
||||||
{
|
{
|
||||||
Q_EMIT m_config.transceiver_frequency (m_dialFreq);
|
Q_EMIT m_config.transceiver_frequency (m_dialFreq);
|
||||||
@ -664,7 +658,7 @@ void MainWindow::on_monitorButton_clicked (bool checked)
|
|||||||
|
|
||||||
// put rig back where it was when last in control
|
// put rig back where it was when last in control
|
||||||
Q_EMIT m_config.transceiver_frequency (m_lastMonitoredFrequency);
|
Q_EMIT m_config.transceiver_frequency (m_lastMonitoredFrequency);
|
||||||
setXIT (m_txFreq);
|
setXIT (ui->TxFreqSpinBox->value ());
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_EMIT m_config.sync_transceiver (true, checked); // gets
|
Q_EMIT m_config.sync_transceiver (true, checked); // gets
|
||||||
@ -828,14 +822,17 @@ void MainWindow::bumpFqso(int n) //bumpFqso()
|
|||||||
int i;
|
int i;
|
||||||
bool ctrl = (n>=100);
|
bool ctrl = (n>=100);
|
||||||
n=n%100;
|
n=n%100;
|
||||||
i=m_wideGraph->rxFreq();
|
i=ui->RxFreqSpinBox->value ();
|
||||||
if(n==11) i--;
|
if(n==11) i--;
|
||||||
if(n==12) i++;
|
if(n==12) i++;
|
||||||
m_wideGraph->setRxFreq(i);
|
if (ui->RxFreqSpinBox->isEnabled ())
|
||||||
if(ctrl) {
|
{
|
||||||
ui->TxFreqSpinBox->setValue(i);
|
ui->RxFreqSpinBox->setValue (i);
|
||||||
m_wideGraph->setTxFreq(i);
|
}
|
||||||
}
|
if(ctrl && ui->TxFreqSpinBox->isEnabled ())
|
||||||
|
{
|
||||||
|
ui->TxFreqSpinBox->setValue (i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::qsy (Frequency f)
|
void MainWindow::qsy (Frequency f)
|
||||||
@ -848,14 +845,11 @@ void MainWindow::qsy (Frequency f)
|
|||||||
if (m_dialFreq != f)
|
if (m_dialFreq != f)
|
||||||
{
|
{
|
||||||
m_dialFreq = f;
|
m_dialFreq = f;
|
||||||
setXIT(m_txFreq);
|
setXIT(ui->TxFreqSpinBox->value ());
|
||||||
|
|
||||||
m_repeatMsg=0;
|
m_repeatMsg=0;
|
||||||
m_secBandChanged=QDateTime::currentMSecsSinceEpoch()/1000;
|
m_secBandChanged=QDateTime::currentMSecsSinceEpoch()/1000;
|
||||||
|
|
||||||
bumpFqso(11);
|
|
||||||
bumpFqso(12);
|
|
||||||
|
|
||||||
QFile f2(m_config.data_path ().absoluteFilePath ("ALL.TXT"));
|
QFile f2(m_config.data_path ().absoluteFilePath ("ALL.TXT"));
|
||||||
f2.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append);
|
f2.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append);
|
||||||
QTextStream out(&f2);
|
QTextStream out(&f2);
|
||||||
@ -1198,12 +1192,6 @@ void MainWindow::on_DecodeButton_clicked (bool /* checked */) //Decode request
|
|||||||
|
|
||||||
void MainWindow::freezeDecode(int n) //freezeDecode()
|
void MainWindow::freezeDecode(int n) //freezeDecode()
|
||||||
{
|
{
|
||||||
bool ctrl = (n>=100);
|
|
||||||
int i=m_wideGraph->rxFreq();
|
|
||||||
if(ctrl) {
|
|
||||||
ui->TxFreqSpinBox->setValue(i);
|
|
||||||
m_wideGraph->setTxFreq(i);
|
|
||||||
}
|
|
||||||
if((n%100)==2) on_DecodeButton_clicked (true);
|
if((n%100)==2) on_DecodeButton_clicked (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1426,7 +1414,7 @@ void MainWindow::guiUpdate()
|
|||||||
bTxTime=true;
|
bTxTime=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Frequency onAirFreq = m_dialFreq + m_txFreq;
|
Frequency onAirFreq = m_dialFreq + ui->TxFreqSpinBox->value ();
|
||||||
if (onAirFreq > 10139900 && onAirFreq < 10140320)
|
if (onAirFreq > 10139900 && onAirFreq < 10140320)
|
||||||
{
|
{
|
||||||
bTxTime=false;
|
bTxTime=false;
|
||||||
@ -1506,7 +1494,7 @@ void MainWindow::guiUpdate()
|
|||||||
f.close();
|
f.close();
|
||||||
if (m_config.TX_messages ())
|
if (m_config.TX_messages ())
|
||||||
{
|
{
|
||||||
ui->decodedTextBrowser2->displayTransmittedText(t,m_modeTx,m_txFreq);
|
ui->decodedTextBrowser2->displayTransmittedText(t,m_modeTx,ui->TxFreqSpinBox->value ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1553,36 +1541,48 @@ void MainWindow::guiUpdate()
|
|||||||
if (g_iptt == 1 && iptt0 == 0)
|
if (g_iptt == 1 && iptt0 == 0)
|
||||||
{
|
{
|
||||||
QString t=QString::fromLatin1(msgsent);
|
QString t=QString::fromLatin1(msgsent);
|
||||||
if(t==m_msgSent0) {
|
if(t==m_msgSent0)
|
||||||
m_repeatMsg++;
|
|
||||||
} else {
|
|
||||||
m_repeatMsg=0;
|
|
||||||
m_msgSent0=t;
|
|
||||||
}
|
|
||||||
|
|
||||||
signalMeter->setValue(0);
|
|
||||||
|
|
||||||
if (m_monitoring)
|
|
||||||
{
|
{
|
||||||
monitor (false);
|
m_repeatMsg++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_repeatMsg=0;
|
||||||
|
m_msgSent0=t;
|
||||||
|
if(!m_tune)
|
||||||
|
{
|
||||||
|
QFile f(m_config.data_path ().absoluteFilePath ("ALL.TXT"));
|
||||||
|
f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append);
|
||||||
|
QTextStream out(&f);
|
||||||
|
out << QDateTime::currentDateTimeUtc().toString("hhmm")
|
||||||
|
<< " Transmitting " << (m_dialFreq / 1.e6) << " MHz " << m_modeTx
|
||||||
|
<< ": " << t << endl;
|
||||||
|
f.close();
|
||||||
|
}
|
||||||
|
if (m_config.TX_messages () && !m_tune)
|
||||||
|
{
|
||||||
|
ui->decodedTextBrowser2->displayTransmittedText(t,m_modeTx,ui->TxFreqSpinBox->value ());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!m_tune)
|
||||||
|
{
|
||||||
|
QFile f(m_config.data_path ().absoluteFilePath ("ALL.TXT"));
|
||||||
|
f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append);
|
||||||
|
QTextStream out(&f);
|
||||||
|
out << QDateTime::currentDateTimeUtc().toString("hhmm")
|
||||||
|
<< " Transmitting " << (m_dialFreq / 1.e6) << " MHz " << m_modeTx
|
||||||
|
<< ": " << t << endl;
|
||||||
|
f.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_btxok=true;
|
|
||||||
m_transmitting=true;
|
|
||||||
ui->pbTxMode->setEnabled(false);
|
|
||||||
if(!m_tune) {
|
|
||||||
QFile f(m_config.data_path ().absoluteFilePath ("ALL.TXT"));
|
|
||||||
f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append);
|
|
||||||
QTextStream out(&f);
|
|
||||||
out << QDateTime::currentDateTimeUtc().toString("hhmm")
|
|
||||||
<< " Transmitting " << (m_dialFreq / 1.e6) << " MHz " << m_modeTx
|
|
||||||
<< ": " << t << endl;
|
|
||||||
f.close();
|
|
||||||
}
|
|
||||||
if (m_config.TX_messages () && !m_tune)
|
if (m_config.TX_messages () && !m_tune)
|
||||||
{
|
{
|
||||||
ui->decodedTextBrowser2->displayTransmittedText(t,m_modeTx,m_txFreq);
|
ui->decodedTextBrowser2->displayTransmittedText(t,m_modeTx,ui->TxFreqSpinBox->value ());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_transmitting = true;
|
||||||
|
transmitDisplay (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!m_btxok && btxok0 && g_iptt==1) stopTx();
|
if(!m_btxok && btxok0 && g_iptt==1) stopTx();
|
||||||
@ -1604,7 +1604,7 @@ void MainWindow::guiUpdate()
|
|||||||
QDateTime t = QDateTime::currentDateTimeUtc();
|
QDateTime t = QDateTime::currentDateTimeUtc();
|
||||||
int fQSO=125;
|
int fQSO=125;
|
||||||
if(m_astroWidget) m_astroWidget->astroUpdate(t, m_config.my_grid (), m_hisGrid, fQSO,
|
if(m_astroWidget) m_astroWidget->astroUpdate(t, m_config.my_grid (), m_hisGrid, fQSO,
|
||||||
m_setftx, m_txFreq);
|
m_setftx, ui->TxFreqSpinBox->value ());
|
||||||
|
|
||||||
if(m_transmitting) {
|
if(m_transmitting) {
|
||||||
if(nsendingsh==1) {
|
if(nsendingsh==1) {
|
||||||
@ -1658,21 +1658,14 @@ void MainWindow::startTx2()
|
|||||||
if(snr>0.0 or snr < -50.0) snr=99.0;
|
if(snr>0.0 or snr < -50.0) snr=99.0;
|
||||||
transmit (snr);
|
transmit (snr);
|
||||||
signalMeter->setValue(0);
|
signalMeter->setValue(0);
|
||||||
|
|
||||||
//monitor (false);
|
|
||||||
|
|
||||||
//m_btxok=true;
|
|
||||||
//m_transmitting=true;
|
|
||||||
ui->pbTxMode->setEnabled(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::stopTx()
|
void MainWindow::stopTx()
|
||||||
{
|
{
|
||||||
Q_EMIT endTransmitMessage ();
|
Q_EMIT endTransmitMessage ();
|
||||||
m_transmitting=false;
|
|
||||||
m_btxok = false;
|
m_btxok = false;
|
||||||
if ("JT9+JT65" == m_mode) ui->pbTxMode->setEnabled(true);
|
m_transmitting = false;
|
||||||
g_iptt=0;
|
g_iptt=0;
|
||||||
tx_status_label->setStyleSheet("");
|
tx_status_label->setStyleSheet("");
|
||||||
tx_status_label->setText("");
|
tx_status_label->setText("");
|
||||||
@ -1819,18 +1812,23 @@ void MainWindow::doubleClickOnCall(bool shift, bool ctrl)
|
|||||||
|
|
||||||
|
|
||||||
int frequency = decodedtext.frequencyOffset();
|
int frequency = decodedtext.frequencyOffset();
|
||||||
m_wideGraph->setRxFreq(frequency); //Set Rx freq
|
if (ui->RxFreqSpinBox->isEnabled ())
|
||||||
|
{
|
||||||
|
ui->RxFreqSpinBox->setValue (frequency); //Set Rx freq
|
||||||
|
}
|
||||||
if (decodedtext.isTX())
|
if (decodedtext.isTX())
|
||||||
{
|
{
|
||||||
if (ctrl)
|
if (ctrl && ui->TxFreqSpinBox->isEnabled ())
|
||||||
ui->TxFreqSpinBox->setValue(frequency); //Set Tx freq
|
{
|
||||||
|
ui->TxFreqSpinBox->setValue(frequency); //Set Tx freq
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString firstcall = decodedtext.call();
|
QString firstcall = decodedtext.call();
|
||||||
// Don't change Tx freq if a station is calling me, unless m_lockTxFreq
|
// Don't change Tx freq if a station is calling me, unless m_lockTxFreq
|
||||||
// is true or CTRL is held down
|
// is true or CTRL is held down
|
||||||
if ((firstcall!=m_config.my_callsign ()) or m_lockTxFreq or ctrl)
|
if (((firstcall!=m_config.my_callsign ()) or m_lockTxFreq or ctrl) and ui->TxFreqSpinBox->isEnabled ())
|
||||||
ui->TxFreqSpinBox->setValue(frequency);
|
ui->TxFreqSpinBox->setValue(frequency);
|
||||||
|
|
||||||
if (decodedtext.isJT9())
|
if (decodedtext.isJT9())
|
||||||
@ -1929,6 +1927,7 @@ void MainWindow::doubleClickOnCall(bool shift, bool ctrl)
|
|||||||
ui->rbGenMsg->setChecked(true);
|
ui->rbGenMsg->setChecked(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(m_transmitting) m_restart=true;
|
||||||
if(m_config.quick_call ())
|
if(m_config.quick_call ())
|
||||||
{
|
{
|
||||||
auto_tx_mode (true);
|
auto_tx_mode (true);
|
||||||
@ -2288,7 +2287,7 @@ void MainWindow::on_logQSOButton_clicked() //Log QSO button
|
|||||||
, m_rptSent
|
, m_rptSent
|
||||||
, m_rptRcvd
|
, m_rptRcvd
|
||||||
, m_dateTimeQSO
|
, m_dateTimeQSO
|
||||||
, (m_dialFreq + m_txFreq) / 1.e6
|
, (m_dialFreq + ui->TxFreqSpinBox->value ()) / 1.e6
|
||||||
, m_config.my_callsign ()
|
, m_config.my_callsign ()
|
||||||
, m_config.my_grid ()
|
, m_config.my_grid ()
|
||||||
, m_noSuffix
|
, m_noSuffix
|
||||||
@ -2301,7 +2300,7 @@ void MainWindow::acceptQSO2(bool accepted)
|
|||||||
{
|
{
|
||||||
if(accepted)
|
if(accepted)
|
||||||
{
|
{
|
||||||
QString band = ADIF::bandFromFrequency ((m_dialFreq + m_txFreq) / 1.e6);
|
QString band = ADIF::bandFromFrequency ((m_dialFreq + ui->TxFreqSpinBox->value ()) / 1.e6);
|
||||||
QString date = m_dateTimeQSO.toString("yyyy-MM-dd");
|
QString date = m_dateTimeQSO.toString("yyyy-MM-dd");
|
||||||
date=date.mid(0,4) + date.mid(5,2) + date.mid(8,2);
|
date=date.mid(0,4) + date.mid(5,2) + date.mid(8,2);
|
||||||
m_logBook.addAsWorked(m_hisCall,band,m_modeTx,date);
|
m_logBook.addAsWorked(m_hisCall,band,m_modeTx,date);
|
||||||
@ -2394,17 +2393,19 @@ void MainWindow::on_actionJT9_JT65_triggered()
|
|||||||
|
|
||||||
void MainWindow::on_TxFreqSpinBox_valueChanged(int n)
|
void MainWindow::on_TxFreqSpinBox_valueChanged(int n)
|
||||||
{
|
{
|
||||||
m_txFreq=n;
|
|
||||||
m_wideGraph->setTxFreq(n);
|
m_wideGraph->setTxFreq(n);
|
||||||
if(m_lockTxFreq) ui->RxFreqSpinBox->setValue(n);
|
if(m_lockTxFreq) ui->RxFreqSpinBox->setValue(n);
|
||||||
Q_EMIT transmitFrequency (m_txFreq - m_XIT);
|
Q_EMIT transmitFrequency (n - m_XIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_RxFreqSpinBox_valueChanged(int n)
|
void MainWindow::on_RxFreqSpinBox_valueChanged(int n)
|
||||||
{
|
{
|
||||||
m_rxFreq=n;
|
|
||||||
m_wideGraph->setRxFreq(n);
|
m_wideGraph->setRxFreq(n);
|
||||||
if(m_lockTxFreq) ui->TxFreqSpinBox->setValue(n);
|
|
||||||
|
if (m_lockTxFreq && ui->TxFreqSpinBox->isEnabled ())
|
||||||
|
{
|
||||||
|
ui->TxFreqSpinBox->setValue (n);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionQuickDecode_triggered()
|
void MainWindow::on_actionQuickDecode_triggered()
|
||||||
@ -2662,7 +2663,6 @@ void MainWindow::on_stopTxButton_clicked() //Stop Tx
|
|||||||
auto_tx_mode (false);
|
auto_tx_mode (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_transmitting = false;
|
|
||||||
m_btxok=false;
|
m_btxok=false;
|
||||||
m_repeatMsg=0;
|
m_repeatMsg=0;
|
||||||
}
|
}
|
||||||
@ -2679,13 +2679,18 @@ void MainWindow::rigOpen ()
|
|||||||
|
|
||||||
void MainWindow::on_pbR2T_clicked()
|
void MainWindow::on_pbR2T_clicked()
|
||||||
{
|
{
|
||||||
int n=m_wideGraph->rxFreq();
|
if (ui->TxFreqSpinBox->isEnabled ())
|
||||||
ui->TxFreqSpinBox->setValue(n);
|
{
|
||||||
|
ui->TxFreqSpinBox->setValue(ui->RxFreqSpinBox->value ());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_pbT2R_clicked()
|
void MainWindow::on_pbT2R_clicked()
|
||||||
{
|
{
|
||||||
m_wideGraph->setRxFreq(m_txFreq);
|
if (ui->RxFreqSpinBox->isEnabled ())
|
||||||
|
{
|
||||||
|
ui->RxFreqSpinBox->setValue (ui->TxFreqSpinBox->value ());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2731,15 +2736,20 @@ void MainWindow::setXIT(int n)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_EMIT transmitFrequency (m_txFreq - m_XIT);
|
Q_EMIT transmitFrequency (ui->TxFreqSpinBox->value () - m_XIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::setFreq4(int rxFreq, int txFreq)
|
void MainWindow::setFreq4(int rxFreq, int txFreq)
|
||||||
{
|
{
|
||||||
m_rxFreq=rxFreq;
|
if (ui->RxFreqSpinBox->isEnabled ())
|
||||||
m_txFreq=txFreq;
|
{
|
||||||
ui->RxFreqSpinBox->setValue(m_rxFreq);
|
ui->RxFreqSpinBox->setValue(rxFreq);
|
||||||
ui->TxFreqSpinBox->setValue(m_txFreq);
|
}
|
||||||
|
|
||||||
|
if (ui->TxFreqSpinBox->isEnabled ())
|
||||||
|
{
|
||||||
|
ui->TxFreqSpinBox->setValue(txFreq);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_cbTxLock_clicked(bool checked)
|
void MainWindow::on_cbTxLock_clicked(bool checked)
|
||||||
@ -2773,6 +2783,14 @@ void MainWindow::on_cbPlus2kHz_toggled(bool checked)
|
|||||||
|
|
||||||
void MainWindow::handle_transceiver_update (Transceiver::TransceiverState s)
|
void MainWindow::handle_transceiver_update (Transceiver::TransceiverState s)
|
||||||
{
|
{
|
||||||
|
static bool prior_ptt {false};
|
||||||
|
|
||||||
|
if (!s.ptt () && prior_ptt)
|
||||||
|
{
|
||||||
|
transmitDisplay (false);
|
||||||
|
}
|
||||||
|
prior_ptt = s.ptt ();
|
||||||
|
|
||||||
if ((s.frequency () - m_dialFreq) || s.split () != m_splitMode)
|
if ((s.frequency () - m_dialFreq) || s.split () != m_splitMode)
|
||||||
{
|
{
|
||||||
m_splitMode = s.split ();
|
m_splitMode = s.split ();
|
||||||
@ -2821,11 +2839,11 @@ void MainWindow::transmit (double snr)
|
|||||||
{
|
{
|
||||||
if (m_modeTx == "JT65")
|
if (m_modeTx == "JT65")
|
||||||
{
|
{
|
||||||
Q_EMIT sendMessage (NUM_JT65_SYMBOLS, 4096.0 * 12000.0 / 11025.0, m_txFreq - m_XIT, m_toneSpacing, &m_soundOutput, m_config.audio_output_channel (), true, snr);
|
Q_EMIT sendMessage (NUM_JT65_SYMBOLS, 4096.0 * 12000.0 / 11025.0, ui->TxFreqSpinBox->value () - m_XIT, m_toneSpacing, &m_soundOutput, m_config.audio_output_channel (), true, snr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Q_EMIT sendMessage (NUM_JT9_SYMBOLS, m_nsps, m_txFreq - m_XIT, m_toneSpacing, &m_soundOutput, m_config.audio_output_channel (), true, snr);
|
Q_EMIT sendMessage (NUM_JT9_SYMBOLS, m_nsps, ui->TxFreqSpinBox->value () - m_XIT, m_toneSpacing, &m_soundOutput, m_config.audio_output_channel (), true, snr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2951,3 +2969,45 @@ void MainWindow::pskSetLocal ()
|
|||||||
, m_config.my_grid ()
|
, m_config.my_grid ()
|
||||||
, antenna_description, "WSJT-X " + m_revision);
|
, antenna_description, "WSJT-X " + m_revision);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::transmitDisplay (bool transmitting)
|
||||||
|
{
|
||||||
|
if (transmitting)
|
||||||
|
{
|
||||||
|
signalMeter->setValue(0);
|
||||||
|
|
||||||
|
if (m_monitoring)
|
||||||
|
{
|
||||||
|
monitor (false);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_btxok=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto QSY_allowed = !transmitting || m_config.tx_QSY_allowed ();
|
||||||
|
if (ui->cbTxLock->isChecked ())
|
||||||
|
{
|
||||||
|
ui->RxFreqSpinBox->setEnabled (QSY_allowed);
|
||||||
|
ui->pbT2R->setEnabled (QSY_allowed);
|
||||||
|
}
|
||||||
|
ui->TxFreqSpinBox->setEnabled (QSY_allowed);
|
||||||
|
ui->pbR2T->setEnabled (QSY_allowed);
|
||||||
|
ui->cbTxLock->setEnabled (QSY_allowed);
|
||||||
|
ui->cbPlus2kHz->setEnabled (QSY_allowed);
|
||||||
|
|
||||||
|
// the following are always disallowed in transmit
|
||||||
|
ui->menuMode->setEnabled (!transmitting);
|
||||||
|
ui->bandComboBox->setEnabled (!transmitting);
|
||||||
|
if (!transmitting)
|
||||||
|
{
|
||||||
|
if ("JT9+JT65" == m_mode)
|
||||||
|
{
|
||||||
|
// allow mode switch in Rx when in dual mode
|
||||||
|
ui->pbTxMode->setEnabled (true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ui->pbTxMode->setEnabled (false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -220,8 +220,6 @@ private:
|
|||||||
qint32 m_waterfallAvg;
|
qint32 m_waterfallAvg;
|
||||||
qint32 m_ntx;
|
qint32 m_ntx;
|
||||||
qint32 m_timeout;
|
qint32 m_timeout;
|
||||||
qint32 m_rxFreq;
|
|
||||||
qint32 m_txFreq;
|
|
||||||
int m_XIT;
|
int m_XIT;
|
||||||
qint32 m_setftx;
|
qint32 m_setftx;
|
||||||
qint32 m_ndepth;
|
qint32 m_ndepth;
|
||||||
@ -389,6 +387,7 @@ private:
|
|||||||
void rigFailure (QString const& reason, QString const& detail);
|
void rigFailure (QString const& reason, QString const& detail);
|
||||||
void pskSetLocal ();
|
void pskSetLocal ();
|
||||||
void displayDialFrequency ();
|
void displayDialFrequency ();
|
||||||
|
void transmitDisplay (bool);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void getfile(QString fname, int ntrperiod);
|
extern void getfile(QString fname, int ntrperiod);
|
||||||
|
26
plotter.cpp
26
plotter.cpp
@ -399,18 +399,9 @@ int CPlotter::binsPerPixel() // get nbpp
|
|||||||
return m_binsPerPixel;
|
return m_binsPerPixel;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPlotter::setRxFreq(int x, bool bf) //setRxFreq()
|
void CPlotter::setRxFreq (int x)
|
||||||
{
|
{
|
||||||
if(bf) {
|
m_rxFreq = x; // x is freq in Hz
|
||||||
m_rxFreq=x; // x is freq in Hz
|
|
||||||
m_xClick=XfromFreq(m_rxFreq);
|
|
||||||
} else {
|
|
||||||
if(x<0) x=0; // x is pixel number
|
|
||||||
if(x>m_Size.width()) x=m_Size.width();
|
|
||||||
m_rxFreq=int(FreqfromX(x)+0.5);
|
|
||||||
m_xClick=x;
|
|
||||||
}
|
|
||||||
emit setFreq1(m_rxFreq,m_txFreq);
|
|
||||||
DrawOverlay();
|
DrawOverlay();
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
@ -420,18 +411,22 @@ int CPlotter::rxFreq() {return m_rxFreq;} //get rxFreq
|
|||||||
void CPlotter::mousePressEvent(QMouseEvent *event) //mousePressEvent
|
void CPlotter::mousePressEvent(QMouseEvent *event) //mousePressEvent
|
||||||
{
|
{
|
||||||
int x=event->x();
|
int x=event->x();
|
||||||
setRxFreq(x,false); // Wideband waterfall
|
if(x<0) x=0;
|
||||||
|
if(x>m_Size.width()) x=m_Size.width();
|
||||||
bool ctrl = (event->modifiers() & Qt::ControlModifier);
|
bool ctrl = (event->modifiers() & Qt::ControlModifier);
|
||||||
|
int freq = int(FreqfromX(x)+0.5);
|
||||||
|
int tx_freq = m_txFreq;
|
||||||
|
if (ctrl or m_lockTxFreq) tx_freq = freq;
|
||||||
|
|
||||||
|
emit setFreq1 (freq, tx_freq);
|
||||||
|
|
||||||
int n=1;
|
int n=1;
|
||||||
if(ctrl) n+=100;
|
if(ctrl) n+=100;
|
||||||
emit freezeDecode1(n);
|
emit freezeDecode1(n);
|
||||||
if(ctrl or m_lockTxFreq) setTxFreq(m_rxFreq);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPlotter::mouseDoubleClickEvent(QMouseEvent *event) //mouse2click
|
void CPlotter::mouseDoubleClickEvent(QMouseEvent *event) //mouse2click
|
||||||
{
|
{
|
||||||
// int x=event->x();
|
|
||||||
// setRxFreq(x,false);
|
|
||||||
bool ctrl = (event->modifiers() & Qt::ControlModifier);
|
bool ctrl = (event->modifiers() & Qt::ControlModifier);
|
||||||
int n=2;
|
int n=2;
|
||||||
if(ctrl) n+=100;
|
if(ctrl) n+=100;
|
||||||
@ -464,7 +459,6 @@ void CPlotter::setNsps(int ntrperiod, int nsps)
|
|||||||
void CPlotter::setTxFreq(int n) //setTol()
|
void CPlotter::setTxFreq(int n) //setTol()
|
||||||
{
|
{
|
||||||
m_txFreq=n;
|
m_txFreq=n;
|
||||||
emit setFreq1(m_rxFreq,m_txFreq);
|
|
||||||
DrawOverlay();
|
DrawOverlay();
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@ public:
|
|||||||
void setRxRange(int fMin);
|
void setRxRange(int fMin);
|
||||||
void setBinsPerPixel(int n);
|
void setBinsPerPixel(int n);
|
||||||
int binsPerPixel();
|
int binsPerPixel();
|
||||||
void setRxFreq(int n, bool bf);
|
void setRxFreq(int n);
|
||||||
void DrawOverlay();
|
void DrawOverlay();
|
||||||
int rxFreq();
|
int rxFreq();
|
||||||
void setFsample(int n);
|
void setFsample(int n);
|
||||||
|
@ -214,9 +214,8 @@ void WideGraph::keyPressEvent(QKeyEvent *e)
|
|||||||
|
|
||||||
void WideGraph::setRxFreq(int n)
|
void WideGraph::setRxFreq(int n)
|
||||||
{
|
{
|
||||||
m_rxFreq=n;
|
ui->widePlot->setRxFreq(n);
|
||||||
ui->widePlot->setRxFreq(m_rxFreq,true);
|
if(m_lockTxFreq) setTxFreq(n);
|
||||||
if(m_lockTxFreq) setTxFreq(m_rxFreq);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int WideGraph::rxFreq()
|
int WideGraph::rxFreq()
|
||||||
@ -322,14 +321,11 @@ void WideGraph::setLockTxFreq(bool b)
|
|||||||
|
|
||||||
void WideGraph::setFreq2(int rxFreq, int txFreq)
|
void WideGraph::setFreq2(int rxFreq, int txFreq)
|
||||||
{
|
{
|
||||||
m_rxFreq=rxFreq;
|
|
||||||
m_txFreq=txFreq;
|
|
||||||
emit setFreq3(rxFreq,txFreq);
|
emit setFreq3(rxFreq,txFreq);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WideGraph::setDialFreq(double d)
|
void WideGraph::setDialFreq(double d)
|
||||||
{
|
{
|
||||||
m_dialFreq=d;
|
|
||||||
ui->widePlot->setDialFreq(d);
|
ui->widePlot->setDialFreq(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,11 +77,6 @@ private:
|
|||||||
QDir m_palettes_path;
|
QDir m_palettes_path;
|
||||||
WFPalette m_userPalette;
|
WFPalette m_userPalette;
|
||||||
|
|
||||||
qint32 m_rxFreq;
|
|
||||||
qint32 m_txFreq;
|
|
||||||
|
|
||||||
double m_dialFreq;
|
|
||||||
|
|
||||||
qint32 m_waterfallAvg;
|
qint32 m_waterfallAvg;
|
||||||
qint32 m_fSample;
|
qint32 m_fSample;
|
||||||
qint32 m_TRperiod;
|
qint32 m_TRperiod;
|
||||||
|
Loading…
Reference in New Issue
Block a user