Added ECSS support to R8B and reconfigured default filter modes

git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@1800 7ae35d74-ebe9-4afe-98af-79ac388436b8
Hamlib-1.2.2
Mark J. Fine 2004-08-12 02:05:02 +00:00
rodzic 88758c164e
commit 69265579f6
2 zmienionych plików z 26 dodań i 15 usunięć

Wyświetl plik

@ -2,7 +2,7 @@
* Hamlib Drake backend - main file
* Copyright (c) 2001-2004 by Stephane Fillod
*
* $Id: drake.c,v 1.10 2004-08-08 20:14:03 fineware Exp $
* $Id: drake.c,v 1.11 2004-08-12 02:04:30 fineware 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
@ -61,8 +61,6 @@
/*
* drake_transaction
* We assume that rig!=NULL, rig->state!= NULL, data!=NULL, data_len!=NULL
*
* FIXME: this is a skeleton, rewrite me for Drake protocol
*/
int drake_transaction(RIG *rig, const char *cmd, int cmd_len, char *data, int *data_len)
{
@ -253,7 +251,9 @@ int drake_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
switch (mode) {
case RIG_MODE_CW: mode_sel = MD_CW; break;
case RIG_MODE_ECSSUSB:
case RIG_MODE_USB: mode_sel = MD_USB; break;
case RIG_MODE_ECSSLSB:
case RIG_MODE_LSB: mode_sel = MD_LSB; break;
case RIG_MODE_FM: mode_sel = MD_FM; break;
case RIG_MODE_AMS:
@ -291,8 +291,10 @@ int drake_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
retval = drake_transaction (rig, mdbuf, mdbuf_len, ackbuf, &ack_len);
}
if (mode == RIG_MODE_AMS || mode == RIG_MODE_AM) {
mdbuf_len = sprintf(mdbuf, "S%c" EOM, mode==RIG_MODE_AMS?'O':'F');
if ((mode == RIG_MODE_AMS) || (mode == RIG_MODE_ECSSUSB) || (mode == RIG_MODE_ECSSLSB) ||
(mode == RIG_MODE_AM) || (mode == RIG_MODE_USB) || (mode == RIG_MODE_LSB)) {
mdbuf_len = sprintf(mdbuf, "S%c" EOM,
((mode == RIG_MODE_AMS) || (mode==RIG_MODE_ECSSUSB) || (mode==RIG_MODE_ECSSLSB))?'O':'F');
retval = drake_transaction (rig, mdbuf, mdbuf_len, ackbuf, &ack_len);
}
@ -385,9 +387,16 @@ int drake_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
/*FIXME USB/LSB synch in R8B*/
if (csynch=='4'||csynch=='5'||csynch=='6'||csynch=='7'||
csynch=='<'||csynch=='='||csynch=='>'||csynch=='?')
*mode = RIG_MODE_AMS;
csynch=='<'||csynch=='='||csynch=='>'||csynch=='?') {
if (*mode == RIG_MODE_AM)
*mode = RIG_MODE_AMS;
else
if (*mode == RIG_MODE_USB)
*mode = RIG_MODE_ECSSUSB;
else
if (*mode == RIG_MODE_LSB)
*mode = RIG_MODE_ECSSLSB;
}
return RIG_OK;
}

Wyświetl plik

@ -2,7 +2,7 @@
* Hamlib Drake backend - R-8B description
* Copyright (c) 2001-2004 by Stephane Fillod
*
* $Id: r8b.c,v 1.7 2004-08-08 20:14:46 fineware Exp $
* $Id: r8b.c,v 1.8 2004-08-12 02:05:02 fineware 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
@ -30,7 +30,7 @@
#include "drake.h"
#define R8B_MODES (RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_RTTY|RIG_MODE_AM|RIG_MODE_AMS|RIG_MODE_FM)
#define R8B_MODES (RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_RTTY|RIG_MODE_AM|RIG_MODE_ECSS|RIG_MODE_FM)
#define R8B_FUNC (RIG_FUNC_MN|RIG_FUNC_LOCK|RIG_FUNC_NB)
@ -138,12 +138,14 @@ const struct rig_caps r8b_caps = {
},
/* mode/filter list, remember: order matters! */
.filters = {
{RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_RTTY|RIG_MODE_AM|RIG_MODE_AMS, kHz(2.3)}, /* normal */
{RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_RTTY|RIG_MODE_AM|RIG_MODE_AMS, kHz(6)}, /* wide */
{RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_RTTY|RIG_MODE_AM|RIG_MODE_AMS, kHz(4)},
{RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_RTTY|RIG_MODE_AM|RIG_MODE_AMS, kHz(1.8)}, /* narrow */
{RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_RTTY|RIG_MODE_AM|RIG_MODE_AMS, Hz(500)},
{RIG_MODE_FM, kHz(12)},
{RIG_MODE_AM|RIG_MODE_ECSS, kHz(6)},
{RIG_MODE_AM|RIG_MODE_ECSS, kHz(4)},
{RIG_MODE_SSB|RIG_MODE_RTTY, kHz(2.3)},
{RIG_MODE_SSB|RIG_MODE_RTTY, kHz(1.8)},
{RIG_MODE_SSB|RIG_MODE_RTTY, kHz(4)},
{RIG_MODE_CW, Hz(500)},
{RIG_MODE_CW, kHz(1.8)},
RIG_FLT_END,
},
.str_cal = R8B_STR_CAL,