19#ifndef GNSS_SDR_GPS_NAVIGATION_MESSAGE_H
20#define GNSS_SDR_GPS_NAVIGATION_MESSAGE_H
88 double utc_time(
double gpstime_corrected)
const;
111 i_satellite_PRN = prn;
119 return i_satellite_PRN;
127 i_channel_ID = channel_id;
135 return flag_iono_valid;
143 return flag_utc_model_valid;
146 bool satellite_validation();
147 bool almanac_validation()
const;
150 uint64_t read_navigation_unsigned(
const std::bitset<GPS_SUBFRAME_BITS>& bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
151 int64_t read_navigation_signed(
const std::bitset<GPS_SUBFRAME_BITS>& bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
152 bool read_navigation_bool(
const std::bitset<GPS_SUBFRAME_BITS>& bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
153 void print_gps_word_bytes(uint32_t GPS_word)
const;
155 std::map<int32_t, int32_t> almanacHealth;
157 std::map<int32_t, std::string> satelliteBlock;
168 int32_t d_IODE_SF2{};
169 int32_t d_IODE_SF3{};
175 double d_e_eccentricity{};
188 double d_OMEGA_DOT{};
191 int32_t i_code_on_L2{};
192 int32_t i_GPS_week{};
193 bool b_L2_P_data_flag{};
195 int32_t i_SV_accuracy{};
196 int32_t i_SV_health{};
201 bool b_fit_interval_flag{};
224 int32_t i_channel_ID{};
225 uint32_t i_satellite_PRN{};
243 int32_t d_DeltaT_LS{};
246 int32_t d_DeltaT_LSF{};
249 bool b_valid_ephemeris_set_flag{};
250 bool flag_iono_valid{};
251 bool flag_utc_model_valid{};
252 bool flag_almanac_valid{};
253 bool flag_almanac_week_valid{};
264 bool b_integrity_status_flag{};
266 bool b_antispoofing_flag{};
Defines system parameters for GPS L1 C/A signal and NAV data.
This class is a storage for the GPS SV ALMANAC data as described in IS-GPS-200M.
This class is a storage and orbital model functions for the GPS SV ephemeris data as described in IS-...
This class is a storage for the GPS IONOSPHERIC data as described in IS-GPS-200M.
bool get_flag_iono_valid() const
Gets flag_iono_valid.
Gps_Navigation_Message(LnavSystem system=LnavSystem::GPS)
void set_channel(int32_t channel_id)
Sets channel ID.
int32_t get_TOW() const
Gets Time of Week, in seconds.
uint32_t get_satellite_PRN() const
Gets satellite PRN number.
bool get_flag_utc_model_valid() const
Gets flag_utc_model_valid.
int32_t get_GPS_week() const
Gets GPS Week Number.
void set_satellite_PRN(uint32_t prn)
Sets satellite PRN number.
double utc_time(double gpstime_corrected) const
Computes the Coordinated Universal Time (UTC) and returns it in [s] (IS-GPS-200M, 20....
Gps_Ephemeris get_ephemeris() const
Obtain a GPS SV Ephemeris class filled with current SV data.
Gps_Iono get_iono()
Obtain a GPS ionospheric correction parameters class filled with current SV data.
int32_t subframe_decoder(const char *subframe)
Decodes the GPS NAV message.
Gps_Almanac get_almanac()
Obtain a GPS almanac class filled with current SV data.
Gps_Utc_Model get_utc_model()
Obtain a GPS Almanac model parameters class filled with current SV data.
This class is a storage for the GPS UTC MODEL data as described in IS-GPS-200M.
Interface of a GPS ALMANAC storage.
Interface of a GPS EPHEMERIS storage.
Interface of a GPS IONOSPHERIC MODEL storage.
Interface of a GPS UTC MODEL storage.