From b1bef6101b7a1c22139826aba2787c7277c08f24 Mon Sep 17 00:00:00 2001 From: George Baltz N3GB Date: Thu, 3 Aug 2023 09:56:38 -0400 Subject: [PATCH] Convert RFPOWER to level_gran usage Two rigs (FTDX3000dm & FT450D) handled slightly abnormally - both should function as before. Remove 2 now unused variables to avoid compiler warnings. --- rigs/yaesu/ft1200.c | 1 + rigs/yaesu/ft3000.c | 1 + rigs/yaesu/ft710.c | 1 + rigs/yaesu/ft891.c | 1 + rigs/yaesu/ft950.c | 1 + rigs/yaesu/ft991.c | 1 + rigs/yaesu/ftdx10.c | 1 + rigs/yaesu/ftdx101.c | 1 + rigs/yaesu/ftdx101mp.c | 1 + rigs/yaesu/level_gran_yaesu.h | 4 +-- rigs/yaesu/newcat.c | 51 ++++++++--------------------------- rigs/yaesu/yaesu.c | 2 ++ 12 files changed, 24 insertions(+), 42 deletions(-) diff --git a/rigs/yaesu/ft1200.c b/rigs/yaesu/ft1200.c index 39477ff40..85d890fa5 100644 --- a/rigs/yaesu/ft1200.c +++ b/rigs/yaesu/ft1200.c @@ -177,6 +177,7 @@ const struct rig_caps ftdx1200_caps = [LVL_NOTCHF] = { .min = { .i = 1 }, .max = { .i = 4000 }, .step = { .i = 10 } }, [LVL_MICGAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_MONITOR_GAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, + [LVL_RFPOWER] = { .min = { .f = .05 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, }, .ctcss_list = common_ctcss_list, .dcs_list = NULL, diff --git a/rigs/yaesu/ft3000.c b/rigs/yaesu/ft3000.c index 6973de01a..9696677a8 100644 --- a/rigs/yaesu/ft3000.c +++ b/rigs/yaesu/ft3000.c @@ -272,6 +272,7 @@ const struct rig_caps ftdx3000_caps = [LVL_NOTCHF] = { .min = { .i = 1 }, .max = { .i = 4000 }, .step = { .i = 10 } }, [LVL_MICGAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_MONITOR_GAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, + [LVL_RFPOWER] = { .min = { .f = .05 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, }, .ctcss_list = common_ctcss_list, .dcs_list = NULL, diff --git a/rigs/yaesu/ft710.c b/rigs/yaesu/ft710.c index 5c7ada307..b3a8e4f6b 100644 --- a/rigs/yaesu/ft710.c +++ b/rigs/yaesu/ft710.c @@ -148,6 +148,7 @@ const struct rig_caps ft710_caps = [LVL_MICGAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_SQL] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_MONITOR_GAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, + [LVL_RFPOWER] = { .min = { .f = .05 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, }, .ctcss_list = common_ctcss_list, .dcs_list = NULL, diff --git a/rigs/yaesu/ft891.c b/rigs/yaesu/ft891.c index 0f2229a6e..09c1c6adc 100644 --- a/rigs/yaesu/ft891.c +++ b/rigs/yaesu/ft891.c @@ -161,6 +161,7 @@ const struct rig_caps ft891_caps = [LVL_MICGAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_SQL] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_MONITOR_GAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, + [LVL_RFPOWER] = { .min = { .f = .05 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, }, .ctcss_list = common_ctcss_list, .dcs_list = NULL, diff --git a/rigs/yaesu/ft950.c b/rigs/yaesu/ft950.c index 01abb261f..27d67023a 100644 --- a/rigs/yaesu/ft950.c +++ b/rigs/yaesu/ft950.c @@ -113,6 +113,7 @@ const struct rig_caps ft950_caps = [LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 1050 }, .step = { .i = 50 } }, [LVL_KEYSPD] = { .min = { .i = 4 }, .max = { .i = 60 }, .step = { .i = 1 } }, [LVL_NOTCHF] = { .min = { .i = 1 }, .max = { .i = 3000 }, .step = { .i = 10 } }, + [LVL_RFPOWER] = { .min = { .f = .05 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, }, .ctcss_list = common_ctcss_list, .dcs_list = NULL, diff --git a/rigs/yaesu/ft991.c b/rigs/yaesu/ft991.c index 7c5b27bc0..d13f67b86 100644 --- a/rigs/yaesu/ft991.c +++ b/rigs/yaesu/ft991.c @@ -166,6 +166,7 @@ const struct rig_caps ft991_caps = [LVL_MICGAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_SQL] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_MONITOR_GAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, + [LVL_RFPOWER] = { .min = { .f = .05 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, }, .ctcss_list = common_ctcss_list, .dcs_list = common_dcs_list, diff --git a/rigs/yaesu/ftdx10.c b/rigs/yaesu/ftdx10.c index 35ae64b82..d411b26a4 100644 --- a/rigs/yaesu/ftdx10.c +++ b/rigs/yaesu/ftdx10.c @@ -164,6 +164,7 @@ const struct rig_caps ftdx10_caps = [LVL_MICGAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_SQL] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_MONITOR_GAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, + [LVL_RFPOWER] = { .min = { .f = .05 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, }, .ctcss_list = common_ctcss_list, .dcs_list = NULL, diff --git a/rigs/yaesu/ftdx101.c b/rigs/yaesu/ftdx101.c index d06b384b4..6922a17ff 100644 --- a/rigs/yaesu/ftdx101.c +++ b/rigs/yaesu/ftdx101.c @@ -164,6 +164,7 @@ const struct rig_caps ftdx101d_caps = [LVL_MICGAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_SQL] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_MONITOR_GAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, + [LVL_RFPOWER] = { .min = { .f = .05 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, }, .ctcss_list = common_ctcss_list, .dcs_list = NULL, diff --git a/rigs/yaesu/ftdx101mp.c b/rigs/yaesu/ftdx101mp.c index 9ef8d46d9..78673c8ce 100644 --- a/rigs/yaesu/ftdx101mp.c +++ b/rigs/yaesu/ftdx101mp.c @@ -101,6 +101,7 @@ const struct rig_caps ftdx101mp_caps = [LVL_MICGAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_SQL] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, [LVL_MONITOR_GAIN] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, + [LVL_RFPOWER] = { .min = { .f = .05 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } }, }, .ctcss_list = common_ctcss_list, .dcs_list = NULL, diff --git a/rigs/yaesu/level_gran_yaesu.h b/rigs/yaesu/level_gran_yaesu.h index 7fdb383ff..c440455f1 100644 --- a/rigs/yaesu/level_gran_yaesu.h +++ b/rigs/yaesu/level_gran_yaesu.h @@ -17,7 +17,7 @@ /* levels with time units */ [LVL_VOXDELAY] = { .min = { .i = 3 }, .max = { .i = 300 }, .step = { .i = 1 } }, [LVL_BKINDL] = { .min = { .i = 30 }, .max = { .i = 3000 }, .step = { .i = 1 } }, - [LVL_BKIN_DLYMS] = { .min = { .i = 30 }, .max = { .i = 3000 }, .step = { .i = 1 } }, + [LVL_BKIN_DLYMS] = { .min = { .i = 30 }, .max = { .i = 3000 }, .step = { .i = 1 } }, /* levels with watt units */ [LVL_RFPOWER_METER_WATTS] = { .min = { .f = .0 }, .max = { .f = 100 }, .step = { .f = 1.0f/255.0f } }, /* level with misc units */ @@ -28,7 +28,7 @@ /* levels with 0-1 values -- increment based on rig's range */ [LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1 }, .step = { .f = 1.0f/255.0f } }, [LVL_RF] = { .min = { .f = 0 }, .max = { .f = 1 }, .step = { .f = 1.0f/255.0f } }, - [LVL_RFPOWER] = { .min = { .f = .05 }, .max = { .f = 1 }, .step = { .f = 1.0f/100.0f } }, + [LVL_RFPOWER] = { .min = { .f = 5.0/255.0 }, .max = { .f = 1 }, .step = { .f = 1.0f/255.0f } }, [LVL_RFPOWER_METER] = { .min = { .f = 0 }, .max = { .f = 1 }, .step = { .f = 1.0f/255.0f } }, [LVL_COMP_METER] = { .min = { .f = 0 }, .max = { .f = 1 }, .step = { .f = 1.0f/255.0f } }, [LVL_ID_METER] = { .min = { .f = 0 }, .max = { .f = 1 }, .step = { .f = 1.0f/255.0f } }, diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index e990624e5..2fd09f867 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -3999,7 +3999,6 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) struct newcat_priv_data *priv = (struct newcat_priv_data *)rig->state.priv; int err; int i; - int scale; int fpf; char main_sub_vfo = '0'; char *format; @@ -4035,26 +4034,16 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) RETURNFUNC(-RIG_ENAVAIL); } - if (is_ft950 || is_ftdx1200 || is_ftdx3000 || is_ft891 || is_ft991 || is_ft710 - || is_ftdx101d || is_ftdx101mp || is_ftdx10) - { - scale = 100.; - } - else if (is_ft450 && newcat_get_rigid(rig) == NC_RIGID_FT450D) - { - scale = 100.; - } - else if (is_ftdx3000dm) - { - scale = 50; - } - else - { - scale = 255.; - } - - fpf = newcat_scale_float(scale, val.f); + if ( is_ftdx3000dm ) /* No separate rig->caps for this rig :-( */ + { + fpf = (int)((val.f * 50.0f) + 0.5f); + } + else + { + fpf = (int)((val.f / level_info->step.f) + 0.5f ); + } + //TODO Remove when global level checking enabled if (is_ft950 || is_ft891 || is_ft991 || is_ftdx3000 || is_ftdx3000dm || is_ftdx101d || is_ftdx101mp || is_ftdx10) @@ -4065,6 +4054,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) fpf = 5; } } + //endTODO SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "PC%03d%c", fpf, cat_term); break; @@ -4880,7 +4870,6 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) int ret_data_len; char *retlvl; int retlvl_len; - float scale; char main_sub_vfo = '0'; int i; gran_t *level_info; @@ -5436,25 +5425,6 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) switch (level) { - case RIG_LEVEL_RFPOWER: - if (is_ft950 || is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm || is_ft891 - || is_ft991 || is_ft710 - || is_ftdx101d || is_ftdx101mp || is_ftdx10) - { - scale = 100.; - } - else if (is_ft450 && newcat_get_rigid(rig) == NC_RIGID_FT450D) - { - scale = 100.; - } - else - { - scale = 255.; - } - - val->f = (float)atoi(retlvl) / scale; - break; - case RIG_LEVEL_SWR: if (retlvl_len > 3) { @@ -5597,6 +5567,7 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) case RIG_LEVEL_ANTIVOX: case RIG_LEVEL_MICGAIN: case RIG_LEVEL_VOXGAIN: + case RIG_LEVEL_RFPOWER: case RIG_LEVEL_MONITOR_GAIN: val->f = (float)atoi(retlvl) * level_info->step.f; break; diff --git a/rigs/yaesu/yaesu.c b/rigs/yaesu/yaesu.c index e1e0d7633..19aec375e 100644 --- a/rigs/yaesu/yaesu.c +++ b/rigs/yaesu/yaesu.c @@ -72,6 +72,8 @@ DECLARE_INITRIG_BACKEND(yaesu) ft450d_caps = ft450_caps; ft450d_caps.rig_model = RIG_MODEL_FT450D; ft450d_caps.model_name = "FT-450D"; + ft450d_caps.level_gran[LVL_RFPOWER].min.f = .05; + ft450d_caps.level_gran[LVL_RFPOWER].step.f = 1.0f/100.0f; rig_register(&ft100_caps); rig_register(&ft450_caps); rig_register(&ft450d_caps);