kopia lustrzana https://github.com/Hamlib/Hamlib
Add get/set clock for Yaesu FT1200/891/991/DX10/DX101/DX101MP
https://github.com/Hamlib/Hamlib/issues/851Hamlib-4.4
rodzic
9ed36ffe54
commit
cab48cecfa
|
@ -152,7 +152,7 @@ const struct rig_caps ftdx1200_caps =
|
|||
RIG_MODEL(RIG_MODEL_FTDX1200),
|
||||
.model_name = "FTDX-1200",
|
||||
.mfg_name = "Yaesu",
|
||||
.version = NEWCAT_VER ".2",
|
||||
.version = NEWCAT_VER ".3",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
@ -320,4 +320,6 @@ const struct rig_caps ftdx1200_caps =
|
|||
.set_ext_level = newcat_set_ext_level,
|
||||
.get_ext_level = newcat_get_ext_level,
|
||||
.send_morse = newcat_send_morse,
|
||||
.set_clock = newcat_set_clock,
|
||||
.get_clock = newcat_get_clock
|
||||
};
|
||||
|
|
|
@ -135,7 +135,7 @@ const struct rig_caps ft891_caps =
|
|||
RIG_MODEL(RIG_MODEL_FT891),
|
||||
.model_name = "FT-891",
|
||||
.mfg_name = "Yaesu",
|
||||
.version = NEWCAT_VER ".4",
|
||||
.version = NEWCAT_VER ".5",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
@ -320,6 +320,8 @@ const struct rig_caps ft891_caps =
|
|||
.set_ext_level = newcat_set_ext_level,
|
||||
.get_ext_level = newcat_get_ext_level,
|
||||
.send_morse = newcat_send_morse,
|
||||
.set_clock = newcat_set_clock,
|
||||
.get_clock = newcat_get_clock
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -143,7 +143,7 @@ const struct rig_caps ft991_caps =
|
|||
RIG_MODEL(RIG_MODEL_FT991),
|
||||
.model_name = "FT-991",
|
||||
.mfg_name = "Yaesu",
|
||||
.version = NEWCAT_VER ".7",
|
||||
.version = NEWCAT_VER ".8",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
@ -329,6 +329,8 @@ const struct rig_caps ft991_caps =
|
|||
.get_ext_level = newcat_get_ext_level,
|
||||
.send_morse = newcat_send_morse,
|
||||
.send_voice_mem = newcat_send_voice_mem,
|
||||
.set_clock = newcat_set_clock,
|
||||
.get_clock = newcat_get_clock
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -139,7 +139,7 @@ const struct rig_caps ftdx10_caps =
|
|||
RIG_MODEL(RIG_MODEL_FTDX10),
|
||||
.model_name = "FTDX-10",
|
||||
.mfg_name = "Yaesu",
|
||||
.version = NEWCAT_VER ".0",
|
||||
.version = NEWCAT_VER ".1",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
@ -308,4 +308,6 @@ const struct rig_caps ftdx10_caps =
|
|||
.set_ext_level = newcat_set_ext_level,
|
||||
.get_ext_level = newcat_get_ext_level,
|
||||
.send_morse = newcat_send_morse,
|
||||
.set_clock = newcat_set_clock,
|
||||
.get_clock = newcat_get_clock
|
||||
};
|
||||
|
|
|
@ -139,7 +139,7 @@ const struct rig_caps ftdx101d_caps =
|
|||
RIG_MODEL(RIG_MODEL_FTDX101D),
|
||||
.model_name = "FTDX-101D",
|
||||
.mfg_name = "Yaesu",
|
||||
.version = NEWCAT_VER ".12",
|
||||
.version = NEWCAT_VER ".13",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
@ -309,4 +309,6 @@ const struct rig_caps ftdx101d_caps =
|
|||
.set_ext_level = newcat_set_ext_level,
|
||||
.get_ext_level = newcat_get_ext_level,
|
||||
.send_morse = newcat_send_morse,
|
||||
.set_clock = newcat_set_clock,
|
||||
.get_clock = newcat_get_clock
|
||||
};
|
||||
|
|
|
@ -77,7 +77,7 @@ const struct rig_caps ftdx101mp_caps =
|
|||
RIG_MODEL(RIG_MODEL_FTDX101MP),
|
||||
.model_name = "FTDX-101MP",
|
||||
.mfg_name = "Yaesu",
|
||||
.version = NEWCAT_VER ".3",
|
||||
.version = NEWCAT_VER ".4",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
@ -247,4 +247,6 @@ const struct rig_caps ftdx101mp_caps =
|
|||
.set_ext_level = newcat_set_ext_level,
|
||||
.get_ext_level = newcat_get_ext_level,
|
||||
.send_morse = newcat_send_morse,
|
||||
.set_clock = newcat_set_clock,
|
||||
.get_clock = newcat_get_clock
|
||||
};
|
||||
|
|
|
@ -11026,3 +11026,112 @@ static int newcat_get_contour_width(RIG *rig, vfo_t vfo, int *width)
|
|||
|
||||
RETURNFUNC(RIG_OK);
|
||||
}
|
||||
|
||||
int newcat_set_clock(RIG *rig, int year, int month, int day, int hour, int min,
|
||||
int sec, double msec, int utc_offset)
|
||||
{
|
||||
int retval = RIG_OK;
|
||||
int err;
|
||||
struct newcat_priv_data *priv = (struct newcat_priv_data *)rig->state.priv;
|
||||
|
||||
if (!newcat_valid_command(rig, "DT"))
|
||||
{
|
||||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "DT0%04d%02d%02d%c", year, month,
|
||||
day, cat_term);
|
||||
|
||||
if (RIG_OK != (err = newcat_set_cmd(rig)))
|
||||
{
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s:%d command err = %d\n", __func__, __LINE__,
|
||||
err);
|
||||
RETURNFUNC(err);
|
||||
}
|
||||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "DT1%02d%02d%02d%c", hour, min, sec, cat_term);
|
||||
|
||||
if (RIG_OK != (err = newcat_set_cmd(rig)))
|
||||
{
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s:%d command err = %d\n", __func__, __LINE__,
|
||||
err);
|
||||
RETURNFUNC(err);
|
||||
}
|
||||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "DT2%c%04d%c", utc_offset>=0?'+':'-', utc_offset, cat_term);
|
||||
|
||||
if (RIG_OK != (err = newcat_set_cmd(rig)))
|
||||
{
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s:%d command err = %d\n", __func__, __LINE__,
|
||||
err);
|
||||
RETURNFUNC(err);
|
||||
}
|
||||
|
||||
RETURNFUNC(retval);
|
||||
}
|
||||
|
||||
int newcat_get_clock(RIG *rig, int *year, int *month, int *day, int *hour,
|
||||
int *min, int *sec, double *msec, int *utc_offset)
|
||||
{
|
||||
int retval = RIG_OK;
|
||||
int err;
|
||||
int n;
|
||||
struct newcat_priv_data *priv = (struct newcat_priv_data *)rig->state.priv;
|
||||
|
||||
if (!newcat_valid_command(rig, "DT"))
|
||||
{
|
||||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "DT0%c", cat_term);
|
||||
|
||||
if ((err = newcat_get_cmd(rig)) != RIG_OK)
|
||||
{
|
||||
RETURNFUNC(err);
|
||||
}
|
||||
|
||||
n = sscanf(priv->ret_data, "DT0%04d%02d%02d", year, month, day);
|
||||
|
||||
if (n != 3)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: DT0 unable to parse '%s'\n", __func__,
|
||||
priv->ret_data);
|
||||
RETURNFUNC(-RIG_EPROTO);
|
||||
}
|
||||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "DT1%c", cat_term);
|
||||
|
||||
if ((err = newcat_get_cmd(rig)) != RIG_OK)
|
||||
{
|
||||
RETURNFUNC(err);
|
||||
}
|
||||
|
||||
n = sscanf(priv->ret_data, "DT1%02d%02d%02d", hour, min, sec);
|
||||
|
||||
if (n != 3)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: DT1 unable to parse '%s'\n", __func__,
|
||||
priv->ret_data);
|
||||
RETURNFUNC(-RIG_EPROTO);
|
||||
}
|
||||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "DT2%c", cat_term);
|
||||
|
||||
if ((err = newcat_get_cmd(rig)) != RIG_OK)
|
||||
{
|
||||
RETURNFUNC(err);
|
||||
}
|
||||
|
||||
// we keep utc_offset in HHMM format rather than converting
|
||||
n = sscanf(priv->ret_data, "DT2%d", utc_offset);
|
||||
|
||||
if (n != 1)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: DT2 unable to parse '%s'\n", __func__,
|
||||
priv->ret_data);
|
||||
RETURNFUNC(-RIG_EPROTO);
|
||||
}
|
||||
|
||||
RETURNFUNC(retval);
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
typedef char ncboolean;
|
||||
|
||||
/* shared function version */
|
||||
#define NEWCAT_VER "20211114"
|
||||
#define NEWCAT_VER "20211202"
|
||||
|
||||
/* Hopefully large enough for future use, 128 chars plus '\0' */
|
||||
#define NEWCAT_DATA_LEN 129
|
||||
|
@ -222,6 +222,11 @@ int newcat_get_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t *val);
|
|||
|
||||
int newcat_send_morse(RIG *rig, vfo_t vfo, const char *msg);
|
||||
int newcat_send_voice_mem(RIG *rig, vfo_t vfo, int ch);
|
||||
int newcat_set_clock(RIG *rig, int year, int month, int day, int hour, int min,
|
||||
int sec, double msec, int utc_offset);
|
||||
int newcat_get_clock(RIG *rig, int *year, int *month, int *day, int *hour,
|
||||
int *min, int *sec, double *msec, int *utc_offset);
|
||||
|
||||
|
||||
#define TOKEN_BACKEND(t) (t)
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue