error_event.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. #pragma once
  2. /**
  3. 0x01 系统基础 SYS
  4. 0x02 can0 CAN0
  5. 0x03 can1 CAN1
  6. 0x04 can2 CAN2
  7. 0x10 IMU IMU
  8. 0x11 GPS GPS
  9. 0x12 单线雷达 #1 左 LIDAR1
  10. 0x13 单线雷达 #2 右 LIDAR2
  11. 0x14 单线雷达 #3 左斜 LIDAR3
  12. 0x15 单线雷达 #4 右斜 LIDAR4
  13. 0x16 单线雷达 #5 后 LIDAR5
  14. 0x17 相机 #1(RGB) CAM1
  15. 0x18 相机 #2(RGB-D/后) CAM2
  16. 0x19 屏幕 TFT
  17. 0x20 电机驱动器 MOTOR
  18. 0x21 上控 TOP
  19. */
  20. enum class ErrorEventCategory {
  21. SYS = 0x01,
  22. CAN0 = 0x02,
  23. CAN1 = 0x03,
  24. CAN2 = 0x04,
  25. IMU = 0x10,
  26. GPS = 0x11,
  27. LIDAR1 = 0x12,
  28. LIDAR2 = 0x13,
  29. LIDAR3 = 0x14,
  30. LIDAR4 = 0x15,
  31. LIDAR5 = 0x16,
  32. CAM1 = 0x17,
  33. CAM2 = 0x18,
  34. TFT = 0x19,
  35. MOTOR = 0x20,
  36. TOP = 0x21,
  37. };
  38. // 01 发生 02 恢复
  39. enum class ErrorEventLevel {
  40. OCCUR = 0x01,
  41. RECOVER = 0x02,
  42. };
  43. #define SYS_CONFIG_ERROR 0x010101 // 配置读取失败
  44. #define SYS_INIT_FAIL 0x010102 // 初始化失败
  45. #define SYS_FILE_ERROR 0x010103 // 文件 IO 异常
  46. #define SYS_NETWORK_FAIL 0x010201 // 4G / 网络错误
  47. #define SYS_TIME_SYNC_ERROR 0x010501 // 系统时间异常
  48. #define CAN0_NOT_FOUND 0x020201 // 未检测到 CAN0
  49. #define CAN0_DISCONNECTED 0x020202 // CAN0 断连
  50. #define CAN1_NOT_FOUND 0x030201 // 未检测到 CAN1
  51. #define CAN1_DISCONNECTED 0x030202 // CAN1 断连
  52. #define CAN2_NOT_FOUND 0x040201 // 未检测到 CAN2
  53. #define CAN2_DISCONNECTED 0x040202 // CAN2 断连
  54. #define IMU_NOT_FOUND 0x100201 // 未检测到 IMU
  55. #define IMU_DISCONNECTED 0x100202 // IMU 断连
  56. #define IMU_TIMEOUT 0x100303 // 超时无数据
  57. #define IMU_DATA_INVALID 0x100304 // 数据异常(NaN/饱和)
  58. #define IMU_CALIB_FAIL 0x100407 // 校准失败
  59. #define IMU_TIME_SYNC_ERROR 0x100508 // 时间戳跳变
  60. #define IMU_DRIVER_ERROR 0x100609 // SDK/协议解析失败
  61. #define GPS_NOT_FOUND 0x110201 // 未检测到 GPS
  62. #define GPS_DISCONNECTED 0x110202 // 断连
  63. #define GPS_NO_SIGNAL 0x110304 // 无卫星 / SNR 太低
  64. #define GPS_DATA_LOSS 0x110305 // 数据丢包
  65. #define GPS_TIME_SYNC_ERROR 0x110508 // PPS/时间异常
  66. #define GPS_DRIVER_ERROR 0x110609 // 协议解析失败(NMEA/UBlox)
  67. // 左雷达
  68. #define LIDAR1_NOT_FOUND 0x120201 // 未检测到雷达
  69. #define LIDAR1_DISCONNECTED 0x120202 // 断连
  70. #define LIDAR1_TIMEOUT 0x120303 // 无数据
  71. #define LIDAR1_DATA_INVALID 0x120304 // 数据无效
  72. #define LIDAR1_TIME_SYNC_ERROR 0x120508 // 时间戳异常
  73. #define LIDAR1_DRIVER_ERROR 0x120609 // 协议解析失败
  74. // 右雷达
  75. #define LIDAR2_NOT_FOUND 0x130201 // 未检测到雷达
  76. #define LIDAR2_DISCONNECTED 0x130202 // 断连
  77. #define LIDAR2_TIMEOUT 0x130303 // 无数据
  78. #define LIDAR2_DATA_INVALID 0x130304 // 数据无效
  79. #define LIDAR2_TIME_SYNC_ERROR 0x130508 // 时间戳异常
  80. #define LIDAR2_DRIVER_ERROR 0x130609 // 协议解析失败
  81. // 左斜雷达
  82. #define LIDAR3_NOT_FOUND 0x140201 // 未检测到雷达
  83. #define LIDAR3_DISCONNECTED 0x140202 // 断连
  84. #define LIDAR3_TIMEOUT 0x140303 // 无数据
  85. #define LIDAR3_DATA_INVALID 0x140304 // 数据无效
  86. #define LIDAR3_TIME_SYNC_ERROR 0x140508 // 时间戳异常
  87. #define LIDAR3_DRIVER_ERROR 0x140609 // 协议解析失败
  88. // 右斜雷达
  89. #define LIDAR4_NOT_FOUND 0x150201 // 未检测到雷达
  90. #define LIDAR4_DISCONNECTED 0x150202 // 断连
  91. #define LIDAR4_TIMEOUT 0x150303 // 无数据
  92. #define LIDAR4_DATA_INVALID 0x150304 // 数据无效
  93. #define LIDAR4_TIME_SYNC_ERROR 0x150508 // 时间戳异常
  94. #define LIDAR4_DRIVER_ERROR 0x150609 // 协议解析失败
  95. // 后雷达
  96. #define LIDAR5_NOT_FOUND 0x160201 // 未检测到雷达
  97. #define LIDAR5_DISCONNECTED 0x160202 // 断连
  98. #define LIDAR5_TIMEOUT 0x160303 // 无数据
  99. #define LIDAR5_DATA_INVALID 0x160304 // 数据无效
  100. #define LIDAR5_TIME_SYNC_ERROR 0x160508 // 时间戳异常
  101. #define LIDAR5_DRIVER_ERROR 0x160609 // 协议解析失败
  102. #define CAM1_NOT_FOUND 0x170201 // 未检测到相机
  103. #define CAM1_DISCONNECTED 0x170202 // 断连
  104. #define CAM1_FRAME_DROP 0x170305 // 丢帧过多
  105. #define CAM1_DATA_INVALID 0x170304 // 图像损坏/格式错误
  106. #define CAM1_TIME_SYNC_ERROR 0x170508 // 时间异常
  107. #define CAM1_DRIVER_ERROR 0x170609 // SDK/驱动错误
  108. #define CAM2_NOT_FOUND 0x180201 // 未检测到相机
  109. #define CAM2_DISCONNECTED 0x180202 // 断连
  110. #define CAM2_DEPTH_INVALID 0x180304 // 深度数据异常
  111. #define CAM2_FRAME_DROP 0x180305 // 丢帧过多
  112. #define CAM2_TIME_SYNC_ERROR 0x180508 // 时间异常
  113. #define CAM2_DRIVER_ERROR 0x180609 // SDK/驱动错误
  114. #define TFT_NOT_FOUND 0x190201 // 未检测到TFT
  115. #define TFT_DISCONNECTED 0x190202 // 断连
  116. #define TFT_DEPTH_INVALID 0x190304 //
  117. #define TFT_FRAME_DROP 0x190305 //
  118. #define TFT_TIME_SYNC_ERROR 0x190508 // 时间异常
  119. #define TFT_DRIVER_ERROR 0x190609 // SDK/驱动错误
  120. inline uint32_t encodeErrorLevel(uint32_t error_code, ErrorEventLevel level) {
  121. return (error_code << 8) | (static_cast<uint32_t>(level) & 0xFF);
  122. }