From 058cf38b87e1130eb7d6768fb25434047d0dcc36 Mon Sep 17 00:00:00 2001 From: Michael Black W9MDB Date: Sun, 6 Dec 2020 22:54:47 -0600 Subject: [PATCH] Fix parsing of SH command in newcat.c Remove get_vfo from FT-891 https://github.com/Hamlib/Hamlib/issues/455 (cherry picked from commit 15958c8aab8dfcadecb2cc27c13d948b2a6d8764) --- rigs/yaesu/ft891.c | 4 ++-- rigs/yaesu/newcat.c | 21 +++------------------ rigs/yaesu/newcat.h | 2 +- tests/example.c | 4 ++-- 4 files changed, 8 insertions(+), 23 deletions(-) diff --git a/rigs/yaesu/ft891.c b/rigs/yaesu/ft891.c index d2131d849..74120e4a7 100644 --- a/rigs/yaesu/ft891.c +++ b/rigs/yaesu/ft891.c @@ -50,7 +50,7 @@ const struct rig_caps ft891_caps = RIG_MODEL(RIG_MODEL_FT891), .model_name = "FT-891", .mfg_name = "Yaesu", - .version = NEWCAT_VER ".1", + .version = NEWCAT_VER ".2", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -192,7 +192,7 @@ const struct rig_caps ft891_caps = .get_freq = newcat_get_freq, .set_mode = ft891_set_mode, .get_mode = newcat_get_mode, - .get_vfo = newcat_get_vfo, +// .get_vfo = newcat_get_vfo, .set_ptt = newcat_set_ptt, .get_ptt = newcat_get_ptt, .set_split_vfo = ft891_set_split_vfo, diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index 57226e4f7..3ebcd754d 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -7593,25 +7593,10 @@ int newcat_get_rx_bandwidth(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t *width) return err; } - if (strlen(priv->ret_data) == 7) + if (sscanf(priv->ret_data, "SH%3d;", &w) != 1 && + sscanf(priv->ret_data, "SH0%3d;", &w) != 1) { - if (sscanf(priv->ret_data, "SH%*1d0%3d", &w) != 1) - { - err = -RIG_EPROTO; - } - } - else if (strlen(priv->ret_data) == 6) - { - if (sscanf(priv->ret_data, "SH%*1d%3d", &w) != 1) - { - err = -RIG_EPROTO; - } - } - else - { - rig_debug(RIG_DEBUG_ERR, "%s: unknown SH response='%s'\n", __func__, - priv->ret_data); - return -RIG_EPROTO; + err = -RIG_EPROTO; } if (err != RIG_OK) diff --git a/rigs/yaesu/newcat.h b/rigs/yaesu/newcat.h index 02d121af1..39cf2b880 100644 --- a/rigs/yaesu/newcat.h +++ b/rigs/yaesu/newcat.h @@ -50,7 +50,7 @@ typedef char ncboolean; /* shared function version */ -#define NEWCAT_VER "20201206" +#define NEWCAT_VER "20201207" /* Hopefully large enough for future use, 128 chars plus '\0' */ #define NEWCAT_DATA_LEN 129 diff --git a/tests/example.c b/tests/example.c index 4d895d09d..86b8bc677 100644 --- a/tests/example.c +++ b/tests/example.c @@ -12,8 +12,8 @@ #include #include #include -#include #include "sprintflst.h" +#include #if 0 #define MODEL RIG_MODEL_DUMMY @@ -131,7 +131,7 @@ int main() if (range) { char vfolist[256]; - sprintf_vfo(vfolist, my_rig->state.vfo_list); + rig_sprintf_vfo(vfolist, my_rig->state.vfo_list); printf("Range start=%"PRIfreq", end=%"PRIfreq", low_power=%d, high_power=%d, vfos=%s\n", range->startf, range->endf, range->low_power, range->high_power, vfolist); }