kopia lustrzana https://github.com/Hamlib/Hamlib
rodzic
d049c89e5e
commit
69bae15cf2
|
@ -135,14 +135,14 @@ int drake_cleanup(RIG *rig)
|
||||||
int drake_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
int drake_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
||||||
{
|
{
|
||||||
unsigned char freqbuf[16], ackbuf[16];
|
unsigned char freqbuf[16], ackbuf[16];
|
||||||
int freq_len, ack_len, retval;
|
int ack_len, retval;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 10Hz resolution
|
* 10Hz resolution
|
||||||
* TODO: round nearest?
|
* TODO: round nearest?
|
||||||
*/
|
*/
|
||||||
freq_len = sprintf((char *) freqbuf, "F%07u" EOM, (unsigned int)freq / 10);
|
SNPRINTF((char *) freqbuf, sizeof(freqbuf), "F%07u" EOM, (unsigned int)freq / 10);
|
||||||
retval = drake_transaction(rig, (char *) freqbuf, freq_len, (char *) ackbuf,
|
retval = drake_transaction(rig, (char *) freqbuf, strlen((char*)freqbuf), (char *) ackbuf,
|
||||||
&ack_len);
|
&ack_len);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
|
@ -199,7 +199,7 @@ int drake_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
||||||
int drake_set_vfo(RIG *rig, vfo_t vfo)
|
int drake_set_vfo(RIG *rig, vfo_t vfo)
|
||||||
{
|
{
|
||||||
unsigned char cmdbuf[16], ackbuf[16];
|
unsigned char cmdbuf[16], ackbuf[16];
|
||||||
int cmd_len, ack_len, retval;
|
int ack_len, retval;
|
||||||
char vfo_function;
|
char vfo_function;
|
||||||
|
|
||||||
switch (vfo)
|
switch (vfo)
|
||||||
|
@ -218,19 +218,17 @@ int drake_set_vfo(RIG *rig, vfo_t vfo)
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd_len = 0;
|
|
||||||
|
|
||||||
if ((vfo_function == 'A') || (vfo_function == 'B'))
|
if ((vfo_function == 'A') || (vfo_function == 'B'))
|
||||||
{
|
{
|
||||||
cmd_len = sprintf((char *) cmdbuf, "V%c" EOM, vfo_function);
|
SNPRINTF((char *) cmdbuf, sizeof(cmdbuf), "V%c" EOM, vfo_function);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((vfo_function == 'F') || (vfo_function == 'C'))
|
if ((vfo_function == 'F') || (vfo_function == 'C'))
|
||||||
{
|
{
|
||||||
cmd_len = sprintf((char *) cmdbuf, "%c" EOM, vfo_function);
|
SNPRINTF((char *) cmdbuf, sizeof(cmdbuf), "%c" EOM, vfo_function);
|
||||||
}
|
}
|
||||||
|
|
||||||
retval = drake_transaction(rig, (char *) cmdbuf, cmd_len, (char *) ackbuf,
|
retval = drake_transaction(rig, (char *) cmdbuf, strlen((char*)cmdbuf), (char *) ackbuf,
|
||||||
&ack_len);
|
&ack_len);
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -291,7 +289,7 @@ int drake_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||||
{
|
{
|
||||||
unsigned char mdbuf[16], ackbuf[16];
|
unsigned char mdbuf[16], ackbuf[16];
|
||||||
unsigned char mode_sel;
|
unsigned char mode_sel;
|
||||||
int mdbuf_len, ack_len, retval;
|
int ack_len, retval;
|
||||||
|
|
||||||
switch (mode)
|
switch (mode)
|
||||||
{
|
{
|
||||||
|
@ -316,8 +314,8 @@ int drake_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
mdbuf_len = sprintf((char *) mdbuf, "M%c" EOM, mode_sel);
|
SNPRINTF((char *) mdbuf, sizeof(mdbuf), "M%c" EOM, mode_sel);
|
||||||
retval = drake_transaction(rig, (char *) mdbuf, mdbuf_len, (char *) ackbuf,
|
retval = drake_transaction(rig, (char *) mdbuf, strlen((char*)mdbuf), (char *) ackbuf,
|
||||||
&ack_len);
|
&ack_len);
|
||||||
|
|
||||||
if (retval != RIG_OK)
|
if (retval != RIG_OK)
|
||||||
|
@ -357,8 +355,8 @@ int drake_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||||
width_sel = '6';
|
width_sel = '6';
|
||||||
}
|
}
|
||||||
|
|
||||||
mdbuf_len = sprintf((char *) mdbuf, "W%c" EOM, width_sel);
|
SNPRINTF((char *) mdbuf, sizeof(mdbuf), "W%c" EOM, width_sel);
|
||||||
retval = drake_transaction(rig, (char *) mdbuf, mdbuf_len, (char *) ackbuf,
|
retval = drake_transaction(rig, (char *) mdbuf, strlen((char*)mdbuf), (char *) ackbuf,
|
||||||
&ack_len);
|
&ack_len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -367,11 +365,11 @@ int drake_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||||
|| (mode == RIG_MODE_ECSSLSB) ||
|
|| (mode == RIG_MODE_ECSSLSB) ||
|
||||||
(mode == RIG_MODE_AM) || (mode == RIG_MODE_USB) || (mode == RIG_MODE_LSB))
|
(mode == RIG_MODE_AM) || (mode == RIG_MODE_USB) || (mode == RIG_MODE_LSB))
|
||||||
{
|
{
|
||||||
mdbuf_len = sprintf((char *) mdbuf, "S%c" EOM,
|
SNPRINTF((char *) mdbuf, sizeof(mdbuf), "S%c" EOM,
|
||||||
((mode == RIG_MODE_AMS) || (mode == RIG_MODE_ECSSUSB)
|
((mode == RIG_MODE_AMS) || (mode == RIG_MODE_ECSSUSB)
|
||||||
|| (mode == RIG_MODE_ECSSLSB))
|
|| (mode == RIG_MODE_ECSSLSB))
|
||||||
? 'O' : 'F');
|
? 'O' : 'F');
|
||||||
retval = drake_transaction(rig, (char *) mdbuf, mdbuf_len, (char *) ackbuf,
|
retval = drake_transaction(rig, (char *) mdbuf, strlen((char*)mdbuf), (char *) ackbuf,
|
||||||
&ack_len);
|
&ack_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -492,12 +490,12 @@ int drake_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
||||||
int drake_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
|
int drake_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
|
||||||
{
|
{
|
||||||
unsigned char buf[16], ackbuf[16];
|
unsigned char buf[16], ackbuf[16];
|
||||||
int len, ack_len, retval;
|
int ack_len, retval;
|
||||||
|
|
||||||
len = sprintf((char *) buf, "A%c" EOM,
|
SNPRINTF((char *) buf, sizeof(buf), "A%c" EOM,
|
||||||
ant == RIG_ANT_1 ? '1' : (ant == RIG_ANT_2 ? '2' : 'C'));
|
ant == RIG_ANT_1 ? '1' : (ant == RIG_ANT_2 ? '2' : 'C'));
|
||||||
|
|
||||||
retval = drake_transaction(rig, (char *) buf, len, (char *) ackbuf, &ack_len);
|
retval = drake_transaction(rig, (char *) buf, strlen((char*)buf), (char *) ackbuf, &ack_len);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -553,16 +551,16 @@ int drake_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option,
|
||||||
*/
|
*/
|
||||||
int drake_set_mem(RIG *rig, vfo_t vfo, int ch)
|
int drake_set_mem(RIG *rig, vfo_t vfo, int ch)
|
||||||
{
|
{
|
||||||
int len, ack_len, retval;
|
int ack_len, retval;
|
||||||
char buf[16], ackbuf[16];
|
char buf[16], ackbuf[16];
|
||||||
struct drake_priv_data *priv = rig->state.priv;
|
struct drake_priv_data *priv = rig->state.priv;
|
||||||
|
|
||||||
priv->curr_ch = ch;
|
priv->curr_ch = ch;
|
||||||
|
|
||||||
len = sprintf(buf, "C%03d" EOM, ch);
|
SNPRINTF(buf, sizeof(buf), "C%03d" EOM, ch);
|
||||||
|
|
||||||
ack_len = 0; // fix compile-time warning "possibly uninitialized"
|
ack_len = 0; // fix compile-time warning "possibly uninitialized"
|
||||||
retval = drake_transaction(rig, buf, len, ackbuf, &ack_len);
|
retval = drake_transaction(rig, buf, strlen(buf), ackbuf, &ack_len);
|
||||||
|
|
||||||
if (ack_len != 2)
|
if (ack_len != 2)
|
||||||
{
|
{
|
||||||
|
@ -619,7 +617,7 @@ int drake_set_chan(RIG *rig, vfo_t vfo, const channel_t *chan)
|
||||||
vfo_t old_vfo;
|
vfo_t old_vfo;
|
||||||
int old_chan;
|
int old_chan;
|
||||||
char mdbuf[16], ackbuf[16];
|
char mdbuf[16], ackbuf[16];
|
||||||
int mdbuf_len, ack_len, retval;
|
int ack_len, retval;
|
||||||
value_t dummy;
|
value_t dummy;
|
||||||
|
|
||||||
dummy.i = 0;
|
dummy.i = 0;
|
||||||
|
@ -654,8 +652,8 @@ int drake_set_chan(RIG *rig, vfo_t vfo, const channel_t *chan)
|
||||||
drake_set_func(rig, RIG_VFO_CURR, RIG_FUNC_MN,
|
drake_set_func(rig, RIG_VFO_CURR, RIG_FUNC_MN,
|
||||||
(chan->funcs & RIG_FUNC_MN) == RIG_FUNC_MN);
|
(chan->funcs & RIG_FUNC_MN) == RIG_FUNC_MN);
|
||||||
|
|
||||||
mdbuf_len = sprintf(mdbuf, "PR" EOM "%03d" EOM, chan->channel_num);
|
SNPRINTF(mdbuf, sizeof(mdbuf), "PR" EOM "%03d" EOM, chan->channel_num);
|
||||||
retval = drake_transaction(rig, mdbuf, mdbuf_len, ackbuf, &ack_len);
|
retval = drake_transaction(rig, mdbuf, strlen(mdbuf), ackbuf, &ack_len);
|
||||||
|
|
||||||
if (old_vfo == RIG_VFO_MEM)
|
if (old_vfo == RIG_VFO_MEM)
|
||||||
{
|
{
|
||||||
|
@ -890,34 +888,34 @@ int drake_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
|
||||||
switch (op)
|
switch (op)
|
||||||
{
|
{
|
||||||
case RIG_OP_UP:
|
case RIG_OP_UP:
|
||||||
len = sprintf(buf, "U");
|
SNPRINTF(buf, sizeof(buf), "U");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_OP_DOWN:
|
case RIG_OP_DOWN:
|
||||||
len = sprintf(buf, "D");
|
SNPRINTF(buf, sizeof(buf), "D");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_OP_CPY:
|
case RIG_OP_CPY:
|
||||||
len = sprintf(buf, "A E B" EOM);
|
SNPRINTF(buf, sizeof(buf), "A E B" EOM);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_OP_TO_VFO:
|
case RIG_OP_TO_VFO:
|
||||||
/* len = sprintf(buf,"C%03d" EOM, priv->curr_ch); */
|
/* len = SNPRINTF(buf,"C%03d" EOM, priv->curr_ch); */
|
||||||
len = sprintf(buf, "F" EOM);
|
SNPRINTF(buf, sizeof(buf), "F" EOM);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_OP_MCL:
|
case RIG_OP_MCL:
|
||||||
len = sprintf(buf, "EC%03d" EOM, priv->curr_ch);
|
SNPRINTF(buf, sizeof(buf), "EC%03d" EOM, priv->curr_ch);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_OP_FROM_VFO:
|
case RIG_OP_FROM_VFO:
|
||||||
len = sprintf(buf, "PR" EOM "%03d" EOM, priv->curr_ch);
|
SNPRINTF(buf, sizeof(buf), "PR" EOM "%03d" EOM, priv->curr_ch);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
len = strlen(buf);
|
||||||
retval = drake_transaction(rig, buf, len, buf[len - 1] == 0x0d ? ackbuf : NULL,
|
retval = drake_transaction(rig, buf, len, buf[len - 1] == 0x0d ? ackbuf : NULL,
|
||||||
&ack_len);
|
&ack_len);
|
||||||
|
|
||||||
|
@ -931,28 +929,28 @@ int drake_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
|
||||||
int drake_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
int drake_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
||||||
{
|
{
|
||||||
char buf[16], ackbuf[16];
|
char buf[16], ackbuf[16];
|
||||||
int len, ack_len, retval;
|
int ack_len, retval;
|
||||||
|
|
||||||
switch (func)
|
switch (func)
|
||||||
{
|
{
|
||||||
case RIG_FUNC_MN:
|
case RIG_FUNC_MN:
|
||||||
len = sprintf(buf, "N%c" EOM, status ? 'O' : 'F');
|
SNPRINTF(buf, sizeof(buf), "N%c" EOM, status ? 'O' : 'F');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_FUNC_LOCK:
|
case RIG_FUNC_LOCK:
|
||||||
len = sprintf(buf, "L%c" EOM, status ? 'O' : 'F');
|
SNPRINTF(buf, sizeof(buf), "L%c" EOM, status ? 'O' : 'F');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_FUNC_NB:
|
case RIG_FUNC_NB:
|
||||||
/* TODO: NB narrow */
|
/* TODO: NB narrow */
|
||||||
len = sprintf(buf, "B%c" EOM, status ? 'W' : 'F');
|
SNPRINTF(buf, sizeof(buf), "B%c" EOM, status ? 'W' : 'F');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
retval = drake_transaction(rig, buf, len, ackbuf, &ack_len);
|
retval = drake_transaction(rig, buf, strlen(buf), ackbuf, &ack_len);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -1009,20 +1007,20 @@ int drake_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
||||||
int drake_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
int drake_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
{
|
{
|
||||||
char buf[16], ackbuf[16];
|
char buf[16], ackbuf[16];
|
||||||
int len, ack_len, retval;
|
int ack_len, retval;
|
||||||
|
|
||||||
switch (level)
|
switch (level)
|
||||||
{
|
{
|
||||||
case RIG_LEVEL_PREAMP:
|
case RIG_LEVEL_PREAMP:
|
||||||
len = sprintf(buf, "G%c" EOM, val.i ? '+' : '0');
|
SNPRINTF(buf, sizeof(buf), "G%c" EOM, val.i ? '+' : '0');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_LEVEL_ATT:
|
case RIG_LEVEL_ATT:
|
||||||
len = sprintf(buf, "G%c" EOM, val.i ? '-' : '0');
|
SNPRINTF(buf, sizeof(buf), "G%c" EOM, val.i ? '-' : '0');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_LEVEL_AGC:
|
case RIG_LEVEL_AGC:
|
||||||
len = sprintf(buf, "A%c" EOM,
|
SNPRINTF(buf, sizeof(buf), "A%c" EOM,
|
||||||
val.i == RIG_AGC_OFF ? 'O' :
|
val.i == RIG_AGC_OFF ? 'O' :
|
||||||
(val.i == RIG_AGC_FAST ? 'F' : 'S'));
|
(val.i == RIG_AGC_FAST ? 'F' : 'S'));
|
||||||
break;
|
break;
|
||||||
|
@ -1031,7 +1029,7 @@ int drake_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
retval = drake_transaction(rig, buf, len, ackbuf, &ack_len);
|
retval = drake_transaction(rig, buf, strlen(buf), ackbuf, &ack_len);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -1159,11 +1157,11 @@ int drake_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
int drake_set_powerstat(RIG *rig, powerstat_t status)
|
int drake_set_powerstat(RIG *rig, powerstat_t status)
|
||||||
{
|
{
|
||||||
char buf[16], ackbuf[16];
|
char buf[16], ackbuf[16];
|
||||||
int len, ack_len, retval;
|
int ack_len, retval;
|
||||||
|
|
||||||
len = sprintf(buf, "P%c" EOM, status == RIG_POWER_OFF ? 'F' : 'O');
|
SNPRINTF(buf, sizeof(buf), "P%c" EOM, status == RIG_POWER_OFF ? 'F' : 'O');
|
||||||
|
|
||||||
retval = drake_transaction(rig, buf, len, ackbuf, &ack_len);
|
retval = drake_transaction(rig, buf, strlen(buf), ackbuf, &ack_len);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue