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_TRACKINGCODE_HPP 47 #define GPSTK_TRACKINGCODE_HPP 48 49 #include <string> 50 #include "EnumIterator.hpp" 51 52 namespace gpstk 53 { 54 /** The code used to collect the observation. Each of these 55 * should uniquely identify a code that was correlated 56 * against to track the signal. While the notation generally 57 * follows section 5.1 of RINEX 3, due to ambiguities in that 58 * specification some extensions are made. Note that as 59 * concrete specifications for the codes are released, this 60 * list may need to be adjusted. Specifically, this lists 61 * assumes that the same I & Q codes will be used on all 62 * three of the Galileo carriers. If that is not true, more 63 * identifiers need to be allocated */ 64 enum class TrackingCode 65 { 66 Unknown, ///< Uninitialized value 67 Any, ///< Used to match any tracking code 68 CA, ///< Legacy GPS civil code 69 P, ///< Legacy GPS precise code 70 Y, ///< Encrypted legacy GPS precise code 71 Ztracking, ///< Encrypted legacy GPS precise code, codeless Z tracking 72 YCodeless, ///< Encrypted legacy GPS precise code, squaring codeless tracking 73 Semicodeless, ///< Encrypted legacy GPS precise code, other codeless tracking 74 MD, 75 MDP, ///< Modernized GPS military unique code 76 MP, 77 MPA, 78 MARL, 79 MARLD, 80 MARLP, 81 Mprime, 82 MprimePA, 83 L2CM, ///< Modernized GPS L2 civil M code 84 L2CL, ///< Modernized GPS L2 civil L code 85 L2CML, ///< Modernized GPS L2 civil M+L combined tracking 86 L5I, ///< Modernized GPS L5 civil in-phase 87 L5Q, ///< Modernized GPS L5 civil quadrature 88 L5IQ, ///< Modernized GPS L5 civil I+Q combined tracking 89 L1CP, ///< Modernized GPS L1C civil code tracking (pilot) 90 L1CD, ///< Modernized GPS L1C civil code tracking (data) 91 L1CDP, ///< Modernized GPS L1C civil code tracking (pilot + data) 92 NSCA, 93 NSCD, 94 NSCL, 95 NSCM, 96 NSCMCL, 97 NSCP, 98 NSCPCD, 99 NSI5, 100 NSM, 101 NSMPA, 102 NSMprime, 103 NSMprimePA, 104 NSP, 105 NSQ5, 106 NSY, 107 Standard, ///< Legacy Glonass civil signal 108 Precise, ///< Legacy Glonass precise signal 109 L3OCD, ///< Glonass L3 I code 110 L3OCP, ///< Glonass L3 Q code 111 L3OCDP, ///< Glonass L3 I+Q combined tracking 112 L1OCD, ///< GLONASS L1 OCd code 113 L1OCP, ///< GLONASS L1 OCp code 114 L1OCDP, ///< GLONASS L1 OCd+OCp combined tracking 115 L2CSIL2OCp, ///< GLONASS L2 CSI+OCp combined tracking 116 L2CSI, ///< GLONASS L2 CSI code 117 L2OCP, ///< GLONASS L2 OCp code 118 G3TestData, 119 G3TestPilot, 120 L1SC, ///< GLONASS L1SC in-phase signal 121 L2SC, ///< GLONASS L2SC in-phase signal 122 E1A, ///< Galileo L1 PRS code 123 E1B, ///< Galileo E1-B signal, supporting OS/HAS/SoL 124 E1C, ///< Galileo E1 Dataless code 125 E1BC, ///< Galileo E1 B+C combined tracking 126 E1ABC, ///< Galileo E1 A+B+C combined tracking 127 E5abI, ///< Galileo E5 I code 128 E5abQ, ///< Galileo E5 Q code 129 E5abIQ, ///< Galileo E5 I+Q combined tracking 130 E5aI, ///< Galileo E5a I code 131 E5aQ, ///< Galileo E5a Q code 132 E5aIQ, ///< Galileo E5a I+Q combined tracking 133 E5bI, ///< Galileo E5b I code 134 E5bQ, ///< Galileo E5b Q code 135 E5bIQ, ///< Galileo E5b I+Q combined tracking 136 E6A, ///< Galileo E6 PRS code 137 E6B, ///< Galileo E6-b signal 138 E6C, ///< Galileo E6 Dataless code 139 E6BC, ///< Galileo E6 B+C combined tracking 140 E6ABC, ///< Galileo E6 A+B+C combined tracking 141 L1S, ///< QZSS L1-SAIF 142 L5SI, ///< QZSS L5S in-phase 143 L5SQ, ///< QZSS L5S I+Q combined tracking 144 L5SIQ, ///< QZSS L5S quadrature 145 LEXS, ///< QZSS LEX(6) short 146 LEXL, ///< QZSS LEX(6) long 147 LEXSL, ///< QZSS LEX(6) combined tracking 148 L6D, ///< QZSS L6 Block II D code 149 L6E, ///< QZSS L6 Block II E code 150 L6DE, ///< QZSS L6 Block II D+E combined tracking 151 B1I, ///< BeiDou B1 I code 152 B1Q, ///< BeiDou B1 Q code 153 B1IQ, ///< BeiDou B1 I+Q code 154 B2I, ///< BeiDou B2 I code 155 B2Q, ///< BeiDou B2 Q code 156 B2IQ, ///< BeiDou B2 I+Q code 157 B3I, ///< BeiDou B3 I code 158 B3Q, ///< BeiDou B3 Q code 159 B3IQ, ///< BeiDou B3 I+Q code 160 B1A, ///< BeiDou B1A code 161 B1CD, ///< BeiDou B1C D code 162 B1CDP, ///< BeiDou B1C D+P code 163 B1CP, ///< BeiDou B1C P code 164 B2abI, ///< BeiDou B2a+b I code 165 B2abIQ, ///< BeiDou B2a+B I+Q code 166 B2abQ, ///< BeiDou B2a+B Q code 167 B2aI, ///< BeiDou B2a I code 168 B2aIQ, ///< BeiDou B2a I+Q code 169 B2aQ, ///< BeiDou B2a Q code 170 B2bI, ///< BeiDou B2b I code 171 B2bIQ, ///< BeiDou B2b I+Q code 172 B2bQ, ///< BeiDou B2b Q code 173 B3AQ, ///< BeiDou B3A Q code 174 BCodeless, ///< BeiDou codeless tracking 175 B3AI, ///< BeiDou B3A I code 176 B3AIQ, ///< BeiDou B3A I+Q code 177 SPSL5, ///< IRNSS L5 SPS 178 RSL5D, ///< IRNSS L5 RS(D) 179 RSL5P, ///< IRNSS L5 RS(P) 180 RSL5DP, ///< IRNSS L5 B+C 181 SPSS, ///< IRNSS S-band SPS 182 RSSD, ///< IRNSS S-band RS(D) 183 RSSP, ///< INRSS S-band RS(P) 184 RSSDP, ///< IRNSS S-band B+C 185 CW, ///< Continuous Wave, i.e. no chipping sequence 186 Undefined, ///< Code is known to be undefined (as opposed to unknown) 187 Last, ///< Used to verify that all items are described at compile time 188 }; // enum class TrackingCode 189 190 /** Define an iterator so C++11 can do things like 191 * for (TrackingCode i : TrackingCodeIterator()) */ 192 typedef EnumIterator<TrackingCode, TrackingCode::Unknown, TrackingCode::Last> TrackingCodeIterator; 193 194 namespace StringUtils 195 { 196 /// Convert a TrackingCode to a whitespace-free string name. 197 std::string asString(TrackingCode e) throw(); 198 /// Convert a string name to an TrackingCode 199 TrackingCode asTrackingCode(const std::string& s) throw(); 200 } 201 } // namespace gpstk 202 203 #endif // GPSTK_TRACKINGCODE_HPP 204