diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index a72bf0e0b..5d982a9f3 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -2027,6 +2027,7 @@ int icom_set_mode_with_data(RIG *rig, vfo_t vfo, rmode_t mode, ENTERFUNC; // if our current mode and width is not changing do nothing + // this also sets priv->filter to current filter# retval = rig_get_mode(rig, vfo, &tmode, &twidth); if (retval != RIG_OK) @@ -2091,6 +2092,7 @@ int icom_set_mode_with_data(RIG *rig, vfo_t vfo, rmode_t mode, unsigned char datamode[2]; unsigned char mode_icom; // Not used, we only need the width signed char width_icom; + struct icom_priv_data *priv = rig->state.priv; TRACE; @@ -2101,14 +2103,12 @@ int icom_set_mode_with_data(RIG *rig, vfo_t vfo, rmode_t mode, case RIG_MODE_PKTFM: case RIG_MODE_PKTAM: datamode[0] = 0x01; - datamode[1] = 0x02; // default to filter 2 - if(width == RIG_PASSBAND_NOCHANGE) datamode[1] = twidth; + datamode[1] = priv->filter; // we won't change the current filter break; default: datamode[0] = 0x00; - datamode[1] = 0x02; // default to filter 2 - if(width == RIG_PASSBAND_NOCHANGE) datamode[1] = twidth; + datamode[1] = priv->filter; // we won't change the current filter break; } diff --git a/rigs/icom/icom.h b/rigs/icom/icom.h index 886e70981..db25e2045 100644 --- a/rigs/icom/icom.h +++ b/rigs/icom/icom.h @@ -30,7 +30,7 @@ #include #endif -#define BACKEND_VER "20211020" +#define BACKEND_VER "20211107" #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)