Started TS-2000 update/overhaul --Dale

git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@1069 7ae35d74-ebe9-4afe-98af-79ac388436b8
Hamlib-1.1.4
Dale E. Edmons, KD7ENI 2002-06-27 08:55:56 +00:00
rodzic 2e320789a8
commit feacabbf83
6 zmienionych plików z 3554 dodań i 23 usunięć

Wyświetl plik

@ -2,8 +2,8 @@ TSSRCLIST = ts850.c ts870s.c ts570.c ts450s.c ts2000.c ts950.c ts50s.c \
ts790.c thd7.c thf7.c
lib_LTLIBRARIES = libhamlib-kenwood.la
libhamlib_kenwood_la_SOURCES = $(TSSRCLIST) kenwood.c th.c
libhamlib_kenwood_la_SOURCES = $(TSSRCLIST) kenwood.c th.c ts2k.c
libhamlib_kenwood_la_LDFLAGS = -no-undefined -module -version-info 0:0:0
libhamlib_kenwood_la_LIBADD = ../src/libhamlib.la
noinst_HEADERS = kenwood.h th.h
noinst_HEADERS = kenwood.h th.h ts2k.h

Wyświetl plik

@ -0,0 +1,20 @@
Status: Being Overhauled. Consider it broken.
The ts2k.[ch] are for the TS-2000. I'm to lazy to spell it any
different.
Check back here often. I've be making extensive changes daily
(wife permitting). I'll change the status to working as soon
as I get reasonable functionality back.
This file comes from my private copy of hamlib and not all
changes will be made to hamlib's CVS.
Let me know if you use any of this and find it works! (It
has been working well for me.)
73's
Dale
kd7eni

Wyświetl plik

@ -2,7 +2,7 @@
* Hamlib Kenwood backend - TS2000 description
* Copyright (c) 2000-2002 by Stephane Fillod
*
* $Id: ts2000.c,v 1.6 2002-03-25 00:16:48 pa4tu Exp $
* $Id: ts2000.c,v 1.7 2002-06-27 08:55:56 dedmons 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
@ -26,20 +26,35 @@
#include <hamlib/rig.h>
#include "kenwood.h"
#include "ts2k.h"
#define TS2000_ALL_MODES (RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_FM|RIG_MODE_RTTY)
#define TS2000_OTHER_TX_MODES (RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_FM|RIG_MODE_RTTY)
#define TS2000_AM_TX_MODES RIG_MODE_AM
#define TS2000_ALL_MODES (RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_FM| \
RIG_MODE_RTTY)
#define TS2000_OTHER_TX_MODES (RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_FM| \
RIG_MODE_RTTY)
#define TS2000_AM_TX_MODES (RIG_MODE_AM)
#define TS2000_FUNC_ALL (RIG_FUNC_TSQL)
#define TS2000_FUNC_ALL ( RIG_FUNC_ALL & \
~(RIG_FUNC_MN | RIG_FUNC_RNF | RIG_FUNC_VSC) )
#define TS2000_LEVEL_ALL (RIG_LEVEL_ATT|RIG_LEVEL_AGC|RIG_LEVEL_SQL|RIG_LEVEL_SQLSTAT|RIG_LEVEL_STRENGTH|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN)
#define TS2000_LEVEL_ALL (RIG_LEVEL_ALL & ~(RIG_LEVEL_APF))
#define TS2000_MAINVFO (RIG_VFO_A|RIG_VFO_B)
#define TS2000_SUBVFO (RIG_VFO_C)
// old
//#define TS2000_MAINVFO (RIG_VFO_A|RIG_VFO_B)
//#define TS2000_SUBVFO (RIG_VFO_C)
#define TS2000_VFO_OP (RIG_OP_UP|RIG_OP_DOWN)
#define TS2000_MAINVFO (RIG_VFO_A | RIG_VFO_B | RIG_VFO_MEM_A | RIG_VFO_CALL_A)
#define TS2000_SUBVFO (RIG_VFO_C | RIG_VFO_MEM_C | RIG_VFO_CALL_C)
// the following uses both Sub and Main for the Major mode
#define TS2000_RIGVFO (RIG_VFO_SAT | RIG_VFO_CROSS)
#define TS2000_VFO_ALL (TS2000_RIGVFO | TS2000_MAINVFO | TS2000_SUBVFO)
#define TS2000_VFO_OP (RIG_OP_UP | RIG_OP_DOWN)
#define TS2000_SCAN_OP (RIG_SCAN_ALL & ~(RIG_SCAN_DELTA))
#define TS2000_PARM_OP (RIG_PARM_ALL & ~(RIG_PARM_BAT | RIG_PARM_TIME))
/*
* 103 available DCS codes
@ -57,7 +72,7 @@ static const tone_t ts2000_dcs_list[] = {
0,
};
const struct kenwood_priv_caps ts2000_priv_caps = {
const struct ts2k_priv_caps ts2k_priv_caps = {
cmdtrm: EOM_KEN,
};
@ -72,9 +87,9 @@ const struct rig_caps ts2000_caps = {
rig_model: RIG_MODEL_TS2000,
model_name:"TS-2000",
mfg_name: "Kenwood",
version: "0.1",
version: "0.1.2",
copyright: "LGPL",
status: RIG_STATUS_UNTESTED,
status: RIG_STATUS_ALPHA,
rig_type: RIG_TYPE_TRANSCEIVER,
ptt_type: RIG_PTT_RIG,
dcd_type: RIG_DCD_RIG,
@ -87,19 +102,20 @@ serial_parity: RIG_PARITY_NONE,
serial_handshake: RIG_HANDSHAKE_NONE,
write_delay: 0,
post_write_delay: 0,
timeout: 200,
retry: 3,
timeout: 20,
retry: 1,
has_get_func: TS2000_FUNC_ALL,
has_set_func: TS2000_FUNC_ALL,
has_get_level: TS2000_LEVEL_ALL,
has_set_level: RIG_LEVEL_SET(TS2000_LEVEL_ALL),
has_get_parm: RIG_PARM_NONE,
has_set_parm: RIG_PARM_NONE, /* FIXME: parms */
has_get_parm: TS2000_PARM_OP,
has_set_parm: TS2000_PARM_OP,
level_gran: {}, /* FIXME: granularity */
parm_gran: {},
vfo_ops: TS2000_VFO_OP,
ctcss_list: kenwood38_ctcss_list,
scan_ops: TS2000_SCAN_OP,
ctcss_list: ts2k_ctcss_list,
dcs_list: ts2000_dcs_list,
preamp: { 20, RIG_DBLST_END, }, /* FIXME: real preamp? */
attenuator: { 20, RIG_DBLST_END, },
@ -109,11 +125,48 @@ max_ifshift: kHz(1),
targetable_vfo: RIG_TARGETABLE_FREQ,
transceive: RIG_TRN_RIG,
bank_qty: 0,
chan_desc_sz: 0,
chan_desc_sz: 8,
/* set up the memories. See also, rig.h --D.E. kd7eni */
chan_list: { RIG_CHAN_END, }, /* FIXME: memory channel list: 1000 memories */
/* The following are suggested 'modes' and when the following may
* be accessed:
*
* MTYPE MSTATE Description
*
* MEM M_MEM main, sub
* EDGE M_MEM main, sub (vhf/uhf)
* MEMOPAD M_VFO e.g. main&&sub in vfo (both!)
* CALL M_ANY at least VFO and MEM (others?)
* SAT M_SAT only (uses both main+sub)
* PCT M_PCT when P.C.T. enabled on sub+tnc
* MENU M_MOST rig does it if it feels like it :)
* SETUP M_UNKNOWN twilight zone stuff...
*/
chan_list: {
{ 0, 289, RIG_MTYPE_MEM, 0 }, /* regular memories */
/* Note: each memory is receive+transmit an RX != TX is split memory. */
{ 290, 299, RIG_MTYPE_EDGE, 0 }, /* band tune limits (not scan-only) */
{ 0, 9, RIG_MTYPE_MEMOPAD, 0 }, /* Quick Memories, Main+sub both saved:) */
{ 0, 1, RIG_MTYPE_CALL, 0 }, /* each TX band has one call */
{ 0, 9, RIG_MTYPE_SAT, 0 }, /* direct operation from these */
{ 0, 9, RIG_MTYPE_PCT, 0 }, /* packet clusters buffered as
they come in */
{ 0, 1, RIG_MTYPE_MENU, 0 }, /* There are two menus, A/B. I
set one for HF, one for VHF/UHF*/
{ 0, 5, RIG_MTYPE_SETUP, 0 }, /* See: "pm;" command. ;) */
/* This seems to be undocumented and not accesible to the front panel.
When operated it seems to be an independently settable menu. Thus,
more than just A/B are available. I don't know if the memopad
quick memories are involved but the regular MEM ones are *NOT*
duplicated. The manual only says: 0=PM off, 1-5=channel 1-5.
Kenwood calls this "Programmable Memory". I haven't used this
in some time but 0-5 seems more appropriate than 1-5. I'll
investigate more after hamlib-1.1.3 (gnurig's target release). */
/* { 0, , RIG_MTYPE_, 0 },*/
RIG_CHAN_END,
},
rx_range_list1: {
{kHz(300),MHz(60),TS2000_ALL_MODES,-1,-1,TS2000_MAINVFO},
{MHz(144),MHz(146),TS2000_ALL_MODES,-1,-1,TS2000_MAINVFO},
@ -209,14 +262,17 @@ filters: {
{RIG_MODE_FM|RIG_MODE_AM, kHz(12)},
RIG_FLT_END,
},
priv: (void *)&ts2000_priv_caps,
priv: (void *)&ts2k_priv_caps,
/* kenwood
set_freq: kenwood_set_freq,
get_freq: kenwood_get_freq,
set_mode: kenwood_set_mode,
get_mode: kenwood_get_mode,
set_vfo: kenwood_set_vfo,
get_vfo: kenwood_get_vfo,
set_tone: kenwood_set_tone,
get_tone: kenwood_get_tone,
set_ctcss_tone: kenwood_set_ctcss_tone,
get_ctcss_tone: kenwood_get_ctcss_tone,
get_ptt: kenwood_get_ptt,
@ -236,10 +292,90 @@ get_mem: kenwood_get_mem,
set_trn: kenwood_set_trn,
get_trn: kenwood_get_trn,
get_info: kenwood_get_info,
*/
/*end kenwood */
/* ts2k */
set_tone: ts2k_set_tone,
get_tone: ts2k_get_tone,
set_ctcss_tone: ts2k_set_ctcss_tone,
get_ctcss_tone: ts2k_get_ctcss_tone,
get_dcd: ts2k_get_dcd,
set_freq: ts2k_set_freq,
get_freq: ts2k_get_freq,
get_func: ts2k_get_func,
set_func: ts2k_set_func,
get_info: ts2k_get_info,
get_level: ts2k_get_level,
set_level: ts2k_set_level,
get_mem: ts2k_get_mem,
set_mem: ts2k_set_mem,
get_mode: ts2k_get_mode,
set_mode: ts2k_set_mode,
get_powerstat: ts2k_get_powerstat,
set_powerstat: ts2k_set_powerstat,
get_ptt: ts2k_get_ptt,
set_ptt: ts2k_set_ptt,
reset: ts2k_reset,
send_morse: ts2k_send_morse,
get_trn: ts2k_get_trn,
set_trn: ts2k_set_trn,
/*
*/
set_vfo: ts2k_set_vfo,
get_vfo: ts2k_get_vfo,
vfo_op: ts2k_vfo_op,
/*
* stuff I've written--kd7eni
*/
Scan: ts2k_scan,
get_channel: ts2k_get_channel,
set_channel: ts2k_set_channel,
get_dcs_code: ts2k_get_dcs_code,
set_dcs_code: ts2k_set_dcs_code,
get_parm: ts2k_get_parm,
set_parm: ts2k_set_parm,
get_rit: ts2k_get_rit,
set_rit: ts2k_set_rit,
get_rptr_offs: ts2k_get_rptr_offs,
set_rptr_offs: ts2k_set_rptr_offs,
get_rptr_shift: ts2k_get_rptr_shift,
set_rptr_shift: ts2k_set_rptr_shift,
get_split: ts2k_get_split,
set_split: ts2k_set_split,
get_split_freq: ts2k_get_split_freq,
set_split_freq: ts2k_set_split_freq,
get_split_mode: ts2k_get_split_mode,
set_split_mode: ts2k_set_split_mode,
get_ts: ts2k_get_ts,
set_ts: ts2k_set_ts,
get_xit: ts2k_get_xit,
set_xit: ts2k_set_xit,
/* comming soon... */
//get_tone_sql: ts2k_get_tone_sql,
//set_tone_sql: ts2k_set_tone_sql,
//decode_event: ts2k_decode_event, /* highest */
//send_dtmf: ts2k_send_dtmf, /* lowest */
//get_conf: ts2k_get_conf,
//set_conf: ts2k_set_conf,
//get_ant: ts2k_get_ant,
//set_ant: ts2k_set_ant,
//recv_dtmf: ts2k_recv_dtmf, /* possible? */
//get_ctcss_sql: ts2k_get_ctcss_sql,
//set_ctcss_sql: ts2k_set_ctcss_sql,
//get_dcs_sql: ts2k_get_dcs_sql,
//set_dcs_sql: ts2k_set_dcs_sql,
/* and never... */
//set_bank: /* not needed */
/*
end ts2k
*/
};
/*
* Function definitions below
*/

Wyświetl plik

@ -0,0 +1,245 @@
/*
* Hamlib Kenwood backend - TS2000 description
* Copyright (c) 2000-2002 by Stephane Fillod
*
* $Id: ts2000.c.orig,v 1.1 2002-06-27 08:55:56 dedmons 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.
*
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <hamlib/rig.h>
#include "kenwood.h"
#define TS2000_ALL_MODES (RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_FM|RIG_MODE_RTTY)
#define TS2000_OTHER_TX_MODES (RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_FM|RIG_MODE_RTTY)
#define TS2000_AM_TX_MODES RIG_MODE_AM
#define TS2000_FUNC_ALL (RIG_FUNC_TSQL)
#define TS2000_LEVEL_ALL (RIG_LEVEL_ATT|RIG_LEVEL_AGC|RIG_LEVEL_SQL|RIG_LEVEL_SQLSTAT|RIG_LEVEL_STRENGTH|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN)
#define TS2000_MAINVFO (RIG_VFO_A|RIG_VFO_B)
#define TS2000_SUBVFO (RIG_VFO_C)
#define TS2000_VFO_OP (RIG_OP_UP|RIG_OP_DOWN)
/*
* 103 available DCS codes
*/
static const tone_t ts2000_dcs_list[] = {
23, 25, 26, 31, 32, 36, 43, 47, 51, 53,
54, 65, 71, 72, 73, 74, 114, 115, 116, 122, 125, 131,
132, 134, 143, 145, 152, 155, 156, 162, 165, 172, 174, 205,
212, 223, 225, 226, 243, 244, 245, 246, 251, 252, 255, 261,
263, 265, 266, 271, 274, 306, 311, 315, 325, 331, 332, 343,
346, 351, 356, 364, 365, 371, 411, 412, 413, 423, 431, 432,
445, 446, 452, 454, 455, 462, 464, 465, 466, 503, 506, 516,
523, 526, 532, 546, 565, 606, 612, 624, 627, 631, 632, 654,
662, 664, 703, 712, 723, 731, 732, 734, 743, 754,
0,
};
const struct kenwood_priv_caps ts2000_priv_caps = {
cmdtrm: EOM_KEN,
};
/*
* ts2000 rig capabilities.
*
* TODO: antenna caps
*
* part of infos comes from http://www.kenwood.net/
*/
const struct rig_caps ts2000_caps = {
rig_model: RIG_MODEL_TS2000,
model_name:"TS-2000",
mfg_name: "Kenwood",
version: "0.1",
copyright: "LGPL",
status: RIG_STATUS_UNTESTED,
rig_type: RIG_TYPE_TRANSCEIVER,
ptt_type: RIG_PTT_RIG,
dcd_type: RIG_DCD_RIG,
port_type: RIG_PORT_SERIAL,
serial_rate_min: 1200,
serial_rate_max: 57600,
serial_data_bits: 8,
serial_stop_bits: 1,
serial_parity: RIG_PARITY_NONE,
serial_handshake: RIG_HANDSHAKE_NONE,
write_delay: 0,
post_write_delay: 0,
timeout: 200,
retry: 3,
has_get_func: TS2000_FUNC_ALL,
has_set_func: TS2000_FUNC_ALL,
has_get_level: TS2000_LEVEL_ALL,
has_set_level: RIG_LEVEL_SET(TS2000_LEVEL_ALL),
has_get_parm: RIG_PARM_NONE,
has_set_parm: RIG_PARM_NONE, /* FIXME: parms */
level_gran: {}, /* FIXME: granularity */
parm_gran: {},
vfo_ops: TS2000_VFO_OP,
ctcss_list: kenwood38_ctcss_list,
dcs_list: ts2000_dcs_list,
preamp: { 20, RIG_DBLST_END, }, /* FIXME: real preamp? */
attenuator: { 20, RIG_DBLST_END, },
max_rit: kHz(20),
max_xit: kHz(20),
max_ifshift: kHz(1),
targetable_vfo: RIG_TARGETABLE_FREQ,
transceive: RIG_TRN_RIG,
bank_qty: 0,
chan_desc_sz: 0,
chan_list: { RIG_CHAN_END, }, /* FIXME: memory channel list: 1000 memories */
rx_range_list1: {
{kHz(300),MHz(60),TS2000_ALL_MODES,-1,-1,TS2000_MAINVFO},
{MHz(144),MHz(146),TS2000_ALL_MODES,-1,-1,TS2000_MAINVFO},
{MHz(430),MHz(440),TS2000_ALL_MODES,-1,-1,TS2000_MAINVFO},
{MHz(144),MHz(146),TS2000_ALL_MODES,-1,-1,TS2000_SUBVFO},
{MHz(430),MHz(440),TS2000_ALL_MODES,-1,-1,TS2000_SUBVFO},
RIG_FRNG_END,
}, /* rx range */
tx_range_list1: {
{kHz(1830),kHz(1850),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{kHz(1830),kHz(1850),TS2000_AM_TX_MODES,2000,25000,TS2000_MAINVFO},
{kHz(3500),kHz(3800),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{kHz(3500),kHz(3800),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(7),kHz(7100),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(7),kHz(7100),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(10.1),MHz(10.15),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(10.1),MHz(10.15),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(14),kHz(14350),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(14),kHz(14350),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{kHz(18068),kHz(18168),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{kHz(18068),kHz(18168),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(21),kHz(21450),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(21),kHz(21450),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{kHz(24890),kHz(24990),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{kHz(24890),kHz(24990),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(28),kHz(29700),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(28),kHz(29700),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(50),MHz(50.2),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(50),MHz(50.2),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(144),MHz(146),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(144),MHz(146),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(430),MHz(440),TS2000_OTHER_TX_MODES,W(5),W(50),TS2000_MAINVFO},
{MHz(430),MHz(440),TS2000_AM_TX_MODES,W(5),W(12.5),TS2000_MAINVFO},
RIG_FRNG_END,
}, /* tx range */
rx_range_list2: {
{kHz(300),MHz(60),TS2000_ALL_MODES,-1,-1,TS2000_MAINVFO},
{MHz(142),MHz(152),TS2000_ALL_MODES,-1,-1,TS2000_MAINVFO},
{MHz(420),MHz(450),TS2000_ALL_MODES,-1,-1,TS2000_MAINVFO},
{MHz(118),MHz(174),TS2000_ALL_MODES,-1,-1,TS2000_SUBVFO},
{MHz(220),MHz(512),TS2000_ALL_MODES,-1,-1,TS2000_SUBVFO},
RIG_FRNG_END,
}, /* rx range */
tx_range_list2: {
{kHz(1800),MHz(2),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{kHz(1800),MHz(2),TS2000_AM_TX_MODES,2000,25000,TS2000_MAINVFO},
{kHz(3500),MHz(4),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{kHz(3500),MHz(4),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(7),kHz(7300),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(7),kHz(7300),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(10.1),MHz(10.15),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(10.1),MHz(10.15),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(14),kHz(14350),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(14),kHz(14350),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{kHz(18068),kHz(18168),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{kHz(18068),kHz(18168),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(21),kHz(21450),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(21),kHz(21450),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{kHz(24890),kHz(24990),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{kHz(24890),kHz(24990),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(28),kHz(29700),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(28),kHz(29700),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(50),MHz(54),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(50),MHz(54),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(144),MHz(148),TS2000_OTHER_TX_MODES,W(5),W(100),TS2000_MAINVFO},
{MHz(144),MHz(148),TS2000_AM_TX_MODES,W(5),W(25),TS2000_MAINVFO},
{MHz(430),MHz(450),TS2000_OTHER_TX_MODES,W(5),W(50),TS2000_MAINVFO},
{MHz(430),MHz(450),TS2000_AM_TX_MODES,W(5),W(12.5),TS2000_MAINVFO},
RIG_FRNG_END,
}, /* tx range */
tuning_steps: {
{TS2000_ALL_MODES,50},
{TS2000_ALL_MODES,100},
{TS2000_ALL_MODES,kHz(1)},
{TS2000_ALL_MODES,kHz(5)},
{TS2000_ALL_MODES,kHz(9)},
{TS2000_ALL_MODES,kHz(10)},
{TS2000_ALL_MODES,12500},
{TS2000_ALL_MODES,kHz(20)},
{TS2000_ALL_MODES,kHz(25)},
{TS2000_ALL_MODES,kHz(100)},
{TS2000_ALL_MODES,MHz(1)},
{TS2000_ALL_MODES,0}, /* any tuning step */
RIG_TS_END,
},
/* mode/filter list, remember: order matters! */
filters: {
{RIG_MODE_SSB, kHz(2.2)},
{RIG_MODE_CW, Hz(600)},
{RIG_MODE_RTTY, Hz(1500)},
{RIG_MODE_AM, kHz(6)},
{RIG_MODE_FM|RIG_MODE_AM, kHz(12)},
RIG_FLT_END,
},
priv: (void *)&ts2000_priv_caps,
set_freq: kenwood_set_freq,
get_freq: kenwood_get_freq,
set_mode: kenwood_set_mode,
get_mode: kenwood_get_mode,
set_vfo: kenwood_set_vfo,
get_vfo: kenwood_get_vfo,
set_ctcss_tone: kenwood_set_ctcss_tone,
get_ctcss_tone: kenwood_get_ctcss_tone,
get_ptt: kenwood_get_ptt,
set_ptt: kenwood_set_ptt,
get_dcd: kenwood_get_dcd,
set_func: kenwood_set_func,
get_func: kenwood_get_func,
set_level: kenwood_set_level,
get_level: kenwood_get_level,
set_powerstat: kenwood_set_powerstat,
get_powerstat: kenwood_get_powerstat,
reset: kenwood_reset,
send_morse: kenwood_send_morse,
vfo_op: kenwood_vfo_op,
set_mem: kenwood_set_mem,
get_mem: kenwood_get_mem,
set_trn: kenwood_set_trn,
get_trn: kenwood_get_trn,
get_info: kenwood_get_info,
};
/*
* Function definitions below
*/

2954
kenwood/ts2k.c 100644

Plik diff jest za duży Load Diff

176
kenwood/ts2k.h 100644
Wyświetl plik

@ -0,0 +1,176 @@
/*
* Hamlib TS2000 backend - main header
* Copyright (c) 2000-2002 by Stephane Fillod
*
* $Id: ts2k.h,v 1.1 2002-06-27 08:55:56 dedmons 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.
*
*/
/*
* created from kenwood.h --Dale kd7eni
*/
/*//+kd7eni*/
#ifndef _TS2K_H
#define _TS2K_H
#undef _USEVFO
// imported from ts2000.h --Dale kd7eni
/*
* 103 available DCS codes
*/
static const tone_t ts2k_dcs_list[] = {
23, 25, 26, 31, 32, 36, 43, 47, 51, 53, 54,
65, 71, 72, 73, 74, 114, 115, 116, 122, 125, 131,
132, 134, 143, 145, 152, 155, 156, 162, 165, 172, 174,
205, 212, 223, 225, 226, 243, 244, 245, 246, 251, 252,
255, 261, 263, 265, 266, 271, 274, 306, 311, 315, 325,
331, 332, 343, 346, 351, 356, 364, 365, 371, 411, 412,
413, 423, 431, 432, 445, 446, 452, 454, 455, 462, 464,
465, 466, 503, 506, 516, 523, 526, 532, 546, 565, 606,
612, 624, 627, 631, 632, 654, 662, 664, 703, 712, 723,
731, 732, 734, 743, 754,
0
};
#define TS2K_PTT_ON_MAIN 8
#define TS2K_CTRL_ON_MAIN 4
#define TS2K_PTT_ON_SUB 2
#define TS2K_CTRL_ON_SUB 1
// Needed to prevent ts2k_transaction (kenwood_transaction) from
// expecting a reply from the ts2000 in cases where there is none.
#define NOREPLY 0
// some commands reply "?;" if rig currently in requested mode
// usually, there is NOREPLY when mode is changed. This can be
// put in the acknowledge length to signify the error is no error.
#define BUGERR -1
//-kd7eni
#define EOM_KEN ";"
#define EOM_TH "\r"
struct ts2k_priv_caps {
/* read-only values */
const char *cmdtrm; /* Command termination chars (ken=';' or th='\r') */
/* changable values */
// nothing
};
#if 0 /* No private data for Kenwood backends. */
struct ts2k_priv_data {
int dummy; // placeholder for real entries.
};
#endif
extern int ts2k_init(RIG *rig);
extern int ts2k_cleanup(RIG *rig);
extern const int ts2k_ctcss_list[];
int ts2k_transaction(RIG *rig, const char *cmd, int cmd_len, char *data,
size_t *data_len);
int ts2k_set_vfo(RIG *rig, vfo_t vfo);
int ts2k_get_vfo(RIG *rig, vfo_t *vfo);
int ts2k_set_freq(RIG *rig, vfo_t vfo, freq_t freq);
int ts2k_get_freq(RIG *rig, vfo_t vfo, freq_t *freq);
int ts2k_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
int ts2k_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width);
int ts2k_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val);
int ts2k_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val);
int ts2k_set_func(RIG *rig, vfo_t vfo, setting_t func, int status);
int ts2k_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status);
int ts2k_set_ctcss_tone(RIG *rig, vfo_t vfo, tone_t tone);
int ts2k_set_tone(RIG *rig, vfo_t vfo, tone_t tone);
int ts2k_get_ctcss_tone(RIG *rig, vfo_t vfo, tone_t *tone);
int ts2k_get_tone(RIG *rig, vfo_t vfo, tone_t *tone);
int ts2k_set_Tones(RIG *rig, vfo_t vfo, tone_t tone, const char ct);
int ts2k_get_Tones(RIG *rig, vfo_t vfo, tone_t *tone, const char *ct);
int ts2k_set_powerstat(RIG *rig, powerstat_t status);
int ts2k_get_powerstat(RIG *rig, powerstat_t *status);
int ts2k_reset(RIG *rig, reset_t reset);
int ts2k_send_morse(RIG *rig, vfo_t vfo, const char *msg);
int ts2k_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt);
int ts2k_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt);
int ts2k_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd);
int ts2k_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op);
int ts2k_set_mem(RIG *rig, vfo_t vfo, int ch);
int ts2k_get_mem(RIG *rig, vfo_t vfo, int *ch);
const char* ts2k_get_info(RIG *rig);
int ts2k_get_trn(RIG *rig, int *trn);
int ts2k_set_trn(RIG *rig, int trn);
/*
* functions I've written -- Dale KD7ENI
*/
int ts2k_scan(RIG *rig, vfo_t vfo, scan_t scan, int ch);
int ts2k_scan_on(RIG *rig, char ch);
int ts2k_scan_off(RIG *rig);
int ts2k_get_channel(RIG *rig, vfo_t vfo, channel_t *chan);
int ts2k_set_channel(RIG *rig, vfo_t vfo, channel_t *chan);
char *ts2k_get_ctrl(RIG *rig);
int ts2k_set_ctrl(RIG *rig, int ptt, int ctrl);
int ts2k_vfo_ctrl(RIG *rig, vfo_t vfo);
int ts2k_get_dcs_code(RIG *rig, vfo_t vfo, tone_t *tone);
int ts2k_set_dcs_code(RIG *rig, vfo_t vfo, tone_t tone);
int ts2k_get_int(char *c, int i);
int ts2k_sat_off(RIG *rig, vfo_t vfo);
int ts2k_sat_on(RIG *rig, vfo_t vfo);
int ts2k_get_parm(RIG *rig, setting_t parm, value_t *val);
int ts2k_set_parm(RIG *rig, setting_t parm, value_t val);
int ts2k_get_rit(RIG *rig, vfo_t vfo, shortfreq_t *rit);
int ts2k_set_rit(RIG *rig, vfo_t vfo, shortfreq_t rit);
int ts2k_get_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t *offs);
int ts2k_set_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t offs);
int ts2k_get_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t *shift);
int ts2k_set_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t shift);
int ts2k_get_split(RIG *rig, vfo_t vfo, split_t *split);
int ts2k_set_split(RIG *rig, vfo_t vfo, split_t split);
int ts2k_get_split_freq(RIG *rig, vfo_t vfo, freq_t *tx_freq);
int ts2k_set_split_freq(RIG *rig, vfo_t vfo, freq_t tx_freq);
int ts2k_get_split_mode(RIG *rig, vfo_t vfo, rmode_t *txmode, pbwidth_t *txwidth);
int ts2k_set_split_mode(RIG *rig, vfo_t vfo, rmode_t txmode, pbwidth_t txwidth);
int ts2k_get_ts(RIG *rig, vfo_t vfo, shortfreq_t *ts);
int ts2k_set_ts(RIG *rig, vfo_t vfo, shortfreq_t ts);
int ts2k_get_xit(RIG *rig, vfo_t vfo, shortfreq_t *freq);
int ts2k_set_xit(RIG *rig, vfo_t vfo, shortfreq_t freq);
/* end kd7eni functions */
extern const struct rig_caps thd7a_caps;
extern const struct rig_caps thf7a_caps;
extern const struct rig_caps thf7e_caps;
extern const struct rig_caps ts450s_caps;
extern const struct rig_caps ts50s_caps;
extern const struct rig_caps ts570d_caps;
extern const struct rig_caps ts570s_caps;
extern const struct rig_caps ts790_caps;
extern const struct rig_caps ts850_caps;
extern const struct rig_caps ts870s_caps;
extern const struct rig_caps ts950sdx_caps;
extern const struct rig_caps ts2000_caps;
extern BACKEND_EXPORT(int) initrigs_ts2k(void *be_handle);
extern BACKEND_EXPORT(rig_model_t) proberigs_ts2k(port_t *port);
#endif /* _TS2000_H */