From c1ed899c192ffdbf1d76b0e9c4892e6a4057c5cb Mon Sep 17 00:00:00 2001 From: nbanshchikov Date: Sat, 5 Feb 2022 16:58:07 +0300 Subject: [PATCH 1/2] Kenwood TS-590. Work get_level for ATT/Preamp state https://github.com/Hamlib/Hamlib/issues/953 --- rigs/kenwood/ts590.c | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/rigs/kenwood/ts590.c b/rigs/kenwood/ts590.c index 89ab090cf..34e2138d9 100644 --- a/rigs/kenwood/ts590.c +++ b/rigs/kenwood/ts590.c @@ -469,6 +469,7 @@ int ts590_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) int retval; char lvlbuf[50]; + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); switch (level) @@ -568,6 +569,56 @@ int ts590_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) sscanf(lvlbuf + 3, "%d", &val->i); return retval; + case RIG_LEVEL_PREAMP: + retval = kenwood_transaction(rig, "PA", lvlbuf, sizeof(lvlbuf)); + + if (retval != RIG_OK) + { + RETURNFUNC(retval); + } + + if (lvlbuf[2] == '0') + { + val->i = 0; + } + else if (lvlbuf[2] == '1') + { + val->i = rig->state.preamp[0]; + } + else + { + rig_debug(RIG_DEBUG_ERR, "%s: " + "unexpected preamp char '%c'\n", + __func__, lvlbuf[2]); + RETURNFUNC(-RIG_EPROTO); + } + return retval; + + case RIG_LEVEL_ATT: + retval = kenwood_transaction(rig, "RA", lvlbuf, sizeof(lvlbuf)); + + if (retval != RIG_OK) + { + RETURNFUNC(retval); + } + + if (lvlbuf[3] == '0') + { + val->i = 0; + } + else if (lvlbuf[3] == '1') + { + val->i = rig->state.attenuator[0]; + } + else + { + rig_debug(RIG_DEBUG_ERR, "%s: " + "unexpected preamp char '%c'\n", + __func__, lvlbuf[2]); + RETURNFUNC(-RIG_EPROTO); + } + return retval; + case RIG_LEVEL_RAWSTR: case RIG_LEVEL_STRENGTH: retval = kenwood_transaction(rig, "SM0", lvlbuf, sizeof(lvlbuf)); From 92bd1d4e8315a5ce8916085a7c7d3af7a1e8379b Mon Sep 17 00:00:00 2001 From: nbanshchikov Date: Sat, 5 Feb 2022 17:13:35 +0300 Subject: [PATCH 2/2] correct debug log message --- rigs/kenwood/ts590.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rigs/kenwood/ts590.c b/rigs/kenwood/ts590.c index 34e2138d9..c90c43f8b 100644 --- a/rigs/kenwood/ts590.c +++ b/rigs/kenwood/ts590.c @@ -613,7 +613,7 @@ int ts590_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) else { rig_debug(RIG_DEBUG_ERR, "%s: " - "unexpected preamp char '%c'\n", + "unexpected att char '%c'\n", __func__, lvlbuf[2]); RETURNFUNC(-RIG_EPROTO); }