Changeset 11042 in ntrip for trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h
- Timestamp:
- Sep 22, 2026, 5:19:12 PM (5 weeks ago)
- File:
-
- 1 edited
-
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h
r11041 r11042 604 604 #define E_NADIR_ANGLE_DEPENDENT_CORR_RANGE_EXTENSION(a) ADDBITS(4, a) /* DF+015 (new RTCM) to extend DF+021*/ 605 605 #define E_SATELLITE_SET_INDICATOR(a) ADDBITS(1, a) /* DF+016 (new RTCM) */ 606 #define E_SATELLITE_MASK(a) ADDBITS(64, a) /* DF394 */ 606 /* ADDBITS' mask "(1<<a)-1" uses a 32-bit int literal, so a plain 607 ADDBITS(64, a) is broken the same way GETSSRBITS(a, 64) was on decode 608 (see D_SATELLITE_MASK) - here even ADDBITS(32, ...) is unsafe, since 609 shifting a 32-bit int by exactly its own width is undefined behavior 610 too. Stay well clear of that edge by writing four 16-bit chunks. */ 611 #define E_SATELLITE_MASK(a) { \ 612 uint64_t mask64_ = (a); \ 613 ADDBITS(16, (mask64_ >> 48) & 0xFFFFU) \ 614 ADDBITS(16, (mask64_ >> 32) & 0xFFFFU) \ 615 ADDBITS(16, (mask64_ >> 16) & 0xFFFFU) \ 616 ADDBITS(16, mask64_ & 0xFFFFU) \ 617 } /* DF394 */ 607 618 #define E_FREQUENCY_SET_INDICATOR(a) ADDBITS(1, a) /* DF+017 (new RTCM) */ 608 619 #define E_GNSS_FREQUENCY_MASK(a) ADDBITS(6, a) /* DF+018 (new RTCM) */
Note:
See TracChangeset
for help on using the changeset viewer.
