PNBGLOFNavDataFactory_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 //
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 //==============================================================================
39 #include "FactoryCounter.hpp"
41 #include "TestUtil.hpp"
42 #include "GLOFNavTimeOffset.hpp"
43 #include "GLOFNavUT1TimeOffset.hpp"
44 #include "GLOFNavHealth.hpp"
45 #include "GLOFNavEph.hpp"
46 #include "GLOFNavAlm.hpp"
47 #include "GLOFNavISC.hpp"
48 #include "CivilTime.hpp"
49 #include "YDSTime.hpp"
50 #include "TimeString.hpp"
51 
52 using namespace std;
53 
55 class BunkIono
56 {
57 public:
59  {}
60 };
61 
62 namespace gnsstk
63 {
64  ostream& operator<<(ostream& s, SVHealth h)
65  {
66  s << StringUtils::asString(h);
67  return s;
68  }
69  ostream& operator<<(ostream& s, GLOFNavSatType e)
70  {
71  s << StringUtils::asString(e);
72  return s;
73  }
74  ostream& operator<<(ostream& s, GLOFNavPCode e)
75  {
76  s << StringUtils::asString(e);
77  return s;
78  }
79 }
80 
81 // avoid having to type out template params over and over.
83 
84 
89 {
90 public:
92 
93  unsigned addDataAllTest();
95  unsigned addDataEphemerisTest();
97  unsigned addDataAlmanacTest();
99  unsigned addDataHealthTest();
101  unsigned addDataTimeTest();
103  unsigned addDataEphHealthTest();
105  unsigned addDataAlmHealthTest();
107  unsigned processEphTest();
109  unsigned processAlmTest();
111  unsigned processTimeUT1Test();
113  unsigned getFrameNumTest();
114 
115 #include "GLOFNavTestDataDecl.hpp"
116 };
117 
118 
121 {
122 #include "GLOFNavTestDataDef.hpp"
123 }
124 
125 
128 {
129  TUDEF("PNBGLOFNavDataFactory", "addData");
130  GLOFactoryCounter fc(testFramework);
136  gnsstk::PackedNavBitsPtr nonGLO =
137  std::make_shared<gnsstk::PackedNavBits>(gpsSid,gpsid,gpsNav,"XX",
139  gnsstk::NavDataPtrList navOut;
140  // should refuse non-GLONASS data
141  TUASSERTE(bool, false, uut.addData(nonGLO, navOut));
142  fc.validateResults(navOut, __LINE__);
143  // The rest is checking that we're processing the good data
144  // appropriately, but I'm not bothering to check the detailed
145  // contents as that is assumed to be tested in the process*
146  // tests.
147  // Add nav pages in time order
148  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr1, navOut));
149  fc.validateResults(navOut, __LINE__);
150  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr2, navOut));
151  fc.validateResults(navOut, __LINE__);
152  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr3, navOut));
153  fc.validateResults(navOut, __LINE__);
154  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr4, navOut));
155  fc.validateResults(navOut, __LINE__, 3, 0, 1, 0, 1, 0, 1);
156  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr5, navOut));
157  fc.validateResults(navOut, __LINE__, 2, 0, 0, 1, 1);
158  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr6, navOut));
159  fc.validateResults(navOut, __LINE__);
160  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr7, navOut));
161  fc.validateResults(navOut, __LINE__, 2, 1, 0, 0, 1);
162  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr14, navOut));
163  fc.validateResults(navOut, __LINE__, 1, 0, 0, 0, 0, 0, 0, 1);
164  TURETURN();
165 }
166 
167 
170 {
171  TUDEF("PNBGLOFNavDataFactory", "addData");
172  GLOFactoryCounter fc(testFramework);
174  gnsstk::NavDataPtrList navOut;
175  TUCATCH(uut.setTypeFilter({gnsstk::NavMessageType::Ephemeris}));
176  // Add nav pages in time order
177  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr1, navOut));
178  fc.validateResults(navOut, __LINE__);
179  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr2, navOut));
180  fc.validateResults(navOut, __LINE__);
181  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr3, navOut));
182  fc.validateResults(navOut, __LINE__);
183  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr4, navOut));
184  fc.validateResults(navOut, __LINE__, 1, 0, 1);
185  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr5, navOut));
186  fc.validateResults(navOut, __LINE__);
187  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr6, navOut));
188  fc.validateResults(navOut, __LINE__);
189  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr7, navOut));
190  fc.validateResults(navOut, __LINE__);
191  TURETURN();
192 }
193 
194 
197 {
198  TUDEF("PNBGLOFNavDataFactory", "addData");
199  GLOFactoryCounter fc(testFramework);
201  gnsstk::NavDataPtrList navOut;
202  TUCATCH(uut.setTypeFilter({gnsstk::NavMessageType::Almanac}));
203  // Add nav pages in time order
204  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr1, navOut));
205  fc.validateResults(navOut, __LINE__);
206  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr2, navOut));
207  fc.validateResults(navOut, __LINE__);
208  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr3, navOut));
209  fc.validateResults(navOut, __LINE__);
210  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr4, navOut));
211  fc.validateResults(navOut, __LINE__);
212  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr5, navOut));
213  fc.validateResults(navOut, __LINE__);
214  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr6, navOut));
215  fc.validateResults(navOut, __LINE__);
216  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr7, navOut));
217  fc.validateResults(navOut, __LINE__, 1, 1);
218  TURETURN();
219 }
220 
221 
224 {
225  TUDEF("PNBGLOFNavDataFactory", "addData");
226  GLOFactoryCounter fc(testFramework);
228  gnsstk::NavDataPtrList navOut;
229  TUCATCH(uut.setTypeFilter({gnsstk::NavMessageType::Health}));
230  // Add nav pages in time order
231  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr1, navOut));
232  fc.validateResults(navOut, __LINE__);
233  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr2, navOut));
234  fc.validateResults(navOut, __LINE__);
235  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr3, navOut));
236  fc.validateResults(navOut, __LINE__);
237  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr4, navOut));
238  fc.validateResults(navOut, __LINE__, 1, 0, 0, 0, 1);
239  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr5, navOut));
240  fc.validateResults(navOut, __LINE__, 1, 0, 0, 0, 1);
241  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr6, navOut));
242  fc.validateResults(navOut, __LINE__);
243  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr7, navOut));
244  fc.validateResults(navOut, __LINE__, 1, 0, 0, 0, 1);
245  TURETURN();
246 }
247 
248 
251 {
252  TUDEF("PNBGLOFNavDataFactory", "addData");
253  GLOFactoryCounter fc(testFramework);
255  gnsstk::NavDataPtrList navOut;
256  TUCATCH(uut.setTypeFilter({gnsstk::NavMessageType::TimeOffset}));
257  // Add nav pages in time order
258  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr1, navOut));
259  fc.validateResults(navOut, __LINE__);
260  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr2, navOut));
261  fc.validateResults(navOut, __LINE__);
262  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr3, navOut));
263  fc.validateResults(navOut, __LINE__);
264  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr4, navOut));
265  fc.validateResults(navOut, __LINE__);
266  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr5, navOut));
267  fc.validateResults(navOut, __LINE__, 1, 0, 0, 1);
268  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr6, navOut));
269  fc.validateResults(navOut, __LINE__);
270  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr7, navOut));
271  fc.validateResults(navOut, __LINE__);
272  TURETURN();
273 }
274 
275 
278 {
279  TUDEF("PNBGLOFNavDataFactory", "addData");
280  GLOFactoryCounter fc(testFramework);
282  gnsstk::NavDataPtrList navOut;
283  TUCATCH(uut.setTypeFilter({gnsstk::NavMessageType::Health,
284  gnsstk::NavMessageType::Ephemeris}));
285  // Add nav pages in time order
286  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr1, navOut));
287  fc.validateResults(navOut, __LINE__);
288  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr2, navOut));
289  fc.validateResults(navOut, __LINE__);
290  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr3, navOut));
291  fc.validateResults(navOut, __LINE__);
292  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr4, navOut));
293  fc.validateResults(navOut, __LINE__, 2, 0, 1, 0, 1);
294  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr5, navOut));
295  fc.validateResults(navOut, __LINE__, 1, 0, 0, 0, 1);
296  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr6, navOut));
297  fc.validateResults(navOut, __LINE__);
298  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr7, navOut));
299  fc.validateResults(navOut, __LINE__, 1, 0, 0, 0, 1);
300  TURETURN();
301 }
302 
303 
306 {
307  TUDEF("PNBGLOFNavDataFactory", "addData");
308  GLOFactoryCounter fc(testFramework);
310  gnsstk::NavDataPtrList navOut;
311  TUCATCH(uut.setTypeFilter({gnsstk::NavMessageType::Health,
312  gnsstk::NavMessageType::Almanac}));
313  // Add nav pages in time order
314  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr1, navOut));
315  fc.validateResults(navOut, __LINE__);
316  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr2, navOut));
317  fc.validateResults(navOut, __LINE__);
318  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr3, navOut));
319  fc.validateResults(navOut, __LINE__);
320  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr4, navOut));
321  fc.validateResults(navOut, __LINE__, 1, 0, 0, 0, 1);
322  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr5, navOut));
323  fc.validateResults(navOut, __LINE__, 1, 0, 0, 0, 1);
324  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr6, navOut));
325  fc.validateResults(navOut, __LINE__);
326  TUASSERTE(bool, true, uut.addData(navFNAVGLOStr7, navOut));
327  fc.validateResults(navOut, __LINE__, 2, 1, 0, 0, 1);
328  TURETURN();
329 }
330 
331 
334 {
335  TUDEF("PNBGLOFNavDataFactory", "processEph");
336  GLOFactoryCounter fc(testFramework);
338  gnsstk::NavMessageID nmidExp(
344  gnsstk::CommonTime toeExp = gnsstk::CivilTime(2015,6,27,0,45,0,
346  gnsstk::CommonTime refExp = gnsstk::CivilTime(2015,6,27,3,40,0,
349  gnsstk::CommonTime endExp = toeExp + 31.0*30.0;
350  gnsstk::NavDataPtrList navOut;
351  gnsstk::GLOFNavEph *eph;
353  gnsstk::GLOFNavISC *isc;
354  TUASSERTE(bool, true, uut.processEph(1, navFNAVGLOStr1, navOut));
355  fc.validateResults(navOut, __LINE__);
356  TUASSERTE(bool, true, uut.processEph(2, navFNAVGLOStr2, navOut));
357  fc.validateResults(navOut, __LINE__);
358  TUASSERTE(bool, true, uut.processEph(3, navFNAVGLOStr3, navOut));
359  fc.validateResults(navOut, __LINE__);
360  TUASSERTE(bool, true, uut.processEph(4, navFNAVGLOStr4, navOut));
361  for (const auto& i : navOut)
362  {
363  if ((hea = dynamic_cast<gnsstk::GLOFNavHealth*>(i.get())) != nullptr)
364  {
365  // NavData fields
368  TUASSERTE(gnsstk::NavMessageID, nmidExp, hea->signal);
369  // NavHealthData has no data of its own
370  // GLOFNavHealth fields
371  TUASSERTE(unsigned, 0, hea->healthBits);
372  TUASSERTE(bool, false, hea->ln);
373  TUASSERTE(bool, false, hea->Cn.is_valid());
374  }
375  else if ((isc = dynamic_cast<gnsstk::GLOFNavISC*>(i.get())) != nullptr)
376  {
377  // NavData fields
380  TUASSERTE(gnsstk::NavMessageID, nmidExp, isc->signal);
381  // InterSigCorr
382  TUASSERTFE(8.3819031715393066406e-09, isc->isc);
383  // GLOFNavISC has no data of its own
384  }
385  else if ((eph = dynamic_cast<gnsstk::GLOFNavEph*>(i.get())) != nullptr)
386  {
387  // NavData fields
390  TUASSERTE(gnsstk::NavMessageID, nmidExp, eph->signal);
391  // OrbitData has no data of its own
392  // GLOFNavData fields
396  TUASSERTE(unsigned, 1, eph->slot);
397  TUASSERTE(bool, false, eph->lhealth);
399  TUASSERTE(gnsstk::CommonTime, beginExp, eph->beginFit);
400  TUASSERTE(gnsstk::CommonTime, endExp, eph->endFit);
401  // GLOFNavEph fields
402  TUASSERTE(gnsstk::CommonTime, refExp, eph->ref);
405  TUASSERTFE(10148.4248046875, eph->pos[0]);
406  TUASSERTFE(5279.21240234375, eph->pos[1]);
407  TUASSERTFE(22808.46533203125, eph->pos[2]);
408  TUASSERTFE(-.6433887481689453125, eph->vel[0]);
409  TUASSERTFE(3.0522518157958984375, eph->vel[1]);
410  TUASSERTFE(-.4191455841064453125, eph->vel[2]);
411  TUASSERTFE(-9.3132257461547851562e-10, eph->acc[0]);
412  TUASSERTFE(9.3132257461547851562e-10, eph->acc[1]);
413  TUASSERTFE(-1.8626451492309570312e-09, eph->acc[2]);
414  TUASSERTFE(0.00015267729759216308594, eph->clkBias);
415  TUASSERTFE(0, eph->freqBias);
416  TUASSERTE(unsigned, 0, eph->healthBits);
417  TUASSERTE(unsigned, 225, eph->tb);
418  TUASSERTE(unsigned, 0, eph->P1);
419  TUASSERTE(unsigned, 1, eph->P2);
420  TUASSERTE(unsigned, 1, eph->P3);
421  TUASSERTE(unsigned, 0, eph->P4);
422  TUASSERTE(unsigned, 0, eph->interval);
425  TUASSERTFE(8.3819031715393066406e-09, eph->tauDelta);
426  TUASSERTE(unsigned, 0, eph->aod);
427  TUASSERTE(unsigned, 1, eph->accIndex);
428  TUASSERTE(unsigned, 1274, eph->dayCount);
429  TUASSERTE(gnsstk::CommonTime, toeExp, eph->Toe);
430  TUASSERTFE(60.0, eph->step);
431  }
432  }
433  fc.validateResults(navOut, __LINE__, 3, 0, 1, 0, 1, 0, 1);
434  TURETURN();
435 }
436 
437 
440 {
441  TUDEF("PNBGLOFNavDataFactory", "processAlm");
442  GLOFactoryCounter fc(testFramework);
444  gnsstk::NavMessageID nmidExp(
450  gnsstk::CommonTime toaExp = gnsstk::YDSTime(2015,178,2599.4375,
452  gnsstk::CommonTime refExp = gnsstk::CivilTime(2015,6,27,3,40,0,
456  gnsstk::NavDataPtrList navOut;
457  gnsstk::GLOFNavAlm *alm;
461  TUCSM("processTime");
462  TUASSERTE(bool, true, uut.processTime(navFNAVGLOStr5, navOut));
463  for (const auto& i : navOut)
464  {
465  if ((ofs = dynamic_cast<gnsstk::GLOFNavTimeOffset*>(i.get())) != nullptr)
466  {
467  // NavData fields
470  TUASSERTE(gnsstk::NavMessageID, nmidExp, ofs->signal);
471  // TimeOffsetData has no data of its own
472  // StdNavTimeOffset fields
475  TUASSERTFE(-1.5832483768463134766e-08, ofs->a0);
476  TUASSERTFE(0, ofs->a1);
477  TUASSERTFE(0, ofs->a2);
478  TUASSERTFE(16, ofs->deltatLS);
481  TUASSERTFE(0, ofs->tot);
482  TUASSERTE(unsigned, 0, ofs->wnot);
483  TUASSERTE(unsigned, 0, ofs->wnLSF);
484  TUASSERTE(unsigned, 0, ofs->dn);
485  TUASSERTFE(0, ofs->deltatLSF);
486  TUASSERTE(unsigned, 1, ofs->dnSun);
487  // GLOFNavTimeOffset has no data of its own
488  }
489  else if ((hea = dynamic_cast<gnsstk::GLOFNavHealth*>(i.get())) != nullptr)
490  {
491  // NavData fields
494  TUASSERTE(gnsstk::NavMessageID, nmidExp, hea->signal);
495  // NavHealthData has no data of its own
496  // GLOFNavHealth fields
497  TUASSERTE(bool, false, hea->healthBits.is_valid());
498  TUASSERTE(bool, false, hea->ln);
499  TUASSERTE(bool, false, hea->Cn.is_valid());
500  }
501  }
502  fc.validateResults(navOut, __LINE__, 2, 0, 0, 1, 1);
503  TUCSM("processAlm");
504  TUASSERTE(bool, true, uut.processAlm(6, navFNAVGLOStr6, navOut));
505  fc.validateResults(navOut, __LINE__);
506  TUASSERTE(bool, true, uut.processAlm(7, navFNAVGLOStr7, navOut));
507  for (const auto& i : navOut)
508  {
509  if ((alm = dynamic_cast<gnsstk::GLOFNavAlm*>(i.get())) != nullptr)
510  {
511  // NavData fields
514  TUASSERTE(gnsstk::NavMessageID, nmidExp, alm->signal);
515  // OrbitData has no data of its own
516  // GLOFNavData fields
520  TUASSERTE(unsigned, 1, alm->slot);
521  TUASSERTE(bool, false, alm->lhealth);
523  TUASSERTE(gnsstk::CommonTime, beginExp, alm->beginFit);
524  TUASSERTE(gnsstk::CommonTime, endExp, alm->endFit);
525  // GLOFNavAlm
526  TUASSERTE(gnsstk::CommonTime, toaExp, alm->Toa);
527  TUASSERTE(bool, true, alm->healthBits);
528  TUASSERTFE(0.000152587890625, alm->taunA);
529  TUASSERTFE(-0.56266535141894369332, alm->lambdanA);
530  TUASSERTFE(0.020648819511929372705, alm->deltainA);
531  TUASSERTFE(0.00044727325439453125, alm->eccnA);
532  TUASSERTFE(-0.75078772187077846834, alm->omeganA);
533  TUASSERTFE(2599.4375, alm->tLambdanA);
534  TUASSERTFE(-2656.337890625, alm->deltaTnA);
535  TUASSERTFE(0.00030517578125, alm->deltaTdotnA);
536  TUASSERTE(int, 1, alm->freqnA);
537  }
538  else if ((hea = dynamic_cast<gnsstk::GLOFNavHealth*>(i.get())) != nullptr)
539  {
540  // NavData fields
543  TUASSERTE(gnsstk::NavMessageID, nmidExp, hea->signal);
544  // NavHealthData has no data of its own
545  // GLOFNavHealth fields
546  TUASSERTE(bool, false, hea->healthBits.is_valid());
547  TUASSERTE(bool, false, hea->ln);
548  TUASSERTE(bool, true, hea->Cn);
549  }
550  }
551  fc.validateResults(navOut, __LINE__, 2, 1, 0, 0, 1);
552  TURETURN();
553 }
554 
555 
558 {
559  TUDEF("PNBGLOFNavDataFactory", "processTimeUT1");
560  GLOFactoryCounter fc(testFramework);
562  gnsstk::NavMessageID nmidExp(
568  gnsstk::NavDataPtrList navOut;
570  // processTimeUT1 requires the reference time from string 5 and
571  // NT from string 4 (the contents of which are verified in processEph)
572  TUCSM("processEph");
573  TUASSERTE(bool, true, uut.processEph(4, navFNAVGLOStr4, navOut));
574  fc.validateResults(navOut, __LINE__, 1, 0, 0, 0, 0, 0, 1);
575  TUCSM("processTime");
576  TUASSERTE(bool, true, uut.processTime(navFNAVGLOStr5, navOut));
577  fc.validateResults(navOut, __LINE__, 2, 0, 0, 1, 1);
578  TUCSM("processTimeUT1");
579  TUASSERTE(bool, true, uut.processTimeUT1(navFNAVGLOStr14, navOut));
580  for (const auto& i : navOut)
581  {
582  if ((to = dynamic_cast<gnsstk::GLOFNavUT1TimeOffset*>(i.get()))
583  != nullptr)
584  {
585  // NavData fields
588  TUASSERTE(gnsstk::NavMessageID, nmidExp, to->signal);
589  // TimeOffsetData has no data of its own
590  // GLOFNavUT1TimeOffset fields
591  TUASSERTFE(-8.3819031715393066406e-09, to->tauc);
592  TUASSERTFE(-0.6728515625, to->B1);
593  TUASSERTFE(-0.0006561279296875, to->B2);
594  TUASSERTE(unsigned, 1, to->KP);
595  TUASSERTE(unsigned, 1274, to->NT);
596  TUASSERTE(unsigned, 1274, to->NA);
597  }
598  }
599  // UT1 time offset is in a different class so FactoryCounter
600  // calls it "other"
601  fc.validateResults(navOut, __LINE__, 1, 0, 0, 0, 0, 0, 0, 1);
602  TURETURN();
603 }
604 
605 
608 {
609  TUDEF("PNBGLOFNavDataFactory", "getFrameNum");
612  t2(gnsstk::CivilTime(2015,6,27,0,40,40,gnsstk::TimeSystem::GLO)),
613  t3(gnsstk::CivilTime(2015,6,27,0,41,10,gnsstk::TimeSystem::GLO)),
614  t4(gnsstk::CivilTime(2015,6,27,0,41,40,gnsstk::TimeSystem::GLO));
615  TUASSERTE(unsigned, 1, uut.getFrameNum(navFNAVGLOStr1ct));
616  TUASSERTE(unsigned, 1, uut.getFrameNum(navFNAVGLOStr2ct));
617  TUASSERTE(unsigned, 1, uut.getFrameNum(navFNAVGLOStr3ct));
618  TUASSERTE(unsigned, 1, uut.getFrameNum(navFNAVGLOStr4ct));
619  TUASSERTE(unsigned, 1, uut.getFrameNum(navFNAVGLOStr5ct));
620  TUASSERTE(unsigned, 1, uut.getFrameNum(navFNAVGLOStr6ct));
621  TUASSERTE(unsigned, 1, uut.getFrameNum(navFNAVGLOStr7ct));
622  TUASSERTE(unsigned, 2, uut.getFrameNum(t2));
623  TUASSERTE(unsigned, 3, uut.getFrameNum(t3));
624  TUASSERTE(unsigned, 4, uut.getFrameNum(t4));
625  TUASSERTE(unsigned, 5, uut.getFrameNum(navFNAVGLOStr14ct));
626  TURETURN();
627 }
628 
629 
630 int main()
631 {
632  PNBGLOFNavDataFactory_T testClass;
633  unsigned errorTotal = 0;
634 
635  errorTotal += testClass.addDataAllTest();
636  errorTotal += testClass.addDataAlmanacTest();
637  errorTotal += testClass.addDataEphemerisTest();
638  errorTotal += testClass.addDataHealthTest();
639  errorTotal += testClass.addDataTimeTest();
640  errorTotal += testClass.addDataEphHealthTest();
641  errorTotal += testClass.addDataAlmHealthTest();
642  errorTotal += testClass.processEphTest();
643  errorTotal += testClass.processAlmTest();
644  errorTotal += testClass.processTimeUT1Test();
645  errorTotal += testClass.getFrameNumTest();
646 
647  std::cout << "Total Failures for " << __FILE__ << ": " << errorTotal
648  << std::endl;
649 
650  return errorTotal;
651 }
gnsstk::NavMessageType::ISC
@ ISC
Inter-signal corrections.
PNBGLOFNavDataFactory_T::addDataEphHealthTest
unsigned addDataEphHealthTest()
One additional combo test.
Definition: PNBGLOFNavDataFactory_T.cpp:277
TUCSM
#define TUCSM(METHOD)
Definition: TestUtil.hpp:59
YDSTime.hpp
gnsstk::GLOFNavAlm::deltaTnA
double deltaTnA
Correction to mean value of Draconian period (Delta T_n^A).
Definition: GLOFNavAlm.hpp:285
gnsstk::NavMessageID
Class used to identify/categorize navigation message data.
Definition: NavMessageID.hpp:52
gnsstk::StdNavTimeOffset::deltatLSF
double deltatLSF
Current or future leap second count (UTC only).
Definition: StdNavTimeOffset.hpp:135
gnsstk::GLOFNavEph::xmit3
CommonTime xmit3
Transmit time for string 3.
Definition: GLOFNavEph.hpp:113
gnsstk::PackedNavBitsPtr
std::shared_ptr< PackedNavBits > PackedNavBitsPtr
Managed pointer for passing PackedNavBits around.
Definition: PackedNavBits.hpp:66
navFNAVGLOStr5ct
gnsstk::CommonTime navFNAVGLOStr5ct
Definition: GLOFNavTestDataDecl.hpp:55
gnsstk::CarrierBand::G1
@ G1
GLONASS G1.
PNBGLOFNavDataFactory_T::addDataAlmHealthTest
unsigned addDataAlmHealthTest()
Another combo test that makes sure alm health is processed correctly.
Definition: PNBGLOFNavDataFactory_T.cpp:305
TUCATCH
#define TUCATCH(STATEMENT)
Definition: TestUtil.hpp:193
gnsstk::GLOFNavEph
Definition: GLOFNavEph.hpp:51
gnsstk::PNBNavDataFactory::setTypeFilter
virtual void setTypeFilter(const NavMessageTypeSet &nmts)
Definition: PNBNavDataFactory.cpp:54
gnsstk::GLOFNavData::health
SVHealth health
SV health status.
Definition: GLOFNavData.hpp:71
navFNAVGLOStr2ct
gnsstk::CommonTime navFNAVGLOStr2ct
Definition: GLOFNavTestDataDecl.hpp:52
gnsstk::YDSTime
Definition: YDSTime.hpp:58
gnsstk::StdNavTimeOffset::src
TimeSystem src
Source time system.
Definition: StdNavTimeOffset.hpp:120
gnsstk::GLOFNavAlm::lambdanA
double lambdanA
Longitude of ascending node (lambda_n^A).
Definition: GLOFNavAlm.hpp:280
gnsstk::GLOFNavData::slot
unsigned slot
Slot number (n).
Definition: GLOFNavData.hpp:69
PNBGLOFNavDataFactory_T::processEphTest
unsigned processEphTest()
Test processEph method.
Definition: PNBGLOFNavDataFactory_T.cpp:333
TUASSERTE
#define TUASSERTE(TYPE, EXP, GOT)
Definition: TestUtil.hpp:81
gnsstk::GLOFNavUT1TimeOffset::B1
double B1
Time bias in seconds.
Definition: GLOFNavUT1TimeOffset.hpp:104
gnsstk::NavMessageID::messageType
NavMessageType messageType
Definition: NavMessageID.hpp:97
navFNAVGLOStr2
gnsstk::PackedNavBitsPtr navFNAVGLOStr2
Definition: GLOFNavTestDataDecl.hpp:44
gnsstk::GLOFNavUT1TimeOffset
Definition: GLOFNavUT1TimeOffset.hpp:59
gnsstk::NavSatelliteID
Definition: NavSatelliteID.hpp:57
gnsstk::GLOFNavUT1TimeOffset::KP
unsigned KP
Leap second indicator.
Definition: GLOFNavUT1TimeOffset.hpp:106
gnsstk::GLOFNavEph::Toe
CommonTime Toe
Definition: GLOFNavEph.hpp:132
gnsstk::GLOFNavAlm::Toa
CommonTime Toa
Reference time for almanac.
Definition: GLOFNavAlm.hpp:275
gnsstk::StdNavTimeOffset::tgt
TimeSystem tgt
Target time system.
Definition: StdNavTimeOffset.hpp:121
PNBGLOFNavDataFactory_T::getFrameNumTest
unsigned getFrameNumTest()
Test getFrameNum method.
Definition: PNBGLOFNavDataFactory_T.cpp:607
gnsstk::GLOFNavUT1TimeOffset::B2
double B2
Time drift in s/s.
Definition: GLOFNavUT1TimeOffset.hpp:105
gnsstk::GLOFNavEph::dayCount
unsigned dayCount
Days since Jan 1 of most recent leap year (N_T).
Definition: GLOFNavEph.hpp:131
gnsstk::SatID
Definition: SatID.hpp:89
gnsstk::GLOFNavEph::pos
Triple pos
Satellite position at tb in km.
Definition: GLOFNavEph.hpp:115
gnsstk::NavMessageType::Health
@ Health
SV health status information message.
gnsstk::NavFit::endFit
CommonTime endFit
Time at end of fit interval.
Definition: NavFit.hpp:55
gnsstk::NavDataPtrList
std::list< NavDataPtr > NavDataPtrList
Definition: NavData.hpp:75
gnsstk::GLOFNavAlm::eccnA
double eccnA
Eccentricity (epsilon_n^A).
Definition: GLOFNavAlm.hpp:282
gnsstk::StringUtils::asString
std::string asString(IonexStoreStrategy e)
Convert a IonexStoreStrategy to a whitespace-free string name.
Definition: IonexStoreStrategy.cpp:46
navFNAVGLOStr6
gnsstk::PackedNavBitsPtr navFNAVGLOStr6
Definition: GLOFNavTestDataDecl.hpp:48
gnsstk::CommonTime::setTimeSystem
CommonTime & setTimeSystem(TimeSystem timeSystem)
Definition: CommonTime.hpp:195
gnsstk::GLOFNavHealth::Cn
ValidType< bool > Cn
The C_n health bit in strings 6,8,10,12,14.
Definition: GLOFNavHealth.hpp:82
gnsstk::StdNavTimeOffset::deltatLS
double deltatLS
Current or past leap second count (UTC only).
Definition: StdNavTimeOffset.hpp:125
gnsstk::NavType::GloCivilF
@ GloCivilF
FactoryCounter::validateResults
void validateResults(gnsstk::NavDataPtrList &navOut, unsigned lineNo, size_t totalExp=0, unsigned almExp=0, unsigned ephExp=0, unsigned toExp=0, unsigned heaExp=0, unsigned ionoExp=0, unsigned iscExp=0, unsigned otherExp=0)
Definition: FactoryCounter.hpp:144
gnsstk::StdNavTimeOffset::wnot
unsigned wnot
Time data reference week number (storage only).
Definition: StdNavTimeOffset.hpp:129
gnsstk::SVHealth
SVHealth
Identify different types of SV health states.
Definition: SVHealth.hpp:52
gnsstk::GLOFNavISC
Definition: GLOFNavISC.hpp:53
gnsstk::GLOFNavEph::opStatus
GLOFNavPCode opStatus
Operational status flag.
Definition: GLOFNavEph.hpp:127
gnsstk::NavData::signal
NavMessageID signal
Source signal identification for this navigation message data.
Definition: NavData.hpp:175
gnsstk::StdNavTimeOffset::dnSun
unsigned dnSun
dn value for Sunday.
Definition: StdNavTimeOffset.hpp:136
gnsstk::GLOFNavEph::xmit4
CommonTime xmit4
Transmit time for string 4.
Definition: GLOFNavEph.hpp:114
gnsstk::GLOFNavHealth
Definition: GLOFNavHealth.hpp:52
gnsstk::StdNavTimeOffset::wnLSF
unsigned wnLSF
Leap second reference week number (UTC only).
Definition: StdNavTimeOffset.hpp:133
GLOFNavTimeOffset.hpp
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::NavType::GPSLNAV
@ GPSLNAV
gnsstk::StdNavTimeOffset::a1
double a1
Drift coefficient of source time scale.
Definition: StdNavTimeOffset.hpp:123
gnsstk::InterSigCorr::isc
double isc
Definition: InterSigCorr.hpp:171
gnsstk::TrackingCode::Standard
@ Standard
Legacy Glonass civil signal.
gnsstk::GLOFNavAlm::omeganA
double omeganA
Argument of perigee (omega_n^A).
Definition: GLOFNavAlm.hpp:283
gnsstk::NavData::timeStamp
CommonTime timeStamp
Definition: NavData.hpp:173
gnsstk::GLOFNavEph::vel
Triple vel
Satellite velocity at tb in km/s.
Definition: GLOFNavEph.hpp:116
PNBGLOFNavDataFactory_T::addDataAlmanacTest
unsigned addDataAlmanacTest()
Test addData with almanac selected only.
Definition: PNBGLOFNavDataFactory_T.cpp:196
gnsstk::StdNavTimeOffset::dn
unsigned dn
Leap second reference day number (UTC only).
Definition: StdNavTimeOffset.hpp:134
gnsstk::PNBGLOFNavDataFactory::processTimeUT1
bool processTimeUT1(const PackedNavBitsPtr &navIn, NavDataPtrList &navOut)
Definition: PNBGLOFNavDataFactory.cpp:565
gnsstk::ObservationType::NavMsg
@ NavMsg
Navigation Message data.
gnsstk::SatelliteSystem::GPS
@ GPS
gnsstk::TrackingCode::CA
@ CA
Legacy GPS civil code.
gnsstk::GLOFNavAlm
Definition: GLOFNavAlm.hpp:53
gnsstk::CommonTime::END_OF_TIME
static const GNSSTK_EXPORT CommonTime END_OF_TIME
latest representable CommonTime
Definition: CommonTime.hpp:104
PNBGLOFNavDataFactory_T::addDataHealthTest
unsigned addDataHealthTest()
Test addData with health data selected only.
Definition: PNBGLOFNavDataFactory_T.cpp:223
gnsstk::GLOFNavEph::tauDelta
double tauDelta
Inter-frequency bias.
Definition: GLOFNavEph.hpp:128
gnsstk::GLOFNavAlm::deltaTdotnA
double deltaTdotnA
Time derivative of deltaT (Delta T'_n^A).
Definition: GLOFNavAlm.hpp:286
FactoryCounter
Definition: FactoryCounter.hpp:75
TestUtil.hpp
gnsstk::GLOFNavUT1TimeOffset::tauc
double tauc
Non-integer correction between UTC(SU) and GLONASS.
Definition: GLOFNavUT1TimeOffset.hpp:103
gnsstk::SVHealth::Healthy
@ Healthy
Satellite is in a healthy and useable state.
navFNAVGLOStr5
gnsstk::PackedNavBitsPtr navFNAVGLOStr5
Definition: GLOFNavTestDataDecl.hpp:47
gnsstk::GLOFNavSatType::GLONASS_M
@ GLONASS_M
GLONASS-M satellite.
PNBGLOFNavDataFactory_T::PNBGLOFNavDataFactory_T
PNBGLOFNavDataFactory_T()
Definition: PNBGLOFNavDataFactory_T.cpp:120
gnsstk::StdNavTimeOffset::a2
double a2
Drift rate coefficient of source time scale.
Definition: StdNavTimeOffset.hpp:124
TURETURN
#define TURETURN()
Definition: TestUtil.hpp:232
navFNAVGLOStr1
gnsstk::PackedNavBitsPtr navFNAVGLOStr1
Definition: GLOFNavTestDataDecl.hpp:43
gnsstk::GLOFNavEph::P4
unsigned P4
Flag 1=ephemeris present/uploaded. 0=nope.
Definition: GLOFNavEph.hpp:125
gnsstk::GLOFNavEph::aod
unsigned aod
Age of data in days (E_n).
Definition: GLOFNavEph.hpp:129
gnsstk::ObsID
Definition: ObsID.hpp:82
gnsstk::GLOFNavAlm::taunA
double taunA
Time offset to GLONASS time (tau_n^A).
Definition: GLOFNavAlm.hpp:279
gnsstk::GLOFNavEph::P1
unsigned P1
Flag for interval between adjacent t_b.
Definition: GLOFNavEph.hpp:122
gnsstk::GLOFNavHealth::healthBits
ValidType< uint8_t > healthBits
The 3-bit B_n value.
Definition: GLOFNavHealth.hpp:80
PNBGLOFNavDataFactory_T::addDataTimeTest
unsigned addDataTimeTest()
Test addData with time offset data selected only.
Definition: PNBGLOFNavDataFactory_T.cpp:250
gnsstk::CommonTime
Definition: CommonTime.hpp:84
gnsstk::ValidType::is_valid
bool is_valid() const
Definition: ValidType.hpp:96
gnsstk::PNBGLOFNavDataFactory::processTime
bool processTime(const PackedNavBitsPtr &navIn, NavDataPtrList &navOut)
Definition: PNBGLOFNavDataFactory.cpp:486
navFNAVGLOStr6ct
gnsstk::CommonTime navFNAVGLOStr6ct
Definition: GLOFNavTestDataDecl.hpp:56
gnsstk::GLOFNavAlm::healthBits
bool healthBits
Health flag (C_n, 1 = operable).
Definition: GLOFNavAlm.hpp:276
gnsstk::GLOFNavPCode::CCalcGPSCalc
@ CCalcGPSCalc
C parameter calculated, GPS parameter calculated.
gnsstk::TimeSystem
TimeSystem
Definition of various time systems.
Definition: TimeSystem.hpp:51
gnsstk::NavFit::beginFit
CommonTime beginFit
Time at beginning of fit interval.
Definition: NavFit.hpp:54
gnsstk::CarrierBand::L1
@ L1
GPS L1, Galileo E1, SBAS L1, QZSS L1, BeiDou L1.
gnsstk::GLOFNavData::lhealth
bool lhealth
Health flag? Different from B_n and C_n?
Definition: GLOFNavData.hpp:70
CivilTime.hpp
main
int main()
Definition: PNBGLOFNavDataFactory_T.cpp:630
TUDEF
#define TUDEF(CLASS, METHOD)
Definition: TestUtil.hpp:56
gnsstk::GLOFNavEph::accIndex
unsigned accIndex
User accuracy index (F_T).
Definition: GLOFNavEph.hpp:130
navFNAVGLOStr7
gnsstk::PackedNavBitsPtr navFNAVGLOStr7
Definition: GLOFNavTestDataDecl.hpp:49
gnsstk::TimeSystem::GLO
@ GLO
GLONASS system time (aka UTC(SU))
gnsstk::GLOFNavEph::P2
unsigned P2
Flag of oddness (=1) or evenness (=0) of t_b.
Definition: GLOFNavEph.hpp:123
gnsstk::GLOFNavTimeOffset
Definition: GLOFNavTimeOffset.hpp:53
gnsstk::PNBGLOFNavDataFactory
Definition: PNBGLOFNavDataFactory.hpp:59
gnsstk::GLOFNavData::xmit2
CommonTime xmit2
Transmit time for string 2 (eph) or odd string.
Definition: GLOFNavData.hpp:67
std::operator<<
std::ostream & operator<<(std::ostream &s, gnsstk::StringUtils::FFLead v)
Definition: FormattedDouble_T.cpp:44
navFNAVGLOStr3
gnsstk::PackedNavBitsPtr navFNAVGLOStr3
Definition: GLOFNavTestDataDecl.hpp:45
gnsstk::CivilTime
Definition: CivilTime.hpp:55
gnsstk::NavMessageType::TimeOffset
@ TimeOffset
Message containing information about time system offsets.
gnsstk::GLOFNavEph::ref
CommonTime ref
Reference time (t_k) for this ephemeris.
Definition: GLOFNavEph.hpp:112
gnsstk::GLOFNavUT1TimeOffset::NT
unsigned NT
Ephemeris days since leap year.
Definition: GLOFNavUT1TimeOffset.hpp:107
GLOFNavTestDataDecl.hpp
PNBGLOFNavDataFactory_T::addDataEphemerisTest
unsigned addDataEphemerisTest()
Test addData with ephemeris selected only.
Definition: PNBGLOFNavDataFactory_T.cpp:169
navFNAVGLOStr3ct
gnsstk::CommonTime navFNAVGLOStr3ct
Definition: GLOFNavTestDataDecl.hpp:53
gnsstk::GLOFNavEph::clkBias
double clkBias
Satellite clock bias in sec (tau_n).
Definition: GLOFNavEph.hpp:118
BunkIono::BunkIono
BunkIono()
Definition: PNBGLOFNavDataFactory_T.cpp:58
GLOFNavHealth.hpp
gnsstk::GLOFNavUT1TimeOffset::NA
unsigned NA
Almanac days since leap year.
Definition: GLOFNavUT1TimeOffset.hpp:108
gnsstk::TimeSystem::GPS
@ GPS
GPS system time.
std
Definition: Angle.hpp:142
gnsstk::GLOFNavAlm::freqnA
int freqnA
Frequency offset (H_n^A).
Definition: GLOFNavAlm.hpp:287
gnsstk::GLOFNavEph::interval
unsigned interval
P1 interval (minutes, see PNBGLOFNavDataFactory).
Definition: GLOFNavEph.hpp:126
gnsstk::NavMessageType::Ephemeris
@ Ephemeris
Precision orbits for the transmitting SV.
gnsstk::GLOFNavEph::step
double step
Integration step for Runge-Kutta algorithm (1 second by default)
Definition: GLOFNavEph.hpp:134
navFNAVGLOStr7ct
gnsstk::CommonTime navFNAVGLOStr7ct
Definition: GLOFNavTestDataDecl.hpp:57
FactoryCounter.hpp
GLOFNavEph.hpp
navFNAVGLOStr14ct
gnsstk::CommonTime navFNAVGLOStr14ct
Definition: GLOFNavTestDataDecl.hpp:58
navFNAVGLOStr14
gnsstk::PackedNavBitsPtr navFNAVGLOStr14
Definition: GLOFNavTestDataDecl.hpp:50
navFNAVGLOStr1ct
gnsstk::CommonTime navFNAVGLOStr1ct
Definition: GLOFNavTestDataDecl.hpp:51
gnsstk::GLOFNavEph::P3
unsigned P3
Flag 1=5 almanac sats in frame, 0=4 almanac sats.
Definition: GLOFNavEph.hpp:124
BunkIono
GLONASS doesn't transmit iono data, so make up a class for FactoryCounter.
Definition: PNBGLOFNavDataFactory_T.cpp:55
navFNAVGLOStr4ct
gnsstk::CommonTime navFNAVGLOStr4ct
Definition: GLOFNavTestDataDecl.hpp:54
navFNAVGLOStr4
gnsstk::PackedNavBitsPtr navFNAVGLOStr4
Definition: GLOFNavTestDataDecl.hpp:46
TUASSERTFE
#define TUASSERTFE(EXP, GOT)
Definition: TestUtil.hpp:103
gnsstk::GLOFNavEph::acc
Triple acc
Satellite acceleration at tb in km/s**2.
Definition: GLOFNavEph.hpp:117
gnsstk::GLOFNavData::satType
GLOFNavSatType satType
Satellite type (M_n: GLONASS or GLONASS-M).
Definition: GLOFNavData.hpp:68
gnsstk::PNBGLOFNavDataFactory::processAlm
bool processAlm(unsigned long stringID, const PackedNavBitsPtr &navIn, NavDataPtrList &navOut)
Definition: PNBGLOFNavDataFactory.cpp:331
PNBGLOFNavDataFactory_T
Definition: PNBGLOFNavDataFactory_T.cpp:88
gnsstk::GLOFNavEph::tb
unsigned tb
Epoch index with Moscow day.
Definition: GLOFNavEph.hpp:121
gnsstk::SatelliteSystem::Glonass
@ Glonass
gnsstk::StdNavTimeOffset::a0
double a0
Bias coefficient of source time scale.
Definition: StdNavTimeOffset.hpp:122
gnsstk::GLOFNavEph::healthBits
uint8_t healthBits
The 3-bit B_n value (look at bit 2 not 0 or 1).
Definition: GLOFNavEph.hpp:120
PNBGLOFNavDataFactory_T::processTimeUT1Test
unsigned processTimeUT1Test()
Test processTimeUT1 method.
Definition: PNBGLOFNavDataFactory_T.cpp:557
gnsstk::GLOFNavEph::freqBias
double freqBias
Satellite relative frequency bias (gamma_n).
Definition: GLOFNavEph.hpp:119
GLOFNavUT1TimeOffset.hpp
gnsstk::NavID
Definition: NavID.hpp:61
GLOFNavTestDataDef.hpp
gnsstk::GLOFNavAlm::tLambdanA
double tLambdanA
Time of ascending node crossing (t_lambda_n^A).
Definition: GLOFNavAlm.hpp:284
gnsstk::GLOFNavAlm::deltainA
double deltainA
Correction to mean inclination (Delta i_n^A).
Definition: GLOFNavAlm.hpp:281
GLOFNavISC.hpp
gnsstk::StdNavTimeOffset::effTime
CommonTime effTime
Effectivity time (wnLSF,dn).
Definition: StdNavTimeOffset.hpp:127
GLOFNavAlm.hpp
PNBGLOFNavDataFactory_T::processAlmTest
unsigned processAlmTest()
Test processAlm and processTime method, and implicitly, processAlmOrb.
Definition: PNBGLOFNavDataFactory_T.cpp:439
gnsstk::PNBGLOFNavDataFactory::processEph
bool processEph(unsigned long stringID, const PackedNavBitsPtr &navIn, NavDataPtrList &navOut)
Definition: PNBGLOFNavDataFactory.cpp:144
gnsstk::StdNavTimeOffset::refTime
CommonTime refTime
Reference time for computation.
Definition: StdNavTimeOffset.hpp:126
gnsstk::PNBGLOFNavDataFactory::getFrameNum
unsigned getFrameNum(const CommonTime &xmitTime)
Definition: PNBGLOFNavDataFactory.cpp:592
gnsstk::GLOFNavSatType
GLOFNavSatType
Values for GLONASS FDMA nav message, Word M.
Definition: GLOFNavSatType.hpp:51
TimeString.hpp
gnsstk::PNBGLOFNavDataFactory::addData
bool addData(const PackedNavBitsPtr &navIn, NavDataPtrList &navOut, double cadence=-1) override
Definition: PNBGLOFNavDataFactory.cpp:67
gnsstk::NavMessageType::Almanac
@ Almanac
Low-precision orbits for other than the transmitting SV.
gnsstk::StdNavTimeOffset::tot
double tot
Time data reference time of week (storage only).
Definition: StdNavTimeOffset.hpp:128
PNBGLOFNavDataFactory_T::addDataAllTest
unsigned addDataAllTest()
Definition: PNBGLOFNavDataFactory_T.cpp:127
gnsstk::GLOFNavHealth::ln
ValidType< bool > ln
The l_n health bit in strings 3,5,7,9,11,13,15.
Definition: GLOFNavHealth.hpp:81
gnsstk::GLOFNavPCode
GLOFNavPCode
Definition: GLOFNavPCode.hpp:56
PNBGLOFNavDataFactory.hpp


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