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;
|
||||
|
||||
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) {
|
||||
rig_debug(RIG_DEBUG_WARN, "NO RF in returned string in aor_get_freq: '%s'\n",
|
||||
freqbuf);
|
||||
|
@ -203,7 +207,16 @@ int aor_set_vfo(RIG *rig, vfo_t vfo)
|
|||
char *vfocmd;
|
||||
|
||||
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_B: vfocmd = "VB" 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)
|
||||
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]) {
|
||||
case 'S':
|
||||
case 'V':
|
||||
|
@ -248,6 +283,7 @@ int aor_get_vfo(RIG *rig, vfo_t *vfo)
|
|||
vfobuf[1]);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
@ -258,6 +294,12 @@ int format8k_mode(RIG *rig, char *buf, rmode_t mode, pbwidth_t width)
|
|||
|
||||
switch (mode) {
|
||||
case RIG_MODE_AM:
|
||||
if (rig->caps->rig_model == RIG_MODEL_AR8000)
|
||||
{
|
||||
aormode = AR8K_AM;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(width) {
|
||||
case RIG_PASSBAND_NORMAL:
|
||||
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);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case RIG_MODE_CW: aormode = AR8K_CW; break;
|
||||
case RIG_MODE_USB: aormode = AR8K_USB; break;
|
||||
case RIG_MODE_LSB: aormode = AR8K_LSB; break;
|
||||
case RIG_MODE_WFM: aormode = AR8K_WFM; break;
|
||||
case RIG_MODE_FM:
|
||||
if (rig->caps->rig_model == RIG_MODEL_AR8000)
|
||||
{
|
||||
aormode = AR8K_NFM;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(width) {
|
||||
case RIG_PASSBAND_NORMAL:
|
||||
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__,
|
||||
mode, width);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
}
|
||||
break;
|
||||
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;
|
||||
|
||||
mdbuf_len = priv->format_mode(rig, mdbuf, mode, width);
|
||||
// Return on error
|
||||
if(mdbuf_len<0) return mdbuf_len;
|
||||
|
||||
strcpy(mdbuf+mdbuf_len, 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;
|
||||
if (ack_len < 4 || ackbuf[0] != 'A' || ackbuf[1] != 'T')
|
||||
return -RIG_EPROTO;
|
||||
if (rig->caps->rig_model == RIG_MODEL_AR8000)
|
||||
{
|
||||
att = ackbuf[2]-'0';
|
||||
}
|
||||
else
|
||||
{
|
||||
att = ackbuf[3]-'0';
|
||||
}
|
||||
if (att == 0) {
|
||||
val->i = 0;
|
||||
break;
|
||||
|
|
19
aor/ar8000.c
19
aor/ar8000.c
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* 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 $
|
||||
*
|
||||
|
@ -34,7 +34,7 @@
|
|||
|
||||
#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)
|
||||
|
||||
|
@ -50,6 +50,12 @@
|
|||
{ 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.
|
||||
|
@ -62,9 +68,9 @@ const struct rig_caps ar8000_caps = {
|
|||
.rig_model = RIG_MODEL_AR8000,
|
||||
.model_name = "AR8000",
|
||||
.mfg_name = "AOR",
|
||||
.version = BACKEND_VER,
|
||||
.version = BACKEND_VER ".1",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_UNTESTED,
|
||||
.status = RIG_STATUS_BETA,
|
||||
.rig_type = RIG_TYPE_SCANNER,
|
||||
.ptt_type = RIG_PTT_NONE,
|
||||
.dcd_type = RIG_DCD_RIG,
|
||||
|
@ -90,7 +96,7 @@ const struct rig_caps ar8000_caps = {
|
|||
.ctcss_list = NULL, /* FIXME: CTCSS list */
|
||||
.dcs_list = NULL,
|
||||
.preamp = { RIG_DBLST_END, },
|
||||
.attenuator = { 20, RIG_DBLST_END, }, /* TBC */
|
||||
.attenuator = { 10, RIG_DBLST_END, },
|
||||
.max_rit = Hz(0),
|
||||
.max_xit = Hz(0),
|
||||
.max_ifshift = Hz(0),
|
||||
|
@ -146,7 +152,8 @@ const struct rig_caps ar8000_caps = {
|
|||
RIG_FLT_END,
|
||||
},
|
||||
|
||||
.priv = NULL,
|
||||
.priv = (void*)&ar8000_priv_caps,
|
||||
|
||||
.rig_init = NULL,
|
||||
.rig_cleanup = NULL,
|
||||
.rig_open = NULL,
|
||||
|
|
Ładowanie…
Reference in New Issue