diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index 8bbec200c..43da9146f 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -688,6 +688,7 @@ int newcat_open(RIG *rig) } #endif + priv->band_index = -1; RETURNFUNC(RIG_OK); } @@ -1332,7 +1333,10 @@ int newcat_set_freq(RIG *rig, vfo_t vfo, freq_t freq) rig_debug(RIG_DEBUG_ERR, "%s: is_ft991=%d, rig->state.cache.split=%d, vfo=%s\n", __func__, is_ft991, rig->state.cache.split, rig_strvfo(vfo)); - if (is_ft991 && vfo == RIG_VFO_A) + if (priv->band_index < 0) priv->band_index = newcat_band_index(freq); + // only use bandstack method when actually changing bands + // there are multiple bandstacks so we just use the 1st one + if (is_ft991 && vfo == RIG_VFO_A && priv->band_index != newcat_band_index(freq)) { if (rig->state.cache.split) { diff --git a/rigs/yaesu/newcat.h b/rigs/yaesu/newcat.h index 9b032e9e1..71f4f7c8c 100644 --- a/rigs/yaesu/newcat.h +++ b/rigs/yaesu/newcat.h @@ -50,7 +50,7 @@ typedef char ncboolean; /* shared function version */ -#define NEWCAT_VER "20240127" +#define NEWCAT_VER "20240131" /* Hopefully large enough for future use, 128 chars plus '\0' */ #define NEWCAT_DATA_LEN 129 @@ -130,6 +130,7 @@ struct newcat_priv_data int question_mark_response_means_rejected; /* the question mark response has multiple meanings */ char front_rear_status; /* e.g. FTDX5000 EX103 status */ int split_st_command_missing; /* is ST command gone? assume not until proven otherwise */ + int band_index; }; /*