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.

Comment on lines +44 to +45


Copy link
Preview

Copilot AI Sep 27, 2025

Choose a reason for hiding this comment

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

Remove unnecessary empty lines at the end of the function.

Suggested change

Copilot uses AI. Check for mistakes.

if(!_activeVehicle){
return qsTr("Disconnected")
} else if (_activeVehicle.gps.authenticationState.value === 0) {
return qsTr("Unkown")
Copy link
Preview

Copilot AI Sep 27, 2025

Choose a reason for hiding this comment

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

Fix spelling error: 'Unkown' should be 'Unknown'.

Copilot uses AI. Check for mistakes.

} else if (_activeVehicle.gps.systemErrors.value === 64) {
return qsTr("Output congestion")
}
return "Multiple errors"
Copy link
Preview

Copilot AI Sep 27, 2025

Choose a reason for hiding this comment

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

The string should use qsTr() for translation consistency with other UI strings in the function.

Suggested change
return "Multiple errors"
return qsTr("Multiple errors")

Copilot uses AI. Check for mistakes.

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