kopia lustrzana https://github.com/Hamlib/Hamlib
nothing returned by the rig for these commands
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@1176 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.1.4
rodzic
9957a8b4f0
commit
ab7c7811a5
|
@ -2,7 +2,7 @@
|
||||||
* Hamlib Kenwood backend - main file
|
* Hamlib Kenwood backend - main file
|
||||||
* Copyright (c) 2000-2002 by Stephane Fillod
|
* Copyright (c) 2000-2002 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: kenwood.c,v 1.45 2002-09-04 17:32:42 pa4tu Exp $
|
* $Id: kenwood.c,v 1.46 2002-09-13 19:57:39 pa4tu Exp $
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or modify
|
* This library is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Library General Public License as
|
* it under the terms of the GNU Library General Public License as
|
||||||
|
@ -228,7 +228,7 @@ transaction_quit:
|
||||||
int kenwood_set_vfo(RIG *rig, vfo_t vfo)
|
int kenwood_set_vfo(RIG *rig, vfo_t vfo)
|
||||||
{
|
{
|
||||||
unsigned char cmdbuf[16], ackbuf[16];
|
unsigned char cmdbuf[16], ackbuf[16];
|
||||||
int cmd_len, ack_len = 0, retval;
|
int cmd_len, ack_len, retval;
|
||||||
char vfo_function;
|
char vfo_function;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -250,14 +250,14 @@ int kenwood_set_vfo(RIG *rig, vfo_t vfo)
|
||||||
cmd_len = sprintf(cmdbuf, "FR%c%s", vfo_function, cmd_trm(rig));
|
cmd_len = sprintf(cmdbuf, "FR%c%s", vfo_function, cmd_trm(rig));
|
||||||
|
|
||||||
/* set RX VFO */
|
/* set RX VFO */
|
||||||
ack_len = 16;
|
ack_len = 0;
|
||||||
retval = kenwood_transaction (rig, cmdbuf, cmd_len, ackbuf, &ack_len);
|
retval = kenwood_transaction (rig, cmdbuf, cmd_len, ackbuf, &ack_len);
|
||||||
if (retval != RIG_OK)
|
if (retval != RIG_OK)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
/* set TX VFO */
|
/* set TX VFO */
|
||||||
cmdbuf[1] = 'T';
|
cmdbuf[1] = 'T';
|
||||||
ack_len = 16;
|
ack_len = 0;
|
||||||
retval = kenwood_transaction (rig, cmdbuf, 4, ackbuf, &ack_len);
|
retval = kenwood_transaction (rig, cmdbuf, 4, ackbuf, &ack_len);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
|
@ -307,7 +307,7 @@ int kenwood_get_vfo(RIG *rig, vfo_t *vfo)
|
||||||
int kenwood_old_set_vfo(RIG *rig, vfo_t vfo)
|
int kenwood_old_set_vfo(RIG *rig, vfo_t vfo)
|
||||||
{
|
{
|
||||||
unsigned char cmdbuf[16], ackbuf[16];
|
unsigned char cmdbuf[16], ackbuf[16];
|
||||||
int cmd_len, ack_len = 0, retval;
|
int cmd_len, ack_len, retval;
|
||||||
char vfo_function;
|
char vfo_function;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -328,7 +328,7 @@ int kenwood_old_set_vfo(RIG *rig, vfo_t vfo)
|
||||||
|
|
||||||
cmd_len = sprintf(cmdbuf, "FN%c%s", vfo_function, cmd_trm(rig));
|
cmd_len = sprintf(cmdbuf, "FN%c%s", vfo_function, cmd_trm(rig));
|
||||||
|
|
||||||
ack_len = 16;
|
ack_len = 0;
|
||||||
retval = kenwood_transaction (rig, cmdbuf, cmd_len, ackbuf, &ack_len);
|
retval = kenwood_transaction (rig, cmdbuf, cmd_len, ackbuf, &ack_len);
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -377,7 +377,7 @@ int kenwood_old_get_vfo(RIG *rig, vfo_t *vfo)
|
||||||
int kenwood_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
int kenwood_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 = 0, retval;
|
int freq_len, ack_len, retval;
|
||||||
char vfo_letter;
|
char vfo_letter;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -400,7 +400,7 @@ int kenwood_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
||||||
}
|
}
|
||||||
freq_len = sprintf(freqbuf,"F%c%011Ld;", vfo_letter, freq);
|
freq_len = sprintf(freqbuf,"F%c%011Ld;", vfo_letter, freq);
|
||||||
|
|
||||||
ack_len = 16;
|
ack_len = 0;
|
||||||
retval = kenwood_transaction (rig, freqbuf, freq_len, ackbuf, &ack_len);
|
retval = kenwood_transaction (rig, freqbuf, freq_len, ackbuf, &ack_len);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
|
@ -483,6 +483,8 @@ int kenwood_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit)
|
||||||
unsigned char buf[50], infobuf[50], c;
|
unsigned char buf[50], infobuf[50], c;
|
||||||
int retval, info_len, len, i;
|
int retval, info_len, len, i;
|
||||||
|
|
||||||
|
|
||||||
|
info_len = 0;
|
||||||
if (rit == 0)
|
if (rit == 0)
|
||||||
return kenwood_transaction(rig, "RC;", 3, infobuf, &info_len);
|
return kenwood_transaction(rig, "RC;", 3, infobuf, &info_len);
|
||||||
|
|
||||||
|
@ -492,9 +494,13 @@ int kenwood_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit)
|
||||||
c = 'D';
|
c = 'D';
|
||||||
len = sprintf(buf, "R%c;", c);
|
len = sprintf(buf, "R%c;", c);
|
||||||
|
|
||||||
|
info_len = 0;
|
||||||
retval = kenwood_transaction(rig, "RC;", 3, infobuf, &info_len);
|
retval = kenwood_transaction(rig, "RC;", 3, infobuf, &info_len);
|
||||||
for (i = 0; i < abs(round(rit/10)); i++)
|
for (i = 0; i < abs(round(rit/10)); i++)
|
||||||
|
{
|
||||||
|
info_len = 0;
|
||||||
retval = kenwood_transaction(rig, buf, len, infobuf, &info_len);
|
retval = kenwood_transaction(rig, buf, len, infobuf, &info_len);
|
||||||
|
}
|
||||||
|
|
||||||
return RIG_OK;
|
return RIG_OK;
|
||||||
}
|
}
|
||||||
|
@ -520,7 +526,7 @@ int kenwood_set_xit(RIG * rig, vfo_t vfo, shortfreq_t rit)
|
||||||
int kenwood_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
int kenwood_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];
|
||||||
int mdbuf_len, ack_len = 0, kmode, retval;
|
int mdbuf_len, ack_len, kmode, retval;
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case RIG_MODE_CW: kmode = MD_CW; break;
|
case RIG_MODE_CW: kmode = MD_CW; break;
|
||||||
|
@ -536,7 +542,7 @@ int kenwood_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||||
}
|
}
|
||||||
|
|
||||||
mdbuf_len = sprintf(mdbuf, "MD%c;", kmode);
|
mdbuf_len = sprintf(mdbuf, "MD%c;", kmode);
|
||||||
ack_len = 16;
|
ack_len = 0;
|
||||||
retval = kenwood_transaction (rig, mdbuf, mdbuf_len, ackbuf, &ack_len);
|
retval = kenwood_transaction (rig, mdbuf, mdbuf_len, ackbuf, &ack_len);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
|
@ -590,7 +596,7 @@ int kenwood_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
||||||
int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
{
|
{
|
||||||
unsigned char levelbuf[16], ackbuf[16];
|
unsigned char levelbuf[16], ackbuf[16];
|
||||||
int level_len, ack_len = 0, retval;
|
int level_len, ack_len, retval;
|
||||||
int kenwood_val;
|
int kenwood_val;
|
||||||
|
|
||||||
if (RIG_LEVEL_IS_FLOAT(level))
|
if (RIG_LEVEL_IS_FLOAT(level))
|
||||||
|
@ -620,7 +626,7 @@ int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ack_len = 16;
|
ack_len = 0;
|
||||||
retval = kenwood_transaction (rig, levelbuf, level_len, ackbuf, &ack_len);
|
retval = kenwood_transaction (rig, levelbuf, level_len, ackbuf, &ack_len);
|
||||||
|
|
||||||
if (retval != RIG_OK)
|
if (retval != RIG_OK)
|
||||||
|
@ -770,11 +776,12 @@ int kenwood_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
int kenwood_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
int kenwood_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
||||||
{
|
{
|
||||||
unsigned char fctbuf[16], ackbuf[16];
|
unsigned char fctbuf[16], ackbuf[16];
|
||||||
int fct_len, ack_len = 16;
|
int fct_len, ack_len;
|
||||||
|
|
||||||
/* Optimize:
|
/* Optimize:
|
||||||
* sort the switch cases with the most frequent first
|
* sort the switch cases with the most frequent first
|
||||||
*/
|
*/
|
||||||
|
ack_len = 0;
|
||||||
switch (func) {
|
switch (func) {
|
||||||
case RIG_FUNC_NB:
|
case RIG_FUNC_NB:
|
||||||
fct_len = sprintf(fctbuf,"NB%c;", status==RIG_FUNC_NB?'0':'1');
|
fct_len = sprintf(fctbuf,"NB%c;", status==RIG_FUNC_NB?'0':'1');
|
||||||
|
@ -931,7 +938,7 @@ int kenwood_set_ctcss_tone(RIG *rig, vfo_t vfo, tone_t tone)
|
||||||
{
|
{
|
||||||
const struct rig_caps *caps;
|
const struct rig_caps *caps;
|
||||||
unsigned char tonebuf[16], ackbuf[16];
|
unsigned char tonebuf[16], ackbuf[16];
|
||||||
int tone_len, ack_len = 0;
|
int tone_len, ack_len;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
caps = rig->caps;
|
caps = rig->caps;
|
||||||
|
@ -947,7 +954,7 @@ int kenwood_set_ctcss_tone(RIG *rig, vfo_t vfo, tone_t tone)
|
||||||
/* TODO: replace menu no 57 by a define */
|
/* TODO: replace menu no 57 by a define */
|
||||||
tone_len = sprintf(tonebuf,"EX%03d%04d;", 57, i+1);
|
tone_len = sprintf(tonebuf,"EX%03d%04d;", 57, i+1);
|
||||||
|
|
||||||
ack_len = 16;
|
ack_len = 0;
|
||||||
return kenwood_transaction (rig, tonebuf, tone_len, ackbuf, &ack_len);
|
return kenwood_transaction (rig, tonebuf, tone_len, ackbuf, &ack_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1029,7 +1036,7 @@ int kenwood_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt)
|
||||||
int kenwood_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt)
|
int kenwood_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt)
|
||||||
{
|
{
|
||||||
unsigned char ackbuf[16];
|
unsigned char ackbuf[16];
|
||||||
int ack_len = 16;
|
int ack_len = 0;
|
||||||
|
|
||||||
return kenwood_transaction (rig, ptt==RIG_PTT_ON? "TX;":"RX;", 3,
|
return kenwood_transaction (rig, ptt==RIG_PTT_ON? "TX;":"RX;", 3,
|
||||||
ackbuf, &ack_len);
|
ackbuf, &ack_len);
|
||||||
|
@ -1068,7 +1075,7 @@ int kenwood_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd)
|
||||||
int kenwood_set_trn(RIG *rig, int trn)
|
int kenwood_set_trn(RIG *rig, int trn)
|
||||||
{
|
{
|
||||||
unsigned char trnbuf[16], ackbuf[16];
|
unsigned char trnbuf[16], ackbuf[16];
|
||||||
int trn_len, ack_len = 16;
|
int trn_len, ack_len = 0;
|
||||||
|
|
||||||
trn_len = sprintf(trnbuf,"AI%c;", trn==RIG_TRN_RIG?'1':'0');
|
trn_len = sprintf(trnbuf,"AI%c;", trn==RIG_TRN_RIG?'1':'0');
|
||||||
|
|
||||||
|
@ -1106,7 +1113,7 @@ int kenwood_get_trn(RIG *rig, int *trn)
|
||||||
int kenwood_set_powerstat(RIG *rig, powerstat_t status)
|
int kenwood_set_powerstat(RIG *rig, powerstat_t status)
|
||||||
{
|
{
|
||||||
unsigned char pwrbuf[16], ackbuf[16];
|
unsigned char pwrbuf[16], ackbuf[16];
|
||||||
int pwr_len, ack_len = 16;
|
int pwr_len, ack_len = 0;
|
||||||
|
|
||||||
pwr_len = sprintf(pwrbuf,"PS%c;", status==RIG_POWER_ON?'1':'0');
|
pwr_len = sprintf(pwrbuf,"PS%c;", status==RIG_POWER_ON?'1':'0');
|
||||||
|
|
||||||
|
@ -1143,7 +1150,7 @@ int kenwood_get_powerstat(RIG *rig, powerstat_t *status)
|
||||||
int kenwood_reset(RIG *rig, reset_t reset)
|
int kenwood_reset(RIG *rig, reset_t reset)
|
||||||
{
|
{
|
||||||
unsigned char rstbuf[16], ackbuf[16];
|
unsigned char rstbuf[16], ackbuf[16];
|
||||||
int rst_len, ack_len = 16;
|
int rst_len, ack_len = 0;
|
||||||
char rst;
|
char rst;
|
||||||
|
|
||||||
switch(reset) {
|
switch(reset) {
|
||||||
|
@ -1166,7 +1173,7 @@ int kenwood_reset(RIG *rig, reset_t reset)
|
||||||
int kenwood_send_morse(RIG *rig, vfo_t vfo, const char *msg)
|
int kenwood_send_morse(RIG *rig, vfo_t vfo, const char *msg)
|
||||||
{
|
{
|
||||||
unsigned char morsebuf[30], ackbuf[16];
|
unsigned char morsebuf[30], ackbuf[16];
|
||||||
int morse_len, ack_len = 0;
|
int morse_len, ack_len;
|
||||||
int msg_len, buff_len, retval;
|
int msg_len, buff_len, retval;
|
||||||
const char *p;
|
const char *p;
|
||||||
|
|
||||||
|
@ -1184,7 +1191,7 @@ int kenwood_send_morse(RIG *rig, vfo_t vfo, const char *msg)
|
||||||
strncat(morsebuf, p, buff_len);
|
strncat(morsebuf, p, buff_len);
|
||||||
strcat(morsebuf, ";");
|
strcat(morsebuf, ";");
|
||||||
morse_len = 4 + buff_len;
|
morse_len = 4 + buff_len;
|
||||||
ack_len = 16;
|
ack_len = 0;
|
||||||
retval = kenwood_transaction (rig, morsebuf, morse_len,
|
retval = kenwood_transaction (rig, morsebuf, morse_len,
|
||||||
ackbuf, &ack_len);
|
ackbuf, &ack_len);
|
||||||
if (retval != RIG_OK)
|
if (retval != RIG_OK)
|
||||||
|
@ -1228,7 +1235,7 @@ int kenwood_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
|
||||||
int kenwood_set_mem(RIG *rig, vfo_t vfo, int ch)
|
int kenwood_set_mem(RIG *rig, vfo_t vfo, int ch)
|
||||||
{
|
{
|
||||||
unsigned char membuf[16], ackbuf[16];
|
unsigned char membuf[16], ackbuf[16];
|
||||||
int mem_len, ack_len = 16;
|
int mem_len, ack_len = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "MCbmm;"
|
* "MCbmm;"
|
||||||
|
|
Ładowanie…
Reference in New Issue