ObsID_T.cpp
Go to the documentation of this file.
1 //==============================================================================
2 //
3 // This file is part of GNSSTk, the ARL:UT GNSS Toolkit.
4 //
5 // The GNSSTk is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 3.0 of the License, or
8 // any later version.
9 //
10 // The GNSSTk is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with GNSSTk; if not, write to the Free Software Foundation,
17 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
18 //
19 // This software was developed by Applied Research Laboratories at the
20 // University of Texas at Austin.
21 // Copyright 2004-2022, The Board of Regents of The University of Texas System
22 //
23 //==============================================================================
24 
25 //==============================================================================
26 //
27 // This software was developed by Applied Research Laboratories at the
28 // University of Texas at Austin, under contract to an agency or agencies
29 // within the U.S. Department of Defense. The U.S. Government retains all
30 // rights to use, duplicate, distribute, disclose, or release this software.
31 //
32 // Pursuant to DoD Directive 523024
33 //
34 // DISTRIBUTION STATEMENT A: This software has been approved for public
35 // release, distribution is unlimited.
36 //
37 //==============================================================================
38 
39 #include "ObsID.hpp"
40 
41 #include "TestUtil.hpp"
42 #include "Rinex3ObsHeader.hpp"
43 #include <iostream>
44 #include <sstream>
45 
46 namespace gnsstk
47 {
48  // define some stream operators so that test failures involving
49  // enums are a bit more readable.
50 
51  std::ostream& operator<<(std::ostream& s, gnsstk::ObservationType e)
52  {
53  s << (long)e << " (" << StringUtils::asString(e) << ")";
54  return s;
55  }
56  std::ostream& operator<<(std::ostream& s, CarrierBand e)
57  {
58  s << (long)e << " (" << StringUtils::asString(e) << ")";
59  return s;
60  }
61  std::ostream& operator<<(std::ostream& s, gnsstk::TrackingCode e)
62  {
63  s << (long)e << " (" << StringUtils::asString(e) << ")";
64  return s;
65  }
66  std::ostream& operator<<(std::ostream& s, gnsstk::XmitAnt e)
67  {
68  s << (long)e << " (" << StringUtils::asString(e) << ")";
69  return s;
70  }
71 }
72 
73 #define CBDESCTEST(EXP, CARRIERBAND) TUASSERTE(std::string, EXP, gnsstk::ObsID::cbDesc[CARRIERBAND])
74 #define TCDESCTEST(EXP, TRACKINGCODE) TUASSERTE(std::string, EXP, gnsstk::ObsID::tcDesc[TRACKINGCODE])
75 #define OTDESCTEST(EXP, OBSTYPE) TUASSERTE(std::string, EXP, gnsstk::ObsID::otDesc[OBSTYPE])
76 
77 class ObsID_T
78 {
79 public:
80 
81  unsigned initializationTest()
82  {
83  TUDEF("ObsID", "ObsID()");
84  std::string failMesg;
85 
86  gnsstk::ObsID empty;
95  TUASSERTE(int, 0, empty.freqOffs);
96  TUASSERTE(bool, true, empty.freqOffsWild);
97  TUASSERTE(uint32_t, 0, empty.mcode);
98  TUASSERTE(uint32_t, 0, empty.mcodeMask);
99 
100  TUCSM("ObsID(ObservationType,CarrierBand,TrackingCode)");
107  gnsstk::CarrierBand::L1, compare.band);
109  gnsstk::TrackingCode::CA, compare.code);
111  gnsstk::XmitAnt::Any, compare.xmitAnt);
112  TUASSERTE(int, 0, compare.freqOffs);
113  TUASSERTE(bool, true, compare.freqOffsWild);
114  TUASSERTE(uint32_t, 0, compare.mcode);
115  TUASSERTE(uint32_t, 0, compare.mcodeMask);
116 
117  TUCSM("ObsID(ObservationType,CarrierBand,TrackingCode,XmitAnt)");
130  TUASSERTE(int, 0, uut3.freqOffs);
131  TUASSERTE(bool, true, uut3.freqOffsWild);
132  TUASSERTE(uint32_t, 0, uut3.mcode);
133  TUASSERTE(uint32_t, 0, uut3.mcodeMask);
134 
135  TUCSM("ObsID(ObservationType,CarrierBand,TrackingCode,int)");
139  -1);
148  TUASSERTE(int, -1, uut4.freqOffs);
149  TUASSERTE(bool, false, uut4.freqOffsWild);
150  TUASSERTE(uint32_t, 0, uut4.mcode);
151  TUASSERTE(uint32_t, 0, uut4.mcodeMask);
152 
153  TUCSM("ObsID(ObservationType,CarrierBand,TrackingCode,int,XmitAnt)");
157  -1,
167  TUASSERTE(int, -1, uut5.freqOffs);
168  TUASSERTE(bool, false, uut5.freqOffsWild);
169  TUASSERTE(uint32_t, 0, uut5.mcode);
170  TUASSERTE(uint32_t, 0, uut5.mcodeMask);
171 
172  TURETURN();
173  }
174 
175 
176  unsigned dumpTest()
177  {
178  TUDEF("ObsID", "dump");
179  std::string failMesg;
183 
184  std::string outputString, referenceString;
185  std::stringstream outputStream, os2;
186 
187  compare.dump(outputStream);
188  outputString = outputStream.str();
189 
190  referenceString = "L2 GPSY doppler";
191 
192  TUASSERTE(std::string, referenceString, outputString);
193 
194  gnsstk::ObsID::verbose = true;
195  compare.dump(os2);
196  TUASSERTE(std::string, "L2 GPSY doppler 0/true 0/0 Any", os2.str());
197  // make sure to turn it back off for other tests.
198  gnsstk::ObsID::verbose = false;
199  TURETURN();
200  }
201 
202 
203  unsigned asStringTest()
204  {
205  TUDEF("ObsID", "asString");
206  std::string failMesg;
210 
211  std::string outputString, referenceString;
212 
213  outputString = gnsstk::StringUtils::asString(compare);
214  referenceString = "E5b GALI5 phase";
215 
216  TUASSERTE(std::string, referenceString, outputString);
217 
218  TURETURN();
219  }
220 
221 
222  unsigned asStringEnumTest()
223  {
224  TUDEF("ObsID", "asString");
225  // These tests verify that every enum has a string
226  // representation and every string has a corresponding enum.
227  // It also implicitly verifies that the string
228  // representations aren't duplicated, since if two enums
229  // translated to string "XXX", the attempt to reverse the
230  // translation would fail.
232  {
233  std::string s;
235  TUASSERT(!s.empty());
236  TUASSERT(s != "???");
240  }
242  {
243  std::string s;
245  TUASSERT(!s.empty());
246  TUASSERT(s != "???");
249  TUASSERTE(gnsstk::CarrierBand, cb, cb2);
250  }
252  {
253  std::string s;
255  TUASSERT(!s.empty());
256  TUASSERT(s != "???");
260  }
261  TURETURN();
262  }
263 
264 
265  unsigned operatorTest()
266  {
267  TUDEF("ObsID", "operator==");
268  std::string failMesg;
269 
302 
303  gnsstk::ObsID::verbose = true;
304  compare8.setMcodeBits(0x81234765, 0xffffffff);
305  compare9.setMcodeBits(0x8123476a, 0xffffffff);
306  compare10.setMcodeBits(0x81234765, 0xfffffff0);
307 
308  TUASSERTE(gnsstk::ObsID, compare1, compare2);
309  TUASSERT(!(compare1 == compare3));
310  TUASSERTE(gnsstk::ObsID, compare3, compare4);
311  TUASSERT(!(compare4 == compare5));
312  TUASSERT(compare3 == compare6);
313  TUASSERT(compare3 == compare7);
314  TUASSERT(!(compare6 == compare7));
315  TUASSERTE(gnsstk::ObsID, compare3, compare8);
316  TUASSERTE(gnsstk::ObsID, compare3, compare9);
317  TUASSERT(!(compare8 == compare9));
318  TUASSERTE(gnsstk::ObsID, compare3, compare10);
319  TUASSERTE(gnsstk::ObsID, compare9, compare10);
320  TUCSM("operator!=");
321  TUASSERT(!(compare1 != compare2));
322  TUASSERT(compare1 != compare3);
323  TUASSERT(!(compare3 != compare4));
324  TUASSERT(compare4 != compare5);
325  TUASSERT(!(compare3 != compare6));
326  TUASSERT(!(compare3 != compare7));
327  TUASSERT(compare6 != compare7);
328  TUASSERT(!(compare3 != compare8));
329  TUASSERT(!(compare3 != compare9));
330  TUASSERT(compare8 != compare9);
331  TUASSERT(!(compare3 != compare10));
332  TUASSERT(!(compare9 != compare10));
333  gnsstk::ObsID::verbose = false;
334  TURETURN();
335  }
336 
337 
338  unsigned cbDescTest()
339  {
340  TUDEF("ObsID", "cbDesc");
354  TURETURN();
355  }
356 
357 
358  unsigned tcDescTest()
359  {
360  TUDEF("ObsID", "tcDesc");
412 // TCDESCTEST("QZSSC/A", gnsstk::TrackingCode::CA);
413 // TCDESCTEST("QZSSL1C(D)", gnsstk::TrackingCode::L1CD);
414 // TCDESCTEST("QZSSL1C(D+P)", gnsstk::TrackingCode::L1CDP);
415 // TCDESCTEST("QZSSL1C(P)", gnsstk::TrackingCode::L1CP);
416  TCDESCTEST("QZSSL1-SAIF", gnsstk::TrackingCode::L1S);
417 // TCDESCTEST("QZSSL2C(L)", gnsstk::TrackingCode::L2CL);
418 // TCDESCTEST("QZSSL2C(M)", gnsstk::TrackingCode::L2CM);
419 // TCDESCTEST("QZSSL2C(M+L)", gnsstk::TrackingCode::L2CML);
420 // TCDESCTEST("QZSSL5I", gnsstk::TrackingCode::L5I);
421 // TCDESCTEST("QZSSL5I+Q", gnsstk::TrackingCode::L5IQ);
422 // TCDESCTEST("QZSSL5Q", gnsstk::TrackingCode::L5Q);
426 // TCDESCTEST("SBASC/A", gnsstk::TrackingCode::CA);
427 // TCDESCTEST("SBASI5", gnsstk::TrackingCode::L5I);
428 // TCDESCTEST("SBASI+Q5", gnsstk::TrackingCode::L5IQ);
429 // TCDESCTEST("SBASQ5", gnsstk::TrackingCode::L5Q);
430  TURETURN();
431  }
432 
433 
434  unsigned otDescTest()
435  {
436  TUDEF("ObsID", "otDesc");
454  TURETURN();
455  }
456 };
457 
458 
459 int main()
460 {
461  unsigned errorTotal = 0;
462  ObsID_T testClass;
463 
464  errorTotal += testClass.initializationTest();
465  errorTotal += testClass.dumpTest();
466  errorTotal += testClass.asStringTest();
467  errorTotal += testClass.asStringEnumTest();
468  errorTotal += testClass.operatorTest();
469  errorTotal += testClass.cbDescTest();
470  errorTotal += testClass.tcDescTest();
471  errorTotal += testClass.otDescTest();
472 
473  std::cout << "Total Failures for " << __FILE__ << ": " << errorTotal
474  << std::endl;
475 
476  return errorTotal;
477 }
gnsstk::StringUtils::asCarrierBand
CarrierBand asCarrierBand(const std::string &s) noexcept
Convert a string name to an CarrierBand.
Definition: CarrierBand.cpp:80
gnsstk::ObservationType::Undefined
@ Undefined
Observation type is known to be undefined (as opposed to unknown)
TUCSM
#define TUCSM(METHOD)
Definition: TestUtil.hpp:59
gnsstk::ObservationType::TrackLen
@ TrackLen
Number of continuous epochs of 'good' tracking.
gnsstk::TrackingCode::B1Q
@ B1Q
BeiDou B1 Q code.
gnsstk::TrackingCode::E5abIQ
@ E5abIQ
Galileo E5 I+Q combined tracking.
ObsID_T::otDescTest
unsigned otDescTest()
Definition: ObsID_T.cpp:434
gnsstk::TrackingCode::L5IQ
@ L5IQ
Modernized GPS L5 civil I+Q combined tracking.
gnsstk::ObsID::xmitAnt
XmitAnt xmitAnt
Identify the transmitting antenna.
Definition: ObsID.hpp:202
gnsstk::TrackingCode::YCodeless
@ YCodeless
Encrypted legacy GPS precise code, squaring codeless tracking.
gnsstk::TrackingCode::L1CD
@ L1CD
Modernized GPS L1C civil code tracking (data)
gnsstk::TrackingCode::L5Q
@ L5Q
Modernized GPS L5 civil quadrature.
gnsstk::CarrierBand::G1
@ G1
GLONASS G1.
TUCATCH
#define TUCATCH(STATEMENT)
Definition: TestUtil.hpp:193
gnsstk::ObservationType::RngStdDev
@ RngStdDev
pseudorange standard deviation, in meters
gnsstk::TrackingCode::RSSD
@ RSSD
IRNSS S-band RS(D)
OTDESCTEST
#define OTDESCTEST(EXP, OBSTYPE)
Definition: ObsID_T.cpp:75
gnsstk::TrackingCode::L1CP
@ L1CP
Modernized GPS L1C civil code tracking (pilot)
ObsID_T::tcDescTest
unsigned tcDescTest()
Definition: ObsID_T.cpp:358
gnsstk::TrackingCode::E5bQ
@ E5bQ
Galileo E5b Q code.
gnsstk::TrackingCode::E1A
@ E1A
Galileo L1 PRS code.
gnsstk::TrackingCode::L2CL
@ L2CL
Modernized GPS L2 civil L code.
gnsstk::TrackingCode::E1B
@ E1B
Galileo E1-B signal, supporting OS/HAS/SoL.
gnsstk::CarrierBand::E5b
@ E5b
Galileo E5b.
gnsstk::ObservationType::Phase
@ Phase
accumulated phase, in cycles
gnsstk::StringUtils::asTrackingCode
TrackingCode asTrackingCode(const std::string &s) noexcept
Convert a string name to an TrackingCode.
Definition: TrackingCode.cpp:182
TUASSERTE
#define TUASSERTE(TYPE, EXP, GOT)
Definition: TestUtil.hpp:81
gnsstk::CarrierBand
CarrierBand
Definition: CarrierBand.hpp:54
gnsstk::ObservationType::DemodStat
@ DemodStat
Demodulator status.
gnsstk::TrackingCode::Y
@ Y
Encrypted legacy GPS precise code.
gnsstk::ObservationType::LLI
@ LLI
Loss of Lock Indicator (RINEX)
gnsstk::TrackingCode::L5I
@ L5I
Modernized GPS L5 civil in-phase.
gnsstk::ObservationType::Channel
@ Channel
Channel number.
gnsstk::StringUtils::asString
std::string asString(IonexStoreStrategy e)
Convert a IonexStoreStrategy to a whitespace-free string name.
Definition: IonexStoreStrategy.cpp:46
gnsstk::ObsID::band
CarrierBand band
Definition: ObsID.hpp:200
gnsstk::TrackingCode::RSL5D
@ RSL5D
IRNSS L5 RS(D)
gnsstk::ObservationType::SNR
@ SNR
Signal strength, in dB-Hz.
gnsstk::XmitAnt::Standard
@ Standard
Transmitting antenna is the primary for that signal.
gnsstk::ObservationType::Range
@ Range
pseudorange, in meters
gnsstk::TrackingCode::RSSDP
@ RSSDP
IRNSS S-band B+C.
gnsstk::TrackingCode::MDP
@ MDP
Modernized GPS military unique code.
gnsstk::CarrierBand::Unknown
@ Unknown
Uninitialized value.
gnsstk::TrackingCode::E5abI
@ E5abI
Galileo E5 I code.
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::CarrierBand::L2
@ L2
GPS L2, QZSS L2.
gnsstk::TrackingCode::E5aIQ
@ E5aIQ
Galileo E5a I+Q combined tracking.
gnsstk::TrackingCode::RSL5DP
@ RSL5DP
IRNSS L5 B+C.
gnsstk::TrackingCode::Standard
@ Standard
Legacy Glonass civil signal.
gnsstk::ObservationType::NavMsg
@ NavMsg
Navigation Message data.
gnsstk::TrackingCode::E5aI
@ E5aI
Galileo E5a I code.
gnsstk::TrackingCode::CA
@ CA
Legacy GPS civil code.
main
int main()
Definition: ObsID_T.cpp:459
ObsID_T
Definition: ObsID_T.cpp:77
TUASSERT
#define TUASSERT(EXPR)
Definition: TestUtil.hpp:63
TestUtil.hpp
gnsstk::ObservationType::Any
@ Any
Used to match any observation type.
gnsstk::TrackingCode::B2Q
@ B2Q
BeiDou B2 Q code.
gnsstk::CarrierBand::B3
@ B3
BeiDou B3.
gnsstk::CarrierBand::B1
@ B1
BeiDou B1.
ObsID_T::asStringEnumTest
unsigned asStringEnumTest()
Definition: ObsID_T.cpp:222
gnsstk::CarrierBand::G3
@ G3
GLONASS G3.
TURETURN
#define TURETURN()
Definition: TestUtil.hpp:232
gnsstk::ObsID::setMcodeBits
void setMcodeBits(uint32_t newval, uint32_t newmask=-1)
Set the value of mcode while simultaneously setting the mask.
Definition: ObsID.hpp:170
gnsstk::ObservationType::PhsStdDev
@ PhsStdDev
phase standard deviation, in cycles
gnsstk::ObsID
Definition: ObsID.hpp:82
gnsstk::operator<<
std::ostream & operator<<(std::ostream &s, const ObsEpoch &oe) noexcept
Definition: ObsEpochMap.cpp:54
CBDESCTEST
#define CBDESCTEST(EXP, CARRIERBAND)
Definition: ObsID_T.cpp:73
gnsstk::TrackingCode::L2CML
@ L2CML
Modernized GPS L2 civil M+L combined tracking.
Rinex3ObsHeader.hpp
gnsstk::TrackingCode::Ztracking
@ Ztracking
Encrypted legacy GPS precise code, codeless Z tracking.
gnsstk::TrackingCode::B3IQ
@ B3IQ
BeiDou B3 I+Q code.
gnsstk::TrackingCode::B1I
@ B1I
BeiDou B1 I code.
gnsstk::CarrierBand::E5ab
@ E5ab
Galileo E5, BeiDou B2.
gnsstk::ObsID::code
TrackingCode code
Definition: ObsID.hpp:201
gnsstk::TrackingCode::L3OCD
@ L3OCD
Glonass L3 I code.
gnsstk::CarrierBand::L1
@ L1
GPS L1, Galileo E1, SBAS L1, QZSS L1, BeiDou L1.
gnsstk::TrackingCode::E1BC
@ E1BC
Galileo E1 B+C combined tracking.
ObsID_T::initializationTest
unsigned initializationTest()
Definition: ObsID_T.cpp:81
gnsstk::TrackingCode::E5abQ
@ E5abQ
Galileo E5 Q code.
TUDEF
#define TUDEF(CLASS, METHOD)
Definition: TestUtil.hpp:56
gnsstk::XmitAnt
XmitAnt
Definition: XmitAnt.hpp:53
TCDESCTEST
#define TCDESCTEST(EXP, TRACKINGCODE)
Definition: ObsID_T.cpp:74
gnsstk::TrackingCode::P
@ P
Legacy GPS precise code.
gnsstk::TrackingCode::E5bIQ
@ E5bIQ
Galileo E5b I+Q combined tracking.
gnsstk::TrackingCode::B2IQ
@ B2IQ
BeiDou B2 I+Q code.
gnsstk::CarrierBand::B2
@ B2
BeiDou B2b.
ObsID.hpp
gnsstk::TrackingCode::L2CM
@ L2CM
Modernized GPS L2 civil M code.
gnsstk::ObsID::freqOffsWild
bool freqOffsWild
True=Treat freqOffs as a wildcard when matching.
Definition: ObsID.hpp:204
gnsstk::TrackingCode::SPSL5
@ SPSL5
IRNSS L5 SPS.
gnsstk::EnumIterator
Definition: EnumIterator.hpp:68
gnsstk::ObsID::mcodeMask
uint32_t mcodeMask
Bitmask for matching mcode.
Definition: ObsID.hpp:227
gnsstk::ObsID::type
ObservationType type
Definition: ObsID.hpp:199
gnsstk::TrackingCode
TrackingCode
Definition: TrackingCode.hpp:64
gnsstk::ObsID::freqOffs
int freqOffs
GLONASS frequency offset.
Definition: ObsID.hpp:203
gnsstk::TrackingCode::RSL5P
@ RSL5P
IRNSS L5 RS(P)
gnsstk::TrackingCode::LEXS
@ LEXS
QZSS LEX(6) short.
ObsID_T::cbDescTest
unsigned cbDescTest()
Definition: ObsID_T.cpp:338
gnsstk::TrackingCode::Semicodeless
@ Semicodeless
Encrypted legacy GPS precise code, other codeless tracking.
gnsstk::TrackingCode::E5bI
@ E5bI
Galileo E5b I code.
gnsstk::ObsID::mcode
uint32_t mcode
Data to uniquely identify M-code signal.
Definition: ObsID.hpp:226
gnsstk::TrackingCode::L3OCP
@ L3OCP
Glonass L3 Q code.
gnsstk::TrackingCode::E5aQ
@ E5aQ
Galileo E5a Q code.
gnsstk::XmitAnt::Regional
@ Regional
Transmitting antenna is secondary, regional coverage.
gnsstk::ObsID::dump
virtual std::ostream & dump(std::ostream &s) const
Convenience output method.
Definition: ObsID.cpp:51
gnsstk::ObservationType::Doppler
@ Doppler
Doppler, in Hz.
gnsstk::TrackingCode::B3I
@ B3I
BeiDou B3 I code.
gnsstk::ObservationType::Unknown
@ Unknown
gnsstk::CarrierBand::L1L2
@ L1L2
GPS L1+L2.
ObsID_T::operatorTest
unsigned operatorTest()
Definition: ObsID_T.cpp:265
gnsstk::TrackingCode::Precise
@ Precise
Legacy Glonass precise signal.
gnsstk::TrackingCode::L1CDP
@ L1CDP
Modernized GPS L1C civil code tracking (pilot + data)
gnsstk::TrackingCode::E1ABC
@ E1ABC
Galileo E1 A+B+C combined tracking.
gnsstk::TrackingCode::L1S
@ L1S
QZSS L1-SAIF.
gnsstk::TrackingCode::L3OCDP
@ L3OCDP
Glonass L3 I+Q combined tracking.
gnsstk::ObservationType::Iono
@ Iono
Ionospheric delay.
gnsstk::TrackingCode::LEXL
@ LEXL
QZSS LEX(6) long.
gnsstk::TrackingCode::B3Q
@ B3Q
BeiDou B3 Q code.
gnsstk::ObservationType::SSI
@ SSI
Signal Strength Indicator (RINEX)
gnsstk::TrackingCode::E1C
@ E1C
Galileo E1 Dataless code.
gnsstk::XmitAnt::Any
@ Any
When making comparisons in ObsID, matches any enumeration.
gnsstk::ObservationType::FreqIndx
@ FreqIndx
GLONASS frequency offset index.
ObsID_T::asStringTest
unsigned asStringTest()
Definition: ObsID_T.cpp:203
gnsstk::TrackingCode::SPSS
@ SPSS
IRNSS S-band SPS.
gnsstk::CarrierBand::E6
@ E6
Galileo E6, QZSS L6.
gnsstk::ObsID::verbose
static GNSSTK_EXPORT bool verbose
Definition: ObsID.hpp:223
gnsstk::TrackingCode::LEXSL
@ LEXSL
QZSS LEX(6) combined tracking.
gnsstk::StringUtils::asObservationType
ObservationType asObservationType(const std::string &s) noexcept
Convert a string name to an ObservationType.
Definition: ObservationType.cpp:78
ObsID_T::dumpTest
unsigned dumpTest()
Definition: ObsID_T.cpp:176
gnsstk::TrackingCode::Unknown
@ Unknown
Uninitialized value.
gnsstk::TrackingCode::B2I
@ B2I
BeiDou B2 I code.
gnsstk::CarrierBand::L5
@ L5
GPS L5, Galileo E5a, SBAS L5, QZSS L5, BeiDou B2a, NavIC L5.
gnsstk::CarrierBand::G2
@ G2
GLONASS G2.
gnsstk::ObservationType
ObservationType
The type of observation, mostly used by ObsID.
Definition: ObservationType.hpp:55
gnsstk::TrackingCode::RSSP
@ RSSP
INRSS S-band RS(P)


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:40