kopia lustrzana https://github.com/Hamlib/Hamlib
Fix flrig set_micgain to use i4 format
rodzic
a9a806f8e0
commit
00a7f2c749
|
@ -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,
|
||||
"<params><param><value><double>%d</double></value></param></params>",
|
||||
(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,
|
||||
"<params><param><value><%s>%d</%s></value></param></params>",
|
||||
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);
|
||||
|
|
Ładowanie…
Reference in New Issue