1 /* 2 * Hamlib Interface - list of known rotators 3 * Copyright (c) 2000-2011 by Stephane Fillod 4 * Copyright (c) 2000-2002 by Frank Singleton 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 _ROTLIST_H 24 #define _ROTLIST_H 1 25 26 //! @cond Doxygen_Suppress 27 #define ROT_MAKE_MODEL(a,b) ((a)*100+(b)) 28 #define ROT_BACKEND_NUM(a) ((a)/100) 29 //! @endcond 30 31 32 /** 33 * \addtogroup rotator 34 * @{ 35 */ 36 37 /** 38 * \file rotlist.h 39 * \brief Hamlib rotator model definitions. 40 * 41 * This file contains rotator model definitions for the Hamlib rotator 42 * Application Programming Interface (API). Each distinct rotator type has a 43 * unique model number (ID) and is used by Hamlib to identify and distinguish 44 * between the different hardware drivers. The exact model numbers can be 45 * acquired using the macros in this file. To obtain a list of supported 46 * rotator branches, one can use the statically defined ROT_BACKEND_LIST macro 47 * (defined in configure.ac). To obtain a full list of supported rotators 48 * (including each model in every branch), the foreach_opened_rot() API 49 * function can be used. 50 * 51 * The model number, or ID, is used to tell Hamlib which rotator the client 52 * wishes to use which is done with the rot_init() API call. 53 */ 54 55 /** 56 * \def ROT_MODEL_NONE 57 * \brief A macro that returns the model number for an unknown model. 58 * 59 * The none backend, as the name suggests, does nothing. It is mainly for 60 * internal use. 61 */ 62 #define ROT_MODEL_NONE 0 63 64 65 /** 66 * \brief A macro that returns the model number for the DUMMY backend. 67 * 68 * \def ROT_MODEL_DUMMY 69 * 70 * The DUMMY backend, as the name suggests, is a backend which performs 71 * no hardware operations and always behaves as one would expect. It can 72 * be thought of as a hardware simulator and is very useful for testing 73 * client applications. 74 */ 75 /** 76 * \brief A macro that returns the model number for the NETROTCTL backend. 77 * 78 * \def ROT_MODEL_NETROTCTL 79 * 80 * The NETROTCTL backend allows use of the `rotctld` daemon through the normal 81 * Hamlib API. 82 */ 83 //! @cond Doxygen_Suppress 84 #define ROT_DUMMY 0 85 #define ROT_BACKEND_DUMMY "dummy" 86 //! @endcond 87 #define ROT_MODEL_DUMMY ROT_MAKE_MODEL(ROT_DUMMY, 1) 88 #define ROT_MODEL_NETROTCTL ROT_MAKE_MODEL(ROT_DUMMY, 2) 89 90 91 /** 92 * \brief A macro that returns the model number of the EASYCOMM 1 backend. 93 * 94 * \def ROT_MODEL_EASYCOMM1 95 * 96 * The EASYCOMM1 backend can be used with rotators that support the EASYCOMM 97 * I Standard. 98 */ 99 /** 100 * \brief A macro that returns the model number of the EASYCOMM 2 backend. 101 * 102 * \def ROT_MODEL_EASYCOMM2 103 * 104 * The EASYCOMM2 backend can be used with rotators that support the EASYCOMM 105 * II Standard. 106 */ 107 /** 108 * \brief A macro that returns the model number of the EASYCOMM 3 backend. 109 * 110 * \def ROT_MODEL_EASYCOMM3 111 * 112 * The EASYCOMM3 backend can be used with rotators that support the EASYCOMM 113 * III Standard. 114 */ 115 //! @cond Doxygen_Suppress 116 #define ROT_EASYCOMM 2 117 #define ROT_BACKEND_EASYCOMM "easycomm" 118 //! @endcond 119 #define ROT_MODEL_EASYCOMM1 ROT_MAKE_MODEL(ROT_EASYCOMM, 1) 120 #define ROT_MODEL_EASYCOMM2 ROT_MAKE_MODEL(ROT_EASYCOMM, 2) 121 #define ROT_MODEL_EASYCOMM3 ROT_MAKE_MODEL(ROT_EASYCOMM, 4) 122 123 124 /** 125 * \brief A macro that returns the model number of the FODTRACK backend. 126 * 127 * \def ROT_MODEL_FODTRACK 128 * 129 * The FODTRACK backend can be used with rotators that support the FODTRACK 130 * Standard. 131 */ 132 //! @cond Doxygen_Suppress 133 #define ROT_FODTRACK 3 134 #define ROT_BACKEND_FODTRACK "fodtrack" 135 //! @endcond 136 #define ROT_MODEL_FODTRACK ROT_MAKE_MODEL(ROT_FODTRACK, 1) 137 138 139 /** 140 * \brief A macro that returns the model number of the ROTOREZ backend. 141 * 142 * \def ROT_MODEL_ROTOREZ 143 * 144 * The ROTOREZ backend can be used with Hy-Gain rotators that support the 145 * extended DCU command set by the Idiom Press Rotor-EZ board. 146 */ 147 /** 148 * \brief A macro that returns the model number of the ROTORCARD backend. 149 * 150 * \def ROT_MODEL_ROTORCARD 151 * 152 * The ROTORCARD backend can be used with Yaesu rotators that support the 153 * extended DCU command set by the Idiom Press Rotor Card board. 154 */ 155 /** 156 * \brief A macro that returns the model number of the DCU backend. 157 * 158 * \def ROT_MODEL_DCU 159 * 160 * The DCU backend can be used with rotators that support the DCU command set 161 * by Hy-Gain (currently the DCU-1). 162 */ 163 /** 164 * \brief A macro that returns the model number of the ERC backend. 165 * 166 * \def ROT_MODEL_ERC 167 * 168 * The ERC backend can be used with rotators that support the DCU command set 169 * by DF9GR (currently the ERC). 170 */ 171 /** 172 * \brief A macro that returns the model number of the RT21 backend. 173 * 174 * \def ROT_MODEL_RT21 175 * 176 * The RT21 backend can be used with rotators that support the DCU command set 177 * by Green Heron (currently the RT-21). 178 */ 179 //! @cond Doxygen_Suppress 180 #define ROT_ROTOREZ 4 181 #define ROT_BACKEND_ROTOREZ "rotorez" 182 //! @endcond 183 #define ROT_MODEL_ROTOREZ ROT_MAKE_MODEL(ROT_ROTOREZ, 1) 184 #define ROT_MODEL_ROTORCARD ROT_MAKE_MODEL(ROT_ROTOREZ, 2) 185 #define ROT_MODEL_DCU ROT_MAKE_MODEL(ROT_ROTOREZ, 3) 186 #define ROT_MODEL_ERC ROT_MAKE_MODEL(ROT_ROTOREZ, 4) 187 #define ROT_MODEL_RT21 ROT_MAKE_MODEL(ROT_ROTOREZ, 5) 188 189 190 /** 191 * \brief A macro that returns the model number of the SARTEK1 backend. 192 * 193 * \def ROT_MODEL_SARTEK1 194 * 195 * The SARTEK1 backend can be used with rotators that support the SARtek 196 * protocol. 197 */ 198 //! @cond Doxygen_Suppress 199 #define ROT_SARTEK 5 200 #define ROT_BACKEND_SARTEK "sartek" 201 //! @endcond 202 #define ROT_MODEL_SARTEK1 ROT_MAKE_MODEL(ROT_SARTEK, 1) 203 204 205 /** 206 * \brief A macro that returns the model number of the GS232A backend. 207 * 208 * \def ROT_MODEL_GS232A 209 * 210 * The GS232A backend can be used with rotators that support the GS-232A 211 * protocol. 212 */ 213 /** 214 * \brief A macro that returns the model number of the GS232 backend. 215 * 216 * \def ROT_MODEL_GS232_GENERIC 217 * 218 * The GS232_GENERIC backend can be used with rotators that support the 219 * generic (even if not coded correctly) GS-232 protocol. 220 */ 221 /** 222 * \brief A macro that returns the model number of the GS232B backend. 223 * 224 * \def ROT_MODEL_GS232B 225 * 226 * The GS232B backend can be used with rotators that support the GS232B 227 * protocol. 228 */ 229 /** 230 * \brief A macro that returns the model number of the F1TETRACKER backend. 231 * 232 * \def ROT_MODEL_F1TETRACKER 233 * 234 * The F1TETRACKER backend can be used with rotators that support the F1TE 235 * Tracker protocol. 236 */ 237 /** 238 * \brief A macro that returns the model number of the GS23 backend. 239 * 240 * \def ROT_MODEL_GS23 241 * 242 * The GS23 backend can be used with rotators that support the GS-23 protocol. 243 */ 244 /** 245 * \brief A macro that returns the model number of the GS232 backend. 246 * 247 * \def ROT_MODEL_GS232 248 * 249 * The GS232 backend can be used with rotators that support the GS-232 250 * protocol. 251 */ 252 /** 253 * \brief A macro that returns the model number of the LVB backend. 254 * 255 * \def ROT_MODEL_LVB 256 * 257 * The LVB backend can be used with rotators that support the G6LVB AMSAT LVB 258 * Tracker GS-232 based protocol. 259 */ 260 /** 261 * \brief A macro that returns the model number of the ST2 backend. 262 * 263 * \def ROT_MODEL_ST2 264 * 265 * The ST2 backend can be used with rotators that support the Fox Delta ST2 266 * GS-232 based protocol. 267 */ 268 /** 269 * \brief A macro that returns the model number of the GS232A_AZ Azimuth backend. 270 * 271 * \def ROT_MODEL_GS232A_AZ 272 * 273 * The GS232A_AZ backend can be used with azimuth rotators that support the 274 * GS-232A protocol. 275 */ 276 /** 277 * \brief A macro that returns the model number of the GS232A_EL Elevation backend. 278 * 279 * \def ROT_MODEL_GS232A_EL 280 * 281 * The GS232A_EL backend can be used with elevation rotators that support the 282 * GS-232A protocol. 283 */ 284 /** 285 * \brief A macro that returns the model number of the GS232B_AZ Azimuth backend. 286 * 287 * \def ROT_MODEL_GS232B_AZ 288 * 289 * The GS232B_AZ backend can be used with azimuth rotators that support the 290 * GS-232B protocol. 291 */ 292 /** 293 * \brief A macro that returns the model number of the GS232B_EL Elevation backend. 294 * 295 * \def ROT_MODEL_GS232B_EL 296 * 297 * The GS232B_EL backend can be used with elevation rotators that support the 298 * GS-232B protocol. 299 */ 300 301 //! @cond Doxygen_Suppress 302 #define ROT_GS232A 6 303 #define ROT_BACKEND_GS232A "gs232a" 304 //! @endcond 305 #define ROT_MODEL_GS232A ROT_MAKE_MODEL(ROT_GS232A, 1) 306 #define ROT_MODEL_GS232_GENERIC ROT_MAKE_MODEL(ROT_GS232A, 2) /* GENERIC */ 307 #define ROT_MODEL_GS232B ROT_MAKE_MODEL(ROT_GS232A, 3) 308 #define ROT_MODEL_F1TETRACKER ROT_MAKE_MODEL(ROT_GS232A, 4) 309 #define ROT_MODEL_GS23 ROT_MAKE_MODEL(ROT_GS232A, 5) 310 #define ROT_MODEL_GS232 ROT_MAKE_MODEL(ROT_GS232A, 6) /* Not A or B */ 311 #define ROT_MODEL_LVB ROT_MAKE_MODEL(ROT_GS232A, 7) 312 #define ROT_MODEL_ST2 ROT_MAKE_MODEL(ROT_GS232A, 8) 313 #define ROT_MODEL_GS232A_AZ ROT_MAKE_MODEL(ROT_GS232A, 9) 314 #define ROT_MODEL_GS232A_EL ROT_MAKE_MODEL(ROT_GS232A, 10) 315 #define ROT_MODEL_GS232B_AZ ROT_MAKE_MODEL(ROT_GS232A, 11) 316 #define ROT_MODEL_GS232B_EL ROT_MAKE_MODEL(ROT_GS232A, 12) 317 318 319 /** 320 * \brief A macro that returns the model number of the PCROTOR backend. 321 * 322 * \def ROT_MODEL_PCROTOR 323 * 324 * The PCROTOR backend is a member of the kit backend group that can be used 325 * with home brewed rotators. 326 */ 327 //! @cond Doxygen_Suppress 328 #define ROT_KIT 7 329 #define ROT_BACKEND_KIT "kit" 330 //! @endcond 331 #define ROT_MODEL_PCROTOR ROT_MAKE_MODEL(ROT_KIT, 1) 332 333 334 /** 335 * \brief A macro that returns the model number of the HD1780 backend. 336 * 337 * \def ROT_MODEL_HD1780 338 * 339 * The HD1780 backend can be used with rotators that support the Heathkit 340 * HD-1780 protocol. 341 */ 342 //! @cond Doxygen_Suppress 343 #define ROT_HEATHKIT 8 344 #define ROT_BACKEND_HEATHKIT "heathkit" 345 //! @endcond 346 #define ROT_MODEL_HD1780 ROT_MAKE_MODEL(ROT_HEATHKIT, 1) 347 348 349 /** 350 * \brief A macro that returns the model number of the ROT2PROG backend. 351 * 352 * \def ROT_MODEL_SPID_ROT2PROG 353 * 354 * The SPID_ROT2PROG backend can be used with rotators that support the SPID 355 * azimuth and elevation protocol. 356 */ 357 /** 358 * \brief A macro that returns the model number of the ROT1PROG backend. 359 * 360 * \def ROT_MODEL_SPID_ROT1PROG 361 * 362 * The SPID_ROT1PROG backend can be used with rotators that support the SPID 363 * azimuth protocol. 364 */ 365 /** 366 * \brief A macro that returns the model number of the SPID_MD01_ROT2PROG backend. 367 * 368 * \def ROT_MODEL_SPID_MD01_ROT2PROG 369 * 370 * The SPID_MD01_ROT2PROG backend can be used with rotators that support the 371 * extended SPID ROT2PROG azimuth and elevation protocol. 372 */ 373 //! @cond Doxygen_Suppress 374 #define ROT_SPID 9 375 #define ROT_BACKEND_SPID "spid" 376 //! @endcond 377 #define ROT_MODEL_SPID_ROT2PROG ROT_MAKE_MODEL(ROT_SPID, 1) 378 #define ROT_MODEL_SPID_ROT1PROG ROT_MAKE_MODEL(ROT_SPID, 2) 379 #define ROT_MODEL_SPID_MD01_ROT2PROG ROT_MAKE_MODEL(ROT_SPID, 3) 380 381 382 /** 383 * \brief A macro that returns the model number of the RC2800 backend. 384 * 385 * \def ROT_MODEL_RC2800 386 * 387 * The RC2800 backend can be used with rotators that support the M2 (M 388 * Squared) RC2800 protocol. 389 */ 390 /** 391 * \brief A macro that returns the model number of the RC2800_EARLY_AZ 392 * backend. 393 * 394 * \def ROT_MODEL_RC2800_EARLY_AZ 395 * 396 * The RC2800_EARLY_AZ backend can be used with rotators that support the M2 397 * (M Squared) RC2800 early azimuth protocol. 398 */ 399 /** 400 * \brief A macro that returns the model number of the RC2800_EARLY_AZEL 401 * backend. 402 * 403 * \def ROT_MODEL_RC2800_EARLY_AZEL 404 * 405 * The RC2800_EARLY_AZEL backend can be used with rotators that support the M2 406 * (M Squared) RC2800 early azimuth and elevation protocol. 407 */ 408 //! @cond Doxygen_Suppress 409 #define ROT_M2 10 410 #define ROT_BACKEND_M2 "m2" 411 //! @endcond 412 #define ROT_MODEL_RC2800 ROT_MAKE_MODEL(ROT_M2, 1) 413 #define ROT_MODEL_RC2800_EARLY_AZ ROT_MAKE_MODEL(ROT_M2, 2) 414 #define ROT_MODEL_RC2800_EARLY_AZEL ROT_MAKE_MODEL(ROT_M2, 3) 415 416 417 /** 418 * \brief A macro that returns the model number of the RCI_AZEL backend. 419 * 420 * \def ROT_MODEL_RCI_AZEL 421 * 422 * The RCI_AZEL backend can be used with rotators that support the ARS azimuth 423 * and elevation protocol. 424 */ 425 /** 426 * \brief A macro that returns the model number of the RCI_AZ backend. 427 * 428 * \def ROT_MODEL_RCI_AZ 429 * 430 * The RCI_AZ backend can be used with rotators that support the ARS azimuth 431 * protocol. 432 */ 433 //! @cond Doxygen_Suppress 434 #define ROT_ARS 11 435 #define ROT_BACKEND_ARS "ars" 436 //! @endcond 437 #define ROT_MODEL_RCI_AZEL ROT_MAKE_MODEL(ROT_ARS, 1) 438 #define ROT_MODEL_RCI_AZ ROT_MAKE_MODEL(ROT_ARS, 2) 439 440 441 /** 442 * \brief A macro that returns the model number of the IF100 backend. 443 * 444 * \def ROT_MODEL_IF100 445 * 446 * The IF100 backend can be used with rotators that support the AMSAT IF-100 447 * interface. 448 */ 449 //! @cond Doxygen_Suppress 450 #define ROT_AMSAT 12 451 #define ROT_BACKEND_AMSAT "amsat" 452 //! @endcond 453 #define ROT_MODEL_IF100 ROT_MAKE_MODEL(ROT_AMSAT, 1) 454 455 456 /** 457 * \brief A macro that returns the model number of the TS7400 backend. 458 * 459 * \def ROT_MODEL_TS7400 460 * 461 * The TS7400 backend supports an embedded ARM board using the TS-7400 Linux 462 * board. More information is at https://www.embeddedarm.com 463 */ 464 //! @cond Doxygen_Suppress 465 #define ROT_TS7400 13 466 #define ROT_BACKEND_TS7400 "ts7400" 467 //! @endcond 468 #define ROT_MODEL_TS7400 ROT_MAKE_MODEL(ROT_TS7400, 1) 469 470 471 /** 472 * \brief A macro that returns the model number of the NEXSTAR backend. 473 * 474 * \def ROT_MODEL_NEXSTAR 475 * 476 * The NEXSTAR backend can be used with rotators that support the Celestron 477 * NexStar protocol and alike. 478 */ 479 //! @cond Doxygen_Suppress 480 #define ROT_CELESTRON 14 481 #define ROT_BACKEND_CELESTRON "celestron" 482 //! @endcond 483 #define ROT_MODEL_NEXSTAR ROT_MAKE_MODEL(ROT_CELESTRON, 1) 484 485 486 /** 487 * \brief A macro that returns the model number of the ETHER6 backend. 488 * 489 * \def ROT_MODEL_ETHER6 490 * 491 * The ETHER6 backend can be used with rotators that support the Ether6 492 * protocol. 493 */ 494 //! @cond Doxygen_Suppress 495 #define ROT_ETHER6 15 496 #define ROT_BACKEND_ETHER6 "ether6" 497 //! @endcond 498 #define ROT_MODEL_ETHER6 ROT_MAKE_MODEL(ROT_ETHER6, 1) 499 500 501 /** 502 * \brief A macro that returns the model number of the CNCTRK backend. 503 * 504 * \def ROT_MODEL_CNCTRK 505 * 506 * The CNCTRK backend can be used with rotators that support the LinuxCNC 507 * running Axis GUI interface. 508 */ 509 //! @cond Doxygen_Suppress 510 #define ROT_CNCTRK 16 511 #define ROT_BACKEND_CNCTRK "cnctrk" 512 //! @endcond 513 #define ROT_MODEL_CNCTRK ROT_MAKE_MODEL(ROT_CNCTRK, 1) 514 515 516 /** 517 * \brief A macro that returns the model number of the PROSISTEL_D_AZ backend. 518 * 519 * \def ROT_MODEL_PROSISTEL_D_AZ 520 * 521 * The PROSISTEL_D_AZ backend can be used with rotators that support the Prosistel 522 * azimuth protocol. 523 */ 524 /** 525 * \brief A macro that returns the model number of the PROSISTEL_D_EL backend. 526 * 527 * \def ROT_MODEL_PROSISTEL_D_EL 528 * 529 * The PROSISTEL_D_EL backend can be used with rotators that support the Prosistel 530 * elevation protocol. 531 */ 532 /** 533 * \brief A macro that returns the model number of the 534 * PROSISTEL_COMBI_TRACK_AZEL backend. 535 * 536 * \def ROT_MODEL_PROSISTEL_COMBI_TRACK_AZEL 537 * 538 * The PROSISTEL_AZEL_COMBI_TRACK_AZEL backend can be used with rotators that 539 * support the Prosistel combination azimuth and elevation protocol. 540 */ 541 //! @cond Doxygen_Suppress 542 #define ROT_PROSISTEL 17 543 #define ROT_BACKEND_PROSISTEL "prosistel" 544 //! @endcond 545 #define ROT_MODEL_PROSISTEL_D_AZ ROT_MAKE_MODEL(ROT_PROSISTEL, 1) 546 #define ROT_MODEL_PROSISTEL_D_EL ROT_MAKE_MODEL(ROT_PROSISTEL, 2) 547 #define ROT_MODEL_PROSISTEL_COMBI_TRACK_AZEL ROT_MAKE_MODEL(ROT_PROSISTEL, 3) 548 549 550 /** 551 * \brief A macro that returns the model number of the MEADE backend. 552 * 553 * \def ROT_MODEL_MEADE 554 * 555 * The MEADE backend can be used with Meade telescope rotators like the 556 * DS-2000. 557 */ 558 //! @cond Doxygen_Suppress 559 #define ROT_MEADE 18 560 #define ROT_BACKEND_MEADE "meade" 561 //! @endcond 562 #define ROT_MODEL_MEADE ROT_MAKE_MODEL(ROT_MEADE, 1) 563 564 /** 565 * \brief A macro that returns the model number of the IOPTRON backend. 566 * 567 * \def ROT_MODEL_IOPTRON 568 * 569 * The IOPTRON backend can be used with IOPTRON telescope mounts. 570 */ 571 //! @cond Doxygen_Suppress 572 #define ROT_IOPTRON 19 573 #define ROT_BACKEND_IOPTRON "ioptron" 574 //! @endcond 575 #define ROT_MODEL_IOPTRON ROT_MAKE_MODEL(ROT_IOPTRON, 1) 576 577 578 /** 579 * \brief A macro that returns the model number of the INDI backend. 580 * 581 * \def ROT_MODEL_INDI 582 * 583 * The INDI backend can be used with rotators that support the INDI interface. 584 */ 585 //! @cond Doxygen_Suppress 586 #define ROT_INDI 20 587 #define ROT_BACKEND_INDI "indi" 588 //! @endcond 589 #define ROT_MODEL_INDI ROT_MAKE_MODEL(ROT_INDI, 1) 590 591 592 /** 593 * \brief A macro that returns the model number of the SATEL backend. 594 * 595 * \def ROT_MODEL_SATEL 596 * 597 * The SATEL backend can be used with rotators that support the VE5FP 598 * interface. 599 */ 600 //! @cond Doxygen_Suppress 601 #define ROT_SATEL 21 602 #define ROT_BACKEND_SATEL "satel" 603 //! @endcond 604 #define ROT_MODEL_SATEL ROT_MAKE_MODEL(ROT_SATEL, 1) 605 606 607 /** 608 * \brief A macro that returns the model number of the RADANT backend. 609 * 610 * \def ROT_MODEL_RADANT 611 * 612 * The RADANT backend can be used with rotators that support the MS232 613 * interface. 614 */ 615 //! @cond Doxygen_Suppress 616 #define ROT_RADANT 22 617 #define ROT_BACKEND_RADANT "radant" 618 //! @endcond 619 #define ROT_MODEL_RADANT ROT_MAKE_MODEL(ROT_RADANT, 1) 620 621 622 /** 623 * \brief Convenience type definition for a rotator model. 624 * 625 * \typedef typedef int rot_model_t 626 */ 627 typedef int rot_model_t; 628 629 630 #endif /* _ROTLIST_H */ 631 632 /** @} */ 633