source: ntrip/trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.h@ 10995

Last change on this file since 10995 was 10995, checked in by stuerze, 6 weeks ago

minor changes

  • Property svn:executable set to *
File size: 7.2 KB
Line 
1#ifndef RTCM3_CLOCK_ORBIT_RTCM_NEW_H
2#define RTCM3_CLOCK_ORBIT_RTCM_NEW_H
3
4/* Programheader
5
6 Name: clock_orbit_rtcm_new.h
7 Project: RTCM3
8 Version: $Id: clock_orbit_rtcm_new.h 9050 2020-08-27 14:01:42Z stuerze $
9 Authors: Dirk Stöcker, Andrea Stürze
10 Description: state space approach: RTCM_NEW
11 */
12
13#include <string.h>
14#include "clock_orbit.h"
15
16class SsrCorrRtcmNew: public SsrCorr {
17
18public:
19 SsrCorrRtcmNew();
20 ~SsrCorrRtcmNew();
21
22 void setCorBase() {
23 COBBASE_GPS = 1057;
24 COBBASE_GLONASS = 41;
25 COBBASE_GALILEO = 62;
26 COBBASE_BDS = 63;
27 COBBASE_QZSS = 64;
28 COBBASE_NUM = 5;
29 corbase
30 << COBBASE_GPS
31 << COBBASE_GLONASS
32 << COBBASE_GALILEO
33 << COBBASE_BDS
34 << COBBASE_QZSS;
35 };
36
37 void setCorOffset() { };
38
39 void setCoType() {
40 COTYPE_GPSORBIT = COBBASE_GPS;
41 COTYPE_GPSCLOCK = COBBASE_GPS + 1;
42 COTYPE_GPSCOMBINED = COBBASE_GPS + 3;
43 COTYPE_GPSURA = COBBASE_GPS + 4;
44 COTYPE_GPSHR = COBBASE_GPS + 5;
45
46 COTYPE_GLONASSORBIT = COBBASE_GLONASS;
47 COTYPE_GLONASSCLOCK = COBBASE_GLONASS + 1;
48 COTYPE_GLONASSCOMBINED = COBBASE_GLONASS + 3;
49 COTYPE_GLONASSURA = COBBASE_GLONASS + 4;
50 COTYPE_GLONASSHR = COBBASE_GLONASS + 5;
51
52 COTYPE_GALILEOORBIT = COBBASE_GALILEO;
53 COTYPE_GALILEOCLOCK = COBBASE_GALILEO + 3;
54 COTYPE_GALILEOCOMBINED = COBBASE_GALILEO + 9;
55 COTYPE_GALILEOURA = COBBASE_GALILEO + 12;
56 COTYPE_GALILEOHR = COBBASE_GALILEO + 15;
57
58 COTYPE_BDSORBIT = COBBASE_BDS;
59 COTYPE_BDSCLOCK = COBBASE_BDS + 3;
60 COTYPE_BDSCOMBINED = COBBASE_BDS + 9;
61 COTYPE_BDSURA = COBBASE_BDS + 12;
62 COTYPE_BDSHR = COBBASE_BDS + 15;
63
64 COTYPE_QZSSORBIT = COBBASE_QZSS;
65 COTYPE_QZSSCLOCK = COBBASE_QZSS + 3;
66 COTYPE_QZSSCOMBINED = COBBASE_QZSS + 9;
67 COTYPE_QZSSURA = COBBASE_QZSS + 12;
68 COTYPE_QZSSHR = COBBASE_QZSS + 15;
69
70 COTYPE_AUTO = 0;
71 };
72
73 void setCbType() {
74 CBTYPE_GPS = COBBASE_GPS + 2;
75 CBTYPE_GLONASS = COBBASE_GLONASS + 2;
76 CBTYPE_GALILEO = COBBASE_GALILEO + 6;
77 CBTYPE_BDS = COBBASE_BDS + 6;
78 CBTYPE_QZSS = COBBASE_QZSS + 6;
79 CBTYPE_AUTO = 0;
80 };
81
82 void setPbType() {
83 PBTYPE_BASE = 85;
84 PBTYPE_GPS = PBTYPE_BASE;
85 PBTYPE_GLONASS = PBTYPE_BASE + 1;
86 PBTYPE_GALILEO = PBTYPE_BASE + 2;
87 PBTYPE_BDS = PBTYPE_BASE + 3;
88 PBTYPE_QZSS = PBTYPE_BASE + 4;
89 PBTYPE_AUTO = 0;
90 };
91
92 void setPbExtType() {
93 PBEXTTYPE_BASE = 90;
94 PBEXTTYPE_GPS = PBEXTTYPE_BASE;
95 PBEXTTYPE_GLONASS = PBEXTTYPE_BASE + 1;
96 PBEXTTYPE_GALILEO = PBEXTTYPE_BASE + 2;
97 PBEXTTYPE_BDS = PBEXTTYPE_BASE + 3;
98 PBEXTTYPE_QZSS = PBEXTTYPE_BASE + 4;
99 PBEXTTYPE_AUTO = 0;
100 };
101
102 void setVtecType() {};
103
104 void setSatAntType() {
105 SATANTTYPE_BASE = 80;
106 SATANTTYPE_GPS = SATANTTYPE_BASE;
107 SATANTTYPE_GLONASS = SATANTTYPE_BASE + 1;
108 SATANTTYPE_GALILEO = SATANTTYPE_BASE + 2;
109 SATANTTYPE_BDS = SATANTTYPE_BASE + 3;
110 SATANTTYPE_QZSS = SATANTTYPE_BASE + 4;
111 SATANTTYPE_AUTO = 0;
112 };
113
114 void setGridDefType() {
115 GRID_BASE = 61;
116 }
117
118 void setTropoType() {
119 TROPOTYPE_BASE = 95;
120 }
121
122 void setRegIonoType() {
123 REGIONOTYPE_BASE = 96;
124 REGIONOTYPE_GPS = REGIONOTYPE_BASE;
125 REGIONOTYPE_GLONASS = REGIONOTYPE_BASE + 1;
126 REGIONOTYPE_GALILEO = REGIONOTYPE_BASE + 2;
127 REGIONOTYPE_BDS = REGIONOTYPE_BASE + 3;
128 REGIONOTYPE_QZSS = REGIONOTYPE_BASE + 4;
129 REGIONOTYPE_AUTO = 0;
130 }
131
132 void setMetaDataType() {
133 METADATATYPE_BASE = 60;
134 }
135
136 void setCodeType() {
137 CODETYPE_RESERVED = 99;
138 // GPS
139 CODETYPE_GPS_L1_CA = 0;
140 CODETYPE_GPS_L1_P = 1;
141 CODETYPE_GPS_L1_Z = 2;
142 // 3 + 4 RESERVED
143 CODETYPE_GPS_L2_CA = 5;
144 CODETYPE_GPS_SEMI_CODELESS = 6;
145 CODETYPE_GPS_L2C_M = 7;
146 CODETYPE_GPS_L2C_L = 8;
147 CODETYPE_GPS_L2C_ML = 9;
148 CODETYPE_GPS_L2_P = 10;
149 CODETYPE_GPS_L2_Z = 11;
150 //12 + 13 RESEVED
151 CODETYPE_GPS_L5_I = 14;
152 CODETYPE_GPS_L5_Q = 15;
153 CODETYPE_GPS_L5_IQ = 16;
154 CODETYPE_GPS_L1C_D = 17;
155 CODETYPE_GPS_L1C_P = 18;
156 CODETYPE_GPS_L1C_DP = 19;
157 // > 19 RESEVED
158
159 // GLONASS
160 CODETYPE_GLONASS_L1_CA = 0;
161 CODETYPE_GLONASS_L1_P = 1;
162 CODETYPE_GLONASS_L2_CA = 2;
163 CODETYPE_GLONASS_L2_P = 3;
164 // > 3 RESERVED
165
166 // Galileo
167 CODETYPE_GALILEO_E1_A = 0;
168 CODETYPE_GALILEO_E1_B = 1;
169 CODETYPE_GALILEO_E1_C = 2;
170 CODETYPE_GALILEO_E1_BC = 3;
171 CODETYPE_GALILEO_E1_ABC = 4;
172 CODETYPE_GALILEO_E5A_I = 5;
173 CODETYPE_GALILEO_E5A_Q = 6;
174 CODETYPE_GALILEO_E5A_IQ = 7;
175 CODETYPE_GALILEO_E5B_I = 8;
176 CODETYPE_GALILEO_E5B_Q = 9;
177 CODETYPE_GALILEO_E5B_IQ = 10;
178 CODETYPE_GALILEO_E5_I = 11;
179 CODETYPE_GALILEO_E5_Q = 12;
180 CODETYPE_GALILEO_E5_IQ = 13;
181 CODETYPE_GALILEO_E6_A = 14;
182 CODETYPE_GALILEO_E6_B = 15;
183 CODETYPE_GALILEO_E6_C = 16;
184 CODETYPE_GALILEO_E6_BC = 17;
185 CODETYPE_GALILEO_E6_ABC = 18;
186 // > 18 RESERVED
187
188 CODETYPE_QZSS_L1_CA = 0;
189 CODETYPE_QZSS_L1C_D = 1;
190 CODETYPE_QZSS_L1C_P = 2;
191 CODETYPE_QZSS_L2C_M = 3;
192 CODETYPE_QZSS_L2C_L = 4;
193 CODETYPE_QZSS_L2C_ML = 5;
194 CODETYPE_QZSS_L5_I = 6;
195 CODETYPE_QZSS_L5_Q = 7;
196 CODETYPE_QZSS_L5_IQ = 8;
197 CODETYPE_QZSS_L6_D = 9;
198 CODETYPE_QZSS_L6_P = 10;
199 CODETYPE_QZSS_L6_DP = 11;
200 CODETYPE_QZSS_L1C_DP = 12;
201 // > 12 RESERVED
202
203 // BDS
204 CODETYPE_BDS_B1_I = 0;
205 CODETYPE_BDS_B1_Q = 1;
206 CODETYPE_BDS_B1_IQ = 2;
207 CODETYPE_BDS_B3_I = 3;
208 CODETYPE_BDS_B3_Q = 4;
209 CODETYPE_BDS_B3_IQ = 5;
210 CODETYPE_BDS_B2_I = 6;
211 CODETYPE_BDS_B2_Q = 7;
212 CODETYPE_BDS_B2_IQ = 8;
213 CODETYPE_BDS_B1C_D = 9;
214 CODETYPE_BDS_B1C_P = 10;
215 CODETYPE_BDS_B1C_DP = 11;
216 CODETYPE_BDS_B2a_D = 12;
217 CODETYPE_BDS_B2a_P = 13;
218 CODETYPE_BDS_B2a_DP = 14;
219 CODETYPE_BDS_B2b_D = 15;
220 // > 15 RESEVED
221 }
222
223 std::string codeTypeToRnxType(char system, CodeType type);
224 SsrCorr::CodeType rnxTypeToCodeType(char system, std::string type);
225
226 size_t MakeClockOrbit(const struct ClockOrbit *co, ClockOrbitType type, int moremessagesfollow, char *buffer, size_t size);
227 size_t MakeCodeBias(const struct CodeBias *b, CodeBiasType type, int moremessagesfollow, char *buffer, size_t size);
228 size_t MakePhaseBias(const struct PhaseBias *b, PhaseBiasType type, int moremessagesfollow, char *buffer, size_t size);
229 size_t MakeVTEC(const struct VTEC *v, int moremessagesfollow, char *buffer, size_t size);
230 enum GCOB_RETURN GetSSR(struct ClockOrbit *co, struct CodeBias *b, struct VTEC *v, struct PhaseBias *pb, const char *buffer, size_t size, int *bytesused);
231 };
232
233#endif /* RTCM3_CLOCK_ORBIT_RTCM_H */
Note: See TracBrowser for help on using the repository browser.