diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index 2fb2bdb39..a831991d7 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -821,38 +821,25 @@ int newcat_set_freq(RIG *rig, vfo_t vfo, freq_t freq) rig_debug(RIG_DEBUG_TRACE, "%s(%d)%s: rig->state.current_vfo=%s\n", __FILE__, __LINE__, __func__, rig_strvfo(rig->state.current_vfo)); + CACHE_RESET; if (vfo == RIG_VFO_A || vfo == RIG_VFO_MAIN) { + freq_t freqA; + rig_get_freq(rig, RIG_VFO_A, &freqA); rig_debug(RIG_DEBUG_TRACE, "%s(%d)%s: checking VFOA for band change \n", __FILE__, __LINE__, __func__); - if (rig->state.cache.freqMainA == 0) - { - freq_t freqtmp; - err = rig_get_freq(rig, RIG_VFO_CURR, &freqtmp); - - if (err != RIG_OK) { RETURNFUNC(err); } - } - - changing = newcat_band_index(freq) != newcat_band_index( - rig->state.cache.freqMainA); + changing = newcat_band_index(freq) != newcat_band_index(freqA); rig_debug(RIG_DEBUG_TRACE, "%s: VFO_A band changing=%d\n", __func__, changing); } else { + freq_t freqB; + rig_get_freq(rig, RIG_VFO_A, &freqB); rig_debug(RIG_DEBUG_TRACE, "%s(%d)%s: checking VFOB for band change \n", __FILE__, __LINE__, __func__); - if (rig->state.cache.freqMainB == 0) - { - freq_t freqtmp; - err = rig_get_freq(rig, RIG_VFO_CURR, &freqtmp); - - if (err != RIG_OK) { RETURNFUNC(err); } - } - - changing = newcat_band_index(freq) != newcat_band_index( - rig->state.cache.freqMainB); + changing = newcat_band_index(freq) != newcat_band_index(freqB); rig_debug(RIG_DEBUG_TRACE, "%s: VFO_B band changing=%d\n", __func__, changing); } @@ -975,6 +962,7 @@ int newcat_set_freq(RIG *rig, vfo_t vfo, freq_t freq) pbwidth_t tmp_width; // we need to update some info that BS may have caused + CACHE_RESET; if (vfo == RIG_VFO_A || vfo == RIG_VFO_MAIN) { rig_get_freq(rig, RIG_VFO_SUB, &tmp_freqA); diff --git a/rigs/yaesu/newcat.h b/rigs/yaesu/newcat.h index 722c43d20..7ee0befdf 100644 --- a/rigs/yaesu/newcat.h +++ b/rigs/yaesu/newcat.h @@ -50,7 +50,7 @@ typedef char ncboolean; /* shared function version */ -#define NEWCAT_VER "20210118" +#define NEWCAT_VER "20210119" /* Hopefully large enough for future use, 128 chars plus '\0' */ #define NEWCAT_DATA_LEN 129 diff --git a/src/misc.h b/src/misc.h index e86a6ccdb..d4ff18e2c 100644 --- a/src/misc.h +++ b/src/misc.h @@ -143,6 +143,20 @@ void errmsg(int err, char *s, const char *func, const char *file, int line); #define ENTERFUNC rig_debug(RIG_DEBUG_VERBOSE, "%s(%d):%s entered\n", __FILE__, __LINE__, __func__) #define RETURNFUNC(rc) {rig_debug(RIG_DEBUG_VERBOSE, "%s(%d):%s return\n", __FILE__, __LINE__, __func__);return rc;} +#define CACHE_RESET {\ + elapsed_ms(&rig->state.cache.time_freq, HAMLIB_ELAPSED_INVALIDATE);\ + elapsed_ms(&rig->state.cache.time_freqCurr, HAMLIB_ELAPSED_INVALIDATE);\ + elapsed_ms(&rig->state.cache.time_freqMainA, HAMLIB_ELAPSED_INVALIDATE);\ + elapsed_ms(&rig->state.cache.time_freqMainB, HAMLIB_ELAPSED_INVALIDATE);\ + elapsed_ms(&rig->state.cache.time_freqMainC, HAMLIB_ELAPSED_INVALIDATE);\ + elapsed_ms(&rig->state.cache.time_freqSubA, HAMLIB_ELAPSED_INVALIDATE);\ + elapsed_ms(&rig->state.cache.time_freqSubB, HAMLIB_ELAPSED_INVALIDATE);\ + elapsed_ms(&rig->state.cache.time_vfo, HAMLIB_ELAPSED_INVALIDATE);\ + elapsed_ms(&rig->state.cache.time_mode, HAMLIB_ELAPSED_INVALIDATE);\ + elapsed_ms(&rig->state.cache.time_ptt, HAMLIB_ELAPSED_INVALIDATE);\ + elapsed_ms(&rig->state.cache.time_split, HAMLIB_ELAPSED_INVALIDATE);\ + } + __END_DECLS #endif /* _MISC_H */