Changeset 11141 in ntrip
- Timestamp:
- Oct 29, 2026, 11:07:21 PM (4 hours ago)
- Location:
- trunk/BNC
- Files:
-
- 2 edited
-
CHANGELOG.md (modified) (1 diff)
-
src/RTCM3/RTCM3Decoder.cpp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/CHANGELOG.md
r11140 r11141 28 28 - CHANGED: SSR QC: the IOD of the corrections is looked up among the last 30 data sets of a satellite instead of the last two (false 'IOD of no received broadcast ephemeris' for Galileo and GLONASS); new report lines for IODs received from the ephemeris stream(s) only later (with the largest delay) and for corrections referring to a broadcast ephemeris outside its validity 29 29 - ADDED: General option 'Ephemeris streams' (key ephMount): combination, upload of corrections and SSR QC use the Broadcast Ephemeris of the given stream(s) only, e.g. BCEP00BKG0, not those contained in other streams (e.g. RTCM-SSR streams of ACs with ephemeris messages); PPP, RINEX navigation files and ephemeris upload not affected; empty: all streams as before 30 - FIXED: Galileo (RTCM 1045/1046) and BDS (1042) ephemerides: the week number (12 bit GST week, 13 bit BDT week) is completed with the current week, so the decoding continues after their roll-over (GST week 4095 in 2078, BDT week 8191 in 2163) 30 31 - ADDED: Regression test suite ('tests'): example configurations and short raw captures replayed through BNC and compared with reference outputs 31 32 - ADDED: macOS packaging script -
trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
r11130 r11141 1742 1742 checkPrnRange(eph._prn); 1743 1743 1744 GETBITS(week, 12) // FIXME: roll-over after week 4095!!1744 GETBITS(week, 12) // GST week modulo 4096 1745 1745 if (week < 0 || week > 4095) { 1746 1746 #ifdef BNC_DEBUG_BCE … … 1753 1753 return false; 1754 1754 } 1755 // full GST week (roll-over after GST week 4095, in 2078): the one closest 1756 // to the current week; GST week 0 = GPS week 1024 1757 int currentWeek; 1758 double currentSec; 1759 currentGPSWeeks(currentWeek, currentSec); 1760 week += 4096 * int(floor((currentWeek - 1024 - week) / 4096.0 + 0.5)); 1755 1761 eph._TOEweek = week; 1756 1762 GETBITS(eph._IODnav, 10) … … 1769 1775 return false; 1770 1776 } 1771 eph._TOC.set(1024 + eph._TOEweek, i); // Period #2 = + 1 x 1024 (has to be determined)1777 eph._TOC.set(1024 + eph._TOEweek, i); // GPS week = GST week + 1024 1772 1778 GETFLOATSIGN(eph._clock_driftrate, 6, 1.0 / (double )(1 << 30) / (double )(1 << 29)) 1773 1779 GETFLOATSIGN(eph._clock_drift, 21, 1.0 / (double )(1 << 30) / (double )(1 << 16)) … … 1901 1907 return false; 1902 1908 } 1909 // full BDT week (roll-over after BDT week 8191, in 2163): the one closest 1910 // to the current week; BDT week 0 = GPS week 1356 1911 int currentWeek; 1912 double currentSec; 1913 currentGPSWeeks(currentWeek, currentSec); 1914 week += 8192 * int(floor((currentWeek - 1356 - week) / 8192.0 + 0.5)); 1903 1915 eph._BDTweek = week; 1904 1916 GETBITS(i, 4)
Note:
See TracChangeset
for help on using the changeset viewer.
