kopia lustrzana https://github.com/Hamlib/Hamlib
TT550 patch from Ken, N7IPB
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@1684 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.0
rodzic
f0bd7c1d4a
commit
b16c10a90e
|
@ -1,7 +1,7 @@
|
|||
TENTECSRCLIST = rx320.c pegasus.c argonaut.c
|
||||
|
||||
lib_LTLIBRARIES = hamlib-tentec.la
|
||||
hamlib_tentec_la_SOURCES = $(TENTECSRCLIST) tentec.c tentec2.c
|
||||
hamlib_tentec_la_SOURCES = $(TENTECSRCLIST) tentec.c tentec2.c tt550.c
|
||||
hamlib_tentec_la_LDFLAGS = -no-undefined -module -avoid-version
|
||||
hamlib_tentec_la_LIBADD = $(top_builddir)/src/libhamlib.la
|
||||
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
tt550 TODO (Ken, N7IPB):
|
||||
Support for multiple VFO's and Memories. The TT550 doesn't
|
||||
really have VFO's or Memories since it's strictly a software
|
||||
controlled radio, but they can easily be simulated in software.
|
||||
I already support a split mode since the TX and RX control is
|
||||
separate. Adding support for VFO-A, VFO-B and memory channels
|
||||
will be done next.
|
||||
|
||||
The optional encoder with keypad is supported for changing frequency
|
||||
only, along with F1 changing the stepsize. The other function keys
|
||||
have no current assignments. I can add hard-coded Function keys as
|
||||
I did with F1 but maybe a more generic solution can be determined.
|
||||
|
||||
In addition the keypad is not supported. Hamlib has no apparent way
|
||||
to make use of the numeric keys. We probably need to add a callback
|
||||
for key data.
|
||||
|
||||
IF-Shift: IF-Shift code is in place but I see no way in hamlib to make
|
||||
use of it. The Icom dual pass-band tuning is supported, but not just
|
||||
simple IF shift. Or maybe I just missed something.
|
||||
|
||||
TX Audio Monitor Volume - no hamlib support - RIG_LEVEL_TX_MON?
|
||||
CW Sidetone Volume - no hamlib support - RIG_LEVEL_SIDETONE?
|
||||
Transmit Audio Source and Volume select - no hamlib support - RIG_LEVEL_LINEIN?
|
||||
CW Spot Level - no hamlib support - RIG_LEVEL_CW_SPOT?
|
||||
Enable/Disable Amplifier keying loop - no hamlib support - RIG_FUNC_AMP?
|
235
tentec/pegasus.c
235
tentec/pegasus.c
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* Hamlib TenTenc backend - TT-550 PC-Radio description
|
||||
* Copyright (c) 2002-2003 by Stephane Fillod
|
||||
* Copyright (c) 2002-2004 by Stephane Fillod
|
||||
*
|
||||
* $Id: pegasus.c,v 1.5 2003-12-08 08:38:18 fillods Exp $
|
||||
* $Id: pegasus.c,v 1.6 2004-02-09 22:10:21 fillods 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
|
||||
|
@ -29,21 +29,30 @@
|
|||
#include <hamlib/rig.h>
|
||||
#include "idx_builtin.h"
|
||||
#include "tentec.h"
|
||||
#include "tt550.h"
|
||||
|
||||
|
||||
#define TT550_MODES (RIG_MODE_FM|RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_RTTY)
|
||||
#define TT550_RXMODES (TT550_MODES|RIG_MODE_AM)
|
||||
#define TT550_MODES (RIG_MODE_FM|RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_AM)
|
||||
#define TT550_RXMODES (TT550_MODES)
|
||||
|
||||
#define TT550_FUNCS (RIG_FUNC_FAGC|RIG_FUNC_VOX|RIG_FUNC_ANF| \
|
||||
RIG_FUNC_NR|RIG_FUNC_NB|RIG_FUNC_COMP)
|
||||
#define TT550_FUNCS (RIG_FUNC_VOX|RIG_FUNC_ANF|RIG_FUNC_TUNER| \
|
||||
RIG_FUNC_NR|RIG_FUNC_VOX)
|
||||
|
||||
#define TT550_LEVELS (RIG_LEVEL_AGC|RIG_LEVEL_AF|RIG_LEVEL_RAWSTR| \
|
||||
#ifndef RIG_LEVEL_LINEOUT
|
||||
#define RIG_LEVEL_LINEOUT 0
|
||||
#endif
|
||||
|
||||
#define TT550_LEVELS (RIG_LEVEL_AGC|RIG_LEVEL_AF|RIG_LEVEL_RAWSTR|RIG_LEVEL_STRENGTH| \
|
||||
RIG_LEVEL_RF|RIG_LEVEL_COMP|RIG_LEVEL_VOX|RIG_LEVEL_SQL| \
|
||||
RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN|RIG_LEVEL_KEYSPD| \
|
||||
RIG_LEVEL_SWR|RIG_LEVEL_ATT)
|
||||
RIG_LEVEL_SWR|RIG_LEVEL_ATT|RIG_LEVEL_NR| \
|
||||
RIG_LEVEL_VOXGAIN|RIG_LEVEL_VOXDELAY|RIG_LEVEL_ANTIVOX| \
|
||||
RIG_LEVEL_LINEOUT)
|
||||
|
||||
#define TT550_VFO (RIG_VFO_A)
|
||||
|
||||
|
||||
#define TT550_VFO (RIG_VFO_A )
|
||||
#define TT550_VFO_OPS (RIG_OP_TUNE)
|
||||
/*
|
||||
* a bit coarse, but I don't have a TT550, and the manual is not
|
||||
* verbose on the subject. Please test it and report! --SF
|
||||
|
@ -62,102 +71,156 @@
|
|||
* TODO:
|
||||
*/
|
||||
const struct rig_caps tt550_caps = {
|
||||
.rig_model = RIG_MODEL_TT550,
|
||||
.model_name = "TT-550",
|
||||
.mfg_name = "Ten-Tec",
|
||||
.version = "0.1",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_UNTESTED,
|
||||
.rig_type = RIG_TYPE_COMPUTER,
|
||||
.ptt_type = RIG_PTT_NONE,
|
||||
.dcd_type = RIG_DCD_NONE,
|
||||
.port_type = RIG_PORT_SERIAL,
|
||||
.serial_rate_min = 57600,
|
||||
.serial_rate_max = 57600,
|
||||
.serial_data_bits = 8,
|
||||
.serial_stop_bits = 1,
|
||||
.serial_parity = RIG_PARITY_NONE,
|
||||
.serial_handshake = RIG_HANDSHAKE_HARDWARE,
|
||||
.write_delay = 0,
|
||||
.post_write_delay = 0,
|
||||
.timeout = 200,
|
||||
.retry = 3,
|
||||
.rig_model = RIG_MODEL_TT550,
|
||||
.model_name = "TT-550",
|
||||
.mfg_name = "Ten-Tec",
|
||||
.version = "0.2",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_BETA,
|
||||
.rig_type = RIG_TYPE_COMPUTER,
|
||||
.ptt_type = RIG_PTT_RIG,
|
||||
.dcd_type = RIG_DCD_NONE,
|
||||
.port_type = RIG_PORT_SERIAL,
|
||||
.serial_rate_min = 57600,
|
||||
.serial_rate_max = 57600,
|
||||
.serial_data_bits = 8,
|
||||
.serial_stop_bits = 1,
|
||||
.serial_parity = RIG_PARITY_NONE,
|
||||
.serial_handshake = RIG_HANDSHAKE_HARDWARE,
|
||||
.write_delay = 0,
|
||||
.post_write_delay = 0,
|
||||
.timeout = 30,
|
||||
.retry = 3,
|
||||
|
||||
.has_get_func = TT550_FUNCS,
|
||||
.has_set_func = TT550_FUNCS,
|
||||
.has_get_level = TT550_LEVELS,
|
||||
.has_set_level = RIG_LEVEL_SET(TT550_LEVELS),
|
||||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE,
|
||||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 99999 } },
|
||||
},
|
||||
.parm_gran = {},
|
||||
.ctcss_list = NULL,
|
||||
.dcs_list = NULL,
|
||||
.preamp = { RIG_DBLST_END },
|
||||
.attenuator = { 20, RIG_DBLST_END },
|
||||
.max_rit = Hz(0),
|
||||
.max_xit = Hz(0),
|
||||
.max_ifshift = Hz(0),
|
||||
.targetable_vfo = 0,
|
||||
.transceive = RIG_TRN_OFF,
|
||||
.bank_qty = 0,
|
||||
.chan_desc_sz = 0,
|
||||
.has_get_func = TT550_FUNCS,
|
||||
.has_set_func = TT550_FUNCS,
|
||||
.has_get_level = TT550_LEVELS,
|
||||
.has_set_level = RIG_LEVEL_SET (TT550_LEVELS),
|
||||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE,
|
||||
.level_gran = {
|
||||
[LVL_RAWSTR] = {.min = {.i = 0},.max = {.i = 65535}},
|
||||
},
|
||||
.parm_gran = {},
|
||||
.ctcss_list = NULL,
|
||||
.dcs_list = NULL,
|
||||
.preamp = {RIG_DBLST_END},
|
||||
.attenuator = {20, RIG_DBLST_END},
|
||||
.max_rit = Hz (10000),
|
||||
.max_xit = Hz (10000),
|
||||
.max_ifshift = Hz (2000),
|
||||
.targetable_vfo = RIG_TARGETABLE_ALL,
|
||||
.vfo_ops = TT550_VFO_OPS,
|
||||
.transceive = RIG_TRN_RIG,
|
||||
.bank_qty = 0,
|
||||
.chan_desc_sz = 0,
|
||||
|
||||
.chan_list = {
|
||||
.chan_list = {
|
||||
RIG_CHAN_END,
|
||||
},
|
||||
|
||||
.rx_range_list1 = { RIG_FRNG_END, }, /* FIXME: enter region 1 setting */
|
||||
.tx_range_list1 = { RIG_FRNG_END, },
|
||||
.rx_range_list1 = {RIG_FRNG_END,}, /* FIXME: enter region 1 setting */
|
||||
.tx_range_list1 = {RIG_FRNG_END,},
|
||||
|
||||
.rx_range_list2 = {
|
||||
{kHz(100),MHz(30),TT550_RXMODES,-1,-1,TT550_VFO},
|
||||
.rx_range_list2 = {
|
||||
{kHz (100), MHz (30), TT550_RXMODES, -1, -1, TT550_VFO},
|
||||
RIG_FRNG_END,
|
||||
},
|
||||
.tx_range_list2 = {
|
||||
{kHz(1800),MHz(2)-1,TT550_MODES,5000,100000,TT550_VFO},
|
||||
{kHz(3500),MHz(4)-1,TT550_MODES,5000,100000,TT550_VFO},
|
||||
{MHz(7),kHz(7300),TT550_MODES,5000,100000,TT550_VFO},
|
||||
{kHz(10100),kHz(10150),TT550_MODES,5000,100000,TT550_VFO},
|
||||
{MHz(14),kHz(14350),TT550_MODES,5000,100000,TT550_VFO},
|
||||
{kHz(18068),kHz(18168),TT550_MODES,5000,100000,TT550_VFO},
|
||||
{MHz(21),kHz(21450),TT550_MODES,5000,100000,TT550_VFO},
|
||||
{kHz(24890),kHz(24990),TT550_MODES,5000,100000,TT550_VFO},
|
||||
{MHz(28),kHz(29700),TT550_MODES,5000,100000,TT550_VFO},
|
||||
.tx_range_list2 = {
|
||||
{kHz (1800), MHz (2) - 1, TT550_MODES, 5000, 100000, TT550_VFO},
|
||||
{kHz (3500), MHz (4) - 1, TT550_MODES, 5000, 100000, TT550_VFO},
|
||||
{kHz (5330), kHz (5407) - 1, RIG_MODE_USB, 5000, 50000, TT550_VFO},
|
||||
{MHz (7), kHz (7300), TT550_MODES, 5000, 100000, TT550_VFO},
|
||||
{kHz (10100), kHz (10150), TT550_MODES, 5000, 100000, TT550_VFO},
|
||||
{MHz (14), kHz (14350), TT550_MODES, 5000, 100000, TT550_VFO},
|
||||
{kHz (18068), kHz (18168), TT550_MODES, 5000, 100000, TT550_VFO},
|
||||
{MHz (21), kHz (21450), TT550_MODES, 5000, 100000, TT550_VFO},
|
||||
{kHz (24890), kHz (24990), TT550_MODES, 5000, 100000, TT550_VFO},
|
||||
{MHz (28), kHz (29700), TT550_MODES, 5000, 100000, TT550_VFO},
|
||||
RIG_FRNG_END,
|
||||
},
|
||||
|
||||
.tuning_steps = {
|
||||
{TT550_RXMODES,1},
|
||||
.tuning_steps = {
|
||||
{TT550_RXMODES, RIG_TS_ANY},
|
||||
RIG_TS_END,
|
||||
},
|
||||
/* mode/filter list, remember: order matters! */
|
||||
.filters = {
|
||||
/* FIXME: add increments -> 34 filters? */
|
||||
{RIG_MODE_SSB|RIG_MODE_RTTY, kHz(3)},
|
||||
{RIG_MODE_CW, 300},
|
||||
{RIG_MODE_AM|RIG_MODE_FM, kHz(8)},
|
||||
.filters = {
|
||||
{RIG_MODE_CW, Hz (450)},
|
||||
{RIG_MODE_CW, Hz (300)},
|
||||
{RIG_MODE_CW, Hz (750)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM, kHz (6)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM, Hz (4200)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM, kHz (8)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(2400)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(2700)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(2100)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(5700)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(5400)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(5100)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(4800)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(4500)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(4200)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(3900)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(3600)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(3300)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(2850)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(8000)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(2550)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(2400)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(2250)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(6000)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(1950)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(1800)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(1650)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(1500)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(1350)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(1200)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(1050)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(900)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(750)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(675)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(600)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(525)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(450)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(375)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(330)},
|
||||
{RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_CW, Hz(300)},
|
||||
RIG_FLT_END,
|
||||
},
|
||||
.str_cal = TT550_STR_CAL,
|
||||
|
||||
.rig_init = tentec_init,
|
||||
.rig_cleanup = tentec_cleanup,
|
||||
.rig_open = tentec_trx_open,
|
||||
.set_freq = tentec_set_freq,
|
||||
.get_freq = tentec_get_freq,
|
||||
.set_mode = tentec_set_mode,
|
||||
.get_mode = tentec_get_mode,
|
||||
.set_level = tentec_set_level,
|
||||
.get_level = tentec_get_level,
|
||||
.get_info = tentec_get_info,
|
||||
.str_cal = TT550_STR_CAL,
|
||||
|
||||
.rig_init = tt550_init,
|
||||
.rig_cleanup = tt550_cleanup,
|
||||
.rig_open = tt550_trx_open,
|
||||
.reset = tt550_reset,
|
||||
.set_freq = tt550_set_freq,
|
||||
.get_freq = tt550_get_freq,
|
||||
.set_mode = tt550_set_mode,
|
||||
.get_mode = tt550_get_mode,
|
||||
.set_func = tt550_set_func,
|
||||
.get_func = tt550_get_func,
|
||||
.set_level = tt550_set_level,
|
||||
.get_level = tt550_get_level,
|
||||
.get_info = tt550_get_info,
|
||||
.set_ptt = tt550_set_ptt,
|
||||
.get_ptt = tt550_get_ptt,
|
||||
.set_split_freq = tt550_set_tx_freq,
|
||||
.get_split_freq = tt550_get_tx_freq,
|
||||
.set_split_mode = tt550_set_tx_mode,
|
||||
.get_split_mode = tt550_get_tx_mode,
|
||||
.set_split_vfo = tt550_set_split_vfo,
|
||||
.get_split_vfo = tt550_get_split_vfo,
|
||||
.decode_event = tt550_decode_event,
|
||||
.set_ts = tt550_set_tuning_step,
|
||||
.get_ts = tt550_get_tuning_step,
|
||||
.vfo_op = tt550_vfo_op,
|
||||
.set_rit = tt550_set_rit,
|
||||
.get_rit = tt550_get_rit,
|
||||
.set_xit = tt550_set_xit,
|
||||
.get_xit = tt550_get_xit,
|
||||
};
|
||||
|
||||
/*
|
||||
* Function definitions below
|
||||
*/
|
||||
|
||||
|
||||
|
|
Plik diff jest za duży
Load Diff
|
@ -0,0 +1,153 @@
|
|||
/*
|
||||
* Hamlib Tentec backend - main header
|
||||
* Copyright (c) 2001-2004 by Stephane Fillod
|
||||
*
|
||||
* $Id: tt550.h,v 1.1 2004-02-09 22:11:08 fillods 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
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _TT550_H
|
||||
#define _TT550_H 1
|
||||
|
||||
#include <hamlib/rig.h>
|
||||
#include <cal.h>
|
||||
|
||||
|
||||
#define EOM "\015" /* CR */
|
||||
|
||||
#define TT_AM '0'
|
||||
#define TT_USB '1'
|
||||
#define TT_LSB '2'
|
||||
#define TT_CW '3'
|
||||
#define TT_FM '4'
|
||||
|
||||
/*
|
||||
* Transmit and receive flags used by tt550_tuning_factor_calc
|
||||
* to modify behavior for transmit versus receive vfo's
|
||||
*/
|
||||
#define RECEIVE 0
|
||||
#define TRANSMIT 1
|
||||
|
||||
|
||||
/*
|
||||
* Transmitter control operations
|
||||
*/
|
||||
#define DISABLE_TX '0'
|
||||
#define ENABLE_TX '1'
|
||||
#define DISABLE_AMP '2'
|
||||
#define ENABLE_AMP '3'
|
||||
#define ENABLE_KEYER '6'
|
||||
#define DISABLE_KEYER '7'
|
||||
#define DISABLE_KEEPALIVE '8'
|
||||
#define ENABLE_KEEPALIVE '9'
|
||||
|
||||
/* This is needed until we come up with a way to guarantee that the
|
||||
** KEEPALIVE mechanism of the Pegasus is met.
|
||||
*/
|
||||
#define BYPASS_KEEPALIVE 1
|
||||
|
||||
#define KEY_F1_DOWN 0x11
|
||||
#define KEY_F2_DOWN 0x12
|
||||
#define KEY_F3_DOWN 0x13
|
||||
#define KEY_F1_UP 0x91
|
||||
#define KEY_F2_UP 0x92
|
||||
#define KEY_F3_UP 0x93
|
||||
|
||||
struct tt550_priv_data
|
||||
{
|
||||
rmode_t tx_mode; /* transmitter mode - may be different from receiver in split mode */
|
||||
rmode_t rx_mode; /* Current RX Mode */
|
||||
freq_t tx_freq; /* tuned transmitter frequency - may be different from
|
||||
* 'freq' when in split mode
|
||||
*/
|
||||
freq_t rx_freq; /* Current RX Frequency */
|
||||
shortfreq_t rit; /* Current RIT Value */
|
||||
shortfreq_t xit; /* Current XIT Value */
|
||||
shortfreq_t pbtadj; /* Current pass band tuning value */
|
||||
pbwidth_t width; /* filter bandwidth in Hz */
|
||||
pbwidth_t tx_width; /* transmit filter bandwidth in Hz */
|
||||
int pb; /* RX passband offset in Hz 0 [0-10000] */
|
||||
int cwbfo; /* BFO frequency: 700 [0-2000Hz] */
|
||||
int tx_cwbfo; /* TX_BFO frequency: 700 [0-2000Hz] */
|
||||
float lineout; /* line-out volume: 30 [0..63] */
|
||||
float spkvol; /* speaker volume: 30 [0..63] */
|
||||
int agc; /* AGC: medium */
|
||||
float rflevel; /* RF Gain Level: [0..255] */
|
||||
float sql; /* Squelch: [0..255] */
|
||||
int att; /* Attenuator level [0..1] */
|
||||
int keyspd; /* Keyer speed: [0..255] */
|
||||
float nr; /* Noise reduction: [0..1] */
|
||||
float autonotch; /* Autonotch filter: [0..1] */
|
||||
float rfpower; /* RF Power: [0..255] */
|
||||
float speechcomp; /* Speech compressor: [0..127] */
|
||||
float voxgain; /* Vox Gain: [0..255] */
|
||||
float voxdelay; /* Vox delay: [0..255] */
|
||||
float antivox; /* AntiVox gain: [0..255] */
|
||||
float mikegain; /* Microphone gain: [0..15] */
|
||||
float bkindl; /* CW QSK level */
|
||||
int split; /* split - ON/OFF */
|
||||
shortfreq_t stepsize; /*current step size */
|
||||
int anf; /* ANF on/off 1/0 */
|
||||
int en_nr; /* Noise Reduction on/off 1/0 */
|
||||
int tuner; /* automatic tuner on/off 1/0 */
|
||||
int vox; /* VOX on/off 1/0 */
|
||||
|
||||
/* calculated by tt550_tuning_factor_calc() */
|
||||
int ctf; /* Coarse Tune Factor */
|
||||
int ftf; /* Fine Tune Factor */
|
||||
int btf; /* Bfo Tune Factor, btval is ignored by RX-320 in AM MODE */
|
||||
|
||||
/* S-meter calibration data */
|
||||
cal_table_t str_cal;
|
||||
};
|
||||
|
||||
int tt550_init (RIG * rig);
|
||||
int tt550_cleanup (RIG * rig);
|
||||
int tt550_trx_open (RIG * rig);
|
||||
int tt550_reset(RIG * rig, reset_t reset);
|
||||
int tt550_set_freq (RIG * rig, vfo_t vfo, freq_t freq);
|
||||
int tt550_get_freq (RIG * rig, vfo_t vfo, freq_t * freq);
|
||||
int tt550_set_mode (RIG * rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
|
||||
int tt550_get_mode (RIG * rig, vfo_t vfo, rmode_t * mode, pbwidth_t * width);
|
||||
int tt550_set_level (RIG * rig, vfo_t vfo, setting_t level, value_t val);
|
||||
int tt550_get_level (RIG * rig, vfo_t vfo, setting_t level, value_t * val);
|
||||
int tt550_set_ptt (RIG * rig, vfo_t vfo, ptt_t ptt);
|
||||
int tt550_get_ptt (RIG * rig, vfo_t vfo, ptt_t * ptt);
|
||||
int tt550_decode_event (RIG * rig);
|
||||
const char *tt550_get_info (RIG * rig);
|
||||
int tt550_set_tx_freq (RIG * rig, vfo_t vfo, freq_t freq);
|
||||
int tt550_get_tx_freq (RIG * rig, vfo_t vfo, freq_t * freq);
|
||||
int tt550_set_rx_freq (RIG * rig, vfo_t vfo, freq_t freq);
|
||||
int tt550_get_rx_freq (RIG * rig, vfo_t vfo, freq_t * freq);
|
||||
int tt550_set_tx_mode (RIG * rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
|
||||
int tt550_get_tx_mode (RIG * rig, vfo_t vfo, rmode_t * mode, pbwidth_t * width);
|
||||
int tt550_set_rx_mode (RIG * rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
|
||||
int tt550_get_rx_mode (RIG * rig, vfo_t vfo, rmode_t * mode, pbwidth_t * width);
|
||||
int tt550_get_split_vfo (RIG * rig, vfo_t vfo, split_t * split, vfo_t * tx_vfo);
|
||||
int tt550_set_split_vfo (RIG * rig, vfo_t vfo, split_t split, vfo_t tx_vfo);
|
||||
int tt550_get_tuning_step (RIG * rig, vfo_t vfo, shortfreq_t * stepsize);
|
||||
int tt550_set_tuning_step (RIG * rig, vfo_t vfo, shortfreq_t stepsize);
|
||||
int tt550_set_func(RIG *rig, vfo_t vfo, setting_t func, int status);
|
||||
int tt550_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status);
|
||||
int tt550_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op);
|
||||
int tt550_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit);
|
||||
int tt550_get_rit(RIG *rig, vfo_t vfo, shortfreq_t * rit);
|
||||
int tt550_set_xit(RIG * rig, vfo_t vfo, shortfreq_t rit);
|
||||
int tt550_get_xit(RIG *rig, vfo_t vfo, shortfreq_t * rit);
|
||||
|
||||
|
||||
#endif /* _TT550_H */
|
Ładowanie…
Reference in New Issue