Changeset 10998 in ntrip for trunk/BNC/src/RTCM3
- Timestamp:
- Aug 28, 2026, 9:23:41 PM (2 months ago)
- Location:
- trunk/BNC/src/RTCM3
- Files:
-
- 2 edited
-
RTCM3coDecoder.cpp (modified) (2 diffs)
-
clock_and_orbit/clock_orbit_rtcm_new.cpp (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp
r10994 r10998 314 314 orbCorr._dotXr[1] = _clkOrb.Sat[ii].Orbit.DotDeltaAlongTrack; 315 315 orbCorr._dotXr[2] = _clkOrb.Sat[ii].Orbit.DotDeltaCrossTrack; 316 orbCorr._rtcmSsr = (_type == RTCMssr || _type == RTCMnewssr); 316 orbCorr._ssrFormat = (_type == RTCMssr) ? ssrRtcmOld : 317 (_type == RTCMnewssr) ? ssrRtcmNew : ssrUnknown; 317 318 318 319 _orbCorrections[_lastTime].append(orbCorr); … … 502 503 satPhaseBias._time = _lastTime; 503 504 satPhaseBias._updateInt = _phaseBias.UpdateInterval; 505 satPhaseBias._ssrFormat = (_type == RTCMssr) ? ssrRtcmOld : 506 (_type == RTCMnewssr) ? ssrRtcmNew : ssrUnknown; 504 507 satPhaseBias._dispBiasConstistInd = _phaseBias.DispersiveBiasConsistencyIndicator; 505 508 satPhaseBias._MWConsistInd = _phaseBias.MWConsistencyIndicator; -
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.cpp
r10997 r10998 353 353 354 354 for (s = 0; s < CLOCKORBIT_SATNUM; ++s) { 355 /* Extended Satellite Phase Bias Message 356 The Widelane Signal Group Indicator shall be releated for every satellite and signal 357 included in the corresponding Satellite Phase Bias Message in the same order. The 358 Extended Satellite Phase Bias Message shall be sent BEFORE the corresponding 359 Satellite Phase Bias Message */ 360 if (b->NumberOfSat[s] && (type == PBEXTTYPE_AUTO || type == corType[s][COBOFS_PBEXT])) { 361 INITBLOCK 362 E_RTCM_MESSAGE_NUMBER(corType[s][COBOFS_PBEXT]) 363 switch (s) { 364 case CLOCKORBIT_SATGPS: 365 case CLOCKORBIT_SATGALILEO: 366 case CLOCKORBIT_SATQZSS: 367 case CLOCKORBIT_SATSBAS: 368 case CLOCKORBIT_SATBDS: 369 E_GPS_EPOCH_TIME(b->EpochTime[s]) 370 break; 371 case CLOCKORBIT_SATGLONASS: 372 E_GLONASS_EPOCH_TIME(b->EpochTime[s]) 373 break; 374 } 375 E_SSR_IOD(b->SSRIOD) 376 E_SSR_PROVIDER_ID(b->SSRProviderID) 377 E_SSR_SOLUTION_ID(b->SSRSolutionID) 378 E_EXTENDED_PHASE_BIAS_ID(b->ExtendedPhaseBiasPropertyID) 379 for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) { 380 for (j = 0; j < b->Sat[i].NumberOfPhaseBiases; ++j) { 381 E_WIDE_LANE_INDICATOR(b->Sat[i].Biases[j].WidelaneGroupIndicator) 382 } 383 } 384 ENDBLOCK 385 } 386 /* Satellite Phase Bias Message */ 355 /* Satellite Phase Bias Message */ 387 356 if (b->NumberOfSat[s] && (type == PBTYPE_AUTO || type == corType[s][COBOFS_PBIAS])) { 388 357 INITBLOCK … … 422 391 ENDBLOCK 423 392 } 393 /* Extended Satellite Phase Bias Message 394 The Widelane Signal Group Indicator shall be releated for every satellite and signal 395 included in the corresponding Satellite Phase Bias Message in the same order. The 396 Extended Satellite Phase Bias Message shall be sent BEFORE the corresponding 397 Satellite Phase Bias Message VICE VERSA??*/ 398 if (b->NumberOfSat[s] && (type == PBEXTTYPE_AUTO || type == corType[s][COBOFS_PBEXT])) { 399 INITBLOCK 400 E_RTCM_MESSAGE_NUMBER(corType[s][COBOFS_PBEXT]) 401 switch (s) { 402 case CLOCKORBIT_SATGPS: 403 case CLOCKORBIT_SATGALILEO: 404 case CLOCKORBIT_SATQZSS: 405 case CLOCKORBIT_SATSBAS: 406 case CLOCKORBIT_SATBDS: 407 E_GPS_EPOCH_TIME(b->EpochTime[s]) 408 break; 409 case CLOCKORBIT_SATGLONASS: 410 E_GLONASS_EPOCH_TIME(b->EpochTime[s]) 411 break; 412 } 413 E_SSR_IOD(b->SSRIOD) 414 E_SSR_PROVIDER_ID(b->SSRProviderID) 415 E_SSR_SOLUTION_ID(b->SSRSolutionID) 416 E_EXTENDED_PHASE_BIAS_ID(b->ExtendedPhaseBiasPropertyID) 417 for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) { 418 for (j = 0; j < b->Sat[i].NumberOfPhaseBiases; ++j) { 419 E_WIDE_LANE_INDICATOR(b->Sat[i].Biases[j].WidelaneGroupIndicator) 420 } 421 } 422 ENDBLOCK 423 } 424 424 } 425 425 return ressize; … … 561 561 /* COBOFS_* are per-instance (set in setCorType()), not compile-time 562 562 constants, so this has to be an if/else-if chain rather than a switch. */ 563 if (kind == COBOFS_PBIAS) { 563 if (kind == COBOFS_PBIAS) { 564 564 if (!pb) 565 565 return GCOBR_NOPHASEBIASPARAMETER; 566 566 pb->messageType = type; 567 /* Header Part*/ 567 568 switch (s) { 568 569 case CLOCKORBIT_SATGPS: … … 586 587 D_NO_OF_SATELLITES(nums) 587 588 #ifdef BNC_DEBUG_SSR 588 fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d dispInd %d mwInd %d\n", 589 pb->EpochTime[s], pb->UpdateInterval,mmi,pb->NumberOfSat[s],nums, 590 pb->SSRIOD, pb->SSRProviderID, pb->SSRSolutionID, 591 pb->DispersiveBiasConsistencyIndicator, pb->MWConsistencyIndicator); 592 #endif 589 fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d yawInd %d extpbInd %d\n", 590 pb->EpochTime[s], pb->UpdateInterval,mmi,pb->NumberOfSat[s],nums, 591 pb->SSRIOD, pb->SSRProviderID, pb->SSRSolutionID, 592 pb->SatelliteYawInformationIndicator, pb->ExtendedPhaseBiasPropertyID); 593 #endif 594 /* Satellite Specific Part*/ 593 595 for (i = 0; i < nums; ++i) { 594 596 D_GPS_SATELLITE_ID(id) … … 608 610 fprintf(stderr, "id %2d #%d y %10.6f yr %10.6f ", 609 611 pb->Sat[pos].ID, pb->Sat[pos].NumberOfPhaseBiases, 610 pb->Sat[pos].YawAngle/MPI, pb->Sat[pos].YawRate/MPI); 611 #endif 612 pb->Sat[pos].YawAngle/MPI, pb->Sat[pos].YawRate/MPI); 613 #endif 614 /* Signal Specific Part */ 612 615 for (j = 0; j < pb->Sat[pos].NumberOfPhaseBiases; ++j) { 613 616 D_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type) 614 617 D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].IntegerIndicator) 615 // D_WIDE_LANE_INDICATOR(pb->Sat[pos].Biases[j].WidelaneGroupIndicator)616 618 D_DISCONTINUITY_COUNTER(pb->Sat[pos].Biases[j].DiscontinuityCounter) 617 619 D_PHASE_BIAS_CORRECTION(pb->Sat[pos].Biases[j].Bias) 620 #ifdef BNC_DEBUG_SSR 621 fprintf(stderr, "t%02d int %d disc %d b %8.4f ", 622 pb->Sat[pos].Biases[j].Type, 623 pb->Sat[pos].Biases[j].IntegerIndicator, 624 pb->Sat[pos].Biases[j].DiscontinuityCounter, 625 pb->Sat[pos].Biases[j].Bias); 626 #endif 627 } 628 #ifdef BNC_DEBUG_SSR 629 fprintf(stderr, "\n"); 630 #endif 631 } 632 } 633 else if (kind == COBOFS_PBEXT) { 634 unsigned int EpochTime, SSRIOD, SSRProviderID, SSRSolutionID, ExtendedPhaseBiasPropertyID; 635 if (!pb) 636 return GCOBR_NOPHASEBIASPARAMETER; 637 pb->messageExtType = type; 638 switch (s) { 639 case CLOCKORBIT_SATGPS: 640 case CLOCKORBIT_SATGALILEO: 641 case CLOCKORBIT_SATQZSS: 642 case CLOCKORBIT_SATSBAS: 643 case CLOCKORBIT_SATBDS: 644 D_GPS_EPOCH_TIME(EpochTime) 645 break; 646 case CLOCKORBIT_SATGLONASS: 647 D_GLONASS_EPOCH_TIME(EpochTime) 648 break; 649 } 650 D_SSR_IOD(SSRIOD) 651 D_SSR_PROVIDER_ID(SSRProviderID) 652 D_SSR_SOLUTION_ID(SSRSolutionID) 653 D_EXTENDED_PHASE_BIAS_ID(ExtendedPhaseBiasPropertyID) 654 #ifdef BNC_DEBUG_SSR 655 fprintf(stderr, "epochTime %d/%d ssrIod %d/%d providerId %d/%d solId %d/%d extpbInd %d/%d \n", 656 EpochTime, pb->EpochTime[s], 657 SSRIOD, pb->SSRIOD, 658 SSRProviderID, pb->SSRProviderID, 659 SSRSolutionID, pb->SSRSolutionID, 660 ExtendedPhaseBiasPropertyID, pb->ExtendedPhaseBiasPropertyID); 661 #endif 662 if (EpochTime == pb->EpochTime[s] && 663 ExtendedPhaseBiasPropertyID == pb->ExtendedPhaseBiasPropertyID) { 664 for (i = 0; i < pb->NumberOfSat[s]; ++i) { 665 for (pos = satoffset[s]; 666 pos < satoffset[s] + pb->NumberOfSat[s]; 667 ++pos) 668 ; 669 if (pos >= satoffset[s + 1]) 670 return GCOBR_DATAMISMATCH; 671 else if (pos == pb->NumberOfSat[s] + satoffset[s]) 672 ++pb->NumberOfSat[s]; 673 #ifdef BNC_DEBUG_SSR 674 fprintf(stderr, "id %2d ", pb->Sat[pos].ID); 675 #endif 676 for (j = 0; j < pb->Sat[pos].NumberOfPhaseBiases; ++j) { 677 D_WIDE_LANE_INDICATOR(pb->Sat[pos].Biases[j].WidelaneGroupIndicator) 618 678 #ifdef BNC_DEBUG_SSR 619 679 fprintf(stderr, "t%02d int %d /*wl %d*/ disc %d b %8.4f ", 620 680 pb->Sat[pos].Biases[j].Type, 621 681 pb->Sat[pos].Biases[j].IntegerIndicator, 622 //pb->Sat[pos].Biases[j].WidelaneGroupIndicator,682 pb->Sat[pos].Biases[j].WidelaneGroupIndicator, 623 683 pb->Sat[pos].Biases[j].DiscontinuityCounter, 624 684 pb->Sat[pos].Biases[j].Bias); … … 629 689 #endif 630 690 } 691 } 631 692 } 632 693 else if (kind == COBOFS_ORBIT) { … … 954 1015 #ifdef BNC_DEBUG_SSR 955 1016 fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d\n", 956 b->EpochTime[s], b->UpdateInterval,mmi,b->NumberOfSat[s],nums, 957 b->SSRIOD, b->SSRProviderID, b->SSRSolutionID); 1017 b->EpochTime[s], b->UpdateInterval,mmi,b->NumberOfSat[s],nums, 1018 b->SSRIOD, b->SSRProviderID, b->SSRSolutionID); 958 1019 #endif 959 1020 for (i = 0; i < nums; ++i) {
Note:
See TracChangeset
for help on using the changeset viewer.
