19 #ifndef GNSS_SDR_BEIDOU_DNAV_NAVIGATION_MESSAGE_H 20 #define GNSS_SDR_BEIDOU_DNAV_NAVIGATION_MESSAGE_H 83 double utc_time(
double beidoutime_corrected)
const;
85 bool satellite_validation();
112 i_satellite_PRN = prn;
115 inline void set_signal_type(int32_t signal_type)
117 i_signal_type = signal_type;
120 inline bool get_flag_CRC_test()
const 122 return flag_crc_test;
125 inline bool get_flag_new_SOW_available()
const 127 return flag_new_SOW_available;
130 inline void set_flag_new_SOW_available(
bool new_SOW_available)
132 flag_new_SOW_available = new_SOW_available;
135 inline double get_SOW()
const 141 uint64_t read_navigation_unsigned(
const std::bitset<BEIDOU_DNAV_SUBFRAME_DATA_BITS>& bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
142 int64_t read_navigation_signed(
const std::bitset<BEIDOU_DNAV_SUBFRAME_DATA_BITS>& bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
143 bool read_navigation_bool(
const std::bitset<BEIDOU_DNAV_SUBFRAME_DATA_BITS>& bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
144 void print_beidou_word_bytes(uint32_t BEIDOU_word)
const;
161 double d_eccentricity{};
178 double d_OMEGA_DOT{};
182 int32_t i_BEIDOU_week{};
185 int32_t i_SV_accuracy{};
186 int32_t i_SV_health{};
203 uint64_t d_A_f1_msb_bits{};
204 uint64_t d_A_f1_lsb_bits{};
205 uint64_t d_Cuc_msb_bits{};
206 uint64_t d_Cuc_lsb_bits{};
207 uint64_t d_eccentricity_msb{};
208 uint64_t d_eccentricity_lsb{};
209 uint64_t d_Cic_msb_bits{};
210 uint64_t d_Cic_lsb_bits{};
211 uint64_t d_eccentricity_msb_bits{};
212 uint64_t d_eccentricity_lsb_bits{};
213 uint64_t d_i_0_msb_bits{};
214 uint64_t d_i_0_lsb_bits{};
215 uint64_t d_OMEGA_msb_bits{};
216 uint64_t d_OMEGA_lsb_bits{};
217 uint64_t d_OMEGA_DOT_msb_bits{};
218 uint64_t d_OMEGA_DOT_lsb_bits{};
223 std::map<int32_t, int32_t> almanacHealth;
225 std::map<int32_t, std::string> satelliteBlock;
228 int32_t i_signal_type{};
229 uint32_t i_satellite_PRN{};
244 int32_t i_DeltaT_LS{};
247 double d_DeltaT_LSF{};
255 double d_SQRT_A_ALMANAC{};
256 double d_A1_ALMANAC{};
257 double d_A0_ALMANAC{};
258 double d_OMEGA0_ALMANAC{};
259 double d_E_ALMANAC{};
262 double d_OMEGA_DOT_ALMANAC{};
263 double d_OMEGA_ALMANAC{};
264 double d_M0_ALMANAC{};
265 int32_t almanac_WN{};
269 bool flag_eph_valid{};
270 bool flag_utc_model_valid{};
271 bool flag_iono_valid{};
277 bool flag_new_SOW_available{};
278 bool flag_crc_test{};
279 double d_previous_aode{};
283 bool flag_d1_sf5_p9{};
284 bool flag_d1_sf5_p10{};
301 #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.
double utc_time(double beidoutime_corrected) const
Computes the Coordinated Universal Time (UTC) and returns it in [s].
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.
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 is a storage class for the Beidou SV ephemeris data as described in BeiDou Navigation Satellite ...
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 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.
Defines system parameters for BeiDou B3I signal and DNAV data.
Beidou_Dnav_Navigation_Message()