From c1c549cbf34076e310de9f1e0a0ec3056bd07ea0 Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Wed, 3 Nov 2021 13:11:11 -0500 Subject: [PATCH] Change rig_set_split_mode to use TOGGLE first, then set_vfo https://github.com/Hamlib/Hamlib/issues/838 --- rigs/yaesu/newcat.c | 5 ----- src/rig.c | 11 ++++++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index 8bc83be48..36719e856 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -1242,15 +1242,10 @@ int newcat_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) { priv->cmd_str[2] = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0'; } - else // since we don't have targetable mode we will swap VFOS, set, and swap back - { // this should avoid some rig flashing - sprintf(priv->cmd_str,"AB;MD0%c;AB;", newcat_modechar(mode)); - } rig_debug(RIG_DEBUG_VERBOSE, "%s: generic mode = %s \n", __func__, rig_strrmode(mode)); - err = newcat_set_cmd(rig); if (err != RIG_OK) diff --git a/src/rig.c b/src/rig.c index c3bafea37..d70fa8593 100644 --- a/src/rig.c +++ b/src/rig.c @@ -4273,15 +4273,16 @@ int HAMLIB_API rig_set_split_mode(RIG *rig, } - if (caps->set_vfo) + // prefer the vfo swap method to reduce rig display flashing + if (rig_has_vfo_op(rig, RIG_OP_TOGGLE) && caps->vfo_op) + { + retcode = caps->vfo_op(rig, vfo, RIG_OP_TOGGLE); + } + else if (caps->set_vfo) { TRACE; retcode = caps->set_vfo(rig, tx_vfo); } - else if (rig_has_vfo_op(rig, RIG_OP_TOGGLE) && caps->vfo_op) - { - retcode = caps->vfo_op(rig, vfo, RIG_OP_TOGGLE); - } else { rig_debug(RIG_DEBUG_WARN,