From 950163f1a426d9942c1c15492b62833ff8e62555 Mon Sep 17 00:00:00 2001 From: Michael Black W9MDB Date: Fri, 19 Mar 2021 23:36:33 -0500 Subject: [PATCH] Rigs like IC9700 with MainA/B will have VFOA/Main mapped to MainA and VFOB/Sub mapped to MainB No known use for SubA/SubB yet https://github.com/Hamlib/Hamlib/issues/621 --- rigs/icom/icom.c | 13 ++++++++++++- rigs/icom/icom.h | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index d12721e46..b3c540023 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -2098,7 +2098,17 @@ int icom_set_vfo(RIG *rig, vfo_t vfo) else if (VFO_HAS_MAIN_SUB_A_B_ONLY && rig->state.cache.satmode) { vfo = RIG_VFO_SUB; } } - if ((vfo == RIG_VFO_A || vfo == RIG_VFO_B) && !VFO_HAS_A_B && VFO_HAS_MAIN_SUB) + else if ((vfo == RIG_VFO_A || vfo == RIG_VFO_MAIN) && VFO_HAS_MAIN_SUB_A_B_ONLY) + { + // If we're being asked for A/Main but we are a MainA/MainB rig change it + vfo = RIG_VFO_MAIN_A; + } + else if ((vfo == RIG_VFO_B || vfo == RIG_VFO_SUB) && VFO_HAS_MAIN_SUB_A_B_ONLY) + { + // If we're being asked for B/Sub but we are a MainA/MainB rig change it + vfo = RIG_VFO_MAIN_B; + } + else if ((vfo == RIG_VFO_A || vfo == RIG_VFO_B) && !VFO_HAS_A_B && VFO_HAS_MAIN_SUB) { // If we're being asked for A/B but we are a Main/Sub rig change it vfo_t vfo_old = vfo; @@ -2108,6 +2118,7 @@ int icom_set_vfo(RIG *rig, vfo_t vfo) rig_strvfo(vfo)); } + if ((vfo == RIG_VFO_MAIN || vfo == RIG_VFO_SUB) && !VFO_HAS_MAIN_SUB) { rig_debug(RIG_DEBUG_ERR, "%s: Rig does not have VFO Main/Sub?\n", diff --git a/rigs/icom/icom.h b/rigs/icom/icom.h index 9127cc628..6be6e773c 100644 --- a/rigs/icom/icom.h +++ b/rigs/icom/icom.h @@ -30,7 +30,7 @@ #include #endif -#define BACKEND_VER "20210318" +#define BACKEND_VER "20210319" /* * defines used by comp_cal_str in rig.c