From e55689b25b2022839b28415d52cdcda5fd975c04 Mon Sep 17 00:00:00 2001 From: Jordan Sherer Date: Mon, 23 Mar 2020 09:52:46 -0400 Subject: [PATCH] Refactored function for enabling HB. Set FAST as the default mode. Added FAST support to HB --- mainwindow.cpp | 28 ++++++++++++++++++++++------ mainwindow.h | 1 + 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 03373fa..b01dda5 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -2383,8 +2383,8 @@ void MainWindow::readSettings() // set the frequency offset setFreqOffsetForRestore(m_settings->value("RxFreq",1500).toInt(), false); - setSubmode(m_settings->value("SubMode", Varicode::JS8CallNormal).toInt()); - ui->actionModeJS8HB->setChecked((m_nSubMode == Varicode::JS8CallNormal || m_nSubMode == Varicode::JS8CallSlow) && m_settings->value("SubModeHB", false).toBool()); + setSubmode(m_settings->value("SubMode", Varicode::JS8CallFast).toInt()); + ui->actionModeJS8HB->setChecked(canEnableHeartbeat() && m_settings->value("SubModeHB", false).toBool()); ui->actionHeartbeatAcknowledgements->setChecked(m_settings->value("SubModeHBAck", false).toBool()); ui->actionModeMultiDecoder->setChecked(m_settings->value("SubModeMultiDecode", true).toBool()); @@ -7498,15 +7498,31 @@ void MainWindow::on_actionModeAutoreply_toggled(bool checked){ on_actionJS8_triggered(); } +bool MainWindow::canEnableHeartbeat(){ + if(m_nSubMode == Varicode::JS8CallFast){ + return true; + } + + if(m_nSubMode == Varicode::JS8CallNormal){ + return true; + } + + if(m_nSubMode == Varicode::JS8CallSlow){ + return true; + } + + return false; +} + void MainWindow::prepareHeartbeatMode(bool enabled){ - // heartbeat is only available in HB mode + // heartbeat is only available in a supported HB mode ui->hbMacroButton->setVisible(enabled); if(!enabled){ ui->hbMacroButton->setChecked(false); } ui->actionHeartbeat->setEnabled(enabled); - ui->actionModeJS8HB->setEnabled(m_nSubMode == Varicode::JS8CallNormal || m_nSubMode == Varicode::JS8CallSlow); - ui->actionHeartbeatAcknowledgements->setEnabled(ui->actionModeAutoreply->isChecked() && enabled); + ui->actionModeJS8HB->setEnabled(enabled && canEnableHeartbeat()); + ui->actionHeartbeatAcknowledgements->setEnabled(enabled && ui->actionModeAutoreply->isChecked()); #if 0 //ui->actionCQ->setEnabled(!enabled); @@ -7556,7 +7572,7 @@ void MainWindow::on_actionJS8_triggered() } // Only enable heartbeat for normal mode - ui->actionModeJS8HB->setEnabled(m_nSubMode == Varicode::JS8CallNormal || m_nSubMode == Varicode::JS8CallSlow); + ui->actionModeJS8HB->setEnabled(canEnableHeartbeat()); prepareHeartbeatMode(ui->actionModeJS8HB->isEnabled() && ui->actionModeJS8HB->isChecked()); //if(m_nSubMode != Varicode::JS8CallNormal){ diff --git a/mainwindow.h b/mainwindow.h index aca65e3..b18f0e4 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -282,6 +282,7 @@ private slots: void on_actionHeartbeatAcknowledgements_toggled(bool checked); void on_actionModeMultiDecoder_toggled(bool checked); void on_actionModeAutoreply_toggled(bool checked); + bool canEnableHeartbeat(); void prepareHeartbeatMode(bool enabled); void on_actionJS8_triggered(); void on_TxFreqSpinBox_valueChanged(int arg1);