Add option to not use VFO XCHG command for Icom

Added option to not use VFO XCHG command when setting split
parameters.

Merge branch 'change_icom_sub_access' of git://git.code.sf.net/u/bsomervi/hamlib
Hamlib-3.0
Nate Bargmann 2014-04-16 21:23:52 -05:00
commit 2885d56445
54 zmienionych plików z 98 dodań i 6 usunięć

Wyświetl plik

@ -56,6 +56,7 @@
static const struct icom_priv_caps delta2_priv_caps = {
0x01, /* default address */
1, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list /* TODO: ts_sc_list */
};

Wyświetl plik

@ -39,6 +39,7 @@
static const struct icom_priv_caps ic1275_priv_caps = {
0x18, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -48,6 +48,7 @@
static const struct icom_priv_caps ic271_priv_caps = {
0x20, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -43,6 +43,7 @@
static const struct icom_priv_caps ic275_priv_caps = {
0x10, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -47,6 +47,7 @@
static const struct icom_priv_caps ic471_priv_caps = {
0x22, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -43,6 +43,7 @@
static const struct icom_priv_caps ic475_priv_caps = {
0x14, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -109,6 +109,7 @@
static const struct icom_priv_caps IC7000_priv_caps = {
0x70, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic7000_ts_sc_list
};

Wyświetl plik

@ -79,6 +79,7 @@
static const struct icom_priv_caps ic703_priv_caps = {
0x68, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic706_ts_sc_list
};

Wyświetl plik

@ -132,6 +132,7 @@ static int ic706_r2i_mode(RIG *rig, rmode_t mode, pbwidth_t width,
static const struct icom_priv_caps ic706_priv_caps = {
0x48, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic706_ts_sc_list,
.r2i_mode = ic706_r2i_mode
};
@ -264,6 +265,7 @@ const struct rig_caps ic706_caps = {
static const struct icom_priv_caps ic706mkii_priv_caps = {
0x4e, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic706_ts_sc_list,
.r2i_mode = ic706_r2i_mode
};
@ -419,6 +421,7 @@ const struct rig_caps ic706mkii_caps = {
static const struct icom_priv_caps ic706mkiig_priv_caps = {
0x58, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic706_ts_sc_list,
.r2i_mode = ic706_r2i_mode
};

Wyświetl plik

@ -53,6 +53,7 @@
static const struct icom_priv_caps ic707_priv_caps = {
0x3e, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -97,6 +97,7 @@
static const struct icom_priv_caps ic7100_priv_caps = {
0x88, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic7100_ts_sc_list, /* FIXME */
};

Wyświetl plik

@ -71,6 +71,7 @@
static const struct icom_priv_caps IC718_priv_caps = {
0x5e, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic718_ts_sc_list
};

Wyświetl plik

@ -79,6 +79,7 @@
static const struct icom_priv_caps IC7200_priv_caps = {
0x76, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic7200_ts_sc_list
};

Wyświetl plik

@ -51,6 +51,7 @@
static const struct icom_priv_caps ic725_priv_caps = {
0x28, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -53,6 +53,7 @@
static const struct icom_priv_caps ic726_priv_caps = {
0x30, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -53,6 +53,7 @@
static const struct icom_priv_caps ic728_priv_caps = {
0x38, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -50,6 +50,7 @@
static const struct icom_priv_caps ic735_priv_caps = {
0x04, /* default address */
1, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -57,6 +57,7 @@
static const struct icom_priv_caps ic736_priv_caps = {
0x40, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -53,6 +53,7 @@
static const struct icom_priv_caps ic737_priv_caps = {
0x3c, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -57,6 +57,7 @@
static const struct icom_priv_caps ic738_priv_caps = {
0x44, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -75,6 +75,7 @@
static const struct icom_priv_caps ic7410_priv_caps = {
0x80, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic756pro_ts_sc_list
};

Wyświetl plik

@ -163,6 +163,7 @@ static int ic746pro_get_ext_parm(RIG *rig, token_t token, value_t *val);
static const struct icom_priv_caps ic746_priv_caps = {
0x56, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic756pro_ts_sc_list
};
@ -369,6 +370,7 @@ static const struct confparams ic746pro_ext_parms[] = {
static const struct icom_priv_caps ic746pro_priv_caps = {
0x66, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic756pro_ts_sc_list
};

Wyświetl plik

@ -79,6 +79,7 @@
static const struct icom_priv_caps ic751_priv_caps = {
0x1c, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -113,6 +113,7 @@ static int r2i_mode(RIG *rig, rmode_t mode, pbwidth_t width,
static const struct icom_priv_caps ic756_priv_caps = {
0x50, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic756_ts_sc_list,
.r2i_mode = r2i_mode
};
@ -254,6 +255,7 @@ const struct rig_caps ic756_caps = {
static const struct icom_priv_caps ic756pro_priv_caps = {
0x5c, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic756pro_ts_sc_list
};
@ -401,6 +403,7 @@ const struct rig_caps ic756pro_caps = {
static const struct icom_priv_caps ic756pro2_priv_caps = {
0x64, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic756pro_ts_sc_list
};
@ -759,6 +762,7 @@ static int ic756pro2_get_ext_parm(RIG *rig, token_t token, value_t *val)
static const struct icom_priv_caps ic756pro3_priv_caps = {
0x6e, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic756pro_ts_sc_list
};

Wyświetl plik

@ -88,6 +88,7 @@
static const struct icom_priv_caps ic7600_priv_caps = {
0x7a, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic756pro_ts_sc_list
};

Wyświetl plik

@ -51,6 +51,7 @@
static const struct icom_priv_caps ic761_priv_caps = {
0x1e, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -53,6 +53,7 @@
static const struct icom_priv_caps ic765_priv_caps = {
0x2c, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -75,6 +75,7 @@
static const struct icom_priv_caps ic7700_priv_caps = {
0x74, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic756pro_ts_sc_list
};

Wyświetl plik

@ -50,6 +50,7 @@
static const struct icom_priv_caps ic775_priv_caps = {
0x46, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -63,6 +63,7 @@
static const struct icom_priv_caps ic78_priv_caps = {
0x62, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic706_ts_sc_list
};

Wyświetl plik

@ -78,6 +78,7 @@ static int ic7800_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val);
static const struct icom_priv_caps ic7800_priv_caps = {
0x6a, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic756pro_ts_sc_list
};

Wyświetl plik

@ -54,6 +54,7 @@
static const struct icom_priv_caps ic781_priv_caps = {
0x26, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -48,7 +48,8 @@
*/
static const struct icom_priv_caps ic820h_priv_caps = {
0x42, /* default address */
1, /* 731 mode */
1, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -48,7 +48,8 @@
*/
static const struct icom_priv_caps ic821h_priv_caps = {
0x4c, /* default address */
1, /* 731 mode */
1, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -245,6 +245,7 @@ static int ic910_r2i_mode(RIG *rig, rmode_t mode, pbwidth_t width,
static const struct icom_priv_caps ic910_priv_caps = {
0x60, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic910_ts_sc_list,
.r2i_mode = ic910_r2i_mode
};

Wyświetl plik

@ -97,6 +97,7 @@
static const struct icom_priv_caps ic9100_priv_caps = {
0x7c, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic910_ts_sc_list, /* FIXME */
};

Wyświetl plik

@ -89,6 +89,7 @@ const struct ts_sc_list ic92d_ts_sc_list[] = {
static const struct icom_priv_caps ic92d_priv_caps = {
0x01, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic92d_ts_sc_list,
.serial_full_duplex = 1
};

Wyświetl plik

@ -44,6 +44,7 @@
static const struct icom_priv_caps ic970_priv_caps = {
0x2e, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -255,6 +255,7 @@ struct icom_addr {
#define TOK_CIVADDR TOKEN_BACKEND(1)
#define TOK_MODE731 TOKEN_BACKEND(2)
#define TOK_NOXCHG TOKEN_BACKEND(3)
const struct confparams icom_cfg_params[] = {
{ TOK_CIVADDR, "civaddr", "CI-V address", "Transceiver's CI-V address",
@ -264,6 +265,9 @@ const struct confparams icom_cfg_params[] = {
"data length, needed for IC731 and IC735",
"0", RIG_CONF_CHECKBUTTON
},
{ TOK_NOXCHG, "no_xchg", "No VFO XCHG", "Don't Use VFO XCHG to set other VFO mode and Frequency",
"0", RIG_CONF_CHECKBUTTON
},
{ RIG_CONF_END, NULL, }
};
@ -378,6 +382,7 @@ int icom_init(RIG *rig)
priv->re_civ_addr = priv_caps->re_civ_addr;
priv->civ_731_mode = priv_caps->civ_731_mode;
priv->no_xchg = priv_caps->no_xchg;
return RIG_OK;
}
@ -1359,6 +1364,9 @@ int icom_set_conf(RIG *rig, token_t token, const char *val)
case TOK_MODE731:
priv->civ_731_mode = atoi(val) ? 1:0;
break;
case TOK_NOXCHG:
priv->no_xchg = atoi(val) ? 1:0;
break;
default:
return -RIG_EINVAL;
}
@ -1385,6 +1393,9 @@ int icom_get_conf(RIG *rig, token_t token, char *val)
case TOK_MODE731:
sprintf(val, "%d", priv->civ_731_mode);
break;
case TOK_NOXCHG:
sprintf(val, "%d", priv->no_xchg);
break;
default:
return -RIG_EINVAL;
}
@ -1654,9 +1665,14 @@ int icom_set_split_freq(RIG *rig, vfo_t vfo, freq_t tx_freq)
{
int status;
vfo_t rx_vfo, tx_vfo;
struct icom_priv_data *priv;
struct rig_state *rs;
rs = &rig->state;
priv = (struct icom_priv_data*)rs->priv;
/* This method works also in memory mode(RIG_VFO_MEM) */
if (rig_has_vfo_op(rig, RIG_OP_XCHG)) {
if (!priv->no_xchg && rig_has_vfo_op(rig, RIG_OP_XCHG)) {
status = icom_vfo_op(rig, vfo, RIG_OP_XCHG);
if (status != RIG_OK)
return status;
@ -1701,9 +1717,14 @@ int icom_get_split_freq(RIG *rig, vfo_t vfo, freq_t *tx_freq)
{
int status;
vfo_t rx_vfo, tx_vfo;
struct icom_priv_data *priv;
struct rig_state *rs;
rs = &rig->state;
priv = (struct icom_priv_data*)rs->priv;
/* This method works also in memory mode(RIG_VFO_MEM) */
if (rig_has_vfo_op(rig, RIG_OP_XCHG)) {
if (!priv->no_xchg && rig_has_vfo_op(rig, RIG_OP_XCHG)) {
status = icom_vfo_op(rig, vfo, RIG_OP_XCHG);
if (status != RIG_OK)
return status;
@ -1748,9 +1769,14 @@ int icom_set_split_mode(RIG *rig, vfo_t vfo, rmode_t tx_mode, pbwidth_t tx_width
{
int status;
vfo_t rx_vfo, tx_vfo;
struct icom_priv_data *priv;
struct rig_state *rs;
rs = &rig->state;
priv = (struct icom_priv_data*)rs->priv;
/* This method works also in memory mode(RIG_VFO_MEM) */
if (rig_has_vfo_op(rig, RIG_OP_XCHG)) {
if (!priv->no_xchg && rig_has_vfo_op(rig, RIG_OP_XCHG)) {
status = icom_vfo_op(rig, vfo, RIG_OP_XCHG);
if (status != RIG_OK)
return status;
@ -1796,9 +1822,14 @@ int icom_get_split_mode(RIG *rig, vfo_t vfo, rmode_t *tx_mode, pbwidth_t *tx_wid
{
int status;
vfo_t rx_vfo, tx_vfo;
struct icom_priv_data *priv;
struct rig_state *rs;
rs = &rig->state;
priv = (struct icom_priv_data*)rs->priv;
/* This method works also in memory mode(RIG_VFO_MEM) */
if (rig_has_vfo_op(rig, RIG_OP_XCHG)) {
if (!priv->no_xchg && rig_has_vfo_op(rig, RIG_OP_XCHG)) {
status = icom_vfo_op(rig, vfo, RIG_OP_XCHG);
if (status != RIG_OK)
return status;

Wyświetl plik

@ -98,6 +98,7 @@ typedef struct rig_pltstate {
struct icom_priv_caps {
unsigned char re_civ_addr; /* the remote dlft equipment's CI-V address*/
int civ_731_mode; /* Off: freqs on 10 digits, On: freqs on 8 digits */
int no_xchg; /* Off: use VFO XCHG to set other VFO, On: use set VFO to set other VFO */
const struct ts_sc_list *ts_sc_list;
int settle_time; /*!< Receiver settle time, in ms */
int (*r2i_mode)(RIG *rig, rmode_t mode, pbwidth_t width,
@ -116,6 +117,7 @@ struct icom_priv_caps {
struct icom_priv_data {
unsigned char re_civ_addr; /* the remote equipment's CI-V address*/
int civ_731_mode; /* Off: freqs on 10 digits, On: freqs on 8 digits */
int no_xchg; /* Off: use VFO XCHG to set other VFO, On: use set VFO to set other VFO */
pltstate_t *pltstate; /* only on optoscan */
};

Wyświetl plik

@ -48,6 +48,7 @@
static const struct icom_priv_caps icr10_priv_caps = {
0x52, /* default address */
0, /* 731 mode */
0, /* no XCHG */
r8500_ts_sc_list /* wrong, but don't have set_ts anyway */
};

Wyświetl plik

@ -52,6 +52,7 @@
static const struct icom_priv_caps icr20_priv_caps = {
0x6c, /* default address */
0, /* 731 mode */
0, /* no XCHG */
r8500_ts_sc_list /* wrong, but don't have set_ts anyway */
};

Wyświetl plik

@ -52,6 +52,7 @@ static int r7000_set_freq(RIG *rig, vfo_t vfo, freq_t freq);
static const struct icom_priv_caps icr7000_priv_caps = {
0x08, /* default address */
0, /* 731 mode */
0, /* no XCHG */
r7100_ts_sc_list
};
/*
@ -161,6 +162,7 @@ const struct rig_caps icr7000_caps = {
static const struct icom_priv_caps icr7100_priv_caps = {
0x34, /* default address */
0, /* 731 mode */
0, /* no XCHG */
r7100_ts_sc_list
};
/*

Wyświetl plik

@ -43,6 +43,7 @@
static const struct icom_priv_caps icr71_priv_caps = {
0x1a, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list /* none actually */
};

Wyświetl plik

@ -44,6 +44,7 @@
static const struct icom_priv_caps icr72_priv_caps = {
0x32, /* default address */
0, /* 731 mode */
0, /* no XCHG */
ic737_ts_sc_list
};

Wyświetl plik

@ -97,6 +97,7 @@ static int icr75_get_channel(RIG *rig, channel_t *chan);
static const struct icom_priv_caps icr75_priv_caps = {
0x5a, /* default address */
0, /* 731 mode */
0, /* no XCHG */
r75_ts_sc_list
};

Wyświetl plik

@ -65,6 +65,7 @@
static const struct icom_priv_caps icr8500_priv_caps = {
0x4a, /* default address */
0, /* 731 mode */
0, /* no XCHG */
r8500_ts_sc_list
};
/*

Wyświetl plik

@ -60,6 +60,7 @@
static const struct icom_priv_caps icr9000_priv_caps = {
0x2a, /* default address */
0, /* 731 mode */
0, /* no XCHG */
r9000_ts_sc_list
};

Wyświetl plik

@ -64,6 +64,7 @@
static const struct icom_priv_caps icr9500_priv_caps = {
0x72, /* default address */
0, /* 731 mode */
0, /* no XCHG */
r9500_ts_sc_list
};

Wyświetl plik

@ -48,6 +48,7 @@
static const struct icom_priv_caps icrx7_priv_caps = {
0x78, /* default address */
0, /* 731 mode */
0, /* no XCHG */
r8500_ts_sc_list /* wrong, but don't have set_ts anyway */
};

Wyświetl plik

@ -66,6 +66,7 @@ const struct ts_sc_list id1_ts_sc_list[] = {
static const struct icom_priv_caps id1_priv_caps = {
0x01, /* default address */
0, /* 731 mode */
0, /* no XCHG */
id1_ts_sc_list
};

Wyświetl plik

@ -58,6 +58,7 @@ static int omni6_get_rit(RIG *rig, vfo_t vfo, shortfreq_t *rit);
static const struct icom_priv_caps omnivip_priv_caps = {
0x04, /* default address */
0, /* 731 mode */
0, /* no XCHG */
NULL /* TODO */
};

Wyświetl plik

@ -67,6 +67,7 @@ extern struct confparams opto_ext_parms[];
static const struct icom_priv_caps os456_priv_caps = {
0x80, /* default address */
0, /* 731 mode */
0, /* no XCHG */
NULL,
.settle_time = 20,
};

Wyświetl plik

@ -59,6 +59,7 @@ extern struct confparams opto_ext_parms[];
static const struct icom_priv_caps os535_priv_caps = {
0x80, /* default address */
0, /* 731 mode */
0, /* no XCHG */
NULL,
.settle_time = 12,
};