53 supportedSignals.insert(
NavSignalID(SatelliteSystem::GPS,
60 bool SEMNavDataFactory ::
65 return process(filename, cb);
69 bool SEMNavDataFactory ::
70 process(
const std::string& filename,
74 bool processAlm = (procNavTypes.count(NavMessageType::Almanac) > 0);
75 bool processHea = (procNavTypes.count(NavMessageType::Health) > 0);
99 if (!convertToOrbit(
data, alm))
104 if (!convertToHealth(
data, health))
112 case NavValidityType::ValidOnly:
116 case NavValidityType::InvalidOnly:
129 if (alm->validate() == expect)
137 if (health->validate() == expect)
164 catch (std::exception& exc)
167 cerr << exc.
what() << endl;
172 cerr <<
"Unknown exception" << endl;
178 std::string SEMNavDataFactory ::
179 getFactoryFormats()
const
181 if (procNavTypes.empty() ||
182 (procNavTypes.count(NavMessageType::Almanac) > 0) ||
183 (procNavTypes.count(NavMessageType::Health) > 0))
191 bool SEMNavDataFactory ::
196 navOut = std::make_shared<GPSLNavAlm>();
197 gps =
dynamic_cast<GPSLNavAlm*
>(navOut.get());
199 fillNavData(navIn, navOut);
214 SVHealth::Unhealthy);
242 bool SEMNavDataFactory ::
247 healthOut = std::make_shared<GPSLNavHealth>();
250 fillNavData(navIn, healthOut);
259 void SEMNavDataFactory ::
264 navOut->signal.sat =
SatID(navIn.
PRN,SatelliteSystem::GPS);
265 navOut->signal.xmitSat =
SatID(navIn.
PRN,SatelliteSystem::GPS);
269 navOut->signal.nav = NavType::GPSLNAV;