19 #ifndef GNSS_SDR_GALILEO_INAV_MESSAGE_H 20 #define GNSS_SDR_GALILEO_INAV_MESSAGE_H 58 void split_page(std::string page_string, int32_t flag_even_word);
65 int32_t page_jk_decoder(
const char* data_jk);
70 bool have_new_ephemeris();
75 bool have_new_iono_and_GST();
80 bool have_new_utc_model();
85 bool have_new_almanac();
90 bool have_new_reduced_ced();
117 inline bool get_flag_CRC_test()
const 119 return flag_CRC_test;
122 inline bool get_flag_TOW_set()
const 127 inline void set_flag_TOW_set(
bool flag_tow)
129 flag_TOW_set = flag_tow;
132 inline int32_t get_Galileo_week()
const 137 inline int32_t get_TOW5()
const 142 inline int32_t get_TOW6()
const 147 inline bool is_TOW5_set()
const 152 inline void set_TOW5_flag(
bool flag_tow5)
154 flag_TOW_5 = flag_tow5;
157 inline bool is_TOW6_set()
const 162 inline void set_TOW6_flag(
bool flag_tow6)
164 flag_TOW_6 = flag_tow6;
167 inline int32_t get_TOW0()
const 172 inline bool is_TOW0_set()
const 177 inline void set_TOW0_flag(
bool flag_tow0)
179 flag_TOW_0 = flag_tow0;
182 inline bool get_flag_GGTO()
const 184 return (flag_GGTO_1 ==
true and flag_GGTO_2 ==
true and flag_GGTO_3 ==
true and flag_GGTO_4 ==
true);
187 inline double get_A0G()
const 192 inline double get_A1G()
const 197 inline double get_t0G()
const 202 inline double get_WN0G()
const 210 inline void init_PRN(uint32_t prn)
218 inline void enable_reed_solomon()
224 bool CRC_test(
const std::bitset<GALILEO_DATA_FRAME_BITS>& bits, uint32_t checksum)
const;
225 bool read_navigation_bool(
const std::bitset<GALILEO_DATA_JK_BITS>& bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
226 uint64_t read_navigation_unsigned(
const std::bitset<GALILEO_DATA_JK_BITS>& bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
227 uint64_t read_page_type_unsigned(
const std::bitset<GALILEO_PAGE_TYPE_BITS>& bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
228 int64_t read_navigation_signed(
const std::bitset<GALILEO_DATA_JK_BITS>& bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
229 uint8_t read_octet_unsigned(
const std::bitset<GALILEO_DATA_JK_BITS>& bits,
const std::vector<std::pair<int32_t, int32_t>>& parameter)
const;
230 void read_page_1(
const std::bitset<GALILEO_DATA_JK_BITS>& data_bits);
231 void read_page_2(
const std::bitset<GALILEO_DATA_JK_BITS>& data_bits);
232 void read_page_3(
const std::bitset<GALILEO_DATA_JK_BITS>& data_bits);
233 void read_page_4(
const std::bitset<GALILEO_DATA_JK_BITS>& data_bits);
234 std::bitset<GALILEO_DATA_JK_BITS> regenerate_page_1(
const std::vector<uint8_t>& decoded)
const;
235 std::bitset<GALILEO_DATA_JK_BITS> regenerate_page_2(
const std::vector<uint8_t>& decoded)
const;
236 std::bitset<GALILEO_DATA_JK_BITS> regenerate_page_3(
const std::vector<uint8_t>& decoded)
const;
237 std::bitset<GALILEO_DATA_JK_BITS> regenerate_page_4(
const std::vector<uint8_t>& decoded)
const;
239 std::string page_Even{};
241 std::vector<uint8_t> rs_buffer;
242 std::unique_ptr<ReedSolomon> rs;
243 std::vector<int> inav_rs_pages;
245 int32_t Page_type_time_stamp{};
246 int32_t IOD_ephemeris{};
265 double OMEGA_dot_3{};
274 int32_t SV_ID_PRN_4{};
290 double BGD_E1E5a_5{};
291 double BGD_E1E5b_5{};
296 bool Region1_flag_5{};
297 bool Region2_flag_5{};
298 bool Region3_flag_5{};
299 bool Region4_flag_5{};
300 bool Region5_flag_5{};
312 int32_t Delta_tLS_6{};
317 int32_t Delta_tLSF_6{};
330 double Omega_dot_7{};
345 double Omega_dot_8{};
365 double Omega_dot_10{};
384 double ced_DeltaAred{};
387 double ced_Deltai0red{};
388 double ced_Omega0red{};
389 double ced_lambda0red{};
393 double Galileo_satClkDrift{};
395 int32_t current_IODnav{};
397 uint8_t IODnav_LSB17{};
398 uint8_t IODnav_LSB18{};
399 uint8_t IODnav_LSB19{};
400 uint8_t IODnav_LSB20{};
402 bool flag_CRC_test{};
403 bool flag_all_ephemeris{};
404 bool flag_ephemeris_1{};
405 bool flag_ephemeris_2{};
406 bool flag_ephemeris_3{};
407 bool flag_ephemeris_4{};
409 bool flag_iono_and_GST{};
414 bool flag_utc_model{};
416 bool flag_all_almanac{};
417 bool flag_almanac_1{};
418 bool flag_almanac_2{};
419 bool flag_almanac_3{};
420 bool flag_almanac_4{};
434 #endif // GNSS_SDR_GALILEO_INAV_MESSAGE_H Class implementing a Reed-Solomon encoder and decoder RS(255,K,d) where k=255-nroots is the informati...
This file implements std::make_unique for C++11.
This class is a storage for the GALILEO ALMANAC data as described in GALILEO ICD. ...
This class handles the Galileo I/NAV Data message, as described in the Galileo Open Service Signal in...
This class is a storage for the GALILEO IONOSPHERIC data as described in Galileo ICD paragraph 5...
Interface of a Galileo UTC MODEL storage.
Interface of a Galileo ALMANAC storage helper.
This class is a storage and orbital model functions for the Galileo SV ephemeris data as described in...
This class is a storage for the GALILEO UTC MODEL data as described in Galileo ICD https://www...
Interface of a Galileo Ionospheric Model storage.
Interface of a Galileo EPHEMERIS storage.
Galileo INAV mesage constants.