kopia lustrzana https://github.com/Hamlib/Hamlib
Fix FTDX3000 split problem with sticking on Sub VFO
https://github.com/Hamlib/Hamlib/issues/1177pull/1191/head
rodzic
180e49754f
commit
dd029a3082
1
NEWS
1
NEWS
|
@ -16,6 +16,7 @@ Version 4.6
|
||||||
* 2023-11-XX -- Planned for Nov 2023
|
* 2023-11-XX -- Planned for Nov 2023
|
||||||
* Add MDS 4710/9710 rigs
|
* Add MDS 4710/9710 rigs
|
||||||
* Add NB2 for FT2000
|
* Add NB2 for FT2000
|
||||||
|
* Fix FTDX3000 rig split
|
||||||
|
|
||||||
Version 4.5.1
|
Version 4.5.1
|
||||||
* 2022-XX-XX
|
* 2022-XX-XX
|
||||||
|
|
14
src/rig.c
14
src/rig.c
|
@ -2888,12 +2888,12 @@ int HAMLIB_API rig_get_vfo(RIG *rig, vfo_t *vfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
cache_ms = elapsed_ms(&rig->state.cache.time_vfo, HAMLIB_ELAPSED_GET);
|
cache_ms = elapsed_ms(&rig->state.cache.time_vfo, HAMLIB_ELAPSED_GET);
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: cache check age=%dms\n", __func__, cache_ms);
|
//rig_debug(RIG_DEBUG_TRACE, "%s: cache check age=%dms\n", __func__, cache_ms);
|
||||||
|
|
||||||
if (cache_ms < rig->state.cache.timeout_ms)
|
if (cache_ms < rig->state.cache.timeout_ms)
|
||||||
{
|
{
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: cache hit age=%dms\n", __func__, cache_ms);
|
|
||||||
*vfo = rig->state.cache.vfo;
|
*vfo = rig->state.cache.vfo;
|
||||||
|
rig_debug(RIG_DEBUG_TRACE, "%s: cache hit age=%dms, vfo=%s\n", __func__, cache_ms, rig_strvfo(*vfo));
|
||||||
ELAPSED2;
|
ELAPSED2;
|
||||||
RETURNFUNC(RIG_OK);
|
RETURNFUNC(RIG_OK);
|
||||||
}
|
}
|
||||||
|
@ -4424,12 +4424,12 @@ int HAMLIB_API rig_set_split_mode(RIG *rig,
|
||||||
// so we turn it off, do our thing, and turn split back on
|
// so we turn it off, do our thing, and turn split back on
|
||||||
rx_vfo = vfo;
|
rx_vfo = vfo;
|
||||||
|
|
||||||
if (tx_vfo == RIG_VFO_B) { rx_vfo = RIG_VFO_A; }
|
if (tx_vfo == RIG_VFO_B || tx_vfo == RIG_VFO_SUB) { rx_vfo = RIG_VFO_A; }
|
||||||
|
|
||||||
if (vfo == RIG_VFO_CURR && tx_vfo == RIG_VFO_B) { rx_vfo = RIG_VFO_A; }
|
if (vfo == RIG_VFO_CURR && tx_vfo == RIG_VFO_B) { rx_vfo = RIG_VFO_A; }
|
||||||
else if (vfo == RIG_VFO_CURR && tx_vfo == RIG_VFO_A) { rx_vfo = RIG_VFO_B; }
|
else if (vfo == RIG_VFO_CURR && tx_vfo == RIG_VFO_A) { rx_vfo = RIG_VFO_B; }
|
||||||
else if (vfo == RIG_VFO_CURR && tx_vfo == RIG_VFO_MAIN) { rx_vfo = RIG_VFO_SUB; }
|
else if (vfo == RIG_VFO_CURR && tx_vfo == RIG_VFO_MAIN) { rx_vfo = RIG_VFO_SUB; }
|
||||||
else if (vfo == RIG_VFO_CURR && tx_vfo == RIG_VFO_SUB) { rx_vfo = RIG_VFO_MAIN; }
|
else if (vfo == RIG_VFO_CURR && tx_vfo == RIG_VFO_SUB) { rx_vfo = RIG_VFO_MAIN; }
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s(%d): rx_vfo=%s, tx_vfo=%s\n", __func__,
|
rig_debug(RIG_DEBUG_VERBOSE, "%s(%d): rx_vfo=%s, tx_vfo=%s\n", __func__,
|
||||||
__LINE__, rig_strvfo(rx_vfo), rig_strvfo(tx_vfo));
|
__LINE__, rig_strvfo(rx_vfo), rig_strvfo(tx_vfo));
|
||||||
|
@ -4927,8 +4927,10 @@ int HAMLIB_API rig_set_split_vfo(RIG *rig,
|
||||||
{
|
{
|
||||||
switch (tx_vfo)
|
switch (tx_vfo)
|
||||||
{
|
{
|
||||||
|
case RIG_VFO_MAIN:
|
||||||
case RIG_VFO_A: rx_vfo = split == 1 ? RIG_VFO_B : RIG_VFO_A; break;
|
case RIG_VFO_A: rx_vfo = split == 1 ? RIG_VFO_B : RIG_VFO_A; break;
|
||||||
|
|
||||||
|
case RIG_VFO_SUB:
|
||||||
case RIG_VFO_B: rx_vfo = split == 1 ? RIG_VFO_A : RIG_VFO_B; break;
|
case RIG_VFO_B: rx_vfo = split == 1 ? RIG_VFO_A : RIG_VFO_B; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue