NavID.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 "NavID.hpp"
40 
41 
47 namespace gnsstk
48 {
50  NavID::NavID( const SatID& sidr, const ObsID& oidr )
51  {
52  // Default case
54 
55  //If SatID (sat system type) corresponds to GPS AND ObsID
56  //(carrier band) corresponds to either L1 OR L2 AND ObsID
57  //(tracking code) matches CA, P, Y, W, N, OR D then NavID
58  //corresponds to GPS LNAV.
59  switch (sidr.system)
60  {
62  {
63  if (( oidr.band==CarrierBand::L1 || oidr.band==CarrierBand::L2 ) &&
64  ( oidr.code==TrackingCode::CA || oidr.code==TrackingCode::P ||
65  oidr.code==TrackingCode::Y || oidr.code==TrackingCode::Y ||
68  {
70  }
71  else if ( oidr.band==CarrierBand::L2 &&
72  (oidr.code==TrackingCode::L2CM ||
73  oidr.code==TrackingCode::L2CL ||
74  oidr.code==TrackingCode::L2CML ))
75  {
77  }
78  else if ( oidr.band==CarrierBand::L5 &&
79  (oidr.code==TrackingCode::L5I ||
80  oidr.code==TrackingCode::L5Q ||
81  oidr.code==TrackingCode::L5IQ ))
82  {
84  }
85  else if ( oidr.band==CarrierBand::L1 &&
86  ( oidr.code==TrackingCode::L1CP ||
87  oidr.code==TrackingCode::L1CD ||
88  oidr.code==TrackingCode::L1CDP ) )
89  {
91  }
92  else if ((oidr.band==CarrierBand::L1 ||
93  oidr.band==CarrierBand::L2) &&
94  oidr.code==TrackingCode::MDP )
95  {
97  }
98  break;
99  }
101  {
102  if ( oidr.band==CarrierBand::L1 &&
103  oidr.code==TrackingCode::CA )
104  {
106  }
107  else if ( oidr.band==CarrierBand::L2 &&
108  ( oidr.code==TrackingCode::L2CM ||
109  oidr.code==TrackingCode::L2CL ||
110  oidr.code==TrackingCode::L2CML ))
111  {
113  }
114  else if ( oidr.band==CarrierBand::L5 &&
115  ( oidr.code==TrackingCode::L5I ||
116  oidr.code==TrackingCode::L5Q ||
117  oidr.code==TrackingCode::L5IQ ))
118  {
120  }
121  else if ( oidr.band==CarrierBand::L1 &&
122  ( oidr.code==TrackingCode::L1CP ||
123  oidr.code==TrackingCode::L1CD ||
124  oidr.code==TrackingCode::L1CDP ))
125  {
127  }
128  break;
129  }
131  {
132  if ( sidr.id>5 &&
133  ( oidr.band==CarrierBand::B1 ||
134  oidr.band==CarrierBand::B2 ||
135  oidr.band==CarrierBand::B3 ) &&
136  ( oidr.code==TrackingCode::B1I ||
137  oidr.code==TrackingCode::B1Q ||
138  oidr.code==TrackingCode::B1IQ ||
139  oidr.code==TrackingCode::B2I ||
140  oidr.code==TrackingCode::B2Q ||
141  oidr.code==TrackingCode::B2IQ ||
142  oidr.code==TrackingCode::B3I ||
143  oidr.code==TrackingCode::B3Q ||
144  oidr.code==TrackingCode::B3IQ ))
145  {
147  }
148  else if ( sidr.id<=5 &&
149  ( oidr.band==CarrierBand::B1 ||
150  oidr.band==CarrierBand::B2 ||
151  oidr.band==CarrierBand::B3 )&&
152  ( oidr.code==TrackingCode::B1I ||
153  oidr.code==TrackingCode::B1Q ||
154  oidr.code==TrackingCode::B1IQ ||
155  oidr.code==TrackingCode::B2I ||
156  oidr.code==TrackingCode::B2Q ||
157  oidr.code==TrackingCode::B2IQ ||
158  oidr.code==TrackingCode::B3I ||
159  oidr.code==TrackingCode::B3Q ||
160  oidr.code==TrackingCode::B3IQ ))
161  {
163  }
164  break;
165  }
167  {
168  if (( oidr.band==CarrierBand::G1 ||
169  oidr.band==CarrierBand::G2 ) &&
170  ( oidr.code==TrackingCode::Standard ))
171  {
173  }
174  else if ( oidr.band==CarrierBand::G3 &&
175  ( oidr.code==TrackingCode::L3OCD ||
176  oidr.code==TrackingCode::L3OCP ||
177  oidr.code==TrackingCode::L3OCDP ))
178  {
180  }
181  break;
182  }
184  {
185  if ( oidr.band==CarrierBand::L1 && oidr.code==TrackingCode::E1B )
186  {
188  }
189  else if ( oidr.band==CarrierBand::E5b &&
190  ( oidr.code==TrackingCode::E5bI ||
191  oidr.code==TrackingCode::E5bIQ ))
192  {
194  }
195  else if ( oidr.band==CarrierBand::L5 && // This is Galileo E5a
196  ( oidr.code==TrackingCode::E5aI ||
197  oidr.code==TrackingCode::E5aIQ ))
198  {
200  }
201  break;
202  }
204  {
205  if ( oidr.band==CarrierBand::L5 &&
206  ( oidr.code==TrackingCode::SPSL5 ||
207  oidr.code==TrackingCode::RSL5D ||
208  oidr.code==TrackingCode::RSL5P ||
209  oidr.code==TrackingCode::RSL5DP ))
210  {
212  }
213  break;
214  }
215  default:
217  break;
218  } // end of switch statement
219  }
220 
221 
222  NavID::NavID( const std::string& s )
223  : navType(convertStringToNavType(s))
224  {
225  }
226 } // namespace gnsstk
227 
gnsstk::SatelliteSystem::IRNSS
@ IRNSS
Official name changed from IRNSS to NavIC.
gnsstk::NavType::Unknown
@ Unknown
Uninitialized value.
gnsstk::TrackingCode::B1Q
@ B1Q
BeiDou B1 Q code.
gnsstk::TrackingCode::L5IQ
@ L5IQ
Modernized GPS L5 civil I+Q combined tracking.
gnsstk::convertStringToNavType
NavType convertStringToNavType(const std::string &s)
Definition: NavType.hpp:109
gnsstk::SatID::id
int id
Satellite identifier, e.g. PRN.
Definition: SatID.hpp:154
gnsstk::TrackingCode::YCodeless
@ YCodeless
Encrypted legacy GPS precise code, squaring codeless tracking.
gnsstk::TrackingCode::L1CD
@ L1CD
Modernized GPS L1C civil code tracking (data)
gnsstk::CarrierBand::G1
@ G1
GLONASS G1.
gnsstk::TrackingCode::L5Q
@ L5Q
Modernized GPS L5 civil quadrature.
gnsstk::TrackingCode::L1CP
@ L1CP
Modernized GPS L1C civil code tracking (pilot)
gnsstk::NavType::GPSMNAV
@ GPSMNAV
gnsstk::TrackingCode::L2CL
@ L2CL
Modernized GPS L2 civil L code.
gnsstk::NavType::BeiDou_D1
@ BeiDou_D1
gnsstk::TrackingCode::E1B
@ E1B
Galileo E1-B signal, supporting OS/HAS/SoL.
gnsstk::NavType::GalINAV
@ GalINAV
gnsstk::CarrierBand::E5b
@ E5b
Galileo E5b.
gnsstk::TrackingCode::Y
@ Y
Encrypted legacy GPS precise code.
gnsstk::SatID
Definition: SatID.hpp:89
gnsstk::TrackingCode::L5I
@ L5I
Modernized GPS L5 civil in-phase.
gnsstk::NavType::IRNSS_SPS
@ IRNSS_SPS
gnsstk::ObsID::band
CarrierBand band
Definition: ObsID.hpp:200
gnsstk::NavType::GloCivilF
@ GloCivilF
gnsstk::TrackingCode::RSL5D
@ RSL5D
IRNSS L5 RS(D)
gnsstk::TrackingCode::MDP
@ MDP
Modernized GPS military unique code.
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::NavType::GPSLNAV
@ GPSLNAV
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::TrackingCode::E5aI
@ E5aI
Galileo E5a I code.
gnsstk::SatelliteSystem::GPS
@ GPS
gnsstk::TrackingCode::CA
@ CA
Legacy GPS civil code.
gnsstk::TrackingCode::B2Q
@ B2Q
BeiDou B2 Q code.
gnsstk::CarrierBand::B3
@ B3
BeiDou B3.
gnsstk::CarrierBand::B1
@ B1
BeiDou B1.
gnsstk::NavType::GloCivilC
@ GloCivilC
gnsstk::CarrierBand::G3
@ G3
GLONASS G3.
gnsstk::ObsID
Definition: ObsID.hpp:82
gnsstk::NavType::GPSCNAVL2
@ GPSCNAVL2
gnsstk::TrackingCode::L2CML
@ L2CML
Modernized GPS L2 civil M+L combined tracking.
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::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::B1IQ
@ B1IQ
BeiDou B1 I+Q code.
gnsstk::NavID::navType
NavType navType
navType for this satellite
Definition: NavID.hpp:112
gnsstk::TrackingCode::P
@ P
Legacy GPS precise code.
gnsstk::TrackingCode::E5bIQ
@ E5bIQ
Galileo E5b I+Q combined tracking.
gnsstk::SatID::system
SatelliteSystem system
System for this satellite.
Definition: SatID.hpp:156
gnsstk::TrackingCode::B2IQ
@ B2IQ
BeiDou B2 I+Q code.
gnsstk::CarrierBand::B2
@ B2
BeiDou B2b.
gnsstk::TrackingCode::L2CM
@ L2CM
Modernized GPS L2 civil M code.
gnsstk::TrackingCode::SPSL5
@ SPSL5
IRNSS L5 SPS.
gnsstk::TrackingCode::RSL5P
@ RSL5P
IRNSS L5 RS(P)
gnsstk::TrackingCode::Semicodeless
@ Semicodeless
Encrypted legacy GPS precise code, other codeless tracking.
gnsstk::TrackingCode::E5bI
@ E5bI
Galileo E5b I code.
gnsstk::TrackingCode::L3OCP
@ L3OCP
Glonass L3 Q code.
gnsstk::TrackingCode::B3I
@ B3I
BeiDou B3 I code.
NavID.hpp
gnsstk::NavType::BeiDou_D2
@ BeiDou_D2
gnsstk::TrackingCode::L1CDP
@ L1CDP
Modernized GPS L1C civil code tracking (pilot + data)
gnsstk::SatelliteSystem::Glonass
@ Glonass
gnsstk::SatelliteSystem::BeiDou
@ BeiDou
aka Compass
gnsstk::TrackingCode::L3OCDP
@ L3OCDP
Glonass L3 I+Q combined tracking.
gnsstk::TrackingCode::B3Q
@ B3Q
BeiDou B3 Q code.
gnsstk::SatelliteSystem::QZSS
@ QZSS
gnsstk::NavType::GPSCNAVL5
@ GPSCNAVL5
gnsstk::NavID::NavID
NavID()
empty constructor, creates an invalid object
Definition: NavID.hpp:65
gnsstk::SatelliteSystem::Galileo
@ Galileo
gnsstk::NavType::GPSCNAV2
@ GPSCNAV2
gnsstk::TrackingCode::B2I
@ B2I
BeiDou B2 I code.
gnsstk::NavType::GalFNAV
@ GalFNAV
gnsstk::CarrierBand::L5
@ L5
GPS L5, Galileo E5a, SBAS L5, QZSS L5, BeiDou B2a, NavIC L5.
gnsstk::CarrierBand::G2
@ G2
GLONASS G2.


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