diff --git a/uavcan/equipment/gnss/1064.Quality.uavcan b/uavcan/equipment/gnss/1064.Quality.uavcan new file mode 100644 index 0000000..e369263 --- /dev/null +++ b/uavcan/equipment/gnss/1064.Quality.uavcan @@ -0,0 +1,111 @@ +# +# GNSS signal quality and integrity metrics. +# +# Supplementary message providing signal quality, interference detection, +# and correction status not carried by Fix2 or Auxiliary. +# Publish alongside Fix2 at the same or lower rate. +# +# Supports: u-blox (MON-RF, NAV-PVT, NAV-STATUS, SEC-SIG), +# Septentrio, and other receivers with quality reporting. +# + +# +# Noise level as measured by the GNSS receiver. +# Receiver-specific units. u-blox: noisePerMS from UBX-MON-RF. +# -1 if unavailable. +# +int16 noise + +# +# Automatic gain control monitor. +# u-blox: agcCnt from UBX-MON-RF (0-8191, percentage of max gain). +# 0xFFFF if unavailable. +# +uint16 agc + +# +# Jamming/interference state (aligns with MAVLink GPS_JAMMING_STATE). +# +uint8 JAMMING_UNKNOWN = 0 +uint8 JAMMING_OK = 1 # No significant jamming +uint8 JAMMING_WARNING = 2 # Interference visible, fix OK +uint8 JAMMING_CRITICAL = 3 # Interference visible, fix degraded/lost +uint8 jamming_state + +# +# Jamming indicator [0-255]. Higher = more interference. +# u-blox: jamInd from UBX-MON-RF or cwSuppression. +# +uint8 jamming_indicator + +# +# Spoofing detection state (aligns with MAVLink GPS_SPOOFING_STATE). +# +uint8 SPOOFING_UNKNOWN = 0 +uint8 SPOOFING_OK = 1 +uint8 SPOOFING_WARNING = 2 # Possible spoofing, mitigated +uint8 SPOOFING_INDICATED = 3 +uint8 spoofing_state + +# +# Signal authentication state (Galileo OSNMA, GPS CHIMERA, etc.) +# Aligns with MAVLink GPS_AUTHENTICATION_STATE. +# +uint8 AUTH_UNKNOWN = 0 +uint8 AUTH_INITIALIZING = 1 +uint8 AUTH_ERROR = 2 +uint8 AUTH_OK = 3 +uint8 AUTH_DISABLED = 4 +uint8 auth_state + +# +# Differential correction age [seconds]. +# Time since last valid correction was applied. +# 0 = corrections just received. +# 0xFFFF = unavailable or not applicable. +# u-blox: derived from UBX-NAV-PVT flags3.lastCorrectionAge +# (convert binned value to representative seconds). +# +uint16 diff_age + +# +# Antenna supervisor state. +# +uint8 ANTENNA_STATUS_UNKNOWN = 0 +uint8 ANTENNA_STATUS_INIT = 1 +uint8 ANTENNA_STATUS_OK = 2 +uint8 ANTENNA_STATUS_SHORT = 3 +uint8 ANTENNA_STATUS_OPEN = 4 +uint8 antenna_status + +# +# Antenna power status. +# +uint8 ANTENNA_POWER_UNKNOWN = 0 +uint8 ANTENNA_POWER_OFF = 1 +uint8 ANTENNA_POWER_ON = 2 +uint8 antenna_power + +# +# Abstract quality indicators [0-10], 255 if unavailable. +# Aligned with MAVLink GNSS_INTEGRITY (id 441). +# Higher values indicate higher quality. Semantics follow the receiver's +# own definition (e.g. Septentrio QualityInd SBF block). +# +uint8 corrections_quality # Quality of incoming differential corrections +uint8 system_status_summary # Overall receiver operating status +uint8 gnss_signal_quality # Quality of received GNSS signals +uint8 post_processing_quality # Expected post-processing quality + +# +# System error flags (bitmask). +# Aligns with PX4 SensorGps.msg SYSTEM_ERROR_* flags. +# +uint16 SYSTEM_ERROR_INCOMING_CORRECTIONS = 1 +uint16 SYSTEM_ERROR_CONFIGURATION = 2 +uint16 SYSTEM_ERROR_SOFTWARE = 4 +uint16 SYSTEM_ERROR_ANTENNA = 8 +uint16 SYSTEM_ERROR_EVENT_CONGESTION = 16 +uint16 SYSTEM_ERROR_CPU_OVERLOAD = 32 +uint16 SYSTEM_ERROR_OUTPUT_CONGESTION = 64 +uint16 system_errors