GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
GLONASS_L1_L2_CA.h
Go to the documentation of this file.
1/*!
2 * \file GLONASS_L1_L2_CA.h
3 * \brief Defines system parameters for GLONASS L1 C/A signal and NAV data
4 * \note File renamed from GLONASS_L1_CA.h to GLONASS_L1_L2_CA.h to accommodate GLO L2 addition
5 * \author Damian Miralles, 2017. dmiralles2009(at)gmail.com
6 *
7 * -----------------------------------------------------------------------------
8 *
9 * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
10 * This file is part of GNSS-SDR.
11 *
12 * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
13 * SPDX-License-Identifier: GPL-3.0-or-later
14 *
15 * -----------------------------------------------------------------------------
16 */
17
18
19#ifndef GNSS_SDR_GLONASS_L1_L2_CA_H
20#define GNSS_SDR_GLONASS_L1_L2_CA_H
21
22#include "gnss_frequencies.h"
23#include <cstdint>
24#include <map>
25#include <utility> // std::pair
26#include <vector>
27
28/** \addtogroup Core
29 * \{ */
30/** \addtogroup System_Parameters
31 * \{ */
32
33
34// Physical constants
35constexpr double GLONASS_F_M_A = 0.35e9; //!< Gravitational constant of atmosphere [m^3/s^2]
36constexpr double GLONASS_SEMI_MAJOR_AXIS = 6378136; //!< Semi-major axis of Earth [m]
37constexpr double GLONASS_FLATTENING = 1.0 / 29825784.0; //!< Flattening parameter
38constexpr double GLONASS_GRAVITY = 97803284.0; //!< Equatorial acceleration of gravity [mGal]
39constexpr double GLONASS_GRAVITY_CORRECTION = 0.87; //!< Correction to acceleration of gravity at sea-level due to Atmosphere[uGal]
40constexpr double GLONASS_J2 = 1082625.75e-9; //!< Second zonal harmonic of the geopotential
41constexpr double GLONASS_J4 = -2370.89e-9; //!< Fourth zonal harmonic of the geopotential
42constexpr double GLONASS_J6 = 6.08e-9; //!< Sixth zonal harmonic of the geopotential
43constexpr double GLONASS_J8 = 1.40e-11; //!< Eighth zonal harmonic of the geopotential
44constexpr double GLONASS_U0 = 62636861.4; //!< Normal potential at surface of common terrestrial ellipsoid [m^2/s^2]
45constexpr double GLONASS_C20 = -1082.63e-6; //!< Second zonal coefficient of spherical harmonic expansion
46constexpr double GLONASS_EARTH_RADIUS = 6378.136; //!< Equatorial radius of Earth [km]
47constexpr double GLONASS_EARTH_INCLINATION = 0.000409148809899e3; //!< Mean inclination of ecliptic to equator (23 deg 26 min 33 sec) [rad]
48
49constexpr double GLONASS_TAU_0 = -0.005835151531174e3; //!< (-334 deg 19 min 46.40 sec) [rad];
50constexpr double GLONASS_TAU_1 = 0.071018041257371e3; //!< (4069 deg 02 min 02.52 sec) [rad];
51
52constexpr double GLONASS_MOON_Q0 = -0.001115184961435e3; //!< (-63 deg 53 min 43.41 sec) [rad]
53constexpr double GLONASS_MOON_Q1 = 8.328691103668023e3; //!< (477198 deg 50 min 56.79 sec) [rad]
54constexpr double GLONASS_MOON_OMEGA_0 = 0.004523601514852e3; //!< (259 deg 10 min 59.79 sec) [rad]
55constexpr double GLONASS_MOON_OMEGA_1 = -0.033757146246552e3; //!< (-1934 deg 08 min 31.23 sec) [rad]
56constexpr double GLONASS_MOON_GM = 4902.835; //!< Lunar gravitational constant [km^3/s^2]
57constexpr double GLONASS_MOON_SEMI_MAJOR_AXIS = 3.84385243e5; //!< Semi-major axis of lunar orbit [km];
58constexpr double GLONASS_MOON_ECCENTRICITY = 0.054900489; //!< Eccentricity of lunar orbit
59constexpr double GLONASS_MOON_INCLINATION = 0.000089803977407e3; //!< Inclination of lunar orbit to ecliptic plane (5 deg 08 min 43.4 sec) [rad]
60
61constexpr double GLONASS_SUN_OMEGA = 0.004908229466869e3; //!< TODO What is this operation in the seconds with T?(281 deg 13 min 15.0 + 6189.03 x T sec) [rad]
62constexpr double GLONASS_SUN_Q0 = 0.006256583774423e3; //!< (358 deg 28 min 33.04 sec) [rad]
63constexpr double GLONASS_SUN_Q1 = 0e3; //!< TODO Why is the value greater than 60?(129596579.10 sec) [rad]
64constexpr double GLONASS_SUN_GM = 0.1325263e12; //!< Solar gravitational constant [km^3/s^2]
65constexpr double GLONASS_SUN_SEMI_MAJOR_AXIS = 1.49598e8; //!< Semi-major axis of solar orbit [km];
66constexpr double GLONASS_SUN_ECCENTRICITY = 0.016719; //!< Eccentricity of solar orbit
67
68constexpr double GLONASS_L2_CA_FREQ_HZ = FREQ2_GLO; //!< L2 [Hz]
69constexpr double GLONASS_L2_CA_DFREQ_HZ = DFRQ2_GLO; //!< Freq Bias for GLONASS L1 [Hz]
70constexpr double GLONASS_L2_CA_CODE_RATE_CPS = 0.511e6; //!< GLONASS L1 C/A code rate [chips/s]
71constexpr double GLONASS_L2_CA_CODE_LENGTH_CHIPS = 511.0; //!< GLONASS L1 C/A code length [chips]
72constexpr double GLONASS_L2_CA_CODE_PERIOD_S = 0.001; //!< GLONASS L1 C/A code period [seconds]
73constexpr double GLONASS_L2_CA_SYMBOL_PERIOD_S = 0.01; //!< GLONASS L1 C/A symbol period [seconds]
74constexpr double GLONASS_L2_CA_CHIP_PERIOD_S = 1.9569e-06; //!< GLONASS L1 C/A chip period [seconds]
75constexpr double GLONASS_L2_CA_SYMBOL_RATE_BPS = 1000.0;
76
77constexpr double GLONASS_L1_CA_FREQ_HZ = FREQ1_GLO; //!< L1 [Hz]
78constexpr double GLONASS_L1_CA_DFREQ_HZ = DFRQ1_GLO; //!< Freq Bias for GLONASS L1 [Hz]
79constexpr double GLONASS_L1_CA_CODE_RATE_CPS = 0.511e6; //!< GLONASS L1 C/A code rate [chips/s]
80constexpr double GLONASS_L1_CA_CODE_LENGTH_CHIPS = 511.0; //!< GLONASS L1 C/A code length [chips]
81constexpr double GLONASS_L1_CA_CODE_PERIOD_S = 0.001; //!< GLONASS L1 C/A code period [seconds]
82constexpr double GLONASS_L1_CA_SYMBOL_PERIOD_S = 0.01; //!< GLONASS L1 C/A symbol period [seconds]
83constexpr double GLONASS_L1_CA_CHIP_PERIOD_S = 1.9569e-06; //!< GLONASS L1 C/A chip period [seconds]
84constexpr double GLONASS_L1_CA_SYMBOL_RATE_BPS = 1000.0;
85
86constexpr uint32_t GLONASS_L1_CA_CODE_PERIOD_MS = 1;
87constexpr uint32_t GLONASS_L2_CA_CODE_PERIOD_MS = 1;
88constexpr int32_t GLONASS_CA_NBR_SATS = 24; // STRING DATA WITHOUT PREAMBLE
89
90// OBSERVABLE HISTORY DEEP FOR INTERPOLATION
91constexpr int32_t GLONASS_L1_CA_HISTORY_DEEP = 100;
92
93// NAVIGATION MESSAGE DEMODULATION AND DECODING
94#define GLONASS_GNAV_PREAMBLE \
95 { \
96 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0}
97
98#define GLONASS_GNAV_PREAMBLE_SAMPLES \
99 { \
100 1, 1, 1, 1, 1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, 1, -1}
101
102constexpr char GLONASS_GNAV_PREAMBLE_STR[301] = "111111111111111111111111111111111111111111111111110000000000000000000000000000001111111111111111111100000000001111111111111111111111111111110000000000111111111100000000001111111111000000000000000000000000000000000000000011111111110000000000000000000011111111110000000000111111111111111111110000000000";
103constexpr double GLONASS_GNAV_PREAMBLE_DURATION_S = 0.300;
104constexpr int32_t GLONASS_GNAV_PREAMBLE_LENGTH_BITS = 30;
105constexpr int32_t GLONASS_GNAV_PREAMBLE_LENGTH_SYMBOLS = 300;
106constexpr int32_t GLONASS_GNAV_PREAMBLE_PERIOD_SYMBOLS = 2000;
107constexpr int32_t GLONASS_GNAV_PREAMBLE_PERIOD_BITS = 200;
108constexpr int32_t GLONASS_GNAV_TELEMETRY_RATE_BITS_SECOND = 50; //!< NAV message bit rate [bits/s]
109constexpr int32_t GLONASS_GNAV_TELEMETRY_SYMBOLS_PER_BIT = 10;
110constexpr int32_t GLONASS_GNAV_TELEMETRY_SYMBOLS_PER_PREAMBLE_BIT = 10;
111constexpr int32_t GLONASS_GNAV_TELEMETRY_RATE_SYMBOLS_SECOND = GLONASS_GNAV_TELEMETRY_RATE_BITS_SECOND * GLONASS_GNAV_TELEMETRY_SYMBOLS_PER_BIT; //!< NAV message bit rate [symbols/s]
112constexpr int32_t GLONASS_GNAV_STRING_SYMBOLS_WITH_PREABLE = 2000;
113constexpr int32_t GLONASS_GNAV_STRING_BIBINARY_WITH_PREABLE = 200; //!< Number of bits per string in the GNAV message (85 data bits + 30 time mark bits) [bits]
114constexpr int32_t GLONASS_GNAV_STRING_BITS = 85; //!< Number of bits per string in the GNAV message (85 data bits + 30 time mark bits) [bits]
115constexpr int32_t GLONASS_GNAV_HAMMING_CODE_BITS = 8; //!< Number of bits in hamming code sequence of GNAV message
116constexpr int32_t GLONASS_GNAV_DATA_SYMBOLS = 1700; // STRING DATA WITHOUT PREAMBLE
117
118/*!
119 * \brief Record of leap seconds definition for GLOT to GPST conversion and vice versa
120 * \details Each entry is defined by an array of 7 elements consisting of yr,month,day,hr,min,sec,utc-gpst
121 * \note Ideally should use leap seconds definitions of rtklib
122 */
123constexpr double GLONASS_LEAP_SECONDS[19][7] = {
124 {2017, 1, 1, 0, 0, 0, -18},
125 {2015, 7, 1, 0, 0, 0, -17},
126 {2012, 7, 1, 0, 0, 0, -16},
127 {2009, 1, 1, 0, 0, 0, -15},
128 {2006, 1, 1, 0, 0, 0, -14},
129 {1999, 1, 1, 0, 0, 0, -13},
130 {1997, 7, 1, 0, 0, 0, -12},
131 {1996, 1, 1, 0, 0, 0, -11},
132 {1994, 7, 1, 0, 0, 0, -10},
133 {1993, 7, 1, 0, 0, 0, -9},
134 {1992, 7, 1, 0, 0, 0, -8},
135 {1991, 1, 1, 0, 0, 0, -7},
136 {1990, 1, 1, 0, 0, 0, -6},
137 {1988, 1, 1, 0, 0, 0, -5},
138 {1985, 7, 1, 0, 0, 0, -4},
139 {1983, 7, 1, 0, 0, 0, -3},
140 {1982, 7, 1, 0, 0, 0, -2},
141 {1981, 7, 1, 0, 0, 0, -1},
142 {}};
143
144//!< GLONASS SV's orbital slots PRN = (orbital_slot - 1)
145const std::map<uint32_t, int32_t> GLONASS_PRN = {
146 {
147 0,
148 8,
149 }, // For test
150 {
151 1,
152 1,
153 }, // Plane 1
154 {
155 2,
156 -4,
157 }, // Plane 1
158 {
159 3,
160 5,
161 }, // Plane 1
162 {
163 4,
164 6,
165 }, // Plane 1
166 {
167 5,
168 1,
169 }, // Plane 1
170 {
171 6,
172 -4,
173 }, // Plane 1
174 {
175 7,
176 5,
177 }, // Plane 1
178 {
179 8,
180 6,
181 }, // Plane 1
182 {
183 9,
184 -2,
185 }, // Plane 2
186 {
187 10,
188 -7,
189 }, // Plane 2
190 {
191 11,
192 0,
193 }, // Plane 2
194 {
195 12,
196 -1,
197 }, // Plane 2
198 {
199 13,
200 -2,
201 }, // Plane 2
202 {
203 14,
204 -7,
205 }, // Plane 2
206 {
207 15,
208 0,
209 }, // Plane 2
210 {
211 16,
212 -1,
213 }, // Plane 2
214 {
215 17,
216 4,
217 }, // Plane 3
218 {
219 18,
220 -3,
221 }, // Plane 3
222 {
223 19,
224 3,
225 }, // Plane 3
226 {
227 20,
228 -5,
229 }, // Plane 3
230 {
231 21,
232 4,
233 }, // Plane 3
234 {
235 22,
236 -3,
237 }, // Plane 3
238 {
239 23,
240 3,
241 }, // Plane 3
242 {24, 2}}; // Plane 3
243
244const std::vector<int32_t> GLONASS_GNAV_CRC_I_INDEX{9, 10, 12, 13, 15, 17, 19, 20, 22, 24, 26, 28, 30, 32, 34, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84};
245const std::vector<int32_t> GLONASS_GNAV_CRC_J_INDEX{9, 11, 12, 14, 15, 18, 19, 21, 22, 25, 26, 29, 30, 33, 34, 36, 37, 40, 41, 44, 45, 48, 49, 52, 53, 56, 57, 60, 61, 64, 65, 67, 68, 71, 72, 75, 76, 79, 80, 83, 84};
246const std::vector<int32_t> GLONASS_GNAV_CRC_K_INDEX{10, 11, 12, 16, 17, 18, 19, 23, 24, 25, 26, 31, 32, 33, 34, 38, 39, 40, 41, 46, 47, 48, 49, 54, 55, 56, 57, 62, 63, 64, 65, 69, 70, 71, 72, 77, 78, 79, 80, 85};
247const std::vector<int32_t> GLONASS_GNAV_CRC_L_INDEX{13, 14, 15, 16, 17, 18, 19, 27, 28, 29, 30, 31, 32, 33, 34, 42, 43, 44, 45, 46, 47, 48, 49, 58, 59, 60, 61, 62, 63, 64, 65, 73, 74, 75, 76, 77, 78, 79, 80};
248const std::vector<int32_t> GLONASS_GNAV_CRC_M_INDEX{20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 81, 82, 83, 84, 85};
249const std::vector<int32_t> GLONASS_GNAV_CRC_N_INDEX{35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65};
250const std::vector<int32_t> GLONASS_GNAV_CRC_P_INDEX{66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85};
251const std::vector<int32_t> GLONASS_GNAV_CRC_Q_INDEX{9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85};
252const std::vector<int32_t> GLONASS_GNAV_ECC_LOCATOR{0, 0, 1, 8, 2, 9, 10, 11, 3, 12, 13, 14, 15, 16, 17, 18, 4, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 5, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84};
253
254// GLONASS GNAV NAVIGATION MESSAGE STRUCTURE
255// NAVIGATION MESSAGE FIELDS POSITIONS
256
257// FRAME 1-4
258// COMMON FIELDS
259const std::vector<std::pair<int32_t, int32_t>> STRING_ID({{2, 4}});
260const std::vector<std::pair<int32_t, int32_t>> KX({{78, 8}});
261// STRING 1
262const std::vector<std::pair<int32_t, int32_t>> P1({{8, 2}});
263const std::vector<std::pair<int32_t, int32_t>> T_K_HR({{10, 5}});
264const std::vector<std::pair<int32_t, int32_t>> T_K_MIN({{15, 6}});
265const std::vector<std::pair<int32_t, int32_t>> T_K_SEC({{21, 1}});
266const std::vector<std::pair<int32_t, int32_t>> X_N_DOT({{22, 24}});
267const std::vector<std::pair<int32_t, int32_t>> X_N_DOT_DOT({{46, 5}});
268const std::vector<std::pair<int32_t, int32_t>> X_N({{51, 27}});
269
270// STRING 2
271const std::vector<std::pair<int32_t, int32_t>> B_N({{6, 3}});
272const std::vector<std::pair<int32_t, int32_t>> P2({{9, 1}});
273const std::vector<std::pair<int32_t, int32_t>> T_B({{10, 7}});
274const std::vector<std::pair<int32_t, int32_t>> Y_N_DOT({{22, 24}});
275const std::vector<std::pair<int32_t, int32_t>> Y_N_DOT_DOT({{46, 5}});
276const std::vector<std::pair<int32_t, int32_t>> Y_N({{51, 27}});
277
278// STRING 3
279const std::vector<std::pair<int32_t, int32_t>> P3({{6, 1}});
280const std::vector<std::pair<int32_t, int32_t>> GAMMA_N({{7, 11}});
281const std::vector<std::pair<int32_t, int32_t>> P({{19, 2}});
282const std::vector<std::pair<int32_t, int32_t>> EPH_L_N({{21, 1}});
283const std::vector<std::pair<int32_t, int32_t>> Z_N_DOT({{22, 24}});
284const std::vector<std::pair<int32_t, int32_t>> Z_N_DOT_DOT({{46, 5}});
285const std::vector<std::pair<int32_t, int32_t>> Z_N({{51, 27}});
286
287// STRING 4
288const std::vector<std::pair<int32_t, int32_t>> TAU_N({{6, 22}});
289const std::vector<std::pair<int32_t, int32_t>> DELTA_TAU_N({{28, 5}});
290const std::vector<std::pair<int32_t, int32_t>> E_N({{33, 5}});
291const std::vector<std::pair<int32_t, int32_t>> P4({{52, 1}});
292const std::vector<std::pair<int32_t, int32_t>> F_T({{53, 4}});
293const std::vector<std::pair<int32_t, int32_t>> N_T({{60, 11}});
294const std::vector<std::pair<int32_t, int32_t>> N({{71, 5}});
295const std::vector<std::pair<int32_t, int32_t>> M({{76, 2}});
296
297// STRING 5
298const std::vector<std::pair<int32_t, int32_t>> DAY_NUMBER_A({{6, 11}});
299const std::vector<std::pair<int32_t, int32_t>> TAU_C({{17, 32}});
300const std::vector<std::pair<int32_t, int32_t>> N_4({{50, 5}});
301const std::vector<std::pair<int32_t, int32_t>> TAU_GPS({{55, 22}});
302const std::vector<std::pair<int32_t, int32_t>> ALM_L_N({{77, 1}});
303
304// STRING 6, 8, 10, 12, 14
305const std::vector<std::pair<int32_t, int32_t>> C_N({{6, 1}});
306const std::vector<std::pair<int32_t, int32_t>> M_N_A({{7, 2}});
307const std::vector<std::pair<int32_t, int32_t>> N_A({{9, 5}});
308const std::vector<std::pair<int32_t, int32_t>> TAU_N_A({{14, 10}});
309const std::vector<std::pair<int32_t, int32_t>> LAMBDA_N_A({{24, 21}});
310const std::vector<std::pair<int32_t, int32_t>> DELTA_I_N_A({{45, 18}});
311const std::vector<std::pair<int32_t, int32_t>> EPSILON_N_A({{63, 15}});
312
313// STRING 7, 9, 11, 13, 15
314const std::vector<std::pair<int32_t, int32_t>> OMEGA_N_A({{6, 16}});
315const std::vector<std::pair<int32_t, int32_t>> T_LAMBDA_N_A({{22, 21}});
316const std::vector<std::pair<int32_t, int32_t>> DELTA_T_N_A({{43, 22}});
317const std::vector<std::pair<int32_t, int32_t>> DELTA_T_DOT_N_A({{65, 7}});
318const std::vector<std::pair<int32_t, int32_t>> H_N_A({{72, 5}});
319
320// STRING 14 FRAME 5
321const std::vector<std::pair<int32_t, int32_t>> B1({{6, 11}});
322const std::vector<std::pair<int32_t, int32_t>> B2({{17, 10}});
323
324
325/** \} */
326/** \} */
327#endif // GNSS_SDR_GLONASS_L1_L2_CA_H
GNSS Frequencies.
constexpr double GLONASS_FLATTENING
Flattening parameter.
constexpr double GLONASS_GRAVITY
Equatorial acceleration of gravity [mGal].
constexpr double GLONASS_F_M_A
Gravitational constant of atmosphere [m^3/s^2].
constexpr double GLONASS_MOON_SEMI_MAJOR_AXIS
Semi-major axis of lunar orbit [km];.
constexpr double GLONASS_MOON_OMEGA_0
(259 deg 10 min 59.79 sec) [rad]
constexpr double GLONASS_MOON_ECCENTRICITY
Eccentricity of lunar orbit.
constexpr double GLONASS_L2_CA_CHIP_PERIOD_S
GLONASS L1 C/A chip period [seconds].
constexpr int32_t GLONASS_GNAV_HAMMING_CODE_BITS
Number of bits in hamming code sequence of GNAV message.
constexpr double FREQ1_GLO
GLONASS G1 base frequency (Hz).
constexpr double GLONASS_L1_CA_DFREQ_HZ
Freq Bias for GLONASS L1 [Hz].
constexpr double GLONASS_J6
Sixth zonal harmonic of the geopotential.
constexpr double DFRQ1_GLO
GLONASS G1 bias frequency (Hz/n).
constexpr double GLONASS_L1_CA_CHIP_PERIOD_S
GLONASS L1 C/A chip period [seconds].
constexpr double FREQ2_GLO
GLONASS G2 base frequency (Hz).
constexpr double GLONASS_MOON_OMEGA_1
(-1934 deg 08 min 31.23 sec) [rad]
constexpr int32_t GLONASS_GNAV_STRING_BIBINARY_WITH_PREABLE
Number of bits per string in the GNAV message (85 data bits + 30 time mark bits) [bits].
constexpr double GLONASS_MOON_GM
Lunar gravitational constant [km^3/s^2].
constexpr double DFRQ2_GLO
GLONASS G2 bias frequency (Hz/n).
constexpr double GLONASS_SUN_GM
Solar gravitational constant [km^3/s^2].
constexpr double GLONASS_L1_CA_CODE_RATE_CPS
GLONASS L1 C/A code rate [chips/s].
constexpr double GLONASS_SUN_ECCENTRICITY
Eccentricity of solar orbit.
constexpr int32_t GLONASS_GNAV_TELEMETRY_RATE_BITS_SECOND
NAV message bit rate [bits/s].
constexpr double GLONASS_TAU_0
(-334 deg 19 min 46.40 sec) [rad];
constexpr double GLONASS_L2_CA_FREQ_HZ
L2 [Hz].
constexpr double GLONASS_TAU_1
(4069 deg 02 min 02.52 sec) [rad];
constexpr double GLONASS_L2_CA_SYMBOL_PERIOD_S
GLONASS L1 C/A symbol period [seconds].
constexpr double GLONASS_L2_CA_CODE_RATE_CPS
GLONASS L1 C/A code rate [chips/s].
constexpr int32_t GLONASS_GNAV_STRING_BITS
Number of bits per string in the GNAV message (85 data bits + 30 time mark bits) [bits].
constexpr double GLONASS_SUN_OMEGA
TODO What is this operation in the seconds with T?(281 deg 13 min 15.0 + 6189.03 x T sec) [rad].
constexpr double GLONASS_L1_CA_SYMBOL_PERIOD_S
GLONASS L1 C/A symbol period [seconds].
constexpr int32_t GLONASS_GNAV_TELEMETRY_RATE_SYMBOLS_SECOND
NAV message bit rate [symbols/s].
constexpr double GLONASS_L2_CA_CODE_LENGTH_CHIPS
GLONASS L1 C/A code length [chips].
constexpr double GLONASS_SEMI_MAJOR_AXIS
Semi-major axis of Earth [m].
constexpr double GLONASS_L1_CA_CODE_LENGTH_CHIPS
GLONASS L1 C/A code length [chips].
constexpr double GLONASS_C20
Second zonal coefficient of spherical harmonic expansion.
constexpr double GLONASS_GRAVITY_CORRECTION
Correction to acceleration of gravity at sea-level due to Atmosphere[uGal].
constexpr double GLONASS_MOON_Q0
(-63 deg 53 min 43.41 sec) [rad]
constexpr double GLONASS_L2_CA_DFREQ_HZ
Freq Bias for GLONASS L1 [Hz].
constexpr double GLONASS_J4
Fourth zonal harmonic of the geopotential.
constexpr double GLONASS_J2
Second zonal harmonic of the geopotential.
constexpr double GLONASS_SUN_Q0
(358 deg 28 min 33.04 sec) [rad]
constexpr double GLONASS_L1_CA_CODE_PERIOD_S
GLONASS L1 C/A code period [seconds].
constexpr double GLONASS_EARTH_INCLINATION
Mean inclination of ecliptic to equator (23 deg 26 min 33 sec) [rad].
constexpr double GLONASS_U0
Normal potential at surface of common terrestrial ellipsoid [m^2/s^2].
constexpr double GLONASS_L2_CA_CODE_PERIOD_S
GLONASS L1 C/A code period [seconds].
constexpr double GLONASS_EARTH_RADIUS
Equatorial radius of Earth [km].
constexpr double GLONASS_SUN_SEMI_MAJOR_AXIS
Semi-major axis of solar orbit [km];.
constexpr double GLONASS_MOON_INCLINATION
Inclination of lunar orbit to ecliptic plane (5 deg 08 min 43.4 sec) [rad].
constexpr double GLONASS_L1_CA_FREQ_HZ
L1 [Hz].
constexpr double GLONASS_LEAP_SECONDS[19][7]
Record of leap seconds definition for GLOT to GPST conversion and vice versa.
constexpr double GLONASS_SUN_Q1
TODO Why is the value greater than 60?(129596579.10 sec) [rad].
constexpr double GLONASS_J8
Eighth zonal harmonic of the geopotential.
constexpr double GLONASS_MOON_Q1
(477198 deg 50 min 56.79 sec) [rad]