kopia lustrzana https://github.com/Hamlib/Hamlib
Patch ID:2845171 "Initial changes to get the AOR8000 working"
by JohnU (johncunderwood) git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2730 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.10
rodzic
bbafe261fd
commit
1a12ca681f
61
aor/aor.c
61
aor/aor.c
|
@ -183,6 +183,10 @@ int aor_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
rfp = strstr(freqbuf, "RF");
|
rfp = strstr(freqbuf, "RF");
|
||||||
|
if (!rfp && rig->caps->rig_model == RIG_MODEL_AR8000)
|
||||||
|
rfp = strstr(freqbuf, "VA");
|
||||||
|
if (!rfp && rig->caps->rig_model == RIG_MODEL_AR8000)
|
||||||
|
rfp = strstr(freqbuf, "VB");
|
||||||
if (!rfp) {
|
if (!rfp) {
|
||||||
rig_debug(RIG_DEBUG_WARN, "NO RF in returned string in aor_get_freq: '%s'\n",
|
rig_debug(RIG_DEBUG_WARN, "NO RF in returned string in aor_get_freq: '%s'\n",
|
||||||
freqbuf);
|
freqbuf);
|
||||||
|
@ -203,7 +207,16 @@ int aor_set_vfo(RIG *rig, vfo_t vfo)
|
||||||
char *vfocmd;
|
char *vfocmd;
|
||||||
|
|
||||||
switch (vfo) {
|
switch (vfo) {
|
||||||
case RIG_VFO_VFO: vfocmd = "VF" EOM; break;
|
case RIG_VFO_VFO:
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_AR8000)
|
||||||
|
{
|
||||||
|
vfocmd = "RF" EOM;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
vfocmd = "VF" EOM;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case RIG_VFO_A: vfocmd = "VA" EOM; break;
|
case RIG_VFO_A: vfocmd = "VA" EOM; break;
|
||||||
case RIG_VFO_B: vfocmd = "VB" EOM; break;
|
case RIG_VFO_B: vfocmd = "VB" EOM; break;
|
||||||
case RIG_VFO_C: vfocmd = "VC" EOM; break;
|
case RIG_VFO_C: vfocmd = "VC" EOM; break;
|
||||||
|
@ -233,6 +246,28 @@ int aor_get_vfo(RIG *rig, vfo_t *vfo)
|
||||||
if (retval != RIG_OK)
|
if (retval != RIG_OK)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_AR8000)
|
||||||
|
{
|
||||||
|
switch (vfobuf[0])
|
||||||
|
{
|
||||||
|
case 'S':
|
||||||
|
case 'D':
|
||||||
|
*vfo = RIG_VFO_VFO;
|
||||||
|
break;
|
||||||
|
case 'V':
|
||||||
|
*vfo = RIG_VFO_N(vfobuf[4]-'A');
|
||||||
|
break;
|
||||||
|
case 'M':
|
||||||
|
*vfo = RIG_VFO_MEM;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"aor_get_vfo: unknown vfo %s\n",
|
||||||
|
vfobuf);
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
switch (vfobuf[1]) {
|
switch (vfobuf[1]) {
|
||||||
case 'S':
|
case 'S':
|
||||||
case 'V':
|
case 'V':
|
||||||
|
@ -248,6 +283,7 @@ int aor_get_vfo(RIG *rig, vfo_t *vfo)
|
||||||
vfobuf[1]);
|
vfobuf[1]);
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return RIG_OK;
|
return RIG_OK;
|
||||||
}
|
}
|
||||||
|
@ -258,6 +294,12 @@ int format8k_mode(RIG *rig, char *buf, rmode_t mode, pbwidth_t width)
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case RIG_MODE_AM:
|
case RIG_MODE_AM:
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_AR8000)
|
||||||
|
{
|
||||||
|
aormode = AR8K_AM;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
switch(width) {
|
switch(width) {
|
||||||
case RIG_PASSBAND_NORMAL:
|
case RIG_PASSBAND_NORMAL:
|
||||||
case s_kHz(9): aormode = AR8K_AM; break;
|
case s_kHz(9): aormode = AR8K_AM; break;
|
||||||
|
@ -271,12 +313,19 @@ int format8k_mode(RIG *rig, char *buf, rmode_t mode, pbwidth_t width)
|
||||||
mode, width);
|
mode, width);
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case RIG_MODE_CW: aormode = AR8K_CW; break;
|
case RIG_MODE_CW: aormode = AR8K_CW; break;
|
||||||
case RIG_MODE_USB: aormode = AR8K_USB; break;
|
case RIG_MODE_USB: aormode = AR8K_USB; break;
|
||||||
case RIG_MODE_LSB: aormode = AR8K_LSB; break;
|
case RIG_MODE_LSB: aormode = AR8K_LSB; break;
|
||||||
case RIG_MODE_WFM: aormode = AR8K_WFM; break;
|
case RIG_MODE_WFM: aormode = AR8K_WFM; break;
|
||||||
case RIG_MODE_FM:
|
case RIG_MODE_FM:
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_AR8000)
|
||||||
|
{
|
||||||
|
aormode = AR8K_NFM;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
switch(width) {
|
switch(width) {
|
||||||
case RIG_PASSBAND_NORMAL:
|
case RIG_PASSBAND_NORMAL:
|
||||||
case s_kHz(12): aormode = AR8K_NFM; break;
|
case s_kHz(12): aormode = AR8K_NFM; break;
|
||||||
|
@ -288,6 +337,7 @@ int format8k_mode(RIG *rig, char *buf, rmode_t mode, pbwidth_t width)
|
||||||
__FUNCTION__,
|
__FUNCTION__,
|
||||||
mode, width);
|
mode, width);
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -311,6 +361,8 @@ int aor_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||||
int mdbuf_len, mdbuf2_len, retval;
|
int mdbuf_len, mdbuf2_len, retval;
|
||||||
|
|
||||||
mdbuf_len = priv->format_mode(rig, mdbuf, mode, width);
|
mdbuf_len = priv->format_mode(rig, mdbuf, mode, width);
|
||||||
|
// Return on error
|
||||||
|
if(mdbuf_len<0) return mdbuf_len;
|
||||||
|
|
||||||
strcpy(mdbuf+mdbuf_len, EOM);
|
strcpy(mdbuf+mdbuf_len, EOM);
|
||||||
mdbuf_len += strlen(EOM);
|
mdbuf_len += strlen(EOM);
|
||||||
|
@ -532,7 +584,14 @@ int aor_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
unsigned att;
|
unsigned att;
|
||||||
if (ack_len < 4 || ackbuf[0] != 'A' || ackbuf[1] != 'T')
|
if (ack_len < 4 || ackbuf[0] != 'A' || ackbuf[1] != 'T')
|
||||||
return -RIG_EPROTO;
|
return -RIG_EPROTO;
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_AR8000)
|
||||||
|
{
|
||||||
|
att = ackbuf[2]-'0';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
att = ackbuf[3]-'0';
|
att = ackbuf[3]-'0';
|
||||||
|
}
|
||||||
if (att == 0) {
|
if (att == 0) {
|
||||||
val->i = 0;
|
val->i = 0;
|
||||||
break;
|
break;
|
||||||
|
|
19
aor/ar8000.c
19
aor/ar8000.c
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Hamlib AOR backend - AR8000 description
|
* Hamlib AOR backend - AR8000 description
|
||||||
* Copyright (c) 2000-2008 by Stephane Fillod
|
* Copyright (c) 2000-2009 by Stephane Fillod
|
||||||
*
|
*
|
||||||
* $Id: ar8000.c,v 1.7 2008-04-11 17:10:45 fillods Exp $
|
* $Id: ar8000.c,v 1.7 2008-04-11 17:10:45 fillods Exp $
|
||||||
*
|
*
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
|
|
||||||
#define AR8000_FUNC_ALL (RIG_FUNC_TSQL|RIG_FUNC_ABM|RIG_FUNC_AFC)
|
#define AR8000_FUNC_ALL (RIG_FUNC_TSQL|RIG_FUNC_ABM|RIG_FUNC_AFC)
|
||||||
|
|
||||||
#define AR8000_LEVEL (RIG_LEVEL_ATT|RIG_LEVEL_AGC|RIG_LEVEL_SQL|RIG_LEVEL_RAWSTR)
|
#define AR8000_LEVEL (RIG_LEVEL_ATT|RIG_LEVEL_RAWSTR)
|
||||||
|
|
||||||
#define AR8000_PARM (RIG_PARM_APO|RIG_PARM_BACKLIGHT|RIG_PARM_BEEP)
|
#define AR8000_PARM (RIG_PARM_APO|RIG_PARM_BACKLIGHT|RIG_PARM_BEEP)
|
||||||
|
|
||||||
|
@ -50,6 +50,12 @@
|
||||||
{ 0xff, 60 } \
|
{ 0xff, 60 } \
|
||||||
} }
|
} }
|
||||||
|
|
||||||
|
static const struct aor_priv_caps ar8000_priv_caps = {
|
||||||
|
.format_mode = format8k_mode,
|
||||||
|
.parse_aor_mode = parse8k_aor_mode,
|
||||||
|
.bank_base1 = 'A',
|
||||||
|
.bank_base2 = 'a',
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ar8000 rig capabilities.
|
* ar8000 rig capabilities.
|
||||||
|
@ -62,9 +68,9 @@ const struct rig_caps ar8000_caps = {
|
||||||
.rig_model = RIG_MODEL_AR8000,
|
.rig_model = RIG_MODEL_AR8000,
|
||||||
.model_name = "AR8000",
|
.model_name = "AR8000",
|
||||||
.mfg_name = "AOR",
|
.mfg_name = "AOR",
|
||||||
.version = BACKEND_VER,
|
.version = BACKEND_VER ".1",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_UNTESTED,
|
.status = RIG_STATUS_BETA,
|
||||||
.rig_type = RIG_TYPE_SCANNER,
|
.rig_type = RIG_TYPE_SCANNER,
|
||||||
.ptt_type = RIG_PTT_NONE,
|
.ptt_type = RIG_PTT_NONE,
|
||||||
.dcd_type = RIG_DCD_RIG,
|
.dcd_type = RIG_DCD_RIG,
|
||||||
|
@ -90,7 +96,7 @@ const struct rig_caps ar8000_caps = {
|
||||||
.ctcss_list = NULL, /* FIXME: CTCSS list */
|
.ctcss_list = NULL, /* FIXME: CTCSS list */
|
||||||
.dcs_list = NULL,
|
.dcs_list = NULL,
|
||||||
.preamp = { RIG_DBLST_END, },
|
.preamp = { RIG_DBLST_END, },
|
||||||
.attenuator = { 20, RIG_DBLST_END, }, /* TBC */
|
.attenuator = { 10, RIG_DBLST_END, },
|
||||||
.max_rit = Hz(0),
|
.max_rit = Hz(0),
|
||||||
.max_xit = Hz(0),
|
.max_xit = Hz(0),
|
||||||
.max_ifshift = Hz(0),
|
.max_ifshift = Hz(0),
|
||||||
|
@ -146,7 +152,8 @@ const struct rig_caps ar8000_caps = {
|
||||||
RIG_FLT_END,
|
RIG_FLT_END,
|
||||||
},
|
},
|
||||||
|
|
||||||
.priv = NULL,
|
.priv = (void*)&ar8000_priv_caps,
|
||||||
|
|
||||||
.rig_init = NULL,
|
.rig_init = NULL,
|
||||||
.rig_cleanup = NULL,
|
.rig_cleanup = NULL,
|
||||||
.rig_open = NULL,
|
.rig_open = NULL,
|
||||||
|
|
Ładowanie…
Reference in New Issue