GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
rtklib_rtcm3.h
Go to the documentation of this file.
1/*!
2 * \file rtklib_rtcm3.h
3 * \brief RTCM v3 functions headers
4 * \authors <ul>
5 * <li> 2007-2013, T. Takasu
6 * <li> 2017, Javier Arribas
7 * <li> 2017, Carles Fernandez
8 * </ul>
9 *
10 * This is a derived work from RTKLIB http://www.rtklib.com/
11 * The original source code at https://github.com/tomojitakasu/RTKLIB is
12 * released under the BSD 2-clause license with an additional exclusive clause
13 * that does not apply here. This additional clause is reproduced below:
14 *
15 * " The software package includes some companion executive binaries or shared
16 * libraries necessary to execute APs on Windows. These licenses succeed to the
17 * original ones of these software. "
18 *
19 * Neither the executive binaries nor the shared libraries are required by, used
20 * or included in GNSS-SDR.
21 *
22 * -----------------------------------------------------------------------------
23 * Copyright (C) 2007-2013, T. Takasu
24 * Copyright (C) 2017, Javier Arribas
25 * Copyright (C) 2017, Carles Fernandez
26 * All rights reserved.
27 *
28 * SPDX-License-Identifier: BSD-2-Clause
29 *
30 *
31 * -----------------------------------------------------------------------------
32 */
33
34#ifndef GNSS_SDR_RTKLIB_RTCM3_H
35#define GNSS_SDR_RTKLIB_RTCM3_H
36
37#include "rtklib.h"
38
39/* constants -----------------------------------------------------------------*/
40
41const double PRUNIT_GPS = 299792.458; /* rtcm ver.3 unit of gps pseudorange (m) */
42const double PRUNIT_GLO = 599584.916; /* rtcm ver.3 unit of glonass pseudorange (m) */
43const double RANGE_MS = SPEED_OF_LIGHT_M_S * 0.001; /* range in 1 ms */
44
45
46/* ssr update intervals ------------------------------------------------------*/
47const double SSRUDINT[16] = {
48 1, 2, 5, 10, 15, 30, 60, 120, 240, 300, 600, 900, 1800, 3600, 7200, 10800};
49
50
51/* ssr 3 and 7 signal and tracking mode ids ----------------------------------*/
52const int CODES_GPS[] = {
55 CODE_L5X};
56
57
58const int CODES_GLO[] = {
60
61
62const int CODES_GAL[] = {
66
67
68const int CODES_QZS[] = {
71
72
73const int CODES_BDS[] = {
75 CODE_L6X};
76
77
78const int CODES_SBS[] = {
80
81
82double getbitg(const unsigned char *buff, int pos, int len);
83
84void adjweek(rtcm_t *rtcm, double tow);
85
86int adjbdtweek(int week);
87
88void adjday_glot(rtcm_t *rtcm, double tod);
89
90double adjcp(rtcm_t *rtcm, int sat, int freq, double cp);
91
92int lossoflock(rtcm_t *rtcm, int sat, int freq, int lock);
93
94unsigned char snratio(double snr);
95
96int obsindex3(obs_t *obs, gtime_t time, int sat);
97
98int test_staid(rtcm_t *rtcm, int staid);
99
100int decode_head1001(rtcm_t *rtcm, int *sync);
101
102int decode_type1001(rtcm_t *rtcm);
103
104int decode_type1002(rtcm_t *rtcm);
105
106int decode_type1003(rtcm_t *rtcm);
107
108int decode_type1004(rtcm_t *rtcm);
109
110double getbits_38(const unsigned char *buff, int pos);
111
112int decode_type1005(rtcm_t *rtcm);
113
114int decode_type1006(rtcm_t *rtcm);
115
116int decode_type1007(rtcm_t *rtcm);
117
118int decode_type1008(rtcm_t *rtcm);
119
120int decode_head1009(rtcm_t *rtcm, int *sync);
121
122int decode_type1009(rtcm_t *rtcm);
123
124int decode_type1010(rtcm_t *rtcm);
125
126int decode_type1011(rtcm_t *rtcm);
127
128int decode_type1012(rtcm_t *rtcm);
129
130int decode_type1013(rtcm_t *rtcm);
131
132int decode_type1019(rtcm_t *rtcm, bool pre_2009_file = false);
133
134int decode_type1020(rtcm_t *rtcm);
135
136int decode_type1021(rtcm_t *rtcm);
137
138int decode_type1022(rtcm_t *rtcm);
139
140int decode_type1023(rtcm_t *rtcm);
141
142int decode_type1024(rtcm_t *rtcm);
143
144int decode_type1025(rtcm_t *rtcm);
145
146int decode_type1026(rtcm_t *rtcm);
147
148int decode_type1027(rtcm_t *rtcm);
149
150int decode_type1029(rtcm_t *rtcm);
151
152int decode_type1030(rtcm_t *rtcm);
153
154int decode_type1031(rtcm_t *rtcm);
155
156int decode_type1032(rtcm_t *rtcm);
157
158int decode_type1033(rtcm_t *rtcm);
159
160int decode_type1034(rtcm_t *rtcm);
161
162int decode_type1035(rtcm_t *rtcm);
163
164int decode_type1037(rtcm_t *rtcm);
165
166int decode_type1038(rtcm_t *rtcm);
167
168int decode_type1039(rtcm_t *rtcm);
169
170int decode_type1044(rtcm_t *rtcm, bool pre_2009_file = false);
171
172int decode_type1045(rtcm_t *rtcm);
173
174int decode_type1046(rtcm_t *rtcm);
175
176int decode_type1047(rtcm_t *rtcm);
177
178int decode_type1063(rtcm_t *rtcm);
179
180int decode_ssr1_head(rtcm_t *rtcm, int sys, int *sync, int *iod,
181 double *udint, int *refd, int *hsize);
182
183int decode_ssr2_head(rtcm_t *rtcm, int sys, int *sync, int *iod,
184 double *udint, int *hsize);
185
186int decode_ssr7_head(rtcm_t *rtcm, int sys, int *sync, int *iod,
187 double *udint, int *dispe, int *mw, int *hsize);
188
189int decode_ssr1(rtcm_t *rtcm, int sys);
190
191int decode_ssr2(rtcm_t *rtcm, int sys);
192
193int decode_ssr3(rtcm_t *rtcm, int sys);
194
195int decode_ssr4(rtcm_t *rtcm, int sys);
196
197int decode_ssr5(rtcm_t *rtcm, int sys);
198
199int decode_ssr6(rtcm_t *rtcm, int sys);
200
201int decode_ssr7(rtcm_t *rtcm, int sys);
202
203void sigindex(int sys, const unsigned char *code, const int *freq, int n,
204 const char *opt, int *ind);
205
206void save_msm_obs(rtcm_t *rtcm, int sys, msm_h_t *h, const double *r,
207 const double *pr, const double *cp, const double *rr,
208 const double *rrf, const double *cnr, const int *lock,
209 const int *ex, const int *half);
210
211int decode_msm_head(rtcm_t *rtcm, int sys, int *sync, int *iod,
212 msm_h_t *h, int *hsize);
213
214int decode_msm0(rtcm_t *rtcm, int sys);
215
216int decode_msm4(rtcm_t *rtcm, int sys);
217
218int decode_msm5(rtcm_t *rtcm, int sys);
219
220int decode_msm6(rtcm_t *rtcm, int sys);
221
222int decode_msm7(rtcm_t *rtcm, int sys);
223
224int decode_type1230(rtcm_t *rtcm);
225
226int decode_rtcm3(rtcm_t *rtcm);
227
228
229#endif
constexpr double SPEED_OF_LIGHT_M_S
Speed of light in vacuum [m/s].
constexpr uint32_t CODE_L1Q
obs code: B1Q (BDS)
constexpr uint32_t CODE_L5I
obs code: L5/E5aI (GPS,GAL,QZS,SBS)
constexpr uint32_t CODE_L2C
obs code: L2C/A,G1C/A (GPS,GLO)
constexpr uint32_t CODE_L8Q
obs code: E5(a+b)Q (GAL)
constexpr uint32_t CODE_L6B
obs code: E6B (GAL)
constexpr uint32_t CODE_L8I
obs code: E5(a+b)I (GAL)
constexpr uint32_t CODE_L6L
obs code: LEXL (QZS)
constexpr uint32_t CODE_L2Y
obs code: L2Y (GPS)
constexpr uint32_t CODE_L2D
obs code: L2 L1C/A-(P2-P1) (GPS)
constexpr uint32_t CODE_L2S
obs code: L2C(M) (GPS,QZS)
constexpr uint32_t CODE_L1L
obs code: L1C(P) (GPS,QZS)
constexpr uint32_t CODE_L6A
obs code: E6A (GAL)
constexpr uint32_t CODE_L2M
obs code: L2M (GPS)
constexpr uint32_t CODE_L2P
obs code: L2P,G2P (GPS,GLO)
constexpr uint32_t CODE_L1Z
obs code: E1A+B+C,L1SAIF (GAL,QZS)
constexpr uint32_t CODE_L6Q
obs code: B3Q (BDS)
constexpr uint32_t CODE_L1P
obs code: L1P,G1P (GPS,GLO)
constexpr uint32_t CODE_L1W
obs code: L1 Z-track (GPS)
constexpr uint32_t CODE_L1C
obs code: L1C/A,G1C/A,E1C (GPS,GLO,GAL,QZS,SBS)
constexpr uint32_t CODE_L1B
obs code: E1B (GAL)
constexpr uint32_t CODE_L7Q
obs code: E5bQ,B2Q (GAL,BDS)
constexpr uint32_t CODE_L6S
obs code: LEXS (QZS)
constexpr uint32_t CODE_L1Y
obs code: L1Y (GPS)
constexpr uint32_t CODE_L1A
obs code: E1A (GAL)
constexpr uint32_t CODE_L5Q
obs code: L5/E5aQ (GPS,GAL,QZS,SBS)
constexpr uint32_t CODE_L6Z
obs code: E6A+B+C (GAL)
constexpr uint32_t CODE_L1M
obs code: L1M (GPS)
constexpr uint32_t CODE_L7I
obs code: E5bI,B2I (GAL,BDS)
constexpr uint32_t CODE_L7X
obs code: E5bI+Q,B2I+Q (GAL,BDS)
constexpr uint32_t CODE_L8X
obs code: E5(a+b)I+Q (GAL)
constexpr uint32_t CODE_L2X
obs code: L2C(M+L),B1I+Q (GPS,QZS,BDS)
constexpr uint32_t CODE_L1I
obs code: B1I (BDS)
constexpr uint32_t CODE_L6X
obs code: E6B+C,LEXS+L,B3I+Q (GAL,QZS,BDS)
constexpr uint32_t CODE_L2W
obs code: L2 Z-track (GPS)
constexpr uint32_t CODE_L2L
obs code: L2C(L) (GPS,QZS)
constexpr uint32_t CODE_L5X
obs code: L5/E5aI+Q/L5B+C (GPS,GAL,QZS,IRN,SBS)
constexpr uint32_t CODE_L6C
obs code: E6C (GAL)
constexpr uint32_t CODE_L1S
obs code: L1C(D) (GPS,QZS)
constexpr uint32_t CODE_L6I
obs code: B3I (BDS)
constexpr uint32_t CODE_L1X
obs code: E1B+C,L1C(D+P) (GAL,QZS)
main header file for the rtklib library