source: ntrip/trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_igs.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: 8.0 KB
Line 
1#ifndef RTCM3_CLOCK_ORBIT_IGS_H
2#define RTCM3_CLOCK_ORBIT_IGS_H
3
4/* Programheader
5
6 Name: clock_orbit_igs.h
7 Project: RTCM3
8 Version: $Id: clock_orbit_igs.h 8966 2020-07-01 07:48:35Z stuerze $
9 Authors: Dirk Stöcker, Andrea Stürze
10 Description: state space approach: IGS
11 */
12
13#include <string.h>
14#include "clock_orbit.h"
15
16class SsrCorrIgs: public SsrCorr {
17
18public:
19 SsrCorrIgs();
20 ~SsrCorrIgs();
21
22 void setCorBase() {
23 COBBASE_GPS = 21;
24 COBBASE_GLONASS = 41;
25 COBBASE_GALILEO = 61;
26 COBBASE_QZSS = 81;
27 COBBASE_BDS = 101;
28 COBBASE_SBAS = 121;
29 COBBASE_NUM = 6;
30
31 corbase << COBBASE_GPS
32 << COBBASE_GLONASS
33 << COBBASE_GALILEO
34 << COBBASE_QZSS
35 << COBBASE_SBAS
36 << COBBASE_BDS;
37 }
38
39 void setCorOffset() {
40 COBOFS_ORBIT = 0; // GPS: IM21
41 COBOFS_CLOCK = 1; // GPS: IM22
42 COBOFS_COMBINED = 2; // GPS: IM23
43 COBOFS_HR = 3; // GPS: IM24
44 COBOFS_CBIAS = 4; // GPS: IM25
45 COBOFS_PBIAS = 5; // GPS: IM26
46 COBOFS_URA = 6; // GPS: IM27
47 COBOFS_NUM = 7;
48 };
49
50 void setCoType() {
51 COTYPE_GPSORBIT = COBBASE_GPS + COBOFS_ORBIT;
52 COTYPE_GPSCLOCK = COBBASE_GPS + COBOFS_CLOCK;
53 COTYPE_GPSCOMBINED = COBBASE_GPS + COBOFS_COMBINED;
54 COTYPE_GPSHR = COBBASE_GPS + COBOFS_HR;
55 COTYPE_GPSURA = COBBASE_GPS + COBOFS_URA;
56
57 COTYPE_GLONASSORBIT = COBBASE_GLONASS + COBOFS_ORBIT;
58 COTYPE_GLONASSCLOCK = COBBASE_GLONASS + COBOFS_CLOCK;
59 COTYPE_GLONASSCOMBINED = COBBASE_GLONASS + COBOFS_COMBINED;
60 COTYPE_GLONASSHR = COBBASE_GLONASS + COBOFS_HR;
61 COTYPE_GLONASSURA = COBBASE_GLONASS + COBOFS_URA,
62
63 COTYPE_GALILEOORBIT = COBBASE_GALILEO + COBOFS_ORBIT;
64 COTYPE_GALILEOCLOCK = COBBASE_GALILEO + COBOFS_CLOCK;
65 COTYPE_GALILEOCOMBINED = COBBASE_GALILEO + COBOFS_COMBINED;
66 COTYPE_GALILEOHR = COBBASE_GALILEO + COBOFS_HR;
67 COTYPE_GALILEOURA = COBBASE_GALILEO + COBOFS_URA;
68
69 COTYPE_QZSSORBIT = COBBASE_QZSS + COBOFS_ORBIT;
70 COTYPE_QZSSCLOCK = COBBASE_QZSS + COBOFS_CLOCK;
71 COTYPE_QZSSCOMBINED = COBBASE_QZSS + COBOFS_COMBINED;
72 COTYPE_QZSSHR = COBBASE_QZSS + COBOFS_HR;
73 COTYPE_QZSSURA = COBBASE_QZSS + COBOFS_URA;
74
75 COTYPE_SBASORBIT = COBBASE_SBAS + COBOFS_ORBIT;
76 COTYPE_SBASCLOCK = COBBASE_SBAS + COBOFS_CLOCK;
77 COTYPE_SBASCOMBINED = COBBASE_SBAS + COBOFS_COMBINED;
78 COTYPE_SBASHR = COBBASE_SBAS + COBOFS_HR;
79 COTYPE_SBASURA = COBBASE_SBAS + COBOFS_URA;
80
81 COTYPE_BDSORBIT = COBBASE_BDS + COBOFS_ORBIT;
82 COTYPE_BDSCLOCK = COBBASE_BDS + COBOFS_CLOCK;
83 COTYPE_BDSCOMBINED = COBBASE_BDS + COBOFS_COMBINED;
84 COTYPE_BDSHR = COBBASE_BDS + COBOFS_HR;
85 COTYPE_BDSURA = COBBASE_BDS + COBOFS_URA;
86
87 COTYPE_AUTO = 0;
88 };
89
90 void setCbType() {
91 CBTYPE_GPS = COBBASE_GPS + COBOFS_CBIAS;
92 CBTYPE_GLONASS = COBBASE_GLONASS + COBOFS_CBIAS;
93 CBTYPE_GALILEO = COBBASE_GALILEO + COBOFS_CBIAS;
94 CBTYPE_QZSS = COBBASE_QZSS + COBOFS_CBIAS;
95 CBTYPE_SBAS = COBBASE_SBAS + COBOFS_CBIAS;
96 CBTYPE_BDS = COBBASE_BDS + COBOFS_CBIAS;
97 CBTYPE_AUTO = 0;
98 };
99
100 void setPbType() {
101 PBTYPE_GPS = COBBASE_GPS + COBOFS_PBIAS;
102 PBTYPE_GLONASS = COBBASE_GLONASS + COBOFS_PBIAS;
103 PBTYPE_GALILEO = COBBASE_GALILEO + COBOFS_PBIAS;
104 PBTYPE_QZSS = COBBASE_QZSS + COBOFS_PBIAS;
105 PBTYPE_SBAS = COBBASE_SBAS + COBOFS_PBIAS;
106 PBTYPE_BDS = COBBASE_BDS + COBOFS_PBIAS;
107 PBTYPE_AUTO = 0;
108 };
109
110 void setPbExtType() { };
111
112 void setVtecType() {
113 VTEC_BASE = 201;
114 };
115
116 void setSatAntType() {};
117 void setGridDefType() {}
118 void setTropoType() {}
119 void setRegIonoType() {}
120 void setMetaDataType() {}
121
122 void setCodeType() {
123 CODETYPE_RESERVED = 99;
124
125 CODETYPE_GPS_L1_CA = 0;
126 CODETYPE_GPS_L1_P = 1;
127 CODETYPE_GPS_L1_Z = 2;
128 CODETYPE_GPS_L1C_D = 3;
129 CODETYPE_GPS_L1C_P = 4;
130 CODETYPE_GPS_L2_CA = 5;
131 CODETYPE_GPS_SEMI_CODELESS = 6;
132 CODETYPE_GPS_L2C_M = 7;
133 CODETYPE_GPS_L2C_L = 8;
134 //RESERVED = 9;
135 CODETYPE_GPS_L2_P = 10;
136 CODETYPE_GPS_L2_Z = 11;
137 //RESERVED = 12;
138 //RESERVED = 13;
139 CODETYPE_GPS_L5_I = 14;
140 CODETYPE_GPS_L5_Q = 15;
141
142 CODETYPE_GLONASS_L1_CA = 0;
143 CODETYPE_GLONASS_L1_P = 1;
144 CODETYPE_GLONASS_L2_CA = 2;
145 CODETYPE_GLONASS_L2_P = 3;
146 CODETYPE_GLONASS_L1a_OCd = 4;
147 CODETYPE_GLONASS_L1a_OCp = 5;
148 CODETYPE_GLONASS_L2a_CSI = 6;
149 CODETYPE_GLONASS_L2a_OCp = 7;
150 CODETYPE_GLONASS_L3_I = 8;
151 CODETYPE_GLONASS_L3_Q = 9;
152
153 CODETYPE_GALILEO_E1_A = 0;
154 CODETYPE_GALILEO_E1_B = 1;
155 CODETYPE_GALILEO_E1_C = 2;
156 //RESERVED_E1_BC = 3;
157 //RESERVED_E1_ABC = 4;
158 CODETYPE_GALILEO_E5A_I = 5;
159 CODETYPE_GALILEO_E5A_Q = 6;
160 //RESERVED_E5A_IQ = 7;
161 CODETYPE_GALILEO_E5B_I = 8;
162 CODETYPE_GALILEO_E5B_Q = 9;
163 //RESERVED_E5B_IQ = 10;
164 //RESERVED_E5_I = 11;
165 //RESERVED_E5_Q = 12;
166 //RESERVED_E5_IQ = 13;
167 CODETYPE_GALILEO_E6_A = 14;
168 CODETYPE_GALILEO_E6_B = 15;
169 CODETYPE_GALILEO_E6_C = 16;
170 //RESERVED_E6_BC = 17;
171 //RESERVED_E6_ABC = 18;
172
173 CODETYPE_QZSS_L1_CA = 0;
174 CODETYPE_QZSS_L1C_D = 1;
175 CODETYPE_QZSS_L1C_P = 2;
176 CODETYPE_QZSS_L2C_M = 3;
177 CODETYPE_QZSS_L2C_L = 4;
178 //RESEVED_L2C_ML = 5;
179 CODETYPE_QZSS_L5_I = 6;
180 CODETYPE_QZSS_L5_Q = 7;
181 //RESERVED_L5_IQ = 8;
182 CODETYPE_QZSS_L6_D = 9;
183 CODETYPE_QZSS_L6_P = 10;
184 //RESERVED_L6_DP = 11;
185 //RESERVED_L1C_DP = 12;
186 //RESERVED_L1_S = 13;
187 //RESERVED_L5_D = 14;
188 //RESERVED_L5_P = 15;
189 //RESERVED_L5_DP = 16;
190 CODETYPE_QZSS_L6_E = 17;
191 //RESERVED_L6_DE = 18;
192
193 CODETYPE_SBAS_L1_CA = 0;
194 CODETYPE_SBAS_L5_I = 1;
195 CODETYPE_SBAS_L5_Q = 2;
196 //RESERVED_CODETYPE_SBAS_L5_IQ = 3;
197
198 CODETYPE_BDS_B1_I = 0;
199 CODETYPE_BDS_B1_Q = 1;
200 //RESERVED_CODETYPE_BDS_B1_IQ = 2;
201 CODETYPE_BDS_B3_I = 3;
202 CODETYPE_BDS_B3_Q = 4;
203 //RESERVED_CODETYPE_BDS_B3_IQ = 5;
204 CODETYPE_BDS_B2_I = 6;
205 CODETYPE_BDS_B2_Q = 7;
206 //RESERVED_CODETYPE_BDS_B2_IQ = 8;
207 CODETYPE_BDS_B1a_D = 9;
208 CODETYPE_BDS_B1a_P = 10;
209 //RESERVED_CODETYPE_BDS_B1a_DP = 11;
210 CODETYPE_BDS_B2a_D = 12;
211 CODETYPE_BDS_B2a_P = 13;
212 //RESEVED_CODETYPE_BDS_B2a_DP = 14;
213 CODETYPE_BDS_B1_A = 15; //NEW 1A
214 //RESERVED = 16;
215 //RESERVED = 17;
216 CODETYPE_BDS_B3_A = 18; //NEW 6A
217 };
218
219 std::string codeTypeToRnxType(char system, CodeType type);
220 SsrCorr::CodeType rnxTypeToCodeType(char system, std::string type);
221
222 size_t MakeClockOrbit(const struct ClockOrbit *co, ClockOrbitType type,
223 int moremessagesfollow, char *buffer, size_t size);
224 size_t MakeCodeBias(const struct CodeBias *b, CodeBiasType type,
225 int moremessagesfollow, char *buffer, size_t size);
226 size_t MakePhaseBias(const struct PhaseBias *b, PhaseBiasType type,
227 int moremessagesfollow, char *buffer, size_t size);
228 size_t MakeVTEC(const struct VTEC *v, int moremessagesfollow, char *buffer,
229 size_t size);
230 enum GCOB_RETURN GetSSR(struct ClockOrbit *co, struct CodeBias *b,
231 struct VTEC *v, struct PhaseBias *pb, const char *buffer, size_t size,
232 int *bytesused);
233};
234
235#endif /* RTCM3_CLOCK_ORBIT_IGS_H */
Note: See TracBrowser for help on using the repository browser.