Michael Black W9MDB 2020-10-06 14:44:35 +01:00
rodzic f2f5c9a1af
commit fd8c05b01d
2 zmienionych plików z 22 dodań i 7 usunięć

Wyświetl plik

@ -435,7 +435,7 @@ const struct rig_caps ftdx101d_caps =
RIG_MODEL(RIG_MODEL_FTDX101D), RIG_MODEL(RIG_MODEL_FTDX101D),
.model_name = "FT-DX101D", .model_name = "FT-DX101D",
.mfg_name = "Yaesu", .mfg_name = "Yaesu",
.version = NEWCAT_VER ".2", .version = NEWCAT_VER ".3",
.copyright = "LGPL", .copyright = "LGPL",
.status = RIG_STATUS_STABLE, .status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER, .rig_type = RIG_TYPE_TRANSCEIVER,
@ -468,7 +468,7 @@ const struct rig_caps ftdx101d_caps =
.attenuator = { 6, 12, 18, RIG_DBLST_END, }, .attenuator = { 6, 12, 18, RIG_DBLST_END, },
.max_rit = Hz(9999), .max_rit = Hz(9999),
.max_xit = Hz(9999), .max_xit = Hz(9999),
.max_ifshift = Hz(1000), .max_ifshift = Hz(1200),
.vfo_ops = FTDX5000_VFO_OPS, .vfo_ops = FTDX5000_VFO_OPS,
.targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE | RIG_TARGETABLE_FUNC | RIG_TARGETABLE_PURE, .targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE | RIG_TARGETABLE_FUNC | RIG_TARGETABLE_PURE,
.transceive = RIG_TRN_OFF, /* May enable later as the 5000 has an Auto Info command */ .transceive = RIG_TRN_OFF, /* May enable later as the 5000 has an Auto Info command */

Wyświetl plik

@ -2624,7 +2624,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
{ {
return -RIG_ENAVAIL; return -RIG_ENAVAIL;
} }
rig_debug(RIG_DEBUG_TRACE, "%s: LEVEL_IF val.i=%d\n", __func__, val.i);
if (abs(val.i) > rig->caps->max_ifshift) if (abs(val.i) > rig->caps->max_ifshift)
{ {
if (val.i > 0) if (val.i > 0)
@ -2637,8 +2637,13 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
} }
} }
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "IS0%+.4d%c", val.i, if (is_ft101)
cat_term); /* problem with %+04d */ {
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "IS%c0%+.4d%c", main_sub_vfo, val.i, cat_term);
}
else {
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "IS%c%+.4d%c", main_sub_vfo, val.i, cat_term);
}
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE && !is_ft2000) if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE && !is_ft2000)
{ {
@ -3188,7 +3193,7 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
return -RIG_ENAVAIL; return -RIG_ENAVAIL;
} }
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "IS0%c", cat_term); snprintf(priv->cmd_str, sizeof(priv->cmd_str), "IS%c%c", main_sub_vfo, cat_term);
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE) if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
{ {
@ -3519,7 +3524,17 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
case RIG_LEVEL_RAWSTR: case RIG_LEVEL_RAWSTR:
case RIG_LEVEL_KEYSPD: case RIG_LEVEL_KEYSPD:
case RIG_LEVEL_IF: case RIG_LEVEL_IF:
val->i = atoi(retlvl); // IS00+0400
rig_debug(RIG_DEBUG_TRACE, "%s: ret_data=%s(%d), retlvl=%s\n", __func__, priv->ret_data, (int)strlen(priv->ret_data), retlvl);
if (strlen(priv->ret_data) == 9) {
int n = sscanf(priv->ret_data,"IS%*c0%d\n", &val->i);
if (n != 1) {
rig_debug(RIG_DEBUG_ERR, "%s: unable to parse level from %s\n", __func__, priv->ret_data);
}
}
else {
val->i = atoi(retlvl);
}
break; break;
case RIG_LEVEL_NR: case RIG_LEVEL_NR: