kopia lustrzana https://github.com/Hamlib/Hamlib
Change set_icom_set_mode_with_data to not change mode unless necessary
Should allow filters to stay where they are set if USB-D is the starting mode https://github.com/Hamlib/Hamlib/issues/791pull/793/head
rodzic
4679d0f2ef
commit
e900b4f9dc
|
@ -1790,6 +1790,8 @@ int icom_set_mode_with_data(RIG *rig, vfo_t vfo, rmode_t mode,
|
||||||
unsigned char ackbuf[MAXFRAMELEN];
|
unsigned char ackbuf[MAXFRAMELEN];
|
||||||
int ack_len = sizeof(ackbuf);
|
int ack_len = sizeof(ackbuf);
|
||||||
rmode_t icom_mode;
|
rmode_t icom_mode;
|
||||||
|
rmode_t tmode;
|
||||||
|
pbwidth_t twidth;
|
||||||
//struct icom_priv_data *priv = (struct icom_priv_data *) rig->state.priv;
|
//struct icom_priv_data *priv = (struct icom_priv_data *) rig->state.priv;
|
||||||
unsigned char dm_sub_cmd =
|
unsigned char dm_sub_cmd =
|
||||||
rig->caps->rig_model == RIG_MODEL_IC7200 ? 0x04 : S_MEM_DATA_MODE;
|
rig->caps->rig_model == RIG_MODEL_IC7200 ? 0x04 : S_MEM_DATA_MODE;
|
||||||
|
@ -1807,6 +1809,23 @@ int icom_set_mode_with_data(RIG *rig, vfo_t vfo, rmode_t mode,
|
||||||
|
|
||||||
ENTERFUNC;
|
ENTERFUNC;
|
||||||
|
|
||||||
|
// if our current mode and width is not changing do nothing
|
||||||
|
retval = rig_get_mode(rig, vfo, &tmode, &twidth);
|
||||||
|
|
||||||
|
if (retval != RIG_OK)
|
||||||
|
{
|
||||||
|
rig_debug(RIG_DEBUG_ERR, "%s: get_mode failed: %s\n", __func__,
|
||||||
|
rigerror(retval));
|
||||||
|
RETURNFUNC(retval);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tmode == mode && width == RIG_PASSBAND_NOCHANGE)
|
||||||
|
{
|
||||||
|
rig_debug(RIG_DEBUG_TRACE, "%s: mode/width not changing\n", __func__);
|
||||||
|
RETURNFUNC(RIG_OK);
|
||||||
|
}
|
||||||
|
// looks like we need to change it
|
||||||
|
|
||||||
switch (mode)
|
switch (mode)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BACKEND_VER "20210901"
|
#define BACKEND_VER "20210907"
|
||||||
|
|
||||||
#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)
|
||||||
|
|
Ładowanie…
Reference in New Issue