NavLibrary_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 "NavLibrary.hpp"
40 #include "RinexNavDataFactory.hpp"
41 #include "TestUtil.hpp"
42 #include "GPSLNavEph.hpp"
43 #include "GPSLNavHealth.hpp"
44 #include "GPSLNavTimeOffset.hpp"
45 #include "TimeString.hpp"
46 
47 namespace gnsstk
48 {
49  std::ostream& operator<<(std::ostream& s, gnsstk::NavValidityType e)
50  {
51  s << StringUtils::asString(e);
52  return s;
53  }
54 
55  std::ostream& operator<<(std::ostream& s, gnsstk::SVHealth e)
56  {
57  s << StringUtils::asString(e);
58  return s;
59  }
60 
61  std::ostream& operator<<(std::ostream& s,
62  const gnsstk::NavMessageTypeSet& nmts)
63  {
64  s << "{";
65  for (const auto& i : nmts)
66  {
67  s << " " << gnsstk::StringUtils::asString(i);
68  }
69  s << " }";
70  return s;
71  }
72 }
73 
75 class TestClass : public gnsstk::NavLibrary
76 {
77 public:
79  { return factories; }
80 };
81 
82 
85 {
86 public:
88  {
109  }
111  { return navValidity; }
113  { return procNavTypes; }
114  bool addDataSource(const std::string& source) override
115  { return false; }
116  std::string getFactoryFormats() const override
117  { return "BUNK"; }
118 };
119 
121 {
122 public:
124  { return navValidity; }
126  { return procNavTypes; }
127 };
128 
129 
132 {
133 public:
134  NavLibrary_T();
135 
138  unsigned getXvtTest();
139  unsigned getHealthTest();
140  unsigned getOffsetTest();
141  unsigned findTest();
144  unsigned setValidityFilterTest();
147  unsigned setTypeFilterTest();
150  unsigned addTypeFilterTest();
153  unsigned addFactoryTest();
155  unsigned getTimeTest();
156  unsigned getAvailableSatsTest();
157  unsigned isPresentTest();
158  unsigned getIonoCorrTest();
159  unsigned getISCTest();
160 
163 };
164 
165 
168  : civ(2015,7,19,2,0,0.0,gnsstk::TimeSystem::GPS),
169  ct(civ)
170 {
171 }
172 
173 
174 unsigned NavLibrary_T ::
176 {
177  TUDEF("NavLibrary", "getXvt");
178  gnsstk::Xvt xvt;
179  gnsstk::NavLibrary navLib;
181  ndfp(std::make_shared<RinexTestFactory>());
182  std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
183  "arlm2000.15n";
184  TUCATCH(navLib.addFactory(ndfp));
185  RinexTestFactory *rndfp =
186  dynamic_cast<RinexTestFactory*>(ndfp.get());
187  TUASSERT(rndfp->addDataSource(fname));
191  TUASSERT(navLib.getXvt(sat, ct+35, xvt, gnsstk::SVHealth::Any));
192  // TUASSERTE is not good for this check as we're testing a bunch
193  // of floating point numbers, so we use TUSSERTFE instead for
194  // each field.
195  // @note These were checked against results provided by wheresat
196  // while it was still using OrbElemStore.
197  TUASSERTFE( 9345531.5274733770639, xvt.x[0]);
198  TUASSERTFE(-12408177.088141856715, xvt.x[1]);
199  TUASSERTFE( 21486320.848036296666, xvt.x[2]);
200  TUASSERTFE(2081.276961058104007, xvt.v[0]);
201  TUASSERTFE(1792.4445008638492709, xvt.v[1]);
202  TUASSERTFE( 148.29209115082824155, xvt.v[2]);
203  TUASSERTFE(-0.00021641018042870913346, xvt.clkbias);
204  TUASSERTFE(4.3200998334200003381e-12, xvt.clkdrift);
205  TUASSERTFE(-8.8197758101551758427e-09, xvt.relcorr);
206 
208  TURETURN();
209 }
210 
211 
212 unsigned NavLibrary_T ::
214 {
215  TUDEF("NavLibrary", "getHealth");
216  gnsstk::SVHealth health;
217  gnsstk::NavLibrary navLib;
219  ndfp(std::make_shared<RinexTestFactory>());
220  std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
221  "arlm2000.15n";
222  TUCATCH(navLib.addFactory(ndfp));
223  RinexTestFactory *rndfp = dynamic_cast<RinexTestFactory*>(ndfp.get());
224  TUASSERT(rndfp->addDataSource(fname));
228  // shouldn't have data at this time
229  TUASSERT(!navLib.getHealth(sat, ct+35, health, gnsstk::SVHealth::Any));
230  // shouldn't have data at this time, either
231  // Remember that the first line of a RINEX 2 nav like we use in
232  // this test is the Toc, NOT the transmit time.
233  gnsstk::CivilTime civ2(2015,7,19,12,35,35.0,gnsstk::TimeSystem::GPS);
234  TUASSERT(!navLib.getHealth(sat, civ2, health, gnsstk::SVHealth::Any));
235  // should have data at this time, and it should be unhealthy
236  gnsstk::CivilTime civ3(2015,7,19,12,35,36.0,gnsstk::TimeSystem::GPS);
237  TUASSERT(navLib.getHealth(sat, civ3, health, gnsstk::SVHealth::Any));
239  // should have this data and healthy
243  gnsstk::CivilTime civ4(2015,7,19,2,0,0.0,gnsstk::TimeSystem::GPS);
244  TUASSERT(navLib.getHealth(sat4, civ4, health, gnsstk::SVHealth::Any));
246  TURETURN();
247 }
248 
249 
250 unsigned NavLibrary_T ::
252 {
253  TUDEF("NavLibrary", "getOffset");
254  gnsstk::NavLibrary navLib;
255  gnsstk::NavDataFactoryPtr ndfp(std::make_shared<TestFactory>());
256  TestFactory *fact1 = dynamic_cast<TestFactory*>(ndfp.get());
257  gnsstk::NavDataPtr navOut = std::make_shared<gnsstk::GPSLNavTimeOffset>();
258  navOut->timeStamp = ct;
259  navOut->signal.messageType = gnsstk::NavMessageType::TimeOffset;
261  navOut.get());
263  navOut->signal.obs.band = gnsstk::CarrierBand::L1;
264  navOut->signal.obs.code = gnsstk::TrackingCode::CA;
265  navOut->signal.nav = gnsstk::NavType::GPSLNAV;
266  navOut->signal.sat = gnsstk::SatID(23,gnsstk::SatelliteSystem::GPS);
267  navOut->signal.xmitSat = gnsstk::SatID(32,gnsstk::SatelliteSystem::GPS);
268  toptr->deltatLS = 23; // set a simple, easy to verify value.
269  toptr->refTime = ct;
270  TUASSERT(fact1->addNavData(navOut));
271  TUCATCH(navLib.addFactory(ndfp));
272  double result;
274  ct+35, result, gnsstk::SVHealth::Any,
276  TUASSERTFE(23.0, result);
277  // reverse the conversion and expect negative.
278  gnsstk::CommonTime utc35(ct+35);
281  utc35, result, gnsstk::SVHealth::Any,
283  TUASSERTFE(-23.0, result);
284  // expect this to not work
286  utc35, result, gnsstk::SVHealth::Any,
288  TURETURN();
289 }
290 
291 
292 unsigned NavLibrary_T ::
294 {
295  TUDEF("NavLibrary", "find");
296  gnsstk::NavLibrary navLib;
298  ndfp(std::make_shared<RinexTestFactory>());
299  std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
300  "arlm2000.15n";
301  gnsstk::NavDataPtr ndp;
302  TUCATCH(navLib.addFactory(ndfp));
303  RinexTestFactory *rndfp = dynamic_cast<RinexTestFactory*>(ndfp.get());
304  gnsstk::GPSLNavEph *eph;
305  TUASSERT(rndfp->addDataSource(fname));
311  // shouldn't have data at this time
312  TUASSERT(!navLib.find(nmide, ct+35, ndp, gnsstk::SVHealth::Any,
315  // shouldn't have data at this time, either
316  // Remember that the first line of a RINEX 2 nav like we use in
317  // this test is the Toc, NOT the transmit time.
318  gnsstk::CivilTime civ2(2015,7,19,12,35,35.0,gnsstk::TimeSystem::GPS);
319  TUASSERT(!navLib.find(nmide, civ2, ndp, gnsstk::SVHealth::Any,
322  // should have data at this time
323  gnsstk::CivilTime civ3(2015,7,19,12,35,48.0,gnsstk::TimeSystem::GPS);
324  TUASSERT(navLib.find(nmide, civ3, ndp, gnsstk::SVHealth::Any,
327  eph = dynamic_cast<gnsstk::GPSLNavEph*>(ndp.get());
328  TUASSERT(eph != nullptr);
329  TUASSERTE(uint16_t, 64, eph->iode);
330  // shouldn't have almanac data though
331  TUASSERT(!navLib.find(nmida, civ3, ndp, gnsstk::SVHealth::Any,
334  // should have this data
339  gnsstk::CivilTime civ4(2015,7,19,2,0,0.0,gnsstk::TimeSystem::GPS);
340  TUASSERT(navLib.find(nmide4, civ4, ndp, gnsstk::SVHealth::Any,
343  eph = dynamic_cast<gnsstk::GPSLNavEph*>(ndp.get());
344  TUASSERT(eph != nullptr);
345  TUASSERTE(uint16_t, 7, eph->iode);
346  TURETURN();
347 }
348 
349 
350 unsigned NavLibrary_T ::
352 {
353  TUDEF("NavLibrary", "setValidityFilter");
354  gnsstk::NavLibrary navLib;
355  gnsstk::NavDataFactoryPtr ndfp1(std::make_shared<TestFactory>());
357  ndfp2(std::make_shared<RinexTestFactory>());
358  TUCATCH(navLib.addFactory(ndfp1));
359  TUCATCH(navLib.addFactory(ndfp2));
360  TestFactory *tfp = dynamic_cast<TestFactory*>(ndfp1.get());
361  RinexTestFactory *rndfp =
362  dynamic_cast<RinexTestFactory*>(ndfp2.get());
363  TUASSERT(tfp != nullptr);
364  TUASSERT(rndfp != nullptr);
367  tfp->getValidityFilter());
369  rndfp->getValidityFilter());
372  tfp->getValidityFilter());
374  rndfp->getValidityFilter());
375  TURETURN();
376 }
377 
378 
379 unsigned NavLibrary_T ::
381 {
382  TUDEF("NavLibrary", "setTypeFilter");
383  gnsstk::NavLibrary navLib;
384  gnsstk::NavDataFactoryPtr ndfp1(std::make_shared<TestFactory>());
386  ndfp2(std::make_shared<RinexTestFactory>());
387  TUCATCH(navLib.addFactory(ndfp1));
388  TUCATCH(navLib.addFactory(ndfp2));
389  TestFactory *tfp = dynamic_cast<TestFactory*>(ndfp1.get());
390  RinexTestFactory *rndfp =
391  dynamic_cast<RinexTestFactory*>(ndfp2.get());
392  TUASSERT(tfp != nullptr);
393  TUASSERT(rndfp != nullptr);
396  navLib.setTypeFilter(nmts1);
399  navLib.setTypeFilter(nmts2);
404  tfp->getTypeFilter());
406  rndfp->getTypeFilter());
407  TURETURN();
408 }
409 
410 
411 unsigned NavLibrary_T ::
413 {
414  TUDEF("NavLibrary", "clearTypeFilter");
415  gnsstk::NavLibrary navLib;
416  gnsstk::NavDataFactoryPtr ndfp1(std::make_shared<TestFactory>());
418  ndfp2(std::make_shared<RinexTestFactory>());
419  TUCATCH(navLib.addFactory(ndfp1));
420  TUCATCH(navLib.addFactory(ndfp2));
421  TestFactory *tfp = dynamic_cast<TestFactory*>(ndfp1.get());
422  RinexTestFactory *rndfp =
423  dynamic_cast<RinexTestFactory*>(ndfp2.get());
424  TUASSERT(tfp != nullptr);
425  TUASSERT(rndfp != nullptr);
428  TUCATCH(navLib.clearTypeFilter());
429  TUASSERT(tfp->getTypeFilter().empty());
430  TUASSERT(rndfp->getTypeFilter().empty());
431  TUCSM("addTypeFilter");
435  TUCATCH(navLib.clearTypeFilter());
439  // Set type type filter back to all so that other tests work.
442  tfp->getTypeFilter());
444  rndfp->getTypeFilter());
445  TURETURN();
446 }
447 
448 
449 unsigned NavLibrary_T ::
451 {
452  TUDEF("NavLibrary", "addFactory");
453  TestClass navLib;
454  gnsstk::NavDataFactoryPtr ndfp1(std::make_shared<TestFactory>());
456  ndfp2(std::make_shared<RinexTestFactory>());
457  TUCATCH(navLib.addFactory(ndfp1));
458  TUCATCH(navLib.addFactory(ndfp2));
459  TestFactory *tfp = dynamic_cast<TestFactory*>(ndfp1.get());
460  RinexTestFactory *rndfp =
461  dynamic_cast<RinexTestFactory*>(ndfp2.get());
462  TUASSERT(tfp != nullptr);
463  TUASSERT(rndfp != nullptr);
465  // make sure the factories map has the same number of items
466  size_t expTotal = tfp->supportedSignals.size() +
467  rndfp->supportedSignals.size();
468  TUASSERTE(size_t, expTotal, fm.size());
469  // make sure the map has the same set of signals
470  gnsstk::NavSignalSet allSignals;
471  std::set_union(tfp->supportedSignals.begin(), tfp->supportedSignals.end(),
472  rndfp->supportedSignals.begin(),rndfp->supportedSignals.end(),
473  std::inserter(allSignals, allSignals.end()));
474  for (const auto& fi : fm)
475  {
476  TUASSERTE(size_t, 1, allSignals.count(fi.first));
477  }
478 
479  TURETURN();
480 }
481 
482 
483 unsigned NavLibrary_T ::
485 {
486  TUDEF("NavLibrary", "getInitialTime");
487  gnsstk::NavLibrary navLib;
489  ndfp(std::make_shared<RinexTestFactory>());
490  std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
491  "arlm2000.15n";
492  TUCATCH(navLib.addFactory(ndfp));
493  RinexTestFactory *rndfp =
494  dynamic_cast<RinexTestFactory*>(ndfp.get());
495  TUASSERT(rndfp->addDataSource(fname));
497  gnsstk::CivilTime(2015,7,19,0,0,0.0,
498  gnsstk::TimeSystem::GPS).convertToCommonTime(),
499  navLib.getInitialTime());
501  gnsstk::CivilTime(2015,7,20,2,0,0.0,
502  gnsstk::TimeSystem::GPS).convertToCommonTime(),
503  navLib.getFinalTime());
504  TURETURN();
505 }
506 
507 
508 unsigned NavLibrary_T ::
510 {
511  TUDEF("NavLibrary", "getAvailableSats");
512  gnsstk::NavLibrary uut;
514  ndfp(std::make_shared<RinexTestFactory>());
515  std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
516  "arlm2000.15n";
518  TUCATCH(uut.addFactory(ndfp));
519  RinexTestFactory *rndfp = dynamic_cast<RinexTestFactory*>(ndfp.get());
520  TUASSERT(rndfp->addDataSource(fname));
521  // really basic tests, the real tests are in NavDataFactoryWithStore_T etc
522  TUCATCH(satset = uut.getAvailableSats(
525  // We're loading RINEX, so the 33rd "satellite" is really a
526  // dummy value because RINEX gives no signal source for any of
527  // the time offset data it contains.
528  TUASSERTE(gnsstk::NavSatelliteIDSet::size_type, 33, satset.size());
529  TUCATCH(satset = uut.getAvailableSats(
530  gnsstk::CivilTime(2020,4,12,0,56,0,gnsstk::TimeSystem::GPS),
531  gnsstk::CivilTime(2020,4,12,0,57,0,gnsstk::TimeSystem::GPS)));
532  TUASSERTE(bool, true, satset.empty());
533  TURETURN();
534 }
535 
536 
537 unsigned NavLibrary_T ::
539 {
540  TUDEF("NavLibrary", "isPresent");
541  gnsstk::NavLibrary uut;
543  ndfp(std::make_shared<RinexTestFactory>());
544  std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
545  "arlm2000.15n";
546  // really basic tests, the real tests are in NavDataFactoryWithStore_T etc
547  TUCATCH(uut.addFactory(ndfp));
548  RinexTestFactory *rndfp = dynamic_cast<RinexTestFactory*>(ndfp.get());
549  TUASSERT(rndfp->addDataSource(fname));
552  nmid1a(sat1, gnsstk::NavMessageType::Almanac);
553  gnsstk::CivilTime t1(2015,7,19,10,0,0,gnsstk::TimeSystem::GPS);
554  gnsstk::CivilTime t2(2015,7,19,11,0,0,gnsstk::TimeSystem::GPS);
555  // uut.dump(std::cerr, gnsstk::DumpDetail::Brief);
556  TUASSERTE(bool, true, uut.isPresent(nmid1e, t1, t2));
557  TUASSERTE(bool, false, uut.isPresent(nmid1a, t1, t2));
558  TUCSM("isTypePresent");
559  TUASSERTE(bool, true, uut.isTypePresent(
560  gnsstk::NavMessageType::Ephemeris, sat1, t1, t2));
561  TUASSERTE(bool, false, uut.isTypePresent(
562  gnsstk::NavMessageType::Almanac, sat1, t1, t2));
563  TURETURN();
564 }
565 
566 
567 unsigned NavLibrary_T ::
569 {
570  TUDEF("NavLibrary", "getIonoCorr");
571  gnsstk::NavLibrary uut;
573  ndfp(std::make_shared<RinexTestFactory>());
574  std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
575  "arlm2000.15n";
576  gnsstk::CommonTime when = gnsstk::CivilTime(2015,7,19,10,0,0,
578  gnsstk::Position rx, sv;
579  static const double expCorr = 2.3429392704808575942;
580  static const double corrEps = 1e-12; // 1 picometer ought to be adequate.
581  double corr = 0.0;
582  rx.setECEF( -1575232.0141, -4707872.2332, 3993198.4383);
583  sv.setECEF(-22188225.701295968145, -12374229.731898581609,
584  8029748.4487511720508);
585  TUCATCH(uut.addFactory(ndfp));
586  RinexTestFactory *rndfp = dynamic_cast<RinexTestFactory*>(ndfp.get());
587  TUASSERT(rndfp->addDataSource(fname));
588  // test both entry points and make sure they yield the same
589  // (w/in 1 picometer) results.
590  TUASSERTE(bool, true, uut.getIonoCorr(
593  TUASSERTFEPS(expCorr, corr, corrEps);
594  corr = 0.0;
595  TUASSERTE(bool, true, uut.getIonoCorr(
596  gnsstk::SatelliteSystem::GPS, when, rx, sv,
598  TUASSERTFEPS(expCorr, corr, corrEps);
599  TURETURN();
600 }
601 
602 
603 unsigned NavLibrary_T ::
605 {
606  TUDEF("NavLibrary", "getISC");
607  gnsstk::NavLibrary uut;
609  ndfp(std::make_shared<RinexTestFactory>());
610  std::string fname = gnsstk::getPathData() + gnsstk::getFileSep() +
611  "arlm2000.15n";
613  const gnsstk::CommonTime when = gnsstk::CivilTime(2015,7,19,10,0,0,
621  static const double expCorr = -8.4361009713756425465e-09;
622  double corr = 0.0;
623  TUCATCH(uut.addFactory(ndfp));
624  RinexTestFactory *rndfp = dynamic_cast<RinexTestFactory*>(ndfp.get());
625  TUASSERT(rndfp->addDataSource(fname));
626  TUASSERTE(bool, true, uut.getISC(sat, oid, when, corr));
627  TUASSERTFE(expCorr, corr);
628  // check wonky obs ID
629  TUASSERTE(bool, false, uut.getISC(sat, woid1, when, corr));
630  TURETURN();
631 }
632 
633 
634 int main()
635 {
636  NavLibrary_T testClass;
637  unsigned errorTotal = 0;
638 
639  errorTotal += testClass.getXvtTest();
640  errorTotal += testClass.getHealthTest();
641  errorTotal += testClass.getOffsetTest();
642  errorTotal += testClass.findTest();
643  errorTotal += testClass.setValidityFilterTest();
644  errorTotal += testClass.setTypeFilterTest();
645  errorTotal += testClass.addTypeFilterTest();
646  errorTotal += testClass.addFactoryTest();
647  errorTotal += testClass.getTimeTest();
648  errorTotal += testClass.getAvailableSatsTest();
649  errorTotal += testClass.isPresentTest();
650  errorTotal += testClass.getIonoCorrTest();
651  errorTotal += testClass.getISCTest();
653  std::cout << "Total Failures for " << __FILE__ << ": " << errorTotal
654  << std::endl;
655 
656  return errorTotal;
657 }
gnsstk::NavDataPtr
std::shared_ptr< NavData > NavDataPtr
Factories instantiate these in response to find() requests.
Definition: NavData.hpp:62
gnsstk::NavDataFactoryWithStore::addNavData
bool addNavData(const NavDataPtr &nd)
Definition: NavDataFactoryWithStore.hpp:149
gnsstk::NavMessageTypeSet
std::set< NavMessageType > NavMessageTypeSet
Set of message types, used by NavLibrary and NavDataFactory.
Definition: NavMessageType.hpp:76
TestClass::getFactories
gnsstk::NavDataFactoryMap & getFactories()
Definition: NavLibrary_T.cpp:78
TUCSM
#define TUCSM(METHOD)
Definition: TestUtil.hpp:59
gnsstk::NavMessageID
Class used to identify/categorize navigation message data.
Definition: NavMessageID.hpp:52
NavLibrary_T::NavLibrary_T
NavLibrary_T()
Definition: NavLibrary_T.cpp:167
TestFactory::getValidityFilter
gnsstk::NavValidityType getValidityFilter() const
Definition: NavLibrary_T.cpp:110
main
int main()
Definition: NavLibrary_T.cpp:634
TestFactory::addDataSource
bool addDataSource(const std::string &source) override
Definition: NavLibrary_T.cpp:114
TestFactory
Expose NavDataFactory protected members.
Definition: MultiFormatNavDataFactory_T.cpp:112
TUCATCH
#define TUCATCH(STATEMENT)
Definition: TestUtil.hpp:193
gnsstk::NavLibrary::setValidityFilter
void setValidityFilter(NavValidityType nvt)
Definition: NavLibrary.cpp:426
gnsstk::TrackingCode::L1CP
@ L1CP
Modernized GPS L1C civil code tracking (pilot)
NavLibrary_T::addTypeFilterTest
unsigned addTypeFilterTest()
Definition: NavLibrary_T.cpp:412
gnsstk::TrackingCode::L2CL
@ L2CL
Modernized GPS L2 civil L code.
NavLibrary_T::getHealthTest
unsigned getHealthTest()
Definition: NavLibrary_T.cpp:213
RinexTestFactory::getValidityFilter
gnsstk::NavValidityType getValidityFilter() const
Definition: NavLibrary_T.cpp:123
gnsstk::NavLibrary::isTypePresent
bool isTypePresent(NavMessageType nmt, const NavSatelliteID &satID, const CommonTime &fromTime, const CommonTime &toTime)
Definition: NavLibrary.hpp:1433
gnsstk::ObservationType::Phase
@ Phase
accumulated phase, in cycles
gnsstk::Xvt::Healthy
@ Healthy
Satellite is healthy, PVT valid.
Definition: Xvt.hpp:96
TUASSERTE
#define TUASSERTE(TYPE, EXP, GOT)
Definition: TestUtil.hpp:81
NavLibrary_T::setTypeFilterTest
unsigned setTypeFilterTest()
Definition: NavLibrary_T.cpp:380
gnsstk::NavSatelliteID
Definition: NavSatelliteID.hpp:57
NavLibrary_T::addFactoryTest
unsigned addFactoryTest()
Definition: NavLibrary_T.cpp:450
gnsstk::allNavMessageTypes
const GNSSTK_EXPORT NavMessageTypeSet allNavMessageTypes
Definition: NavStatic.cpp:64
gnsstk::TrackingCode::Y
@ Y
Encrypted legacy GPS precise code.
gnsstk::NavSatelliteIDSet
std::set< NavSatelliteID > NavSatelliteIDSet
Definition: NavSatelliteID.hpp:174
RinexTestFactory::getTypeFilter
gnsstk::NavMessageTypeSet getTypeFilter() const
Definition: NavLibrary_T.cpp:125
gnsstk::NavLibrary::getIonoCorr
bool getIonoCorr(SatelliteSystem sys, const CommonTime &when, const Position &rxgeo, const Position &svgeo, CarrierBand band, double &corrOut, NavType nt=NavType::Any)
Definition: NavLibrary.cpp:162
gnsstk::NavLibrary::getXvt
bool getXvt(const NavSatelliteID &sat, const CommonTime &when, Xvt &xvt, bool useAlm, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly, NavSearchOrder order=NavSearchOrder::User)
Definition: NavLibrary.cpp:52
NavLibrary_T::getAvailableSatsTest
unsigned getAvailableSatsTest()
Definition: NavLibrary_T.cpp:509
example5.oid
oid
Definition: example5.py:29
gnsstk::SatID
Definition: SatID.hpp:89
gnsstk::StringUtils::asString
std::string asString(IonexStoreStrategy e)
Convert a IonexStoreStrategy to a whitespace-free string name.
Definition: IonexStoreStrategy.cpp:46
GPSLNavHealth.hpp
TestFactory::getTypeFilter
gnsstk::NavMessageTypeSet getTypeFilter() const
Definition: NavLibrary_T.cpp:112
gnsstk::CommonTime::setTimeSystem
CommonTime & setTimeSystem(TimeSystem timeSystem)
Definition: CommonTime.hpp:195
gnsstk::StdNavTimeOffset::deltatLS
double deltatLS
Current or past leap second count (UTC only).
Definition: StdNavTimeOffset.hpp:125
gnsstk::CommonTime::BEGINNING_OF_TIME
static const GNSSTK_EXPORT CommonTime BEGINNING_OF_TIME
earliest representable CommonTime
Definition: CommonTime.hpp:102
gnsstk::Xvt::v
Triple v
satellite velocity in ECEF Cartesian, meters/second
Definition: Xvt.hpp:152
gnsstk::SVHealth
SVHealth
Identify different types of SV health states.
Definition: SVHealth.hpp:52
gnsstk::NavValidityType
NavValidityType
Definition: NavValidityType.hpp:53
gnsstk::NavData::signal
NavMessageID signal
Source signal identification for this navigation message data.
Definition: NavData.hpp:175
NavLibrary_T::getXvtTest
unsigned getXvtTest()
Definition: NavLibrary_T.cpp:175
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::NavType::GPSLNAV
@ GPSLNAV
NavLibrary_T::findTest
unsigned findTest()
Definition: NavLibrary_T.cpp:293
NavLibrary_T::getISCTest
unsigned getISCTest()
Definition: NavLibrary_T.cpp:604
gnsstk::CarrierBand::L2
@ L2
GPS L2, QZSS L2.
gnsstk::Xvt::relcorr
double relcorr
relativity correction (standard 2R.V/c^2 term), seconds
Definition: Xvt.hpp:155
gnsstk::NavLibrary::getISC
bool getISC(const SatID &sat, const ObsID &oid, const CommonTime &when, double &corrOut, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly, NavSearchOrder order=NavSearchOrder::User)
Definition: NavLibrary.cpp:225
NavLibrary_T
Automated tests for gnsstk::NavLibrary.
Definition: NavLibrary_T.cpp:131
gnsstk::NavDataFactoryPtr
std::shared_ptr< NavDataFactory > NavDataFactoryPtr
Managed pointer to NavDataFactory.
Definition: NavDataFactory.hpp:398
gnsstk::NavLibrary::clearTypeFilter
void clearTypeFilter()
Definition: NavLibrary.cpp:448
gnsstk::NavLibrary::getInitialTime
CommonTime getInitialTime() const
Definition: NavLibrary.cpp:541
gnsstk::SatelliteSystem::GPS
@ GPS
gnsstk::SVHealth::Any
@ Any
Use in searches when you don't care about the SV health.
gnsstk::TrackingCode::CA
@ CA
Legacy GPS civil code.
gnsstk::CommonTime::END_OF_TIME
static const GNSSTK_EXPORT CommonTime END_OF_TIME
latest representable CommonTime
Definition: CommonTime.hpp:104
gnsstk::Position::setECEF
Position & setECEF(const double X, const double Y, const double Z) noexcept
Definition: Position.cpp:601
gnsstk::Xvt::x
Triple x
Sat position ECEF Cartesian (X,Y,Z) meters.
Definition: Xvt.hpp:151
gnsstk::NavSignalID::system
SatelliteSystem system
GNSS for this signal.
Definition: NavSignalID.hpp:94
gnsstk::NavDataFactoryWithStoreFile::addDataSource
bool addDataSource(const std::string &source) override
Definition: NavDataFactoryWithStoreFile.hpp:64
TUASSERT
#define TUASSERT(EXPR)
Definition: TestUtil.hpp:63
gnsstk::NavDataFactoryMap
std::multimap< NavSignalID, NavDataFactoryPtr > NavDataFactoryMap
Map signal to a factory.
Definition: NavDataFactory.hpp:400
TestUtil.hpp
NavLibrary_T::getIonoCorrTest
unsigned getIonoCorrTest()
Definition: NavLibrary_T.cpp:568
gnsstk::NavLibrary::getOffset
bool getOffset(TimeSystem fromSys, TimeSystem toSys, const CommonTime &when, NavDataPtr &navOut, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly)
Definition: NavLibrary.cpp:144
gnsstk::SVHealth::Healthy
@ Healthy
Satellite is in a healthy and useable state.
NavLibrary.hpp
gnsstk::NavMessageType::Unknown
@ Unknown
Message type is not known or is uninitialized.
TURETURN
#define TURETURN()
Definition: TestUtil.hpp:232
gnsstk::NavLibrary
Definition: NavLibrary.hpp:944
gnsstk::NavDataFactory::navValidity
NavValidityType navValidity
Definition: NavDataFactory.hpp:390
gnsstk::NavValidityType::ValidOnly
@ ValidOnly
Only load/find nav messages that pass validity checks.
gnsstk::ObsID
Definition: ObsID.hpp:82
TestFactory::TestFactory
TestFactory()
Definition: NavLibrary_T.cpp:87
RinexTestFactory
Definition: NavLibrary_T.cpp:120
gnsstk::operator<<
std::ostream & operator<<(std::ostream &s, const ObsEpoch &oe) noexcept
Definition: ObsEpochMap.cpp:54
gnsstk::CommonTime
Definition: CommonTime.hpp:84
NavLibrary_T::isPresentTest
unsigned isPresentTest()
Definition: NavLibrary_T.cpp:538
gnsstk::Xvt::clkdrift
double clkdrift
satellite clock drift in seconds/second
Definition: Xvt.hpp:154
NavLibrary_T::setValidityFilterTest
unsigned setValidityFilterTest()
Definition: NavLibrary_T.cpp:351
gnsstk::GPSLNavEph::iode
uint16_t iode
Issue Of Data-Ephemeris.
Definition: GPSLNavEph.hpp:99
NavLibrary_T::getOffsetTest
unsigned getOffsetTest()
Definition: NavLibrary_T.cpp:251
gnsstk::TimeSystem
TimeSystem
Definition of various time systems.
Definition: TimeSystem.hpp:51
TUASSERTFEPS
#define TUASSERTFEPS(EXP, GOT, EPS)
Definition: TestUtil.hpp:126
gnsstk::CarrierBand::L1
@ L1
GPS L1, Galileo E1, SBAS L1, QZSS L1, BeiDou L1.
gnsstk::Xvt
Definition: Xvt.hpp:60
gnsstk::NavValidityType::Any
@ Any
Load/find nav messages regardless of validity checks.
TUDEF
#define TUDEF(CLASS, METHOD)
Definition: TestUtil.hpp:56
gnsstk::TrackingCode::P
@ P
Legacy GPS precise code.
gnsstk::TimeSystem::UTC
@ UTC
Coordinated Universal Time (e.g., from NTP)
gnsstk::NavLibrary::setTypeFilter
void setTypeFilter(const NavMessageTypeSet &nmts)
Definition: NavLibrary.cpp:437
gnsstk::Xvt::HealthStatus
HealthStatus
Definition: Xvt.hpp:87
gnsstk::Xvt::health
HealthStatus health
Health status of satellite at ref time.
Definition: Xvt.hpp:157
gnsstk::CivilTime
Definition: CivilTime.hpp:55
gnsstk::NavMessageType::TimeOffset
@ TimeOffset
Message containing information about time system offsets.
gnsstk::GPSLNavTimeOffset
Definition: GPSLNavTimeOffset.hpp:53
NavLibrary_T::getTimeTest
unsigned getTimeTest()
Test getInitialTime() and getFinalTime()
Definition: NavLibrary_T.cpp:484
gnsstk::NavSignalID
Class used to identify navigation data signal types.
Definition: NavSignalID.hpp:54
TestFactory::getFactoryFormats
std::string getFactoryFormats() const override
Return a comma-separated list of formats supported by this factory.
Definition: NavLibrary_T.cpp:116
gnsstk::NavLibrary::addTypeFilter
void addTypeFilter(NavMessageType nmt)
Definition: NavLibrary.cpp:459
TestClass::getFactories
static std::shared_ptr< gnsstk::NavDataFactoryMap > getFactories()
Definition: GNSSTKFormatInitializer_T.cpp:49
gnsstk::TimeSystem::GPS
@ GPS
GPS system time.
gnsstk::NavLibrary::getHealth
bool getHealth(const NavSatelliteID &sat, const CommonTime &when, SVHealth &healthOut, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly, NavSearchOrder order=NavSearchOrder::User)
Definition: NavLibrary.cpp:112
gnsstk::NavLibrary::getFinalTime
CommonTime getFinalTime() const
Definition: NavLibrary.cpp:555
gnsstk::NavMessageType::Ephemeris
@ Ephemeris
Precision orbits for the transmitting SV.
gnsstk::NavLibrary::addFactory
void addFactory(NavDataFactoryPtr &fact)
Definition: NavLibrary.cpp:470
gnsstk::RinexNavDataFactory
Definition: RinexNavDataFactory.hpp:57
NavLibrary_T::ct
gnsstk::CommonTime ct
Definition: NavLibrary_T.cpp:162
TestClass
Make GroupPathCorrector instantiatable for testing.
Definition: GroupPathCorrector_T.cpp:56
TUASSERTFE
#define TUASSERTFE(EXP, GOT)
Definition: TestUtil.hpp:103
gnsstk::Position
Definition: Position.hpp:136
NavLibrary_T::civ
gnsstk::CivilTime civ
Definition: NavLibrary_T.cpp:161
GPSLNavTimeOffset.hpp
gnsstk::NavLibrary::isPresent
bool isPresent(const NavMessageID &nmid, const CommonTime &fromTime, const CommonTime &toTime)
Definition: NavLibrary.cpp:656
gnsstk::Xvt::clkbias
double clkbias
Sat clock correction in seconds.
Definition: Xvt.hpp:153
gnsstk::NavDataFactory::supportedSignals
NavSignalSet supportedSignals
Definition: NavDataFactory.hpp:379
gnsstk::NavSearchOrder::User
@ User
Return the latest message before the search time.
gnsstk::GPSLNavEph
Class containing data elements unique to GPS LNav ephemerides.
Definition: GPSLNavEph.hpp:51
gnsstk::NavSignalSet
std::set< NavSignalID > NavSignalSet
Set of nav data signal identifiers.
Definition: NavSignalID.hpp:107
GPSLNavEph.hpp
gnsstk::NavLibrary::find
bool find(const NavMessageID &nmid, const CommonTime &when, NavDataPtr &navOut, SVHealth xmitHealth, NavValidityType valid, NavSearchOrder order)
Definition: NavLibrary.cpp:390
gnsstk::NavDataFactory::procNavTypes
NavMessageTypeSet procNavTypes
Definition: NavDataFactory.hpp:394
gnsstk::SVHealth::Unhealthy
@ Unhealthy
Satellite is unhealthy and should not be used.
gnsstk::TimeSystem::BDT
@ BDT
BeiDou system Time.
gnsstk::StdNavTimeOffset::refTime
CommonTime refTime
Reference time for computation.
Definition: StdNavTimeOffset.hpp:126
TimeString.hpp
gnsstk::NavMessageType::Almanac
@ Almanac
Low-precision orbits for other than the transmitting SV.
gnsstk::NavLibrary::getAvailableSats
NavSatelliteIDSet getAvailableSats(const CommonTime &fromTime, const CommonTime &toTime) const
Definition: NavLibrary.cpp:568
RinexNavDataFactory.hpp
gnsstk::NavDataFactoryWithStore
Definition: NavDataFactoryWithStore.hpp:63


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