Skip to content

FailureInjection (UORB message)

Failure injection configuration.

Currently active failure-injection configuration, published by the failure injection manager (the sole subscriber to vehicle_command INJECT_FAILURE). Republished only when the configuration changes, so command spam on vehicle_command cannot propagate to the consumers applying the failures.

TOPICS: failure_injection

Fields

NameTypeUnit [Frame]Range/EnumDescription
timestampuint64usTime since system start
countuint8number of valid entries in the arrays below
unituint8[4]FAILURE_UNITAffected component per entry
instance_maskuint16[4]Bit i targets instance (i+1); 0xFFFF = all instances
failure_typeuint8[4]FAILURE_TYPEfailure mode per entry

Enums

FAILURE_UNIT

Used in field(s): unit

NameTypeValueDescription
FAILURE_UNIT_SENSOR_GYROuint80
FAILURE_UNIT_SENSOR_ACCELuint81
FAILURE_UNIT_SENSOR_MAGuint82
FAILURE_UNIT_SENSOR_BAROuint83
FAILURE_UNIT_SENSOR_GPSuint84
FAILURE_UNIT_SENSOR_OPTICAL_FLOWuint85
FAILURE_UNIT_SENSOR_VIOuint86
FAILURE_UNIT_SENSOR_DISTANCE_SENSORuint87
FAILURE_UNIT_SENSOR_AIRSPEEDuint88
FAILURE_UNIT_SYSTEM_BATTERYuint8100
FAILURE_UNIT_SYSTEM_MOTORuint8101
FAILURE_UNIT_SYSTEM_SERVOuint8102
FAILURE_UNIT_SYSTEM_AVOIDANCEuint8103
FAILURE_UNIT_SYSTEM_RC_SIGNALuint8104
FAILURE_UNIT_SYSTEM_MAVLINK_SIGNALuint8105

FAILURE_TYPE

Used in field(s): failure_type

NameTypeValueDescription
FAILURE_TYPE_OKuint80
FAILURE_TYPE_OFFuint81
FAILURE_TYPE_STUCKuint82
FAILURE_TYPE_GARBAGEuint83
FAILURE_TYPE_WRONGuint84
FAILURE_TYPE_SLOWuint85
FAILURE_TYPE_DELAYEDuint86
FAILURE_TYPE_INTERMITTENTuint87

Constants

NameTypeValueDescription
MAX_FAILURESuint84maximum number of simultaneous failures

Source Message

Source file (GitHub)

Click here to see original file
c
#Failure injection configuration.
#
# Currently active failure-injection configuration, published by the failure
# injection manager (the sole subscriber to vehicle_command INJECT_FAILURE).
# Republished only when the configuration changes, so command spam on
# vehicle_command cannot propagate to the consumers applying the failures.

uint64 timestamp # [us] Time since system start

uint8 MAX_FAILURES = 4 # maximum number of simultaneous failures

uint8 count # number of valid entries in the arrays below

uint8[4] unit # [@enum FAILURE_UNIT] Affected component per entry
# Failure unit (affected component). Mirrors MAVLink FAILURE_UNIT and the
# FAILURE_UNIT_* values in vehicle_command.
uint8 FAILURE_UNIT_SENSOR_GYRO = 0
uint8 FAILURE_UNIT_SENSOR_ACCEL = 1
uint8 FAILURE_UNIT_SENSOR_MAG = 2
uint8 FAILURE_UNIT_SENSOR_BARO = 3
uint8 FAILURE_UNIT_SENSOR_GPS = 4
uint8 FAILURE_UNIT_SENSOR_OPTICAL_FLOW = 5
uint8 FAILURE_UNIT_SENSOR_VIO = 6
uint8 FAILURE_UNIT_SENSOR_DISTANCE_SENSOR = 7
uint8 FAILURE_UNIT_SENSOR_AIRSPEED = 8
uint8 FAILURE_UNIT_SYSTEM_BATTERY = 100
uint8 FAILURE_UNIT_SYSTEM_MOTOR = 101
uint8 FAILURE_UNIT_SYSTEM_SERVO = 102
uint8 FAILURE_UNIT_SYSTEM_AVOIDANCE = 103
uint8 FAILURE_UNIT_SYSTEM_RC_SIGNAL = 104
uint8 FAILURE_UNIT_SYSTEM_MAVLINK_SIGNAL = 105

uint16[4] instance_mask # Bit i targets instance (i+1); 0xFFFF = all instances

uint8[4] failure_type # [@enum FAILURE_TYPE] failure mode per entry
# Failure mode.
# Mirrors MAVLink FAILURE_TYPE and the FAILURE_TYPE_* values in vehicle_command.
uint8 FAILURE_TYPE_OK = 0
uint8 FAILURE_TYPE_OFF = 1
uint8 FAILURE_TYPE_STUCK = 2
uint8 FAILURE_TYPE_GARBAGE = 3
uint8 FAILURE_TYPE_WRONG = 4
uint8 FAILURE_TYPE_SLOW = 5
uint8 FAILURE_TYPE_DELAYED = 6
uint8 FAILURE_TYPE_INTERMITTENT = 7