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%s>",
+ 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);