kopia lustrzana https://github.com/Hamlib/Hamlib
Add get/set LEVEL_RF to PowerSDR
rodzic
ca8e49eb2b
commit
b47028c59d
|
@ -651,11 +651,19 @@ int powersdr_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
switch (level)
|
switch (level)
|
||||||
{
|
{
|
||||||
case RIG_LEVEL_AF:
|
case RIG_LEVEL_AF:
|
||||||
|
if (val.f > 1.0) return -RIG_EINVAL;
|
||||||
ival = val.f * 100;
|
ival = val.f * 100;
|
||||||
snprintf(cmd, sizeof(cmd) - 1, "ZZAG%03d", ival);
|
snprintf(cmd, sizeof(cmd) - 1, "ZZAG%03d", ival);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case RIG_LEVEL_RF:
|
||||||
|
if (val.f > 1.0) return -RIG_EINVAL;
|
||||||
|
ival = val.f * (120 - -20) - 20;
|
||||||
|
snprintf(cmd, sizeof(cmd) - 1, "ZZAR%+04d", ival);
|
||||||
|
break;
|
||||||
|
|
||||||
case RIG_LEVEL_MICGAIN:
|
case RIG_LEVEL_MICGAIN:
|
||||||
|
if (val.f > 1.0) return -RIG_EINVAL;
|
||||||
ival = val.f * (10 - -40) - 40;
|
ival = val.f * (10 - -40) - 40;
|
||||||
snprintf(cmd, sizeof(cmd) - 1, "ZZMG%03d", ival);
|
snprintf(cmd, sizeof(cmd) - 1, "ZZMG%03d", ival);
|
||||||
break;
|
break;
|
||||||
|
@ -670,11 +678,13 @@ int powersdr_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_LEVEL_VOXGAIN:
|
case RIG_LEVEL_VOXGAIN:
|
||||||
|
if (val.f > 1.0) return -RIG_EINVAL;
|
||||||
ival = val.f * 1000;
|
ival = val.f * 1000;
|
||||||
snprintf(cmd, sizeof(cmd) - 1, "ZZVG%04d", ival);
|
snprintf(cmd, sizeof(cmd) - 1, "ZZVG%04d", ival);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_LEVEL_SQL:
|
case RIG_LEVEL_SQL:
|
||||||
|
if (val.f > 1.0) return -RIG_EINVAL;
|
||||||
powersdr_get_mode(rig, vfo, &mode, &width);
|
powersdr_get_mode(rig, vfo, &mode, &width);
|
||||||
|
|
||||||
if (mode == RIG_MODE_FM)
|
if (mode == RIG_MODE_FM)
|
||||||
|
@ -784,7 +794,6 @@ int powersdr_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
|
|
||||||
switch (level)
|
switch (level)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
case RIG_LEVEL_AGC:
|
case RIG_LEVEL_AGC:
|
||||||
n = sscanf(lvlbuf + len, "%d", &val->i);
|
n = sscanf(lvlbuf + len, "%d", &val->i);
|
||||||
|
|
||||||
|
@ -812,10 +821,7 @@ int powersdr_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_LEVEL_RF:
|
case RIG_LEVEL_RF:
|
||||||
n = sscanf(lvlbuf + len, "%d", &i);
|
n = sscanf(lvlbuf + len, "%d", &val->i);
|
||||||
val->i = i;
|
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: lvlbuf+len=%s, len=%d, i=%d, val->i=%d\n", __func__, lvlbuf+len, len, i, val->i);
|
|
||||||
|
|
||||||
|
|
||||||
if (n != 1)
|
if (n != 1)
|
||||||
{
|
{
|
||||||
|
@ -823,8 +829,7 @@ int powersdr_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
__func__, lvlbuf);
|
__func__, lvlbuf);
|
||||||
return -RIG_EPROTO;
|
return -RIG_EPROTO;
|
||||||
}
|
}
|
||||||
val->f = (val->i + 20) / (120 - -20);
|
val->f = (val->i + 20.0) / (120.0 - -20.0);
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: lvlbuf=%s, val->i=%d, val->f=%g\n", __func__, lvlbuf, i, val->f);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1107,7 +1112,7 @@ const struct rig_caps powersdr_caps =
|
||||||
RIG_MODEL(RIG_MODEL_POWERSDR),
|
RIG_MODEL(RIG_MODEL_POWERSDR),
|
||||||
.model_name = "PowerSDR/Thetis",
|
.model_name = "PowerSDR/Thetis",
|
||||||
.mfg_name = "FlexRadio/ANAN",
|
.mfg_name = "FlexRadio/ANAN",
|
||||||
.version = "20200918.0",
|
.version = "20200930.0",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_STABLE,
|
.status = RIG_STATUS_STABLE,
|
||||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
|
|
Ładowanie…
Reference in New Issue