From 782e39eb33931b0a78a1a43e7d5353d1a3c7df1b Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Wed, 10 Nov 2021 17:39:08 -0600 Subject: [PATCH] More fixes to k4_set_ptt https://github.com/Hamlib/Hamlib/issues/864 --- rigs/kenwood/k3.c | 3 ++- src/misc.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/rigs/kenwood/k3.c b/rigs/kenwood/k3.c index 8a52cf5bd..1e19b6641 100644 --- a/rigs/kenwood/k3.c +++ b/rigs/kenwood/k3.c @@ -2694,7 +2694,7 @@ int k4_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) char pttbuf[6]; int retval; ptt_t ptt2; - char *cmd = "TX0"; + char cmd[4]; rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); @@ -2703,6 +2703,7 @@ int k4_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) return -RIG_EINVAL; } + snprintf(cmd, sizeof(cmd), "TX0"); if (ptt) cmd[2] = '1'; retval = kenwood_transaction(rig, cmd, NULL, 0); diff --git a/src/misc.c b/src/misc.c index 972e6f4e8..006701e80 100644 --- a/src/misc.c +++ b/src/misc.c @@ -1756,6 +1756,24 @@ vfo_t HAMLIB_API vfo_fixup(RIG *rig, vfo_t vfo, split_t split) rig_debug(RIG_DEBUG_TRACE, "%s: Leaving currVFO alone\n", __func__); return vfo; // don't modify vfo for RIG_VFO_CURR } + if (vfo == RIG_VFO_OTHER) + { + switch(rig->state.current_vfo) + { + case RIG_VFO_A: + return RIG_VFO_B; + case RIG_VFO_MAIN: + return RIG_VFO_SUB; + case RIG_VFO_B: + return RIG_VFO_A; + case RIG_VFO_SUB: + return RIG_VFO_MAIN; + case RIG_VFO_SUB_A: + return RIG_VFO_SUB_B; + case RIG_VFO_SUB_B: + return RIG_VFO_SUB_A; + } + } if (vfo == RIG_VFO_RX || vfo == RIG_VFO_A || vfo == RIG_VFO_MAIN) {