Changeset 8987 in ntrip for branches/BNC_2.12/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.h
- Timestamp:
- Jul 20, 2020, 3:54:44 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/BNC_2.12/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.h
r8943 r8987 13 13 #include <string.h> 14 14 15 enum SatelliteReferenceDatum { DATUM_ITRF=0, DATUM_LOCAL=1 }; 15 16 17 18 19 20 enum SatelliteReferenceDatum { 21 DATUM_ITRF = 0, 22 DATUM_LOCAL = 1 23 }; 16 24 17 25 enum COR_BASE { 18 COBBASE_GPS = 1057,26 COBBASE_GPS = 1057, 19 27 COBBASE_GLONASS = 1063, 20 28 COBBASE_GALILEO = 1240, 21 COBBASE_QZSS = 1246, 22 COBBASE_SBAS = 1252, 23 COBBASE_BDS = 1258, 29 COBBASE_QZSS = 1246, 30 COBBASE_SBAS = 1252, 31 COBBASE_BDS = 1258, 32 COBBASE_NUM 24 33 }; 25 34 … … 27 36 COBOFS_ORBIT = 0, 28 37 COBOFS_CLOCK, 29 COBOFS_ BIAS,38 COBOFS_CBIAS, 30 39 COBOFS_COMBINED, 31 40 COBOFS_URA, … … 35 44 36 45 enum ClockOrbitType { 37 COTYPE_GPSORBIT = COBBASE_GPS+ COBOFS_ORBIT,46 COTYPE_GPSORBIT = COBBASE_GPS + COBOFS_ORBIT, 38 47 COTYPE_GPSCLOCK, 39 COTYPE_GPSCOMBINED = COBBASE_GPS+ COBOFS_COMBINED,48 COTYPE_GPSCOMBINED = COBBASE_GPS + COBOFS_COMBINED, 40 49 COTYPE_GPSURA, 41 50 COTYPE_GPSHR, 42 51 43 COTYPE_GLONASSORBIT = COBBASE_GLONASS + COBOFS_ORBIT,52 COTYPE_GLONASSORBIT = COBBASE_GLONASS + COBOFS_ORBIT, 44 53 COTYPE_GLONASSCLOCK, 45 54 COTYPE_GLONASSCOMBINED = COBBASE_GLONASS + COBOFS_COMBINED, … … 47 56 COTYPE_GLONASSHR, 48 57 49 COTYPE_GALILEOORBIT = COBBASE_GALILEO + COBOFS_ORBIT,58 COTYPE_GALILEOORBIT = COBBASE_GALILEO + COBOFS_ORBIT, 50 59 COTYPE_GALILEOCLOCK, 51 60 COTYPE_GALILEOCOMBINED = COBBASE_GALILEO + COBOFS_COMBINED, … … 53 62 COTYPE_GALILEOHR, 54 63 55 COTYPE_QZSSORBIT = COBBASE_QZSS+ COBOFS_ORBIT,64 COTYPE_QZSSORBIT = COBBASE_QZSS + COBOFS_ORBIT, 56 65 COTYPE_QZSSCLOCK, 57 COTYPE_QZSSCOMBINED = COBBASE_QZSS+ COBOFS_COMBINED,66 COTYPE_QZSSCOMBINED = COBBASE_QZSS + COBOFS_COMBINED, 58 67 COTYPE_QZSSURA, 59 68 COTYPE_QZSSHR, 60 69 61 COTYPE_SBASORBIT = COBBASE_SBAS+ COBOFS_ORBIT,70 COTYPE_SBASORBIT = COBBASE_SBAS + COBOFS_ORBIT, 62 71 COTYPE_SBASCLOCK, 63 COTYPE_SBASCOMBINED = COBBASE_SBAS+ COBOFS_COMBINED,72 COTYPE_SBASCOMBINED = COBBASE_SBAS + COBOFS_COMBINED, 64 73 COTYPE_SBASURA, 65 74 COTYPE_SBASHR, 66 75 67 COTYPE_BDSORBIT = COBBASE_BDS+ COBOFS_ORBIT,76 COTYPE_BDSORBIT = COBBASE_BDS + COBOFS_ORBIT, 68 77 COTYPE_BDSCLOCK, 69 COTYPE_BDSCOMBINED = COBBASE_BDS + COBOFS_COMBINED,78 COTYPE_BDSCOMBINED = COBBASE_BDS + COBOFS_COMBINED, 70 79 COTYPE_BDSURA, 71 80 COTYPE_BDSHR, … … 75 84 76 85 enum CodeBiasType { 77 BTYPE_GPS = COBBASE_GPS + COBOFS_BIAS,78 BTYPE_GLONASS = COBBASE_GLONASS + COBOFS_BIAS,79 BTYPE_GALILEO = COBBASE_GALILEO + COBOFS_BIAS,80 BTYPE_QZSS = COBBASE_QZSS + COBOFS_BIAS,81 BTYPE_SBAS = COBBASE_SBAS + COBOFS_BIAS,82 BTYPE_BDS = COBBASE_BDS + COBOFS_BIAS,83 BTYPE_AUTO= 084 }; 85 86 enum PhaseBiasType 87 PBTYPE_BASE = 1265,88 PBTYPE_GPS = PBTYPE_BASE,86 CBTYPE_GPS = COBBASE_GPS + COBOFS_CBIAS, 87 CBTYPE_GLONASS = COBBASE_GLONASS + COBOFS_CBIAS, 88 CBTYPE_GALILEO = COBBASE_GALILEO + COBOFS_CBIAS, 89 CBTYPE_QZSS = COBBASE_QZSS + COBOFS_CBIAS, 90 CBTYPE_SBAS = COBBASE_SBAS + COBOFS_CBIAS, 91 CBTYPE_BDS = COBBASE_BDS + COBOFS_CBIAS, 92 CBTYPE_AUTO = 0 93 }; 94 95 enum PhaseBiasType{ 96 PBTYPE_BASE = 1265, 97 PBTYPE_GPS = PBTYPE_BASE, 89 98 PBTYPE_GLONASS, 90 99 PBTYPE_GALILEO, … … 92 101 PBTYPE_SBAS, 93 102 PBTYPE_BDS, 94 PBTYPE_AUTO = 0103 PBTYPE_AUTO = 0 95 104 }; 96 105 … … 102 111 for these systems to save space */ 103 112 enum COR_CONSTANTS { 104 CLOCKORBIT_BUFFERSIZE =8192,105 CLOCKORBIT_NUMGPS =32,106 CLOCKORBIT_NUMGLONASS =26,107 CLOCKORBIT_NUMGALILEO =36,108 CLOCKORBIT_NUMQZSS =10,109 CLOCKORBIT_NUMSBAS =38,110 CLOCKORBIT_NUMBDS =65,111 CLOCKORBIT_NUMBIAS =100,112 CLOCKORBIT_NUMIONOLAYERS =4,113 CLOCKORBIT_MAXIONOORDER =16,114 CLOCKORBIT_MAXIONODEGREE =16113 CLOCKORBIT_BUFFERSIZE = 8192, 114 CLOCKORBIT_NUMGPS = 32, 115 CLOCKORBIT_NUMGLONASS = 26, 116 CLOCKORBIT_NUMGALILEO = 36, 117 CLOCKORBIT_NUMQZSS = 10, 118 CLOCKORBIT_NUMSBAS = 38, 119 CLOCKORBIT_NUMBDS = 65, 120 CLOCKORBIT_NUMBIAS = 100, 121 CLOCKORBIT_NUMIONOLAYERS = 4, 122 CLOCKORBIT_MAXIONOORDER = 16, 123 CLOCKORBIT_MAXIONODEGREE = 16 115 124 }; 116 125 … … 126 135 127 136 enum COR_OFFSETS { 128 CLOCKORBIT_OFFSETGPS=0, 129 CLOCKORBIT_OFFSETGLONASS=CLOCKORBIT_NUMGPS, 130 CLOCKORBIT_OFFSETGALILEO=CLOCKORBIT_NUMGPS+CLOCKORBIT_NUMGLONASS, 131 CLOCKORBIT_OFFSETQZSS=CLOCKORBIT_NUMGPS+CLOCKORBIT_NUMGLONASS 132 +CLOCKORBIT_NUMGALILEO, 133 CLOCKORBIT_OFFSETSBAS=CLOCKORBIT_NUMGPS+CLOCKORBIT_NUMGLONASS 134 +CLOCKORBIT_NUMGALILEO+CLOCKORBIT_NUMQZSS, 135 CLOCKORBIT_OFFSETBDS=CLOCKORBIT_NUMGPS+CLOCKORBIT_NUMGLONASS 136 +CLOCKORBIT_NUMGALILEO+CLOCKORBIT_NUMQZSS+CLOCKORBIT_NUMSBAS, 137 CLOCKORBIT_COUNTSAT=CLOCKORBIT_NUMGPS+CLOCKORBIT_NUMGLONASS 138 +CLOCKORBIT_NUMGALILEO+CLOCKORBIT_NUMQZSS+CLOCKORBIT_NUMSBAS 139 +CLOCKORBIT_NUMBDS 137 CLOCKORBIT_OFFSETGPS = 0, 138 CLOCKORBIT_OFFSETGLONASS = CLOCKORBIT_NUMGPS, 139 CLOCKORBIT_OFFSETGALILEO = CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS, 140 CLOCKORBIT_OFFSETQZSS = CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO, 141 CLOCKORBIT_OFFSETSBAS = CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO 142 + CLOCKORBIT_NUMQZSS, 143 CLOCKORBIT_OFFSETBDS = CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO 144 + CLOCKORBIT_NUMQZSS + CLOCKORBIT_NUMSBAS, 145 CLOCKORBIT_COUNTSAT = CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO 146 + CLOCKORBIT_NUMQZSS + CLOCKORBIT_NUMSBAS + CLOCKORBIT_NUMBDS 140 147 }; 141 148 … … 220 227 CODETYPE_SBAS_L5_Q = 2, 221 228 CODETYPE_SBAS_L5_IQ = 3, 229 222 230 CODETYPE_BDS_B1_I = 0, 223 231 CODETYPE_BDS_B1_Q = 1, … … 234 242 CODETYPE_BDS_B2a_D = 12, 235 243 CODETYPE_BDS_B2a_P = 13, 236 CODETYPE_BDS_B2a_DP = 14, 237 238 CODETYPE_IRNSS_S_SPS = 8, 239 CODETYPE_IRNSS_L5_SPS = 22 244 CODETYPE_BDS_B2a_DP = 14 240 245 }; 241 246 … … 247 252 xxx->Sat[CLOCKORBIT_OFFSETGPS]. */ 248 253 249 #ifdef COR_LEGACY 250 /* old names */ 251 #define NumberOfGPSSat NumberOfSat[CLOCKORBIT_SATGPS] 252 #define NumberOfGLONASSSat NumberOfSat[CLOCKORBIT_SATGLONASS] 253 #define GPSEpochTime EpochTime[CLOCKORBIT_SATGPS] /* 0 .. 604799 s */ 254 #define GLONASSEpochTime EpochTime[CLOCKORBIT_SATGLONASS] /* 0 .. 86399 s (86400 for leap second) */ 255 #define ClockDataSupplied Supplied[COBOFS_CLOCK] 256 #define HRDataSupplied Supplied[COBOFS_HR] 257 #define OrbitDataSupplied Supplied[COBOFS_ORBIT] 258 #define URADataSupplied Supplied[COBOFS_URA] 259 #define GetClockOrbitBias(a,b,c,d,e) GetSSR(a,b,0,0,c,d,e) 260 #endif /* COR_LEGACY */ 261 262 /* latency check code, disabled by default */ 263 #ifdef COR_LATENCY 264 #define COR_LATENCYCOUNT 100 265 #endif 266 267 struct ClockOrbit 268 { 254 struct ClockOrbit { 269 255 enum ClockOrbitType messageType; 270 256 unsigned int EpochTime[CLOCKORBIT_SATNUM]; /* 0 .. system specific maximum */ 271 257 unsigned int NumberOfSat[CLOCKORBIT_SATNUM]; /* 0 .. CLOCKORBIT_NUM... */ 272 273 258 unsigned int Supplied[COBOFS_NUM]; /* boolean */ 274 #ifdef COR_LATENCY275 unsigned int epochGPS[COR_LATENCYCOUNT+1]; /* Weber, for latency */276 unsigned int epochSize; /* Weber, for latency */277 #endif278 259 unsigned int SSRIOD; 279 260 unsigned int SSRProviderID; … … 287 268 double UserRangeAccuracy; /* accuracy values in [m] */ 288 269 double hrclock; 289 struct OrbitPart 290 { 270 struct OrbitPart { 291 271 double DeltaRadial; /* m */ 292 272 double DeltaAlongTrack; /* m */ … … 296 276 double DotDeltaCrossTrack; /* m/s */ 297 277 } Orbit; 298 struct ClockPart 299 { 278 struct ClockPart { 300 279 double DeltaA0; /* m */ 301 280 double DeltaA1; /* m/s */ … … 305 284 }; 306 285 307 struct CodeBias 308 { 286 struct CodeBias { 309 287 enum CodeBiasType messageType; 310 288 unsigned int EpochTime[CLOCKORBIT_SATNUM]; /* 0 .. system specific maximum */ … … 314 292 unsigned int SSRProviderID; 315 293 unsigned int SSRSolutionID; 316 struct BiasSat 317 { 294 struct BiasSat { 318 295 unsigned int ID; /* all */ 319 296 unsigned int NumberOfCodeBiases; 320 struct CodeBiasEntry 321 { 297 struct CodeBiasEntry { 322 298 enum CodeType Type; 323 299 float Bias; /* m */ … … 326 302 }; 327 303 328 struct PhaseBias 329 { 304 struct PhaseBias { 330 305 enum PhaseBiasType messageType; 331 306 unsigned int EpochTime[CLOCKORBIT_SATNUM]; /* 0 .. system specific maximum */ … … 337 312 unsigned int DispersiveBiasConsistencyIndicator; 338 313 unsigned int MWConsistencyIndicator; 339 struct PhaseBiasSat 340 { 314 struct PhaseBiasSat { 341 315 unsigned int ID; /* all */ 342 316 unsigned int NumberOfPhaseBiases; 343 317 double YawAngle; /* radiant */ 344 318 double YawRate; /* radiant/s */ 345 struct PhaseBiasEntry 346 { 319 struct PhaseBiasEntry { 347 320 enum CodeType Type; 348 321 unsigned int SignalIntegerIndicator; … … 354 327 }; 355 328 356 struct VTEC 357 { 329 struct VTEC { 358 330 unsigned int EpochTime; /* GPS */ 359 331 unsigned int UpdateInterval; … … 384 356 enum GCOB_RETURN { 385 357 /* all well */ 386 GCOBR_MESSAGEFOLLOWS =1,387 GCOBR_OK =0,358 GCOBR_MESSAGEFOLLOWS = 1, 359 GCOBR_OK = 0, 388 360 /* unknown data, a warning */ 389 GCOBR_UNKNOWNTYPE = -1,390 GCOBR_UNKNOWNDATA = -2,391 GCOBR_CRCMISMATCH = -3,392 GCOBR_SHORTMESSAGE = -4,361 GCOBR_UNKNOWNTYPE = -1, 362 GCOBR_UNKNOWNDATA = -2, 363 GCOBR_CRCMISMATCH = -3, 364 GCOBR_SHORTMESSAGE = -4, 393 365 /* failed to do the work */ 394 366 GCOBR_NOCLOCKORBITPARAMETER = -10, 395 GCOBR_NOCODEBIASPARAMETER = -11,396 GCOBR_NOPHASEBIASPARAMETER = -12,397 GCOBR_NOVTECPARAMETER = -13,367 GCOBR_NOCODEBIASPARAMETER = -11, 368 GCOBR_NOPHASEBIASPARAMETER = -12, 369 GCOBR_NOVTECPARAMETER = -13, 398 370 /* data mismatch - data in storage does not match new data */ 399 GCOBR_TIMEMISMATCH = -20,400 GCOBR_DATAMISMATCH = -21,371 GCOBR_TIMEMISMATCH = -20, 372 GCOBR_DATAMISMATCH = -21, 401 373 /* not enough data - can decode the block completely */ 402 GCOBR_SHORTBUFFER = -30,403 GCOBR_MESSAGEEXCEEDSBUFFER = -31};374 GCOBR_SHORTBUFFER = -30, 375 GCOBR_MESSAGEEXCEEDSBUFFER = -31}; 404 376 405 377 /* NOTE: When an error message has been emitted, the output structures may have been modified. Make a copy of the previous variant before calling the
Note:
See TracChangeset
for help on using the changeset viewer.