From e78afb7bd82973f898e3d9cf80ade3bb91c780d7 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Wed, 8 Nov 2023 12:51:18 +0800 Subject: [PATCH] =?UTF-8?q?[620][adas]=E6=96=B0=E5=A2=9E3.7.1=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=B6=88=E6=81=AF=E5=AE=9A=E4=B9=89=EF=BC=9B=E6=95=B4?= =?UTF-8?q?=E7=90=862.3.0~3.7.1=E6=89=80=E6=9C=89=E7=9A=84=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=AE=9A=E4=B9=89=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=B3=A8?= =?UTF-8?q?=E8=A7=A3=E7=94=A8=E4=BA=8E=E7=A1=AE=E5=AE=9A=E5=90=AF=E7=94=A8?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=92=8C=E5=BC=83=E7=94=A8=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhjt/mogo/adas/data/bean/CodeInfo.java | 19 + .../zhjt/mogo/adas/data/bean/MogoReport.java | 388 +++++++++++++++++- .../mogo/adas/data/bean/ReportCodeInfo.java | 28 ++ 3 files changed, 428 insertions(+), 7 deletions(-) create mode 100644 libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/CodeInfo.java create mode 100644 libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/ReportCodeInfo.java diff --git a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/CodeInfo.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/CodeInfo.java new file mode 100644 index 0000000000..e55158c574 --- /dev/null +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/CodeInfo.java @@ -0,0 +1,19 @@ +package com.zhjt.mogo.adas.data.bean; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * MAP系统消息报告版本管理 + * 主要用于标记新增Code的版本,以及标记弃用的的Code + */ + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface CodeInfo { + String value();//Code新增版本 + + String deprecated() default "";//Code弃用版本 +} diff --git a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/MogoReport.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/MogoReport.java index d05a2937f2..1f135dbf71 100644 --- a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/MogoReport.java +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/MogoReport.java @@ -1,9 +1,13 @@ package com.zhjt.mogo.adas.data.bean; +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + /** * 监控事件报告中定义的事件以及解释 - * 根据MAP3.5.0事件定义编写 - * http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=113713916 最后修改于2023-07-27 + * 根据MAP3.7.1事件定义编写 + * http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=123445235 最后修改于2023-11-07 */ public class MogoReport { public static final String RESULT_AUTOPILOT_SYSTEM_UNSTARTED = "RESULT_AUTOPILOT_SYSTEM_UNSTARTED";//自动驾驶系统启动失败 @@ -137,6 +141,7 @@ public class MogoReport { * 系统初始化阶段错误 */ interface EINIT { + @CodeInfo("2.4.0") String LOST_FILE = "EINIT_LOST_FILE";//系统启动时缺失必要文件,或者容器配置错误 } @@ -144,9 +149,15 @@ public class MogoReport { * 硬件故障 */ interface EHW { + @CodeInfo("2.3.0") String LIDAR = "EHW_LIDAR";//未检测到雷达 + @CodeInfo("2.3.0") String GNSS = "EHW_GNSS";//未检测到gnss + @Deprecated + @CodeInfo(value = "2.3.0", deprecated = "3.4.0") String RTK = "EHW_RTK";//定位不准,gnss节点反馈的状态不是42 + @Deprecated + @CodeInfo(value = "2.3.0", deprecated = "3.4.0") String CAN = "EHW_CAN";//无法与底盘通信,获取不到地盘状态,无法进入自动驾驶 } @@ -154,50 +165,144 @@ public class MogoReport { * 自动驾驶系统故障 */ interface EMAP { + /*******自动驾驶系统故障*******/ + @CodeInfo("2.3.0") String NODE = "EMAP_NODE";//节点异常退出 + @CodeInfo("2.3.0") String NODE_DEAD = "EMAP_NODE_DEAD";//节点异常退出过多,放弃重启 + @CodeInfo("2.5.0") String DATA_NOT_EXIST = "EMAP_DATA_NOT_EXIST";//无法加载到正确的sqlite文件 + @CodeInfo("2.4.0") String TRA_NOT_EXIST = "EMAP_TRA_NOT_EXIST";//无法找到轨迹文件 + @CodeInfo("2.4.0") String TRA_LOAD_FAILED = "EMAP_TRA_LOAD_FAILED";//加载轨迹文件失败 + @CodeInfo("3.3.0") String ENGINE_INIT_FAILED = "EMAP_ENGINE_INIT_FAILED";//引擎初始化失败,包括轨迹路径不存在;vehicle_config.txt加载失败 + @CodeInfo("3.5.0") String ATTITUDE_INIT_FAILED = "EMAP_ATTITUDE_INIT_FAILED";//当前位置距离轨迹距离大于15m + @CodeInfo("2.4.0") String EXIT_AUTOPILOT_FOR_PLANNING = "EMAP_EXIT_AUTOPILOT_FOR_PLANNING";//因planning掉帧强退自动驾驶 + @CodeInfo("2.4.0") String EXIT_AUTOPILOT_FOR_LOCATION = "EMAP_EXIT_AUTOPILOT_FOR_LOCATION";//因location掉帧强退自动驾驶 + @CodeInfo("2.4.0") String EXIT_AUTOPILOT_FOR_CHASSIS = "EMAP_EXIT_AUTOPILOT_FOR_CHASSIS";//因底盘消息掉帧强退自动驾驶 + @CodeInfo("2.4.0") String EXIT_AUTOPILOT_FOR_DISTANCE = "EMAP_EXIT_AUTOPILOT_FOR_DISTANCE";//因planning起点距离当前过远强退自动驾驶 + @CodeInfo("2.7.0") String EXIT_AUTOPILOT_FOR_BRAKE = "EMAP_EXIT_AUTOPILOT_FOR_BRAKE";//制动踏板干预而强退自动驾驶 + @CodeInfo("2.7.0") String EXIT_AUTOPILOT_FOR_ACCEL = "EMAP_EXIT_AUTOPILOT_FOR_ACCEL";//加速踏板干预而强退自动驾驶 + @CodeInfo("2.7.0") String EXIT_AUTOPILOT_FOR_STEER = "EMAP_EXIT_AUTOPILOT_FOR_STEER";//方向盘干预而强退自动驾驶 + @CodeInfo("2.7.0") String EXIT_AUTOPILOT_FOR_GEAR_SWITCH = "EMAP_EXIT_AUTOPILOT_FOR_GEAR_SWITCH";//档位切换干预而强退自动驾驶 + @CodeInfo("2.7.0") String EXIT_AUTOPILOT_FOR_CHASSIS_NO_RESPONSE = "EMAP_EXIT_AUTOPILOT_FOR_CHASSIS_NO_RESPONSE";//底盘不响应请求而强退自动驾驶 + @CodeInfo("2.7.0") String EXIT_AUTOPILOT_FOR_CHASSIS_UNKNOWN = "EMAP_EXIT_AUTOPILOT_FOR_CHASSIS_UNKNOWN";//底盘退出原因未知而强退自动驾驶 + @CodeInfo("2.9.0") String ENTRY_AUTOPILOT_FOR_CANADAPTER_TIMEOUT = "EMAP_ENTRY_AUTOPILOT_FOR_CANADAPTER_TIMEOUT";//can_adapter消息超时未进入自驾 + @CodeInfo("2.9.0") String ENTRY_AUTOPILOT_FOR_PLANNING_TIMEOUT = "EMAP_ENTRY_AUTOPILOT_FOR_PLANNING_TIMEOUT";//PLANNING消息超时未进自驾 + @CodeInfo("2.9.0") String ENTRY_AUTOPILOT_FOR_LOCATION_TIMEOUT = "EMAP_ENTRY_AUTOPILOT_FOR_LOCATION_TIMEOUT";//定位消息超时未进自驾 + @CodeInfo("2.9.0") String ENTRY_AUTOPILOT_FOR_BRAKE = "EMAP_ENTRY_AUTOPILOT_FOR_BRAKE";//制动踏板干预未进自驾 + @CodeInfo("2.9.0") String ENTRY_AUTOPILOT_FOR_ACCEL = "EMAP_ENTRY_AUTOPILOT_FOR_ACCEL";//加速踏板干预未进自驾 + @CodeInfo("2.9.0") String ENTRY_AUTOPILOT_FOR_STEER = "EMAP_ENTRY_AUTOPILOT_FOR_STEER";//方向盘干预未进自驾 + @CodeInfo("2.9.0") String ENTRY_AUTOPILOT_FOR_GEAR_SWITCH = "EMAP_ENTRY_AUTOPILOT_FOR_GEAR_SWITCH";//档位切换干预未进自驾 + @CodeInfo("3.2.0") String ENTRY_AUTOPILOT_FOR_DISTANCE = "EMAP_ENTRY_AUTOPILOT_FOR_DISTANCE";//因planning起点距离太远不可进自驾 + @CodeInfo("3.2.0") String ENTRY_AUTOPILOT_FOR_VEHICLE_ERROR = "EMAP_ENTRY_AUTOPILOT_FOR_VEHICLE_ERROR";//车辆故障需要保修,故障原因见msg信息 - String ENTRY_AUTOPILOT_FOR_CHASSIS_FAULT = "EMAP_ENTRY_AUTOPILOT_FOR_CHASSIS_FAULT ";//底盘异常,需要下电重启 - String ENTRY_AUTOPILOT_FOR_UNKNOWN = "EMAP_ENTRY_AUTOPILOT_FOR_UNKNOWN ";//进自驾原因确实未知,必须联系软硬件技术进行排查 + @CodeInfo("3.2.0") + String ENTRY_AUTOPILOT_FOR_CHASSIS_FAULT = "EMAP_ENTRY_AUTOPILOT_FOR_CHASSIS_FAULT";//底盘异常,需要下电重启 + @CodeInfo("3.2.0") + String ENTRY_AUTOPILOT_FOR_UNKNOWN = "EMAP_ENTRY_AUTOPILOT_FOR_UNKNOWN";//进自驾原因确实未知,必须联系软硬件技术进行排查 + @CodeInfo("2.9.0") String ENTRY_AUTOPILOT_FOR_OTHER_CTL = "EMAP_ENTRY_AUTOPILOT_FOR_OTHER_CTL";//其他干预未进自驾,请检查仪表盘和开关项(如双闪,制动灯灯等 可在msg中补充原因信息) + @Deprecated + @CodeInfo(value = "2.4.0", deprecated = "3.4.0") String HADMAP_ENGINE_NO_ROUTING_INFO = "EMAP_HADMAP_ENGINE_NO_ROUTING_INFO";//hadmap_engine算路失败或未找到轨迹文件导致的轨迹文件信息未发布 + @Deprecated + @CodeInfo(value = "2.4.0", deprecated = "3.4.0") String HADMAP_NO_TRAJECTORY = "EMAP_HADMAP_NO_TRAJECTORY";//hadmap未发布全局路径 + @Deprecated + @CodeInfo(value = "2.4.0", deprecated = "3.4.0") String HADMAP_PLANNING_NO_TRAJECTORY = "EMAP_HADMAP_PLANNING_NO_TRAJECTORY";//local_planning未发布局部轨迹 + @Deprecated + @CodeInfo(value = "2.4.0", deprecated = "3.4.0") String CONTROL_ABNORMAL_COMMAND = "EMAP_CONTROL_ABNORMAL_COMMAND";//controller发布的控制指令异常 + @Deprecated + @CodeInfo(value = "2.4.0", deprecated = "3.4.0") String CAN_ADAPTER_NO_CHASSIS_INFO = "EMAP_CAN_ADAPTER_NO_CHASSIS_INFO";//can_adapter未成功转发地盘信息 + @CodeInfo("3.3.1") String TRAJECTORY_LOST_WHEN_AUTOPILOT = "EMAP_TRAJECTORY_LOST_WHEN_AUTOPILOT";//自驾状态,但是全局轨迹丢失超过1.5s + @CodeInfo("3.3.1") String PLANNING_FOR_PERCEPTION_TIMEOUT = "EMAP_PLANNING_FOR_PERCEPTION_TIMEOUT";//鹰眼下发进入自驾指令,自车还未进入自驾,感知延迟超过1s + @CodeInfo("3.3.1") String PLANNING_FOR_HADMAP_ENGINE_LANES_MSG_TIMEOUT = "EMAP_PLANNING_FOR_HADMAP_ENGINE_LANES_MSG_TIMEOUT";//鹰眼下发进入自驾指令,自车还未进入自驾,地图车道数据延迟超过1s + @CodeInfo("3.3.1") String PLANNING_FOR_PREDICTION_TIMEOUT = "EMAP_PLANNING_FOR_PREDICTION_TIMEOUT";//鹰眼下发进入自驾指令,自车还未进入自驾,预测数据延迟超过1s + @CodeInfo("3.6.0") + String NODE_CPU_EXCEED = "EMAP_NODE_CPU_EXCEED";//节点cpu占用超过阈值 + @CodeInfo("3.6.0") + String NODE_MEMORY_EXCEED = "EMAP_NODE_MEMORY_EXCEED";//节点内存占用超过阈值 + + /*******平行驾驶相关故障*******/ + @CodeInfo("3.6.0") + String ENTRY_REMOTEPILOT_FOR_BRAKE = "EMAP_ENTRY_REMOTEPILOT_FOR_BRAKE";//制动踏板干预未进平行驾驶 + @CodeInfo("3.6.0") + String ENTRY_REMOTEPILOT_FOR_STEER = "EMAP_ENTRY_REMOTEPILOT_FOR_STEER";//方向盘干预未进平行驾驶 + @CodeInfo("3.6.0") + String ENTRY_REMOTEPILOT_FOR_ACCEL = "EMAP_ENTRY_REMOTEPILOT_FOR_ACCEL";//加速踏板干预未进平行驾驶 + @CodeInfo("3.6.0") + String ENTRY_REMOTEPILOT_FOR_GEAR_SWITCH = "EMAP_ENTRY_REMOTEPILOT_FOR_GEAR_SWITCH";//档位切换干预未进平行驾驶 + @CodeInfo("3.6.0") + String ENTRY_REMOTEPILOT_FOR_CANADAPTER_TIMEOUT = "EMAP_ENTRY_REMOTEPILOT_FOR_CANADAPTER_TIMEOUT";//底盘消息超时未进平行驾驶 + @CodeInfo("3.6.0") + String ENTRY_REMOTEPILOT_FOR_CTRLCMD_TIMEOUT = "EMAP_ENTRY_REMOTEPILOT_FOR_CTRLCMD_TIMEOUT";//平行驾驶控制指令超时未进平行驾驶 + @CodeInfo("3.6.0") + String ENTRY_REMOTEPILOT_FOR_CHASSIS_FAULT = "EMAP_ENTRY_REMOTEPILOT_FOR_CHASSIS_FAULT";//底盘异常未进平行驾驶,需要下电重启 + @CodeInfo("3.6.0") + String ENTRY_REMOTEPILOT_FOR_CHASSIS_NO_RESPONSE = "EMAP_ENTRY_REMOTEPILOT_FOR_CHASSIS_NO_RESPONSE";//底盘不响应请求未进平行驾驶 + @CodeInfo("3.6.0") + String ENTRY_REMOTEPILOT_FOR_OTHER_CTL = "EMAP_ENTRY_REMOTEPILOT_FOR_OTHER_CTL";//其他干预未进平行驾驶,其他干预的原因见msg信息 + @CodeInfo("3.6.0") + String ENTRY_REMOTEPILOT_FOR_VEHICLE_ERROR = "EMAP_ENTRY_REMOTEPILOT_FOR_VEHICLE_ERROR";//车辆故障需要保修,故障原因见msg信息 + @CodeInfo("3.6.0") + String ENTRY_REMOTEPILOT_FOR_UNKNOWN = "EMAP_ENTRY_REMOTEPILOT_FOR_UNKNOWN";//未进平行驾驶原因确实未知,必须联系软硬件技术进行排查 + @CodeInfo("3.6.0") + String EXIT_REMOTEPILOT_FOR_CTRLCMD_TIMEOUT = "EMAP_EXIT_REMOTEPILOT_FOR_CTRLCMD_TIMEOUT";//因平行驾驶控制指令掉帧强退平行驾驶 + @CodeInfo("3.6.0") + String EXIT_REMOTEPILOT_FOR_CANADAPTER_TIMEOUT = "EMAP_EXIT_REMOTEPILOT_FOR_CANADAPTER_TIMEOUT";//因底盘消息掉帧强退平行驾驶 + @CodeInfo("3.6.0") + String EXIT_REMOTEPILOT_FOR_BRAKE = "EMAP_EXIT_REMOTEPILOT_FOR_BRAKE";//制动踏板干预而强退平行驾驶 + @CodeInfo("3.6.0") + String EXIT_REMOTEPILOT_FOR_ACCEL = "EMAP_EXIT_REMOTEPILOT_FOR_ACCEL";//加速踏板干预而强退平行驾驶 + @CodeInfo("3.6.0") + String EXIT_REMOTEPILOT_FOR_STEER = "EMAP_EXIT_REMOTEPILOT_FOR_STEER";//方向盘干预而强退平行驾驶 + @CodeInfo("3.6.0") + String EXIT_REMOTEPILOT_FOR_GEAR_SWITCH = "EMAP_EXIT_REMOTEPILOT_FOR_GEAR_SWITCH";//档位切换干预而强退平行驾驶 + @CodeInfo("3.6.0") + String EXIT_REMOTEPILOT_FOR_CHASSIS_FAULT = "EMAP_EXIT_REMOTEPILOT_FOR_CHASSIS_FAULT";//底盘异常强退平行驾驶,需要下电重启 + @CodeInfo("3.6.0") + String EXIT_REMOTEPILOT_FOR_CHASSIS_NO_RESPONSE = "EMAP_EXIT_REMOTEPILOT_FOR_CHASSIS_NO_RESPONSE";//底盘不响应请求强退平行驾驶 + @CodeInfo("3.6.0") + String EXIT_REMOTEPILOT_FOR_OTHER_CTL = "EMAP_EXIT_REMOTEPILOT_FOR_OTHER_CTL";//其他干预退出平行驾驶,其他干预的原因见msg信息 + @CodeInfo("3.6.0") + String EXIT_REMOTEPILOT_FOR_UNKNOWN = "EMAP_EXIT_REMOTEPILOT_FOR_UNKNOWN";//退出平行驾驶原因确实未知,必须联系软硬件技术进行排查 + } /** * telematics相关故障 */ interface ETELEMATICS { + @CodeInfo("2.3.0") String AICLOUD_AUTH_ERROR = "ETELEMATICS_AICLOUD_AUTH_ERROR";//telematics连接云端失败 } @@ -205,12 +310,24 @@ public class MogoReport { * 车辆故障或其他状态引起的问题 */ interface EVHC { + @Deprecated + @CodeInfo(value = "2.5.0", deprecated = "3.4.0") String GEAR_INFERENCE = "EVHC_GEAR_INFERENCE";//由于档位干预退出自动驾驶或无法进入自动驾驶 + @Deprecated + @CodeInfo(value = "2.5.0", deprecated = "3.4.0") String BRAKE_INFERENCE = "EVHC_BRAKE_INFERENCE";//由于刹车干预退出自动驾驶或无法进入自动驾驶 + @Deprecated + @CodeInfo(value = "2.5.0", deprecated = "3.4.0") String STEER_INFERENCE = "EVHC_STEER_INFERENCE";//由于方向盘干预退出自动驾驶或无法进入自动驾驶 + @Deprecated + @CodeInfo(value = "2.5.0", deprecated = "3.4.0") String ACCEL_INFERENCE = "EVHC_ACCEL_INFERENCE";//由于油门干预退出自动驾驶或无法进入自动驾驶 + @Deprecated + @CodeInfo(value = "2.3.0", deprecated = "3.4.0") String CSS = "EVHC_CSS";//底盘不允许进入自动驾驶 + @CodeInfo("2.3.0") String GEAR = "EVHC_GEAR";//档位不是D或N档 + @CodeInfo("3.4.0") String EPB = "EVHC_EPB";//驻车(手刹)不是锁止(拉起)状态 } @@ -218,32 +335,62 @@ public class MogoReport { * 系统状态检测异常 */ interface ESYS { + @CodeInfo("2.4.0") String AUTOPILOT_FAILED = "ESYS_AUTOPILOT_FAILED";//在尝试启动自动驾驶,但是超过指定时间后底盘未进入,会发送此事件 @Deprecated + @CodeInfo(value = "2.4.0", deprecated = "2.5.0") String IN_INIT = "ESYS_IN_INIT";//系统处于启动中,拒绝进入自动驾驶/远程驾驶 + @CodeInfo("2.4.0") String IN_EXIT = "ESYS_IN_EXIT";//系统处于退出中,拒绝进入自动驾驶 + @CodeInfo("2.4.0") String NOT_ALLOW_AUTOPILOT_FOR_REMOTE = "ESYS_NOT_ALLOW_AUTOPILOT_FOR_REMOTE";//系统处于远程驾驶中,拒绝进入自动驾驶 + @CodeInfo("2.4.0") String NOT_ALLOW_REBOOT = "ESYS_NOT_ALLOW_REBOOT";//重启拒绝 + @CodeInfo("2.4.0") String TOPIC_FREQ_DROPED = "ESYS_TOPIC_FREQ_DROPED";//存在topic严重掉频 + @Deprecated + @CodeInfo(value = "2.4.0", deprecated = "3.3.1") String AUTOPILOT_TAKEN_OVER_BY_REMOTE = "ESYS_AUTOPILOT_TAKEN_OVER_BY_REMOTE";//自动驾驶被远程驾驶接管 @Deprecated + @CodeInfo(value = "2.4.0", deprecated = "2.5.0") String RTK_STATUS_FAULT = "ESYS_RTK_STATUS_FAULT";//RTK状态持续错误 + @CodeInfo("2.5.0") String ROUTING_REQ_TIMEOUT = "ESYS_ROUTING_REQ_TIMEOUT";//自动驾驶开始前,routing请求无响应 + @CodeInfo("2.6.0") String PLANNING_CHANGE_FAILIED = "ESYS_PLANNING_CHANGE_FAILIED";//planning版本切换启动失败 + @CodeInfo("2.6.0") String CHECK_TRAJECTORY_FAILURE = "ESYS_CHECK_TRAJECTORY_FAILURE";//轨迹文件检查超时或检查结果无可用轨迹 + @CodeInfo("3.7.0") + String CHECK_TRAJECTORY_TIMEOUT = "ESYS_CHECK_TRAJECTORY_TIMEOUT";//轨迹文件检查超时 + @CodeInfo("3.7.0") + String CHECK_TRAJECTORY_LOADING = "ESYS_CHECK_TRAJECTORY_LOADING";//当前轨迹下载中(检查中) + @CodeInfo("3.5.0") String TRAJECTORY_AGENT_NOT_READY = "ESYS_TRAJECTORY_AGENT_NOT_READY";//轨迹下载客户端未就绪拒绝轨迹下载请求 + @CodeInfo("3.5.0") String MAP_ENGINE_NOT_READY = "ESYS_MAP_ENGINE_NOT_READY";//地图引擎未就绪拒绝自驾 + @CodeInfo("2.5.0") String FAULT = "ESYS_FAULT";//master启动10分钟,仍有agent未连接 + @CodeInfo("2.8.0") String REBOOT_WARNING = "ESYS_REBOOT_WARNING";//命令重启不完全提示(部分模块没有关闭成功) + @CodeInfo("2.8.0") String CAN_MSG_LOST = "ESYS_CAN_MSG_LOST";//master接收底盘消息超时 + @CodeInfo("3.6.0") + String AGENT_NET_TIMEOUT = "ESYS_AGENT_NET_TIMEOUT";//ssm agent 心跳连接master超时 /*******update_config_simple 配置(包含轨迹)下载相关异常*******/ + @CodeInfo("3.3.0") String CONFIG_UPDATING_SPEED_JUMP = "ESYS_CONFIG_UPDATING_SPEED_JUMP";//文件下载速度跳变,低于阈值 + @CodeInfo("3.3.0") String CONFIG_UPDATING_INPUT_PARAM_ABNORMAL = "ESYS_CONFIG_UPDATING_INPUT_PARAM_ABNORMAL";//配置下载传入参数异常 + @CodeInfo("3.3.0") String CONFIG_UPDATING_DNS_ERROR = "ESYS_CONFIG_UPDATING_DNS_ERROR";//DNS解析异常 + @CodeInfo("3.3.0") String CONFIG_UPDATING_URL_NOT_ARRIVED = "ESYS_CONFIG_UPDATING_URL_NOT_ARRIVED";//url不可达 + @CodeInfo("3.3.0") String CONFIG_UPDATING_MD5_CHECK_ERROR = "ESYS_CONFIG_UPDATING_MD5_CHECK_ERROR";//md5检查失败 + @CodeInfo("3.3.0") String CONFIG_UPDATING_REJECT_SAME_TRAJ_TASK = "ESYS_CONFIG_UPDATING_REJECT_SAME_TRAJ_TASK";//拒绝同名轨迹任务 + @CodeInfo("3.5.0") String CONFIG_UPDATING_HTTP_FAILED = "ESYS_CONFIG_UPDATING_HTTP_FAILED";//获取下载列表失败 } @@ -251,20 +398,36 @@ public class MogoReport { * 系统异常状态上报 */ interface ESSM { + @CodeInfo("2.10.0") String IN_INIT = "ESSM_IN_INIT";//SSM初始化,非任何模式,拒绝进入自动驾驶/平行驾驶 + @CodeInfo("2.10.0") String IN_EXIT = "ESSM_IN_EXIT";//SSM处于停止模式,拒绝进入自动驾驶/平行驾驶 + @CodeInfo("2.10.0") String AUTOPILOT_UNREADY = "ESSM_AUTOPILOT_UNREADY";//因自动驾驶状态未就绪拒绝自驾 + @CodeInfo("3.3.0") String AUTOPILOT_KEY_NODE_BORKEN = "ESSM_AUTOPILOT_KEY_NODE_BORKEN";//因自驾驾驶关键节点挂掉拒绝自动驾驶 + @CodeInfo("2.10.0") String REMOTEPILOT_UNREADY = "ESSM_REMOTEPILOT_UNREADY";//因平行驾驶状态未就绪拒绝平行驾驶 + @CodeInfo("2.10.0") String MAP_IMAGE_DIFF = "ESSM_MAP_IMAGE_DIFF";//Agent镜像存在版本不一致的问题 + @CodeInfo("3.6.0") + String SYS_TIME_SKIPED = "ESSM_SYS_TIME_SKIPED";//系统时间发生跳变 + @CodeInfo("3.6.0") + String ROSCORE_HAVE_REBOOT = "ESSM_ROSCORE_HAVE_REBOOT";//roscore发生重启,触发所有节点重启 + @CodeInfo("2.10.0") String COLD_START_TIMEOUT = "ESSM_COLD_START_TIMEOUT";//系统冷启动超时未完成 + @CodeInfo("3.3.0") String HAVE_AGENT_LOST_CONNECT = "ESSM_HAVE_AGENT_LOST_CONNECT";//存在agent失联 - String IGNORED_CMD_DUE_PAD_CONTROL = "ESSM_IGNORED_CMD_DUE_PAD_CONTROL ";//pad自驾中,拒绝云控的自驾命令 - String IGNORED_CMD_DUE_AICLOUD_CONTROL = "ESSM_IGNORED_CMD_DUE_AICLOUD_CONTROL ";//云控自驾中,拒绝pad的自驾命令 + @CodeInfo("3.3.1") + String IGNORED_CMD_DUE_PAD_CONTROL = "ESSM_IGNORED_CMD_DUE_PAD_CONTROL";//pad自驾中,拒绝云控的自驾命令 + @CodeInfo("3.3.1") + String IGNORED_CMD_DUE_AICLOUD_CONTROL = "ESSM_IGNORED_CMD_DUE_AICLOUD_CONTROL";//云控自驾中,拒绝pad的自驾命令 } interface EAGENT { + @CodeInfo("2.4.0") String FATAL = "EAGENT_FATAL";//agent严重故障,无法恢复 + @CodeInfo("2.4.0") String MASTER_COMMAND_HANDLER_FAILED = "EAGENT_MASTER_COMMAND_HANDLER_FAILED";//agent未能成功执行master指令 } @@ -272,17 +435,24 @@ public class MogoReport { * 相机相关异常 */ interface ECAM { + @CodeInfo("2.5.0") String INIT = "ECAM_INIT";//相机初始化失败 + @CodeInfo("2.5.0") String CALIB = "ECAM_CALIB";//标定信息读取失败 + @CodeInfo("2.7.0") String GRAB_FATAL = "ECAM_GRAB_FATAL";//相机数据采集异常 + @CodeInfo("3.5.0") String TS_ERROR = "ECAM_TS_ERROR";//图像时间戳异常 + } /** * 定位异常 */ interface ELCT { + @CodeInfo("2.5.0") String RTK_STATUS_FAULT = "ELCT_RTK_STATUS_FAULT";//RTK状态错误 + @CodeInfo("2.5.0") String RTK_STATUS_UNKNOWN = "ELCT_RTK_STATUS_UNKNOWN";//RTK状态不确定 } @@ -290,7 +460,9 @@ public class MogoReport { * 推流异常 */ interface EPUSH { + @CodeInfo("2.10.0") String VIDEO_INIT_ERROR = "EPUSH_VIDEO_INIT_ERROR";//初始化失败 + @CodeInfo("2.10.0") String VIDEO_START_SERVICE_ERROR = "EPUSH_VIDEO_START_SERVICE_ERROR";//启动服务失败 } @@ -298,9 +470,13 @@ public class MogoReport { * 录包异常 */ interface ERECORD { + @CodeInfo("2.10.0") String TASK_BAG_INIT = "ERECORD_TASK_BAG_INIT";//包初始化失败 + @CodeInfo("2.10.0") String TASK_SPACE = "ERECORD_TASK_SPACE";//空间不足 + @CodeInfo("2.10.0") String TASK_CONFIG_EMPTY = "ERECORD_TASK_CONFIG_EMPTY";//配置为空 + @CodeInfo("2.10.0") String TASK_QUEUE_EMPTY = "ERECORD_TASK_QUEUE_EMPTY";//数据队列为空 } @@ -308,7 +484,9 @@ public class MogoReport { * 平行驾驶相关异常 */ interface EPARALLEL { + @CodeInfo("2.11.0") String AICLOUD_CONNECTION_ERROR = "EPARALLEL_AICLOUD_CONNECTION_ERROR";//平行驾驶长连接异常 断网(此时不符合平行驾驶条件) 平行驾驶退出到自驾,同时减速停车 + @CodeInfo("3.3.0") String AICLOUD_NETWORK_WEAK = "EPARALLEL_AICLOUD_NETWORK_WEAK";//车端系统检测到弱网 弱网 平行驾驶退出到自驾,同时减速停车 } @@ -316,6 +494,7 @@ public class MogoReport { * 车辆处于困境,等待平行驾驶接管 */ interface EVEHICLE { + @CodeInfo("2.11.0") String IN_TROUBLE = "EVEHICLE_IN_TROUBLE";//planning 检测到车处于困境,把困境状态汇报给 SSM,ssm 发出该事件,等待驾舱端开始平行驾驶 } @@ -323,7 +502,9 @@ public class MogoReport { * EFM(FM故障) */ interface EFM { + @CodeInfo("3.4.0") String ERROR3_STOP_PILOT = "EFM_ERROR3_STOP_PILOT";//触发降级停车策略 + @CodeInfo("3.4.0") String ERROR2_FUNC_FORBID = "EFM_ERROR2_FUNC_FORBID";//禁止车辆部分功能 } } @@ -336,9 +517,13 @@ public class MogoReport { * 系统初始化阶段 */ interface IINIT { + @CodeInfo("2.4.0") String BOOST = "IINIT_BOOST";//linux系统已启动(此事件会延迟发出,timestamp填linux启动时的事件) + @CodeInfo("2.3.0") String TIME_SYNC = "IINIT_TIME_SYNC";//时间已同步 + @CodeInfo("2.3.0") String SENSOR_NORMAL = "IINIT_SENSOR_NORMAL";//各传感器正常 + @CodeInfo("2.3.0") String MAP_STARTED = "IBOOT_MAP_STARTED";//当前xavier上所有节点已启动成功 } @@ -347,22 +532,52 @@ public class MogoReport { * 自动驾驶运行信息 */ interface IMAP { + @CodeInfo("2.4.0") String TRA_EXIST = "IMAP_TRA_EXIST";//已找到轨迹文件 + @CodeInfo("2.5.0") String DATA_EXIST = "IMAP_DATA_EXIST";//加载正确的sqlite + @CodeInfo("2.4.0") String TRA_LOADED = "IMAP_TRA_LOADED";//轨迹文件加载成功 + @CodeInfo("2.4.0") String TRA_ROUTING = "IMAP_TRA_ROUTING";//算路成功 + @CodeInfo("2.6.0") String TRA_TYPE = "IMAP_TRA_TYPE";//加载轨迹类型通知 + @CodeInfo("2.7.0") + String PARAM_SERVER = "IMAP_PARAM_SERVER";//当前系统使用的param server版本(rosmaster或redis) + @CodeInfo("3.6.0") + String ENGINE_INIT_FINISHED = "IMAP_ENGINE_INIT_FINISHED";//地图引擎初始化完成 + @CodeInfo("3.6.0") + String RECEIVED_ROUTING_REQUEST = "IMAP_RECEIVED_ROUTING_REQUEST";//成功接收订单信息 + @CodeInfo("2.8.0") String ENTRY_AUTOPILOT = "IMAP_ENTRY_AUTOPILOT";//控制进入自动驾驶成功 + @CodeInfo("3.3.1") String PLANNING_FOR_PREDICTION_RECEIVED = "IMAP_PLANNING_FOR_PREDICTION_RECEIVED";//自车进入车自驾,收到预测消息时解除预测数据超时警报 + @CodeInfo("3.3.1") String PLANNING_FOR_HADMAP_ENGINE_LANES_MSG_RECEIVED = "IMAP_PLANNING_FOR_HADMAP_ENGINE_LANES_MSG_RECEIVED";//自车进入车自驾,收到地图车道消息时解除地图数据超时警报 + @CodeInfo("3.3.1") String PLANNING_FOR_PERCEPTION_RECEIVED = "IMAP_PLANNING_FOR_PERCEPTION_RECEIVED";//自车进入车自驾,收到感知消息时解除感知数据超时警报 + @CodeInfo("3.4.0") String START_AUTOPILOT = "IMAP_START_AUTOPILOT";//控制侧开始自驾 + @CodeInfo("3.4.0") String EXIT_AUTOPILOT = "IMAP_EXIT_AUTOPILOT";//控制侧正常退出自驾 + @CodeInfo("3.4.0") String START_REMOTEPILOT = "IMAP_START_REMOTEPILOT";//控制侧开始平行驾驶 + @CodeInfo("3.4.0") String ENTRY_REMOTEPILOT = "IMAP_ENTRY_REMOTEPILOT";//控制侧进入平行驾驶 + @CodeInfo("3.4.0") String EXIT_REMOTEPILOT = "IMAP_EXIT_REMOTEPILOT";//控制侧退出平行驾驶 + @CodeInfo("3.4.0") String CONTROLLER_START_FM_COMMAND = "IMAP_CONTROLLER_START_FM_COMMAND";//控制侧开始故障处理命令 + @CodeInfo("3.4.0") String CONTROLLER_FINISH_FM_COMMAND = "IMAP_CONTROLLER_FINISH_FM_COMMAND";//控制侧完成故障处理命令 + @CodeInfo("3.7.1") + String CONTROLLER_ABORT_FM_COMMAND = "IMAP_CONTROLLER_ABORT_FM_COMMAND";//控制侧未完成停车但终止,原因写入msg + @CodeInfo("3.7.1") + String PLANNING_START_FM_COMMAND = "IMAP_PLANNING_START_FM_COMMAND";//规划开始执行故障停车处理命令 + @CodeInfo("3.7.1") + String PLANNING_FINISH_FM_COMMAND = "IMAP_PLANNING_FINISH_FM_COMMAND";//规划完成故障停车处理命令 + @CodeInfo("3.7.1") + String PLANNING_ABORT_FM_COMMAND = "IMAP_PLANNING_ABORT_FM_COMMAND";//规划未完成停车但终止,原因写入msg } /** @@ -370,8 +585,11 @@ public class MogoReport { */ interface ITELEMATICS { @Deprecated + @CodeInfo(value = "2.4.0", deprecated = "2.5.0") String ROUTING_REQUEST_SENT = "ITELEMATICS_ROUTING_REQUEST_SENT";//已发送算路请求 + @CodeInfo("2.3.0") String AUTOPILOT_CMD_FORWARDED = "ITELEMATICS_AUTOPILOT_CMD_FORWARDED";//自动驾驶命令已转发 + @CodeInfo("2.3.0") String AICLOUD_AUTH_OK = "ITELEMATICS_AICLOUD_AUTH_OK";//aicloud连接认证成功 } @@ -381,51 +599,96 @@ public class MogoReport { */ interface ISYS { /*******常规信息*******/ + @CodeInfo("2.4.0") String STARTING = "ISYS_STARTING";//系统启动中 + @CodeInfo("2.4.0") String RUNNING = "ISYS_RUNNING";//所有Xavier启动完成 + @CodeInfo("2.4.0") String EXITING = "ISYS_EXITING";//系统退出中 + @CodeInfo("2.4.0") String AUTOPILOT_READY = "ISYS_AUTOPILOT_READY";//自动驾驶状态就绪 + @CodeInfo("2.4.0") String AUTOPILOT_STARTING = "ISYS_AUTOPILOT_STARTING";//自动驾驶启动中 + @CodeInfo("2.4.0") String AUTOPILOT_RUNING = "ISYS_AUTOPILOT_RUNING";//自动驾驶运行中 + @CodeInfo("2.4.0") String TOPIC_FREQ_NORMAL = "ISYS_TOPIC_FREQ_NORMAL";//topic频率正常或者恢复正常 @Deprecated + @CodeInfo(value = "2.4.0", deprecated = "2.5.0") String RTK_STATUS_NORMAL = "ISYS_RTK_STATUS_NORMAL";//rtk状态正常或恢复正常 + @CodeInfo("2.4.0") String CAN_NORMAL = "ISYS_CAN_NORMAL";//底盘状态正常或恢复正常 + @CodeInfo("2.5.0") String REOMTEPILOT_STARTING = "ISYS_REOMTEPILOT_STARTING";//平行驾驶启动中 + @CodeInfo("2.5.0") String REOMTEPILOT_RUNING = "ISYS_REOMTEPILOT_RUNING";//平行驾驶运行中 + @CodeInfo("2.6.0") String SYSTEM_IN_IDLE = "ISYS_SYSTEM_IN_IDLE";//系统进入空闲状态 + @CodeInfo("2.6.0") String SYSTEM_OUT_IDLE = "ISYS_SYSTEM_OUT_IDLE";//系统退出空闲状态 + @CodeInfo("3.3.0") String ALREADY_AUTOPILOT_STATE = "ISYS_ALREADY_AUTOPILOT_STATE";//已经在自驾状态驾驶,忽略自驾命令 + @CodeInfo("3.3.1") String AUTOPILOT_TAKEN_OVER_BY_REMOTE = "ISYS_AUTOPILOT_TAKEN_OVER_BY_REMOTE";//自动驾驶被远程驾驶接管 + @CodeInfo("3.6.0") + String AUTOPILOT_TRA_LOADED = "ISYS_AUTOPILOT_TRA_LOADED";//自动驾驶路线加载成功 + @CodeInfo("3.6.0") + String AUTOPILOT_SHELL_WASTETIME = "ISYS_AUTOPILOT_SHELL_WASTETIME";//记录autopilot.sh脚本耗时 /*******轨迹下载相关*******/ + @CodeInfo("2.5.0") String INIT_TRAJECTORY_START = "ISYS_INIT_TRAJECTORY_START";//轨迹管理_轨迹开始下载 + @CodeInfo("2.5.0") String INIT_TRAJECTORY_SUCCESS = "ISYS_INIT_TRAJECTORY_SUCCESS";//轨迹管理_轨迹下载成功 + @CodeInfo("2.5.0") String INIT_TRAJECTORY_FAILURE = "ISYS_INIT_TRAJECTORY_FAILURE";//轨迹管理_轨迹下载失败,本地无对应轨迹 + @CodeInfo("2.5.0") String INIT_TRAJECTORY_WARNING = "ISYS_INIT_TRAJECTORY_WARNING";//轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功 + @CodeInfo("2.5.0") String INIT_TRAJECTORY_TIMEOUT = "ISYS_INIT_TRAJECTORY_TIMEOUT";//轨迹管理_轨迹下载超时 /*******配置更新相关*******/ + @CodeInfo("2.6.0") String CONFIG_UPDATE_HADMAP = "ISYS_CONFIG_UPDATE_HADMAP";//需要重启升级高精地图 + @CodeInfo("2.9.0") String CONFIG_UPDATE_AI_MODEL = "ISYS_CONFIG_UPDATE_AI_MODEL";//需要重启升级AI模型 + @CodeInfo("2.9.0") String CONFIG_UPDATE_SLAM_MAP = "ISYS_CONFIG_UPDATE_SLAM_MAP";//需要重启升级SLAM地图 + @CodeInfo("2.10.0") String CONFIG_UPDATING_HD_MAP = "ISYS_CONFIG_UPDATING_HD_MAP";//高精地图更新中 + @CodeInfo("2.10.0") String CONFIG_UPDATING_SLAM_MAP = "ISYS_CONFIG_UPDATING_SLAM_MAP";//slam 地图更新中 + @CodeInfo("2.10.0") String CONFIG_UPDATING_AI_MODEL = "ISYS_CONFIG_UPDATING_AI_MODEL";//AI模型更新中 + @CodeInfo("2.10.0") String CONFIG_UPDATING_GRID_MAP = "ISYS_CONFIG_UPDATING_GRID_MAP";//珊格地图更新中 - String TRAJECTORY_AGENT_READY = "ISYS_TRAJECTORY_AGENT_READY ";//配置下载客户端已就绪 + @CodeInfo("3.5.0") + String TRAJECTORY_AGENT_READY = "ISYS_TRAJECTORY_AGENT_READY";//配置下载客户端已就绪 } /** * 系统状态 常规信息 */ interface ISSM { + @CodeInfo("2.10.0") String INIT = "ISSM_INIT";//SSM系统上电初始化 + @CodeInfo("2.10.0") String RESTARTED = "ISSM_RESTARTED";//SSM系统发生重启 + @CodeInfo("3.4.0") String AUTO_PILOT_STATE_CHANGE = "ISSM_AUTO_PILOT_STATE_CHANGE";//自驾状态变化,msg填写 1 to 0 + @CodeInfo("3.4.0") String REMOTE_PILOT_STATE_CHANGE = "ISSM_REMOTE_PILOT_STATE_CHANGE";//平行驾驶状态变化, msg填写 1 to 6 + @CodeInfo("3.4.0") String AUTO_PILOT_FINISH = "ISSM_AUTO_PILOT_FINISH";//一次自驾请求处理结束 + @CodeInfo("3.4.0") String REMOTE_PILOT_FINISH = "ISSM_REMOTE_PILOT_FINISH";//一次平行驾驶处理结束 + @CodeInfo("3.7.0") + String OTA_UPGRADE_START = "ISSM_OTA_UPGRADE_START";//OTA升级开始(升级内容见msg) + @CodeInfo("3.7.0") + String OTA_UPGRADE_FINISH = "ISSM_OTA_UPGRADE_FINISH";//OTA升级结束(升级内容见msg) + @CodeInfo("3.7.0") + String RECEIVE_SHUTDOWN_SIGNAL = "ISSM_RECEIVE_SHUTDOWN_SIGNAL";//SSM收到下电信号 + @CodeInfo("3.3.0") String HAVE_AGENT_CONNECTED = "ISSM_HAVE_AGENT_CONNECTED";//agent已连接成功 // String MODE_XX_START = "ISSM_MODE_XX_START";//SSM变更模式开始 @@ -437,25 +700,43 @@ public class MogoReport { //以上6组被注释掉的字段 中的MODE_XX分别替换成MODE_RUN、MODE_IDLE、MODE_STOP + @CodeInfo("2.10.0") String MODE_RUN_START = "ISSM_MODE_RUN_START";//SSM变更模式开始 + @CodeInfo("2.10.0") String MODE_RUN_FINISH = "ISSM_MODE_RUN_FINISH";//SSM变更模式完成(第一次ready) + @CodeInfo("2.10.0") String MODE_RUN_ABORT = "ISSM_MODE_RUN_ABORT";//SSM变更模式中止 + @CodeInfo("2.10.0") String MODE_RUN_TIMEOUT = "ISSM_MODE_RUN_TIMEOUT";//SSM变更模式超时 + @CodeInfo("2.10.0") String MODE_RUN_READY = "ISSM_MODE_RUN_READY";//SSM模式就绪 + @CodeInfo("2.10.0") String MODE_RUN_UNREADY = "ISSM_MODE_RUN_UNREADY";//SSM未就绪 + @CodeInfo("2.10.0") String MODE_IDLE_START = "ISSM_MODE_IDLE_START";//SSM变更模式开始 + @CodeInfo("2.10.0") String MODE_IDLE_FINISH = "ISSM_MODE_IDLE_FINISH";//SSM变更模式完成(第一次ready) + @CodeInfo("2.10.0") String MODE_IDLE_ABORT = "ISSM_MODE_IDLE_ABORT";//SSM变更模式中止 + @CodeInfo("2.10.0") String MODE_IDLE_TIMEOUT = "ISSM_MODE_IDLE_TIMEOUT";//SSM变更模式超时 + @CodeInfo("2.10.0") String MODE_IDLE_READY = "ISSM_MODE_IDLE_READY";//SSM模式就绪 + @CodeInfo("2.10.0") String MODE_IDLE_UNREADY = "ISSM_MODE_IDLE_UNREADY";//SSM未就绪 + @CodeInfo("2.10.0") String MODE_STOP_START = "ISSM_MODE_STOP_START";//SSM变更模式开始 + @CodeInfo("2.10.0") String MODE_STOP_FINISH = "ISSM_MODE_STOP_FINISH";//SSM变更模式完成(第一次ready) + @CodeInfo("2.10.0") String MODE_STOP_ABORT = "ISSM_MODE_STOP_ABORT";//SSM变更模式中止 + @CodeInfo("2.10.0") String MODE_STOP_TIMEOUT = "ISSM_MODE_STOP_TIMEOUT";//SSM变更模式超时 + @CodeInfo("2.10.0") String MODE_STOP_READY = "ISSM_MODE_STOP_READY";//SSM模式就绪 + @CodeInfo("2.10.0") String MODE_STOP_UNREADY = "ISSM_MODE_STOP_UNREADY";//SSM未就绪 // String FUNC_YY_START = "ISSM_FUNC_YY_START";//产品状态检查开始 @@ -466,38 +747,60 @@ public class MogoReport { // String FUNC_YY_READY = "ISSM_FUNC_YY_READY";//产品状态就绪 //以上6组被注释掉的字段 中的FUNC_YY分别替换成FUNC_COLD_START、FUNC_AUTO_PILOT、FUNC_REMOTE_PILOT + @CodeInfo("2.10.0") String FUNC_COLD_START_START = "ISSM_FUNC_COLD_START_START";//产品状态检查开始 + @CodeInfo("2.10.0") String FUNC_COLD_START_FINISH = "ISSM_FUNC_COLD_START_FINISH";//产品状态达成(第一次ready) + @CodeInfo("2.10.0") String FUNC_COLD_START_TIMEOUT = "ISSM_FUNC_COLD_START_TIMEOUT";//产品状态检查超时 + @CodeInfo("2.10.0") String FUNC_COLD_START_ABORT = "ISSM_FUNC_COLD_START_ABORT";//产品状态检查中止 + @CodeInfo("2.10.0") String FUNC_COLD_START_UNREADY = "ISSM_FUNC_COLD_START_UNREADY";//产品状态未就绪 + @CodeInfo("2.10.0") String FUNC_COLD_START_READY = "ISSM_FUNC_COLD_START_READY";//产品状态就绪 + @CodeInfo("2.10.0") String FUNC_AUTO_PILOT_START = "ISSM_FUNC_AUTO_PILOT_START";//产品状态检查开始 + @CodeInfo("2.10.0") String FUNC_AUTO_PILOT_FINISH = "ISSM_FUNC_AUTO_PILOT_FINISH";//产品状态达成(第一次ready) + @CodeInfo("2.10.0") String FUNC_AUTO_PILOT_TIMEOUT = "ISSM_FUNC_AUTO_PILOT_TIMEOUT";//产品状态检查超时 + @CodeInfo("2.10.0") String FUNC_AUTO_PILOT_ABORT = "ISSM_FUNC_AUTO_PILOT_ABORT";//产品状态检查中止 + @CodeInfo("2.10.0") String FUNC_AUTO_PILOT_UNREADY = "ISSM_FUNC_AUTO_PILOT_UNREADY";//产品状态未就绪 + @CodeInfo("2.10.0") String FUNC_AUTO_PILOT_READY = "ISSM_FUNC_AUTO_PILOT_READY";//产品状态就绪 + @CodeInfo("2.10.0") String FUNC_REMOTE_PILOT_START = "ISSM_FUNC_REMOTE_PILOT_START";//产品状态检查开始 + @CodeInfo("2.10.0") String FUNC_REMOTE_PILOT_FINISH = "ISSM_FUNC_REMOTE_PILOT_FINISH";//产品状态达成(第一次ready) + @CodeInfo("2.10.0") String FUNC_REMOTE_PILOT_TIMEOUT = "ISSM_FUNC_REMOTE_PILOT_TIMEOUT";//产品状态检查超时 + @CodeInfo("2.10.0") String FUNC_REMOTE_PILOT_ABORT = "ISSM_FUNC_REMOTE_PILOT_ABORT";//产品状态检查中止 + @CodeInfo("2.10.0") String FUNC_REMOTE_PILOT_UNREADY = "ISSM_FUNC_REMOTE_PILOT_UNREADY";//产品状态未就绪 + @CodeInfo("2.10.0") String FUNC_REMOTE_PILOT_READY = "ISSM_FUNC_REMOTE_PILOT_READY";//产品状态就绪 } interface IAGENT { + @CodeInfo("2.4.0") String EXECUTE_MASTER_COMMAND = "IAGENT_EXECUTE_MASTER_COMMAND";//执行系统指令成功 } interface ICAM { + @CodeInfo("2.5.0") String READY = "ICAM_READY";//相机已就绪 } interface ILCT { + @CodeInfo("2.5.0") String RTK_STATUS_NORMAL = "ILCT_RTK_STATUS_NORMAL";//rtk状态正常或恢复正常 + @CodeInfo("2.6.0") String RTK_OR_SLAM_CHANGE = "ILCT_RTK_OR_SLAM_CHANGE";//定位输出源发生RTK和SLAM变换 } @@ -505,7 +808,9 @@ public class MogoReport { * 推流状态 */ interface IPUSH { + @CodeInfo("2.10.0") String VIDEO_INIT_SUCCESS = "IPUSH_VIDEO_INIT_SUCCESS";//推流初始化成功 + @CodeInfo("2.10.0") String VIDEO_START_SERVICE_SUCCESS = "IPUSH_VIDEO_START_SERVICE_SUCCESS";//推流服务启动成功 } @@ -513,7 +818,9 @@ public class MogoReport { * 录包状态 */ interface IRECORDER { + @CodeInfo("2.10.0") String TASK_AUTO = "IRECORDER_TASK_AUTO";//自动录包任务创建 + @CodeInfo("2.10.0") String TASK_CMD = "IRECORDER_TASK_CMD";//指令录包任务创建 } @@ -521,6 +828,7 @@ public class MogoReport { * 平行驾驶相关 */ interface IPARALLEL { + @CodeInfo("2.11.0") String AICLOUD_CONNECTION_OK = "IPARALLEL_AICLOUD_CONNECTION_OK";//长连接连接恢复后, 5s 内如果长连状态一直 ok 的话,会触发该事件 建议鹰眼展示该事件 } @@ -528,6 +836,7 @@ public class MogoReport { * 车辆处于困境相关 */ interface IVEHICLE { + @CodeInfo("2.11.0") String NOT_IN_TROUBLE = "IVEHICLE_NOT_IN_TROUBLE";//车辆脱离困境,恢复正常,可继续开始自动驾驶了 触发频率:处于困境中,触发一次; 脱困后,触发一次 云端驾舱会接入该事件 建议鹰眼也接入,展示困境状态/脱困状态 } @@ -535,8 +844,11 @@ public class MogoReport { * IFSM(功能状态管理) */ interface IFSM { + @CodeInfo("3.5.0") String AUTO_PILOT_STATE_CHANGED = "IFSM_AUTO_PILOT_STATE_CHANGED";//自动驾驶状态机变化 (msg 填写如 standby to active ) + @CodeInfo("3.5.0") String REMOTE_PILOT_STATE_CHANGED = "IFSM_REMOTE_PILOT_STATE_CHANGED";//平行驾驶状态机变化 + @CodeInfo("3.5.0") String TELECTRL_PILOT_STATE_CHANGED = "IFSM_TELECTRL_PILOT_STATE_CHANGED";//遥感驾驶状态机变化 } @@ -544,12 +856,74 @@ public class MogoReport { * IFM (故障管理) */ interface IFM { + @CodeInfo("3.4.0") String HANDLE_FAULTS_START = "IFM_HANDLE_FAULTS_START";//FM开始处理故障 + @CodeInfo("3.4.0") String HANDLE_FAULTS_STOP = "IFM_HANDLE_FAULTS_STOP";//FM停止处理故障 + @CodeInfo("3.4.0") String ALL_FAULTS_RECOVER = "IFM_ALL_FAULTS_RECOVER";//FM当前已无故障 (只有有故障到全都消失时候上报) + @CodeInfo("3.4.0") String ONLY_WARNING_FAULTS = "IFM_ONLY_WARNING_FAULTS";//FM仅存在警示故障 + @CodeInfo("3.4.0") String ERROR1_SLOW_SPEED = "IFM_ERROR1_SLOW_SPEED";//存在故障触发减速策略 } + + /** + * IMF(蘑方消息回执) + */ + interface IMF { + @CodeInfo("3.7.1") + String SPEED_CHANGE_RECEIVE = "IMF_SPEED_CHANGE_RECEIVE";//蘑方加速度变化指令收到(msg字段的拼接方式为:传进来的加速度值$$其它想加的内容,没有可以不填) + @CodeInfo("3.7.1") + String SPEED_CHANGE_EXECUTE = "IMF_SPEED_CHANGE_EXECUTE";//蘑方加速度变化指令执行(msg字段的拼接方式为:传进来的加速度值$$其它想加的内容,没有可以不填) + @CodeInfo("3.7.1") + String SPEED_RESET_RECEIVE = "IMF_SPEED_RESET_RECEIVE";//蘑方复位指令收到(msg字段的拼接方式为:传进来的加速度值$$其它想加的内容,没有可以不填) + @CodeInfo("3.7.1") + String SPEED_RESET_EXECUTE = "IMF_SPEED_RESET_EXECUTE";// 蘑方复位指令执行(msg字段的拼接方式为:传进来的加速度值$$其它想加的内容,没有可以不填) + @CodeInfo("3.7.1") + String LAN_CHANG_RECEIVE = "IMF_LAN_CHANG_RECEIVE";//蘑方变道指令收到(msg字段的拼接方式为:-1/1$$其它想加的内容,没有可以不填) -1: 左变道;1: 右变道 + @CodeInfo("3.7.1") + String LAN_CHANG_EXECUTE = "IMF_LAN_CHANG_EXECUTE";//蘑方变道指令执行(msg字段的拼接方式为:-1/1$$其它想加的内容,没有可以不填) -1: 左变道;1: 右变道 + @CodeInfo("3.7.1") + String HORN_RECEIVE = "IMF_HORN_RECEIVE";//蘑方鸣笛指令收到(msg字段的拼接方式为:1.0/2.0$$其它想加的内容,没有可以不填) 1.0:开始鸣笛;2.0: 结束鸣笛 + @CodeInfo("3.7.1") + String HORN_EXECUTE = "IMF_HORN_EXECUTE";//蘑方鸣笛指令执行(msg字段的拼接方式为:1.0/2.0$$其它想加的内容,没有可以不填) 1.0:开始鸣笛;2.0: 结束鸣笛 + } + } + } + + private static final Map codeInfoMap = new HashMap<>(); + + /** + * 获取指定Code的相关信息 + * + * @param code 指定Code {@link Code} + * @return 输入Code的相关信息 不存在返回null + */ + public static ReportCodeInfo getReportCodeState(String code) { + if (codeInfoMap.isEmpty()) { + getAllFieldAnnotation(Code.class); + } + return codeInfoMap.get(code); + } + + //获取所有的字段 + private static void getAllFieldAnnotation(Class clazz) { + Field[] fields = clazz.getDeclaredFields(); + for (Field field : fields) { + boolean fieldHasAnno = field.isAnnotationPresent(CodeInfo.class); + if (fieldHasAnno) { + CodeInfo fieldAnno = field.getAnnotation(CodeInfo.class); + if (fieldAnno != null) { + String code = clazz.getSimpleName() + "_" + field.getName(); + ReportCodeInfo state = new ReportCodeInfo(code, fieldAnno.value(), fieldAnno.deprecated()); + codeInfoMap.put(code, state); + } + } + } + Class[] innerClazz = clazz.getDeclaredClasses(); + for (Class inner : innerClazz) { + getAllFieldAnnotation(inner); } } } diff --git a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/ReportCodeInfo.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/ReportCodeInfo.java new file mode 100644 index 0000000000..0579bd5171 --- /dev/null +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/ReportCodeInfo.java @@ -0,0 +1,28 @@ +package com.zhjt.mogo.adas.data.bean; + +public class ReportCodeInfo { + public final String code; + /** + * 开始支持的版本(包含) + */ + public final String sinceVersion; + /** + * 弃用的版本(不包含) + * null或"" 表示还未弃用 + */ + public final String deprecatedVersion; + + public ReportCodeInfo(String code, String sinceVersion, String deprecatedVersion) { + this.code = code; + this.sinceVersion = sinceVersion; + this.deprecatedVersion = deprecatedVersion; + } + + @Override + public String toString() { + return code + + " sinceVersion='" + sinceVersion + '\'' + + ", deprecatedVersion='" + deprecatedVersion + '\'' + + '}'; + } +}