From 83c75fa8c6b7e2f63d86dcd9a29c909952c4b8ca Mon Sep 17 00:00:00 2001 From: Michael Black W9MDB Date: Fri, 19 Feb 2021 22:49:46 -0600 Subject: [PATCH] Fixing AF RFWPOWER and STRENGTH for TS480 https://github.com/Hamlib/Hamlib/issues/553 --- rigs/kenwood/kenwood.c | 4 ++-- rigs/kenwood/ts480.c | 24 ++++++++++++++---------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index 26956254f..e6f8bef05 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -2322,7 +2322,7 @@ static int kenwood_get_power_minmax(RIG *rig, int *power_now, int *power_min, rig_debug(RIG_DEBUG_TRACE, "%s: retval=%d\n", __func__, retval); - if (RIG_IS_TS890S) + if (RIG_IS_TS890S || RIG_IS_TS480) { expval = 6; } @@ -2677,7 +2677,7 @@ int kenwood_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) break; case RIG_LEVEL_STRENGTH: - if (RIG_IS_TS590S || RIG_IS_TS590SG) + if (RIG_IS_TS590S || RIG_IS_TS590SG || RIG_IS_TS480) { cmd = "SM0"; len = 3; diff --git a/rigs/kenwood/ts480.c b/rigs/kenwood/ts480.c index 7d781bcca..6a701e44a 100644 --- a/rigs/kenwood/ts480.c +++ b/rigs/kenwood/ts480.c @@ -119,7 +119,7 @@ kenwood_ts480_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) return kenwood_set_level(rig, vfo, level, val); case RIG_LEVEL_RF: - if (rig->caps->rig_model == RIG_MODEL_TS890S) + if (RIG_IS_TS890S) { rf_max_level = 255; } @@ -132,7 +132,7 @@ kenwood_ts480_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) case RIG_LEVEL_SQL: kenwood_val = val.f * 255; /* possible values for TS480 are 000.. 255 */ - if (rig->caps->rig_model == RIG_MODEL_TS890S) + if (RIG_IS_TS890S) { sprintf(levelbuf, "SQ%03d", kenwood_val); } @@ -148,7 +148,7 @@ kenwood_ts480_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) /* hamlib argument is int, possible values rig.h:enum agc_level_e */ /* possible values for TS480 000(=off), 001(=fast), 002(=slow) */ /* possible values for TS890 0(=off), 1(=slow), 2(=mid), 3(=fast), 4(=off/Last) */ - if (rig->caps->rig_model == RIG_MODEL_TS890S) + if (RIG_IS_TS890S) { rig_debug(RIG_DEBUG_VERBOSE, "%s TS890S RIG_LEVEL_AGC\n", __func__); @@ -220,7 +220,7 @@ kenwood_ts480_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) /* - * kenwood_get_level + * kenwood_ts480_get_level * Assumes rig!=NULL, val!=NULL */ int @@ -235,7 +235,7 @@ kenwood_ts480_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) rig_debug(RIG_DEBUG_TRACE, "%s called\n", __func__); - if (rig->caps->rig_model == RIG_MODEL_TS890S) + if (RIG_IS_TS890S || RIG_IS_TS480) { rf_max_level = 255; } @@ -247,7 +247,7 @@ kenwood_ts480_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) switch (level) { case RIG_LEVEL_AF: - if (rig->caps->rig_model == RIG_MODEL_TS890S) + if (RIG_IS_TS890S) { retval = kenwood_transaction(rig, "AG", ackbuf, sizeof(ackbuf)); offset_level = 2; @@ -279,6 +279,10 @@ kenwood_ts480_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) return RIG_OK; case RIG_LEVEL_RF: + if (RIG_IS_TS480) + { + rf_max_level = 100; + } retval = kenwood_transaction(rig, "RG", ackbuf, sizeof(ackbuf)); if (RIG_OK != retval) @@ -302,7 +306,7 @@ kenwood_ts480_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) return RIG_OK; case RIG_LEVEL_SQL: - if (rig->caps->rig_model == RIG_MODEL_TS890S) + if (RIG_IS_TS890S) { retval = kenwood_transaction(rig, "SQ", ackbuf, sizeof(ackbuf)); ack_len_expected = 5; @@ -334,7 +338,7 @@ kenwood_ts480_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) return RIG_OK; case RIG_LEVEL_AGC: - if (rig->caps->rig_model == RIG_MODEL_TS890S) + if (RIG_IS_TS890S) { retval = kenwood_transaction(rig, "GC", ackbuf, sizeof(ackbuf)); ack_len_expected = 3; @@ -364,7 +368,7 @@ kenwood_ts480_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) break; case '1': - if (rig->caps->rig_model == RIG_MODEL_TS890S) + if (RIG_IS_TS890S) { val->i = RIG_AGC_SLOW; } @@ -376,7 +380,7 @@ kenwood_ts480_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) break; case '2': - if (rig->caps->rig_model == RIG_MODEL_TS890S) + if (RIG_IS_TS890S) { val->i = RIG_AGC_MEDIUM; }