Repair a long standing defect with per band Tune & Tx power levels

This commit is contained in:
Bill Somerville 2021-04-22 23:05:07 +01:00
parent 54cba15e47
commit f3cb1d76c0
No known key found for this signature in database
GPG Key ID: D864B06D1E81618F
3 changed files with 26 additions and 21 deletions

View File

@ -66,7 +66,7 @@ private:
double m_dphi; double m_dphi;
double m_amp; double m_amp;
double m_nsps; double m_nsps;
double volatile m_frequency; double m_frequency;
double m_frequency0; double m_frequency0;
double m_snr; double m_snr;
double m_fac; double m_fac;
@ -80,9 +80,9 @@ private:
qint16 m_ramp; qint16 m_ramp;
unsigned m_frameRate; unsigned m_frameRate;
ModulatorState volatile m_state; ModulatorState m_state;
bool volatile m_tuning; bool m_tuning;
bool m_addNoise; bool m_addNoise;
bool m_bFastMode; bool m_bFastMode;

View File

@ -825,7 +825,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
connect(&logQSOTimer, &QTimer::timeout, this, &MainWindow::on_logQSOButton_clicked); connect(&logQSOTimer, &QTimer::timeout, this, &MainWindow::on_logQSOButton_clicked);
tuneButtonTimer.setSingleShot(true); tuneButtonTimer.setSingleShot(true);
connect(&tuneButtonTimer, &QTimer::timeout, this, &MainWindow::on_stopTxButton_clicked); connect(&tuneButtonTimer, &QTimer::timeout, this, &MainWindow::end_tuning);
tuneATU_Timer.setSingleShot(true); tuneATU_Timer.setSingleShot(true);
connect(&tuneATU_Timer, &QTimer::timeout, this, &MainWindow::stopTuneATU); connect(&tuneATU_Timer, &QTimer::timeout, this, &MainWindow::stopTuneATU);
@ -6935,8 +6935,8 @@ void MainWindow::on_bandComboBox_activated (int index)
void MainWindow::band_changed (Frequency f) void MainWindow::band_changed (Frequency f)
{ {
// Set the attenuation value if options are checked // Set the attenuation value if options are checked
QString curBand = ui->bandComboBox->currentText();
if (m_config.pwrBandTxMemory() && !m_tune) { if (m_config.pwrBandTxMemory() && !m_tune) {
auto const&curBand = ui->bandComboBox->currentText();
if (m_pwrBandTxMemory.contains(curBand)) { if (m_pwrBandTxMemory.contains(curBand)) {
ui->outAttenuation->setValue(m_pwrBandTxMemory[curBand].toInt()); ui->outAttenuation->setValue(m_pwrBandTxMemory[curBand].toInt());
} }
@ -7012,9 +7012,9 @@ void MainWindow::on_tuneButton_clicked (bool checked)
static bool lastChecked = false; static bool lastChecked = false;
if (lastChecked == checked) return; if (lastChecked == checked) return;
lastChecked = checked; lastChecked = checked;
QString curBand = ui->bandComboBox->currentText();
if (checked && m_tune==false) { // we're starting tuning so remember Tx and change pwr to Tune value if (checked && m_tune==false) { // we're starting tuning so remember Tx and change pwr to Tune value
if (m_config.pwrBandTuneMemory ()) { if (m_config.pwrBandTuneMemory ()) {
auto const& curBand = ui->bandComboBox->currentText();
m_pwrBandTxMemory[curBand] = ui->outAttenuation->value(); // remember our Tx pwr m_pwrBandTxMemory[curBand] = ui->outAttenuation->value(); // remember our Tx pwr
m_PwrBandSetOK = false; m_PwrBandSetOK = false;
if (m_pwrBandTuneMemory.contains(curBand)) { if (m_pwrBandTuneMemory.contains(curBand)) {
@ -7023,15 +7023,6 @@ void MainWindow::on_tuneButton_clicked (bool checked)
m_PwrBandSetOK = true; m_PwrBandSetOK = true;
} }
} }
else { // we're turning off so remember our Tune pwr setting and reset to Tx pwr
if (m_config.pwrBandTuneMemory() || m_config.pwrBandTxMemory()) {
stopTx();
m_pwrBandTuneMemory[curBand] = ui->outAttenuation->value(); // remember our Tune pwr
m_PwrBandSetOK = false;
ui->outAttenuation->setValue(m_pwrBandTxMemory[curBand].toInt()); // set to Tx pwr
m_PwrBandSetOK = true;
}
}
if (m_tune) { if (m_tune) {
tuneButtonTimer.start(250); tuneButtonTimer.start(250);
} else { } else {
@ -7043,6 +7034,19 @@ void MainWindow::on_tuneButton_clicked (bool checked)
Q_EMIT tune (checked); Q_EMIT tune (checked);
} }
void MainWindow::end_tuning ()
{
on_stopTxButton_clicked ();
// we're turning off so remember our Tune pwr setting and reset to Tx pwr
if (m_config.pwrBandTuneMemory() || m_config.pwrBandTxMemory()) {
auto const& curBand = ui->bandComboBox->currentText();
m_pwrBandTuneMemory[curBand] = ui->outAttenuation->value(); // remember our Tune pwr
m_PwrBandSetOK = false;
ui->outAttenuation->setValue(m_pwrBandTxMemory[curBand].toInt()); // set to Tx pwr
m_PwrBandSetOK = true;
}
}
void MainWindow::stop_tuning () void MainWindow::stop_tuning ()
{ {
on_tuneButton_clicked(false); on_tuneButton_clicked(false);

View File

@ -254,6 +254,7 @@ private slots:
void on_actionShort_list_of_add_on_prefixes_and_suffixes_triggered(); void on_actionShort_list_of_add_on_prefixes_and_suffixes_triggered();
void band_changed (Frequency); void band_changed (Frequency);
void monitor (bool); void monitor (bool);
void end_tuning ();
void stop_tuning (); void stop_tuning ();
void stopTuneATU(); void stopTuneATU();
void auto_tx_mode(bool); void auto_tx_mode(bool);