1 /** @warning This code is automatically generated.
2  *
3  *  DO NOT EDIT THIS CODE BY HAND.
4  *
5  *  Refer to the documenation in the toolkit_docs gitlab project.
6  */
7 
8 //==============================================================================
9 //
10 //  This file is part of GPSTk, the GPS Toolkit.
11 //
12 //  The GPSTk is free software; you can redistribute it and/or modify
13 //  it under the terms of the GNU Lesser General Public License as published
14 //  by the Free Software Foundation; either version 3.0 of the License, or
15 //  any later version.
16 //
17 //  The GPSTk is distributed in the hope that it will be useful,
18 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
19 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 //  GNU Lesser General Public License for more details.
21 //
22 //  You should have received a copy of the GNU Lesser General Public
23 //  License along with GPSTk; if not, write to the Free Software Foundation,
24 //  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
25 //
26 //  This software was developed by Applied Research Laboratories at the
27 //  University of Texas at Austin.
28 //  Copyright 2004-2020, The Board of Regents of The University of Texas System
29 //
30 //==============================================================================
31 
32 //==============================================================================
33 //
34 //  This software was developed by Applied Research Laboratories at the
35 //  University of Texas at Austin, under contract to an agency or agencies
36 //  within the U.S. Department of Defense. The U.S. Government retains all
37 //  rights to use, duplicate, distribute, disclose, or release this software.
38 //
39 //  Pursuant to DoD Directive 523024
40 //
41 //  DISTRIBUTION STATEMENT A: This software has been approved for public
42 //                            release, distribution is unlimited.
43 //
44 //==============================================================================
45 
46 #ifndef GPSTK_CARRIERBAND_HPP
47 #define GPSTK_CARRIERBAND_HPP
48 
49 #include <string>
50 #include "EnumIterator.hpp"
51 
52 namespace gpstk
53 {
54    enum class CarrierBand
55    {
56       Unknown,   ///< Uninitialized value
57       Any,       ///< Used to match any carrier band
58       L1L2,      ///< GPS L1+L2
59       L1,        ///< GPS L1, Galileo E1, SBAS L1, QZSS L1, BeiDou L1
60       L2,        ///< GPS L2, QZSS L2
61       L5,        ///< GPS L5, Galileo E5a, SBAS L5, QZSS L5, BeiDou B2a, NavIC L5
62       G1,        ///< GLONASS G1
63       G1a,       ///< GLONASS G1a
64       G2a,       ///< GLONASS G2a
65       G2,        ///< GLONASS G2
66       G3,        ///< GLONASS G3
67       E5b,       ///< Galileo E5b
68       E5ab,      ///< Galileo E5, BeiDou B2
69       E6,        ///< Galileo E6, QZSS L6
70       B1,        ///< BeiDou B1
71       B2,        ///< BeiDou B2b
72       B3,        ///< BeiDou B3
73       I9,        ///< NavIC S
74       Undefined, ///< Code is known to be undefined (as opposed to unknown)
75       Last,      ///< Used to verify that all items are described at compile time
76    }; // enum class CarrierBand
77 
78       /** Define an iterator so C++11 can do things like
79        * for (CarrierBand i : CarrierBandIterator()) */
80    typedef EnumIterator<CarrierBand, CarrierBand::Unknown, CarrierBand::Last> CarrierBandIterator;
81 
82    namespace StringUtils
83    {
84          /// Convert a CarrierBand to a whitespace-free string name.
85       std::string asString(CarrierBand e) throw();
86          /// Convert a string name to an CarrierBand
87       CarrierBand asCarrierBand(const std::string& s) throw();
88    }
89 } // namespace gpstk
90 
91 #endif // GPSTK_CARRIERBAND_HPP
92