# VH6B IMU fault definitions
# Highly Confidential and Proprietary Zoox Information. Copyright (c) Zoox.
#
# https://polarion.zooxlabs.com/polarion/#/project/L5ProductService/workitem?id=L5-PRD-10333
component: ImuDataHandler
source_enum: kEmuImuDataHandler
namespace: zoox
can_messages:
  - status_msg: EMU_imuAlertStatus
    log_msg: EMU_imuAlertLog
can_import: firmware/common/can/generated/vh6/vh6b/emu.h
proto_imports:
  - "vehicle/common/proto/emu_diagnostics.proto"
can_namespace: vh6b
faults:
  - id: 0
    name: DataOutageDetected
    severity: WARNING
    latching: false
    description: No UDP traffic received within the expected amount of time.
    troubleshooting_steps: Check EMU-MON health and/or network configuration between EMU-MON and
      EMU-COM.
    freeze_frame: zoox.common.proto.ImuDataHandlerStatusFF
  - id: 1
    name: PacketFramingError
    severity: WARNING
    latching: false
    description: A packet framing error occurred.
    troubleshooting_steps: Check the Freeze Frame packet_framing_error_counter.
    freeze_frame: zoox.common.proto.ImuDataHandlerStatusFF
  - id: 2
    name: DataChecksumError
    severity: WARNING
    latching: false
    description: Data checksum failed due to bit errors.
    troubleshooting_steps: Check the Freeze Frame crc_error_counter.
    freeze_frame: zoox.common.proto.ImuDataHandlerStatusFF
  - id: 3
    name: MessageDecodeError
    severity: WARNING
    latching: false
    description: Message decoding error and cannot be verified.
    troubleshooting_steps: Possible incompatible software versions between EMU-MON and EMU-COM.
      Check the Freeze Frame decode_fail_counter to see if the condition is persistent.
    freeze_frame: zoox.common.proto.ImuDataHandlerStatusFF
  - id: 4
    name: DroppedPacketDetected
    severity: WARNING
    latching: false
    description: One or more data packets have been missed.
    troubleshooting_steps: Network congestion or CPU utilization too high.
      Check the Freeze Frame dropped_packet_counter.
    freeze_frame: zoox.common.proto.ImuDataHandlerStatusFF
  - id: 5
    name: ADIS14688StaleMeasurement
    severity: WARNING
    latching: false
    description: Timestamps between two subsequent ADIS 14688 IMU messages exceed the maximum
      expected period.
    troubleshooting_steps: Check EMU-MON health. Check the Freeze Frame stale_counter,
      peak_latency_ms and peak_interval_ms.
    freeze_frame: zoox.common.proto.ImuDataHandlerImuLatencyFF
  - id: 6
    name: SMI860StaleMeasurement
    severity: WARNING
    latching: false
    description: Timestamps between two subsequent Bosch SMI860 IMU messages exceed the maximum
      expected period.
    troubleshooting_steps: Check EMU-MON health. Check the Freeze Frame stale_counter,
      peak_latency_ms and peak_interval_ms.
    freeze_frame: zoox.common.proto.ImuDataHandlerImuLatencyFF
  - id: 7
    name: PanaEWTZPYStaleMeasurement
    severity: WARNING
    latching: false
    description: Timestamps between two subsequent Panasonic EWTZPY IMU messages exceed the maximum
      expected period.
    troubleshooting_steps: Check EMU-MON health. Check the Freeze Frame stale_counter,
      peak_latency_ms and peak_interval_ms.
    freeze_frame: zoox.common.proto.ImuDataHandlerImuLatencyFF
  - id: 8
    name: MurataHpcStaleMeasurement
    severity: WARNING
    latching: false
    description: Timestamps between two subsequent Murata HPC IMU messages exceed the maximum
      expected period.
    troubleshooting_steps: Check EMU-MON health. Check the Freeze Frame stale_counter,
      peak_latency_ms and peak_interval_ms.
    freeze_frame: zoox.common.proto.ImuDataHandlerImuLatencyFF
  - id: 9
    name: ADIS14688ImuInvalid
    severity: WARNING
    latching: false
    description: The ADIS 14688 IMU measurement is invalid; device fault or PTP time not ready.
    troubleshooting_steps: Check the Freeze Frame invalid_counter.
    freeze_frame: zoox.common.proto.ImuDataHandlerImuInvalidFF
  - id: 10
    name: SMI860ImuInvalid
    severity: WARNING
    latching: false
    description: The Bosch SMI860 IMU measurement is invalid; device fault or PTP time not ready.
    troubleshooting_steps: Check the Freeze Frame invalid_counter.
    freeze_frame: zoox.common.proto.ImuDataHandlerImuInvalidFF
  - id: 11
    name: PanaEWTZPYImuInvalid
    severity: WARNING
    latching: false
    description: The Panasonic EWTZPY IMU measurement is invalid; device fault or PTP time not
      ready.
    troubleshooting_steps: Check the Freeze Frame invalid_counter.
    freeze_frame: zoox.common.proto.ImuDataHandlerImuInvalidFF
  - id: 12
    name: MurataHpcImuInvalid
    severity: WARNING
    latching: false
    description: The Murata HPC IMU measurement is invalid; device fault or PTP time not ready.
    troubleshooting_steps: Check the Freeze Frame invalid_counter.
    freeze_frame: zoox.common.proto.ImuDataHandlerImuInvalidFF
  - id: 13
    name: ADIS14688ImuFaulted
    severity: ERROR
    latching: false
    description: Catastrophic fault detected when reading the ADIS 14688 IMU.
    troubleshooting_steps: Check the Freeze Frame fault_field and fault_counter.
    reaction:
      trajectory: NoGo
    freeze_frame: zoox.common.proto.ImuDataHandlerImuFaultedFF
  - id: 14
    name: SMI860ImuFaulted
    severity: ERROR
    latching: false
    description: Catastrophic fault detected when reading the Bosch SMI860 IMU.
    troubleshooting_steps: Check the Freeze Frame fault_field and fault_counter.
    reaction:
      trajectory: NoGo
    freeze_frame: zoox.common.proto.ImuDataHandlerImuFaultedFF
  - id: 15
    name: PanaEWTZPYImuFaulted
    severity: ERROR
    latching: false
    description: Catastrophic fault detected when reading the Panasonic EWTZPY IMU.
    troubleshooting_steps: Check the Freeze Frame fault_field and fault_counter.
    reaction:
      trajectory: NoGo
    freeze_frame: zoox.common.proto.ImuDataHandlerImuFaultedFF
  - id: 16
    name: MurataHpcImuFaulted
    severity: ERROR
    latching: false
    description: Catastrophic fault detected when reading the Murata HPC IMU.
    troubleshooting_steps: Check the Freeze Frame fault_field and fault_counter.
    reaction:
      trajectory: NoGo
    freeze_frame: zoox.common.proto.ImuDataHandlerImuFaultedFF
  - id: 17
    name: MessageForwardingError
    severity: WARNING
    latching: false
    description: A valid message was received but unabled to be forwarded to subscribers.
    troubleshooting_steps: Potential misconfiguration of component pub/sub system.
      Check the Freeze Frame publish_fail_counter.
    freeze_frame: zoox.common.proto.ImuDataHandlerStatusFF
  - id: 18
    name: StaleDataStreamDetected
    severity: ERROR
    latching: false
    description: Time between now and last decoded UDP IMU data message received exceeds the
      maximum expected period.
    troubleshooting_steps: Check EMU-MON health (particular PTP client), EMU-COM/MON code mismatch,
      and EMU-COM and EMU-MON network connection.
    reaction:
      trajectory: NoGo
    freeze_frame: zoox.common.proto.ImuDataHandlerUdpLatencyFF
  - id: 19
    name: UdpMsgIntervalWarning
    severity: WARNING
    latching: false
    description: The interval between IMU UDP Ethernet messages from the EMU-MON is too large.
    troubleshooting_steps: This is an early warning of a condition that is not yet at the fault
      level, but needs to be investigated. Check EMU-MON health and/or network configuration
      between EMU-MON and EMU-COM. Check the FreezeFrame max_udp_msg_interval_ms which provides the
      maximum time between MultiImuData messages from the MON. The maximum indicated is since
      the previous FreezeFrame. Check the Freeze Frame udp_msg_interval_warning_counter.
    freeze_frame: zoox.common.proto.ImuDataHandlerUdpLatencyFF
  - id: 20
    name: ADIS14688NegativeLatency
    severity: ERROR
    latching: false
    description: Timestamp of IMU data from the EMU-MON is in the future relative to the EMU-COM.
    troubleshooting_steps: Check PTP clock distribution performance for issues.
    reaction:
      trajectory: NoGo
  - id: 21
    name: SMI860NegativeLatency
    severity: ERROR
    latching: false
    description: Timestamp of IMU data from the EMU-MON is in the future relative to the EMU-COM.
    troubleshooting_steps: Check PTP clock distribution performance for issues.
    reaction:
      trajectory: NoGo
  - id: 22
    name: PanaEWTZPYNegativeLatency
    severity: ERROR
    latching: false
    description: Timestamp of IMU data from the EMU-MON is in the future relative to the EMU-COM.
    troubleshooting_steps: Check PTP clock distribution performance for issues.
    reaction:
      trajectory: NoGo
  - id: 23
    name: MurataHpcNegativeLatency
    severity: ERROR
    latching: false
    description: Timestamp of IMU data from the EMU-MON is in the future relative to the EMU-COM.
    troubleshooting_steps: Check PTP clock distribution performance for issues.
    reaction:
      trajectory: NoGo
  - id: 24
    name: Imu0UnexpectedType
    severity: WARNING
    latching: false
    description: The IMU ID type in the Imu0 slot sent from the EMU-MON is not expected.
      The IMU type is either Unknown or changed since startup.
    troubleshooting_steps: Check /emu/com/imu data to see if the IMU_ID is persistent or changing.
      If persistent, verify that the EMU-COM software supports the IMUs present on the EMU-MON.
      If the IMU ID type has changed since startup, there is a possible corruption on MON or COM.
  - id: 25
    name: Imu1UnexpectedType
    severity: WARNING
    latching: false
    description: The IMU ID type in the Imu1 slot sent from the EMU-MON is not expected.
      The IMU type is either Unknown or changed since startup.
    troubleshooting_steps: Check /emu/com/imu data to see if the IMU_ID is persistent or changing.
      If persistent, verify that the EMU-COM software supports the IMUs present on the EMU-MON.
      If the IMU ID type has changed since startup, there is a possible corruption on MON or COM.
  - id: 26
    name: Imu2UnexpectedType
    severity: WARNING
    latching: false
    description: The IMU ID type in the Imu2 slot sent from the EMU-MON is not expected.
      The IMU type is either Unknown or changed since startup.
    troubleshooting_steps: Check /emu/com/imu data to see if the IMU_ID is persistent or changing.
      If persistent, verify that the EMU-COM software supports the IMUs present on the EMU-MON.
      If the IMU ID type has changed since startup, there is a possible corruption on MON or COM.
  - id: 27
    name: Imu3UnexpectedType
    severity: WARNING
    latching: false
    description: The IMU ID type in the Imu3 slot sent from the EMU-MON is not expected.
      The IMU type is either Unknown or changed since startup.
    troubleshooting_steps: Check /emu/com/imu data to see if the IMU_ID is persistent or changing.
      If persistent, verify that the EMU-COM software supports the IMUs present on the EMU-MON.
      If the IMU ID type has changed since startup, there is a possible corruption on MON or COM.
  - id: 28
    name: UnknownImuStaleMeasurement
    severity: WARNING
    latching: false
    description: Timestamps between two subsequent messages for an Unknown IMU exceed the maximum
      expected period.
    troubleshooting_steps: Check EMU-MON health. Check the Freeze Frame stale_counter,
      peak_latency_ms and peak_interval_ms.
    freeze_frame: zoox.common.proto.ImuDataHandlerImuLatencyFF
  - id: 29
    name: UnknownImuInvalid
    severity: WARNING
    latching: false
    description: The IMU measurement for an Unknown IMU is invalid; device fault or PTP not ready.
    troubleshooting_steps: Check the Freeze Frame invalid_counter.
    freeze_frame: zoox.common.proto.ImuDataHandlerImuInvalidFF
  - id: 30
    name: UnknownImuFaulted
    severity: ERROR
    latching: false
    description: Catastrophic fault detected when reading the Unknown IMU.
    troubleshooting_steps: Check the Freeze Frame fault_field and fault_counter.
    reaction:
      trajectory: NoGo
    freeze_frame: zoox.common.proto.ImuDataHandlerImuFaultedFF
  - id: 31
    name: UnknownNegativeLatency
    severity: ERROR
    latching: false
    description: Timestamp of IMU data from the EMU-MON is in the future relative to the EMU-COM.
    troubleshooting_steps: Check PTP clock distribution performance for issues.
    reaction:
      trajectory: NoGo
