pull/224/head
Michael Black 2020-02-29 13:37:19 -06:00
commit 17dd3fc4a1
1 zmienionych plików z 27 dodań i 7 usunięć

Wyświetl plik

@ -3447,15 +3447,19 @@ int icom_get_split_vfos(const RIG *rig, vfo_t *rx_vfo, vfo_t *tx_vfo)
{ {
// e.g. IC9700 split on Main/Sub does not work // e.g. IC9700 split on Main/Sub does not work
// only Main VFOA/B and SubRx/MainTx split works // only Main VFOA/B and SubRx/MainTx split works
if (priv->split_on) { if (priv->split_on)
{
*rx_vfo = priv->rx_vfo = RIG_VFO_A; *rx_vfo = priv->rx_vfo = RIG_VFO_A;
*tx_vfo = priv->tx_vfo = RIG_VFO_B; *tx_vfo = priv->tx_vfo = RIG_VFO_B;
} }
else { else
{
*rx_vfo = priv->rx_vfo = RIG_VFO_SUB; *rx_vfo = priv->rx_vfo = RIG_VFO_SUB;
*tx_vfo = priv->tx_vfo = RIG_VFO_MAIN; *tx_vfo = priv->tx_vfo = RIG_VFO_MAIN;
} }
rig_debug(RIG_DEBUG_TRACE, "%s: VFO_HAS_MAIN_SUB_A_B_ONLY, split=%d, rx=%s, tx=%s\n",
rig_debug(RIG_DEBUG_TRACE,
"%s: VFO_HAS_MAIN_SUB_A_B_ONLY, split=%d, rx=%s, tx=%s\n",
__func__, priv->split_on, rig_strvfo(*rx_vfo), rig_strvfo(*tx_vfo)); __func__, priv->split_on, rig_strvfo(*rx_vfo), rig_strvfo(*tx_vfo));
} }
else else
@ -3550,7 +3554,19 @@ int icom_set_split_freq(RIG *rig, vfo_t vfo, freq_t tx_freq)
return rc; return rc;
} }
if (RIG_OK != (rc = icom_set_vfo(rig, rx_vfo))) if (VFO_HAS_MAIN_SUB_A_B_ONLY)
{
// Then we leave the VFO on the tx_vfo which should be Main
// in satellite mode
rig_debug(RIG_DEBUG_TRACE, "%s: SATMODE rig so setting vfo to %s\n", __func__,
rig_strvfo(tx_vfo));
if (RIG_OK != (rc = icom_set_vfo(rig, tx_vfo)))
{
return rc;
}
}
else if (RIG_OK != (rc = icom_set_vfo(rig, rx_vfo)))
{ {
return rc; return rc;
} }
@ -4179,13 +4195,17 @@ int icom_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo)
priv->tx_vfo = RIG_VFO_B; priv->tx_vfo = RIG_VFO_B;
priv->rx_vfo = RIG_VFO_A; priv->rx_vfo = RIG_VFO_A;
} }
else if (VFO_HAS_MAIN_SUB_A_B_ONLY && (tx_vfo == RIG_VFO_MAIN || tx_vfo == RIG_VFO_SUB)) else if (VFO_HAS_MAIN_SUB_A_B_ONLY && (tx_vfo == RIG_VFO_MAIN
{ // if we're asking for split in this case we split Main on A/B || tx_vfo == RIG_VFO_SUB))
{
// if we're asking for split in this case we split Main on A/B
priv->tx_vfo = RIG_VFO_B; priv->tx_vfo = RIG_VFO_B;
priv->rx_vfo = RIG_VFO_A; priv->rx_vfo = RIG_VFO_A;
rig_debug(RIG_DEBUG_TRACE, "%s: tx=%s, rx=%s because tx_vfo=%s, charing tx_vfo to Main\n", __func__, rig_debug(RIG_DEBUG_TRACE,
"%s: tx=%s, rx=%s because tx_vfo=%s, charing tx_vfo to Main\n", __func__,
rig_strvfo(priv->tx_vfo), rig_strvfo(priv->rx_vfo), rig_strvfo(tx_vfo)); rig_strvfo(priv->tx_vfo), rig_strvfo(priv->rx_vfo), rig_strvfo(tx_vfo));
tx_vfo = RIG_VFO_B; tx_vfo = RIG_VFO_B;
if (RIG_OK != (rc = icom_set_vfo(rig, RIG_VFO_MAIN))) if (RIG_OK != (rc = icom_set_vfo(rig, RIG_VFO_MAIN)))
{ {
return rc; return rc;