From 60aa4ff8472cf91506256082bea8a1c3bbf9068b Mon Sep 17 00:00:00 2001 From: Thomas Frans <160142177+flyingthingsintothings@users.noreply.github.com> Date: Thu, 13 Jun 2024 01:11:49 +0200 Subject: [PATCH] gps: add status and integrity information (#2110) * gps: add status and resilience information Add fields to report resilience and status information from GNSS receivers back to ground control stations for representation in the user interface. * gps: separate GNSS integrity information Move the changes to the `GPS_RAW_INT` message into a separate message that supports multiple GNSS receivers. Update the enum values to better support all GNSS receivers. * gps(integrity): add RAIM info to `GNSS_INTEGRITY` message * gps(integrity): change `GNSS_INTEGRITY` message `id` field to instanced Change the `id` field on the `GNSS_INTEGRITY` message to make use of the instance support in the MAVLink schema. * gps(integrity): move integrity message to `development.xml` * gps(integrity): add jamming mitigated and spoofing critical Change the enums for jamming and spoofing so jamming includes a state for mitigated interference and spoofing no longer includes a message for critical spoofing. * gps(integrity): add units to `GNSS_INTEGRITY` RAIM fields * gps(integrity): add qualitative indicators to `GNSS_INTEGRITY` message Add qualitative fields for GNSS signal quality, incoming corrections quality and overall system status. GNSS receivers or drivers can compute these based on other data. They can be useful before takeoff and during flight as a reliable overview of important GNSS components. * gps(integrity): update quality indicators for unsupported drivers Add support for drivers that can't or don't want to provide the quality indicator information * gps(integrity): use invalid attribute to indicate invalid values Instead of having implicit invalid values, use the `invalid` attributes. Also add invalid values to the RAIM data as it may not always be supplied or available from receivers. * code review - invalid value for uint8 is 255 * Apply suggestions from code review * Update message_definitions/v1.0/development.xml --------- Co-authored-by: Hamish Willee --- message_definitions/v1.0/development.xml | 102 +++++++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/message_definitions/v1.0/development.xml b/message_definitions/v1.0/development.xml index 37e1fd242d..6292658e43 100644 --- a/message_definitions/v1.0/development.xml +++ b/message_definitions/v1.0/development.xml @@ -48,6 +48,93 @@ Empty + + Flags indicating errors in a GPS receiver. + + There are problems with incoming correction streams. + + + There are problems with the configuration. + + + There are problems with the software on the GPS receiver. + + + There are problems with an antenna connected to the GPS receiver. + + + There are problems handling all incoming events. + + + The GPS receiver CPU is overloaded. + + + The GPS receiver is experiencing output congestion. + + + + Signal authentication state in a GPS receiver. + + The GPS receiver does not provide GPS signal authentication info. + + + The GPS receiver is initializing signal authentication. + + + The GPS receiver encountered an error while initializing signal authentication. + + + The GPS receiver has correctly authenticated all signals. + + + GPS signal authentication is disabled on the receiver. + + + + Signal jamming state in a GPS receiver. + + The GPS receiver does not provide GPS signal jamming info. + + + The GPS receiver detected no signal jamming. + + + The GPS receiver detected and mitigated signal jamming. + + + The GPS receiver detected signal jamming. + + + + Signal spoofing state in a GPS receiver. + + The GPS receiver does not provide GPS signal spoofing info. + + + The GPS receiver detected no signal spoofing. + + + The GPS receiver detected and mitigated signal spoofing. + + + The GPS receiver detected signal spoofing but still has a fix. + + + + State of RAIM processing. + + RAIM capability is unknown. + + + RAIM is disabled. + + + RAIM integrity check was successful. + + + RAIM integrity check failed. + + @@ -96,5 +183,20 @@ Channel values are in centered 13 bit format. Range is -4096 to 4096, center is 0. Conversion to PWM is x * 5/32 + 1500. Channels with indexes equal or above count should be set to 0, to benefit from MAVLink's trailing-zero trimming. + + Information about key components of GNSS receivers, like signal authentication, interference and system errors. + GNSS receiver id. Must match instance ids of other messages from same receiver. + Errors in the GPS system. + Signal authentication state of the GPS system. + Signal jamming state of the GPS system. + Signal spoofing state of the GPS system. + The state of the RAIM processing. + Horizontal expected accuracy using satellites successfully validated using RAIM. + Vertical expected accuracy using satellites successfully validated using RAIM. + An abstract value representing the estimated quality of incoming corrections, or 255 if not available. + An abstract value representing the overall status of the receiver, or 255 if not available. + An abstract value representing the quality of incoming GNSS signals, or 255 if not available. + An abstract value representing the estimated PPK quality, or 255 if not available. +