mirror of
https://github.com/Hamlib/Hamlib.git
synced 2024-09-22 02:47:21 +00:00
Remove hard-coded constants.
Use more data already in rig->caps instead of hard coding values.
This commit is contained in:
parent
05f04730d7
commit
ea37ad1b21
@ -68,32 +68,20 @@ int kenwood_ts890_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||
/* possible values for TS890 0(=off), 1(=slow), 2(=mid), 3(=fast), 4(=off/Last) */
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s TS890S RIG_LEVEL_AGC\n", __func__);
|
||||
|
||||
switch (val.i)
|
||||
{
|
||||
case RIG_AGC_OFF:
|
||||
kenwood_val = 0;
|
||||
break;
|
||||
|
||||
case RIG_AGC_SLOW:
|
||||
kenwood_val = 1;
|
||||
break;
|
||||
|
||||
case RIG_AGC_MEDIUM:
|
||||
kenwood_val = 2;
|
||||
break;
|
||||
|
||||
case RIG_AGC_FAST:
|
||||
kenwood_val = 3;
|
||||
break;
|
||||
|
||||
case RIG_AGC_AUTO:
|
||||
kenwood_val = 4;
|
||||
break;
|
||||
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unsupported agc value", __func__);
|
||||
kenwood_val = -1; /* Flag invalid value */
|
||||
for (int j = 0; j < rig->caps->agc_level_count; j++)
|
||||
{
|
||||
if (val.i == rig->caps->agc_levels[j])
|
||||
{
|
||||
kenwood_val = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( kenwood_val < 0)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unsupported agc value:%d\n", __func__, val.i);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
SNPRINTF(levelbuf, sizeof(levelbuf), "GC%d", kenwood_val);
|
||||
break;
|
||||
@ -228,47 +216,23 @@ int kenwood_ts890_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||
return RIG_OK;
|
||||
|
||||
case RIG_LEVEL_AGC:
|
||||
retval = kenwood_transaction(rig, "GC", ackbuf, sizeof(ackbuf));
|
||||
ack_len_expected = 3;
|
||||
retval = kenwood_safe_transaction(rig, "GC", ackbuf, sizeof(ackbuf), 3);
|
||||
|
||||
if (RIG_OK != retval)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
ack_len = strlen(ackbuf);
|
||||
|
||||
if (ack_len != ack_len_expected)
|
||||
{
|
||||
levelint = ackbuf[2] - '0'; /* atoi */
|
||||
if (levelint >= 0 && levelint < rig->caps->agc_level_count)
|
||||
{
|
||||
val->i = rig->caps->agc_levels[levelint];
|
||||
}
|
||||
else
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unknown agc value: %s\n", __func__, ackbuf);
|
||||
return -RIG_EPROTO;
|
||||
}
|
||||
|
||||
switch (ackbuf[ack_len_expected - 1])
|
||||
{
|
||||
case '0':
|
||||
val->i = RIG_AGC_OFF;
|
||||
break;
|
||||
|
||||
case '1':
|
||||
val->i = RIG_AGC_SLOW;
|
||||
|
||||
break;
|
||||
|
||||
case '2':
|
||||
val->i = RIG_AGC_MEDIUM;
|
||||
break;
|
||||
|
||||
case '3':
|
||||
val->i = RIG_AGC_FAST;
|
||||
break;
|
||||
|
||||
case '4':
|
||||
val->i = RIG_AGC_AUTO;
|
||||
break;
|
||||
|
||||
default:
|
||||
return -RIG_EPROTO;
|
||||
}
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user