Add special check for IC821H in icom_set_vfo

Seems the IC821H reverses Main/Sub logic when in satmode
Remove IC821 from riglist.h and icom.c -- not used
https://github.com/Hamlib/Hamlib/issues/693
pull/699/head
Mike Black W9MDB 2021-05-07 08:25:54 -05:00
rodzic 29013fd021
commit e84b8a3c99
4 zmienionych plików z 10 dodań i 4 usunięć

Wyświetl plik

@ -215,7 +215,7 @@
#define RIG_MODEL_IC775 RIG_MAKE_MODEL(RIG_ICOM, 30)
#define RIG_MODEL_IC781 RIG_MAKE_MODEL(RIG_ICOM, 31)
#define RIG_MODEL_IC820 RIG_MAKE_MODEL(RIG_ICOM, 32)
#define RIG_MODEL_IC821 RIG_MAKE_MODEL(RIG_ICOM, 33)
//#define RIG_MODEL_IC821 RIG_MAKE_MODEL(RIG_ICOM, 33) // not implemented and can be reused
#define RIG_MODEL_IC821H RIG_MAKE_MODEL(RIG_ICOM, 34)
#define RIG_MODEL_IC970 RIG_MAKE_MODEL(RIG_ICOM, 35)
#define RIG_MODEL_ICR10 RIG_MAKE_MODEL(RIG_ICOM, 36)

Wyświetl plik

@ -74,7 +74,8 @@ int ic821h_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo)
rig_debug(RIG_DEBUG_TRACE, "%s: tx_vfo==MAIN so assuming sat mode=%d\n",
__func__, rig->state.cache.satmode);
priv->tx_vfo = split == RIG_SPLIT_ON ? RIG_VFO_SUB : RIG_VFO_MAIN;
retval = rig_set_vfo(rig, RIG_VFO_MAIN);
// the IC821 seems to be backwards in satmode -- setting Main select Sub and vice versa
retval = rig_set_vfo(rig, RIG_VFO_SUB);
}
else if (tx_vfo == RIG_VFO_A)
{

Wyświetl plik

@ -574,7 +574,6 @@ static const struct icom_addr icom_addr_list[] =
{RIG_MODEL_IC785x, 0x8e},
{RIG_MODEL_IC781, 0x26},
{RIG_MODEL_IC820, 0x42},
{RIG_MODEL_IC821, 0x4c},
{RIG_MODEL_IC821H, 0x4c},
{RIG_MODEL_IC910, 0x60},
{RIG_MODEL_IC9100, 0x7c},
@ -2257,6 +2256,9 @@ int icom_set_vfo(RIG *rig, vfo_t vfo)
vfo = RIG_VFO_MAIN;
if (rig->state.cache.split == RIG_SPLIT_ON && !rig->state.cache.satmode) { vfo = RIG_VFO_A; }
// Seems the IC821H reverses Main/Sub when in satmode
if (rig->caps->rig_model == RIG_MODEL_IC821H && rig->state.cache.satmode) { vfo = RIG_VFO_SUB; }
}
else if ((vfo == RIG_VFO_B || vfo == RIG_VFO_SUB) && VFO_HAS_DUAL)
{
@ -2271,6 +2273,9 @@ int icom_set_vfo(RIG *rig, vfo_t vfo)
vfo = RIG_VFO_SUB_A;
}
else if (rig->state.cache.split == RIG_SPLIT_ON) { vfo = RIG_VFO_B; }
// Seems the IC821H reverses Main/Sub when in satmode
if (rig->caps->rig_model == RIG_MODEL_IC821H && rig->state.cache.satmode) { vfo = RIG_VFO_MAIN; }
}
else if ((vfo == RIG_VFO_A || vfo == RIG_VFO_B) && !VFO_HAS_A_B
&& VFO_HAS_MAIN_SUB)

Wyświetl plik

@ -30,7 +30,7 @@
#include <sys/time.h>
#endif
#define BACKEND_VER "20210430"
#define BACKEND_VER "20210507"
/*
* defines used by comp_cal_str in rig.c