kopia lustrzana https://github.com/Hamlib/Hamlib
Further clarification in the implementation of kenwood_transaction()
Buffer size is now an input parameter only as the return data length is implicit since a null terminated C string is returned. Better precondition checks are impelmented.Hamlib-3.0
rodzic
4a74db654a
commit
143f305b49
|
@ -289,10 +289,9 @@ int elecraft_get_firmware_revision_level(RIG *rig, const char *cmd,
|
|||
int err;
|
||||
char *bufptr;
|
||||
char buf[KENWOOD_MAX_BUF_LEN];
|
||||
size_t size = KENWOOD_MAX_BUF_LEN;
|
||||
|
||||
/* Get the actual firmware revision number. */
|
||||
err = kenwood_transaction(rig, cmd, buf, &size);
|
||||
err = kenwood_transaction(rig, cmd, buf, sizeof (buf));
|
||||
|
||||
if (err != RIG_OK) {
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: Cannot get firmware revision level\n", __func__);
|
||||
|
|
|
@ -184,16 +184,15 @@ const struct confparams kenwood_cfg_params[] = {
|
|||
* is needed and will return with RIG_OK after command was sent.
|
||||
* datasize: in: Size of buffer. It is the caller's responsibily to provide
|
||||
* a large enough buffer for all possible replies for a command.
|
||||
* out: Location where to store number of bytes read.
|
||||
*
|
||||
* returns:
|
||||
* RIG_OK - if no error occured.
|
||||
* RIG_OK - if no error occurred.
|
||||
* RIG_EIO - if an I/O error occured while sending/receiving data.
|
||||
* RIG_ETIMEOUT - if timeout expires without any characters received.
|
||||
* RIG_REJECTED - if a negative acknowledge was received or command not
|
||||
* recognized by rig.
|
||||
*/
|
||||
int kenwood_transaction(RIG *rig, const char *cmdstr, char *data, size_t *datasize)
|
||||
int kenwood_transaction(RIG *rig, const char *cmdstr, char *data, size_t datasize)
|
||||
{
|
||||
char buffer[KENWOOD_MAX_BUF_LEN]; /* use our own buffer since
|
||||
verification may need a longer
|
||||
|
@ -201,7 +200,7 @@ int kenwood_transaction(RIG *rig, const char *cmdstr, char *data, size_t *datasi
|
|||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
if (!rig || !datasize || !cmdstr)
|
||||
if (!rig || (!cmdstr && !datasize) || datasize < 0 || (datasize && !data))
|
||||
return -RIG_EINVAL;
|
||||
|
||||
struct kenwood_priv_caps *caps = kenwood_caps(rig);
|
||||
|
@ -211,7 +210,6 @@ int kenwood_transaction(RIG *rig, const char *cmdstr, char *data, size_t *datasi
|
|||
char *cmd;
|
||||
int len;
|
||||
int retry_read = 0;
|
||||
int reply_expected = !cmdstr || (data && *datasize > 0);
|
||||
static char const std_verify[] = "ID;"; /* command we can always
|
||||
send to any rig even when
|
||||
the rig is busy */
|
||||
|
@ -256,7 +254,7 @@ int kenwood_transaction(RIG *rig, const char *cmdstr, char *data, size_t *datasi
|
|||
goto transaction_quit;
|
||||
}
|
||||
|
||||
if (!reply_expected) {
|
||||
if (!datasize) {
|
||||
rig->state.hold_decode = 0;
|
||||
|
||||
/* no reply expected so we need to write a command that always
|
||||
|
@ -267,7 +265,7 @@ int kenwood_transaction(RIG *rig, const char *cmdstr, char *data, size_t *datasi
|
|||
}
|
||||
}
|
||||
|
||||
len = min (reply_expected ? *datasize : strlen (verify) + 5, KENWOOD_MAX_BUF_LEN);
|
||||
len = min (datasize ? datasize : strlen (verify) + 5, KENWOOD_MAX_BUF_LEN);
|
||||
retval = read_string(&rs->rigport, buffer, len, cmdtrm, strlen(cmdtrm));
|
||||
if (retval < 0) {
|
||||
if (retry_read++ < rig->caps->retry)
|
||||
|
@ -337,7 +335,7 @@ int kenwood_transaction(RIG *rig, const char *cmdstr, char *data, size_t *datasi
|
|||
* single character commands we only check the first character in
|
||||
* that case.
|
||||
*/
|
||||
if (reply_expected)
|
||||
if (datasize)
|
||||
{
|
||||
if (cmdstr && (buffer[0] != cmdstr[0] || (cmdstr[1] && buffer[1] != cmdstr[1])))
|
||||
{
|
||||
|
@ -360,9 +358,9 @@ int kenwood_transaction(RIG *rig, const char *cmdstr, char *data, size_t *datasi
|
|||
{
|
||||
/* move the result excluding the command terminator into the
|
||||
caller buffer */
|
||||
*datasize = min (*datasize, retval) - 1;
|
||||
strncpy (data, buffer, *datasize);
|
||||
data[*datasize] = '\0';
|
||||
len = min (datasize, retval) - 1;
|
||||
strncpy (data, buffer, len);
|
||||
data[len] = '\0';
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -426,12 +424,12 @@ int kenwood_safe_transaction(RIG *rig, const char *cmd, char *buf,
|
|||
|
||||
do
|
||||
{
|
||||
size_t length = buf_size;
|
||||
err = kenwood_transaction(rig, cmd, buf, &length);
|
||||
err = kenwood_transaction(rig, cmd, buf, buf_size);
|
||||
if (err != RIG_OK) /* return immediately on error as any
|
||||
retries handled at lower level */
|
||||
return err;
|
||||
|
||||
size_t length = strlen (buf);
|
||||
if (length != expected) /* worth retrying as some rigs
|
||||
occasionally send short results */
|
||||
{
|
||||
|
@ -531,31 +529,27 @@ int kenwood_open(RIG *rig)
|
|||
if (RIG_MODEL_TS590S == rig->caps->rig_model)
|
||||
{
|
||||
/* we need the firmware version for these rigs to deal with f/w defects */
|
||||
char buffer[KENWOOD_MAX_BUF_LEN];
|
||||
static char fw_version[5];
|
||||
size_t size = KENWOOD_MAX_BUF_LEN;
|
||||
static char fw_version[7];
|
||||
struct kenwood_priv_data * priv = rig->state.priv;
|
||||
|
||||
err = kenwood_transaction (rig, "FV", buffer, &size);
|
||||
err = kenwood_transaction (rig, "FV", fw_version, sizeof (fw_version));
|
||||
if (RIG_OK != err)
|
||||
{
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: cannot get f/w version\n", __func__);
|
||||
return err;
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: cannot get f/w version\n", __func__);
|
||||
return err;
|
||||
}
|
||||
/* store the data between "FV" and ";" which should be a
|
||||
f/w version string of the form n.n e.g. 1.07 */
|
||||
priv->fw_rev = strncpy (fw_version, &buffer[2], size - 3);
|
||||
char * dot_pos = strchr (buffer, '.');
|
||||
/* store the data after the "FV" which should be a f/w version
|
||||
string of the form n.n e.g. 1.07 */
|
||||
priv->fw_rev = &fw_version[2];
|
||||
char * dot_pos = strchr (fw_version, '.');
|
||||
if (dot_pos)
|
||||
{
|
||||
*dot_pos = '\0';
|
||||
buffer[size - 1] = '\0';
|
||||
priv->fw_rev_uint = atoi (&buffer[2]) * 100 + atoi (dot_pos + 1);
|
||||
priv->fw_rev_uint = atoi (&fw_version[2]) * 100 + atoi (dot_pos + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: cannot get f/w version\n", __func__);
|
||||
return -RIG_EPROTO;
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: cannot get f/w version\n", __func__);
|
||||
return -RIG_EPROTO;
|
||||
}
|
||||
rig_debug (RIG_DEBUG_TRACE, "%s: found f/w version %s\n", __func__, priv->fw_rev);
|
||||
}
|
||||
|
@ -626,9 +620,7 @@ int kenwood_get_id(RIG *rig, char *buf)
|
|||
if (!rig)
|
||||
return -RIG_EINVAL;
|
||||
|
||||
size_t size = KENWOOD_MAX_BUF_LEN;
|
||||
|
||||
return kenwood_transaction(rig, "ID", buf, &size);
|
||||
return kenwood_transaction(rig, "ID", buf, KENWOOD_MAX_BUF_LEN);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1510,11 +1502,10 @@ int kenwood_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
if (!rig || !val)
|
||||
return -RIG_EINVAL;
|
||||
|
||||
char lvlbuf[50];
|
||||
char lvlbuf[KENWOOD_MAX_BUF_LEN];
|
||||
int retval;
|
||||
int lvl;
|
||||
int i, ret, agclevel;
|
||||
size_t lvl_len;
|
||||
|
||||
switch (level) {
|
||||
case RIG_LEVEL_RAWSTR:
|
||||
|
@ -1615,16 +1606,14 @@ int kenwood_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
return ret;
|
||||
|
||||
case RIG_LEVEL_SLOPE_LOW:
|
||||
lvl_len = 50;
|
||||
retval = kenwood_transaction (rig, "SL", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "SL", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
val->i=atoi(&lvlbuf[2]);
|
||||
break;
|
||||
|
||||
case RIG_LEVEL_SLOPE_HIGH:
|
||||
lvl_len = 50;
|
||||
retval = kenwood_transaction (rig, "SH", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "SH", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
val->i=atoi(&lvlbuf[2]);
|
||||
|
|
|
@ -88,8 +88,7 @@ extern rmode_t kenwood_mode_table[KENWOOD_MODE_TABLE_MAX];
|
|||
extern const tone_t kenwood38_ctcss_list[];
|
||||
extern const tone_t kenwood42_ctcss_list[];
|
||||
|
||||
int kenwood_transaction(RIG *rig, const char *cmd, char *data,
|
||||
size_t *data_len);
|
||||
int kenwood_transaction(RIG *rig, const char *cmd, char *data, size_t data_len);
|
||||
int kenwood_safe_transaction(RIG *rig, const char *cmd, char *buf,
|
||||
size_t buf_size, size_t expected);
|
||||
|
||||
|
|
86
kenwood/th.c
86
kenwood/th.c
|
@ -52,16 +52,16 @@ th_decode_event (RIG *rig)
|
|||
{
|
||||
char asyncbuf[128];
|
||||
int retval;
|
||||
size_t async_len=128;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
||||
retval = kenwood_transaction(rig, NULL, asyncbuf, &async_len);
|
||||
retval = kenwood_transaction(rig, NULL, asyncbuf, sizeof (asyncbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: Decoding message\n", __func__);
|
||||
|
||||
size_t async_len = strlen (asyncbuf);
|
||||
if (async_len> 3 && asyncbuf[0] == 'B' && asyncbuf[1] == 'U' && asyncbuf[2] == 'F') {
|
||||
|
||||
vfo_t vfo;
|
||||
|
@ -410,17 +410,17 @@ int
|
|||
th_get_vfo_char(RIG *rig, vfo_t *vfo, char *vfoch)
|
||||
{
|
||||
char cmdbuf[10], buf[10], vfoc;
|
||||
size_t buf_size=10;
|
||||
int retval;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
||||
/* Get VFO band */
|
||||
|
||||
retval = kenwood_transaction(rig, "BC", buf, &buf_size);
|
||||
retval = kenwood_transaction(rig, "BC", buf, sizeof (buf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
switch (buf_size) {
|
||||
size_t length = strlen (buf);
|
||||
switch (length) {
|
||||
case 4: /*original case BC 0*/
|
||||
vfoc = buf[3];
|
||||
break;
|
||||
|
@ -433,7 +433,7 @@ th_get_vfo_char(RIG *rig, vfo_t *vfo, char *vfoch)
|
|||
}
|
||||
break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: Unexpected answer length '%c'\n", __func__, buf_size);
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: Unexpected answer length '%c'\n", __func__, length);
|
||||
return -RIG_EPROTO;
|
||||
break;
|
||||
}
|
||||
|
@ -512,8 +512,6 @@ int tm_set_vfo_bc2 (RIG *rig, vfo_t vfo)
|
|||
char vfobuf[16], ackbuf[16];
|
||||
int vfonum, txvfonum, vfomode=0;
|
||||
int retval;
|
||||
size_t ack_len;
|
||||
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called %s\n", __func__, rig_strvfo(vfo));
|
||||
|
||||
|
@ -534,8 +532,7 @@ int tm_set_vfo_bc2 (RIG *rig, vfo_t vfo)
|
|||
case RIG_VFO_MEM:
|
||||
/* get current band */
|
||||
sprintf(vfobuf, "BC");
|
||||
ack_len=16;
|
||||
retval = kenwood_transaction(rig, vfobuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, vfobuf, ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
txvfonum = vfonum = ackbuf[3]-'0';
|
||||
|
@ -664,20 +661,19 @@ th_get_trn(RIG *rig, int *trn)
|
|||
{
|
||||
char buf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t ack_len=ACKBUF_LEN;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
||||
retval = kenwood_transaction(rig, "AI", buf, &ack_len);
|
||||
retval = kenwood_transaction(rig, "AI", buf, sizeof (buf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
if (ack_len != 3 ) {
|
||||
if (strlen (buf) != 3 ) {
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: Unexpected reply '%s'\n", __func__, buf);
|
||||
return -RIG_ERJCTED;
|
||||
}
|
||||
|
||||
*trn = (buf[3] != '0') ? RIG_TRN_RIG : RIG_TRN_OFF;
|
||||
*trn = (buf[2] != '0') ? RIG_TRN_RIG : RIG_TRN_OFF;
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
@ -926,7 +922,6 @@ th_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
char vch, buf[10], ackbuf[20];
|
||||
int retval, v, l;
|
||||
|
||||
size_t ack_len = sizeof(ackbuf);
|
||||
vfo_t tvfo;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
@ -949,7 +944,7 @@ th_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
sprintf(buf, "SM %c", vch);
|
||||
|
||||
// XXX use kenwood_safe_transaction
|
||||
retval = kenwood_transaction(rig, buf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, buf, ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -981,7 +976,7 @@ th_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
|
||||
case RIG_LEVEL_AF:
|
||||
sprintf(buf, "AG %c", vch);
|
||||
retval = kenwood_transaction(rig, buf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, buf, ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -998,7 +993,7 @@ th_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
|
||||
case RIG_LEVEL_RFPOWER:
|
||||
sprintf(buf, "PC %c",vch);
|
||||
retval = kenwood_transaction(rig, buf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, buf, ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -1135,9 +1130,8 @@ int
|
|||
th_set_ctcss_tone(RIG *rig, vfo_t vfo, tone_t tone)
|
||||
{
|
||||
const struct rig_caps *caps;
|
||||
char tonebuf[16],ackbuf[ACKBUF_LEN];
|
||||
char tonebuf[16];
|
||||
int i, retval;
|
||||
size_t ack_len;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
||||
|
@ -1153,8 +1147,7 @@ th_set_ctcss_tone(RIG *rig, vfo_t vfo, tone_t tone)
|
|||
|
||||
i += (i == 0) ? 1 : 2; /* Correct for TH-D7A index anomally */
|
||||
sprintf(tonebuf, "TN %02d", i);
|
||||
ack_len = ACKBUF_LEN;
|
||||
retval = kenwood_transaction(rig, tonebuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, tonebuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -1171,14 +1164,13 @@ th_get_ctcss_tone(RIG *rig, vfo_t vfo, tone_t *tone)
|
|||
struct rig_caps *caps;
|
||||
char buf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t ack_len=ACKBUF_LEN;
|
||||
unsigned int tone_idx;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
||||
caps = rig->caps;
|
||||
|
||||
retval = kenwood_transaction(rig, "TN", buf, &ack_len);
|
||||
retval = kenwood_transaction(rig, "TN", buf, sizeof (buf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -1209,9 +1201,8 @@ int
|
|||
th_set_ctcss_sql(RIG *rig, vfo_t vfo, tone_t tone)
|
||||
{
|
||||
const struct rig_caps *caps;
|
||||
char tonebuf[16],ackbuf[ACKBUF_LEN];
|
||||
char tonebuf[16];
|
||||
int i, retval;
|
||||
size_t ack_len;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
||||
|
@ -1227,8 +1218,7 @@ th_set_ctcss_sql(RIG *rig, vfo_t vfo, tone_t tone)
|
|||
|
||||
i += (i == 0) ? 1 : 2; /* Correct for TH-D7A index anomally */
|
||||
sprintf(tonebuf, "CTN %02d", i);
|
||||
ack_len = ACKBUF_LEN;
|
||||
retval = kenwood_transaction(rig, tonebuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, tonebuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -1245,14 +1235,13 @@ th_get_ctcss_sql(RIG *rig, vfo_t vfo, tone_t *tone)
|
|||
struct rig_caps *caps;
|
||||
char buf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t ack_len=ACKBUF_LEN;
|
||||
unsigned int tone_idx;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
||||
caps = rig->caps;
|
||||
|
||||
retval = kenwood_transaction(rig, "CTN", buf, &ack_len);
|
||||
retval = kenwood_transaction(rig, "CTN", buf, sizeof (buf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -1328,14 +1317,13 @@ th_get_dcs_sql(RIG *rig, vfo_t vfo, tone_t *code)
|
|||
struct rig_caps *caps;
|
||||
char buf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t ack_len=ACKBUF_LEN;
|
||||
unsigned int code_idx;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
||||
caps = rig->caps;
|
||||
|
||||
retval = kenwood_transaction(rig, "DCS", buf, &ack_len);
|
||||
retval = kenwood_transaction(rig, "DCS", buf, sizeof (buf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -1351,8 +1339,7 @@ th_get_dcs_sql(RIG *rig, vfo_t vfo, tone_t *code)
|
|||
return RIG_OK;
|
||||
}
|
||||
|
||||
ack_len=ACKBUF_LEN;
|
||||
retval = kenwood_transaction(rig, "DCSN", buf, &ack_len);
|
||||
retval = kenwood_transaction(rig, "DCSN", buf, sizeof (buf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -1380,16 +1367,14 @@ th_get_info(RIG *rig)
|
|||
{
|
||||
static char firmbuf[50];
|
||||
int retval;
|
||||
size_t firm_len=50;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
||||
memset(firmbuf, 0, sizeof(firmbuf));
|
||||
|
||||
retval = kenwood_transaction(rig, "ID", firmbuf, &firm_len);
|
||||
retval = kenwood_transaction(rig, "ID", firmbuf, sizeof (firmbuf));
|
||||
if (retval != RIG_OK)
|
||||
return NULL;
|
||||
|
||||
size_t firm_len = strlen (firmbuf);
|
||||
if (firm_len < 3) {
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unexpected reply '%s', len=%d\n",
|
||||
__func__, firmbuf, firm_len);
|
||||
|
@ -1577,7 +1562,6 @@ int th_get_channel(RIG *rig, channel_t *chan)
|
|||
{
|
||||
char membuf[64],ackbuf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t ack_len;
|
||||
freq_t freq,offset;
|
||||
char req[16],scf[128];
|
||||
int step, shift, rev, tone, ctcss, tonefq, ctcssfq, dcs, dcscode, mode, lockout;
|
||||
|
@ -1657,9 +1641,8 @@ int th_get_channel(RIG *rig, channel_t *chan)
|
|||
}
|
||||
|
||||
sprintf(membuf, "%s",req);
|
||||
ack_len=ACKBUF_LEN;
|
||||
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -1761,8 +1744,7 @@ int th_get_channel(RIG *rig, channel_t *chan)
|
|||
/* split ? */
|
||||
req[3+strlen(mr_extra)]='1';
|
||||
sprintf(membuf, "%s",req);
|
||||
ack_len=ACKBUF_LEN;
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, sizeof (ackbuf));
|
||||
if (retval == RIG_OK) {
|
||||
strcpy(scf,req);
|
||||
strcat(scf, ",%"SCNfreq",%x");
|
||||
|
@ -1778,13 +1760,13 @@ int th_get_channel(RIG *rig, channel_t *chan)
|
|||
sprintf(membuf, "MNA %sI-%01d",mr_extra,channel_num);
|
||||
else
|
||||
sprintf(membuf, "MNA %s%03d",mr_extra,channel_num);
|
||||
ack_len=ACKBUF_LEN;
|
||||
|
||||
/* Get memory name */
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
size_t ack_len = strlen (ackbuf);
|
||||
if (ack_len > rig->caps->chan_desc_sz)
|
||||
ack_len = rig->caps->chan_desc_sz;
|
||||
|
||||
|
@ -1810,9 +1792,8 @@ static int find_tone_index(const tone_t *tone_list, tone_t tone)
|
|||
/* --------------------------------------------------------------------- */
|
||||
int th_set_channel(RIG *rig, const channel_t *chan)
|
||||
{
|
||||
char membuf[ACKBUF_LEN],ackbuf[ACKBUF_LEN];
|
||||
char membuf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t ack_len;
|
||||
char req[64];
|
||||
char lockoutstr[8];
|
||||
int channel_num, step, shift, rev, tone, ctcss, tonefq, ctcssfq, dcs, dcscode, mode, lockout;
|
||||
|
@ -1972,9 +1953,7 @@ int th_set_channel(RIG *rig, const channel_t *chan)
|
|||
);
|
||||
}
|
||||
|
||||
ack_len = ACKBUF_LEN;
|
||||
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, membuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -1986,23 +1965,20 @@ int th_set_channel(RIG *rig, const channel_t *chan)
|
|||
req[3+strlen(mr_extra)]='1';
|
||||
|
||||
sprintf(membuf, "%s,%011"PRIll",%X", req,(int64_t)chan->tx_freq, step);
|
||||
ack_len=ACKBUF_LEN;
|
||||
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, membuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
||||
if (channel_desc) {
|
||||
/* Memory name */
|
||||
ack_len=ACKBUF_LEN;
|
||||
/* TODO: check strlen(channel_desc) < rig->caps->chan_desc_sz */
|
||||
if (chan_caps[1].type == RIG_MTYPE_PRIO)
|
||||
sprintf(membuf, "MNA %sI-%01d,%s",mr_extra,channel_num,channel_desc);
|
||||
else
|
||||
sprintf(membuf, "MNA %s%03d,%s",mr_extra,channel_num,channel_desc);
|
||||
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, membuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
|
|
@ -194,10 +194,9 @@ int thg71_decode_event (RIG *rig)
|
|||
{
|
||||
char asyncbuf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t asyncbuf_len = ACKBUF_LEN;
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
||||
retval = kenwood_transaction(rig, NULL, asyncbuf, &asyncbuf_len);
|
||||
retval = kenwood_transaction(rig, NULL, asyncbuf, sizeof (asyncbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -302,7 +301,6 @@ int thg71_get_mode (RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
{
|
||||
char ackbuf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t ack_len=ACKBUF_LEN;
|
||||
int step;
|
||||
freq_t freq;
|
||||
|
||||
|
@ -317,7 +315,7 @@ int thg71_get_mode (RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
}
|
||||
|
||||
/* try to guess from frequency */
|
||||
retval = kenwood_transaction(rig, "FQ", ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, "FQ", ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -337,9 +335,8 @@ int thg71_get_mode (RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
/* --------------------------------------------------------------------- */
|
||||
int thg71_set_vfo (RIG *rig, vfo_t vfo)
|
||||
{
|
||||
char vfobuf[16], ackbuf[ACKBUF_LEN];
|
||||
char vfobuf[16];
|
||||
int retval;
|
||||
size_t ack_len;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
||||
|
@ -356,8 +353,7 @@ int thg71_set_vfo (RIG *rig, vfo_t vfo)
|
|||
return -RIG_EVFO;
|
||||
}
|
||||
|
||||
ack_len = 0;
|
||||
retval = kenwood_transaction(rig, vfobuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, vfobuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -369,10 +365,9 @@ int thg71_get_vfo (RIG *rig, vfo_t *vfo)
|
|||
{
|
||||
char ackbuf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t ack_len=ACKBUF_LEN;
|
||||
int vch;
|
||||
|
||||
retval = kenwood_transaction(rig, "VMC 0" , ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, "VMC 0" , ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -395,16 +390,13 @@ int thg71_get_vfo (RIG *rig, vfo_t *vfo)
|
|||
/* --------------------------------------------------------------------- */
|
||||
int thg71_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
||||
{
|
||||
char ackbuf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t ack_len;
|
||||
|
||||
if(func != RIG_FUNC_TBURST)
|
||||
return -RIG_EINVAL;
|
||||
|
||||
ack_len = 0;
|
||||
if(status==1) {
|
||||
retval = kenwood_transaction(rig, "TT", ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, "TT", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -421,7 +413,6 @@ int thg71_open(RIG *rig)
|
|||
{
|
||||
char ackbuf[ACKBUF_LEN],*strl,*stru;
|
||||
int retval,i;
|
||||
size_t ack_len=ACKBUF_LEN;
|
||||
const freq_range_t frend=RIG_FRNG_END;
|
||||
|
||||
/* this will check the model id */
|
||||
|
@ -430,8 +421,7 @@ int thg71_open(RIG *rig)
|
|||
return retval;
|
||||
|
||||
/* fill state.rx/tx range_list */
|
||||
ack_len=ACKBUF_LEN;
|
||||
retval = kenwood_transaction(rig, "FL", ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, "FL", ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
|
|
@ -812,17 +812,17 @@ int
|
|||
tmd710_get_vfo_char(RIG *rig, vfo_t *vfo, char *vfoch)
|
||||
{
|
||||
char cmdbuf[10], buf[10], vfoc;
|
||||
size_t buf_size=10;
|
||||
int retval;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
||||
/* Get VFO band */
|
||||
|
||||
retval = kenwood_transaction(rig, "BC", buf, &buf_size);
|
||||
retval = kenwood_transaction(rig, "BC", buf, sizeof (buf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
switch (buf_size) {
|
||||
size_t length = strlen (buf);
|
||||
switch (length) {
|
||||
case 6: /*intended for D700 BC 0,0*/
|
||||
if ((buf[0]=='B') &&(buf[1]=='C') && (buf[2]==' ') && (buf[4]=',')){
|
||||
vfoc = buf[3];
|
||||
|
@ -832,7 +832,7 @@ tmd710_get_vfo_char(RIG *rig, vfo_t *vfo, char *vfoch)
|
|||
}
|
||||
break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: Unexpected answer length '%c'\n", __func__, buf_size);
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: Unexpected answer length '%c'\n", __func__, length);
|
||||
return -RIG_EPROTO;
|
||||
break;
|
||||
}
|
||||
|
@ -907,8 +907,6 @@ int tmd710_set_vfo (RIG *rig, vfo_t vfo)
|
|||
char vfobuf[16], ackbuf[16];
|
||||
int vfonum, txvfonum, vfomode=0;
|
||||
int retval;
|
||||
size_t ack_len;
|
||||
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called %s\n", __func__, rig_strvfo(vfo));
|
||||
|
||||
|
@ -928,9 +926,8 @@ int tmd710_set_vfo (RIG *rig, vfo_t vfo)
|
|||
break;
|
||||
case RIG_VFO_MEM:
|
||||
/* get current band */
|
||||
snprintf(vfobuf, 10, "BC");
|
||||
ack_len=16;
|
||||
retval = kenwood_transaction(rig, vfobuf, ackbuf, &ack_len);
|
||||
snprintf(vfobuf, 10, "BC");
|
||||
retval = kenwood_transaction(rig, vfobuf, ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
txvfonum = vfonum = ackbuf[3]-'0';
|
||||
|
|
|
@ -223,10 +223,9 @@ int tmv7_decode_event (RIG *rig)
|
|||
{
|
||||
char asyncbuf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t asyncbuf_len = ACKBUF_LEN;
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
|
||||
|
||||
retval = kenwood_transaction(rig, NULL, asyncbuf, &asyncbuf_len);
|
||||
retval = kenwood_transaction(rig, NULL, asyncbuf, sizeof (asyncbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -332,7 +331,6 @@ int tmv7_set_vfo (RIG *rig, vfo_t vfo)
|
|||
{
|
||||
char vfobuf[16], ackbuf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t ack_len;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: called %d\n", __func__,vfo);
|
||||
|
||||
|
@ -346,8 +344,7 @@ int tmv7_set_vfo (RIG *rig, vfo_t vfo)
|
|||
break;
|
||||
case RIG_VFO_MEM:
|
||||
sprintf(vfobuf, "BC");
|
||||
ack_len=ACKBUF_LEN;
|
||||
retval = kenwood_transaction(rig, vfobuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, vfobuf, ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK) return retval;
|
||||
sprintf(vfobuf, "VMC %c,2",ackbuf[3]);
|
||||
break;
|
||||
|
@ -356,8 +353,7 @@ int tmv7_set_vfo (RIG *rig, vfo_t vfo)
|
|||
return -RIG_EVFO;
|
||||
}
|
||||
|
||||
ack_len=0;
|
||||
retval = kenwood_transaction(rig, vfobuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, vfobuf, NULL, 0);
|
||||
if (retval != RIG_OK) {
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: bad return \n", __func__);
|
||||
return retval;
|
||||
|
@ -379,8 +375,7 @@ int tmv7_set_vfo (RIG *rig, vfo_t vfo)
|
|||
}
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: next2\n", __func__);
|
||||
ack_len=0;
|
||||
retval = kenwood_transaction(rig, vfobuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, vfobuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -392,7 +387,6 @@ int tmv7_get_mode (RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
{
|
||||
char ackbuf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t ack_len=ACKBUF_LEN;
|
||||
int step;
|
||||
freq_t freq;
|
||||
|
||||
|
@ -407,7 +401,7 @@ int tmv7_get_mode (RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
}
|
||||
|
||||
/* try to guess from frequency */
|
||||
retval = kenwood_transaction(rig, "FQ", ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, "FQ", ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -438,7 +432,6 @@ int tmv7_get_channel(RIG *rig, channel_t *chan)
|
|||
{
|
||||
char membuf[64],ackbuf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t ack_len;
|
||||
freq_t freq;
|
||||
char req[16],scf[128];
|
||||
int step, shift, rev, tone, ctcss, tonefq, ctcssfq;
|
||||
|
@ -478,8 +471,7 @@ int tmv7_get_channel(RIG *rig, channel_t *chan)
|
|||
return -RIG_EINVAL;
|
||||
|
||||
sprintf(membuf,"%s",req);
|
||||
ack_len=ACKBUF_LEN;
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -522,8 +514,7 @@ int tmv7_get_channel(RIG *rig, channel_t *chan)
|
|||
if(chan->channel_num<223 && shift==0) {
|
||||
req[5]='1';
|
||||
sprintf(membuf,"%s",req);
|
||||
ack_len=ACKBUF_LEN;
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, sizeof (ackbuf));
|
||||
if (retval == RIG_OK) {
|
||||
strcpy(scf,req);
|
||||
strcat(scf,",%"SCNfreq",%d");
|
||||
|
@ -537,8 +528,7 @@ int tmv7_get_channel(RIG *rig, channel_t *chan)
|
|||
sprintf(membuf,"MNA 0,%03d",chan->channel_num);
|
||||
else
|
||||
sprintf(membuf,"MNA 1,%03d",chan->channel_num-100);
|
||||
ack_len=ACKBUF_LEN;
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
memcpy(chan->channel_desc,&ackbuf[10],7);
|
||||
|
@ -549,9 +539,8 @@ int tmv7_get_channel(RIG *rig, channel_t *chan)
|
|||
/* --------------------------------------------------------------------- */
|
||||
int tmv7_set_channel(RIG *rig, const channel_t *chan)
|
||||
{
|
||||
char membuf[ACKBUF_LEN],ackbuf[ACKBUF_LEN];
|
||||
char membuf[ACKBUF_LEN];
|
||||
int retval;
|
||||
size_t ack_len;
|
||||
char req[64];
|
||||
long freq;
|
||||
int step, shift, tone, ctcss, tonefq, ctcssfq;
|
||||
|
@ -634,16 +623,14 @@ int tmv7_set_channel(RIG *rig, const channel_t *chan)
|
|||
req, (long)freq, step, shift, tone,
|
||||
ctcss, tonefq, ctcssfq);
|
||||
|
||||
ack_len=0;
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, membuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
if(chan->tx_freq!=RIG_FREQ_NONE) {
|
||||
req[5]='1';
|
||||
sprintf(membuf, "%s,%011"PRIll",%01d", req, (int64_t)chan->tx_freq, step);
|
||||
ack_len=0;
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, membuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
@ -653,8 +640,7 @@ int tmv7_set_channel(RIG *rig, const channel_t *chan)
|
|||
sprintf(membuf,"MNA 0,%03d,%s",chan->channel_num,chan->channel_desc);
|
||||
else
|
||||
sprintf(membuf,"MNA 1,%03d,%s",chan->channel_num-100,chan->channel_desc);
|
||||
ack_len=0;
|
||||
retval = kenwood_transaction(rig, membuf, ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, membuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
|
|
@ -196,14 +196,13 @@ int transfox_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt)
|
|||
const char* transfox_get_info(RIG *rig)
|
||||
{
|
||||
static char firmbuf[32];
|
||||
size_t firmlen = sizeof firmbuf;
|
||||
int retval;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s called\n", __func__);
|
||||
|
||||
firmbuf[0] = '\0';
|
||||
|
||||
retval = kenwood_transaction(rig, "CS", firmbuf, &firmlen);
|
||||
retval = kenwood_transaction(rig, "CS", firmbuf, sizeof (firmbuf));
|
||||
if (retval != RIG_OK)
|
||||
return NULL;
|
||||
|
||||
|
|
|
@ -371,16 +371,16 @@ int ts2000_get_channel(RIG *rig, channel_t *chan)
|
|||
|
||||
int err;
|
||||
char buf[52];
|
||||
size_t buf_size = 52;
|
||||
char cmd[8];
|
||||
struct kenwood_priv_caps *caps = kenwood_caps(rig);
|
||||
|
||||
/* put channel num in the command string */
|
||||
sprintf(cmd, "MR0%03d;", chan->channel_num);
|
||||
|
||||
err = kenwood_transaction(rig, cmd, buf, &buf_size );
|
||||
err = kenwood_transaction(rig, cmd, buf, sizeof (buf));
|
||||
if (err != RIG_OK)
|
||||
return err;
|
||||
size_t length = strlen (buf);
|
||||
memset(chan, 0x00, sizeof(channel_t));
|
||||
|
||||
chan->vfo = RIG_VFO_MEM;
|
||||
|
@ -393,7 +393,7 @@ int ts2000_get_channel(RIG *rig, channel_t *chan)
|
|||
*/
|
||||
/* First check if a name is assigned.
|
||||
Name is returned at positions 41-48 (counting from 0) */
|
||||
if( buf_size > 41 ){
|
||||
if( length > 41 ){
|
||||
// rig_debug(RIG_DEBUG_VERBOSE, "Copying channel description: %s\n", &buf[ 41 ] );
|
||||
strcpy( chan->channel_desc, &buf[ 41 ] );
|
||||
}
|
||||
|
@ -505,8 +505,7 @@ int ts2000_get_channel(RIG *rig, channel_t *chan)
|
|||
|
||||
/* Check split freq */
|
||||
cmd[2] = '1';
|
||||
buf_size = 52;
|
||||
err = kenwood_transaction(rig, cmd, buf, &buf_size );
|
||||
err = kenwood_transaction(rig, cmd, buf, sizeof (buf));
|
||||
if (err != RIG_OK)
|
||||
return err;
|
||||
|
||||
|
@ -642,8 +641,7 @@ int ts2000_set_channel(RIG *rig, const channel_t *chan)
|
|||
);
|
||||
rig_debug( RIG_DEBUG_VERBOSE, "The command will be: %s\n", buf );
|
||||
|
||||
size_t tmp=0;
|
||||
err = kenwood_transaction(rig, buf, NULL, &tmp );
|
||||
err = kenwood_transaction(rig, buf, NULL, 0);
|
||||
if (err != RIG_OK)
|
||||
return err;
|
||||
|
||||
|
@ -666,8 +664,7 @@ int ts2000_set_channel(RIG *rig, const channel_t *chan)
|
|||
);
|
||||
rig_debug( RIG_DEBUG_VERBOSE, "Split, the command will be: %s\n", buf );
|
||||
|
||||
tmp = 0;
|
||||
err = kenwood_transaction(rig, buf, NULL, &tmp );
|
||||
err = kenwood_transaction(rig, buf, NULL, 0);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
@ -687,9 +684,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
switch (level) {
|
||||
|
||||
case RIG_LEVEL_PREAMP:
|
||||
retval = kenwood_transaction (rig, "PA", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "PA", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if ((lvl_len != 4)){ /*TS-2000 returns 4 chars for PA; */
|
||||
rig_debug(RIG_DEBUG_ERR,"%s: unexpected answer len=%d\n",
|
||||
__func__, lvl_len);
|
||||
|
@ -704,10 +702,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_ATT:
|
||||
retval = kenwood_transaction (rig, "RA", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RA", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if ((lvl_len != 6)){ /* TS-2000 returns 6 chars for RA; */
|
||||
rig_debug(RIG_DEBUG_ERR,"ts2000_get_level: "
|
||||
"unexpected answer len=%d\n", lvl_len);
|
||||
|
@ -723,9 +721,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_VOX:
|
||||
retval = kenwood_transaction (rig, "VD", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "VD", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 6) {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts2000_get_level: "
|
||||
"unexpected answer len=%d\n", lvl_len);
|
||||
|
@ -736,9 +735,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_AF:
|
||||
retval = kenwood_transaction (rig, "AG0", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "AG0", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 6) {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts2000_get_level: "
|
||||
"unexpected answer len=%d\n", lvl_len);
|
||||
|
@ -749,9 +749,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_RF:
|
||||
retval = kenwood_transaction (rig, "RG", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RG", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 5) {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts2000_get_level: "
|
||||
"unexpected answer len=%d\n", lvl_len);
|
||||
|
@ -762,9 +763,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_SQL:
|
||||
retval = kenwood_transaction (rig, "SQ0", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "SQ0", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 6) {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts2000_get_level: "
|
||||
"unexpected answer len=%d\n", lvl_len);
|
||||
|
@ -775,9 +777,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_CWPITCH:
|
||||
retval = kenwood_transaction (rig, "EX0310000", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "EX0310000", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 15) {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts2000_get_level: "
|
||||
"unexpected answer len=%d answer=%s\n", lvl_len, lvlbuf);
|
||||
|
@ -788,9 +791,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_RFPOWER:
|
||||
retval = kenwood_transaction (rig, "PC", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "PC", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 5) {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts2000_get_level: "
|
||||
"unexpected answer len=%d\n", lvl_len);
|
||||
|
@ -801,9 +805,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_MICGAIN:
|
||||
retval = kenwood_transaction (rig, "MG", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "MG", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 5) {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts2000_get_level: "
|
||||
"unexpected answer len=%d\n", lvl_len);
|
||||
|
@ -814,9 +819,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_KEYSPD:
|
||||
retval = kenwood_transaction (rig, "KS", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "KS", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 5) {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts2000_get_level: "
|
||||
"unexpected answer len=%d\n", lvl_len);
|
||||
|
@ -831,9 +837,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_COMP:
|
||||
retval = kenwood_transaction (rig, "PL", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "PL", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 8) {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts2000_get_level: "
|
||||
"unexpected answer len=%d\n", lvl_len);
|
||||
|
@ -856,9 +863,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_BKINDL:
|
||||
retval = kenwood_transaction (rig, "SD", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "SD", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 6) {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts2000_get_level: "
|
||||
"unexpected answer len=%d\n", lvl_len);
|
||||
|
@ -873,9 +881,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_METER:
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 7) {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts2000_get_level: "
|
||||
"unexpected answer len=%d\n", lvl_len);
|
||||
|
@ -886,9 +895,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_VOXGAIN:
|
||||
retval = kenwood_transaction (rig, "VG", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "VG", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 5) {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts2000_get_level: "
|
||||
"unexpected answer len=%d\n", lvl_len);
|
||||
|
@ -904,10 +914,10 @@ int ts2000_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
|
||||
case RIG_LEVEL_RAWSTR:
|
||||
case RIG_LEVEL_STRENGTH:
|
||||
retval = kenwood_transaction (rig, "SM0", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "SM0", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (( (lvl_len !=7)) || lvlbuf[1] != 'M') {
|
||||
/* TS-2000 returns 8 bytes for S meter level */
|
||||
rig_debug(RIG_DEBUG_ERR,"%s: wrong answer len=%d\n",
|
||||
|
|
|
@ -47,13 +47,12 @@ static const char *
|
|||
kenwood_ts480_get_info (RIG * rig)
|
||||
{
|
||||
char firmbuf[50];
|
||||
size_t firm_len;
|
||||
int retval;
|
||||
|
||||
firm_len = 50;
|
||||
retval = kenwood_transaction (rig, "TY", firmbuf, &firm_len);
|
||||
retval = kenwood_transaction (rig, "TY", firmbuf, sizeof (firmbuf));
|
||||
if (retval != RIG_OK)
|
||||
return NULL;
|
||||
size_t firm_len = strlen (firmbuf);
|
||||
if (firm_len != 5)
|
||||
{
|
||||
rig_debug (RIG_DEBUG_ERR, "kenwood_get_info: wrong answer len=%d\n", firm_len);
|
||||
|
@ -149,16 +148,17 @@ int
|
|||
kenwood_ts480_get_level (RIG * rig, vfo_t vfo, setting_t level, value_t * val)
|
||||
{
|
||||
char ackbuf[50];
|
||||
size_t ack_len = 50;
|
||||
size_t ack_len;
|
||||
int levelint;
|
||||
int retval;
|
||||
|
||||
switch (level)
|
||||
{
|
||||
case RIG_LEVEL_RFPOWER:
|
||||
retval = kenwood_transaction (rig, "PC", ackbuf, &ack_len);
|
||||
retval = kenwood_transaction (rig, "PC", ackbuf, sizeof (ackbuf));
|
||||
if (RIG_OK != retval)
|
||||
return retval;
|
||||
ack_len = strlen (ackbuf);
|
||||
if (5 != ack_len)
|
||||
return -RIG_EPROTO;
|
||||
if (1 != sscanf (&ackbuf[2], "%d", &levelint))
|
||||
|
@ -167,9 +167,10 @@ kenwood_ts480_get_level (RIG * rig, vfo_t vfo, setting_t level, value_t * val)
|
|||
return RIG_OK;
|
||||
|
||||
case RIG_LEVEL_AF:
|
||||
retval = kenwood_transaction (rig, "AG0", ackbuf, &ack_len);
|
||||
retval = kenwood_transaction (rig, "AG0", ackbuf, sizeof (ackbuf));
|
||||
if (RIG_OK != retval)
|
||||
return retval;
|
||||
ack_len = strlen (ackbuf);
|
||||
if (6 != ack_len)
|
||||
return -RIG_EPROTO;
|
||||
if (1 != sscanf (&ackbuf[3], "%d", &levelint))
|
||||
|
@ -178,9 +179,10 @@ kenwood_ts480_get_level (RIG * rig, vfo_t vfo, setting_t level, value_t * val)
|
|||
return RIG_OK;
|
||||
|
||||
case RIG_LEVEL_RF:
|
||||
retval = kenwood_transaction (rig, "RG", ackbuf, &ack_len);
|
||||
retval = kenwood_transaction (rig, "RG", ackbuf, sizeof (ackbuf));
|
||||
if (RIG_OK != retval)
|
||||
return retval;
|
||||
ack_len = strlen (ackbuf);
|
||||
if (5 != ack_len)
|
||||
return -RIG_EPROTO;
|
||||
if (1 != sscanf (&ackbuf[2], "%d", &levelint))
|
||||
|
@ -189,9 +191,10 @@ kenwood_ts480_get_level (RIG * rig, vfo_t vfo, setting_t level, value_t * val)
|
|||
return RIG_OK;
|
||||
|
||||
case RIG_LEVEL_SQL:
|
||||
retval = kenwood_transaction (rig, "SQ0", ackbuf, &ack_len);
|
||||
retval = kenwood_transaction (rig, "SQ0", ackbuf, sizeof (ackbuf));
|
||||
if (RIG_OK != retval)
|
||||
return retval;
|
||||
ack_len = strlen (ackbuf);
|
||||
if (6 != ack_len)
|
||||
return -RIG_EPROTO;
|
||||
if (1 != sscanf (&ackbuf[3], "%d", &levelint))
|
||||
|
@ -200,9 +203,10 @@ kenwood_ts480_get_level (RIG * rig, vfo_t vfo, setting_t level, value_t * val)
|
|||
return RIG_OK;
|
||||
|
||||
case RIG_LEVEL_AGC:
|
||||
retval = kenwood_transaction (rig, "GT", ackbuf, &ack_len);
|
||||
retval = kenwood_transaction (rig, "GT", ackbuf, sizeof (ackbuf));
|
||||
if (RIG_OK != retval)
|
||||
return retval;
|
||||
ack_len = strlen (ackbuf);
|
||||
if (5 != ack_len)
|
||||
return -RIG_EPROTO;
|
||||
switch (ackbuf[4])
|
||||
|
|
101
kenwood/ts570.c
101
kenwood/ts570.c
|
@ -51,19 +51,17 @@ static struct kenwood_priv_caps ts570_priv_caps = {
|
|||
static int ts570_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
||||
{
|
||||
char buf[50];
|
||||
size_t buf_len;
|
||||
size_t length;
|
||||
int retval;
|
||||
|
||||
|
||||
buf_len = 50;
|
||||
retval = kenwood_transaction (rig, "MD", buf, &buf_len);
|
||||
retval = kenwood_transaction (rig, "MD", buf, sizeof (buf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
if (buf_len != 3 || buf[1] != 'D')
|
||||
length = strlen (buf);
|
||||
if (length != 3 || buf[1] != 'D')
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR,"ts570_get_mode: unexpected MD answer, len=%d\n",
|
||||
buf_len);
|
||||
length);
|
||||
return -RIG_ERJCTED;
|
||||
}
|
||||
|
||||
|
@ -96,13 +94,13 @@ static int ts570_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
case RIG_MODE_CWR:
|
||||
case RIG_MODE_RTTY:
|
||||
case RIG_MODE_RTTYR:
|
||||
buf_len = 50;
|
||||
retval = kenwood_transaction (rig, "FW", buf, &buf_len);
|
||||
retval = kenwood_transaction (rig, "FW", buf, sizeof (buf));
|
||||
if (retval != RIG_OK) return retval;
|
||||
if (buf_len != 6 || buf[1] != 'W')
|
||||
length = strlen (buf);
|
||||
if (length != 6 || buf[1] != 'W')
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"ts570_get_mode: unexpected FW answer, len=%d\n", buf_len);
|
||||
"ts570_get_mode: unexpected FW answer, len=%d\n", length);
|
||||
return -RIG_ERJCTED;
|
||||
}
|
||||
*width = atoi(&buf[2]);
|
||||
|
@ -111,13 +109,13 @@ static int ts570_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
case RIG_MODE_LSB:
|
||||
case RIG_MODE_FM:
|
||||
case RIG_MODE_AM:
|
||||
buf_len = 50;
|
||||
retval = kenwood_transaction (rig, "SL", buf, &buf_len);
|
||||
retval = kenwood_transaction (rig, "SL", buf, sizeof (buf));
|
||||
if (retval != RIG_OK) return retval;
|
||||
if (buf_len != 4 || buf[1] != 'L')
|
||||
length = strlen (buf);
|
||||
if (length != 4 || buf[1] != 'L')
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"ts570_get_mode: unexpected SL answer, len=%d\n", buf_len);
|
||||
"ts570_get_mode: unexpected SL answer, len=%d\n", length);
|
||||
return -RIG_ERJCTED;
|
||||
}
|
||||
*width = 50 * atoi(&buf[2]);
|
||||
|
@ -230,10 +228,10 @@ int ts570_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
|||
*/
|
||||
switch (func) {
|
||||
case RIG_FUNC_NR:
|
||||
retval = kenwood_transaction (rig, "NR", fctbuf, &fct_len);
|
||||
retval = kenwood_transaction (rig, "NR", fctbuf, sizeof (fctbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
fct_len = strlen (fctbuf);
|
||||
if (fct_len != 3) {
|
||||
rig_debug(RIG_DEBUG_ERR,"kenwood_get_func: "
|
||||
"wrong answer len=%d\n", fct_len);
|
||||
|
@ -244,10 +242,10 @@ int ts570_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
|||
break;
|
||||
|
||||
case RIG_FUNC_TUNER:
|
||||
retval = kenwood_transaction (rig, "AC", fctbuf, &fct_len);
|
||||
retval = kenwood_transaction (rig, "AC", fctbuf, sizeof (fctbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
fct_len = strlen (fctbuf);
|
||||
if (fct_len != 5) {
|
||||
rig_debug(RIG_DEBUG_ERR,"kenwood_get_func: "
|
||||
"wrong answer len=%d\n", fct_len);
|
||||
|
@ -323,7 +321,7 @@ int
|
|||
ts570_get_level (RIG * rig, vfo_t vfo, setting_t level, value_t * val)
|
||||
{
|
||||
char ackbuf[50];
|
||||
size_t ack_len = 50;
|
||||
size_t ack_len;
|
||||
int levelint;
|
||||
int retval;
|
||||
int i;
|
||||
|
@ -332,9 +330,10 @@ ts570_get_level (RIG * rig, vfo_t vfo, setting_t level, value_t * val)
|
|||
{
|
||||
case RIG_LEVEL_RFPOWER:
|
||||
/* ts570d returns 5..100 measured in watt */
|
||||
retval = kenwood_transaction (rig, "PC", ackbuf, &ack_len);
|
||||
retval = kenwood_transaction (rig, "PC", ackbuf, sizeof (ackbuf));
|
||||
if (RIG_OK != retval)
|
||||
return retval;
|
||||
ack_len = strlen (ackbuf);
|
||||
if (5 != ack_len)
|
||||
return -RIG_EPROTO;
|
||||
if (1 != sscanf (&ackbuf[2], "%d", &levelint))
|
||||
|
@ -344,9 +343,10 @@ ts570_get_level (RIG * rig, vfo_t vfo, setting_t level, value_t * val)
|
|||
|
||||
case RIG_LEVEL_MICGAIN:
|
||||
/* reads from 0..100 */
|
||||
retval = kenwood_transaction (rig, "MG", ackbuf, &ack_len);
|
||||
retval = kenwood_transaction (rig, "MG", ackbuf, sizeof (ackbuf));
|
||||
if (RIG_OK != retval)
|
||||
return retval;
|
||||
ack_len = strlen (ackbuf);
|
||||
if (5 != ack_len)
|
||||
return -RIG_EPROTO;
|
||||
if (1 != sscanf (&ackbuf[2], "%d", &levelint))
|
||||
|
@ -355,10 +355,10 @@ ts570_get_level (RIG * rig, vfo_t vfo, setting_t level, value_t * val)
|
|||
return RIG_OK;
|
||||
|
||||
case RIG_LEVEL_PREAMP:
|
||||
retval = kenwood_transaction (rig, "PA", ackbuf, &ack_len);
|
||||
retval = kenwood_transaction (rig, "PA", ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
ack_len = strlen (ackbuf);
|
||||
if (3 != ack_len) {
|
||||
rig_debug(RIG_DEBUG_ERR,"%s: unexpected answer len=%d\n",
|
||||
__func__, ack_len);
|
||||
|
@ -394,17 +394,15 @@ ts570_get_level (RIG * rig, vfo_t vfo, setting_t level, value_t * val)
|
|||
int ts570_get_split_vfo(RIG * rig, vfo_t vfo, split_t * split, vfo_t * tx_vfo)
|
||||
{
|
||||
char ack[10];
|
||||
size_t acklen = 10;
|
||||
char ack2[10];
|
||||
size_t ack2len = 10;
|
||||
int retval;
|
||||
|
||||
retval = kenwood_transaction(rig, "FR", ack, &acklen);
|
||||
retval = kenwood_transaction(rig, "FR", ack, sizeof (ack));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
||||
retval = kenwood_transaction(rig, "FT", ack2, &ack2len);
|
||||
retval = kenwood_transaction(rig, "FT", ack2, sizeof (ack2));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -435,7 +433,6 @@ int ts570_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t txvfo)
|
|||
{
|
||||
char cmdbuf[16], ackbuf[20];
|
||||
int cmd_len, retval;
|
||||
size_t ack_len;
|
||||
unsigned char vfo_function;
|
||||
|
||||
if(vfo !=RIG_VFO_CURR) {
|
||||
|
@ -482,8 +479,7 @@ int ts570_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t txvfo)
|
|||
if(vfo==RIG_VFO_CURR) {
|
||||
/* switch to current RX VFO */
|
||||
/* first ask for it */
|
||||
ack_len = 10;
|
||||
retval = kenwood_transaction(rig, "FR", ackbuf, &ack_len);
|
||||
retval = kenwood_transaction(rig, "FR", ackbuf, sizeof (ackbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
/* and then set it to both vfo's */
|
||||
|
@ -514,9 +510,8 @@ int ts570_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t txvfo)
|
|||
|
||||
int ts570_set_channel (RIG * rig, const channel_t * chan)
|
||||
{
|
||||
char cmdbuf[30], membuf[30];
|
||||
char cmdbuf[30];
|
||||
int retval, cmd_len;
|
||||
size_t mem_len;
|
||||
int num,freq,tx_freq,tone;
|
||||
char mode,tx_mode,tones;
|
||||
|
||||
|
@ -547,8 +542,7 @@ int ts570_set_channel (RIG * rig, const channel_t * chan)
|
|||
if (cmd_len < 0)
|
||||
return -RIG_ETRUNC;
|
||||
|
||||
mem_len = 0;
|
||||
retval = kenwood_transaction (rig, cmdbuf, membuf, &mem_len);
|
||||
retval = kenwood_transaction (rig, cmdbuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -557,8 +551,7 @@ int ts570_set_channel (RIG * rig, const channel_t * chan)
|
|||
if (cmd_len < 0)
|
||||
return -RIG_ETRUNC;
|
||||
|
||||
mem_len = 0;
|
||||
retval = kenwood_transaction (rig, cmdbuf, membuf, &mem_len);
|
||||
retval = kenwood_transaction (rig, cmdbuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -569,13 +562,11 @@ int ts570_get_xit(RIG *rig, vfo_t vfo, shortfreq_t * rit)
|
|||
{
|
||||
char infobuf[50];
|
||||
int retval;
|
||||
size_t info_len;
|
||||
|
||||
info_len = 50;
|
||||
retval = kenwood_transaction (rig, "IF", infobuf, &info_len);
|
||||
retval = kenwood_transaction (rig, "IF", infobuf, sizeof (infobuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
size_t info_len = strlen (infobuf);
|
||||
if (info_len != 37 || infobuf[1] != 'F') {
|
||||
rig_debug(RIG_DEBUG_ERR,"kenwood_get_rit: wrong answer len=%d\n",
|
||||
info_len);
|
||||
|
@ -593,20 +584,18 @@ int ts570_get_xit(RIG *rig, vfo_t vfo, shortfreq_t * rit)
|
|||
|
||||
int ts570_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit)
|
||||
{
|
||||
char buf[50], infobuf[50];
|
||||
char buf[50];
|
||||
unsigned char c;
|
||||
int retval, len, i;
|
||||
size_t info_len;
|
||||
|
||||
info_len = 0;
|
||||
if (rit == 0) {
|
||||
retval = kenwood_transaction(rig, "RT0", infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, "RT0", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
else
|
||||
return RIG_OK;
|
||||
} else {
|
||||
retval = kenwood_transaction(rig, "RT1", infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, "RT1", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
@ -619,15 +608,13 @@ int ts570_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit)
|
|||
if (len < 0)
|
||||
return -RIG_ETRUNC;
|
||||
|
||||
info_len = 0;
|
||||
retval = kenwood_transaction(rig, "RC", infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, "RC", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
for (i = 0; i < abs(rint(rit/10)); i++)
|
||||
{
|
||||
info_len = 0;
|
||||
retval = kenwood_transaction(rig, buf, infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, buf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
@ -637,20 +624,18 @@ int ts570_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit)
|
|||
|
||||
int ts570_set_xit(RIG * rig, vfo_t vfo, shortfreq_t rit)
|
||||
{
|
||||
char buf[50], infobuf[50];
|
||||
char buf[50];
|
||||
unsigned char c;
|
||||
int retval, len, i;
|
||||
size_t info_len;
|
||||
|
||||
info_len = 0;
|
||||
if (rit == 0) {
|
||||
retval = kenwood_transaction(rig, "XT0", infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, "XT0", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
else
|
||||
return RIG_OK;
|
||||
} else {
|
||||
retval = kenwood_transaction(rig, "XT1", infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, "XT1", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
@ -663,15 +648,13 @@ int ts570_set_xit(RIG * rig, vfo_t vfo, shortfreq_t rit)
|
|||
if (len < 0)
|
||||
return -RIG_ETRUNC;
|
||||
|
||||
info_len = 0;
|
||||
retval = kenwood_transaction(rig, "RC", infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, "RC", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
for (i = 0; i < abs(rint(rit/10)); i++)
|
||||
{
|
||||
info_len = 0;
|
||||
retval = kenwood_transaction(rig, buf, infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, buf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
|
|
@ -242,18 +242,16 @@ const struct rig_caps ts850_caps = {
|
|||
|
||||
int ts850_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit)
|
||||
{
|
||||
char buf[50], infobuf[50];
|
||||
char buf[50];
|
||||
unsigned char c;
|
||||
int retval, i;
|
||||
size_t info_len;
|
||||
|
||||
info_len = 0;
|
||||
if (rit == 0) {
|
||||
retval = kenwood_transaction(rig, "RT0", infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, "RT0", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
} else {
|
||||
retval = kenwood_transaction(rig, "RT1", infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, "RT1", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
@ -264,15 +262,13 @@ int ts850_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit)
|
|||
c = 'D';
|
||||
sprintf(buf, "R%c", c);
|
||||
|
||||
info_len = 0;
|
||||
retval = kenwood_transaction(rig, "RC", infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, "RC", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
for (i = 0; i < abs(rint(rit/20)); i++)
|
||||
{
|
||||
info_len = 0;
|
||||
retval = kenwood_transaction(rig, buf, infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, buf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
@ -282,24 +278,21 @@ int ts850_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit)
|
|||
|
||||
int ts850_set_xit(RIG * rig, vfo_t vfo, shortfreq_t xit)
|
||||
{
|
||||
char buf[50], infobuf[50];
|
||||
char buf[50];
|
||||
unsigned char c;
|
||||
int retval, i;
|
||||
size_t info_len;
|
||||
|
||||
info_len = 0;
|
||||
if (xit == 0) {
|
||||
retval = kenwood_transaction(rig, "XT0", infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, "XT0", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
} else {
|
||||
retval = kenwood_transaction(rig, "XT1", infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, "XT1", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
||||
info_len = 0;
|
||||
retval = kenwood_transaction(rig, "RC", infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, "RC", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -311,8 +304,7 @@ int ts850_set_xit(RIG * rig, vfo_t vfo, shortfreq_t xit)
|
|||
|
||||
for (i = 0; i < abs(rint(xit/20)); i++)
|
||||
{
|
||||
info_len = 0;
|
||||
retval = kenwood_transaction(rig, buf, infobuf, &info_len);
|
||||
retval = kenwood_transaction(rig, buf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
@ -341,23 +333,20 @@ int ts850_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
{
|
||||
char lvlbuf[50];
|
||||
int i, retval;
|
||||
size_t lvl_len;
|
||||
|
||||
if(vfo!=RIG_VFO_CURR)
|
||||
return -RIG_EINVAL;
|
||||
|
||||
switch (level) {
|
||||
case RIG_LEVEL_RAWSTR:
|
||||
lvl_len = 50;
|
||||
retval = kenwood_transaction (rig, "SM", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "SM", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
val->i=atoi(&lvlbuf[2]);
|
||||
break;
|
||||
|
||||
case RIG_LEVEL_STRENGTH:
|
||||
lvl_len = 50;
|
||||
retval = kenwood_transaction (rig, "SM", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "SM", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
val->i=atoi(&lvlbuf[2]);
|
||||
|
@ -366,12 +355,10 @@ int ts850_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_SWR:
|
||||
lvl_len = 0;
|
||||
retval = kenwood_transaction (rig, "RM1", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM1", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = 50;
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
i=atoi(&lvlbuf[3]);
|
||||
|
@ -382,32 +369,27 @@ int ts850_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_COMP:
|
||||
lvl_len = 0;
|
||||
retval = kenwood_transaction (rig, "RM2", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM2", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = 50;
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
val->f=(float)atoi(&lvlbuf[3])/30.0;
|
||||
break;
|
||||
|
||||
case RIG_LEVEL_ALC:
|
||||
lvl_len = 0;
|
||||
retval = kenwood_transaction (rig, "RM3", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM3", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = 50;
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
val->f=(float)atoi(&lvlbuf[3])/30.0;
|
||||
break;
|
||||
|
||||
case RIG_LEVEL_CWPITCH:
|
||||
lvl_len = 25;
|
||||
retval = kenwood_transaction (rig, "PT", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "PT", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
val->i=atoi(&lvlbuf[2]);
|
||||
|
@ -423,9 +405,8 @@ int ts850_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
|
||||
int ts850_set_channel (RIG * rig, const channel_t * chan)
|
||||
{
|
||||
char cmdbuf[30], membuf[30];
|
||||
char cmdbuf[30];
|
||||
int retval;
|
||||
size_t mem_len;
|
||||
int num,freq,tx_freq,tone;
|
||||
char mode,tx_mode,tones;
|
||||
|
||||
|
@ -453,15 +434,13 @@ int ts850_set_channel (RIG * rig, const channel_t * chan)
|
|||
|
||||
sprintf(cmdbuf, "MW0 %02d%011d%c0%c%02d ",
|
||||
num,freq,mode,tones,tone);
|
||||
mem_len = 0;
|
||||
retval = kenwood_transaction (rig, cmdbuf, membuf, &mem_len);
|
||||
retval = kenwood_transaction (rig, cmdbuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
sprintf(cmdbuf, "MW1 %02d%011d%c0%c%02d ",
|
||||
num,tx_freq,tx_mode,tones,tone);
|
||||
mem_len = 0;
|
||||
retval = kenwood_transaction (rig, cmdbuf, membuf, &mem_len);
|
||||
retval = kenwood_transaction (rig, cmdbuf, NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
|
|
|
@ -67,11 +67,10 @@ static int ts870s_get_vfo(RIG *rig, vfo_t *vfo)
|
|||
|
||||
|
||||
/* query RX VFO */
|
||||
vfo_len = 50;
|
||||
retval = kenwood_transaction (rig, "FR", vfobuf, &vfo_len);
|
||||
retval = kenwood_transaction (rig, "FR", vfobuf, sizeof (vfobuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
vfo_len = strlen (vfobuf);
|
||||
if (vfo_len != 3 || vfobuf[1] != 'R') {
|
||||
rig_debug(RIG_DEBUG_ERR,"%s: unexpected answer %s, "
|
||||
"len=%d\n",__func__,vfobuf, vfo_len);
|
||||
|
@ -98,10 +97,10 @@ static int ts870s_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
int retval;
|
||||
|
||||
buf_len = 50;
|
||||
retval = kenwood_transaction (rig, "MD", buf, &buf_len);
|
||||
retval = kenwood_transaction (rig, "MD", buf, sizeof (buf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
buf_len = strlen (buf);
|
||||
if (buf_len != 3 || buf[1] != 'D')
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR,"%s: unexpected MD answer, len=%d\n",
|
||||
|
@ -126,11 +125,10 @@ static int ts870s_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
buf_len = 50;
|
||||
retval = kenwood_transaction (rig, "FW", buf, &buf_len);
|
||||
retval = kenwood_transaction (rig, "FW", buf, sizeof (buf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
buf_len = strlen (buf);
|
||||
if (buf_len != 6 || buf[1] != 'W')
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR,"%s: unexpected FW answer, len=%d\n",
|
||||
|
@ -144,11 +142,10 @@ static int ts870s_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
{
|
||||
/* we only have HPF value and need LPF as well to calculate bandwidth */
|
||||
|
||||
buf_len = 50;
|
||||
retval = kenwood_transaction (rig, "IS", buf, &buf_len);
|
||||
retval = kenwood_transaction (rig, "IS", buf, sizeof (buf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
buf_len = strlen (buf);
|
||||
if (buf_len != 7 || buf[1] != 'S')
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR,"%s: unexpected IS answer, len=%d\n",
|
||||
|
@ -244,13 +241,12 @@ static int ts870s_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
int lvl, retval;
|
||||
int i, ret, agclevel;
|
||||
|
||||
lvl_len = 50;
|
||||
switch (level) {
|
||||
case RIG_LEVEL_STRENGTH:
|
||||
retval = kenwood_transaction (rig, "SM", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "SM", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 6 || lvlbuf[1] != 'M') {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts870s_get_level: "
|
||||
"wrong answer len=%d\n", lvl_len);
|
||||
|
@ -263,19 +259,16 @@ static int ts870s_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_SWR:
|
||||
lvl_len = 50;
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
/* set meter to SWR if needed */
|
||||
if (lvlbuf[2] != '1')
|
||||
{
|
||||
lvl_len = 0;
|
||||
retval = kenwood_transaction (rig, "RM1", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM1", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = 50;
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
@ -288,19 +281,16 @@ static int ts870s_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_COMP:
|
||||
lvl_len = 50;
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
/* set meter to COMP if needed */
|
||||
if (lvlbuf[2] != '2')
|
||||
{
|
||||
lvl_len = 0;
|
||||
retval = kenwood_transaction (rig, "RM2", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM2", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = 50;
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
@ -309,19 +299,16 @@ static int ts870s_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_ALC:
|
||||
lvl_len = 50;
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
/* set meter to ALC if needed */
|
||||
if (lvlbuf[2] != '3')
|
||||
{
|
||||
lvl_len = 0;
|
||||
retval = kenwood_transaction (rig, "RM3", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM3", NULL, 0);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = 50;
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RM", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
}
|
||||
|
@ -330,10 +317,10 @@ static int ts870s_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_ATT:
|
||||
retval = kenwood_transaction (rig, "RA", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "RA", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 4) {
|
||||
rig_debug(RIG_DEBUG_ERR,"ts870s_get_level: "
|
||||
"unexpected answer len=%d\n", lvl_len);
|
||||
|
@ -357,9 +344,10 @@ static int ts870s_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
case RIG_LEVEL_RFPOWER:
|
||||
/* RFPOWER is 0..100 and not 0..255 like all the other levels*/
|
||||
retval = kenwood_transaction (rig, "PC", lvlbuf, &lvl_len);
|
||||
retval = kenwood_transaction (rig, "PC", lvlbuf, sizeof (lvlbuf));
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
lvl_len = strlen (lvlbuf);
|
||||
if (lvl_len != 5 || lvlbuf[1] != 'C')
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR,"ts870s_get_level: "
|
||||
|
|
|
@ -487,6 +487,9 @@ int HAMLIB_API read_string(hamlib_port_t *p, char *rxbuffer, size_t rxmax, const
|
|||
int rd_count, total_count = 0;
|
||||
int retval;
|
||||
|
||||
if (!p || !rxbuffer) return -RIG_EINVAL;
|
||||
if (rxmax < 1) return 0;
|
||||
|
||||
/*
|
||||
* Wait up to timeout ms.
|
||||
*/
|
||||
|
|
Ładowanie…
Reference in New Issue