Changeset 10990 in ntrip
- Timestamp:
- Aug 19, 2026, 11:42:41 AM (4 weeks ago)
- Location:
- trunk/BNC/src
- Files:
-
- 5 edited
-
RTCM3/clock_and_orbit/clock_orbit.h (modified) (4 diffs)
-
RTCM3/clock_and_orbit/clock_orbit_igs.cpp (modified) (38 diffs)
-
RTCM3/clock_and_orbit/clock_orbit_rtcm.cpp (modified) (51 diffs)
-
RTCM3/clock_and_orbit/clock_orbit_rtcm_new.cpp (modified) (51 diffs)
-
ephemeris.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h
r10989 r10990 432 432 }; 433 433 434 435 434 /* return size of resulting data or 0 in case of an error */ 436 virtual size_t MakeClockOrbit(const struct ClockOrbit *co, CodeType type, 437 int moremessagesfollow, char *buffer, size_t size) = 0; 438 virtual size_t MakeCodeBias(const struct CodeBias *b, CodeBiasType type, 439 int moremessagesfollow, char *buffer, size_t size) = 0; 440 virtual size_t MakePhaseBias(const struct PhaseBias *b, CodeBiasType type, 441 int moremessagesfollow, char *buffer, size_t size) = 0; 442 virtual size_t MakeVTEC(const struct VTEC *v, 443 int moremessagesfollow, char *buffer, size_t size) = 0; 435 virtual size_t MakeClockOrbit(const struct ClockOrbit *co, CodeType type, int moremessagesfollow, char *buffer, size_t size) = 0; 436 virtual size_t MakeCodeBias(const struct CodeBias *b, CodeBiasType type, int moremessagesfollow, char *buffer, size_t size) = 0; 437 virtual size_t MakePhaseBias(const struct PhaseBias *b, CodeBiasType type, int moremessagesfollow, char *buffer, size_t size) = 0; 438 virtual size_t MakeVTEC(const struct VTEC *v, int moremessagesfollow, char *buffer, size_t size) = 0; 444 439 445 440 /* buffer should point to a RTCM3 block */ 446 virtual enum GCOB_RETURN GetSSR(struct ClockOrbit *co, struct CodeBias *b, 447 struct VTEC *v, struct PhaseBias *pb, const char *buffer, size_t size, 448 int *bytesused) = 0; 449 441 virtual enum GCOB_RETURN GetSSR(struct ClockOrbit *co, struct CodeBias *b, struct VTEC *v, struct PhaseBias *pb, 442 const char *buffer, size_t size, int *bytesused) = 0; 450 443 virtual std::string codeTypeToRnxType(char system, CodeType type) = 0; 451 444 virtual CodeType rnxTypeToCodeType(char system, std::string type) = 0; … … 454 447 455 448 /* GNSS macros - Header part */ 456 #define T_RTCM_MESSAGE_NUMBER(a) ADDBITS(12, a) /* DF002 */ 457 #define T_IGS_SSR_VERSION(a) ADDBITS( 3, a) /* IDF001 */ 458 #define T_IGS_MESSAGE_NUMBER(a) ADDBITS( 8, a) /* IDF002 */ 459 460 #define T_GPS_EPOCH_TIME(a) ADDBITS(20, a) /* IDF003 DF385 DF458 DF460 DF465*/ 461 #define T_GLONASS_EPOCH_TIME(a) ADDBITS(17, a) /* DF386 */ 462 463 #define T_SSR_UPDATE_INTERVAL(a) ADDBITS( 4, a) /* DF391, IDF004 */ 464 #define T_MULTIPLE_MESSAGE_INDICATOR(a) ADDBITS( 1, a) /* DF388, IDF005 */ 465 #define T_SSR_IOD(a) ADDBITS( 4, a) /* DF413, IDF007 */ 466 #define T_SSR_PROVIDER_ID(a) ADDBITS(16, a) /* DF414, IDF008 */ 467 #define T_SSR_SOLUTION_ID(a) ADDBITS( 4, a) /* DF415, IDF009 */ 468 #define T_SATELLITE_REFERENCE_DATUM(a) ADDBITS( 1, a) /* DF375, IDF006 */ 469 #define T_NO_OF_SATELLITES(a) ADDBITS( 6, a) /* DF387, IDF010 */ 449 #define E_RTCM_MESSAGE_NUMBER(a) ADDBITS(12, a) /* DF002 */ 450 #define E_IGS_SSR_VERSION(a) ADDBITS( 3, a) /* IDF001 */ 451 #define E_IGS_MESSAGE_NUMBER(a) ADDBITS( 8, a) /* IDF002 */ 452 453 #define E_GPS_EPOCH_TIME(a) ADDBITS(20, a) /* IDF003 DF385 DF458 DF460 DF465*/ 454 #define E_GLONASS_EPOCH_TIME(a) ADDBITS(17, a) /* DF386 */ 455 #define E_SSR_UPDATE_INTERVAL(a) ADDBITS( 4, a) /* DF391, IDF004 */ 456 #define E_MULTIPLE_MESSAGE_INDICATOR(a) ADDBITS( 1, a) /* DF388, IDF005 */ 457 #define E_SSR_IOD(a) ADDBITS( 4, a) /* DF413, IDF007 */ 458 #define E_SSR_PROVIDER_ID(a) ADDBITS(16, a) /* DF414, IDF008 */ 459 #define E_SSR_SOLUTION_ID(a) ADDBITS( 4, a) /* DF415, IDF009 */ 460 #define E_SATELLITE_REFERENCE_DATUM(a) ADDBITS( 1, a) /* DF375, IDF006 */ 461 #define E_NO_OF_SATELLITES(a) ADDBITS( 6, a) /* DF387, IDF010 */ 470 462 471 463 /* GNSS macros - Satellite specific part */ 472 #define T_GPS_SATELLITE_ID(a) ADDBITS( 6, a) /* IDF011 DF068 DF488 */ 473 #define T_QZSS_SATELLITE_ID(a) ADDBITS( 4, a) /* DF249 */ 474 #define T_GLONASS_SATELLITE_ID(a) ADDBITS( 5, a) /* DF384 (old RTCM) */ 475 #define T_GLONASS_SATELLITE_ID_NEW(a) ADDBITS( 6, a) /* DF (new RTCM) */ 476 #define T_GPS_IODE(a) ADDBITS( 8, a) /* IDF012 DF071 */ 477 #define T_GLONASS_IOD(a) ADDBITS( 8, a) /* DF239 */ 478 #define T_GALILEO_IOD(a) ADDBITS(10, a) /* DF459 */ 479 #define T_SBAS_T0MOD(a) ADDBITS( 9, (a/16)) /* DF468 */ 480 #define T_SBAS_IODCRC(a) ADDBITS(24, a) /* DF469 */ 481 #define T_BDS_TOEMOD(a) ADDBITS(10, (a/8)) /* DF470 */ 482 #define T_BDS_IOD(a) ADDBITS( 8, a) /* DF471 */ 483 464 #define E_GPS_SATELLITE_ID(a) ADDBITS( 6, a) /* IDF011 DF068 DF488 */ 465 #define E_QZSS_SATELLITE_ID_OLD(a) ADDBITS( 4, a) /* DF249 (old RTCM)*/ 466 #define E_GLONASS_SATELLITE_ID_OLD(a) ADDBITS( 5, a) /* DF384 (old RTCM) */ 467 #define E_GPS_IODE(a) ADDBITS( 8, a) /* IDF012 DF071 */ 468 #define E_GLONASS_IOD(a) ADDBITS( 8, a) /* DF239 */ 469 #define E_GALILEO_IOD(a) ADDBITS(10, a) /* DF459 */ 470 #define E_SBAS_T0MOD(a) ADDBITS( 9, (a/16)) /* DF468 */ 471 #define E_SBAS_IODCRC(a) ADDBITS(24, a) /* DF469 */ 472 #define E_BDS_TOEMOD(a) ADDBITS(10, (a/8)) /* DF470 */ 473 #define E_BDS_IOD(a) ADDBITS( 8, a) /* DF471 */ 474 484 475 /* Orbit Corrections */ 485 #define T_DELTA_RADIAL(a) SCALEADDBITS(22, 10000.0, a) /* DF365, IDF013 */486 #define T_DELTA_ALONG_TRACK(a) SCALEADDBITS(20, 2500.0, a) /* DF366, IDF014 */487 #define T_DELTA_CROSS_TRACK(a) SCALEADDBITS(20, 2500.0, a) /* DF367, IDF015 */488 #define T_DELTA _DOT_RADIAL(a) SCALEADDBITS(21, 1000000.0, a) /* DF368, IDF016 */489 #define T_DELTA _DOT_ALONG_TRACK(a) SCALEADDBITS(19, 250000.0, a) /* DF369, IDF017 */490 #define T_DELTA _DOT_CROSS_TRACK(a) SCALEADDBITS(19, 250000.0, a) /* DF370, IDF018 */476 #define E_DELTA_RADIAL(a) SCALEADDBITS(22, 10000.0, a) /* DF365, IDF013 */ 477 #define E_DELTA_ALONG_TRACK(a) SCALEADDBITS(20, 2500.0, a) /* DF366, IDF014 */ 478 #define E_DELTA_CROSS_TRACK(a) SCALEADDBITS(20, 2500.0, a) /* DF367, IDF015 */ 479 #define E_DOT_DELTA_RADIAL(a) SCALEADDBITS(21, 1000000.0, a) /* DF368, IDF016 */ 480 #define E_DOT_DELTA_ALONG_TRACK(a) SCALEADDBITS(19, 250000.0, a) /* DF369, IDF017 */ 481 #define E_DOT_DELTA_CROSS_TRACK(a) SCALEADDBITS(19, 250000.0, a) /* DF370, IDF018 */ 491 482 492 483 /* Clock Corrections */ 493 #define T_DELTA_CLOCK_C0(a) SCALEADDBITS(22, 10000.0, a) /* DF376, IDF019 */494 #define T_DELTA_CLOCK_C1(a) SCALEADDBITS(21, 1000000.0, a) /* DF377, IDF020 */495 #define T_DELTA_CLOCK_C2(a) SCALEADDBITS(27, 50000000.0, a) /* DF378, IDF021 */496 #define T_HR_CLOCK_CORRECTION(a) SCALEADDBITS(22, 10000.0, a) /* DF390, IDF022 */484 #define E_DELTA_CLOCK_C0(a) SCALEADDBITS(22, 10000.0, a) /* DF376, IDF019 */ 485 #define E_DELTA_CLOCK_C1(a) SCALEADDBITS(21, 1000000.0, a) /* DF377, IDF020 */ 486 #define E_DELTA_CLOCK_C2(a) SCALEADDBITS(27, 50000000.0, a) /* DF378, IDF021 */ 487 #define E_HR_CLOCK_CORRECTION(a) SCALEADDBITS(22, 10000.0, a) /* DF390, IDF022 */ 497 488 498 489 /* Biases */ 499 #define T_NO_OF_BIASES(a) ADDBITS(5, a) /* DF479DF379IDF023 */500 #define T_GNSS_SIGNAL_IDENTIFIER(a) ADDBITS(5, a) /* DF380, IDF024 */501 #define T_CODE_BIAS(a) SCALEADDBITS(14, 100.0, a) /* DF383, IDF025 */502 #define T_YAW_ANGLE(a) SCALEADDBITS( 9, 256.0/MPI, a) /* DF480, IDF026 */503 #define T_YAW_RATE(a) SCALEADDBITS( 8, 8192.0/MPI, a) /* DF481, IDF027 */504 #define T_PHASE_BIAS(a)SCALEADDBITS(20, 10000.0, a) /* DF482, IDF028 */490 #define E_NO_OF_BIASES(a) ADDBITS(5, a) /* DF479, DF379, IDF023 */ 491 #define E_GNSS_SIGNAL_IDENTIFIER(a) ADDBITS(5, a) /* DF380, IDF024 */ 492 #define E_CODE_BIAS(a) SCALEADDBITS(14, 100.0, a) /* DF383, IDF025 */ 493 #define E_YAW_ANGLE(a) SCALEADDBITS( 9, 256.0/MPI, a) /* DF480, IDF026 */ 494 #define E_YAW_RATE(a) SCALEADDBITS( 8, 8192.0/MPI, a) /* DF481, IDF027 */ 495 #define E_PHASE_BIAS_CORRECTION(a) SCALEADDBITS(20, 10000.0, a) /* DF482, IDF028 */ 505 496 506 497 /* Phase specific part of GNSS phase bias message */ 507 #define T_INTEGER_INDICATOR(a) ADDBITS(1, a) /* DF483, IDF029 */ 508 #define T_WIDE_LANE_INDICATOR(a) ADDBITS(2, a) /* DF484, IDF030 */ 509 #define T_DISCONTINUITY_COUNTER(a) ADDBITS(4, a) /* DF485, IDF031 */ 510 #define T_DISPERSIVE_BIAS_INDICATOR(a) ADDBITS(1, a) /* DF486 (old RTCM), IDF032 */ 511 #define T_YAW_INFO_INDICATOR(a) ADDBITS(1, a) /* DF486 (new RTCM) */ 512 #define T_MW_CONSISTENCY_INDICATOR(a) ADDBITS(1, a) /* DF487 (old RTCM), IDF033 */ 513 #define T_EXTENDED_PHASE_BIAS_ID(a) ADDBITS(4, a) /* DF+002 (new RTCM) */ 498 #define E_INTEGER_INDICATOR(a) ADDBITS(1, a) /* DF483, IDF029 */ 499 #define E_WIDE_LANE_INDICATOR(a) ADDBITS(2, a) /* DF484, IDF030 */ 500 #define E_DISCONTINUITY_COUNTER(a) ADDBITS(4, a) /* DF485, IDF031 */ 501 #define E_DISPERSIVE_BIAS_INDICATOR(a) ADDBITS(1, a) /* DF486 (old RTCM), IDF032 */ 502 #define E_YAW_INFO_INDICATOR(a) ADDBITS(1, a) /* DF486 (new RTCM) */ 503 #define E_MW_CONSISTENCY_INDICATOR(a) ADDBITS(1, a) /* DF487 (old RTCM), IDF033 */ 504 505 #define E_EXTENDED_PHASE_BIAS_ID(a) ADDBITS(4, a) /* DF+002 (new RTCM) */ 506 507 #define E_GLONASS_SATELLITE_ID(a) ADDBITS(6, a) /* DF+003 (new RTCM) */ 514 508 515 509 /* URA */ 516 #define T_SSR_URA(a) ADDBITS( 6, a) /* DF389, IDF034 */ 510 #define E_SSR_URA(a) ADDBITS(6, a) /* DF389, IDF034 */ 511 512 /* Ionosphere */ 513 #define E_NO_IONO_LAYERS(a) ADDBITS(2, a-1) /* DF472, IDF035 */ 514 #define E_IONO_HEIGHT(a) SCALEADDBITS( 8, 1/10000.0, a) /* DF473, IDF036 */ 515 #define E_IONO_DEGREE(a) ADDBITS(4, a-1) /* DF474, IDF037 */ 516 #define E_IONO_ORDER(a) ADDBITS(4, a-1) /* DF475, IDF038 */ 517 #define E_IONO_COEFF_C(a) SCALEADDBITS(16, 200.0, a) /* DF476, IDF039 */ 518 #define E_IONO_COEFF_S(a) SCALEADDBITS(16, 200.0, a) /* DF477, IDF040 */ 519 #define E_VTEC_QUALITY_INDICATOR(a) SCALEADDBITS( 9, 20.0, a) /* DF478, IDF041 */ 517 520 518 521 /* Antenna Information*/ 519 #define T_SATELLITE_ANTENNA_IOD(a) ADDBITS(6, a) /* DF+010 (new RTCM) */ 520 #define T_PHASE_CENTER_INFO_INDICATOR(a) ADDBITS(1, a) /* DF+011 (new RTCM) */ 521 #define T_GROUP_DELAY_INFO_INDICATOR(a) ADDBITS(1, a) /* DF+012 (new RTCM) */ 522 #define T_NADIR_ANGLE_DEPENDENT_CORR_INDICATOR(a) ADDBITS(1, a) /* DF+013 (new RTCM) */ 523 #define T_MAXIMUM_OFF_NADIR_ANGLE(a) ADDBITS(5, a) /* DF+014 (new RTCM) */ 524 #define T_NADIR_ANGLE_DEPENDENT_CORR_RANGE_EXTENSION(a) ADDBITS(4, a) /* DF+015 (new RTCM) */ 525 #define T_SATELLITE_SET_INDICATOR(a) ADDBITS(1, a) /* DF+016 (new RTCM) */ 526 #define T_FREQUENCY_SET_INDICATOR(a) ADDBITS(1, a) /* DF+017 (new RTCM) */ 527 #define T_GNSS_FREQUENCY_MASK(a) ADDBITS(6, a) /* DF+018 (new RTCM) */ 528 #define T_NADIR_CORR_INDICATOR(a) ADDBITS(1, a) /* DF+019 (new RTCM) */ 529 #define T_NADIR_CORRECTION(a) ADDBITS(12, a) /* DF+020 (new RTCM) */ 530 #define T_NADIR_ANGLE_DEPENDENT_CORRECTION(a, nbits) SCALEADDBITS(3 + nbits, 1000.0, a) /* DF+021 (new RTCM) can be extended up to 15/18 Bits from DF+015*/ 531 532 /* Grid Messages */ 533 #define T_GRID_ID(a) ADDBITS(10, a) /* DF+022 (new RTCM) */ 534 #define T_GRID_TYPE(a) ADDBITS(3 , a) /* DF+023 (new RTCM) */ 535 #define T_LATITUDE_OF_REFERENCE_POINT(a) SCALEADDBITS(18, 1000.0, a) /* DF+024 (new RTCM) */ 536 #define T_LONGITUDE_OF_REFERENCE_POINT(a) SCALEADDBITS(19, 1000.0, a) /* DF+025 (new RTCM) */ 537 #define T_ELLIPSOIDAL_HEIGHT_OF_REFERENCE_POINT(a) SCALEADDBITS(10, 1/12.5, a+1000.0) /* DF+026 (new RTCM) */ 538 #define T_NUMNBER_OF_RELATIVE_POINTS(a) ADDBITS(8, a) /* DF+027 (new RTCM) */ 539 #define T_RELATIVE_LATITUDE(a) SCALEADDBITS(13, 1000.0, a) /* DF+028 (new RTCM) */ 540 #define T_RELATIVE_LONGITUDE(a) SCALEADDBITS(14, 1000.0, a) /* DF+029 (new RTCM) */ 541 #define T_RELATIVE_HIGHT(a) SCALEADDBITS(9, 1/12.5, a) /* DF+030 (new RTCM) */ 542 #define T_NUMBER_OF_POINTS_IN_LATITIDE_DIRECTION(a) ADDBITS(6, a) /* DF+031 (new RTCM) */ 543 #define T_NUMBER_OF_POINTS_IN_LONGITUDE_DIRECTION(a) ADDBITS(6, a) /* DF+032 (new RTCM) */ 544 #define T_GRID_STEP_SIZE_IN_LATITIDE_DIRECTION(a) SCALEADDBITS(9, 100.0, a) /* DF+033 (new RTCM) */ 545 #define T_GRID_STEP_SIZE_IN_LONGITUDE_DIRECTION(a) SCALEADDBITS(10, 100.0, a) /* DF+034 (new RTCM) */ 546 #define T_GRID_MASK_AVAILABILITY_FLAG(a) ADDBITS(1, a) /* DF+035 (new RTCM) */ 547 #define T_GRID_MASK(a, nbits) ADDBITS(nbits, a) /* DF+036 (new RTCM) nbits from DF+031 or DF+032 */ 522 #define E_SATELLITE_ANTENNA_IOD(a) ADDBITS(6, a) /* DF+010 (new RTCM) */ 523 #define E_PHASE_CENTER_INFO_INDICATOR(a) ADDBITS(1, a) /* DF+011 (new RTCM) */ 524 #define E_GROUP_DELAY_INFO_INDICATOR(a) ADDBITS(1, a) /* DF+012 (new RTCM) */ 525 #define E_NADIR_ANGLE_DEPENDENT_CORR_INDICATOR(a) ADDBITS(1, a) /* DF+013 (new RTCM) */ 526 #define E_MAXIMUM_OFF_NADIR_ANGLE(a) ADDBITS(5, a) /* DF+014 (new RTCM) */ 527 #define E_NADIR_ANGLE_DEPENDENT_CORR_RANGE_EXTENSION(a) ADDBITS(4, a) /* DF+015 (new RTCM) to extend DF+021*/ 528 #define E_SATELLITE_SET_INDICATOR(a) ADDBITS(1, a) /* DF+016 (new RTCM) */ 529 #define E_FREQUENCY_SET_INDICATOR(a) ADDBITS(1, a) /* DF+017 (new RTCM) */ 530 #define E_GNSS_FREQUENCY_MASK(a) ADDBITS(6, a) /* DF+018 (new RTCM) */ 531 #define E_NADIR_CORR_INDICATOR(a) ADDBITS(1, a) /* DF+019 (new RTCM) */ 532 #define E_NADIR_CORRECTION(a) SCALEADDBITS(12, 1000.0, a) /* DF+020 (new RTCM) [m] => [mm] */ 533 #define E_NADIR_ANGLE_DEPENDENT_CORRECTION(a, nbits) SCALEADDBITS(3 + nbits, 1000.0, a) /* DF+021 (new RTCM) [m] => [mm] can be extended up to 15/18 Bits from DF+015*/ 548 534 /* 549 535 //Encoding 550 #define T_NEW_PAR(a, nbits) ADDBITS(nbits, a) //called asT_NEW_PAR(co->NewPar, co->NewParNumBits)551 #define T_NEW_PAR_SCALE(a, nbits) SCALEADDBITS(nbits, 10000.0, a) //called asT_NEW_PAR(co->NewPar, co->NewParNumBits)536 #define E_NEW_PAR(a, nbits) ADDBITS(nbits, a) //called as E_NEW_PAR(co->NewPar, co->NewParNumBits) 537 #define E_NEW_PAR_SCALE(a, nbits) SCALEADDBITS(nbits, 10000.0, a) //called as E_NEW_PAR(co->NewPar, co->NewParNumBits) 552 538 */ 553 /* Ionosphere */ 554 #define T_NO_IONO_LAYERS(a) ADDBITS(2, a-1) /* DF472, IDF035 */ 555 #define T_IONO_HEIGHT(a) SCALEADDBITS( 8, 1/10000.0, a) /* DF473, IDF036 */ 556 #define T_IONO_DEGREE(a) ADDBITS(4, a-1) /* DF474, IDF037 */ 557 #define T_IONO_ORDER(a) ADDBITS(4, a-1) /* DF475, IDF038 */ 558 #define T_IONO_COEFF_C(a) SCALEADDBITS(16, 200.0, a) /* DF476, IDF039 */ 559 #define T_IONO_COEFF_S(a) SCALEADDBITS(16, 200.0, a) /* DF477, IDF040 */ 560 #define T_VTEC_QUALITY_INDICATOR(a) SCALEADDBITS( 9, 20.0, a) /* DF478, IDF041 */ 539 /* Grid Messages */ 540 #define E_GRID_ID(a) ADDBITS(10, a) /* DF+022 (new RTCM) */ 541 #define E_GRID_TYPE(a) ADDBITS(3 , a) /* DF+023 (new RTCM) */ 542 #define E_LATITUDE_OF_REFERENCE_POINT(a) SCALEADDBITS(18, 1000.0, a) /* DF+024 (new RTCM) */ 543 #define E_LONGITUDE_OF_REFERENCE_POINT(a) SCALEADDBITS(19, 1000.0, a) /* DF+025 (new RTCM) */ 544 #define E_ELLIPSOIDAL_HEIGHT_OF_REFERENCE_POINT(a) SCALEADDBITS(10, 1/12.5, a+1000.0) /* DF+026 (new RTCM) */ 545 #define E_NUMNBER_OF_RELATIVE_POINTS(a) ADDBITS(8, a) /* DF+027 (new RTCM) */ 546 #define E_RELATIVE_LATITUDE(a) SCALEADDBITS(13, 1000.0, a) /* DF+028 (new RTCM) */ 547 #define E_RELATIVE_LONGITUDE(a) SCALEADDBITS(14, 1000.0, a) /* DF+029 (new RTCM) */ 548 #define E_RELATIVE_HIGHT(a) SCALEADDBITS(9, 1/12.5, a) /* DF+030 (new RTCM) */ 549 #define E_NUMBER_OF_POINTS_IN_LATITIDE_DIRECTION(a) ADDBITS(6, a) /* DF+031 (new RTCM) */ 550 #define E_NUMBER_OF_POINTS_IN_LONGITUDE_DIRECTION(a) ADDBITS(6, a) /* DF+032 (new RTCM) */ 551 #define E_GRID_STEP_SIZE_IN_LATITIDE_DIRECTION(a) SCALEADDBITS(9, 100.0, a) /* DF+033 (new RTCM) */ 552 #define E_GRID_STEP_SIZE_IN_LONGITUDE_DIRECTION(a) SCALEADDBITS(10, 100.0, a) /* DF+034 (new RTCM) */ 553 #define E_GRID_MASK_AVAILABILITY_FLAG(a) ADDBITS(1, a) /* DF+035 (new RTCM) */ 554 #define E_GRID_MASK(a, nbits) ADDBITS(nbits, a) /* DF+036 (new RTCM) nbits from DF+031 or DF+032 */ 555 556 /* Troposphere Messages */ 557 #define E_HYDROSTATIC_MAPPING_FUNCTION_PAR_AH(a) SCALEADDBITS(11, 25000000.0, a - 0.00118, a) /* DF+038 (new RTCM) */ 558 #define E_HYDROSTATIC_MAPPING_FUNCTION_PAR_BH(a) SCALEADDBITS( 9, 5000000.0, a - 0.00298, a) /* DF+039 (new RTCM) */ 559 #define E_HYDROSTATIC_MAPPING_FUNCTION_PAR_CH(a) SCALEADDBITS( 9, 20000.0, a - 0.0682, a) /* DF+040 (new RTCM) */ 560 #define E_WET_MAPPING_FUNCTION_PAR_AW(a) SCALEADDBITS(13, 1000000.0, a - 0.000104, a) /* DF+041 (new RTCM) */ 561 #define E_WET_MAPPING_FUNCTION_PAR_BW(a) SCALEADDBITS( 6, 250000.0, a - 0.0015, a) /* DF+042 (new RTCM) */ 562 #define E_WET_MAPPING_FUNCTION_PAR_CW(a) SCALEADDBITS( 5, 2000.0, a - 0.0048, a) /* DF+043 (new RTCM) */ 563 #define E_HYDROSTATIC_OFFSET(a) SCALEADDBITS(13, 10000.0, a - 2.3, a) /* DF+044 (new RTCM) [m] -2.3 m => [0.1 mm] */ 564 #define E_HYDROSTATIC_GRADIENT_LATITUDE_DIRECTION(a) SCALEADDBITS(15, 100000.0, a) /* DF+045 (new RTCM) [m] => [0.01 mm] */ 565 #define E_HYDROSTATIC_GRADIENT_LONGITUDE_DIRECTION(a) SCALEADDBITS(15, 100000.0, a) /* DF+046 (new RTCM) [m] => [0.01 mm] */ 566 #define E_WET_OFFSET(a) SCALEADDBITS(13, 10000.0, a - 0.252) /* DF+047 (new RTCM) [m] - 0.252 m => [0.1 mm] */ 567 #define E_WET_GRADIENT_LATITUDE_DIRECTION(a) SCALEADDBITS(15, 100000.0, a) /* DF+048 (new RTCM) */ 568 #define E_WET_GRADIENT_LONGITUDE_DIRECTION(a) SCALEADDBITS(15, 100000.0, a) /* DF+049 (new RTCM) */ 569 #define E_HYDTOSTATIC_GRID_POINT_RESIDUAL_LENGTH(a) ADDBITS(4, a) /* DF+050 (new RTCM) */ 570 #define E_WET_GRID_POINT_RESIDUAL_LENGTH(a) ADDBITS(4. a) /* DF+051 (new RTCM) */ 571 #define E_HYDTOSTATIC_GRID_POINT_RESIDUAL(a, nbits) SCALEADDBITS(nbits, 10000.0, a) /* DF+052 (new RTCM) size depends on DF+050 */ 572 #define E_WET_GRID_POINT_RESIDUAL(a, nbits) SCALEADDBITS(nbits, 10000.0, a) /* DF+053 (new RTCM) size depends on DF+051 */ 573 574 #define E_SSR_EPOCH_TIME(a) ADDBITS(20, a) /* DF*055 (new RTCM) same definition as in IGS-SSR */ 575 576 /* Ionosphere Messages */ 577 #define E_ZENITH_MAPPED_STEC_POLYNOM_COEFF_C00(a) SCALEADDBITS(17, 1000.0, a) /* DF+057 (new RTCM) */ 578 #define E_ZENITH_MAPPED_STEC_POLYNOM_COEFF_C01(a) SCALEADDBITS(18, 10000.0, a) /* DF+058 (new RTCM) */ 579 #define E_ZENITH_MAPPED_STEC_POLYNOM_COEFF_C10(a) SCALEADDBITS(18, 10000.0, a) /* DF+059 (new RTCM) */ 580 #define E_ZENITH_MAPPED_STEC_POLYNOMIAL_GRADIENT_INDICATOR(a) ADDBITS(1, a) /* DF+060 (new RTCM) */ 581 #define E_ZENITH_MAPPED_STEC_GRID_POINT_RESIDUAL(a) ADDBITS(5, a) /* DF+061 (new RTCM) size required for DF+062 */ 582 #define E_ZENITH_MAPPED_STEC_GRID_POINT_RESIDUAL_CORRECTION(a, nbits) ADDBITS(nbits, a) /* DF+062 (new RTCM) nbits depends on DF+061 */ 583 584 /* Metadata */ 585 #define E_NUMBER_OF_SSR_MODEL_CORRECTION_ENTRIES(a) ADDBITS(5, a) /* DF+063 (new RTCM) */ 586 #define E_MODEL_CORRECTION_TYPE_INDICATOR(a) ADDBITS(5, a) /* DF+064 (new RTCM) */ 587 #define E_MODEL_CORRECTION_APPLICATION_INDICATOR(a) ADDBITS(1, a) /* DF+065 (new RTCM) */ 588 #define E_NON_DEFAULT_MODEL_CORRECTION_INDICATOR(a) ADDBITS(1, a) /* DF+066 (new RTCM) */ 589 #define E_NON_DEFAULT_MODEL_CORRECTION_IDENTIFIER(a) ADDBITS(3, a) /* DF+067 (new RTCM) */ 590 #define E_MODEL_CORRECTION_DATA_IOD_INDICATOR(a) ADDBITS(1, a) /* DF+068 (new RTCM) */ 591 #define E_MODEL_CORRECTION_DATA_IOD(a) ADDBITS(6, a) /* DF+069 (new RTCM) */ 592 #define E_ADDITIONAL_MODEL_PARAMETER_INDICATOR(a) ADDBITS(1, a) /* DF+070 (new RTCM) */ 593 #define E_NUMBER_OF_ADDITIONAL_MODEL_PARAMETER_BITS(a) ADDBITS(8, a) /* DF+071 (new RTCM) */ 594 #define E_ADDITIONAL_MODEL_PARAMETER_DATA(a, nbits) ADDBITS(nbits, a) /* DF+072 (new RTCM) nbits from DF+071*/ 595 596 #define E_ZENITH_MAPPED_STEC_GRID_POINT_RESIDUAL_RESOLUTION_SCALE_FACTOR_EXPONENT(a) GETSSRBITS(3, a) /* DF+073 (new RTCM) */ 597 598 #define E_QZSS_SATELLITE_ID(a) ADDBITS(6, a) /* DF+080 (new RTCM) */ 599 600 #define E_GRID_POINT_LATITUDE_MASK(a, nbits) ADDBITS(nbits, a) /* DF+090 (new RTCM) nbits corresponds to DF+031*/ 601 #define E_GRID_POINT_LONGIITUDE_MASK(a, nbits) ADDBITS(nbits, a) /* DF+091 (new RTCM) nbits corresponds to DF+032*/ 602 #define E_EXCLUDED_GRID_POINT_MASK(a, nbits) ADDBITS(nbits, a) /* DF+092 (new RTCM) nbits corresponds to DF+090 * DF091 */ 603 604 #define E_GRID_POINT_OFFSET(a) ADDBITS(12, a) /* DF+094 (new RTCM) */ 605 606 #define E_PLYNOMIAL_MODEL_INDICATOR(a) ADDBITS(1, a) /* DF+096 (new RTCM) */ 607 #define E_GNSS_IDENTIFIER(a) ADDBITS(4, a) /* DF+097 (new RTCM) */ 608 #define E_GNSS_BE_IDENTYFIER(a) ADDBITS(4, a) /* DF+098 (new RTCM) */ 609 #define E_RESIDUAL_MODEL_IDENTUICATOR(a) ADDBITS(1, a) /* DF+099 (new RTCM) */ 610 #define E_NUMBER_OF_GRID_POINTS(a) ADDBITS(1, a) /* DF+100 (new RTCM) */ 561 611 562 612 … … 604 654 605 655 /* extract bits from data stream 656 b = variable to store result, a = number of bits */ 657 #define GETSSRBITSSIGN(b, a) { \ 658 LOADBITS(a) \ 659 b = ((int64_t)(bitfield<<(64-numbits)))>>(64-(a)); \ 660 numbits -= (a); \ 661 } 662 663 /* extract bits from data stream 606 664 b = variable to store result, a = number of bits */ 607 665 #define GETSSRBITSFACTOR(b, a, c) { \ … … 630 688 631 689 /* GPS macros also used for other systems when matching! */ 632 #define G_HEADER(a) GETSSRBITS(a, 8) 633 #define G_RESERVEDH(a) GETSSRBITS(a, 6) 634 #define G_SIZE(a) GETSSRBITS(a, 10) 690 691 #define D_HEADER(a) GETSSRBITS(a, 8) 692 #define D_RESERVEDH(a) GETSSRBITS(a, 6) 693 #define D_SIZE(a) GETSSRBITS(a, 10) 635 694 636 695 /* GNSS macros - Header part */ 637 #define G_RTCM_MESSAGE_NUMBER(a) GETSSRBITS(a,12)/* DF002 */638 #define G_IGS_MESSAGE_NUMBER(a) GETSSRBITS(a,8)/* IDF002 */639 #define G_IGS_SSR_VERSION(a) GETSSRBITS(a,3)/* IDF001 */640 641 #define G_GPS_EPOCH_TIME(a) GETSSRBITS(a,20)/* IDF003 DF385 DF458 DF460 DF465*/642 #define G_GLONASS_EPOCH_TIME(a) GETSSRBITS(a,17)/* DF386 */643 #define G_GPS_EPOCH_TIME_CHECK(a, b) {unsigned int temp; GETSSRBITS(temp, 20) if(b && a != temp) return GCOBR_TIMEMISMATCH; a = temp;}644 #define G_GLONASS_EPOCH_TIME_CHECK(a, b) {unsigned int temp; GETSSRBITS(temp, 17) if(b && a != temp) return GCOBR_TIMEMISMATCH; a = temp;}645 646 #define G_SSR_UPDATE_INTERVAL(a) GETSSRBITS(a, 4) /* DF391, IDF004 */647 #define G_MULTIPLE_MESSAGE_INDICATOR(a) GETSSRBITS(a, 1) /* DF388, IDF005 */648 #define G_SSR_IOD(a) GETSSRBITS(a, 4) /* DF413, IDF007 */649 #define G_SSR_PROVIDER_ID(a) GETSSRBITS(a, 16) /* DF414, IDF008 */650 #define G_SSR_SOLUTION_ID(a) GETSSRBITS(a, 4) /* DF415, IDF009 */651 #define G_SATELLITE_REFERENCE_DATUM(a) GETSSRBITS(a, 1) /* DF375, IDF006 */652 #define G_NO_OF_SATELLITES(a) GETSSRBITS(a, 6) /* DF387, IDF010 */696 #define D_RTCM_MESSAGE_NUMBER(a) GETSSRBITS(a, 12) /* DF002 */ 697 #define D_IGS_MESSAGE_NUMBER(a) GETSSRBITS(a, 8) /* IDF002 */ 698 #define D_IGS_SSR_VERSION(a) GETSSRBITS(a, 3) /* IDF001 */ 699 700 #define D_GPS_EPOCH_TIME(a) GETSSRBITS(a, 20) /* IDF003 DF385 DF458 DF460 DF465*/ 701 #define D_GLONASS_EPOCH_TIME(a) GETSSRBITS(a, 17) /* DF386 */ 702 #define D_GPS_EPOCH_TIME_CHECK(a, b) {unsigned int temp; GETSSRBITS(temp, 20) if(b && a != temp) return GCOBR_TIMEMISMATCH; a = temp;} 703 #define D_GLONASS_EPOCH_TIME_CHECK(a, b) {unsigned int temp; GETSSRBITS(temp, 17) if(b && a != temp) return GCOBR_TIMEMISMATCH; a = temp;} 704 705 #define D_SSR_UPDATE_INTERVAL(a) GETSSRBITS(a, 4) /* DF391, IDF004 */ 706 #define D_MULTIPLE_MESSAGE_INDICATOR(a) GETSSRBITS(a, 1) /* DF388, IDF005 */ 707 #define D_SSR_IOD(a) GETSSRBITS(a, 4) /* DF413, IDF007 */ 708 #define D_SSR_PROVIDER_ID(a) GETSSRBITS(a, 16) /* DF414, IDF008 */ 709 #define D_SSR_SOLUTION_ID(a) GETSSRBITS(a, 4) /* DF415, IDF009 */ 710 #define D_SATELLITE_REFERENCE_DATUM(a) GETSSRBITS(a, 1) /* DF375, IDF006 */ 711 #define D_NO_OF_SATELLITES(a) GETSSRBITS(a, 6) /* DF387, IDF010 */ 653 712 654 713 /* GNSS macros - Satellite specific part */ 655 #define G_GPS_SATELLITE_ID(a) GETSSRBITS(a, 6) /* IDF011 DF068 DF488 */ 656 #define G_GLONASS_SATELLITE_ID(a) GETSSRBITS(a, 5) /* DF384 */ 657 #define G_GLONASS_SATELLITE_ID_NEW(a) GETSSRBITS(a, 6) /* DF*/ 658 #define G_QZSS_SATELLITE_ID(a) GETSSRBITS(a, 4) /* DF249 */ 659 660 #define G_GPS_IODE(a) GETSSRBITS(a, 8) /* DF071, DF467, IDF012 */ 661 #define G_GALILEO_IOD(a) GETSSRBITS(a, 10) /* DF459 */ 662 663 #define G_SBAS_T0MOD(a) GETSSRBITSFACTOR(a, 9, 16) /* DF468 */ 664 #define G_SBAS_IODCRC(a) GETSSRBITS(a, 24) /* DF469 */ 665 #define G_BDS_TOEMOD(a) GETSSRBITSFACTOR(a, 10, 8) /* DF470 */ 714 #define D_GPS_SATELLITE_ID(a) GETSSRBITS(a, 6) /* IDF011 DF068 DF488 */ 715 #define D_GLONASS_SATELLITE_ID_OLD(a) GETSSRBITS(a, 5) /* DF384 (old RTCM)*/ 716 #define D_QZSS_SATELLITE_ID_OLD(a) GETSSRBITS(a, 4) /* DF249 */ 717 718 #define D_GPS_IODE(a) GETSSRBITS(a, 8) /* DF071, DF467, IDF012 */ 719 #define D_GALILEO_IOD(a) GETSSRBITS(a, 10) /* DF459 */ 720 721 #define D_SBAS_T0MOD(a) GETSSRBITSFACTOR(a, 9, 16) /* DF468 */ 722 #define D_SBAS_IODCRC(a) GETSSRBITS(a, 24) /* DF469 */ 723 #define D_BDS_TOEMOD(a) GETSSRBITSFACTOR(a, 10, 8) /* DF470 */ 666 724 667 725 /* Orbit Corrections */ 668 #define G_DELTA_RADIAL(a) GETSSRFLOATSIGN(a, 22, 1/10000.0) /* DF365, IDF013 */669 #define G_DELTA_ALONG_TRACK(a) GETSSRFLOATSIGN(a, 20, 1/2500.0) /* DF366, IDF014 */670 #define G_DELTA_CROSS_TRACK(a) GETSSRFLOATSIGN(a, 20, 1/2500.0) /* DF367, IDF015 */671 #define G_DELTA_DOT_RADIAL(a) GETSSRFLOATSIGN(a, 21, 1/1000000.0) /* DF368, IDF016 */672 #define G_DELTA_DOT_ALONG_TRACK(a) GETSSRFLOATSIGN(a, 19, 1/250000.0) /* DF369, IDF017 */673 #define G_DELTA_DOT_CROSS_TRACK(a) GETSSRFLOATSIGN(a, 19, 1/250000.0) /* DF370, IDF018 */726 #define D_DELTA_RADIAL(a) GETSSRFLOATSIGN(a, 22, 1/10000.0) /* DF365, IDF013 */ 727 #define D_DELTA_ALONG_TRACK(a) GETSSRFLOATSIGN(a, 20, 1/2500.0) /* DF366, IDF014 */ 728 #define D_DELTA_CROSS_TRACK(a) GETSSRFLOATSIGN(a, 20, 1/2500.0) /* DF367, IDF015 */ 729 #define D_DOT_DELTA_RADIAL(a) GETSSRFLOATSIGN(a, 21, 1/1000000.0) /* DF368, IDF016 */ 730 #define D_DOT_DELTA_ALONG_TRACK(a) GETSSRFLOATSIGN(a, 19, 1/250000.0) /* DF369, IDF017 */ 731 #define D_DOT_DELTA_CROSS_TRACK(a) GETSSRFLOATSIGN(a, 19, 1/250000.0) /* DF370, IDF018 */ 674 732 675 733 /* Clock Corrections */ 676 #define G_DELTA_CLOCK_C0(a) GETSSRFLOATSIGN(a, 22, 1/10000.0) /* DF376, IDF019 */677 #define G_DELTA_CLOCK_C1(a) GETSSRFLOATSIGN(a, 21, 1/1000000.0) /* DF377, IDF020 */678 #define G_DELTA_CLOCK_C2(a) GETSSRFLOATSIGN(a, 27, 1/50000000.0) /* DF378, IDF021 */679 #define G_HR_CLOCK_CORRECTION(a) GETSSRFLOATSIGN(a, 22, 1/10000.0) /* DF390, IDF022 */734 #define D_DELTA_CLOCK_C0(a) GETSSRFLOATSIGN(a, 22, 1/10000.0) /* DF376, IDF019 */ 735 #define D_DELTA_CLOCK_C1(a) GETSSRFLOATSIGN(a, 21, 1/1000000.0) /* DF377, IDF020 */ 736 #define D_DELTA_CLOCK_C2(a) GETSSRFLOATSIGN(a, 27, 1/50000000.0) /* DF378, IDF021 */ 737 #define D_HR_CLOCK_CORRECTION(a) GETSSRFLOATSIGN(a, 22, 1/10000.0) /* DF390, IDF022 */ 680 738 681 739 /* Biases */ 682 #define G_NO_OF_BIASES(a) GETSSRBITS(a, 5) /* DF479 DF379 IDF023 */683 #define G_GNSS_SIGNAL_IDENTIFIER(a) GETSSRBITS(a, 5) /* DFIDF024 */684 #define G_CODE_BIAS(a) GETSSRFLOATSIGN(a, 14, 1/100.0) /* DF383, IDF025 */685 #define G_YAW_ANGLE(a) GETSSRFLOAT (a, 9, MPI/256.0) /* DF480, IDF026 */686 #define G_YAW_RATE(a) GETSSRFLOATSIGN(a, 8, MPI/8192.0) /* DF481, IDF027 */687 #define G_PHASE_BIAS(a)GETSSRFLOATSIGN(a, 20, 1/10000.) /* DF482, IDF028 */740 #define D_NO_OF_BIASES(a) GETSSRBITS(a, 5) /* DF479 DF379 IDF023 */ 741 #define D_GNSS_SIGNAL_IDENTIFIER(a) GETSSRBITS(a, 5) /* DF460 IDF024 */ 742 #define D_CODE_BIAS(a) GETSSRFLOATSIGN(a, 14, 1/100.0) /* DF383, IDF025 */ 743 #define D_YAW_ANGLE(a) GETSSRFLOAT (a, 9, MPI/256.0) /* DF480, IDF026 */ 744 #define D_YAW_RATE(a) GETSSRFLOATSIGN(a, 8, MPI/8192.0) /* DF481, IDF027 */ 745 #define D_PHASE_BIAS_CORRECTION(a) GETSSRFLOATSIGN(a, 20, 1/10000.) /* DF482, IDF028 */ 688 746 689 747 /* Phase specific part of GNSS phase bias message */ 690 #define G_INTEGER_INDICATOR(a) GETSSRBITS(a, 1) /* DF483, IDF029 */ 691 #define G_WIDE_LANE_INDICATOR(a) GETSSRBITS(a, 2) /* DF484, IDF030 */ 692 #define G_DISCONTINUITY_COUNTER(a) GETSSRBITS(a, 4) /* DF485, IDF031 */ 693 #define G_DISPERSIVE_BIAS_INDICATOR(a) GETSSRBITS(a, 1) /* DF486 (old RTCM), IDF032 */ 694 #define G_YAW_INFO_INDICATOR(a) GETSSRBITS(a, 1) /* DF486 (new RTCM) */ 695 #define G_MW_CONSISTENCY_INDICATOR(a) GETSSRBITS(a, 1) /* DF487, IDF033 */ 696 #define G_EXTENDED_PHASE_BIAS_ID(a) GETSSRBITS(4, a) /* DF?? (new RTCM)*/ 748 #define D_INTEGER_INDICATOR(a) GETSSRBITS(a, 1) /* DF483, IDF029 */ 749 #define D_WIDE_LANE_INDICATOR(a) GETSSRBITS(a, 2) /* DF484, IDF030 */ 750 #define D_DISCONTINUITY_COUNTER(a) GETSSRBITS(a, 4) /* DF485, IDF031 */ 751 #define D_DISPERSIVE_BIAS_INDICATOR(a) GETSSRBITS(a, 1) /* DF486 (old RTCM), IDF032 */ 752 #define D_YAW_INFO_INDICATOR(a) GETSSRBITS(a, 1) /* DF486 (new RTCM) */ 753 #define D_MW_CONSISTENCY_INDICATOR(a) GETSSRBITS(a, 1) /* DF487, IDF033 */ 754 755 #define D_EXTENDED_PHASE_BIAS_ID(a) GETSSRBITS(4, a) /* DF+002 (new RTCM)*/ 756 757 #define D_GLONASS_SATELLITE_ID(a) GETSSRBITS(a, 6) /* DF+003 (new RTCM)*/ 697 758 698 759 /* URA */ 699 #define G_SSR_URA(a) {int temp; GETSSRBITS(temp, 6) \ 700 (a) = URAToValue(temp);} /* DF389, IDF034 */ 760 #define D_SSR_URA(a) {int temp; GETSSRBITS(temp, 6) a = URAToValue(temp);} /* DF389, IDF034 */ 761 762 /* Ionosphere */ 763 #define D_NO_IONO_LAYERS(a) {unsigned int temp; GETSSRBITS(temp, 2) a = temp+1;} /* DF472, IDF035 */ 764 #define D_IONO_HEIGHT(a) GETSSRFLOAT(a, 8, 10000.0) /* DF473, IDF036 */ 765 #define D_IONO_DEGREE(a) {unsigned int temp; GETSSRBITS(temp, 4) a = temp+1;} /* DF474, IDF037 */ 766 #define D_IONO_ORDER(a) {unsigned int temp; GETSSRBITS(temp, 4) a = temp+1;} /* DF475, IDF038 */ 767 #define D_IONO_COEFF_C(a) GETSSRFLOATSIGN(a, 16, 1/200.0) /* DF476, IDF039 */ 768 #define D_IONO_COEFF_S(a) GETSSRFLOATSIGN(a, 16, 1/200.0) /* DF477, IDF040 */ 769 #define D_VTEC_QUALITY_INDICATOR(a) GETSSRFLOAT(a, 9, 1/20.0) /* DF478, IDF041 */ 701 770 702 771 /* Antenna Information*/ 703 #define G_SATELLITE_ANTENNA_IOD(a) GETSSRBITS(a, 6) /* DF+010 (new RTCM) */ 704 #define G_PHASE_CENTER_INFO_INDICATORD(a) GETSSRBITS(a, 1) /* DF+011 (new RTCM) */ 705 #define G_GROUP_DELAY_INFO_INDICATOR(a) GETSSRBITS(a, 1) /* DF+012 (new RTCM) */ 706 #define G_NADIR_ANGLE_DEPENDENT_CORR_INDICATOR(a) GETSSRBITS(a, 1) /* DF+013 (new RTCM) */ 707 #define G_MAXIMUM_OFF_NADIR_ANGLE(a) GETSSRBITS(a, 5) /* DF+014 (new RTCM) */ 708 #define G_NADIR_ANGLE_DEPENDENT_CORR_RANGE_EXTENSION(a) GETSSRBITS(a, 4) /* DF+015 (new RTCM) */ 709 #define G_SATELLITE_SET_INDICATOR(a) GETSSRBITS(a, 1) /* DF+016 (new RTCM) */ 710 #define G_FREQUENCY_SET_INDICATOR (a) GETSSRBITS(a, 1) /* DF+017 (new RTCM) */ 711 #define G_GNSS_FREQUENCY_MASK (a) GETSSRBITS(a, 6) /* DF+018 (new RTCM) */ 712 #define G_NADIR_CORR_INDICATOR(a) GETSSRBITS(a, 1) /* DF+019 (new RTCM) */ 713 #define G_NADIR_CORRECTION(a) GETSSRBITS(a, 12) /* DF+020 (new RTCM) */ 714 #define G_NADIR_ANGLE_DEPENDENT_CORRECTION(a) GETSSRBITS(a, 3 + nbits) /* DF+021 (new RTCM) can be extended up to 15/18 Bits from DF+015*/ 715 772 #define D_SATELLITE_ANTENNA_IOD(a) GETSSRBITS(a, 6) /* DF+010 (new RTCM) */ 773 #define D_PHASE_CENTER_INFO_INDICATORD(a) GETSSRBITS(a, 1) /* DF+011 (new RTCM) */ 774 #define D_GROUP_DELAY_INFO_INDICATOR(a) GETSSRBITS(a, 1) /* DF+012 (new RTCM) */ 775 #define D_NADIR_ANGLE_DEPENDENT_CORR_INDICATOR(a) GETSSRBITS(a, 1) /* DF+013 (new RTCM) */ 776 #define D_NADIR_ANGLE_DEPENDENT_CORR_RANGE_EXTENSION(a) GETSSRBITS(a, 4) /* DF+015 (new RTCM) required to extend DF+021*/ 777 #define D_SATELLITE_SET_INDICATOR(a) GETSSRBITS(a, 1) /* DF+016 (new RTCM) */ 778 #define D_FREQUENCY_SET_INDICATOR (a) GETSSRBITS(a, 1) /* DF+017 (new RTCM) */ 779 #define D_GNSS_FREQUENCY_MASK (a) GETSSRBITS(a, 6) /* DF+018 (new RTCM) */ 780 #define D_NADIR_CORR_INDICATOR(a) GETSSRBITS(a, 1) /* DF+019 (new RTCM) */ 781 #define D_NADIR_CORRECTION(a) GETSSRFLOATSIGN(a, 12, 1/1000.0) /* DF+020 (new RTCM) in [m] */ 782 #define D_NADIR_ANGLE_DEPENDENT_CORRECTION(a, nbits) GETSSRFLOATSIGN(a, 3 + nbits, 1/1000.0) /* DF+021 (new RTCM) in [m]; can be extended up to 15/18 Bits from DF+015*/ 716 783 /* 717 //Decoding 718 #define G_NEW_PAR(a, nbits) GETSSRBITS(a, nbits) //called asG_NEW_PAR(co->NewPar, co->NewParNumBits)719 #define G_NEW_PAR_SCALE(a, nbits) GETSSRFLOAT(a, nbits, 10000.0) //called asG_NEW_PAR(co->NewPar, co->NewParNumBits)784 //Decoding 785 #define D_NEW_PAR(a, nbits) GETSSRBITS(a, nbits) //called as D_NEW_PAR(co->NewPar, co->NewParNumBits) 786 #define D_NEW_PAR_SCALE(a, nbits) GETSSRFLOAT(a, nbits, 10000.0) //called as D_NEW_PAR(co->NewPar, co->NewParNumBits) 720 787 */ 721 722 /* Ionosphere */ 723 #define G_NO_IONO_LAYERS(a) {unsigned int temp; GETSSRBITS(temp, 2) a = temp+1;} /* DF472, IDF035 */ 724 #define G_IONO_HEIGHT(a) GETSSRFLOAT(a, 8 , 10000.0) /* DF473, IDF036 */ 725 #define G_IONO_DEGREE(a) {unsigned int temp; GETSSRBITS(temp, 4) a = temp+1;} /* DF474, IDF037 */ 726 #define G_IONO_ORDER(a) {unsigned int temp; GETSSRBITS(temp, 4) a = temp+1;} /* DF475, IDF038 */ 727 #define G_IONO_COEFF_C(a) GETSSRFLOATSIGN(a, 16,1/200.0) /* DF476, IDF039 */ 728 #define G_IONO_COEFF_S(a) GETSSRFLOATSIGN(a, 16,1/200.0) /* DF477, IDF040 */ 729 #define G_VTEC_QUALITY_INDICATOR(a) GETSSRFLOAT (a, 9, 1/20.0) /* DF478, IDF041 */ 788 /* Grid Messages */ 789 #define D_GRID_ID(a) GETSSRBITS(a, 10) /* DF+022 (new RTCM) */ 790 #define D_GRID_TYPE(a) GETSSRBITS(a, 3) /* DF+023 (new RTCM) */ 791 #define D_LATITUDE_OF_REFERENCE_POINT(a) GETSSRFLOATSIGN(a, 18, 1/1000.0) /* DF+024 (new RTCM) */ 792 #define D_LONGITUDE_OF_REFERENCE_POINT(a) GETSSRFLOATSIGN(a, 19, 1/1000.0) /* DF+025 (new RTCM) */ 793 #define D_ELLIPSOIDAL_HEIGHT_OF_REFERENCE_POINT(a) {unsigned int temp; GETSSRFLOAT(temp, 10, 12.5) a = temp - 1000.0;} /* DF+026 (new RTCM) */ 794 #define D_NUMNBER_OF_RELATIVE_POINTS(a) GETSSRBITS(a, 8) /* DF+027 (new RTCM) */ 795 #define D_RELATIVE_LATITUDE(a) GETSSRFLOATSIGN(a, 13, 1/1000.0) /* DF+028 (new RTCM) */ 796 #define D_RELATIVE_LONGITUDE(a) GETSSRFLOATSIGN(a, 14, 1/1000.0) /* DF+029 (new RTCM) */ 797 #define D_RELATIVE_HIGHT(a) GETSSRFLOATSIGN(a, 9, 12.5) /* DF+030 (new RTCM) */ 798 #define D_NUMBER_OF_POINTS_IN_LATITIDE_DIRECTION(a) GETSSRBITS(a, 6) /* DF+031 (new RTCM) */ 799 #define D_NUMBER_OF_POINTS_IN_LONGITUDE_DIRECTION(a) GETSSRBITS(a, 6) /* DF+032 (new RTCM) */ 800 #define D_GRID_STEP_SIZE_IN_LATITIDE_DIRECTION(a) GETSSRFLOAT(a, 9, 1/100.0) /* DF+033 (new RTCM) */ 801 #define D_GRID_STEP_SIZE_IN_LONGITUDE_DIRECTION(a) GETSSRFLOAT(a, 10, 1/100.0) /* DF+034 (new RTCM) */ 802 #define D_GRID_MASK_AVAILABILITY_FLAG(a) GETSSRBITS(a, 1) /* DF+035 (new RTCM) */ 803 #define D_GRID_MASK(a, nbits) GETSSRBITS(a, nbits) /* DF+036 (new RTCM) nbits from DF+031 or DF+032 */ 804 805 /* Troposphere Messages */ 806 #define D_HYDROSTATIC_MAPPING_FUNCTION_PAR_AH(a) {unsigned int dah; GETSSRFLOATSIGN(dah, 11, 2.5/10000000.0) a = dah + 0.00118;} /* DF+038 (new RTCM) */ 807 #define D_HYDROSTATIC_MAPPING_FUNCTION_PAR_BH(a) {unsigned int dbh; GETSSRFLOATSIGN(dbh, 9, 5/1000000.0) a = dbh + 0.00298;} /* DF+039 (new RTCM) */ 808 #define D_HYDROSTATIC_MAPPING_FUNCTION_PAR_CH(a) {unsigned int dch; GETSSRFLOATSIGN(dch, 9, 2/10000.0) a = dch + 0.0682;} /* DF+040 (new RTCM) */ 809 #define D_WET_MAPPING_FUNCTION_PAR_AW(a) {unsigned int daw; GETSSRFLOATSIGN(daw, 13, 1/1000000.0) a = daw + 0.000104;} /* DF+041 (new RTCM) */ 810 #define D_WET_MAPPING_FUNCTION_PAR_BW(a) {unsigned int dbw; GETSSRFLOATSIGN(dbw, 6, 2.5/100000.0) a = dbw + 0.0015;} /* DF+042 (new RTCM) */ 811 #define D_WET_MAPPING_FUNCTION_PAR_CW(a) {unsigned int dcw; GETSSRFLOATSIGN(dcw, 5, 2/1000.0 ) a = dcw + 0.0048;} /* DF+043 (new RTCM) */ 812 #define D_HYDROSTATIC_OFFSET(a) {unsigned int dho; GETSSRFLOATSIGN(dho, 13, 1/10000.0) a = dho + 2.3 } /* DF+044 (new RTCM) [0.1 mm] => [m] +2.3 m */ 813 #define D_HYDROSTATIC_GRADIENT_LATITUDE_DIRECTION(a) GETSSRFLOATSIGN(a, 15, 1/100000.0) /* DF+045 (new RTCM) [0.01 mm] => [m]*/ 814 #define D_HYDROSTATIC_GRADIENT_LONGITUDE_DIRECTION(a) GETSSRFLOATSIGN(a, 15, 1/100000.0) /* DF+046 (new RTCM) [0.01 mm] => [m]*/ 815 #define D_WET_OFFSET(a) {unsigned int dwo; GETSSRFLOATSIGN(dwo, 13, 1/10000.0) a = dwo + 0.252 }/* DF+047 (new RTCM) [0.1 mm] => [m] +0.252 m */ 816 #define D_WET_GRADIENT_LATITUDE_DIRECTION(a) GETSSRFLOATSIGN(a, 15, 1/100000.0) /* DF+048 (new RTCM) */ 817 #define D_WET_GRADIENT_LONGITUDE_DIRECTION(a) GETSSRFLOATSIGN(a, 15, 1/100000.0) /* DF+049 (new RTCM) */ 818 #define D_HYDTOSTATIC_GRID_POINT_RESIDUAL_LENGTH(a) GETSSRBITS(a, 4) /* DF+050 (new RTCM) */ 819 #define D_WET_GRID_POINT_RESIDUAL_LENGTH(a) GETSSRBITS(a, 4) /* DF+051 (new RTCM) */ 820 #define D_HYDTOSTATIC_GRID_POINT_RESIDUAL(a, nbits) GETSSRFLOATSIGN(a, nbits, 1/10000.0) /* DF+052 (new RTCM) size depends on DF+050 */ 821 #define D_WET_GRID_POINT_RESIDUAL(a, nbits) GETSSRFLOATSIGN(a, nbits, 1/10000.0) /* DF+053 (new RTCM) size depends on DF+051 */ 822 823 #define D_SSR_EPOCH_TIME(a) GETSSRBITS(a, 20) /* DF*055 (new RTCM) same definition as in IGS-SSR */ 824 825 /* Ionosphere Messages */ 826 #define D_ZENITH_MAPPED_STEC_POLYNOM_COEFF_C00(a) GETSSRFLOATSIGN(a, 17, 1/1000.0) /* DF+057 (new RTCM) */ 827 #define D_ZENITH_MAPPED_STEC_POLYNOM_COEFF_C01(a) GETSSRFLOATSIGN(a, 18, 1/10000.0) /* DF+058 (new RTCM) */ 828 #define D_ZENITH_MAPPED_STEC_POLYNOM_COEFF_C10(a) GETSSRFLOATSIGN(a, 18, 1/10000.0) /* DF+059 (new RTCM) */ 829 #define D_ZENITH_MAPPED_STEC_POLYNOMIAL_GRADIENT_INDICATOR(a) GETSSRBITS(a, 1) /* DF+060 (new RTCM) */ 830 #define D_ZENITH_MAPPED_STEC_GRID_POINT_RESIDUAL(a) GETSSRBITS(a, 5) /* DF+061 (new RTCM) size required for DF+062 */ 831 #define D_ZENITH_MAPPED_STEC_GRID_POINT_RESIDUAL_CORRECTION(a, nbits) GETSSRBITSSIGN(a, nbits) /* DF+062 (new RTCM) nbits depends on DF+061 */ 832 833 /* Metadata */ 834 #define D_NUMBER_OF_SSR_MODEL_CORRECTION_ENTRIES(a) GETSSRBITS(a, 5) /* DF+063 (new RTCM) */ 835 #define D_MODEL_CORRECTION_TYPE_INDICATOR(a) GETSSRBITS(a, 5) /* DF+064 (new RTCM) */ 836 #define D_MODEL_CORRECTION_APPLICATION_INDICATOR(a) GETSSRBITS(a, 1) /* DF+065 (new RTCM) */ 837 #define D_NON_DEFAULT_MODEL_CORRECTION_INDICATOR(a) GETSSRBITS(a, 1) /* DF+066 (new RTCM) */ 838 #define D_NON_DEFAULT_MODEL_CORRECTION_IDENTIFIER(a) GETSSRBITS(a, 3) /* DF+067 (new RTCM) */ 839 #define D_MODEL_CORRECTION_DATA_IOD_INDICATOR(a) GETSSRBITS(a, 1) /* DF+068 (new RTCM) */ 840 #define D_MODEL_CORRECTION_DATA_IOD(a) GETSSRBITS(a, 6) /* DF+069 (new RTCM) */ 841 #define D_ADDITIONAL_MODEL_PARAMETER_INDICATOR(a) GETSSRBITS(a, 1) /* DF+070 (new RTCM) */ 842 #define D_NUMBER_OF_ADDITIONAL_MODEL_PARAMETER_BITS(a) GETSSRBITS(a, 8) /* DF+071 (new RTCM) */ 843 #define D_ADDITIONAL_MODEL_PARAMETER_DATA(a, nbits) GETSSRBITS(a, nbits) /* DF+072 (new RTCM) nbits from DF+071*/ 844 845 #define D_ZENITH_MAPPED_STEC_GRID_POINT_RESIDUAL_RESOLUTION_SCALE_FACTOR_EXPONENT(a) GETSSRBITS(a, 3) /* DF+073 (new RTCM) */ 846 847 #define D_QZSS_SATELLITE_ID(a) GETSSRBITS(a, 6) /* DF+080 (new RTCM) */ 848 849 #define D_GRID_POINT_LATITUDE_MASK(a, nbits) GETSSRBITS(a, nbits) /* DF+090 (new RTCM) nbits corresponds to DF+031*/ 850 #define D_GRID_POINT_LONGIITUDE_MASK(a, nbits) GETSSRBITS(a, nbits) /* DF+091 (new RTCM) nbits corresponds to DF+032*/ 851 #define D_EXCLUDED_GRID_POINT_MASK(a, nbits) GETSSRBITS(a, nbits) /* DF+092 (new RTCM) nbits corresponds to DF+090 * DF091 */ 852 853 #define D_GRID_POINT_OFFSET(a) GETSSRBITS(a, 12) /* DF+094 (new RTCM) */ 854 855 #define D_PLYNOMIAL_MODEL_INDICATOR(a) GETSSRBITS(a, 1) /* DF+096 (new RTCM) */ 856 #define D_GNSS_IDENTIFIER(a) GETSSRBITS(a, 4) /* DF+097 (new RTCM) */ 857 #define D_GNSS_BE_IDENTYFIER(a) GETSSRBITS(a, 4) /* DF+098 (new RTCM) */ 858 #define D_RESIDUAL_MODEL_IDENTUICATOR(a) GETSSRBITS(a, 1) /* DF+099 (new RTCM) */ 859 #define D_NUMBER_OF_GRID_POINTS(a) GETSSRBITS(a, 1) /* DF+100 (new RTCM) */ 730 860 731 861 }; -
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_igs.cpp
r10987 r10990 67 67 if (status[s][COBOFS_ORBIT]) { 68 68 INITBLOCK 69 T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)70 T_IGS_SSR_VERSION(IGS_SSR_VERSION)71 T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_ORBIT)72 T_GPS_EPOCH_TIME(co->EpochTime[s])73 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)74 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)75 T_SSR_IOD(co->SSRIOD)76 T_SSR_PROVIDER_ID(co->SSRProviderID)77 T_SSR_SOLUTION_ID(co->SSRSolutionID)78 T_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)79 T_NO_OF_SATELLITES(co->NumberOfSat[s])69 E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS) 70 E_IGS_SSR_VERSION(IGS_SSR_VERSION) 71 E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_ORBIT) 72 E_GPS_EPOCH_TIME(co->EpochTime[s]) 73 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 74 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 75 E_SSR_IOD(co->SSRIOD) 76 E_SSR_PROVIDER_ID(co->SSRProviderID) 77 E_SSR_SOLUTION_ID(co->SSRSolutionID) 78 E_SATELLITE_REFERENCE_DATUM(co->SatRefDatum) 79 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 80 80 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) { 81 T_GPS_SATELLITE_ID(co->Sat[i].ID)82 T_GPS_IODE(co->Sat[i].IOD)83 T_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)84 T_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)85 T_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)86 T_DELTA _DOT_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)87 T_DELTA _DOT_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)88 T_DELTA _DOT_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)81 E_GPS_SATELLITE_ID(co->Sat[i].ID) 82 E_GPS_IODE(co->Sat[i].IOD) 83 E_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial) 84 E_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack) 85 E_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack) 86 E_DOT_DELTA_RADIAL(co->Sat[i].Orbit.DotDeltaRadial) 87 E_DOT_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack) 88 E_DOT_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack) 89 89 } 90 90 ENDBLOCK … … 92 92 if (status[s][COBOFS_CLOCK]) { 93 93 INITBLOCK 94 T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)95 T_IGS_SSR_VERSION(IGS_SSR_VERSION)96 T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_CLOCK)97 T_GPS_EPOCH_TIME(co->EpochTime[s])98 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)99 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)100 T_SSR_IOD(co->SSRIOD)101 T_SSR_PROVIDER_ID(co->SSRProviderID)102 T_SSR_SOLUTION_ID(co->SSRSolutionID)103 T_NO_OF_SATELLITES(co->NumberOfSat[s])94 E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS) 95 E_IGS_SSR_VERSION(IGS_SSR_VERSION) 96 E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_CLOCK) 97 E_GPS_EPOCH_TIME(co->EpochTime[s]) 98 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 99 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 100 E_SSR_IOD(co->SSRIOD) 101 E_SSR_PROVIDER_ID(co->SSRProviderID) 102 E_SSR_SOLUTION_ID(co->SSRSolutionID) 103 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 104 104 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) { 105 T_GPS_SATELLITE_ID(co->Sat[i].ID)106 T_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)107 T_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)108 T_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)105 E_GPS_SATELLITE_ID(co->Sat[i].ID) 106 E_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0) 107 E_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1) 108 E_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2) 109 109 } 110 110 ENDBLOCK … … 124 124 #endif 125 125 INITBLOCK 126 T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)127 T_IGS_SSR_VERSION(IGS_SSR_VERSION)128 T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_COMBINED)129 T_GPS_EPOCH_TIME(co->EpochTime[s])130 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)126 E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS) 127 E_IGS_SSR_VERSION(IGS_SSR_VERSION) 128 E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_COMBINED) 129 E_GPS_EPOCH_TIME(co->EpochTime[s]) 130 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 131 131 #ifdef SPLITBLOCK 132 T_MULTIPLE_MESSAGE_INDICATOR((moremessagesfollow || left) ? 1 : 0)132 E_MULTIPLE_MESSAGE_INDICATOR((moremessagesfollow || left) ? 1 : 0) 133 133 #else 134 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)135 #endif 136 T_SSR_IOD(co->SSRIOD)137 T_SSR_PROVIDER_ID(co->SSRProviderID)138 T_SSR_SOLUTION_ID(co->SSRSolutionID)139 T_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)134 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 135 #endif 136 E_SSR_IOD(co->SSRIOD) 137 E_SSR_PROVIDER_ID(co->SSRProviderID) 138 E_SSR_SOLUTION_ID(co->SSRSolutionID) 139 E_SATELLITE_REFERENCE_DATUM(co->SatRefDatum) 140 140 #ifdef SPLITBLOCK 141 T_NO_OF_SATELLITES(nums)141 E_NO_OF_SATELLITES(nums) 142 142 for(i = start; i < start+nums; ++i) { 143 143 #else 144 T_NO_OF_SATELLITES(co->NumberOfSat[s])144 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 145 145 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) { 146 146 #endif 147 T_GPS_SATELLITE_ID(co->Sat[i].ID)148 T_GPS_IODE(co->Sat[i].IOD)149 T_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)150 T_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)151 T_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)152 T_DELTA _DOT_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)153 T_DELTA _DOT_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)154 T_DELTA _DOT_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)155 T_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)156 T_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)157 T_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)147 E_GPS_SATELLITE_ID(co->Sat[i].ID) 148 E_GPS_IODE(co->Sat[i].IOD) 149 E_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial) 150 E_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack) 151 E_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack) 152 E_DOT_DELTA_RADIAL(co->Sat[i].Orbit.DotDeltaRadial) 153 E_DOT_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack) 154 E_DOT_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack) 155 E_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0) 156 E_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1) 157 E_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2) 158 158 } 159 159 ENDBLOCK … … 167 167 if (status[s][COBOFS_HR]) { 168 168 INITBLOCK 169 T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)170 T_IGS_SSR_VERSION(IGS_SSR_VERSION)171 T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_HR)172 T_GPS_EPOCH_TIME(co->EpochTime[s])173 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)174 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)175 T_SSR_IOD(co->SSRIOD)176 T_SSR_PROVIDER_ID(co->SSRProviderID)177 T_SSR_SOLUTION_ID(co->SSRSolutionID)178 T_NO_OF_SATELLITES(co->NumberOfSat[s])169 E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS) 170 E_IGS_SSR_VERSION(IGS_SSR_VERSION) 171 E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_HR) 172 E_GPS_EPOCH_TIME(co->EpochTime[s]) 173 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 174 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 175 E_SSR_IOD(co->SSRIOD) 176 E_SSR_PROVIDER_ID(co->SSRProviderID) 177 E_SSR_SOLUTION_ID(co->SSRSolutionID) 178 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 179 179 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) { 180 T_GPS_SATELLITE_ID(co->Sat[i].ID)181 T_HR_CLOCK_CORRECTION(co->Sat[i].hrclock)180 E_GPS_SATELLITE_ID(co->Sat[i].ID) 181 E_HR_CLOCK_CORRECTION(co->Sat[i].hrclock) 182 182 } 183 183 ENDBLOCK … … 185 185 if (status[s][COBOFS_URA]) { 186 186 INITBLOCK 187 T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)188 T_IGS_SSR_VERSION(IGS_SSR_VERSION)189 T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_URA)190 T_GPS_EPOCH_TIME(co->EpochTime[s])191 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)192 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)193 T_SSR_IOD(co->SSRIOD)194 T_SSR_PROVIDER_ID(co->SSRProviderID)195 T_SSR_SOLUTION_ID(co->SSRSolutionID)196 T_NO_OF_SATELLITES(co->NumberOfSat[s])187 E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS) 188 E_IGS_SSR_VERSION(IGS_SSR_VERSION) 189 E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_URA) 190 E_GPS_EPOCH_TIME(co->EpochTime[s]) 191 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 192 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 193 E_SSR_IOD(co->SSRIOD) 194 E_SSR_PROVIDER_ID(co->SSRProviderID) 195 E_SSR_SOLUTION_ID(co->SSRSolutionID) 196 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 197 197 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) { 198 T_GPS_SATELLITE_ID(co->Sat[i].ID)199 T_SSR_URA(ValueToURA(co->Sat[i].UserRangeAccuracy))198 E_GPS_SATELLITE_ID(co->Sat[i].ID) 199 E_SSR_URA(ValueToURA(co->Sat[i].UserRangeAccuracy)) 200 200 } 201 201 ENDBLOCK … … 214 214 if (b->NumberOfSat[s] && (type == CBTYPE_AUTO || type == corbase[s] + COBOFS_CBIAS)) { 215 215 INITBLOCK 216 T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)217 T_IGS_SSR_VERSION(IGS_SSR_VERSION)218 T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_CBIAS)219 T_GPS_EPOCH_TIME(b->EpochTime[s])220 T_SSR_UPDATE_INTERVAL(b->UpdateInterval)221 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)222 T_SSR_IOD(b->SSRIOD)223 T_SSR_PROVIDER_ID(b->SSRProviderID)224 T_SSR_SOLUTION_ID(b->SSRSolutionID)225 T_NO_OF_SATELLITES(b->NumberOfSat[s])216 E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS) 217 E_IGS_SSR_VERSION(IGS_SSR_VERSION) 218 E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_CBIAS) 219 E_GPS_EPOCH_TIME(b->EpochTime[s]) 220 E_SSR_UPDATE_INTERVAL(b->UpdateInterval) 221 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 222 E_SSR_IOD(b->SSRIOD) 223 E_SSR_PROVIDER_ID(b->SSRProviderID) 224 E_SSR_SOLUTION_ID(b->SSRSolutionID) 225 E_NO_OF_SATELLITES(b->NumberOfSat[s]) 226 226 for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) { 227 T_GPS_SATELLITE_ID(b->Sat[i].ID)228 T_NO_OF_BIASES(b->Sat[i].NumberOfCodeBiases)227 E_GPS_SATELLITE_ID(b->Sat[i].ID) 228 E_NO_OF_BIASES(b->Sat[i].NumberOfCodeBiases) 229 229 for (j = 0; j < b->Sat[i].NumberOfCodeBiases; ++j) { 230 T_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)231 T_CODE_BIAS(b->Sat[i].Biases[j].Bias)230 E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type) 231 E_CODE_BIAS(b->Sat[i].Biases[j].Bias) 232 232 } 233 233 } … … 247 247 if (b->NumberOfSat[s] && (type == PBTYPE_AUTO || type == corbase[s] + COBOFS_PBIAS)) { 248 248 INITBLOCK 249 T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)250 T_IGS_SSR_VERSION(IGS_SSR_VERSION)251 T_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_PBIAS)252 T_GPS_EPOCH_TIME(b->EpochTime[s])253 T_SSR_UPDATE_INTERVAL(b->UpdateInterval)254 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)255 T_SSR_IOD(b->SSRIOD)256 T_SSR_PROVIDER_ID(b->SSRProviderID)257 T_SSR_SOLUTION_ID(b->SSRSolutionID)258 T_DISPERSIVE_BIAS_INDICATOR(b->DispersiveBiasConsistencyIndicator ? 1 : 0)259 T_MW_CONSISTENCY_INDICATOR(b->MWConsistencyIndicator ? 1 : 0)260 T_NO_OF_SATELLITES(b->NumberOfSat[s])249 E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS) 250 E_IGS_SSR_VERSION(IGS_SSR_VERSION) 251 E_IGS_MESSAGE_NUMBER(corbase[s] + COBOFS_PBIAS) 252 E_GPS_EPOCH_TIME(b->EpochTime[s]) 253 E_SSR_UPDATE_INTERVAL(b->UpdateInterval) 254 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 255 E_SSR_IOD(b->SSRIOD) 256 E_SSR_PROVIDER_ID(b->SSRProviderID) 257 E_SSR_SOLUTION_ID(b->SSRSolutionID) 258 E_DISPERSIVE_BIAS_INDICATOR(b->DispersiveBiasConsistencyIndicator ? 1 : 0) 259 E_MW_CONSISTENCY_INDICATOR(b->MWConsistencyIndicator ? 1 : 0) 260 E_NO_OF_SATELLITES(b->NumberOfSat[s]) 261 261 for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) { 262 T_GPS_SATELLITE_ID(b->Sat[i].ID)263 T_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases)264 T_YAW_ANGLE(b->Sat[i].YawAngle)265 T_YAW_RATE(b->Sat[i].YawRate)262 E_GPS_SATELLITE_ID(b->Sat[i].ID) 263 E_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases) 264 E_YAW_ANGLE(b->Sat[i].YawAngle) 265 E_YAW_RATE(b->Sat[i].YawRate) 266 266 for (j = 0; j < b->Sat[i].NumberOfPhaseBiases; ++j) { 267 T_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)268 T_INTEGER_INDICATOR(b->Sat[i].Biases[j].SignalIntegerIndicator ? 1 : 0)269 T_WIDE_LANE_INDICATOR(b->Sat[i].Biases[j].SignalsWideLaneIntegerIndicator)270 T_DISCONTINUITY_COUNTER(b->Sat[i].Biases[j].SignalDiscontinuityCounter)271 T_PHASE_BIAS(b->Sat[i].Biases[j].Bias)267 E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type) 268 E_INTEGER_INDICATOR(b->Sat[i].Biases[j].SignalIntegerIndicator ? 1 : 0) 269 E_WIDE_LANE_INDICATOR(b->Sat[i].Biases[j].SignalsWideLaneIntegerIndicator) 270 E_DISCONTINUITY_COUNTER(b->Sat[i].Biases[j].SignalDiscontinuityCounter) 271 E_PHASE_BIAS_CORRECTION(b->Sat[i].Biases[j].Bias) 272 272 } 273 273 } … … 284 284 INITBLOCK 285 285 286 T_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS)287 T_IGS_SSR_VERSION(IGS_SSR_VERSION)288 T_IGS_MESSAGE_NUMBER(VTEC_BASE)289 T_GPS_EPOCH_TIME(v->EpochTime)290 T_SSR_UPDATE_INTERVAL(v->UpdateInterval)291 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)292 T_SSR_IOD(v->SSRIOD)293 T_SSR_PROVIDER_ID(v->SSRProviderID)294 T_SSR_SOLUTION_ID(v->SSRSolutionID)295 T_VTEC_QUALITY_INDICATOR(v->Quality)296 T_NO_IONO_LAYERS(v->NumLayers)286 E_RTCM_MESSAGE_NUMBER(RTCM_MESSAGE_NUMBER_IGS) 287 E_IGS_SSR_VERSION(IGS_SSR_VERSION) 288 E_IGS_MESSAGE_NUMBER(VTEC_BASE) 289 E_GPS_EPOCH_TIME(v->EpochTime) 290 E_SSR_UPDATE_INTERVAL(v->UpdateInterval) 291 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 292 E_SSR_IOD(v->SSRIOD) 293 E_SSR_PROVIDER_ID(v->SSRProviderID) 294 E_SSR_SOLUTION_ID(v->SSRSolutionID) 295 E_VTEC_QUALITY_INDICATOR(v->Quality) 296 E_NO_IONO_LAYERS(v->NumLayers) 297 297 for (l = 0; l < v->NumLayers; ++l) { 298 T_IONO_HEIGHT(v->Layers[l].Height)299 T_IONO_DEGREE(v->Layers[l].Degree)300 T_IONO_ORDER(v->Layers[l].Order)298 E_IONO_HEIGHT(v->Layers[l].Height) 299 E_IONO_DEGREE(v->Layers[l].Degree) 300 E_IONO_ORDER(v->Layers[l].Order) 301 301 for (o = 0; o <= v->Layers[l].Order; ++o) { 302 302 for (d = o; d <= v->Layers[l].Degree; ++d) { 303 T_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])303 E_IONO_COEFF_C(v->Layers[l].Cosinus[d][o]) 304 304 } 305 305 } 306 306 for (o = 1; o <= v->Layers[l].Order; ++o) { 307 307 for (d = o; d <= v->Layers[l].Degree; ++d) { 308 T_IONO_COEFF_S(v->Layers[l].Sinus[d][o])308 E_IONO_COEFF_S(v->Layers[l].Sinus[d][o]) 309 309 } 310 310 } … … 317 317 struct PhaseBias *pb, const char *buffer, size_t size, int *bytesused) { 318 318 int mmi = 0, h, rs; 319 unsigned int rtcmtype, igstype, pos, i, j, s, nums, id, version; 319 unsigned int igstype, pos, i, j, s, nums, id; 320 unsigned int rtcmtype, version; 320 321 size_t sizeofrtcmblock; 321 322 const char *blockstart = buffer; … … 329 330 #endif 330 331 331 G_HEADER(h)332 G_RESERVEDH(rs)333 G_SIZE(sizeofrtcmblock);332 D_HEADER(h) 333 D_RESERVEDH(rs) 334 D_SIZE(sizeofrtcmblock); 334 335 335 336 if ((unsigned char) h != 0xD3 || rs) … … 344 345 size = sizeofrtcmblock; /* reduce size, so overflows are detected */ 345 346 346 G_RTCM_MESSAGE_NUMBER(rtcmtype)347 G_IGS_SSR_VERSION(version)347 D_RTCM_MESSAGE_NUMBER(rtcmtype) 348 D_IGS_SSR_VERSION(version) 348 349 #ifdef BNC_DEBUG_SSR 349 350 fprintf(stderr, "rtcmType %d igsVersion %d ", rtcmtype, version); 350 351 #endif 351 G_IGS_MESSAGE_NUMBER(igstype)352 D_IGS_MESSAGE_NUMBER(igstype) 352 353 #ifdef BNC_DEBUG_SSR 353 354 fprintf(stderr, "igsType IM%d size %d\n", igstype,(int)sizeofrtcmblock); … … 361 362 return GCOBR_NOVTECPARAMETER; 362 363 memset(v, 0, sizeof(*v)); 363 G_GPS_EPOCH_TIME(v->EpochTime)364 G_SSR_UPDATE_INTERVAL(v->UpdateInterval)365 G_MULTIPLE_MESSAGE_INDICATOR(mmi)366 G_SSR_IOD(v->SSRIOD)367 G_SSR_PROVIDER_ID(v->SSRProviderID)368 G_SSR_SOLUTION_ID(v->SSRSolutionID)369 G_VTEC_QUALITY_INDICATOR(v->Quality)370 G_NO_IONO_LAYERS(v->NumLayers)364 D_GPS_EPOCH_TIME(v->EpochTime) 365 D_SSR_UPDATE_INTERVAL(v->UpdateInterval) 366 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 367 D_SSR_IOD(v->SSRIOD) 368 D_SSR_PROVIDER_ID(v->SSRProviderID) 369 D_SSR_SOLUTION_ID(v->SSRSolutionID) 370 D_VTEC_QUALITY_INDICATOR(v->Quality) 371 D_NO_IONO_LAYERS(v->NumLayers) 371 372 #ifdef BNC_DEBUG_SSR 372 373 fprintf(stderr, "epochTime %d ui %d mmi %d ssrIod %d providerId %d solId %d vtecQ %8.3f numLay %d \n", … … 375 376 #endif 376 377 for (l = 0; l < v->NumLayers; ++l) { 377 G_IONO_HEIGHT(v->Layers[l].Height)378 G_IONO_DEGREE(v->Layers[l].Degree)379 G_IONO_ORDER(v->Layers[l].Order)378 D_IONO_HEIGHT(v->Layers[l].Height) 379 D_IONO_DEGREE(v->Layers[l].Degree) 380 D_IONO_ORDER(v->Layers[l].Order) 380 381 #ifdef BNC_DEBUG_SSR 381 382 fprintf(stderr, "h %8.3f deg %d ord %d \n", … … 384 385 for (o = 0; o <= v->Layers[l].Order; ++o) { 385 386 for (d = o; d <= v->Layers[l].Degree; ++d) { 386 G_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])387 D_IONO_COEFF_C(v->Layers[l].Cosinus[d][o]) 387 388 #ifdef BNC_DEBUG_SSR 388 389 fprintf(stderr, "C[%02d][%02d] %8.3f \n", … … 393 394 for (o = 1; o <= v->Layers[l].Order; ++o) { 394 395 for (d = o; d <= v->Layers[l].Degree; ++d) { 395 G_IONO_COEFF_S(v->Layers[l].Sinus[d][o])396 D_IONO_COEFF_S(v->Layers[l].Sinus[d][o]) 396 397 #ifdef BNC_DEBUG_SSR 397 398 fprintf(stderr, "S[%02d][%02d] %8.3f \n", … … 415 416 return GCOBR_NOCLOCKORBITPARAMETER; 416 417 co->messageType = igstype; 417 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])418 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)419 G_MULTIPLE_MESSAGE_INDICATOR(mmi)420 G_SSR_IOD(co->SSRIOD)421 G_SSR_PROVIDER_ID(co->SSRProviderID)422 G_SSR_SOLUTION_ID(co->SSRSolutionID)423 G_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)424 G_NO_OF_SATELLITES(nums)418 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 419 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 420 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 421 D_SSR_IOD(co->SSRIOD) 422 D_SSR_PROVIDER_ID(co->SSRProviderID) 423 D_SSR_SOLUTION_ID(co->SSRSolutionID) 424 D_SATELLITE_REFERENCE_DATUM(co->SatRefDatum) 425 D_NO_OF_SATELLITES(nums) 425 426 co->Supplied[COBOFS_ORBIT] |= 1; 426 427 #ifdef BNC_DEBUG_SSR … … 430 431 #endif 431 432 for (i = 0; i < nums; ++i) { 432 G_GPS_SATELLITE_ID(id)433 D_GPS_SATELLITE_ID(id) 433 434 for (pos = satoffset[s]; 434 435 pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id; … … 440 441 ++co->NumberOfSat[s]; 441 442 co->Sat[pos].ID = id; 442 G_GPS_IODE(co->Sat[pos].IOD)443 G_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)444 G_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)445 G_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)446 G_DELTA_DOT_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)447 G_DELTA_DOT_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)448 G_DELTA_DOT_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)443 D_GPS_IODE(co->Sat[pos].IOD) 444 D_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial) 445 D_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack) 446 D_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack) 447 D_DOT_DELTA_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial) 448 D_DOT_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack) 449 D_DOT_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack) 449 450 #ifdef BNC_DEBUG_SSR 450 451 fprintf(stderr, "id %2d iod %3d dr %8.4f da %8.4f dc %8.4f dr %8.3f da %8.3f dc %8.3f\n", … … 461 462 return GCOBR_NOCLOCKORBITPARAMETER; 462 463 co->messageType = igstype; 463 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])464 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)465 G_MULTIPLE_MESSAGE_INDICATOR(mmi)466 G_SSR_IOD(co->SSRIOD)467 G_SSR_PROVIDER_ID(co->SSRProviderID)468 G_SSR_SOLUTION_ID(co->SSRSolutionID)469 G_NO_OF_SATELLITES(nums)464 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 465 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 466 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 467 D_SSR_IOD(co->SSRIOD) 468 D_SSR_PROVIDER_ID(co->SSRProviderID) 469 D_SSR_SOLUTION_ID(co->SSRSolutionID) 470 D_NO_OF_SATELLITES(nums) 470 471 co->Supplied[COBOFS_CLOCK] |= 1; 471 472 #ifdef BNC_DEBUG_SSR … … 475 476 #endif 476 477 for (i = 0; i < nums; ++i) { 477 G_GPS_SATELLITE_ID(id)478 D_GPS_SATELLITE_ID(id) 478 479 for (pos = satoffset[s]; 479 480 pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id; … … 485 486 ++co->NumberOfSat[s]; 486 487 co->Sat[pos].ID = id; 487 G_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)488 G_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)489 G_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)488 D_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0) 489 D_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1) 490 D_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2) 490 491 #ifdef BNC_DEBUG_SSR 491 492 fprintf(stderr, "id %2d c0 %8.3f c1 %8.3f c2 %8.3f\n", … … 499 500 return GCOBR_NOCLOCKORBITPARAMETER; 500 501 co->messageType = igstype; 501 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])502 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)503 G_MULTIPLE_MESSAGE_INDICATOR(mmi)504 G_SSR_IOD(co->SSRIOD)505 G_SSR_PROVIDER_ID(co->SSRProviderID)506 G_SSR_SOLUTION_ID(co->SSRSolutionID)507 G_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)508 G_NO_OF_SATELLITES(nums)502 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 503 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 504 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 505 D_SSR_IOD(co->SSRIOD) 506 D_SSR_PROVIDER_ID(co->SSRProviderID) 507 D_SSR_SOLUTION_ID(co->SSRSolutionID) 508 D_SATELLITE_REFERENCE_DATUM(co->SatRefDatum) 509 D_NO_OF_SATELLITES(nums) 509 510 co->Supplied[COBOFS_ORBIT] |= 1; 510 511 co->Supplied[COBOFS_CLOCK] |= 1; … … 515 516 #endif 516 517 for (i = 0; i < nums; ++i) { 517 G_GPS_SATELLITE_ID(id)518 D_GPS_SATELLITE_ID(id) 518 519 for (pos = satoffset[s]; 519 520 pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id; … … 525 526 ++co->NumberOfSat[s]; 526 527 co->Sat[pos].ID = id; 527 G_GPS_IODE(co->Sat[pos].IOD)528 G_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)529 G_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)530 G_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)531 G_DELTA_DOT_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)532 G_DELTA_DOT_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)533 G_DELTA_DOT_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)534 G_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)535 G_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)536 G_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)528 D_GPS_IODE(co->Sat[pos].IOD) 529 D_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial) 530 D_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack) 531 D_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack) 532 D_DOT_DELTA_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial) 533 D_DOT_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack) 534 D_DOT_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack) 535 D_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0) 536 D_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1) 537 D_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2) 537 538 #ifdef BNC_DEBUG_SSR 538 539 fprintf(stderr, "id %2d iod %3d dr %10.6f da %10.6f dc %10.6f dr %10.6f da %10.6f dc %10.6f c0 %10.6f c1 %10.6f c2 %10.6f\n", … … 549 550 return GCOBR_NOCLOCKORBITPARAMETER; 550 551 co->messageType = igstype; 551 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])552 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)553 G_MULTIPLE_MESSAGE_INDICATOR(mmi)554 G_SSR_IOD(co->SSRIOD)555 G_SSR_PROVIDER_ID(co->SSRProviderID)556 G_SSR_SOLUTION_ID(co->SSRSolutionID)557 G_NO_OF_SATELLITES(nums)552 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 553 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 554 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 555 D_SSR_IOD(co->SSRIOD) 556 D_SSR_PROVIDER_ID(co->SSRProviderID) 557 D_SSR_SOLUTION_ID(co->SSRSolutionID) 558 D_NO_OF_SATELLITES(nums) 558 559 co->Supplied[COBOFS_URA] |= 1; 559 560 #ifdef BNC_DEBUG_SSR … … 563 564 #endif 564 565 for (i = 0; i < nums; ++i) { 565 G_GPS_SATELLITE_ID(id)566 D_GPS_SATELLITE_ID(id) 566 567 for (pos = satoffset[s]; 567 568 pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id; … … 573 574 ++co->NumberOfSat[s]; 574 575 co->Sat[pos].ID = id; 575 G_SSR_URA(co->Sat[pos].UserRangeAccuracy)576 D_SSR_URA(co->Sat[pos].UserRangeAccuracy) 576 577 #ifdef BNC_DEBUG_SSR 577 578 fprintf(stderr, "id %2d ura %8.3f \n", … … 584 585 return GCOBR_NOCLOCKORBITPARAMETER; 585 586 co->messageType = igstype; 586 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])587 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)588 G_MULTIPLE_MESSAGE_INDICATOR(mmi)589 G_SSR_IOD(co->SSRIOD)590 G_SSR_PROVIDER_ID(co->SSRProviderID)591 G_SSR_SOLUTION_ID(co->SSRSolutionID)592 G_NO_OF_SATELLITES(nums)587 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 588 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 589 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 590 D_SSR_IOD(co->SSRIOD) 591 D_SSR_PROVIDER_ID(co->SSRProviderID) 592 D_SSR_SOLUTION_ID(co->SSRSolutionID) 593 D_NO_OF_SATELLITES(nums) 593 594 co->Supplied[COBOFS_HR] |= 1; 594 595 #ifdef BNC_DEBUG_SSR … … 598 599 #endif 599 600 for (i = 0; i < nums; ++i) { 600 G_GPS_SATELLITE_ID(id)601 D_GPS_SATELLITE_ID(id) 601 602 for (pos = satoffset[s]; 602 603 pos < satoffset[s] + co->NumberOfSat[s] && co->Sat[pos].ID != id; … … 608 609 ++co->NumberOfSat[s]; 609 610 co->Sat[pos].ID = id; 610 G_HR_CLOCK_CORRECTION(co->Sat[pos].hrclock)611 D_HR_CLOCK_CORRECTION(co->Sat[pos].hrclock) 611 612 #ifdef BNC_DEBUG_SSR 612 613 fprintf(stderr, "id %2d hrClock %8.3f \n", … … 619 620 return GCOBR_NOCODEBIASPARAMETER; 620 621 b->messageType = igstype; 621 G_GPS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])622 G_SSR_UPDATE_INTERVAL(b->UpdateInterval)623 G_MULTIPLE_MESSAGE_INDICATOR(mmi)624 G_SSR_IOD(b->SSRIOD)625 G_SSR_PROVIDER_ID(b->SSRProviderID)626 G_SSR_SOLUTION_ID(b->SSRSolutionID)627 G_NO_OF_SATELLITES(nums)622 D_GPS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s]) 623 D_SSR_UPDATE_INTERVAL(b->UpdateInterval) 624 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 625 D_SSR_IOD(b->SSRIOD) 626 D_SSR_PROVIDER_ID(b->SSRProviderID) 627 D_SSR_SOLUTION_ID(b->SSRSolutionID) 628 D_NO_OF_SATELLITES(nums) 628 629 #ifdef BNC_DEBUG_SSR 629 630 fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d\n", … … 632 633 #endif 633 634 for (i = 0; i < nums; ++i) { 634 G_GPS_SATELLITE_ID(id)635 D_GPS_SATELLITE_ID(id) 635 636 for (pos = satoffset[s]; 636 637 pos < satoffset[s] + b->NumberOfSat[s] && b->Sat[pos].ID != id; … … 642 643 ++b->NumberOfSat[s]; 643 644 b->Sat[pos].ID = id; 644 G_NO_OF_BIASES(b->Sat[pos].NumberOfCodeBiases)645 D_NO_OF_BIASES(b->Sat[pos].NumberOfCodeBiases) 645 646 #ifdef BNC_DEBUG_SSR 646 647 fprintf(stderr, "id %2d #%d ", … … 648 649 #endif 649 650 for (j = 0; j < b->Sat[pos].NumberOfCodeBiases; ++j) { 650 G_GNSS_SIGNAL_IDENTIFIER(b->Sat[pos].Biases[j].Type)651 G_CODE_BIAS(b->Sat[pos].Biases[j].Bias)651 D_GNSS_SIGNAL_IDENTIFIER(b->Sat[pos].Biases[j].Type) 652 D_CODE_BIAS(b->Sat[pos].Biases[j].Bias) 652 653 #ifdef BNC_DEBUG_SSR 653 654 fprintf(stderr, "t%02d b %8.2f ", … … 664 665 return GCOBR_NOPHASEBIASPARAMETER; 665 666 pb->messageType = igstype; 666 G_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])667 G_SSR_UPDATE_INTERVAL(pb->UpdateInterval)668 G_MULTIPLE_MESSAGE_INDICATOR(mmi)669 G_SSR_IOD(pb->SSRIOD)670 G_SSR_PROVIDER_ID(pb->SSRProviderID)671 G_SSR_SOLUTION_ID(pb->SSRSolutionID)672 G_DISPERSIVE_BIAS_INDICATOR(pb->DispersiveBiasConsistencyIndicator)673 G_MW_CONSISTENCY_INDICATOR(pb->MWConsistencyIndicator)674 G_NO_OF_SATELLITES(nums)667 D_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s]) 668 D_SSR_UPDATE_INTERVAL(pb->UpdateInterval) 669 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 670 D_SSR_IOD(pb->SSRIOD) 671 D_SSR_PROVIDER_ID(pb->SSRProviderID) 672 D_SSR_SOLUTION_ID(pb->SSRSolutionID) 673 D_DISPERSIVE_BIAS_INDICATOR(pb->DispersiveBiasConsistencyIndicator) 674 D_MW_CONSISTENCY_INDICATOR(pb->MWConsistencyIndicator) 675 D_NO_OF_SATELLITES(nums) 675 676 #ifdef BNC_DEBUG_SSR 676 677 fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d dispInd %d mwInd %d\n", … … 680 681 #endif 681 682 for (i = 0; i < nums; ++i) { 682 G_GPS_SATELLITE_ID(id)683 D_GPS_SATELLITE_ID(id) 683 684 for (pos = satoffset[s]; 684 685 pos < satoffset[s] + pb->NumberOfSat[s] && pb->Sat[pos].ID != id; … … 690 691 ++pb->NumberOfSat[s]; 691 692 pb->Sat[pos].ID = id; 692 G_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases)693 G_YAW_ANGLE(pb->Sat[pos].YawAngle)694 G_YAW_RATE(pb->Sat[pos].YawRate)693 D_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases) 694 D_YAW_ANGLE(pb->Sat[pos].YawAngle) 695 D_YAW_RATE(pb->Sat[pos].YawRate) 695 696 #ifdef BNC_DEBUG_SSR 696 697 fprintf(stderr, "id %2d #%d y %10.6f yr %10.6f ", … … 699 700 #endif 700 701 for (j = 0; j < pb->Sat[pos].NumberOfPhaseBiases; ++j) { 701 G_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type)702 G_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator)703 G_WIDE_LANE_INDICATOR(pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator)704 G_DISCONTINUITY_COUNTER(pb->Sat[pos].Biases[j].SignalDiscontinuityCounter)705 G_PHASE_BIAS(pb->Sat[pos].Biases[j].Bias)702 D_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type) 703 D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator) 704 D_WIDE_LANE_INDICATOR(pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator) 705 D_DISCONTINUITY_COUNTER(pb->Sat[pos].Biases[j].SignalDiscontinuityCounter) 706 D_PHASE_BIAS_CORRECTION(pb->Sat[pos].Biases[j].Bias) 706 707 #ifdef BNC_DEBUG_SSR 707 708 fprintf(stderr, "t%02d int %d wl %d disc %02d b %8.4f ", -
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.cpp
r10987 r10990 69 69 if (status[s][COBOFS_ORBIT]) { 70 70 INITBLOCK 71 T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_ORBIT)71 E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_ORBIT) 72 72 switch (s) { 73 73 case CLOCKORBIT_SATGPS: … … 76 76 case CLOCKORBIT_SATSBAS: 77 77 case CLOCKORBIT_SATBDS: 78 T_GPS_EPOCH_TIME(co->EpochTime[s])78 E_GPS_EPOCH_TIME(co->EpochTime[s]) 79 79 break; 80 80 case CLOCKORBIT_SATGLONASS: 81 T_GLONASS_EPOCH_TIME(co->EpochTime[s])82 break; 83 } 84 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)85 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)86 T_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)87 T_SSR_IOD(co->SSRIOD)88 T_SSR_PROVIDER_ID(co->SSRProviderID)89 T_SSR_SOLUTION_ID(co->SSRSolutionID)90 T_NO_OF_SATELLITES(co->NumberOfSat[s])81 E_GLONASS_EPOCH_TIME(co->EpochTime[s]) 82 break; 83 } 84 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 85 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 86 E_SATELLITE_REFERENCE_DATUM(co->SatRefDatum) 87 E_SSR_IOD(co->SSRIOD) 88 E_SSR_PROVIDER_ID(co->SSRProviderID) 89 E_SSR_SOLUTION_ID(co->SSRSolutionID) 90 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 91 91 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) { 92 92 switch (s) { 93 93 case CLOCKORBIT_SATGPS: 94 T_GPS_SATELLITE_ID(co->Sat[i].ID)95 T_GPS_IODE(co->Sat[i].IOD)94 E_GPS_SATELLITE_ID(co->Sat[i].ID) 95 E_GPS_IODE(co->Sat[i].IOD) 96 96 break; 97 97 case CLOCKORBIT_SATGLONASS: 98 T_GLONASS_SATELLITE_ID(co->Sat[i].ID)99 T_GLONASS_IOD(co->Sat[i].IOD)98 E_GLONASS_SATELLITE_ID(co->Sat[i].ID) 99 E_GLONASS_IOD(co->Sat[i].IOD) 100 100 break; 101 101 case CLOCKORBIT_SATGALILEO: 102 T_GPS_SATELLITE_ID(co->Sat[i].ID)103 T_GALILEO_IOD(co->Sat[i].IOD)102 E_GPS_SATELLITE_ID(co->Sat[i].ID) 103 E_GALILEO_IOD(co->Sat[i].IOD) 104 104 break; 105 105 case CLOCKORBIT_SATQZSS: 106 T_QZSS_SATELLITE_ID(co->Sat[i].ID)107 T_GPS_IODE(co->Sat[i].IOD)106 E_QZSS_SATELLITE_ID_OLD(co->Sat[i].ID) 107 E_GPS_IODE(co->Sat[i].IOD) 108 108 break; 109 109 case CLOCKORBIT_SATSBAS: 110 T_GPS_SATELLITE_ID(co->Sat[i].ID)111 T_SBAS_T0MOD(co->Sat[i].toe)112 T_SBAS_IODCRC(co->Sat[i].IOD)110 E_GPS_SATELLITE_ID(co->Sat[i].ID) 111 E_SBAS_T0MOD(co->Sat[i].toe) 112 E_SBAS_IODCRC(co->Sat[i].IOD) 113 113 break; 114 114 case CLOCKORBIT_SATBDS: 115 T_GPS_SATELLITE_ID(co->Sat[i].ID)116 T_BDS_TOEMOD(co->Sat[i].toe)117 T_BDS_IOD(co->Sat[i].IOD)115 E_GPS_SATELLITE_ID(co->Sat[i].ID) 116 E_BDS_TOEMOD(co->Sat[i].toe) 117 E_BDS_IOD(co->Sat[i].IOD) 118 118 break; 119 119 } 120 T_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)121 T_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)122 T_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)123 T_DELTA _DOT_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)124 T_DELTA _DOT_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)125 T_DELTA _DOT_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)120 E_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial) 121 E_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack) 122 E_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack) 123 E_DOT_DELTA_RADIAL(co->Sat[i].Orbit.DotDeltaRadial) 124 E_DOT_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack) 125 E_DOT_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack) 126 126 } 127 127 ENDBLOCK … … 129 129 if (status[s][COBOFS_CLOCK]) { 130 130 INITBLOCK 131 T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CLOCK)131 E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CLOCK) 132 132 switch (s) { 133 133 case CLOCKORBIT_SATGPS: … … 136 136 case CLOCKORBIT_SATSBAS: 137 137 case CLOCKORBIT_SATBDS: 138 T_GPS_EPOCH_TIME(co->EpochTime[s])138 E_GPS_EPOCH_TIME(co->EpochTime[s]) 139 139 break; 140 140 case CLOCKORBIT_SATGLONASS: 141 T_GLONASS_EPOCH_TIME(co->EpochTime[s])142 break; 143 } 144 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)145 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)146 T_SSR_IOD(co->SSRIOD)147 T_SSR_PROVIDER_ID(co->SSRProviderID)148 T_SSR_SOLUTION_ID(co->SSRSolutionID)149 T_NO_OF_SATELLITES(co->NumberOfSat[s])141 E_GLONASS_EPOCH_TIME(co->EpochTime[s]) 142 break; 143 } 144 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 145 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 146 E_SSR_IOD(co->SSRIOD) 147 E_SSR_PROVIDER_ID(co->SSRProviderID) 148 E_SSR_SOLUTION_ID(co->SSRSolutionID) 149 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 150 150 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) { 151 151 switch (s) { … … 154 154 case CLOCKORBIT_SATSBAS: 155 155 case CLOCKORBIT_SATBDS: 156 T_GPS_SATELLITE_ID(co->Sat[i].ID)156 E_GPS_SATELLITE_ID(co->Sat[i].ID) 157 157 break; 158 158 case CLOCKORBIT_SATQZSS: 159 T_QZSS_SATELLITE_ID(co->Sat[i].ID)159 E_QZSS_SATELLITE_ID_OLD(co->Sat[i].ID) 160 160 break; 161 161 case CLOCKORBIT_SATGLONASS: 162 T_GLONASS_SATELLITE_ID(co->Sat[i].ID)162 E_GLONASS_SATELLITE_ID(co->Sat[i].ID) 163 163 break; 164 164 } 165 T_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)166 T_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)167 T_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)165 E_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0) 166 E_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1) 167 E_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2) 168 168 } 169 169 ENDBLOCK … … 171 171 if (status[s][COBOFS_COMBINED]) { 172 172 #ifdef SPLITBLOCK 173 int nums = co->NumberOfSat[s]; 174 int left, start = satoffset[s]; 173 unsigned int nums = co->NumberOfSat[s]; 174 unsigned int left, start = satoffset[s]; 175 175 if(nums > 28) {/* split block when more than 28 sats */ 176 176 left = nums - 28; … … 183 183 #endif 184 184 INITBLOCK 185 T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_COMBINED)185 E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_COMBINED) 186 186 switch (s) { 187 187 case CLOCKORBIT_SATGPS: … … 190 190 case CLOCKORBIT_SATSBAS: 191 191 case CLOCKORBIT_SATBDS: 192 T_GPS_EPOCH_TIME(co->EpochTime[s])192 E_GPS_EPOCH_TIME(co->EpochTime[s]) 193 193 break; 194 194 case CLOCKORBIT_SATGLONASS: 195 T_GLONASS_EPOCH_TIME(co->EpochTime[s])196 break; 197 } 198 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)195 E_GLONASS_EPOCH_TIME(co->EpochTime[s]) 196 break; 197 } 198 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 199 199 #ifdef SPLITBLOCK 200 T_MULTIPLE_MESSAGE_INDICATOR((moremessagesfollow || left) ? 1 : 0)200 E_MULTIPLE_MESSAGE_INDICATOR((moremessagesfollow || left) ? 1 : 0) 201 201 #else 202 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)203 #endif 204 T_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)205 T_SSR_IOD(co->SSRIOD)206 T_SSR_PROVIDER_ID(co->SSRProviderID)207 T_SSR_SOLUTION_ID(co->SSRSolutionID)202 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 203 #endif 204 E_SATELLITE_REFERENCE_DATUM(co->SatRefDatum) 205 E_SSR_IOD(co->SSRIOD) 206 E_SSR_PROVIDER_ID(co->SSRProviderID) 207 E_SSR_SOLUTION_ID(co->SSRSolutionID) 208 208 #ifdef SPLITBLOCK 209 T_NO_OF_SATELLITES(nums)209 E_NO_OF_SATELLITES(nums) 210 210 for(i = start; i < start+nums; ++i) 211 211 #else 212 T_NO_OF_SATELLITES(co->NumberOfSat[s])212 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 213 213 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) 214 214 #endif … … 216 216 switch (s) { 217 217 case CLOCKORBIT_SATGPS: 218 T_GPS_SATELLITE_ID(co->Sat[i].ID)219 T_GPS_IODE(co->Sat[i].IOD)218 E_GPS_SATELLITE_ID(co->Sat[i].ID) 219 E_GPS_IODE(co->Sat[i].IOD) 220 220 break; 221 221 case CLOCKORBIT_SATGLONASS: 222 T_GLONASS_SATELLITE_ID(co->Sat[i].ID)223 T_GLONASS_IOD(co->Sat[i].IOD)222 E_GLONASS_SATELLITE_ID(co->Sat[i].ID) 223 E_GLONASS_IOD(co->Sat[i].IOD) 224 224 break; 225 225 case CLOCKORBIT_SATGALILEO: 226 T_GPS_SATELLITE_ID(co->Sat[i].ID)227 T_GALILEO_IOD(co->Sat[i].IOD)226 E_GPS_SATELLITE_ID(co->Sat[i].ID) 227 E_GALILEO_IOD(co->Sat[i].IOD) 228 228 break; 229 229 case CLOCKORBIT_SATQZSS: 230 T_QZSS_SATELLITE_ID(co->Sat[i].ID)231 T_GPS_IODE(co->Sat[i].IOD)230 E_QZSS_SATELLITE_ID_OLD(co->Sat[i].ID) 231 E_GPS_IODE(co->Sat[i].IOD) 232 232 break; 233 233 case CLOCKORBIT_SATSBAS: 234 T_GPS_SATELLITE_ID(co->Sat[i].ID)235 T_SBAS_T0MOD(co->Sat[i].toe)236 T_SBAS_IODCRC(co->Sat[i].IOD)234 E_GPS_SATELLITE_ID(co->Sat[i].ID) 235 E_SBAS_T0MOD(co->Sat[i].toe) 236 E_SBAS_IODCRC(co->Sat[i].IOD) 237 237 break; 238 238 case CLOCKORBIT_SATBDS: 239 T_GPS_SATELLITE_ID(co->Sat[i].ID)240 T_BDS_TOEMOD(co->Sat[i].toe)241 T_BDS_IOD(co->Sat[i].IOD)239 E_GPS_SATELLITE_ID(co->Sat[i].ID) 240 E_BDS_TOEMOD(co->Sat[i].toe) 241 E_BDS_IOD(co->Sat[i].IOD) 242 242 break; 243 243 } 244 T_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)245 T_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)246 T_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)247 T_DELTA _DOT_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)248 T_DELTA _DOT_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)249 T_DELTA _DOT_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)250 T_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)251 T_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)252 T_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)244 E_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial) 245 E_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack) 246 E_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack) 247 E_DOT_DELTA_RADIAL(co->Sat[i].Orbit.DotDeltaRadial) 248 E_DOT_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack) 249 E_DOT_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack) 250 E_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0) 251 E_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1) 252 E_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2) 253 253 } 254 254 ENDBLOCK … … 262 262 if (status[s][COBOFS_HR]) { 263 263 INITBLOCK 264 T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_HR)264 E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_HR) 265 265 switch (s) { 266 266 case CLOCKORBIT_SATGPS: … … 269 269 case CLOCKORBIT_SATSBAS: 270 270 case CLOCKORBIT_SATBDS: 271 T_GPS_EPOCH_TIME(co->EpochTime[s])271 E_GPS_EPOCH_TIME(co->EpochTime[s]) 272 272 break; 273 273 case CLOCKORBIT_SATGLONASS: 274 T_GLONASS_EPOCH_TIME(co->EpochTime[s])275 break; 276 } 277 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)278 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)279 T_SSR_IOD(co->SSRIOD)280 T_SSR_PROVIDER_ID(co->SSRProviderID)281 T_SSR_SOLUTION_ID(co->SSRSolutionID)282 T_NO_OF_SATELLITES(co->NumberOfSat[s])274 E_GLONASS_EPOCH_TIME(co->EpochTime[s]) 275 break; 276 } 277 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 278 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 279 E_SSR_IOD(co->SSRIOD) 280 E_SSR_PROVIDER_ID(co->SSRProviderID) 281 E_SSR_SOLUTION_ID(co->SSRSolutionID) 282 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 283 283 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) { 284 284 switch (s) { … … 287 287 case CLOCKORBIT_SATSBAS: 288 288 case CLOCKORBIT_SATBDS: 289 T_GPS_SATELLITE_ID(co->Sat[i].ID)289 E_GPS_SATELLITE_ID(co->Sat[i].ID) 290 290 break; 291 291 case CLOCKORBIT_SATQZSS: 292 T_QZSS_SATELLITE_ID(co->Sat[i].ID)292 E_QZSS_SATELLITE_ID_OLD(co->Sat[i].ID) 293 293 break; 294 294 case CLOCKORBIT_SATGLONASS: 295 T_GLONASS_SATELLITE_ID(co->Sat[i].ID)295 E_GLONASS_SATELLITE_ID(co->Sat[i].ID) 296 296 break; 297 297 } 298 T_HR_CLOCK_CORRECTION(co->Sat[i].hrclock)298 E_HR_CLOCK_CORRECTION(co->Sat[i].hrclock) 299 299 } 300 300 ENDBLOCK … … 302 302 if (status[s][COBOFS_URA]) { 303 303 INITBLOCK 304 T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_URA)304 E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_URA) 305 305 switch (s) { 306 306 case CLOCKORBIT_SATGPS: … … 309 309 case CLOCKORBIT_SATSBAS: 310 310 case CLOCKORBIT_SATBDS: 311 T_GPS_EPOCH_TIME(co->EpochTime[s])311 E_GPS_EPOCH_TIME(co->EpochTime[s]) 312 312 break; 313 313 case CLOCKORBIT_SATGLONASS: 314 T_GLONASS_EPOCH_TIME(co->EpochTime[s])315 break; 316 } 317 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)318 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)319 T_SSR_IOD(co->SSRIOD)320 T_SSR_PROVIDER_ID(co->SSRProviderID)321 T_SSR_SOLUTION_ID(co->SSRSolutionID)322 T_NO_OF_SATELLITES(co->NumberOfSat[s])314 E_GLONASS_EPOCH_TIME(co->EpochTime[s]) 315 break; 316 } 317 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 318 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 319 E_SSR_IOD(co->SSRIOD) 320 E_SSR_PROVIDER_ID(co->SSRProviderID) 321 E_SSR_SOLUTION_ID(co->SSRSolutionID) 322 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 323 323 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) { 324 324 switch (s) { … … 327 327 case CLOCKORBIT_SATSBAS: 328 328 case CLOCKORBIT_SATBDS: 329 T_GPS_SATELLITE_ID(co->Sat[i].ID)329 E_GPS_SATELLITE_ID(co->Sat[i].ID) 330 330 break; 331 331 case CLOCKORBIT_SATQZSS: 332 T_QZSS_SATELLITE_ID(co->Sat[i].ID)332 E_QZSS_SATELLITE_ID_OLD(co->Sat[i].ID) 333 333 break; 334 334 case CLOCKORBIT_SATGLONASS: 335 T_GLONASS_SATELLITE_ID(co->Sat[i].ID)335 E_GLONASS_SATELLITE_ID(co->Sat[i].ID) 336 336 break; 337 337 } 338 T_SSR_URA(ValueToURA(co->Sat[i].UserRangeAccuracy))338 E_SSR_URA(ValueToURA(co->Sat[i].UserRangeAccuracy)) 339 339 } 340 340 ENDBLOCK … … 353 353 if (b->NumberOfSat[s] && (type == CBTYPE_AUTO || type == corbase[s] + COBOFS_CBIAS)) { 354 354 INITBLOCK 355 T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CBIAS)355 E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CBIAS) 356 356 switch (s) { 357 357 case CLOCKORBIT_SATGPS: … … 360 360 case CLOCKORBIT_SATSBAS: 361 361 case CLOCKORBIT_SATBDS: 362 T_GPS_EPOCH_TIME(b->EpochTime[s])362 E_GPS_EPOCH_TIME(b->EpochTime[s]) 363 363 break; 364 364 case CLOCKORBIT_SATGLONASS: 365 T_GLONASS_EPOCH_TIME(b->EpochTime[s])366 break; 367 } 368 T_SSR_UPDATE_INTERVAL(b->UpdateInterval)369 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)370 T_SSR_IOD(b->SSRIOD)371 T_SSR_PROVIDER_ID(b->SSRProviderID)372 T_SSR_SOLUTION_ID(b->SSRSolutionID)373 T_NO_OF_SATELLITES(b->NumberOfSat[s])365 E_GLONASS_EPOCH_TIME(b->EpochTime[s]) 366 break; 367 } 368 E_SSR_UPDATE_INTERVAL(b->UpdateInterval) 369 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 370 E_SSR_IOD(b->SSRIOD) 371 E_SSR_PROVIDER_ID(b->SSRProviderID) 372 E_SSR_SOLUTION_ID(b->SSRSolutionID) 373 E_NO_OF_SATELLITES(b->NumberOfSat[s]) 374 374 for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) { 375 375 switch (s) { … … 378 378 case CLOCKORBIT_SATSBAS: 379 379 case CLOCKORBIT_SATBDS: 380 T_GPS_SATELLITE_ID(b->Sat[i].ID)380 E_GPS_SATELLITE_ID(b->Sat[i].ID) 381 381 break; 382 382 case CLOCKORBIT_SATQZSS: 383 T_QZSS_SATELLITE_ID(b->Sat[i].ID)383 E_QZSS_SATELLITE_ID_OLD(b->Sat[i].ID) 384 384 break; 385 385 case CLOCKORBIT_SATGLONASS: 386 T_GLONASS_SATELLITE_ID(b->Sat[i].ID)386 E_GLONASS_SATELLITE_ID(b->Sat[i].ID) 387 387 break; 388 388 } 389 T_NO_OF_BIASES(b->Sat[i].NumberOfCodeBiases)389 E_NO_OF_BIASES(b->Sat[i].NumberOfCodeBiases) 390 390 for (j = 0; j < b->Sat[i].NumberOfCodeBiases; ++j) { 391 T_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)392 T_CODE_BIAS(b->Sat[i].Biases[j].Bias)391 E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type) 392 E_CODE_BIAS(b->Sat[i].Biases[j].Bias) 393 393 } 394 394 } … … 408 408 if (b->NumberOfSat[s] && (type == PBTYPE_AUTO || type == s + PBTYPE_BASE)) { 409 409 INITBLOCK 410 T_RTCM_MESSAGE_NUMBER(s + PBTYPE_BASE)410 E_RTCM_MESSAGE_NUMBER(s + PBTYPE_BASE) 411 411 switch (s) { 412 412 case CLOCKORBIT_SATGPS: … … 415 415 case CLOCKORBIT_SATSBAS: 416 416 case CLOCKORBIT_SATBDS: 417 T_GPS_EPOCH_TIME(b->EpochTime[s])417 E_GPS_EPOCH_TIME(b->EpochTime[s]) 418 418 break; 419 419 case CLOCKORBIT_SATGLONASS: 420 T_GLONASS_EPOCH_TIME(b->EpochTime[s])421 break; 422 } 423 T_SSR_UPDATE_INTERVAL(b->UpdateInterval)424 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)425 T_SSR_IOD(b->SSRIOD)426 T_SSR_PROVIDER_ID(b->SSRProviderID)427 T_SSR_SOLUTION_ID(b->SSRSolutionID)428 T_DISPERSIVE_BIAS_INDICATOR(b->DispersiveBiasConsistencyIndicator ? 1 : 0)429 T_MW_CONSISTENCY_INDICATOR(b->MWConsistencyIndicator ? 1 : 0)430 T_NO_OF_SATELLITES(b->NumberOfSat[s])420 E_GLONASS_EPOCH_TIME(b->EpochTime[s]) 421 break; 422 } 423 E_SSR_UPDATE_INTERVAL(b->UpdateInterval) 424 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 425 E_SSR_IOD(b->SSRIOD) 426 E_SSR_PROVIDER_ID(b->SSRProviderID) 427 E_SSR_SOLUTION_ID(b->SSRSolutionID) 428 E_DISPERSIVE_BIAS_INDICATOR(b->DispersiveBiasConsistencyIndicator ? 1 : 0) 429 E_MW_CONSISTENCY_INDICATOR(b->MWConsistencyIndicator ? 1 : 0) 430 E_NO_OF_SATELLITES(b->NumberOfSat[s]) 431 431 for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) { 432 432 switch (s) { … … 435 435 case CLOCKORBIT_SATSBAS: 436 436 case CLOCKORBIT_SATBDS: 437 T_GPS_SATELLITE_ID(b->Sat[i].ID)437 E_GPS_SATELLITE_ID(b->Sat[i].ID) 438 438 break; 439 439 case CLOCKORBIT_SATQZSS: 440 T_QZSS_SATELLITE_ID(b->Sat[i].ID)440 E_QZSS_SATELLITE_ID_OLD(b->Sat[i].ID) 441 441 break; 442 442 case CLOCKORBIT_SATGLONASS: 443 T_GLONASS_SATELLITE_ID(b->Sat[i].ID)443 E_GLONASS_SATELLITE_ID(b->Sat[i].ID) 444 444 break; 445 445 } 446 T_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases)447 T_YAW_ANGLE(b->Sat[i].YawAngle)448 T_YAW_RATE(b->Sat[i].YawRate)446 E_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases) 447 E_YAW_ANGLE(b->Sat[i].YawAngle) 448 E_YAW_RATE(b->Sat[i].YawRate) 449 449 for (j = 0; j < b->Sat[i].NumberOfPhaseBiases; ++j) { 450 T_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)451 T_INTEGER_INDICATOR(450 E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type) 451 E_INTEGER_INDICATOR( 452 452 b->Sat[i].Biases[j].SignalIntegerIndicator ? 1 : 0) 453 T_WIDE_LANE_INDICATOR(453 E_WIDE_LANE_INDICATOR( 454 454 b->Sat[i].Biases[j].SignalsWideLaneIntegerIndicator) 455 T_DISCONTINUITY_COUNTER(455 E_DISCONTINUITY_COUNTER( 456 456 b->Sat[i].Biases[j].SignalDiscontinuityCounter) 457 T_PHASE_BIAS(b->Sat[i].Biases[j].Bias)457 E_PHASE_BIAS_CORRECTION(b->Sat[i].Biases[j].Bias) 458 458 } 459 459 } … … 469 469 STARTDATA 470 470 INITBLOCK 471 T_RTCM_MESSAGE_NUMBER(VTEC_BASE)472 T_GPS_EPOCH_TIME(v->EpochTime)473 T_SSR_UPDATE_INTERVAL(v->UpdateInterval)474 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)475 T_SSR_IOD(v->SSRIOD)476 T_SSR_PROVIDER_ID(v->SSRProviderID)477 T_SSR_SOLUTION_ID(v->SSRSolutionID)478 T_VTEC_QUALITY_INDICATOR(v->Quality)479 T_NO_IONO_LAYERS(v->NumLayers)471 E_RTCM_MESSAGE_NUMBER(VTEC_BASE) 472 E_GPS_EPOCH_TIME(v->EpochTime) 473 E_SSR_UPDATE_INTERVAL(v->UpdateInterval) 474 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 475 E_SSR_IOD(v->SSRIOD) 476 E_SSR_PROVIDER_ID(v->SSRProviderID) 477 E_SSR_SOLUTION_ID(v->SSRSolutionID) 478 E_VTEC_QUALITY_INDICATOR(v->Quality) 479 E_NO_IONO_LAYERS(v->NumLayers) 480 480 for (l = 0; l < v->NumLayers; ++l) { 481 T_IONO_HEIGHT(v->Layers[l].Height)482 T_IONO_DEGREE(v->Layers[l].Degree)483 T_IONO_ORDER(v->Layers[l].Order)481 E_IONO_HEIGHT(v->Layers[l].Height) 482 E_IONO_DEGREE(v->Layers[l].Degree) 483 E_IONO_ORDER(v->Layers[l].Order) 484 484 for (o = 0; o <= v->Layers[l].Order; ++o) { 485 485 for (d = o; d <= v->Layers[l].Degree; ++d) { 486 T_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])486 E_IONO_COEFF_C(v->Layers[l].Cosinus[d][o]) 487 487 } 488 488 } 489 489 for (o = 1; o <= v->Layers[l].Order; ++o) { 490 490 for (d = o; d <= v->Layers[l].Degree; ++d) { 491 T_IONO_COEFF_S(v->Layers[l].Sinus[d][o])491 E_IONO_COEFF_S(v->Layers[l].Sinus[d][o]) 492 492 } 493 493 } … … 512 512 #endif 513 513 514 G_HEADER(h)515 G_RESERVEDH(rs)516 G_SIZE(sizeofrtcmblock);514 D_HEADER(h) 515 D_RESERVEDH(rs) 516 D_SIZE(sizeofrtcmblock); 517 517 518 518 if ((unsigned char) h != 0xD3 || rs) … … 527 527 size = sizeofrtcmblock; /* reduce size, so overflows are detected */ 528 528 529 G_RTCM_MESSAGE_NUMBER(type)529 D_RTCM_MESSAGE_NUMBER(type) 530 530 #ifdef BNC_DEBUG_SSR 531 531 fprintf(stderr, "type %d size %d\n",type,(int)sizeofrtcmblock); … … 538 538 return GCOBR_NOVTECPARAMETER; 539 539 memset(v, 0, sizeof(*v)); 540 G_GPS_EPOCH_TIME(v->EpochTime)541 G_SSR_UPDATE_INTERVAL(v->UpdateInterval)542 G_MULTIPLE_MESSAGE_INDICATOR(mmi)543 G_SSR_IOD(v->SSRIOD)544 G_SSR_PROVIDER_ID(v->SSRProviderID)545 G_SSR_SOLUTION_ID(v->SSRSolutionID)546 G_VTEC_QUALITY_INDICATOR(v->Quality)547 G_NO_IONO_LAYERS(v->NumLayers)540 D_GPS_EPOCH_TIME(v->EpochTime) 541 D_SSR_UPDATE_INTERVAL(v->UpdateInterval) 542 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 543 D_SSR_IOD(v->SSRIOD) 544 D_SSR_PROVIDER_ID(v->SSRProviderID) 545 D_SSR_SOLUTION_ID(v->SSRSolutionID) 546 D_VTEC_QUALITY_INDICATOR(v->Quality) 547 D_NO_IONO_LAYERS(v->NumLayers) 548 548 #ifdef BNC_DEBUG_SSR 549 549 fprintf(stderr, "epochTime %d ui %d mmi %d ssrIod %d providerId %d solId %d vtecQ %8.3f numLay %d \n", … … 552 552 #endif 553 553 for (l = 0; l < v->NumLayers; ++l) { 554 G_IONO_HEIGHT(v->Layers[l].Height)555 G_IONO_DEGREE(v->Layers[l].Degree)556 G_IONO_ORDER(v->Layers[l].Order)554 D_IONO_HEIGHT(v->Layers[l].Height) 555 D_IONO_DEGREE(v->Layers[l].Degree) 556 D_IONO_ORDER(v->Layers[l].Order) 557 557 #ifdef BNC_DEBUG_SSR 558 558 fprintf(stderr, "h %8.3f deg %d ord %d \n", … … 561 561 for (o = 0; o <= v->Layers[l].Order; ++o) { 562 562 for (d = o; d <= v->Layers[l].Degree; ++d) { 563 G_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])563 D_IONO_COEFF_C(v->Layers[l].Cosinus[d][o]) 564 564 #ifdef BNC_DEBUG_SSR 565 565 fprintf(stderr, "C[%02d][%02d] %8.3f \n", … … 570 570 for (o = 1; o <= v->Layers[l].Order; ++o) { 571 571 for (d = o; d <= v->Layers[l].Degree; ++d) { 572 G_IONO_COEFF_S(v->Layers[l].Sinus[d][o])572 D_IONO_COEFF_S(v->Layers[l].Sinus[d][o]) 573 573 #ifdef BNC_DEBUG_SSR 574 574 fprintf(stderr, "S[%02d][%02d] %8.3f \n", … … 596 596 case CLOCKORBIT_SATSBAS: 597 597 case CLOCKORBIT_SATBDS: 598 G_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])598 D_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s]) 599 599 break; 600 600 case CLOCKORBIT_SATGLONASS: 601 G_GLONASS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])602 break; 603 } 604 G_SSR_UPDATE_INTERVAL(pb->UpdateInterval)605 G_MULTIPLE_MESSAGE_INDICATOR(mmi)606 G_SSR_IOD(pb->SSRIOD)607 G_SSR_PROVIDER_ID(pb->SSRProviderID)608 G_SSR_SOLUTION_ID(pb->SSRSolutionID)609 G_DISPERSIVE_BIAS_INDICATOR(pb->DispersiveBiasConsistencyIndicator)610 G_MW_CONSISTENCY_INDICATOR(pb->MWConsistencyIndicator)611 G_NO_OF_SATELLITES(nums)601 D_GLONASS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s]) 602 break; 603 } 604 D_SSR_UPDATE_INTERVAL(pb->UpdateInterval) 605 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 606 D_SSR_IOD(pb->SSRIOD) 607 D_SSR_PROVIDER_ID(pb->SSRProviderID) 608 D_SSR_SOLUTION_ID(pb->SSRSolutionID) 609 D_DISPERSIVE_BIAS_INDICATOR(pb->DispersiveBiasConsistencyIndicator) 610 D_MW_CONSISTENCY_INDICATOR(pb->MWConsistencyIndicator) 611 D_NO_OF_SATELLITES(nums) 612 612 #ifdef BNC_DEBUG_SSR 613 613 fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d dispInd %d mwInd %d\n", … … 622 622 case CLOCKORBIT_SATSBAS: 623 623 case CLOCKORBIT_SATBDS: 624 G_GPS_SATELLITE_ID(id)624 D_GPS_SATELLITE_ID(id) 625 625 break; 626 626 case CLOCKORBIT_SATQZSS: 627 G_QZSS_SATELLITE_ID(id)627 D_QZSS_SATELLITE_ID_OLD(id) 628 628 break; 629 629 case CLOCKORBIT_SATGLONASS: 630 G_GLONASS_SATELLITE_ID(id)630 D_GLONASS_SATELLITE_ID_OLD(id) 631 631 break; 632 632 } … … 640 640 ++pb->NumberOfSat[s]; 641 641 pb->Sat[pos].ID = id; 642 G_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases)643 G_YAW_ANGLE(pb->Sat[pos].YawAngle)644 G_YAW_RATE(pb->Sat[pos].YawRate)642 D_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases) 643 D_YAW_ANGLE(pb->Sat[pos].YawAngle) 644 D_YAW_RATE(pb->Sat[pos].YawRate) 645 645 #ifdef BNC_DEBUG_SSR 646 646 fprintf(stderr, "id %2d #%d y %10.6f yr %10.6f ", … … 649 649 #endif 650 650 for (j = 0; j < pb->Sat[pos].NumberOfPhaseBiases; ++j) { 651 G_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type)652 G_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator)653 G_WIDE_LANE_INDICATOR(651 D_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type) 652 D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator) 653 D_WIDE_LANE_INDICATOR( 654 654 pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator) 655 G_DISCONTINUITY_COUNTER(655 D_DISCONTINUITY_COUNTER( 656 656 pb->Sat[pos].Biases[j].SignalDiscontinuityCounter) 657 G_PHASE_BIAS(pb->Sat[pos].Biases[j].Bias)657 D_PHASE_BIAS_CORRECTION(pb->Sat[pos].Biases[j].Bias) 658 658 #ifdef BNC_DEBUG_SSR 659 659 fprintf(stderr, "t%02d int %d wl %d disc %d b %8.4f ", … … 688 688 case CLOCKORBIT_SATSBAS: 689 689 case CLOCKORBIT_SATBDS: 690 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])690 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 691 691 break; 692 692 case CLOCKORBIT_SATGLONASS: 693 G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])693 D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 694 694 break; 695 695 } 696 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)697 G_MULTIPLE_MESSAGE_INDICATOR(mmi)698 G_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)699 G_SSR_IOD(co->SSRIOD)700 G_SSR_PROVIDER_ID(co->SSRProviderID)701 G_SSR_SOLUTION_ID(co->SSRSolutionID)702 G_NO_OF_SATELLITES(nums)696 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 697 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 698 D_SATELLITE_REFERENCE_DATUM(co->SatRefDatum) 699 D_SSR_IOD(co->SSRIOD) 700 D_SSR_PROVIDER_ID(co->SSRProviderID) 701 D_SSR_SOLUTION_ID(co->SSRSolutionID) 702 D_NO_OF_SATELLITES(nums) 703 703 co->Supplied[COBOFS_ORBIT] |= 1; 704 704 #ifdef BNC_DEBUG_SSR … … 713 713 case CLOCKORBIT_SATSBAS: 714 714 case CLOCKORBIT_SATBDS: 715 G_GPS_SATELLITE_ID(id)715 D_GPS_SATELLITE_ID(id) 716 716 break; 717 717 case CLOCKORBIT_SATQZSS: 718 G_QZSS_SATELLITE_ID(id)718 D_QZSS_SATELLITE_ID_OLD(id) 719 719 break; 720 720 case CLOCKORBIT_SATGLONASS: 721 G_GLONASS_SATELLITE_ID(id)721 D_GLONASS_SATELLITE_ID_OLD(id) 722 722 break; 723 723 } … … 735 735 case CLOCKORBIT_SATGPS: 736 736 case CLOCKORBIT_SATQZSS: 737 G_GPS_IODE(co->Sat[pos].IOD)737 D_GPS_IODE(co->Sat[pos].IOD) 738 738 break; 739 739 case CLOCKORBIT_SATGLONASS: 740 G_GPS_IODE(co->Sat[pos].IOD)740 D_GPS_IODE(co->Sat[pos].IOD) 741 741 break; 742 742 case CLOCKORBIT_SATGALILEO: 743 G_GALILEO_IOD(co->Sat[pos].IOD)743 D_GALILEO_IOD(co->Sat[pos].IOD) 744 744 break; 745 745 case CLOCKORBIT_SATSBAS: 746 G_SBAS_T0MOD(co->Sat[pos].toe)747 G_SBAS_IODCRC(co->Sat[pos].IOD)746 D_SBAS_T0MOD(co->Sat[pos].toe) 747 D_SBAS_IODCRC(co->Sat[pos].IOD) 748 748 break; 749 749 case CLOCKORBIT_SATBDS: 750 G_BDS_TOEMOD(co->Sat[pos].toe)751 G_GPS_IODE(co->Sat[pos].IOD)750 D_BDS_TOEMOD(co->Sat[pos].toe) 751 D_GPS_IODE(co->Sat[pos].IOD) 752 752 break; 753 753 } 754 G_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)755 G_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)756 G_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)757 G_DELTA_DOT_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)758 G_DELTA_DOT_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)759 G_DELTA_DOT_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)754 D_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial) 755 D_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack) 756 D_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack) 757 D_DOT_DELTA_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial) 758 D_DOT_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack) 759 D_DOT_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack) 760 760 #ifdef BNC_DEBUG_SSR 761 761 fprintf(stderr, "id %2d iod %3d dr %8.4f da %8.4f dc %8.4f dr %8.3f da %8.3f dc %8.3f\n", … … 778 778 case CLOCKORBIT_SATSBAS: 779 779 case CLOCKORBIT_SATBDS: 780 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])780 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 781 781 break; 782 782 case CLOCKORBIT_SATGLONASS: 783 G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])783 D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 784 784 break; 785 785 } 786 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)787 G_MULTIPLE_MESSAGE_INDICATOR(mmi)788 G_SSR_IOD(co->SSRIOD)789 G_SSR_PROVIDER_ID(co->SSRProviderID)790 G_SSR_SOLUTION_ID(co->SSRSolutionID)791 G_NO_OF_SATELLITES(nums)786 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 787 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 788 D_SSR_IOD(co->SSRIOD) 789 D_SSR_PROVIDER_ID(co->SSRProviderID) 790 D_SSR_SOLUTION_ID(co->SSRSolutionID) 791 D_NO_OF_SATELLITES(nums) 792 792 co->Supplied[COBOFS_CLOCK] |= 1; 793 793 #ifdef BNC_DEBUG_SSR … … 802 802 case CLOCKORBIT_SATSBAS: 803 803 case CLOCKORBIT_SATBDS: 804 G_GPS_SATELLITE_ID(id)804 D_GPS_SATELLITE_ID(id) 805 805 break; 806 806 case CLOCKORBIT_SATQZSS: 807 G_QZSS_SATELLITE_ID(id)807 D_QZSS_SATELLITE_ID_OLD(id) 808 808 break; 809 809 case CLOCKORBIT_SATGLONASS: 810 G_GLONASS_SATELLITE_ID(id)810 D_GLONASS_SATELLITE_ID_OLD(id) 811 811 break; 812 812 } … … 821 821 co->Sat[pos].ID = id; 822 822 823 G_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)824 G_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)825 G_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)823 D_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0) 824 D_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1) 825 D_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2) 826 826 #ifdef BNC_DEBUG_SSR 827 827 fprintf(stderr, "id %2d c0 %8.3f c1 %8.3f c2 %8.3f\n", … … 841 841 case CLOCKORBIT_SATSBAS: 842 842 case CLOCKORBIT_SATBDS: 843 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])843 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 844 844 break; 845 845 case CLOCKORBIT_SATGLONASS: 846 G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])846 D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 847 847 break; 848 848 } 849 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)850 G_MULTIPLE_MESSAGE_INDICATOR(mmi)851 G_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)852 G_SSR_IOD(co->SSRIOD)853 G_SSR_PROVIDER_ID(co->SSRProviderID)854 G_SSR_SOLUTION_ID(co->SSRSolutionID)855 G_NO_OF_SATELLITES(nums)849 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 850 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 851 D_SATELLITE_REFERENCE_DATUM(co->SatRefDatum) 852 D_SSR_IOD(co->SSRIOD) 853 D_SSR_PROVIDER_ID(co->SSRProviderID) 854 D_SSR_SOLUTION_ID(co->SSRSolutionID) 855 D_NO_OF_SATELLITES(nums) 856 856 co->Supplied[COBOFS_ORBIT] |= 1; 857 857 co->Supplied[COBOFS_CLOCK] |= 1; … … 867 867 case CLOCKORBIT_SATSBAS: 868 868 case CLOCKORBIT_SATBDS: 869 G_GPS_SATELLITE_ID(id)869 D_GPS_SATELLITE_ID(id) 870 870 break; 871 871 case CLOCKORBIT_SATQZSS: 872 G_QZSS_SATELLITE_ID(id)872 D_QZSS_SATELLITE_ID_OLD(id) 873 873 break; 874 874 case CLOCKORBIT_SATGLONASS: 875 G_GLONASS_SATELLITE_ID(id)875 D_GLONASS_SATELLITE_ID_OLD(id) 876 876 break; 877 877 } … … 889 889 case CLOCKORBIT_SATGPS: 890 890 case CLOCKORBIT_SATQZSS: 891 G_GPS_IODE(co->Sat[pos].IOD)891 D_GPS_IODE(co->Sat[pos].IOD) 892 892 break; 893 893 case CLOCKORBIT_SATGLONASS: 894 G_GPS_IODE(co->Sat[pos].IOD)894 D_GPS_IODE(co->Sat[pos].IOD) 895 895 break; 896 896 case CLOCKORBIT_SATGALILEO: 897 G_GALILEO_IOD(co->Sat[pos].IOD)897 D_GALILEO_IOD(co->Sat[pos].IOD) 898 898 break; 899 899 case CLOCKORBIT_SATSBAS: 900 G_SBAS_T0MOD(co->Sat[pos].toe)901 G_SBAS_IODCRC(co->Sat[pos].IOD)900 D_SBAS_T0MOD(co->Sat[pos].toe) 901 D_SBAS_IODCRC(co->Sat[pos].IOD) 902 902 break; 903 903 case CLOCKORBIT_SATBDS: 904 G_BDS_TOEMOD(co->Sat[pos].toe)905 G_GPS_IODE(co->Sat[pos].IOD)904 D_BDS_TOEMOD(co->Sat[pos].toe) 905 D_GPS_IODE(co->Sat[pos].IOD) 906 906 break; 907 907 } 908 G_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)909 G_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)910 G_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)911 G_DELTA_DOT_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)912 G_DELTA_DOT_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)913 G_DELTA_DOT_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)914 G_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)915 G_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)916 G_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)908 D_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial) 909 D_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack) 910 D_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack) 911 D_DOT_DELTA_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial) 912 D_DOT_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack) 913 D_DOT_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack) 914 D_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0) 915 D_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1) 916 D_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2) 917 917 #ifdef BNC_DEBUG_SSR 918 918 fprintf(stderr, "id %2d iod %3d dr %10.6f da %10.6f dc %10.6f dr %10.6f da %10.6f dc %10.6f c0 %10.6f c1 %10.6f c2 %10.6f\n", … … 935 935 case CLOCKORBIT_SATSBAS: 936 936 case CLOCKORBIT_SATBDS: 937 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])937 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 938 938 break; 939 939 case CLOCKORBIT_SATGLONASS: 940 G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])940 D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 941 941 break; 942 942 } 943 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)944 G_MULTIPLE_MESSAGE_INDICATOR(mmi)945 G_SSR_IOD(co->SSRIOD)946 G_SSR_PROVIDER_ID(co->SSRProviderID)947 G_SSR_SOLUTION_ID(co->SSRSolutionID)948 G_NO_OF_SATELLITES(nums)943 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 944 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 945 D_SSR_IOD(co->SSRIOD) 946 D_SSR_PROVIDER_ID(co->SSRProviderID) 947 D_SSR_SOLUTION_ID(co->SSRSolutionID) 948 D_NO_OF_SATELLITES(nums) 949 949 co->Supplied[COBOFS_URA] |= 1; 950 950 #ifdef BNC_DEBUG_SSR … … 959 959 case CLOCKORBIT_SATSBAS: 960 960 case CLOCKORBIT_SATBDS: 961 G_GPS_SATELLITE_ID(id)961 D_GPS_SATELLITE_ID(id) 962 962 break; 963 963 case CLOCKORBIT_SATQZSS: 964 G_QZSS_SATELLITE_ID(id)964 D_QZSS_SATELLITE_ID_OLD(id) 965 965 break; 966 966 case CLOCKORBIT_SATGLONASS: 967 G_GLONASS_SATELLITE_ID(id)967 D_GLONASS_SATELLITE_ID_OLD(id) 968 968 break; 969 969 } … … 977 977 ++co->NumberOfSat[s]; 978 978 co->Sat[pos].ID = id; 979 G_SSR_URA(co->Sat[pos].UserRangeAccuracy)979 D_SSR_URA(co->Sat[pos].UserRangeAccuracy) 980 980 #ifdef BNC_DEBUG_SSR 981 981 fprintf(stderr, "id %2d ura %8.3f \n", … … 994 994 case CLOCKORBIT_SATSBAS: 995 995 case CLOCKORBIT_SATBDS: 996 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])996 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 997 997 break; 998 998 case CLOCKORBIT_SATGLONASS: 999 G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])999 D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 1000 1000 break; 1001 1001 } 1002 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)1003 G_MULTIPLE_MESSAGE_INDICATOR(mmi)1004 G_SSR_IOD(co->SSRIOD)1005 G_SSR_PROVIDER_ID(co->SSRProviderID)1006 G_SSR_SOLUTION_ID(co->SSRSolutionID)1007 G_NO_OF_SATELLITES(nums)1002 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 1003 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 1004 D_SSR_IOD(co->SSRIOD) 1005 D_SSR_PROVIDER_ID(co->SSRProviderID) 1006 D_SSR_SOLUTION_ID(co->SSRSolutionID) 1007 D_NO_OF_SATELLITES(nums) 1008 1008 co->Supplied[COBOFS_HR] |= 1; 1009 1009 #ifdef BNC_DEBUG_SSR … … 1018 1018 case CLOCKORBIT_SATSBAS: 1019 1019 case CLOCKORBIT_SATBDS: 1020 G_GPS_SATELLITE_ID(id)1020 D_GPS_SATELLITE_ID(id) 1021 1021 break; 1022 1022 case CLOCKORBIT_SATQZSS: 1023 G_QZSS_SATELLITE_ID(id)1023 D_QZSS_SATELLITE_ID_OLD(id) 1024 1024 break; 1025 1025 case CLOCKORBIT_SATGLONASS: 1026 G_GLONASS_SATELLITE_ID(id)1026 D_GLONASS_SATELLITE_ID_OLD(id) 1027 1027 break; 1028 1028 } … … 1036 1036 ++co->NumberOfSat[s]; 1037 1037 co->Sat[pos].ID = id; 1038 G_HR_CLOCK_CORRECTION(co->Sat[pos].hrclock)1038 D_HR_CLOCK_CORRECTION(co->Sat[pos].hrclock) 1039 1039 #ifdef BNC_DEBUG_SSR 1040 1040 fprintf(stderr, "id %2d hrClock %8.3f \n", … … 1053 1053 case CLOCKORBIT_SATSBAS: 1054 1054 case CLOCKORBIT_SATBDS: 1055 G_GPS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])1055 D_GPS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s]) 1056 1056 break; 1057 1057 case CLOCKORBIT_SATGLONASS: 1058 G_GLONASS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])1058 D_GLONASS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s]) 1059 1059 break; 1060 1060 } 1061 G_SSR_UPDATE_INTERVAL(b->UpdateInterval)1062 G_MULTIPLE_MESSAGE_INDICATOR(mmi)1063 G_SSR_IOD(b->SSRIOD)1064 G_SSR_PROVIDER_ID(b->SSRProviderID)1065 G_SSR_SOLUTION_ID(b->SSRSolutionID)1066 G_NO_OF_SATELLITES(nums)1061 D_SSR_UPDATE_INTERVAL(b->UpdateInterval) 1062 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 1063 D_SSR_IOD(b->SSRIOD) 1064 D_SSR_PROVIDER_ID(b->SSRProviderID) 1065 D_SSR_SOLUTION_ID(b->SSRSolutionID) 1066 D_NO_OF_SATELLITES(nums) 1067 1067 #ifdef BNC_DEBUG_SSR 1068 1068 fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d\n", … … 1076 1076 case CLOCKORBIT_SATSBAS: 1077 1077 case CLOCKORBIT_SATBDS: 1078 G_GPS_SATELLITE_ID(id)1078 D_GPS_SATELLITE_ID(id) 1079 1079 break; 1080 1080 case CLOCKORBIT_SATQZSS: 1081 G_QZSS_SATELLITE_ID(id)1081 D_QZSS_SATELLITE_ID_OLD(id) 1082 1082 break; 1083 1083 case CLOCKORBIT_SATGLONASS: 1084 G_GLONASS_SATELLITE_ID(id)1084 D_GLONASS_SATELLITE_ID_OLD(id) 1085 1085 break; 1086 1086 } … … 1094 1094 ++b->NumberOfSat[s]; 1095 1095 b->Sat[pos].ID = id; 1096 G_NO_OF_BIASES(b->Sat[pos].NumberOfCodeBiases)1096 D_NO_OF_BIASES(b->Sat[pos].NumberOfCodeBiases) 1097 1097 #ifdef BNC_DEBUG_SSR 1098 1098 fprintf(stderr, "id %2d #%d ", … … 1100 1100 #endif 1101 1101 for (j = 0; j < b->Sat[pos].NumberOfCodeBiases; ++j) { 1102 G_GNSS_SIGNAL_IDENTIFIER(b->Sat[pos].Biases[j].Type)1103 G_CODE_BIAS(b->Sat[pos].Biases[j].Bias)1102 D_GNSS_SIGNAL_IDENTIFIER(b->Sat[pos].Biases[j].Type) 1103 D_CODE_BIAS(b->Sat[pos].Biases[j].Bias) 1104 1104 #ifdef BNC_DEBUG_SSR 1105 1105 fprintf(stderr, "t%02d b %8.2f ", -
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.cpp
r10987 r10990 68 68 if (status[s][COBOFS_ORBIT]) { 69 69 INITBLOCK 70 T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_ORBIT)70 E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_ORBIT) 71 71 switch (s) { 72 72 case CLOCKORBIT_SATGPS: … … 75 75 case CLOCKORBIT_SATSBAS: 76 76 case CLOCKORBIT_SATBDS: 77 T_GPS_EPOCH_TIME(co->EpochTime[s])77 E_GPS_EPOCH_TIME(co->EpochTime[s]) 78 78 break; 79 79 case CLOCKORBIT_SATGLONASS: 80 T_GLONASS_EPOCH_TIME(co->EpochTime[s])81 break; 82 } 83 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)84 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)85 T_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)86 T_SSR_IOD(co->SSRIOD)87 T_SSR_PROVIDER_ID(co->SSRProviderID)88 T_SSR_SOLUTION_ID(co->SSRSolutionID)89 T_NO_OF_SATELLITES(co->NumberOfSat[s])80 E_GLONASS_EPOCH_TIME(co->EpochTime[s]) 81 break; 82 } 83 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 84 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 85 E_SATELLITE_REFERENCE_DATUM(co->SatRefDatum) 86 E_SSR_IOD(co->SSRIOD) 87 E_SSR_PROVIDER_ID(co->SSRProviderID) 88 E_SSR_SOLUTION_ID(co->SSRSolutionID) 89 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 90 90 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) { 91 91 switch (s) { 92 92 case CLOCKORBIT_SATGPS: 93 T_GPS_SATELLITE_ID(co->Sat[i].ID)94 T_GPS_IODE(co->Sat[i].IOD)93 E_GPS_SATELLITE_ID(co->Sat[i].ID) 94 E_GPS_IODE(co->Sat[i].IOD) 95 95 break; 96 96 case CLOCKORBIT_SATGLONASS: 97 T_GLONASS_SATELLITE_ID(co->Sat[i].ID)98 T_GLONASS_IOD(co->Sat[i].IOD)97 E_GLONASS_SATELLITE_ID(co->Sat[i].ID) 98 E_GLONASS_IOD(co->Sat[i].IOD) 99 99 break; 100 100 case CLOCKORBIT_SATGALILEO: 101 T_GPS_SATELLITE_ID(co->Sat[i].ID)102 T_GALILEO_IOD(co->Sat[i].IOD)101 E_GPS_SATELLITE_ID(co->Sat[i].ID) 102 E_GALILEO_IOD(co->Sat[i].IOD) 103 103 break; 104 104 case CLOCKORBIT_SATQZSS: 105 T_QZSS_SATELLITE_ID(co->Sat[i].ID)106 T_GPS_IODE(co->Sat[i].IOD)105 E_QZSS_SATELLITE_ID(co->Sat[i].ID) 106 E_GPS_IODE(co->Sat[i].IOD) 107 107 break; 108 108 case CLOCKORBIT_SATSBAS: 109 T_GPS_SATELLITE_ID(co->Sat[i].ID)110 T_SBAS_T0MOD(co->Sat[i].toe)111 T_SBAS_IODCRC(co->Sat[i].IOD)109 E_GPS_SATELLITE_ID(co->Sat[i].ID) 110 E_SBAS_T0MOD(co->Sat[i].toe) 111 E_SBAS_IODCRC(co->Sat[i].IOD) 112 112 break; 113 113 case CLOCKORBIT_SATBDS: 114 T_GPS_SATELLITE_ID(co->Sat[i].ID)115 T_BDS_TOEMOD(co->Sat[i].toe)116 T_BDS_IOD(co->Sat[i].IOD)114 E_GPS_SATELLITE_ID(co->Sat[i].ID) 115 E_BDS_TOEMOD(co->Sat[i].toe) 116 E_BDS_IOD(co->Sat[i].IOD) 117 117 break; 118 118 } 119 T_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)120 T_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)121 T_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)122 T_DELTA _DOT_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)123 T_DELTA _DOT_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)124 T_DELTA _DOT_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)119 E_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial) 120 E_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack) 121 E_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack) 122 E_DOT_DELTA_RADIAL(co->Sat[i].Orbit.DotDeltaRadial) 123 E_DOT_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack) 124 E_DOT_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack) 125 125 } 126 126 ENDBLOCK … … 128 128 if (status[s][COBOFS_CLOCK]) { 129 129 INITBLOCK 130 T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CLOCK)130 E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CLOCK) 131 131 switch (s) { 132 132 case CLOCKORBIT_SATGPS: … … 135 135 case CLOCKORBIT_SATSBAS: 136 136 case CLOCKORBIT_SATBDS: 137 T_GPS_EPOCH_TIME(co->EpochTime[s])137 E_GPS_EPOCH_TIME(co->EpochTime[s]) 138 138 break; 139 139 case CLOCKORBIT_SATGLONASS: 140 T_GLONASS_EPOCH_TIME(co->EpochTime[s])141 break; 142 } 143 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)144 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)145 T_SSR_IOD(co->SSRIOD)146 T_SSR_PROVIDER_ID(co->SSRProviderID)147 T_SSR_SOLUTION_ID(co->SSRSolutionID)148 T_NO_OF_SATELLITES(co->NumberOfSat[s])140 E_GLONASS_EPOCH_TIME(co->EpochTime[s]) 141 break; 142 } 143 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 144 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 145 E_SSR_IOD(co->SSRIOD) 146 E_SSR_PROVIDER_ID(co->SSRProviderID) 147 E_SSR_SOLUTION_ID(co->SSRSolutionID) 148 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 149 149 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) { 150 150 switch (s) { … … 153 153 case CLOCKORBIT_SATSBAS: 154 154 case CLOCKORBIT_SATBDS: 155 T_GPS_SATELLITE_ID(co->Sat[i].ID)155 E_GPS_SATELLITE_ID(co->Sat[i].ID) 156 156 break; 157 157 case CLOCKORBIT_SATQZSS: 158 T_QZSS_SATELLITE_ID(co->Sat[i].ID)158 E_QZSS_SATELLITE_ID(co->Sat[i].ID) 159 159 break; 160 160 case CLOCKORBIT_SATGLONASS: 161 T_GLONASS_SATELLITE_ID(co->Sat[i].ID)161 E_GLONASS_SATELLITE_ID(co->Sat[i].ID) 162 162 break; 163 163 } 164 T_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)165 T_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)166 T_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)164 E_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0) 165 E_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1) 166 E_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2) 167 167 } 168 168 ENDBLOCK … … 170 170 if (status[s][COBOFS_COMBINED]) { 171 171 #ifdef SPLITBLOCK 172 int nums = co->NumberOfSat[s]; 173 int left, start = satoffset[s]; 172 unsigned int nums = co->NumberOfSat[s]; 173 unsigned int left, start = satoffset[s]; 174 174 if(nums > 28) {/* split block when more than 28 sats */ 175 175 left = nums - 28; … … 182 182 #endif 183 183 INITBLOCK 184 T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_COMBINED)184 E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_COMBINED) 185 185 switch (s) { 186 186 case CLOCKORBIT_SATGPS: … … 189 189 case CLOCKORBIT_SATSBAS: 190 190 case CLOCKORBIT_SATBDS: 191 T_GPS_EPOCH_TIME(co->EpochTime[s])191 E_GPS_EPOCH_TIME(co->EpochTime[s]) 192 192 break; 193 193 case CLOCKORBIT_SATGLONASS: 194 T_GLONASS_EPOCH_TIME(co->EpochTime[s])195 break; 196 } 197 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)194 E_GLONASS_EPOCH_TIME(co->EpochTime[s]) 195 break; 196 } 197 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 198 198 #ifdef SPLITBLOCK 199 T_MULTIPLE_MESSAGE_INDICATOR((moremessagesfollow || left) ? 1 : 0)199 E_MULTIPLE_MESSAGE_INDICATOR((moremessagesfollow || left) ? 1 : 0) 200 200 #else 201 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)202 #endif 203 T_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)204 T_SSR_IOD(co->SSRIOD)205 T_SSR_PROVIDER_ID(co->SSRProviderID)206 T_SSR_SOLUTION_ID(co->SSRSolutionID)201 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 202 #endif 203 E_SATELLITE_REFERENCE_DATUM(co->SatRefDatum) 204 E_SSR_IOD(co->SSRIOD) 205 E_SSR_PROVIDER_ID(co->SSRProviderID) 206 E_SSR_SOLUTION_ID(co->SSRSolutionID) 207 207 #ifdef SPLITBLOCK 208 T_NO_OF_SATELLITES(nums)208 E_NO_OF_SATELLITES(nums) 209 209 for(i = start; i < start+nums; ++i) 210 210 #else 211 T_NO_OF_SATELLITES(co->NumberOfSat[s])211 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 212 212 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) 213 213 #endif … … 215 215 switch (s) { 216 216 case CLOCKORBIT_SATGPS: 217 T_GPS_SATELLITE_ID(co->Sat[i].ID)218 T_GPS_IODE(co->Sat[i].IOD)217 E_GPS_SATELLITE_ID(co->Sat[i].ID) 218 E_GPS_IODE(co->Sat[i].IOD) 219 219 break; 220 220 case CLOCKORBIT_SATGLONASS: 221 T_GLONASS_SATELLITE_ID(co->Sat[i].ID)222 T_GLONASS_IOD(co->Sat[i].IOD)221 E_GLONASS_SATELLITE_ID(co->Sat[i].ID) 222 E_GLONASS_IOD(co->Sat[i].IOD) 223 223 break; 224 224 case CLOCKORBIT_SATGALILEO: 225 T_GPS_SATELLITE_ID(co->Sat[i].ID)226 T_GALILEO_IOD(co->Sat[i].IOD)225 E_GPS_SATELLITE_ID(co->Sat[i].ID) 226 E_GALILEO_IOD(co->Sat[i].IOD) 227 227 break; 228 228 case CLOCKORBIT_SATQZSS: 229 T_QZSS_SATELLITE_ID(co->Sat[i].ID)230 T_GPS_IODE(co->Sat[i].IOD)229 E_QZSS_SATELLITE_ID(co->Sat[i].ID) 230 E_GPS_IODE(co->Sat[i].IOD) 231 231 break; 232 232 case CLOCKORBIT_SATSBAS: 233 T_GPS_SATELLITE_ID(co->Sat[i].ID)234 T_SBAS_T0MOD(co->Sat[i].toe)235 T_SBAS_IODCRC(co->Sat[i].IOD)233 E_GPS_SATELLITE_ID(co->Sat[i].ID) 234 E_SBAS_T0MOD(co->Sat[i].toe) 235 E_SBAS_IODCRC(co->Sat[i].IOD) 236 236 break; 237 237 case CLOCKORBIT_SATBDS: 238 T_GPS_SATELLITE_ID(co->Sat[i].ID)239 T_BDS_TOEMOD(co->Sat[i].toe)240 T_BDS_IOD(co->Sat[i].IOD)238 E_GPS_SATELLITE_ID(co->Sat[i].ID) 239 E_BDS_TOEMOD(co->Sat[i].toe) 240 E_BDS_IOD(co->Sat[i].IOD) 241 241 break; 242 242 } 243 T_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial)244 T_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack)245 T_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack)246 T_DELTA _DOT_RADIAL(co->Sat[i].Orbit.DotDeltaRadial)247 T_DELTA _DOT_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack)248 T_DELTA _DOT_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack)249 T_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0)250 T_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1)251 T_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2)243 E_DELTA_RADIAL(co->Sat[i].Orbit.DeltaRadial) 244 E_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DeltaAlongTrack) 245 E_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DeltaCrossTrack) 246 E_DOT_DELTA_RADIAL(co->Sat[i].Orbit.DotDeltaRadial) 247 E_DOT_DELTA_ALONG_TRACK(co->Sat[i].Orbit.DotDeltaAlongTrack) 248 E_DOT_DELTA_CROSS_TRACK(co->Sat[i].Orbit.DotDeltaCrossTrack) 249 E_DELTA_CLOCK_C0(co->Sat[i].Clock.DeltaA0) 250 E_DELTA_CLOCK_C1(co->Sat[i].Clock.DeltaA1) 251 E_DELTA_CLOCK_C2(co->Sat[i].Clock.DeltaA2) 252 252 } 253 253 ENDBLOCK … … 261 261 if (status[s][COBOFS_HR]) { 262 262 INITBLOCK 263 T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_HR)263 E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_HR) 264 264 switch (s) { 265 265 case CLOCKORBIT_SATGPS: … … 268 268 case CLOCKORBIT_SATSBAS: 269 269 case CLOCKORBIT_SATBDS: 270 T_GPS_EPOCH_TIME(co->EpochTime[s])270 E_GPS_EPOCH_TIME(co->EpochTime[s]) 271 271 break; 272 272 case CLOCKORBIT_SATGLONASS: 273 T_GLONASS_EPOCH_TIME(co->EpochTime[s])274 break; 275 } 276 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)277 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)278 T_SSR_IOD(co->SSRIOD)279 T_SSR_PROVIDER_ID(co->SSRProviderID)280 T_SSR_SOLUTION_ID(co->SSRSolutionID)281 T_NO_OF_SATELLITES(co->NumberOfSat[s])273 E_GLONASS_EPOCH_TIME(co->EpochTime[s]) 274 break; 275 } 276 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 277 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 278 E_SSR_IOD(co->SSRIOD) 279 E_SSR_PROVIDER_ID(co->SSRProviderID) 280 E_SSR_SOLUTION_ID(co->SSRSolutionID) 281 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 282 282 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) { 283 283 switch (s) { … … 286 286 case CLOCKORBIT_SATSBAS: 287 287 case CLOCKORBIT_SATBDS: 288 T_GPS_SATELLITE_ID(co->Sat[i].ID)288 E_GPS_SATELLITE_ID(co->Sat[i].ID) 289 289 break; 290 290 case CLOCKORBIT_SATQZSS: 291 T_QZSS_SATELLITE_ID(co->Sat[i].ID)291 E_QZSS_SATELLITE_ID(co->Sat[i].ID) 292 292 break; 293 293 case CLOCKORBIT_SATGLONASS: 294 T_GLONASS_SATELLITE_ID(co->Sat[i].ID)294 E_GLONASS_SATELLITE_ID(co->Sat[i].ID) 295 295 break; 296 296 } 297 T_HR_CLOCK_CORRECTION(co->Sat[i].hrclock)297 E_HR_CLOCK_CORRECTION(co->Sat[i].hrclock) 298 298 } 299 299 ENDBLOCK … … 301 301 if (status[s][COBOFS_URA]) { 302 302 INITBLOCK 303 T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_URA)303 E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_URA) 304 304 switch (s) { 305 305 case CLOCKORBIT_SATGPS: … … 308 308 case CLOCKORBIT_SATSBAS: 309 309 case CLOCKORBIT_SATBDS: 310 T_GPS_EPOCH_TIME(co->EpochTime[s])310 E_GPS_EPOCH_TIME(co->EpochTime[s]) 311 311 break; 312 312 case CLOCKORBIT_SATGLONASS: 313 T_GLONASS_EPOCH_TIME(co->EpochTime[s])314 break; 315 } 316 T_SSR_UPDATE_INTERVAL(co->UpdateInterval)317 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)318 T_SSR_IOD(co->SSRIOD)319 T_SSR_PROVIDER_ID(co->SSRProviderID)320 T_SSR_SOLUTION_ID(co->SSRSolutionID)321 T_NO_OF_SATELLITES(co->NumberOfSat[s])313 E_GLONASS_EPOCH_TIME(co->EpochTime[s]) 314 break; 315 } 316 E_SSR_UPDATE_INTERVAL(co->UpdateInterval) 317 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 318 E_SSR_IOD(co->SSRIOD) 319 E_SSR_PROVIDER_ID(co->SSRProviderID) 320 E_SSR_SOLUTION_ID(co->SSRSolutionID) 321 E_NO_OF_SATELLITES(co->NumberOfSat[s]) 322 322 for (i = satoffset[s]; i < satoffset[s] + co->NumberOfSat[s]; ++i) { 323 323 switch (s) { … … 326 326 case CLOCKORBIT_SATSBAS: 327 327 case CLOCKORBIT_SATBDS: 328 T_GPS_SATELLITE_ID(co->Sat[i].ID)328 E_GPS_SATELLITE_ID(co->Sat[i].ID) 329 329 break; 330 330 case CLOCKORBIT_SATQZSS: 331 T_QZSS_SATELLITE_ID(co->Sat[i].ID)331 E_QZSS_SATELLITE_ID(co->Sat[i].ID) 332 332 break; 333 333 case CLOCKORBIT_SATGLONASS: 334 T_GLONASS_SATELLITE_ID(co->Sat[i].ID)334 E_GLONASS_SATELLITE_ID(co->Sat[i].ID) 335 335 break; 336 336 } 337 T_SSR_URA(ValueToURA(co->Sat[i].UserRangeAccuracy))337 E_SSR_URA(ValueToURA(co->Sat[i].UserRangeAccuracy)) 338 338 } 339 339 ENDBLOCK … … 352 352 if (b->NumberOfSat[s] && (type == CBTYPE_AUTO || type == corbase[s] + COBOFS_CBIAS)) { 353 353 INITBLOCK 354 T_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CBIAS)354 E_RTCM_MESSAGE_NUMBER(corbase[s] + COBOFS_CBIAS) 355 355 switch (s) { 356 356 case CLOCKORBIT_SATGPS: … … 359 359 case CLOCKORBIT_SATSBAS: 360 360 case CLOCKORBIT_SATBDS: 361 T_GPS_EPOCH_TIME(b->EpochTime[s])361 E_GPS_EPOCH_TIME(b->EpochTime[s]) 362 362 break; 363 363 case CLOCKORBIT_SATGLONASS: 364 T_GLONASS_EPOCH_TIME(b->EpochTime[s])365 break; 366 } 367 T_SSR_UPDATE_INTERVAL(b->UpdateInterval)368 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)369 T_SSR_IOD(b->SSRIOD)370 T_SSR_PROVIDER_ID(b->SSRProviderID)371 T_SSR_SOLUTION_ID(b->SSRSolutionID)372 T_NO_OF_SATELLITES(b->NumberOfSat[s])364 E_GLONASS_EPOCH_TIME(b->EpochTime[s]) 365 break; 366 } 367 E_SSR_UPDATE_INTERVAL(b->UpdateInterval) 368 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 369 E_SSR_IOD(b->SSRIOD) 370 E_SSR_PROVIDER_ID(b->SSRProviderID) 371 E_SSR_SOLUTION_ID(b->SSRSolutionID) 372 E_NO_OF_SATELLITES(b->NumberOfSat[s]) 373 373 for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) { 374 374 switch (s) { … … 377 377 case CLOCKORBIT_SATSBAS: 378 378 case CLOCKORBIT_SATBDS: 379 T_GPS_SATELLITE_ID(b->Sat[i].ID)379 E_GPS_SATELLITE_ID(b->Sat[i].ID) 380 380 break; 381 381 case CLOCKORBIT_SATQZSS: 382 T_QZSS_SATELLITE_ID(b->Sat[i].ID)382 E_QZSS_SATELLITE_ID(b->Sat[i].ID) 383 383 break; 384 384 case CLOCKORBIT_SATGLONASS: 385 T_GLONASS_SATELLITE_ID(b->Sat[i].ID)385 E_GLONASS_SATELLITE_ID(b->Sat[i].ID) 386 386 break; 387 387 } 388 T_NO_OF_BIASES(b->Sat[i].NumberOfCodeBiases)388 E_NO_OF_BIASES(b->Sat[i].NumberOfCodeBiases) 389 389 for (j = 0; j < b->Sat[i].NumberOfCodeBiases; ++j) { 390 T_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)391 T_CODE_BIAS(b->Sat[i].Biases[j].Bias)390 E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type) 391 E_CODE_BIAS(b->Sat[i].Biases[j].Bias) 392 392 } 393 393 } … … 407 407 if (b->NumberOfSat[s] && (type == PBTYPE_AUTO || type == s + PBTYPE_BASE)) { 408 408 INITBLOCK 409 T_RTCM_MESSAGE_NUMBER(s + PBTYPE_BASE)409 E_RTCM_MESSAGE_NUMBER(s + PBTYPE_BASE) 410 410 switch (s) { 411 411 case CLOCKORBIT_SATGPS: … … 414 414 case CLOCKORBIT_SATSBAS: 415 415 case CLOCKORBIT_SATBDS: 416 T_GPS_EPOCH_TIME(b->EpochTime[s])416 E_GPS_EPOCH_TIME(b->EpochTime[s]) 417 417 break; 418 418 case CLOCKORBIT_SATGLONASS: 419 T_GLONASS_EPOCH_TIME(b->EpochTime[s])420 break; 421 } 422 T_SSR_UPDATE_INTERVAL(b->UpdateInterval)423 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)424 T_SSR_IOD(b->SSRIOD)425 T_SSR_PROVIDER_ID(b->SSRProviderID)426 T_SSR_SOLUTION_ID(b->SSRSolutionID)427 T_DISPERSIVE_BIAS_INDICATOR(b->DispersiveBiasConsistencyIndicator ? 1 : 0)428 T_MW_CONSISTENCY_INDICATOR(b->MWConsistencyIndicator ? 1 : 0)429 T_NO_OF_SATELLITES(b->NumberOfSat[s])419 E_GLONASS_EPOCH_TIME(b->EpochTime[s]) 420 break; 421 } 422 E_SSR_UPDATE_INTERVAL(b->UpdateInterval) 423 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 424 E_SSR_IOD(b->SSRIOD) 425 E_SSR_PROVIDER_ID(b->SSRProviderID) 426 E_SSR_SOLUTION_ID(b->SSRSolutionID) 427 E_DISPERSIVE_BIAS_INDICATOR(b->DispersiveBiasConsistencyIndicator ? 1 : 0) 428 E_MW_CONSISTENCY_INDICATOR(b->MWConsistencyIndicator ? 1 : 0) 429 E_NO_OF_SATELLITES(b->NumberOfSat[s]) 430 430 for (i = satoffset[s]; i < satoffset[s] + b->NumberOfSat[s]; ++i) { 431 431 switch (s) { … … 434 434 case CLOCKORBIT_SATSBAS: 435 435 case CLOCKORBIT_SATBDS: 436 T_GPS_SATELLITE_ID(b->Sat[i].ID)436 E_GPS_SATELLITE_ID(b->Sat[i].ID) 437 437 break; 438 438 case CLOCKORBIT_SATQZSS: 439 T_QZSS_SATELLITE_ID(b->Sat[i].ID)439 E_QZSS_SATELLITE_ID(b->Sat[i].ID) 440 440 break; 441 441 case CLOCKORBIT_SATGLONASS: 442 T_GLONASS_SATELLITE_ID(b->Sat[i].ID)442 E_GLONASS_SATELLITE_ID(b->Sat[i].ID) 443 443 break; 444 444 } 445 T_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases)446 T_YAW_ANGLE(b->Sat[i].YawAngle)447 T_YAW_RATE(b->Sat[i].YawRate)445 E_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases) 446 E_YAW_ANGLE(b->Sat[i].YawAngle) 447 E_YAW_RATE(b->Sat[i].YawRate) 448 448 for (j = 0; j < b->Sat[i].NumberOfPhaseBiases; ++j) { 449 T_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type)450 T_INTEGER_INDICATOR(449 E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type) 450 E_INTEGER_INDICATOR( 451 451 b->Sat[i].Biases[j].SignalIntegerIndicator ? 1 : 0) 452 T_WIDE_LANE_INDICATOR(452 E_WIDE_LANE_INDICATOR( 453 453 b->Sat[i].Biases[j].SignalsWideLaneIntegerIndicator) 454 T_DISCONTINUITY_COUNTER(454 E_DISCONTINUITY_COUNTER( 455 455 b->Sat[i].Biases[j].SignalDiscontinuityCounter) 456 T_PHASE_BIAS(b->Sat[i].Biases[j].Bias)456 E_PHASE_BIAS_CORRECTION(b->Sat[i].Biases[j].Bias) 457 457 } 458 458 } … … 468 468 STARTDATA 469 469 INITBLOCK 470 T_RTCM_MESSAGE_NUMBER(VTEC_BASE)471 T_GPS_EPOCH_TIME(v->EpochTime)472 T_SSR_UPDATE_INTERVAL(v->UpdateInterval)473 T_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0)474 T_SSR_IOD(v->SSRIOD)475 T_SSR_PROVIDER_ID(v->SSRProviderID)476 T_SSR_SOLUTION_ID(v->SSRSolutionID)477 T_VTEC_QUALITY_INDICATOR(v->Quality)478 T_NO_IONO_LAYERS(v->NumLayers)470 E_RTCM_MESSAGE_NUMBER(VTEC_BASE) 471 E_GPS_EPOCH_TIME(v->EpochTime) 472 E_SSR_UPDATE_INTERVAL(v->UpdateInterval) 473 E_MULTIPLE_MESSAGE_INDICATOR(moremessagesfollow ? 1 : 0) 474 E_SSR_IOD(v->SSRIOD) 475 E_SSR_PROVIDER_ID(v->SSRProviderID) 476 E_SSR_SOLUTION_ID(v->SSRSolutionID) 477 E_VTEC_QUALITY_INDICATOR(v->Quality) 478 E_NO_IONO_LAYERS(v->NumLayers) 479 479 for (l = 0; l < v->NumLayers; ++l) { 480 T_IONO_HEIGHT(v->Layers[l].Height)481 T_IONO_DEGREE(v->Layers[l].Degree)482 T_IONO_ORDER(v->Layers[l].Order)480 E_IONO_HEIGHT(v->Layers[l].Height) 481 E_IONO_DEGREE(v->Layers[l].Degree) 482 E_IONO_ORDER(v->Layers[l].Order) 483 483 for (o = 0; o <= v->Layers[l].Order; ++o) { 484 484 for (d = o; d <= v->Layers[l].Degree; ++d) { 485 T_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])485 E_IONO_COEFF_C(v->Layers[l].Cosinus[d][o]) 486 486 } 487 487 } 488 488 for (o = 1; o <= v->Layers[l].Order; ++o) { 489 489 for (d = o; d <= v->Layers[l].Degree; ++d) { 490 T_IONO_COEFF_S(v->Layers[l].Sinus[d][o])490 E_IONO_COEFF_S(v->Layers[l].Sinus[d][o]) 491 491 } 492 492 } … … 511 511 #endif 512 512 513 G_HEADER(h)514 G_RESERVEDH(rs)515 G_SIZE(sizeofrtcmblock);513 D_HEADER(h) 514 D_RESERVEDH(rs) 515 D_SIZE(sizeofrtcmblock); 516 516 517 517 if ((unsigned char) h != 0xD3 || rs) … … 526 526 size = sizeofrtcmblock; /* reduce size, so overflows are detected */ 527 527 528 G_RTCM_MESSAGE_NUMBER(type)528 D_RTCM_MESSAGE_NUMBER(type) 529 529 #ifdef BNC_DEBUG_SSR 530 530 fprintf(stderr, "type %d size %d\n",type,(int)sizeofrtcmblock); … … 537 537 return GCOBR_NOVTECPARAMETER; 538 538 memset(v, 0, sizeof(*v)); 539 G_GPS_EPOCH_TIME(v->EpochTime)540 G_SSR_UPDATE_INTERVAL(v->UpdateInterval)541 G_MULTIPLE_MESSAGE_INDICATOR(mmi)542 G_SSR_IOD(v->SSRIOD)543 G_SSR_PROVIDER_ID(v->SSRProviderID)544 G_SSR_SOLUTION_ID(v->SSRSolutionID)545 G_VTEC_QUALITY_INDICATOR(v->Quality)546 G_NO_IONO_LAYERS(v->NumLayers)539 D_GPS_EPOCH_TIME(v->EpochTime) 540 D_SSR_UPDATE_INTERVAL(v->UpdateInterval) 541 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 542 D_SSR_IOD(v->SSRIOD) 543 D_SSR_PROVIDER_ID(v->SSRProviderID) 544 D_SSR_SOLUTION_ID(v->SSRSolutionID) 545 D_VTEC_QUALITY_INDICATOR(v->Quality) 546 D_NO_IONO_LAYERS(v->NumLayers) 547 547 #ifdef BNC_DEBUG_SSR 548 548 fprintf(stderr, "epochTime %d ui %d mmi %d ssrIod %d providerId %d solId %d vtecQ %8.3f numLay %d \n", … … 551 551 #endif 552 552 for (l = 0; l < v->NumLayers; ++l) { 553 G_IONO_HEIGHT(v->Layers[l].Height)554 G_IONO_DEGREE(v->Layers[l].Degree)555 G_IONO_ORDER(v->Layers[l].Order)553 D_IONO_HEIGHT(v->Layers[l].Height) 554 D_IONO_DEGREE(v->Layers[l].Degree) 555 D_IONO_ORDER(v->Layers[l].Order) 556 556 #ifdef BNC_DEBUG_SSR 557 557 fprintf(stderr, "h %8.3f deg %d ord %d \n", … … 560 560 for (o = 0; o <= v->Layers[l].Order; ++o) { 561 561 for (d = o; d <= v->Layers[l].Degree; ++d) { 562 G_IONO_COEFF_C(v->Layers[l].Cosinus[d][o])562 D_IONO_COEFF_C(v->Layers[l].Cosinus[d][o]) 563 563 #ifdef BNC_DEBUG_SSR 564 564 fprintf(stderr, "C[%02d][%02d] %8.3f \n", … … 569 569 for (o = 1; o <= v->Layers[l].Order; ++o) { 570 570 for (d = o; d <= v->Layers[l].Degree; ++d) { 571 G_IONO_COEFF_S(v->Layers[l].Sinus[d][o])571 D_IONO_COEFF_S(v->Layers[l].Sinus[d][o]) 572 572 #ifdef BNC_DEBUG_SSR 573 573 fprintf(stderr, "S[%02d][%02d] %8.3f \n", … … 595 595 case CLOCKORBIT_SATSBAS: 596 596 case CLOCKORBIT_SATBDS: 597 G_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])597 D_GPS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s]) 598 598 break; 599 599 case CLOCKORBIT_SATGLONASS: 600 G_GLONASS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s])601 break; 602 } 603 G_SSR_UPDATE_INTERVAL(pb->UpdateInterval)604 G_MULTIPLE_MESSAGE_INDICATOR(mmi)605 G_SSR_IOD(pb->SSRIOD)606 G_SSR_PROVIDER_ID(pb->SSRProviderID)607 G_SSR_SOLUTION_ID(pb->SSRSolutionID)608 G_DISPERSIVE_BIAS_INDICATOR(pb->DispersiveBiasConsistencyIndicator)609 G_MW_CONSISTENCY_INDICATOR(pb->MWConsistencyIndicator)610 G_NO_OF_SATELLITES(nums)600 D_GLONASS_EPOCH_TIME_CHECK(pb->EpochTime[s], pb->NumberOfSat[s]) 601 break; 602 } 603 D_SSR_UPDATE_INTERVAL(pb->UpdateInterval) 604 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 605 D_SSR_IOD(pb->SSRIOD) 606 D_SSR_PROVIDER_ID(pb->SSRProviderID) 607 D_SSR_SOLUTION_ID(pb->SSRSolutionID) 608 D_DISPERSIVE_BIAS_INDICATOR(pb->DispersiveBiasConsistencyIndicator) 609 D_MW_CONSISTENCY_INDICATOR(pb->MWConsistencyIndicator) 610 D_NO_OF_SATELLITES(nums) 611 611 #ifdef BNC_DEBUG_SSR 612 612 fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d dispInd %d mwInd %d\n", … … 621 621 case CLOCKORBIT_SATSBAS: 622 622 case CLOCKORBIT_SATBDS: 623 G_GPS_SATELLITE_ID(id)623 D_GPS_SATELLITE_ID(id) 624 624 break; 625 625 case CLOCKORBIT_SATQZSS: 626 G_QZSS_SATELLITE_ID(id)626 D_QZSS_SATELLITE_ID(id) 627 627 break; 628 628 case CLOCKORBIT_SATGLONASS: 629 G_GLONASS_SATELLITE_ID(id)629 D_GLONASS_SATELLITE_ID(id) 630 630 break; 631 631 } … … 639 639 ++pb->NumberOfSat[s]; 640 640 pb->Sat[pos].ID = id; 641 G_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases)642 G_YAW_ANGLE(pb->Sat[pos].YawAngle)643 G_YAW_RATE(pb->Sat[pos].YawRate)641 D_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases) 642 D_YAW_ANGLE(pb->Sat[pos].YawAngle) 643 D_YAW_RATE(pb->Sat[pos].YawRate) 644 644 #ifdef BNC_DEBUG_SSR 645 645 fprintf(stderr, "id %2d #%d y %10.6f yr %10.6f ", … … 648 648 #endif 649 649 for (j = 0; j < pb->Sat[pos].NumberOfPhaseBiases; ++j) { 650 G_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type)651 G_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator)652 G_WIDE_LANE_INDICATOR(650 D_GNSS_SIGNAL_IDENTIFIER(pb->Sat[pos].Biases[j].Type) 651 D_INTEGER_INDICATOR(pb->Sat[pos].Biases[j].SignalIntegerIndicator) 652 D_WIDE_LANE_INDICATOR( 653 653 pb->Sat[pos].Biases[j].SignalsWideLaneIntegerIndicator) 654 G_DISCONTINUITY_COUNTER(654 D_DISCONTINUITY_COUNTER( 655 655 pb->Sat[pos].Biases[j].SignalDiscontinuityCounter) 656 G_PHASE_BIAS(pb->Sat[pos].Biases[j].Bias)656 D_PHASE_BIAS_CORRECTION(pb->Sat[pos].Biases[j].Bias) 657 657 #ifdef BNC_DEBUG_SSR 658 658 fprintf(stderr, "t%02d int %d wl %d disc %d b %8.4f ", … … 687 687 case CLOCKORBIT_SATSBAS: 688 688 case CLOCKORBIT_SATBDS: 689 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])689 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 690 690 break; 691 691 case CLOCKORBIT_SATGLONASS: 692 G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])692 D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 693 693 break; 694 694 } 695 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)696 G_MULTIPLE_MESSAGE_INDICATOR(mmi)697 G_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)698 G_SSR_IOD(co->SSRIOD)699 G_SSR_PROVIDER_ID(co->SSRProviderID)700 G_SSR_SOLUTION_ID(co->SSRSolutionID)701 G_NO_OF_SATELLITES(nums)695 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 696 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 697 D_SATELLITE_REFERENCE_DATUM(co->SatRefDatum) 698 D_SSR_IOD(co->SSRIOD) 699 D_SSR_PROVIDER_ID(co->SSRProviderID) 700 D_SSR_SOLUTION_ID(co->SSRSolutionID) 701 D_NO_OF_SATELLITES(nums) 702 702 co->Supplied[COBOFS_ORBIT] |= 1; 703 703 #ifdef BNC_DEBUG_SSR … … 712 712 case CLOCKORBIT_SATSBAS: 713 713 case CLOCKORBIT_SATBDS: 714 G_GPS_SATELLITE_ID(id)714 D_GPS_SATELLITE_ID(id) 715 715 break; 716 716 case CLOCKORBIT_SATQZSS: 717 G_QZSS_SATELLITE_ID(id)717 D_QZSS_SATELLITE_ID(id) 718 718 break; 719 719 case CLOCKORBIT_SATGLONASS: 720 G_GLONASS_SATELLITE_ID(id)720 D_GLONASS_SATELLITE_ID(id) 721 721 break; 722 722 } … … 734 734 case CLOCKORBIT_SATGPS: 735 735 case CLOCKORBIT_SATQZSS: 736 G_GPS_IODE(co->Sat[pos].IOD)736 D_GPS_IODE(co->Sat[pos].IOD) 737 737 break; 738 738 case CLOCKORBIT_SATGLONASS: 739 G_GPS_IODE(co->Sat[pos].IOD)739 D_GPS_IODE(co->Sat[pos].IOD) 740 740 break; 741 741 case CLOCKORBIT_SATGALILEO: 742 G_GALILEO_IOD(co->Sat[pos].IOD)742 D_GALILEO_IOD(co->Sat[pos].IOD) 743 743 break; 744 744 case CLOCKORBIT_SATSBAS: 745 G_SBAS_T0MOD(co->Sat[pos].toe)746 G_SBAS_IODCRC(co->Sat[pos].IOD)745 D_SBAS_T0MOD(co->Sat[pos].toe) 746 D_SBAS_IODCRC(co->Sat[pos].IOD) 747 747 break; 748 748 case CLOCKORBIT_SATBDS: 749 G_BDS_TOEMOD(co->Sat[pos].toe)750 G_GPS_IODE(co->Sat[pos].IOD)749 D_BDS_TOEMOD(co->Sat[pos].toe) 750 D_GPS_IODE(co->Sat[pos].IOD) 751 751 break; 752 752 } 753 G_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)754 G_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)755 G_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)756 G_DELTA_DOT_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)757 G_DELTA_DOT_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)758 G_DELTA_DOT_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)753 D_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial) 754 D_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack) 755 D_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack) 756 D_DOT_DELTA_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial) 757 D_DOT_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack) 758 D_DOT_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack) 759 759 #ifdef BNC_DEBUG_SSR 760 760 fprintf(stderr, "id %2d iod %3d dr %8.4f da %8.4f dc %8.4f dr %8.3f da %8.3f dc %8.3f\n", … … 777 777 case CLOCKORBIT_SATSBAS: 778 778 case CLOCKORBIT_SATBDS: 779 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])779 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 780 780 break; 781 781 case CLOCKORBIT_SATGLONASS: 782 G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])782 D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 783 783 break; 784 784 } 785 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)786 G_MULTIPLE_MESSAGE_INDICATOR(mmi)787 G_SSR_IOD(co->SSRIOD)788 G_SSR_PROVIDER_ID(co->SSRProviderID)789 G_SSR_SOLUTION_ID(co->SSRSolutionID)790 G_NO_OF_SATELLITES(nums)785 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 786 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 787 D_SSR_IOD(co->SSRIOD) 788 D_SSR_PROVIDER_ID(co->SSRProviderID) 789 D_SSR_SOLUTION_ID(co->SSRSolutionID) 790 D_NO_OF_SATELLITES(nums) 791 791 co->Supplied[COBOFS_CLOCK] |= 1; 792 792 #ifdef BNC_DEBUG_SSR … … 801 801 case CLOCKORBIT_SATSBAS: 802 802 case CLOCKORBIT_SATBDS: 803 G_GPS_SATELLITE_ID(id)803 D_GPS_SATELLITE_ID(id) 804 804 break; 805 805 case CLOCKORBIT_SATQZSS: 806 G_QZSS_SATELLITE_ID(id)806 D_QZSS_SATELLITE_ID(id) 807 807 break; 808 808 case CLOCKORBIT_SATGLONASS: 809 G_GLONASS_SATELLITE_ID(id)809 D_GLONASS_SATELLITE_ID(id) 810 810 break; 811 811 } … … 820 820 co->Sat[pos].ID = id; 821 821 822 G_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)823 G_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)824 G_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)822 D_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0) 823 D_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1) 824 D_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2) 825 825 #ifdef BNC_DEBUG_SSR 826 826 fprintf(stderr, "id %2d c0 %8.3f c1 %8.3f c2 %8.3f\n", … … 840 840 case CLOCKORBIT_SATSBAS: 841 841 case CLOCKORBIT_SATBDS: 842 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])842 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 843 843 break; 844 844 case CLOCKORBIT_SATGLONASS: 845 G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])845 D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 846 846 break; 847 847 } 848 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)849 G_MULTIPLE_MESSAGE_INDICATOR(mmi)850 G_SATELLITE_REFERENCE_DATUM(co->SatRefDatum)851 G_SSR_IOD(co->SSRIOD)852 G_SSR_PROVIDER_ID(co->SSRProviderID)853 G_SSR_SOLUTION_ID(co->SSRSolutionID)854 G_NO_OF_SATELLITES(nums)848 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 849 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 850 D_SATELLITE_REFERENCE_DATUM(co->SatRefDatum) 851 D_SSR_IOD(co->SSRIOD) 852 D_SSR_PROVIDER_ID(co->SSRProviderID) 853 D_SSR_SOLUTION_ID(co->SSRSolutionID) 854 D_NO_OF_SATELLITES(nums) 855 855 co->Supplied[COBOFS_ORBIT] |= 1; 856 856 co->Supplied[COBOFS_CLOCK] |= 1; … … 866 866 case CLOCKORBIT_SATSBAS: 867 867 case CLOCKORBIT_SATBDS: 868 G_GPS_SATELLITE_ID(id)868 D_GPS_SATELLITE_ID(id) 869 869 break; 870 870 case CLOCKORBIT_SATQZSS: 871 G_QZSS_SATELLITE_ID(id)871 D_QZSS_SATELLITE_ID(id) 872 872 break; 873 873 case CLOCKORBIT_SATGLONASS: 874 G_GLONASS_SATELLITE_ID(id)874 D_GLONASS_SATELLITE_ID(id) 875 875 break; 876 876 } … … 888 888 case CLOCKORBIT_SATGPS: 889 889 case CLOCKORBIT_SATQZSS: 890 G_GPS_IODE(co->Sat[pos].IOD)890 D_GPS_IODE(co->Sat[pos].IOD) 891 891 break; 892 892 case CLOCKORBIT_SATGLONASS: 893 G_GPS_IODE(co->Sat[pos].IOD)893 D_GPS_IODE(co->Sat[pos].IOD) 894 894 break; 895 895 case CLOCKORBIT_SATGALILEO: 896 G_GALILEO_IOD(co->Sat[pos].IOD)896 D_GALILEO_IOD(co->Sat[pos].IOD) 897 897 break; 898 898 case CLOCKORBIT_SATSBAS: 899 G_SBAS_T0MOD(co->Sat[pos].toe)900 G_SBAS_IODCRC(co->Sat[pos].IOD)899 D_SBAS_T0MOD(co->Sat[pos].toe) 900 D_SBAS_IODCRC(co->Sat[pos].IOD) 901 901 break; 902 902 case CLOCKORBIT_SATBDS: 903 G_BDS_TOEMOD(co->Sat[pos].toe)904 G_GPS_IODE(co->Sat[pos].IOD)903 D_BDS_TOEMOD(co->Sat[pos].toe) 904 D_GPS_IODE(co->Sat[pos].IOD) 905 905 break; 906 906 } 907 G_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial)908 G_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack)909 G_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack)910 G_DELTA_DOT_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial)911 G_DELTA_DOT_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack)912 G_DELTA_DOT_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack)913 G_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0)914 G_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1)915 G_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2)907 D_DELTA_RADIAL(co->Sat[pos].Orbit.DeltaRadial) 908 D_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DeltaAlongTrack) 909 D_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DeltaCrossTrack) 910 D_DOT_DELTA_RADIAL(co->Sat[pos].Orbit.DotDeltaRadial) 911 D_DOT_DELTA_ALONG_TRACK(co->Sat[pos].Orbit.DotDeltaAlongTrack) 912 D_DOT_DELTA_CROSS_TRACK(co->Sat[pos].Orbit.DotDeltaCrossTrack) 913 D_DELTA_CLOCK_C0(co->Sat[pos].Clock.DeltaA0) 914 D_DELTA_CLOCK_C1(co->Sat[pos].Clock.DeltaA1) 915 D_DELTA_CLOCK_C2(co->Sat[pos].Clock.DeltaA2) 916 916 #ifdef BNC_DEBUG_SSR 917 917 fprintf(stderr, "id %2d iod %3d dr %10.6f da %10.6f dc %10.6f dr %10.6f da %10.6f dc %10.6f c0 %10.6f c1 %10.6f c2 %10.6f\n", … … 934 934 case CLOCKORBIT_SATSBAS: 935 935 case CLOCKORBIT_SATBDS: 936 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])936 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 937 937 break; 938 938 case CLOCKORBIT_SATGLONASS: 939 G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])939 D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 940 940 break; 941 941 } 942 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)943 G_MULTIPLE_MESSAGE_INDICATOR(mmi)944 G_SSR_IOD(co->SSRIOD)945 G_SSR_PROVIDER_ID(co->SSRProviderID)946 G_SSR_SOLUTION_ID(co->SSRSolutionID)947 G_NO_OF_SATELLITES(nums)942 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 943 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 944 D_SSR_IOD(co->SSRIOD) 945 D_SSR_PROVIDER_ID(co->SSRProviderID) 946 D_SSR_SOLUTION_ID(co->SSRSolutionID) 947 D_NO_OF_SATELLITES(nums) 948 948 co->Supplied[COBOFS_URA] |= 1; 949 949 #ifdef BNC_DEBUG_SSR … … 958 958 case CLOCKORBIT_SATSBAS: 959 959 case CLOCKORBIT_SATBDS: 960 G_GPS_SATELLITE_ID(id)960 D_GPS_SATELLITE_ID(id) 961 961 break; 962 962 case CLOCKORBIT_SATQZSS: 963 G_QZSS_SATELLITE_ID(id)963 D_QZSS_SATELLITE_ID(id) 964 964 break; 965 965 case CLOCKORBIT_SATGLONASS: 966 G_GLONASS_SATELLITE_ID(id)966 D_GLONASS_SATELLITE_ID(id) 967 967 break; 968 968 } … … 976 976 ++co->NumberOfSat[s]; 977 977 co->Sat[pos].ID = id; 978 G_SSR_URA(co->Sat[pos].UserRangeAccuracy)978 D_SSR_URA(co->Sat[pos].UserRangeAccuracy) 979 979 #ifdef BNC_DEBUG_SSR 980 980 fprintf(stderr, "id %2d ura %8.3f \n", … … 993 993 case CLOCKORBIT_SATSBAS: 994 994 case CLOCKORBIT_SATBDS: 995 G_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])995 D_GPS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 996 996 break; 997 997 case CLOCKORBIT_SATGLONASS: 998 G_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s])998 D_GLONASS_EPOCH_TIME_CHECK(co->EpochTime[s], co->NumberOfSat[s]) 999 999 break; 1000 1000 } 1001 G_SSR_UPDATE_INTERVAL(co->UpdateInterval)1002 G_MULTIPLE_MESSAGE_INDICATOR(mmi)1003 G_SSR_IOD(co->SSRIOD)1004 G_SSR_PROVIDER_ID(co->SSRProviderID)1005 G_SSR_SOLUTION_ID(co->SSRSolutionID)1006 G_NO_OF_SATELLITES(nums)1001 D_SSR_UPDATE_INTERVAL(co->UpdateInterval) 1002 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 1003 D_SSR_IOD(co->SSRIOD) 1004 D_SSR_PROVIDER_ID(co->SSRProviderID) 1005 D_SSR_SOLUTION_ID(co->SSRSolutionID) 1006 D_NO_OF_SATELLITES(nums) 1007 1007 co->Supplied[COBOFS_HR] |= 1; 1008 1008 #ifdef BNC_DEBUG_SSR … … 1017 1017 case CLOCKORBIT_SATSBAS: 1018 1018 case CLOCKORBIT_SATBDS: 1019 G_GPS_SATELLITE_ID(id)1019 D_GPS_SATELLITE_ID(id) 1020 1020 break; 1021 1021 case CLOCKORBIT_SATQZSS: 1022 G_QZSS_SATELLITE_ID(id)1022 D_QZSS_SATELLITE_ID(id) 1023 1023 break; 1024 1024 case CLOCKORBIT_SATGLONASS: 1025 G_GLONASS_SATELLITE_ID(id)1025 D_GLONASS_SATELLITE_ID(id) 1026 1026 break; 1027 1027 } … … 1035 1035 ++co->NumberOfSat[s]; 1036 1036 co->Sat[pos].ID = id; 1037 G_HR_CLOCK_CORRECTION(co->Sat[pos].hrclock)1037 D_HR_CLOCK_CORRECTION(co->Sat[pos].hrclock) 1038 1038 #ifdef BNC_DEBUG_SSR 1039 1039 fprintf(stderr, "id %2d hrClock %8.3f \n", … … 1052 1052 case CLOCKORBIT_SATSBAS: 1053 1053 case CLOCKORBIT_SATBDS: 1054 G_GPS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])1054 D_GPS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s]) 1055 1055 break; 1056 1056 case CLOCKORBIT_SATGLONASS: 1057 G_GLONASS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s])1057 D_GLONASS_EPOCH_TIME_CHECK(b->EpochTime[s], b->NumberOfSat[s]) 1058 1058 break; 1059 1059 } 1060 G_SSR_UPDATE_INTERVAL(b->UpdateInterval)1061 G_MULTIPLE_MESSAGE_INDICATOR(mmi)1062 G_SSR_IOD(b->SSRIOD)1063 G_SSR_PROVIDER_ID(b->SSRProviderID)1064 G_SSR_SOLUTION_ID(b->SSRSolutionID)1065 G_NO_OF_SATELLITES(nums)1060 D_SSR_UPDATE_INTERVAL(b->UpdateInterval) 1061 D_MULTIPLE_MESSAGE_INDICATOR(mmi) 1062 D_SSR_IOD(b->SSRIOD) 1063 D_SSR_PROVIDER_ID(b->SSRProviderID) 1064 D_SSR_SOLUTION_ID(b->SSRSolutionID) 1065 D_NO_OF_SATELLITES(nums) 1066 1066 #ifdef BNC_DEBUG_SSR 1067 1067 fprintf(stderr, "epochTime %d ui %d mmi %d sats %d/%d ssrIod %d providerId %d solId %d\n", … … 1075 1075 case CLOCKORBIT_SATSBAS: 1076 1076 case CLOCKORBIT_SATBDS: 1077 G_GPS_SATELLITE_ID(id)1077 D_GPS_SATELLITE_ID(id) 1078 1078 break; 1079 1079 case CLOCKORBIT_SATQZSS: 1080 G_QZSS_SATELLITE_ID(id)1080 D_QZSS_SATELLITE_ID(id) 1081 1081 break; 1082 1082 case CLOCKORBIT_SATGLONASS: 1083 G_GLONASS_SATELLITE_ID(id)1083 D_GLONASS_SATELLITE_ID(id) 1084 1084 break; 1085 1085 } … … 1093 1093 ++b->NumberOfSat[s]; 1094 1094 b->Sat[pos].ID = id; 1095 G_NO_OF_BIASES(b->Sat[pos].NumberOfCodeBiases)1095 D_NO_OF_BIASES(b->Sat[pos].NumberOfCodeBiases) 1096 1096 #ifdef BNC_DEBUG_SSR 1097 1097 fprintf(stderr, "id %2d #%d ", … … 1099 1099 #endif 1100 1100 for (j = 0; j < b->Sat[pos].NumberOfCodeBiases; ++j) { 1101 G_GNSS_SIGNAL_IDENTIFIER(b->Sat[pos].Biases[j].Type)1102 G_CODE_BIAS(b->Sat[pos].Biases[j].Bias)1101 D_GNSS_SIGNAL_IDENTIFIER(b->Sat[pos].Biases[j].Type) 1102 D_CODE_BIAS(b->Sat[pos].Biases[j].Bias) 1103 1103 #ifdef BNC_DEBUG_SSR 1104 1104 fprintf(stderr, "t%02d b %8.2f ", -
trunk/BNC/src/ephemeris.cpp
r10954 r10990 2966 2966 } 2967 2967 2968 // Health status of SBAS Ephemeris (virtual)2968 // Health status of BDS Ephemeris (virtual) 2969 2969 //////////////////////////////////////////////////////////////////////////// 2970 2970 unsigned int t_ephBDS::isUnhealthy() const {
Note:
See TracChangeset
for help on using the changeset viewer.
