19 #ifndef GNSS_SDR_BEIDOU_DNAV_NAVIGATION_MESSAGE_H 20 #define GNSS_SDR_BEIDOU_DNAV_NAVIGATION_MESSAGE_H 94 double utc_time(
const double beidoutime_corrected)
const;
96 bool satellite_validation();
123 i_satellite_PRN = prn;
126 inline void set_signal_type(int32_t signal_type)
128 i_signal_type = signal_type;
131 inline bool get_flag_CRC_test()
const 133 return flag_crc_test;
136 inline bool get_flag_new_SOW_available()
const 138 return flag_new_SOW_available;
141 inline void set_flag_new_SOW_available(
bool new_SOW_available)
143 flag_new_SOW_available = new_SOW_available;
146 inline double get_SOW()
const 152 uint64_t read_navigation_unsigned(std::bitset<BEIDOU_DNAV_SUBFRAME_DATA_BITS> bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
153 int64_t read_navigation_signed(std::bitset<BEIDOU_DNAV_SUBFRAME_DATA_BITS> bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
154 bool read_navigation_bool(std::bitset<BEIDOU_DNAV_SUBFRAME_DATA_BITS> bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
155 void print_beidou_word_bytes(uint32_t BEIDOU_word)
const;
163 double check_t(
double time);
180 double d_eccentricity{};
197 double d_OMEGA_DOT{};
201 int32_t i_BEIDOU_week{};
204 int32_t i_SV_accuracy{};
205 int32_t i_SV_health{};
222 uint64_t d_A_f1_msb_bits{};
223 uint64_t d_A_f1_lsb_bits{};
224 uint64_t d_Cuc_msb_bits{};
225 uint64_t d_Cuc_lsb_bits{};
226 uint64_t d_eccentricity_msb{};
227 uint64_t d_eccentricity_lsb{};
228 uint64_t d_Cic_msb_bits{};
229 uint64_t d_Cic_lsb_bits{};
230 uint64_t d_eccentricity_msb_bits{};
231 uint64_t d_eccentricity_lsb_bits{};
232 uint64_t d_i_0_msb_bits{};
233 uint64_t d_i_0_lsb_bits{};
234 uint64_t d_OMEGA_msb_bits{};
235 uint64_t d_OMEGA_lsb_bits{};
236 uint64_t d_OMEGA_DOT_msb_bits{};
237 uint64_t d_OMEGA_DOT_lsb_bits{};
242 std::map<int32_t, int32_t> almanacHealth;
244 std::map<int32_t, std::string> satelliteBlock;
247 double d_satClkCorr{};
256 int32_t i_signal_type{};
257 uint32_t i_satellite_PRN{};
272 int32_t i_DeltaT_LS{};
275 double d_DeltaT_LSF{};
283 double d_SQRT_A_ALMANAC{};
284 double d_A1_ALMANAC{};
285 double d_A0_ALMANAC{};
286 double d_OMEGA0_ALMANAC{};
287 double d_E_ALMANAC{};
290 double d_OMEGA_DOT_ALMANAC{};
291 double d_OMEGA_ALMANAC{};
292 double d_M0_ALMANAC{};
293 int32_t almanac_WN{};
302 bool flag_eph_valid{};
303 bool flag_utc_model_valid{};
304 bool flag_iono_valid{};
310 bool flag_new_SOW_available{};
311 bool flag_crc_test{};
312 double d_previous_aode{};
316 bool flag_d1_sf5_p9{};
317 bool flag_d1_sf5_p10{};
334 #endif // GNSS_SDR_BEIDOU_DNAV_NAVIGATION_MESSAGE_H Beidou_Dnav_Iono get_iono()
Obtain a BDS ionospheric correction parameters class filled with current SV data. ...
This class is a storage for the BeiDou DNAV UTC Model.
bool have_new_almanac()
Returns true if new UTC model has arrived. The flag is set to false when the function is executed...
Defines system parameters for BeiDou B1I signal and DNAV data.
Defines system parameters for BeiDou DNAV data processing.
double utc_time(const double beidoutime_corrected) const
Computes the Coordinated Universal Time (UTC) and returns it in [s].
Interface of a BeiDou UTC MODEL storage.
Interface of a Beidou DNAV Almanac storage.
Beidou_Dnav_Utc_Model get_utc_model()
Obtain a BDS UTC model parameters class filled with current SV data.
This class is a storage for the BEIDOU IONOSPHERIC data as described in ICD v2.1. ...
bool have_new_ephemeris()
Returns true if new Ephemeris has arrived. The flag is set to false when the function is executed...
int32_t d1_subframe_decoder(std::string const &subframe)
Decodes the BDS D1 NAV message.
Beidou_Dnav_Ephemeris get_ephemeris() const
Obtain a BDS SV Ephemeris class filled with current SV data.
Interface of a BEIDOU EPHEMERIS storage.
bool have_new_utc_model()
Returns true if new UTC model has arrived. The flag is set to false when the function is executed...
This class is a storage and orbital model functions for the GPS SV ephemeris data as described in Bei...
bool have_new_iono() const
Returns true if new Iono model has arrived. The flag is set to false when the function is executed...
int32_t d2_subframe_decoder(std::string const &subframe)
Decodes the BDS D2 NAV message.
void satellitePosition(double transmitTime)
Computes the position of the satellite.
void set_satellite_PRN(uint32_t prn)
Sets satellite PRN number.
This class decodes a BeiDou D1 NAV Data message.
Interface of a BEIDOU IONOSPHERIC MODEL storage.
double sv_clock_correction(double transmitTime)
Sets (d_satClkCorr) according to the User Algorithm for SV Clock Correction and returns the corrected...
Defines system parameters for BeiDou B3I signal and DNAV data.
Beidou_Dnav_Navigation_Message()