kopia lustrzana https://github.com/Hamlib/Hamlib
Merge branch 'master' of https://github.com/mdblack98/Hamlib
commit
0cecc9812d
|
@ -28,6 +28,7 @@ rigctld \- TCP radio control daemon
|
||||||
.OP \-T IPADDR
|
.OP \-T IPADDR
|
||||||
.OP \-t number
|
.OP \-t number
|
||||||
.OP \-C parm=val
|
.OP \-C parm=val
|
||||||
|
.OP \-X seconds
|
||||||
.RB [ \-v [ \-Z ]]
|
.RB [ \-v [ \-Z ]]
|
||||||
.YS
|
.YS
|
||||||
.
|
.
|
||||||
|
@ -283,6 +284,14 @@ Set verbose mode, cumulative (see
|
||||||
below).
|
below).
|
||||||
.
|
.
|
||||||
.TP
|
.TP
|
||||||
|
.BR \-X ", " \-\-twiddle = \fIseconds\fP
|
||||||
|
Enables timeout when VFO twiddling is detected. Some functons will be ignored.
|
||||||
|
.IP
|
||||||
|
Should only be needed when controlling software should be "paused"
|
||||||
|
.B -v
|
||||||
|
so you can move the VFO. Continuous movement extends the timeout.
|
||||||
|
.
|
||||||
|
.TP
|
||||||
.BR \-Z ", " \-\-debug\-time\-stamps
|
.BR \-Z ", " \-\-debug\-time\-stamps
|
||||||
Enable time stamps for the debug messages.
|
Enable time stamps for the debug messages.
|
||||||
.IP
|
.IP
|
||||||
|
|
|
@ -131,8 +131,9 @@ struct cmdparams ic7300_extcmds[] =
|
||||||
#define IC9700_VFOS (RIG_VFO_A|RIG_VFO_B|RIG_VFO_MAIN|RIG_VFO_SUB|RIG_VFO_MEM|RIG_VFO_MAIN_A|RIG_VFO_MAIN_B|RIG_VFO_SUB_A|RIG_VFO_SUB_B)
|
#define IC9700_VFOS (RIG_VFO_A|RIG_VFO_B|RIG_VFO_MAIN|RIG_VFO_SUB|RIG_VFO_MEM|RIG_VFO_MAIN_A|RIG_VFO_MAIN_B|RIG_VFO_SUB_A|RIG_VFO_SUB_B)
|
||||||
#define IC9700_PARMS (RIG_PARM_ANN|RIG_PARM_BACKLIGHT|RIG_PARM_TIME|RIG_PARM_BEEP|RIG_PARM_SCREENSAVER)
|
#define IC9700_PARMS (RIG_PARM_ANN|RIG_PARM_BACKLIGHT|RIG_PARM_TIME|RIG_PARM_BEEP|RIG_PARM_SCREENSAVER)
|
||||||
#define IC9700_FUNCS (RIG_FUNC_NB|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_SBKIN|RIG_FUNC_FBKIN|RIG_FUNC_NR|RIG_FUNC_MON|RIG_FUNC_MN|RIG_FUNC_ANF|RIG_FUNC_LOCK|RIG_FUNC_RIT|RIG_FUNC_SCOPE|RIG_FUNC_SATMODE|RIG_FUNC_AFC)
|
#define IC9700_FUNCS (RIG_FUNC_NB|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_SBKIN|RIG_FUNC_FBKIN|RIG_FUNC_NR|RIG_FUNC_MON|RIG_FUNC_MN|RIG_FUNC_ANF|RIG_FUNC_LOCK|RIG_FUNC_RIT|RIG_FUNC_SCOPE|RIG_FUNC_SATMODE|RIG_FUNC_AFC)
|
||||||
|
#define IC9700_LEVELS (RIG_LEVEL_PREAMP|RIG_LEVEL_ATT|RIG_LEVEL_AGC|RIG_LEVEL_COMP|RIG_LEVEL_BKINDL|RIG_LEVEL_NR|RIG_LEVEL_PBT_IN|RIG_LEVEL_PBT_OUT|RIG_LEVEL_CWPITCH|RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN|RIG_LEVEL_KEYSPD|RIG_LEVEL_NOTCHF_RAW|RIG_LEVEL_SQL|RIG_LEVEL_RAWSTR|RIG_LEVEL_STRENGTH|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_VOXGAIN|RIG_LEVEL_ANTIVOX|RIG_LEVEL_VOXDELAY|RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB)
|
||||||
#define IC9700_VFO_OPS (RIG_OP_CPY|RIG_OP_XCHG|RIG_OP_FROM_VFO|RIG_OP_TO_VFO|RIG_OP_MCL)
|
#define IC9700_VFO_OPS (RIG_OP_CPY|RIG_OP_XCHG|RIG_OP_FROM_VFO|RIG_OP_TO_VFO|RIG_OP_MCL)
|
||||||
|
#define IC9700_SCAN_OPS (RIG_SCAN_STOP|RIG_SCAN_MEM|RIG_SCAN_PROG|RIG_SCAN_SLCT)
|
||||||
#define IC9700_ALL_TX_MODES (RIG_MODE_FM|RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_DSTAR|RIG_MODE_DD|RIG_MODE_DSTAR)
|
#define IC9700_ALL_TX_MODES (RIG_MODE_FM|RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_DSTAR|RIG_MODE_DD|RIG_MODE_DSTAR)
|
||||||
#define IC9700_ALL_RX_MODES (RIG_MODE_FM|RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_DSTAR|RIG_MODE_DD|RIG_MODE_DSTAR)
|
#define IC9700_ALL_RX_MODES (RIG_MODE_FM|RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_DSTAR|RIG_MODE_DD|RIG_MODE_DSTAR)
|
||||||
|
|
||||||
|
@ -440,8 +441,8 @@ const struct rig_caps ic9700_caps =
|
||||||
.retry = 3,
|
.retry = 3,
|
||||||
.has_get_func = IC9700_FUNCS,
|
.has_get_func = IC9700_FUNCS,
|
||||||
.has_set_func = IC9700_FUNCS,
|
.has_set_func = IC9700_FUNCS,
|
||||||
.has_get_level = IC7300_LEVELS,
|
.has_get_level = IC9700_LEVELS,
|
||||||
.has_set_level = RIG_LEVEL_SET(IC7300_LEVELS),
|
.has_set_level = RIG_LEVEL_SET(IC9700_LEVELS),
|
||||||
.has_get_parm = IC9700_PARMS,
|
.has_get_parm = IC9700_PARMS,
|
||||||
.has_set_parm = RIG_PARM_SET(IC9700_PARMS),
|
.has_set_parm = RIG_PARM_SET(IC9700_PARMS),
|
||||||
.level_gran = {
|
.level_gran = {
|
||||||
|
@ -461,7 +462,7 @@ const struct rig_caps ic9700_caps =
|
||||||
.max_ifshift = Hz(0),
|
.max_ifshift = Hz(0),
|
||||||
.targetable_vfo = RIG_TARGETABLE_FREQ,
|
.targetable_vfo = RIG_TARGETABLE_FREQ,
|
||||||
.vfo_ops = IC9700_VFO_OPS,
|
.vfo_ops = IC9700_VFO_OPS,
|
||||||
.scan_ops = IC7300_SCAN_OPS,
|
.scan_ops = IC9700_SCAN_OPS,
|
||||||
.transceive = RIG_TRN_RIG,
|
.transceive = RIG_TRN_RIG,
|
||||||
.bank_qty = 3,
|
.bank_qty = 3,
|
||||||
.chan_desc_sz = 0,
|
.chan_desc_sz = 0,
|
||||||
|
|
110
rigs/icom/icom.c
110
rigs/icom/icom.c
|
@ -680,7 +680,8 @@ int icom_get_usb_echo_off(RIG *rig)
|
||||||
// Check for echo on first
|
// Check for echo on first
|
||||||
priv->serial_USB_echo_off = 0;
|
priv->serial_USB_echo_off = 0;
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: retry temp set to 1\n", __func__);
|
rig_debug(RIG_DEBUG_VERBOSE, "%s: retry temp set to %d\n", __func__,
|
||||||
|
rs->rigport.retry);
|
||||||
|
|
||||||
retval = icom_transaction(rig, C_RD_FREQ, -1, NULL, 0, ackbuf, &ack_len);
|
retval = icom_transaction(rig, C_RD_FREQ, -1, NULL, 0, ackbuf, &ack_len);
|
||||||
|
|
||||||
|
@ -2871,14 +2872,20 @@ int icom_set_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t val)
|
||||||
cfp = (cfp == NULL) ? icom_ext_levels : cfp;
|
cfp = (cfp == NULL) ? icom_ext_levels : cfp;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; (cfp[i].token != RIG_CONF_END) || (cfp != icom_ext_levels);) {
|
for (i = 0; (cfp[i].token != RIG_CONF_END) || (cfp != icom_ext_levels);)
|
||||||
if (cfp[i].token == RIG_CONF_END) {
|
{
|
||||||
|
if (cfp[i].token == RIG_CONF_END)
|
||||||
|
{
|
||||||
cfp = icom_ext_levels;
|
cfp = icom_ext_levels;
|
||||||
i = 0;
|
i = 0;
|
||||||
} else if (cfp[i].token == token) {
|
}
|
||||||
|
else if (cfp[i].token == token)
|
||||||
|
{
|
||||||
return icom_set_ext_cmd(rig, vfo, token, val);
|
return icom_set_ext_cmd(rig, vfo, token, val);
|
||||||
} else { i++; }
|
}
|
||||||
|
else { i++; }
|
||||||
}
|
}
|
||||||
|
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2890,14 +2897,20 @@ int icom_get_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t *val)
|
||||||
cfp = (cfp == NULL) ? icom_ext_levels : cfp;
|
cfp = (cfp == NULL) ? icom_ext_levels : cfp;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; (cfp[i].token != RIG_CONF_END) || (cfp != icom_ext_levels);) {
|
for (i = 0; (cfp[i].token != RIG_CONF_END) || (cfp != icom_ext_levels);)
|
||||||
if (cfp[i].token == RIG_CONF_END) {
|
{
|
||||||
|
if (cfp[i].token == RIG_CONF_END)
|
||||||
|
{
|
||||||
cfp = icom_ext_levels;
|
cfp = icom_ext_levels;
|
||||||
i = 0;
|
i = 0;
|
||||||
} else if (cfp[i].token == token) {
|
}
|
||||||
|
else if (cfp[i].token == token)
|
||||||
|
{
|
||||||
return icom_get_ext_cmd(rig, vfo, token, val);
|
return icom_get_ext_cmd(rig, vfo, token, val);
|
||||||
} else { i++; }
|
}
|
||||||
|
else { i++; }
|
||||||
}
|
}
|
||||||
|
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2909,14 +2922,20 @@ int icom_set_ext_func(RIG *rig, vfo_t vfo, token_t token, int status)
|
||||||
cfp = (cfp == NULL) ? icom_ext_funcs : cfp;
|
cfp = (cfp == NULL) ? icom_ext_funcs : cfp;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; (cfp[i].token != RIG_CONF_END) || (cfp != icom_ext_funcs);) {
|
for (i = 0; (cfp[i].token != RIG_CONF_END) || (cfp != icom_ext_funcs);)
|
||||||
if (cfp[i].token == RIG_CONF_END) {
|
{
|
||||||
|
if (cfp[i].token == RIG_CONF_END)
|
||||||
|
{
|
||||||
cfp = icom_ext_funcs;
|
cfp = icom_ext_funcs;
|
||||||
i = 0;
|
i = 0;
|
||||||
} else if (cfp[i].token == token) {
|
}
|
||||||
|
else if (cfp[i].token == token)
|
||||||
|
{
|
||||||
return icom_set_ext_cmd(rig, vfo, token, (value_t)status);
|
return icom_set_ext_cmd(rig, vfo, token, (value_t)status);
|
||||||
} else { i++; }
|
}
|
||||||
|
else { i++; }
|
||||||
}
|
}
|
||||||
|
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2928,14 +2947,20 @@ int icom_get_ext_func(RIG *rig, vfo_t vfo, token_t token, int *status)
|
||||||
cfp = (cfp == NULL) ? icom_ext_funcs : cfp;
|
cfp = (cfp == NULL) ? icom_ext_funcs : cfp;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; (cfp[i].token != RIG_CONF_END) || (cfp != icom_ext_funcs);) {
|
for (i = 0; (cfp[i].token != RIG_CONF_END) || (cfp != icom_ext_funcs);)
|
||||||
if (cfp[i].token == RIG_CONF_END) {
|
{
|
||||||
|
if (cfp[i].token == RIG_CONF_END)
|
||||||
|
{
|
||||||
cfp = icom_ext_funcs;
|
cfp = icom_ext_funcs;
|
||||||
i = 0;
|
i = 0;
|
||||||
} else if (cfp[i].token == token) {
|
}
|
||||||
return icom_get_ext_cmd(rig, vfo, token, (value_t*)status);
|
else if (cfp[i].token == token)
|
||||||
} else { i++; }
|
{
|
||||||
|
return icom_get_ext_cmd(rig, vfo, token, (value_t *)status);
|
||||||
|
}
|
||||||
|
else { i++; }
|
||||||
}
|
}
|
||||||
|
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2947,14 +2972,20 @@ int icom_set_ext_parm(RIG *rig, token_t token, value_t val)
|
||||||
cfp = (cfp == NULL) ? icom_ext_parms : cfp;
|
cfp = (cfp == NULL) ? icom_ext_parms : cfp;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; (cfp[i].token != RIG_CONF_END) || (cfp != icom_ext_parms);) {
|
for (i = 0; (cfp[i].token != RIG_CONF_END) || (cfp != icom_ext_parms);)
|
||||||
if (cfp[i].token == RIG_CONF_END) {
|
{
|
||||||
|
if (cfp[i].token == RIG_CONF_END)
|
||||||
|
{
|
||||||
cfp = icom_ext_parms;
|
cfp = icom_ext_parms;
|
||||||
i = 0;
|
i = 0;
|
||||||
} else if (cfp[i].token == token) {
|
}
|
||||||
|
else if (cfp[i].token == token)
|
||||||
|
{
|
||||||
return icom_set_ext_cmd(rig, RIG_VFO_NONE, token, val);
|
return icom_set_ext_cmd(rig, RIG_VFO_NONE, token, val);
|
||||||
} else { i++; }
|
}
|
||||||
|
else { i++; }
|
||||||
}
|
}
|
||||||
|
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2966,14 +2997,20 @@ int icom_get_ext_parm(RIG *rig, token_t token, value_t *val)
|
||||||
cfp = (cfp == NULL) ? icom_ext_parms : cfp;
|
cfp = (cfp == NULL) ? icom_ext_parms : cfp;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; (cfp[i].token != RIG_CONF_END) || (cfp != icom_ext_parms);) {
|
for (i = 0; (cfp[i].token != RIG_CONF_END) || (cfp != icom_ext_parms);)
|
||||||
if (cfp[i].token == RIG_CONF_END) {
|
{
|
||||||
|
if (cfp[i].token == RIG_CONF_END)
|
||||||
|
{
|
||||||
cfp = icom_ext_parms;
|
cfp = icom_ext_parms;
|
||||||
i = 0;
|
i = 0;
|
||||||
} else if (cfp[i].token == token) {
|
}
|
||||||
|
else if (cfp[i].token == token)
|
||||||
|
{
|
||||||
return icom_get_ext_cmd(rig, RIG_VFO_NONE, token, val);
|
return icom_get_ext_cmd(rig, RIG_VFO_NONE, token, val);
|
||||||
} else { i++; }
|
}
|
||||||
|
else { i++; }
|
||||||
}
|
}
|
||||||
|
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4209,6 +4246,17 @@ int icom_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo)
|
||||||
case RIG_SPLIT_ON:
|
case RIG_SPLIT_ON:
|
||||||
split_sc = S_SPLT_ON;
|
split_sc = S_SPLT_ON;
|
||||||
|
|
||||||
|
/* If asking for Sub or Main on rig that doesn't have it map it */
|
||||||
|
if (VFO_HAS_A_B_ONLY && ((tx_vfo == RIG_VFO_MAIN || tx_vfo == RIG_VFO_SUB)
|
||||||
|
|| vfo == RIG_VFO_MAIN || vfo == RIG_VFO_SUB))
|
||||||
|
{
|
||||||
|
if (tx_vfo == RIG_VFO_MAIN) { tx_vfo = RIG_VFO_A; }
|
||||||
|
else if (tx_vfo == RIG_VFO_SUB) { tx_vfo = RIG_VFO_B; }
|
||||||
|
|
||||||
|
if (vfo == RIG_VFO_MAIN) { vfo = RIG_VFO_A; }
|
||||||
|
else if (vfo == RIG_VFO_SUB) { vfo = RIG_VFO_B; }
|
||||||
|
}
|
||||||
|
|
||||||
/* 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 && (tx_vfo == RIG_VFO_A || tx_vfo == RIG_VFO_B))
|
if (VFO_HAS_A_B && (tx_vfo == RIG_VFO_A || tx_vfo == RIG_VFO_B))
|
||||||
{
|
{
|
||||||
|
@ -4249,6 +4297,9 @@ int icom_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo)
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
priv->rx_vfo = vfo;
|
||||||
|
priv->tx_vfo = tx_vfo;
|
||||||
|
|
||||||
split_sc = S_SPLT_ON;
|
split_sc = S_SPLT_ON;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -4278,8 +4329,6 @@ int icom_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo)
|
||||||
return -RIG_ERJCTED;
|
return -RIG_ERJCTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
priv->rx_vfo = vfo;
|
|
||||||
priv->tx_vfo = tx_vfo;
|
|
||||||
priv->split_on = RIG_SPLIT_ON == split;
|
priv->split_on = RIG_SPLIT_ON == split;
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s rx_vfo=%s tx_vfo=%s split=%d\n",
|
rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s rx_vfo=%s tx_vfo=%s split=%d\n",
|
||||||
__func__, rig_strvfo(vfo), rig_strvfo(priv->rx_vfo),
|
__func__, rig_strvfo(vfo), rig_strvfo(priv->rx_vfo),
|
||||||
|
@ -6495,6 +6544,11 @@ static int set_vfo_curr(RIG *rig, vfo_t vfo, vfo_t curr_vfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
retval = rig_set_vfo(rig, RIG_VFO_A); // we'll default to Main in this case
|
retval = rig_set_vfo(rig, RIG_VFO_A); // we'll default to Main in this case
|
||||||
|
|
||||||
|
if (retval != RIG_OK)
|
||||||
|
{
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (VFO_HAS_MAIN_SUB_ONLY)
|
if (VFO_HAS_MAIN_SUB_ONLY)
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BACKEND_VER "0.31a"
|
#define BACKEND_VER "0.32"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* defines used by comp_cal_str in rig.c
|
* defines used by comp_cal_str in rig.c
|
||||||
|
|
Ładowanie…
Reference in New Issue