Fix icom.c 0x25 detection and add IC9100 to known rigs that doesn't have 0x25

https://github.com/Hamlib/Hamlib/issues/1284
pull/1289/head
Mike Black W9MDB 2023-05-05 09:38:07 -05:00
rodzic 41113de9a2
commit 4a8a82ffc4
2 zmienionych plików z 7 dodań i 6 usunięć

Wyświetl plik

@ -710,6 +710,7 @@ int icom_init(RIG *rig)
|| rig->caps->rig_model == RIG_MODEL_IC910 || rig->caps->rig_model == RIG_MODEL_IC910
|| rig->caps->rig_model == RIG_MODEL_IC2730 || rig->caps->rig_model == RIG_MODEL_IC2730
|| rig->caps->rig_model == RIG_MODEL_ID5100 || rig->caps->rig_model == RIG_MODEL_ID5100
|| rig->caps->rig_model == RIG_MODEL_IC9100
) )
{ {
priv->x25cmdfails = 1; priv->x25cmdfails = 1;
@ -1661,7 +1662,7 @@ int icom_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
freqbuf_offset = 2; freqbuf_offset = 2;
} }
if (priv->x25cmdfails) // then we're doing this the hard way....swap+read if (priv->x25cmdfails == 1) // then we're doing this the hard way....swap+read
{ {
freqbuf_offset = 1; freqbuf_offset = 1;
HAMLIB_TRACE; HAMLIB_TRACE;
@ -1680,7 +1681,7 @@ int icom_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
} }
#if 0 #if 0
else if (!priv->x25cmdfails else if (priv->x25cmdfail == 0)
&& (vfo & (RIG_VFO_A | RIG_VFO_MAIN | RIG_VFO_MAIN_A | RIG_VFO_SUB_A))) && (vfo & (RIG_VFO_A | RIG_VFO_MAIN | RIG_VFO_MAIN_A | RIG_VFO_SUB_A)))
{ {
// we can use the 0x03 command for the default VFO // we can use the 0x03 command for the default VFO
@ -3067,7 +3068,7 @@ int icom_set_vfo(RIG *rig, vfo_t vfo)
} }
default: default:
if (!priv->x25cmdfails) if (priv->x25cmdfails == 0)
rig_debug(RIG_DEBUG_ERR, "%s: unsupported VFO %s\n", __func__, rig_debug(RIG_DEBUG_ERR, "%s: unsupported VFO %s\n", __func__,
rig_strvfo(vfo)); rig_strvfo(vfo));
@ -5497,7 +5498,7 @@ int icom_set_split_freq(RIG *rig, vfo_t vfo, freq_t tx_freq)
// If the rigs supports the 0x25 command we'll use it // If the rigs supports the 0x25 command we'll use it
// This eliminates VFO swapping and improves split operations // This eliminates VFO swapping and improves split operations
if (priv->x25cmdfails == 0) if (priv->x25cmdfails <= 0)
{ {
int satmode = 0; int satmode = 0;
@ -5762,7 +5763,7 @@ int icom_get_split_freq(RIG *rig, vfo_t vfo, freq_t *tx_freq)
RETURNFUNC2(retval); RETURNFUNC2(retval);
} }
if (priv->x25cmdfails < 0) priv->x25cmdfails = 1; // if (priv->x25cmdfails < 0) priv->x25cmdfails = 1;
} }
} }
else // we're in satmode so we try another command else // we're in satmode so we try another command

Wyświetl plik

@ -35,7 +35,7 @@
#include <sys/time.h> #include <sys/time.h>
#endif #endif
#define BACKEND_VER "20230503" #define BACKEND_VER "20230505"
#define ICOM_IS_ID31 rig_is_model(rig, RIG_MODEL_ID31) #define ICOM_IS_ID31 rig_is_model(rig, RIG_MODEL_ID31)
#define ICOM_IS_ID51 rig_is_model(rig, RIG_MODEL_ID51) #define ICOM_IS_ID51 rig_is_model(rig, RIG_MODEL_ID51)