- Timestamp:
- Aug 26, 2026, 10:07:44 PM (9 days ago)
- Location:
- trunk/BNC/src/RTCM3/clock_and_orbit
- Files:
-
- 7 edited
-
clock_orbit.h (modified) (3 diffs)
-
clock_orbit_igs.cpp (modified) (1 diff)
-
clock_orbit_igs.h (modified) (1 diff)
-
clock_orbit_rtcm.cpp (modified) (1 diff)
-
clock_orbit_rtcm.h (modified) (2 diffs)
-
clock_orbit_rtcm_new.cpp (modified) (21 diffs)
-
clock_orbit_rtcm_new.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h
r10995 r10997 91 91 virtual ~SsrCorr(); 92 92 virtual void setCorBase() = 0; 93 virtual void setCor Offset() = 0;93 virtual void setCorType() = 0; 94 94 virtual void setCoType() = 0; 95 95 virtual void setCbType() = 0; … … 120 120 CorOffset COBOFS_PBIAS; 121 121 CorOffset COBOFS_URA; 122 CorOffset COBOFS_PBEXT; 123 CorOffset COBOFS_SATANT; 124 CorOffset COBOFS_REGIONO; 122 125 CorOffset COBOFS_NUM; 123 126 … … 324 327 QList<CorBase> corbase; 325 328 QList<unsigned int> satoffset; 329 330 /* corType[sys][kind] -> RTCM/IGS message number, 0 = not defined for that 331 satellite system. Built by setCorType(); replaces per-subclass base+offset 332 arithmetic so GetSSR/Make* can look a message number up (or emit one) 333 without hand-rolled index math. */ 334 QList<QList<unsigned int> > corType; 335 336 bool lookupCorType(unsigned int msgNumber, unsigned int &sys, unsigned int &kind) const { 337 for (int s = 0; s < corType.size(); ++s) { 338 for (int k = 0; k < corType[s].size(); ++k) { 339 if (msgNumber && corType[s][k] == msgNumber) { 340 sys = s; 341 kind = k; 342 return true; 343 } 344 } 345 } 346 return false; 347 } 326 348 327 349 -
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_igs.cpp
r10994 r10997 20 20 SsrCorrIgs::SsrCorrIgs() { 21 21 setCorBase(); 22 setCor Offset();22 setCorType(); 23 23 setCoType(); 24 24 setCbType(); -
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_igs.h
r10995 r10997 37 37 } 38 38 39 void setCor Offset() {39 void setCorType() { 40 40 COBOFS_ORBIT = 0; // GPS: IM21 41 41 COBOFS_CLOCK = 1; // GPS: IM22 -
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.cpp
r10996 r10997 20 20 SsrCorrRtcm::SsrCorrRtcm() { 21 21 setCorBase(); 22 setCor Offset();22 setCorType(); 23 23 setCoType(); 24 24 setCbType(); -
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.h
r10829 r10997 36 36 }; 37 37 38 void setCor Offset() {38 void setCorType() { 39 39 COBOFS_ORBIT = 0; 40 40 COBOFS_CLOCK = 1; … … 99 99 PBTYPE_BASE = 1265; 100 100 PBTYPE_GPS = PBTYPE_BASE; 101 PBTYPE_GLONASS = PBTYPE_ GPS++;102 PBTYPE_GALILEO = PBTYPE_ GLONASS++;103 PBTYPE_QZSS = PBTYPE_ GALILEO++;104 PBTYPE_SBAS = PBTYPE_ QZSS++;105 PBTYPE_BDS = PBTYPE_ SBAS++;101 PBTYPE_GLONASS = PBTYPE_BASE + 1; 102 PBTYPE_GALILEO = PBTYPE_BASE + 2; 103 PBTYPE_QZSS = PBTYPE_BASE + 3; 104 PBTYPE_SBAS = PBTYPE_BASE + 4; 105 PBTYPE_BDS = PBTYPE_BASE + 5; 106 106 PBTYPE_AUTO = 0; 107 107 }; -
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.cpp
r10996 r10997 20 20 SsrCorrRtcmNew::SsrCorrRtcmNew() { 21 21 setCorBase(); 22 setCorOffset();23 22 setCoType(); 24 23 setCbType(); … … 32 31 setMetaDataType(); 33 32 setCodeType(); 33 setCorType(); /* must run after the type setters above: it reads their constants */ 34 34 35 35 satoffset << CLOCKORBIT_OFFSETGPS … … 45 45 size_t SsrCorrRtcmNew::MakeClockOrbit(const struct ClockOrbit *co, ClockOrbitType type, 46 46 int moremessagesfollow, char *buffer, size_t size) { 47 std::vector< std::vector<unsigned int> > status(CLOCKORBIT_SATNUM, std::vector<unsigned int>(COBOFS_NUM)); 47 std::vector< std::vector<unsigned int> > status(CLOCKORBIT_SATNUM, std::vector<unsigned int>(COBOFS_MAXNUM)); 48 48 unsigned int i, s; 49 49 … … 53 53 54 54 for (s = 0; s < CLOCKORBIT_SATNUM; ++s) { 55 for (i = 0; i < COBOFS_NUM; ++i) { 56 if (co->NumberOfSat[s] && (type == COTYPE_AUTO || type == cor base[s] + i) && (co->Supplied[i] ||55 for (i = 0; i < COBOFS_MAXNUM; ++i) { 56 if (co->NumberOfSat[s] && (type == COTYPE_AUTO || type == corType[s][i]) && (co->Supplied[i] || 57 57 (i <= COBOFS_CLOCK && co->Supplied[COBOFS_COMBINED]) || 58 58 (i == COBOFS_COMBINED && co->Supplied[COBOFS_ORBIT] && co->Supplied[COBOFS_CLOCK]))) { … … 68 68 if (status[s][COBOFS_ORBIT]) { 69 69 INITBLOCK 70 E_RTCM_MESSAGE_NUMBER(cor base[s] +COBOFS_ORBIT)70 E_RTCM_MESSAGE_NUMBER(corType[s][COBOFS_ORBIT]) 71 71 switch (s) { 72 72 case CLOCKORBIT_SATGPS: … … 128 128 if (status[s][COBOFS_CLOCK]) { 129 129 INITBLOCK 130 E_RTCM_MESSAGE_NUMBER(cor base[s] +COBOFS_CLOCK)130 E_RTCM_MESSAGE_NUMBER(corType[s][COBOFS_CLOCK]) 131 131 switch (s) { 132 132 case CLOCKORBIT_SATGPS: … … 169 169 #endif 170 170 INITBLOCK 171 E_RTCM_MESSAGE_NUMBER(cor base[s] +COBOFS_COMBINED)171 E_RTCM_MESSAGE_NUMBER(corType[s][COBOFS_COMBINED]) 172 172 switch (s) { 173 173 case CLOCKORBIT_SATGPS: … … 248 248 if (status[s][COBOFS_HR]) { 249 249 INITBLOCK 250 E_RTCM_MESSAGE_NUMBER(cor base[s] +COBOFS_HR)250 E_RTCM_MESSAGE_NUMBER(corType[s][COBOFS_HR]) 251 251 switch (s) { 252 252 case CLOCKORBIT_SATGPS: … … 275 275 if (status[s][COBOFS_URA]) { 276 276 INITBLOCK 277 E_RTCM_MESSAGE_NUMBER(cor base[s] +COBOFS_URA)277 E_RTCM_MESSAGE_NUMBER(corType[s][COBOFS_URA]) 278 278 switch (s) { 279 279 case CLOCKORBIT_SATGPS: … … 311 311 312 312 for (s = 0; s < CLOCKORBIT_SATNUM; ++s) { 313 if (b->NumberOfSat[s] && (type == CBTYPE_AUTO || type == cor base[s] +COBOFS_CBIAS)) {313 if (b->NumberOfSat[s] && (type == CBTYPE_AUTO || type == corType[s][COBOFS_CBIAS])) { 314 314 INITBLOCK 315 E_RTCM_MESSAGE_NUMBER(cor base[s] +COBOFS_CBIAS)315 E_RTCM_MESSAGE_NUMBER(corType[s][COBOFS_CBIAS]) 316 316 switch (s) { 317 317 case CLOCKORBIT_SATGPS: … … 358 358 Extended Satellite Phase Bias Message shall be sent BEFORE the corresponding 359 359 Satellite Phase Bias Message */ 360 if (b->NumberOfSat[s] && (type == PBEXTTYPE_AUTO || type == s + PBEXTTYPE_AUTO)) {360 if (b->NumberOfSat[s] && (type == PBEXTTYPE_AUTO || type == corType[s][COBOFS_PBEXT])) { 361 361 INITBLOCK 362 E_RTCM_MESSAGE_NUMBER( s + PBEXTTYPE_AUTO)362 E_RTCM_MESSAGE_NUMBER(corType[s][COBOFS_PBEXT]) 363 363 switch (s) { 364 364 case CLOCKORBIT_SATGPS: … … 385 385 } 386 386 /* Satellite Phase Bias Message */ 387 if (b->NumberOfSat[s] && (type == PBTYPE_AUTO || type == s + PBTYPE_BASE)) {387 if (b->NumberOfSat[s] && (type == PBTYPE_AUTO || type == corType[s][COBOFS_PBIAS])) { 388 388 INITBLOCK 389 E_RTCM_MESSAGE_NUMBER( s + PBTYPE_BASE)389 E_RTCM_MESSAGE_NUMBER(corType[s][COBOFS_PBIAS]) 390 390 switch (s) { 391 391 case CLOCKORBIT_SATGPS: … … 554 554 } 555 555 556 for (s = CLOCKORBIT_SATNUM; s-- > 0;) { 557 if (type == PBTYPE_BASE + s) { 558 if (!pb) 559 return GCOBR_NOPHASEBIASPARAMETER; 560 pb->messageType = type; 561 switch (s) { 562 case CLOCKORBIT_SATGPS: 563 case CLOCKORBIT_SATGALILEO: 564 case CLOCKORBIT_SATQZSS: 565 case CLOCKORBIT_SATSBAS: 566 case CLOCKORBIT_SATBDS: 567 D_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s]) 568 break; 569 case CLOCKORBIT_SATGLONASS: 570 D_GLONASS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s]) 571 break; 572 } 573 D_SSR_UPDATE_INTERVAL(pb->UpdateInterval) 574 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 575 D_SSR_IOD(pb->SSRIOD) 576 D_SSR_PROVIDER_ID(pb->SSRProviderID) 577 D_SSR_SOLUTION_ID(pb->SSRSolutionID) 578 D_YAW_INFO_INDICATOR(pb->SatelliteYawInformationIndicator) 579 D_EXTENDED_PHASE_BIAS_ID(pb->ExtendedPhaseBiasPropertyID) 580 D_NO_OF_SATELLITES(nums) 556 { 557 unsigned int kind; 558 if (!lookupCorType(type, s, kind)) 559 return GCOBR_UNKNOWNTYPE; 560 561 /* COBOFS_* are per-instance (set in setCorType()), not compile-time 562 constants, so this has to be an if/else-if chain rather than a switch. */ 563 if (kind == COBOFS_PBIAS) { 564 if (!pb) 565 return GCOBR_NOPHASEBIASPARAMETER; 566 pb->messageType = type; 567 switch (s) { 568 case CLOCKORBIT_SATGPS: 569 case CLOCKORBIT_SATGALILEO: 570 case CLOCKORBIT_SATQZSS: 571 case CLOCKORBIT_SATSBAS: 572 case CLOCKORBIT_SATBDS: 573 D_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s]) 574 break; 575 case CLOCKORBIT_SATGLONASS: 576 D_GLONASS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s]) 577 break; 578 } 579 D_SSR_UPDATE_INTERVAL(pb->UpdateInterval) 580 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 581 D_SSR_IOD(pb->SSRIOD) 582 D_SSR_PROVIDER_ID(pb->SSRProviderID) 583 D_SSR_SOLUTION_ID(pb->SSRSolutionID) 584 D_YAW_INFO_INDICATOR(pb->SatelliteYawInformationIndicator) 585 D_EXTENDED_PHASE_BIAS_ID(pb->ExtendedPhaseBiasPropertyID) 586 D_NO_OF_SATELLITES(nums) 581 587 #ifdef BNC_DEBUG_SSR 582 588 fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d dispInd %d mwInd %d\n", … … 585 591 pb->DispersiveBiasConsistencyIndicator, pb->MWConsistencyIndicator); 586 592 #endif 587 for (i = 0; i < nums; ++i) { 588 D_GPS_SATELLITE_ID(id) 589 for (pos = satoffset[s]; 590 pos < satoffset[s] + pb->NumberOfSat[s] && pb->Sat[pos].ID != id; 591 ++pos) 592 ; 593 if (pos >= satoffset[s + 1]) 594 return GCOBR_DATAMISMATCH; 595 else if (pos == pb->NumberOfSat[s] + satoffset[s]) 596 ++pb->NumberOfSat[s]; 597 pb->Sat[pos].ID = id; 598 D_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases) 599 D_YAW_ANGLE(pb->Sat[pos].YawAngle) 600 D_YAW_RATE(pb->Sat[pos].YawRate) 593 for (i = 0; i < nums; ++i) { 594 D_GPS_SATELLITE_ID(id) 595 for (pos = satoffset[s]; 596 pos < satoffset[s] + pb->NumberOfSat[s] && pb->Sat[pos].ID != id; 597 ++pos) 598 ; 599 if (pos >= satoffset[s + 1]) 600 return GCOBR_DATAMISMATCH; 601 else if (pos == pb->NumberOfSat[s] + satoffset[s]) 602 ++pb->NumberOfSat[s]; 603 pb->Sat[pos].ID = id; 604 D_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases) 605 D_YAW_ANGLE(pb->Sat[pos].YawAngle) 606 D_YAW_RATE(pb->Sat[pos].YawRate) 601 607 #ifdef BNC_DEBUG_SSR 602 608 fprintf(stderr, "id %2d #%d y %10.6f yr %10.6f ", … … 604 610 pb->Sat[pos].YawAngle/MPI, pb->Sat[pos].YawRate/MPI); 605 611 #endif 606 for (j = 0; j < pb->Sat[pos].NumberOfPhaseBiases; ++j) { 607 D_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type) 608 D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].IntegerIndicator) 609 // D_WIDE_LANE_INDICATOR(pb->Sat[pos].Biases[j].WidelaneGroupIndicator) 610 D_DISCONTINUITY_COUNTER(pb->Sat[pos].Biases[j].DiscontinuityCounter) 611 D_PHASE_BIAS_CORRECTION(pb->Sat[pos].Biases[j].Bias) 612 #ifdef BNC_DEBUG_SSR 613 fprintf(stderr, "t%02d int %d /*wl %d*/ disc %d b %8.4f ", 614 pb->Sat[pos].Biases[j].Type, 615 pb->Sat[pos].Biases[j].IntegerIndicator, 616 //pb->Sat[pos].Biases[j].WidelaneGroupIndicator, 617 pb->Sat[pos].Biases[j].DiscontinuityCounter, 618 pb->Sat[pos].Biases[j].Bias); 619 #endif 620 } 612 for (j = 0; j < pb->Sat[pos].NumberOfPhaseBiases; ++j) { 613 D_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type) 614 D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].IntegerIndicator) 615 // D_WIDE_LANE_INDICATOR(pb->Sat[pos].Biases[j].WidelaneGroupIndicator) 616 D_DISCONTINUITY_COUNTER(pb->Sat[pos].Biases[j].DiscontinuityCounter) 617 D_PHASE_BIAS_CORRECTION(pb->Sat[pos].Biases[j].Bias) 618 #ifdef BNC_DEBUG_SSR 619 fprintf(stderr, "t%02d int %d /*wl %d*/ disc %d b %8.4f ", 620 pb->Sat[pos].Biases[j].Type, 621 pb->Sat[pos].Biases[j].IntegerIndicator, 622 //pb->Sat[pos].Biases[j].WidelaneGroupIndicator, 623 pb->Sat[pos].Biases[j].DiscontinuityCounter, 624 pb->Sat[pos].Biases[j].Bias); 625 #endif 626 } 621 627 #ifdef BNC_DEBUG_SSR 622 628 fprintf(stderr, "\n"); 623 629 #endif 624 } 625 #ifdef BNC_DEBUG_SSR 626 for(type = 0; type < (unsigned int)size && (unsigned char)buffer[type] != 0xD3; ++type) 627 numbits += 8; 628 fprintf(stderr, "numbits left %d\n",numbits); 629 #endif 630 return mmi ? GCOBR_MESSAGEFOLLOWS : GCOBR_OK; 631 } 632 else if (type >= corbase[s]) { 633 unsigned int corrOffset = type - corbase[s]; 634 if (corrOffset == COBOFS_ORBIT) { 630 } 631 } 632 else if (kind == COBOFS_ORBIT) { 635 633 if (!co) 636 634 return GCOBR_NOCLOCKORBITPARAMETER; … … 708 706 #endif 709 707 } 710 }711 else if (corrOffset== COBOFS_CLOCK) {708 } 709 else if (kind == COBOFS_CLOCK) { 712 710 if (!co) 713 711 return GCOBR_NOCLOCKORBITPARAMETER; … … 758 756 #endif 759 757 } 760 }761 else if (corrOffset== COBOFS_COMBINED) {758 } 759 else if (kind == COBOFS_COMBINED) { 762 760 if (!co) 763 761 return GCOBR_NOCLOCKORBITPARAMETER; … … 839 837 #endif 840 838 } 841 }842 else if (corrOffset== COBOFS_URA) {839 } 840 else if (kind == COBOFS_URA) { 843 841 if (!co) 844 842 return GCOBR_NOCLOCKORBITPARAMETER; … … 885 883 #endif 886 884 } 887 }888 else if (corrOffset== COBOFS_HR) {885 } 886 else if (kind == COBOFS_HR) { 889 887 if (!co) 890 888 return GCOBR_NOCLOCKORBITPARAMETER; … … 931 929 #endif 932 930 } 933 }934 else if (corrOffset== COBOFS_CBIAS) {931 } 932 else if (kind == COBOFS_CBIAS) { 935 933 if (!b) 936 934 return GCOBR_NOCODEBIASPARAMETER; … … 987 985 #endif 988 986 } 989 } 990 else { 991 continue; 992 } 993 #ifdef BNC_DEBUG_SSR 994 for(type = 0; type < (unsigned int)size && (unsigned char)buffer[type] != 0xD3; ++type) 995 numbits += 8; 996 fprintf(stderr, "numbits left %d\n",numbits); 997 #endif 998 return mmi ? GCOBR_MESSAGEFOLLOWS : GCOBR_OK; 999 } 1000 } 1001 return GCOBR_UNKNOWNTYPE; 987 } 988 else { 989 /* COBOFS_PBEXT / COBOFS_SATANT / COBOFS_REGIONO: message numbers are 990 recognized (see setCorType()) but decoding is not implemented yet */ 991 return GCOBR_UNKNOWNTYPE; 992 } 993 994 #ifdef BNC_DEBUG_SSR 995 for(type = 0; type < (unsigned int)size && (unsigned char)buffer[type] != 0xD3; ++type) 996 numbits += 8; 997 fprintf(stderr, "numbits left %d\n",numbits); 998 #endif 999 return mmi ? GCOBR_MESSAGEFOLLOWS : GCOBR_OK; 1000 } 1002 1001 } 1003 1002 -
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.h
r10995 r10997 27 27 COBBASE_QZSS = 64; 28 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() { }; 29 }; 38 30 39 31 void setCoType() { … … 221 213 } 222 214 215 /* Builds corType[sys][kind] from the COTYPE_, CBTYPE_, PBTYPE_, PBEXTTYPE_, 216 SATANTTYPE_ and REGIONOTYPE_ constants computed above, so GetSSR/Make can 217 look up or emit a message number with a single table access instead of 218 base+offset arithmetic. Must run after setCoType/setCbType/setPbType/ 219 setPbExtType/setSatAntType/setRegIonoType have filled those constants - 220 see the call order in the constructor. 221 GPS, GLONASS, GALILEO, QZSS and BDS are supported; SBAS has no new-RTCM-SSR 222 messages defined, so its row is left all-zero (0 = undefined). GRID, Tropo, 223 Metadata and VTEC are single global message numbers, not per-system, so 224 they are handled directly against their BASE constant instead of via this 225 table (VTEC already is, at the top of GetSSR). */ 226 void setCorType() { 227 COBOFS_ORBIT = 0; 228 COBOFS_CLOCK = 1; 229 COBOFS_COMBINED = 2; 230 COBOFS_HR = 3; 231 COBOFS_CBIAS = 4; 232 COBOFS_PBIAS = 5; 233 COBOFS_URA = 6; 234 COBOFS_PBEXT = 7; 235 COBOFS_SATANT = 8; 236 COBOFS_REGIONO = 9; 237 COBOFS_NUM = 10; 238 239 corType.clear(); 240 for (int s = 0; s < CLOCKORBIT_SATNUM; ++s) { 241 corType << QList<unsigned int>(); 242 for (unsigned int k = 0; k < COBOFS_NUM; ++k) { 243 corType[s] << 0; 244 } 245 } 246 247 struct SysRow { 248 int sys; 249 unsigned int orbit, clock, combined, hr, cbias, ura, pbias, pbext, satant, regiono; 250 }; 251 const SysRow rows[] = { 252 { CLOCKORBIT_SATGPS, COTYPE_GPSORBIT, COTYPE_GPSCLOCK, COTYPE_GPSCOMBINED, COTYPE_GPSHR, CBTYPE_GPS, COTYPE_GPSURA, PBTYPE_GPS, PBEXTTYPE_GPS, SATANTTYPE_GPS, REGIONOTYPE_GPS }, 253 { CLOCKORBIT_SATGLONASS, COTYPE_GLONASSORBIT, COTYPE_GLONASSCLOCK, COTYPE_GLONASSCOMBINED, COTYPE_GLONASSHR, CBTYPE_GLONASS, COTYPE_GLONASSURA, PBTYPE_GLONASS, PBEXTTYPE_GLONASS, SATANTTYPE_GLONASS, REGIONOTYPE_GLONASS }, 254 { CLOCKORBIT_SATGALILEO, COTYPE_GALILEOORBIT, COTYPE_GALILEOCLOCK, COTYPE_GALILEOCOMBINED, COTYPE_GALILEOHR, CBTYPE_GALILEO, COTYPE_GALILEOURA, PBTYPE_GALILEO, PBEXTTYPE_GALILEO, SATANTTYPE_GALILEO, REGIONOTYPE_GALILEO }, 255 { CLOCKORBIT_SATQZSS, COTYPE_QZSSORBIT, COTYPE_QZSSCLOCK, COTYPE_QZSSCOMBINED, COTYPE_QZSSHR, CBTYPE_QZSS, COTYPE_QZSSURA, PBTYPE_QZSS, PBEXTTYPE_QZSS, SATANTTYPE_QZSS, REGIONOTYPE_QZSS }, 256 { CLOCKORBIT_SATBDS, COTYPE_BDSORBIT, COTYPE_BDSCLOCK, COTYPE_BDSCOMBINED, COTYPE_BDSHR, CBTYPE_BDS, COTYPE_BDSURA, PBTYPE_BDS, PBEXTTYPE_BDS, SATANTTYPE_BDS, REGIONOTYPE_BDS }, 257 }; 258 for (const SysRow &row : rows) { 259 corType[row.sys][COBOFS_ORBIT] = row.orbit; 260 corType[row.sys][COBOFS_CLOCK] = row.clock; 261 corType[row.sys][COBOFS_COMBINED] = row.combined; 262 corType[row.sys][COBOFS_HR] = row.hr; 263 corType[row.sys][COBOFS_CBIAS] = row.cbias; 264 corType[row.sys][COBOFS_URA] = row.ura; 265 corType[row.sys][COBOFS_PBIAS] = row.pbias; 266 corType[row.sys][COBOFS_PBEXT] = row.pbext; 267 corType[row.sys][COBOFS_SATANT] = row.satant; 268 corType[row.sys][COBOFS_REGIONO] = row.regiono; 269 } 270 } 271 223 272 std::string codeTypeToRnxType(char system, CodeType type); 224 273 SsrCorr::CodeType rnxTypeToCodeType(char system, std::string type);
Note:
See TracChangeset
for help on using the changeset viewer.
