kopia lustrzana https://github.com/Hamlib/Hamlib
set functions should have ack_len zero, also need to check other rigs
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2092 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.6rc1
rodzic
8ff672d34c
commit
c980a9b7fe
|
@ -2,7 +2,7 @@
|
|||
* Hamlib Kenwood backend - main file
|
||||
* Copyright (c) 2000-2005 by Stephane Fillod and others
|
||||
*
|
||||
* $Id: kenwood.c,v 1.91 2006-03-09 19:45:10 pa4tu Exp $
|
||||
* $Id: kenwood.c,v 1.92 2006-03-14 08:36:38 pa4tu Exp $
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Library General Public License as
|
||||
|
@ -242,7 +242,6 @@ int kenwood_set_vfo(RIG *rig, vfo_t vfo)
|
|||
size_t ack_len;
|
||||
char vfo_function;
|
||||
|
||||
ack_len = 50;
|
||||
switch (vfo) {
|
||||
case RIG_VFO_VFO:
|
||||
case RIG_VFO_A: vfo_function = '0'; break;
|
||||
|
@ -258,13 +257,15 @@ int kenwood_set_vfo(RIG *rig, vfo_t vfo)
|
|||
cmd_len = sprintf(cmdbuf, "FR%c%s", vfo_function, cmd_trm(rig));
|
||||
|
||||
/* set RX VFO */
|
||||
ack_len = 0;
|
||||
retval = kenwood_transaction (rig, cmdbuf, cmd_len, ackbuf, &ack_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
/* set TX VFO */
|
||||
ack_len = 0;
|
||||
cmdbuf[1] = 'T';
|
||||
ack_len = 50;
|
||||
ack_len = 0;
|
||||
retval = kenwood_transaction (rig, cmdbuf, 4, ackbuf, &ack_len);
|
||||
|
||||
return retval;
|
||||
|
@ -277,7 +278,6 @@ int kenwood_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t txvfo)
|
|||
size_t ack_len;
|
||||
unsigned char vfo_function;
|
||||
|
||||
ack_len = 50;
|
||||
if(vfo !=RIG_VFO_CURR) {
|
||||
switch (vfo) {
|
||||
case RIG_VFO_VFO:
|
||||
|
@ -292,6 +292,7 @@ int kenwood_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t txvfo)
|
|||
|
||||
/* set RX VFO */
|
||||
cmd_len = sprintf(cmdbuf, "FR%c%s", vfo_function, cmd_trm(rig));
|
||||
ack_len = 0;
|
||||
retval = kenwood_transaction (rig, cmdbuf, cmd_len, ackbuf, &ack_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -309,7 +310,7 @@ int kenwood_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t txvfo)
|
|||
}
|
||||
/* set TX VFO */
|
||||
cmd_len = sprintf(cmdbuf, "FT%c%s", vfo_function, cmd_trm(rig));
|
||||
ack_len = 50;
|
||||
ack_len = 0;
|
||||
retval = kenwood_transaction (rig, cmdbuf, cmd_len, ackbuf, &ack_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -365,7 +366,6 @@ int kenwood_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
unsigned char vfo_letter;
|
||||
vfo_t tvfo;
|
||||
|
||||
ack_len = 50;
|
||||
tvfo = vfo==RIG_VFO_CURR ? rig->state.current_vfo : vfo;
|
||||
|
||||
switch (tvfo) {
|
||||
|
@ -379,6 +379,7 @@ int kenwood_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
}
|
||||
freq_len = sprintf(freqbuf,"F%c%011"PRIll";", vfo_letter, (long long)freq);
|
||||
|
||||
ack_len = 0;
|
||||
retval = kenwood_transaction (rig, freqbuf, freq_len, ackbuf, &ack_len);
|
||||
|
||||
return retval;
|
||||
|
@ -397,7 +398,6 @@ int kenwood_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
|||
unsigned char vfo_letter;
|
||||
vfo_t tvfo;
|
||||
|
||||
freq_len = 50;
|
||||
tvfo = vfo==RIG_VFO_CURR ? rig->state.current_vfo : vfo;
|
||||
|
||||
switch (tvfo) {
|
||||
|
@ -461,7 +461,7 @@ int kenwood_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit)
|
|||
int retval, len, i;
|
||||
size_t info_len;
|
||||
|
||||
info_len = 50;
|
||||
info_len = 0;
|
||||
if (rit == 0)
|
||||
return kenwood_transaction(rig, "RC;", 3, infobuf, &info_len);
|
||||
|
||||
|
@ -500,7 +500,7 @@ int kenwood_scan(RIG * rig, vfo_t vfo, scan_t scan, int ch)
|
|||
char ackbuf[50];
|
||||
size_t ack_len;
|
||||
|
||||
ack_len = 50;
|
||||
ack_len = 0;
|
||||
return kenwood_transaction (rig, scan==RIG_SCAN_STOP? "SC0;":"SC1;", 4,
|
||||
ackbuf, &ack_len);
|
||||
}
|
||||
|
@ -516,7 +516,6 @@ int kenwood_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
int mdbuf_len, kmode, retval;
|
||||
size_t ack_len;
|
||||
|
||||
ack_len = 50;
|
||||
switch (mode) {
|
||||
case RIG_MODE_CW: kmode = MD_CW; break;
|
||||
case RIG_MODE_CWR: kmode = MD_CWR; break;
|
||||
|
@ -533,6 +532,7 @@ int kenwood_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
}
|
||||
|
||||
mdbuf_len = sprintf(mdbuf, "MD%c;", kmode);
|
||||
ack_len = 0;
|
||||
retval = kenwood_transaction (rig, mdbuf, mdbuf_len, ackbuf, &ack_len);
|
||||
|
||||
return retval;
|
||||
|
@ -587,7 +587,6 @@ int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
int i, kenwood_val;
|
||||
size_t ack_len;
|
||||
|
||||
ack_len = 50;
|
||||
if (RIG_LEVEL_IS_FLOAT(level))
|
||||
kenwood_val = val.f * 255;
|
||||
else
|
||||
|
@ -632,6 +631,7 @@ int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
ack_len = 0;
|
||||
retval = kenwood_transaction (rig, levelbuf, level_len, ackbuf, &ack_len);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
|
@ -784,10 +784,10 @@ int kenwood_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
|||
int fct_len;
|
||||
size_t ack_len;
|
||||
|
||||
ack_len = 50;
|
||||
/* Optimize:
|
||||
* sort the switch cases with the most frequent first
|
||||
*/
|
||||
ack_len = 0;
|
||||
switch (func) {
|
||||
case RIG_FUNC_NB:
|
||||
fct_len = sprintf(fctbuf,"NB%c;", (0==status)?'0':'1');
|
||||
|
@ -830,8 +830,8 @@ int kenwood_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
|||
return kenwood_transaction (rig, fctbuf, fct_len, ackbuf, &ack_len);
|
||||
|
||||
case RIG_FUNC_LOCK:
|
||||
fct_len = sprintf(fctbuf,"LK%c;", (0==status)?'0':'1');
|
||||
return kenwood_transaction (rig, fctbuf, fct_len, ackbuf, &ack_len);
|
||||
fct_len = sprintf(fctbuf,"LK%c;", (0==status)?'0':'1');
|
||||
return kenwood_transaction (rig, fctbuf, fct_len, ackbuf, &ack_len);
|
||||
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,"Unsupported set_func %#x", func);
|
||||
|
@ -951,7 +951,6 @@ int kenwood_set_ctcss_tone(RIG *rig, vfo_t vfo, tone_t tone)
|
|||
int i;
|
||||
size_t ack_len;
|
||||
|
||||
ack_len = 50;
|
||||
caps = rig->caps;
|
||||
|
||||
/* TODO: replace 200 by something like RIGTONEMAX */
|
||||
|
@ -965,6 +964,7 @@ int kenwood_set_ctcss_tone(RIG *rig, vfo_t vfo, tone_t tone)
|
|||
/* TODO: replace menu no 57 by a define */
|
||||
tone_len = sprintf(tonebuf,"EX%03d%04d;", 57, i+1);
|
||||
|
||||
ack_len = 0;
|
||||
return kenwood_transaction (rig, tonebuf, tone_len, ackbuf, &ack_len);
|
||||
}
|
||||
|
||||
|
@ -1051,7 +1051,7 @@ int kenwood_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt)
|
|||
char ackbuf[50];
|
||||
size_t ack_len;
|
||||
|
||||
ack_len = 50;
|
||||
ack_len = 0;
|
||||
return kenwood_transaction (rig, ptt==RIG_PTT_ON? "TX;":"RX;", 3,
|
||||
ackbuf, &ack_len);
|
||||
}
|
||||
|
@ -1093,9 +1093,9 @@ int kenwood_set_trn(RIG *rig, int trn)
|
|||
int trn_len;
|
||||
size_t ack_len;
|
||||
|
||||
ack_len = 50;
|
||||
trn_len = sprintf(trnbuf,"AI%c;", trn==RIG_TRN_RIG?'1':'0');
|
||||
|
||||
ack_len = 0;
|
||||
return kenwood_transaction (rig, trnbuf, trn_len, ackbuf, &ack_len);
|
||||
}
|
||||
|
||||
|
@ -1134,9 +1134,9 @@ int kenwood_set_powerstat(RIG *rig, powerstat_t status)
|
|||
int pwr_len;
|
||||
size_t ack_len;
|
||||
|
||||
ack_len = 50;
|
||||
pwr_len = sprintf(pwrbuf,"PS%c;", status==RIG_POWER_ON?'1':'0');
|
||||
|
||||
ack_len = 0;
|
||||
return kenwood_transaction (rig, pwrbuf, pwr_len, ackbuf, &ack_len);
|
||||
}
|
||||
|
||||
|
@ -1176,7 +1176,6 @@ int kenwood_reset(RIG *rig, reset_t reset)
|
|||
char rst;
|
||||
size_t ack_len;
|
||||
|
||||
ack_len = 50;
|
||||
switch(reset) {
|
||||
case RIG_RESET_VFO: rst='1'; break;
|
||||
case RIG_RESET_MASTER: rst='2'; break;
|
||||
|
@ -1187,6 +1186,7 @@ int kenwood_reset(RIG *rig, reset_t reset)
|
|||
}
|
||||
rst_len = sprintf(rstbuf,"SR%c;", rst);
|
||||
|
||||
ack_len = 0;
|
||||
return kenwood_transaction (rig, rstbuf, rst_len, ackbuf, &ack_len);
|
||||
}
|
||||
|
||||
|
@ -1202,7 +1202,6 @@ int kenwood_send_morse(RIG *rig, vfo_t vfo, const char *msg)
|
|||
const char *p;
|
||||
size_t ack_len;
|
||||
|
||||
ack_len = 50;
|
||||
p = msg;
|
||||
msg_len = strlen(msg);
|
||||
|
||||
|
@ -1222,6 +1221,7 @@ int kenwood_send_morse(RIG *rig, vfo_t vfo, const char *msg)
|
|||
|
||||
/* morse_len must be 28 */
|
||||
morse_len = sprintf(morsebuf,"KY %-24s;", m2);
|
||||
ack_len = 0;
|
||||
retval = kenwood_transaction (rig, morsebuf, morse_len,
|
||||
ackbuf, &ack_len);
|
||||
if (retval != RIG_OK)
|
||||
|
@ -1243,7 +1243,6 @@ int kenwood_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
|
|||
char *cmd, ackbuf[50];
|
||||
size_t ack_len;
|
||||
|
||||
ack_len = 50;
|
||||
switch(op) {
|
||||
case RIG_OP_UP: cmd="UP;"; break;
|
||||
case RIG_OP_DOWN: cmd="DN;"; break;
|
||||
|
@ -1254,6 +1253,7 @@ int kenwood_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
|
|||
op);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
ack_len = 0;
|
||||
return kenwood_transaction (rig, cmd, 3, ackbuf, &ack_len);
|
||||
}
|
||||
|
||||
|
@ -1267,7 +1267,6 @@ int kenwood_set_mem(RIG *rig, vfo_t vfo, int ch)
|
|||
int mem_len;
|
||||
size_t ack_len;
|
||||
|
||||
ack_len = 50;
|
||||
/*
|
||||
* "MCbmm;"
|
||||
* where b is the bank number, mm the memory number.
|
||||
|
@ -1275,6 +1274,7 @@ int kenwood_set_mem(RIG *rig, vfo_t vfo, int ch)
|
|||
*/
|
||||
mem_len = sprintf(membuf, "MC %02d;", ch);
|
||||
|
||||
ack_len = 0;
|
||||
return kenwood_transaction (rig, membuf, mem_len, ackbuf, &ack_len);
|
||||
}
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue