From 8089eff3205a66f9a3947b869735fc0ee6c3bb1c Mon Sep 17 00:00:00 2001 From: Michael Black Date: Wed, 1 Apr 2020 16:48:04 -0500 Subject: [PATCH] Change kenwood set_rit to determine # of loops based on current rit --- rigs/kenwood/kenwood.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index 88da199b3..3f804d8bf 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -1544,8 +1544,16 @@ int kenwood_set_rit(RIG *rig, vfo_t vfo, shortfreq_t rit) { char buf[4]; int retval, i; + shortfreq_t curr_rit; + int diff; - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + rig_debug(RIG_DEBUG_VERBOSE, "%s called: vfo=%s, rit=%ld\n", __func__, rig_strvfo(vfo), rit); + + retval = kenwood_get_rit(rig, vfo, &curr_rit); + if (retval != RIG_OK) + { + return retval; + } if (rit == 0) { @@ -1554,14 +1562,10 @@ int kenwood_set_rit(RIG *rig, vfo_t vfo, shortfreq_t rit) snprintf(buf, sizeof(buf), "R%c", (rit > 0) ? 'U' : 'D'); - retval = kenwood_transaction(rig, "RC", NULL, 0); + diff = (rit - curr_rit)/10; + rig_debug(RIG_DEBUG_TRACE, "%s: rit change=%d\n", __func__, diff); - if (retval != RIG_OK) - { - return retval; - } - - for (i = 0; i < labs(lrint(rit / 10)); i++) + for (i = 0; i < diff; i++) { retval = kenwood_transaction(rig, buf, NULL, 0); }