kopia lustrzana https://github.com/Hamlib/Hamlib
Patch from Mark J. Fine, Part III:
- Added ability in JRCs to get AGC, BEEP and POWER status. - First-cuts at the Drake R8A and Drake R8B. git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@1748 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.2
rodzic
97b2291e73
commit
2354575993
384
drake/drake.c
384
drake/drake.c
|
@ -2,7 +2,7 @@
|
||||||
* Hamlib Drake backend - main file
|
* Hamlib Drake backend - main file
|
||||||
* Copyright (c) 2001-2004 by Stephane Fillod
|
* Copyright (c) 2001-2004 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: drake.c,v 1.8 2004-03-10 23:33:48 fillods Exp $
|
* $Id: drake.c,v 1.9 2004-06-04 21:48:05 fillods 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
|
||||||
|
@ -122,13 +122,47 @@ int drake_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
||||||
* 10Hz resolution
|
* 10Hz resolution
|
||||||
* TODO: round nearest?
|
* TODO: round nearest?
|
||||||
*/
|
*/
|
||||||
freq_len = sprintf(freqbuf,"F%07d", (unsigned int)freq/10);
|
freq_len = sprintf(freqbuf,"F%07d" EOM, (unsigned int)freq/10);
|
||||||
retval = drake_transaction(rig, freqbuf, freq_len, ackbuf, &ack_len);
|
retval = drake_transaction(rig, freqbuf, freq_len, ackbuf, &ack_len);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* drake_get_freq
|
||||||
|
* Assumes rig!=NULL, freq!=NULL
|
||||||
|
*/
|
||||||
|
int drake_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
||||||
|
{
|
||||||
|
int freq_len, retval;
|
||||||
|
char freqbuf[BUFSZ];
|
||||||
|
double f;
|
||||||
|
char fmult;
|
||||||
|
|
||||||
|
retval = drake_transaction (rig, "RF" EOM, 3, freqbuf, &freq_len);
|
||||||
|
if (retval != RIG_OK)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
/* RA command returns *fffff.ff*mHz<CR> */
|
||||||
|
if (freq_len != 15) {
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"drake_get_freq: wrong answer %s, "
|
||||||
|
"len=%d\n", freqbuf, freq_len);
|
||||||
|
return -RIG_ERJCTED;
|
||||||
|
}
|
||||||
|
fmult = freqbuf[10];
|
||||||
|
freqbuf[9] = '\0';
|
||||||
|
|
||||||
|
/* extract freq */
|
||||||
|
sscanf(freqbuf+1, "%lf", &f);
|
||||||
|
f *= 1000.0;
|
||||||
|
if (fmult=='M'||fmult=='m')
|
||||||
|
f *= 1000.0;
|
||||||
|
*freq = (freq_t)f;
|
||||||
|
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* drake_set_vfo
|
* drake_set_vfo
|
||||||
* Assumes rig!=NULL
|
* Assumes rig!=NULL
|
||||||
|
@ -156,6 +190,56 @@ int drake_set_vfo(RIG *rig, vfo_t vfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* drake_get_vfo
|
||||||
|
* Assumes rig!=NULL
|
||||||
|
*/
|
||||||
|
int drake_get_vfo(RIG *rig, vfo_t *vfo)
|
||||||
|
{
|
||||||
|
int mdbuf_len, retval;
|
||||||
|
char mdbuf[BUFSZ];
|
||||||
|
char cvfo;
|
||||||
|
|
||||||
|
retval = drake_transaction (rig, "RM" EOM, 3, mdbuf, &mdbuf_len);
|
||||||
|
if (retval != RIG_OK)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
if (mdbuf_len != 8) {
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"drake_get_vfo: wrong answer %s, "
|
||||||
|
"len=%d\n", mdbuf, mdbuf_len);
|
||||||
|
return -RIG_ERJCTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
cvfo = mdbuf[5];
|
||||||
|
|
||||||
|
switch(cvfo){
|
||||||
|
case '0':
|
||||||
|
case '1':
|
||||||
|
case '2':
|
||||||
|
case '3':
|
||||||
|
case '4':
|
||||||
|
case '5':
|
||||||
|
case '6':
|
||||||
|
case '7': *vfo = RIG_VFO_B; break;
|
||||||
|
case '8':
|
||||||
|
case '9':
|
||||||
|
case ':':
|
||||||
|
case ';':
|
||||||
|
case '<':
|
||||||
|
case '=':
|
||||||
|
case '>':
|
||||||
|
case '?': *vfo = RIG_VFO_A; break;
|
||||||
|
default :
|
||||||
|
rig_debug(RIG_DEBUG_ERR,
|
||||||
|
"drake_get_vfo: unsupported vfo %c\n",
|
||||||
|
cvfo);
|
||||||
|
*vfo = RIG_VFO_VFO;
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* drake_set_mode
|
* drake_set_mode
|
||||||
* Assumes rig!=NULL
|
* Assumes rig!=NULL
|
||||||
|
@ -215,6 +299,97 @@ int drake_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* drake_get_mode
|
||||||
|
* Assumes rig!=NULL
|
||||||
|
*/
|
||||||
|
int drake_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
||||||
|
{
|
||||||
|
int mdbuf_len, retval;
|
||||||
|
char mdbuf[BUFSZ];
|
||||||
|
char cmode;
|
||||||
|
char cwidth;
|
||||||
|
char csynch;
|
||||||
|
|
||||||
|
retval = drake_transaction (rig, "RM" EOM, 3, mdbuf, &mdbuf_len);
|
||||||
|
if (retval != RIG_OK)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
if (mdbuf_len != 8) {
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"drake_get_mode: wrong answer %s, "
|
||||||
|
"len=%d\n", mdbuf, mdbuf_len);
|
||||||
|
return -RIG_ERJCTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmode = mdbuf[3];
|
||||||
|
cwidth = mdbuf[4];
|
||||||
|
csynch = mdbuf[5];
|
||||||
|
|
||||||
|
switch(cwidth){
|
||||||
|
case '0':
|
||||||
|
case '8': *width = s_Hz(500); break;
|
||||||
|
case '1':
|
||||||
|
case '9': *width = s_Hz(1800); break;
|
||||||
|
case '2':
|
||||||
|
case ':': *width = s_Hz(2300); break;
|
||||||
|
case '3':
|
||||||
|
case ';': *width = s_Hz(4000); break;
|
||||||
|
case '4':
|
||||||
|
case '<': *width = s_Hz(6000); break;
|
||||||
|
default :
|
||||||
|
rig_debug(RIG_DEBUG_ERR,
|
||||||
|
"drake_get_mode: unsupported width %c\n",
|
||||||
|
cwidth);
|
||||||
|
*width = RIG_PASSBAND_NORMAL;
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cwidth=='0'||cwidth=='1'||cwidth=='2'||cwidth=='3'||cwidth=='4'){
|
||||||
|
switch(cmode){
|
||||||
|
case '0':
|
||||||
|
case '4':
|
||||||
|
case '8': *mode = RIG_MODE_LSB; break;
|
||||||
|
case '1':
|
||||||
|
case '5':
|
||||||
|
case '9': *mode = RIG_MODE_RTTY; break;
|
||||||
|
case '2':
|
||||||
|
case '6':
|
||||||
|
case ':': *mode = RIG_MODE_FM; *width = s_Hz(12000); break;
|
||||||
|
default :
|
||||||
|
rig_debug(RIG_DEBUG_ERR,
|
||||||
|
"drake_get_mode: unsupported mode %c\n",
|
||||||
|
cmode);
|
||||||
|
*mode = RIG_MODE_NONE;
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch(cmode){
|
||||||
|
case '0':
|
||||||
|
case '4':
|
||||||
|
case '8': *mode = RIG_MODE_USB; break;
|
||||||
|
case '1':
|
||||||
|
case '5':
|
||||||
|
case '9': *mode = RIG_MODE_CW; break;
|
||||||
|
case '2':
|
||||||
|
case '6':
|
||||||
|
case ':': *mode = RIG_MODE_AM; break;
|
||||||
|
default :
|
||||||
|
rig_debug(RIG_DEBUG_ERR,
|
||||||
|
"drake_get_mode: unsupported mode %c\n",
|
||||||
|
cmode);
|
||||||
|
*mode = RIG_MODE_NONE;
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*FIXME USB/LSB synch in R8B*/
|
||||||
|
if (csynch=='4'||csynch=='5'||csynch=='6'||csynch=='7'||
|
||||||
|
csynch=='<'||csynch=='='||csynch=='>'||csynch=='?')
|
||||||
|
*mode = RIG_MODE_AMS;
|
||||||
|
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* drake_set_ant
|
* drake_set_ant
|
||||||
* Assumes rig!=NULL
|
* Assumes rig!=NULL
|
||||||
|
@ -231,6 +406,49 @@ int drake_set_ant(RIG *rig, vfo_t vfo, ant_t ant)
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* drake_get_ant
|
||||||
|
* Assumes rig!=NULL
|
||||||
|
*/
|
||||||
|
int drake_get_ant(RIG *rig, vfo_t vfo, ant_t *ant)
|
||||||
|
{
|
||||||
|
int mdbuf_len, retval;
|
||||||
|
char mdbuf[BUFSZ];
|
||||||
|
char cant;
|
||||||
|
|
||||||
|
retval = drake_transaction (rig, "RM" EOM, 3, mdbuf, &mdbuf_len);
|
||||||
|
if (retval != RIG_OK)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
if (mdbuf_len != 8) {
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"drake_get_ant: wrong answer %s, "
|
||||||
|
"len=%d\n", mdbuf, mdbuf_len);
|
||||||
|
return -RIG_ERJCTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
cant = mdbuf[3];
|
||||||
|
|
||||||
|
switch(cant){
|
||||||
|
case '0':
|
||||||
|
case '1':
|
||||||
|
case '2': *ant = RIG_ANT_1; break;
|
||||||
|
case '4':
|
||||||
|
case '5':
|
||||||
|
case '6': *ant = RIG_ANT_3; break;
|
||||||
|
case '8':
|
||||||
|
case '9':
|
||||||
|
case ':': *ant = RIG_ANT_2; break;
|
||||||
|
default :
|
||||||
|
rig_debug(RIG_DEBUG_ERR,
|
||||||
|
"drake_get_ant: unsupported antenna %c\n",
|
||||||
|
cant);
|
||||||
|
*ant = RIG_ANT_NONE;
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* drake_set_mem
|
* drake_set_mem
|
||||||
* Assumes rig!=NULL
|
* Assumes rig!=NULL
|
||||||
|
@ -244,6 +462,35 @@ int drake_set_mem(RIG *rig, vfo_t vfo, int ch)
|
||||||
return RIG_OK;
|
return RIG_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* drake_get_mem
|
||||||
|
* Assumes rig!=NULL
|
||||||
|
*/
|
||||||
|
int drake_get_mem(RIG *rig, vfo_t vfo, int *ch)
|
||||||
|
{
|
||||||
|
int mdbuf_len, retval;
|
||||||
|
char mdbuf[BUFSZ];
|
||||||
|
int chan;
|
||||||
|
|
||||||
|
retval = drake_transaction (rig, "RC" EOM, 3, mdbuf, &mdbuf_len);
|
||||||
|
if (retval != RIG_OK)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
if (mdbuf_len != 6) {
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"drake_get_mem: wrong answer %s, "
|
||||||
|
"len=%d\n", mdbuf, mdbuf_len);
|
||||||
|
return -RIG_ERJCTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
mdbuf[4] = '\0';
|
||||||
|
|
||||||
|
/* extract channel no */
|
||||||
|
sscanf(mdbuf+1, "%03d", &chan);
|
||||||
|
*ch = chan;
|
||||||
|
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* drake_vfo_op
|
* drake_vfo_op
|
||||||
* Assumes rig!=NULL
|
* Assumes rig!=NULL
|
||||||
|
@ -265,7 +512,7 @@ int drake_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
|
||||||
len = sprintf(buf,"A E B" EOM);
|
len = sprintf(buf,"A E B" EOM);
|
||||||
break;
|
break;
|
||||||
case RIG_OP_TO_VFO:
|
case RIG_OP_TO_VFO:
|
||||||
len = sprintf(buf,"C%03d", priv->curr_ch);
|
len = sprintf(buf,"C%03d" EOM, priv->curr_ch);
|
||||||
break;
|
break;
|
||||||
case RIG_OP_MCL:
|
case RIG_OP_MCL:
|
||||||
len = sprintf(buf,"EC%03d" EOM, priv->curr_ch);
|
len = sprintf(buf,"EC%03d" EOM, priv->curr_ch);
|
||||||
|
@ -311,6 +558,44 @@ int drake_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* drake_get_func
|
||||||
|
* Assumes rig!=NULL
|
||||||
|
*/
|
||||||
|
int drake_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
||||||
|
{
|
||||||
|
int mdbuf_len, retval;
|
||||||
|
char mdbuf[BUFSZ];
|
||||||
|
char mc;
|
||||||
|
|
||||||
|
retval = drake_transaction (rig, "RM" EOM, 3, mdbuf, &mdbuf_len);
|
||||||
|
if (retval != RIG_OK)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
if (mdbuf_len != 8) {
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"drake_get_func: wrong answer %s, "
|
||||||
|
"len=%d\n", mdbuf, mdbuf_len);
|
||||||
|
return -RIG_ERJCTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(func) {
|
||||||
|
case RIG_FUNC_MN:
|
||||||
|
mc = mdbuf[2];
|
||||||
|
*status = (mc=='2'||mc=='3'||mc=='6'||mc=='7'||mc==':'||mc==';'||mc=='>'||mc=='?');
|
||||||
|
break;
|
||||||
|
case RIG_FUNC_NB:
|
||||||
|
/* TODO: NB narrow */
|
||||||
|
mc = mdbuf[1];
|
||||||
|
*status = ((mc!='0')&&(mc!='1')&&(mc!='2')&&(mc!='3'));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"Unsupported get func %d\n",func);
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* drake_set_level
|
* drake_set_level
|
||||||
* Assumes rig!=NULL
|
* Assumes rig!=NULL
|
||||||
|
@ -341,6 +626,83 @@ int drake_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* drake_get_level
|
||||||
|
* Assumes rig!=NULL
|
||||||
|
*/
|
||||||
|
int drake_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
|
{
|
||||||
|
int lvl_len, retval;
|
||||||
|
char lvlbuf[BUFSZ];
|
||||||
|
char mc;
|
||||||
|
|
||||||
|
if (level != RIG_LEVEL_RAWSTR) {
|
||||||
|
retval = drake_transaction (rig, "RM" EOM, 3, lvlbuf, &lvl_len);
|
||||||
|
if (retval != RIG_OK)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
if (lvl_len != 8) {
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"drake_get_level: wrong answer %s, "
|
||||||
|
"len=%d\n", lvlbuf, lvl_len);
|
||||||
|
return -RIG_ERJCTED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(level) {
|
||||||
|
case RIG_LEVEL_RAWSTR:
|
||||||
|
retval = drake_transaction (rig, "RSS" EOM, 4, lvlbuf, &lvl_len);
|
||||||
|
if (retval != RIG_OK)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
if (lvl_len != 5) {
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"drake_get_level: wrong answer"
|
||||||
|
"len=%d\n", lvl_len);
|
||||||
|
return -RIG_ERJCTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
lvlbuf[3] = '\0';
|
||||||
|
val->i = strtol(lvlbuf+1, (char **)NULL, 16);
|
||||||
|
break;
|
||||||
|
case RIG_LEVEL_PREAMP:
|
||||||
|
mc = lvlbuf[2];
|
||||||
|
if (mc=='8'||mc=='9'||mc==':'||mc==';')
|
||||||
|
val->i = 10;
|
||||||
|
else
|
||||||
|
val->i = 0;
|
||||||
|
break;
|
||||||
|
case RIG_LEVEL_ATT:
|
||||||
|
mc = lvlbuf[2];
|
||||||
|
if (mc=='4'||mc=='5'||mc=='6'||mc=='7')
|
||||||
|
val->i = 10;
|
||||||
|
else
|
||||||
|
val->i = 0;
|
||||||
|
break;
|
||||||
|
case RIG_LEVEL_AGC:
|
||||||
|
mc = lvlbuf[1];
|
||||||
|
switch(mc){
|
||||||
|
case '0':
|
||||||
|
case '4':
|
||||||
|
case '8':
|
||||||
|
case '<': val->i = RIG_AGC_OFF; break;
|
||||||
|
case '2':
|
||||||
|
case '6':
|
||||||
|
case ':':
|
||||||
|
case '>': val->i = RIG_AGC_FAST; break;
|
||||||
|
case '3':
|
||||||
|
case '7':
|
||||||
|
case ';':
|
||||||
|
case '?': val->i = RIG_AGC_SLOW; break;
|
||||||
|
default : val->i = RIG_AGC_FAST;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"Unsupported get_level %d\n",level);
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
int drake_set_powerstat (RIG * rig, powerstat_t status)
|
int drake_set_powerstat (RIG * rig, powerstat_t status)
|
||||||
{
|
{
|
||||||
unsigned char buf[16], ackbuf[16];
|
unsigned char buf[16], ackbuf[16];
|
||||||
|
@ -353,6 +715,20 @@ int drake_set_powerstat (RIG * rig, powerstat_t status)
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int drake_get_powerstat (RIG * rig, powerstat_t *status)
|
||||||
|
{
|
||||||
|
int mdlen, retval;
|
||||||
|
char mdbuf[BUFSZ];
|
||||||
|
|
||||||
|
retval = drake_transaction (rig, "RM" EOM, 3, mdbuf, &mdlen);
|
||||||
|
if (retval != RIG_OK)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
*status = (mdlen == 8);
|
||||||
|
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -373,6 +749,7 @@ const char *drake_get_info(RIG *rig)
|
||||||
return idbuf;
|
return idbuf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* initrigs_drake is called by rig_backend_load
|
* initrigs_drake is called by rig_backend_load
|
||||||
*/
|
*/
|
||||||
|
@ -441,4 +818,3 @@ DECLARE_PROBERIG_BACKEND(drake)
|
||||||
return RIG_MODEL_NONE;
|
return RIG_MODEL_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Hamlib Drake backend - main header
|
* Hamlib Drake backend - main header
|
||||||
* Copyright (c) 2001-2004 by Stephane Fillod
|
* Copyright (c) 2001-2004 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: drake.h,v 1.5 2004-03-10 23:33:48 fillods Exp $
|
* $Id: drake.h,v 1.6 2004-06-04 21:48:05 fillods 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
|
||||||
|
@ -30,16 +30,24 @@ struct drake_priv_data {
|
||||||
};
|
};
|
||||||
|
|
||||||
int drake_set_freq(RIG *rig, vfo_t vfo, freq_t freq);
|
int drake_set_freq(RIG *rig, vfo_t vfo, freq_t freq);
|
||||||
|
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);
|
||||||
|
int drake_get_vfo(RIG *rig, vfo_t *vfo);
|
||||||
int drake_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
|
int drake_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
|
||||||
|
int drake_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width);
|
||||||
int drake_init(RIG *rig);
|
int drake_init(RIG *rig);
|
||||||
int drake_cleanup(RIG *rig);
|
int drake_cleanup(RIG *rig);
|
||||||
int drake_set_ant(RIG *rig, vfo_t vfo, ant_t ant);
|
int drake_set_ant(RIG *rig, vfo_t vfo, ant_t ant);
|
||||||
|
int drake_get_ant(RIG *rig, vfo_t vfo, ant_t *ant);
|
||||||
int drake_set_mem(RIG *rig, vfo_t vfo, int ch);
|
int drake_set_mem(RIG *rig, vfo_t vfo, int ch);
|
||||||
|
int drake_get_mem(RIG *rig, vfo_t vfo, int *ch);
|
||||||
int drake_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op);
|
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);
|
||||||
|
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);
|
||||||
|
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);
|
||||||
|
int drake_get_powerstat (RIG * rig, powerstat_t *status);
|
||||||
const char *drake_get_info(RIG *rig);
|
const char *drake_get_info(RIG *rig);
|
||||||
|
|
||||||
extern const struct rig_caps r8a_caps;
|
extern const struct rig_caps r8a_caps;
|
||||||
|
|
30
drake/r8a.c
30
drake/r8a.c
|
@ -1,8 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* Hamlib Drake backend - R-8A description
|
* Hamlib Drake backend - R-8A description
|
||||||
* Copyright (c) 2001-2003 by Stephane Fillod
|
* Copyright (c) 2001-2004 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: r8a.c,v 1.1 2004-03-10 23:32:01 fillods Exp $
|
* $Id: r8a.c,v 1.2 2004-06-04 21:48:05 fillods 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
|
||||||
|
@ -34,9 +34,9 @@
|
||||||
|
|
||||||
#define R8A_FUNC (RIG_FUNC_MN|RIG_FUNC_LOCK|RIG_FUNC_NB)
|
#define R8A_FUNC (RIG_FUNC_MN|RIG_FUNC_LOCK|RIG_FUNC_NB)
|
||||||
|
|
||||||
#define R8A_LEVEL_ALL (RIG_LEVEL_PREAMP|RIG_LEVEL_ATT|RIG_LEVEL_AGC)
|
#define R8A_LEVEL_ALL (RIG_LEVEL_PREAMP|RIG_LEVEL_ATT|RIG_LEVEL_AGC|RIG_LEVEL_RAWSTR)
|
||||||
|
|
||||||
#define R8A_PARM_ALL (RIG_PARM_NONE)
|
#define R8A_PARM_ALL (RIG_PARM_TIME)
|
||||||
|
|
||||||
#define R8A_VFO (RIG_VFO_A|RIG_VFO_B)
|
#define R8A_VFO (RIG_VFO_A|RIG_VFO_B)
|
||||||
|
|
||||||
|
@ -55,9 +55,9 @@ const struct rig_caps r8a_caps = {
|
||||||
.rig_model = RIG_MODEL_DKR8A,
|
.rig_model = RIG_MODEL_DKR8A,
|
||||||
.model_name = "R-8A",
|
.model_name = "R-8A",
|
||||||
.mfg_name = "Drake",
|
.mfg_name = "Drake",
|
||||||
.version = "0.2",
|
.version = "0.3",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_UNTESTED, /* and only basic support */
|
.status = RIG_STATUS_BETA,
|
||||||
.rig_type = RIG_TYPE_RECEIVER,
|
.rig_type = RIG_TYPE_RECEIVER,
|
||||||
.ptt_type = RIG_PTT_NONE,
|
.ptt_type = RIG_PTT_NONE,
|
||||||
.dcd_type = RIG_DCD_NONE,
|
.dcd_type = RIG_DCD_NONE,
|
||||||
|
@ -95,7 +95,7 @@ const struct rig_caps r8a_caps = {
|
||||||
.vfo_ops = R8A_VFO_OPS,
|
.vfo_ops = R8A_VFO_OPS,
|
||||||
|
|
||||||
.chan_list = {
|
.chan_list = {
|
||||||
{ 0, 999, RIG_MTYPE_MEM },
|
{ 0, 439, RIG_MTYPE_MEM },
|
||||||
RIG_CHAN_END
|
RIG_CHAN_END
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -133,16 +133,22 @@ const struct rig_caps r8a_caps = {
|
||||||
.rig_cleanup = drake_cleanup,
|
.rig_cleanup = drake_cleanup,
|
||||||
|
|
||||||
.set_freq = drake_set_freq,
|
.set_freq = drake_set_freq,
|
||||||
|
.get_freq = drake_get_freq,
|
||||||
.set_vfo = drake_set_vfo,
|
.set_vfo = drake_set_vfo,
|
||||||
|
.get_vfo = drake_get_vfo,
|
||||||
.set_mode = drake_set_mode,
|
.set_mode = drake_set_mode,
|
||||||
|
.get_mode = drake_get_mode,
|
||||||
.set_ant = drake_set_ant,
|
|
||||||
.set_mem = drake_set_mem,
|
|
||||||
.vfo_op = drake_vfo_op,
|
|
||||||
.set_func = drake_set_func,
|
.set_func = drake_set_func,
|
||||||
|
.get_func = drake_get_func,
|
||||||
.set_level = drake_set_level,
|
.set_level = drake_set_level,
|
||||||
|
.get_level = drake_get_level,
|
||||||
|
.set_ant = drake_set_ant,
|
||||||
|
.get_ant = drake_get_ant,
|
||||||
|
.set_mem = drake_set_mem,
|
||||||
|
.get_mem = drake_get_mem,
|
||||||
|
.vfo_op = drake_vfo_op,
|
||||||
.set_powerstat = drake_set_powerstat,
|
.set_powerstat = drake_set_powerstat,
|
||||||
|
.get_powerstat = drake_get_powerstat,
|
||||||
.get_info = drake_get_info,
|
.get_info = drake_get_info,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
27
drake/r8b.c
27
drake/r8b.c
|
@ -1,8 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* Hamlib Drake backend - R-8B description
|
* Hamlib Drake backend - R-8B description
|
||||||
* Copyright (c) 2001-2003 by Stephane Fillod
|
* Copyright (c) 2001-2004 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: r8b.c,v 1.5 2004-03-10 23:33:48 fillods Exp $
|
* $Id: r8b.c,v 1.6 2004-06-04 21:48:05 fillods 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
|
||||||
|
@ -34,9 +34,9 @@
|
||||||
|
|
||||||
#define R8B_FUNC (RIG_FUNC_MN|RIG_FUNC_LOCK|RIG_FUNC_NB)
|
#define R8B_FUNC (RIG_FUNC_MN|RIG_FUNC_LOCK|RIG_FUNC_NB)
|
||||||
|
|
||||||
#define R8B_LEVEL_ALL (RIG_LEVEL_PREAMP|RIG_LEVEL_ATT|RIG_LEVEL_AGC)
|
#define R8B_LEVEL_ALL (RIG_LEVEL_PREAMP|RIG_LEVEL_ATT|RIG_LEVEL_AGC|RIG_LEVEL_RAWSTR)
|
||||||
|
|
||||||
#define R8B_PARM_ALL (RIG_PARM_NONE)
|
#define R8B_PARM_ALL (RIG_PARM_TIME)
|
||||||
|
|
||||||
#define R8B_VFO (RIG_VFO_A|RIG_VFO_B)
|
#define R8B_VFO (RIG_VFO_A|RIG_VFO_B)
|
||||||
|
|
||||||
|
@ -56,9 +56,9 @@ const struct rig_caps r8b_caps = {
|
||||||
.rig_model = RIG_MODEL_DKR8B,
|
.rig_model = RIG_MODEL_DKR8B,
|
||||||
.model_name = "R-8B",
|
.model_name = "R-8B",
|
||||||
.mfg_name = "Drake",
|
.mfg_name = "Drake",
|
||||||
.version = "0.2",
|
.version = "0.3",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_UNTESTED, /* and only basic support */
|
.status = RIG_STATUS_UNTESTED,
|
||||||
.rig_type = RIG_TYPE_RECEIVER,
|
.rig_type = RIG_TYPE_RECEIVER,
|
||||||
.ptt_type = RIG_PTT_NONE,
|
.ptt_type = RIG_PTT_NONE,
|
||||||
.dcd_type = RIG_DCD_NONE,
|
.dcd_type = RIG_DCD_NONE,
|
||||||
|
@ -134,15 +134,22 @@ const struct rig_caps r8b_caps = {
|
||||||
.rig_cleanup = drake_cleanup,
|
.rig_cleanup = drake_cleanup,
|
||||||
|
|
||||||
.set_freq = drake_set_freq,
|
.set_freq = drake_set_freq,
|
||||||
|
.get_freq = drake_get_freq,
|
||||||
.set_vfo = drake_set_vfo,
|
.set_vfo = drake_set_vfo,
|
||||||
|
.get_vfo = drake_get_vfo,
|
||||||
.set_mode = drake_set_mode,
|
.set_mode = drake_set_mode,
|
||||||
|
.get_mode = drake_get_mode,
|
||||||
.set_mem = drake_set_mem,
|
|
||||||
.vfo_op = drake_vfo_op,
|
|
||||||
.set_func = drake_set_func,
|
.set_func = drake_set_func,
|
||||||
|
.get_func = drake_get_func,
|
||||||
.set_level = drake_set_level,
|
.set_level = drake_set_level,
|
||||||
|
.get_level = drake_get_level,
|
||||||
|
.set_ant = drake_set_ant,
|
||||||
|
.get_ant = drake_get_ant,
|
||||||
|
.set_mem = drake_set_mem,
|
||||||
|
.get_mem = drake_get_mem,
|
||||||
|
.vfo_op = drake_vfo_op,
|
||||||
.set_powerstat = drake_set_powerstat,
|
.set_powerstat = drake_set_powerstat,
|
||||||
|
.get_powerstat = drake_get_powerstat,
|
||||||
.get_info = drake_get_info,
|
.get_info = drake_get_info,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
65
jrc/jrc.c
65
jrc/jrc.c
|
@ -2,7 +2,7 @@
|
||||||
* Hamlib JRC backend - main file
|
* Hamlib JRC backend - main file
|
||||||
* Copyright (c) 2001-2004 by Stephane Fillod
|
* Copyright (c) 2001-2004 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: jrc.c,v 1.12 2004-05-19 08:57:45 fillods Exp $
|
* $Id: jrc.c,v 1.13 2004-06-04 21:48:03 fillods 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
|
||||||
|
@ -535,12 +535,10 @@ int jrc_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
return -RIG_ENIMPL; /* get_dcd ? */
|
return -RIG_ENIMPL; /* get_dcd ? */
|
||||||
|
|
||||||
case RIG_LEVEL_ATT:
|
case RIG_LEVEL_ATT:
|
||||||
//retval = jrc_transaction (rig, "A" EOM, 2, lvlbuf, &lvl_len);
|
|
||||||
retval = jrc_transaction (rig, "I" EOM, 2, lvlbuf, &lvl_len);
|
retval = jrc_transaction (rig, "I" EOM, 2, lvlbuf, &lvl_len);
|
||||||
if (retval != RIG_OK)
|
if (retval != RIG_OK)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
//if (lvl_len != 3) {
|
|
||||||
if (lvlbuf[0] != 'I' || lvl_len != priv->info_len) {
|
if (lvlbuf[0] != 'I' || lvl_len != priv->info_len) {
|
||||||
rig_debug(RIG_DEBUG_ERR,"jrc_get_level: wrong answer"
|
rig_debug(RIG_DEBUG_ERR,"jrc_get_level: wrong answer"
|
||||||
"len=%d\n", lvl_len);
|
"len=%d\n", lvl_len);
|
||||||
|
@ -550,6 +548,32 @@ int jrc_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
val->i = lvlbuf[1] == '1' ? 20 : 0;
|
val->i = lvlbuf[1] == '1' ? 20 : 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case RIG_LEVEL_AGC:
|
||||||
|
retval = jrc_transaction (rig, "I" EOM, 2, lvlbuf, &lvl_len);
|
||||||
|
if (retval != RIG_OK)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
if (lvlbuf[0] != 'I' || lvl_len != priv->info_len) {
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"jrc_get_level: wrong answer"
|
||||||
|
"len=%d\n", lvl_len);
|
||||||
|
return -RIG_ERJCTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
lvlbuf[priv->info_len-1] = '\0';
|
||||||
|
|
||||||
|
if (priv->info_len==14) {
|
||||||
|
switch (lvlbuf[priv->info_len-2]){
|
||||||
|
case '0' : val->i = RIG_AGC_SLOW; break;
|
||||||
|
case '1' : val->i = RIG_AGC_FAST; break;
|
||||||
|
case '2' : val->i = RIG_AGC_OFF; break;
|
||||||
|
default : val->i = RIG_AGC_FAST;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
val->i = atoi(lvlbuf+priv->info_len-4);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case RIG_LEVEL_RF:
|
case RIG_LEVEL_RF:
|
||||||
retval = jrc_transaction (rig, "HH" EOM, 3, lvlbuf, &lvl_len);
|
retval = jrc_transaction (rig, "HH" EOM, 3, lvlbuf, &lvl_len);
|
||||||
if (retval != RIG_OK)
|
if (retval != RIG_OK)
|
||||||
|
@ -684,7 +708,6 @@ int jrc_set_parm(RIG *rig, setting_t parm, value_t val)
|
||||||
|
|
||||||
case RIG_PARM_BEEP:
|
case RIG_PARM_BEEP:
|
||||||
|
|
||||||
//cmd_len = sprintf(cmdbuf, "U%03d" EOM, val.i?101:100);
|
|
||||||
cmd_len = sprintf(cmdbuf, "U%0*d" EOM, priv->beep_len, priv->beep + val.i?1:0);
|
cmd_len = sprintf(cmdbuf, "U%0*d" EOM, priv->beep_len, priv->beep + val.i?1:0);
|
||||||
|
|
||||||
return jrc_transaction (rig, cmdbuf, cmd_len, NULL, NULL);
|
return jrc_transaction (rig, cmdbuf, cmd_len, NULL, NULL);
|
||||||
|
@ -710,8 +733,11 @@ int jrc_set_parm(RIG *rig, setting_t parm, value_t val)
|
||||||
*/
|
*/
|
||||||
int jrc_get_parm(RIG *rig, setting_t parm, value_t *val)
|
int jrc_get_parm(RIG *rig, setting_t parm, value_t *val)
|
||||||
{
|
{
|
||||||
|
struct jrc_priv_caps *priv = (struct jrc_priv_caps*)rig->caps->priv;
|
||||||
int retval, lvl_len, i;
|
int retval, lvl_len, i;
|
||||||
char lvlbuf[BUFSZ];
|
char lvlbuf[BUFSZ];
|
||||||
|
char cmdbuf[BUFSZ];
|
||||||
|
int cmd_len;
|
||||||
|
|
||||||
/* Optimize:
|
/* Optimize:
|
||||||
* sort the switch cases with the most frequent first
|
* sort the switch cases with the most frequent first
|
||||||
|
@ -739,17 +765,18 @@ int jrc_get_parm(RIG *rig, setting_t parm, value_t *val)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_PARM_BEEP:
|
case RIG_PARM_BEEP:
|
||||||
retval = jrc_transaction (rig, "U9" EOM, 3, lvlbuf, &lvl_len);
|
cmd_len = sprintf(cmdbuf, "U%d" EOM, priv->beep/10);
|
||||||
|
retval = jrc_transaction (rig, cmdbuf, cmd_len, lvlbuf, &lvl_len);
|
||||||
if (retval != RIG_OK)
|
if (retval != RIG_OK)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
if (lvl_len != 4) {
|
if (lvl_len != priv->beep_len+2) {
|
||||||
rig_debug(RIG_DEBUG_ERR,"jrc_get_parm: wrong answer"
|
rig_debug(RIG_DEBUG_ERR,"jrc_get_parm: wrong answer"
|
||||||
"len=%d\n", lvl_len);
|
"len=%d\n", lvl_len);
|
||||||
return -RIG_ERJCTED;
|
return -RIG_ERJCTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
val->i = lvlbuf[2] == 0 ? 0 : 1;
|
val->i = lvlbuf[priv->beep_len] == 0 ? 0 : 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -811,6 +838,30 @@ int jrc_set_powerstat(RIG *rig, powerstat_t status)
|
||||||
return jrc_transaction (rig, pwrbuf, pwr_len, NULL, NULL);
|
return jrc_transaction (rig, pwrbuf, pwr_len, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* jrc_get_powerstat
|
||||||
|
* Assumes rig!=NULL
|
||||||
|
*/
|
||||||
|
int jrc_get_powerstat(RIG *rig, powerstat_t *status)
|
||||||
|
//powerstat_t jrc_get_powerstat(RIG *rig)
|
||||||
|
{
|
||||||
|
char pwrbuf[BUFSZ];
|
||||||
|
int pwr_len, retval;
|
||||||
|
|
||||||
|
retval = jrc_transaction (rig, "T" EOM, 2, pwrbuf, &pwr_len);
|
||||||
|
if (retval != RIG_OK)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
if (pwr_len != 3) {
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"jrc_get_powerstat: wrong answer %s, "
|
||||||
|
"len=%d\n", pwrbuf, pwr_len);
|
||||||
|
return -RIG_ERJCTED;
|
||||||
|
}
|
||||||
|
*status = pwrbuf[1] == '0' ? RIG_POWER_OFF : RIG_POWER_ON;
|
||||||
|
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* jrc_reset
|
* jrc_reset
|
||||||
* Assumes rig!=NULL
|
* Assumes rig!=NULL
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Hamlib JRC backend - main header
|
* Hamlib JRC backend - main header
|
||||||
* Copyright (c) 2001-2004 by Stephane Fillod
|
* Copyright (c) 2001-2004 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: jrc.h,v 1.7 2004-05-19 08:57:50 fillods Exp $
|
* $Id: jrc.h,v 1.8 2004-06-04 21:48:05 fillods 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
|
||||||
|
@ -53,6 +53,7 @@ int jrc_set_trn(RIG *rig, int trn);
|
||||||
int jrc_set_mem(RIG *rig, vfo_t vfo, int ch);
|
int jrc_set_mem(RIG *rig, vfo_t vfo, int ch);
|
||||||
int jrc_get_mem(RIG *rig, vfo_t vfo, int *ch);
|
int jrc_get_mem(RIG *rig, vfo_t vfo, int *ch);
|
||||||
int jrc_set_powerstat(RIG *rig, powerstat_t status);
|
int jrc_set_powerstat(RIG *rig, powerstat_t status);
|
||||||
|
int jrc_get_powerstat(RIG *rig, powerstat_t *status);
|
||||||
int jrc_reset(RIG *rig, reset_t reset);
|
int jrc_reset(RIG *rig, reset_t reset);
|
||||||
int jrc_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op);
|
int jrc_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op);
|
||||||
int jrc_scan(RIG *rig, vfo_t vfo, scan_t scan, int ch);
|
int jrc_scan(RIG *rig, vfo_t vfo, scan_t scan, int ch);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Hamlib JRC backend - NRD-535 DSP description
|
* Hamlib JRC backend - NRD-535 DSP description
|
||||||
* Copyright (c) 2001-2004 by Stephane Fillod
|
* Copyright (c) 2001-2004 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: nrd535.c,v 1.3 2004-05-19 08:57:50 fillods Exp $
|
* $Id: nrd535.c,v 1.4 2004-06-04 21:48:05 fillods 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
|
||||||
|
@ -91,7 +91,7 @@ const struct rig_caps nrd535_caps = {
|
||||||
.mfg_name = "JRC",
|
.mfg_name = "JRC",
|
||||||
.version = "0.2",
|
.version = "0.2",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_ALPHA,
|
.status = RIG_STATUS_BETA,
|
||||||
.rig_type = RIG_TYPE_RECEIVER,
|
.rig_type = RIG_TYPE_RECEIVER,
|
||||||
.ptt_type = RIG_PTT_NONE,
|
.ptt_type = RIG_PTT_NONE,
|
||||||
.dcd_type = RIG_DCD_NONE,
|
.dcd_type = RIG_DCD_NONE,
|
||||||
|
@ -115,6 +115,9 @@ const struct rig_caps nrd535_caps = {
|
||||||
.has_set_parm = RIG_PARM_SET(NRD535_PARM),
|
.has_set_parm = RIG_PARM_SET(NRD535_PARM),
|
||||||
.level_gran = {
|
.level_gran = {
|
||||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||||
|
[LVL_ATT] = { .min = { .i = 0 }, .max = { .i = 20 } },
|
||||||
|
[LVL_IF] = { .min = { .i = -2000 }, .max = { .i = 2000 } },
|
||||||
|
[LVL_CWPITCH] = { .min = { .i = -5000 }, .max = { .i = 5000 } },
|
||||||
},
|
},
|
||||||
.parm_gran = {},
|
.parm_gran = {},
|
||||||
.ctcss_list = NULL,
|
.ctcss_list = NULL,
|
||||||
|
@ -184,6 +187,7 @@ const struct rig_caps nrd535_caps = {
|
||||||
.vfo_op = jrc_vfo_op,
|
.vfo_op = jrc_vfo_op,
|
||||||
.scan = jrc_scan,
|
.scan = jrc_scan,
|
||||||
.set_powerstat = jrc_set_powerstat,
|
.set_powerstat = jrc_set_powerstat,
|
||||||
|
.get_powerstat = jrc_get_powerstat,
|
||||||
.decode_event = jrc_decode_event,
|
.decode_event = jrc_decode_event,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Hamlib JRC backend - NRD-545 DSP description
|
* Hamlib JRC backend - NRD-545 DSP description
|
||||||
* Copyright (c) 2001-2004 by Stephane Fillod
|
* Copyright (c) 2001-2004 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: nrd545.c,v 1.8 2004-05-19 08:57:50 fillods Exp $
|
* $Id: nrd545.c,v 1.9 2004-06-04 21:48:05 fillods 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
|
||||||
|
@ -83,7 +83,7 @@ const struct rig_caps nrd545_caps = {
|
||||||
.mfg_name = "JRC",
|
.mfg_name = "JRC",
|
||||||
.version = "0.2",
|
.version = "0.2",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_UNTESTED,
|
.status = RIG_STATUS_ALPHA,
|
||||||
.rig_type = RIG_TYPE_RECEIVER,
|
.rig_type = RIG_TYPE_RECEIVER,
|
||||||
.ptt_type = RIG_PTT_NONE,
|
.ptt_type = RIG_PTT_NONE,
|
||||||
.dcd_type = RIG_DCD_NONE,
|
.dcd_type = RIG_DCD_NONE,
|
||||||
|
@ -183,6 +183,7 @@ const struct rig_caps nrd545_caps = {
|
||||||
.vfo_op = jrc_vfo_op,
|
.vfo_op = jrc_vfo_op,
|
||||||
.scan = jrc_scan,
|
.scan = jrc_scan,
|
||||||
.set_powerstat = jrc_set_powerstat,
|
.set_powerstat = jrc_set_powerstat,
|
||||||
|
.get_powerstat = jrc_get_powerstat,
|
||||||
.decode_event = jrc_decode_event,
|
.decode_event = jrc_decode_event,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Ładowanie…
Reference in New Issue