From 152d3a9d898baec75b0386b16848085f8af30332 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Sun, 7 Apr 2024 16:18:12 +0800 Subject: [PATCH] =?UTF-8?q?[640][adas]=20MogoReport=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=88=B0420?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/MoGoAutopilotControlProvider.kt | 4 +- .../zhjt/mogo/adas/data/bean/MogoReport.java | 876 +++++++++++------- .../{ReportCodeInfo.java => ReportInfo.java} | 15 +- .../bean/{CodeInfo.java => ReportState.java} | 8 +- 4 files changed, 547 insertions(+), 356 deletions(-) rename libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/{ReportCodeInfo.java => ReportInfo.java} (53%) rename libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/{CodeInfo.java => ReportState.java} (58%) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt index 2815b8882d..f886339bb0 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt @@ -988,7 +988,7 @@ class MoGoAutopilotControlProvider : * @param resultCode 上报字段code */ override fun getReportResultDesc(resultCode: String): String { - return MogoReport.Result.getDesc(resultCode) + return MogoReport.ResultDesc.getDesc(resultCode) } /** @@ -996,7 +996,7 @@ class MoGoAutopilotControlProvider : * @param actionCode 上报字段code */ override fun getReportActionDesc(actionCode: String): String { - return MogoReport.Action.getDesc(actionCode) + return MogoReport.ActionDesc.getDesc(actionCode) } override fun onAutopilotCarConfig(carConfigResp: MessagePad.CarConfigResp) { 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 35ed63dc7b..7ce0bae69e 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 @@ -2,132 +2,171 @@ package com.zhjt.mogo.adas.data.bean; import java.lang.reflect.Field; import java.util.HashMap; +import java.util.Locale; import java.util.Map; /** * 监控事件报告中定义的事件以及解释 - * 根据MAP3.7.1事件定义编写 - * http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=123445242 最后修改于2024-01-22 + * 根据MAP4.2.0事件定义编写 最后修改于2024-04-07 */ public class MogoReport { - public static final String RESULT_AUTOPILOT_SYSTEM_UNSTARTED = "RESULT_AUTOPILOT_SYSTEM_UNSTARTED";//自动驾驶系统启动失败 - public static final String RESULT_AUTOPILOT_DISABLE = "RESULT_AUTOPILOT_DISABLE";//无法启动自动驾驶 - public static final String RESULT_AUTOPILOT_INFERIOR = "RESULT_AUTOPILOT_INFERIOR";//自动驾驶效果受影响 - public static final String RESULT_REMOTEPILOT_DISABLE = "RESULT_REMOTEPILOT_DISABLE";//无法启动远程驾驶 - public static final String RESULT_REMOTEPILOT_INFERIOR = "RESULT_REMOTEPILOT_INFERIOR";//远程驾驶效果受影响 - public static final String RESULT_SHOW_WARNING = "RESULT_SHOW_WARNING";//存在不确定因素 + public interface Result { + @ReportState("2.3.0") + String AUTOPILOT_SYSTEM_UNSTARTED = "RESULT_AUTOPILOT_SYSTEM_UNSTARTED";//自动驾驶系统启动失败 + @ReportState("2.3.0") + String AUTOPILOT_DISABLE = "RESULT_AUTOPILOT_DISABLE";//无法启动自动驾驶 + @ReportState("2.3.0") + String AUTOPILOT_INFERIOR = "RESULT_AUTOPILOT_INFERIOR";//自动驾驶效果受影响 + @ReportState("2.4.0") + String REMOTEPILOT_DISABLE = "RESULT_REMOTEPILOT_DISABLE";//无法启动远程驾驶 + @ReportState("2.4.0") + String REMOTEPILOT_INFERIOR = "RESULT_REMOTEPILOT_INFERIOR";//远程驾驶效果受影响 + @ReportState("2.5.0") + String SHOW_WARNING = "RESULT_SHOW_WARNING";//存在不确定因素 + } - public enum Result { - AUTOPILOT_SYSTEM_UNSTARTED(RESULT_AUTOPILOT_SYSTEM_UNSTARTED, "自动驾驶系统启动过程中出错,pad可能无法连接,云端监控可能无法上报"), - AUTOPILOT_DISABLE(RESULT_AUTOPILOT_DISABLE, "无法启动自动驾驶"), - AUTOPILOT_INFERIOR(RESULT_AUTOPILOT_INFERIOR, "自动驾驶部分功能受严重影响,演示模式可以考虑强行启动,非演示模式下建议停止自动驾驶,联系人员排查问题。\n例如定位偏移,camera无数据,算法非常严重的丢帧,属于自动驾驶可以启动,但是效果受影响。"), - REMOTEPILOT_DISABLE(RESULT_REMOTEPILOT_DISABLE, "无法启动远程驾驶"), - REMOTEPILOT_INFERIOR(RESULT_REMOTEPILOT_INFERIOR, "远程驾驶部分功能受影响。例如网络高延迟"), - SHOW_WARNING(RESULT_SHOW_WARNING, "一般为过渡状态,存在不确定因素,有可能对自动驾驶有微弱影响,需要在pad端显示为黄色告警。\n如果偶尔上报该result可忽略,如果频繁上报需联系人员进行排查。 目前仅有RTK无法确认状态事件。"); + public enum ResultDesc { + AUTOPILOT_SYSTEM_UNSTARTED(Result.AUTOPILOT_SYSTEM_UNSTARTED, "自动驾驶系统启动失败"), + AUTOPILOT_DISABLE(Result.AUTOPILOT_DISABLE, "无法启动自动驾驶"), + AUTOPILOT_INFERIOR(Result.AUTOPILOT_INFERIOR, "自动驾驶效果受影响"), + REMOTEPILOT_DISABLE(Result.REMOTEPILOT_DISABLE, "无法启动远程驾驶"), + REMOTEPILOT_INFERIOR(Result.REMOTEPILOT_INFERIOR, "远程驾驶效果受影响"), + SHOW_WARNING(Result.SHOW_WARNING, "存在不确定因素,警示"); /** * 消息result code */ - public final String resultCode; + public final String result; /** * 描述 */ public final String desc; - Result(String resultCode, String desc) { - this.resultCode = resultCode; + ResultDesc(String result, String desc) { + this.result = result; this.desc = desc; } - public static String getDesc(String resultCode) { - switch (resultCode) { - case RESULT_AUTOPILOT_SYSTEM_UNSTARTED: + public static String getDesc(String result) { + switch (result) { + case Result.AUTOPILOT_SYSTEM_UNSTARTED: return AUTOPILOT_SYSTEM_UNSTARTED.desc; - case RESULT_AUTOPILOT_DISABLE: + case Result.AUTOPILOT_DISABLE: return AUTOPILOT_DISABLE.desc; - case RESULT_AUTOPILOT_INFERIOR: + case Result.AUTOPILOT_INFERIOR: return AUTOPILOT_INFERIOR.desc; - case RESULT_REMOTEPILOT_DISABLE: + case Result.REMOTEPILOT_DISABLE: return REMOTEPILOT_DISABLE.desc; - case RESULT_REMOTEPILOT_INFERIOR: + case Result.REMOTEPILOT_INFERIOR: return REMOTEPILOT_INFERIOR.desc; - case RESULT_SHOW_WARNING: + case Result.SHOW_WARNING: return SHOW_WARNING.desc; default: - return resultCode; + return result; } } } - public static final String ACTION_CONTACT_TECH_SUPPORT = "ACTION_CONTACT_TECH_SUPPORT"; - public static final String ACTION_CONTACT_MAINTENANCE = "ACTION_CONTACT_MAINTENANCE"; - public static final String ACTION_CONTACT_HARDWARE_ENGINEER = "ACTION_CONTACT_HARDWARE_ENGINEER"; - public static final String ACTION_REBOOT_PAD = "ACTION_REBOOT_PAD"; - public static final String ACTION_REBOOT_VEHICLE = "ACTION_REBOOT_VEHICLE"; - public static final String ACTION_CHECK_GEAR = "ACTION_CHECK_GEAR"; - public static final String ACTION_CHECK_NETWORK = "ACTION_CHECK_NETWORK"; - public static final String ACTION_TRY_AGAIN_LATER = "ACTION_TRY_AGAIN_LATER"; - public static final String ACTION_REMOTEPILOT_REQUEST = "ACTION_REMOTEPILOT_REQUEST"; - public static final String ACTION_MANUAL_HANDLE_REQUEST = "ACTION_MANUAL_HANDLE_REQUEST"; + public interface Action { + @Deprecated + @ReportState(value = "2.3.0", deprecated = "4.2.0") + String CONTACT_TECH_SUPPORT = "ACTION_CONTACT_TECH_SUPPORT"; + @Deprecated + @ReportState(value = "2.3.0", deprecated = "4.2.0") + String CONTACT_MAINTENANCE = "ACTION_CONTACT_MAINTENANCE"; + @Deprecated + @ReportState(value = "2.3.0", deprecated = "4.2.0") + String CONTACT_HARDWARE_ENGINEER = "ACTION_CONTACT_HARDWARE_ENGINEER"; + @ReportState(value = "2.3.0") + String REBOOT_PAD = "ACTION_REBOOT_PAD"; + @ReportState(value = "2.3.0") + String REBOOT_VEHICLE = "ACTION_REBOOT_VEHICLE"; + @ReportState(value = "2.3.0") + String CHECK_GEAR = "ACTION_CHECK_GEAR"; + @ReportState(value = "2.3.0") + String CHECK_NETWORK = "ACTION_CHECK_NETWORK"; + @ReportState(value = "2.4.0") + String TRY_AGAIN_LATER = "ACTION_TRY_AGAIN_LATER"; + @ReportState(value = "2.11.0") + String REMOTEPILOT_REQUEST = "ACTION_REMOTEPILOT_REQUEST"; + @ReportState(value = "3.3.0") + String MANUAL_HANDLE_REQUEST = "ACTION_MANUAL_HANDLE_REQUEST"; + @ReportState(value = "4.2.0") + String MANUAL_HANDLE_IMMEDIATELY = "ACTION_MANUAL_HANDLE_IMMEDIATELY"; + @ReportState(value = "4.2.0") + String REBOOT_SYSTEM = "ACTION_REBOOT_SYSTEM"; + @ReportState(value = "4.2.0") + String KEEP_POWERON_AND_WAIT = "ACTION_KEEP_POWERON_AND_WAIT"; + } - public enum Action { - CONTACT_TECH_SUPPORT(ACTION_CONTACT_TECH_SUPPORT, "联系技术支持"), - CONTACT_MAINTENANCE(ACTION_CONTACT_MAINTENANCE, "联系运维"), - CONTACT_HARDWARE_ENGINEER(ACTION_CONTACT_HARDWARE_ENGINEER, "联系硬件"), - REBOOT_PAD(ACTION_REBOOT_PAD, "重启Pad"), - REBOOT_VEHICLE(ACTION_REBOOT_VEHICLE, "重启车辆"), - CHECK_GEAR(ACTION_CHECK_GEAR, "检查车辆档位等影响自动驾驶的因素"), - CHECK_NETWORK(ACTION_CHECK_NETWORK, "检查网络连接和路由器等影响通信的因素"), - TRY_AGAIN_LATER(ACTION_TRY_AGAIN_LATER, "请稍后重试"), - REMOTEPILOT_REQUEST(ACTION_REMOTEPILOT_REQUEST, "请求远程驾驶"), - MANUAL_HANDLE_REQUEST(ACTION_MANUAL_HANDLE_REQUEST, "请安全员注意接管"), + public enum ActionDesc { + + CONTACT_TECH_SUPPORT(Action.CONTACT_TECH_SUPPORT, "联系技术支持"), + CONTACT_MAINTENANCE(Action.CONTACT_MAINTENANCE, "联系运维"), + CONTACT_HARDWARE_ENGINEER(Action.CONTACT_HARDWARE_ENGINEER, "联系硬件"), + REBOOT_PAD(Action.REBOOT_PAD, "重启Pad"), + REBOOT_VEHICLE(Action.REBOOT_VEHICLE, "重启车辆"), + CHECK_GEAR(Action.CHECK_GEAR, "检查车辆档位仪表盘等自车因素"), + CHECK_NETWORK(Action.CHECK_NETWORK, "检查网络连接和路由器等通信因素"), + TRY_AGAIN_LATER(Action.TRY_AGAIN_LATER, "请稍后重试"), + REMOTEPILOT_REQUEST(Action.REMOTEPILOT_REQUEST, "请求远程驾驶"), + MANUAL_HANDLE_REQUEST(Action.MANUAL_HANDLE_REQUEST, "请安全员注意接管"), + MANUAL_HANDLE_IMMEDIATELY(Action.MANUAL_HANDLE_IMMEDIATELY, "请安全员立即接管"), + REBOOT_SYSTEM(Action.REBOOT_SYSTEM, "系统软重启"), + KEEP_POWERON_AND_WAIT(Action.KEEP_POWERON_AND_WAIT, "请安全位置停车,保持上电,等待修复完成"), ; /** * 消息Action code */ - public final String actionCode; + public final String action; /** * 描述 */ public final String desc; - Action(String actionCode, String desc) { - this.actionCode = actionCode; + ActionDesc(String action, String desc) { + this.action = action; this.desc = desc; } - public static String getDesc(String actionCode) { - switch (actionCode) { - case ACTION_CONTACT_TECH_SUPPORT: + public static String getDesc(String action) { + switch (action) { + case Action.CONTACT_TECH_SUPPORT: return CONTACT_TECH_SUPPORT.desc; - case ACTION_CONTACT_MAINTENANCE: + case Action.CONTACT_MAINTENANCE: return CONTACT_MAINTENANCE.desc; - case ACTION_CONTACT_HARDWARE_ENGINEER: + case Action.CONTACT_HARDWARE_ENGINEER: return CONTACT_HARDWARE_ENGINEER.desc; - case ACTION_REBOOT_PAD: + case Action.REBOOT_PAD: return REBOOT_PAD.desc; - case ACTION_REBOOT_VEHICLE: + case Action.REBOOT_VEHICLE: return REBOOT_VEHICLE.desc; - case ACTION_CHECK_GEAR: + case Action.CHECK_GEAR: return CHECK_GEAR.desc; - case ACTION_CHECK_NETWORK: + case Action.CHECK_NETWORK: return CHECK_NETWORK.desc; - case ACTION_TRY_AGAIN_LATER: + case Action.TRY_AGAIN_LATER: return TRY_AGAIN_LATER.desc; - case ACTION_REMOTEPILOT_REQUEST: + case Action.REMOTEPILOT_REQUEST: return REMOTEPILOT_REQUEST.desc; - case ACTION_MANUAL_HANDLE_REQUEST: + case Action.MANUAL_HANDLE_REQUEST: return MANUAL_HANDLE_REQUEST.desc; + case Action.MANUAL_HANDLE_IMMEDIATELY: + return MANUAL_HANDLE_IMMEDIATELY.desc; + case Action.REBOOT_SYSTEM: + return REBOOT_SYSTEM.desc; + case Action.KEEP_POWERON_AND_WAIT: + return KEEP_POWERON_AND_WAIT.desc; default: - return actionCode; + return action; } } } @@ -141,7 +180,7 @@ public class MogoReport { * 系统初始化阶段错误 */ interface EINIT { - @CodeInfo("2.4.0") + @ReportState("2.4.0") String LOST_FILE = "EINIT_LOST_FILE";//系统启动时缺失必要文件,或者容器配置错误 } @@ -149,15 +188,17 @@ public class MogoReport { * 硬件故障 */ interface EHW { - @CodeInfo("2.3.0") + @Deprecated + @ReportState(value = "2.3.0", deprecated = "4.2.0") String LIDAR = "EHW_LIDAR";//未检测到雷达 - @CodeInfo("2.3.0") + @Deprecated + @ReportState(value = "2.3.0", deprecated = "4.2.0") String GNSS = "EHW_GNSS";//未检测到gnss @Deprecated - @CodeInfo(value = "2.3.0", deprecated = "3.4.0") + @ReportState(value = "2.3.0", deprecated = "3.4.0") String RTK = "EHW_RTK";//定位不准,gnss节点反馈的状态不是42 @Deprecated - @CodeInfo(value = "2.3.0", deprecated = "3.4.0") + @ReportState(value = "2.3.0", deprecated = "3.4.0") String CAN = "EHW_CAN";//无法与底盘通信,获取不到地盘状态,无法进入自动驾驶 } @@ -166,135 +207,139 @@ public class MogoReport { */ interface EMAP { /*******自动驾驶系统故障*******/ - @CodeInfo("2.3.0") + @ReportState("2.3.0") String NODE = "EMAP_NODE";//节点异常退出 - @CodeInfo("2.3.0") + @ReportState("2.3.0") String NODE_DEAD = "EMAP_NODE_DEAD";//节点异常退出过多,放弃重启 - @CodeInfo("2.5.0") + @ReportState("2.5.0") String DATA_NOT_EXIST = "EMAP_DATA_NOT_EXIST";//无法加载到正确的sqlite文件 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String TRA_NOT_EXIST = "EMAP_TRA_NOT_EXIST";//无法找到轨迹文件 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String TRA_LOAD_FAILED = "EMAP_TRA_LOAD_FAILED";//加载轨迹文件失败 - @CodeInfo("3.3.0") + @ReportState("3.3.0") String ENGINE_INIT_FAILED = "EMAP_ENGINE_INIT_FAILED";//引擎初始化失败,包括轨迹路径不存在;vehicle_config.txt加载失败 - @CodeInfo("3.5.0") + @ReportState("3.5.0") String ATTITUDE_INIT_FAILED = "EMAP_ATTITUDE_INIT_FAILED";//当前位置距离轨迹距离大于15m - @CodeInfo("2.4.0") + @ReportState("2.4.0") String EXIT_AUTOPILOT_FOR_PLANNING = "EMAP_EXIT_AUTOPILOT_FOR_PLANNING";//因planning掉帧强退自动驾驶 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String EXIT_AUTOPILOT_FOR_LOCATION = "EMAP_EXIT_AUTOPILOT_FOR_LOCATION";//因location掉帧强退自动驾驶 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String EXIT_AUTOPILOT_FOR_CHASSIS = "EMAP_EXIT_AUTOPILOT_FOR_CHASSIS";//因底盘消息掉帧强退自动驾驶 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String EXIT_AUTOPILOT_FOR_DISTANCE = "EMAP_EXIT_AUTOPILOT_FOR_DISTANCE";//因planning起点距离当前过远强退自动驾驶 - @CodeInfo("2.7.0") + @ReportState("2.7.0") String EXIT_AUTOPILOT_FOR_BRAKE = "EMAP_EXIT_AUTOPILOT_FOR_BRAKE";//制动踏板干预而强退自动驾驶 - @CodeInfo("2.7.0") + @ReportState("2.7.0") String EXIT_AUTOPILOT_FOR_ACCEL = "EMAP_EXIT_AUTOPILOT_FOR_ACCEL";//加速踏板干预而强退自动驾驶 - @CodeInfo("2.7.0") + @ReportState("2.7.0") String EXIT_AUTOPILOT_FOR_STEER = "EMAP_EXIT_AUTOPILOT_FOR_STEER";//方向盘干预而强退自动驾驶 - @CodeInfo("2.7.0") + @ReportState("2.7.0") String EXIT_AUTOPILOT_FOR_GEAR_SWITCH = "EMAP_EXIT_AUTOPILOT_FOR_GEAR_SWITCH";//档位切换干预而强退自动驾驶 - @CodeInfo("2.7.0") + @ReportState("2.7.0") String EXIT_AUTOPILOT_FOR_CHASSIS_NO_RESPONSE = "EMAP_EXIT_AUTOPILOT_FOR_CHASSIS_NO_RESPONSE";//底盘不响应请求而强退自动驾驶 - @CodeInfo("2.7.0") + @ReportState("2.7.0") String EXIT_AUTOPILOT_FOR_CHASSIS_UNKNOWN = "EMAP_EXIT_AUTOPILOT_FOR_CHASSIS_UNKNOWN";//底盘退出原因未知而强退自动驾驶 - @CodeInfo("2.9.0") + @ReportState("2.9.0") String ENTRY_AUTOPILOT_FOR_CANADAPTER_TIMEOUT = "EMAP_ENTRY_AUTOPILOT_FOR_CANADAPTER_TIMEOUT";//can_adapter消息超时未进入自驾 - @CodeInfo("2.9.0") + @ReportState("2.9.0") String ENTRY_AUTOPILOT_FOR_PLANNING_TIMEOUT = "EMAP_ENTRY_AUTOPILOT_FOR_PLANNING_TIMEOUT";//PLANNING消息超时未进自驾 - @CodeInfo("2.9.0") + @ReportState("2.9.0") String ENTRY_AUTOPILOT_FOR_LOCATION_TIMEOUT = "EMAP_ENTRY_AUTOPILOT_FOR_LOCATION_TIMEOUT";//定位消息超时未进自驾 - @CodeInfo("2.9.0") + @ReportState("2.9.0") String ENTRY_AUTOPILOT_FOR_BRAKE = "EMAP_ENTRY_AUTOPILOT_FOR_BRAKE";//制动踏板干预未进自驾 - @CodeInfo("2.9.0") + @ReportState("2.9.0") String ENTRY_AUTOPILOT_FOR_ACCEL = "EMAP_ENTRY_AUTOPILOT_FOR_ACCEL";//加速踏板干预未进自驾 - @CodeInfo("2.9.0") + @ReportState("2.9.0") String ENTRY_AUTOPILOT_FOR_STEER = "EMAP_ENTRY_AUTOPILOT_FOR_STEER";//方向盘干预未进自驾 - @CodeInfo("2.9.0") + @ReportState("2.9.0") String ENTRY_AUTOPILOT_FOR_GEAR_SWITCH = "EMAP_ENTRY_AUTOPILOT_FOR_GEAR_SWITCH";//档位切换干预未进自驾 - @CodeInfo("3.2.0") + @ReportState("3.2.0") String ENTRY_AUTOPILOT_FOR_DISTANCE = "EMAP_ENTRY_AUTOPILOT_FOR_DISTANCE";//因planning起点距离太远不可进自驾 - @CodeInfo("3.2.0") + @ReportState("3.2.0") String ENTRY_AUTOPILOT_FOR_VEHICLE_ERROR = "EMAP_ENTRY_AUTOPILOT_FOR_VEHICLE_ERROR";//车辆故障需要保修,故障原因见msg信息 - @CodeInfo("3.2.0") + @ReportState("3.2.0") String ENTRY_AUTOPILOT_FOR_CHASSIS_FAULT = "EMAP_ENTRY_AUTOPILOT_FOR_CHASSIS_FAULT";//底盘异常,需要下电重启 - @CodeInfo("3.2.0") + @ReportState("3.2.0") String ENTRY_AUTOPILOT_FOR_UNKNOWN = "EMAP_ENTRY_AUTOPILOT_FOR_UNKNOWN";//进自驾原因确实未知,必须联系软硬件技术进行排查 - @CodeInfo("2.9.0") + @ReportState("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") + @ReportState(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") + @ReportState(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") + @ReportState(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") + @ReportState(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") + @ReportState(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") + @ReportState("3.3.1") String TRAJECTORY_LOST_WHEN_AUTOPILOT = "EMAP_TRAJECTORY_LOST_WHEN_AUTOPILOT";//自驾状态,但是全局轨迹丢失超过1.5s - @CodeInfo("3.3.1") + @ReportState("3.3.1") String PLANNING_FOR_PERCEPTION_TIMEOUT = "EMAP_PLANNING_FOR_PERCEPTION_TIMEOUT";//鹰眼下发进入自驾指令,自车还未进入自驾,感知延迟超过1s - @CodeInfo("3.3.1") + @ReportState("3.3.1") String PLANNING_FOR_HADMAP_ENGINE_LANES_MSG_TIMEOUT = "EMAP_PLANNING_FOR_HADMAP_ENGINE_LANES_MSG_TIMEOUT";//鹰眼下发进入自驾指令,自车还未进入自驾,地图车道数据延迟超过1s - @CodeInfo("3.3.1") + @ReportState("3.3.1") String PLANNING_FOR_PREDICTION_TIMEOUT = "EMAP_PLANNING_FOR_PREDICTION_TIMEOUT";//鹰眼下发进入自驾指令,自车还未进入自驾,预测数据延迟超过1s - @CodeInfo("3.6.0") + @ReportState("3.6.0") String NODE_CPU_EXCEED = "EMAP_NODE_CPU_EXCEED";//节点cpu占用超过阈值 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String NODE_MEMORY_EXCEED = "EMAP_NODE_MEMORY_EXCEED";//节点内存占用超过阈值 /*******平行驾驶相关故障*******/ - @CodeInfo("3.6.0") + @ReportState("3.6.0") String ENTRY_REMOTEPILOT_FOR_BRAKE = "EMAP_ENTRY_REMOTEPILOT_FOR_BRAKE";//制动踏板干预未进平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String ENTRY_REMOTEPILOT_FOR_STEER = "EMAP_ENTRY_REMOTEPILOT_FOR_STEER";//方向盘干预未进平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String ENTRY_REMOTEPILOT_FOR_ACCEL = "EMAP_ENTRY_REMOTEPILOT_FOR_ACCEL";//加速踏板干预未进平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String ENTRY_REMOTEPILOT_FOR_GEAR_SWITCH = "EMAP_ENTRY_REMOTEPILOT_FOR_GEAR_SWITCH";//档位切换干预未进平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String ENTRY_REMOTEPILOT_FOR_CANADAPTER_TIMEOUT = "EMAP_ENTRY_REMOTEPILOT_FOR_CANADAPTER_TIMEOUT";//底盘消息超时未进平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String ENTRY_REMOTEPILOT_FOR_CTRLCMD_TIMEOUT = "EMAP_ENTRY_REMOTEPILOT_FOR_CTRLCMD_TIMEOUT";//平行驾驶控制指令超时未进平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String ENTRY_REMOTEPILOT_FOR_CHASSIS_FAULT = "EMAP_ENTRY_REMOTEPILOT_FOR_CHASSIS_FAULT";//底盘异常未进平行驾驶,需要下电重启 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String ENTRY_REMOTEPILOT_FOR_CHASSIS_NO_RESPONSE = "EMAP_ENTRY_REMOTEPILOT_FOR_CHASSIS_NO_RESPONSE";//底盘不响应请求未进平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String ENTRY_REMOTEPILOT_FOR_OTHER_CTL = "EMAP_ENTRY_REMOTEPILOT_FOR_OTHER_CTL";//其他干预未进平行驾驶,其他干预的原因见msg信息 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String ENTRY_REMOTEPILOT_FOR_VEHICLE_ERROR = "EMAP_ENTRY_REMOTEPILOT_FOR_VEHICLE_ERROR";//车辆故障需要保修,故障原因见msg信息 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String ENTRY_REMOTEPILOT_FOR_UNKNOWN = "EMAP_ENTRY_REMOTEPILOT_FOR_UNKNOWN";//未进平行驾驶原因确实未知,必须联系软硬件技术进行排查 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String EXIT_REMOTEPILOT_FOR_CTRLCMD_TIMEOUT = "EMAP_EXIT_REMOTEPILOT_FOR_CTRLCMD_TIMEOUT";//因平行驾驶控制指令掉帧强退平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String EXIT_REMOTEPILOT_FOR_CANADAPTER_TIMEOUT = "EMAP_EXIT_REMOTEPILOT_FOR_CANADAPTER_TIMEOUT";//因底盘消息掉帧强退平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String EXIT_REMOTEPILOT_FOR_BRAKE = "EMAP_EXIT_REMOTEPILOT_FOR_BRAKE";//制动踏板干预而强退平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String EXIT_REMOTEPILOT_FOR_ACCEL = "EMAP_EXIT_REMOTEPILOT_FOR_ACCEL";//加速踏板干预而强退平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String EXIT_REMOTEPILOT_FOR_STEER = "EMAP_EXIT_REMOTEPILOT_FOR_STEER";//方向盘干预而强退平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String EXIT_REMOTEPILOT_FOR_GEAR_SWITCH = "EMAP_EXIT_REMOTEPILOT_FOR_GEAR_SWITCH";//档位切换干预而强退平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String EXIT_REMOTEPILOT_FOR_CHASSIS_FAULT = "EMAP_EXIT_REMOTEPILOT_FOR_CHASSIS_FAULT";//底盘异常强退平行驾驶,需要下电重启 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String EXIT_REMOTEPILOT_FOR_CHASSIS_NO_RESPONSE = "EMAP_EXIT_REMOTEPILOT_FOR_CHASSIS_NO_RESPONSE";//底盘不响应请求强退平行驾驶 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String EXIT_REMOTEPILOT_FOR_OTHER_CTL = "EMAP_EXIT_REMOTEPILOT_FOR_OTHER_CTL";//其他干预退出平行驾驶,其他干预的原因见msg信息 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String EXIT_REMOTEPILOT_FOR_UNKNOWN = "EMAP_EXIT_REMOTEPILOT_FOR_UNKNOWN";//退出平行驾驶原因确实未知,必须联系软硬件技术进行排查 + @ReportState("4.2.0") + String HOST_CPU_EXCEED = "EMAP_HOST_CPU_EXCEED";//系统cpu占用过高 + @ReportState("4.2.0") + String HOST_MEMORY_EXCEED = "EMAP_HOST_MEMORY_EXCEED";//系统内存占用过高 } @@ -302,7 +347,7 @@ public class MogoReport { * telematics相关故障 */ interface ETELEMATICS { - @CodeInfo("2.3.0") + @ReportState("2.3.0") String AICLOUD_AUTH_ERROR = "ETELEMATICS_AICLOUD_AUTH_ERROR";//telematics连接云端失败 } @@ -311,23 +356,23 @@ public class MogoReport { */ interface EVHC { @Deprecated - @CodeInfo(value = "2.5.0", deprecated = "3.4.0") + @ReportState(value = "2.5.0", deprecated = "3.4.0") String GEAR_INFERENCE = "EVHC_GEAR_INFERENCE";//由于档位干预退出自动驾驶或无法进入自动驾驶 @Deprecated - @CodeInfo(value = "2.5.0", deprecated = "3.4.0") + @ReportState(value = "2.5.0", deprecated = "3.4.0") String BRAKE_INFERENCE = "EVHC_BRAKE_INFERENCE";//由于刹车干预退出自动驾驶或无法进入自动驾驶 @Deprecated - @CodeInfo(value = "2.5.0", deprecated = "3.4.0") + @ReportState(value = "2.5.0", deprecated = "3.4.0") String STEER_INFERENCE = "EVHC_STEER_INFERENCE";//由于方向盘干预退出自动驾驶或无法进入自动驾驶 @Deprecated - @CodeInfo(value = "2.5.0", deprecated = "3.4.0") + @ReportState(value = "2.5.0", deprecated = "3.4.0") String ACCEL_INFERENCE = "EVHC_ACCEL_INFERENCE";//由于油门干预退出自动驾驶或无法进入自动驾驶 @Deprecated - @CodeInfo(value = "2.3.0", deprecated = "3.4.0") + @ReportState(value = "2.3.0", deprecated = "3.4.0") String CSS = "EVHC_CSS";//底盘不允许进入自动驾驶 - @CodeInfo("2.3.0") + @ReportState("2.3.0") String GEAR = "EVHC_GEAR";//档位不是D或N档 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String EPB = "EVHC_EPB";//驻车(手刹)不是锁止(拉起)状态 } @@ -335,62 +380,65 @@ public class MogoReport { * 系统状态检测异常 */ interface ESYS { - @CodeInfo("2.4.0") + @ReportState("2.4.0") String AUTOPILOT_FAILED = "ESYS_AUTOPILOT_FAILED";//在尝试启动自动驾驶,但是超过指定时间后底盘未进入,会发送此事件 @Deprecated - @CodeInfo(value = "2.4.0", deprecated = "2.5.0") + @ReportState(value = "2.4.0", deprecated = "2.5.0") String IN_INIT = "ESYS_IN_INIT";//系统处于启动中,拒绝进入自动驾驶/远程驾驶 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String IN_EXIT = "ESYS_IN_EXIT";//系统处于退出中,拒绝进入自动驾驶 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String NOT_ALLOW_AUTOPILOT_FOR_REMOTE = "ESYS_NOT_ALLOW_AUTOPILOT_FOR_REMOTE";//系统处于远程驾驶中,拒绝进入自动驾驶 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String NOT_ALLOW_REBOOT = "ESYS_NOT_ALLOW_REBOOT";//重启拒绝 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String TOPIC_FREQ_DROPED = "ESYS_TOPIC_FREQ_DROPED";//存在topic严重掉频 @Deprecated - @CodeInfo(value = "2.4.0", deprecated = "3.3.1") + @ReportState(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") + @ReportState(value = "2.4.0", deprecated = "2.5.0") String RTK_STATUS_FAULT = "ESYS_RTK_STATUS_FAULT";//RTK状态持续错误 - @CodeInfo("2.5.0") + @ReportState("2.5.0") String ROUTING_REQ_TIMEOUT = "ESYS_ROUTING_REQ_TIMEOUT";//自动驾驶开始前,routing请求无响应 - @CodeInfo("2.6.0") + @Deprecated + @ReportState(value = "2.6.0", deprecated = "4.2.0") String PLANNING_CHANGE_FAILIED = "ESYS_PLANNING_CHANGE_FAILIED";//planning版本切换启动失败 - @CodeInfo("2.6.0") + @ReportState("2.6.0") String CHECK_TRAJECTORY_FAILURE = "ESYS_CHECK_TRAJECTORY_FAILURE";//轨迹文件检查超时或检查结果无可用轨迹 - @CodeInfo("3.7.0") + @ReportState("3.7.0") String CHECK_TRAJECTORY_TIMEOUT = "ESYS_CHECK_TRAJECTORY_TIMEOUT";//轨迹文件检查超时 - @CodeInfo("3.7.0") + @ReportState("3.7.0") String CHECK_TRAJECTORY_LOADING = "ESYS_CHECK_TRAJECTORY_LOADING";//当前轨迹下载中(检查中) - @CodeInfo("3.5.0") + @ReportState("3.5.0") String TRAJECTORY_AGENT_NOT_READY = "ESYS_TRAJECTORY_AGENT_NOT_READY";//轨迹下载客户端未就绪拒绝轨迹下载请求 - @CodeInfo("3.5.0") + @ReportState("3.5.0") String MAP_ENGINE_NOT_READY = "ESYS_MAP_ENGINE_NOT_READY";//地图引擎未就绪拒绝自驾 - @CodeInfo("2.5.0") + @ReportState("2.5.0") String FAULT = "ESYS_FAULT";//master启动10分钟,仍有agent未连接 - @CodeInfo("2.8.0") + @ReportState("2.8.0") String REBOOT_WARNING = "ESYS_REBOOT_WARNING";//命令重启不完全提示(部分模块没有关闭成功) - @CodeInfo("2.8.0") + @ReportState("2.8.0") String CAN_MSG_LOST = "ESYS_CAN_MSG_LOST";//master接收底盘消息超时 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String AGENT_NET_TIMEOUT = "ESYS_AGENT_NET_TIMEOUT";//ssm agent 心跳连接master超时 + @ReportState("4.1.0") + String ROUTING_RESPONSE_FAIL = "ESYS_ROUTING_RESPONSE_FAIL";//算路异常,拒绝自动驾驶 /*******update_config_simple 配置(包含轨迹)下载相关异常*******/ - @CodeInfo("3.3.0") + @ReportState("3.3.0") String CONFIG_UPDATING_SPEED_JUMP = "ESYS_CONFIG_UPDATING_SPEED_JUMP";//文件下载速度跳变,低于阈值 - @CodeInfo("3.3.0") + @ReportState("3.3.0") String CONFIG_UPDATING_INPUT_PARAM_ABNORMAL = "ESYS_CONFIG_UPDATING_INPUT_PARAM_ABNORMAL";//配置下载传入参数异常 - @CodeInfo("3.3.0") + @ReportState("3.3.0") String CONFIG_UPDATING_DNS_ERROR = "ESYS_CONFIG_UPDATING_DNS_ERROR";//DNS解析异常 - @CodeInfo("3.3.0") + @ReportState("3.3.0") String CONFIG_UPDATING_URL_NOT_ARRIVED = "ESYS_CONFIG_UPDATING_URL_NOT_ARRIVED";//url不可达 - @CodeInfo("3.3.0") + @ReportState("3.3.0") String CONFIG_UPDATING_MD5_CHECK_ERROR = "ESYS_CONFIG_UPDATING_MD5_CHECK_ERROR";//md5检查失败 - @CodeInfo("3.3.0") + @ReportState("3.3.0") String CONFIG_UPDATING_REJECT_SAME_TRAJ_TASK = "ESYS_CONFIG_UPDATING_REJECT_SAME_TRAJ_TASK";//拒绝同名轨迹任务 - @CodeInfo("3.5.0") + @ReportState("3.5.0") String CONFIG_UPDATING_HTTP_FAILED = "ESYS_CONFIG_UPDATING_HTTP_FAILED";//获取下载列表失败 } @@ -398,36 +446,40 @@ public class MogoReport { * 系统异常状态上报 */ interface ESSM { - @CodeInfo("2.10.0") + @ReportState("2.10.0") String IN_INIT = "ESSM_IN_INIT";//SSM初始化,非任何模式,拒绝进入自动驾驶/平行驾驶 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String IN_EXIT = "ESSM_IN_EXIT";//SSM处于停止模式,拒绝进入自动驾驶/平行驾驶 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String AUTOPILOT_UNREADY = "ESSM_AUTOPILOT_UNREADY";//因自动驾驶状态未就绪拒绝自驾 - @CodeInfo("3.3.0") + @ReportState("3.3.0") String AUTOPILOT_KEY_NODE_BORKEN = "ESSM_AUTOPILOT_KEY_NODE_BORKEN";//因自驾驾驶关键节点挂掉拒绝自动驾驶 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String REMOTEPILOT_UNREADY = "ESSM_REMOTEPILOT_UNREADY";//因平行驾驶状态未就绪拒绝平行驾驶 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MAP_IMAGE_DIFF = "ESSM_MAP_IMAGE_DIFF";//Agent镜像存在版本不一致的问题 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String SYS_TIME_SKIPED = "ESSM_SYS_TIME_SKIPED";//系统时间发生跳变 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String ROSCORE_HAVE_REBOOT = "ESSM_ROSCORE_HAVE_REBOOT";//roscore发生重启,触发所有节点重启 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String COLD_START_TIMEOUT = "ESSM_COLD_START_TIMEOUT";//系统冷启动超时未完成 - @CodeInfo("3.3.0") + @ReportState("3.3.0") String HAVE_AGENT_LOST_CONNECT = "ESSM_HAVE_AGENT_LOST_CONNECT";//存在agent失联 - @CodeInfo("3.3.1") + @Deprecated + @ReportState(value = "3.3.1", deprecated = "4.2.0") String IGNORED_CMD_DUE_PAD_CONTROL = "ESSM_IGNORED_CMD_DUE_PAD_CONTROL";//pad自驾中,拒绝云控的自驾命令 - @CodeInfo("3.3.1") + @Deprecated + @ReportState(value = "3.3.1", deprecated = "4.2.0") String IGNORED_CMD_DUE_AICLOUD_CONTROL = "ESSM_IGNORED_CMD_DUE_AICLOUD_CONTROL";//云控自驾中,拒绝pad的自驾命令 } interface EAGENT { - @CodeInfo("2.4.0") + @Deprecated + @ReportState(value = "2.4.0", deprecated = "4.2.0") String FATAL = "EAGENT_FATAL";//agent严重故障,无法恢复 - @CodeInfo("2.4.0") + @Deprecated + @ReportState(value = "2.4.0", deprecated = "4.2.0") String MASTER_COMMAND_HANDLER_FAILED = "EAGENT_MASTER_COMMAND_HANDLER_FAILED";//agent未能成功执行master指令 } @@ -435,13 +487,13 @@ public class MogoReport { * 相机相关异常 */ interface ECAM { - @CodeInfo("2.5.0") + @ReportState("2.5.0") String INIT = "ECAM_INIT";//相机初始化失败 - @CodeInfo("2.5.0") + @ReportState("2.5.0") String CALIB = "ECAM_CALIB";//标定信息读取失败 - @CodeInfo("2.7.0") + @ReportState("2.7.0") String GRAB_FATAL = "ECAM_GRAB_FATAL";//相机数据采集异常 - @CodeInfo("3.5.0") + @ReportState("3.5.0") String TS_ERROR = "ECAM_TS_ERROR";//图像时间戳异常 } @@ -450,9 +502,9 @@ public class MogoReport { * 定位异常 */ interface ELCT { - @CodeInfo("2.5.0") + @ReportState("2.5.0") String RTK_STATUS_FAULT = "ELCT_RTK_STATUS_FAULT";//RTK状态错误 - @CodeInfo("2.5.0") + @ReportState("2.5.0") String RTK_STATUS_UNKNOWN = "ELCT_RTK_STATUS_UNKNOWN";//RTK状态不确定 } @@ -460,9 +512,9 @@ public class MogoReport { * 推流异常 */ interface EPUSH { - @CodeInfo("2.10.0") + @ReportState("2.10.0") String VIDEO_INIT_ERROR = "EPUSH_VIDEO_INIT_ERROR";//初始化失败 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String VIDEO_START_SERVICE_ERROR = "EPUSH_VIDEO_START_SERVICE_ERROR";//启动服务失败 } @@ -470,25 +522,29 @@ public class MogoReport { * 录包异常 */ interface ERECORD { - @CodeInfo("2.10.0") + @ReportState("2.10.0") String TASK_BAG_INIT = "ERECORD_TASK_BAG_INIT";//包初始化失败 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String TASK_SPACE = "ERECORD_TASK_SPACE";//空间不足 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String TASK_CONFIG_EMPTY = "ERECORD_TASK_CONFIG_EMPTY";//配置为空 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String TASK_QUEUE_EMPTY = "ERECORD_TASK_QUEUE_EMPTY";//数据队列为空 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String TASK_NODE_TO_TOPICS_EMPTY = "ERECORD_TASK_NODE_TO_TOPICS_EMPTY";//通过节点名获取不到topic列表---ROS2版本新增 + @ReportState("4.1.0") + String FRAMES_DROPPED = "ERECORD_FRAMES_DROPPED";//录包丢帧 + @ReportState("4.1.0") + String DISK_IO_SPEED_TOO_HIGH = "ERECORD_DISK_IO_SPEED_TOO_HIGH";//磁盘写入速度过高 } /** * 平行驾驶相关异常 */ interface EPARALLEL { - @CodeInfo("2.11.0") + @ReportState("2.11.0") String AICLOUD_CONNECTION_ERROR = "EPARALLEL_AICLOUD_CONNECTION_ERROR";//平行驾驶长连接异常 断网(此时不符合平行驾驶条件) 平行驾驶退出到自驾,同时减速停车 - @CodeInfo("3.3.0") + @ReportState("3.3.0") String AICLOUD_NETWORK_WEAK = "EPARALLEL_AICLOUD_NETWORK_WEAK";//车端系统检测到弱网 弱网 平行驾驶退出到自驾,同时减速停车 } @@ -496,7 +552,7 @@ public class MogoReport { * 车辆处于困境,等待平行驾驶接管 */ interface EVEHICLE { - @CodeInfo("2.11.0") + @ReportState("2.11.0") String IN_TROUBLE = "EVEHICLE_IN_TROUBLE";//planning 检测到车处于困境,把困境状态汇报给 SSM,ssm 发出该事件,等待驾舱端开始平行驾驶 } @@ -504,28 +560,60 @@ public class MogoReport { * EFM(FM故障) */ interface EFM { - @CodeInfo("3.4.0") + @ReportState("3.4.0") String ERROR3_STOP_PILOT = "EFM_ERROR3_STOP_PILOT";//触发降级停车策略 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String ERROR2_FUNC_FORBID = "EFM_ERROR2_FUNC_FORBID";//禁止车辆部分功能 } + + /** + * 出车标定自检 + */ + interface ECLB { + @ReportState("4.1.0") + String LIDAR_CHECK_SUCCESS_EXT_BAD = "ECLB_LIDAR_CHECK_SUCCESS_EXT_BAD";//lidar标定自检成功,外参异常 + @ReportState("4.1.0") + String CAMERA_CHECK_SUCCESS_EXT_BAD = "ECLB_CAMERA_CHECK_SUCCESS_EXT_BAD";//camera标定自检成功,外参异常 + @ReportState("4.1.0") + String RADAR_CHECK_SUCCESS_EXT_BAD = "ECLB_RADAR_CHECK_SUCCESS_EXT_BAD";//radar标定自检成功,外参异常 + @ReportState("4.1.0") + String LIDAR_CHECK_FAILED = "ECLB_LIDAR_CHECK_FAILED";//lidar标定自检算法失败,无法判定外参是否正常,建议重试 + @ReportState("4.1.0") + String CAMERA_CHECK_FAILED = "ECLB_CAMERA_CHECK_FAILED";//camera标定自检算法失败,无法判定外参是否正常,建议重试 + @ReportState("4.1.0") + String RADAR_CHECK_FAILED = "ECLB_RADAR_CHECK_FAILED";//radar标定自检算法失败,无法判定外参是否正常,建议重试 + } } /** * 常规类型 */ interface Info { + /** + * 出车标定自检 + */ + interface ICLB { + @ReportState("4.1.0") + String LIDAR_CHECK_SUCCESS_EXT_GOOD = "ICLB_LIDAR_CHECK_SUCCESS_EXT_GOOD";//lidar标定自检成功,外参正常 + @ReportState("4.1.0") + String CAMERA_CHECK_SUCCESS_EXT_GOOD = "ICLB_CAMERA_CHECK_SUCCESS_EXT_GOOD";//camera标定自检成功,外参正常 + @ReportState("4.1.0") + String RADAR_CHECK_SUCCESS_EXT_GOOD = "ICLB_RADAR_CHECK_SUCCESS_EXT_GOOD";//radar标定自检成功,外参正常 + } + /** * 系统初始化阶段 */ interface IINIT { - @CodeInfo("2.4.0") + @ReportState("2.4.0") String BOOST = "IINIT_BOOST";//linux系统已启动(此事件会延迟发出,timestamp填linux启动时的事件) - @CodeInfo("2.3.0") + @ReportState("2.3.0") String TIME_SYNC = "IINIT_TIME_SYNC";//时间已同步 - @CodeInfo("2.3.0") + @Deprecated + @ReportState(value = "2.3.0", deprecated = "4.2.0") String SENSOR_NORMAL = "IINIT_SENSOR_NORMAL";//各传感器正常 - @CodeInfo("2.3.0") + @Deprecated + @ReportState(value = "2.3.0", deprecated = "4.2.0") String MAP_STARTED = "IBOOT_MAP_STARTED";//当前xavier上所有节点已启动成功 } @@ -534,51 +622,54 @@ public class MogoReport { * 自动驾驶运行信息 */ interface IMAP { - @CodeInfo("2.4.0") + @ReportState("2.4.0") String TRA_EXIST = "IMAP_TRA_EXIST";//已找到轨迹文件 - @CodeInfo("2.5.0") + @ReportState("2.5.0") String DATA_EXIST = "IMAP_DATA_EXIST";//加载正确的sqlite - @CodeInfo("2.4.0") + @ReportState("2.4.0") String TRA_LOADED = "IMAP_TRA_LOADED";//轨迹文件加载成功 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String TRA_ROUTING = "IMAP_TRA_ROUTING";//算路成功 - @CodeInfo("2.6.0") + @ReportState("2.6.0") String TRA_TYPE = "IMAP_TRA_TYPE";//加载轨迹类型通知 - @CodeInfo("2.7.0") + @ReportState("2.7.0") String PARAM_SERVER = "IMAP_PARAM_SERVER";//当前系统使用的param server版本(rosmaster或redis) - @CodeInfo("3.6.0") + @ReportState("3.6.0") String ENGINE_INIT_FINISHED = "IMAP_ENGINE_INIT_FINISHED";//地图引擎初始化完成 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String RECEIVED_ROUTING_REQUEST = "IMAP_RECEIVED_ROUTING_REQUEST";//成功接收订单信息 - @CodeInfo("2.8.0") + @ReportState("2.8.0") String ENTRY_AUTOPILOT = "IMAP_ENTRY_AUTOPILOT";//控制进入自动驾驶成功 - @CodeInfo("3.3.1") + @ReportState("3.3.1") String PLANNING_FOR_PREDICTION_RECEIVED = "IMAP_PLANNING_FOR_PREDICTION_RECEIVED";//自车进入车自驾,收到预测消息时解除预测数据超时警报 - @CodeInfo("3.3.1") + @ReportState("3.3.1") String PLANNING_FOR_HADMAP_ENGINE_LANES_MSG_RECEIVED = "IMAP_PLANNING_FOR_HADMAP_ENGINE_LANES_MSG_RECEIVED";//自车进入车自驾,收到地图车道消息时解除地图数据超时警报 - @CodeInfo("3.3.1") + @ReportState("4.2.0") + String PLANNING_FOR_RECEPTION_RECEIVED = "IMAP_PLANNING_FOR_RECEPTION_RECEIVED";//自车进入车自驾, 收到感知消息时解除感知数据超时警报 + @Deprecated + @ReportState(value = "3.3.1", deprecated = "4.2.0") String PLANNING_FOR_PERCEPTION_RECEIVED = "IMAP_PLANNING_FOR_PERCEPTION_RECEIVED";//自车进入车自驾,收到感知消息时解除感知数据超时警报 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String START_AUTOPILOT = "IMAP_START_AUTOPILOT";//控制侧开始自驾 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String EXIT_AUTOPILOT = "IMAP_EXIT_AUTOPILOT";//控制侧正常退出自驾 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String START_REMOTEPILOT = "IMAP_START_REMOTEPILOT";//控制侧开始平行驾驶 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String ENTRY_REMOTEPILOT = "IMAP_ENTRY_REMOTEPILOT";//控制侧进入平行驾驶 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String EXIT_REMOTEPILOT = "IMAP_EXIT_REMOTEPILOT";//控制侧退出平行驾驶 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String CONTROLLER_START_FM_COMMAND = "IMAP_CONTROLLER_START_FM_COMMAND";//控制侧开始故障处理命令 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String CONTROLLER_FINISH_FM_COMMAND = "IMAP_CONTROLLER_FINISH_FM_COMMAND";//控制侧完成故障处理命令 - @CodeInfo("3.7.1") + @ReportState("3.7.1") String CONTROLLER_ABORT_FM_COMMAND = "IMAP_CONTROLLER_ABORT_FM_COMMAND";//控制侧未完成停车但终止,原因写入msg - @CodeInfo("3.7.1") + @ReportState("3.7.1") String PLANNING_START_FM_COMMAND = "IMAP_PLANNING_START_FM_COMMAND";//规划开始执行故障停车处理命令 - @CodeInfo("3.7.1") + @ReportState("3.7.1") String PLANNING_FINISH_FM_COMMAND = "IMAP_PLANNING_FINISH_FM_COMMAND";//规划完成故障停车处理命令 - @CodeInfo("3.7.1") + @ReportState("3.7.1") String PLANNING_ABORT_FM_COMMAND = "IMAP_PLANNING_ABORT_FM_COMMAND";//规划未完成停车但终止,原因写入msg } @@ -587,11 +678,11 @@ public class MogoReport { */ interface ITELEMATICS { @Deprecated - @CodeInfo(value = "2.4.0", deprecated = "2.5.0") + @ReportState(value = "2.4.0", deprecated = "2.5.0") String ROUTING_REQUEST_SENT = "ITELEMATICS_ROUTING_REQUEST_SENT";//已发送算路请求 - @CodeInfo("2.3.0") + @ReportState("2.3.0") String AUTOPILOT_CMD_FORWARDED = "ITELEMATICS_AUTOPILOT_CMD_FORWARDED";//自动驾驶命令已转发 - @CodeInfo("2.3.0") + @ReportState("2.3.0") String AICLOUD_AUTH_OK = "ITELEMATICS_AICLOUD_AUTH_OK";//aicloud连接认证成功 } @@ -601,70 +692,78 @@ public class MogoReport { */ interface ISYS { /*******常规信息*******/ - @CodeInfo("2.4.0") + @ReportState("2.4.0") String STARTING = "ISYS_STARTING";//系统启动中 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String RUNNING = "ISYS_RUNNING";//所有Xavier启动完成 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String EXITING = "ISYS_EXITING";//系统退出中 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String AUTOPILOT_READY = "ISYS_AUTOPILOT_READY";//自动驾驶状态就绪 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String AUTOPILOT_STARTING = "ISYS_AUTOPILOT_STARTING";//自动驾驶启动中 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String AUTOPILOT_RUNING = "ISYS_AUTOPILOT_RUNING";//自动驾驶运行中 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String TOPIC_FREQ_NORMAL = "ISYS_TOPIC_FREQ_NORMAL";//topic频率正常或者恢复正常 @Deprecated - @CodeInfo(value = "2.4.0", deprecated = "2.5.0") + @ReportState(value = "2.4.0", deprecated = "2.5.0") String RTK_STATUS_NORMAL = "ISYS_RTK_STATUS_NORMAL";//rtk状态正常或恢复正常 - @CodeInfo("2.4.0") + @ReportState("2.4.0") String CAN_NORMAL = "ISYS_CAN_NORMAL";//底盘状态正常或恢复正常 - @CodeInfo("2.5.0") + @ReportState("2.5.0") String REOMTEPILOT_STARTING = "ISYS_REOMTEPILOT_STARTING";//平行驾驶启动中 - @CodeInfo("2.5.0") + @ReportState("2.5.0") String REOMTEPILOT_RUNING = "ISYS_REOMTEPILOT_RUNING";//平行驾驶运行中 - @CodeInfo("2.6.0") + @ReportState("2.6.0") String SYSTEM_IN_IDLE = "ISYS_SYSTEM_IN_IDLE";//系统进入空闲状态 - @CodeInfo("2.6.0") + @ReportState("2.6.0") String SYSTEM_OUT_IDLE = "ISYS_SYSTEM_OUT_IDLE";//系统退出空闲状态 - @CodeInfo("3.3.0") + @ReportState("3.3.0") String ALREADY_AUTOPILOT_STATE = "ISYS_ALREADY_AUTOPILOT_STATE";//已经在自驾状态驾驶,继续自驾命令 - @CodeInfo("3.3.1") + @Deprecated + @ReportState(value = "3.3.1", deprecated = "4.2.0") String AUTOPILOT_TAKEN_OVER_BY_REMOTE = "ISYS_AUTOPILOT_TAKEN_OVER_BY_REMOTE";//自动驾驶被远程驾驶接管 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String AUTOPILOT_TRA_LOADED = "ISYS_AUTOPILOT_TRA_LOADED";//自动驾驶路线加载成功 - @CodeInfo("3.6.0") + @ReportState("3.6.0") String AUTOPILOT_SHELL_WASTETIME = "ISYS_AUTOPILOT_SHELL_WASTETIME";//记录autopilot.sh脚本耗时 /*******轨迹下载相关*******/ - @CodeInfo("2.5.0") + @ReportState("2.5.0") String INIT_TRAJECTORY_START = "ISYS_INIT_TRAJECTORY_START";//轨迹管理_轨迹开始下载 - @CodeInfo("2.5.0") + @ReportState("2.5.0") String INIT_TRAJECTORY_SUCCESS = "ISYS_INIT_TRAJECTORY_SUCCESS";//轨迹管理_轨迹下载成功 - @CodeInfo("2.5.0") + @ReportState("2.5.0") String INIT_TRAJECTORY_FAILURE = "ISYS_INIT_TRAJECTORY_FAILURE";//轨迹管理_轨迹下载失败,本地无对应轨迹 - @CodeInfo("2.5.0") + @ReportState("2.5.0") String INIT_TRAJECTORY_WARNING = "ISYS_INIT_TRAJECTORY_WARNING";//轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功 - @CodeInfo("2.5.0") + @ReportState("2.5.0") String INIT_TRAJECTORY_TIMEOUT = "ISYS_INIT_TRAJECTORY_TIMEOUT";//轨迹管理_轨迹下载超时 /*******配置更新相关*******/ - @CodeInfo("2.6.0") + @Deprecated + @ReportState(value = "2.6.0", deprecated = "4.2.0") String CONFIG_UPDATE_HADMAP = "ISYS_CONFIG_UPDATE_HADMAP";//需要重启升级高精地图 - @CodeInfo("2.9.0") + @Deprecated + @ReportState(value = "2.9.0", deprecated = "4.2.0") String CONFIG_UPDATE_AI_MODEL = "ISYS_CONFIG_UPDATE_AI_MODEL";//需要重启升级AI模型 - @CodeInfo("2.9.0") + @Deprecated + @ReportState(value = "2.9.0", deprecated = "4.2.0") String CONFIG_UPDATE_SLAM_MAP = "ISYS_CONFIG_UPDATE_SLAM_MAP";//需要重启升级SLAM地图 - @CodeInfo("2.10.0") + @Deprecated + @ReportState(value = "2.10.0", deprecated = "4.2.0") String CONFIG_UPDATING_HD_MAP = "ISYS_CONFIG_UPDATING_HD_MAP";//高精地图更新中 - @CodeInfo("2.10.0") + @Deprecated + @ReportState(value = "2.10.0", deprecated = "4.2.0") String CONFIG_UPDATING_SLAM_MAP = "ISYS_CONFIG_UPDATING_SLAM_MAP";//slam 地图更新中 - @CodeInfo("2.10.0") + @Deprecated + @ReportState(value = "2.10.0", deprecated = "4.2.0") String CONFIG_UPDATING_AI_MODEL = "ISYS_CONFIG_UPDATING_AI_MODEL";//AI模型更新中 - @CodeInfo("2.10.0") + @Deprecated + @ReportState(value = "2.10.0", deprecated = "4.2.0") String CONFIG_UPDATING_GRID_MAP = "ISYS_CONFIG_UPDATING_GRID_MAP";//珊格地图更新中 - @CodeInfo("3.5.0") + @ReportState("3.5.0") String TRAJECTORY_AGENT_READY = "ISYS_TRAJECTORY_AGENT_READY";//配置下载客户端已就绪 } @@ -672,28 +771,32 @@ public class MogoReport { * 系统状态 常规信息 */ interface ISSM { - @CodeInfo("2.10.0") + @ReportState("2.10.0") String INIT = "ISSM_INIT";//SSM系统上电初始化 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String RESTARTED = "ISSM_RESTARTED";//SSM系统发生重启 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String AUTO_PILOT_STATE_CHANGE = "ISSM_AUTO_PILOT_STATE_CHANGE";//自驾状态变化,msg填写 1 to 0 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String REMOTE_PILOT_STATE_CHANGE = "ISSM_REMOTE_PILOT_STATE_CHANGE";//平行驾驶状态变化, msg填写 1 to 6 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String AUTO_PILOT_FINISH = "ISSM_AUTO_PILOT_FINISH";//一次自驾请求处理结束 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String REMOTE_PILOT_FINISH = "ISSM_REMOTE_PILOT_FINISH";//一次平行驾驶处理结束 - @CodeInfo("3.7.0") + @ReportState("3.7.0") String OTA_UPGRADE_START = "ISSM_OTA_UPGRADE_START";//OTA升级开始(升级内容见msg) - @CodeInfo("3.7.0") + @ReportState("3.7.0") String OTA_UPGRADE_FINISH = "ISSM_OTA_UPGRADE_FINISH";//OTA升级结束(升级内容见msg) - @CodeInfo("3.8.0") + @ReportState("3.8.0") String OTA_UPGRADE_LOADING = "ISSM_OTA_UPGRADE_LOADING";//OTA升级进行中 - @CodeInfo("3.7.0") + @ReportState("3.7.0") String RECEIVE_SHUTDOWN_SIGNAL = "ISSM_RECEIVE_SHUTDOWN_SIGNAL";//SSM收到下电信号 - @CodeInfo("3.3.0") + @ReportState("3.3.0") String HAVE_AGENT_CONNECTED = "ISSM_HAVE_AGENT_CONNECTED";//agent已连接成功 + @ReportState("4.1.0") + String MAN_START_NODE = "ISSM_MAN_START_NODE";//调试开启指定节点 + @ReportState("4.1.0") + String MAN_STOP_NODE = "ISSM_MAN_STOP_NODE";//调试关闭指定节点 // String MODE_XX_START = "ISSM_MODE_XX_START";//SSM变更模式开始 // String MODE_XX_FINISH = "ISSM_MODE_XX_FINISH";//SSM变更模式完成(第一次ready) @@ -704,45 +807,60 @@ public class MogoReport { //以上6组被注释掉的字段 中的MODE_XX分别替换成MODE_RUN、MODE_IDLE、MODE_STOP - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_RUN_START = "ISSM_MODE_RUN_START";//SSM变更模式开始 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_RUN_FINISH = "ISSM_MODE_RUN_FINISH";//SSM变更模式完成(第一次ready) - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_RUN_ABORT = "ISSM_MODE_RUN_ABORT";//SSM变更模式中止 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_RUN_TIMEOUT = "ISSM_MODE_RUN_TIMEOUT";//SSM变更模式超时 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_RUN_READY = "ISSM_MODE_RUN_READY";//SSM模式就绪 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_RUN_UNREADY = "ISSM_MODE_RUN_UNREADY";//SSM未就绪 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_IDLE_START = "ISSM_MODE_IDLE_START";//SSM变更模式开始 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_IDLE_FINISH = "ISSM_MODE_IDLE_FINISH";//SSM变更模式完成(第一次ready) - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_IDLE_ABORT = "ISSM_MODE_IDLE_ABORT";//SSM变更模式中止 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_IDLE_TIMEOUT = "ISSM_MODE_IDLE_TIMEOUT";//SSM变更模式超时 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_IDLE_READY = "ISSM_MODE_IDLE_READY";//SSM模式就绪 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_IDLE_UNREADY = "ISSM_MODE_IDLE_UNREADY";//SSM未就绪 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_STOP_START = "ISSM_MODE_STOP_START";//SSM变更模式开始 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_STOP_FINISH = "ISSM_MODE_STOP_FINISH";//SSM变更模式完成(第一次ready) - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_STOP_ABORT = "ISSM_MODE_STOP_ABORT";//SSM变更模式中止 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_STOP_TIMEOUT = "ISSM_MODE_STOP_TIMEOUT";//SSM变更模式超时 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_STOP_READY = "ISSM_MODE_STOP_READY";//SSM模式就绪 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String MODE_STOP_UNREADY = "ISSM_MODE_STOP_UNREADY";//SSM未就绪 + + @ReportState("4.2.0") + String MODE_RUN_STOP = "ISSM_MODE_RUN_STOP";//SSM变更模式结束-运行模式 + @ReportState("4.2.0") + String MODE_IDLE_STOP = "ISSM_MODE_IDLE_STOP";//SSM变更模式结束-空闲模式 + @ReportState("4.2.0") + String MODE_STOP_STOP = "ISSM_MODE_STOP_STOP";//SSM变更模式结束-停止模式 + @ReportState("4.2.0") + String FUNC_REMOTE_PILOT_STOP = "ISSM_FUNC_REMOTE_PILOT_STOP";//产品状态检查结束-平行驾驶状态 + @ReportState("4.2.0") + String FUNC_AUTO_PILOT_STOP = "ISSM_FUNC_AUTO_PILOT_STOP";//产品状态检查结束-自动驾驶状态 + @ReportState("4.2.0") + String FUNC_COLD_START_STOP = "ISSM_FUNC_COLD_START_STOP";//产品状态检查结束-冷启动状态 + + // String FUNC_YY_START = "ISSM_FUNC_YY_START";//产品状态检查开始 // String FUNC_YY_FINISH = "ISSM_FUNC_YY_FINISH";//产品状态达成(第一次ready) // String FUNC_YY_TIMEOUT = "ISSM_FUNC_YY_TIMEOUT";//产品状态检查超时 @@ -751,60 +869,61 @@ 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") + @ReportState("2.10.0") String FUNC_COLD_START_START = "ISSM_FUNC_COLD_START_START";//产品状态检查开始 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_COLD_START_FINISH = "ISSM_FUNC_COLD_START_FINISH";//产品状态达成(第一次ready) - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_COLD_START_TIMEOUT = "ISSM_FUNC_COLD_START_TIMEOUT";//产品状态检查超时 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_COLD_START_ABORT = "ISSM_FUNC_COLD_START_ABORT";//产品状态检查中止 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_COLD_START_UNREADY = "ISSM_FUNC_COLD_START_UNREADY";//产品状态未就绪 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_COLD_START_READY = "ISSM_FUNC_COLD_START_READY";//产品状态就绪 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_AUTO_PILOT_START = "ISSM_FUNC_AUTO_PILOT_START";//产品状态检查开始 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_AUTO_PILOT_FINISH = "ISSM_FUNC_AUTO_PILOT_FINISH";//产品状态达成(第一次ready) - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_AUTO_PILOT_TIMEOUT = "ISSM_FUNC_AUTO_PILOT_TIMEOUT";//产品状态检查超时 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_AUTO_PILOT_ABORT = "ISSM_FUNC_AUTO_PILOT_ABORT";//产品状态检查中止 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_AUTO_PILOT_UNREADY = "ISSM_FUNC_AUTO_PILOT_UNREADY";//产品状态未就绪 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_AUTO_PILOT_READY = "ISSM_FUNC_AUTO_PILOT_READY";//产品状态就绪 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_REMOTE_PILOT_START = "ISSM_FUNC_REMOTE_PILOT_START";//产品状态检查开始 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_REMOTE_PILOT_FINISH = "ISSM_FUNC_REMOTE_PILOT_FINISH";//产品状态达成(第一次ready) - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_REMOTE_PILOT_TIMEOUT = "ISSM_FUNC_REMOTE_PILOT_TIMEOUT";//产品状态检查超时 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_REMOTE_PILOT_ABORT = "ISSM_FUNC_REMOTE_PILOT_ABORT";//产品状态检查中止 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_REMOTE_PILOT_UNREADY = "ISSM_FUNC_REMOTE_PILOT_UNREADY";//产品状态未就绪 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String FUNC_REMOTE_PILOT_READY = "ISSM_FUNC_REMOTE_PILOT_READY";//产品状态就绪 } interface IAGENT { - @CodeInfo("2.4.0") + @Deprecated + @ReportState(value = "2.4.0", deprecated = "4.2.0") String EXECUTE_MASTER_COMMAND = "IAGENT_EXECUTE_MASTER_COMMAND";//执行系统指令成功 } interface ICAM { - @CodeInfo("2.5.0") + @ReportState("2.5.0") String READY = "ICAM_READY";//相机已就绪 } interface ILCT { - @CodeInfo("2.5.0") + @ReportState("2.5.0") String RTK_STATUS_NORMAL = "ILCT_RTK_STATUS_NORMAL";//rtk状态正常或恢复正常 - @CodeInfo("2.6.0") + @ReportState("2.6.0") String RTK_OR_SLAM_CHANGE = "ILCT_RTK_OR_SLAM_CHANGE";//定位输出源发生RTK和SLAM变换 } @@ -812,9 +931,9 @@ public class MogoReport { * 推流状态 */ interface IPUSH { - @CodeInfo("2.10.0") + @ReportState("2.10.0") String VIDEO_INIT_SUCCESS = "IPUSH_VIDEO_INIT_SUCCESS";//推流初始化成功 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String VIDEO_START_SERVICE_SUCCESS = "IPUSH_VIDEO_START_SERVICE_SUCCESS";//推流服务启动成功 } @@ -822,9 +941,9 @@ public class MogoReport { * 录包状态 */ interface IRECORDER { - @CodeInfo("2.10.0") + @ReportState("2.10.0") String TASK_AUTO = "IRECORDER_TASK_AUTO";//自动录包任务创建 - @CodeInfo("2.10.0") + @ReportState("2.10.0") String TASK_CMD = "IRECORDER_TASK_CMD";//指令录包任务创建 } @@ -832,7 +951,7 @@ public class MogoReport { * 平行驾驶相关 */ interface IPARALLEL { - @CodeInfo("2.11.0") + @ReportState("2.11.0") String AICLOUD_CONNECTION_OK = "IPARALLEL_AICLOUD_CONNECTION_OK";//长连接连接恢复后, 5s 内如果长连状态一直 ok 的话,会触发该事件 建议鹰眼展示该事件 } @@ -840,7 +959,7 @@ public class MogoReport { * 车辆处于困境相关 */ interface IVEHICLE { - @CodeInfo("2.11.0") + @ReportState("2.11.0") String NOT_IN_TROUBLE = "IVEHICLE_NOT_IN_TROUBLE";//车辆脱离困境,恢复正常,可继续开始自动驾驶了 触发频率:处于困境中,触发一次; 脱困后,触发一次 云端驾舱会接入该事件 建议鹰眼也接入,展示困境状态/脱困状态 } @@ -848,11 +967,11 @@ public class MogoReport { * IFSM(功能状态管理) */ interface IFSM { - @CodeInfo("3.5.0") + @ReportState("3.5.0") String AUTO_PILOT_STATE_CHANGED = "IFSM_AUTO_PILOT_STATE_CHANGED";//自动驾驶状态机变化 (msg 填写如 standby to active ) - @CodeInfo("3.5.0") + @ReportState("3.5.0") String REMOTE_PILOT_STATE_CHANGED = "IFSM_REMOTE_PILOT_STATE_CHANGED";//平行驾驶状态机变化 - @CodeInfo("3.5.0") + @ReportState("3.5.0") String TELECTRL_PILOT_STATE_CHANGED = "IFSM_TELECTRL_PILOT_STATE_CHANGED";//遥感驾驶状态机变化 } @@ -860,15 +979,15 @@ public class MogoReport { * IFM (故障管理) */ interface IFM { - @CodeInfo("3.4.0") + @ReportState("3.4.0") String HANDLE_FAULTS_START = "IFM_HANDLE_FAULTS_START";//FM开始处理故障 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String HANDLE_FAULTS_STOP = "IFM_HANDLE_FAULTS_STOP";//FM停止处理故障 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String ALL_FAULTS_RECOVER = "IFM_ALL_FAULTS_RECOVER";//FM当前已无故障 (只有有故障到全都消失时候上报) - @CodeInfo("3.4.0") + @ReportState("3.4.0") String ONLY_WARNING_FAULTS = "IFM_ONLY_WARNING_FAULTS";//FM仅存在警示故障 - @CodeInfo("3.4.0") + @ReportState("3.4.0") String ERROR1_SLOW_SPEED = "IFM_ERROR1_SLOW_SPEED";//存在故障触发减速策略 } @@ -876,27 +995,59 @@ public class MogoReport { * IMF(蘑方消息回执) */ interface IMF { - @CodeInfo("3.7.1") + @ReportState("3.7.1") String SPEED_CHANGE_RECEIVE = "IMF_SPEED_CHANGE_RECEIVE";//蘑方加速度变化指令收到(msg字段的拼接方式为:传进来的加速度值$$其它想加的内容,没有可以不填) - @CodeInfo("3.7.1") + @ReportState("3.7.1") String SPEED_CHANGE_EXECUTE = "IMF_SPEED_CHANGE_EXECUTE";//蘑方加速度变化指令执行(msg字段的拼接方式为:传进来的加速度值$$其它想加的内容,没有可以不填) - @CodeInfo("3.7.1") + @ReportState("3.7.1") String SPEED_RESET_RECEIVE = "IMF_SPEED_RESET_RECEIVE";//蘑方复位指令收到(msg字段的拼接方式为:传进来的加速度值$$其它想加的内容,没有可以不填) - @CodeInfo("3.7.1") + @ReportState("3.7.1") String SPEED_RESET_EXECUTE = "IMF_SPEED_RESET_EXECUTE";// 蘑方复位指令执行(msg字段的拼接方式为:传进来的加速度值$$其它想加的内容,没有可以不填) - @CodeInfo("3.7.1") + @ReportState("3.7.1") String LAN_CHANG_RECEIVE = "IMF_LAN_CHANG_RECEIVE";//蘑方变道指令收到(msg字段的拼接方式为:-1/1$$其它想加的内容,没有可以不填) -1: 左变道;1: 右变道 - @CodeInfo("3.7.1") + @ReportState("3.7.1") String LAN_CHANG_EXECUTE = "IMF_LAN_CHANG_EXECUTE";//蘑方变道指令执行(msg字段的拼接方式为:-1/1$$其它想加的内容,没有可以不填) -1: 左变道;1: 右变道 - @CodeInfo("3.7.1") + @ReportState("3.7.1") String HORN_RECEIVE = "IMF_HORN_RECEIVE";//蘑方鸣笛指令收到(msg字段的拼接方式为:1.0/2.0$$其它想加的内容,没有可以不填) 1.0:开始鸣笛;2.0: 结束鸣笛 - @CodeInfo("3.7.1") + @ReportState("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<>(); + + private static final Map resultStates = new HashMap<>(); + private static final Map actionStates = new HashMap<>(); + private static final Map codeStates = new HashMap<>(); + + + /** + * 获取指定Result的相关信息 + * + * @param result 指定Result {@link Result} + * @return 输入Result的相关信息 不存在返回null + */ + public static ReportInfo getReportResultState(String result) { + if (resultStates.isEmpty()) { + getAllResultFieldAnnotation(Result.class); + } + return resultStates.get(result); + } + + + /** + * 获取指定Action的相关信息 + * + * @param action 指定Action {@link Action} + * @return 输入Action的相关信息 不存在返回null + */ + public static ReportInfo getReportActionState(String action) { + if (actionStates.isEmpty()) { + getAllActionFieldAnnotation(Action.class); + } + return actionStates.get(action); + } + /** * 获取指定Code的相关信息 @@ -904,30 +1055,71 @@ public class MogoReport { * @param code 指定Code {@link Code} * @return 输入Code的相关信息 不存在返回null */ - public static ReportCodeInfo getReportCodeState(String code) { - if (codeInfoMap.isEmpty()) { - getAllFieldAnnotation(Code.class); + public static ReportInfo getReportCodeState(String code) { + if (codeStates.isEmpty()) { + getAllCodeFieldAnnotation(Code.class); } - return codeInfoMap.get(code); + return codeStates.get(code); } - //获取所有的字段 - private static void getAllFieldAnnotation(Class clazz) { + private static void getAllResultFieldAnnotation(Class clazz) { + Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) { - boolean fieldHasAnno = field.isAnnotationPresent(CodeInfo.class); + boolean fieldHasAnno = field.isAnnotationPresent(ReportState.class); if (fieldHasAnno) { - CodeInfo fieldAnno = field.getAnnotation(CodeInfo.class); + ReportState fieldAnno = field.getAnnotation(ReportState.class); if (fieldAnno != null) { - String code = clazz.getSimpleName() + "_" + field.getName(); - ReportCodeInfo state = new ReportCodeInfo(code, fieldAnno.value(), fieldAnno.deprecated()); - codeInfoMap.put(code, state); + String code = clazz.getSimpleName().toUpperCase(Locale.getDefault()) + "_" + field.getName(); + ReportInfo state = new ReportInfo(code, fieldAnno.value(), fieldAnno.deprecated()); + resultStates.put(code, state); } } } Class[] innerClazz = clazz.getDeclaredClasses(); for (Class inner : innerClazz) { - getAllFieldAnnotation(inner); + getAllResultFieldAnnotation(inner); + } + } + + private static void getAllActionFieldAnnotation(Class clazz) { + + Field[] fields = clazz.getDeclaredFields(); + for (Field field : fields) { + boolean fieldHasAnno = field.isAnnotationPresent(ReportState.class); + if (fieldHasAnno) { + ReportState fieldAnno = field.getAnnotation(ReportState.class); + if (fieldAnno != null) { + String code = clazz.getSimpleName().toUpperCase(Locale.getDefault()) + "_" + field.getName(); + ReportInfo state = new ReportInfo(code, fieldAnno.value(), fieldAnno.deprecated()); + actionStates.put(code, state); + } + } + } + Class[] innerClazz = clazz.getDeclaredClasses(); + for (Class inner : innerClazz) { + getAllActionFieldAnnotation(inner); + } + } + + //获取所有Code的字段 + private static void getAllCodeFieldAnnotation(Class clazz) { + + Field[] fields = clazz.getDeclaredFields(); + for (Field field : fields) { + boolean fieldHasAnno = field.isAnnotationPresent(ReportState.class); + if (fieldHasAnno) { + ReportState fieldAnno = field.getAnnotation(ReportState.class); + if (fieldAnno != null) { + String code = clazz.getSimpleName() + "_" + field.getName(); + ReportInfo state = new ReportInfo(code, fieldAnno.value(), fieldAnno.deprecated()); + codeStates.put(code, state); + } + } + } + Class[] innerClazz = clazz.getDeclaredClasses(); + for (Class inner : innerClazz) { + getAllCodeFieldAnnotation(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/ReportInfo.java similarity index 53% rename from libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/ReportCodeInfo.java rename to libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/ReportInfo.java index 0579bd5171..19df3093ac 100644 --- 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/ReportInfo.java @@ -1,7 +1,9 @@ package com.zhjt.mogo.adas.data.bean; -public class ReportCodeInfo { - public final String code; +import android.text.TextUtils; + +public class ReportInfo { + public final String name; /** * 开始支持的版本(包含) */ @@ -12,17 +14,14 @@ public class ReportCodeInfo { */ public final String deprecatedVersion; - public ReportCodeInfo(String code, String sinceVersion, String deprecatedVersion) { - this.code = code; + public ReportInfo(String name, String sinceVersion, String deprecatedVersion) { + this.name = name; this.sinceVersion = sinceVersion; this.deprecatedVersion = deprecatedVersion; } @Override public String toString() { - return code + - " sinceVersion='" + sinceVersion + '\'' + - ", deprecatedVersion='" + deprecatedVersion + '\'' + - '}'; + return name + " 开始支持版本(包含)=" + sinceVersion + (TextUtils.isEmpty(deprecatedVersion) ? "" : ", 弃用版本(不包含)='" + deprecatedVersion); } } 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/ReportState.java similarity index 58% rename from libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/CodeInfo.java rename to libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/ReportState.java index e55158c574..efe4f0a0bd 100644 --- 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/ReportState.java @@ -7,13 +7,13 @@ import java.lang.annotation.Target; /** * MAP系统消息报告版本管理 - * 主要用于标记新增Code的版本,以及标记弃用的的Code + * 主要用于标记新增Result、Action、Code的版本,以及标记弃用的Result、Action、Code */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) -public @interface CodeInfo { - String value();//Code新增版本 +public @interface ReportState { + String value();//新增版本 - String deprecated() default "";//Code弃用版本 + String deprecated() default "";//弃用版本 }