kopia lustrzana https://github.com/Hamlib/Hamlib
Merge branch 'master' of https://github.com/Hamlib/Hamlib
commit
4c9df1624b
|
@ -57,6 +57,18 @@
|
|||
|
||||
#define IC7300_ANTS (RIG_ANT_1) /* ant-1 is Hf-6m */
|
||||
|
||||
struct cmdparams ic7300_rigparms[] = {
|
||||
{ {.s=RIG_PARM_BEEP}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x23}, CMD_DAT_BOL, 1 },
|
||||
{ {.s=RIG_PARM_BACKLIGHT}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x81}, CMD_DAT_LVL, 2 },
|
||||
{ {.s=RIG_PARM_TIME}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x95}, CMD_DAT_TIM, 2 },
|
||||
{ {.s=RIG_PARM_NONE} }
|
||||
};
|
||||
|
||||
struct cmdparams ic7300_riglevels[] = {
|
||||
{ {.s=RIG_LEVEL_VOXDELAY}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x91}, CMD_DAT_INT, 1 },
|
||||
{ {.s=RIG_LEVEL_NONE} }
|
||||
};
|
||||
|
||||
/*
|
||||
* IC-7300 S-meter levels measured from live signals on multiple bands. Provides a good approximation.
|
||||
*/
|
||||
|
@ -126,6 +138,17 @@
|
|||
#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)
|
||||
#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)
|
||||
|
||||
struct cmdparams ic9700_rigparms[] = {
|
||||
{ {.s=RIG_PARM_BEEP}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x29}, CMD_DAT_BOL, 1 },
|
||||
{ {.s=RIG_PARM_BACKLIGHT}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x52}, CMD_DAT_LVL, 2 },
|
||||
{ {.s=RIG_PARM_NONE} }
|
||||
};
|
||||
|
||||
struct cmdparams ic9700_riglevels[] = {
|
||||
{ {.s=RIG_LEVEL_VOXDELAY}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x03, 0x30}, CMD_DAT_INT, 1 },
|
||||
{ {.s=RIG_LEVEL_NONE} }
|
||||
};
|
||||
|
||||
#define IC9700_STR_CAL { 7, \
|
||||
{ \
|
||||
{ 0, -54 }, \
|
||||
|
@ -196,6 +219,8 @@ static const struct icom_priv_caps IC7300_priv_caps =
|
|||
{ .level = RIG_AGC_SLOW, .icom_level = 3 },
|
||||
{ .level = -1, .icom_level = 0 },
|
||||
},
|
||||
.rigparms = ic7300_rigparms, /* Custom parm parameters */
|
||||
.riglevels = ic7300_riglevels, /* Custom level parameters */
|
||||
};
|
||||
|
||||
static const struct icom_priv_caps IC9700_priv_caps =
|
||||
|
@ -212,15 +237,10 @@ static const struct icom_priv_caps IC9700_priv_caps =
|
|||
{ .level = RIG_AGC_SLOW, .icom_level = 3 },
|
||||
{ .level = -1, .icom_level = 0 },
|
||||
},
|
||||
.rigparms = ic9700_rigparms, /* Custom parm parameters */
|
||||
.riglevels = ic9700_riglevels, /* Custom level parameters */
|
||||
};
|
||||
|
||||
int ic7300_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val);
|
||||
int ic7300_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val);
|
||||
int ic9700_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val);
|
||||
int ic9700_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val);
|
||||
int ic7300_set_parm(RIG *rig, setting_t parm, value_t val);
|
||||
int ic7300_get_parm(RIG *rig, setting_t parm, value_t *val);
|
||||
|
||||
const struct rig_caps ic7300_caps =
|
||||
{
|
||||
.rig_model = RIG_MODEL_IC7300,
|
||||
|
@ -364,14 +384,14 @@ const struct rig_caps ic7300_caps =
|
|||
.set_xit = icom_set_xit_new,
|
||||
|
||||
.decode_event = icom_decode_event,
|
||||
.set_level = ic7300_set_level,
|
||||
.get_level = ic7300_get_level,
|
||||
.set_level = icom_set_level,
|
||||
.get_level = icom_get_level,
|
||||
.set_ext_level = icom_set_ext_level,
|
||||
.get_ext_level = icom_get_ext_level,
|
||||
.set_func = icom_set_func,
|
||||
.get_func = icom_get_func,
|
||||
.set_parm = ic7300_set_parm,
|
||||
.get_parm = ic7300_get_parm,
|
||||
.set_parm = icom_set_parm,
|
||||
.get_parm = icom_get_parm,
|
||||
.set_mem = icom_set_mem,
|
||||
.vfo_op = icom_vfo_op,
|
||||
.scan = icom_scan,
|
||||
|
@ -399,7 +419,6 @@ const struct rig_caps ic7300_caps =
|
|||
.power2mW = icom_power2mW,
|
||||
.mW2power = icom_mW2power,
|
||||
.send_morse = icom_send_morse
|
||||
|
||||
};
|
||||
|
||||
const struct rig_caps ic9700_caps =
|
||||
|
@ -540,8 +559,8 @@ const struct rig_caps ic9700_caps =
|
|||
.get_rit = icom_get_rit_new,
|
||||
|
||||
.decode_event = icom_decode_event,
|
||||
.set_level = ic9700_set_level,
|
||||
.get_level = ic9700_get_level,
|
||||
.set_level = icom_set_level,
|
||||
.get_level = icom_get_level,
|
||||
.set_ext_level = icom_set_ext_level,
|
||||
.get_ext_level = icom_get_ext_level,
|
||||
.set_func = icom_set_func,
|
||||
|
@ -571,156 +590,7 @@ const struct rig_caps ic9700_caps =
|
|||
.set_split_vfo = icom_set_split_vfo,
|
||||
.get_split_vfo = icom_get_split_vfo,
|
||||
.set_powerstat = icom_set_powerstat,
|
||||
.get_powerstat = icom_get_powerstat,
|
||||
.power2mW = icom_power2mW,
|
||||
.mW2power = icom_mW2power,
|
||||
.send_morse = icom_send_morse
|
||||
|
||||
};
|
||||
|
||||
int ic7300_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||
{
|
||||
unsigned char cmdbuf[MAXFRAMELEN];
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (level)
|
||||
{
|
||||
case RIG_LEVEL_VOXDELAY:
|
||||
cmdbuf[0] = 0x01;
|
||||
cmdbuf[1] = 0x91;
|
||||
return icom_set_level_raw(rig, level, C_CTL_MEM, S_MEM_PARM, 2, cmdbuf, 1, val);
|
||||
|
||||
default:
|
||||
return icom_set_level(rig, vfo, level, val);
|
||||
}
|
||||
}
|
||||
|
||||
int ic7300_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||
{
|
||||
unsigned char cmdbuf[MAXFRAMELEN];
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (level)
|
||||
{
|
||||
case RIG_LEVEL_VOXDELAY:
|
||||
cmdbuf[0] = 0x01;
|
||||
cmdbuf[1] = 0x91;
|
||||
return icom_get_level_raw(rig, level, C_CTL_MEM, S_MEM_PARM, 2, cmdbuf, val);
|
||||
|
||||
default:
|
||||
return icom_get_level(rig, vfo, level, val);
|
||||
}
|
||||
}
|
||||
|
||||
int ic9700_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||
{
|
||||
unsigned char cmdbuf[MAXFRAMELEN];
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (level)
|
||||
{
|
||||
case RIG_LEVEL_VOXDELAY:
|
||||
cmdbuf[0] = 0x03;
|
||||
cmdbuf[1] = 0x30;
|
||||
return icom_set_level_raw(rig, level, C_CTL_MEM, S_MEM_PARM, 2, cmdbuf, 1, val);
|
||||
|
||||
default:
|
||||
return ic7300_set_level(rig, vfo, level, val);
|
||||
}
|
||||
}
|
||||
|
||||
int ic9700_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||
{
|
||||
unsigned char cmdbuf[MAXFRAMELEN];
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (level)
|
||||
{
|
||||
case RIG_LEVEL_VOXDELAY:
|
||||
cmdbuf[0] = 0x03;
|
||||
cmdbuf[1] = 0x30;
|
||||
return icom_get_level_raw(rig, level, C_CTL_MEM, S_MEM_PARM, 2, cmdbuf, val);
|
||||
|
||||
default:
|
||||
return ic7300_get_level(rig, vfo, level, val);
|
||||
}
|
||||
}
|
||||
|
||||
int ic7300_set_parm(RIG *rig, setting_t parm, value_t val)
|
||||
{
|
||||
unsigned char parmbuf[MAXFRAMELEN];
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (parm)
|
||||
{
|
||||
case RIG_PARM_BEEP:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x23;
|
||||
return icom_set_custom_parm(rig, 2, parmbuf, 1, val.i ? 1 : 0);
|
||||
|
||||
case RIG_PARM_BACKLIGHT:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x81;
|
||||
return icom_set_custom_parm(rig, 2, parmbuf, 2, (int)(val.f * 255.0f));
|
||||
|
||||
case RIG_PARM_TIME:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x95;
|
||||
return icom_set_custom_parm_time(rig, 2, parmbuf, val.i);
|
||||
|
||||
default:
|
||||
return icom_set_parm(rig, parm, val);
|
||||
}
|
||||
}
|
||||
|
||||
int ic7300_get_parm(RIG *rig, setting_t parm, value_t *val)
|
||||
{
|
||||
unsigned char parmbuf[MAXFRAMELEN];
|
||||
int retval;
|
||||
int icom_val;
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (parm)
|
||||
{
|
||||
case RIG_PARM_BEEP:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x23;
|
||||
retval = icom_get_custom_parm(rig, 2, parmbuf, &icom_val);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
val->i = icom_val ? 1 : 0;
|
||||
break;
|
||||
|
||||
case RIG_PARM_BACKLIGHT:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x81;
|
||||
retval = icom_get_custom_parm(rig, 2, parmbuf, &icom_val);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
val->f = (float) icom_val / 255.0f;
|
||||
break;
|
||||
|
||||
case RIG_PARM_TIME:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x95;
|
||||
return icom_get_custom_parm_time(rig, 2, parmbuf, &val->i);
|
||||
|
||||
default:
|
||||
return icom_get_parm(rig, parm, val);
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
|
|
@ -42,7 +42,6 @@
|
|||
*
|
||||
* TODO:
|
||||
* - advanced scanning functions
|
||||
* - set_channel
|
||||
* - set_ctcss_tone/ctcss_sql
|
||||
* - set keyer?
|
||||
* - test all that stuff..
|
||||
|
@ -115,9 +114,9 @@
|
|||
|
||||
typedef struct
|
||||
{
|
||||
unsigned char freq[5]; /* little endian frequency */
|
||||
unsigned char freq[5]; /* little endian frequency */
|
||||
unsigned char mode;
|
||||
unsigned char pb; /* passband or filter selection*/
|
||||
signed char pb; /* passband or filter selection*/
|
||||
unsigned char data; /* data port 0=off 1=on */
|
||||
unsigned char dup; /* duplex, tone, tonesql and DTCS
|
||||
Values in hex are "or"ed together
|
||||
|
@ -131,8 +130,7 @@ typedef struct
|
|||
unsigned char tone_sql[3]; /* tone squelch frequency as tone */
|
||||
struct
|
||||
{
|
||||
//unsigned char
|
||||
//pol; /* DTCS polarity by nibbles Tx pol | Rx pol; 0 = normal; 1 = rev */
|
||||
unsigned char pol; /* DTCS polarity by nibbles Tx pol | Rx pol; 0 = normal; 1 = rev */
|
||||
unsigned char code[2]; /* DTCS code bigendian */
|
||||
} dcs;
|
||||
} channel_str_t;
|
||||
|
@ -157,6 +155,7 @@ typedef channel_str_t band_stack_reg_t;
|
|||
static int ic746_set_parm(RIG *rig, setting_t parm, value_t val);
|
||||
static int ic746_get_parm(RIG *rig, setting_t parm, value_t *val);
|
||||
static int ic746pro_get_channel(RIG *rig, channel_t *chan);
|
||||
static int ic746pro_set_channel(RIG *rig, const channel_t *chan);
|
||||
static int ic746pro_set_ext_parm(RIG *rig, token_t token, value_t val);
|
||||
static int ic746pro_get_ext_parm(RIG *rig, token_t token, value_t *val);
|
||||
|
||||
|
@ -576,6 +575,7 @@ const struct rig_caps ic746pro_caps =
|
|||
.set_ext_parm = ic746pro_set_ext_parm,
|
||||
.get_ext_parm = ic746pro_get_ext_parm,
|
||||
.get_channel = ic746pro_get_channel,
|
||||
.set_channel = ic746pro_set_channel,
|
||||
};
|
||||
|
||||
|
||||
|
@ -905,7 +905,7 @@ int ic746pro_get_channel(RIG *rig, channel_t *chan)
|
|||
{
|
||||
struct icom_priv_data *priv;
|
||||
struct rig_state *rs;
|
||||
unsigned char chanbuf[50];
|
||||
unsigned char chanbuf[MAXFRAMELEN];
|
||||
mem_buf_t *membuf;
|
||||
int chan_len, freq_len, retval, data_len;
|
||||
|
||||
|
@ -984,7 +984,8 @@ int ic746pro_get_channel(RIG *rig, channel_t *chan)
|
|||
|
||||
membuf = (mem_buf_t *)(chanbuf + 4);
|
||||
|
||||
chan->flags = membuf->chan_flag && 0x01 ? RIG_CHFLAG_SKIP : RIG_CHFLAG_NONE;
|
||||
chan->split = membuf->chan_flag & 0x10 ? RIG_SPLIT_ON : RIG_SPLIT_OFF;
|
||||
chan->flags = membuf->chan_flag & 0x01 ? RIG_CHFLAG_SKIP : RIG_CHFLAG_NONE;
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: chan->flags=0x%02x\n", __func__, chan->flags);
|
||||
/* data mode on */
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: membuf->rx.data=0x%02x\n", __func__, membuf->rx.data);
|
||||
|
@ -1003,7 +1004,7 @@ int ic746pro_get_channel(RIG *rig, channel_t *chan)
|
|||
rig_debug(RIG_DEBUG_TRACE, "%s: chan->rptr_shift=%d\n", __func__, chan->rptr_shift);
|
||||
|
||||
/* offset is default for the band & is not stored in channel memory.
|
||||
The following retrieves the system default for the band */
|
||||
The following retrieves the system default for the band */
|
||||
band = (int) chan->freq / 1000000; /* hf, 2m or 6 m */
|
||||
|
||||
if (band < 50) { sc = S_MEM_HF_DUP_OFST; }
|
||||
|
@ -1041,3 +1042,153 @@ int ic746pro_get_channel(RIG *rig, channel_t *chan)
|
|||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* ic746pro_set_channel
|
||||
* Assumes rig!=NULL, rig->state.priv!=NULL, chan!=NULL
|
||||
*/
|
||||
int ic746pro_set_channel(RIG *rig, const channel_t *chan)
|
||||
{
|
||||
struct icom_priv_data *priv;
|
||||
struct rig_state *rs;
|
||||
mem_buf_t membuf = {0};
|
||||
unsigned char chanbuf[MAXFRAMELEN], ackbuf[MAXFRAMELEN];
|
||||
int chan_len, ack_len, freq_len, retval;
|
||||
|
||||
rs = &rig->state;
|
||||
priv = (struct icom_priv_data *)rs->priv;
|
||||
|
||||
freq_len = priv->civ_731_mode ? 4 : 5;
|
||||
|
||||
// set memory channel
|
||||
to_bcd_be(chanbuf, chan->channel_num, 4);
|
||||
chan_len = 2;
|
||||
|
||||
// if good value, we change the memory otherwise clear
|
||||
if (chan->freq != 0 || chan->mode != 0)
|
||||
{
|
||||
if (chan->split == RIG_SPLIT_ON)
|
||||
membuf.chan_flag |= 0x10;
|
||||
else
|
||||
membuf.chan_flag |= chan->flags & RIG_CHFLAG_SKIP ? 0x01 : 0x00;
|
||||
|
||||
// RX
|
||||
to_bcd(membuf.rx.freq, chan->freq, freq_len * 2);
|
||||
|
||||
retval = rig2icom_mode(rig, chan->mode, chan->width,
|
||||
&membuf.rx.mode, &membuf.rx.pb);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
if(membuf.rx.pb == -1)
|
||||
membuf.rx.pb = PD_MEDIUM_3;
|
||||
|
||||
membuf.rx.data = chan->flags & RIG_CHFLAG_DATA ? 1 : 0;
|
||||
membuf.rx.dup = chan->rptr_shift;
|
||||
|
||||
// not empty otherwise the call fail
|
||||
if (chan->ctcss_tone == 0)
|
||||
to_bcd_be(membuf.rx.tone, 885, 6);
|
||||
else
|
||||
to_bcd_be(membuf.rx.tone, chan->ctcss_tone, 6);
|
||||
if (chan->ctcss_sql == 0)
|
||||
to_bcd_be(membuf.rx.tone_sql, 885, 6);
|
||||
else
|
||||
to_bcd_be(membuf.rx.tone_sql, chan->ctcss_sql, 6);
|
||||
|
||||
if (chan->dcs_code == 0)
|
||||
to_bcd_be(membuf.rx.dcs.code, 23, 4);
|
||||
else
|
||||
to_bcd_be(membuf.rx.dcs.code, chan->dcs_code, 4);
|
||||
|
||||
// TX
|
||||
to_bcd(membuf.tx.freq, chan->tx_freq, freq_len * 2);
|
||||
|
||||
retval = rig2icom_mode(rig, chan->tx_mode, chan->tx_width,
|
||||
&membuf.tx.mode, &membuf.tx.pb);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
if(membuf.tx.pb == -1)
|
||||
membuf.tx.pb = PD_MEDIUM_3;
|
||||
|
||||
membuf.tx.data = chan->flags | RIG_CHFLAG_DATA ? 1 : 0;
|
||||
membuf.tx.dup = chan->rptr_shift;
|
||||
|
||||
// not empty otherwise the call fail
|
||||
if (chan->ctcss_tone == 0)
|
||||
to_bcd_be(membuf.tx.tone, 885, 6);
|
||||
else
|
||||
to_bcd_be(membuf.tx.tone, chan->ctcss_tone, 6);
|
||||
if (chan->ctcss_sql == 0)
|
||||
to_bcd_be(membuf.tx.tone_sql, 885, 6);
|
||||
else
|
||||
to_bcd_be(membuf.tx.tone_sql, chan->ctcss_sql, 6);
|
||||
|
||||
if (chan->dcs_code == 0)
|
||||
to_bcd_be(membuf.tx.dcs.code, 23, 4);
|
||||
else
|
||||
to_bcd_be(membuf.tx.dcs.code, chan->dcs_code, 4);
|
||||
|
||||
// set description
|
||||
memcpy(membuf.name, chan->channel_desc, sizeof(membuf.name));
|
||||
|
||||
memcpy(chanbuf+chan_len, &membuf, sizeof(mem_buf_t));
|
||||
chan_len += sizeof(mem_buf_t);
|
||||
|
||||
retval = icom_transaction(rig, C_CTL_MEM, S_MEM_CNTNT,
|
||||
chanbuf, chan_len, ackbuf, &ack_len);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
if (ack_len != 1 || ackbuf[0] != ACK)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "icom_set_channel: ack NG (%#.2x), "
|
||||
"len=%d\n", ackbuf[0], ack_len);
|
||||
return -RIG_ERJCTED;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
retval = icom_transaction(rig, C_SET_MEM, -1,
|
||||
chanbuf, chan_len, ackbuf, &ack_len);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
if (ack_len != 1 || ackbuf[0] != ACK)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "icom_set_channel: ack NG (%#.2x), "
|
||||
"len=%d\n", ackbuf[0], ack_len);
|
||||
return -RIG_ERJCTED;
|
||||
}
|
||||
|
||||
retval = icom_transaction(rig, C_CLR_MEM, -1, NULL, 0, ackbuf, &ack_len);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
if (ack_len != 1 || ackbuf[0] != ACK)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "icom_set_channel: ack NG (%#.2x), "
|
||||
"len=%d\n", ackbuf[0], ack_len);
|
||||
return -RIG_ERJCTED;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
|
|
@ -62,6 +62,18 @@
|
|||
|
||||
#define IC756_ANTS (RIG_ANT_1|RIG_ANT_2)
|
||||
|
||||
struct cmdparams ic756pro_rigparms[] = {
|
||||
{ {.s=RIG_PARM_BEEP}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x20}, CMD_DAT_BOL, 1 },
|
||||
{ {.s=RIG_PARM_BACKLIGHT}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x09}, CMD_DAT_LVL, 2 },
|
||||
{ {.s=RIG_PARM_TIME}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x16}, CMD_DAT_TIM, 2 },
|
||||
{ {.s=RIG_PARM_NONE} }
|
||||
};
|
||||
|
||||
struct cmdparams ic756pro_riglevels[] = {
|
||||
{ {.s=RIG_LEVEL_VOXDELAY}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x60}, CMD_DAT_INT, 1 },
|
||||
{ {.s=RIG_LEVEL_NONE} }
|
||||
};
|
||||
|
||||
#define IC756PRO_STR_CAL { 16, \
|
||||
{ \
|
||||
{ 0, -60 }, \
|
||||
|
@ -83,10 +95,6 @@
|
|||
} }
|
||||
|
||||
int ic756_set_func(RIG *rig, vfo_t vfo, setting_t func, int status);
|
||||
int ic756pro2_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val);
|
||||
int ic756pro2_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val);
|
||||
int ic756pro2_set_parm(RIG *rig, setting_t parm, value_t val);
|
||||
int ic756pro2_get_parm(RIG *rig, setting_t parm, value_t *val);
|
||||
|
||||
/*
|
||||
* This function deals with the older type radios with only 2 filter widths
|
||||
|
@ -454,6 +462,8 @@ static const struct icom_priv_caps ic756pro2_priv_caps =
|
|||
{ .level = RIG_AGC_SLOW, .icom_level = 3 },
|
||||
{ .level = -1, .icom_level = 0 },
|
||||
},
|
||||
.rigparms = ic756pro_rigparms, /* Custom parm parameters */
|
||||
.riglevels = ic756pro_riglevels, /* Custom level parameters */
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -639,10 +649,10 @@ const struct rig_caps ic756pro2_caps =
|
|||
.get_ant = icom_get_ant,
|
||||
|
||||
.decode_event = icom_decode_event,
|
||||
.set_parm = ic756pro2_set_parm,
|
||||
.get_parm = ic756pro2_get_parm,
|
||||
.set_level = ic756pro2_set_level,
|
||||
.get_level = ic756pro2_get_level,
|
||||
.set_parm = icom_set_parm,
|
||||
.get_parm = icom_get_parm,
|
||||
.set_level = icom_set_level,
|
||||
.get_level = icom_get_level,
|
||||
.set_func = ic756_set_func,
|
||||
.get_func = icom_get_func,
|
||||
.set_mem = icom_set_mem,
|
||||
|
@ -878,6 +888,8 @@ static const struct icom_priv_caps ic756pro3_priv_caps =
|
|||
{ .level = RIG_AGC_SLOW, .icom_level = 3 },
|
||||
{ .level = -1, .icom_level = 0 },
|
||||
},
|
||||
.rigparms = ic756pro_rigparms, /* Custom parm parameters */
|
||||
.riglevels = ic756pro_riglevels, /* Custom level parameters */
|
||||
};
|
||||
|
||||
|
||||
|
@ -1066,10 +1078,10 @@ const struct rig_caps ic756pro3_caps =
|
|||
.get_ant = icom_get_ant,
|
||||
|
||||
.decode_event = icom_decode_event,
|
||||
.set_parm = ic756pro2_set_parm,
|
||||
.get_parm = ic756pro2_get_parm,
|
||||
.set_level = ic756pro2_set_level,
|
||||
.get_level = ic756pro2_get_level,
|
||||
.set_parm = icom_set_parm,
|
||||
.get_parm = icom_get_parm,
|
||||
.set_level = icom_set_level,
|
||||
.get_level = icom_get_level,
|
||||
.set_func = ic756_set_func,
|
||||
.get_func = icom_get_func,
|
||||
.set_mem = icom_set_mem,
|
||||
|
@ -1129,106 +1141,3 @@ int ic756_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
|||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
int ic756pro2_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||
{
|
||||
unsigned char cmdbuf[MAXFRAMELEN];
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (level)
|
||||
{
|
||||
case RIG_LEVEL_VOXDELAY:
|
||||
cmdbuf[0] = 0x60;
|
||||
return icom_set_level_raw(rig, level, C_CTL_MEM, 0x05, 1, cmdbuf, 1, val);
|
||||
|
||||
default:
|
||||
return icom_set_level(rig, vfo, level, val);
|
||||
}
|
||||
}
|
||||
|
||||
int ic756pro2_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||
{
|
||||
unsigned char cmdbuf[MAXFRAMELEN];
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (level)
|
||||
{
|
||||
case RIG_LEVEL_VOXDELAY:
|
||||
cmdbuf[0] = 0x60;
|
||||
return icom_get_level_raw(rig, level, C_CTL_MEM, 0x05, 1, cmdbuf, val);
|
||||
|
||||
default:
|
||||
return icom_get_level(rig, vfo, level, val);
|
||||
}
|
||||
}
|
||||
|
||||
int ic756pro2_set_parm(RIG *rig, setting_t parm, value_t val)
|
||||
{
|
||||
unsigned char parmbuf[MAXFRAMELEN];
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (parm)
|
||||
{
|
||||
case RIG_PARM_BEEP:
|
||||
parmbuf[0] = 0x20;
|
||||
return icom_set_custom_parm(rig, 1, parmbuf, 1, val.i ? 1 : 0);
|
||||
|
||||
case RIG_PARM_BACKLIGHT:
|
||||
parmbuf[0] = 0x09;
|
||||
return icom_set_custom_parm(rig, 1, parmbuf, 2, (int)(val.f * 255.0f));
|
||||
|
||||
case RIG_PARM_TIME:
|
||||
parmbuf[0] = 0x16;
|
||||
return icom_set_custom_parm_time(rig, 1, parmbuf, val.i);
|
||||
|
||||
default:
|
||||
return icom_set_parm(rig, parm, val);
|
||||
}
|
||||
}
|
||||
|
||||
int ic756pro2_get_parm(RIG *rig, setting_t parm, value_t *val)
|
||||
{
|
||||
unsigned char parmbuf[MAXFRAMELEN];
|
||||
int retval;
|
||||
int icom_val;
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (parm)
|
||||
{
|
||||
case RIG_PARM_BEEP:
|
||||
parmbuf[0] = 0x20;
|
||||
retval = icom_get_custom_parm(rig, 1, parmbuf, &icom_val);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
val->i = icom_val ? 1 : 0;
|
||||
break;
|
||||
|
||||
case RIG_PARM_BACKLIGHT:
|
||||
parmbuf[0] = 0x09;
|
||||
retval = icom_get_custom_parm(rig, 1, parmbuf, &icom_val);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
val->f = (float) icom_val / 255.0f;
|
||||
break;
|
||||
|
||||
case RIG_PARM_TIME:
|
||||
parmbuf[0] = 0x16;
|
||||
return icom_get_custom_parm_time(rig, 1, parmbuf, &val->i);
|
||||
|
||||
default:
|
||||
return icom_get_parm(rig, parm, val);
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
|
|
@ -53,6 +53,18 @@
|
|||
|
||||
#define IC7600_ANTS (RIG_ANT_1|RIG_ANT_2)
|
||||
|
||||
struct cmdparams ic7600_rigparms[] = {
|
||||
{ {.s=RIG_PARM_BEEP}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x59}, CMD_DAT_BOL, 1 },
|
||||
{ {.s=RIG_PARM_BACKLIGHT}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x38}, CMD_DAT_LVL, 2 },
|
||||
{ {.s=RIG_PARM_TIME}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x00, 0x54}, CMD_DAT_TIM, 2 },
|
||||
{ {.s=RIG_PARM_NONE} }
|
||||
};
|
||||
|
||||
struct cmdparams ic7600_riglevels[] = {
|
||||
{ {.s=RIG_LEVEL_VOXDELAY}, C_CTL_MEM, S_MEM_PARM, SC_MOD_RW, 2, {0x01, 0x67}, CMD_DAT_INT, 1 },
|
||||
{ {.s=RIG_LEVEL_NONE} }
|
||||
};
|
||||
|
||||
/*
|
||||
* Measurement by Roeland, PA3MET
|
||||
*/
|
||||
|
@ -120,11 +132,6 @@
|
|||
{ 241, 25.0f } \
|
||||
} }
|
||||
|
||||
int ic7600_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val);
|
||||
int ic7600_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val);
|
||||
int ic7600_set_parm(RIG *rig, setting_t parm, value_t val);
|
||||
int ic7600_get_parm(RIG *rig, setting_t parm, value_t *val);
|
||||
|
||||
/*
|
||||
* IC-7600 rig capabilities.
|
||||
*
|
||||
|
@ -143,6 +150,8 @@ static const struct icom_priv_caps ic7600_priv_caps =
|
|||
{ .level = RIG_AGC_SLOW, .icom_level = 3 },
|
||||
{ .level = -1, .icom_level = 0 },
|
||||
},
|
||||
.rigparms = ic7600_rigparms, /* Custom parm parameters */
|
||||
.riglevels = ic7600_riglevels, /* Custom level parameters */
|
||||
};
|
||||
|
||||
const struct confparams ic7600_ext_levels[] =
|
||||
|
@ -299,14 +308,14 @@ const struct rig_caps ic7600_caps =
|
|||
.set_xit = icom_set_xit_new,
|
||||
|
||||
.decode_event = icom_decode_event,
|
||||
.set_level = ic7600_set_level,
|
||||
.get_level = ic7600_get_level,
|
||||
.set_level = icom_set_level,
|
||||
.get_level = icom_get_level,
|
||||
.set_ext_level = icom_set_ext_level,
|
||||
.get_ext_level = icom_get_ext_level,
|
||||
.set_func = icom_set_func,
|
||||
.get_func = icom_get_func,
|
||||
.set_parm = ic7600_set_parm,
|
||||
.get_parm = ic7600_get_parm,
|
||||
.set_parm = icom_set_parm,
|
||||
.get_parm = icom_get_parm,
|
||||
.set_mem = icom_set_mem,
|
||||
.vfo_op = icom_vfo_op,
|
||||
.scan = icom_scan,
|
||||
|
@ -329,132 +338,3 @@ const struct rig_caps ic7600_caps =
|
|||
.get_powerstat = icom_get_powerstat,
|
||||
.send_morse = icom_send_morse
|
||||
};
|
||||
|
||||
int ic7600_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||
{
|
||||
unsigned char cmdbuf[MAXFRAMELEN];
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (level)
|
||||
{
|
||||
case RIG_LEVEL_VOXDELAY:
|
||||
cmdbuf[0] = 0x01;
|
||||
cmdbuf[1] = 0x67;
|
||||
return icom_set_level_raw(rig, level, C_CTL_MEM, 0x05, 2, cmdbuf, 1, val);
|
||||
|
||||
default:
|
||||
return icom_set_level(rig, vfo, level, val);
|
||||
}
|
||||
}
|
||||
|
||||
int ic7600_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||
{
|
||||
unsigned char cmdbuf[MAXFRAMELEN];
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (level)
|
||||
{
|
||||
case RIG_LEVEL_VOXDELAY:
|
||||
cmdbuf[0] = 0x01;
|
||||
cmdbuf[1] = 0x67;
|
||||
return icom_get_level_raw(rig, level, C_CTL_MEM, 0x05, 2, cmdbuf, val);
|
||||
|
||||
default:
|
||||
return icom_get_level(rig, vfo, level, val);
|
||||
}
|
||||
}
|
||||
|
||||
int ic7600_set_parm(RIG *rig, setting_t parm, value_t val)
|
||||
{
|
||||
unsigned char parmbuf[MAXFRAMELEN];
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (parm)
|
||||
{
|
||||
case RIG_PARM_BEEP:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x59;
|
||||
return icom_set_custom_parm(rig, 2, parmbuf, 1, val.i ? 1 : 0);
|
||||
|
||||
case RIG_PARM_BACKLIGHT:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x38;
|
||||
return icom_set_custom_parm(rig, 2, parmbuf, 2, (int)(val.f * 255.0f));
|
||||
|
||||
case RIG_PARM_KEYLIGHT:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x39;
|
||||
return icom_set_custom_parm(rig, 2, parmbuf, 2, val.f != 0 ? 255 : 0);
|
||||
|
||||
case RIG_PARM_TIME:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x54;
|
||||
return icom_set_custom_parm_time(rig, 2, parmbuf, val.i);
|
||||
|
||||
default:
|
||||
return icom_set_parm(rig, parm, val);
|
||||
}
|
||||
}
|
||||
|
||||
int ic7600_get_parm(RIG *rig, setting_t parm, value_t *val)
|
||||
{
|
||||
unsigned char parmbuf[MAXFRAMELEN];
|
||||
int retval;
|
||||
int icom_val;
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (parm)
|
||||
{
|
||||
case RIG_PARM_BEEP:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x59;
|
||||
retval = icom_get_custom_parm(rig, 2, parmbuf, &icom_val);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
val->i = icom_val ? 1 : 0;
|
||||
break;
|
||||
|
||||
case RIG_PARM_BACKLIGHT:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x38;
|
||||
retval = icom_get_custom_parm(rig, 2, parmbuf, &icom_val);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
val->f = (float) icom_val / 255.0f;
|
||||
break;
|
||||
|
||||
case RIG_PARM_KEYLIGHT:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x39;
|
||||
retval = icom_get_custom_parm(rig, 2, parmbuf, &icom_val);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
val->f = icom_val > 0 ? 1 : 0;
|
||||
break;
|
||||
|
||||
case RIG_PARM_TIME:
|
||||
parmbuf[0] = 0x00;
|
||||
parmbuf[1] = 0x54;
|
||||
return icom_get_custom_parm_time(rig, 2, parmbuf, &val->i);
|
||||
|
||||
default:
|
||||
return icom_get_parm(rig, parm, val);
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
|
|
@ -4497,8 +4497,7 @@ int icom_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
|||
*
|
||||
* NOTE: Most of the parm commands are rig-specific.
|
||||
*
|
||||
* See the IC-7300 backend how to implement them for newer rigs that have 0x1A 0x05-based commands where
|
||||
* icom_set_custom_parm()/icom_get_custom_parm() can be used.
|
||||
* See the IC-7300 backend how to implement them for newer rigs that have 0x1A 0x05-based commands.
|
||||
*
|
||||
* For older rigs, see the IC-R75 backend where icom_set_raw()/icom_get_raw() are used.
|
||||
*/
|
||||
|
@ -4556,8 +4555,7 @@ int icom_set_parm(RIG *rig, setting_t parm, value_t val)
|
|||
*
|
||||
* NOTE: Most of the parm commands are rig-specific.
|
||||
*
|
||||
* See the IC-7300 backend how to implement them for newer rigs that have 0x1A 0x05-based commands where
|
||||
* icom_set_custom_parm()/icom_get_custom_parm() can be used.
|
||||
* See the IC-7300 backend how to implement them for newer rigs that have 0x1A 0x05-based commands.
|
||||
*
|
||||
* For older rigs, see the IC-R75 backend where icom_set_raw()/icom_get_raw() are used.
|
||||
*/
|
||||
|
@ -5867,63 +5865,6 @@ int icom_get_level_raw(RIG *rig, setting_t level, int cmd, int subcmd,
|
|||
return RIG_OK;
|
||||
}
|
||||
|
||||
int icom_set_custom_parm(RIG *rig, int parmbuflen, unsigned char *parmbuf,
|
||||
int val_bytes, int value)
|
||||
{
|
||||
return icom_set_raw(rig, C_CTL_MEM, S_MEM_PARM, parmbuflen, parmbuf,
|
||||
val_bytes, value);
|
||||
}
|
||||
|
||||
int icom_get_custom_parm(RIG *rig, int parmbuflen, unsigned char *parmbuf,
|
||||
int *value)
|
||||
{
|
||||
return icom_get_raw(rig, C_CTL_MEM, S_MEM_PARM, parmbuflen, parmbuf,
|
||||
value);
|
||||
}
|
||||
|
||||
int icom_set_custom_parm_time(RIG *rig, int parmbuflen,
|
||||
unsigned char *parmbuf, int seconds)
|
||||
{
|
||||
unsigned char cmdbuf[MAXFRAMELEN];
|
||||
int hour = (int)((float) seconds / 3600.0);
|
||||
int min = (int)((float)(seconds - (hour * 3600)) / 60.0);
|
||||
|
||||
if (parmbuflen > 0)
|
||||
{
|
||||
memcpy(cmdbuf, parmbuf, parmbuflen);
|
||||
}
|
||||
|
||||
to_bcd_be(cmdbuf + parmbuflen, (long long) hour, 2);
|
||||
to_bcd_be(cmdbuf + parmbuflen + 1, (long long) min, 2);
|
||||
|
||||
return icom_set_raw(rig, C_CTL_MEM, S_MEM_PARM, parmbuflen + 2, cmdbuf, 0,
|
||||
0);
|
||||
}
|
||||
|
||||
int icom_get_custom_parm_time(RIG *rig, int parmbuflen,
|
||||
unsigned char *parmbuf, int *seconds)
|
||||
{
|
||||
unsigned char resbuf[MAXFRAMELEN];
|
||||
int reslen = sizeof(resbuf);
|
||||
int retval;
|
||||
int hour, min;
|
||||
|
||||
retval =
|
||||
icom_get_raw_buf(rig, C_CTL_MEM, S_MEM_PARM, parmbuflen, parmbuf,
|
||||
&reslen, resbuf);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
hour = from_bcd_be(resbuf, 2);
|
||||
min = from_bcd_be(resbuf + 1, 2);
|
||||
*seconds = (hour * 3600) + (min * 60);
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
// Sets rig vfo && priv->curr_vfo to default VFOA, or current vfo, or the vfo requested
|
||||
static int set_vfo_curr(RIG *rig, vfo_t vfo, vfo_t curr_vfo)
|
||||
{
|
||||
|
|
|
@ -229,6 +229,7 @@ const struct rig_caps icr30_caps =
|
|||
.set_conf = icom_set_conf,
|
||||
.get_conf = icom_get_conf,
|
||||
.set_powerstat = icom_set_powerstat,
|
||||
.get_powerstat = icom_get_powerstat,
|
||||
|
||||
.priv = (void *)& icr30_priv_caps,
|
||||
.rig_init = icom_init,
|
||||
|
|
|
@ -220,7 +220,8 @@ const struct rig_caps icr8600_caps =
|
|||
|
||||
.set_conf = icom_set_conf,
|
||||
.get_conf = icom_get_conf,
|
||||
// .set_powerstat = icom_set_powerstat,
|
||||
.set_powerstat = icom_set_powerstat,
|
||||
.get_powerstat = icom_get_powerstat,
|
||||
|
||||
.priv = (void *)& icr8600_priv_caps,
|
||||
.rig_init = icom_init,
|
||||
|
|
|
@ -184,6 +184,8 @@ const struct rig_caps id51_caps =
|
|||
.rig_cleanup = icom_cleanup,
|
||||
.rig_open = icom_rig_open,
|
||||
.rig_close = icom_rig_open,
|
||||
.set_powerstat = icom_set_powerstat,
|
||||
.get_powerstat = icom_get_powerstat,
|
||||
|
||||
.set_freq = icom_set_freq,
|
||||
.get_freq = icom_get_freq,
|
||||
|
@ -191,8 +193,6 @@ const struct rig_caps id51_caps =
|
|||
.get_mode = icom_get_mode,
|
||||
.set_vfo = icom_set_vfo,
|
||||
|
||||
.set_powerstat = icom_set_powerstat,
|
||||
.get_powerstat = icom_get_powerstat,
|
||||
.decode_event = icom_decode_event,
|
||||
|
||||
.set_func = icom_set_func,
|
||||
|
|
|
@ -548,11 +548,6 @@ void dump_csv_name(const channel_cap_t *mem_caps, FILE *f)
|
|||
fprintf(f, "flags%c", csv_sep);
|
||||
}
|
||||
|
||||
if (mem_caps->channel_desc)
|
||||
{
|
||||
fprintf(f, "channel_desc%c", csv_sep);
|
||||
}
|
||||
|
||||
fprintf(f, "\n");
|
||||
}
|
||||
|
||||
|
@ -708,11 +703,6 @@ int dump_csv_chan(RIG *rig,
|
|||
fprintf(f, "%x%c", chan.flags, csv_sep);
|
||||
}
|
||||
|
||||
if (mem_caps->channel_desc)
|
||||
{
|
||||
fprintf(f, "%s", chan.channel_desc);
|
||||
}
|
||||
|
||||
fprintf(f, "\n");
|
||||
|
||||
/*
|
||||
|
|
|
@ -285,12 +285,6 @@ int dump_xml_chan(RIG *rig,
|
|||
xmlNewProp(node, (unsigned char *) "flags", (unsigned char *) attrbuf);
|
||||
}
|
||||
|
||||
if (mem_caps->channel_desc)
|
||||
{
|
||||
sprintf(attrbuf, "%s", chan.channel_desc);
|
||||
xmlNewProp(node, (unsigned char *) "channel_desc", (unsigned char *) attrbuf);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
Ładowanie…
Reference in New Issue