Put B1C on RTKLIB slot 0 with prefer-B1C XOR and lam[0] override,
align QMBOC quadrature and BCH thresholds with the ICD, fix BDGIM
nearest-odd-hour t_p and CNAV1 ephemeris defaults, tighten math/constants
usage, and drop the non-reproducible LDPC generator script. Move replica,
LDPC, and navigation unit tests into the default test set.
Signed-off-by: OuWenhao16 <104730917+OuWenhao16@users.noreply.github.com>
Update pseudorange outlier rejection
- Gate relative pseudorange rejection behind a new configuration flag
`Observables.reject_outlier_pseudoranges` (default: true) to prevent
premature PVT breakage and improve space compatibility.
Align B1C with unified adapters.
- Fold B1C acquisition/tracking/telemetry into PcpsAcquisitionAdapter,
DllPllTrackingAdapter, and TelemetryDecoderAdapter, and add SPDX author
headers for the B1C/CNAV1 contribution files.
Fix B1C ICD alignment for eph, TGD, UTC, and PR gating.
Gate CNAV1 publish on IODE/IODC, fix gettgd SYS_BDS selection,
correct LS/LSF and UTC scales, and drop the MEO-biased PR median cut.
Signed-off-by: OuWenhao16 <104730917+OuWenhao16@users.noreply.github.com>
Integrate acquisition, pilot/data tracking, B-CNAV1 telemetry decoding, and
PVT/RINEX hooks on upstream/next with minimal changes to shared blocks.
Includes example configuration, code generators, and unit tests.
Signed-off-by: OuWenhao16 <104730917+OuWenhao16@users.noreply.github.com>
Signed-off-by: Vladslav P <vladisslav2011@gmail.com>
For some reason, the old script calculated "mean()" of PRN numbers
in a tracking channel. E.g., channel 1 tracked PRN 3 for few seconds,
then tracked PRN 16 for the rest. The script would add legend PRN 9
(3+16)/2 = .... Fixed that and added "PRN-wise tracking indicator" in
addition to the existing "channel-wise tracking indicator"
Signed-off-by: minhaj <minhaj.sixbyte@gmail.com>
The KF tracking dump reader now follows the parameters dumped by kf_tracking.cc
lib/gps_l1_ca_kf_read_tracking_dump.py:
- Rewrite using the same _RECORD_FORMAT / _FIELD_NAMES architecture as
dll_pll_veml_read_tracking_dump.py: one struct.unpack per record and
EOF handling, dropping the v1..v22 / bytes_shift / seek.
gps_l1_ca_kf_plot_sample.py:
- map innovation -> carr_error; drop r_noise_cov
lib/plotKalman.py, lib/plotTracking.py:
- Skip the "Estimated Noise Variance" panel when r_noise_cov is absent.
- Replace fig.canvas.set_window_title() with
fig.canvas.manager.set_window_title(). The canvas method was deprecated
in matplotlib 3.4 and is gone in current matplotlib (3.6.3 here), where
it raised AttributeError. Ref: https://github.com/raysect/source/issues/383
Signed-off-by: minhaj <minhaj.sixbyte@gmail.com>
two fields (TOW_ms and WN). Probably because this file was written at a time when
these fields were not present in the tracking dump.
This commit fixes that, and plot_tracking_quality_indicator.py is operational now.
This script now also lays out a _RECORD_FORMAT such that it is easily maintainable
if the structure changes again in future in the dll_pll_veml_tracking.cc
Thanks!
Signed-off-by: minhaj <minhaj.sixbyte@gmail.com>
- Added a plot_positive_acq filter option, to enable plotting only the positive
acquisitions.
- Improved the file path processing. Previous version used hardcoded character
offset that will not work if someone sets custom dump prefix. Now we use
python's built-in pathlib and split-parse using the "_" separator.
- The scripts used to use two different ways of encoding system,channel,chips,
one with python dict another with massive if-else nest. This has been uniformed.
- The script used to assume all files in the dump folder would be acquisition dump
but now we filter for acq dumps using pathlib's glob()
Signed-off-by: minhaj <minhaj.sixbyte@gmail.com>