kopia lustrzana https://github.com/Hamlib/Hamlib
* jrc_transaction made static
* do not mask RIG_ETIMEOUT in jrc_transaction * refactor jrc2rig_mode & rig2jrc_mode * turned comments into #if 0 / #endif * added support for RIG_OP_UP/RIG_OP_DOWN git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2013 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.5
rodzic
2f18531e26
commit
a5f46d23d9
332
jrc/jrc.c
332
jrc/jrc.c
|
@ -2,7 +2,7 @@
|
|||
* Hamlib JRC backend - main file
|
||||
* Copyright (c) 2001-2005 by Stephane Fillod
|
||||
*
|
||||
* $Id: jrc.c,v 1.23 2005-04-13 18:20:37 fillods Exp $
|
||||
* $Id: jrc.c,v 1.24 2005-04-13 22:31:46 fillods 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
|
||||
|
@ -68,7 +68,7 @@
|
|||
* Otherwise, you'll get a nice seg fault. You've been warned!
|
||||
* TODO: error case handling
|
||||
*/
|
||||
int jrc_transaction(RIG *rig, const char *cmd, int cmd_len, char *data, int *data_len)
|
||||
static int jrc_transaction(RIG *rig, const char *cmd, int cmd_len, char *data, int *data_len)
|
||||
{
|
||||
int retval;
|
||||
struct rig_state *rs;
|
||||
|
@ -79,15 +79,12 @@ int jrc_transaction(RIG *rig, const char *cmd, int cmd_len, char *data, int *dat
|
|||
|
||||
retval = write_block(&rs->rigport, cmd, cmd_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
return retval;
|
||||
|
||||
/* no data expected, TODO: flush input? */
|
||||
if (!data || !data_len)
|
||||
return 0;
|
||||
return 0;
|
||||
|
||||
retval = read_string(&rs->rigport, data, BUFSZ, EOM, strlen(EOM));
|
||||
if (retval == -RIG_ETIMEOUT)
|
||||
retval = 0;
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
*data_len = retval;
|
||||
|
@ -95,6 +92,98 @@ int jrc_transaction(RIG *rig, const char *cmd, int cmd_len, char *data, int *dat
|
|||
return RIG_OK;
|
||||
}
|
||||
|
||||
static int jrc2rig_mode(RIG *rig, char jmode, char jwidth,
|
||||
rmode_t *mode, pbwidth_t *width)
|
||||
{
|
||||
switch (jmode) {
|
||||
case MD_RTTY: *mode = RIG_MODE_RTTY; break;
|
||||
case MD_CW: *mode = RIG_MODE_CW; break;
|
||||
case MD_USB: *mode = RIG_MODE_USB; break;
|
||||
case MD_LSB: *mode = RIG_MODE_LSB; break;
|
||||
case MD_AM: *mode = RIG_MODE_AM; break;
|
||||
case MD_FM: *mode = RIG_MODE_FM; break;
|
||||
case MD_AMS: if (rig->caps->rig_model == RIG_MODEL_NRD535) {
|
||||
*mode = RIG_MODE_FAX;
|
||||
} else {
|
||||
*mode = RIG_MODE_AMS;
|
||||
}
|
||||
break;
|
||||
case MD_ECSS_USB: *mode = RIG_MODE_ECSSUSB; break;
|
||||
case MD_ECSS_LSB: *mode = RIG_MODE_ECSSLSB; break;
|
||||
case MD_WFM: *mode = RIG_MODE_WFM; break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"%s: unsupported mode %c\n",
|
||||
__FUNCTION__, jmode);
|
||||
*mode = RIG_MODE_NONE;
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* determine passband
|
||||
*/
|
||||
switch (jwidth) {
|
||||
case '0':
|
||||
*width = s_Hz(6000); //wide
|
||||
break;
|
||||
case '1':
|
||||
*width = s_Hz(2000); //inter
|
||||
break;
|
||||
case '2':
|
||||
*width = s_Hz(1000); //narr
|
||||
break;
|
||||
case '3':
|
||||
*width = s_Hz(12000); //aux - nrd535 only
|
||||
break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"%s: unsupported width %c\n",
|
||||
__FUNCTION__, jwidth);
|
||||
*width = RIG_PASSBAND_NORMAL;
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
static int rig2jrc_mode(RIG *rig, rmode_t mode, pbwidth_t width,
|
||||
char *jmode, char *jwidth)
|
||||
{
|
||||
switch (mode) {
|
||||
case RIG_MODE_RTTY: *jmode = MD_RTTY; break;
|
||||
case RIG_MODE_CW: *jmode = MD_CW; break;
|
||||
case RIG_MODE_USB: *jmode = MD_USB; break;
|
||||
case RIG_MODE_LSB: *jmode = MD_LSB; break;
|
||||
case RIG_MODE_AM: *jmode = MD_AM; break;
|
||||
case RIG_MODE_FM: *jmode = MD_FM; break;
|
||||
case RIG_MODE_AMS: *jmode = MD_AMS; break;
|
||||
case RIG_MODE_FAX: *jmode = MD_FAX; break;
|
||||
case RIG_MODE_ECSSUSB: *jmode = MD_ECSS_USB; break;
|
||||
case RIG_MODE_ECSSLSB: *jmode = MD_ECSS_LSB; break;
|
||||
case RIG_MODE_WFM: *jmode = MD_WFM; break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"%s: unsupported mode %d\n", __FUNCTION__, mode);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
if (width == RIG_PASSBAND_NORMAL)
|
||||
width = rig_passband_normal(rig, mode);
|
||||
|
||||
if (width <= s_Hz(1500))
|
||||
*jwidth = '2'; /*narr*/
|
||||
else if (width <= s_Hz(4000))
|
||||
*jwidth = '1'; /*inter*/
|
||||
else if (width <= s_Hz(9000))
|
||||
*jwidth = '0'; /*wide*/
|
||||
else if (rig->caps->rig_model == RIG_MODEL_NRD535)
|
||||
*jwidth = '3'; /*aux - nrd535 only*/
|
||||
else
|
||||
*jwidth = '1'; /*inter*/
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
|
||||
int jrc_open(RIG *rig)
|
||||
{
|
||||
|
@ -199,49 +288,23 @@ int jrc_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
{
|
||||
char mdbuf[BUFSZ];
|
||||
int retval, mdbuf_len;
|
||||
char amode;
|
||||
const char *bandwidth;
|
||||
char amode, awidth;
|
||||
|
||||
switch (mode) {
|
||||
case RIG_MODE_CW: amode = MD_CW; break;
|
||||
case RIG_MODE_USB: amode = MD_USB; break;
|
||||
case RIG_MODE_LSB: amode = MD_LSB; break;
|
||||
case RIG_MODE_FM: amode = MD_FM; break;
|
||||
case RIG_MODE_AM: amode = MD_AM; break;
|
||||
case RIG_MODE_RTTY: amode = MD_RTTY; break;
|
||||
case RIG_MODE_WFM: amode = MD_WFM; break;
|
||||
case RIG_MODE_AMS: amode = MD_AMS; break;
|
||||
case RIG_MODE_FAX: amode = MD_FAX; break;
|
||||
case RIG_MODE_ECSSUSB: amode = MD_ECSS_USB; break;
|
||||
case RIG_MODE_ECSSLSB: amode = MD_ECSS_LSB; break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"jrc_set_mode: unsupported mode %d\n", mode);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
retval = rig2jrc_mode(rig, mode, width, &amode, &awidth);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
mdbuf_len = sprintf(mdbuf, "D" "%c" EOM, amode);
|
||||
retval = jrc_transaction (rig, mdbuf, mdbuf_len, NULL, NULL);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
if (width == RIG_PASSBAND_NORMAL)
|
||||
width = rig_passband_normal(rig, mode);
|
||||
mdbuf_len = sprintf(mdbuf, "B" "%c" EOM, awidth);
|
||||
retval = jrc_transaction (rig, mdbuf, mdbuf_len, NULL, NULL);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
if (width <= s_Hz(1500))
|
||||
bandwidth = "B2" EOM; /*narr*/
|
||||
else if (width <= s_Hz(4000))
|
||||
bandwidth = "B1" EOM; /*inter*/
|
||||
else if (width <= s_Hz(9000))
|
||||
bandwidth = "B0" EOM; /*wide*/
|
||||
else if (rig->caps->rig_model == RIG_MODEL_NRD535)
|
||||
bandwidth = "B3" EOM; /*aux - nrd535 only*/
|
||||
else
|
||||
bandwidth = "B1" EOM; /*inter*/
|
||||
|
||||
retval = jrc_transaction (rig, bandwidth, 3, NULL, NULL);
|
||||
|
||||
return retval;
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -272,45 +335,10 @@ int jrc_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
cwidth = freqbuf[2];
|
||||
cmode = freqbuf[3];
|
||||
|
||||
switch(cwidth) {
|
||||
case '0' : *width = s_Hz(6000); break; //wide
|
||||
case '1' : *width = s_Hz(2000); break; //inter
|
||||
case '2' : *width = s_Hz(1000); break; //narr
|
||||
case '3' : *width = s_Hz(12000); break; //aux - nrd535 only
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"jrc_get_mode: unsupported width %c\n",
|
||||
cwidth);
|
||||
*width = RIG_PASSBAND_NORMAL;
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
retval = jrc2rig_mode(rig, cmode, cwidth,
|
||||
mode, width);
|
||||
|
||||
switch(cmode) {
|
||||
/* FIXME: FAX/AMS, and ECSS modes */
|
||||
case '0' : *mode = RIG_MODE_RTTY; break;
|
||||
case '1' : *mode = RIG_MODE_CW; break;
|
||||
case '2' : *mode = RIG_MODE_USB; break;
|
||||
case '3' : *mode = RIG_MODE_LSB; break;
|
||||
case '4' : *mode = RIG_MODE_AM; break;
|
||||
case '5' : *mode = RIG_MODE_FM; break;
|
||||
case '6' : if (rig->caps->rig_model == RIG_MODEL_NRD535) {
|
||||
*mode = RIG_MODE_FAX; break; //FAX on nrd535
|
||||
}
|
||||
else {
|
||||
*mode = RIG_MODE_AMS; break; //AMS on nrd545
|
||||
}
|
||||
case '7' : *mode = RIG_MODE_ECSSUSB; break; //ECSS-USB
|
||||
case '8' : *mode = RIG_MODE_ECSSLSB; break; //ECSS-LSB
|
||||
case '9' : *mode = RIG_MODE_WFM; break; //nrd545 only
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"jrc_get_mode: unsupported mode %c\n",
|
||||
cmode);
|
||||
*mode = RIG_MODE_NONE;
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
return retval;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -505,23 +533,27 @@ int jrc_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
|
||||
return jrc_transaction (rig, cmdbuf, cmd_len, NULL, NULL);
|
||||
|
||||
/*case RIG_LEVEL_TONE:
|
||||
#if 0
|
||||
case RIG_LEVEL_TONE:
|
||||
cmd_len = sprintf(cmdbuf, "KK%03d" EOM, (int)(val.f*255.0));
|
||||
|
||||
return jrc_transaction (rig, cmdbuf, cmd_len, NULL, NULL);*/
|
||||
return jrc_transaction (rig, cmdbuf, cmd_len, NULL, NULL);
|
||||
#endif
|
||||
|
||||
case RIG_LEVEL_NOTCHF:
|
||||
cmd_len = sprintf(cmdbuf, "GG%+04d" EOM, val.i);
|
||||
|
||||
return jrc_transaction (rig, cmdbuf, cmd_len, NULL, NULL);
|
||||
|
||||
/*case RIG_LEVEL_BWC:
|
||||
#if 0
|
||||
case RIG_LEVEL_BWC:
|
||||
if (priv->pbs_len == 3)
|
||||
val.i /= 10;
|
||||
|
||||
cmd_len = sprintf(cmdbuf, "W%0*d" EOM, priv->pbs_len, val.i);
|
||||
|
||||
return jrc_transaction (rig, cmdbuf, cmd_len, NULL, NULL);*/
|
||||
return jrc_transaction (rig, cmdbuf, cmd_len, NULL, NULL);
|
||||
#endif
|
||||
|
||||
case RIG_LEVEL_AGC:
|
||||
if (val.i < 10)
|
||||
|
@ -567,9 +599,6 @@ int jrc_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
char cwbuf[BUFSZ];
|
||||
int cw_len;
|
||||
|
||||
/* Optimize:
|
||||
* sort the switch cases with the most frequent first
|
||||
*/
|
||||
switch (level) {
|
||||
case RIG_LEVEL_RAWSTR:
|
||||
/* read A/D converted value */
|
||||
|
@ -711,7 +740,8 @@ int jrc_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
val->f = (float)lvl/255.0;
|
||||
break;
|
||||
|
||||
/*case RIG_LEVEL_TONE:
|
||||
#if 0
|
||||
case RIG_LEVEL_TONE:
|
||||
retval = jrc_transaction (rig, "KK" EOM, 3, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -724,7 +754,8 @@ int jrc_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
|
||||
sscanf(lvlbuf+2, "%u", &lvl);
|
||||
val->f = (float)lvl/255.0;
|
||||
break;*/
|
||||
break;
|
||||
#endif
|
||||
|
||||
case RIG_LEVEL_NOTCHF:
|
||||
retval = jrc_transaction (rig, "GG" EOM, 3, lvlbuf, &lvl_len);
|
||||
|
@ -743,7 +774,8 @@ int jrc_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
val->f = (float)lvl/255.0;
|
||||
break;
|
||||
|
||||
/*case RIG_LEVEL_BWC:
|
||||
#if 0
|
||||
case RIG_LEVEL_BWC:
|
||||
retval = jrc_transaction (rig, "W" EOM, 2, lvlbuf, &lvl_len);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
@ -759,7 +791,8 @@ int jrc_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
lvl *= 10;
|
||||
|
||||
val->i = lvl;
|
||||
break;*/
|
||||
break;
|
||||
#endif
|
||||
|
||||
case RIG_LEVEL_CWPITCH:
|
||||
cw_len = sprintf(cwbuf, "%s" EOM, priv->cw_pitch);
|
||||
|
@ -962,7 +995,6 @@ int jrc_set_powerstat(RIG *rig, powerstat_t status)
|
|||
* 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;
|
||||
|
@ -1063,38 +1095,17 @@ int jrc_set_chan(RIG *rig, const channel_t *chan)
|
|||
{
|
||||
struct jrc_priv_caps *priv = (struct jrc_priv_caps*)rig->caps->priv;
|
||||
char cmdbuf[BUFSZ];
|
||||
int cmd_len;
|
||||
int retval, cmd_len;
|
||||
|
||||
sprintf(cmdbuf,"K%03d000",chan->channel_num);
|
||||
|
||||
if (chan->levels[rig_setting2idx(RIG_LEVEL_ATT)].i == 20)
|
||||
cmdbuf[4] = '1';
|
||||
|
||||
if (chan->width <= s_Hz(1500))
|
||||
cmdbuf[5] = '2';
|
||||
else if (chan->width <= s_Hz(4000))
|
||||
cmdbuf[5] = '1';
|
||||
else if (chan->width <= s_Hz(9000))
|
||||
cmdbuf[5] = '0';
|
||||
else if (rig->caps->rig_model == RIG_MODEL_NRD535)
|
||||
cmdbuf[5] = '3'; /*aux - nrd535 only*/
|
||||
else
|
||||
cmdbuf[5] = '1'; /*inter*/
|
||||
|
||||
switch (chan->mode) {
|
||||
case RIG_MODE_CW: cmdbuf[6] = MD_CW; break;
|
||||
case RIG_MODE_USB: cmdbuf[6] = MD_USB; break;
|
||||
case RIG_MODE_LSB: cmdbuf[6] = MD_LSB; break;
|
||||
case RIG_MODE_FM: cmdbuf[6] = MD_FM; break;
|
||||
case RIG_MODE_AM: cmdbuf[6] = MD_AM; break;
|
||||
case RIG_MODE_RTTY: cmdbuf[6] = MD_RTTY; break;
|
||||
case RIG_MODE_WFM: cmdbuf[6] = MD_WFM; break;
|
||||
case RIG_MODE_AMS: cmdbuf[6] = MD_AMS; break;
|
||||
case RIG_MODE_FAX: cmdbuf[6] = MD_FAX; break;
|
||||
case RIG_MODE_ECSSUSB: cmdbuf[6] = MD_ECSS_USB; break;
|
||||
case RIG_MODE_ECSSLSB: cmdbuf[6] = MD_ECSS_LSB; break;
|
||||
default: cmdbuf[6] = MD_AM;
|
||||
}
|
||||
|
||||
retval = rig2jrc_mode(rig, chan->mode, chan->width,
|
||||
&cmdbuf[6], &cmdbuf[5]);
|
||||
if (retval != RIG_OK)
|
||||
return retval;
|
||||
|
||||
sprintf(cmdbuf+7,"%0*"PRIll, priv->max_freq_len, (long long)chan->freq);
|
||||
|
||||
|
@ -1165,31 +1176,9 @@ int jrc_get_chan(RIG *rig, channel_t *chan)
|
|||
if (mem_len != 6) {
|
||||
if (membuf[4] == '1')
|
||||
chan->levels[rig_setting2idx(RIG_LEVEL_ATT)].i = 20;
|
||||
switch (membuf[5]) {
|
||||
case '0' : chan->width = s_Hz(6000); break; //wide
|
||||
case '1' : chan->width = s_Hz(2000); break; //inter
|
||||
case '2' : chan->width = s_Hz(1000); break; //narr
|
||||
case '3' : chan->width = s_Hz(12000); break; //aux - nrd535 only
|
||||
default : chan->width = RIG_PASSBAND_NORMAL;
|
||||
}
|
||||
switch (membuf[6]) {
|
||||
case '0' : chan->mode = RIG_MODE_RTTY; break;
|
||||
case '1' : chan->mode = RIG_MODE_CW; break;
|
||||
case '2' : chan->mode = RIG_MODE_USB; break;
|
||||
case '3' : chan->mode = RIG_MODE_LSB; break;
|
||||
case '4' : chan->mode = RIG_MODE_AM; break;
|
||||
case '5' : chan->mode = RIG_MODE_FM; break;
|
||||
case '6' : if (rig->caps->rig_model == RIG_MODEL_NRD535) {
|
||||
chan->mode = RIG_MODE_FAX; break; //FAX on nrd535
|
||||
}
|
||||
else {
|
||||
chan->mode = RIG_MODE_AMS; break; //AMS on nrd545
|
||||
}
|
||||
case '7' : chan->mode = RIG_MODE_ECSSUSB; break; //ECSS-USB
|
||||
case '8' : chan->mode = RIG_MODE_ECSSLSB; break; //ECSS-LSB
|
||||
case '9' : chan->mode = RIG_MODE_WFM; break; //nrd545 only
|
||||
default: chan->mode = RIG_MODE_NONE;
|
||||
}
|
||||
|
||||
jrc2rig_mode(rig, membuf[6], membuf[5],
|
||||
&chan->mode, &chan->width);
|
||||
|
||||
strncpy(freqbuf,membuf+7,priv->max_freq_len);
|
||||
freqbuf[priv->max_freq_len] = 0x00;
|
||||
|
@ -1222,13 +1211,15 @@ int jrc_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
|
|||
|
||||
switch(op) {
|
||||
case RIG_OP_FROM_VFO: cmd="E1" EOM; break;
|
||||
case RIG_OP_UP: cmd="MM25" EOM; break;
|
||||
case RIG_OP_DOWN: cmd="MM24" EOM; break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,"jrc_vfo_op: unsupported op %#x\n",
|
||||
op);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
return jrc_transaction (rig, cmd, 3, NULL, NULL);
|
||||
return jrc_transaction (rig, cmd, strlen(cmd), NULL, NULL);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1260,57 +1251,6 @@ int jrc_scan(RIG *rig, vfo_t vfo, scan_t scan, int ch)
|
|||
return jrc_transaction (rig, scan_cmd, 3, NULL, NULL);
|
||||
}
|
||||
|
||||
static int jrc2rig_mode(RIG *rig, char jmode, char jwidth,
|
||||
rmode_t *mode, pbwidth_t *width)
|
||||
{
|
||||
switch (jmode) {
|
||||
case MD_CW: *mode = RIG_MODE_CW; break;
|
||||
case MD_USB: *mode = RIG_MODE_USB; break;
|
||||
case MD_LSB: *mode = RIG_MODE_LSB; break;
|
||||
case MD_FM: *mode = RIG_MODE_FM; break;
|
||||
case MD_AM: *mode = RIG_MODE_AM; break;
|
||||
case MD_AMS: if (rig->caps->rig_model == RIG_MODEL_NRD535) {
|
||||
*mode = RIG_MODE_FAX; break;
|
||||
}
|
||||
else {
|
||||
*mode = RIG_MODE_AMS; break;
|
||||
}
|
||||
case MD_ECSS_USB: *mode = RIG_MODE_ECSSUSB; break;
|
||||
case MD_ECSS_LSB: *mode = RIG_MODE_ECSSLSB; break;
|
||||
case MD_RTTY: *mode = RIG_MODE_RTTY; break;
|
||||
case MD_WFM: *mode = RIG_MODE_WFM; break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"jrc_set_mode: unsupported mode %c\n",
|
||||
jmode);
|
||||
*mode = RIG_MODE_NONE;
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* determine passband
|
||||
*/
|
||||
switch (jwidth) {
|
||||
case '0':
|
||||
*width = rig_passband_wide(rig, *mode);
|
||||
break;
|
||||
case '1':
|
||||
*width = rig_passband_normal(rig, *mode);
|
||||
break;
|
||||
case '2':
|
||||
*width = rig_passband_narrow(rig, *mode);
|
||||
break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"jrc_set_mode: unsupported width %c\n",
|
||||
jwidth);
|
||||
*width = RIG_PASSBAND_NORMAL;
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* jrc_decode is called by sa_sigio, when some asynchronous
|
||||
* data has been received from the rig
|
||||
|
|
Ładowanie…
Reference in New Issue