Go to the documentation of this file.
47 #include "GLOCNavISC.hpp"
48 #include "GLOCNavTimeOffset.hpp"
62 PNBGLOCNavDataFactory ::
63 PNBGLOCNavDataFactory()
75 static bool printed =
false;
77 (navIn->getNumBits() != 300))
79 DEBUGTRACE(
"nope, failed. " << navIn->getNavID().navType <<
" "
80 << navIn->getNumBits());
87 unsigned long msgType = navIn->asUnsignedLong(
90 bool checkMsg =
false, expMsg =
false;
105 unsigned long preamble = navIn->asUnsignedLong(
109 <<
" preamble = " << hex << preamble);
160 catch (std::exception& exc)
163 cerr << exc.
what() << endl;
168 cerr <<
"Unknown exception" << endl;
184 navOut.
xmit = navIn->getTransmitTime();
194 navOut.
P2 = navIn->asBool(
fsbP2);
196 navOut.
A = navIn->asBool(
fsbA);
206 navIn->getobsID(), navIn->getNavID());
211 NavDataPtr p0 = std::make_shared<GLOCNavIono>();
212 p0->timeStamp = navIn->getTransmitTime();
218 navOut.push_back(p0);
223 NavDataPtr p0 = std::make_shared<GLOCNavUT1TimeOffset>();
233 to->
timeStamp = navIn->getTransmitTime();
237 navOut.push_back(p0);
249 navIn->getobsID(), navIn->getNavID());
250 NavDataPtr p0 = std::make_shared<GLOCNavHealth>();
252 p0->timeStamp = navIn->getTransmitTime();
256 navOut.push_back(p0);
269 navIn->getobsID(), navIn->getNavID());
270 if ((stringID < 10) || (stringID > 12))
313 std::vector<PackedNavBitsPtr> &ephS(
ephAcc[key]);
319 (ephS[
str10]->getNumBits() != 300) ||
320 (ephS[
str11]->getNumBits() != 300) ||
321 (ephS[
str12]->getNumBits() != 300) ||
322 (ephS[
str11]->getTransmitTime()-ephS[
str10]->getTransmitTime() != 3)||
323 (ephS[
str12]->getTransmitTime()-ephS[
str11]->getTransmitTime() != 3))
338 DEBUGTRACE(
"Sufficient data for ephemeris. Proceeding");
339 NavDataPtr p0 = std::make_shared<GLOCNavEph>();
426 navOut.push_back(p0);
446 SatID xmitSat(navIn->getsatSys());
449 NavSatelliteID key(0, xmitSat, navIn->getobsID(), navIn->getNavID());
455 NavDataPtr p0 = std::make_shared<GLOCNavAlm>();
474 alm->
tLambda = navIn->asUnsignedDouble(
499 navOut.push_back(p0);
511 DEBUGTRACE(
"tb (string " << stringID <<
") = " << tb);
513 navIn->getobsID(), navIn->getNavID());
573 return N4.is_valid();
std::shared_ptr< NavData > NavDataPtr
Factories instantiate these in response to find() requests.
GLOCSatType Mj
What satellite j is and what it transmits.
GLOCRegime RjT
Regime for generation of clock data.
Class used to identify/categorize navigation message data.
Triple vel
Satellite velocity at tb in km/s.
void resetState() override
std::map< NavSatelliteID, std::vector< PackedNavBitsPtr > > ephAcc
int id
Satellite identifier, e.g. PRN.
std::shared_ptr< PackedNavBits > PackedNavBitsPtr
Managed pointer for passing PackedNavBits around.
GLOCNavHeader header32
Header (incl xmit time) data from string 32.
unsigned epoch
Number of leap years since 1996 (aka N4).
uint8_t PS
Number of strings from this type 10 to the next.
unsigned numSVs
Number of SVs in complete almanac (NS).
GLOCOrbitType orbitType
Orbit type.
Triple acc
Satellite acceleration at tb in km/s**2.
@ asbM
Sat type and signal.
uint8_t EjT
Age of clock (6-hour intervals).
double geoIndex
Geomagnetic activity index value (c_Ap).
const Epoch BEGINNING_OF_TIME(CommonTime::BEGINNING_OF_TIME)
Earliest representable Epoch.
@ asbtau
rough time correction
uint8_t EjE
Age of ephemeris (6-hour intervals).
Triple pos
Satellite position at tb in km.
Class containing data elements unique to GPS LNav ionospheric data.
@ fsbKP
UTC planned corr start bit.
CommonTime Toe
Reference time, combining N4, NT and tb.
double tauDelta
Offset of L3OCP time to L3OCD time.
GLOCRegime RjE
Regime for generation of ephemeris data.
GLOCNavHeader header
Common data.
double B1
Time drift in s/s.
unsigned long tb31
Reference instant in Moscow time for string 31.
double deltaT
Draconic orbital period offset.
std::string what() const
Dump to a string.
double B0
Time bias in seconds.
@ Health
SV health status information message.
std::list< NavDataPtr > NavDataPtrList
Triple apcOffset
L3OC APC offset from center of mass.
CommonTime & setTimeSystem(TimeSystem timeSystem)
double tLambda
Instant in Moscow time when passing lambda.
bool processTim
If true, time offset data will be output by addData.
std::map< NavSatelliteID, std::vector< PackedNavBitsPtr > > almAcc
bool processHealth(const PackedNavBitsPtr &navIn, NavDataPtrList &navOut)
unsigned statusReg
Status register (SRA 5.3.2.7).
NavMessageID signal
Source signal identification for this navigation message data.
unsigned aoa
Age of almanac (EA).
bool processAlm
If true, almanac data will be output by addData.
double freqBias
Satellite relative frequency bias (gamma^j).
bool processLTDMP(unsigned long stringID, const PackedNavBitsPtr &navIn)
GLOCNavHeader header11
Header (incl xmit time) data from string 11.
bool processISC
If true, inter-signal correction data will be output by addData.
@ fscType
page type scale factor
GLOCSatType satType
What satellite j is and what it transmits.
GLOCSatType
Values for Word M in the ephemeris (immediate) and almanac data.
double deltai
Inclination offset from 64.8 degrees (semicirc).
@ Healthy
Satellite is in a healthy and useable state.
double B2
Time drift rate in s/s**2.
double taucdot
Rate of correction for GLONASS to Moscow time.
unsigned long tb32
Reference instant in Moscow time for string 32.
std::map< NavSatelliteID, TimeMeta > timeAcc
unsigned NB
Day since the most recent leap year-aligned 4 years.
@ asbNS
Number of SVs in almanac.
@ fnbType
page type number of bits
bool processEph
If true, ephemeris data will be output by addData.
@ InvalidOnly
Only load/find nav messages that fail validity checks.
double ecc
Eccentricity at tlambdaA.
double clkBias
Satellite clock bias in sec (tau^j).
@ ValidOnly
Only load/find nav messages that pass validity checks.
double tauGPS
Fractional part of offset from GPS to GLONASS time.
double solarIndex
Solar activity index value (c_F10.7).
double peakTECF2
Factor of peak TEC of F2 layer (c_A).
@ Iono
Ionospheric correction data.
SatID sat
ID of satellite to which the nav data applies.
bool processEarth(const PackedNavBitsPtr &navIn, NavDataPtrList &navOut)
double tauc
Correction for GLONASS to Moscow time.
bool addData(const PackedNavBitsPtr &navIn, NavDataPtrList &navOut, double cadence=-1) override
@ fsbPreamble
Preamble start bit.
int8_t FjE
Accuracy factors dependent on ephemeris errors.
@ fsbA
Time corr planned start bit.
double tau
Time correction from L3OCd to GLONASS.
GLOCRegime
Regime for data generation (RjE, RjT, see ICD 5.2.2.8).
GLOCNavHeader header31
Header (incl xmit time) data from string 31.
CommonTime Toa
Reference time for almanac.
@ fsbType
page type start bit
int8_t FjT
Accuracy factors dependent on clock errors.
@ GLO
GLONASS system time (aka UTC(SU))
@ TimeOffset
Message containing information about time system offsets.
uint8_t N4
Number of leap years since 1996.
@ fsbTS
Time Stamp start bit.
bool processHea
If true, health data will be output by addData.
double UTCTAI
Leap seconds - not really used.
@ asbNA
Days from leap year.
bool processHeader(const PackedNavBitsPtr &navIn, GLOCNavHeader &navOut)
@ Ephemeris
Precision orbits for the transmitting SV.
@ fsbHj
SV health start bit.
GLOCNavLTDMP ltdmp
Long-term dynamic model parameters.
double omega
Almanac parameter for argument of perigee (semicirc).
double lambda
Longitude of first ascending node (semicirc).
uint16_t NT
Day within four-year interval N4.
double driftRate
Half rate of relative deviation of carrier freq.
#define DEBUGTRACE_FUNCTION()
double deltaTdot
Draconic orbital period rate.
std::map< NavSatelliteID, GLOCNavLTDMP > ltdmpAcc
unsigned NA
Almanac reference time days since leap year.
@ Unhealthy
Satellite is unhealthy and should not be used.
@ fsblj
data validity start bit
GLOCOrbitType
Values for Word TO in the almanac data.
GLOCNavHeader header12
Header (incl xmit time) data from string 12.
CommonTime refTime
Reference time for computation.
unsigned long tb
Instant in Moscow time this data relates to.
@ Almanac
Low-precision orbits for other than the transmitting SV.
bool processIono
If true, ionospheric data will be output by addData.
NavValidityType navValidity
Determines how the factory should filter added data.
gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:40