Changeset 10987 in ntrip for trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h
- Timestamp:
- Aug 11, 2026, 2:18:53 PM (4 days ago)
- File:
-
- 1 edited
-
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h
r10828 r10987 454 454 455 455 /* 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 #define T_SSR_EPOCH_TIME(a) ADDBITS(20, a) /* DF385 IDF003 */ //T_GPS_EPOCH_TIME(a) 460 #define T_GLONASS_EPOCH_TIME(a) ADDBITS(17, a) /* DF */ 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 */ 461 462 462 463 #define T_SSR_UPDATE_INTERVAL(a) ADDBITS( 4, a) /* DF391, IDF004 */ … … 469 470 470 471 /* GNSS macros - Satellite specific part */ 471 #define T_GNSS_SATELLITE_ID(a) ADDBITS( 6, a) /* IDF011 */ 472 #define T_GPS_SATELLITE_ID(a) ADDBITS( 6, a) /* DF068 */ 473 #define T_QZSS_SATELLITE_ID(a) ADDBITS( 4, a) /* DF249 */ 474 #define T_GLONASS_SATELLITE_ID(a) ADDBITS( 5, a) /* DF */ 475 #define T_GNSS_IOD(a) ADDBITS( 8, a) /* IDF012 */ 476 #define T_GPS_IODE(a) ADDBITS( 8, a) /* 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 */ 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 483 484 484 /* Orbit Corrections */ … … 497 497 498 498 /* Biases */ 499 #define T_NO_OF_BIASES(a) ADDBITS(5, a) /* DF, DF IDF023 */ //_NO_OF_CODE_BIASES(a)T_NO_OF_PHASE_BIASES(a) 500 499 #define T_NO_OF_BIASES(a) ADDBITS(5, a) /* DF479 DF379 IDF023 */ 501 500 #define T_GNSS_SIGNAL_IDENTIFIER(a) ADDBITS(5, a) /* DF380, IDF024 */ 502 501 #define T_CODE_BIAS(a) SCALEADDBITS(14, 100.0, a) /* DF383, IDF025 */ … … 506 505 507 506 /* Phase specific part of GNSS phase bias message */ 508 #define T_INTEGER_INDICATOR(a) ADDBITS( 1, a) /* DF483, IDF029 */ 509 #define T_WIDE_LANE_INDICATOR(a) ADDBITS( 2, a) /* DF484, IDF030 */ 510 #define T_DISCONTINUITY_COUNTER(a) ADDBITS( 4, a) /* DF485, IDF031 */ 511 #define T_DISPERSIVE_BIAS_INDICATOR(a) ADDBITS( 1, a) /* DF486, IDF032 */ 512 #define T_MW_CONSISTENCY_INDICATOR(a) ADDBITS( 1, a) /* DF487, IDF033 */ 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) */ 513 514 514 515 /* URA */ 515 #define T_SSR_URA(a) ADDBITS( 6, a) /* DF389, IDF034 */ 516 #define T_SSR_URA(a) ADDBITS( 6, a) /* DF389, IDF034 */ 517 518 /* 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) SCALEADDBITS(3 + T_NADIR_ANGLE_DEPENDENT_CORR_RANGE_EXTENSION(a), 1000.0 a) /* DF+021 (new RTCM) NOT COMPLETED: can be extended up to 15/18 Bits*/ 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_ROWS_4_LATITIDE_DIRECTION(a) ADDBITS(6, a) /* DF+031 (new RTCM) */ 543 #define T_NUMBER_OF_ROWS_4_LONGITUDE_DIRECTION(a) ADDBITS(6, a) /* DF+032 (new RTCM) */ 544 #define T_GRID_STEP_SIZE_4_LATITIDE_DIRECTION(a) SCALEADDBITS(9, 100.0, a) /* DF+031 (new RTCM) */ 545 #define T_GRID_STEP_SIZE_4_LONGITUDE_DIRECTION(a) SCALEADDBITS(10, 100.0, a) /* DF+032 (new RTCM) */ 546 547 548 #define LATITUDE_OF_REFERENCE_POINT SCALEADDBITS() /* DF+028 (new RTCM) */ 549 #define LATITUDE_OF_REFERENCE_POINT SCALEADDBITS() /* DF+029 (new RTCM) */ 550 #define LATITUDE_OF_REFERENCE_POINT SCALEADDBITS() /* DF+030 (new RTCM) */ 551 516 552 517 553 /* Ionosphere */ 518 #define T_NO_IONO_LAYERS(a) ADDBITS( 2, a-1)/* DF472, IDF035 */554 #define T_NO_IONO_LAYERS(a) ADDBITS(2, a-1) /* DF472, IDF035 */ 519 555 #define T_IONO_HEIGHT(a) SCALEADDBITS( 8, 1/10000.0, a) /* DF473, IDF036 */ 520 #define T_IONO_DEGREE(a) ADDBITS( 4, a-1)/* DF474, IDF037 */521 #define T_IONO_ORDER(a) ADDBITS( 4, a-1)/* DF475, IDF038 */556 #define T_IONO_DEGREE(a) ADDBITS(4, a-1) /* DF474, IDF037 */ 557 #define T_IONO_ORDER(a) ADDBITS(4, a-1) /* DF475, IDF038 */ 522 558 #define T_IONO_COEFF_C(a) SCALEADDBITS(16, 200.0, a) /* DF476, IDF039 */ 523 559 #define T_IONO_COEFF_S(a) SCALEADDBITS(16, 200.0, a) /* DF477, IDF040 */ 524 560 #define T_VTEC_QUALITY_INDICATOR(a) SCALEADDBITS( 9, 20.0, a) /* DF478, IDF041 */ 561 525 562 526 563 static double URAToValue(int ura) { … … 548 585 #define DECODESTART \ 549 586 int numbits=0; \ 550 uint64_t bitbuffer=0; 587 uint64_t bitbuffer=0; 551 588 552 589 #define LOADSSRBITS(a) { \ … … 598 635 599 636 /* GNSS macros - Header part */ 600 #define G_RTCM_MESSAGE_NUMBER(a) GETSSRBITS(a, 12) /* DF002*/601 #define G_IGS_MESSAGE_NUMBER(a) GETSSRBITS(a, 8) /*IDF002 */602 #define G_IGS_SSR_VERSION(a) GETSSRBITS(a, 3) /*IDF001 */603 #define G_SSR_EPOCH_TIME(a) GETSSRBITS(a, 20) /*DF385 IDF003 */ 604 #define G_ SSR_EPOCH_TIME_CHECK(a, b) {unsigned int temp;GETSSRBITS(temp, 20) \605 if(b && a != temp) return GCOBR_TIMEMISMATCH; a = temp;} 606 #define G_G LONASS_EPOCH_TIME(a, b){unsigned int temp; GETSSRBITS(temp,17) \607 if(b && a != temp) return GCOBR_TIMEMISMATCH; a = temp;} 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;} 608 645 609 646 #define G_SSR_UPDATE_INTERVAL(a) GETSSRBITS(a, 4) /* DF391, IDF004 */ … … 616 653 617 654 /* GNSS macros - Satellite specific part */ 618 #define G_GNSS_SATELLITE_ID(a) GETSSRBITS(a, 6) /* DF068, IDF011 */ 619 #define G_GLONASS_SATELLITE_ID(a) GETSSRBITS(a, 5) /* DF */ 620 #define G_QZSS_SATELLITE_ID(a) GETSSRBITS(a, 4) /* DF249 */ 621 622 #define G_GNSS_IOD(a) GETSSRBITS(a, 8) /*DF071, DF237,DF471 IDF012 */ 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 */ 623 661 #define G_GALILEO_IOD(a) GETSSRBITS(a, 10) /* DF459 */ 662 624 663 #define G_SBAS_T0MOD(a) GETSSRBITSFACTOR(a, 9, 16) /* DF468 */ 625 664 #define G_SBAS_IODCRC(a) GETSSRBITS(a, 24) /* DF469 */ … … 641 680 642 681 /* Biases */ 643 #define G_NO_OF_BIASES(a) GETSSRBITS(a, 5) /* DF , DFIDF023 */682 #define G_NO_OF_BIASES(a) GETSSRBITS(a, 5) /* DF479 DF379 IDF023 */ 644 683 #define G_GNSS_SIGNAL_IDENTIFIER(a) GETSSRBITS(a, 5) /* DF IDF024 */ 645 684 #define G_CODE_BIAS(a) GETSSRFLOATSIGN(a, 14, 1/100.0) /* DF383, IDF025 */ … … 649 688 650 689 /* Phase specific part of GNSS phase bias message */ 651 #define G_INTEGER_INDICATOR(a) GETSSRBITS(a, 1) /* DF483, IDF029 */ 652 #define G_WIDE_LANE_INDICATOR(a) GETSSRBITS(a, 2) /* DF484, IDF030 */ 653 #define G_DISCONTINUITY_COUNTER(a) GETSSRBITS(a, 4) /* DF485, IDF031 */ 654 #define G_DISPERSIVE_BIAS_INDICATOR(a) GETSSRBITS(a, 1) /* DF486, IDF032 */ 655 #define G_MW_CONSISTENCY_INDICATOR(a) GETSSRBITS(a, 1) /* DF487, IDF033 */ 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)*/ 656 697 657 698 /* URA */ 658 #define G_SSR_URA(a) {int temp; GETSSRBITS(temp, 6) \ 659 (a) = URAToValue(temp);} /* DF389, IDF034 */ 660 699 #define G_SSR_URA(a) {int temp; GETSSRBITS(temp, 6) \ 700 (a) = URAToValue(temp);} /* DF389, IDF034 */ 701 702 /* 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 + G_NADIR_ANGLE_DEPENDENT_CORR_RANGE_EXTENSION(a)) /* DF+021 (new RTCM) */ 715 661 716 /* Ionosphere */ 662 717 #define G_NO_IONO_LAYERS(a) {unsigned int temp; GETSSRBITS(temp, 2) a = temp+1;} /* DF472, IDF035 */
Note:
See TracChangeset
for help on using the changeset viewer.
