kopia lustrzana https://github.com/Hamlib/Hamlib
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
rodzic
64863c80ff
commit
1f3fe7b5d1
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
};
|
||||
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue