6
* Copyright 2009, Dave Freese, W1HKJ
12
const char TS140name_[] = "TS140";
14
const char *TS140modes_[] = {
15
"LSB", "USB", "CW", "FM", "AM", "CWN", NULL};
16
static const char TS140_mode_type[] =
17
{'L', 'U', 'U', 'U', 'U', 'U'};
19
RIG_TS140::RIG_TS140() {
24
comm_baudrate = BR9600;
39
has_ptt_control = true;
41
has_attenuator_control =
45
has_bandwidth_control =
50
has_swr_control = false;
58
========================================================================
59
frequency & mode data are contained in the IF; response
60
IFaaaaaaaaaaaXXXXXbbbbbcdXeefghjklmmX;
61
12345678901234567890123456789012345678
62
01234567890123456789012345678901234567 byte #
64
aaaaaaaaaaa => decimal value of vfo frequency
65
bbbbb => rit/xit frequency
76
X => unused characters
78
Test output from Minicom to IF; command
80
IF00014070000 -00300 000200;
82
0001000 is vfoA in LSB
83
0002000 is vfoA in USB
87
0007000 CWN (dont have narrow filter however)
89
0002001 VFOA in USB SPILT
91
========================================================================
94
long RIG_TS140::get_vfoA ()
97
int ret = sendCommand(cmd);
98
if (ret < 38) return freqA;
101
for (size_t n = 2; n < 13; n++)
102
f = f*10 + replybuff[ret - 38 + n] - '0';
107
void RIG_TS140::set_vfoA (long freq)
110
cmd = "FA00000000000;";
111
for (int i = 12; i > 1; i--) {
118
// Tranceiver PTT on/off
119
void RIG_TS140::set_PTT_control(int val)
121
if (val) sendCommand("TX;", 0);
122
else sendCommand("RX;", 0);
125
int RIG_TS140::get_modetype(int n)
127
return TS140_mode_type[n];
130
void RIG_TS140::set_modeA(int val)
134
cmd[2] = '1' + (val % 10);
138
int RIG_TS140::get_modeA()
142
int ret = sendCommand(cmd);
143
if (ret < 38) return modeA;
145
int md = replybuff[ret - 38 + 29] - '1';