kopia lustrzana https://github.com/Hamlib/Hamlib
patch from Ben NJ8J
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@1688 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.0
rodzic
2e2721147f
commit
06df356369
|
@ -2,7 +2,7 @@
|
||||||
* Hamlib Alinco backend - main file
|
* Hamlib Alinco backend - main file
|
||||||
* Copyright (c) 2001-2003 by Stephane Fillod
|
* Copyright (c) 2001-2003 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: alinco.c,v 1.20 2003-12-22 07:39:46 fillods Exp $
|
* $Id: alinco.c,v 1.21 2004-02-15 00:30:29 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
|
||||||
|
@ -40,7 +40,8 @@
|
||||||
|
|
||||||
|
|
||||||
/* Line Feed */
|
/* Line Feed */
|
||||||
#define EOM "\x0a"
|
#define EOM "\x0d"
|
||||||
|
#define LF "\x0a"
|
||||||
|
|
||||||
#define BUFSZ 32
|
#define BUFSZ 32
|
||||||
|
|
||||||
|
@ -111,19 +112,23 @@ int alinco_transaction(RIG *rig, const char *cmd, int cmd_len, char *data, int *
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Transceiver sends an echo of cmd
|
* Transceiver sends an echo of cmd followed by a CR/LF
|
||||||
* TODO: check whether cmd and echobuf match (optional)
|
* TODO: check whether cmd and echobuf match (optional)
|
||||||
*/
|
*/
|
||||||
retval = read_string(&rs->rigport, echobuf, BUFSZ, EOM, strlen(EOM));
|
retval = read_string(&rs->rigport, echobuf, BUFSZ, LF, strlen(LF));
|
||||||
if (retval != RIG_OK)
|
/* if (retval <= 3)
|
||||||
return retval;
|
return retval; */
|
||||||
|
|
||||||
/* no data expected, TODO: flush input? */
|
/* no data expected, TODO: flush input? */
|
||||||
if (!data || !data_len)
|
if (!data || !data_len)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
*data_len = read_string(&rs->rigport, data, BUFSZ, EOM, strlen(EOM));
|
*data_len = read_string(&rs->rigport, data, BUFSZ, LF, strlen(LF));
|
||||||
|
|
||||||
|
/* strip CR/LF from string
|
||||||
|
*/
|
||||||
|
*data_len -= 2;
|
||||||
|
data[*data_len] = 0;
|
||||||
return RIG_OK;
|
return RIG_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,7 +172,7 @@ int alinco_get_vfo(RIG *rig, vfo_t *vfo)
|
||||||
if (retval != RIG_OK)
|
if (retval != RIG_OK)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
if (vfo_len != 4 || vfo_len != 6) {
|
if (vfo_len != 4) {
|
||||||
rig_debug(RIG_DEBUG_ERR,"alinco_get_vfo: wrong answer %s, "
|
rig_debug(RIG_DEBUG_ERR,"alinco_get_vfo: wrong answer %s, "
|
||||||
"len=%d\n", vfobuf, vfo_len);
|
"len=%d\n", vfobuf, vfo_len);
|
||||||
return -RIG_ERJCTED;
|
return -RIG_ERJCTED;
|
||||||
|
@ -178,7 +183,7 @@ int alinco_get_vfo(RIG *rig, vfo_t *vfo)
|
||||||
*vfo = RIG_VFO_A;
|
*vfo = RIG_VFO_A;
|
||||||
else if (!strcmp(vfobuf, "VFOB"))
|
else if (!strcmp(vfobuf, "VFOB"))
|
||||||
*vfo = RIG_VFO_B;
|
*vfo = RIG_VFO_B;
|
||||||
else if (!strcmp(vfobuf, "Memory") || !strcmp(vfobuf, "MEMO"))
|
else if (!strcmp(vfobuf, "MEMO"))
|
||||||
*vfo = RIG_VFO_MEM;
|
*vfo = RIG_VFO_MEM;
|
||||||
else {
|
else {
|
||||||
rig_debug(RIG_DEBUG_ERR,"alinco_get_vfo: unsupported VFO %s\n",
|
rig_debug(RIG_DEBUG_ERR,"alinco_get_vfo: unsupported VFO %s\n",
|
||||||
|
@ -254,12 +259,12 @@ int alinco_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
||||||
int alinco_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
int alinco_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||||
{
|
{
|
||||||
char mdbuf[BUFSZ];
|
char mdbuf[BUFSZ];
|
||||||
int mdbuf_len, narrow_filter, retval;
|
int mdbuf_len, wide_filter, retval;
|
||||||
char amode;
|
char amode;
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
/* FIXME: MD_CWL or MD_CWU? */
|
/* FIXME: MD_CWL or MD_CWU? */
|
||||||
case RIG_MODE_CW: amode = MD_CWL; break;
|
case RIG_MODE_CW: amode = MD_CWU; break;
|
||||||
case RIG_MODE_USB: amode = MD_USB; break;
|
case RIG_MODE_USB: amode = MD_USB; break;
|
||||||
case RIG_MODE_LSB: amode = MD_LSB; break;
|
case RIG_MODE_LSB: amode = MD_LSB; break;
|
||||||
case RIG_MODE_FM: amode = MD_FM; break;
|
case RIG_MODE_FM: amode = MD_FM; break;
|
||||||
|
@ -282,11 +287,11 @@ int alinco_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||||
*/
|
*/
|
||||||
if (width != RIG_PASSBAND_NORMAL &&
|
if (width != RIG_PASSBAND_NORMAL &&
|
||||||
width < rig_passband_normal(rig, mode))
|
width < rig_passband_normal(rig, mode))
|
||||||
narrow_filter = 1;
|
wide_filter = 0;
|
||||||
else
|
else
|
||||||
narrow_filter = 0;
|
wide_filter = 1;
|
||||||
|
|
||||||
mdbuf_len = sprintf(mdbuf, AL CMD_FLTER "%02d" EOM, narrow_filter);
|
mdbuf_len = sprintf(mdbuf, AL CMD_FLTER "%02d" EOM, wide_filter);
|
||||||
retval = alinco_transaction (rig, mdbuf, mdbuf_len, NULL, NULL);
|
retval = alinco_transaction (rig, mdbuf, mdbuf_len, NULL, NULL);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
|
@ -440,12 +445,15 @@ int alinco_get_rit(RIG *rig, vfo_t vfo, shortfreq_t *rit)
|
||||||
if (retval != RIG_OK)
|
if (retval != RIG_OK)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
if (rit_len > 5 || (ritbuf[0] != '+' && ritbuf[0] != '-')) {
|
if (rit_len != 8) { /* || (ritbuf[0] != '+' && ritbuf[0] != '-')) { */
|
||||||
rig_debug(RIG_DEBUG_ERR,"alinco_get_rit: wrong answer %s, "
|
rig_debug(RIG_DEBUG_ERR,"alinco_get_rit: wrong answer %s, "
|
||||||
"len=%d\n", ritbuf, rit_len);
|
"len=%d\n", ritbuf, rit_len);
|
||||||
return -RIG_ERJCTED;
|
return -RIG_ERJCTED;
|
||||||
}
|
}
|
||||||
ritbuf[rit_len] = '\0';
|
ritbuf[rit_len] = '\0';
|
||||||
|
ritbuf[0] = ' ';
|
||||||
|
ritbuf[1] = ' ';
|
||||||
|
ritbuf[2] = ' ';
|
||||||
|
|
||||||
*rit = atoi(ritbuf);
|
*rit = atoi(ritbuf);
|
||||||
|
|
||||||
|
@ -617,13 +625,13 @@ int alinco_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
if (retval != RIG_OK)
|
if (retval != RIG_OK)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
if (lvl_len != 5) {
|
if (lvl_len != 6) {
|
||||||
rig_debug(RIG_DEBUG_ERR,"alinco_get_level: wrong answer"
|
rig_debug(RIG_DEBUG_ERR,"alinco_get_level: wrong answer"
|
||||||
"len=%d\n", lvl_len);
|
"len=%d\n", lvl_len);
|
||||||
return -RIG_ERJCTED;
|
return -RIG_ERJCTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
lvlbuf[5] = '\0';
|
lvlbuf[6] = '\0';
|
||||||
val->i = atoi(lvlbuf+3);
|
val->i = atoi(lvlbuf+3);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Hamlib Alinco backend - DX77 description
|
* Hamlib Alinco backend - DX77 description
|
||||||
* Copyright (c) 2001-2003 by Stephane Fillod
|
* Copyright (c) 2001-2003 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: dx77.c,v 1.9 2003-12-08 08:37:39 fillods Exp $
|
* $Id: dx77.c,v 1.10 2004-02-15 00:30:29 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
|
||||||
|
@ -79,9 +79,9 @@ const struct rig_caps dx77_caps = {
|
||||||
.rig_model = RIG_MODEL_DX77,
|
.rig_model = RIG_MODEL_DX77,
|
||||||
.model_name = "DX-77",
|
.model_name = "DX-77",
|
||||||
.mfg_name = "Alinco",
|
.mfg_name = "Alinco",
|
||||||
.version = "0.2",
|
.version = "0.3",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_UNTESTED,
|
.status = RIG_STATUS_BETA,
|
||||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
.ptt_type = RIG_PTT_NONE,
|
.ptt_type = RIG_PTT_NONE,
|
||||||
.dcd_type = RIG_DCD_NONE,
|
.dcd_type = RIG_DCD_NONE,
|
||||||
|
@ -158,6 +158,7 @@ const struct rig_caps dx77_caps = {
|
||||||
/* mode/filter list, remember: order matters! */
|
/* mode/filter list, remember: order matters! */
|
||||||
.filters = {
|
.filters = {
|
||||||
{RIG_MODE_SSB|RIG_MODE_CW, kHz(2.7)},
|
{RIG_MODE_SSB|RIG_MODE_CW, kHz(2.7)},
|
||||||
|
{RIG_MODE_CW, kHz(0.5)},
|
||||||
{RIG_MODE_AM|RIG_MODE_FM, kHz(8)},
|
{RIG_MODE_AM|RIG_MODE_FM, kHz(8)},
|
||||||
{RIG_MODE_AM, kHz(2.7)},
|
{RIG_MODE_AM, kHz(2.7)},
|
||||||
RIG_FLT_END,
|
RIG_FLT_END,
|
||||||
|
|
Ładowanie…
Reference in New Issue