kopia lustrzana https://github.com/Hamlib/Hamlib
Lots of changes to get Main/Sub recognized across rigctl/rigctld boundary
Needs lots of testing https://github.com/Hamlib/Hamlib/issues/395pull/412/head
rodzic
2e1a4e5d5c
commit
fca4cc7903
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include "dummy.h"
|
||||
|
||||
#define CMD_MAX 32
|
||||
#define CMD_MAX 64
|
||||
#define BUF_MAX 96
|
||||
|
||||
#define CHKSCN1ARG(a) if ((a) != 1) return -RIG_EPROTO; else do {} while(0)
|
||||
|
@ -100,6 +100,7 @@ static int netrigctl_vfostr(RIG *rig, char *vfostr, int len, vfo_t vfo)
|
|||
{
|
||||
struct netrigctl_priv_data *priv;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called vfo=%s\n", __func__, rig_strvfo(vfo));
|
||||
if (len < 5)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: len must be >=5, len=%d\n", __func__, len);
|
||||
|
@ -112,6 +113,7 @@ static int netrigctl_vfostr(RIG *rig, char *vfostr, int len, vfo_t vfo)
|
|||
|
||||
if (vfo == RIG_VFO_CURR)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: vfo==RIG_VFO_CURR, curr=%s\n", __func__, rig_strvfo(priv->vfo_curr));
|
||||
vfo = priv->vfo_curr;
|
||||
|
||||
if (vfo == RIG_VFO_NONE) { vfo = RIG_VFO_A; }
|
||||
|
@ -121,7 +123,22 @@ static int netrigctl_vfostr(RIG *rig, char *vfostr, int len, vfo_t vfo)
|
|||
|
||||
if (rig->state.vfo_opt)
|
||||
{
|
||||
snprintf(vfostr, len, " %s", vfo == RIG_VFO_A ? "VFOA" : "VFOB");
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: vfo_opt vfo=%d\n", __func__, vfo);
|
||||
char *myvfo;
|
||||
switch(vfo)
|
||||
{
|
||||
case RIG_VFO_B: myvfo = "VFOB";break;
|
||||
case RIG_VFO_C: myvfo = "VFOC";break;
|
||||
case RIG_VFO_MAIN: myvfo = "Main";break;
|
||||
case RIG_VFO_MAIN_A: myvfo = "MainA";break;
|
||||
case RIG_VFO_MAIN_B: myvfo = "MainB";break;
|
||||
case RIG_VFO_SUB: myvfo = "Sub";break;
|
||||
case RIG_VFO_SUB_A: myvfo = "SubA";break;
|
||||
case RIG_VFO_SUB_B: myvfo = "SubB";break;
|
||||
case RIG_VFO_MEM: myvfo = "MEM";break;
|
||||
default: myvfo = "VFOA";
|
||||
}
|
||||
snprintf(vfostr, len, " %s", myvfo);
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
|
@ -546,6 +563,10 @@ static int netrigctl_open(RIG *rig)
|
|||
rig->state.pttport.type.ptt);
|
||||
}
|
||||
}
|
||||
else if (strcmp(setting,"targetable_vfo") == 0)
|
||||
{
|
||||
rig->caps->targetable_vfo = strtol(value, NULL, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
// not an error -- just a warning for backward compatibility
|
||||
|
@ -592,7 +613,7 @@ static int netrigctl_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -624,7 +645,7 @@ static int netrigctl_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
#if 0 // disable until we figure out if we can do this without breaking backwards compatibility
|
||||
char vfotmp[16];
|
||||
#endif
|
||||
|
@ -671,9 +692,9 @@ static int netrigctl_set_mode(RIG *rig, vfo_t vfo, rmode_t mode,
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called, vfo=%s\n", __func__, rig_strvfo(vfo));
|
||||
|
||||
ret = netrigctl_vfostr(rig, vfostr, sizeof(vfostr), vfo);
|
||||
|
||||
|
@ -701,9 +722,9 @@ static int netrigctl_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode,
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called, vfo=%s\n", __func__, rig_strvfo(vfo));
|
||||
|
||||
ret = netrigctl_vfostr(rig, vfostr, sizeof(vfostr), vfo);
|
||||
|
||||
|
@ -768,7 +789,7 @@ static int netrigctl_get_vfo(RIG *rig, vfo_t *vfo)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
struct netrigctl_priv_data *priv;
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
@ -805,7 +826,7 @@ static int netrigctl_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -833,7 +854,7 @@ static int netrigctl_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -860,7 +881,7 @@ static int netrigctl_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -889,7 +910,7 @@ static int netrigctl_set_rptr_shift(RIG *rig, vfo_t vfo,
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -918,7 +939,7 @@ static int netrigctl_get_rptr_shift(RIG *rig, vfo_t vfo,
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -948,7 +969,7 @@ static int netrigctl_set_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t rptr_offs)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -976,7 +997,7 @@ static int netrigctl_get_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t *rptr_offs)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1004,7 +1025,7 @@ static int netrigctl_set_ctcss_tone(RIG *rig, vfo_t vfo, tone_t tone)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1032,7 +1053,7 @@ static int netrigctl_get_ctcss_tone(RIG *rig, vfo_t vfo, tone_t *tone)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1060,7 +1081,7 @@ static int netrigctl_set_dcs_code(RIG *rig, vfo_t vfo, tone_t code)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1088,7 +1109,7 @@ static int netrigctl_get_dcs_code(RIG *rig, vfo_t vfo, tone_t *code)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1116,7 +1137,7 @@ static int netrigctl_set_ctcss_sql(RIG *rig, vfo_t vfo, tone_t tone)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1144,7 +1165,7 @@ static int netrigctl_get_ctcss_sql(RIG *rig, vfo_t vfo, tone_t *tone)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1172,7 +1193,7 @@ static int netrigctl_set_dcs_sql(RIG *rig, vfo_t vfo, unsigned int code)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1199,7 +1220,7 @@ static int netrigctl_get_dcs_sql(RIG *rig, vfo_t vfo, unsigned int *code)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1227,7 +1248,7 @@ static int netrigctl_set_split_freq(RIG *rig, vfo_t vfo, freq_t tx_freq)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1255,7 +1276,7 @@ static int netrigctl_get_split_freq(RIG *rig, vfo_t vfo, freq_t *tx_freq)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1283,7 +1304,7 @@ static int netrigctl_set_split_mode(RIG *rig, vfo_t vfo, rmode_t tx_mode,
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1312,7 +1333,7 @@ static int netrigctl_get_split_mode(RIG *rig, vfo_t vfo, rmode_t *tx_mode,
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1351,7 +1372,7 @@ static int netrigctl_set_split_vfo(RIG *rig, vfo_t vfo, split_t split,
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1380,7 +1401,7 @@ static int netrigctl_get_split_vfo(RIG *rig, vfo_t vfo, split_t *split,
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1419,7 +1440,7 @@ static int netrigctl_set_rit(RIG *rig, vfo_t vfo, shortfreq_t rit)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1447,7 +1468,7 @@ static int netrigctl_get_rit(RIG *rig, vfo_t vfo, shortfreq_t *rit)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1475,7 +1496,7 @@ static int netrigctl_set_xit(RIG *rig, vfo_t vfo, shortfreq_t xit)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1503,7 +1524,7 @@ static int netrigctl_get_xit(RIG *rig, vfo_t vfo, shortfreq_t *xit)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1531,7 +1552,7 @@ static int netrigctl_set_ts(RIG *rig, vfo_t vfo, shortfreq_t ts)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1559,7 +1580,7 @@ static int netrigctl_get_ts(RIG *rig, vfo_t vfo, shortfreq_t *ts)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1587,7 +1608,7 @@ static int netrigctl_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1615,7 +1636,7 @@ static int netrigctl_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1645,7 +1666,7 @@ static int netrigctl_set_level(RIG *rig, vfo_t vfo, setting_t level,
|
|||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char lstr[32];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1685,7 +1706,7 @@ static int netrigctl_get_level(RIG *rig, vfo_t vfo, setting_t level,
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1829,7 +1850,7 @@ static int netrigctl_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
int i_ant = 0;
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called, ant=0x%02x, option=%d\n", __func__,
|
||||
|
@ -1875,7 +1896,7 @@ static int netrigctl_get_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t *option,
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1972,7 +1993,7 @@ static int netrigctl_set_mem(RIG *rig, vfo_t vfo, int ch)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -2000,7 +2021,7 @@ static int netrigctl_get_mem(RIG *rig, vfo_t vfo, int *ch)
|
|||
int ret, len;
|
||||
char cmd[CMD_MAX];
|
||||
char buf[BUF_MAX];
|
||||
char vfostr[6] = "";
|
||||
char vfostr[16] = "";
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
|
|
@ -589,10 +589,12 @@ int newcat_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
switch (vfo)
|
||||
{
|
||||
case RIG_VFO_A:
|
||||
case RIG_VFO_MAIN:
|
||||
c = 'A';
|
||||
break;
|
||||
|
||||
case RIG_VFO_B:
|
||||
case RIG_VFO_SUB:
|
||||
c = 'B';
|
||||
break;
|
||||
|
||||
|
@ -720,10 +722,12 @@ int newcat_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
|||
switch (vfo)
|
||||
{
|
||||
case RIG_VFO_A:
|
||||
case RIG_VFO_MAIN: // what about MAIN_A/MAIN_B?
|
||||
c = 'A';
|
||||
break;
|
||||
|
||||
case RIG_VFO_B:
|
||||
case RIG_VFO_SUB: // what about SUB_A/SUB_B?
|
||||
c = 'B';
|
||||
break;
|
||||
|
||||
|
@ -792,7 +796,7 @@ int newcat_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
/* FT2000 mode only */
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
{
|
||||
priv->cmd_str[2] = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
priv->cmd_str[2] = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: generic mode = %s \n",
|
||||
|
@ -866,7 +870,7 @@ int newcat_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
{
|
||||
main_sub_vfo = RIG_VFO_B == vfo ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
/* Build the command string */
|
||||
|
@ -902,6 +906,7 @@ int newcat_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
*width = rig_passband_normal(rig, *mode);
|
||||
}
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: returning newcat_get_rx_bandwidth\n", __func__);
|
||||
return newcat_get_rx_bandwidth(rig, vfo, *mode, width);
|
||||
}
|
||||
|
||||
|
@ -947,7 +952,7 @@ int newcat_set_vfo(RIG *rig, vfo_t vfo)
|
|||
{
|
||||
case RIG_VFO_A:
|
||||
case RIG_VFO_B:
|
||||
if (vfo == RIG_VFO_B)
|
||||
if (vfo == RIG_VFO_B || vfo == RIG_VFO_SUB)
|
||||
{
|
||||
c = '1';
|
||||
}
|
||||
|
@ -1077,10 +1082,12 @@ int newcat_get_vfo(RIG *rig, vfo_t *vfo)
|
|||
switch (priv->ret_data[2])
|
||||
{
|
||||
case '0':
|
||||
*vfo = RIG_VFO_A;
|
||||
if (rig->state.vfo_list & RIG_VFO_MAIN) *vfo = RIG_VFO_MAIN;
|
||||
else *vfo = RIG_VFO_A;
|
||||
break;
|
||||
|
||||
case '1':
|
||||
if (rig->state.vfo_list & RIG_VFO_SUB) *vfo = RIG_VFO_SUB;
|
||||
*vfo = RIG_VFO_B;
|
||||
break;
|
||||
|
||||
|
@ -1221,7 +1228,7 @@ int newcat_set_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t rptr_shift)
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
{
|
||||
main_sub_vfo = RIG_VFO_B == vfo ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
switch (rptr_shift)
|
||||
|
@ -1274,7 +1281,7 @@ int newcat_get_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t *rptr_shift)
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "%s%c%c", command, main_sub_vfo,
|
||||
|
@ -1472,11 +1479,16 @@ int newcat_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo)
|
|||
return err;
|
||||
}
|
||||
|
||||
if (newcat_is_rig(rig, RIG_MODEL_FT991))
|
||||
if (is_ft991)
|
||||
{
|
||||
vfo = RIG_VFO_A;
|
||||
tx_vfo = RIG_SPLIT_ON == split ? RIG_VFO_B : RIG_VFO_A;
|
||||
}
|
||||
else if (is_ft101)
|
||||
{
|
||||
vfo = RIG_VFO_MAIN;
|
||||
tx_vfo = RIG_SPLIT_ON == split ? RIG_VFO_SUB : RIG_VFO_MAIN;
|
||||
}
|
||||
else
|
||||
{
|
||||
err = newcat_get_vfo(rig, &rx_vfo); /* sync to rig current vfo */
|
||||
|
@ -1558,7 +1570,7 @@ int newcat_get_split_vfo(RIG *rig, vfo_t vfo, split_t *split, vfo_t *tx_vfo)
|
|||
}
|
||||
|
||||
// we assume split is always on VFO_B
|
||||
if (*tx_vfo == RIG_VFO_B)
|
||||
if (*tx_vfo == RIG_VFO_B || *tx_vfo == RIG_VFO_SUB)
|
||||
{
|
||||
*split = RIG_SPLIT_ON;
|
||||
}
|
||||
|
@ -1944,7 +1956,7 @@ int newcat_set_ctcss_tone(RIG *rig, vfo_t vfo, tone_t tone)
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB== vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
for (i = 0, tone_match = FALSE; rig->caps->ctcss_list[i] != 0; i++)
|
||||
|
@ -2003,7 +2015,7 @@ int newcat_get_ctcss_tone(RIG *rig, vfo_t vfo, tone_t *tone)
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "%s%c%c", cmd, main_sub_vfo,
|
||||
|
@ -2398,7 +2410,7 @@ int newcat_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
{
|
||||
main_sub_vfo = RIG_VFO_B == vfo ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
switch (ant)
|
||||
|
@ -2490,7 +2502,7 @@ int newcat_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option,
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "%s%c%c", command, main_sub_vfo,
|
||||
|
@ -2558,7 +2570,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_PURE)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
switch (level)
|
||||
|
@ -2917,7 +2929,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
return -RIG_ENAVAIL;
|
||||
}
|
||||
|
||||
val.i *= 10; // tenths to ms conversion
|
||||
val.i *= 100; // tenths to ms conversion
|
||||
|
||||
if (is_ft101)
|
||||
{
|
||||
|
@ -3138,7 +3150,7 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_PURE)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
switch (level)
|
||||
|
@ -3456,21 +3468,21 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
{
|
||||
switch (val->i)
|
||||
{
|
||||
case 0: val->i = 3; break;
|
||||
case 0: val->i = 1; break;
|
||||
|
||||
case 1: val->i = 5; break;
|
||||
case 1: val->i = 1; break;
|
||||
|
||||
case 2: val->i = 10; break;
|
||||
case 2: val->i = 1; break;
|
||||
|
||||
case 3: val->i = 15; break;
|
||||
case 3: val->i = 2; break;
|
||||
|
||||
case 4: val->i = 20; break;
|
||||
case 4: val->i = 2; break;
|
||||
|
||||
case 5: val->i = 25; break;
|
||||
case 5: val->i = 3; break;
|
||||
|
||||
case 6: val->i = 30; break;
|
||||
case 6: val->i = 3; break;
|
||||
|
||||
default: val->i = (val->i - 6) * 10 + 30;
|
||||
default: val->i = (val->i - 6) + 3;
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
|
@ -3676,7 +3688,7 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
|||
|
||||
if (rig->caps->targetable_vfo & (RIG_TARGETABLE_MODE | RIG_TARGETABLE_TONE))
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
switch (func)
|
||||
|
@ -4244,6 +4256,7 @@ int newcat_set_mem(RIG *rig, vfo_t vfo, int ch)
|
|||
switch (vfo)
|
||||
{
|
||||
case RIG_VFO_A:
|
||||
case RIG_VFO_MAIN:
|
||||
/* Jump back from memory channel */
|
||||
restore_vfo = TRUE;
|
||||
break;
|
||||
|
@ -4254,6 +4267,7 @@ int newcat_set_mem(RIG *rig, vfo_t vfo, int ch)
|
|||
break;
|
||||
|
||||
case RIG_VFO_B:
|
||||
case RIG_VFO_SUB:
|
||||
default:
|
||||
/* Only works with VFO A */
|
||||
return -RIG_ENTARGET;
|
||||
|
@ -4333,7 +4347,7 @@ int newcat_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
switch (op)
|
||||
|
@ -4536,6 +4550,7 @@ int newcat_set_channel(RIG *rig, const channel_t *chan)
|
|||
switch (state->current_vfo)
|
||||
{
|
||||
case RIG_VFO_A:
|
||||
case RIG_VFO_B:
|
||||
/* Jump back from memory channel */
|
||||
restore_vfo = TRUE;
|
||||
break;
|
||||
|
@ -4545,7 +4560,7 @@ int newcat_set_channel(RIG *rig, const channel_t *chan)
|
|||
restore_vfo = FALSE;
|
||||
break;
|
||||
|
||||
case RIG_VFO_B:
|
||||
case RIG_VFO_SUB:
|
||||
default:
|
||||
/* Only works with VFO A */
|
||||
return -RIG_ENTARGET;
|
||||
|
@ -5006,10 +5021,12 @@ int newcat_set_tx_vfo(RIG *rig, vfo_t tx_vfo)
|
|||
switch (tx_vfo)
|
||||
{
|
||||
case RIG_VFO_A:
|
||||
case RIG_VFO_MAIN:
|
||||
p1 = '0';
|
||||
break;
|
||||
|
||||
case RIG_VFO_B:
|
||||
case RIG_VFO_SUB:
|
||||
p1 = '1';
|
||||
break;
|
||||
|
||||
|
@ -5099,12 +5116,14 @@ int newcat_get_tx_vfo(RIG *rig, vfo_t *tx_vfo)
|
|||
switch (c)
|
||||
{
|
||||
case '0':
|
||||
*tx_vfo = RIG_VFO_A;
|
||||
if (rig->state.vfo_list && RIG_VFO_MAIN) *tx_vfo = RIG_VFO_MAIN;
|
||||
else *tx_vfo = RIG_VFO_A;
|
||||
rig->state.cache.split = 0;
|
||||
break;
|
||||
|
||||
case '1' :
|
||||
*tx_vfo = RIG_VFO_B;
|
||||
if (rig->state.vfo_list && RIG_VFO_SUB) *tx_vfo = RIG_VFO_SUB;
|
||||
else *tx_vfo = RIG_VFO_B;
|
||||
rig->state.cache.split = 1;
|
||||
break;
|
||||
|
||||
|
@ -5153,15 +5172,18 @@ int newcat_set_vfo_from_alias(RIG *rig, vfo_t *vfo)
|
|||
|
||||
case RIG_VFO_TX:
|
||||
/* set to another vfo for split or uplink */
|
||||
if (rig->state.vfo_list & RIG_VFO_MAIN)
|
||||
*vfo = (rig->state.current_vfo == RIG_VFO_SUB) ? RIG_VFO_MAIN : RIG_VFO_SUB;
|
||||
else
|
||||
*vfo = (rig->state.current_vfo == RIG_VFO_B) ? RIG_VFO_A : RIG_VFO_B;
|
||||
break;
|
||||
|
||||
case RIG_VFO_MAIN:
|
||||
*vfo = RIG_VFO_A;
|
||||
*vfo = RIG_VFO_MAIN;
|
||||
break;
|
||||
|
||||
case RIG_VFO_SUB:
|
||||
*vfo = RIG_VFO_B;
|
||||
*vfo = RIG_VFO_SUB;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -5224,7 +5246,7 @@ int newcat_set_narrow(RIG *rig, vfo_t vfo, ncboolean narrow)
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
if (narrow == TRUE)
|
||||
|
@ -5269,7 +5291,7 @@ int newcat_get_narrow(RIG *rig, vfo_t vfo, ncboolean *narrow)
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "%s%c%c", command, main_sub_vfo,
|
||||
|
@ -5822,7 +5844,7 @@ static char get_roofing_filter(RIG *rig, vfo_t vfo)
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "RF%c%c", main_sub_vfo,
|
||||
|
@ -5871,7 +5893,7 @@ int newcat_get_rx_bandwidth(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t *width)
|
|||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "%s%c%c", cmd, main_sub_vfo,
|
||||
|
@ -5889,6 +5911,7 @@ int newcat_get_rx_bandwidth(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t *width)
|
|||
priv->ret_data);
|
||||
return -RIG_EPROTO;
|
||||
}
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: w=%d\n", __func__, w);
|
||||
|
||||
// ft950 and ft1200 overlap so we'll combine them
|
||||
if (is_ft950 || is_ft1200)
|
||||
|
@ -6161,6 +6184,7 @@ int newcat_get_rx_bandwidth(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t *width)
|
|||
|
||||
else if (newcat_is_rig(rig, RIG_MODEL_FTDX101D))
|
||||
{
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: is_ft101 w=%d, mode=%s\n", __func__, w, rig_strrmode(mode));
|
||||
if (w == 0) // then we need to know the roofing filter
|
||||
{
|
||||
char roofing_filter = get_roofing_filter(rig, vfo);
|
||||
|
@ -6290,7 +6314,9 @@ int newcat_get_rx_bandwidth(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t *width)
|
|||
|
||||
case 23: *width = 4000; break;
|
||||
|
||||
default: return -RIG_EINVAL;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unknown width=%d\n", __func__, w);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -6308,8 +6334,10 @@ int newcat_get_rx_bandwidth(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t *width)
|
|||
*width = 16000; break;
|
||||
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: bad mode\n", __func__);
|
||||
return -RIG_EINVAL;
|
||||
} /* end switch(mode) */
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: end if FTDX101D\n", __func__);
|
||||
|
||||
} /* end if FTDX101D */
|
||||
else /* end if FT991 */
|
||||
|
@ -6349,7 +6377,7 @@ int newcat_get_rx_bandwidth(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t *width)
|
|||
return -RIG_EINVAL;
|
||||
} /* end switch (mode) */
|
||||
} /* end else */
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE,"%s: return RIG_OK\n", __func__);
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -1636,6 +1636,7 @@ int HAMLIB_API rig_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
|| vfo == rig->state.current_vfo)
|
||||
{
|
||||
retcode = caps->set_mode(rig, vfo, mode, width);
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: retcode after set_mode=%d\n", __func__, retcode);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1743,11 +1744,13 @@ int HAMLIB_API rig_get_mode(RIG *rig,
|
|||
|| vfo == rig->state.current_vfo)
|
||||
{
|
||||
retcode = caps->get_mode(rig, vfo, mode, width);
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: retcode after get_mode=%d\n", __func__, retcode);
|
||||
}
|
||||
else
|
||||
{
|
||||
int rc2;
|
||||
vfo_t curr_vfo;
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s(%d): debug", __func__,__LINE__);
|
||||
|
||||
if (!caps->set_vfo)
|
||||
{
|
||||
|
@ -1776,12 +1779,14 @@ int HAMLIB_API rig_get_mode(RIG *rig,
|
|||
if (retcode == RIG_OK
|
||||
&& (vfo == RIG_VFO_CURR || vfo == rig->state.current_vfo))
|
||||
{
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s(%d): debug", __func__,__LINE__);
|
||||
rig->state.current_mode = *mode;
|
||||
rig->state.current_width = *width;
|
||||
}
|
||||
|
||||
if (*width == RIG_PASSBAND_NORMAL && *mode != RIG_MODE_NONE)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s(%d): debug", __func__,__LINE__);
|
||||
*width = rig_passband_normal(rig, *mode);
|
||||
}
|
||||
|
||||
|
|
|
@ -4100,6 +4100,7 @@ declare_proto_rig(dump_state)
|
|||
{
|
||||
fprintf(fout, "vfo_ops=0x%x\n", rig->caps->vfo_ops);
|
||||
fprintf(fout, "ptt_type=0x%x\n", rig->state.pttport.type.ptt);
|
||||
fprintf(fout, "targetable_vfo=0x%x\n", rig->caps->targetable_vfo);
|
||||
fprintf(fout, "done\n");
|
||||
}
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue