From dc698b7d6496facca7993ed11eb33357bfe67f75 Mon Sep 17 00:00:00 2001 From: SteamedFish <69167+SteamedFish@users.noreply.github.com> Date: Thu, 17 Apr 2025 00:22:28 +0800 Subject: [PATCH 1/2] Allow toggle bias-t in SoapySDDC --- SoapySDDC/Settings.cpp | 52 ++++++++++++++++++++++++++++++++++++++--- SoapySDDC/SoapySDDC.hpp | 6 ++++- 2 files changed, 54 insertions(+), 4 deletions(-) diff --git a/SoapySDDC/Settings.cpp b/SoapySDDC/Settings.cpp index 7fe8ae67..71a73d8d 100644 --- a/SoapySDDC/Settings.cpp +++ b/SoapySDDC/Settings.cpp @@ -132,12 +132,10 @@ void SoapySDDC::setAntenna(const int direction, const size_t, const std::string if (name == "HF") { RadioHandler.UpdatemodeRF(HFMODE); - RadioHandler.UpdBiasT_HF(true); } else if (name == "VHF") { RadioHandler.UpdatemodeRF(VHFMODE); - RadioHandler.UpdBiasT_VHF(true); } else { @@ -368,6 +366,54 @@ std::vector SoapySDDC::listSampleRates(const int, const size_t) const return results; } +SoapySDR::ArgInfoList SoapySDDC::getSettingInfo(void) const +{ + SoapySDR::ArgInfoList setArgs; + + SoapySDR::ArgInfo BiasTHFArg; + BiasTHFArg.key = "UpdBiasT_HF"; + BiasTHFArg.value = "false"; + BiasTHFArg.name = "HF Bias Tee enable"; + BiasTHFArg.description = "Enabe Bias Tee on HF antenna port"; + BiasTHFArg.type = SoapySDR::ArgInfo::BOOL; + setArgs.push_back(BiasTHFArg); + + SoapySDR::ArgInfo BiasTVHFArg; + BiasTVHFArg.key = "UpdBiasT_VHF"; + BiasTVHFArg.value = "false"; + BiasTVHFArg.name = "VHF Bias Tee enable"; + BiasTVHFArg.description = "Enabe Bias Tee on VHF antenna port"; + BiasTVHFArg.type = SoapySDR::ArgInfo::BOOL; + setArgs.push_back(BiasTVHFArg); + + return setArgs; +} + +void SoapySDDC::writeSetting(const std::string &key, const std::string &value) +{ + if (key == "UpdBiasT_HF") + { + bool biast; + if (value == "false") { + biast = false; + } else { + biast = true; + } + RadioHandler.UpdBiasT_HF(biast); + } + else if (key == "UpdBiasT_VHF") + { + bool biast; + if (value == "false") { + biast = false; + } else { + biast = true; + } + RadioHandler.UpdBiasT_VHF(biast); + } +} + + // void SoapySDDC::setMasterClockRate(const double rate) // { // DbgPrintf("SoapySDDC::setMasterClockRate %f\n", rate); @@ -410,4 +456,4 @@ std::vector SoapySDDC::listSampleRates(const int, const size_t) const // { // DbgPrintf("SoapySDDC::setHardwareTime\n"); // ticks = SoapySDR::timeNsToTicks(timeNs, sampleRate); -// } \ No newline at end of file +// } diff --git a/SoapySDDC/SoapySDDC.hpp b/SoapySDDC/SoapySDDC.hpp index a67fff6c..e813421d 100644 --- a/SoapySDDC/SoapySDDC.hpp +++ b/SoapySDDC/SoapySDDC.hpp @@ -107,6 +107,10 @@ class SoapySDDC : public SoapySDR::Device std::vector listSampleRates(const int direction, const size_t channel) const; + SoapySDR::ArgInfoList getSettingInfo(void) const; + + void writeSetting(const std::string &key, const std::string &value); + // void setMasterClockRate(const double rate); // double getMasterClockRate(void) const; @@ -152,4 +156,4 @@ class SoapySDDC : public SoapySDR::Device int samplerateidx; double masterClockRate; -}; \ No newline at end of file +}; From ccf56686087bfa87393054246663c4d47a5b374c Mon Sep 17 00:00:00 2001 From: SteamedFish <69167+SteamedFish@users.noreply.github.com> Date: Sat, 26 Apr 2025 18:49:44 +0800 Subject: [PATCH 2/2] check boolen value safer --- SoapySDDC/Settings.cpp | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/SoapySDDC/Settings.cpp b/SoapySDDC/Settings.cpp index 71a73d8d..e34c52b1 100644 --- a/SoapySDDC/Settings.cpp +++ b/SoapySDDC/Settings.cpp @@ -391,25 +391,16 @@ SoapySDR::ArgInfoList SoapySDDC::getSettingInfo(void) const void SoapySDDC::writeSetting(const std::string &key, const std::string &value) { + bool biasTee; if (key == "UpdBiasT_HF") { - bool biast; - if (value == "false") { - biast = false; - } else { - biast = true; - } - RadioHandler.UpdBiasT_HF(biast); + biasTee = (value == "true") ? true: false; + RadioHandler.UpdBiasT_HF(biasTee); } else if (key == "UpdBiasT_VHF") { - bool biast; - if (value == "false") { - biast = false; - } else { - biast = true; - } - RadioHandler.UpdBiasT_VHF(biast); + biasTee = (value == "true") ? true: false; + RadioHandler.UpdBiasT_VHF(biasTee); } }