Conversation
There was a problem hiding this comment.
🟡 Changes recommended
UBX GPS+RTCM navigation still leaves previously configured time mode enabled.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Releases stale GNSS base-station configuration when returning receivers to navigation output.
Changes:
- Disables UBX, Septentrio, and Femto base-position modes.
- Improves fragmented Femto acknowledgment handling.
- Adds receiver-mode regression coverage.
File summaries
| File | Description |
|---|---|
src/ubx.cpp |
Disables UBX time mode and confirms survey stop. |
src/ubx.h |
Adds UBX time-mode state and helper declaration. |
src/sbf.cpp |
Restores rover mode and limits RTCM output. |
src/femtomes.cpp |
Clears base mode and buffers acknowledgments. |
tests/gps-ubx-test.cpp |
Covers UBX navigation transitions and failures. |
tests/gps-receiver-mode-test.cpp |
Tests Septentrio and Femto mode changes. |
tests/CMakeLists.txt |
Registers the new receiver-mode test. |
Review details
- Files reviewed: 7/7 changed files
- Comments generated: 1
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
HTRamsey
force-pushed
the
fix/receiver-position-mode
branch
from
September 9, 2026 01:01
c130f3d to
8894022
Compare
HTRamsey
force-pushed
the
fix/receiver-position-mode
branch
from
September 9, 2026 01:36
8894022 to
b5a128b
Compare
Contributor
Author
|
just copying these in to QGC manually instead |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Receivers previously configured as fixed or surveying bases can remain in that state when switched to navigation output. Release the base position during configuration so navigation can resume.
PX4 Autopilot impact
PX4 normally selects
OutputMode::GPS; its main receiver usesGPSAndRTCMwhen RTCM communication dumping is selected. Both paths now release stale UBX time mode. This also applies to the rover and moving-base receivers used for GPS heading: they must compute their positions rather than retain a stationary base position. See PX4's output-mode selection.The additional checks run during receiver configuration, including startup and reconfiguration. UBX requires an acknowledged disable command and stop confirmation, with a roughly three-second confirmation deadline. Femto requires acknowledgments for
POSAVE OFFandFIX NONE. If these checks fail, configuration returns an error and PX4 retries or continues protocol detection. Receiver/firmware compatibility with these stricter checks still needs physical validation.The Femto changes apply when PX4 builds and selects that protocol. The SBF changes do not affect PX4's generic GPS module, which does not compile this repository's
sbf.cpp; see its driver source selection.No PX4 caller API, parameter, or build-system changes were identified as necessary for this PR. Adoption requires updating the GPSDrivers submodule and rebuilding. The PX4 revision linked above pins
1b27986, so it does not yet contain this change. Explicit RTCM base-station configuration retains its existing fixed-position/survey behavior.Validation
Linux CMake build and all 9 CTest tests passed;
git diff --checkpassed. Regression coverage exercises GPS and GPS+RTCM navigation, stop-before-RTCM ordering, legacy and modern UBX protocols, rejected commands, stop timeouts, read cancellation, and fragmented Femto replies with binary noise.PX4 firmware builds and physical receiver validation were not performed for this PR.