From 4113e8a7ed07f6f07ad901194d4e94402325e4b6 Mon Sep 17 00:00:00 2001 From: Mooneer Salem Date: Tue, 3 Jun 2025 19:26:45 -0700 Subject: [PATCH] Improve Hamlib behavior during TX. (#893) * Reenable timeouts once connected to the radio. * 100ms might be a bit better. * Request current frequency/mode every second (instead of every 5 seconds). * Remove pre-PTT interrogation of frequency/mode. * Increase Hamlib timeout to 500ms per user testing. * Add PR #893 to changelog. * Update comment. --- CMakeLists.txt | 6 +++--- USER_MANUAL.md | 5 +++++ src/main.cpp | 2 +- src/rig_control/HamlibRigController.cpp | 5 +++++ 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6028ad70..d3248cfb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,7 @@ endif() set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version") set(PROJECT_NAME FreeDV) -set(PROJECT_VERSION 2.0.0) +set(PROJECT_VERSION 2.0.1) set(PROJECT_DESCRIPTION "HF Digital Voice for Radio Amateurs") set(PROJECT_HOMEPAGE_URL "https://freedv.org") @@ -49,12 +49,12 @@ endif(APPLE) # Adds a tag to the end of the version string. Leave empty # for official release builds. if(NOT DEFINED FREEDV_VERSION_TAG) -set(FREEDV_VERSION_TAG "") +set(FREEDV_VERSION_TAG "dev") # Uncomment the below definition to cause the build to expire # six months from the day it was built. This should be commented # for official releases. -#add_definitions(-DUNOFFICIAL_RELEASE) +add_definitions(-DUNOFFICIAL_RELEASE) endif(NOT DEFINED FREEDV_VERSION_TAG) # Prevent in-source builds to protect automake/autoconf config. diff --git a/USER_MANUAL.md b/USER_MANUAL.md index 24dd7c45..32b809da 100644 --- a/USER_MANUAL.md +++ b/USER_MANUAL.md @@ -790,6 +790,11 @@ LDPC | Low Density Parity Check Codes - a family of powerful FEC codes # Release Notes +## V2.0.1 TBD 2025 + +1. Bugfixes: + * Reduce latency when going between TX->RX with Hamlib configured. (PR #893) + ## V2.0.0 June 2025 This version contains the first official release of the RADE V1 mode previously trialled over several diff --git a/src/main.cpp b/src/main.cpp index a9492877..ca727e2a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2260,7 +2260,7 @@ void MainFrame::performFreeDVOn_() { #ifdef _USE_TIMER m_plotTimer.Start(_REFRESH_TIMER_PERIOD, wxTIMER_CONTINUOUS); - m_updFreqStatusTimer.Start(5*1000); // every 5 seconds[UP] + m_updFreqStatusTimer.Start(1000); // every 1 second[UP] #endif // _USE_TIMER }); } diff --git a/src/rig_control/HamlibRigController.cpp b/src/rig_control/HamlibRigController.cpp index 28951db1..d18f1540 100644 --- a/src/rig_control/HamlibRigController.cpp +++ b/src/rig_control/HamlibRigController.cpp @@ -371,6 +371,11 @@ void HamlibRigController::connectImpl_() log_debug("hamlib: rig_open() OK"); onRigConnected(this); + // Set timeouts so that we don't wait an extremely long time to begin TX. + rig_set_conf(rig_, rig_token_lookup(rig_, "timeout"), "500"); + rig_set_conf(rig_, rig_token_lookup(rig_, "retry"), "0"); + rig_set_conf(rig_, rig_token_lookup(rig_, "timeout_retry"), "0"); + // Determine whether we have multiple VFOs. multipleVfos_ = false; vfo_t vfo;