GNSS-SDR  0.0.19
An Open Source GNSS Software Defined Receiver
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 
41 const double PRUNIT_GPS = 299792.458; /* rtcm ver.3 unit of gps pseudorange (m) */
42 const double PRUNIT_GLO = 599584.916; /* rtcm ver.3 unit of glonass pseudorange (m) */
43 const double RANGE_MS = SPEED_OF_LIGHT_M_S * 0.001; /* range in 1 ms */
44 
45 
46 /* ssr update intervals ------------------------------------------------------*/
47 const 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 ----------------------------------*/
52 const int CODES_GPS[] = {
55  CODE_L5X};
56 
57 
58 const int CODES_GLO[] = {
60 
61 
62 const int CODES_GAL[] = {
66 
67 
68 const int CODES_QZS[] = {
71 
72 
73 const int CODES_BDS[] = {
75  CODE_L6X};
76 
77 
78 const int CODES_SBS[] = {
80 
81 
82 double getbitg(const unsigned char *buff, int pos, int len);
83 
84 void adjweek(rtcm_t *rtcm, double tow);
85 
86 int adjbdtweek(int week);
87 
88 void adjday_glot(rtcm_t *rtcm, double tod);
89 
90 double adjcp(rtcm_t *rtcm, int sat, int freq, double cp);
91 
92 int lossoflock(rtcm_t *rtcm, int sat, int freq, int lock);
93 
94 unsigned char snratio(double snr);
95 
96 int obsindex3(obs_t *obs, gtime_t time, int sat);
97 
98 int test_staid(rtcm_t *rtcm, int staid);
99 
100 int decode_head1001(rtcm_t *rtcm, int *sync);
101 
102 int decode_type1001(rtcm_t *rtcm);
103 
104 int decode_type1002(rtcm_t *rtcm);
105 
106 int decode_type1003(rtcm_t *rtcm);
107 
108 int decode_type1004(rtcm_t *rtcm);
109 
110 double getbits_38(const unsigned char *buff, int pos);
111 
112 int decode_type1005(rtcm_t *rtcm);
113 
114 int decode_type1006(rtcm_t *rtcm);
115 
116 int decode_type1007(rtcm_t *rtcm);
117 
118 int decode_type1008(rtcm_t *rtcm);
119 
120 int decode_head1009(rtcm_t *rtcm, int *sync);
121 
122 int decode_type1009(rtcm_t *rtcm);
123 
124 int decode_type1010(rtcm_t *rtcm);
125 
126 int decode_type1011(rtcm_t *rtcm);
127 
128 int decode_type1012(rtcm_t *rtcm);
129 
130 int decode_type1013(rtcm_t *rtcm);
131 
132 int decode_type1019(rtcm_t *rtcm, bool pre_2009_file = false);
133 
134 int decode_type1020(rtcm_t *rtcm);
135 
136 int decode_type1021(rtcm_t *rtcm);
137 
138 int decode_type1022(rtcm_t *rtcm);
139 
140 int decode_type1023(rtcm_t *rtcm);
141 
142 int decode_type1024(rtcm_t *rtcm);
143 
144 int decode_type1025(rtcm_t *rtcm);
145 
146 int decode_type1026(rtcm_t *rtcm);
147 
148 int decode_type1027(rtcm_t *rtcm);
149 
150 int decode_type1029(rtcm_t *rtcm);
151 
152 int decode_type1030(rtcm_t *rtcm);
153 
154 int decode_type1031(rtcm_t *rtcm);
155 
156 int decode_type1032(rtcm_t *rtcm);
157 
158 int decode_type1033(rtcm_t *rtcm);
159 
160 int decode_type1034(rtcm_t *rtcm);
161 
162 int decode_type1035(rtcm_t *rtcm);
163 
164 int decode_type1037(rtcm_t *rtcm);
165 
166 int decode_type1038(rtcm_t *rtcm);
167 
168 int decode_type1039(rtcm_t *rtcm);
169 
170 int decode_type1044(rtcm_t *rtcm, bool pre_2009_file = false);
171 
172 int decode_type1045(rtcm_t *rtcm);
173 
174 int decode_type1046(rtcm_t *rtcm);
175 
176 int decode_type1047(rtcm_t *rtcm);
177 
178 int decode_type1063(rtcm_t *rtcm);
179 
180 int decode_ssr1_head(rtcm_t *rtcm, int sys, int *sync, int *iod,
181  double *udint, int *refd, int *hsize);
182 
183 int decode_ssr2_head(rtcm_t *rtcm, int sys, int *sync, int *iod,
184  double *udint, int *hsize);
185 
186 int decode_ssr7_head(rtcm_t *rtcm, int sys, int *sync, int *iod,
187  double *udint, int *dispe, int *mw, int *hsize);
188 
189 int decode_ssr1(rtcm_t *rtcm, int sys);
190 
191 int decode_ssr2(rtcm_t *rtcm, int sys);
192 
193 int decode_ssr3(rtcm_t *rtcm, int sys);
194 
195 int decode_ssr4(rtcm_t *rtcm, int sys);
196 
197 int decode_ssr5(rtcm_t *rtcm, int sys);
198 
199 int decode_ssr6(rtcm_t *rtcm, int sys);
200 
201 int decode_ssr7(rtcm_t *rtcm, int sys);
202 
203 void sigindex(int sys, const unsigned char *code, const int *freq, int n,
204  const char *opt, int *ind);
205 
206 void 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 
211 int decode_msm_head(rtcm_t *rtcm, int sys, int *sync, int *iod,
212  msm_h_t *h, int *hsize);
213 
214 int decode_msm0(rtcm_t *rtcm, int sys);
215 
216 int decode_msm4(rtcm_t *rtcm, int sys);
217 
218 int decode_msm5(rtcm_t *rtcm, int sys);
219 
220 int decode_msm6(rtcm_t *rtcm, int sys);
221 
222 int decode_msm7(rtcm_t *rtcm, int sys);
223 
224 int decode_type1230(rtcm_t *rtcm);
225 
226 int decode_rtcm3(rtcm_t *rtcm);
227 
228 
229 #endif
constexpr uint32_t CODE_L1S
obs code: L1C(D) (GPS,QZS)
constexpr uint32_t CODE_L6L
obs code: LEXL (QZS)
constexpr uint32_t CODE_L6Q
obs code: B3Q (BDS)
constexpr uint32_t CODE_L2Y
obs code: L2Y (GPS)
constexpr uint32_t CODE_L6B
obs code: E6B (GAL)
Definition: rtklib.h:874
constexpr uint32_t CODE_L2D
obs code: L2 L1C/A-(P2-P1) (GPS)
constexpr uint32_t CODE_L1B
obs code: E1B (GAL)
constexpr uint32_t CODE_L1Q
obs code: B1Q (BDS)
constexpr uint32_t CODE_L2M
obs code: L2M (GPS)
constexpr uint32_t CODE_L2L
obs code: L2C(L) (GPS,QZS)
constexpr uint32_t CODE_L1A
obs code: E1A (GAL)
constexpr uint32_t CODE_L5X
obs code: L5/E5aI+Q/L5B+C (GPS,GAL,QZS,IRN,SBS)
constexpr uint32_t CODE_L8X
obs code: E5(a+b)I+Q (GAL)
constexpr uint32_t CODE_L2P
obs code: L2P,G2P (GPS,GLO)
constexpr uint32_t CODE_L8Q
obs code: E5(a+b)Q (GAL)
constexpr uint32_t CODE_L8I
obs code: E5(a+b)I (GAL)
constexpr uint32_t CODE_L1Z
obs code: E1A+B+C,L1SAIF (GAL,QZS)
constexpr uint32_t CODE_L7I
obs code: E5bI,B2I (GAL,BDS)
constexpr uint32_t CODE_L7X
obs code: E5bI+Q,B2I+Q (GAL,BDS)
main header file for the rtklib library
constexpr uint32_t CODE_L1I
obs code: B1I (BDS)
constexpr uint32_t CODE_L6I
obs code: B3I (BDS)
constexpr uint32_t CODE_L5I
obs code: L5/E5aI (GPS,GAL,QZS,SBS)
constexpr uint32_t CODE_L1Y
obs code: L1Y (GPS)
constexpr uint32_t CODE_L6A
obs code: E6A (GAL)
constexpr uint32_t CODE_L1L
obs code: L1C(P) (GPS,QZS)
constexpr uint32_t CODE_L1P
obs code: L1P,G1P (GPS,GLO)
constexpr uint32_t CODE_L6C
obs code: E6C (GAL)
constexpr uint32_t CODE_L2S
obs code: L2C(M) (GPS,QZS)
constexpr uint32_t CODE_L5Q
obs code: L5/E5aQ (GPS,GAL,QZS,SBS)
constexpr uint32_t CODE_L6X
obs code: E6B+C,LEXS+L,B3I+Q (GAL,QZS,BDS)
constexpr uint32_t CODE_L2X
obs code: L2C(M+L),B1I+Q (GPS,QZS,BDS)
constexpr uint32_t CODE_L1M
obs code: L1M (GPS)
constexpr uint32_t CODE_L1X
obs code: E1B+C,L1C(D+P) (GAL,QZS)
constexpr double SPEED_OF_LIGHT_M_S
Speed of light in vacuum [m/s].
constexpr uint32_t CODE_L6Z
obs code: E6A+B+C (GAL)
Definition: rtklib.h:375
constexpr uint32_t CODE_L1C
obs code: L1C/A,G1C/A,E1C (GPS,GLO,GAL,QZS,SBS)
constexpr uint32_t CODE_L6S
obs code: LEXS (QZS)
constexpr uint32_t CODE_L2W
obs code: L2 Z-track (GPS)
constexpr uint32_t CODE_L7Q
obs code: E5bQ,B2Q (GAL,BDS)
constexpr uint32_t CODE_L2C
obs code: L2C/A,G1C/A (GPS,GLO)
constexpr uint32_t CODE_L1W
obs code: L1 Z-track (GPS)