pull/1404/head
Mike Black W9MDB 2023-10-11 09:01:15 -05:00
rodzic 9c6e564006
commit 501c4b62c9
7 zmienionych plików z 165 dodań i 4 usunięć

Wyświetl plik

@ -120,6 +120,42 @@ const struct confparams ft991_ext_levels[] =
RIG_CONF_NUMERIC,
{ .n = { .min = 1, .max = 11, .step = 1 } },
},
{
TOK_MAXPOWER_HF,
"MAXPOWER_HF",
"Maxpower HF",
"Maxpower HF",
NULL,
RIG_CONF_INT,
{ .n = { .min = 5, .max = 100, .step = 1 } },
},
{
TOK_MAXPOWER_6M,
"MAXPOWER_6M",
"Maxpower 6m",
"Maxpower 6m",
NULL,
RIG_CONF_INT,
{ .n = { .min = 5, .max = 100, .step = 1 } },
},
{
TOK_MAXPOWER_VHF,
"MAXPOWER_VHF",
"Maxpower VHF",
"Maxpower VHF",
NULL,
RIG_CONF_INT,
{ .n = { .min = 5, .max = 50, .step = 1 } },
},
{
TOK_MAXPOWER_UHF,
"MAXPOWER_UHF",
"Maxpower UHF",
"Maxpower UHF",
NULL,
RIG_CONF_NUMERIC,
{ .n = { .min = 5, .max = 50, .step = 1 } },
},
{ RIG_CONF_END, NULL, }
};
@ -127,6 +163,7 @@ int ft991_ext_tokens[] =
{
TOK_KEYER, TOK_APF_FREQ, TOK_APF_WIDTH,
TOK_CONTOUR, TOK_CONTOUR_FREQ, TOK_CONTOUR_LEVEL, TOK_CONTOUR_WIDTH,
TOK_MAXPOWER_HF, TOK_MAXPOWER_6M, TOK_MAXPOWER_UHF, TOK_MAXPOWER_VHF,
TOK_BACKEND_NONE
};

Wyświetl plik

@ -120,6 +120,43 @@ const struct confparams ftdx101d_ext_levels[] =
RIG_CONF_NUMERIC,
{ .n = { .min = 1, .max = 11, .step = 1 } },
},
{
TOK_MAXPOWER_HF,
"MAXPOWER_HF",
"Maxpower HF",
"Maxpower HF",
NULL,
RIG_CONF_INT,
{ .n = { .min = 5, .max = 100, .step = 1 } },
},
{
TOK_MAXPOWER_6M,
"MAXPOWER_6M",
"Maxpower 6m",
"Maxpower 6m",
NULL,
RIG_CONF_INT,
{ .n = { .min = 5, .max = 100, .step = 1 } },
},
{
TOK_MAXPOWER_4M,
"MAXPOWER_4M",
"Maxpower 4m",
"Maxpower 4m",
NULL,
RIG_CONF_INT,
{ .n = { .min = 5, .max = 50, .step = 1 } },
},
{
TOK_MAXPOWER_AM,
"MAXPOWER_AM",
"Maxpower AM",
"Maxpower AM",
NULL,
RIG_CONF_NUMERIC,
{ .n = { .min = 5, .max = 25, .step = 1 } },
},
{ RIG_CONF_END, NULL, }
};
@ -127,6 +164,7 @@ int ftdx101d_ext_tokens[] =
{
TOK_ROOFING_FILTER, TOK_KEYER, TOK_APF_FREQ, TOK_APF_WIDTH,
TOK_CONTOUR, TOK_CONTOUR_FREQ, TOK_CONTOUR_LEVEL, TOK_CONTOUR_WIDTH,
TOK_MAXPOWER_HF, TOK_MAXPOWER_6M, TOK_MAXPOWER_4M, TOK_MAXPOWER_AM,
TOK_BACKEND_NONE
};
@ -135,7 +173,7 @@ const struct rig_caps ftdx101d_caps =
RIG_MODEL(RIG_MODEL_FTDX101D),
.model_name = "FTDX-101D",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".20",
.version = NEWCAT_VER ".21",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,

Wyświetl plik

@ -65,6 +65,9 @@ const struct confparams ftdx101mp_ext_levels[] =
int ftdx101mp_ext_tokens[] =
{
TOK_ROOFING_FILTER, TOK_KEYER, TOK_APF_FREQ, TOK_APF_WIDTH,
TOK_CONTOUR, TOK_CONTOUR_FREQ, TOK_CONTOUR_LEVEL, TOK_CONTOUR_WIDTH,
TOK_MAXPOWER_HF, TOK_MAXPOWER_6M, TOK_MAXPOWER_4M, TOK_MAXPOWER_AM,
TOK_ROOFING_FILTER, TOK_BACKEND_NONE
};
@ -73,7 +76,7 @@ const struct rig_caps ftdx101mp_caps =
RIG_MODEL(RIG_MODEL_FTDX101MP),
.model_name = "FTDX-101MP",
.mfg_name = "Yaesu",
.version = NEWCAT_VER ".11",
.version = NEWCAT_VER ".12",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,

Wyświetl plik

