NavTimeSystemConverter_T.cpp
Go to the documentation of this file.
1 //==============================================================================
2 //
3 // This file is part of GNSSTk, the ARL:UT GNSS Toolkit.
4 //
5 // The GNSSTk is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 3.0 of the License, or
8 // any later version.
9 //
10 // The GNSSTk is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with GNSSTk; if not, write to the Free Software Foundation,
17 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
18 //
19 // This software was developed by Applied Research Laboratories at the
20 // University of Texas at Austin.
21 // Copyright 2004-2022, The Board of Regents of The University of Texas System
22 //
23 //==============================================================================
24 
25 //==============================================================================
26 //
27 // This software was developed by Applied Research Laboratories at the
28 // University of Texas at Austin, under contract to an agency or agencies
29 // within the U.S. Department of Defense. The U.S. Government retains all
30 // rights to use, duplicate, distribute, disclose, or release this software.
31 //
32 // Pursuant to DoD Directive 523024
33 //
34 // DISTRIBUTION STATEMENT A: This software has been approved for public
35 // release, distribution is unlimited.
36 //
37 //==============================================================================
38 
41 #include "GPSLNavTimeOffset.hpp"
42 #include "TestUtil.hpp"
43 #include "CivilTime.hpp"
44 #include <iostream>
45 #include <sstream>
46 #include <cmath>
47 
50 {
51 public:
53  {
74  }
76  { return navValidity; }
78  { return procNavTypes; }
79  bool addDataSource(const std::string& source) override
80  { return false; }
81  std::string getFactoryFormats() const override
82  { return "Test"; }
83 };
84 
85 
87 {
88 public:
90 
91  unsigned getOffsetTest();
92 
95 };
96 
97 
100  : civ(2015,7,19,2,0,0.0,gnsstk::TimeSystem::GPS),
101  ct(civ)
102 {
103 }
104 
105 
108 {
109  TUDEF("NavTimeSystemConverter", "getOffset");
110  std::shared_ptr<gnsstk::NavLibrary> navLib =
111  std::make_shared<gnsstk::NavLibrary>();
112  gnsstk::NavDataFactoryPtr ndfp(std::make_shared<TestFactory>());
113  TestFactory *fact1 = dynamic_cast<TestFactory*>(ndfp.get());
114  gnsstk::NavDataPtr navOut = std::make_shared<gnsstk::GPSLNavTimeOffset>();
115  navOut->timeStamp = ct;
116  navOut->signal.messageType = gnsstk::NavMessageType::TimeOffset;
118  navOut.get());
120  navOut->signal.obs.band = gnsstk::CarrierBand::L1;
121  navOut->signal.obs.code = gnsstk::TrackingCode::CA;
122  navOut->signal.nav = gnsstk::NavType::GPSLNAV;
123  navOut->signal.sat = gnsstk::SatID(23,gnsstk::SatelliteSystem::GPS);
124  navOut->signal.xmitSat = gnsstk::SatID(32,gnsstk::SatelliteSystem::GPS);
125  toptr->deltatLS = 23; // set a simple, easy to verify value.
126  toptr->refTime = ct;
127  TUASSERT(fact1->addNavData(navOut));
128  TUCATCH(navLib->addFactory(ndfp));
130  uut.navLib = navLib;
131  double result = 0;
133  ct+35, result));
134  TUASSERTFE(23.0, result);
135  // reverse the conversion and expect negative.
136  gnsstk::CommonTime utc35(ct+35);
139  utc35, result));
140  TUASSERTFE(-23.0, result);
141  // expect this to not work
143  utc35, result));
144  TURETURN();
145 }
146 
147 
148 int main() //Main function to initialize and run all tests above
149 {
150  NavTimeSystemConverter_T testClass;
151  unsigned errorCounter = 0;
152 
153  errorCounter += testClass.getOffsetTest();
154 
155  std::cout << "Total Failures for " << __FILE__ << ": " << errorCounter
156  << std::endl;
157 
158  return errorCounter; //Return the total number of errors
159 }
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
TestFactory::getValidityFilter
gnsstk::NavValidityType getValidityFilter() const
Definition: NavTimeSystemConverter_T.cpp:75
TestFactory::addDataSource
bool addDataSource(const std::string &source) override
Definition: NavTimeSystemConverter_T.cpp:79
TestFactory
Expose NavDataFactory protected members.
Definition: MultiFormatNavDataFactory_T.cpp:112
TUCATCH
#define TUCATCH(STATEMENT)
Definition: TestUtil.hpp:193
NavTimeSystemConverter_T
Definition: NavTimeSystemConverter_T.cpp:86
NavTimeSystemConverter_T::civ
gnsstk::CivilTime civ
Definition: NavTimeSystemConverter_T.cpp:93
gnsstk::NavTimeSystemConverter
Definition: NavTimeSystemConverter.hpp:87
gnsstk::TrackingCode::Y
@ Y
Encrypted legacy GPS precise code.
gnsstk::SatID
Definition: SatID.hpp:89
TestFactory::getTypeFilter
gnsstk::NavMessageTypeSet getTypeFilter() const
Definition: NavTimeSystemConverter_T.cpp:77
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
NavTimeSystemConverter_T::ct
gnsstk::CommonTime ct
Definition: NavTimeSystemConverter_T.cpp:94
NavTimeSystemConverter_T::getOffsetTest
unsigned getOffsetTest()
Definition: NavTimeSystemConverter_T.cpp:107
gnsstk::NavValidityType
NavValidityType
Definition: NavValidityType.hpp:53
gnsstk::NavData::signal
NavMessageID signal
Source signal identification for this navigation message data.
Definition: NavData.hpp:175
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::NavType::GPSLNAV
@ GPSLNAV
gnsstk::CarrierBand::L2
@ L2
GPS L2, QZSS L2.
gnsstk::NavDataFactoryPtr
std::shared_ptr< NavDataFactory > NavDataFactoryPtr
Managed pointer to NavDataFactory.
Definition: NavDataFactory.hpp:398
main
int main()
Definition: NavTimeSystemConverter_T.cpp:148
gnsstk::SatelliteSystem::GPS
@ GPS
gnsstk::TrackingCode::CA
@ CA
Legacy GPS civil code.
gnsstk::NavSignalID::system
SatelliteSystem system
GNSS for this signal.
Definition: NavSignalID.hpp:94
TUASSERT
#define TUASSERT(EXPR)
Definition: TestUtil.hpp:63
TestUtil.hpp
TURETURN
#define TURETURN()
Definition: TestUtil.hpp:232
gnsstk::NavDataFactory::navValidity
NavValidityType navValidity
Definition: NavDataFactory.hpp:390
TestFactory::TestFactory
TestFactory()
Definition: NavTimeSystemConverter_T.cpp:52
gnsstk::CommonTime
Definition: CommonTime.hpp:84
gnsstk::TimeSystem
TimeSystem
Definition of various time systems.
Definition: TimeSystem.hpp:51
gnsstk::CarrierBand::L1
@ L1
GPS L1, Galileo E1, SBAS L1, QZSS L1, BeiDou L1.
CivilTime.hpp
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::CivilTime
Definition: CivilTime.hpp:55
gnsstk::NavMessageType::TimeOffset
@ TimeOffset
Message containing information about time system offsets.
gnsstk::GPSLNavTimeOffset
Definition: GPSLNavTimeOffset.hpp:53
NavTimeSystemConverter.hpp
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: NavTimeSystemConverter_T.cpp:81
gnsstk::TimeSystem::GPS
@ GPS
GPS system time.
gnsstk::NavTimeSystemConverter::navLib
std::shared_ptr< NavLibrary > navLib
Pointer to the nav library from which we will get time offset data.
Definition: NavTimeSystemConverter.hpp:102
TUASSERTFE
#define TUASSERTFE(EXP, GOT)
Definition: TestUtil.hpp:103
gnsstk::NavTimeSystemConverter::getOffset
bool getOffset(TimeSystem fromSys, TimeSystem toSys, const CommonTime &t, double &offs) override
Definition: NavTimeSystemConverter.cpp:46
GPSLNavTimeOffset.hpp
gnsstk::NavDataFactory::supportedSignals
NavSignalSet supportedSignals
Definition: NavDataFactory.hpp:379
gnsstk::NavDataFactory::procNavTypes
NavMessageTypeSet procNavTypes
Definition: NavDataFactory.hpp:394
NavDataFactoryWithStore.hpp
gnsstk::TimeSystem::BDT
@ BDT
BeiDou system Time.
gnsstk::StdNavTimeOffset::refTime
CommonTime refTime
Reference time for computation.
Definition: StdNavTimeOffset.hpp:126
NavTimeSystemConverter_T::NavTimeSystemConverter_T
NavTimeSystemConverter_T()
Definition: NavTimeSystemConverter_T.cpp:99
gnsstk::NavDataFactoryWithStore
Definition: NavDataFactoryWithStore.hpp:63


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