From a3f930b061d9e48f0c7b3c476ec8d56696ed55ff Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Thu, 11 Jul 2024 13:19:52 -0500 Subject: [PATCH] Improve K4 firmware detection --- rigs/kenwood/elecraft.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/rigs/kenwood/elecraft.c b/rigs/kenwood/elecraft.c index bab66c888..f1472f9a5 100644 --- a/rigs/kenwood/elecraft.c +++ b/rigs/kenwood/elecraft.c @@ -516,9 +516,23 @@ int elecraft_get_firmware_revision_level(RIG *rig, const char *cmd, int err; char *bufptr; char buf[KENWOOD_MAX_BUF_LEN]; - char rvp = cmd[3]; + char rvp = cmd[2]; char *rv = "UNK"; + if (rig->caps->rig_model == RIG_MODEL_K4) + { + switch (rvp) + { + case 'F': + case 'M': rv = "FPF"; break; + + case 'A': + case 'D': rv = "DSP"; break; + + case 'R': rv = "DAP"; break; + } + } + else { switch (rvp) { case 'M': rv = "MCU"; break; @@ -530,8 +544,7 @@ int elecraft_get_firmware_revision_level(RIG *rig, const char *cmd, case 'R': rv = "DVR"; break; case 'F': rv = "FPF"; break; - - default: rv = "???"; break; + } } rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); @@ -626,7 +639,7 @@ int elecraft_get_vfo_tq(RIG *rig, vfo_t *vfo) RETURNFUNC2(retval); } - if (sscanf(splitbuf, "TQ%1d", &tq) != 1 && sscanf(splitbuf,"TQX%1d", &tq) != 1) + if (sscanf(splitbuf, "TQ%1d", &tq) != 1) { rig_debug(RIG_DEBUG_ERR, "%s: unable to parse TQ or TQX reponse of '%s'\n", __func__, splitbuf); }