mirror of
https://github.com/Hamlib/Hamlib.git
synced 2024-09-21 18:37:18 +00:00
Prevent IC9700 from using 0x25 0x26 commands when in satmode
https://github.com/Hamlib/Hamlib/issues/1059
This commit is contained in:
parent
f4d0e3e402
commit
cd2b734150
@ -1233,6 +1233,7 @@ int icom_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||||||
int freq_len, ack_len = sizeof(ackbuf), retval;
|
int freq_len, ack_len = sizeof(ackbuf), retval;
|
||||||
int cmd, subcmd;
|
int cmd, subcmd;
|
||||||
freq_t curr_freq;
|
freq_t curr_freq;
|
||||||
|
int is_9700_exception = (rig->caps->rig_model == RIG_MODEL_IC9700) && rig->state.cache.satmode != 0;
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called %s=%" PRIfreq "\n", __func__,
|
rig_debug(RIG_DEBUG_VERBOSE, "%s called %s=%" PRIfreq "\n", __func__,
|
||||||
rig_strvfo(vfo), freq);
|
rig_strvfo(vfo), freq);
|
||||||
@ -1260,7 +1261,8 @@ int icom_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!(rig->caps->targetable_vfo & RIG_TARGETABLE_FREQ))
|
|
||||||
|
if (!(rig->caps->targetable_vfo & RIG_TARGETABLE_FREQ) || is_9700_exception)
|
||||||
{
|
{
|
||||||
TRACE;
|
TRACE;
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: set_vfo_curr=%s\n", __func__,
|
rig_debug(RIG_DEBUG_TRACE, "%s: set_vfo_curr=%s\n", __func__,
|
||||||
@ -1287,7 +1289,7 @@ int icom_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||||||
to_bcd(freqbuf, freq, freq_len * 2);
|
to_bcd(freqbuf, freq, freq_len * 2);
|
||||||
|
|
||||||
// mike
|
// mike
|
||||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_FREQ)
|
if (rig->caps->targetable_vfo & RIG_TARGETABLE_FREQ && !is_9700_exception)
|
||||||
{
|
{
|
||||||
vfo_t vfo_unselected = RIG_VFO_B | RIG_VFO_SUB | RIG_VFO_SUB_B | RIG_VFO_MAIN_B
|
vfo_t vfo_unselected = RIG_VFO_B | RIG_VFO_SUB | RIG_VFO_SUB_B | RIG_VFO_MAIN_B
|
||||||
| RIG_VFO_OTHER;
|
| RIG_VFO_OTHER;
|
||||||
@ -2031,11 +2033,15 @@ static int icom_set_mode_x26(RIG *rig, vfo_t vfo, rmode_t mode, int datamode,
|
|||||||
unsigned char buf[3];
|
unsigned char buf[3];
|
||||||
unsigned char ackbuf[MAXFRAMELEN];
|
unsigned char ackbuf[MAXFRAMELEN];
|
||||||
int ack_len = sizeof(ackbuf);
|
int ack_len = sizeof(ackbuf);
|
||||||
|
int is_9700_exception = (rig->caps->rig_model == RIG_MODEL_IC9700) && rig->state.cache.satmode != 0;
|
||||||
|
|
||||||
ENTERFUNC;
|
ENTERFUNC;
|
||||||
|
|
||||||
|
if (is_9700_exception) { RETURNFUNC(icom_set_mode(rig,vfo,mode, RIG_PASSBAND_NOCHANGE)); }
|
||||||
|
|
||||||
if (priv->x26cmdfails) { RETURNFUNC(-RIG_ENAVAIL); }
|
if (priv->x26cmdfails) { RETURNFUNC(-RIG_ENAVAIL); }
|
||||||
|
|
||||||
|
|
||||||
int cmd2 = 0x26;
|
int cmd2 = 0x26;
|
||||||
int subcmd2 = 0x00;
|
int subcmd2 = 0x00;
|
||||||
vfo_t vfo_unselected = RIG_VFO_B | RIG_VFO_SUB | RIG_VFO_SUB_B | RIG_VFO_MAIN_B
|
vfo_t vfo_unselected = RIG_VFO_B | RIG_VFO_SUB | RIG_VFO_SUB_B | RIG_VFO_MAIN_B
|
||||||
@ -2661,7 +2667,6 @@ int icom_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
RETURNFUNC2(RIG_OK);
|
RETURNFUNC2(RIG_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9582,6 +9587,7 @@ DECLARE_INITRIG_BACKEND(icom)
|
|||||||
|
|
||||||
rig_register(&ic271_caps);
|
rig_register(&ic271_caps);
|
||||||
rig_register(&ic275_caps);
|
rig_register(&ic275_caps);
|
||||||
|
rig_register(&ic375_caps);
|
||||||
rig_register(&ic471_caps);
|
rig_register(&ic471_caps);
|
||||||
rig_register(&ic475_caps);
|
rig_register(&ic475_caps);
|
||||||
rig_register(&ic575_caps);
|
rig_register(&ic575_caps);
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BACKEND_VER "20220601"
|
#define BACKEND_VER "20220629"
|
||||||
|
|
||||||
#define ICOM_IS_SECONDARY_VFO(vfo) ((vfo) & (RIG_VFO_B | RIG_VFO_SUB | RIG_VFO_SUB_B | RIG_VFO_MAIN_B))
|
#define ICOM_IS_SECONDARY_VFO(vfo) ((vfo) & (RIG_VFO_B | RIG_VFO_SUB | RIG_VFO_SUB_B | RIG_VFO_MAIN_B))
|
||||||
#define ICOM_GET_VFO_NUMBER(vfo) (ICOM_IS_SECONDARY_VFO(vfo) ? 0x01 : 0x00)
|
#define ICOM_GET_VFO_NUMBER(vfo) (ICOM_IS_SECONDARY_VFO(vfo) ? 0x01 : 0x00)
|
||||||
@ -465,6 +465,7 @@ extern const struct rig_caps icr9000_caps;
|
|||||||
extern const struct rig_caps icr9500_caps;
|
extern const struct rig_caps icr9500_caps;
|
||||||
extern const struct rig_caps ic271_caps;
|
extern const struct rig_caps ic271_caps;
|
||||||
extern const struct rig_caps ic275_caps;
|
extern const struct rig_caps ic275_caps;
|
||||||
|
extern const struct rig_caps ic375_caps;
|
||||||
extern const struct rig_caps ic471_caps;
|
extern const struct rig_caps ic471_caps;
|
||||||
extern const struct rig_caps ic475_caps;
|
extern const struct rig_caps ic475_caps;
|
||||||
extern const struct rig_caps ic575_caps;
|
extern const struct rig_caps ic575_caps;
|
||||||
|
Loading…
Reference in New Issue
Block a user