34#ifndef GNSS_SDR_RTKLIB_RTCM3_H
35#define GNSS_SDR_RTKLIB_RTCM3_H
41const double PRUNIT_GPS = 299792.458;
42const double PRUNIT_GLO = 599584.916;
47const double SSRUDINT[16] = {
48 1, 2, 5, 10, 15, 30, 60, 120, 240, 300, 600, 900, 1800, 3600, 7200, 10800};
52const int CODES_GPS[] = {
58const int CODES_GLO[] = {
62const int CODES_GAL[] = {
68const int CODES_QZS[] = {
73const int CODES_BDS[] = {
78const int CODES_SBS[] = {
82double getbitg(
const unsigned char *buff,
int pos,
int len);
84void adjweek(
rtcm_t *rtcm,
double tow);
86int adjbdtweek(
int week);
88void adjday_glot(
rtcm_t *rtcm,
double tod);
90double adjcp(
rtcm_t *rtcm,
int sat,
int freq,
double cp);
92int lossoflock(
rtcm_t *rtcm,
int sat,
int freq,
int lock);
94unsigned char snratio(
double snr);
98int test_staid(
rtcm_t *rtcm,
int staid);
100int decode_head1001(
rtcm_t *rtcm,
int *sync);
102int decode_type1001(
rtcm_t *rtcm);
104int decode_type1002(
rtcm_t *rtcm);
106int decode_type1003(
rtcm_t *rtcm);
108int decode_type1004(
rtcm_t *rtcm);
110double getbits_38(
const unsigned char *buff,
int pos);
112int decode_type1005(
rtcm_t *rtcm);
114int decode_type1006(
rtcm_t *rtcm);
116int decode_type1007(
rtcm_t *rtcm);
118int decode_type1008(
rtcm_t *rtcm);
120int decode_head1009(
rtcm_t *rtcm,
int *sync);
122int decode_type1009(
rtcm_t *rtcm);
124int decode_type1010(
rtcm_t *rtcm);
126int decode_type1011(
rtcm_t *rtcm);
128int decode_type1012(
rtcm_t *rtcm);
130int decode_type1013(
rtcm_t *rtcm);
132int decode_type1019(
rtcm_t *rtcm,
bool pre_2009_file =
false);
134int decode_type1020(
rtcm_t *rtcm);
136int decode_type1021(
rtcm_t *rtcm);
138int decode_type1022(
rtcm_t *rtcm);
140int decode_type1023(
rtcm_t *rtcm);
142int decode_type1024(
rtcm_t *rtcm);
144int decode_type1025(
rtcm_t *rtcm);
146int decode_type1026(
rtcm_t *rtcm);
148int decode_type1027(
rtcm_t *rtcm);
150int decode_type1029(
rtcm_t *rtcm);
152int decode_type1030(
rtcm_t *rtcm);
154int decode_type1031(
rtcm_t *rtcm);
156int decode_type1032(
rtcm_t *rtcm);
158int decode_type1033(
rtcm_t *rtcm);
160int decode_type1034(
rtcm_t *rtcm);
162int decode_type1035(
rtcm_t *rtcm);
164int decode_type1037(
rtcm_t *rtcm);
166int decode_type1038(
rtcm_t *rtcm);
168int decode_type1039(
rtcm_t *rtcm);
170int decode_type1044(
rtcm_t *rtcm,
bool pre_2009_file =
false);
172int decode_type1045(
rtcm_t *rtcm);
174int decode_type1046(
rtcm_t *rtcm);
176int decode_type1047(
rtcm_t *rtcm);
178int decode_type1063(
rtcm_t *rtcm);
180int decode_ssr1_head(
rtcm_t *rtcm,
int sys,
int *sync,
int *iod,
181 double *udint,
int *refd,
int *hsize);
183int decode_ssr2_head(
rtcm_t *rtcm,
int sys,
int *sync,
int *iod,
184 double *udint,
int *hsize);
186int decode_ssr7_head(
rtcm_t *rtcm,
int sys,
int *sync,
int *iod,
187 double *udint,
int *dispe,
int *mw,
int *hsize);
189int decode_ssr1(
rtcm_t *rtcm,
int sys);
191int decode_ssr2(
rtcm_t *rtcm,
int sys);
193int decode_ssr3(
rtcm_t *rtcm,
int sys);
195int decode_ssr4(
rtcm_t *rtcm,
int sys);
197int decode_ssr5(
rtcm_t *rtcm,
int sys);
199int decode_ssr6(
rtcm_t *rtcm,
int sys);
201int decode_ssr7(
rtcm_t *rtcm,
int sys);
203void sigindex(
int sys,
const unsigned char *code,
const int *freq,
int n,
204 const char *opt,
int *ind);
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);
211int decode_msm_head(
rtcm_t *rtcm,
int sys,
int *sync,
int *iod,
214int decode_msm0(
rtcm_t *rtcm,
int sys);
216int decode_msm4(
rtcm_t *rtcm,
int sys);
218int decode_msm5(
rtcm_t *rtcm,
int sys);
220int decode_msm6(
rtcm_t *rtcm,
int sys);
222int decode_msm7(
rtcm_t *rtcm,
int sys);
224int decode_type1230(
rtcm_t *rtcm);
226int decode_rtcm3(
rtcm_t *rtcm);
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