kopia lustrzana https://github.com/Hamlib/Hamlib
Fix TS590S/SG RIG_STRENGTH readings
rodzic
d1b545beac
commit
b0cd3ada11
|
@ -1835,26 +1835,43 @@ int kenwood_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
return -RIG_EINVAL;
|
||||
|
||||
char lvlbuf[KENWOOD_MAX_BUF_LEN];
|
||||
char *cmd;
|
||||
int retval;
|
||||
int lvl;
|
||||
int i, ret, agclevel;
|
||||
int i, ret, agclevel, len;
|
||||
|
||||
switch (level) {
|
||||
case RIG_LEVEL_RAWSTR:
|
||||
retval = kenwood_safe_transaction(rig, "SM", lvlbuf, 10, 6);
|
||||
if (RIG_MODEL_TS590S == rig->caps->rig_model || RIG_MODEL_TS590SG == rig->caps->rig_model) {
|
||||
cmd = "SM0";
|
||||
len= 3;
|
||||
}
|
||||
else {
|
||||
cmd = "SM";
|
||||
len = 2;
|
||||
}
|
||||
retval = kenwood_safe_transaction(rig, cmd, lvlbuf, 10, len+4);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
/* XXX atoi ? */
|
||||
sscanf(lvlbuf+2, "%d", &val->i); /* rawstr */
|
||||
sscanf(lvlbuf+len, "%d", &val->i); /* rawstr */
|
||||
break;
|
||||
|
||||
case RIG_LEVEL_STRENGTH:
|
||||
retval = kenwood_safe_transaction(rig, "SM", lvlbuf, 10, 6);
|
||||
if (RIG_MODEL_TS590S == rig->caps->rig_model || RIG_MODEL_TS590SG == rig->caps->rig_model) {
|
||||
cmd = "SM0";
|
||||
len = 3;
|
||||
}
|
||||
else {
|
||||
cmd = "SM";
|
||||
len = 2;
|
||||
}
|
||||
retval = kenwood_safe_transaction(rig, "SM", lvlbuf, 10, len+4);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
sscanf(lvlbuf+2, "%d", &val->i); /* rawstr */
|
||||
sscanf(lvlbuf+len, "%d", &val->i); /* rawstr */
|
||||
|
||||
if (rig->caps->str_cal.size)
|
||||
val->i = (int) rig_raw2val(val->i, &rig->caps->str_cal);
|
||||
|
|
|
@ -60,6 +60,23 @@ const char* ts590_get_info(RIG *rig);
|
|||
.flags=RIG_CHFLAG_SKIP \
|
||||
}
|
||||
|
||||
#define TS590_STR_CAL {13, {\
|
||||
{0x00, -54},\
|
||||
{0x04, -48},\
|
||||
{0x08, -42},\
|
||||
{0x0C, -36},\
|
||||
{0x10, -30},\
|
||||
{0x14, -24},\
|
||||
{0x18, -18},\
|
||||
{0x1C, -12},\
|
||||
{0x20, -6},\
|
||||
{0x24, 0},\
|
||||
{0x28, 20},\
|
||||
{0x2C, 40},\
|
||||
{0x30, 60}}\
|
||||
}
|
||||
|
||||
|
||||
static struct kenwood_priv_caps ts590_priv_caps = {
|
||||
.cmdtrm = EOM_KEN,
|
||||
};
|
||||
|
@ -187,6 +204,7 @@ const struct rig_caps ts590_caps = {
|
|||
{RIG_MODE_FM, kHz(12)},
|
||||
RIG_FLT_END,
|
||||
},
|
||||
.str_cal = TS590_STR_CAL,
|
||||
.priv = (void *) &ts590_priv_caps,
|
||||
.rig_init = kenwood_init,
|
||||
.rig_cleanup = kenwood_cleanup,
|
||||
|
@ -354,6 +372,7 @@ const struct rig_caps ts590sg_caps = {
|
|||
{RIG_MODE_FM, kHz(12)},
|
||||
RIG_FLT_END,
|
||||
},
|
||||
.str_cal = TS590_STR_CAL,
|
||||
.priv = (void *) &ts590_priv_caps,
|
||||
.rig_init = kenwood_init,
|
||||
.rig_cleanup = kenwood_cleanup,
|
||||
|
|
Ładowanie…
Reference in New Issue