@ -6708,6 +6708,56 @@ int newcat_get_parm(RIG *rig, setting_t parm, value_t *val)
RETURNFUNC(-RIG_ENAVAIL);
}
static int newcat_set_maxpower(RIG *rig, vfo_t vfo, token_t token, float val)
{
return -RIG_ENIMPL;
}
static int newcat_get_maxpower(RIG *rig, vfo_t vfo, token_t token, value_t *val)
{
struct newcat_priv_data *priv = (struct newcat_priv_data *)rig->state.priv;
int retval;
int code = 0;
int offset = 0;
val->i = 0;
if (newcat_is_rig(rig, RIG_MODEL_FT991))
{
offset = 5;
switch(token)
{
case TOK_MAXPOWER_HF: code = 137; break;
case TOK_MAXPOWER_6M: code = 138; break;
case TOK_MAXPOWER_VHF: code = 139; break;
case TOK_MAXPOWER_UHF: code = 140; break;
default: return -RIG_EINVAL;
}
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX%03d%c", code, cat_term);
}
else if (newcat_is_rig(rig, RIG_MODEL_FTDX101MP) || newcat_is_rig(rig, RIG_MODEL_FTDX101D))
{
offset = 6;
switch(token)
{
case TOK_MAXPOWER_HF: code = 1; break;
case TOK_MAXPOWER_6M: code = 2; break;
case TOK_MAXPOWER_4M: code = 3; break;
case TOK_MAXPOWER_AM: code = 4; break;
default: return -RIG_EINVAL;
}
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX0304%02d%c", code, cat_term);
}
retval = newcat_get_cmd(rig);
if (retval == RIG_OK)
{
rig_debug(RIG_DEBUG_ERR, "%s: offset=%d, scanning '%s'\n", __func__, offset, &priv->ret_data[offset]);
sscanf(&priv->ret_data[offset], "%d", &val->i);
}
return retval;
}
int newcat_set_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t val)
{
@ -6749,6 +6799,12 @@ int newcat_set_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t val)
case TOK_CONTOUR_WIDTH:
RETURNFUNC(newcat_set_contour_width(rig, vfo, val.f));
case TOK_MAXPOWER_HF:
case TOK_MAXPOWER_6M:
case TOK_MAXPOWER_VHF:
case TOK_MAXPOWER_UHF:
RETURNFUNC(newcat_set_maxpower(rig, vfo, token, val.f));
default:
rig_debug(RIG_DEBUG_ERR, "%s: Unsupported ext level %s\n", __func__,
rig_strlevel(token));
@ -6870,6 +6926,12 @@ int newcat_get_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t *val)
val->f = value;
break;
case TOK_MAXPOWER_HF:
case TOK_MAXPOWER_6M:
case TOK_MAXPOWER_VHF:
case TOK_MAXPOWER_UHF:
RETURNFUNC(newcat_get_maxpower(rig, vfo, token, val));
default:
rig_debug(RIG_DEBUG_ERR, "%s: Unsupported ext level %s\n", __func__,
rig_strlevel(token));
@ -10979,7 +11041,7 @@ int newcat_set_cmd_validate(RIG *rig)
}
else if (strncmp(priv->cmd_str, "PC", 2) == 0)
{
strcpy(valcmd, "");
strcpy(valcmd, "PC;");
}
else
{
@ -11020,6 +11082,11 @@ int newcat_set_cmd_validate(RIG *rig)
return RIG_OK;
}
if (strncmp(priv->cmd_str, "PC", 2) == 0 && priv->ret_data[0] == '?')
{
rig_debug(RIG_DEBUG_ERR, "%s: Power level error, check if exceeding max power setting\n", __func__);
RETURNFUNC(RIG_OK);
}
if (strncmp(priv->cmd_str, "FT", 2) == 0
&& strncmp(priv->ret_data, "FT", 2) == 0)
{

Wyświetl plik

@ -50,7 +50,7 @@
typedef char ncboolean;
/* shared function version */
#define NEWCAT_VER "20231007"
#define NEWCAT_VER "20231008"
/* Hopefully large enough for future use, 128 chars plus '\0' */
#define NEWCAT_DATA_LEN 129
@ -254,5 +254,11 @@ int newcat_scan(RIG *rig, vfo_t vfo, scan_t scan, int ch);
#define TOK_CONTOUR_FREQ TOKEN_BACKEND(105)
#define TOK_CONTOUR_LEVEL TOKEN_BACKEND(106)
#define TOK_CONTOUR_WIDTH TOKEN_BACKEND(107)
#define TOK_MAXPOWER_HF TOKEN_BACKEND(108)
#define TOK_MAXPOWER_6M TOKEN_BACKEND(109)
#define TOK_MAXPOWER_4M TOKEN_BACKEND(110)
#define TOK_MAXPOWER_AM TOKEN_BACKEND(111)
#define TOK_MAXPOWER_VHF TOKEN_BACKEND(112)
#define TOK_MAXPOWER_UHF TOKEN_BACKEND(113)
#endif /* _NEWCAT_H */

Wyświetl plik

@ -329,6 +329,7 @@ int sprintf_level_ext(char *str, int nlen, const struct confparams *extlevels)
switch (extlevels->type)
{
case RIG_CONF_INT:
case RIG_CONF_CHECKBUTTON:
case RIG_CONF_COMBO:
case RIG_CONF_NUMERIC:
@ -871,6 +872,9 @@ char *get_rig_conf_type(enum rig_conf_e type)
case RIG_CONF_BINARY:
return "BINARY";
case RIG_CONF_INT:
return "INT";
}
return "UNKNOWN";

Wyświetl plik

@ -1941,6 +1941,12 @@ int print_conf_list(const struct confparams *cfp, rig_ptr_t data)
switch (cfp->type)
{
case RIG_CONF_INT:
printf("\tRange: %d..%d, step %d\n",
cfp->u.n.min,
cfp->u.n.max,
cfp->u.n.step);
break;
case RIG_CONF_NUMERIC:
printf("\tRange: %.1f..%.1f, step %.1f\n",
cfp->u.n.min,