Update newcat.c for FTDX101D MS command now using VFO selection

https://github.com/Hamlib/Hamlib/issues/385

(cherry picked from commit c9cfd40e91)
Hamlib-4.0
Michael Black W9MDB 2020-09-28 09:11:14 -05:00 zatwierdzone przez Nate Bargmann
rodzic 7c008339e9
commit f43a266cdf
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: F72625E2EDBED598
1 zmienionych plików z 20 dodań i 7 usunięć

Wyświetl plik

@ -2527,6 +2527,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
int scale; int scale;
int fpf; int fpf;
char main_sub_vfo = '0'; char main_sub_vfo = '0';
char *format;
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
@ -2538,7 +2539,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
return err; return err;
} }
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE) if (rig->caps->targetable_vfo & RIG_TARGETABLE_PURE)
{ {
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0'; main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
} }
@ -2684,10 +2685,22 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
{ {
return -RIG_ENAVAIL; return -RIG_ENAVAIL;
} }
if (newcat_is_rig(rig, RIG_MODEL_TS890S)) // new format for the command with VFO selection
{
format = "MS0%d;";
if (vfo == RIG_VFO_SUB)
{
format = "MS1%d";
}
}
else
{
format = "MS%d";
}
switch (val.i) switch (val.i)
{ {
case RIG_METER_ALC: snprintf(priv->cmd_str, sizeof(priv->cmd_str), "MS1;"); case RIG_METER_ALC: snprintf(priv->cmd_str, sizeof(priv->cmd_str), format, 1);
break; break;
case RIG_METER_PO: case RIG_METER_PO:
@ -2697,21 +2710,21 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
} }
else else
{ {
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "MS2;"); snprintf(priv->cmd_str, sizeof(priv->cmd_str), format, 2);
} }
break; break;
case RIG_METER_SWR: snprintf(priv->cmd_str, sizeof(priv->cmd_str), "MS3;"); case RIG_METER_SWR: snprintf(priv->cmd_str, sizeof(priv->cmd_str), format, 3);
break; break;
case RIG_METER_COMP: snprintf(priv->cmd_str, sizeof(priv->cmd_str), "MS0;"); case RIG_METER_COMP: snprintf(priv->cmd_str, sizeof(priv->cmd_str), format, 0);
break; break;
case RIG_METER_IC: snprintf(priv->cmd_str, sizeof(priv->cmd_str), "MS4;"); case RIG_METER_IC: snprintf(priv->cmd_str, sizeof(priv->cmd_str), format, 4);
break; break;
case RIG_METER_VDD: snprintf(priv->cmd_str, sizeof(priv->cmd_str), "MS5;"); case RIG_METER_VDD: snprintf(priv->cmd_str, sizeof(priv->cmd_str), format, 5);
break; break;
default: return -RIG_EINVAL; default: return -RIG_EINVAL;