From 0edd1df223bef5a2814e06c004c480e4d5593ddf Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Fri, 18 Aug 2023 00:04:59 -0500 Subject: [PATCH] Add more KEYERTYPE implementaions to Icom rigs --- include/hamlib/rig.h | 2 +- rigs/icom/ic7300.c | 7 ++++--- rigs/icom/ic7410.c | 2 ++ rigs/icom/ic7600.c | 2 ++ rigs/icom/ic7610.c | 2 ++ rigs/icom/ic785x.c | 4 +++- rigs/icom/ic9100.c | 2 ++ tests/rigctl_parse.c | 9 ++++++++- 8 files changed, 24 insertions(+), 6 deletions(-) diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index b8a065797..85396a2d8 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -1154,7 +1154,7 @@ enum multicast_item_e { //! @cond Doxygen_Suppress #define RIG_PARM_FLOAT_LIST (RIG_PARM_BACKLIGHT|RIG_PARM_BAT|RIG_PARM_KEYLIGHT|RIG_PARM_BACKLIGHT) -#define RIG_PARM_STRING_LIST (RIG_PARM_BANDSELECT) +#define RIG_PARM_STRING_LIST (RIG_PARM_BANDSELECT|RIG_PARM_KEYERTYPE) #define RIG_PARM_READONLY_LIST (RIG_PARM_BAT) #define RIG_PARM_IS_FLOAT(l) ((l)&RIG_PARM_FLOAT_LIST) diff --git a/rigs/icom/ic7300.c b/rigs/icom/ic7300.c index 76e74c46c..59acc14d5 100644 --- a/rigs/icom/ic7300.c +++ b/rigs/icom/ic7300.c @@ -727,7 +727,8 @@ const struct rig_caps ic7300_caps = [PARM_BEEP] = {.min = {.i = 0}, .max = {.i = 1}, .step = {.i = 1}}, [PARM_SCREENSAVER] = {.min = {.i = 0}, .max = {.i = 3}, .step = {.i = 1}}, [PARM_TIME] = {.min = {.i = 0}, .max = {.i = 86399}, .step = {.i = 1}}, - [PARM_KEYERTYPE] = {.min = {.i = 0}, .max = {.i = 2}, .step = {.i = 1}}, + [PARM_KEYERTYPE] = {.step = {.s = "STRAIGHT, BUG, PADDLE"}}, + }, .ext_tokens = ic7300_ext_tokens, .extlevels = icom_ext_levels, @@ -969,7 +970,7 @@ struct rig_caps ic9700_caps = [PARM_BANDSELECT] = {.step = {.s = "BANDUNUSED,BAND70CM,BAND33CM,BAND23CM"}}, [PARM_BEEP] = {.min = {.i = 0}, .max = {.i = 1}}, [PARM_SCREENSAVER] = {.min = {.i = 0}, .max = {.i = 3}, .step = {.i = 1}}, - [PARM_KEYERTYPE] = {.min = {.i = 0}, .max = {.i = 2}, .step = {.i = 1}}, + [PARM_KEYERTYPE] = {.step = {.s = "STRAIGHT, BUG, PADDLE"}}, }, .ext_tokens = ic9700_ext_tokens, .extlevels = icom_ext_levels, @@ -1561,7 +1562,7 @@ const struct rig_caps ic905_caps = [PARM_BANDSELECT] = {.step = {.s = "BANDUNUSED,BAND70CM,BAND33CM,BAND23CM,BAND23CM,BAND13CM,BAND3CM"}}, [PARM_BEEP] = {.min = {.i = 0}, .max = {.i = 1}}, [PARM_SCREENSAVER] = {.min = {.i = 0}, .max = {.i = 3}, .step = {.i = 1}}, - [PARM_KEYERTYPE] = {.min = {.i = 0}, .max = {.i = 2}, .step = {.i = 1}}, + [PARM_KEYERTYPE] = {.step = {.s = "STRAIGHT, BUG, PADDLE"}}, }, .ext_tokens = ic705_ext_tokens, .extlevels = icom_ext_levels, diff --git a/rigs/icom/ic7410.c b/rigs/icom/ic7410.c index 937b87bac..33a786af9 100644 --- a/rigs/icom/ic7410.c +++ b/rigs/icom/ic7410.c @@ -92,6 +92,7 @@ struct cmdparams ic7410_extcmds[] = { { {.s = RIG_LEVEL_VOXDELAY}, CMD_PARAM_TYPE_LEVEL, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 1, {0x75 }, CMD_DAT_INT, 1 }, + { {.s = RIG_PARM_KEYERTYPE}, CMD_PARAM_TYPE_PARM, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x75}, CMD_DAT_INT, 1 }, { {0} } }; @@ -157,6 +158,7 @@ const struct rig_caps ic7410_caps = .parm_gran = { [PARM_BACKLIGHT] = {.min = {.f = 0.0f}, .max = {.f = 1.0f}, .step = {.f = 1.0f / 255.0f}}, [PARM_ANN] = {.min = {.i = 0}, .max = {.i = 2}, .step = {.i = 1}}, + [PARM_KEYERTYPE] = {.step = {.s = "STRAIGHT, BUG, PADDLE"}}, }, .ctcss_list = common_ctcss_list, diff --git a/rigs/icom/ic7600.c b/rigs/icom/ic7600.c index fc0ba365f..97b8c4139 100644 --- a/rigs/icom/ic7600.c +++ b/rigs/icom/ic7600.c @@ -133,6 +133,7 @@ struct cmdparams ic7600_extcmds[] = { {.s = RIG_PARM_BACKLIGHT}, CMD_PARAM_TYPE_PARM, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x38}, CMD_DAT_LVL, 2 }, { {.s = RIG_PARM_TIME}, CMD_PARAM_TYPE_PARM, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x54}, CMD_DAT_TIM, 2 }, { {.s = RIG_LEVEL_VOXDELAY}, CMD_PARAM_TYPE_LEVEL, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x67}, CMD_DAT_INT, 1 }, + { {.s = RIG_PARM_KEYERTYPE}, CMD_PARAM_TYPE_PARM, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x37}, CMD_DAT_INT, 1 }, { { 0 } } }; @@ -315,6 +316,7 @@ struct rig_caps ic7600_caps = [PARM_TIME] = {.min = {.i = 0}, .max = {.i = 86399}, .step = {.i = 1}}, [PARM_ANN] = {.min = {.i = 0}, .max = {.i = 2}, .step = {.i = 1}}, [PARM_APO] = { .min = { .i = 1 }, .max = { .i = 1439} }, + [PARM_KEYERTYPE] = {.step = {.s = "STRAIGHT, BUG, PADDLE"}}, }, .ext_tokens = ic7600_ext_tokens, diff --git a/rigs/icom/ic7610.c b/rigs/icom/ic7610.c index 77dee9d20..4c8cfa6bd 100644 --- a/rigs/icom/ic7610.c +++ b/rigs/icom/ic7610.c @@ -137,6 +137,7 @@ struct cmdparams ic7610_extcmds[] = { {.s = RIG_FUNC_TRANSCEIVE}, CMD_PARAM_TYPE_FUNC, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x12}, CMD_DAT_BOL, 1 }, { {.s = RIG_LEVEL_SPECTRUM_AVG}, CMD_PARAM_TYPE_LEVEL, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x70}, CMD_DAT_INT, 1 }, { {.s = RIG_LEVEL_USB_AF}, CMD_PARAM_TYPE_LEVEL, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x82}, CMD_DAT_LVL, 2 }, + { {.s = RIG_PARM_KEYERTYPE}, CMD_PARAM_TYPE_PARM, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x02, 0x31}, CMD_DAT_INT, 1 }, { { 0 } } }; @@ -398,6 +399,7 @@ struct rig_caps ic7610_caps = [PARM_BEEP] = {.min = {.i = 0}, .max = {.i = 1}, .step = {.i = 1}}, [PARM_TIME] = {.min = {.i = 0}, .max = {.i = 86399}, .step = {.i = 1}}, [PARM_ANN] = {.min = {.i = 0}, .max = {.i = 2}, .step = {.i = 1}}, + [PARM_KEYERTYPE] = {.step = {.s = "STRAIGHT, BUG, PADDLE"}}, }, .ext_tokens = ic7610_ext_tokens, diff --git a/rigs/icom/ic785x.c b/rigs/icom/ic785x.c index 93f587faf..ec814a0be 100644 --- a/rigs/icom/ic785x.c +++ b/rigs/icom/ic785x.c @@ -42,7 +42,7 @@ #define IC785x_LEVELS (RIG_LEVEL_PREAMP|RIG_LEVEL_ATT|RIG_LEVEL_AGC|RIG_LEVEL_COMP|RIG_LEVEL_BKINDL|RIG_LEVEL_BALANCE|RIG_LEVEL_NR|RIG_LEVEL_PBT_IN|RIG_LEVEL_PBT_OUT|RIG_LEVEL_CWPITCH|RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN|RIG_LEVEL_KEYSPD|RIG_LEVEL_NOTCHF_RAW|RIG_LEVEL_SQL|RIG_LEVEL_RAWSTR|RIG_LEVEL_STRENGTH|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_APF|RIG_LEVEL_VOXGAIN|RIG_LEVEL_ANTIVOX|RIG_LEVEL_VOXDELAY|RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS|RIG_LEVEL_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB|RIG_LEVEL_SPECTRUM_MODE|RIG_LEVEL_SPECTRUM_SPAN|RIG_LEVEL_SPECTRUM_SPEED|RIG_LEVEL_SPECTRUM_REF|RIG_LEVEL_SPECTRUM_AVG|RIG_LEVEL_SPECTRUM_EDGE_LOW|RIG_LEVEL_SPECTRUM_EDGE_HIGH|RIG_LEVEL_SPECTRUM_ATT|RIG_LEVEL_AGC_TIME) #define IC785x_VFOS (RIG_VFO_MAIN|RIG_VFO_SUB|RIG_VFO_MEM) -#define IC785x_PARMS (RIG_PARM_ANN|RIG_PARM_BACKLIGHT|RIG_PARM_TIME|RIG_PARM_BEEP) +#define IC785x_PARMS (RIG_PARM_ANN|RIG_PARM_BACKLIGHT|RIG_PARM_TIME|RIG_PARM_BEEP|RIG_PARM_KEYERTYPE) #define IC785x_VFO_OPS (RIG_OP_CPY|RIG_OP_XCHG|RIG_OP_FROM_VFO|RIG_OP_TO_VFO|RIG_OP_MCL|RIG_OP_TUNE) #define IC785x_SCAN_OPS (RIG_SCAN_MEM|RIG_SCAN_VFO|RIG_SCAN_PROG|RIG_SCAN_DELTA|RIG_SCAN_PRIO) @@ -128,6 +128,7 @@ struct cmdparams ic785x_extcmds[] = { {.s = RIG_FUNC_TRANSCEIVE}, CMD_PARAM_TYPE_FUNC, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x55}, CMD_DAT_BOL, 1 }, { {.s = RIG_LEVEL_SPECTRUM_AVG}, CMD_PARAM_TYPE_LEVEL, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x87}, CMD_DAT_INT, 1 }, { {.s = RIG_LEVEL_USB_AF}, CMD_PARAM_TYPE_LEVEL, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x52}, CMD_DAT_LVL, 2 }, + { {.s = RIG_PARM_KEYERTYPE}, CMD_PARAM_TYPE_PARM, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x02, 0x54}, CMD_DAT_INT, 1 }, { { 0 } } }; @@ -282,6 +283,7 @@ const struct rig_caps ic785x_caps = [PARM_BEEP] = {.min = {.i = 0}, .max = {.i = 1}, .step = {.i = 1}}, [PARM_TIME] = {.min = {.i = 0}, .max = {.i = 86399}, .step = {.i = 1}}, [PARM_ANN] = {.min = {.i = 0}, .max = {.i = 2}, .step = {.i = 1}}, + [PARM_KEYERTYPE] = {.step = {.s = "STRAIGHT, BUG, PADDLE"}}, }, .ext_tokens = ic785x_ext_tokens, diff --git a/rigs/icom/ic9100.c b/rigs/icom/ic9100.c index 15cc1a03c..2a8ef9dcc 100644 --- a/rigs/icom/ic9100.c +++ b/rigs/icom/ic9100.c @@ -89,6 +89,7 @@ struct cmdparams ic9100_extcmds[] = { { {.s = RIG_LEVEL_VOXDELAY}, CMD_PARAM_TYPE_LEVEL, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x27}, CMD_DAT_INT, 1 }, + { {.s = RIG_PARM_KEYERTYPE}, CMD_PARAM_TYPE_PARM, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x02}, CMD_DAT_INT, 1 }, { {.s = RIG_PARM_NONE} } }; @@ -142,6 +143,7 @@ const struct rig_caps ic9100_caps = [PARM_BACKLIGHT] = {.min = {.f = 0.0f}, .max = {.f = 1.0f}, .step = {.f = 1.0f / 255.0f}}, [PARM_BANDSELECT] = {.step = {.s = "BANDUNUSED,BAND160M,BAND80M,BAND40M,BAND30M,BAND20M,BAND17M,BAND15M,BAND12M,BAND10M,BAND6M,BANDGEN"}}, [PARM_ANN] = {.min = {.i = 0}, .max = {.i = 2}, .step = {.i = 1}}, + [PARM_KEYERTYPE] = {.step = {.s = "STRAIGHT, BUG, PADDLE"}}, }, .ctcss_list = common_ctcss_list, diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index 2ba99cb1e..49f5ab9ed 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -3734,7 +3734,14 @@ declare_proto_rig(get_parm) fprintf(fout, "%s: ", cmd->arg2); } - if (RIG_PARM_IS_FLOAT(parm)) + if (parm == RIG_PARM_KEYERTYPE) + { + char *s = "STRAIGHT"; + if (val.i == 1) s = "BUG"; + else if (val.i == 2) s = "PADDLE"; + fprintf(fout, "%s%cv", s, resp_sep); + } + else if (RIG_PARM_IS_FLOAT(parm)) { rig_debug(RIG_DEBUG_ERR, "%s: float\n", __func__); fprintf(fout, "%f%c", val.f, resp_sep);