Skip to content

Merge latest changes from main branch#828

Open
AndreHauschild wants to merge 73 commits into
devfrom
main
Open

Merge latest changes from main branch#828
AndreHauschild wants to merge 73 commits into
devfrom
main

Conversation

@AndreHauschild
Copy link
Copy Markdown
Collaborator

No description provided.

ourairquality and others added 30 commits April 20, 2026 18:58
It was missing implementations for plots 3 and 4.
preceph: fix code_bias_ix system indexing
rtknavi: fix the track plot expand and shrink for plots 3 and 4
Add BDS to the systems in the default process options
rnx2rtkp: default nav sys to include Galileo and BDS
Common product files are using more that the example 4 lines,
so rework the code to handle this without generating error messages.
It uses the 'flag' to indicated that a clock file is expected and to
handle the format changes in clock files from version 3.04, but could
incorrectly parse the type and system if this expectation was not
met. Rework this to use the flag to bias the search but to fallback to
the alternative if not met.
…and 2 for all constellations if freqs="L1+L2", else use L1/L2 for GLONASS and freq slots 1 and 3 for all other constellations
rtknavi_qt: correct freq change in SNR and sky plots
rtkpost_qt, rtknavi_qt: fix for incorrect target install in CMakeLists.txt
code2bias: guard code being zero, and code_ix not found
readsp3: handle arbitrary comment lines
rinex header: fix clock file system parsing
- Fix field length errors
- Derive IODEs per Beidou ICD
- Add reset of rtksvr structure when starting RTKNAVI as a commented out line, uncommenting this line makes RTKNAVI solutions repeatable when postprocessing data from files.
The standard deviations can be supplied at a lower rate than the clock
biases, e.g. 30 sec biases with 5 minute standard deviations seen in
the CODE precise clock bias products.
satposs() was failing when precise clocks were configured and supplied in only
an sp3 file and without broadcast ephemeris. Rework the code to fix this and
a few related issues noted.

pephclk() - rework to search both the precise clocks and the precise ephemeris
data, giving preference to the precise clocks which are typically at a shorter
period and more accurate. It was searching only the precise clocks and failing
to make use of the satellite clock biases in sp3 files in some paths. Return 0
on all failure return paths, so the caller can test the return value for
success or failure, and rework the callers as necessary.

satposs() use the updated pephclk() to work with only satellite clock biases
in sp3 files, and without broadcast ephemeris to give the satellite clock
bias.

pephpos() correct the returned clock variance which was not being scaled by
CLIGHT to return it in units of m^2. It was effectively only applying the
interpolation variance.

Lower the precise clock extrapolation error from 1mm/s to 0.4mm/s. This gives
a midpoint standard deviation of around 6mm for 30s data and 60mm for 5 minute
data which seems more appropriate for current satellite clocks and still
conservative.
satposs: fix to work with precise clocks from sp3 files
readrnxclk: interpolate the standard deviations
… ppp.c to avoid using wrong macro define for state indices
SSR7 types are in common uses, updated from the tentative
allocation. Allows these to be processed with current SSR streams.

Change SSR7 BDS prn offset of 1 to 0 which appears consistent with
current SSR streams, fixing the BDS PRN mapping.

The SSR7 phase bias standard-deviation field do not appear in current
SSR streams, so remove it. Otherwise the phase biases read as garbage.

The RTCM-SSR and IGS-SSR signal mapping has diverged, so split these
into separate tables. Update these tables with current common signal
mappings.

Include the subtype in trace messages in the ssr code paths.
ourairquality and others added 28 commits May 13, 2026 21:36
-Add support for RTCM3 SSR message 1264 - VTEC ionospheric corrections
-Update ionospheric state initialization to use VTEC estimates if available
rtkplot: avoid interger overflow in intermediate calcs
Only adopt RTCM base or rover positions that are plausible.

Update the rover default position in all modes if requested to receive
this from RTCM as it can be used as an initial position - it was only
doing so in the fixed modes. Correct the trace message for this path.
When sending a nmea single solution back to a base, include the
solutions status rather than always SOLQ_SINGLE and also include the
number of satellites used in the solution and the reference station id.
The use of the long type here was not consistent so clean that up, and
while here use the unsigned type as these times are not negative.

For rtknavi_qt the key used to save the ephemeris could include a
space that was then escaped. Change this to fill the numerical suffix
with zeros rather than spaces.

Use a fixed three digit numerical suffix for the ephemeris keys,
rather than two digits, as these can be over 99 and this keeps the key
a consistent width.
rtkrcv ssr: options to include code and phase bias output
rtknavi, rtkrcv: consider all valid signals frequency indices
unicore decode_bdsephb: correct var declaration
addpeph: grow the size at a faster rate
code2obs: declare to return a const char*
and return the number of files from which data is read.
The ephemeris data can be pre-loaded by rtkrcv and rtknavi, and
clearing the times when initialising invalidates these.
Enable the show 'only ok' option selection on the relevant tables. The code
logic was there to use this but the gui selection was not enabled.
rtksvr send_nmea: send the single solution status
rtksvr update_antpos: check base and rover positions before adopting
rtkrcv: show the high range rtcm messages
rtknavi: save ephemeris as unsigned long
rtksvr: don't clear ephemeris times when initialising
rtknavi: add the option to only show valid rtcm ssr rows
… or base position may be completely inaccurate in two common situations, one where the positions are not used for the current solution and are leftover from a previous solution or where they are unused and set to LLH 0,0,0. In both cases, the filter fails to converge due to continuous outliers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants