PNBGalFNavDataFactory.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 //
28 // This software was developed by Applied Research Laboratories at the
29 // University of Texas at Austin, under contract to an agency or agencies
30 // within the U.S. Department of Defense. The U.S. Government retains all
31 // rights to use, duplicate, distribute, disclose, or release this software.
32 //
33 // Pursuant to DoD Directive 523024
34 //
35 // DISTRIBUTION STATEMENT A: This software has been approved for public
36 // release, distribution is unlimited.
37 //
38 //==============================================================================
40 #include "GalFNavEph.hpp"
41 #include "GalFNavTimeOffset.hpp"
42 #include "GalFNavIono.hpp"
43 #include "GalFNavISC.hpp"
44 #include "GalINavHealth.hpp"
45 #include "GALWeekSecond.hpp"
46 #include "TimeCorrection.hpp"
47 #include "EngNav.hpp"
48 #include "TimeString.hpp"
49 #include "GalFBits.hpp"
50 
51 using namespace std;
52 using namespace gnsstk::galfnav;
53 
54 namespace gnsstk
55 {
56  bool PNBGalFNavDataFactory ::
57  addData(const PackedNavBitsPtr& navIn, NavDataPtrList& navOut,
58  double cadence)
59  {
60  if (navIn->getNavID().navType != NavType::GalFNAV)
61  {
62  // This class only processes Galileo F/NAV.
63  return false;
64  }
65  bool rv = true;
66  try
67  {
68  unsigned long pageType = navIn->asUnsignedLong(
71  switch (pageType)
72  {
77  case 1:
78  case 2:
79  case 3:
80  case 4:
81  // cerr << "pageType " << pageType << " = ephemeris" << endl;
82  rv = processEph(pageType, navIn, navOut);
83  break;
84  case 5:
85  case 6:
86  // cerr << "pageType " << pageType << " = almanac" << endl;
87  rv = processAlm(pageType, navIn, navOut);
88  break;
89  default:
90  // cerr << "pageType " << pageType << " = unhandled" << endl;
91  rv = true;
92  break;
93  }
94  // cerr << " results: " << navOut.size() << endl;
95  // for (const auto& i : navOut)
96  // i->dump(cerr,DumpDetail::Full);
97  }
98  catch (Exception& exc)
99  {
100  rv = false;
101  cerr << exc << endl;
102  }
103  catch (std::exception& exc)
104  {
105  rv = false;
106  cerr << exc.what() << endl;
107  }
108  catch (...)
109  {
110  rv = false;
111  cerr << "Unknown exception" << endl;
112  }
113  return rv;
114  }
115 
116 
117  bool PNBGalFNavDataFactory ::
118  processEph(unsigned pageType, const PackedNavBitsPtr& navIn,
119  NavDataPtrList& navOut)
120  {
121  NavSatelliteID key(navIn->getsatSys().id, navIn->getsatSys(),
122  navIn->getobsID(), navIn->getNavID());
123  if (!PNBNavDataFactory::processEph && !PNBNavDataFactory::processHea &&
124  !PNBNavDataFactory::processIono && !PNBNavDataFactory::processISC &&
125  !PNBNavDataFactory::processTim)
126  {
127  // User doesn't want any of the messages we're capable of
128  // decoding, so don't do any processing.
129  return true;
130  }
131  if (ephAcc.find(key) == ephAcc.end())
132  {
133  // cerr << "ephAcc is empty for signal " << key << endl;
134  // set up a new ephemeris
135  ephAcc[key].resize(numEphPTs);
136  ephAcc[key][pageType-1] = navIn;
137  }
138  std::vector<PackedNavBitsPtr> &ephPage(ephAcc[key]);
139  ephPage[pageType-1] = navIn;
140  // Health and ionospheric correction information is in page type 1.
141  if (pageType == 1)
142  {
143  if (PNBNavDataFactory::processIono)
144  {
145  // Add iono data from word type 5
146  NavDataPtr p2 = std::make_shared<GalFNavIono>();
147  GalFNavIono *ip2 = dynamic_cast<GalFNavIono*>(p2.get());
148  ip2->timeStamp = navIn->getTransmitTime();
149  ip2->signal = NavMessageID(key, NavMessageType::Iono);
150  ip2->ai[0] = navIn->asUnsignedDouble(esbai0,enbai0,escai0);
151  ip2->ai[1] = navIn->asSignedDouble(esbai1,enbai1,escai1);
152  ip2->ai[2] = navIn->asSignedDouble(esbai2,enbai2,escai2);
153  ip2->idf[0] = navIn->asBool(esbIDFR1);
154  ip2->idf[1] = navIn->asBool(esbIDFR2);
155  ip2->idf[2] = navIn->asBool(esbIDFR3);
156  ip2->idf[3] = navIn->asBool(esbIDFR4);
157  ip2->idf[4] = navIn->asBool(esbIDFR5);
158  navOut.push_back(p2);
159  }
160  if (PNBNavDataFactory::processHea)
161  {
162  // Add health bits from page type 1.
163  NavDataPtr p1 = std::make_shared<GalFNavHealth>();
164  GalFNavHealth *hp1 = dynamic_cast<GalFNavHealth*>(p1.get());
165  hp1->timeStamp = navIn->getTransmitTime();
166  hp1->signal = NavMessageID(key, NavMessageType::Health);
167  hp1->signal.obs.band = CarrierBand::L5;
168  hp1->signal.obs.code = TrackingCode::E5aI;
169  hp1->sigHealthStatus = static_cast<GalHealthStatus>(
170  ephPage[esiE5ahs]->asUnsignedLong(esbE5ahs,enbE5ahs,escE5ahs));
171  hp1->dataValidityStatus = static_cast<GalDataValid>(
172  ephPage[esiE5advs]->asUnsignedLong(
174  hp1->sisaIndex = ephPage[esiSISA]->asUnsignedLong(esbSISA,enbSISA,
175  escSISA);
176  navOut.push_back(p1);
177  }
178  if (PNBNavDataFactory::processISC)
179  {
180  // Add ISC data from page type 1.
181  NavDataPtr p4 = std::make_shared<GalFNavISC>();
182  p4->timeStamp = navIn->getTransmitTime();
183  p4->signal = NavMessageID(
184  NavSatelliteID(navIn->getsatSys().id, navIn->getsatSys(),
185  navIn->getobsID(), navIn->getNavID()),
186  NavMessageType::ISC);
187  GalFNavISC *isc = dynamic_cast<GalFNavISC*>(p4.get());
188  isc->isc = navIn->asSignedDouble(esbBGDa,enbBGDa,escBGDa);
189  navOut.push_back(p4);
190  }
191  }
192  else if ((pageType == 4) && PNBNavDataFactory::processTim)
193  {
194  // GST-UTC offset
195  NavDataPtr p3 = std::make_shared<GalFNavTimeOffset>();
196  p3->timeStamp = navIn->getTransmitTime();
197  p3->signal = NavMessageID(
198  NavSatelliteID(navIn->getsatSys().id, navIn->getsatSys(),
199  navIn->getobsID(), navIn->getNavID()),
200  NavMessageType::TimeOffset);
201  GalFNavTimeOffset *to = dynamic_cast<GalFNavTimeOffset*>(p3.get());
202  to->tgt = TimeSystem::UTC;
203  to->a0 = navIn->asSignedDouble(esbA0,enbA0,escA0);
204  to->a1 = navIn->asSignedDouble(esbA1,enbA1,escA1);
205  to->deltatLS = navIn->asLong(esbdtLS, enbdtLS, escdtLS);
206  to->tot = navIn->asUnsignedLong(esbtot,enbtot,esctot);
207  to->wnot = navIn->asUnsignedLong(esbWNot,enbWNot,escWNot);
208  to->wnLSF = navIn->asUnsignedLong(esbWNlsf, enbWNlsf, escWNlsf);
209  to->dn = navIn->asUnsignedLong(esbDN, enbDN, escDN);
210  to->deltatLSF = navIn->asLong(esbdtLSF, enbdtLSF, escdtLSF);
211  to->tow = navIn->asUnsignedLong(esbTOW_4, enbTOW_4, escTOW_4);
212  GALWeekSecond gws(to->timeStamp);
213  long refWeek = gws.week;
214  to->wnot = timeAdjust8BitWeekRollover(to->wnot, refWeek);
215  to->wnLSF = timeAdjust8BitWeekRollover(to->wnLSF, refWeek);
216  to->refTime = GALWeekSecond(to->wnot, to->tot);
217  to->effTime = GALWeekSecond(to->wnLSF, (to->dn-1)*86400);
218  // cerr << "gws.week=" << gws.week << " gws.sow=" << gws.sow << " refTime=" << to->refTime << endl;
219  navOut.push_back(p3);
220  // GST-GPS offset
221  p3 = std::make_shared<GalFNavTimeOffset>();
222  p3->timeStamp = navIn->getTransmitTime();
223  p3->signal = NavMessageID(
224  NavSatelliteID(navIn->getsatSys().id, navIn->getsatSys(),
225  navIn->getobsID(), navIn->getNavID()),
226  NavMessageType::TimeOffset);
227  to = dynamic_cast<GalFNavTimeOffset*>(p3.get());
228  to->tgt = TimeSystem::GPS;
229  to->a0 = navIn->asSignedDouble(esbA0G,enbA0G,escA0G);
230  to->a1 = navIn->asSignedDouble(esbA1G,enbA1G,escA1G);
231  to->tot = navIn->asUnsignedLong(esbt0G,enbt0G,esct0G);
232  to->wnot = navIn->asUnsignedLong(esbWN0G,enbWN0G,escWN0G);
233  to->tow = navIn->asUnsignedLong(esbTOW_4, enbTOW_4, escTOW_4);
234  // WN0G is 6 bits...
235  to->wnot = (gws.week & ~0x3f) | to->wnot;
236  to->refTime = GALWeekSecond(to->wnot, to->tot);
237  // Do not attempt to set the effectivity time for
238  // converting from Galileo to GPS time. effTime only
239  // applies to UTC.
240  // cerr << "gws.week=" << gws.week << " gws.sow=" << gws.sow << " refTime=" << to->refTime << endl;
241  navOut.push_back(p3);
242  }
243  if (!PNBNavDataFactory::processEph)
244  {
245  // User doesn't want ephemerides so don't do any further
246  // processing.
247  return true;
248  }
249  // stop processing if we don't have three full subframes
250  if (!ephPage[pt1] || !ephPage[pt2] || !ephPage[pt3] || !ephPage[pt4] ||
251  (ephPage[pt1]->getNumBits() != 244) ||
252  (ephPage[pt2]->getNumBits() != 244) ||
253  (ephPage[pt3]->getNumBits() != 244) ||
254  (ephPage[pt4]->getNumBits() != 244))
255  {
256  // cerr << "Not ready for full F/NAV eph processing" << endl
257  // << " pt1: " << (bool)ephPage[pt1] << " "
258  // << (ephPage[pt1] ? ephPage[pt1]->getNumBits() : -1) << endl
259  // << " pt2: " << (bool)ephPage[pt2] << " "
260  // << (ephPage[pt2] ? ephPage[pt2]->getNumBits() : -1) << endl
261  // << " pt3: " << (bool)ephPage[pt3] << " "
262  // << (ephPage[pt3] ? ephPage[pt3]->getNumBits() : -1) << endl
263  // << " pt4: " << (bool)ephPage[pt4] << " "
264  // << (ephPage[pt4] ? ephPage[pt4]->getNumBits() : -1) << endl;
265  return true;
266  }
267  // Stop processing if we don't have matching IODnav in each
268  // of the four page types.
269  unsigned long iod1, iod2, iod3, iod4;
270  iod1 = ephPage[esiIOD_1]->asUnsignedLong(esbIOD_1,enbIOD_1,escIOD_1);
271  iod2 = ephPage[esiIOD_2]->asUnsignedLong(esbIOD_2,enbIOD_2,escIOD_2);
272  iod3 = ephPage[esiIOD_3]->asUnsignedLong(esbIOD_3,enbIOD_3,escIOD_3);
273  iod4 = ephPage[esiIOD_4]->asUnsignedLong(esbIOD_4,enbIOD_4,escIOD_4);
274  if ((iod1 != iod2) || (iod1 != iod3) || (iod1 != iod4))
275  {
276  // cerr << "IODnav mismatch, not processing" << endl;
277  // Even though the mismatch might be considered an error,
278  // we don't really want to mark it as such and rather
279  // consider it as a "valid" but unprocessable data set.
280  return true;
281  }
282  NavDataPtr p0 = std::make_shared<GalFNavEph>();
283  GalFNavEph *eph = dynamic_cast<GalFNavEph*>(p0.get());
284  // NavData
285  eph->timeStamp = ephPage[pt1]->getTransmitTime();
286  eph->signal = NavMessageID(key, NavMessageType::Ephemeris);
287  // cerr << "Ready for full F/NAV eph processing for " << (NavSignalID)key << endl;
288  // OrbitData = empty
289  // OrbitDataKepler
290  eph->xmitTime = eph->timeStamp;
291  double t0e = ephPage[esit0e]->asUnsignedLong(esbt0e,enbt0e,esct0e);
292  double t0c = ephPage[esit0c]->asUnsignedLong(esbt0c,enbt0c,esct0c);
293  unsigned wn_1 = ephPage[esiWN_1]->asUnsignedLong(esbWN_1,enbWN_1,escWN_1);
294  unsigned tow_1 = ephPage[esiTOW_1]->asUnsignedLong(esbTOW_1,enbTOW_1,
295  escTOW_1);
296  GALWeekSecond xmit1(wn_1, tow_1);
297  unsigned wn_3 = ephPage[esiWN_3]->asUnsignedLong(esbWN_3,enbWN_3,escWN_3);
298  unsigned tow_3 = ephPage[esiTOW_3]->asUnsignedLong(esbTOW_3,enbTOW_3,
299  escTOW_3);
300  GALWeekSecond xmit3(wn_3, tow_3);
301  // cerr << " wn_1=" << wn_1 << " tow_1=" << tow_1 << " wn_3=" << wn_3 << " tow_3=" << tow_3 << " t0e=" << t0e << " t0c=" << t0c << endl;
302  eph->Toe = GALWeekSecond(wn_3,t0e).weekRolloverAdj(xmit3);
303  eph->Toc = GALWeekSecond(wn_1,t0c).weekRolloverAdj(xmit1);
304  // health is set below
305  eph->Cuc = ephPage[esiCuc]->asSignedDouble(esbCuc,enbCuc,escCuc);
306  eph->Cus = ephPage[esiCus]->asSignedDouble(esbCus,enbCus,escCus);
307  eph->Crc = ephPage[esiCrc]->asSignedDouble(esbCrc,enbCrc,escCrc);
308  eph->Crs = ephPage[esiCrs]->asSignedDouble(esbCrs,enbCrs,escCrs);
309  eph->Cic = ephPage[esiCic]->asSignedDouble(esbCic,enbCic,escCic);
310  eph->Cis = ephPage[esiCis]->asSignedDouble(esbCis,enbCis,escCis);
311  eph->M0 = ephPage[esiM0]->asDoubleSemiCircles(esbM0,enbM0,escM0);
312  eph->dn = ephPage[esidn]->asDoubleSemiCircles(esbdn,enbdn,escdn);
313  // no dndot in F/NAV
314  eph->ecc = ephPage[esiEcc]->asUnsignedDouble(esbEcc,enbEcc,escEcc);
315  eph->Ahalf = ephPage[esiAhalf]->asUnsignedDouble(esbAhalf,enbAhalf,
316  escAhalf);
317  eph->A = eph->Ahalf * eph->Ahalf;
318  // no Adot in F/NAV
319  eph->OMEGA0 = ephPage[esiOMEGA0]->asDoubleSemiCircles(esbOMEGA0,enbOMEGA0,
320  escOMEGA0);
321  eph->i0 = ephPage[esii0]->asDoubleSemiCircles(esbi0,enbi0,esci0);
322  eph->w = ephPage[esiw]->asDoubleSemiCircles(esbw,enbw,escw);
323  eph->OMEGAdot = ephPage[esiOMEGAdot]->asDoubleSemiCircles(
325  eph->idot = ephPage[esiidot]->asDoubleSemiCircles(esbidot,enbidot,
326  escidot);
327  eph->af0 = ephPage[esiaf0]->asSignedDouble(esbaf0,enbaf0,escaf0);
328  eph->af1 = ephPage[esiaf1]->asSignedDouble(esbaf1,enbaf1,escaf1);
329  eph->af2 = ephPage[esiaf2]->asSignedDouble(esbaf2,enbaf2,escaf2);
330  // GalFNavEph
331  eph->bgdE5aE1 = ephPage[esiBGDa]->asSignedDouble(esbBGDa,enbBGDa,escBGDa);
332  eph->sisaIndex = ephPage[esiSISA]->asUnsignedLong(esbSISA,enbSISA,
333  escSISA);
334  eph->svid = ephPage[esiSVID]->asUnsignedLong(esbSVID,enbSVID,escSVID);
335  eph->xmit2 = ephPage[pt2]->getTransmitTime();
336  eph->xmit3 = ephPage[pt3]->getTransmitTime();
337  eph->xmit4 = ephPage[pt4]->getTransmitTime();
338  eph->iodnav1 = iod1;
339  eph->iodnav2 = iod2;
340  eph->iodnav3 = iod3;
341  eph->iodnav4 = iod4;
342  eph->hsE5a = static_cast<GalHealthStatus>(
343  ephPage[esiE5ahs]->asUnsignedLong(esbE5ahs,enbE5ahs,escE5ahs));
344  eph->dvsE5a = static_cast<GalDataValid>(
345  ephPage[esiE5advs]->asUnsignedLong(esbE5advs,enbE5advs,escE5advs));
346  // set health using the Galileo algorithms.
347  eph->health = GalINavHealth::galHealth(eph->hsE5a,eph->dvsE5a,
348  eph->sisaIndex);
349  eph->wn1 = wn_1;
350  eph->tow1 = tow_1;
351  eph->wn2 = ephPage[esiWN_2]->asUnsignedLong(esbWN_2,enbWN_2,escWN_2);
352  eph->tow2 = ephPage[esiTOW_2]->asUnsignedLong(esbTOW_2,enbTOW_2,escTOW_2);
353  eph->wn3 = wn_3;
354  eph->tow3 = tow_3;
355  eph->tow4 = ephPage[esiTOW_4]->asUnsignedLong(esbTOW_4,enbTOW_4,escTOW_4);
356  eph->fixFit();
357  // cerr << "add F/NAV eph" << endl;
358  navOut.push_back(p0);
359  // Clear out the broadcast ephemeris that's been processed.
360  ephAcc.erase(key);
361  return true;
362  }
363 
364 
365  bool PNBGalFNavDataFactory ::
366  processAlm(unsigned pageType, const PackedNavBitsPtr& navIn,
367  NavDataPtrList& navOut)
368  {
369  NavSatelliteID key(navIn->getsatSys().id, navIn->getsatSys(),
370  navIn->getobsID(), navIn->getNavID());
371  if (!PNBNavDataFactory::processAlm && !PNBNavDataFactory::processHea)
372  {
373  // User doesn't want almanacs or health so don't do any
374  // processing.
375  return true;
376  }
377  if (almAcc.find(key) == almAcc.end())
378  {
379  // cerr << "almAcc is empty for signal " << key << endl;
380  // set up a new almanac
381  almAcc[key].resize(numAlmPTs);
382  almAcc[key][pageType-5] = navIn;
383  // nothing in navOut yet and no further processing because
384  // we only have one of three subframes at this point.
385  return true;
386  }
387  std::vector<PackedNavBitsPtr> &almPage(almAcc[key]);
388  almPage[pageType-5] = navIn;
389  // stop processing if we don't have three full subframes
390  if (!almPage[pt5] || !almPage[pt6] ||
391  (almPage[pt5]->getNumBits() != 244) ||
392  (almPage[pt6]->getNumBits() != 244))
393  {
394  // cerr << "Not ready for full F/NAV alm processing" << endl
395  // << " pt5: " << (bool)almPage[pt5] << " "
396  // << (almPage[pt5] ? almPage[pt5]->getNumBits() : -1) << endl
397  // << " pt6: " << (bool)almPage[pt6] << " "
398  // << (almPage[pt6] ? almPage[pt6]->getNumBits() : -1) << endl;
399  return true;
400  }
401  // Stop processing if we don't have matching IODa in each of
402  // the two page types.
403  unsigned long ioda5, ioda6;
404  ioda5 = almPage[pt5]->asUnsignedLong(asbIODa,anbIODa,ascIODa);
405  ioda6 = almPage[pt6]->asUnsignedLong(asbIODa,anbIODa,ascIODa);
406  if (ioda5 != ioda6)
407  {
408  // cerr << "IODa mismatch, not processing: " << ioda5 << " " << ioda6 << endl;
409  // Even though the mismatch might be considered an error,
410  // we don't really want to mark it as such and rather
411  // consider it as a "valid" but unprocessable data set.
412  return true;
413  }
414  // OMEGA0 is split in SV(SVID2) but not in SVID1 or SVID3 so
415  // we process it separately.
416  // SVID1
417  NavDataPtr p0 = std::make_shared<GalFNavAlm>();
418  NavDataPtr p1 = std::make_shared<GalFNavHealth>();
419  GalFNavAlm *alm = dynamic_cast<GalFNavAlm*>(p0.get());
420  GalFNavHealth *hp1 = dynamic_cast<GalFNavHealth*>(p1.get());
421  if (processAlmOrb(almPage, alm, hp1, pt5, pt5, asiSVID_1, asbSVID_1,
427  {
428  if (PNBNavDataFactory::processAlm)
429  {
430  // cerr << "add F/NAV alm SVID1" << endl;
431  alm->ioda5 = ioda5;
432  alm->ioda6 = ioda6;
433  alm->OMEGA0 = almPage[asiOMEGA0_1]->asDoubleSemiCircles(
435  navOut.push_back(p0);
436  }
437  if (PNBNavDataFactory::processHea)
438  {
439  navOut.push_back(p1);
440  }
441  }
442  // SVID2
443  p0 = std::make_shared<GalFNavAlm>();
444  p1 = std::make_shared<GalFNavHealth>();
445  alm = dynamic_cast<GalFNavAlm*>(p0.get());
446  hp1 = dynamic_cast<GalFNavHealth*>(p1.get());
447  if (processAlmOrb(almPage, alm, hp1, pt5, pt6, asiSVID_2, asbSVID_2,
453  {
454  if (PNBNavDataFactory::processAlm)
455  {
456  // cerr << "add F/NAV alm SVID1" << endl;
457  alm->ioda5 = ioda5;
458  alm->ioda6 = ioda6;
459  // OMEGA0 for SVID2 is split across page type 5 and 6,
460  // but I don't want to add the overhead of combining
461  // the two PackedNavBits objects just to decode this
462  // one item, so split the decoding across the two
463  // objects. Get the sign from the MSBs of course.
464  long msb = almPage[asiOMEGA0m_2]->asLong(
466  unsigned long lsb = almPage[asiOMEGA0l_2]->asUnsignedLong(
468  // combine the bits
469  long iomega = (msb << anbOMEGA0l_2) | lsb;
470  // scale
471  alm->OMEGA0 = ldexp((double)iomega, ascOMEGA0) * PI;
472  // cerr << "msb=" << hex << msb << " lsb=" << lsb << " iomega="
473  // << iomega << " OMEGA0=" << alm->OMEGA0 << endl;
474  navOut.push_back(p0);
475  }
476  if (PNBNavDataFactory::processHea)
477  {
478  navOut.push_back(p1);
479  }
480  }
481  // SVID3
482  p0 = std::make_shared<GalFNavAlm>();
483  p1 = std::make_shared<GalFNavHealth>();
484  alm = dynamic_cast<GalFNavAlm*>(p0.get());
485  hp1 = dynamic_cast<GalFNavHealth*>(p1.get());
486  if (processAlmOrb(almPage, alm, hp1, pt6, pt6, asiSVID_3, asbSVID_3,
492  {
493  if (PNBNavDataFactory::processAlm)
494  {
495  // cerr << "add F/NAV alm SVID1" << endl;
496  alm->ioda5 = ioda5;
497  alm->ioda6 = ioda6;
498  alm->OMEGA0 = almPage[asiOMEGA0_3]->asDoubleSemiCircles(
500  navOut.push_back(p0);
501  }
502  if (PNBNavDataFactory::processHea)
503  {
504  navOut.push_back(p1);
505  }
506  }
507  // Clear out the broadcast almanac that's been processed.
508  almAcc.erase(key);
509  return true;
510  }
511 
512 
513  bool PNBGalFNavDataFactory ::
514  processAlmOrb(const std::vector<PackedNavBitsPtr>& almPage,
515  GalFNavAlm *alm, GalFNavHealth *hp1,
516  int ptA, int ptB,
517  int asiSVID, int asbSVID,
518  int asidAhalf, int asbdAhalf,
519  int asiEcc, int asbEcc,
520  int asiw, int asbw,
521  int asidi, int asbdi,
522  int asiOMEGAdot, int asbOMEGAdot,
523  int asiM0, int asbM0,
524  int asiaf0, int asbaf0,
525  int asiaf1, int asbaf1,
526  int asiE5ahs, int asbE5ahs)
527  {
528  // NavData
529  alm->timeStamp = almPage[ptA]->getTransmitTime();
530  unsigned long svid = almPage[asiSVID]->asUnsignedLong(asbSVID,anbSVID,
531  ascSVID);
532  if (svid == 0)
533  return false; // empty almanac, do nothing.
534  SatID xmitSat(almPage[ptA]->getsatSys());
535  NavSatelliteID sat(svid, xmitSat, almPage[ptA]->getobsID(),
536  almPage[ptA]->getNavID());
537  alm->signal = NavMessageID(sat, NavMessageType::Almanac);
538  // cerr << "Ready for full F/NAV alm processing for " << (NavSignalID)sat << endl;
539  // OrbitData = empty
540  // OrbitDataKepler
541  alm->xmitTime = alm->timeStamp;
542  alm->xmit2 = almPage[ptB]->getTransmitTime();
543  alm->t0a = almPage[asit0a]->asUnsignedLong(asbt0a,anbt0a,asct0a);
544  alm->wna = almPage[asiWNa]->asUnsignedLong(asbWNa,anbWNa,ascWNa);
545  // Not sure if this is appropriate but it beats saving the
546  // 12-bit WN from page type 5.
547  GALWeekSecond gws(alm->xmitTime);
548  // WNa is 2 bits...
549  gws.week = (gws.week & ~0x03) | alm->wna;
550  gws.sow = alm->t0a;
551  alm->Toe = alm->Toc = gws;
552  // cerr << " wna=" << alm->wna << " tow=" << gws.sow << " t0a=" << alm->t0a << " Toe=" << printTime(alm->Toe, "%L %g") << " xmit=" << printTime(alm->xmitTime, "%L %g") << endl;
553  alm->wna = gws.week;
554  alm->M0 = almPage[asiM0]->asDoubleSemiCircles(asbM0,anbM0,ascM0);
555  alm->ecc = almPage[asiEcc]->asUnsignedDouble(asbEcc,anbEcc,ascEcc);
556  alm->dAhalf = almPage[asidAhalf]->asUnsignedDouble(asbdAhalf,anbdAhalf,
557  ascdAhalf);
558  // slightly annoying that the reference value is for A but
559  // the transmitted data is A**1/2.
560  alm->Ahalf = ::sqrt(GalFNavAlm::refA) + alm->dAhalf;
561  alm->A = alm->Ahalf * alm->Ahalf;
562  alm->deltai = almPage[asidi]->asDoubleSemiCircles(asbdi,anbdi,ascdi);
563  alm->i0 = GalFNavAlm::refioffset + alm->deltai;
564  alm->w = almPage[asiw]->asDoubleSemiCircles(asbw,anbw,ascw);
565  alm->OMEGAdot = almPage[asiOMEGAdot]->asDoubleSemiCircles(
567  alm->af0 = almPage[asiaf0]->asSignedDouble(asbaf0,anbaf0,ascaf0);
568  alm->af1 = almPage[asiaf1]->asSignedDouble(asbaf1,anbaf1,ascaf1);
569  // GalFNavData
570  alm->hsE5a = static_cast<GalHealthStatus>(
571  almPage[asiE5ahs]->asUnsignedLong(asbE5ahs,anbE5ahs,ascE5ahs));
572  alm->fixFit();
573  alm->fixHealth();
574  if (PNBNavDataFactory::processHea)
575  {
576  hp1->timeStamp = almPage[asiE5ahs]->getTransmitTime();
577  hp1->signal = NavMessageID(sat, NavMessageType::Health);
578  hp1->sigHealthStatus = static_cast<GalHealthStatus>(
579  almPage[asiE5ahs]->asUnsignedLong(asbE5ahs,anbE5ahs,ascE5ahs));
581  }
582  return true;
583  }
584 
585 
586 #if 0
587  void PNBGalFNavDataFactory ::
588  dumpState(std::ostream& s)
589  const
590  {
591  s << "fullWNaMap.size() = " << fullWNaMap.size() << " (expect 32)" << endl
592  << "almAcc.size() = " << almAcc.size() << " (expect 32)" << endl;
593  for (const auto& i : almAcc)
594  {
595  s << " almAcc[" << i.first << "].size() = " << i.second.size()
596  << endl;
597  }
598  s << "ephAcc.size() = " << ephAcc.size() << " (expect 32)" << endl;
599  for (const auto& i : ephAcc)
600  {
601  s << " ephAcc[" << i.first << "].size() = " << i.second.size()
602  << endl;
603  for (unsigned j = 0; j < i.second.size(); j++)
604  {
605  s << " ephAcc[" << i.first << "][" << j << "] = ";
606  if (!i.second[j])
607  s << "unset";
608  else
609  s << i.second[j]->getNumBits() << " bits";
610  s << endl;
611  }
612  }
613  }
614 #endif
615 
616 
617  void PNBGalFNavDataFactory ::
618  resetState()
619  {
620  almAcc.clear();
621  ephAcc.clear();
622  }
623 } // namespace gnsstk
gnsstk::galfnav::anbOMEGAdot
@ anbOMEGAdot
Definition: GalFBits.hpp:430
gnsstk::galfnav::asiSVID_2
@ asiSVID_2
Definition: GalFBits.hpp:455
gnsstk::bds::ascw
@ ascw
Definition: BDSD1Bits.hpp:162
gnsstk::galfnav::enbIOD_1
@ enbIOD_1
Definition: GalFBits.hpp:92
gnsstk::NavDataPtr
std::shared_ptr< NavData > NavDataPtr
Factories instantiate these in response to find() requests.
Definition: NavData.hpp:62
gnsstk::galfnav::enbCuc
@ enbCuc
Cuc number of bits.
Definition: GalFBits.hpp:256
example3.svid
svid
Definition: example3.py:19
gnsstk::galfnav::asbSVID_3
@ asbSVID_3
Definition: GalFBits.hpp:498
gnsstk::bds::escM0
@ escM0
Definition: BDSD1Bits.hpp:396
gnsstk::OrbitDataKepler::idot
double idot
Rate of inclination angle (rad/sec)
Definition: OrbitDataKepler.hpp:193
gnsstk::GalFNavEph::iodnav2
uint16_t iodnav2
IODnav for page type 2.
Definition: GalFNavEph.hpp:92
gnsstk::galfnav::ascE5ahs
@ ascE5ahs
Definition: GalFBits.hpp:451
gnsstk::galfnav::asiaf0_1
@ asiaf0_1
Definition: GalFBits.hpp:438
gnsstk::galfnav::esbA0G
@ esbA0G
Definition: GalFBits.hpp:352
gnsstk::NavMessageID
Class used to identify/categorize navigation message data.
Definition: NavMessageID.hpp:52
gnsstk::galfnav::asbw_3
@ asbw_3
Definition: GalFBits.hpp:507
gnsstk::StdNavTimeOffset::deltatLSF
double deltatLSF
Current or future leap second count (UTC only).
Definition: StdNavTimeOffset.hpp:135
gnsstk::galfnav::asbaf1_3
@ asbaf1_3
Definition: GalFBits.hpp:525
gnsstk::bds::escAhalf
@ escAhalf
Definition: BDSD1Bits.hpp:462
gnsstk::galfnav::asiw_3
@ asiw_3
Definition: GalFBits.hpp:506
gnsstk::GalDataValid
GalDataValid
Identify Galileo Data Validity Status (DVS) states.
Definition: GalDataValid.hpp:51
gnsstk::galfnav::esiidot
@ esiidot
idot subframe index
Definition: GalFBits.hpp:217
gnsstk::PackedNavBitsPtr
std::shared_ptr< PackedNavBits > PackedNavBitsPtr
Managed pointer for passing PackedNavBits around.
Definition: PackedNavBits.hpp:66
gnsstk::galfnav::enbidot
@ enbidot
idot number of bits
Definition: GalFBits.hpp:219
gnsstk::galfnav::esiOMEGAdot
@ esiOMEGAdot
OMEGAdot subframe index.
Definition: GalFBits.hpp:197
gnsstk::galfnav::enbEcc
@ enbEcc
Ecc number of bits.
Definition: GalFBits.hpp:204
gnsstk::bds::escCus
@ escCus
Definition: BDSD1Bits.hpp:429
gnsstk::bds::escCuc
@ escCuc
Definition: BDSD1Bits.hpp:382
gnsstk::GalFNavAlm
Class containing data elements unique to Galileo F/NAV almanacs.
Definition: GalFNavAlm.hpp:52
gnsstk::galfnav::esbw
@ esbw
w start bit
Definition: GalFBits.hpp:245
gnsstk::galfnav::esbBGDa
@ esbBGDa
Definition: GalFBits.hpp:161
gnsstk::galfnav::enbDN
@ enbDN
Definition: GalFBits.hpp:338
gnsstk::galfnav::esbA1
@ esbA1
Definition: GalFBits.hpp:312
gnsstk::galfnav::enbWN_2
@ enbWN_2
Definition: GalFBits.hpp:224
gnsstk::bds::esbCrs
@ esbCrs
Definition: BDSD2Bits.hpp:1055
gnsstk::galfnav::esbTOW_4
@ esbTOW_4
Definition: GalFBits.hpp:367
gnsstk::galfnav::esiBGDa
@ esiBGDa
Definition: GalFBits.hpp:160
gnsstk::galfnav::esiEcc
@ esiEcc
Ecc subframe index.
Definition: GalFBits.hpp:202
gnsstk::GalFNavAlm::hsE5a
GalHealthStatus hsE5a
Health status for E5a.
Definition: GalFNavAlm.hpp:113
gnsstk::bds::ascEcc
@ ascEcc
Definition: BDSD1Bits.hpp:132
gnsstk::OrbitDataKepler::Cis
double Cis
Sine inclination (rad)
Definition: OrbitDataKepler.hpp:180
gnsstk::galfnav::esbEcc
@ esbEcc
Ecc start bit.
Definition: GalFBits.hpp:203
gnsstk::OrbitDataKepler::A
double A
Semi-major axis (m)
Definition: OrbitDataKepler.hpp:186
gnsstk::galfnav::esiM0
@ esiM0
M0 subframe index.
Definition: GalFBits.hpp:192
gnsstk::GalFNavEph::bgdE5aE1
double bgdE5aE1
Group delay in seconds between E5a and E1.
Definition: GalFNavEph.hpp:85
gnsstk::galfnav::anbaf0
@ anbaf0
Definition: GalFBits.hpp:440
gnsstk::galfnav::esbaf1
@ esbaf1
af1 start bit
Definition: GalFBits.hpp:106
gnsstk::OrbitDataKepler::af2
double af2
SV clock drift rate (sec/sec**2)
Definition: OrbitDataKepler.hpp:197
gnsstk::galfnav::esbWNlsf
@ esbWNlsf
Definition: GalFBits.hpp:332
gnsstk::galfnav::anbOMEGA0l_2
@ anbOMEGA0l_2
Definition: GalFBits.hpp:478
gnsstk::galfnav::anbw
@ anbw
Definition: GalFBits.hpp:415
gnsstk::GalFNavEph::wn1
uint16_t wn1
GST WN (week number) for page type 1.
Definition: GalFNavEph.hpp:97
gnsstk::GalFNavHealth::sigHealthStatus
GalHealthStatus sigHealthStatus
Signal health status (SHS)
Definition: GalFNavHealth.hpp:81
gnsstk::galfnav::esbWNot
@ esbWNot
Definition: GalFBits.hpp:327
gnsstk::galfnav::enbaf0
@ enbaf0
af0 number of bits
Definition: GalFBits.hpp:102
gnsstk::galfnav::enbt0G
@ enbt0G
Definition: GalFBits.hpp:348
GalFBits.hpp
gnsstk::galfnav::anbIODa
@ anbIODa
Definition: GalFBits.hpp:381
gnsstk::galfnav::asbEcc_3
@ asbEcc_3
Definition: GalFBits.hpp:504
gnsstk::GalFNavEph::dvsE5a
GalDataValid dvsE5a
Data validity status for E5a.
Definition: GalFNavEph.hpp:96
gnsstk::GalFNavHealth
Definition: GalFNavHealth.hpp:53
gnsstk::galfnav::esbWN_2
@ esbWN_2
Definition: GalFBits.hpp:223
gnsstk::galfnav::asiOMEGA0_3
@ asiOMEGA0_3
Definition: GalFBits.hpp:512
gnsstk::galfnav::escSVID
@ escSVID
Definition: GalFBits.hpp:86
gnsstk::galfnav::asiWNa
@ asiWNa
Definition: GalFBits.hpp:384
gnsstk::galfnav::asbE5ahs_1
@ asbE5ahs_1
Definition: GalFBits.hpp:449
gnsstk::OrbitDataKepler::ecc
double ecc
Eccentricity.
Definition: OrbitDataKepler.hpp:185
gnsstk::galfnav::enbTOW_4
@ enbTOW_4
Definition: GalFBits.hpp:368
gnsstk::galfnav::anbdAhalf
@ anbdAhalf
Definition: GalFBits.hpp:405
gnsstk::galfnav::asbdi_1
@ asbdi_1
Definition: GalFBits.hpp:419
gnsstk::galfnav::pt1
@ pt1
Array index of page type 1 in ephAcc.
Definition: GalFBits.hpp:65
gnsstk::galfnav::esbDN
@ esbDN
Definition: GalFBits.hpp:337
gnsstk::galfnav::asbOMEGAdot_1
@ asbOMEGAdot_1
Definition: GalFBits.hpp:429
gnsstk::galfnav::asiaf1_3
@ asiaf1_3
Definition: GalFBits.hpp:524
gnsstk::galfnav::esiIOD_4
@ esiIOD_4
Definition: GalFBits.hpp:291
gnsstk::galfnav::esbIDFR2
@ esbIDFR2
Definition: GalFBits.hpp:141
gnsstk::bds::anbEcc
@ anbEcc
Definition: BDSD1Bits.hpp:131
gnsstk::galfnav::esbai2
@ esbai2
Definition: GalFBits.hpp:131
gnsstk::galfnav::esiw
@ esiw
w subframe index
Definition: GalFBits.hpp:244
gnsstk::bds::enbCus
@ enbCus
Definition: BDSD1Bits.hpp:428
gnsstk::galfnav::asiE5ahs_3
@ asiE5ahs_3
Definition: GalFBits.hpp:527
gnsstk::NavSatelliteID
Definition: NavSatelliteID.hpp:57
gnsstk::galfnav::esbai0
@ esbai0
Definition: GalFBits.hpp:121
gnsstk::galfnav::asbOMEGAdot_3
@ asbOMEGAdot_3
Definition: GalFBits.hpp:516
gnsstk::bds::escw
@ escw
Definition: BDSD1Bits.hpp:579
gnsstk::bds::escCic
@ escCic
Definition: BDSD1Bits.hpp:509
gnsstk::galfnav::enbAhalf
@ enbAhalf
Ahalf number of bits.
Definition: GalFBits.hpp:209
gnsstk::bds::esbdn
@ esbdn
Definition: BDSD2Bits.hpp:872
gnsstk::OrbitDataKepler::OMEGAdot
double OMEGAdot
Rate of Rt ascension (rad/sec)
Definition: OrbitDataKepler.hpp:192
gnsstk::galfnav::enbIOD_4
@ enbIOD_4
Definition: GalFBits.hpp:293
gnsstk::galfnav::esbIOD_1
@ esbIOD_1
IODnav.
Definition: GalFBits.hpp:91
gnsstk::Exception::what
std::string what() const
Dump to a string.
Definition: Exception.cpp:193
gnsstk::GalFNavAlm::ioda6
uint8_t ioda6
IODa for page type 6.
Definition: GalFNavAlm.hpp:112
gnsstk::galfnav::esiSVID
@ esiSVID
Definition: GalFBits.hpp:83
gnsstk::galfnav::asiEcc_1
@ asiEcc_1
Definition: GalFBits.hpp:408
gnsstk::StdNavTimeOffset::tgt
TimeSystem tgt
Target time system.
Definition: StdNavTimeOffset.hpp:121
gnsstk::galfnav::asiaf1_1
@ asiaf1_1
Definition: GalFBits.hpp:443
gnsstk::galfnav::enbTOW_1
@ enbTOW_1
Definition: GalFBits.hpp:177
gnsstk::galfnav::esbAhalf
@ esbAhalf
Ahalf start bit.
Definition: GalFBits.hpp:208
gnsstk::galfnav::asbdAhalf_3
@ asbdAhalf_3
Definition: GalFBits.hpp:501
gnsstk::galfnav::enbdtLSF
@ enbdtLSF
Definition: GalFBits.hpp:343
gnsstk::SatID
Definition: SatID.hpp:89
gnsstk::NavDataPtrList
std::list< NavDataPtr > NavDataPtrList
Definition: NavData.hpp:75
gnsstk::GalFNavEph::sisaIndex
uint8_t sisaIndex
Signal in space accuracy index (OS-SIS-ICD tbl 76)
Definition: GalFNavEph.hpp:86
gnsstk::galfnav::enbA1
@ enbA1
Definition: GalFBits.hpp:313
gnsstk::galfnav::asiSVID_1
@ asiSVID_1
Definition: GalFBits.hpp:398
GalINavHealth.hpp
gnsstk::gpscnav2::asbaf0
@ asbaf0
af0 start bit
Definition: GPSC2Bits.hpp:369
gnsstk::galfnav::ascaf1
@ ascaf1
Definition: GalFBits.hpp:446
gnsstk::OrbitDataKepler::Cuc
double Cuc
Cosine latitude (rad)
Definition: OrbitDataKepler.hpp:175
gnsstk::galfnav::asbM0_1
@ asbM0_1
Definition: GalFBits.hpp:434
gnsstk::galfnav::asiSVID_3
@ asiSVID_3
Definition: GalFBits.hpp:497
gnsstk::ObsID::band
CarrierBand band
Definition: ObsID.hpp:200
gnsstk::galfnav::asbM0_3
@ asbM0_3
Definition: GalFBits.hpp:519
gnsstk::galfnav::esct0c
@ esct0c
t0c scale factor
Definition: GalFBits.hpp:98
gnsstk::galfnav::esbt0e
@ esbt0e
t0e start bit
Definition: GalFBits.hpp:275
gnsstk::StdNavTimeOffset::deltatLS
double deltatLS
Current or past leap second count (UTC only).
Definition: StdNavTimeOffset.hpp:125
gnsstk::galfnav::anbOMEGA0
@ anbOMEGA0
Definition: GalFBits.hpp:425
gnsstk::GALWeekSecond
Definition: GALWeekSecond.hpp:56
gnsstk::galfnav::enbWNot
@ enbWNot
Definition: GalFBits.hpp:328
gnsstk::galfnav::esbIDFR5
@ esbIDFR5
Definition: GalFBits.hpp:156
gnsstk::galfnav::esbWN_1
@ esbWN_1
Definition: GalFBits.hpp:171
gnsstk::OrbitDataKepler::w
double w
Argument of perigee (rad)
Definition: OrbitDataKepler.hpp:191
gnsstk::PI
const double PI
GPS value of PI; also specified by GAL.
Definition: GNSSconstants.hpp:62
gnsstk::GalFNavAlm::fixHealth
void fixHealth()
Definition: GalFNavAlm.cpp:93
gnsstk::GalFNavAlm::dAhalf
double dAhalf
delta sqrt(A)
Definition: GalFNavAlm.hpp:107
GalFNavEph.hpp
gnsstk::StdNavTimeOffset::wnot
unsigned wnot
Time data reference week number (storage only).
Definition: StdNavTimeOffset.hpp:129
gnsstk::GalFNavEph::iodnav4
uint16_t iodnav4
IODnav for page type 4.
Definition: GalFNavEph.hpp:94
gnsstk::galfnav::escaf2
@ escaf2
af2 scale factor
Definition: GalFBits.hpp:113
gnsstk::galfnav::enbw
@ enbw
w number of bits
Definition: GalFBits.hpp:246
gnsstk::GalFNavEph::xmit2
CommonTime xmit2
Transmit time for page type 2.
Definition: GalFNavEph.hpp:88
gnsstk::OrbitDataKepler::Toe
CommonTime Toe
Orbit epoch.
Definition: OrbitDataKepler.hpp:171
gnsstk::OrbitDataKepler::Crs
double Crs
Sine radius (m)
Definition: OrbitDataKepler.hpp:178
gnsstk::galfnav::escSISA
@ escSISA
Definition: GalFBits.hpp:118
gnsstk::galfnav::esiOMEGA0
@ esiOMEGA0
OMEGA0 subframe index.
Definition: GalFBits.hpp:212
gnsstk::NavData::signal
NavMessageID signal
Source signal identification for this navigation message data.
Definition: NavData.hpp:175
gnsstk::bds::esci0
@ esci0
Definition: BDSD1Bits.hpp:495
gnsstk::galfnav::escWN_3
@ escWN_3
Definition: GalFBits.hpp:282
gnsstk::galfnav::escTOW_2
@ escTOW_2
Definition: GalFBits.hpp:230
gnsstk::GalFNavEph::svid
uint8_t svid
Definition: GalFNavEph.hpp:87
GalFNavTimeOffset.hpp
gnsstk::galfnav::escWN0G
@ escWN0G
Definition: GalFBits.hpp:364
gnsstk::StdNavTimeOffset::wnLSF
unsigned wnLSF
Leap second reference week number (UTC only).
Definition: StdNavTimeOffset.hpp:133
gnsstk::bds::esbCus
@ esbCus
Definition: BDSD1Bits.hpp:427
gnsstk::NeQuickIonoNavData::idf
bool idf[5]
Ionospheric disturbance flag for regions 1-5 (0-4).
Definition: NeQuickIonoNavData.hpp:132
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::galfnav::escA0
@ escA0
Definition: GalFBits.hpp:309
gnsstk::galfnav::escBGDa
@ escBGDa
Definition: GalFBits.hpp:163
gnsstk::StdNavTimeOffset::a1
double a1
Drift coefficient of source time scale.
Definition: StdNavTimeOffset.hpp:123
gnsstk::galfnav::asbIODa
@ asbIODa
IODa.
Definition: GalFBits.hpp:380
gnsstk::InterSigCorr::isc
double isc
Definition: InterSigCorr.hpp:171
gnsstk::GalFNavHealth::sisaIndex
uint8_t sisaIndex
Signal in space accuracy index (OS-SIS-ICD tbl 76)
Definition: GalFNavHealth.hpp:85
gnsstk::galfnav::asiw_2
@ asiw_2
Definition: GalFBits.hpp:464
gnsstk::galfnav::enbWN_1
@ enbWN_1
Definition: GalFBits.hpp:172
gnsstk::GalFNavEph::xmit3
CommonTime xmit3
Transmit time for page type 3.
Definition: GalFNavEph.hpp:89
gnsstk::galfnav::anbOMEGA0m_2
@ anbOMEGA0m_2
Definition: GalFBits.hpp:472
gnsstk::galfnav::escaf0
@ escaf0
af0 scale factor
Definition: GalFBits.hpp:103
gnsstk::OrbitDataKepler::xmitTime
CommonTime xmitTime
Time of transmission of the start of the data.
Definition: OrbitDataKepler.hpp:170
gnsstk::gpscnav2::asbw
@ asbw
w start bit
Definition: GPSC2Bits.hpp:361
gnsstk::NavData::timeStamp
CommonTime timeStamp
Definition: NavData.hpp:173
gnsstk::galfnav::esiCrc
@ esiCrc
Crc subframe index.
Definition: GalFBits.hpp:264
gnsstk::galfnav::asiOMEGA0m_2
@ asiOMEGA0m_2
Definition: GalFBits.hpp:470
gnsstk::NeQuickIonoNavData::ai
double ai[3]
Definition: NeQuickIonoNavData.hpp:125
gnsstk::bds::enbCrs
@ enbCrs
Definition: BDSD2Bits.hpp:1056
gnsstk::galfnav::esbIOD_2
@ esbIOD_2
Definition: GalFBits.hpp:188
gnsstk::galfnav::anbdi
@ anbdi
Definition: GalFBits.hpp:420
gnsstk::StdNavTimeOffset::dn
unsigned dn
Leap second reference day number (UTC only).
Definition: StdNavTimeOffset.hpp:134
gnsstk::galfnav::escWN_2
@ escWN_2
Definition: GalFBits.hpp:225
gnsstk::galfnav::escE5advs
@ escE5advs
Definition: GalFBits.hpp:183
gnsstk::galfnav::fscType
@ fscType
page type scale factor
Definition: GalFBits.hpp:54
gnsstk::galfnav::asbOMEGA0_1
@ asbOMEGA0_1
Definition: GalFBits.hpp:424
gnsstk::OrbitDataKepler::M0
double M0
Mean anomaly (rad)
Definition: OrbitDataKepler.hpp:182
gnsstk::Exception
Definition: Exception.hpp:151
gnsstk::galfnav::escIOD_3
@ escIOD_3
Definition: GalFBits.hpp:237
gnsstk::galfnav::asbdAhalf_1
@ asbdAhalf_1
Definition: GalFBits.hpp:404
gnsstk::galfnav::esiTOW_2
@ esiTOW_2
Definition: GalFBits.hpp:227
gnsstk::galfnav::anbWNa
@ anbWNa
Definition: GalFBits.hpp:386
gnsstk::galfnav::esbIDFR3
@ esbIDFR3
Definition: GalFBits.hpp:146
gnsstk::galfnav::asbaf1_1
@ asbaf1_1
Definition: GalFBits.hpp:444
gnsstk::galfnav::esiAhalf
@ esiAhalf
Ahalf subframe index.
Definition: GalFBits.hpp:207
gnsstk::galfnav::asiOMEGAdot_3
@ asiOMEGAdot_3
Definition: GalFBits.hpp:515
gnsstk::galfnav::numAlmPTs
@ numAlmPTs
Number of almanac page types (array size).
Definition: GalFBits.hpp:72
gnsstk::galfnav::pt4
@ pt4
Array index of page type 4 in ephAcc.
Definition: GalFBits.hpp:68
gnsstk::galfnav::esbWN_3
@ esbWN_3
Definition: GalFBits.hpp:280
gnsstk::NavSignalID::obs
ObsID obs
Carrier, tracking code, etc.
Definition: NavSignalID.hpp:95
gnsstk::GalFNavEph::hsE5a
GalHealthStatus hsE5a
Health status for E5a.
Definition: GalFNavEph.hpp:95
gnsstk::bds::ascM0
@ ascM0
Definition: BDSD1Bits.hpp:173
gnsstk::galfnav::escai1
@ escai1
Definition: GalFBits.hpp:128
gnsstk::galfnav::esbTOW_3
@ esbTOW_3
Definition: GalFBits.hpp:285
gnsstk::galfnav::esct0e
@ esct0e
t0e scale factor
Definition: GalFBits.hpp:277
gnsstk::galfnav::esiaf1
@ esiaf1
af1 subframe index
Definition: GalFBits.hpp:105
gnsstk::galfnav::enbIOD_3
@ enbIOD_3
Definition: GalFBits.hpp:236
gnsstk::galfnav::asbEcc_2
@ asbEcc_2
Definition: GalFBits.hpp:462
gnsstk::galfnav::enbaf2
@ enbaf2
af2 number of bits
Definition: GalFBits.hpp:112
gnsstk::bds::enbCis
@ enbCis
Definition: BDSD2Bits.hpp:994
gnsstk::galfnav::asiOMEGA0_1
@ asiOMEGA0_1
Definition: GalFBits.hpp:423
gnsstk::bds::esiCrs
@ esiCrs
Definition: BDSD2Bits.hpp:1054
gnsstk::galfnav::anbM0
@ anbM0
Definition: GalFBits.hpp:435
gnsstk::GalFNavEph::xmit4
CommonTime xmit4
Transmit time for page type 4.
Definition: GalFNavEph.hpp:90
gnsstk::galfnav::asbdi_3
@ asbdi_3
Definition: GalFBits.hpp:510
gnsstk::galfnav::enbCrc
@ enbCrc
Crc number of bits.
Definition: GalFBits.hpp:266
gnsstk::galfnav::asbE5ahs_2
@ asbE5ahs_2
Definition: GalFBits.hpp:493
gnsstk::galfnav::asbaf0_1
@ asbaf0_1
Definition: GalFBits.hpp:439
gnsstk::galfnav::enbWN_3
@ enbWN_3
Definition: GalFBits.hpp:281
gnsstk::GalFNavAlm::fixFit
void fixFit()
Fill the beginFit and endFit values for this object.
Definition: GalFNavAlm.cpp:83
gnsstk::OrbitDataKepler::Cus
double Cus
Sine latitude (rad)
Definition: OrbitDataKepler.hpp:176
gnsstk::galfnav::enbai1
@ enbai1
Definition: GalFBits.hpp:127
gnsstk::galfnav::enbWNlsf
@ enbWNlsf
Definition: GalFBits.hpp:333
gnsstk::galfnav::fnbType
@ fnbType
page type number of bits
Definition: GalFBits.hpp:53
gnsstk::galfnav::enbE5ahs
@ enbE5ahs
Definition: GalFBits.hpp:167
gnsstk::bds::escOMEGA0
@ escOMEGA0
Definition: BDSD1Bits.hpp:565
gnsstk::galfnav::asbOMEGA0m_2
@ asbOMEGA0m_2
OMEGA0 MSBs start bit.
Definition: GalFBits.hpp:471
gnsstk::galfnav::esbi0
@ esbi0
i0 start bit
Definition: GalFBits.hpp:240
gnsstk::galfnav::enbWN0G
@ enbWN0G
Definition: GalFBits.hpp:363
gnsstk::galfnav::anbSVID
@ anbSVID
Definition: GalFBits.hpp:400
PNBGalFNavDataFactory.hpp
gnsstk::gpscnav2::asbM0
@ asbM0
M0 start bit.
Definition: GPSC2Bits.hpp:365
gnsstk::galfnav::asiaf1_2
@ asiaf1_2
Definition: GalFBits.hpp:489
gnsstk::bds::esbCis
@ esbCis
Definition: BDSD2Bits.hpp:993
gnsstk::galfnav::esbIOD_4
@ esbIOD_4
Definition: GalFBits.hpp:292
gnsstk::galfnav::enbSISA
@ enbSISA
Definition: GalFBits.hpp:117
gnsstk::galfnav::escA1G
@ escA1G
Definition: GalFBits.hpp:359
gnsstk::galfnav::esiWN_1
@ esiWN_1
Definition: GalFBits.hpp:170
gnsstk::GalFNavTimeOffset
Definition: GalFNavTimeOffset.hpp:53
gnsstk::GalFNavAlm::xmit2
CommonTime xmit2
Definition: GalFNavAlm.hpp:106
gnsstk::bds::escOMEGAdot
@ escOMEGAdot
Definition: BDSD1Bits.hpp:523
gnsstk::galfnav
Definition: GalFBits.hpp:45
gnsstk::OrbitDataKepler::Ahalf
double Ahalf
Square Root of semi-major axis (m**.5)
Definition: OrbitDataKepler.hpp:187
gnsstk::galfnav::asbOMEGA0_3
@ asbOMEGA0_3
Definition: GalFBits.hpp:513
gnsstk::gpscnav2::asbdi
@ asbdi
delta i start bit
Definition: GPSC2Bits.hpp:345
gnsstk::galfnav::asidi_2
@ asidi_2
Definition: GalFBits.hpp:467
gnsstk::galfnav::esbaf2
@ esbaf2
af2 start bit
Definition: GalFBits.hpp:111
gnsstk::bds::escidot
@ escidot
Definition: BDSD1Bits.hpp:551
gnsstk::WeekSecond::sow
double sow
Definition: WeekSecond.hpp:155
gnsstk::OrbitDataKepler::Toc
CommonTime Toc
Clock epoch.
Definition: OrbitDataKepler.hpp:172
gnsstk::galfnav::esbA0
@ esbA0
Definition: GalFBits.hpp:307
gnsstk::timeAdjust8BitWeekRollover
long timeAdjust8BitWeekRollover(long toCorrectWeek, long &refWeek)
Definition: TimeCorrection.cpp:77
gnsstk::galfnav::esiWN_2
@ esiWN_2
Definition: GalFBits.hpp:222
gnsstk::GalFNavEph::fixFit
void fixFit()
Definition: GalFNavEph.cpp:103
gnsstk::galfnav::enbA0
@ enbA0
Definition: GalFBits.hpp:308
gnsstk::galfnav::esbWN0G
@ esbWN0G
Definition: GalFBits.hpp:362
gnsstk::galfnav::escTOW_1
@ escTOW_1
Definition: GalFBits.hpp:178
gnsstk::GALWeekSecond::weekRolloverAdj
GALWeekSecond & weekRolloverAdj(const GALWeekSecond &refTime)
Definition: GALWeekSecond.hpp:210
gnsstk::galfnav::esbIDFR1
@ esbIDFR1
Definition: GalFBits.hpp:136
gnsstk::ObsID::code
TrackingCode code
Definition: ObsID.hpp:201
gnsstk::GalFNavIono
Class containing data elements unique to Galileo I/NAV iono data.
Definition: GalFNavIono.hpp:50
gnsstk::galfnav::escA1
@ escA1
Definition: GalFBits.hpp:314
gnsstk::galfnav::enbIOD_2
@ enbIOD_2
Definition: GalFBits.hpp:189
gnsstk::galfnav::numEphPTs
@ numEphPTs
Number of ephemeris page types (array size).
Definition: GalFBits.hpp:71
gnsstk::galfnav::asiM0_3
@ asiM0_3
Definition: GalFBits.hpp:518
gnsstk::galfnav::esctot
@ esctot
Definition: GalFBits.hpp:324
gnsstk::galfnav::asct0a
@ asct0a
Definition: GalFBits.hpp:392
gnsstk::galfnav::escWN_1
@ escWN_1
Definition: GalFBits.hpp:173
gnsstk::Week::week
int week
Full week number.
Definition: Week.hpp:267
gnsstk::galfnav::fsbType
@ fsbType
page type start bit
Definition: GalFBits.hpp:52
gnsstk::galfnav::asbw_2
@ asbw_2
Definition: GalFBits.hpp:465
gnsstk::galfnav::asbSVID_1
@ asbSVID_1
Definition: GalFBits.hpp:399
gnsstk::galfnav::escai2
@ escai2
Definition: GalFBits.hpp:133
gnsstk::GalFNavAlm::wna
unsigned wna
Reference week for t0a.
Definition: GalFNavAlm.hpp:109
gnsstk::galfnav::esbt0G
@ esbt0G
Definition: GalFBits.hpp:347
gnsstk::galfnav::esiTOW_1
@ esiTOW_1
Definition: GalFBits.hpp:175
gnsstk::GalFNavEph::wn3
uint16_t wn3
GST WN (week number) for page type 3.
Definition: GalFNavEph.hpp:101
gnsstk::gpscnav2::asbaf1
@ asbaf1
af1 start bit
Definition: GPSC2Bits.hpp:373
gnsstk::GalFNavEph::tow2
uint32_t tow2
GST TOW (time of week) for page type 2.
Definition: GalFNavEph.hpp:100
gnsstk::galfnav::pt5
@ pt5
Array index of page type 5 in almAcc.
Definition: GalFBits.hpp:69
gnsstk::galfnav::esbOMEGAdot
@ esbOMEGAdot
OMEGAdot start bit.
Definition: GalFBits.hpp:198
gnsstk::galfnav::esbE5advs
@ esbE5advs
Definition: GalFBits.hpp:181
gnsstk::galfnav::ascaf0
@ ascaf0
Definition: GalFBits.hpp:441
gnsstk::bds::ascOMEGA0
@ ascOMEGA0
Definition: BDSD1Bits.hpp:121
gnsstk::galfnav::esbdtLS
@ esbdtLS
Definition: GalFBits.hpp:317
gnsstk::galfnav::asidAhalf_2
@ asidAhalf_2
Definition: GalFBits.hpp:458
gnsstk::OrbitDataKepler::i0
double i0
Inclination (rad)
Definition: OrbitDataKepler.hpp:190
gnsstk::galfnav::enbtot
@ enbtot
Definition: GalFBits.hpp:323
gnsstk::galfnav::asidAhalf_3
@ asidAhalf_3
Definition: GalFBits.hpp:500
gnsstk::galfnav::esbM0
@ esbM0
M0 start bit.
Definition: GalFBits.hpp:193
gnsstk::galfnav::escTOW_3
@ escTOW_3
Definition: GalFBits.hpp:287
gnsstk::bds::asbEcc
@ asbEcc
Eccentricity.
Definition: BDSD1Bits.hpp:130
gnsstk::galfnav::pt6
@ pt6
Array index of page type 6 in almAcc.
Definition: GalFBits.hpp:70
gnsstk::GalFNavEph::tow3
uint32_t tow3
GST TOW (time of week) for page type 3.
Definition: GalFNavEph.hpp:102
gnsstk::OrbitDataKepler::Cic
double Cic
Cosine inclination (rad)
Definition: OrbitDataKepler.hpp:179
gnsstk::bds::ascOMEGAdot
@ ascOMEGAdot
Definition: BDSD1Bits.hpp:151
gnsstk::galfnav::enbi0
@ enbi0
i0 number of bits
Definition: GalFBits.hpp:241
gnsstk::GalFNavEph::iodnav1
uint16_t iodnav1
IODnav for page type 1.
Definition: GalFNavEph.hpp:91
gnsstk::galfnav::escIOD_4
@ escIOD_4
Definition: GalFBits.hpp:294
gnsstk::galfnav::escDN
@ escDN
Definition: GalFBits.hpp:339
gnsstk::galfnav::enbA0G
@ enbA0G
Definition: GalFBits.hpp:353
gnsstk::OrbitDataKepler::Crc
double Crc
Cosine radius (m)
Definition: OrbitDataKepler.hpp:177
gnsstk::galfnav::esiIOD_1
@ esiIOD_1
Definition: GalFBits.hpp:90
gnsstk::galfnav::esiaf2
@ esiaf2
af2 subframe index
Definition: GalFBits.hpp:110
gnsstk::galfnav::ascdAhalf
@ ascdAhalf
Definition: GalFBits.hpp:406
gnsstk::GalFNavAlm::deltai
double deltai
Inclination in rad relative to 0.3*pi rad.
Definition: GalFNavAlm.hpp:108
gnsstk::galfnav::esbSVID
@ esbSVID
Definition: GalFBits.hpp:84
gnsstk::galfnav::enbOMEGA0
@ enbOMEGA0
OMEGA0 number of bits.
Definition: GalFBits.hpp:214
gnsstk::galfnav::asiOMEGA0l_2
@ asiOMEGA0l_2
Definition: GalFBits.hpp:476
gnsstk::galfnav::pt2
@ pt2
Array index of page type 2 in ephAcc.
Definition: GalFBits.hpp:66
gnsstk::galfnav::asiEcc_2
@ asiEcc_2
Definition: GalFBits.hpp:461
gnsstk::galfnav::esiCuc
@ esiCuc
Cuc subframe index.
Definition: GalFBits.hpp:254
gnsstk::galfnav::asiEcc_3
@ asiEcc_3
Definition: GalFBits.hpp:503
gnsstk::galfnav::enbTOW_3
@ enbTOW_3
Definition: GalFBits.hpp:286
gnsstk::bds::escEcc
@ escEcc
Definition: BDSD1Bits.hpp:410
gnsstk::bds::esiCis
@ esiCis
Definition: BDSD2Bits.hpp:992
gnsstk::galfnav::asiM0_1
@ asiM0_1
Definition: GalFBits.hpp:433
gnsstk::galfnav::esiCic
@ esiCic
Cic subframe index.
Definition: GalFBits.hpp:296
gnsstk::galfnav::esbIDFR4
@ esbIDFR4
Definition: GalFBits.hpp:151
gnsstk::galfnav::enbE5advs
@ enbE5advs
Definition: GalFBits.hpp:182
std
Definition: Angle.hpp:142
gnsstk::galfnav::asbM0_2
@ asbM0_2
Definition: GalFBits.hpp:484
gnsstk::OrbitDataKepler::af0
double af0
SV clock error (sec)
Definition: OrbitDataKepler.hpp:195
gnsstk::GalFNavAlm::t0a
double t0a
Convenience storage of unqualified t0a.
Definition: GalFNavAlm.hpp:110
gnsstk::galfnav::esbSISA
@ esbSISA
Definition: GalFBits.hpp:116
gnsstk::galfnav::escE5ahs
@ escE5ahs
Definition: GalFBits.hpp:168
gnsstk::galfnav::asbEcc_1
@ asbEcc_1
Definition: GalFBits.hpp:409
gnsstk::galfnav::esit0e
@ esit0e
t0e subframe index
Definition: GalFBits.hpp:274
gnsstk::galfnav::asidi_1
@ asidi_1
Definition: GalFBits.hpp:418
gnsstk::galfnav::asiw_1
@ asiw_1
Definition: GalFBits.hpp:413
gnsstk::galfnav::esiSISA
@ esiSISA
Definition: GalFBits.hpp:115
gnsstk::galfnav::enbA1G
@ enbA1G
Definition: GalFBits.hpp:358
gnsstk::galfnav::asbOMEGAdot_2
@ asbOMEGAdot_2
Definition: GalFBits.hpp:481
gnsstk::galfnav::esiaf0
@ esiaf0
af0 subframe index
Definition: GalFBits.hpp:100
gnsstk::bds::ascdi
@ ascdi
Definition: BDSD1Bits.hpp:136
gnsstk::GalFNavEph::tow4
uint32_t tow4
GST TOW (time of week) for page type 4.
Definition: GalFNavEph.hpp:103
gnsstk::galfnav::escai0
@ escai0
Definition: GalFBits.hpp:123
gnsstk::galfnav::esiE5advs
@ esiE5advs
Definition: GalFBits.hpp:180
gnsstk::galfnav::esiIOD_3
@ esiIOD_3
Definition: GalFBits.hpp:234
gnsstk::gpscnav2::asbOMEGAdot
@ asbOMEGAdot
OMEGAdot start bit.
Definition: GPSC2Bits.hpp:349
gnsstk::galfnav::asbw_1
@ asbw_1
Definition: GalFBits.hpp:414
gnsstk::galfnav::enbTOW_2
@ enbTOW_2
Definition: GalFBits.hpp:229
gnsstk::galfnav::esbaf0
@ esbaf0
af0 start bit
Definition: GalFBits.hpp:101
gnsstk::GalFNavHealth::dataValidityStatus
GalDataValid dataValidityStatus
Data Validity Status (DVS)
Definition: GalFNavHealth.hpp:83
gnsstk::galfnav::enbt0c
@ enbt0c
t0c number of bits
Definition: GalFBits.hpp:97
gnsstk::galfnav::esiTOW_3
@ esiTOW_3
Definition: GalFBits.hpp:284
gnsstk::bds::escdn
@ escdn
Definition: BDSD1Bits.hpp:368
gnsstk::galfnav::enbCic
@ enbCic
Cic number of bits.
Definition: GalFBits.hpp:298
gnsstk::galfnav::enbdtLS
@ enbdtLS
Definition: GalFBits.hpp:318
gnsstk::galfnav::asbWNa
@ asbWNa
Definition: GalFBits.hpp:385
gnsstk::galfnav::asidi_3
@ asidi_3
Definition: GalFBits.hpp:509
gnsstk::galfnav::asidAhalf_1
@ asidAhalf_1
Definition: GalFBits.hpp:403
gnsstk::galfnav::enbBGDa
@ enbBGDa
Definition: GalFBits.hpp:162
gnsstk::galfnav::escIOD_1
@ escIOD_1
Definition: GalFBits.hpp:93
gnsstk::galfnav::asbOMEGA0l_2
@ asbOMEGA0l_2
OMEGA0 LSBs start bit.
Definition: GalFBits.hpp:477
gnsstk::galfnav::esiTOW_4
@ esiTOW_4
Definition: GalFBits.hpp:366
gnsstk::galfnav::enbM0
@ enbM0
M0 number of bits.
Definition: GalFBits.hpp:194
gnsstk::GalHealthStatus
GalHealthStatus
Identify different types of SV health states.
Definition: GalHealthStatus.hpp:51
gnsstk::bds::escCrc
@ escCrc
Definition: BDSD1Bits.hpp:434
gnsstk::galfnav::enbaf1
@ enbaf1
af1 number of bits
Definition: GalFBits.hpp:107
gnsstk::galfnav::esbIOD_3
@ esbIOD_3
Definition: GalFBits.hpp:235
gnsstk::galfnav::asbdi_2
@ asbdi_2
Definition: GalFBits.hpp:468
gnsstk::StdNavTimeOffset::a0
double a0
Bias coefficient of source time scale.
Definition: StdNavTimeOffset.hpp:122
gnsstk::galfnav::asiaf0_3
@ asiaf0_3
Definition: GalFBits.hpp:521
gnsstk::galfnav::asit0a
@ asit0a
Definition: GalFBits.hpp:389
gnsstk::galfnav::asiOMEGAdot_2
@ asiOMEGAdot_2
Definition: GalFBits.hpp:480
gnsstk::galfnav::esbTOW_1
@ esbTOW_1
Definition: GalFBits.hpp:176
gnsstk::galfnav::ascWNa
@ ascWNa
Definition: GalFBits.hpp:387
gnsstk::galfnav::esbCrc
@ esbCrc
Crc start bit.
Definition: GalFBits.hpp:265
GalFNavISC.hpp
gnsstk::galfnav::esbCic
@ esbCic
Cic start bit.
Definition: GalFBits.hpp:297
gnsstk::GalFNavAlm::ioda5
uint8_t ioda5
IODa for page type 5.
Definition: GalFNavAlm.hpp:111
gnsstk::galfnav::anbt0a
@ anbt0a
Definition: GalFBits.hpp:391
gnsstk::GalFNavEph::wn2
uint16_t wn2
GST WN (week number) for page type 2.
Definition: GalFNavEph.hpp:99
gnsstk::galfnav::enbt0e
@ enbt0e
t0e number of bits
Definition: GalFBits.hpp:276
gnsstk::galfnav::asbaf0_2
@ asbaf0_2
Definition: GalFBits.hpp:487
gnsstk::GalFNavEph::tow1
uint32_t tow1
GST TOW (time of week) for page type 1.
Definition: GalFNavEph.hpp:98
gnsstk::GalFNavEph
Class containing data elements unique to Galileo F/NAV ephemerides.
Definition: GalFNavEph.hpp:52
gnsstk::galfnav::enbai2
@ enbai2
Definition: GalFBits.hpp:132
gnsstk::galfnav::escWNlsf
@ escWNlsf
Definition: GalFBits.hpp:334
gnsstk::galfnav::escTOW_4
@ escTOW_4
Definition: GalFBits.hpp:369
gnsstk::bds::esidn
@ esidn
Definition: BDSD2Bits.hpp:871
gnsstk::galfnav::esbE5ahs
@ esbE5ahs
Definition: GalFBits.hpp:166
gnsstk::OrbitDataKepler::health
SVHealth health
SV health status.
Definition: OrbitDataKepler.hpp:173
gnsstk::galfnav::esct0G
@ esct0G
Definition: GalFBits.hpp:349
gnsstk::galfnav::asbdAhalf_2
@ asbdAhalf_2
Definition: GalFBits.hpp:459
gnsstk::galfnav::asbt0a
@ asbt0a
Definition: GalFBits.hpp:390
gnsstk::galfnav::esbtot
@ esbtot
Definition: GalFBits.hpp:322
gnsstk::galfnav::enbOMEGAdot
@ enbOMEGAdot
OMEGAdot number of bits.
Definition: GalFBits.hpp:199
gnsstk::galfnav::asbE5ahs_3
@ asbE5ahs_3
Definition: GalFBits.hpp:528
gnsstk::galfnav::asbaf0_3
@ asbaf0_3
Definition: GalFBits.hpp:522
gnsstk::galfnav::esbai1
@ esbai1
Definition: GalFBits.hpp:126
gnsstk::galfnav::asiOMEGAdot_1
@ asiOMEGAdot_1
Definition: GalFBits.hpp:428
gnsstk::galfnav::esbdtLSF
@ esbdtLSF
Definition: GalFBits.hpp:342
gnsstk::galfnav::asiM0_2
@ asiM0_2
Definition: GalFBits.hpp:483
gnsstk::OrbitDataKepler::OMEGA0
double OMEGA0
Longitude of ascending node at weekly epoch (rad)
Definition: OrbitDataKepler.hpp:189
gnsstk::galfnav::esbOMEGA0
@ esbOMEGA0
OMEGA0 start bit.
Definition: GalFBits.hpp:213
GalFNavIono.hpp
gnsstk::galfnav::asbaf1_2
@ asbaf1_2
Definition: GalFBits.hpp:490
gnsstk::galfnav::pt3
@ pt3
Array index of page type 3 in ephAcc.
Definition: GalFBits.hpp:67
gnsstk::galfnav::esit0c
@ esit0c
t0c subframe index
Definition: GalFBits.hpp:95
gnsstk::StdNavTimeOffset::effTime
CommonTime effTime
Effectivity time (wnLSF,dn).
Definition: StdNavTimeOffset.hpp:127
gnsstk::galfnav::asiE5ahs_2
@ asiE5ahs_2
Definition: GalFBits.hpp:492
gnsstk::galfnav::esiIOD_2
@ esiIOD_2
Definition: GalFBits.hpp:187
gnsstk::galfnav::esii0
@ esii0
i0 subframe index
Definition: GalFBits.hpp:239
gnsstk::galfnav::escaf1
@ escaf1
af1 scale factor
Definition: GalFBits.hpp:108
gnsstk::galfnav::anbaf1
@ anbaf1
Definition: GalFBits.hpp:445
gnsstk::galfnav::escdtLSF
@ escdtLSF
Definition: GalFBits.hpp:344
gnsstk::galfnav::anbE5ahs
@ anbE5ahs
Definition: GalFBits.hpp:450
gnsstk::galfnav::esbCuc
@ esbCuc
Cuc start bit.
Definition: GalFBits.hpp:255
gnsstk::galfnav::escIOD_2
@ escIOD_2
Definition: GalFBits.hpp:190
gnsstk::StdNavTimeOffset::refTime
CommonTime refTime
Reference time for computation.
Definition: StdNavTimeOffset.hpp:126
TimeCorrection.hpp
gnsstk::galfnav::escA0G
@ escA0G
Definition: GalFBits.hpp:354
gnsstk::bds::escCrs
@ escCrs
Definition: BDSD1Bits.hpp:448
gnsstk::galfnav::esiWN_3
@ esiWN_3
Definition: GalFBits.hpp:279
GALWeekSecond.hpp
gnsstk::galfnav::esbTOW_2
@ esbTOW_2
Definition: GalFBits.hpp:228
gnsstk::OrbitDataKepler::af1
double af1
SV clock drift (sec/sec)
Definition: OrbitDataKepler.hpp:196
gnsstk::bds::enbdn
@ enbdn
Definition: BDSD2Bits.hpp:873
gnsstk::galfnav::ascSVID
@ ascSVID
Definition: GalFBits.hpp:401
gnsstk::bds::escCis
@ escCis
Definition: BDSD1Bits.hpp:537
gnsstk::galfnav::esiE5ahs
@ esiE5ahs
Definition: GalFBits.hpp:165
gnsstk::galfnav::esbA1G
@ esbA1G
Definition: GalFBits.hpp:357
gnsstk::galfnav::escWNot
@ escWNot
Definition: GalFBits.hpp:329
TimeString.hpp
gnsstk::galfnav::enbSVID
@ enbSVID
Definition: GalFBits.hpp:85
gnsstk::galfnav::escdtLS
@ escdtLS
Definition: GalFBits.hpp:319
gnsstk::galfnav::esbt0c
@ esbt0c
t0c start bit
Definition: GalFBits.hpp:96
gnsstk::GalFNavISC
Definition: GalFNavISC.hpp:51
gnsstk::GalFNavTimeOffset::tow
double tow
TOW field from page type 4.
Definition: GalFNavTimeOffset.hpp:68
gnsstk::galfnav::asiaf0_2
@ asiaf0_2
Definition: GalFBits.hpp:486
gnsstk::GalFNavEph::iodnav3
uint16_t iodnav3
IODnav for page type 3.
Definition: GalFNavEph.hpp:93
gnsstk::StdNavTimeOffset::tot
double tot
Time data reference time of week (storage only).
Definition: StdNavTimeOffset.hpp:128
gnsstk::galfnav::asiE5ahs_1
@ asiE5ahs_1
Definition: GalFBits.hpp:448
EngNav.hpp
gnsstk::OrbitDataKepler::dn
double dn
Correction to mean motion (rad/sec)
Definition: OrbitDataKepler.hpp:183
gnsstk::bds::esiCus
@ esiCus
Definition: BDSD1Bits.hpp:426
gnsstk::galfnav::esbidot
@ esbidot
idot start bit
Definition: GalFBits.hpp:218
gnsstk::galfnav::asbSVID_2
@ asbSVID_2
Definition: GalFBits.hpp:456
gnsstk::galfnav::enbai0
@ enbai0
Definition: GalFBits.hpp:122
gnsstk::galfnav::ascIODa
@ ascIODa
Definition: GalFBits.hpp:382


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