From d8ef00291b3becd1af7aea8ecbfb2f683512c195 Mon Sep 17 00:00:00 2001 From: Elliott Liggett Date: Sun, 11 Feb 2024 21:13:20 -0800 Subject: [PATCH] Got repeater setup working but still more to go with tonesql. --- logcategories.cpp | 1 + logcategories.h | 1 + repeatersetup.cpp | 33 +++++++++++++++++++++++++++++++++ repeatersetup.h | 2 ++ wfmain.cpp | 7 ++++++- 5 files changed, 43 insertions(+), 1 deletion(-) diff --git a/logcategories.cpp b/logcategories.cpp index 7d8fd39..ebea099 100644 --- a/logcategories.cpp +++ b/logcategories.cpp @@ -17,3 +17,4 @@ Q_LOGGING_CATEGORY(logUsbControl, "usbcontrol") Q_LOGGING_CATEGORY(logAudioConverter, "audioconverter") Q_LOGGING_CATEGORY(logCluster, "cluster") Q_LOGGING_CATEGORY(logTCIServer, "tci.server") +Q_LOGGING_CATEGORY(logRptr, "repeater") diff --git a/logcategories.h b/logcategories.h index 56ec94d..865a9db 100644 --- a/logcategories.h +++ b/logcategories.h @@ -20,6 +20,7 @@ Q_DECLARE_LOGGING_CATEGORY(logUsbControl) Q_DECLARE_LOGGING_CATEGORY(logAudioConverter) Q_DECLARE_LOGGING_CATEGORY(logCluster) Q_DECLARE_LOGGING_CATEGORY(logTCIServer) +Q_DECLARE_LOGGING_CATEGORY(logRptr) #if defined(Q_OS_WIN) && !defined(__PRETTY_FUNCTION__) diff --git a/repeatersetup.cpp b/repeatersetup.cpp index b95eeb9..89f105a 100644 --- a/repeatersetup.cpp +++ b/repeatersetup.cpp @@ -378,6 +378,10 @@ void repeaterSetup::handleDTCS(quint16 dcode, bool tinv, bool rinv) void repeaterSetup::handleUpdateCurrentMainFrequency(freqt mainfreq) { + if(mainfreq.VFO == inactiveVFO) + return; + + haveReceivedFrequency = true; if(amTransmitting) return; @@ -684,6 +688,10 @@ void repeaterSetup::on_splitPlusButton_clicked() quint64 txfreqhz; freqt f; QString txString; + if(!haveReceivedFrequency) { + qWarning(logRptr()) << "Cannot compute offset without first receiving a frequency."; + return; + } if(hzOffset) { txfreqhz = currentMainFrequency.Hz + hzOffset; @@ -693,8 +701,16 @@ void repeaterSetup::on_splitPlusButton_clicked() txString = QString::number(f.Hz / double(1E6), 'f', 6); ui->splitTransmitFreqEdit->setText(txString); usedPlusSplit = true; + + } else { + qWarning(logRptr()) << "Cannot set split using supplied offset value."; + return; + } + if(ui->splitEnableChk->isChecked() || ui->quickSplitChk->isChecked()) { emit setTransmitFrequency(f); emit setTransmitMode(modeTransmitVFO); + } else { + qWarning(logRptr()) << "Not setting transmit frequency until split mode is enabled."; } } @@ -704,6 +720,10 @@ void repeaterSetup::on_splitMinusBtn_clicked() quint64 txfreqhz; freqt f; QString txString; + if(!haveReceivedFrequency) { + qWarning(logRptr()) << "Cannot compute offset without first receiving a frequency."; + return; + } if(hzOffset) { txfreqhz = currentMainFrequency.Hz - hzOffset; @@ -713,13 +733,26 @@ void repeaterSetup::on_splitMinusBtn_clicked() txString = QString::number(f.Hz / double(1E6), 'f', 6); ui->splitTransmitFreqEdit->setText(txString); usedPlusSplit = false; + } else { + qWarning(logRptr()) << "Cannot set split using supplied offset value."; + return; + } + + if(ui->splitEnableChk->isChecked() || ui->quickSplitChk->isChecked()) { emit setTransmitFrequency(f); emit setTransmitMode(modeTransmitVFO); + } else { + qWarning(logRptr()) << "Not setting transmit frequency until split mode is enabled."; + return; } } void repeaterSetup::on_splitTxFreqSetBtn_clicked() { + if(!haveReceivedFrequency) { + qWarning(logRptr()) << "Cannot compute offset without first receiving a frequency."; + return; + } quint64 fHz = getFreqHzFromMHzString(ui->splitTransmitFreqEdit->text()); freqt f; if(fHz) diff --git a/repeatersetup.h b/repeatersetup.h index a3ca07e..a9a3590 100644 --- a/repeatersetup.h +++ b/repeatersetup.h @@ -6,6 +6,7 @@ #include "repeaterattributes.h" #include "rigidentities.h" +#include "logcategories.h" namespace Ui { class repeaterSetup; @@ -103,6 +104,7 @@ private: rigCapabilities rig; bool haveRig = false; + bool haveReceivedFrequency = false; duplexMode_t currentdm; modeInfo currentModeMain; modeInfo modeTransmitVFO; diff --git a/wfmain.cpp b/wfmain.cpp index 21dd9a7..fbe47ba 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -516,7 +516,11 @@ void wfmain::makeRig() }); connect(this->rpt, &repeaterSetup::setTransmitFrequency, this->rig, - [=](const freqt &transmitFreq) { queue->add(priorityImmediate,queueItem(funcFreqSet,QVariant::fromValue(transmitFreq),false));}); + [=](const freqt &transmitFreq) { + // TODO: Find a way to set the transmit frequency on any connected radio + queue->add(priorityImmediate,queueItem(funcUnselectedFreq,QVariant::fromValue(transmitFreq),false));}); + + // queue->add(priorityImmediate,queueItem(funcFreqSet,QVariant::fromValue(transmitFreq),false));}); connect(this->rpt, &repeaterSetup::setTransmitMode, this->rig, [=](const modeInfo &transmitMode) { queue->add(priorityImmediate,queueItem(funcModeSet,QVariant::fromValue(transmitMode),false));}); @@ -5453,6 +5457,7 @@ void wfmain::receiveValue(cacheItem val){ case funcSelectedFreq: { vfos[val.vfo]->setFrequency(val.value.value()); + rpt->handleUpdateCurrentMainFrequency(val.value.value()); } case funcReadTXFreq: break;