From 5fdf98ec57982f6dc29e960dc4a6218d63e03a68 Mon Sep 17 00:00:00 2001 From: Michael Black W9MDB Date: Wed, 30 Sep 2020 21:35:06 -0700 Subject: [PATCH] Remove unneeded k3 code from kenwood.c Implement RFPOWER for kx3 https://github.com/Hamlib/Hamlib/issues/388 --- rigs/kenwood/k3.c | 5 ++++ rigs/kenwood/kenwood.c | 58 +++++------------------------------------- 2 files changed, 12 insertions(+), 51 deletions(-) diff --git a/rigs/kenwood/k3.c b/rigs/kenwood/k3.c index 28bc75e18..bff4f9a69 100644 --- a/rigs/kenwood/k3.c +++ b/rigs/kenwood/k3.c @@ -1681,6 +1681,11 @@ int k3_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) snprintf(levelbuf, sizeof(levelbuf), "ML%03d", (int)(val.f * 60.0f)); break; + case RIG_LEVEL_RFPOWER: + // range is 0-12 if there is no KPA3 installed + snprintf(levelbuf, sizeof(levelbuf), "PC%03d", (int)(val.f * 12.0f)); + break; + default: return kenwood_set_level(rig, vfo, level, val); } diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index beca782a4..94e33e4f6 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -2203,15 +2203,7 @@ int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) /* * Best estimate: 1.0 corresponds to 100W */ - if (RIG_IS_K3 || RIG_IS_KX3 || RIG_IS_KX2) - { - kenwood_val = val.f * 12; - } // range is 0-12 if there is no KPA3 installed - else - { - kenwood_val = val.f * 100; - } - + kenwood_val = val.f * 100; snprintf(levelbuf, sizeof(levelbuf), "PC%03d", kenwood_val); break; @@ -2247,14 +2239,8 @@ int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) case RIG_LEVEL_MICGAIN: - /* XXX check level range */ - if (RIG_IS_KX2 || RIG_IS_KX3 || RIG_IS_K2 || RIG_IS_K3 || RIG_IS_K3S) { // range is 0-255 - kenwood_val = val.f * 100 * (60.0/255.0); - } - else { // range is 0-100 - kenwood_val = val.f * 100; - } - + if (val.f > 1.0 || val.f < 0) { return -RIG_EINVAL; } + kenwood_val = val.f * 100; snprintf(levelbuf, sizeof(levelbuf), "MG%03d", kenwood_val); break; @@ -2262,21 +2248,8 @@ int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) /* XXX check level range */ // KX2 and KX3 have range -190 to 250 - if (val.f > 1.0) { return -RIG_EINVAL; } - - if (RIG_IS_KX2 || RIG_IS_KX3) - { - kenwood_val = val.f * (250.0 - 190.0) + 190; - } - else if (RIG_IS_K3 || RIG_IS_K3S) - { - kenwood_val = val.f * (250.0 / 100.0); - } - else // other kenwood rigs - { - kenwood_val = val.f * 255.0; - } - + if (val.f > 1.0 || val.f < 0) { return -RIG_EINVAL; } + kenwood_val = val.f * 255.0; snprintf(levelbuf, sizeof(levelbuf), "RG%03d", kenwood_val); break; @@ -2587,23 +2560,11 @@ int kenwood_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) break; case RIG_LEVEL_RFPOWER: -#if 0 // TBD - if (RIG_IS_K3) { // see if KPA3 is enabled - ret = get_kenwood_level(rig, "MP055", NULL, &val->i); - if (val->i == - } -#endif /* * an answer "PC100" means 100 Watt */ ret = get_kenwood_level(rig, "PC", NULL, &val->i); - if (RIG_IS_K3 || RIG_IS_KX3 || RIG_IS_KX2) - { // range is 0-12 if there is no KPA3 installed - val->f = val->i / 12.0; - } - else { - val->f = val->f / 100.0; - } + val->f = val->f / 100.0; return ret; case RIG_LEVEL_AF: @@ -2700,12 +2661,7 @@ int kenwood_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) rig_debug(RIG_DEBUG_ERR, "%s: Error getting MICGAIN\n", __func__); return ret; } - if (RIG_IS_KX2 || RIG_IS_KX3 || RIG_IS_K2 || RIG_IS_K3 || RIG_IS_K3S) { - val->f = val->i * (255.0/60.0); - } - else { - val->f = val->i / 255.0; - } + val->f = val->i / 255.0; return RIG_OK; case RIG_LEVEL_AGC: