kopia lustrzana https://github.com/Hamlib/Hamlib
* fixed RIG_PASSBAND_OLDTIME
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@462 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.1.1
rodzic
9aabe8cd29
commit
f3ef65626e
53
aor/aor.c
53
aor/aor.c
|
@ -1,12 +1,12 @@
|
|||
/*
|
||||
* hamlib - (C) Frank Singleton 2000 (vk3fcs@ix.netcom.com)
|
||||
*
|
||||
* aor.c - Copyright (C) 2000 Stephane Fillod
|
||||
* aor.c - Copyright (C) 2000,2001 Stephane Fillod
|
||||
* This shared library provides an API for communicating
|
||||
* via serial interface to an AOR scanner.
|
||||
*
|
||||
*
|
||||
* $Id: aor.c,v 1.6 2001-04-22 13:57:39 f4cfe Exp $
|
||||
* $Id: aor.c,v 1.7 2001-04-26 21:28:59 f4cfe Exp $
|
||||
*
|
||||
*
|
||||
*
|
||||
|
@ -167,13 +167,11 @@ int aor_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
switch (mode) {
|
||||
case RIG_MODE_AM:
|
||||
switch(width) {
|
||||
case RIG_PASSBAND_NORMAL: aormode = MD_AM; break;
|
||||
#ifdef RIG_PASSBAND_OLDTIME
|
||||
case RIG_PASSBAND_WIDE: aormode = MD_WAM; break;
|
||||
case RIG_PASSBAND_NARROW: aormode = MD_NAM; break;
|
||||
#else
|
||||
/* TODO */
|
||||
#endif
|
||||
case RIG_PASSBAND_NORMAL:
|
||||
case kHz(9): aormode = MD_AM; break;
|
||||
|
||||
case kHz(12): aormode = MD_WAM; break;
|
||||
case kHz(3): aormode = MD_NAM; break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"aor_set_mode: unsupported passband %d %d\n",
|
||||
|
@ -184,15 +182,13 @@ int aor_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
case RIG_MODE_CW: aormode = MD_CW; break;
|
||||
case RIG_MODE_USB: aormode = MD_USB; break;
|
||||
case RIG_MODE_LSB: aormode = MD_LSB; break;
|
||||
case RIG_MODE_WFM: aormode = MD_WFM; break;
|
||||
case RIG_MODE_FM:
|
||||
switch(width) {
|
||||
case RIG_PASSBAND_NORMAL: aormode = MD_NFM; break;
|
||||
#ifdef RIG_PASSBAND_OLDTIME
|
||||
case RIG_PASSBAND_WIDE: aormode = MD_WFM; break;
|
||||
case RIG_PASSBAND_NARROW: aormode = MD_SFM; break;
|
||||
#else
|
||||
/* TODO */
|
||||
#endif
|
||||
case RIG_PASSBAND_NORMAL:
|
||||
case kHz(12): aormode = MD_NFM; break;
|
||||
|
||||
case kHz(9): aormode = MD_SFM; break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"aor_set_mode: unsupported passband %d %d\n",
|
||||
|
@ -200,8 +196,6 @@ int aor_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
return -RIG_EINVAL;
|
||||
}
|
||||
break;
|
||||
case RIG_MODE_WFM: aormode = MD_WFM; break;
|
||||
case RIG_MODE_RTTY:
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,"aor_set_mode: unsupported mode %d\n",
|
||||
mode);
|
||||
|
@ -243,39 +237,28 @@ int aor_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
case MD_AM: *mode = RIG_MODE_AM; break;
|
||||
case MD_NAM:
|
||||
*mode = RIG_MODE_AM;
|
||||
#ifdef RIG_PASSBAND_OLDTIME
|
||||
*width = RIG_PASSBAND_NARROW;
|
||||
#else
|
||||
/* FIXME! */
|
||||
#endif
|
||||
*width = rig_passband_narrow(rig, *mode);
|
||||
break;
|
||||
case MD_WAM:
|
||||
*mode = RIG_MODE_AM;
|
||||
#ifdef RIG_PASSBAND_OLDTIME
|
||||
*width = RIG_PASSBAND_WIDE;
|
||||
#else
|
||||
/* FIXME! */
|
||||
#endif
|
||||
*width = rig_passband_wide(rig, *mode);
|
||||
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_WFM: *mode = RIG_MODE_WFM; break;
|
||||
case MD_NFM: *mode = RIG_MODE_FM; break;
|
||||
case MD_SFM:
|
||||
*mode = RIG_MODE_FM;
|
||||
#ifdef RIG_PASSBAND_OLDTIME
|
||||
*width = RIG_PASSBAND_NARROW;
|
||||
#else
|
||||
/* FIXME! */
|
||||
#endif
|
||||
break;
|
||||
case MD_WFM: *mode = RIG_MODE_WFM;
|
||||
*width = rig_passband_narrow(rig, *mode);
|
||||
break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,"aor_get_mode: unsupported mode %d\n",
|
||||
ackbuf[0]);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
if (*width != RIG_PASSBAND_NORMAL)
|
||||
*width = rig_passband_normal(rig, *mode);
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
|
48
icom/frame.c
48
icom/frame.c
|
@ -6,7 +6,7 @@
|
|||
* CI-V interface, used in serial communication to ICOM radios.
|
||||
*
|
||||
*
|
||||
* $Id: frame.c,v 1.9 2001-04-22 13:57:39 f4cfe Exp $
|
||||
* $Id: frame.c,v 1.10 2001-04-26 21:31:01 f4cfe Exp $
|
||||
*
|
||||
*
|
||||
*
|
||||
|
@ -196,10 +196,12 @@ int read_icom_frame(FILE *stream, unsigned char rxbuffer[], int timeout)
|
|||
|
||||
/*
|
||||
* TODO: be more exhaustive
|
||||
* assumes rig!=NULL
|
||||
*/
|
||||
unsigned short hamlib2icom_mode(rmode_t mode, pbwidth_t width)
|
||||
unsigned short rig2icom_mode(RIG *rig, rmode_t mode, pbwidth_t width)
|
||||
{
|
||||
int icmode, icmode_ext;
|
||||
pbwidth_t norm_width;
|
||||
|
||||
icmode_ext = 0;
|
||||
|
||||
|
@ -209,25 +211,28 @@ unsigned short hamlib2icom_mode(rmode_t mode, pbwidth_t width)
|
|||
case RIG_MODE_USB: icmode = S_USB; break;
|
||||
case RIG_MODE_LSB: icmode = S_LSB; break;
|
||||
case RIG_MODE_RTTY: icmode = S_RTTY; break;
|
||||
case RIG_MODE_FM:
|
||||
#ifdef RIG_PASSBAND_OLDTIME
|
||||
icmode = width==RIG_PASSBAND_WIDE?S_WFM:S_FM;
|
||||
icmode_ext = width==RIG_PASSBAND_NARROW?0x02:0x00;
|
||||
#else
|
||||
icmode = S_FM;
|
||||
/* FIXME: */
|
||||
icmode_ext = width!=RIG_PASSBAND_NORMAL?0x00:0x02;
|
||||
#endif
|
||||
break;
|
||||
case RIG_MODE_FM: icmode = S_FM; break;
|
||||
case RIG_MODE_WFM: icmode = S_WFM; break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,"icom: Unsupported Hamlib mode %d\n",mode);
|
||||
icmode = 0xff;
|
||||
}
|
||||
|
||||
norm_width = rig_passband_normal(rig, mode);
|
||||
if (width == norm_width || width == RIG_PASSBAND_NORMAL)
|
||||
icmode_ext = 0x00;
|
||||
else if (width < norm_width)
|
||||
icmode_ext = 0x02;
|
||||
else
|
||||
icmode_ext = 0x01;
|
||||
|
||||
return (icmode_ext<<8 | icmode);
|
||||
}
|
||||
|
||||
void icom2hamlib_mode(unsigned short icmode, rmode_t *mode, pbwidth_t *width)
|
||||
/*
|
||||
* assumes rig!=NULL, mode!=NULL, width!=NULL
|
||||
*/
|
||||
void icom2rig_mode(RIG *rig, unsigned short icmode, rmode_t *mode, pbwidth_t *width)
|
||||
{
|
||||
*width = RIG_PASSBAND_NORMAL;
|
||||
|
||||
|
@ -235,18 +240,25 @@ void icom2hamlib_mode(unsigned short icmode, rmode_t *mode, pbwidth_t *width)
|
|||
case S_AM: *mode = RIG_MODE_AM; break;
|
||||
case S_CW: *mode = RIG_MODE_CW; break;
|
||||
case S_FM: *mode = RIG_MODE_FM; break;
|
||||
case S_WFM:
|
||||
*mode = RIG_MODE_WFM;
|
||||
break;
|
||||
case S_WFM: *mode = RIG_MODE_WFM; break;
|
||||
case S_USB: *mode = RIG_MODE_USB; break;
|
||||
case S_LSB: *mode = RIG_MODE_LSB; break;
|
||||
case S_RTTY: *mode = RIG_MODE_RTTY; break;
|
||||
case 0xff: mode = 0; break; /* blank mem channel */
|
||||
case 0xff: *mode = RIG_MODE_NONE; break; /* blank mem channel */
|
||||
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,"icom: Unsupported Icom mode %#.2x\n",
|
||||
icmode);
|
||||
*mode = 0;
|
||||
*mode = RIG_MODE_NONE;
|
||||
}
|
||||
switch ((icmode>>8) & 0xff00) {
|
||||
case 0x00: *width = rig_passband_narrow(rig, *mode); break;
|
||||
case 0x01: *width = rig_passband_normal(rig, *mode); break;
|
||||
case 0x02: *width = rig_passband_wide(rig, *mode); break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,"icom: Unsupported Icom mode width %#.2x\n",
|
||||
icmode);
|
||||
*width = RIG_PASSBAND_NORMAL;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
/*
|
||||
* hamlib - (C) Frank Singleton 2000 (vk3fcs@ix.netcom.com)
|
||||
*
|
||||
* frame.h - Copyright (C) 2000 Stephane Fillod
|
||||
* frame.h - Copyright (C) 2000,2001 Stephane Fillod
|
||||
* This shared library provides an API for communicating
|
||||
* via serial interface to an ICOM using the "CI-V" interface.
|
||||
*
|
||||
*
|
||||
* $Id: frame.h,v 1.4 2000-12-04 23:39:17 f4cfe Exp $
|
||||
* $Id: frame.h,v 1.5 2001-04-26 21:31:01 f4cfe Exp $
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
|
@ -38,8 +38,8 @@ int make_cmd_frame(char frame[], char re_id, char cmd, int subcmd, const char *d
|
|||
int icom_transaction (RIG *rig, int cmd, int subcmd, const char *payload, int payload_len, char *data, int *data_len);
|
||||
int read_icom_frame(FILE *stream, unsigned char rxbuffer[], int timeout);
|
||||
|
||||
unsigned short hamlib2icom_mode(rmode_t mode, pbwidth_t width);
|
||||
void icom2hamlib_mode(unsigned short icmode, rmode_t *mode, pbwidth_t *width);
|
||||
unsigned short rig2icom_mode(RIG *rig, rmode_t mode, pbwidth_t width);
|
||||
void icom2rig_mode(RIG *rig, unsigned short icmode, rmode_t *mode, pbwidth_t *width);
|
||||
|
||||
#endif /* _FRAME_H */
|
||||
|
||||
|
|
89
icom/icom.c
89
icom/icom.c
|
@ -6,7 +6,7 @@
|
|||
* via serial interface to an ICOM using the "CI-V" interface.
|
||||
*
|
||||
*
|
||||
* $Id: icom.c,v 1.22 2001-03-04 23:05:18 f4cfe Exp $
|
||||
* $Id: icom.c,v 1.23 2001-04-26 21:31:01 f4cfe Exp $
|
||||
*
|
||||
*
|
||||
*
|
||||
|
@ -214,7 +214,6 @@ int icom_init(RIG *rig)
|
|||
struct icom_priv_data *priv;
|
||||
const struct icom_priv_caps *priv_caps;
|
||||
const struct rig_caps *caps;
|
||||
int i;
|
||||
|
||||
if (!rig || !rig->caps)
|
||||
return -RIG_EINVAL;
|
||||
|
@ -243,48 +242,6 @@ int icom_init(RIG *rig)
|
|||
|
||||
priv->re_civ_addr = 0x00;
|
||||
|
||||
/* to be removed soon */
|
||||
#if 0
|
||||
for (i=0; icom_addr_list[i].model >= 0; i++) {
|
||||
if (icom_addr_list[i].model == caps->rig_model) {
|
||||
priv->re_civ_addr = icom_addr_list[i].re_civ_addr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (caps->rig_model == RIG_MODEL_IC731 ||
|
||||
caps->rig_model == RIG_MODEL_IC735)
|
||||
priv->civ_731_mode = 1;
|
||||
else
|
||||
priv->civ_731_mode = 0;
|
||||
|
||||
switch (caps->rig_model) {
|
||||
case RIG_MODEL_IC737:
|
||||
priv->ts_sc_list = ic737_ts_sc_list;
|
||||
break;
|
||||
case RIG_MODEL_ICR7100:
|
||||
case RIG_MODEL_ICR72:
|
||||
priv->ts_sc_list = r7100_ts_sc_list;
|
||||
break;
|
||||
case RIG_MODEL_IC756:
|
||||
priv->ts_sc_list = ic756_ts_sc_list;
|
||||
break;
|
||||
case RIG_MODEL_ICR75:
|
||||
priv->ts_sc_list = r75_ts_sc_list;
|
||||
break;
|
||||
case RIG_MODEL_ICR8500:
|
||||
priv->ts_sc_list = r8500_ts_sc_list;
|
||||
break;
|
||||
|
||||
case RIG_MODEL_IC706MKIIG:
|
||||
ic706mkiig_str_cal_init(rig);
|
||||
case RIG_MODEL_IC706MKII:
|
||||
case RIG_MODEL_ICR9000:
|
||||
default:
|
||||
priv->ts_sc_list = ic706_ts_sc_list;
|
||||
}
|
||||
#endif
|
||||
|
||||
priv->re_civ_addr = priv_caps->re_civ_addr;
|
||||
priv->civ_731_mode = priv_caps->civ_731_mode;
|
||||
memcpy(&priv->str_cal, &priv_caps->str_cal, sizeof(cal_table_t));
|
||||
|
@ -404,7 +361,7 @@ int icom_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
rs = &rig->state;
|
||||
priv = (struct icom_priv_data*)rs->priv;
|
||||
|
||||
icmode = hamlib2icom_mode(mode,width);
|
||||
icmode = rig2icom_mode(rig, mode,width);
|
||||
|
||||
icmode_ext[0] = (icmode>>8) & 0xff;
|
||||
icom_transaction (rig, C_SET_MODE, icmode & 0xff, icmode_ext,
|
||||
|
@ -449,7 +406,7 @@ int icom_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
return -RIG_ERJCTED;
|
||||
}
|
||||
|
||||
icom2hamlib_mode(modebuf[1]| modebuf[2]<<8, mode, width);
|
||||
icom2rig_mode(rig, modebuf[1]| modebuf[2]<<8, mode, width);
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
@ -635,37 +592,6 @@ int icom_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
return RIG_OK;
|
||||
}
|
||||
|
||||
/* will be removed soon */
|
||||
#if 0
|
||||
/*
|
||||
* compensate strength using calibration
|
||||
* assume STR_CAL_LENGTH!=0
|
||||
*/
|
||||
static int comp_cal_str(int str_cal_raw[], int str_cal_db[], int icom_val)
|
||||
{
|
||||
int i;
|
||||
int interpolation;
|
||||
|
||||
for (i=0; i<STR_CAL_LENGTH; i++)
|
||||
if (icom_val < str_cal_raw[i])
|
||||
break;
|
||||
|
||||
if (i==0)
|
||||
return STR_CAL_S0;
|
||||
if (i>=STR_CAL_LENGTH)
|
||||
return str_cal_db[i-1];
|
||||
|
||||
if (str_cal_raw[i] == str_cal_raw[i-1])
|
||||
return str_cal_db[i];
|
||||
|
||||
/* cheap, less accurate, but no fp involved */
|
||||
interpolation = ((str_cal_raw[i]-icom_val)*(str_cal_db[i]-str_cal_db[i-1]))/(str_cal_raw[i]-str_cal_raw[i-1]);
|
||||
|
||||
return str_cal_db[i] - interpolation;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* icom_get_level
|
||||
* Assumes rig!=NULL, rig->state.priv!=NULL, val!=NULL
|
||||
|
@ -802,9 +728,6 @@ int icom_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
|
||||
switch (level) {
|
||||
case RIG_LEVEL_STRENGTH:
|
||||
#if 0
|
||||
val->i = comp_cal_str(priv->str_cal_raw,priv->str_cal_db,icom_val);
|
||||
#endif
|
||||
val->i = rig_raw2val(icom_val, &priv->str_cal);
|
||||
break;
|
||||
case RIG_LEVEL_SQLSTAT:
|
||||
|
@ -1657,7 +1580,7 @@ int icom_set_channel(RIG *rig, const channel_t *chan)
|
|||
|
||||
chan_len = 3+freq_len+1;
|
||||
|
||||
icmode = hamlib2icom_mode(chan->mode, RIG_PASSBAND_NORMAL); /* FIXME */
|
||||
icmode = rig2icom_mode(rig, chan->mode, RIG_PASSBAND_NORMAL);/* FIXME */
|
||||
chanbuf[chan_len++] = icmode&0xff;
|
||||
chanbuf[chan_len++] = icmode>>8;
|
||||
to_bcd_be(chanbuf+chan_len++,chan->att,2);
|
||||
|
@ -1718,7 +1641,7 @@ int icom_get_channel(RIG *rig, channel_t *chan)
|
|||
|
||||
chan_len = 4+freq_len+1;
|
||||
|
||||
icom2hamlib_mode(chanbuf[chan_len] | chanbuf[chan_len+1],
|
||||
icom2rig_mode(rig, chanbuf[chan_len] | chanbuf[chan_len+1],
|
||||
&chan->mode, &width);
|
||||
chan_len += 2;
|
||||
chan->att = from_bcd_be(chanbuf+chan_len++,2);
|
||||
|
@ -1943,7 +1866,7 @@ int icom_decode_event(RIG *rig)
|
|||
break;
|
||||
case C_SND_MODE:
|
||||
if (rig->callbacks.mode_event) {
|
||||
icom2hamlib_mode(buf[5]| buf[6]<<8, &mode, &width);
|
||||
icom2rig_mode(rig, buf[5]| buf[6]<<8, &mode, &width);
|
||||
return rig->callbacks.mode_event(rig,RIG_VFO_CURR,mode,width);
|
||||
} else
|
||||
return -RIG_ENAVAIL;
|
||||
|
|
81
pcr/pcr.c
81
pcr/pcr.c
|
@ -6,7 +6,7 @@
|
|||
* via serial interface to an Icom PCR-1xxx radio.
|
||||
*
|
||||
*
|
||||
* $Id: pcr.c,v 1.2 2001-04-22 13:57:39 f4cfe Exp $
|
||||
* $Id: pcr.c,v 1.3 2001-04-26 21:32:32 f4cfe Exp $
|
||||
*
|
||||
*
|
||||
*
|
||||
|
@ -228,31 +228,30 @@ int pcr_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
case RIG_MODE_LSB: pcrmode = MD_LSB; pcrfilter = FLT_2_8kHz; break;
|
||||
case RIG_MODE_AM: pcrmode = MD_AM; pcrfilter = FLT_15kHz; break;
|
||||
case RIG_MODE_WFM: pcrmode = MD_WFM; pcrfilter = FLT_230kHz; break;
|
||||
case RIG_MODE_FM:
|
||||
pcrmode = MD_FM;
|
||||
switch (width) {
|
||||
case RIG_PASSBAND_NORMAL: pcrfilter = FLT_15kHz; break;
|
||||
#ifdef RIG_PASSBAND_OLDTIME
|
||||
case RIG_PASSBAND_NARROW: pcrfilter = FLT_6kHz; break;
|
||||
case RIG_PASSBAND_WIDE:
|
||||
pcrmode = MD_WFM;
|
||||
pcrfilter = FLT_50kHz;
|
||||
break;
|
||||
#else
|
||||
/* TODO */
|
||||
#endif
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,"pcr_set_mode: unsupported "
|
||||
"width %d\n", width);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
break;
|
||||
case RIG_MODE_FM: pcrmode = MD_FM; pcrfilter = FLT_15kHz; break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,"pcr_set_mode: unsupported mode %d\n",
|
||||
mode);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
switch (width) {
|
||||
/* nop, pcrfilter already set
|
||||
* TODO: use rig_passband_normal instead?
|
||||
*/
|
||||
case RIG_PASSBAND_NORMAL: break;
|
||||
|
||||
case kHz(2.8): pcrfilter = FLT_2_8kHz; break;
|
||||
case kHz(6): pcrfilter = FLT_6kHz; break;
|
||||
case kHz(15): pcrfilter = FLT_15kHz; break;
|
||||
case kHz(50): pcrfilter = FLT_50kHz; break;
|
||||
case kHz(230): pcrfilter = FLT_230kHz; break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,"pcr_set_mode: unsupported "
|
||||
"width %d\n", width);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
mdbuf_len = sprintf(mdbuf,"K0%010Ld0%c0%c00" CRLF, priv->last_freq,
|
||||
pcrmode, pcrfilter);
|
||||
|
||||
|
@ -280,45 +279,29 @@ int pcr_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
|
||||
priv = (struct pcr_priv_data *)rig->state.priv;
|
||||
|
||||
*width = RIG_PASSBAND_NORMAL;
|
||||
switch (priv->last_mode) {
|
||||
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_WFM:
|
||||
*mode = RIG_MODE_WFM;
|
||||
break;
|
||||
case MD_FM:
|
||||
*mode = RIG_MODE_FM;
|
||||
switch(priv->last_filter) {
|
||||
#ifdef RIG_PASSBAND_OLDTIME
|
||||
case FLT_2_8kHz:
|
||||
case FLT_6kHz: *width = RIG_PASSBAND_NARROW; break;
|
||||
#else
|
||||
case FLT_2_8kHz: *width = kHz(2.8); break;
|
||||
case FLT_6kHz: *width = kHz(6); break;
|
||||
#endif
|
||||
/* TODO: return Hz(0) or 15kHz? */
|
||||
case FLT_15kHz: *width = RIG_PASSBAND_NORMAL; break;
|
||||
#ifdef RIG_PASSBAND_OLDTIME
|
||||
case FLT_50kHz:
|
||||
case FLT_230kHz: *width = RIG_PASSBAND_WIDE; break;
|
||||
#else
|
||||
case FLT_50kHz: *width = kHz(50); break;
|
||||
case FLT_230kHz: *width = kHz(230); break;
|
||||
#endif
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,"pcr_get_mode: unsupported "
|
||||
"width %d\n", priv->last_filter);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
break;
|
||||
case MD_WFM: *mode = RIG_MODE_WFM; break;
|
||||
case MD_FM: *mode = RIG_MODE_FM; break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,"pcr_get_mode: unsupported mode %d\n",
|
||||
priv->last_mode);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
switch(priv->last_filter) {
|
||||
case FLT_2_8kHz: *width = kHz(2.8); break;
|
||||
case FLT_6kHz: *width = kHz(6); break;
|
||||
case FLT_15kHz: *width = kHz(15); break;
|
||||
case FLT_50kHz: *width = kHz(50); break;
|
||||
case FLT_230kHz: *width = kHz(230); break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR,"pcr_get_mode: unsupported "
|
||||
"width %d\n", priv->last_filter);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
* hamlib - (C) Frank Singleton 2000 (vk3fcs@ix.netcom.com)
|
||||
*
|
||||
* winradio.c - Copyright (C) 2001 pab@users.sourceforge.net
|
||||
* Derived from hamlib code (C) 2000 Stephane Fillod.
|
||||
* Derived from hamlib code (C) 2000,2001 Stephane Fillod.
|
||||
*
|
||||
* This shared library supports winradio receivers through the
|
||||
* /dev/winradio API.
|
||||
*
|
||||
*
|
||||
* $Id: winradio.c,v 1.7 2001-04-22 13:57:39 f4cfe Exp $
|
||||
* $Id: winradio.c,v 1.8 2001-04-26 21:32:54 f4cfe Exp $
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
|
@ -77,15 +77,12 @@ int wr_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) {
|
|||
case RIG_MODE_WFM: m = RMD_FMW; break;
|
||||
case RIG_MODE_FM:
|
||||
switch ( width ) {
|
||||
#ifdef RIG_PASSBAND_OLDTIME
|
||||
case RIG_PASSBAND_NARROW: m = RMD_FM6; break;
|
||||
#else
|
||||
/* TODO */
|
||||
#endif
|
||||
case RIG_PASSBAND_NORMAL: m = RMD_FMN; break;
|
||||
#ifdef RIG_PASSBAND_OLDTIME
|
||||
case RIG_PASSBAND_WIDE: m = RMD_FMW; break;
|
||||
#endif
|
||||
case RIG_PASSBAND_NORMAL:
|
||||
case kHz(17):
|
||||
case kHz(15): m = RMD_FMN; break;
|
||||
|
||||
case kHz(6): m = RMD_FM6; break;
|
||||
case kHz(50): m = RMD_FMM; break;
|
||||
default: return -RIG_EINVAL;
|
||||
}
|
||||
default: return -RIG_EINVAL;
|
||||
|
@ -97,20 +94,22 @@ int wr_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) {
|
|||
int wr_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) {
|
||||
unsigned long m;
|
||||
if ( ioctl(rig->state.fd, RADIO_GET_MODE, &m) ) return -RIG_EINVAL;
|
||||
|
||||
*width = RIG_PASSBAND_NORMAL;
|
||||
switch ( m ) {
|
||||
case RMD_CW: *mode = RIG_MODE_CW; *width = RIG_PASSBAND_NORMAL; break;
|
||||
case RMD_AM: *mode = RIG_MODE_AM; *width = RIG_PASSBAND_NORMAL; break;
|
||||
#ifdef RIG_PASSBAND_OLDTIME
|
||||
case RMD_FMN: *mode = RIG_MODE_FM; *width = RIG_PASSBAND_NARROW; break;
|
||||
case RMD_FM6: *mode = RIG_MODE_FM; *width = RIG_PASSBAND_NARROW; break;
|
||||
#else
|
||||
/* TODO */
|
||||
#endif
|
||||
case RMD_FMW: *mode = RIG_MODE_WFM; *width = RIG_PASSBAND_NORMAL; break;
|
||||
case RMD_LSB: *mode = RIG_MODE_LSB; *width = RIG_PASSBAND_NORMAL; break;
|
||||
case RMD_USB: *mode = RIG_MODE_USB; *width = RIG_PASSBAND_NORMAL; break;
|
||||
case RMD_CW: *mode = RIG_MODE_CW; break;
|
||||
case RMD_AM: *mode = RIG_MODE_AM; break;
|
||||
case RMD_FMN: *mode = RIG_MODE_FM; break; /* 15kHz or 17kHz on WR-3100 */
|
||||
case RMD_FM6: *mode = RIG_MODE_FM; break; /* 6kHz */
|
||||
case RMD_FMM: *mode = RIG_MODE_FM; break; /* 50kHz */
|
||||
case RMD_FMW: *mode = RIG_MODE_WFM; break;
|
||||
case RMD_LSB: *mode = RIG_MODE_LSB; break;
|
||||
case RMD_USB: *mode = RIG_MODE_USB; break;
|
||||
default: return -RIG_EINVAL;
|
||||
}
|
||||
if (*width == RIG_PASSBAND_NORMAL)
|
||||
*width = rig_passband_normal(rig,*mode);
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue