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 cmd, subcmd;
|
||||
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_strvfo(vfo), freq);
|
||||
@ -1260,7 +1261,8 @@ int icom_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
||||
|
||||
#endif
|
||||
|
||||
if (!(rig->caps->targetable_vfo & RIG_TARGETABLE_FREQ))
|
||||
|
||||
if (!(rig->caps->targetable_vfo & RIG_TARGETABLE_FREQ) || is_9700_exception)
|
||||
{
|
||||
TRACE;
|
||||
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);
|
||||
|
||||
// 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
|
||||
| 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 ackbuf[MAXFRAMELEN];
|
||||
int ack_len = sizeof(ackbuf);
|
||||
int is_9700_exception = (rig->caps->rig_model == RIG_MODEL_IC9700) && rig->state.cache.satmode != 0;
|
||||
|
||||
ENTERFUNC;
|
||||
|
||||
if (is_9700_exception) { RETURNFUNC(icom_set_mode(rig,vfo,mode, RIG_PASSBAND_NOCHANGE)); }
|
||||
|
||||
if (priv->x26cmdfails) { RETURNFUNC(-RIG_ENAVAIL); }
|
||||
|
||||
|
||||
int cmd2 = 0x26;
|
||||
int subcmd2 = 0x00;
|
||||
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);
|
||||
}
|
||||
|
||||
@ -9582,6 +9587,7 @@ DECLARE_INITRIG_BACKEND(icom)
|
||||
|
||||
rig_register(&ic271_caps);
|
||||
rig_register(&ic275_caps);
|
||||
rig_register(&ic375_caps);
|
||||
rig_register(&ic471_caps);
|
||||
rig_register(&ic475_caps);
|
||||
rig_register(&ic575_caps);
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include <sys/time.h>
|
||||
#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_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 ic271_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 ic475_caps;
|
||||
extern const struct rig_caps ic575_caps;
|
||||
|
Loading…
Reference in New Issue
Block a user