From c516db3b76c2ad2259f493ad5827e2cd4c946c36 Mon Sep 17 00:00:00 2001 From: Aurimas Niekis Date: Fri, 17 Apr 2026 12:54:20 +0300 Subject: [PATCH] fix(settings): return actual biastee status for RX and TX Replace the static `false` values for `biastee_rx` and `biastee_tx` with calls to `bladerf_get_bias_tee()` so readSetting() reflects the device's current configuration and reports errors from the driver. --- bladeRF_Settings.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/bladeRF_Settings.cpp b/bladeRF_Settings.cpp index 3ccd211..b868459 100644 --- a/bladeRF_Settings.cpp +++ b/bladeRF_Settings.cpp @@ -1231,9 +1231,25 @@ std::string bladeRF_SoapySDR::readSetting(const std::string &key) const } else if (key == "load_fpga") { return ""; } else if (key == "biastee_tx") { - return "false"; + bool enabled; + int ret = bladerf_get_bias_tee(_dev, BLADERF_CHANNEL_TX(0), &enabled); + if (ret != 0) + { + SoapySDR::logf(SOAPY_SDR_ERROR, "bladerf_get_bias_tee(BLADERF_CHANNEL_TX(0)) returned %s", + _err2str(ret).c_str()); + throw std::runtime_error("readSetting() " + _err2str(ret)); + } + return enabled ? "true" : "false"; } else if (key == "biastee_rx") { - return "false"; + bool enabled; + int ret = bladerf_get_bias_tee(_dev, BLADERF_CHANNEL_RX(0), &enabled); + if (ret != 0) + { + SoapySDR::logf(SOAPY_SDR_ERROR, "bladerf_get_bias_tee(BLADERF_CHANNEL_RX(0)) returned %s", + _err2str(ret).c_str()); + throw std::runtime_error("readSetting() " + _err2str(ret)); + } + return enabled ? "true" : "false"; } SoapySDR_logf(SOAPY_SDR_WARNING, "Unknown setting '%s'", key.c_str());