Make Kenwood TS590s firmware defect fixup revision specific.

As Kenwood have finally released TS590s firmware revision 1.08 and it
fixes the split TX defects; the fixup has been made revision specific.
Hamlib-3.0
Bill Somerville 2013-12-06 16:23:31 +00:00
rodzic 64863c80ff
commit 1f3fe7b5d1
2 zmienionych plików z 15 dodań i 5 usunięć

Wyświetl plik

@ -474,7 +474,18 @@ int kenwood_open(RIG *rig)
/* store the data between "FV" and ";" which should be a
f/w version string of the form n.n e.g. 1.07 */
priv->fw_rev = strncpy (fw_version, &buffer[2], size - 3);
char * dot_pos = strchr (buffer, '.');
if (dot_pos)
{
*dot_pos = '\0';
buffer[size - 1] = '\0';
priv->fw_rev_uint = atoi (&buffer[2]) * 100 + atoi (dot_pos + 1);
}
else
{
rig_debug (RIG_DEBUG_ERR, "%s: cannot get f/w version\n", __func__);
return -RIG_EPROTO;
}
rig_debug (RIG_DEBUG_TRACE, "%s: found f/w version %s\n", __func__, priv->fw_rev);
}
@ -852,7 +863,8 @@ int kenwood_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
int err = kenwood_simple_cmd(rig, freqbuf);
if (RIG_OK == err && 'B' == vfo_letter && RIG_MODEL_TS590S == rig->caps->rig_model)
struct kenwood_priv_data * priv = rig->state.priv;
if (RIG_OK == err && 'B' == vfo_letter && RIG_MODEL_TS590S == rig->caps->rig_model && priv->fw_rev_uint <= 107)
{
/* TS590s f/w rev 1.07 or earlier has a defect that means
frequency set on TX VFO in split mode may not be set

Wyświetl plik

@ -75,9 +75,7 @@ struct kenwood_priv_data {
int k3_ext_lvl; /* Initial K3 extension level */
int k2_md_rtty; /* K2 RTTY mode available flag, 1 = RTTY, 0 = N/A */
char *fw_rev; /* firmware revision level */
int ptt_state; /* some rigs don't tell PTT state so
we store an assumed value here for
them */
unsigned fw_rev_uint; /* firmware revison as a number 1.07 -> 107 */
};