#include <EngAlmanac.hpp>
Inheritance diagram for EngAlmanac:


This class encapsulates the almanac navigation message (subframes 4 & 5) and provides functions to decode the as-broadcast almanac. It is possible for an EngAlmanac to not contain a complete set of pages.
Definition at line 63 of file EngAlmanac.hpp.
Public Types | |
| typedef std::map< short, unsigned char, std::less< short > > | SVBitsMap |
| Map PRN to bits (e.g. health bits). | |
Public Member Functions | |
| EngAlmanac () throw () | |
| Default constructor, blank almanac. | |
| virtual | ~EngAlmanac () |
| Destructor. | |
| bool | addSubframe (const long subframe[10], const int gpsWeek) throw (gpstk::InvalidParameter) |
| Store a subframe in this object. | |
| bool | isData (SatID sat) const throw () |
| This function returns true if data is available for a given PRN. | |
| double | getEcc (SatID sat) const throw (SVNotPresentException) |
| This function returns the value of the eccentricity for the given PRN. | |
| double | getIOffset (SatID sat) const throw (SVNotPresentException) |
| This function returns the value of the offset of the inclination from 54 degrees in radians for the given PRN. | |
| double | getOmegadot (SatID sat) const throw (SVNotPresentException) |
| This function returns the value of the rate of the right ascension of the ascending node in radians/second for the given PRN. | |
| short | get6bitHealth (SatID sat) const throw () |
| This function returns the value of the health of the given PRN from the general pages in the almanac. | |
| short | getSVHealth (SatID sat) const throw (SVNotPresentException) |
| This function returns the value of the health of the given PRN from the PRN specific page which might not be present. | |
| double | getAhalf (SatID sat) const throw (SVNotPresentException) |
| This function returns the value of the square root of the semi-major axis in square root of meters for the given PRN. | |
| double | getA (SatID sat) const throw (SVNotPresentException) |
| This function returns the value of the semi-major axis in meters for the specified PRN. | |
| double | getOmega0 (SatID sat) const throw (SVNotPresentException) |
| This function returns the value of the right ascension of the ascending node in radians for the given PRN. | |
| double | getW (SatID sat) const throw (SVNotPresentException) |
| This function returns the value of the argument of perigee in radians for the given PRN. | |
| double | getM0 (SatID sat) const throw (SVNotPresentException) |
| This function returns the value of the mean anomaly in radians for the given PRN. | |
| double | getAf0 (SatID sat) const throw (SVNotPresentException) |
| This function returns the SV clock error in seconds for the given PRN. | |
| double | getAf1 (SatID sat) const throw (SVNotPresentException) |
| This function returns the SV clock drift in seconds/seconds for the given PRN. | |
| double | getToa () const throw () |
| This function returns the value of the time of the almanac (from page 51) in GPS seconds of week. | |
| double | getToa (SatID sat) const throw (SVNotPresentException) |
| This function returns the value of the time of the almanac in GPS seconds of week for the given PRN. | |
| double | getXmitTime (SatID sat) const throw (SVNotPresentException) |
| This function returns the value of the transmit time for this almanac data in seconds of week for the given PRN. | |
| short | getFullWeek (SatID sat) const throw (SVNotPresentException) |
| This function returns the value of the week of the page transmission for the given PRN. | |
| void | getIon (double a[4], double b[4]) const throw (InvalidRequest) |
| Get the ionospheric parameters. | |
| void | getUTC (double &a0, double &a1, double &deltaTLS, long &tot, int &WNt, int &WNLSF, int &DN, double &deltaTLSF) const throw (InvalidRequest) |
| Get the UTC offset parameters. | |
| short | getAlmWeek () const throw () |
| This function gets the week number for the almanac stored in this object. | |
| AlmOrbit | getAlmOrbElem (SatID sat) const throw (SVNotPresentException) |
| This function returns an object containing all of the almanac orbit elements for the given PRN. | |
| AlmOrbits | getAlmOrbElems () const |
| This function returns an object containing all of the almanac orbit elements. | |
| Xvt | svXvt (SatID sat, const DayTime &t) const throw (SVNotPresentException) |
| Compute satellite velocity/position at the given time using this almanac. | |
| Xvt | svXvt (short prn, const DayTime &t) const throw (SVNotPresentException) |
| void | dump (std::ostream &s=std::cout, bool checkFlag=true) const |
| bool | check (std::ostream &s) const |
Protected Member Functions | |
| void | checkSVHere (SatID sat) const throw (SVNotPresentException) |
| This function is used to make sure data is present before accessing it. | |
Protected Attributes | |
| AlmOrbits | almPRN |
| bool | haveUTC |
| double | alpha [4] |
| double | beta [4] |
| double | A0 |
| Bias term of difference polynomial. | |
| double | A1 |
| Drift term of difference polynomial. | |
| double | dt_ls |
| time increment due to leap seconds | |
| double | dt_lsf |
| scheduled future time increment due to leap seconds | |
| long | t_ot |
| reference time | |
| long | t_oa |
| Toa from page id 51 (subframe 5, pg 25). | |
| int | wn_t |
| reference week of current leap second | |
| int | wn_lsf |
| week number of last/next leap second | |
| short | alm_wk |
| GPS Week of the Almanac from the last page of orbital data. | |
| unsigned char | dn |
| reference day # of future leap second | |
| SVBitsMap | health |
| satellite health array | |
| std::string | special_msg |
| Special message from GPS. | |
| SVBitsMap | SV_config |
| 4 bit anti-spoofing/SV config sats | |
|
|
Map PRN to bits (e.g. health bits).
Definition at line 76 of file EngAlmanac.hpp. |
|
|
Default constructor, blank almanac.
Definition at line 70 of file EngAlmanac.cpp. References EngAlmanac::A0, EngAlmanac::A1, EngAlmanac::alm_wk, EngAlmanac::alpha, EngAlmanac::beta, EngAlmanac::dn, EngAlmanac::dt_ls, EngAlmanac::dt_lsf, EngAlmanac::haveUTC, EngAlmanac::t_oa, EngAlmanac::t_ot, EngAlmanac::wn_lsf, and EngAlmanac::wn_t. |
|
|
Destructor.
Definition at line 82 of file EngAlmanac.hpp. |
|
||||||||||||
|
Store a subframe in this object.
Definition at line 91 of file EngAlmanac.cpp. References A1, gpstk::beta(), and GPSTK_THROW. |
|
|
Definition at line 427 of file EngAlmanac.cpp. References EngAlmanac::getToa(). Referenced by EngAlmanac::dump(). |
|
|
This function is used to make sure data is present before accessing it.
|
|
||||||||||||
|
Definition at line 457 of file EngAlmanac.cpp. References EngAlmanac::A0, EngAlmanac::A1, EngAlmanac::alm_wk, EngAlmanac::almPRN, EngAlmanac::alpha, EngAlmanac::beta, EngAlmanac::check(), EngAlmanac::dn, EngAlmanac::dt_ls, EngAlmanac::dt_lsf, EngAlmanac::health, gpstk::StringUtils::hexDumpData(), gpstk::int2bin(), EngAlmanac::special_msg, EngAlmanac::SV_config, EngAlmanac::t_oa, EngAlmanac::t_ot, EngAlmanac::wn_lsf, and EngAlmanac::wn_t. Referenced by gpstk::operator<<(). |
|
|
This function returns the value of the health of the given PRN from the general pages in the almanac. It return the shortened 6 bit health that is in those pages.
|
|
|
This function returns the value of the semi-major axis in meters for the specified PRN.
Definition at line 246 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns the SV clock error in seconds for the given PRN.
Definition at line 287 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns the SV clock drift in seconds/seconds for the given PRN.
Definition at line 298 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns the value of the square root of the semi-major axis in square root of meters for the given PRN.
Definition at line 236 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns an object containing all of the almanac orbit elements for the given PRN.
Definition at line 387 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns an object containing all of the almanac orbit elements.
Definition at line 252 of file EngAlmanac.hpp. |
|
|
This function gets the week number for the almanac stored in this object. It is replaced when an almanac is converted to engineering units with the almWeek from the data. It also is replaced by the week number in the FIC data (if it is non zero) when addSF is used to add FIC data to the almanac. This is a full GPS week number (ie > 10 bits) Definition at line 382 of file EngAlmanac.cpp. |
|
|
This function returns the value of the eccentricity for the given PRN.
Definition at line 195 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns the value of the week of the page transmission for the given PRN.
Definition at line 336 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns the value of the offset of the inclination from 54 degrees in radians for the given PRN.
Definition at line 205 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
||||||||||||
|
Get the ionospheric parameters.
Definition at line 345 of file EngAlmanac.cpp. References gpstk::beta(), and GPSTK_THROW. |
|
|
This function returns the value of the mean anomaly in radians for the given PRN.
Definition at line 277 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns the value of the right ascension of the ascending node in radians for the given PRN.
Definition at line 256 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns the value of the rate of the right ascension of the ascending node in radians/second for the given PRN.
Definition at line 215 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns the value of the health of the given PRN from the PRN specific page which might not be present. This is the full 8 bit health
Definition at line 226 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns the value of the time of the almanac in GPS seconds of week for the given PRN.
Definition at line 314 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns the value of the time of the almanac (from page 51) in GPS seconds of week.
Definition at line 309 of file EngAlmanac.cpp. Referenced by EngAlmanac::check(). |
|
||||||||||||||||||||||||||||||||||||
|
Get the UTC offset parameters.
Definition at line 361 of file EngAlmanac.cpp. References GPSTK_THROW. |
|
|
This function returns the value of the argument of perigee in radians for the given PRN.
Definition at line 267 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns the value of the transmit time for this almanac data in seconds of week for the given PRN.
Definition at line 325 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
This function returns true if data is available for a given PRN. This data is accessed by the below accesser methods Definition at line 407 of file EngAlmanac.cpp. |
|
||||||||||||
|
Definition at line 265 of file EngAlmanac.hpp. References gpstk::beta(). |
|
||||||||||||
|
Compute satellite velocity/position at the given time using this almanac.
Definition at line 397 of file EngAlmanac.cpp. References CHECK_SV_HERE. |
|
|
Bias term of difference polynomial.
Definition at line 288 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(), and EngAlmanac::EngAlmanac(). |
|
|
Drift term of difference polynomial.
Definition at line 289 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(), and EngAlmanac::EngAlmanac(). |
|
|
GPS Week of the Almanac from the last page of orbital data.
Definition at line 300 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(), and EngAlmanac::EngAlmanac(). |
|
|
Definition at line 310 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(). |
|
|
Definition at line 282 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(), and EngAlmanac::EngAlmanac(). |
|
|
Definition at line 283 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(), and EngAlmanac::EngAlmanac(). |
|
|
reference day # of future leap second
Definition at line 302 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(), and EngAlmanac::EngAlmanac(). |
|
|
time increment due to leap seconds
Definition at line 290 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(), and EngAlmanac::EngAlmanac(). |
|
|
scheduled future time increment due to leap seconds
Definition at line 291 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(), and EngAlmanac::EngAlmanac(). |
|
|
Definition at line 311 of file EngAlmanac.hpp. Referenced by EngAlmanac::EngAlmanac(). |
|
|
satellite health array
Definition at line 304 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(). |
|
|
Special message from GPS.
Definition at line 305 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(). |
|
|
4 bit anti-spoofing/SV config sats
Definition at line 307 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(). |
|
|
Toa from page id 51 (subframe 5, pg 25).
Definition at line 294 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(), and EngAlmanac::EngAlmanac(). |
|
|
reference time
Definition at line 293 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(), and EngAlmanac::EngAlmanac(). |
|
|
week number of last/next leap second
Definition at line 298 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(), and EngAlmanac::EngAlmanac(). |
|
|
reference week of current leap second
Definition at line 296 of file EngAlmanac.hpp. Referenced by EngAlmanac::dump(), and EngAlmanac::EngAlmanac(). |
1.3.9.1