This file is indexed.

/usr/include/hamlib/rotlist.h is in libhamlib-dev 1.2.15.3-1ubuntu4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
/*
 *  Hamlib Interface - list of known rotators
 *  Copyright (c) 2000-2011 by Stephane Fillod
 *  Copyright (c) 2000-2002 by Frank Singleton
 *
 *
 *   This library is free software; you can redistribute it and/or
 *   modify it under the terms of the GNU Lesser General Public
 *   License as published by the Free Software Foundation; either
 *   version 2.1 of the License, or (at your option) any later version.
 *
 *   This library 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
 *   Lesser General Public License for more details.
 *
 *   You should have received a copy of the GNU Lesser General Public
 *   License along with this library; if not, write to the Free Software
 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */

#ifndef _ROTLIST_H
#define _ROTLIST_H 1

#define ROT_MAKE_MODEL(a,b) ((a)*100+(b))
#define ROT_BACKEND_NUM(a) ((a)/100)

/**
 * \addtogroup rotator
 * @{
 */

/*! \file rotlist.h
 *  \brief Hamlib rotator model definitions.
 *
 *  This file contains rotator model definitions for the Hamlib rotator API.
 *  Each distinct rotator type has a unique model number (ID) and is used
 *  by hamlib to identify and distinguish between the different hardware drivers.
 *  The exact model numbers can be acquired using the macros in this
 *  file. To obtain a list of supported rotator branches, one can use the statically
 *  defined ROT_BACKEND_LIST macro. To obtain a full list of supported rotators (including
 *  each model in every branch), the foreach_opened_rot() API function can be used.
 *
 *  The model number, or ID, is used to tell hamlib, which rotator the client whishes to
 *  use. It is done with the rot_init() API call.
 */

#define ROT_MODEL_NONE 0

/*! \def ROT_MODEL_DUMMY
 *  \brief A macro that returns the model number for the dummy backend.
 *
 *  The dummy backend, as the name suggests, is a backend which performs
 *  no hardware operations and always behaves as one would expect. It can
 *  be thought of as a hardware simulator and is very usefull for testing
 *  client applications.
 */
/*! \def ROT_MODEL_NETROTCTL
 *  \brief A macro that returns the model number for the Network backend.
 *
 *  This backend allows use of the rotctld daemon through the normal
 *  Hamlib API.
 */
#define ROT_DUMMY 0
#define ROT_BACKEND_DUMMY "dummy"
#define ROT_MODEL_DUMMY ROT_MAKE_MODEL(ROT_DUMMY, 1)
#define ROT_MODEL_NETROTCTL ROT_MAKE_MODEL(ROT_DUMMY, 2)

	/*
	 * RPC Network pseudo-backend
	 */
/*! \def ROT_MODEL_RPC
 *  \brief A macro that returns the model number of the RPC Network pseudo-backend.
 *
 *  The RPC backend can be used to connect and send commands to a rotator server,
 *  \c rpc.rotd, running on a remote machine. Using this client/server scheme,
 *  several clients can control and monitor the same rotator hardware.
 */
#define ROT_RPC 1
#define ROT_BACKEND_RPC "rpcrot"
#define ROT_MODEL_RPC ROT_MAKE_MODEL(ROT_RPC, 1)

	/*
	 * Easycomm
	 */
/*! \def ROT_MODEL_EASYCOMM1
 *  \brief A macro that returns the model number of the EasyComm 1 backend.
 *
 *  The EasyComm 1 backend can be used with rotators that support the
 *  EASYCOMM I Standard.
 */
/*! \def ROT_MODEL_EASYCOMM2
 *  \brief A macro that returns the model number of the EasyComm 2 backend.
 *
 *  The EasyComm 2 backend can be used with rotators that support the
 *  EASYCOMM II Standard.
 */
#define ROT_EASYCOMM 2
#define ROT_BACKEND_EASYCOMM "easycomm"
#define ROT_MODEL_EASYCOMM1 ROT_MAKE_MODEL(ROT_EASYCOMM, 1)
#define ROT_MODEL_EASYCOMM2 ROT_MAKE_MODEL(ROT_EASYCOMM, 2)
#define ROT_MODEL_TRAKBOX ROT_MAKE_MODEL(ROT_EASYCOMM, 3)

/*! \def ROT_MODEL_FODTRACK
 *  \brief A macro that returns the model number of the Fodtrack backend.
 *
 *  The Fodtrack backend can be used with rotators that support the
 *  FODTRACK Standard.
 */
#define ROT_FODTRACK 3
#define ROT_BACKEND_FODTRACK "fodtrack"
#define ROT_MODEL_FODTRACK ROT_MAKE_MODEL(ROT_FODTRACK, 1)

