From 00a7f2c749396160b289d6250ffe898336e89040 Mon Sep 17 00:00:00 2001 From: Michael Black W9MDB Date: Tue, 12 Jan 2021 23:03:20 -0600 Subject: [PATCH] Fix flrig set_micgain to use i4 format --- rigs/dummy/flrig.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/rigs/dummy/flrig.c b/rigs/dummy/flrig.c index dacd414c0..46eea2deb 100644 --- a/rigs/dummy/flrig.c +++ b/rigs/dummy/flrig.c @@ -58,7 +58,7 @@ RIG_MODE_FM | RIG_MODE_WFM | RIG_MODE_FMN | RIG_MODE_PKTFM |\ RIG_MODE_C4FM) -#define FLRIG_LEVELS (RIG_LEVEL_AF | RIG_LEVEL_RF | RIG_LEVEL_MICGAIN | RIG_LEVEL_STRENGTH | RIG_LEVEL_RFPOWER_METER | RIG_LEVEL_RFPOWER_METER_WATTS) +#define FLRIG_LEVELS (RIG_LEVEL_AF | RIG_LEVEL_RF | RIG_LEVEL_MICGAIN | RIG_LEVEL_STRENGTH | RIG_LEVEL_RFPOWER_METER | RIG_LEVEL_RFPOWER_METER_WATTS | RIG_LEVEL_RFPOWER) #define streq(s1,s2) (strcmp(s1,s2)==0) @@ -1883,6 +1883,7 @@ static int flrig_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) int retval; char cmd_arg[MAXARGLEN]; char *cmd; + char *param_type="i4"; rig_debug(RIG_DEBUG_TRACE, "%s: vfo=%s level=%d, val=%f\n", __func__, rig_strvfo(vfo), (int)level, val.f); @@ -1894,23 +1895,26 @@ static int flrig_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) return -RIG_EINVAL; } - sprintf(cmd_arg, - "%d", - (int)val.f); - switch (level) { - case RIG_LEVEL_RF: cmd = "rig.set_rfgain"; break; + case RIG_LEVEL_RF: cmd = "rig.set_rfgain"; val.f*= 100; break; - case RIG_LEVEL_AF: cmd = "rig.set_volume"; break; + case RIG_LEVEL_AF: cmd = "rig.set_volume"; val.f*= 100; break; - case RIG_LEVEL_MICGAIN: cmd = "rig.set_micgain"; break; + case RIG_LEVEL_MICGAIN: cmd = "rig.set_micgain"; val.f*= 100; break; + + case RIG_LEVEL_RFPOWER: cmd = "rig.set_power"; val.f*= 100; break; default: rig_debug(RIG_DEBUG_ERR, "%s: invalid level=%d\n", __func__, (int)level); return -RIG_EINVAL; } + sprintf(cmd_arg, + "<%s>%d", + param_type, (int)val.f, param_type); + + retval = flrig_transaction(rig, cmd, cmd_arg, NULL, 0); if (retval < 0) @@ -1945,6 +1949,8 @@ static int flrig_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) case RIG_LEVEL_MICGAIN: cmd = "rig.get_micgain"; break; case RIG_LEVEL_STRENGTH: cmd = "rig.get_smeter"; break; + + case RIG_LEVEL_RFPOWER: cmd = "rig.get_power"; break; case RIG_LEVEL_RFPOWER_METER_WATTS: case RIG_LEVEL_RFPOWER_METER: cmd = "rig.get_pwrmeter"; break; @@ -1972,6 +1978,11 @@ static int flrig_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) rig_debug(RIG_DEBUG_TRACE, "%s: val.i='%s'(%d)\n", __func__, value, val->i); break; + case RIG_LEVEL_RFPOWER: + val->f = atof(value) / 100.0 * priv->powermeter_scale; + rig_debug(RIG_DEBUG_TRACE, "%s: val.f='%s'(%g)\n", __func__, value, val->f); + break; + case RIG_LEVEL_RFPOWER_METER: val->f = atof(value) / 100.0 * priv->powermeter_scale; rig_debug(RIG_DEBUG_TRACE, "%s: val.f='%s'(%g)\n", __func__, value, val->f);