diff --git a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/common/power/PowerUnitChannel.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/common/power/PowerUnitChannel.java index e0b2bf98d9..2cb374a8a6 100644 --- a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/common/power/PowerUnitChannel.java +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/common/power/PowerUnitChannel.java @@ -16,6 +16,7 @@ public enum PowerUnitChannel { BACK_LED_SCREEN(8, "OUT8", 10, "后LED屏"), POWER_AMPLIFIER(9, "OUT9", 10, "功放"), AIO_DRIVER_SCREEN(10, "OUT10", 10, "司机屏一体机"), + SWEEPER_FILL_LIGHT(25, "OUT25", 15, "补光灯(清扫车)"), RTK(27, "OUT27", 5, "RTK定位设备"), VTBOX(28, "OUT28", 5, "VTBOX"), FRONT_MILLIMETER_WAVE_RADAR(29, "OUT29", 10, "前毫米波雷达"), diff --git a/libraries/mogo-adas-data/src/main/proto/fm_info.proto b/libraries/mogo-adas-data/src/main/proto/fm_info.proto index e2aeb3e124..3c6a1a672f 100644 --- a/libraries/mogo-adas-data/src/main/proto/fm_info.proto +++ b/libraries/mogo-adas-data/src/main/proto/fm_info.proto @@ -12,8 +12,22 @@ message FaultInfo { repeated string fault_result = 6; //新增故障后果,故障上报不需要填,故障状态发布时由fm根据配置表填入, 用于行为上层的禁止 optional string policy_code = 7; //新增故障策略,故障上报不需要填,故障表中所定义的故障策略 optional string fault_name = 8; //新增故障名称,故障上报不需要填,故障表中定义的故障中文名称 + + optional string recover_method = 9; //后处理的人为处理方法 + optional string copywrite =10; // 文案,明确给人看的信息,重点给安全员看。 也可作为平台描述 + optional uint32 playform = 11; //平台, 指定工单系统,test平台,或者不指定平台 + optional string handle_src =12; //处理模块标识, 便于类似事件的src 通过《人员职责表》关联到handler。本字段填写需要处理的模块,后处理转化工单时候,转化到对应的人 + optional uint32 duration =13; //故障持续时间,用于判断故障持续来多久触发工单 (后处理可以一直判断持续时间,但是fm实时记录故障,不能一直判断写道文件,所以策略是配置添加到字段,但是由后处理判断) + optional uint32 replaytime = 14; //工单提交后,重复提醒间隔配置 (后处理使用) + } +message FaultReportMsg { //主体消息 + required string src = 1; //故障来源 node_name + repeated FaultInfo infos = 2; //故障原因与信息描述 +} + + enum FaultLevel { NOTHING_TODO = 0; //不采用故障等级策略 EMERGENCY_STOP = 1; //紧急停车 @@ -35,6 +49,55 @@ message FaultResultMsg { optional string downgrade_policy_code = 8; //唯一故障策略描述,360后建议车型按该string类型区分 (云端,pad端按该字符串,总计8种,做分析处理) repeated string actions = 9; //所有当前存在故障的action 并集 repeated string results = 10; //所有当前存在故障的 result 并集 + + optional double longitude = 21; //当前位置 经度 + optional double latitude = 22; //当前位置 维度 } +message FaultIgnoreMsg { + required uint64 time = 1; //故障忽略配置时间,毫秒 + required string ignore_src = 2; //忽略来源,pad,云控,调测工具 + repeated string ignore_fault_id = 3; //故障忽略全量列表 +} + + +message FaultQueryMsg { + required string fm_version = 1; //故障管理的版本 + required FaultLevel level = 2; //故障汇总等级 + required uint32 veh_policy = 3; //车端降级策略 + required uint32 current_fault_num = 4; //当前故障数目 + repeated string current_fault_id = 5; //当前故障id列表 + required uint32 ignore_fault_num = 6; //忽略故障数目 + repeated string ignore_fault_id = 7; //故障忽略id列表 + optional uint32 health_level = 8; //对系统健康状态的总体影响,各个故障影响的加成 + optional string downgrade_policy_code = 9; //唯一故障策略描述,360后建议车型按该string类型区分 (云端,pad端按该字符串,总计8种,做分析处理) + repeated string actions = 10; //所有当前存在故障的action 并集 + repeated string results = 11; //所有当前存在故障的 result 并集 + + optional uint32 indirect_fault_num = 19; //间接故障数目 + repeated string indirect_fault_id = 20; //间接故障id列表 + optional double longitude = 21; //当前位置 经度 + optional double latitude = 22; //当前位置 维度 +} + + +message SetHandleFlag { + required bool fault_handle_flag = 1; //故障处理开关,0 不处理,1处理 + optional string set_flag_src = 2; //设置开关消息源,如ssm + optional int32 pilot_mode = 3 [default = -1]; //自动驾驶状态 + optional string map_version = 4; //map的版本信息 +} + +message KeyFaultInfo { + required string key_node_name = 1; //故障发生节点 + repeated string fault_id = 2; //故障标识,每个告警有一个全域唯一的标识 + optional uint32 node_fault_level = 3; //对驾驶的影响等级 +} + +message KeyNodeFault { + required uint64 time = 1; //关键错误时间,毫秒 + repeated KeyFaultInfo nodeinfo = 2; //关键故障节点与故障码 + optional uint32 health_level = 3; //对系统健康状态的总体影响,各个故障影响的加成 +} + diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java index 5a3ccc8bdf..cfc52685e3 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java @@ -447,7 +447,9 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener { NodeStateInfo info = getNodeStateInfo(AdasConstants.NodeName.FSM2024); info.setNodeState(isSupport > 0 ? AdasConstants.NodeState.NODE_EXIST : AdasConstants.NodeState.NODE_NOT_EXIST); info.setExistState(existState); - listener.onNodeStateInfo(info); + if (listener != null) { + listener.onNodeStateInfo(info); + } } private synchronized void onCallSSMTimeout(AdasConstants.SsmSource source, boolean isTimeout) { @@ -463,7 +465,9 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener { NodeStateInfo info = getNodeStateInfo(AdasConstants.NodeName.SSM); info.setNodeState(AdasConstants.NodeState.NODE_EXIST); info.setExistState(isTimeout ? AdasConstants.NodeExistState.NODE_EXIST_TIMEOUT : AdasConstants.NodeExistState.NODE_EXIST_NORMAL); - listener.onNodeStateInfo(info); + if (listener != null) { + listener.onNodeStateInfo(info); + } } } @@ -473,7 +477,9 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener { NodeStateInfo info = getNodeStateInfo(AdasConstants.NodeName.FSM2024); info.setNodeState(AdasConstants.NodeState.NODE_EXIST); info.setExistState(isTimeout ? AdasConstants.NodeExistState.NODE_EXIST_TIMEOUT : AdasConstants.NodeExistState.NODE_EXIST_NORMAL); - listener.onNodeStateInfo(info); + if (listener != null) { + listener.onNodeStateInfo(info); + } } } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FSM2024StateMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FSM2024StateMessage.java index bbc79e22b6..724db993c4 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FSM2024StateMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FSM2024StateMessage.java @@ -59,6 +59,8 @@ public class FSM2024StateMessage extends MyAbstractMessageHandler { mode = 1;//自动驾驶 } else if (fsmState.getActiveMode() == Fsm2024.ActiveMode.PARALLEL_ACTIVE || fsmState.getActiveMode().getNumber() == 6) { mode = 6;//远程驾驶 + } else if (fsmState.getActiveMode() == Fsm2024.ActiveMode.M1_STEER_ACTIVE || fsmState.getActiveMode().getNumber() == 9) { + mode = 9;//模拟器驾驶 } else { mode = 0;//人工驾驶 }