GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
gps_almanac.h
Go to the documentation of this file.
1/*!
2 * \file gps_almanac.h
3 * \brief Interface of a GPS ALMANAC storage
4 * \author Javier Arribas, 2013. jarribas(at)cttc.es
5 *
6 * -----------------------------------------------------------------------------
7 *
8 * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
9 * This file is part of GNSS-SDR.
10 *
11 * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
12 * SPDX-License-Identifier: GPL-3.0-or-later
13 *
14 * -----------------------------------------------------------------------------
15 */
16
17
18#ifndef GNSS_SDR_GPS_ALMANAC_H
19#define GNSS_SDR_GPS_ALMANAC_H
20
21#include "gnss_almanac.h"
22#include <boost/serialization/nvp.hpp>
23
24/** \addtogroup Core
25 * \{ */
26/** \addtogroup System_Parameters
27 * \{ */
28
29
30/*!
31 * \brief This class is a storage for the GPS SV ALMANAC data as described in IS-GPS-200M
32 *
33 * See https://www.gps.gov/sites/default/files/2025-07/IS-GPS-200M.pdf Appendix II
34 */
36{
37public:
38 /*!
39 * Default constructor
40 */
42 {
43 this->System = 'G';
44 };
45
46 int32_t SV_health{}; //!< SV Health
47 int32_t AS_status{}; //!< Anti-Spoofing Flags and SV Configuration
48
49 template <class Archive>
50
51 void serialize(Archive& ar, const unsigned int version)
52 {
53 if (version)
54 {
55 };
56 ar& BOOST_SERIALIZATION_NVP(PRN);
57 ar& BOOST_SERIALIZATION_NVP(delta_i);
58 ar& BOOST_SERIALIZATION_NVP(toa);
59 ar& BOOST_SERIALIZATION_NVP(WNa);
60 ar& BOOST_SERIALIZATION_NVP(M_0);
61 ar& BOOST_SERIALIZATION_NVP(ecc);
62 ar& BOOST_SERIALIZATION_NVP(sqrtA);
63 ar& BOOST_SERIALIZATION_NVP(OMEGA_0);
64 ar& BOOST_SERIALIZATION_NVP(omega);
65 ar& BOOST_SERIALIZATION_NVP(OMEGAdot);
66 ar& BOOST_SERIALIZATION_NVP(af0);
67 ar& BOOST_SERIALIZATION_NVP(af1);
68 ar& BOOST_SERIALIZATION_NVP(SV_health);
69 ar& BOOST_SERIALIZATION_NVP(AS_status);
70 }
71};
72
73
74/** \} */
75/** \} */
76#endif // GNSS_SDR_GPS_ALMANAC_H
uint32_t PRN
SV PRN NUMBER.
double OMEGAdot
Rate of Right Ascension [semi-circles/s].
double OMEGA_0
Longitude of Ascending Node of Orbit Plane at Weekly Epoch [semi-circles].
double M_0
Mean Anomaly at Reference Time [semi-circles].
double sqrtA
Square Root of the Semi-Major Axis [sqrt(m)].
char System
Character ID of the GNSS system. 'G': GPS. 'E': Galileo. 'C': BeiDou.
double af0
Coefficient 0 of code phase offset model [s].
int32_t WNa
Almanac week number.
Gnss_Almanac()=default
double omega
Argument of Perigee [semi-cicles].
int32_t toa
Almanac data reference time of week [s].
double af1
Coefficient 1 of code phase offset model [s/s].
double ecc
Eccentricity [dimensionless].
double delta_i
Inclination Angle at Reference Time (relative to i_0 = 0.30 semi-circles).
int32_t AS_status
Anti-Spoofing Flags and SV Configuration.
Definition gps_almanac.h:47
int32_t SV_health
SV Health.
Definition gps_almanac.h:46
Base class for GNSS almanac storage.