/*! \def ROT_MODEL_ROTOREZ
 *  \brief A macro that returns the model number of the Rotor-EZ backend.
 *
 *  The Rotor-EZ backend can be used with Hy-Gain rotators that support
 *  the extended DCU command set by Idiom Press Rotor-EZ board.
 */
/*! \def ROT_MODEL_ROTORCARD
 *  \brief A macro that returns the model number of the Rotor Card backend.
 *
 *  The Rotor-EZ backend can be used with Yaesu rotators that support the
 *  extended DCU command set by Idiom Press Rotor Card board.
 */
/*! \def ROT_MODEL_DCU
 *  \brief A macro that returns the model number of the DCU backend.
 *
 *  The Rotor-EZ backend can be used with rotators that support the
 *  DCU command set by Hy-Gain (currently the DCU-1).
 */
/*! \def ROT_MODEL_ERC
 *  \brief A macro that returns the model number of the ERC backend.
 *
 *  The Rotor-EZ backend can be used with rotators that support the
 *  DCU command set by DF9GR (currently the ERC).
 */
#define ROT_ROTOREZ 4
#define ROT_BACKEND_ROTOREZ "rotorez"
#define ROT_MODEL_ROTOREZ ROT_MAKE_MODEL(ROT_ROTOREZ, 1)
#define ROT_MODEL_ROTORCARD ROT_MAKE_MODEL(ROT_ROTOREZ, 2)
#define ROT_MODEL_DCU ROT_MAKE_MODEL(ROT_ROTOREZ, 3)
#define ROT_MODEL_ERC ROT_MAKE_MODEL(ROT_ROTOREZ, 4)

/*! \def ROT_MODEL_SARTEK1
 *  \brief A macro that returns the model number of the SARtek-1 backend.
 *
 *  The sartek backend can be used with rotators that support the
 *  SARtek protocol.
 */
#define ROT_SARTEK 5
#define ROT_BACKEND_SARTEK "sartek"
#define ROT_MODEL_SARTEK1 ROT_MAKE_MODEL(ROT_SARTEK, 1)

/*! \def ROT_MODEL_GS232A
 *  \brief A macro that returns the model number of the GS-232A backend.
 *
 *  The GS-232A backend can be used with rotators that support the
 *  GS-232A protocol.
 */
/*! \def ROT_MODEL_GS232
 *  \brief A macro that returns the model number of the GS-232 backend.
 *
 *  The GS-232 backend can be used with rotators that support the
 *  GS-232 protocol.
 */
/*! \def ROT_MODEL_GS232B
 *  \brief A macro that returns the model number of the GS-232B backend.
 *
 *  The GS-232B backend can be used with rotators that support the
 *  GS-232B protocol.
 */
/*! \def ROT_MODEL_F1TETRACKER
 *  \brief A macro that returns the model number of the F1TETRACKER backend.
 *
 *  The F1TETRACKER backend can be used with rotators that support the
 *  F1TETRACKER protocol.
 */
#define ROT_GS232A 6
#define ROT_BACKEND_GS232A "gs232a"
#define ROT_MODEL_GS232A ROT_MAKE_MODEL(ROT_GS232A, 1)
#define ROT_MODEL_GS232 ROT_MAKE_MODEL(ROT_GS232A, 2) /* Not A or B */
#define ROT_MODEL_GS232B ROT_MAKE_MODEL(ROT_GS232A, 3)
#define ROT_MODEL_F1TETRACKER ROT_MAKE_MODEL(ROT_GS232A, 4)

/*! \def ROT_MODEL_PCROTOR
 *  \brief A macro that returns the model number of the PcRotor/WA6UFQ backend.
 *
 *  The kit backend can be used with home brewed rotators.
 */
#define ROT_KIT 7
#define ROT_BACKEND_KIT "kit"
#define ROT_MODEL_PCROTOR ROT_MAKE_MODEL(ROT_KIT, 1)

/*! \def ROT_MODEL_HD1780
 *  \brief A macro that returns the model number of the HD 1780 backend.
 */
#define ROT_HEATHKIT 8
#define ROT_BACKEND_HEATHKIT "heathkit"
#define ROT_MODEL_HD1780 ROT_MAKE_MODEL(ROT_HEATHKIT, 1)

/*! \def ROT_MODEL_SPID_ROT2PROG
 *  \brief A macro that returns the model number of the ROT2PROG backend.
 *
 *  The SPID backend can be used with rotators that support the SPID
 *  protocol.
 */
/*! \def ROT_MODEL_SPID_ROT1PROG
 *  \brief A macro that returns the model number of the ROT1PROG backend.
 *
 *  The SPID backend can be used with rotators that support the SPID
 *  protocol.
 */
#define ROT_SPID 9
#define ROT_BACKEND_SPID "spid"
#define ROT_MODEL_SPID_ROT2PROG ROT_MAKE_MODEL(ROT_SPID, 1)
#define ROT_MODEL_SPID_ROT1PROG ROT_MAKE_MODEL(ROT_SPID, 2)

/*! \def ROT_MODEL_RC2800
 *  \brief A macro that returns the model number of the RC2800 backend.
 *
 *  The M2 backend can be used with rotators that support the RC2800
 *  protocol and alike.
 */
#define ROT_M2 10
#define ROT_BACKEND_M2 "m2"
#define ROT_MODEL_RC2800 ROT_MAKE_MODEL(ROT_M2, 1)

/*! \def ROT_MODEL_RCI_AZEL
 *  \brief A macro that returns the model number of the RCI_AZEL backend.
 *
 *  The ARS backend can be used with rotators that support the ARS
 *  protocol.
 */
/*! \def ROT_MODEL_RCI_AZ
 *  \brief A macro that returns the model number of the RCI_AZ backend.
 *
 *  The ARS backend can be used with rotators that support the ARS
 *  protocol.
 */
#define ROT_ARS 11
#define ROT_BACKEND_ARS "ars"
#define ROT_MODEL_RCI_AZEL ROT_MAKE_MODEL(ROT_ARS, 1)
#define ROT_MODEL_RCI_AZ ROT_MAKE_MODEL(ROT_ARS, 2)

/*! \def ROT_MODEL_IF100
 *  \brief A macro that returns the model number of the IF-100 backend.
 *
 *  The AMSAT backend can be used with rotators that support,
 *  among other, the IF-100 interface.
 */
#define ROT_AMSAT 12
#define ROT_BACKEND_AMSAT "amsat"
#define ROT_MODEL_IF100 ROT_MAKE_MODEL(ROT_AMSAT, 1)


/*! \def ROT_MODEL_TS7400
 *  \brief A macro that returns the model number of the TS7400 backend.
 *
 *  The TS-7400 backend supports and embedded ARM board using the TS-7400
 *  Linux board.  More information is at http://www.embeddedarm.com
 */
#define ROT_TS7400 13
#define ROT_BACKEND_TS7400 "ts7400"
#define ROT_MODEL_TS7400 ROT_MAKE_MODEL(ROT_TS7400, 1)

/*! \def ROT_MODEL_NEXSTAR
 *  \brief A macro that returns the model number of the NEXSTAR backend.
 *
 *  The CELESTRON backend can be used with rotators that support the Celestron
 *  protocol and alike.
 */
#define ROT_CELESTRON 14
#define ROT_BACKEND_CELESTRON "celestron"
#define ROT_MODEL_NEXSTAR ROT_MAKE_MODEL(ROT_CELESTRON, 1)


/*! \typedef typedef int rot_model_t
    \brief Convenience type definition for rotator model.
*/
typedef int rot_model_t;

/*! \def ROT_BACKEND_LIST
 *  \brief Static list of rotator models.
 *
 *  This is a NULL terminated list of available rotator backends. Each entry
 *  in the list consists of two fields: The branch number, which is an integer,
 *  and the branch name, which is a character string.
 */
#define ROT_BACKEND_LIST {		\
        { ROT_DUMMY, ROT_BACKEND_DUMMY }, \
        { ROT_RPC, ROT_BACKEND_RPC }, \
        { ROT_EASYCOMM, ROT_BACKEND_EASYCOMM }, \
        { ROT_FODTRACK, ROT_BACKEND_FODTRACK }, \
        { ROT_ROTOREZ, ROT_BACKEND_ROTOREZ }, \
        { ROT_SARTEK, ROT_BACKEND_SARTEK }, \
        { ROT_GS232A, ROT_BACKEND_GS232A }, \
        { ROT_KIT, ROT_BACKEND_KIT }, \
        { ROT_HEATHKIT, ROT_BACKEND_HEATHKIT }, \
        { ROT_SPID, ROT_BACKEND_SPID }, \
        { ROT_M2, ROT_BACKEND_M2 }, \
        { ROT_ARS, ROT_BACKEND_ARS }, \
        { ROT_AMSAT, ROT_BACKEND_AMSAT }, \
        { ROT_TS7400, ROT_BACKEND_TS7400 }, \
        { ROT_CELESTRON, ROT_BACKEND_CELESTRON }, \
        { 0, NULL }, /* end */  \
}

/*
 * struct rot_backend_list {
 *		rot_model_t model;
 *		const char *backend;
 * } rot_backend_list[] = ROT_LIST;
 *
 */

#endif /* _ROTLIST_H */

/** @} */