diff --git a/rigs/icom/ic7000.c b/rigs/icom/ic7000.c index aef25f6a4..a14eaf74d 100644 --- a/rigs/icom/ic7000.c +++ b/rigs/icom/ic7000.c @@ -95,13 +95,24 @@ { 120, 1.0f } \ } } -#define IC7000_RFPOWER_METER_CAL { 3, \ +#define IC7000_RFPOWER_METER_CAL { 13, \ { \ { 0, 0.0f }, \ - { 143, 0.5f }, \ - { 213, 1.0f } \ + { 21, 5.0f }, \ + { 43, 10.0f }, \ + { 65, 15.0f }, \ + { 83, 20.0f }, \ + { 95, 25.0f }, \ + { 105, 30.0f }, \ + { 114, 35.0f }, \ + { 124, 40.0f }, \ + { 143, 50.0f }, \ + { 183, 75.0f }, \ + { 213, 100.0f }, \ + { 255, 120.0f } \ } } + #define IC7000_COMP_METER_CAL { 3, \ { \ { 0, 0.0f }, \ diff --git a/rigs/icom/ic7100.c b/rigs/icom/ic7100.c index 50032220c..a1e1f6171 100644 --- a/rigs/icom/ic7100.c +++ b/rigs/icom/ic7100.c @@ -140,13 +140,24 @@ struct cmdparams ic7100_extcmds[] = { 120, 1.0f } \ } } -#define IC7100_RFPOWER_METER_CAL { 3, \ +#define IC7100_RFPOWER_METER_CAL { 13, \ { \ { 0, 0.0f }, \ - { 143, 0.5f }, \ - { 213, 1.0f } \ + { 21, 5.0f }, \ + { 43, 10.0f }, \ + { 65, 15.0f }, \ + { 83, 20.0f }, \ + { 95, 25.0f }, \ + { 105, 30.0f }, \ + { 114, 35.0f }, \ + { 124, 40.0f }, \ + { 143, 50.0f }, \ + { 183, 75.0f }, \ + { 213, 100.0f }, \ + { 255, 120.0f } \ } } + #define IC7100_COMP_METER_CAL { 3, \ { \ { 0, 0.0f }, \ diff --git a/rigs/icom/ic7200.c b/rigs/icom/ic7200.c index 411bd5cf8..f54430a64 100644 --- a/rigs/icom/ic7200.c +++ b/rigs/icom/ic7200.c @@ -84,13 +84,24 @@ { 120, 1.0f } \ } } -#define IC7200_RFPOWER_METER_CAL { 3, \ +#define IC7200_RFPOWER_METER_CAL { 13, \ { \ { 0, 0.0f }, \ - { 143, 0.5f }, \ - { 213, 1.0f } \ + { 21, 5.0f }, \ + { 43, 10.0f }, \ + { 65, 15.0f }, \ + { 83, 20.0f }, \ + { 95, 25.0f }, \ + { 105, 30.0f }, \ + { 114, 35.0f }, \ + { 124, 40.0f }, \ + { 143, 50.0f }, \ + { 183, 75.0f }, \ + { 213, 100.0f }, \ + { 255, 120.0f } \ } } + int ic7200_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val); int ic7200_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val); diff --git a/rigs/icom/ic7300.c b/rigs/icom/ic7300.c index 963093d07..c5ed85cf3 100644 --- a/rigs/icom/ic7300.c +++ b/rigs/icom/ic7300.c @@ -90,11 +90,21 @@ static int ic7300_get_parm(RIG *rig, setting_t parm, value_t *val); { 120, 1.0f } \ } } -#define IC7300_RFPOWER_METER_CAL { 3, \ +#define IC7300_RFPOWER_METER_CAL { 13, \ { \ { 0, 0.0f }, \ - { 143, 0.5f }, \ - { 213, 1.0f } \ + { 21, 5.0f }, \ + { 43, 10.0f }, \ + { 65, 15.0f }, \ + { 83, 20.0f }, \ + { 95, 25.0f }, \ + { 105, 30.0f }, \ + { 114, 35.0f }, \ + { 124, 40.0f }, \ + { 143, 50.0f }, \ + { 183, 75.0f }, \ + { 213, 100.0f }, \ + { 255, 120.0f } \ } } #define IC7300_COMP_METER_CAL { 3, \ @@ -166,11 +176,21 @@ static int ic7300_get_parm(RIG *rig, setting_t parm, value_t *val); { 120, 1.0f } \ } } -#define IC9700_RFPOWER_METER_CAL { 3, \ +#define IC9700_RFPOWER_METER_CAL { 13, \ { \ { 0, 0.0f }, \ - { 143, 0.5f }, \ - { 213, 1.0f } \ + { 21, 5.0f }, \ + { 43, 10.0f }, \ + { 65, 15.0f }, \ + { 83, 20.0f }, \ + { 95, 25.0f }, \ + { 105, 30.0f }, \ + { 114, 35.0f }, \ + { 124, 40.0f }, \ + { 143, 50.0f }, \ + { 183, 75.0f }, \ + { 213, 100.0f }, \ + { 255, 120.0f } \ } } #define IC9700_COMP_METER_CAL { 3, \ @@ -281,7 +301,7 @@ const struct rig_caps ic7300_caps = RIG_MODEL(RIG_MODEL_IC7300), .model_name = "IC-7300", .mfg_name = "Icom", - .version = BACKEND_VER ".2", + .version = BACKEND_VER ".3", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -454,7 +474,7 @@ const struct rig_caps ic9700_caps = RIG_MODEL(RIG_MODEL_IC9700), .model_name = "IC-9700", .mfg_name = "Icom", - .version = BACKEND_VER ".1", + .version = BACKEND_VER ".2", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, diff --git a/rigs/icom/ic7410.c b/rigs/icom/ic7410.c index 2c42920a4..d4ffdfd24 100644 --- a/rigs/icom/ic7410.c +++ b/rigs/icom/ic7410.c @@ -78,13 +78,24 @@ { 120, 1.0f } \ } } -#define IC7410_RFPOWER_METER_CAL { 3, \ +#define IC7410_RFPOWER_METER_CAL { 13, \ { \ { 0, 0.0f }, \ - { 143, 0.5f }, \ - { 213, 1.0f } \ + { 21, 5.0f }, \ + { 43, 10.0f }, \ + { 65, 15.0f }, \ + { 83, 20.0f }, \ + { 95, 25.0f }, \ + { 105, 30.0f }, \ + { 114, 35.0f }, \ + { 124, 40.0f }, \ + { 143, 50.0f }, \ + { 183, 75.0f }, \ + { 213, 100.0f }, \ + { 255, 120.0f } \ } } + 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 }, diff --git a/rigs/icom/ic756.c b/rigs/icom/ic756.c index f36bd4f7e..a434f1448 100644 --- a/rigs/icom/ic756.c +++ b/rigs/icom/ic756.c @@ -943,13 +943,24 @@ static const struct icom_priv_caps ic756pro3_priv_caps = { 120, 1.0f } \ } } -#define IC756PROIII_RFPOWER_METER_CAL { 3, \ +#define IC756PROIII_RFPOWER_METER_CAL { 13, \ { \ { 0, 0.0f }, \ - { 143, 0.5f }, \ - { 213, 1.0f } \ + { 21, 5.0f }, \ + { 43, 10.0f }, \ + { 65, 15.0f }, \ + { 83, 20.0f }, \ + { 95, 25.0f }, \ + { 105, 30.0f }, \ + { 114, 35.0f }, \ + { 124, 40.0f }, \ + { 143, 50.0f }, \ + { 183, 75.0f }, \ + { 213, 100.0f }, \ + { 255, 120.0f } \ } } + #define IC756PROIII_COMP_METER_CAL { 3, \ { \ { 0, 0.0f }, \ diff --git a/rigs/icom/ic7600.c b/rigs/icom/ic7600.c index 2c33c9d8d..4f3422dce 100644 --- a/rigs/icom/ic7600.c +++ b/rigs/icom/ic7600.c @@ -91,13 +91,24 @@ { 120, 1.0f } \ } } -#define IC7600_RFPOWER_METER_CAL { 3, \ +#define IC7600_RFPOWER_METER_CAL { 13, \ { \ { 0, 0.0f }, \ - { 143, 0.5f }, \ - { 213, 1.0f } \ + { 21, 5.0f }, \ + { 43, 10.0f }, \ + { 65, 15.0f }, \ + { 83, 20.0f }, \ + { 95, 25.0f }, \ + { 105, 30.0f }, \ + { 114, 35.0f }, \ + { 124, 40.0f }, \ + { 143, 50.0f }, \ + { 183, 75.0f }, \ + { 213, 100.0f }, \ + { 255, 120.0f } \ } } + #define IC7600_COMP_METER_CAL { 3, \ { \ { 0, 0.0f }, \ diff --git a/rigs/icom/ic7610.c b/rigs/icom/ic7610.c index dbb5be53a..f26b3b678 100644 --- a/rigs/icom/ic7610.c +++ b/rigs/icom/ic7610.c @@ -92,13 +92,24 @@ { 120, 1.0f } \ } } -#define IC7610_RFPOWER_METER_CAL { 3, \ +#define IC7610_RFPOWER_METER_CAL { 13, \ { \ { 0, 0.0f }, \ - { 143, 0.5f }, \ - { 212, 1.0f } \ + { 21, 5.0f }, \ + { 43, 10.0f }, \ + { 65, 15.0f }, \ + { 83, 20.0f }, \ + { 95, 25.0f }, \ + { 105, 30.0f }, \ + { 114, 35.0f }, \ + { 124, 40.0f }, \ + { 143, 50.0f }, \ + { 183, 75.0f }, \ + { 213, 100.0f }, \ + { 255, 120.0f } \ } } + #define IC7610_COMP_METER_CAL { 3, \ { \ { 0, 0.0f }, \ diff --git a/rigs/icom/ic7700.c b/rigs/icom/ic7700.c index 9e62eb0b6..0a1484533 100644 --- a/rigs/icom/ic7700.c +++ b/rigs/icom/ic7700.c @@ -76,13 +76,24 @@ { 120, 1.0f } \ } } -#define IC7700_RFPOWER_METER_CAL { 3, \ +#define IC7700_RFPOWER_METER_CAL { 13, \ { \ { 0, 0.0f }, \ - { 143, 0.5f }, \ - { 213, 1.0f } \ + { 21, 5.0f }, \ + { 43, 10.0f }, \ + { 65, 15.0f }, \ + { 83, 20.0f }, \ + { 95, 25.0f }, \ + { 105, 30.0f }, \ + { 114, 35.0f }, \ + { 124, 40.0f }, \ + { 143, 50.0f }, \ + { 183, 75.0f }, \ + { 213, 100.0f }, \ + { 255, 120.0f } \ } } + #define IC7700_COMP_METER_CAL { 3, \ { \ { 0, 0.0f }, \ diff --git a/rigs/icom/ic7800.c b/rigs/icom/ic7800.c index 715e30e14..83091b3c4 100644 --- a/rigs/icom/ic7800.c +++ b/rigs/icom/ic7800.c @@ -76,13 +76,24 @@ { 120, 1.0f } \ } } -#define IC7800_RFPOWER_METER_CAL { 3, \ +#define IC7800_RFPOWER_METER_CAL { 13, \ { \ { 0, 0.0f }, \ - { 143, 0.5f }, \ - { 213, 1.0f } \ + { 21, 5.0f }, \ + { 43, 10.0f }, \ + { 65, 15.0f }, \ + { 83, 20.0f }, \ + { 95, 25.0f }, \ + { 105, 30.0f }, \ + { 114, 35.0f }, \ + { 124, 40.0f }, \ + { 143, 50.0f }, \ + { 183, 75.0f }, \ + { 213, 100.0f }, \ + { 255, 120.0f } \ } } + #define IC7800_COMP_METER_CAL { 3, \ { \ { 0, 0.0f }, \ diff --git a/rigs/icom/ic785x.c b/rigs/icom/ic785x.c index 3703d5643..99029bb50 100644 --- a/rigs/icom/ic785x.c +++ b/rigs/icom/ic785x.c @@ -77,13 +77,24 @@ { 120, 1.0f } \ } } -#define IC785x_RFPOWER_METER_CAL { 3, \ +#define IC785x_RFPOWER_METER_CAL { 13, \ { \ { 0, 0.0f }, \ - { 143, 0.5f }, \ - { 213, 1.0f } \ + { 21, 5.0f }, \ + { 43, 10.0f }, \ + { 65, 15.0f }, \ + { 83, 20.0f }, \ + { 95, 25.0f }, \ + { 105, 30.0f }, \ + { 114, 35.0f }, \ + { 124, 40.0f }, \ + { 143, 50.0f }, \ + { 183, 75.0f }, \ + { 213, 100.0f }, \ + { 255, 120.0f } \ } } + #define IC785x_COMP_METER_CAL { 3, \ { \ { 0, 0.0f }, \ diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index 9c60086a4..26b7426f5 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -69,11 +69,21 @@ const cal_table_float_t icom_default_alc_cal = const cal_table_float_t icom_default_rfpower_meter_cal = { - 3, + 13, { - {0, 0.0f}, - {143, 0.5f}, - {213, 1.0f} + { 0, 0.0f }, + { 21, 5.0f }, + { 43, 10.0f }, + { 65, 15.0f }, + { 83, 20.0f }, + { 95, 25.0f }, + { 105, 30.0f }, + { 114, 35.0f }, + { 124, 40.0f }, + { 143, 50.0f }, + { 183, 75.0f }, + { 213, 100.0f }, + { 255, 120.0f } } }; @@ -3089,6 +3099,23 @@ int icom_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) break; case RIG_LEVEL_RFPOWER_METER: + // rig table in Watts needs to be divided by 100 + if (rig->caps->rfpower_meter_cal.size == 0) + { + val->f = + rig_raw2val_float(icom_val, &icom_default_rfpower_meter_cal) * 0.01; + } + else + { + val->f = + rig_raw2val_float(icom_val, &rig->caps->rfpower_meter_cal) * 0.01; + } + + break; + + case RIG_LEVEL_RFPOWER_METER_WATTS: + + // All Icom backends should be in Watts now if (rig->caps->rfpower_meter_cal.size == 0) { val->f = @@ -3102,30 +3129,6 @@ int icom_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) break; - case RIG_LEVEL_RFPOWER_METER_WATTS: - - // eventually we should change all the Icom tables to watts - if (rig->caps->rfpower_meter_cal.size == 0) - { - val->f = - rig_raw2val_float(icom_val, &icom_default_rfpower_meter_cal) * 100; - } - else - { - float scale = 100; - - if (rig->caps->rig_model == RIG_MODEL_IC705 - || rig->caps->rig_model == RIG_MODEL_IC703) - { - scale = 10; - } - - val->f = - rig_raw2val_float(icom_val, &rig->caps->rfpower_meter_cal) * scale; - } - - break; - case RIG_LEVEL_COMP_METER: if (rig->caps->comp_meter_cal.size == 0) { diff --git a/rigs/icom/icom.h b/rigs/icom/icom.h index 8e7923e32..17ecbd5ba 100644 --- a/rigs/icom/icom.h +++ b/rigs/icom/icom.h @@ -30,7 +30,7 @@ #include #endif -#define BACKEND_VER "20210203" +#define BACKEND_VER "20210212" /* * defines used by comp_cal_str in rig.c