20 #ifndef GNSS_SDR_GALILEO_E6_HAS_MSG_RECEIVER_H 21 #define GNSS_SDR_GALILEO_E6_HAS_MSG_RECEIVER_H 27 #include <gnuradio/block.h> 46 using galileo_e6_has_msg_receiver_sptr = gnss_shared_ptr<galileo_e6_has_msg_receiver>;
48 galileo_e6_has_msg_receiver_sptr galileo_e6_has_msg_receiver_make();
60 void set_enable_navdata_monitor(
bool enable);
64 friend galileo_e6_has_msg_receiver_sptr galileo_e6_has_msg_receiver_make();
67 void msg_handler_galileo_e6_has(
const pmt::pmt_t& msg);
69 void read_MT1_header(
const std::string& message_header);
70 void read_MT1_body(
const std::string& message_body);
73 int decode_message_type1(uint8_t message_id, uint8_t message_size);
75 uint16_t read_has_message_header_parameter_uint16(
const std::bitset<GALILEO_CNAV_MT1_HEADER_BITS>& bits,
const std::pair<int32_t, int32_t>& parameter)
const;
76 uint8_t read_has_message_header_parameter_uint8(
const std::bitset<GALILEO_CNAV_MT1_HEADER_BITS>& bits,
const std::pair<int32_t, int32_t>& parameter)
const;
77 bool read_has_message_header_parameter_bool(
const std::bitset<GALILEO_CNAV_MT1_HEADER_BITS>& bits,
const std::pair<int32_t, int32_t>& parameter)
const;
79 uint64_t read_has_message_body_uint64(
const std::string& bits)
const;
80 uint16_t read_has_message_body_uint16(
const std::string& bits)
const;
81 int16_t read_has_message_body_int16(
const std::string& bits)
const;
82 uint8_t read_has_message_body_uint8(
const std::string& bits)
const;
85 std::string debug_print_vector(
const std::string& title,
const std::vector<T>& vec)
const;
88 std::string debug_print_matrix(
const std::string& title,
const std::vector<std::vector<T>>& mat)
const;
90 std::unique_ptr<ReedSolomon> d_rs;
95 std::vector<std::vector<uint64_t>> d_received_timestamps;
96 std::vector<std::vector<std::vector<uint8_t>>> d_C_matrix;
97 std::vector<std::vector<uint8_t>> d_M_matrix;
98 std::vector<std::vector<uint8_t>> d_received_pids;
99 std::vector<uint64_t> d_printed_timestamps;
100 std::vector<bool> d_printed_mids;
103 std::vector<int> d_nsat_in_mask_id;
104 std::vector<std::vector<uint8_t>> d_gnss_id_in_mask;
105 std::vector<std::vector<uint64_t>> d_satellite_mask;
106 std::vector<std::vector<uint16_t>> d_signal_mask;
107 std::vector<std::vector<bool>> d_cell_mask_availability_flag;
108 std::vector<std::vector<std::vector<std::vector<bool>>>> d_cell_mask;
109 std::vector<uint8_t> d_nsys_in_mask;
110 std::vector<std::vector<uint8_t>> d_nav_message_mask;
112 std::map<std::pair<uint8_t, uint8_t>, std::vector<uint16_t>> d_iod_ref_map;
114 uint8_t d_current_has_status{};
115 uint8_t d_current_message_id{};
116 bool d_new_message{};
117 bool d_enable_navdata_monitor{};
123 #endif // GNSS_SDR_GALILEO_E6_HAS_MSG_RECEIVER_H std::shared_ptr< Galileo_HAS_data > process_test_page(const pmt::pmt_t &msg)
For testing purposes only.
Class implementing a Reed-Solomon encoder and decoder RS(255,K,d) where k=255-nroots is the informati...
This class is a storage for Galileo HAS message type 1, as defined in Galileo High Accuracy Service S...
This interface represents a GNSS block.
Galileo CNAV message constants. Data from: Galileo High Accuracy Service Signal-In-Space Interface Co...
Class for storage of decoded navigation messages.
GNU Radio block that receives asynchronous Galileo HAS message pages from the telemetry blocks...
This class is a storage for Galileo HAS message page, as defined in Galileo High Accuracy Service Sig...
Class for Galileo HAS message type 1 data storage.
~galileo_e6_has_msg_receiver()=default
Default destructor.