From 1e3e1a9499f6cdc6738e311fdf07fb14e52ebbed Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Sun, 5 Nov 2023 16:53:53 -0600 Subject: [PATCH] Only do swr and power for PowerSDR then ptt is active --- rigs/kenwood/flex6xxx.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/rigs/kenwood/flex6xxx.c b/rigs/kenwood/flex6xxx.c index 1d03cd1fa..98699b212 100644 --- a/rigs/kenwood/flex6xxx.c +++ b/rigs/kenwood/flex6xxx.c @@ -841,7 +841,9 @@ int powersdr_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) { // if not PTT we'll return the last SWR value // seems desirable to able to see this always - if (!rig->state.cache.ptt) { val->f = rig->state.cache.swr; return RIG_OK; } + ptt_t ptt; + rig_get_ptt(rig, RIG_VFO_TX, &ptt); + if (!ptt) { val->f = rig->state.cache.swr; return RIG_OK; } double forward=0, reverse=0; cmd = "ZZRM5"; // get forward power len = 5; @@ -942,14 +944,20 @@ int powersdr_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) case RIG_LEVEL_RFPOWER_METER: case RIG_LEVEL_RFPOWER_METER_WATTS: - n = sscanf(lvlbuf, "ZZRM5%f", &val->f); - - if (n != 1) { - rig_debug(RIG_DEBUG_ERR, "%s: Error parsing value from lvlbuf='%s'\n", + // if not ptt then no power is going out so return 0W + ptt_t ptt; + rig_get_ptt(rig, RIG_VFO_TX, &ptt); + if (!ptt) { val->f = 0; return RIG_OK; } + n = sscanf(lvlbuf, "ZZRM5%f", &val->f); + + if (n != 1) + { + rig_debug(RIG_DEBUG_ERR, "%s: Error parsing value from lvlbuf='%s'\n", __func__, lvlbuf); - val->f = 0; - return -RIG_EPROTO; + val->f = 0; + return -RIG_EPROTO; + } } if (level != RIG_LEVEL_RFPOWER_METER_WATTS)