From 31f6b072fb4922907c81d5656de0a2b82dc78650 Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Wed, 16 Aug 2023 15:35:35 -0400 Subject: [PATCH] correct some problems reported for --cal not writing the modem tuning partition; correct some issues with Rx tuning not properly applying during calibration procedures; --- src/host/calibrate/HostCal.cpp | 6 ++++++ src/host/setup/HostSetup.cpp | 10 +++++++++- src/host/setup/HostSetup.h | 1 + src/host/setup/LevelAdjustWnd.h | 10 ++++++++-- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/host/calibrate/HostCal.cpp b/src/host/calibrate/HostCal.cpp index e239cf6e..011b0b6b 100644 --- a/src/host/calibrate/HostCal.cpp +++ b/src/host/calibrate/HostCal.cpp @@ -135,6 +135,8 @@ int HostCal::run(int argc, char **argv) return 1; } + m_isConnected = true; + // open terminal console ret = m_console.open(); if (!ret) { @@ -278,6 +280,8 @@ int HostCal::run(int argc, char **argv) m_rxAdjustedFreq = m_rxFrequency + m_modem->m_rxTuning; writeRFParams(); + Thread::sleep(2); + writeConfig(); } } break; @@ -298,6 +302,8 @@ int HostCal::run(int argc, char **argv) m_txAdjustedFreq = m_txFrequency + m_modem->m_txTuning; writeRFParams(); + Thread::sleep(2); + writeConfig(); } } break; diff --git a/src/host/setup/HostSetup.cpp b/src/host/setup/HostSetup.cpp index bc11450f..a478f335 100644 --- a/src/host/setup/HostSetup.cpp +++ b/src/host/setup/HostSetup.cpp @@ -127,6 +127,7 @@ HostSetup::HostSetup(const std::string& confFile) : m_fec(), m_transmit(false), m_duplex(true), + m_startupDuplex(true), m_dmrEnabled(false), m_dmrRx1K(false), m_p25Enabled(false), @@ -207,6 +208,7 @@ int HostSetup::run(int argc, char** argv) yaml::Node systemConf = m_conf["system"]; yaml::Node modemConfig = systemConf["modem"]; m_duplex = systemConf["duplex"].as(true); + m_startupDuplex = m_duplex; // try to load bandplan identity table std::string idenLookupFile = systemConf["iden_table"]["file"].as(); @@ -596,7 +598,7 @@ bool HostSetup::calculateRxTxFreq(bool consoleDisplay) m_channelNo = 4095U; } - if (m_duplex) { + if (m_startupDuplex) { if (entry.txOffsetMhz() == 0U) { if (consoleDisplay) { g_logDisplayLevel = 1U; @@ -619,6 +621,12 @@ bool HostSetup::calculateRxTxFreq(bool consoleDisplay) m_txFrequency = m_rxFrequency; } + if (m_isHotspot) { + // apply the frequency tuning offsets + m_rxAdjustedFreq = m_rxFrequency + m_modem->m_rxTuning; + m_txAdjustedFreq = m_txFrequency + m_modem->m_txTuning; + } + return true; } diff --git a/src/host/setup/HostSetup.h b/src/host/setup/HostSetup.h index d8f46342..79f2190f 100644 --- a/src/host/setup/HostSetup.h +++ b/src/host/setup/HostSetup.h @@ -130,6 +130,7 @@ protected: bool m_transmit; bool m_duplex; + bool m_startupDuplex; bool m_dmrEnabled; bool m_dmrRx1K; diff --git a/src/host/setup/LevelAdjustWnd.h b/src/host/setup/LevelAdjustWnd.h index b70559a0..d214d9ec 100644 --- a/src/host/setup/LevelAdjustWnd.h +++ b/src/host/setup/LevelAdjustWnd.h @@ -256,24 +256,30 @@ private: m_rxFreqAdjLabel.setGeometry(FPoint(32, 10), FSize(20, 1)); m_rxTuning.setGeometry(FPoint(52, 10), FSize(10, 1)); - m_rxTuning.setRange(-1000, 1000); + m_rxTuning.setRange(-100000, 100000); m_rxTuning.setValue(m_setup->m_modem->m_rxTuning); m_rxTuning.setShadow(false); m_rxTuning.addCallback("changed", [&]() { m_setup->m_modem->m_rxTuning = m_rxTuning.getValue(); Thread::sleep(2); + m_setup->calculateRxTxFreq(); m_setup->writeRFParams(); + Thread::sleep(2); + m_setup->writeConfig(); }); m_txFreqAdjLabel.setGeometry(FPoint(32, 12), FSize(20, 1)); m_txTuning.setGeometry(FPoint(52, 12), FSize(10, 1)); - m_txTuning.setRange(-1000, 1000); + m_txTuning.setRange(-100000, 100000); m_txTuning.setValue(m_setup->m_modem->m_txTuning); m_txTuning.setShadow(false); m_txTuning.addCallback("changed", [&]() { m_setup->m_modem->m_txTuning = m_txTuning.getValue(); Thread::sleep(2); + m_setup->calculateRxTxFreq(); m_setup->writeRFParams(); + Thread::sleep(2); + m_setup->writeConfig(); }); }