kopia lustrzana https://github.com/Hamlib/Hamlib
Trying to fix set_split_freq for ic9700 satmode
rodzic
95c44021e0
commit
af039f684e
|
@ -758,11 +758,18 @@ icom_rig_open(RIG *rig)
|
||||||
retval = rig_get_func(rig, RIG_VFO_CURR, RIG_FUNC_SATMODE, &satmode);
|
retval = rig_get_func(rig, RIG_VFO_CURR, RIG_FUNC_SATMODE, &satmode);
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: satmode=%d\n", __func__, satmode);
|
rig_debug(RIG_DEBUG_VERBOSE, "%s: satmode=%d\n", __func__, satmode);
|
||||||
|
|
||||||
|
// RIG_OK return means this rig has satmode capabiltiy and Main/Sub VFOs
|
||||||
|
// Should we also set/force VFOA for Main&Sub here?
|
||||||
if (retval == RIG_OK && satmode)
|
if (retval == RIG_OK && satmode)
|
||||||
{
|
{
|
||||||
priv->rx_vfo = RIG_VFO_MAIN;
|
priv->rx_vfo = RIG_VFO_MAIN;
|
||||||
priv->tx_vfo = RIG_VFO_SUB;
|
priv->tx_vfo = RIG_VFO_SUB;
|
||||||
}
|
}
|
||||||
|
else if (retval == RIG_OK && !satmode)
|
||||||
|
{
|
||||||
|
priv->rx_vfo = RIG_VFO_MAIN;
|
||||||
|
priv->tx_vfo = RIG_VFO_MAIN;
|
||||||
|
}
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -3957,7 +3964,7 @@ int icom_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo)
|
||||||
int ack_len = sizeof(ackbuf), rc;
|
int ack_len = sizeof(ackbuf), rc;
|
||||||
int split_sc;
|
int split_sc;
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
rig_debug(RIG_DEBUG_VERBOSE, "%s called vfo='%s', split=%d, tx_vfo=%s\n", __func__, rig_strvfo(vfo), split, rig_strvfo(tx_vfo));
|
||||||
|
|
||||||
if (vfo == RIG_VFO_CURR) {
|
if (vfo == RIG_VFO_CURR) {
|
||||||
rig_debug(RIG_DEBUG_TRACE,"%s: asking for currVFO=(%d)%s\n", __func__, priv->curr_vfo, rig_strvfo(priv->curr_vfo));
|
rig_debug(RIG_DEBUG_TRACE,"%s: asking for currVFO=(%d)%s\n", __func__, priv->curr_vfo, rig_strvfo(priv->curr_vfo));
|
||||||
|
@ -3969,14 +3976,20 @@ int icom_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo)
|
||||||
case RIG_SPLIT_OFF:
|
case RIG_SPLIT_OFF:
|
||||||
|
|
||||||
// if either VFOA or B is the vfo we set to VFOA when split is turned off
|
// if either VFOA or B is the vfo we set to VFOA when split is turned off
|
||||||
if (vfo == RIG_VFO_A || vfo == RIG_VFO_B)
|
if (tx_vfo == RIG_VFO_A || tx_vfo == RIG_VFO_B)
|
||||||
{
|
{
|
||||||
|
rig_debug(RIG_DEBUG_TRACE,"%s: set_vfo to VFO_A because tx_vfo=%s\n", __func__, rig_strvfo(tx_vfo));
|
||||||
rig_set_vfo(rig, RIG_VFO_A);
|
rig_set_vfo(rig, RIG_VFO_A);
|
||||||
|
priv->tx_vfo = RIG_VFO_A;
|
||||||
|
priv->rx_vfo = RIG_VFO_A;
|
||||||
}
|
}
|
||||||
// otherwise if Main or Sub we set Main as the current vfo
|
// otherwise if Main or Sub we set Main as the current vfo
|
||||||
else if (vfo == RIG_VFO_MAIN || vfo == RIG_VFO_SUB)
|
else if (tx_vfo == RIG_VFO_MAIN || tx_vfo == RIG_VFO_SUB)
|
||||||
{
|
{
|
||||||
|
rig_debug(RIG_DEBUG_TRACE,"%s: set_vfo to VFO_MAIN because tx_vfo=%s\n", __func__, rig_strvfo(tx_vfo));
|
||||||
rig_set_vfo(rig, RIG_VFO_MAIN);
|
rig_set_vfo(rig, RIG_VFO_MAIN);
|
||||||
|
priv->tx_vfo = RIG_VFO_MAIN;
|
||||||
|
priv->rx_vfo = RIG_VFO_MAIN;
|
||||||
}
|
}
|
||||||
|
|
||||||
split_sc = S_SPLT_OFF;
|
split_sc = S_SPLT_OFF;
|
||||||
|
@ -3986,16 +3999,20 @@ int icom_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo)
|
||||||
split_sc = S_SPLT_ON;
|
split_sc = S_SPLT_ON;
|
||||||
|
|
||||||
/* ensure VFO A is Rx and VFO B is Tx as we assume that elsewhere */
|
/* ensure VFO A is Rx and VFO B is Tx as we assume that elsewhere */
|
||||||
if (VFO_HAS_A_B && (vfo == RIG_VFO_A || vfo == RIG_VFO_B))
|
if (VFO_HAS_A_B && (tx_vfo == RIG_VFO_A || tx_vfo == RIG_VFO_B))
|
||||||
{
|
{
|
||||||
|
rig_debug(RIG_DEBUG_TRACE,"%s: set_vfo to VFO_A because tx_vfo=%s\n", __func__, rig_strvfo(tx_vfo));
|
||||||
if (RIG_OK != (rc = icom_set_vfo(rig, RIG_VFO_A)))
|
if (RIG_OK != (rc = icom_set_vfo(rig, RIG_VFO_A)))
|
||||||
{
|
{
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
priv->tx_vfo = RIG_VFO_B;
|
||||||
|
priv->rx_vfo = RIG_VFO_A;
|
||||||
}
|
}
|
||||||
// Does this allow for SATMODE split?
|
// Does this allow for SATMODE split?
|
||||||
else if (vfo == RIG_VFO_MAIN) {
|
else if (VFO_HAS_MAIN_SUB && (tx_vfo == RIG_VFO_MAIN || tx_vfo == RIG_VFO_SUB)) {
|
||||||
if (RIG_OK != (rc = icom_set_vfo(rig, RIG_VFO_MAIN)))
|
rig_debug(RIG_DEBUG_TRACE,"%s: set_vfo because tx_vfo=%s\n", __func__, rig_strvfo(tx_vfo));
|
||||||
|
if (RIG_OK != (rc = icom_set_vfo(rig, tx_vfo)))
|
||||||
{
|
{
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BACKEND_VER "0.29"
|
#define BACKEND_VER "0.30"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* defines used by comp_cal_str in rig.c
|
* defines used by comp_cal_str in rig.c
|
||||||
|
|
Ładowanie…
Reference in New Issue