From a656ff580a1abca9399752bbb54a6083842b7951 Mon Sep 17 00:00:00 2001 From: Malcolm Herring Date: Tue, 21 Jan 2020 10:44:40 +0000 Subject: [PATCH] New custom parm implementations --- rigs/icom/ic7300.c | 197 ++++++++------------------------------------- rigs/icom/ic756.c | 139 ++++++-------------------------- rigs/icom/ic7600.c | 156 +++++------------------------------ rigs/icom/icom.c | 63 +-------------- rigs/icom/id51.c | 1 + 5 files changed, 78 insertions(+), 478 deletions(-) diff --git a/rigs/icom/ic7300.c b/rigs/icom/ic7300.c index 32f79e420..0cdccb9ad 100644 --- a/rigs/icom/ic7300.c +++ b/rigs/icom/ic7300.c @@ -57,6 +57,18 @@ #define IC7300_ANTS (RIG_ANT_1) /* ant-1 is Hf-6m */ +struct cmdparams ic7300_rigparms[] = { + { {.s=RIG_PARM_BEEP}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x23}, CMD_DAT_BOL, 1 }, + { {.s=RIG_PARM_BACKLIGHT}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x81}, CMD_DAT_LVL, 2 }, + { {.s=RIG_PARM_TIME}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x95}, CMD_DAT_TIM, 2 }, + { {.s=RIG_PARM_NONE} } +}; + +struct cmdparams ic7300_riglevels[] = { + { {.s=RIG_LEVEL_VOXDELAY}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x91}, CMD_DAT_INT, 1 }, + { {.s=RIG_LEVEL_NONE} } +}; + /* * IC-7300 S-meter levels measured from live signals on multiple bands. Provides a good approximation. */ @@ -126,6 +138,17 @@ #define IC9700_ALL_TX_MODES (RIG_MODE_FM|RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_DSTAR|RIG_MODE_DD) #define IC9700_ALL_RX_MODES (RIG_MODE_FM|RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_DSTAR|RIG_MODE_DD) +struct cmdparams ic9700_rigparms[] = { + { {.s=RIG_PARM_BEEP}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x29}, CMD_DAT_BOL, 1 }, + { {.s=RIG_PARM_BACKLIGHT}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x52}, CMD_DAT_LVL, 2 }, + { {.s=RIG_PARM_NONE} } +}; + +struct cmdparams ic9700_riglevels[] = { + { {.s=RIG_LEVEL_VOXDELAY}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x03, 0x30}, CMD_DAT_INT, 1 }, + { {.s=RIG_LEVEL_NONE} } +}; + #define IC9700_STR_CAL { 7, \ { \ { 0, -54 }, \ @@ -196,6 +219,8 @@ static const struct icom_priv_caps IC7300_priv_caps = { .level = RIG_AGC_SLOW, .icom_level = 3 }, { .level = -1, .icom_level = 0 }, }, + .rigparms = ic7300_rigparms, /* Custom parm parameters */ + .riglevels = ic7300_riglevels, /* Custom level parameters */ }; static const struct icom_priv_caps IC9700_priv_caps = @@ -212,15 +237,10 @@ static const struct icom_priv_caps IC9700_priv_caps = { .level = RIG_AGC_SLOW, .icom_level = 3 }, { .level = -1, .icom_level = 0 }, }, + .rigparms = ic9700_rigparms, /* Custom parm parameters */ + .riglevels = ic9700_riglevels, /* Custom level parameters */ }; -int ic7300_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val); -int ic7300_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val); -int ic9700_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val); -int ic9700_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val); -int ic7300_set_parm(RIG *rig, setting_t parm, value_t val); -int ic7300_get_parm(RIG *rig, setting_t parm, value_t *val); - const struct rig_caps ic7300_caps = { .rig_model = RIG_MODEL_IC7300, @@ -364,14 +384,14 @@ const struct rig_caps ic7300_caps = .set_xit = icom_set_xit_new, .decode_event = icom_decode_event, - .set_level = ic7300_set_level, - .get_level = ic7300_get_level, + .set_level = icom_set_level, + .get_level = icom_get_level, .set_ext_level = icom_set_ext_level, .get_ext_level = icom_get_ext_level, .set_func = icom_set_func, .get_func = icom_get_func, - .set_parm = ic7300_set_parm, - .get_parm = ic7300_get_parm, + .set_parm = icom_set_parm, + .get_parm = icom_get_parm, .set_mem = icom_set_mem, .vfo_op = icom_vfo_op, .scan = icom_scan, @@ -395,11 +415,9 @@ const struct rig_caps ic7300_caps = .set_split_vfo = icom_set_split_vfo, .get_split_vfo = icom_get_split_vfo, .set_powerstat = icom_set_powerstat, - .get_powerstat = icom_get_powerstat, .power2mW = icom_power2mW, .mW2power = icom_mW2power, .send_morse = icom_send_morse - }; const struct rig_caps ic9700_caps = @@ -540,8 +558,8 @@ const struct rig_caps ic9700_caps = .get_rit = icom_get_rit_new, .decode_event = icom_decode_event, - .set_level = ic9700_set_level, - .get_level = ic9700_get_level, + .set_level = icom_set_level, + .get_level = icom_get_level, .set_ext_level = icom_set_ext_level, .get_ext_level = icom_get_ext_level, .set_func = icom_set_func, @@ -571,156 +589,7 @@ const struct rig_caps ic9700_caps = .set_split_vfo = icom_set_split_vfo, .get_split_vfo = icom_get_split_vfo, .set_powerstat = icom_set_powerstat, - .get_powerstat = icom_get_powerstat, .power2mW = icom_power2mW, .mW2power = icom_mW2power, .send_morse = icom_send_morse - }; - -int ic7300_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) -{ - unsigned char cmdbuf[MAXFRAMELEN]; - - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (level) - { - case RIG_LEVEL_VOXDELAY: - cmdbuf[0] = 0x01; - cmdbuf[1] = 0x91; - return icom_set_level_raw(rig, level, C_CTL_MEM, S_MEM_PARM, 2, cmdbuf, 1, val); - - default: - return icom_set_level(rig, vfo, level, val); - } -} - -int ic7300_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) -{ - unsigned char cmdbuf[MAXFRAMELEN]; - - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (level) - { - case RIG_LEVEL_VOXDELAY: - cmdbuf[0] = 0x01; - cmdbuf[1] = 0x91; - return icom_get_level_raw(rig, level, C_CTL_MEM, S_MEM_PARM, 2, cmdbuf, val); - - default: - return icom_get_level(rig, vfo, level, val); - } -} - -int ic9700_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) -{ - unsigned char cmdbuf[MAXFRAMELEN]; - - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (level) - { - case RIG_LEVEL_VOXDELAY: - cmdbuf[0] = 0x03; - cmdbuf[1] = 0x30; - return icom_set_level_raw(rig, level, C_CTL_MEM, S_MEM_PARM, 2, cmdbuf, 1, val); - - default: - return ic7300_set_level(rig, vfo, level, val); - } -} - -int ic9700_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) -{ - unsigned char cmdbuf[MAXFRAMELEN]; - - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (level) - { - case RIG_LEVEL_VOXDELAY: - cmdbuf[0] = 0x03; - cmdbuf[1] = 0x30; - return icom_get_level_raw(rig, level, C_CTL_MEM, S_MEM_PARM, 2, cmdbuf, val); - - default: - return ic7300_get_level(rig, vfo, level, val); - } -} - -int ic7300_set_parm(RIG *rig, setting_t parm, value_t val) -{ - unsigned char parmbuf[MAXFRAMELEN]; - - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (parm) - { - case RIG_PARM_BEEP: - parmbuf[0] = 0x00; - parmbuf[1] = 0x23; - return icom_set_custom_parm(rig, 2, parmbuf, 1, val.i ? 1 : 0); - - case RIG_PARM_BACKLIGHT: - parmbuf[0] = 0x00; - parmbuf[1] = 0x81; - return icom_set_custom_parm(rig, 2, parmbuf, 2, (int)(val.f * 255.0f)); - - case RIG_PARM_TIME: - parmbuf[0] = 0x00; - parmbuf[1] = 0x95; - return icom_set_custom_parm_time(rig, 2, parmbuf, val.i); - - default: - return icom_set_parm(rig, parm, val); - } -} - -int ic7300_get_parm(RIG *rig, setting_t parm, value_t *val) -{ - unsigned char parmbuf[MAXFRAMELEN]; - int retval; - int icom_val; - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (parm) - { - case RIG_PARM_BEEP: - parmbuf[0] = 0x00; - parmbuf[1] = 0x23; - retval = icom_get_custom_parm(rig, 2, parmbuf, &icom_val); - - if (retval != RIG_OK) - { - return retval; - } - - val->i = icom_val ? 1 : 0; - break; - - case RIG_PARM_BACKLIGHT: - parmbuf[0] = 0x00; - parmbuf[1] = 0x81; - retval = icom_get_custom_parm(rig, 2, parmbuf, &icom_val); - - if (retval != RIG_OK) - { - return retval; - } - - val->f = (float) icom_val / 255.0f; - break; - - case RIG_PARM_TIME: - parmbuf[0] = 0x00; - parmbuf[1] = 0x95; - return icom_get_custom_parm_time(rig, 2, parmbuf, &val->i); - - default: - return icom_get_parm(rig, parm, val); - } - - return RIG_OK; -} diff --git a/rigs/icom/ic756.c b/rigs/icom/ic756.c index 37a17443b..3090b436d 100644 --- a/rigs/icom/ic756.c +++ b/rigs/icom/ic756.c @@ -62,6 +62,18 @@ #define IC756_ANTS (RIG_ANT_1|RIG_ANT_2) +struct cmdparams ic756pro_rigparms[] = { + { {.s=RIG_PARM_BEEP}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x20}, CMD_DAT_BOL, 1 }, + { {.s=RIG_PARM_BACKLIGHT}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x09}, CMD_DAT_LVL, 2 }, + { {.s=RIG_PARM_TIME}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x16}, CMD_DAT_TIM, 2 }, + { {.s=RIG_PARM_NONE} } +}; + +struct cmdparams ic756pro_riglevels[] = { + { {.s=RIG_LEVEL_VOXDELAY}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x60}, CMD_DAT_INT, 1 }, + { {.s=RIG_LEVEL_NONE} } +}; + #define IC756PRO_STR_CAL { 16, \ { \ { 0, -60 }, \ @@ -83,10 +95,6 @@ } } int ic756_set_func(RIG *rig, vfo_t vfo, setting_t func, int status); -int ic756pro2_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val); -int ic756pro2_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val); -int ic756pro2_set_parm(RIG *rig, setting_t parm, value_t val); -int ic756pro2_get_parm(RIG *rig, setting_t parm, value_t *val); /* * This function deals with the older type radios with only 2 filter widths @@ -454,6 +462,8 @@ static const struct icom_priv_caps ic756pro2_priv_caps = { .level = RIG_AGC_SLOW, .icom_level = 3 }, { .level = -1, .icom_level = 0 }, }, + .rigparms = ic756pro_rigparms, /* Custom parm parameters */ + .riglevels = ic756pro_riglevels, /* Custom level parameters */ }; /* @@ -639,10 +649,10 @@ const struct rig_caps ic756pro2_caps = .get_ant = icom_get_ant, .decode_event = icom_decode_event, - .set_parm = ic756pro2_set_parm, - .get_parm = ic756pro2_get_parm, - .set_level = ic756pro2_set_level, - .get_level = ic756pro2_get_level, + .set_parm = icom_set_parm, + .get_parm = icom_get_parm, + .set_level = icom_set_level, + .get_level = icom_get_level, .set_func = ic756_set_func, .get_func = icom_get_func, .set_mem = icom_set_mem, @@ -878,6 +888,8 @@ static const struct icom_priv_caps ic756pro3_priv_caps = { .level = RIG_AGC_SLOW, .icom_level = 3 }, { .level = -1, .icom_level = 0 }, }, + .rigparms = ic756pro_rigparms, /* Custom parm parameters */ + .riglevels = ic756pro_riglevels, /* Custom level parameters */ }; @@ -1066,10 +1078,10 @@ const struct rig_caps ic756pro3_caps = .get_ant = icom_get_ant, .decode_event = icom_decode_event, - .set_parm = ic756pro2_set_parm, - .get_parm = ic756pro2_get_parm, - .set_level = ic756pro2_set_level, - .get_level = ic756pro2_get_level, + .set_parm = icom_set_parm, + .get_parm = icom_get_parm, + .set_level = icom_set_level, + .get_level = icom_get_level, .set_func = ic756_set_func, .get_func = icom_get_func, .set_mem = icom_set_mem, @@ -1129,106 +1141,3 @@ int ic756_set_func(RIG *rig, vfo_t vfo, setting_t func, int status) return RIG_OK; } - -int ic756pro2_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) -{ - unsigned char cmdbuf[MAXFRAMELEN]; - - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (level) - { - case RIG_LEVEL_VOXDELAY: - cmdbuf[0] = 0x60; - return icom_set_level_raw(rig, level, C_CTL_MEM, 0x05, 1, cmdbuf, 1, val); - - default: - return icom_set_level(rig, vfo, level, val); - } -} - -int ic756pro2_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) -{ - unsigned char cmdbuf[MAXFRAMELEN]; - - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (level) - { - case RIG_LEVEL_VOXDELAY: - cmdbuf[0] = 0x60; - return icom_get_level_raw(rig, level, C_CTL_MEM, 0x05, 1, cmdbuf, val); - - default: - return icom_get_level(rig, vfo, level, val); - } -} - -int ic756pro2_set_parm(RIG *rig, setting_t parm, value_t val) -{ - unsigned char parmbuf[MAXFRAMELEN]; - - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (parm) - { - case RIG_PARM_BEEP: - parmbuf[0] = 0x20; - return icom_set_custom_parm(rig, 1, parmbuf, 1, val.i ? 1 : 0); - - case RIG_PARM_BACKLIGHT: - parmbuf[0] = 0x09; - return icom_set_custom_parm(rig, 1, parmbuf, 2, (int)(val.f * 255.0f)); - - case RIG_PARM_TIME: - parmbuf[0] = 0x16; - return icom_set_custom_parm_time(rig, 1, parmbuf, val.i); - - default: - return icom_set_parm(rig, parm, val); - } -} - -int ic756pro2_get_parm(RIG *rig, setting_t parm, value_t *val) -{ - unsigned char parmbuf[MAXFRAMELEN]; - int retval; - int icom_val; - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (parm) - { - case RIG_PARM_BEEP: - parmbuf[0] = 0x20; - retval = icom_get_custom_parm(rig, 1, parmbuf, &icom_val); - - if (retval != RIG_OK) - { - return retval; - } - - val->i = icom_val ? 1 : 0; - break; - - case RIG_PARM_BACKLIGHT: - parmbuf[0] = 0x09; - retval = icom_get_custom_parm(rig, 1, parmbuf, &icom_val); - - if (retval != RIG_OK) - { - return retval; - } - - val->f = (float) icom_val / 255.0f; - break; - - case RIG_PARM_TIME: - parmbuf[0] = 0x16; - return icom_get_custom_parm_time(rig, 1, parmbuf, &val->i); - - default: - return icom_get_parm(rig, parm, val); - } - - return RIG_OK; -} diff --git a/rigs/icom/ic7600.c b/rigs/icom/ic7600.c index d4929ee7c..49107233a 100644 --- a/rigs/icom/ic7600.c +++ b/rigs/icom/ic7600.c @@ -53,6 +53,18 @@ #define IC7600_ANTS (RIG_ANT_1|RIG_ANT_2) +struct cmdparams ic7600_rigparms[] = { + { {.s=RIG_PARM_BEEP}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x59}, CMD_DAT_BOL, 1 }, + { {.s=RIG_PARM_BACKLIGHT}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x38}, CMD_DAT_LVL, 2 }, + { {.s=RIG_PARM_TIME}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x54}, CMD_DAT_TIM, 2 }, + { {.s=RIG_PARM_NONE} } +}; + +struct cmdparams ic7600_riglevels[] = { + { {.s=RIG_LEVEL_VOXDELAY}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x67}, CMD_DAT_INT, 1 }, + { {.s=RIG_LEVEL_NONE} } +}; + /* * Measurement by Roeland, PA3MET */ @@ -120,11 +132,6 @@ { 241, 25.0f } \ } } -int ic7600_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val); -int ic7600_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val); -int ic7600_set_parm(RIG *rig, setting_t parm, value_t val); -int ic7600_get_parm(RIG *rig, setting_t parm, value_t *val); - /* * IC-7600 rig capabilities. * @@ -143,6 +150,8 @@ static const struct icom_priv_caps ic7600_priv_caps = { .level = RIG_AGC_SLOW, .icom_level = 3 }, { .level = -1, .icom_level = 0 }, }, + .rigparms = ic7600_rigparms, /* Custom parm parameters */ + .riglevels = ic7600_riglevels, /* Custom level parameters */ }; const struct confparams ic7600_ext_levels[] = @@ -299,14 +308,14 @@ const struct rig_caps ic7600_caps = .set_xit = icom_set_xit_new, .decode_event = icom_decode_event, - .set_level = ic7600_set_level, - .get_level = ic7600_get_level, + .set_level = icom_set_level, + .get_level = icom_get_level, .set_ext_level = icom_set_ext_level, .get_ext_level = icom_get_ext_level, .set_func = icom_set_func, .get_func = icom_get_func, - .set_parm = ic7600_set_parm, - .get_parm = ic7600_get_parm, + .set_parm = icom_set_parm, + .get_parm = icom_get_parm, .set_mem = icom_set_mem, .vfo_op = icom_vfo_op, .scan = icom_scan, @@ -329,132 +338,3 @@ const struct rig_caps ic7600_caps = .get_powerstat = icom_get_powerstat, .send_morse = icom_send_morse }; - -int ic7600_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) -{ - unsigned char cmdbuf[MAXFRAMELEN]; - - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (level) - { - case RIG_LEVEL_VOXDELAY: - cmdbuf[0] = 0x01; - cmdbuf[1] = 0x67; - return icom_set_level_raw(rig, level, C_CTL_MEM, 0x05, 2, cmdbuf, 1, val); - - default: - return icom_set_level(rig, vfo, level, val); - } -} - -int ic7600_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) -{ - unsigned char cmdbuf[MAXFRAMELEN]; - - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (level) - { - case RIG_LEVEL_VOXDELAY: - cmdbuf[0] = 0x01; - cmdbuf[1] = 0x67; - return icom_get_level_raw(rig, level, C_CTL_MEM, 0x05, 2, cmdbuf, val); - - default: - return icom_get_level(rig, vfo, level, val); - } -} - -int ic7600_set_parm(RIG *rig, setting_t parm, value_t val) -{ - unsigned char parmbuf[MAXFRAMELEN]; - - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (parm) - { - case RIG_PARM_BEEP: - parmbuf[0] = 0x00; - parmbuf[1] = 0x59; - return icom_set_custom_parm(rig, 2, parmbuf, 1, val.i ? 1 : 0); - - case RIG_PARM_BACKLIGHT: - parmbuf[0] = 0x00; - parmbuf[1] = 0x38; - return icom_set_custom_parm(rig, 2, parmbuf, 2, (int)(val.f * 255.0f)); - - case RIG_PARM_KEYLIGHT: - parmbuf[0] = 0x00; - parmbuf[1] = 0x39; - return icom_set_custom_parm(rig, 2, parmbuf, 2, val.f != 0 ? 255 : 0); - - case RIG_PARM_TIME: - parmbuf[0] = 0x00; - parmbuf[1] = 0x54; - return icom_set_custom_parm_time(rig, 2, parmbuf, val.i); - - default: - return icom_set_parm(rig, parm, val); - } -} - -int ic7600_get_parm(RIG *rig, setting_t parm, value_t *val) -{ - unsigned char parmbuf[MAXFRAMELEN]; - int retval; - int icom_val; - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - switch (parm) - { - case RIG_PARM_BEEP: - parmbuf[0] = 0x00; - parmbuf[1] = 0x59; - retval = icom_get_custom_parm(rig, 2, parmbuf, &icom_val); - - if (retval != RIG_OK) - { - return retval; - } - - val->i = icom_val ? 1 : 0; - break; - - case RIG_PARM_BACKLIGHT: - parmbuf[0] = 0x00; - parmbuf[1] = 0x38; - retval = icom_get_custom_parm(rig, 2, parmbuf, &icom_val); - - if (retval != RIG_OK) - { - return retval; - } - - val->f = (float) icom_val / 255.0f; - break; - - case RIG_PARM_KEYLIGHT: - parmbuf[0] = 0x00; - parmbuf[1] = 0x39; - retval = icom_get_custom_parm(rig, 2, parmbuf, &icom_val); - - if (retval != RIG_OK) - { - return retval; - } - - val->f = icom_val > 0 ? 1 : 0; - break; - - case RIG_PARM_TIME: - parmbuf[0] = 0x00; - parmbuf[1] = 0x54; - return icom_get_custom_parm_time(rig, 2, parmbuf, &val->i); - - default: - return icom_get_parm(rig, parm, val); - } - - return RIG_OK; -} diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index 76dd50eb1..13156026a 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -4497,8 +4497,7 @@ int icom_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status) * * NOTE: Most of the parm commands are rig-specific. * - * See the IC-7300 backend how to implement them for newer rigs that have 0x1A 0x05-based commands where - * icom_set_custom_parm()/icom_get_custom_parm() can be used. + * See the IC-7300 backend how to implement them for newer rigs that have 0x1A 0x05-based commands. * * For older rigs, see the IC-R75 backend where icom_set_raw()/icom_get_raw() are used. */ @@ -4556,8 +4555,7 @@ int icom_set_parm(RIG *rig, setting_t parm, value_t val) * * NOTE: Most of the parm commands are rig-specific. * - * See the IC-7300 backend how to implement them for newer rigs that have 0x1A 0x05-based commands where - * icom_set_custom_parm()/icom_get_custom_parm() can be used. + * See the IC-7300 backend how to implement them for newer rigs that have 0x1A 0x05-based commands. * * For older rigs, see the IC-R75 backend where icom_set_raw()/icom_get_raw() are used. */ @@ -5864,63 +5862,6 @@ int icom_get_level_raw(RIG *rig, setting_t level, int cmd, int subcmd, return RIG_OK; } -int icom_set_custom_parm(RIG *rig, int parmbuflen, unsigned char *parmbuf, - int val_bytes, int value) -{ - return icom_set_raw(rig, C_CTL_MEM, S_MEM_PARM, parmbuflen, parmbuf, - val_bytes, value); -} - -int icom_get_custom_parm(RIG *rig, int parmbuflen, unsigned char *parmbuf, - int *value) -{ - return icom_get_raw(rig, C_CTL_MEM, S_MEM_PARM, parmbuflen, parmbuf, - value); -} - -int icom_set_custom_parm_time(RIG *rig, int parmbuflen, - unsigned char *parmbuf, int seconds) -{ - unsigned char cmdbuf[MAXFRAMELEN]; - int hour = (int)((float) seconds / 3600.0); - int min = (int)((float)(seconds - (hour * 3600)) / 60.0); - - if (parmbuflen > 0) - { - memcpy(cmdbuf, parmbuf, parmbuflen); - } - - to_bcd_be(cmdbuf + parmbuflen, (long long) hour, 2); - to_bcd_be(cmdbuf + parmbuflen + 1, (long long) min, 2); - - return icom_set_raw(rig, C_CTL_MEM, S_MEM_PARM, parmbuflen + 2, cmdbuf, 0, - 0); -} - -int icom_get_custom_parm_time(RIG *rig, int parmbuflen, - unsigned char *parmbuf, int *seconds) -{ - unsigned char resbuf[MAXFRAMELEN]; - int reslen = sizeof(resbuf); - int retval; - int hour, min; - - retval = - icom_get_raw_buf(rig, C_CTL_MEM, S_MEM_PARM, parmbuflen, parmbuf, - &reslen, resbuf); - - if (retval != RIG_OK) - { - return retval; - } - - hour = from_bcd_be(resbuf, 2); - min = from_bcd_be(resbuf + 1, 2); - *seconds = (hour * 3600) + (min * 60); - - return RIG_OK; -} - // Sets rig vfo && priv->curr_vfo to default VFOA, or current vfo, or the vfo requested static int set_vfo_curr(RIG *rig, vfo_t vfo, vfo_t curr_vfo) { diff --git a/rigs/icom/id51.c b/rigs/icom/id51.c index 5c1db723d..ae920c803 100644 --- a/rigs/icom/id51.c +++ b/rigs/icom/id51.c @@ -184,6 +184,7 @@ const struct rig_caps id51_caps = .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, .rig_close = icom_rig_open, + .set_powerstat = icom_set_powerstat, .set_freq = icom_set_freq, .get_freq = icom_get_freq,