GNSS-SDR  0.0.14
An Open Source GNSS Software Defined Receiver
galileo_has_data.h
Go to the documentation of this file.
1 /*!
2  * \file galileo_has_data.h
3  * \brief Class for Galileo HAS message type 1 data storage
4  * \author Carles Fernandez-Prades, 2020 cfernandez(at)cttc.es
5  *
6  * -----------------------------------------------------------------------------
7  *
8  * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
9  * This file is part of GNSS-SDR.
10  *
11  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
12  * SPDX-License-Identifier: GPL-3.0-or-later
13  *
14  * -----------------------------------------------------------------------------
15  */
16 
17 
18 #ifndef GNSS_SDR_GALILEO_HAS_DATA_H
19 #define GNSS_SDR_GALILEO_HAS_DATA_H
20 
21 #include <cstdint>
22 #include <vector>
23 
24 /** \addtogroup Core
25  * \{ */
26 /** \addtogroup System_Parameters
27  * \{ */
28 
29 struct mt1_header
30 {
31  uint16_t toh;
32  uint8_t mask_id;
33  uint8_t iod_id;
34  bool mask_flag;
35  bool orbit_correction_flag;
36  bool clock_fullset_flag;
37  bool clock_subset_flag;
38  bool code_bias_flag;
39  bool phase_bias_flag;
40  bool ura_flag;
41 };
42 
43 /*!
44  * \brief This class is a storage for Galileo HAS message type 1, as defined in
45  * Galileo High Accuracy Service E6-B Signal-In-Space Message Specification v1.2
46  * (April 2020).
47  */
49 {
50 public:
51  Galileo_HAS_data() = default;
52 
53  mt1_header header;
54 
55  // Mask
56  uint8_t Nsys;
57  std::vector<uint8_t> gnss_id_mask;
58  std::vector<uint64_t> satellite_mask;
59  std::vector<uint16_t> signal_mask;
60  std::vector<bool> cell_mask_availability_flag;
61  std::vector<std::vector<std::vector<bool>>> cell_mask;
62  std::vector<uint8_t> nav_message;
63 
64  // Orbit corrections
65  uint8_t validity_interval_index_orbit_corrections;
66  std::vector<uint16_t> gnss_iod;
67  std::vector<int16_t> delta_radial;
68  std::vector<int16_t> delta_along_track;
69  std::vector<int16_t> delta_cross_track;
70 
71  // Clock full-set corrections
72  uint8_t validity_interval_index_clock_fullset_corrections;
73  std::vector<uint8_t> delta_clock_c0_multiplier;
74  std::vector<bool> iod_change_flag;
75  std::vector<int16_t> delta_clock_c0;
76 
77  // Clock subset corrections
78  uint8_t validity_interval_index_clock_subset_corrections;
79  uint8_t Nsysprime;
80  std::vector<uint8_t> gnss_id_clock_subset;
81  std::vector<uint8_t> delta_clock_c0_multiplier_clock_subset;
82  std::vector<std::vector<uint64_t>> satellite_submask;
83  std::vector<bool> iod_change_flag_clock_subset;
84  std::vector<int16_t> delta_clock_c0_clock_subset;
85 
86  // Code bias
87  uint8_t validity_interval_index_code_bias_corrections;
88  std::vector<std::vector<int16_t>> code_bias;
89 
90  // Phase bias
91  uint8_t validity_interval_index_phase_bias_corrections;
92  std::vector<std::vector<int16_t>> phase_bias;
93  std::vector<std::vector<uint8_t>> phase_discontinuity_indicator;
94 
95  // URA
96  uint8_t validity_interval_index_ura_corrections;
97  std::vector<uint8_t> ura;
98 };
99 
100 
101 /** \} */
102 /** \} */
103 #endif // GNSS_SDR_GALILEO_HAS_DATA_H
This class is a storage for Galileo HAS message type 1, as defined in Galileo High Accuracy Service E...