Skip to content

Conversation

Louis-max-H
Copy link
Contributor

@Louis-max-H Louis-max-H commented Jun 11, 2025

Add support for GNSS receiver resilience information

Depend on this PX4-Autopilot PR : PX4/PX4-Autopilot#25012
Original PR : #11781

Description

This PR is mostly taken from @chiara-septentrio and @flyingthingsintothings PR.
The code is mostly the same, I have improved a little code structure and move some files to update code structure

If you want to have resilience information, you should use this PR of PX4 : PX4/PX4-Autopilot#25012
And set CONFIG_MAVLINK_DIALECT="development" to your default.px4board

Test Steps

I have used a Septentrio emulator that emulate Jamming, Spoofing and Authentication attacks which was impossible to test before.
The functionality run smoothly in all cases, tell me if you need a video of demonstration or something's else to merge the PR 😃

Checklist:

Related Issue

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@HTRamsey
Copy link
Collaborator

Let me know when that PX4 PR gets merged

@DonLakeFlyer DonLakeFlyer added this to the Release V5.1 milestone Jun 13, 2025
@DronecodeBot
Copy link

This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:

https://discuss.px4.io/t/px4-dev-call-aug-06-2025-team-sync-and-community-q-a/46826/2

@mrpollo mrpollo changed the title Pr resilience GNSS Resilience with Septentrio Aug 6, 2025
@DronecodeBot
Copy link

This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:

https://discuss.px4.io/t/px4-dev-call-aug-06-2025-team-sync-and-community-q-a/46826/1

@DronecodeBot
Copy link

This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:

https://discuss.px4.io/t/px4-dev-call-aug-13-2025-team-sync-and-community-q-a/46972/2

@Tory9
Copy link
Contributor

Tory9 commented Sep 26, 2025

@HTRamsey, hello. The PX4 side was merged this week. Can this pr be reviewed again ?

@HTRamsey HTRamsey requested a review from Copilot September 27, 2025 17:36
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds GNSS resilience support with interference detection and authentication features for GPS receivers, particularly targeting Septentrio hardware integration. The implementation provides real-time monitoring of jamming, spoofing attacks, and authentication status through new toolbar indicators and vehicle telemetry.

  • Adds new GPS fact fields for spoofing state, jamming state, authentication state, and various quality metrics
  • Implements two new toolbar indicators for GPS interference and authentication status display
  • Integrates GNSS integrity message handling from MAVLink development dialect

Reviewed Changes

Copilot reviewed 14 out of 16 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/Vehicle/FactGroups/VehicleGPSFactGroup.h Adds new fact properties for GNSS resilience monitoring
src/Vehicle/FactGroups/VehicleGPSFactGroup.cc Implements GNSS integrity message handling and fact initialization
src/Vehicle/FactGroups/GPSFact.json Defines metadata for new GPS resilience facts with enums
src/UI/toolbar/GPSInterferenceIndicator.qml Creates interference status indicator with jamming/spoofing display
src/UI/toolbar/GPSAuthenticationIndicator.qml Creates authentication status indicator with color-coded states
src/FirmwarePlugin/FirmwarePlugin.cc Registers new toolbar indicators in the UI
translations/qgc-json.ts Adds translation strings for new GPS fact descriptions

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@Tory9
Copy link
Contributor

Tory9 commented Oct 3, 2025

@HTRamsey thank you for the review, I have applied the suggested changes

@HTRamsey HTRamsey requested a review from DonLakeFlyer October 3, 2025 19:20
@HTRamsey
Copy link
Collaborator

HTRamsey commented Oct 3, 2025

Looks good to me but I'll get Don to double check. Only comment I have (and it's not required but would be nice) would be to use an enum and switch in the QML files kinda similar to how this is done in RemoteIDSettings.h/RemoteIDSettings.qml

@HTRamsey
Copy link
Collaborator

HTRamsey commented Oct 3, 2025

Actually can't you just return the enum string from the fact in qml for spoofingState, jammingState, and authenticationState?

@Tory9
Copy link
Contributor

Tory9 commented Oct 3, 2025

Thank you, I applied the suggestion. Let me know if it looks better now. I have limited access to hardware to test these new changes, but if you confirm the code is fine, I’ll test the final version on hardware and let you know that everything works as expected

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.

5 participants