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_OBSERVATIONTYPE_HPP
47 #define GPSTK_OBSERVATIONTYPE_HPP
48 
49 #include <string>
50 #include "EnumIterator.hpp"
51 
52 namespace gpstk
53 {
54       /// The type of observation, mostly used by ObsID.
55    enum class ObservationType
56    {
57       Unknown,
58       Any,       ///< Used to match any observation type
59       Range,     ///< pseudorange, in meters
60       Phase,     ///< accumulated phase, in cycles
61       Doppler,   ///< Doppler, in Hz
62       SNR,       ///< Signal strength, in dB-Hz
63       Channel,   ///< Channel number
64       DemodStat, ///< Demodulator status
65       Iono,      ///< Ionospheric delay
66       SSI,       ///< Signal Strength Indicator (RINEX)
67       LLI,       ///< Loss of Lock Indicator (RINEX)
68       TrackLen,  ///< Number of continuous epochs of 'good' tracking
69       NavMsg,    ///< Navigation Message data
70       RngStdDev, ///< pseudorange standard deviation, in meters
71       PhsStdDev, ///< phase standard deviation, in cycles
72       FreqIndx,  ///< GLONASS frequency offset index
73       Undefined, ///< Observation type is known to be undefined (as opposed to unknown)
74       Last,      ///< Used to verify that all items are described at compile time
75    }; // enum class ObservationType
76 
77       /** Define an iterator so C++11 can do things like
78        * for (ObservationType i : ObservationTypeIterator()) */
79    typedef EnumIterator<ObservationType, ObservationType::Unknown, ObservationType::Last> ObservationTypeIterator;
80 
81    namespace StringUtils
82    {
83          /// Convert a ObservationType to a whitespace-free string name.
84       std::string asString(ObservationType e) throw();
85          /// Convert a string name to an ObservationType
86       ObservationType asObservationType(const std::string& s) throw();
87    }
88 } // namespace gpstk
89 
90 #endif // GPSTK_OBSERVATIONTYPE_HPP
91