1 /*
2  *  Hamlib Interface - list of known rigs
3  *  Copyright (c) 2000-2003 by Frank Singleton
4  *  Copyright (c) 2000-2015 by Stephane Fillod
5  *
6  *
7  *   This library is free software; you can redistribute it and/or
8  *   modify it under the terms of the GNU Lesser General Public
9  *   License as published by the Free Software Foundation; either
10  *   version 2.1 of the License, or (at your option) any later version.
11  *
12  *   This library is distributed in the hope that it will be useful,
13  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  *   Lesser General Public License for more details.
16  *
17  *   You should have received a copy of the GNU Lesser General Public
18  *   License along with this library; if not, write to the Free Software
19  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20  *
21  */
22 
23 #ifndef _RIGLIST_H
24 #define _RIGLIST_H 1
25 
26 //! @cond Doxygen_Suppress
27 
28 // The rig model number is designed to fit in a 32-bit int
29 // As of 2020-02-18 we have 33 backends defined
30 // With a max of 1000 models per backend we get total a model number range of 1001-33001
31 // This MAX was 100 prior to 2020-02-18 and Icom was close to running out of the 100 range
32 #define  MAX_MODELS_PER_BACKEND 1000
33 #define RIG_MAKE_MODEL(a,b) ((a)*MAX_MODELS_PER_BACKEND+(b))
34 #define RIG_BACKEND_NUM(a) ((a)/MAX_MODELS_PER_BACKEND)
35 
36 /*! \file riglist.h
37  *  \brief Hamlib rig(radio) model definitions.
38  *
39  *  This file contains rig model definitions for the Hamlib rig API.  Each
40  *  distinct rig type has a unique model number (ID) and is used by hamlib to
41  *  identify and distinguish between the different hardware drivers.  The
42  *  exact model numbers can be acquired using the macros in this file. To
43  *  obtain a list of supported rig branches, one can use the statically
44  *  defined RIG_BACKEND_LIST macro. To obtain a full list of supported rig
45  *  (including each model in every branch), the foreach_opened_rig() API
46  *  function can be used.
47  *
48  *  The model number, or ID, is used to tell hamlib, which rig the client
49  *  whishes to use. It is done with the rig_init() API call.
50  */
51 
52 #define RIG_MODEL_NONE 0
53 
54 /*! \def RIG_MODEL_DUMMY
55  *  \brief A macro that returns the model number for the dummy backend.
56  *
57  *  The dummy backend, as the name suggests, is a backend which performs no
58  *  hardware operations and always behaves as one would expect. It can be
59  *  thought of as a hardware simulator and is very useful for testing client
60  *  applications.
61  *
62  *  It has also been expanded to provide support to "virtual" type of rigs
63  *  such as the network rig control backend and W1HKJ's Flrig application.
64  */
65 #define RIG_DUMMY 0
66 #define RIG_BACKEND_DUMMY "dummy"
67 #define RIG_MODEL_DUMMY RIG_MAKE_MODEL(RIG_DUMMY, 1)
68 #define RIG_MODEL_NETRIGCTL RIG_MAKE_MODEL(RIG_DUMMY, 2)
69 #define RIG_MODEL_ARMSTRONG RIG_MAKE_MODEL(RIG_DUMMY, 3)
70 #define RIG_MODEL_FLRIG RIG_MAKE_MODEL(RIG_DUMMY, 4)
71 #define RIG_MODEL_TRXMANAGER_RIG RIG_MAKE_MODEL(RIG_DUMMY, 5)
72 #define RIG_MODEL_DUMMY_NOVFO RIG_MAKE_MODEL(RIG_DUMMY, 6)
73 
74 
75 /*
76  * Yaesu
77  */
78 #define RIG_YAESU 1
79 #define RIG_BACKEND_YAESU "yaesu"
80 #define RIG_MODEL_FT847 RIG_MAKE_MODEL(RIG_YAESU, 1)
81 #define RIG_MODEL_FT1000 RIG_MAKE_MODEL(RIG_YAESU, 2)
82 #define RIG_MODEL_FT1000D RIG_MAKE_MODEL(RIG_YAESU, 3)
83 #define RIG_MODEL_FT1000MPMKV RIG_MAKE_MODEL(RIG_YAESU, 4)
84 #define RIG_MODEL_FT747 RIG_MAKE_MODEL(RIG_YAESU, 5)
85 #define RIG_MODEL_FT757 RIG_MAKE_MODEL(RIG_YAESU, 6)
86 #define RIG_MODEL_FT757GXII RIG_MAKE_MODEL(RIG_YAESU, 7)
87 #define RIG_MODEL_FT575 RIG_MAKE_MODEL(RIG_YAESU, 8)
88 #define RIG_MODEL_FT767 RIG_MAKE_MODEL(RIG_YAESU, 9)
89 #define RIG_MODEL_FT736R RIG_MAKE_MODEL(RIG_YAESU, 10)
90 #define RIG_MODEL_FT840 RIG_MAKE_MODEL(RIG_YAESU, 11)
91 #define RIG_MODEL_FT820 RIG_MAKE_MODEL(RIG_YAESU, 12)
92 #define RIG_MODEL_FT900 RIG_MAKE_MODEL(RIG_YAESU, 13)
93 #define RIG_MODEL_FT920 RIG_MAKE_MODEL(RIG_YAESU, 14)
94 #define RIG_MODEL_FT890 RIG_MAKE_MODEL(RIG_YAESU, 15)
95 #define RIG_MODEL_FT990 RIG_MAKE_MODEL(RIG_YAESU, 16)
96 #define RIG_MODEL_FRG100 RIG_MAKE_MODEL(RIG_YAESU, 17)
97 #define RIG_MODEL_FRG9600 RIG_MAKE_MODEL(RIG_YAESU, 18)
98 #define RIG_MODEL_FRG8800 RIG_MAKE_MODEL(RIG_YAESU, 19)
99 #define RIG_MODEL_FT817 RIG_MAKE_MODEL(RIG_YAESU, 20)
100 #define RIG_MODEL_FT100 RIG_MAKE_MODEL(RIG_YAESU, 21)
101 #define RIG_MODEL_FT857 RIG_MAKE_MODEL(RIG_YAESU, 22)
102 #define RIG_MODEL_FT897 RIG_MAKE_MODEL(RIG_YAESU, 23)
103 #define RIG_MODEL_FT1000MP RIG_MAKE_MODEL(RIG_YAESU, 24)
104 #define RIG_MODEL_FT1000MPMKVFLD RIG_MAKE_MODEL(RIG_YAESU, 25)
105 #define RIG_MODEL_VR5000 RIG_MAKE_MODEL(RIG_YAESU, 26)
106 #define RIG_MODEL_FT450 RIG_MAKE_MODEL(RIG_YAESU, 27)
107 #define RIG_MODEL_FT950 RIG_MAKE_MODEL(RIG_YAESU, 28)
108 #define RIG_MODEL_FT2000 RIG_MAKE_MODEL(RIG_YAESU, 29)
109 #define RIG_MODEL_FT9000 RIG_MAKE_MODEL(RIG_YAESU, 30)
110 #define RIG_MODEL_FT980 RIG_MAKE_MODEL(RIG_YAESU, 31)
111 #define RIG_MODEL_FTDX5000 RIG_MAKE_MODEL(RIG_YAESU, 32)
112 #define RIG_MODEL_VX1700 RIG_MAKE_MODEL(RIG_YAESU, 33)
113 #define RIG_MODEL_FTDX1200 RIG_MAKE_MODEL(RIG_YAESU, 34)
114 #define RIG_MODEL_FT991 RIG_MAKE_MODEL(RIG_YAESU, 35)
115 #define RIG_MODEL_FT891 RIG_MAKE_MODEL(RIG_YAESU, 36)
116 #define RIG_MODEL_FTDX3000 RIG_MAKE_MODEL(RIG_YAESU, 37)
117 #define RIG_MODEL_FT847UNI RIG_MAKE_MODEL(RIG_YAESU, 38)
118 #define RIG_MODEL_FT600 RIG_MAKE_MODEL(RIG_YAESU, 39)
119 #define RIG_MODEL_FTDX101D RIG_MAKE_MODEL(RIG_YAESU, 40)
120 #define RIG_MODEL_FT818 RIG_MAKE_MODEL(RIG_YAESU, 41)
121 #define RIG_MODEL_FTDX10 RIG_MAKE_MODEL(RIG_YAESU, 42)
122 #define RIG_MODEL_FT897D RIG_MAKE_MODEL(RIG_YAESU, 43)
123 #define RIG_MODEL_FTDX101MP RIG_MAKE_MODEL(RIG_YAESU, 44)
124 
125 
126 /*
127  * Kenwood
128  */
129 #define RIG_KENWOOD 2
130 #define RIG_BACKEND_KENWOOD "kenwood"
131 #define RIG_MODEL_TS50 RIG_MAKE_MODEL(RIG_KENWOOD, 1)
132 #define RIG_MODEL_TS440 RIG_MAKE_MODEL(RIG_KENWOOD, 2)
133 #define RIG_MODEL_TS450S RIG_MAKE_MODEL(RIG_KENWOOD, 3)
134 #define RIG_MODEL_TS570D RIG_MAKE_MODEL(RIG_KENWOOD, 4)
135 #define RIG_MODEL_TS690S RIG_MAKE_MODEL(RIG_KENWOOD, 5)
136 #define RIG_MODEL_TS711 RIG_MAKE_MODEL(RIG_KENWOOD, 6)
137 #define RIG_MODEL_TS790 RIG_MAKE_MODEL(RIG_KENWOOD, 7)
138 #define RIG_MODEL_TS811 RIG_MAKE_MODEL(RIG_KENWOOD, 8)
139 #define RIG_MODEL_TS850 RIG_MAKE_MODEL(RIG_KENWOOD, 9)
140 #define RIG_MODEL_TS870S RIG_MAKE_MODEL(RIG_KENWOOD, 10)
141 #define RIG_MODEL_TS940 RIG_MAKE_MODEL(RIG_KENWOOD, 11)
142 #define RIG_MODEL_TS950S RIG_MAKE_MODEL(RIG_KENWOOD, 12)
143 #define RIG_MODEL_TS950SDX RIG_MAKE_MODEL(RIG_KENWOOD, 13)
144 #define RIG_MODEL_TS2000 RIG_MAKE_MODEL(RIG_KENWOOD, 14)
145 #define RIG_MODEL_R5000 RIG_MAKE_MODEL(RIG_KENWOOD, 15)
146 #define RIG_MODEL_TS570S RIG_MAKE_MODEL(RIG_KENWOOD, 16)
147 #define RIG_MODEL_THD7A RIG_MAKE_MODEL(RIG_KENWOOD, 17)
148 #define RIG_MODEL_THD7AG RIG_MAKE_MODEL(RIG_KENWOOD, 18)
149 #define RIG_MODEL_THF6A RIG_MAKE_MODEL(RIG_KENWOOD, 19)
150 #define RIG_MODEL_THF7E RIG_MAKE_MODEL(RIG_KENWOOD, 20)
151 #define RIG_MODEL_K2 RIG_MAKE_MODEL(RIG_KENWOOD, 21)
152 #define RIG_MODEL_TS930 RIG_MAKE_MODEL(RIG_KENWOOD, 22)
153 #define RIG_MODEL_THG71 RIG_MAKE_MODEL(RIG_KENWOOD, 23)
154 #define RIG_MODEL_TS680S RIG_MAKE_MODEL(RIG_KENWOOD, 24)
155 #define RIG_MODEL_TS140S RIG_MAKE_MODEL(RIG_KENWOOD, 25)
156 #define RIG_MODEL_TMD700 RIG_MAKE_MODEL(RIG_KENWOOD, 26)
157 #define RIG_MODEL_TMV7 RIG_MAKE_MODEL(RIG_KENWOOD, 27)
158 #define RIG_MODEL_TS480 RIG_MAKE_MODEL(RIG_KENWOOD, 28)
159 #define RIG_MODEL_K3 RIG_MAKE_MODEL(RIG_KENWOOD, 29)
160 #define RIG_MODEL_TRC80 RIG_MAKE_MODEL(RIG_KENWOOD, 30)
161 #define RIG_MODEL_TS590S RIG_MAKE_MODEL(RIG_KENWOOD, 31)
162 #define RIG_MODEL_TRANSFOX RIG_MAKE_MODEL(RIG_KENWOOD, 32)  /* SigFox Transfox */
163 #define RIG_MODEL_THD72A RIG_MAKE_MODEL(RIG_KENWOOD, 33)
164 #define RIG_MODEL_TMD710 RIG_MAKE_MODEL(RIG_KENWOOD, 34)
165 #define RIG_MODEL_TMV71 RIG_MAKE_MODEL(RIG_KENWOOD, 35)
166 #define RIG_MODEL_F6K RIG_MAKE_MODEL(RIG_KENWOOD, 36)   /* Flex 6000 Series */
167 #define RIG_MODEL_TS590SG RIG_MAKE_MODEL(RIG_KENWOOD, 37)
168 #define RIG_MODEL_XG3 RIG_MAKE_MODEL(RIG_KENWOOD, 38)   /* Elecraft XG-3 signal generator */
169 #define RIG_MODEL_TS990S RIG_MAKE_MODEL(RIG_KENWOOD, 39)
170 #define RIG_MODEL_HPSDR RIG_MAKE_MODEL(RIG_KENWOOD, 40) /* OpenHPSDR, PiHPSDR */
171 #define RIG_MODEL_TS890S RIG_MAKE_MODEL(RIG_KENWOOD, 41)
172 #define RIG_MODEL_THD74 RIG_MAKE_MODEL(RIG_KENWOOD, 42)
173 #define RIG_MODEL_K3S RIG_MAKE_MODEL(RIG_KENWOOD, 43)
174 #define RIG_MODEL_KX2 RIG_MAKE_MODEL(RIG_KENWOOD, 44)
175 #define RIG_MODEL_KX3 RIG_MAKE_MODEL(RIG_KENWOOD, 45)
176 #define RIG_MODEL_PT8000A RIG_MAKE_MODEL(RIG_KENWOOD, 46)
177 #define RIG_MODEL_K4 RIG_MAKE_MODEL(RIG_KENWOOD, 47)
178 #define RIG_MODEL_POWERSDR RIG_MAKE_MODEL(RIG_KENWOOD, 48)
179 #define RIG_MODEL_MALACHITE RIG_MAKE_MODEL(RIG_KENWOOD, 49)
180 
181 /*
182  * Icom
183  */
184 #define RIG_ICOM 3
185 #define RIG_BACKEND_ICOM "icom"
186 #define RIG_MODEL_IC1271 RIG_MAKE_MODEL(RIG_ICOM, 1)
187 #define RIG_MODEL_IC1275 RIG_MAKE_MODEL(RIG_ICOM, 2)
188 #define RIG_MODEL_IC271 RIG_MAKE_MODEL(RIG_ICOM, 3)
189 #define RIG_MODEL_IC275 RIG_MAKE_MODEL(RIG_ICOM, 4)
190 #define RIG_MODEL_IC375 RIG_MAKE_MODEL(RIG_ICOM, 5)
191 #define RIG_MODEL_IC471 RIG_MAKE_MODEL(RIG_ICOM, 6)
192 #define RIG_MODEL_IC475 RIG_MAKE_MODEL(RIG_ICOM, 7)
193 #define RIG_MODEL_IC575 RIG_MAKE_MODEL(RIG_ICOM, 8)
194 #define RIG_MODEL_IC706 RIG_MAKE_MODEL(RIG_ICOM, 9)
195 #define RIG_MODEL_IC706MKII RIG_MAKE_MODEL(RIG_ICOM, 10)
196 #define RIG_MODEL_IC706MKIIG RIG_MAKE_MODEL(RIG_ICOM, 11)
197 #define RIG_MODEL_IC707 RIG_MAKE_MODEL(RIG_ICOM, 12)
198 #define RIG_MODEL_IC718 RIG_MAKE_MODEL(RIG_ICOM, 13)
199 #define RIG_MODEL_IC725 RIG_MAKE_MODEL(RIG_ICOM, 14)
200 #define RIG_MODEL_IC726 RIG_MAKE_MODEL(RIG_ICOM, 15)
201 #define RIG_MODEL_IC728 RIG_MAKE_MODEL(RIG_ICOM, 16)
202 #define RIG_MODEL_IC729 RIG_MAKE_MODEL(RIG_ICOM, 17)
203 #define RIG_MODEL_IC731 RIG_MAKE_MODEL(RIG_ICOM, 18)
204 #define RIG_MODEL_IC735 RIG_MAKE_MODEL(RIG_ICOM, 19)
205 #define RIG_MODEL_IC736 RIG_MAKE_MODEL(RIG_ICOM, 20)
206 #define RIG_MODEL_IC737 RIG_MAKE_MODEL(RIG_ICOM, 21)
207 #define RIG_MODEL_IC738 RIG_MAKE_MODEL(RIG_ICOM, 22)
208 #define RIG_MODEL_IC746 RIG_MAKE_MODEL(RIG_ICOM, 23)
209 #define RIG_MODEL_IC751 RIG_MAKE_MODEL(RIG_ICOM, 24)
210 #define RIG_MODEL_IC751A RIG_MAKE_MODEL(RIG_ICOM, 25)
211 #define RIG_MODEL_IC756 RIG_MAKE_MODEL(RIG_ICOM, 26)
212 #define RIG_MODEL_IC756PRO RIG_MAKE_MODEL(RIG_ICOM, 27)
213 #define RIG_MODEL_IC761 RIG_MAKE_MODEL(RIG_ICOM, 28)
214 #define RIG_MODEL_IC765 RIG_MAKE_MODEL(RIG_ICOM, 29)
215 #define RIG_MODEL_IC775 RIG_MAKE_MODEL(RIG_ICOM, 30)
216 #define RIG_MODEL_IC781 RIG_MAKE_MODEL(RIG_ICOM, 31)
217 #define RIG_MODEL_IC820 RIG_MAKE_MODEL(RIG_ICOM, 32)
218 //#define RIG_MODEL_IC821 RIG_MAKE_MODEL(RIG_ICOM, 33) // not implemented and can be reused
219 #define RIG_MODEL_IC821H RIG_MAKE_MODEL(RIG_ICOM, 34)
220 #define RIG_MODEL_IC970 RIG_MAKE_MODEL(RIG_ICOM, 35)
221 #define RIG_MODEL_ICR10 RIG_MAKE_MODEL(RIG_ICOM, 36)
222 #define RIG_MODEL_ICR71 RIG_MAKE_MODEL(RIG_ICOM, 37)
223 #define RIG_MODEL_ICR72 RIG_MAKE_MODEL(RIG_ICOM, 38)
224 #define RIG_MODEL_ICR75 RIG_MAKE_MODEL(RIG_ICOM, 39)
225 #define RIG_MODEL_ICR7000 RIG_MAKE_MODEL(RIG_ICOM, 40)
226 #define RIG_MODEL_ICR7100 RIG_MAKE_MODEL(RIG_ICOM, 41)
227 #define RIG_MODEL_ICR8500 RIG_MAKE_MODEL(RIG_ICOM, 42)
228 #define RIG_MODEL_ICR9000 RIG_MAKE_MODEL(RIG_ICOM, 43)
229 #define RIG_MODEL_IC910 RIG_MAKE_MODEL(RIG_ICOM, 44)
230 #define RIG_MODEL_IC78 RIG_MAKE_MODEL(RIG_ICOM, 45)
231 #define RIG_MODEL_IC746PRO RIG_MAKE_MODEL(RIG_ICOM, 46)
232 #define RIG_MODEL_IC756PROII RIG_MAKE_MODEL(RIG_ICOM, 47)   /* 48-53 defined below */
233 #define RIG_MODEL_ICID1 RIG_MAKE_MODEL(RIG_ICOM, 54)
234 #define RIG_MODEL_IC703 RIG_MAKE_MODEL(RIG_ICOM, 55)
235 #define RIG_MODEL_IC7800 RIG_MAKE_MODEL(RIG_ICOM, 56)
236 #define RIG_MODEL_IC756PROIII RIG_MAKE_MODEL(RIG_ICOM, 57)
237 #define RIG_MODEL_ICR20 RIG_MAKE_MODEL(RIG_ICOM, 58)    /* 59 defined below */
238 #define RIG_MODEL_IC7000 RIG_MAKE_MODEL(RIG_ICOM, 60)
239 #define RIG_MODEL_IC7200 RIG_MAKE_MODEL(RIG_ICOM, 61)
240 #define RIG_MODEL_IC7700 RIG_MAKE_MODEL(RIG_ICOM, 62)
241 #define RIG_MODEL_IC7600 RIG_MAKE_MODEL(RIG_ICOM, 63)   /* 64 defined below */
242 #define RIG_MODEL_IC92D RIG_MAKE_MODEL(RIG_ICOM, 65)
243 #define RIG_MODEL_ICR9500 RIG_MAKE_MODEL(RIG_ICOM, 66)
244 #define RIG_MODEL_IC7410 RIG_MAKE_MODEL(RIG_ICOM, 67)
245 #define RIG_MODEL_IC9100 RIG_MAKE_MODEL(RIG_ICOM, 68)
246 #define RIG_MODEL_ICRX7 RIG_MAKE_MODEL(RIG_ICOM, 69)
247 #define RIG_MODEL_IC7100 RIG_MAKE_MODEL(RIG_ICOM, 70)
248 #define RIG_MODEL_ID5100 RIG_MAKE_MODEL(RIG_ICOM, 71)
249 #define RIG_MODEL_IC2730 RIG_MAKE_MODEL(RIG_ICOM, 72)
250 #define RIG_MODEL_IC7300 RIG_MAKE_MODEL(RIG_ICOM, 73)
251 #define RIG_MODEL_PERSEUS RIG_MAKE_MODEL(RIG_ICOM, 74)
252 #define RIG_MODEL_IC785x RIG_MAKE_MODEL(RIG_ICOM, 75)
253 #define RIG_MODEL_X108G RIG_MAKE_MODEL(RIG_ICOM, 76)    /* Xiegu X108 */
254 #define RIG_MODEL_ICR6 RIG_MAKE_MODEL(RIG_ICOM, 77)
255 #define RIG_MODEL_IC7610 RIG_MAKE_MODEL(RIG_ICOM, 78)
256 #define RIG_MODEL_ICR8600 RIG_MAKE_MODEL(RIG_ICOM, 79)
257 #define RIG_MODEL_ICR30 RIG_MAKE_MODEL(RIG_ICOM, 80)
258 #define RIG_MODEL_IC9700 RIG_MAKE_MODEL(RIG_ICOM, 81)
259 #define RIG_MODEL_ID4100 RIG_MAKE_MODEL(RIG_ICOM, 82)
260 #define RIG_MODEL_ID31 RIG_MAKE_MODEL(RIG_ICOM, 83)
261 #define RIG_MODEL_ID51 RIG_MAKE_MODEL(RIG_ICOM, 84)
262 #define RIG_MODEL_IC705 RIG_MAKE_MODEL(RIG_ICOM, 85)
263 /* next one is 86 */
264 
265 
266 /*
267  * Optoelectronics (CI-V)
268  */
269 #define RIG_MODEL_MINISCOUT RIG_MAKE_MODEL(RIG_ICOM, 48)
270 #define RIG_MODEL_XPLORER RIG_MAKE_MODEL(RIG_ICOM, 49)
271 #define RIG_MODEL_OS535 RIG_MAKE_MODEL(RIG_ICOM, 52)
272 #define RIG_MODEL_OS456 RIG_MAKE_MODEL(RIG_ICOM, 53)
273 
274 
275 /*
276  * TenTec (CI-V)
277  */
278 #define RIG_MODEL_OMNIVI RIG_MAKE_MODEL(RIG_ICOM, 50)
279 #define RIG_MODEL_OMNIVIP RIG_MAKE_MODEL(RIG_ICOM, 51) /* OMNI-VI+ */
280 #define RIG_MODEL_PARAGON2 RIG_MAKE_MODEL(RIG_ICOM, 59)
281 #define RIG_MODEL_DELTAII RIG_MAKE_MODEL(RIG_ICOM, 64)
282 
283 
284 /*
285  * Icom PCR
286  */
287 #define RIG_PCR 4
288 #define RIG_BACKEND_PCR "pcr"
289 #define RIG_MODEL_PCR1000 RIG_MAKE_MODEL(RIG_PCR, 1)
290 #define RIG_MODEL_PCR100 RIG_MAKE_MODEL(RIG_PCR, 2)
291 #define RIG_MODEL_PCR1500 RIG_MAKE_MODEL(RIG_PCR, 3)
292 #define RIG_MODEL_PCR2500 RIG_MAKE_MODEL(RIG_PCR, 4)
293 
294 
295 /*
296  * AOR
297  */
298 #define RIG_AOR 5
299 #define RIG_BACKEND_AOR "aor"
300 #define RIG_MODEL_AR8200 RIG_MAKE_MODEL(RIG_AOR, 1)
301 #define RIG_MODEL_AR8000 RIG_MAKE_MODEL(RIG_AOR, 2)
302 #define RIG_MODEL_AR7030 RIG_MAKE_MODEL(RIG_AOR, 3)
303 #define RIG_MODEL_AR5000 RIG_MAKE_MODEL(RIG_AOR, 4)
304 #define RIG_MODEL_AR3030 RIG_MAKE_MODEL(RIG_AOR, 5)
305 #define RIG_MODEL_AR3000A RIG_MAKE_MODEL(RIG_AOR, 6)
306 #define RIG_MODEL_AR3000 RIG_MAKE_MODEL(RIG_AOR, 7)
307 #define RIG_MODEL_AR2700 RIG_MAKE_MODEL(RIG_AOR, 8)
308 #define RIG_MODEL_AR2500 RIG_MAKE_MODEL(RIG_AOR, 9)
309 #define RIG_MODEL_AR16 RIG_MAKE_MODEL(RIG_AOR, 10)
310 #define RIG_MODEL_SDU5500 RIG_MAKE_MODEL(RIG_AOR, 11)
311 #define RIG_MODEL_SDU5000 RIG_MAKE_MODEL(RIG_AOR, 12)
312 #define RIG_MODEL_AR8600 RIG_MAKE_MODEL(RIG_AOR, 13)
313 #define RIG_MODEL_AR5000A RIG_MAKE_MODEL(RIG_AOR, 14)
314 #define RIG_MODEL_AR7030P RIG_MAKE_MODEL(RIG_AOR, 15)
315 #define RIG_MODEL_SR2200 RIG_MAKE_MODEL(RIG_AOR, 16)
316 
317 
318 /*
319  * JRC
320  */
321 #define RIG_JRC 6
322 #define RIG_BACKEND_JRC "jrc"
323 #define RIG_MODEL_JST145 RIG_MAKE_MODEL(RIG_JRC, 1)
324 #define RIG_MODEL_JST245 RIG_MAKE_MODEL(RIG_JRC, 2)
325 #define RIG_MODEL_CMH530 RIG_MAKE_MODEL(RIG_JRC, 3)
326 #define RIG_MODEL_NRD345 RIG_MAKE_MODEL(RIG_JRC, 4)
327 #define RIG_MODEL_NRD525 RIG_MAKE_MODEL(RIG_JRC, 5)
328 #define RIG_MODEL_NRD535 RIG_MAKE_MODEL(RIG_JRC, 6)
329 #define RIG_MODEL_NRD545 RIG_MAKE_MODEL(RIG_JRC, 7)
330 
331 
332 /*
333  * Radio Shack
334  * Actually, they might be either Icom or Uniden. TBC --SF
335  */
336 #define RIG_RADIOSHACK 7
337 #define RIG_BACKEND_RADIOSHACK "radioshack"
338 #define RIG_MODEL_RS64 RIG_MAKE_MODEL(RIG_RADIOSHACK, 1)    /* PRO-64 */
339 #define RIG_MODEL_RS2005 RIG_MAKE_MODEL(RIG_RADIOSHACK, 2)  /* w/ OptoElectronics OS456 Board */
340 #define RIG_MODEL_RS2006 RIG_MAKE_MODEL(RIG_RADIOSHACK, 3)  /* w/ OptoElectronics OS456 Board */
341 #define RIG_MODEL_RS2035 RIG_MAKE_MODEL(RIG_RADIOSHACK, 4)  /* w/ OptoElectronics OS435 Board */
342 #define RIG_MODEL_RS2042 RIG_MAKE_MODEL(RIG_RADIOSHACK, 5)  /* w/ OptoElectronics OS435 Board */
343 #define RIG_MODEL_RS2041 RIG_MAKE_MODEL(RIG_RADIOSHACK, 6)  /* PRO-2041 */
344 
345 
346 /*
347  * Uniden
348  */
349 #define RIG_UNIDEN 8
350 #define RIG_BACKEND_UNIDEN "uniden"
351 #define RIG_MODEL_BC780 RIG_MAKE_MODEL(RIG_UNIDEN, 1)   /* Uniden BC780 - Trunk Tracker "Desktop Radio" */
352 #define RIG_MODEL_BC245 RIG_MAKE_MODEL(RIG_UNIDEN, 2)
353 #define RIG_MODEL_BC895 RIG_MAKE_MODEL(RIG_UNIDEN, 3)
354 #define RIG_MODEL_PRO2052 RIG_MAKE_MODEL(RIG_UNIDEN, 4) /* Radio Shack PRO-2052 */
355 #define RIG_MODEL_BC235 RIG_MAKE_MODEL(RIG_UNIDEN, 5)
356 #define RIG_MODEL_BC250 RIG_MAKE_MODEL(RIG_UNIDEN, 6)
357 #define RIG_MODEL_BC785 RIG_MAKE_MODEL(RIG_UNIDEN, 7)
358 #define RIG_MODEL_BC786 RIG_MAKE_MODEL(RIG_UNIDEN, 8)
359 #define RIG_MODEL_BCT8 RIG_MAKE_MODEL(RIG_UNIDEN, 9)
360 #define RIG_MODEL_BCD396T RIG_MAKE_MODEL(RIG_UNIDEN, 10)
361 #define RIG_MODEL_BCD996T RIG_MAKE_MODEL(RIG_UNIDEN, 11)
362 #define RIG_MODEL_BC898 RIG_MAKE_MODEL(RIG_UNIDEN, 12)
363 
364 
365 /*
366  * Drake
367  */
368 #define RIG_DRAKE 9
369 #define RIG_BACKEND_DRAKE "drake"
370 #define RIG_MODEL_DKR8 RIG_MAKE_MODEL(RIG_DRAKE, 1)
371 #define RIG_MODEL_DKR8A RIG_MAKE_MODEL(RIG_DRAKE, 2)
372 #define RIG_MODEL_DKR8B RIG_MAKE_MODEL(RIG_DRAKE, 3)
373 
374 
375 /*
376  * Lowe
377  */
378 #define RIG_LOWE 10
379 #define RIG_BACKEND_LOWE "lowe"
380 #define RIG_MODEL_HF150 RIG_MAKE_MODEL(RIG_LOWE, 1)
381 #define RIG_MODEL_HF225 RIG_MAKE_MODEL(RIG_LOWE, 2)
382 #define RIG_MODEL_HF250 RIG_MAKE_MODEL(RIG_LOWE, 3)
383 #define RIG_MODEL_HF235 RIG_MAKE_MODEL(RIG_LOWE, 4)
384 
385 
386 /*
387  * Racal
388  */
389 #define RIG_RACAL 11
390 #define RIG_BACKEND_RACAL "racal"
391 #define RIG_MODEL_RA3790 RIG_MAKE_MODEL(RIG_RACAL, 1)
392 #define RIG_MODEL_RA3720 RIG_MAKE_MODEL(RIG_RACAL, 2)
393 #define RIG_MODEL_RA6790 RIG_MAKE_MODEL(RIG_RACAL, 3)
394 #define RIG_MODEL_RA3710 RIG_MAKE_MODEL(RIG_RACAL, 4)
395 #define RIG_MODEL_RA3702 RIG_MAKE_MODEL(RIG_RACAL, 5)
396 
397 
398 /*
399  * Watkins-Johnson
400  */
401 #define RIG_WJ 12
402 #define RIG_BACKEND_WJ "wj"
403 #define RIG_MODEL_HF1000 RIG_MAKE_MODEL(RIG_WJ, 1)
404 #define RIG_MODEL_HF1000A RIG_MAKE_MODEL(RIG_WJ, 2)
405 #define RIG_MODEL_WJ8711 RIG_MAKE_MODEL(RIG_WJ, 3)
406 #define RIG_MODEL_WJ8888 RIG_MAKE_MODEL(RIG_WJ, 4)
407 
408 
409 /*
410  * Rohde & Schwarz--ek
411  */
412 #define RIG_EK 13
413 #define RIG_BACKEND_EK "ek"
414 #define RIG_MODEL_ESM500 RIG_MAKE_MODEL(RIG_EK, 1)
415 #define RIG_MODEL_EK890 RIG_MAKE_MODEL(RIG_EK, 2)
416 #define RIG_MODEL_EK891 RIG_MAKE_MODEL(RIG_EK, 3)
417 #define RIG_MODEL_EK895 RIG_MAKE_MODEL(RIG_EK, 4)
418 #define RIG_MODEL_EK070 RIG_MAKE_MODEL(RIG_EK, 5)
419 
420 
421 /*
422  * Skanti
423  */
424 #define RIG_SKANTI 14
425 #define RIG_BACKEND_SKANTI "skanti"
426 #define RIG_MODEL_TRP7000 RIG_MAKE_MODEL(RIG_SKANTI, 1)
427 #define RIG_MODEL_TRP8000 RIG_MAKE_MODEL(RIG_SKANTI, 2)
428 #define RIG_MODEL_TRP9000 RIG_MAKE_MODEL(RIG_SKANTI, 3)
429 #define RIG_MODEL_TRP8255 RIG_MAKE_MODEL(RIG_SKANTI, 4)
430 
431 
432 /*
433  * WiNRADiO/LinRADiO
434  */
435 #define RIG_WINRADIO 15
436 #define RIG_BACKEND_WINRADIO "winradio"
437 #define RIG_MODEL_WR1000 RIG_MAKE_MODEL(RIG_WINRADIO, 1)
438 #define RIG_MODEL_WR1500 RIG_MAKE_MODEL(RIG_WINRADIO, 2)
439 #define RIG_MODEL_WR1550 RIG_MAKE_MODEL(RIG_WINRADIO, 3)
440 #define RIG_MODEL_WR3100 RIG_MAKE_MODEL(RIG_WINRADIO, 4)
441 #define RIG_MODEL_WR3150 RIG_MAKE_MODEL(RIG_WINRADIO, 5)
442 #define RIG_MODEL_WR3500 RIG_MAKE_MODEL(RIG_WINRADIO, 6)
443 #define RIG_MODEL_WR3700 RIG_MAKE_MODEL(RIG_WINRADIO, 7)
444 #define RIG_MODEL_G303 RIG_MAKE_MODEL(RIG_WINRADIO, 8)
445 #define RIG_MODEL_G313 RIG_MAKE_MODEL(RIG_WINRADIO, 9)
446 #define RIG_MODEL_G305 RIG_MAKE_MODEL(RIG_WINRADIO, 10)
447 #define RIG_MODEL_G315 RIG_MAKE_MODEL(RIG_WINRADIO, 11)
448 
449 
450 /*
451  * Ten Tec
452  */
453 #define RIG_TENTEC 16
454 #define RIG_BACKEND_TENTEC "tentec"
455 #define RIG_MODEL_TT550 RIG_MAKE_MODEL(RIG_TENTEC, 1)   /* Pegasus */
456 #define RIG_MODEL_TT538 RIG_MAKE_MODEL(RIG_TENTEC, 2)   /* Jupiter */
457 #define RIG_MODEL_RX320 RIG_MAKE_MODEL(RIG_TENTEC, 3)
458 #define RIG_MODEL_RX340 RIG_MAKE_MODEL(RIG_TENTEC, 4)
459 #define RIG_MODEL_RX350 RIG_MAKE_MODEL(RIG_TENTEC, 5)
460 #define RIG_MODEL_TT526 RIG_MAKE_MODEL(RIG_TENTEC, 6)   /* 6N2 */
461 #define RIG_MODEL_TT516 RIG_MAKE_MODEL(RIG_TENTEC, 7)   /* Argonaut V */
462 #define RIG_MODEL_TT565 RIG_MAKE_MODEL(RIG_TENTEC, 8)   /* Orion */
463 #define RIG_MODEL_TT585 RIG_MAKE_MODEL(RIG_TENTEC, 9)   /* Paragon */
464 #define RIG_MODEL_TT588 RIG_MAKE_MODEL(RIG_TENTEC, 11)  /* Omni-VII */
465 #define RIG_MODEL_RX331 RIG_MAKE_MODEL(RIG_TENTEC, 12)
466 #define RIG_MODEL_TT599 RIG_MAKE_MODEL(RIG_TENTEC, 13)  /* Eagle */
467 
468 
469 /*
470  * Alinco
471  */
472 #define RIG_ALINCO 17
473 #define RIG_BACKEND_ALINCO "alinco"
474 #define RIG_MODEL_DX77 RIG_MAKE_MODEL(RIG_ALINCO, 1)
475 #define RIG_MODEL_DXSR8 RIG_MAKE_MODEL(RIG_ALINCO, 2)
476 
477 
478 /*
479  * Kachina
480  */
481 #define RIG_KACHINA 18
482 #define RIG_BACKEND_KACHINA "kachina"
483 #define RIG_MODEL_505DSP RIG_MAKE_MODEL(RIG_KACHINA, 1)
484 
485 
486 /*
487  * Gnuradio backend
488  */
489 #define RIG_GNURADIO 20
490 #define RIG_BACKEND_GNURADIO "gnuradio"
491 #define RIG_MODEL_GNURADIO RIG_MAKE_MODEL(RIG_GNURADIO, 1)  /* dev model, Chirp source */
492 #define RIG_MODEL_MC4020 RIG_MAKE_MODEL(RIG_GNURADIO, 2)    /* MC4020 */
493 #define RIG_MODEL_GRAUDIO RIG_MAKE_MODEL(RIG_GNURADIO, 3)   /* Sound card source */
494 #define RIG_MODEL_GRAUDIOIQ RIG_MAKE_MODEL(RIG_GNURADIO, 4) /* I&Q stereo sound card source */
495 #define RIG_MODEL_USRP_G RIG_MAKE_MODEL(RIG_GNURADIO, 5)    /* Universal Software Radio Peripheral */
496 
497 
498 /*
499  * Microtune tuners
500  */
501 #define RIG_MICROTUNE 21
502 #define RIG_BACKEND_MICROTUNE "microtune"
503 #define RIG_MODEL_MICROTUNE_4937 RIG_MAKE_MODEL(RIG_MICROTUNE, 1)   /* eval board */
504 #define RIG_MODEL_MICROTUNE_4702 RIG_MAKE_MODEL(RIG_MICROTUNE, 2)   /* Alan's */
505 #define RIG_MODEL_MICROTUNE_4707 RIG_MAKE_MODEL(RIG_MICROTUNE, 3)
506 
507 
508 /*
509  * TAPR
510  */
511 #define RIG_TAPR 22
512 #define RIG_BACKEND_TAPR "tapr"
513 #define RIG_MODEL_DSP10 RIG_MAKE_MODEL(RIG_TAPR, 1)
514 
515 
516 /*
517  * Flex-radio
518  */
519 #define RIG_FLEXRADIO 23
520 #define RIG_BACKEND_FLEXRADIO "flexradio"
521 #define RIG_MODEL_SDR1000 RIG_MAKE_MODEL(RIG_FLEXRADIO, 1)
522 #define RIG_MODEL_SDR1000RFE RIG_MAKE_MODEL(RIG_FLEXRADIO, 2)
523 #define RIG_MODEL_DTTSP RIG_MAKE_MODEL(RIG_FLEXRADIO, 3)
524 #define RIG_MODEL_DTTSP_UDP RIG_MAKE_MODEL(RIG_FLEXRADIO, 4)
525 
526 
527 /*
528  * VEB Funkwerk Köpenick RFT
529  */
530 #define RIG_RFT 24
531 #define RIG_BACKEND_RFT "rft"
532 #define RIG_MODEL_EKD500 RIG_MAKE_MODEL(RIG_RFT, 1)
533 
534 
535 /*
536  * Various kits
537  */
538 #define RIG_KIT 25
539 #define RIG_BACKEND_KIT "kit"
540 #define RIG_MODEL_ELEKTOR304 RIG_MAKE_MODEL(RIG_KIT, 1)
541 #define RIG_MODEL_DRT1 RIG_MAKE_MODEL(RIG_KIT, 2)
542 #define RIG_MODEL_DWT RIG_MAKE_MODEL(RIG_KIT, 3)
543 #define RIG_MODEL_USRP0 RIG_MAKE_MODEL(RIG_KIT, 4)              /* prototype */
544 #define RIG_MODEL_USRP RIG_MAKE_MODEL(RIG_KIT, 5)
545 #define RIG_MODEL_DDS60 RIG_MAKE_MODEL(RIG_KIT, 6)
546 #define RIG_MODEL_ELEKTOR507 RIG_MAKE_MODEL(RIG_KIT, 7)         /* Elektor SDR USB */
547 #define RIG_MODEL_MINIVNA RIG_MAKE_MODEL(RIG_KIT, 8)
548 #define RIG_MODEL_SI570AVRUSB RIG_MAKE_MODEL(RIG_KIT, 9)        /* SoftRock Si570 AVR */
549 #define RIG_MODEL_PMSDR RIG_MAKE_MODEL(RIG_KIT, 10)
550 #define RIG_MODEL_SI570PICUSB RIG_MAKE_MODEL(RIG_KIT, 11)       /* SoftRock Si570 PIC */
551 #define RIG_MODEL_FIFISDR RIG_MAKE_MODEL(RIG_KIT, 12)           /* FiFi-SDR USB */
552 #define RIG_MODEL_FUNCUBEDONGLE RIG_MAKE_MODEL(RIG_KIT, 13)     /* FunCUBE Dongle */
553 #define RIG_MODEL_HIQSDR RIG_MAKE_MODEL(RIG_KIT, 14)            /* HiQSDR */
554 #define RIG_MODEL_FASDR RIG_MAKE_MODEL(RIG_KIT,15)              /* Funkamateur Sdr */
555 #define RIG_MODEL_SI570PEABERRY1 RIG_MAKE_MODEL(RIG_KIT, 16)    /* Peaberry V1 */
556 #define RIG_MODEL_SI570PEABERRY2 RIG_MAKE_MODEL(RIG_KIT, 17)    /* Peaberry V2 */
557 #define RIG_MODEL_FUNCUBEDONGLEPLUS RIG_MAKE_MODEL(RIG_KIT, 18) /* FunCUBE Dongle Pro+ */
558 #define RIG_MODEL_RSHFIQ RIG_MAKE_MODEL(RIG_KIT, 19)            /* RS-HFIQ */
559 
560 
561 /*
562  * SW/FM/TV tuner cards supported by Video4Linux,*BSD, ..
563  */
564 #define RIG_TUNER 26
565 #define RIG_BACKEND_TUNER "tuner"
566 #define RIG_MODEL_V4L RIG_MAKE_MODEL(RIG_TUNER, 1)
567 #define RIG_MODEL_V4L2 RIG_MAKE_MODEL(RIG_TUNER, 2)
568 
569 
570 /*
571  * Rohde & Schwarz--rs
572  */
573 #define RIG_RS 27
574 #define RIG_BACKEND_RS "rs"
575 #define RIG_MODEL_ESMC RIG_MAKE_MODEL(RIG_RS, 1)
576 #define RIG_MODEL_EB200 RIG_MAKE_MODEL(RIG_RS, 2)
577 #define RIG_MODEL_XK2100 RIG_MAKE_MODEL(RIG_RS, 3)
578 
579 
580 /*
581  * Phillips/Simoco PRM80
582  */
583 #define RIG_PRM80 28
584 #define RIG_BACKEND_PRM80 "prm80"
585 #define RIG_MODEL_PRM8060 RIG_MAKE_MODEL(RIG_PRM80, 1)
586 #define RIG_MODEL_PRM8070 RIG_MAKE_MODEL(RIG_PRM80, 2)
587 
588 
589 /*
590  * ADAT by HB9CBU
591  *
592  * ADDED: frgo (DG1SBG), 2012-01-01
593  */
594 #define RIG_ADAT 29
595 #define RIG_BACKEND_ADAT "adat"
596 #define RIG_MODEL_ADT_200A RIG_MAKE_MODEL(RIG_ADAT, 1)
597 
598 
599 /*
600  * ICOM Marine
601  */
602 #define RIG_ICMARINE 30
603 #define RIG_BACKEND_ICMARINE "icmarine"
604 #define RIG_MODEL_IC_M700PRO RIG_MAKE_MODEL(RIG_ICMARINE, 1)
605 #define RIG_MODEL_IC_M802 RIG_MAKE_MODEL(RIG_ICMARINE, 2)
606 #define RIG_MODEL_IC_M710 RIG_MAKE_MODEL(RIG_ICMARINE, 3)
607 #define RIG_MODEL_IC_M803 RIG_MAKE_MODEL(RIG_ICMARINE, 4)
608 
609 
610 /*
611  * Dorji transceiver modules
612  */
613 #define RIG_DORJI 31
614 #define RIG_BACKEND_DORJI "dorji"
615 #define RIG_MODEL_DORJI_DRA818V RIG_MAKE_MODEL(RIG_DORJI, 1)
616 #define RIG_MODEL_DORJI_DRA818U RIG_MAKE_MODEL(RIG_DORJI, 2)
617 
618 /*
619  * Barrett
620  */
621 #define RIG_BARRETT 32
622 #define RIG_BACKEND_BARRETT "barrett"
623 #define RIG_MODEL_BARRETT_2050 RIG_MAKE_MODEL(RIG_BARRETT, 1)
624 #define RIG_MODEL_BARRETT_950 RIG_MAKE_MODEL(RIG_BARRETT, 2)
625 
626 /*
627  * Elad
628  */
629 #define RIG_ELAD 33
630 #define RIG_BACKEND_ELAD "elad"
631 #define RIG_MODEL_ELAD_FDM_DUO RIG_MAKE_MODEL(RIG_ELAD, 1)
632 //! @endcond
633 
634 
635 /*
636  * TODO:
637     RIG_MODEL_KWZ30,    KNEISNER +DOERING
638     RIG_MODEL_E1800,    DASA-Telefunken
639     etc.
640 */
641 
642 
643 /*! \typedef typedef int rig_model_t
644     \brief Convenience type definition for rig model.
645 */
646 typedef uint32_t rig_model_t;
647 
648 
649 /*
650  * struct rig_backend_list {
651  *      rig_model_t model;
652  *      const char *backend;
653  * } rig_backend_list[] = RIG_LIST;
654  *
655  * TODO:
656  *
657     { RIG_RADIOSHACK, RIG_BACKEND_RADIOSHACK }, \
658  */
659 
660 #endif /* _RIGLIST_H */
661