Merge branch 'dev_robotaxi-d_251110_8.2.8_i18n' into dev_robotaxi-d_251204_8.3.0_xfk_temp

# Conflicts:
#	OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningView.kt
This commit is contained in:
xinfengkun
2025-12-17 11:29:10 +08:00
471 changed files with 10137 additions and 2778 deletions

View File

@@ -70,6 +70,7 @@ dependencies {
implementation rootProject.ext.dependencies.androidxappcompat
api rootProject.ext.dependencies.protobuf_java
api rootProject.ext.dependencies.protobuf_java_util
implementation project(':core:mogo-core-utils')
}
task androidSourcesJar(type: Jar) {

View File

@@ -1 +1 @@
<manifest package="com.zhjt.mogo.adas.data"></manifest>
<manifest package="com.zhjt.mogo.adas.data" />

View File

@@ -1,81 +0,0 @@
package com.zhjt.mogo.adas.common;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.zhjt.mogo.adas.data.AdasConstants;
/**
* 连接状态描述信息
* 文案消息根据产品文档定义详情见地址中的“工控机相关异常完善提示内容”模块http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=126243915
*/
public enum IpcConnectionStatusDescription {
DISCONNECTED(AdasConstants.IpcConnectionStatus.DISCONNECTED, "未连接或主动断开连接", "未连接:首次启动时未调用连接函数;主动断开连接:主动调用断开连接函数;"),
CONNECTED(AdasConstants.IpcConnectionStatus.CONNECTED, "已连接", null),
CONNECTING(AdasConstants.IpcConnectionStatus.CONNECTING, "连接中", null),
RECONNECTING_TIMER(AdasConstants.IpcConnectionStatus.RECONNECTING_TIMER, "重连中(定时器)", null),
RECONNECTING_NETWORK(AdasConstants.IpcConnectionStatus.RECONNECTING_NETWORK, "重连中(网络监听)", null),
CONNECT_EXCEPTION(AdasConstants.IpcConnectionStatus.CONNECT_EXCEPTION, "连接异常", "与域控连接失败、无法连接、非正常断开等"),
ILLEGAL_ADDRESS(AdasConstants.IpcConnectionStatus.ILLEGAL_ADDRESS, "非法地址", "连接模式为指定地址时表示当前调用连接时传入的域控地址错误或不符合规则【不修改默认配置不会出现此问题】连接模式为PING模式时表示传入的PING地址列表存在问题【不修改默认配置不会出现此问题】"),
SEARCH_ADDRESS(AdasConstants.IpcConnectionStatus.SEARCH_ADDRESS, "搜索中", "连接模式为PING模式时,正在查找是否有可用的域控地址"),
NOT_FOUND_ADDRESS(AdasConstants.IpcConnectionStatus.NOT_FOUND_ADDRESS, "未找到", "连接模式为PING模式时,配置的域控地址列表中的全部地址均无法PING通【不修改默认配置的情况下需要排查PAD是否连接车载路由器、工控机是否连接车载路由器、工控机是否开机等】"),
CERTIFICATION_FAILED(AdasConstants.IpcConnectionStatus.CERTIFICATION_FAILED, "认证异常", "鹰眼端或鹰眼端和域控端启用认证后,认证出现异常"),
HEARTBEAT_TIMEOUT(AdasConstants.IpcConnectionStatus.HEARTBEAT_TIMEOUT, "心跳超时", "连接域控成功后在一段时间内未收到域控心跳数据或其它任何数据默认4秒【可以配置】"),
PROTOCOL_MISMATCH(AdasConstants.IpcConnectionStatus.PROTOCOL_MISMATCH, "协议不匹配", "被连接的域控端非WebSocket协议【可能性非常低】"),
SERVER_DISCONNECTED(AdasConstants.IpcConnectionStatus.SERVER_DISCONNECTED, "域控断开", "域控主动发起断开WebSocket连接目前主要原因有1.证书认证失败2.老版本MAP不支持多连接的情况下会踢掉客户端");
@NonNull
public final AdasConstants.IpcConnectionStatus status;
@NonNull
public final String name;//消息类型准确定义名称
@Nullable
public final String desc;//描述或简单的解决办法或出现此状态的原因
public String msg;//自定义消息数据
IpcConnectionStatusDescription(@NonNull AdasConstants.IpcConnectionStatus status, @NonNull String name, @Nullable String desc) {
this.status = status;
this.name = name;
this.desc = desc;
}
@NonNull
public static IpcConnectionStatusDescription getDescription(@Nullable AdasConstants.IpcConnectionStatus status) {
if (status == AdasConstants.IpcConnectionStatus.CONNECTED) {
return CONNECTED;
} else if (status == AdasConstants.IpcConnectionStatus.CONNECTING) {
return CONNECTING;
} else if (status == AdasConstants.IpcConnectionStatus.RECONNECTING_TIMER) {
return RECONNECTING_TIMER;
} else if (status == AdasConstants.IpcConnectionStatus.RECONNECTING_NETWORK) {
return RECONNECTING_NETWORK;
} else if (status == AdasConstants.IpcConnectionStatus.CONNECT_EXCEPTION) {
return CONNECT_EXCEPTION;
} else if (status == AdasConstants.IpcConnectionStatus.ILLEGAL_ADDRESS) {
return ILLEGAL_ADDRESS;
} else if (status == AdasConstants.IpcConnectionStatus.SEARCH_ADDRESS) {
return SEARCH_ADDRESS;
} else if (status == AdasConstants.IpcConnectionStatus.NOT_FOUND_ADDRESS) {
return NOT_FOUND_ADDRESS;
} else if (status == AdasConstants.IpcConnectionStatus.CERTIFICATION_FAILED) {
return CERTIFICATION_FAILED;
} else if (status == AdasConstants.IpcConnectionStatus.HEARTBEAT_TIMEOUT) {
return HEARTBEAT_TIMEOUT;
} else if (status == AdasConstants.IpcConnectionStatus.PROTOCOL_MISMATCH) {
return PROTOCOL_MISMATCH;
} else if (status == AdasConstants.IpcConnectionStatus.SERVER_DISCONNECTED) {
return SERVER_DISCONNECTED;
} else {
// status==AdasConstants.IpcConnectionStatus.DISCONNECTED
return DISCONNECTED;
}
}
@NonNull
@Override
public String toString() {
return name;
}
}

View File

@@ -1,5 +1,11 @@
package com.zhjt.mogo.adas.common;
import android.content.Context;
import androidx.annotation.StringRes;
import com.zhjt.mogo.adas.data.R;
import mogo.telematics.pad.MessagePad;
/**
@@ -13,120 +19,120 @@ import mogo.telematics.pad.MessagePad;
*/
public enum MessageType {
TYPE_DEFAULT(MessagePad.MessageType.MsgTypeDefault, "默认"),
TYPE_RECEIVE_TRAJECTORY(MessagePad.MessageType.MsgTypeTrajectory, "车前引导线"),
TYPE_RECEIVE_TRACKED_OBJECTS(MessagePad.MessageType.MsgTypeTrackedObjects, "障碍物信息"),
TYPE_RECEIVE_GNSS_INFO(MessagePad.MessageType.MsgTypeGnssInfo, "惯导信息"),
TYPE_RECEIVE_VEHICLE_STATE(MessagePad.MessageType.MsgTypeVehicleState, "老底盘状态"),
TYPE_RECEIVE_AUTOPILOT_STATE(MessagePad.MessageType.MsgTypeAutopilotState, "自动驾驶状态"),
TYPE_RECEIVE_REPORT_MESSAGE(MessagePad.MessageType.MsgTypeReportMessage, "监控事件报告"),
TYPE_RECEIVE_PERCEPTION_TRAFFIC_LIGHT(MessagePad.MessageType.MsgTypePerceptionTrafficLight, "融合感知红绿灯"),
TYPE_RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY(MessagePad.MessageType.MsgTypePredictionObstacleTrajectory, "他车轨迹预测"),
TYPE_RECEIVE_POINT_CLOUD(MessagePad.MessageType.MsgTypePointCloud, "点云透传"),
TYPE_RECEIVE_PLANNING_OBJECTS(MessagePad.MessageType.MsgTypePlanningObjects, "Planning障碍物"),
TYPE_RECEIVE_CHASSIS_STATES(MessagePad.MessageType.MsgTypeChassisStates, "底盘状态"),
TYPE_RECEIVE_FUNCTION_STATES(MessagePad.MessageType.MsgTypeFunctionStates, "重构后功能状态"),
TYPE_RECEIVE_BACK_CAMERA_VIDEO(MessagePad.MessageType.MsgTypeBackCameraVideo, "后摄像头"),
TYPE_RECEIVE_M1_STITCHED_VIDEO(MessagePad.MessageType.MsgTypeM1StitchedVideo, "M1拼接视频"),
TYPE_RECEIVE_SSM(MessagePad.MessageType.MsgTypeSSMState, "SSM系统状态"),
TYPE_RECEIVE_FM_STATE(MessagePad.MessageType.MsgTypeFMState, "FM状态"),
TYPE_RECEIVE_FSM2024_STATE(MessagePad.MessageType.MsgTypeFSM2024State, "FSM状态"),
TYPE_RECEIVE_LOC_STATE(MessagePad.MessageType.MsgTypeLocState, "定位状态"),
TYPE_RECEIVE_CLOUD_REGULATORY_WARNING(MessagePad.MessageType.MsgTypeCloudRegulatoryWarning, "云控监管预警"),
TYPE_RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY2025(MessagePad.MessageType.MsgTypePredictionObjects2025, "障碍物轨迹预测"),
TYPE_RECEIVE_VLLM(MessagePad.MessageType.MsgTypevllm, "视觉语言模型"),
TYPE_RECEIVE_VLLM_IMAGE(MessagePad.MessageType.MsgTypeVllmImage60, "视觉语言模型图像"),
TYPE_DEFAULT(MessagePad.MessageType.MsgTypeDefault, R.string.adas_data_MsgTypeDefault),
TYPE_RECEIVE_TRAJECTORY(MessagePad.MessageType.MsgTypeTrajectory, R.string.adas_data_MsgTypeTrajectory),
TYPE_RECEIVE_TRACKED_OBJECTS(MessagePad.MessageType.MsgTypeTrackedObjects, R.string.adas_data_MsgTypeTrackedObjects),
TYPE_RECEIVE_GNSS_INFO(MessagePad.MessageType.MsgTypeGnssInfo, R.string.adas_data_MsgTypeGnssInfo),
TYPE_RECEIVE_VEHICLE_STATE(MessagePad.MessageType.MsgTypeVehicleState, R.string.adas_data_MsgTypeVehicleState),
TYPE_RECEIVE_AUTOPILOT_STATE(MessagePad.MessageType.MsgTypeAutopilotState, R.string.adas_data_MsgTypeAutopilotState),
TYPE_RECEIVE_REPORT_MESSAGE(MessagePad.MessageType.MsgTypeReportMessage, R.string.adas_data_MsgTypeReportMessage),
TYPE_RECEIVE_PERCEPTION_TRAFFIC_LIGHT(MessagePad.MessageType.MsgTypePerceptionTrafficLight, R.string.adas_data_MsgTypePerceptionTrafficLight),
TYPE_RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY(MessagePad.MessageType.MsgTypePredictionObstacleTrajectory, R.string.adas_data_MsgTypePredictionObstacleTrajectory),
TYPE_RECEIVE_POINT_CLOUD(MessagePad.MessageType.MsgTypePointCloud, R.string.adas_data_MsgTypePointCloud),
TYPE_RECEIVE_PLANNING_OBJECTS(MessagePad.MessageType.MsgTypePlanningObjects, R.string.adas_data_MsgTypePlanningObjects),
TYPE_RECEIVE_CHASSIS_STATES(MessagePad.MessageType.MsgTypeChassisStates, R.string.adas_data_MsgTypeChassisStates),
TYPE_RECEIVE_FUNCTION_STATES(MessagePad.MessageType.MsgTypeFunctionStates, R.string.adas_data_MsgTypeFunctionStates),
TYPE_RECEIVE_BACK_CAMERA_VIDEO(MessagePad.MessageType.MsgTypeBackCameraVideo, R.string.adas_data_MsgTypeBackCameraVideo),
TYPE_RECEIVE_M1_STITCHED_VIDEO(MessagePad.MessageType.MsgTypeM1StitchedVideo, R.string.adas_data_MsgTypeM1StitchedVideo),
TYPE_RECEIVE_SSM(MessagePad.MessageType.MsgTypeSSMState, R.string.adas_data_MsgTypeSSMState),
TYPE_RECEIVE_FM_STATE(MessagePad.MessageType.MsgTypeFMState, R.string.adas_data_MsgTypeFMState),
TYPE_RECEIVE_FSM2024_STATE(MessagePad.MessageType.MsgTypeFSM2024State, R.string.adas_data_MsgTypeFSM2024State),
TYPE_RECEIVE_LOC_STATE(MessagePad.MessageType.MsgTypeLocState, R.string.adas_data_MsgTypeLocState),
TYPE_RECEIVE_CLOUD_REGULATORY_WARNING(MessagePad.MessageType.MsgTypeCloudRegulatoryWarning, R.string.adas_data_MsgTypeCloudRegulatoryWarning),
TYPE_RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY2025(MessagePad.MessageType.MsgTypePredictionObjects2025, R.string.adas_data_MsgTypePredictionObjects2025),
TYPE_RECEIVE_VLLM(MessagePad.MessageType.MsgTypevllm, R.string.adas_data_MsgTypevllm),
TYPE_RECEIVE_VLLM_IMAGE(MessagePad.MessageType.MsgTypeVllmImage60, R.string.adas_data_MsgTypeVllmImage60),
TYPE_RECEIVE_BASIC_INFO_REQ(MessagePad.MessageType.MsgTypeBasicInfoReq, "自动驾驶设备基础信息请求"),
TYPE_SEND_BASIC_INFO_RESP(MessagePad.MessageType.MsgTypeBasicInfoResp, "自动驾驶设备基础信息应答"),
TYPE_SEND_SET_AUTOPILOT_MODE_REQ(MessagePad.MessageType.MsgTypeSetAutopilotModeReq, "设置自动驾驶模式 启动自动驾驶", 5000),
TYPE_SEND_SET_DEMO_MODE_REQ(MessagePad.MessageType.MsgTypeSetDemoModeReq, "设置演示模式", 5000),
TYPE_SEND_CAR_CONFIG_REQ(MessagePad.MessageType.MsgTypeCarConfigReq, "车机基础信息请求"),
TYPE_RECEIVE_CAR_CONFIG_RESP(MessagePad.MessageType.MsgTypeCarConfigResp, "车机基础信息应答"),
TYPE_SEND_RECORD_CAUSE(MessagePad.MessageType.MsgTypeRecordCause, "记录人工接管原因"),
TYPE_SEND_RECORD_DATA(MessagePad.MessageType.MsgTypeRecordData, "数据采集请求"),
TYPE_RECEIVE_RECORD_RESULT(MessagePad.MessageType.MsgTypeRecordResult, "数据采集结果"),
TYPE_SEND_SET_AUTOPILOT_SPEED_REQ(MessagePad.MessageType.MsgTypeSetAutopilotSpeedReq, "设置自动驾驶最大速度", 5000),
TYPE_SEND_GLOBAL_PATH_REQ(MessagePad.MessageType.MsgTypeGlobalPathReq, "自动驾驶路径请求"),
TYPE_RECEIVE_GLOBAL_PATH_RESP(MessagePad.MessageType.MsgTypeGlobalPathResp, "自动驾驶路径应答"),
TYPE_RECEIVE_BASIC_INFO_REQ(MessagePad.MessageType.MsgTypeBasicInfoReq, R.string.adas_data_MsgTypeBasicInfoReq),
TYPE_SEND_BASIC_INFO_RESP(MessagePad.MessageType.MsgTypeBasicInfoResp, R.string.adas_data_MsgTypeBasicInfoResp),
TYPE_SEND_SET_AUTOPILOT_MODE_REQ(MessagePad.MessageType.MsgTypeSetAutopilotModeReq, R.string.adas_data_MsgTypeSetAutopilotModeReq, 5000),
TYPE_SEND_SET_DEMO_MODE_REQ(MessagePad.MessageType.MsgTypeSetDemoModeReq, R.string.adas_data_MsgTypeSetDemoModeReq, 5000),
TYPE_SEND_CAR_CONFIG_REQ(MessagePad.MessageType.MsgTypeCarConfigReq, R.string.adas_data_MsgTypeCarConfigReq),
TYPE_RECEIVE_CAR_CONFIG_RESP(MessagePad.MessageType.MsgTypeCarConfigResp, R.string.adas_data_MsgTypeCarConfigResp),
TYPE_SEND_RECORD_CAUSE(MessagePad.MessageType.MsgTypeRecordCause, R.string.adas_data_MsgTypeRecordCause),
TYPE_SEND_RECORD_DATA(MessagePad.MessageType.MsgTypeRecordData, R.string.adas_data_MsgTypeRecordData),
TYPE_RECEIVE_RECORD_RESULT(MessagePad.MessageType.MsgTypeRecordResult, R.string.adas_data_MsgTypeRecordResult),
TYPE_SEND_SET_AUTOPILOT_SPEED_REQ(MessagePad.MessageType.MsgTypeSetAutopilotSpeedReq, R.string.adas_data_MsgTypeSetAutopilotSpeedReq, 5000),
TYPE_SEND_GLOBAL_PATH_REQ(MessagePad.MessageType.MsgTypeGlobalPathReq, R.string.adas_data_MsgTypeGlobalPathReq),
TYPE_RECEIVE_GLOBAL_PATH_RESP(MessagePad.MessageType.MsgTypeGlobalPathResp, R.string.adas_data_MsgTypeGlobalPathResp),
@Deprecated//MAP290开始此接口弃用
TYPE_SEND_TRAFFIC_LIGHT_DATA(MessagePad.MessageType.MsgTypeTrafficLightData, "发送红绿灯数据到工控机"),
TYPE_SEND_TRAFFIC_LIGHT_DATA(MessagePad.MessageType.MsgTypeTrafficLightData, R.string.adas_data_MsgTypeTrafficLightData),
@Deprecated
TYPE_RECEIVE_WARN(MessagePad.MessageType.MsgTypeWarn, "预警数据"),
TYPE_RECEIVE_ARRIVAL_NOTIFICATION(MessagePad.MessageType.MsgTypeArrivalNotification, "到站提醒"),
TYPE_SEND_SYSTEM_CMD_REQ(MessagePad.MessageType.MsgTypeSystemCmdReq, "系统命令请求", 5000),
TYPE_SEND_TRAJECTORY_DOWNLOAD_REQ(MessagePad.MessageType.MsgTypeTrajectoryDownloadReq, "轨迹下载请求", 5000),
TYPE_RECEIVE_WARN(MessagePad.MessageType.MsgTypeWarn, R.string.adas_data_MsgTypeWarn),
TYPE_RECEIVE_ARRIVAL_NOTIFICATION(MessagePad.MessageType.MsgTypeArrivalNotification, R.string.adas_data_MsgTypeArrivalNotification),
TYPE_SEND_SYSTEM_CMD_REQ(MessagePad.MessageType.MsgTypeSystemCmdReq, R.string.adas_data_MsgTypeSystemCmdReq, 5000),
TYPE_SEND_TRAJECTORY_DOWNLOAD_REQ(MessagePad.MessageType.MsgTypeTrajectoryDownloadReq, R.string.adas_data_MsgTypeTrajectoryDownloadReq, 5000),
@Deprecated//HQ、M1 MAP350开始弃用其他车型MAP360开始弃用
TYPE_SEND_STATUS_QUERY_REQ(MessagePad.MessageType.MsgTypeStatusQueryReq, "状态查询请求"),
TYPE_SEND_STATUS_QUERY_REQ(MessagePad.MessageType.MsgTypeStatusQueryReq, R.string.adas_data_MsgTypeStatusQueryReq),
@Deprecated//HQ、M1 MAP350开始弃用其他车型MAP360开始弃用
TYPE_RECEIVE_STATUS_QUERY_RESP(MessagePad.MessageType.MsgTypeStatusQueryResp, "状态查询应答"),
TYPE_SEND_SET_RAIN_MODE_REQ(MessagePad.MessageType.MsgTypeSetRainModeReq, "设置雨天模式", 5000),
TYPE_SEND_RECORD_DATA_CONFIG_REQ(MessagePad.MessageType.MsgTypeRecordDataConfigReq, "数据采集配置查询"),
TYPE_RECEIVE_RECORD_DATA_CONFIG_RESP(MessagePad.MessageType.MsgTypeRecordDataConfigResp, "数据采集配置"),
TYPE_SEND_OPERATOR_CMD_REQ(MessagePad.MessageType.MsgTypeOperatorCmdReq, "操控指令", 5000),
TYPE_SEND_SUBSCRIBE_DATA_REQ(MessagePad.MessageType.MsgTypeSubscribeDataReq, "数据订阅、取消订阅请求", 5000),
TYPE_SEND_SPECIAL_VEHICLE_TASK_CMD(MessagePad.MessageType.MsgTypeSpecialVehicleTaskCmd, "特种车辆命令", 5000),
TYPE_SEND_SET_PARAM_REQ(MessagePad.MessageType.MsgTypeSetParamReq, "设置参数命令", 5000),
TYPE_SEND_TRIP_INFO_REQ(MessagePad.MessageType.MsgTypeTripInfoEvent, "行程信息"),
TYPE_SEND_BAG_MANAGER_CMD(MessagePad.MessageType.MsgTypeBagManagerCmd, "Bag管理请求"),
TYPE_RECEIVE_BAG_MANAGER_CMD(MessagePad.MessageType.MsgTypeBagManagerCmd, "Bag管理应答"),
TYPE_SEND_PLANNING_CMD(MessagePad.MessageType.MsgTypePlanningCmd, "Planning指令", 5000),
TYPE_SEND_SET_PARAM_REQ_V2(MessagePad.MessageType.MsgTypeSetParamReqV2, "设置参数命令V2", 5000),
TYPE_RECEIVE_V2N_CONGESTION_EVENT(MessagePad.MessageType.MsgTypeV2nCongestionEvent, "主车附近事件推送"),
TYPE_RECEIVE_V2N_GLOBAL_PATH_EVENTS(MessagePad.MessageType.MsgTypeV2nGlobalPathEvents, "主车路径全局事件推送"),
TYPE_SEND_GET_PARAM_REQ(MessagePad.MessageType.MsgTypeGetParamReq, "参数获取请求"),
TYPE_RECEIVE_GET_PARAM_RESP(MessagePad.MessageType.MsgTypeGetParamResp, "参数获取应答"),
TYPE_SEND_SWEEPER_CLOUD_TASK_CMD(MessagePad.MessageType.MsgTypeTaskCmd, "发送清扫车指令到云控", 5000),
TYPE_RECEIVE_SWEEPER_CLOUD_TASK_CMD(MessagePad.MessageType.MsgTypeTaskCmd, "云控下发清扫车任务指令", 5000),
TYPE_SEND_FSM_STATUS_REASON_QUERY_REQ(MessagePad.MessageType.MsgTypeFSMStatusReasonQueryReq, "FSM状态原因查询"),
TYPE_RECEIVE_FSM_STATUS_REASON_QUERY_RESP(MessagePad.MessageType.MsgTypeFSMStatusReasonQueryResp, "FSM状态原因查询应答"),
TYPE_SEND_GET_DEBUG_INFO_REQ(MessagePad.MessageType.MsgTypeGetDebugInfo, "Debug信息请求"),
TYPE_RECEIVE_GET_DEBUG_INFO_RESP(MessagePad.MessageType.MsgTypeGetDebugInfo, "Debug信息应答"),
TYPE_SEND_PARALLEL_DRIVING_REQ(MessagePad.MessageType.MsgTypeParallelDrivingCmd, "平行驾驶请求", 5000),
TYPE_RECEIVE_PARALLEL_DRIVING_STATUS(MessagePad.MessageType.MsgTypeParallelDrivingCmd, "平行驾驶状态", 5000),
TYPE_SEND_RECEIVED_ACK(MessagePad.MessageType.MsgTypeReceivedAck, "发送消息回执"),
TYPE_RECEIVE_RECEIVED_ACK(MessagePad.MessageType.MsgTypeReceivedAck, "接收消息回执"),
TYPE_RECEIVE_V2N_NIO_GREEN_WAVE_PASSAGE_EVENT(MessagePad.MessageType.MsgTypeV2nNioGreenWavePassageEvent, "V2N NIO绿波通行单路口"),
TYPE_RECEIVE_V2N_NIO_CROSSOVER_EVENT(MessagePad.MessageType.MsgTypeV2nNioCrossoverEvent, "V2N NIO行人横穿路侧"),
TYPE_RECEIVE_V2N_NIO_OTHER_RETROGRADE_EVENT(MessagePad.MessageType.MsgTypeV2nNioOtherRetrogradeEvent, "V2N NIO他车逆行路侧"),
TYPE_RECEIVE_V2N_NIO_CONGESTION_EVENT(MessagePad.MessageType.MsgTypeV2nNioCongestionEvent, "V2N NIO拥堵事件"),
TYPE_RECEIVE_LANE_MARKS_TRAN(MessagePad.MessageType.MsgTypeLaneMarksTran, "车道线"),
TYPE_SEND_COLLISION_REPORT(MessagePad.MessageType.MsgTypeCollisionReport, "碰撞上报"),
TYPE_SEND_POWER_UNIT(MessagePad.MessageType.MsgTypePowerUnit, "电源模块请求"),
TYPE_RECEIVE_POWER_UNIT(MessagePad.MessageType.MsgTypePowerUnit, "电源模块响应"),
TYPE_SEND_SSM_FUNC_MSG(MessagePad.MessageType.MsgTypeSSMFuncMsg, "SSM功能控制"),
TYPE_RECEIVE_SSM_FUNC_MSG(MessagePad.MessageType.MsgTypeSSMFuncMsg, "SSM功能响应"),
TYPE_SEND_SSM_FUNC_STATUS_QUERY(MessagePad.MessageType.MsgTypeSSMFuncStatusQuery, "SSM功能状态查询"),
TYPE_RECEIVE_SSM_FUNC_STATUS_QUERY(MessagePad.MessageType.MsgTypeSSMFuncStatusQuery, "SSM功能状态响应"),
TYPE_SEND_CAPTURE_IMG_REQ_ON_TAKE_OVER(MessagePad.MessageType.MsgTypeCaptureImgReqOnTakeOver, "接管时摄像头数据请求"),
TYPE_RECEIVE_CLOUD_CONTROL(MessagePad.MessageType.MsgTypeEzhouCloud, "云控数据"),
TYPE_SEND_COPY_BAG(MessagePad.MessageType.MsgTypeCopyBag, "数据落盘控制"),
TYPE_RECEIVE_COPY_BAG(MessagePad.MessageType.MsgTypeCopyBag, "数据落盘响应"),
TYPE_SEND_CLOUD_CONFIG(MessagePad.MessageType.MsgTypeCloudConfig, "云端配置查询"),
TYPE_RECEIVE_CLOUD_CONFIG(MessagePad.MessageType.MsgTypeCloudConfig, "云端配置响应"),
TYPE_SEND_IMG_UPLOAD_CLOUD_ENABLE(MessagePad.MessageType.MsgTypeImgUploadCloudEnable, "摄像头上传NDE云开关"),
TYPE_SEND_IMG_UPLOAD_CLOUD_STATUS_QUERY(MessagePad.MessageType.MsgTypeImgUploadCloudStatusQuery, "摄像头上传NDE云状态查询"),
TYPE_RECEIVE_IMG_UPLOAD_CLOUD_STATUS_QUERY(MessagePad.MessageType.MsgTypeImgUploadCloudStatusQuery, "摄像头上传NDE云状态响应"),
TYPE_SEND_FORCE_STOP_OR_START_CLOUD_REQ(MessagePad.MessageType.MsgTypeForceStopOrStartCloudReq, "云端配置控制"),
TYPE_SEND_SET_OBU_UPLOAD_REQ(MessagePad.MessageType.MsgTypeSetObuUploadReq, "域控上报OBU开关控制"),
TYPE_SEND_OBU_UPLOAD_STATUS(MessagePad.MessageType.MsgTypeObuUploadStatus, "域控上报OBU开关状态查询"),
TYPE_RECEIVE_OBU_UPLOAD_STATUS(MessagePad.MessageType.MsgTypeObuUploadStatus, "域控上报OBU开关状态响应"),
TYPE_RECEIVE_STATUS_QUERY_RESP(MessagePad.MessageType.MsgTypeStatusQueryResp, R.string.adas_data_MsgTypeStatusQueryResp),
TYPE_SEND_SET_RAIN_MODE_REQ(MessagePad.MessageType.MsgTypeSetRainModeReq, R.string.adas_data_MsgTypeSetRainModeReq, 5000),
TYPE_SEND_RECORD_DATA_CONFIG_REQ(MessagePad.MessageType.MsgTypeRecordDataConfigReq, R.string.adas_data_MsgTypeRecordDataConfigReq),
TYPE_RECEIVE_RECORD_DATA_CONFIG_RESP(MessagePad.MessageType.MsgTypeRecordDataConfigResp, R.string.adas_data_MsgTypeRecordDataConfigResp),
TYPE_SEND_OPERATOR_CMD_REQ(MessagePad.MessageType.MsgTypeOperatorCmdReq, R.string.adas_data_MsgTypeOperatorCmdReq, 5000),
TYPE_SEND_SUBSCRIBE_DATA_REQ(MessagePad.MessageType.MsgTypeSubscribeDataReq, R.string.adas_data_MsgTypeSubscribeDataReq, 5000),
TYPE_SEND_SPECIAL_VEHICLE_TASK_CMD(MessagePad.MessageType.MsgTypeSpecialVehicleTaskCmd, R.string.adas_data_MsgTypeSpecialVehicleTaskCmd, 5000),
TYPE_SEND_SET_PARAM_REQ(MessagePad.MessageType.MsgTypeSetParamReq, R.string.adas_data_MsgTypeSetParamReq, 5000),
TYPE_SEND_TRIP_INFO_REQ(MessagePad.MessageType.MsgTypeTripInfoEvent, R.string.adas_data_MsgTypeTripInfoEvent),
TYPE_SEND_BAG_MANAGER_CMD(MessagePad.MessageType.MsgTypeBagManagerCmd, R.string.adas_data_MsgTypeBagManagerCmd_SEND),
TYPE_RECEIVE_BAG_MANAGER_CMD(MessagePad.MessageType.MsgTypeBagManagerCmd, R.string.adas_data_MsgTypeBagManagerCmd_RECEIVE),
TYPE_SEND_PLANNING_CMD(MessagePad.MessageType.MsgTypePlanningCmd, R.string.adas_data_MsgTypePlanningCmd, 5000),
TYPE_SEND_SET_PARAM_REQ_V2(MessagePad.MessageType.MsgTypeSetParamReqV2, R.string.adas_data_MsgTypeSetParamReqV2, 5000),
TYPE_RECEIVE_V2N_CONGESTION_EVENT(MessagePad.MessageType.MsgTypeV2nCongestionEvent, R.string.adas_data_MsgTypeV2nCongestionEvent),
TYPE_RECEIVE_V2N_GLOBAL_PATH_EVENTS(MessagePad.MessageType.MsgTypeV2nGlobalPathEvents, R.string.adas_data_MsgTypeV2nGlobalPathEvents),
TYPE_SEND_GET_PARAM_REQ(MessagePad.MessageType.MsgTypeGetParamReq, R.string.adas_data_MsgTypeGetParamReq),
TYPE_RECEIVE_GET_PARAM_RESP(MessagePad.MessageType.MsgTypeGetParamResp, R.string.adas_data_MsgTypeGetParamResp),
TYPE_SEND_SWEEPER_CLOUD_TASK_CMD(MessagePad.MessageType.MsgTypeTaskCmd, R.string.adas_data_MsgTypeTaskCmd_SEND, 5000),
TYPE_RECEIVE_SWEEPER_CLOUD_TASK_CMD(MessagePad.MessageType.MsgTypeTaskCmd, R.string.adas_data_MsgTypeTaskCmd_RECEIVE, 5000),
TYPE_SEND_FSM_STATUS_REASON_QUERY_REQ(MessagePad.MessageType.MsgTypeFSMStatusReasonQueryReq, R.string.adas_data_MsgTypeFSMStatusReasonQueryReq),
TYPE_RECEIVE_FSM_STATUS_REASON_QUERY_RESP(MessagePad.MessageType.MsgTypeFSMStatusReasonQueryResp, R.string.adas_data_MsgTypeFSMStatusReasonQueryResp),
TYPE_SEND_GET_DEBUG_INFO_REQ(MessagePad.MessageType.MsgTypeGetDebugInfo, R.string.adas_dataMsgTypeGetDebugInfo_SEND),
TYPE_RECEIVE_GET_DEBUG_INFO_RESP(MessagePad.MessageType.MsgTypeGetDebugInfo, R.string.adas_data_MsgTypeGetDebugInfo_RECEIVE),
TYPE_SEND_PARALLEL_DRIVING_REQ(MessagePad.MessageType.MsgTypeParallelDrivingCmd, R.string.adas_data_MsgTypeParallelDrivingCmd_SEND, 5000),
TYPE_RECEIVE_PARALLEL_DRIVING_STATUS(MessagePad.MessageType.MsgTypeParallelDrivingCmd, R.string.adas_data_MsgTypeParallelDrivingCmd_RECEIVE, 5000),
TYPE_SEND_RECEIVED_ACK(MessagePad.MessageType.MsgTypeReceivedAck, R.string.adas_data_MsgTypeReceivedAck_SEND),
TYPE_RECEIVE_RECEIVED_ACK(MessagePad.MessageType.MsgTypeReceivedAck, R.string.adas_data_MsgTypeReceivedAck_RECEVIE),
TYPE_RECEIVE_V2N_NIO_GREEN_WAVE_PASSAGE_EVENT(MessagePad.MessageType.MsgTypeV2nNioGreenWavePassageEvent, R.string.adas_data_MsgTypeV2nNioGreenWavePassageEvent),
TYPE_RECEIVE_V2N_NIO_CROSSOVER_EVENT(MessagePad.MessageType.MsgTypeV2nNioCrossoverEvent, R.string.adas_data_MsgTypeV2nNioCrossoverEvent),
TYPE_RECEIVE_V2N_NIO_OTHER_RETROGRADE_EVENT(MessagePad.MessageType.MsgTypeV2nNioOtherRetrogradeEvent, R.string.adas_data_MsgTypeV2nNioOtherRetrogradeEvent),
TYPE_RECEIVE_V2N_NIO_CONGESTION_EVENT(MessagePad.MessageType.MsgTypeV2nNioCongestionEvent, R.string.adas_data_MsgTypeV2nNioCongestionEvent),
TYPE_RECEIVE_LANE_MARKS_TRAN(MessagePad.MessageType.MsgTypeLaneMarksTran, R.string.adas_data_MsgTypeLaneMarksTran),
TYPE_SEND_COLLISION_REPORT(MessagePad.MessageType.MsgTypeCollisionReport, R.string.adas_data_MsgTypeCollisionReport),
TYPE_SEND_POWER_UNIT(MessagePad.MessageType.MsgTypePowerUnit, R.string.adas_data_MsgTypePowerUnit_SEND),
TYPE_RECEIVE_POWER_UNIT(MessagePad.MessageType.MsgTypePowerUnit, R.string.adas_data_MsgTypePowerUnit_RECEIVE),
TYPE_SEND_SSM_FUNC_MSG(MessagePad.MessageType.MsgTypeSSMFuncMsg, R.string.adas_data_MsgTypeSSMFuncMsg_SEND),
TYPE_RECEIVE_SSM_FUNC_MSG(MessagePad.MessageType.MsgTypeSSMFuncMsg, R.string.adas_data_MsgTypeSSMFuncMsg_RECEIVE),
TYPE_SEND_SSM_FUNC_STATUS_QUERY(MessagePad.MessageType.MsgTypeSSMFuncStatusQuery, R.string.adas_data_MsgTypeSSMFuncStatusQuery_SEND),
TYPE_RECEIVE_SSM_FUNC_STATUS_QUERY(MessagePad.MessageType.MsgTypeSSMFuncStatusQuery, R.string.adas_data_MsgTypeSSMFuncStatusQuery_RECEIVE),
TYPE_SEND_CAPTURE_IMG_REQ_ON_TAKE_OVER(MessagePad.MessageType.MsgTypeCaptureImgReqOnTakeOver, R.string.adas_data_MsgTypeCaptureImgReqOnTakeOver),
TYPE_RECEIVE_CLOUD_CONTROL(MessagePad.MessageType.MsgTypeEzhouCloud, R.string.adas_data_MsgTypeEzhouCloud),
TYPE_SEND_COPY_BAG(MessagePad.MessageType.MsgTypeCopyBag, R.string.adas_data_MsgTypeCopyBag_SEND),
TYPE_RECEIVE_COPY_BAG(MessagePad.MessageType.MsgTypeCopyBag, R.string.adas_data_MsgTypeCopyBag_RECEIVE),
TYPE_SEND_CLOUD_CONFIG(MessagePad.MessageType.MsgTypeCloudConfig, R.string.adas_data_MsgTypeCloudConfig_SEND),
TYPE_RECEIVE_CLOUD_CONFIG(MessagePad.MessageType.MsgTypeCloudConfig, R.string.adas_data_MsgTypeCloudConfig_RECEIVE),
TYPE_SEND_IMG_UPLOAD_CLOUD_ENABLE(MessagePad.MessageType.MsgTypeImgUploadCloudEnable, R.string.adas_data_MsgTypeImgUploadCloudEnable),
TYPE_SEND_IMG_UPLOAD_CLOUD_STATUS_QUERY(MessagePad.MessageType.MsgTypeImgUploadCloudStatusQuery, R.string.adas_data_MsgTypeImgUploadCloudStatusQuery_SEND),
TYPE_RECEIVE_IMG_UPLOAD_CLOUD_STATUS_QUERY(MessagePad.MessageType.MsgTypeImgUploadCloudStatusQuery, R.string.adas_data_MsgTypeImgUploadCloudStatusQuery_RECEIVE),
TYPE_SEND_FORCE_STOP_OR_START_CLOUD_REQ(MessagePad.MessageType.MsgTypeForceStopOrStartCloudReq, R.string.adas_data_MsgTypeForceStopOrStartCloudReq),
TYPE_SEND_SET_OBU_UPLOAD_REQ(MessagePad.MessageType.MsgTypeSetObuUploadReq, R.string.adas_data_MsgTypeSetObuUploadReq),
TYPE_SEND_OBU_UPLOAD_STATUS(MessagePad.MessageType.MsgTypeObuUploadStatus, R.string.adas_data_MsgTypeObuUploadStatus_SEND),
TYPE_RECEIVE_OBU_UPLOAD_STATUS(MessagePad.MessageType.MsgTypeObuUploadStatus, R.string.adas_data_MsgTypeObuUploadStatus_RECEIVE),
//TODO 透传原始pb文件中不存在以下type。由于Java中无法强转,所以在mogo-adas-data/message_pad.proto中放开注释
TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态"),
TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA(MessagePad.MessageType.MsgTypeSweeperTaskIndexData, "清扫车指标数据"),
TYPE_RECEIVE_OBU_WARNING_DATA(MessagePad.MessageType.MsgTypeObuWarningData, "OBU预警事件"),
TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, R.string.adas_data_MsgTypePlanningDecisionState),
TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA(MessagePad.MessageType.MsgTypeSweeperTaskIndexData, R.string.adas_data_MsgTypeSweeperTaskIndexData),
TYPE_RECEIVE_OBU_WARNING_DATA(MessagePad.MessageType.MsgTypeObuWarningData, R.string.adas_data_MsgTypeObuWarningData),
//以下6个与标定相关
TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA30(MessagePad.MessageType.MsgTypeCameraCalibCheckData30, "相机标定检查视频30"),
TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA60(MessagePad.MessageType.MsgTypeCameraCalibCheckData60, "相机标定检查视频60"),
TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA120_FRONT(MessagePad.MessageType.MsgTypeCameraCalibCheckData120Front, "相机标定检查视频120前"),
TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA120_BACK(MessagePad.MessageType.MsgTypeCameraCalibCheckData120Back, "相机标定检查视频120后"),
TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA120_LEFT(MessagePad.MessageType.MsgTypeCameraCalibCheckData120Left, "相机标定检查视频120左"),
TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA120_RIGHT(MessagePad.MessageType.MsgTypeCameraCalibCheckData120Right, "相机标定检查视频120右"),
TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA30(MessagePad.MessageType.MsgTypeCameraCalibCheckData30, R.string.adas_data_MsgTypeCameraCalibCheckData30),
TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA60(MessagePad.MessageType.MsgTypeCameraCalibCheckData60, R.string.adas_data_MsgTypeCameraCalibCheckData60),
TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA120_FRONT(MessagePad.MessageType.MsgTypeCameraCalibCheckData120Front, R.string.adas_data_MsgTypeCameraCalibCheckData120Front),
TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA120_BACK(MessagePad.MessageType.MsgTypeCameraCalibCheckData120Back, R.string.adas_data_MsgTypeCameraCalibCheckData120Back),
TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA120_LEFT(MessagePad.MessageType.MsgTypeCameraCalibCheckData120Left, R.string.adas_data_MsgTypeCameraCalibCheckData120Left),
TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA120_RIGHT(MessagePad.MessageType.MsgTypeCameraCalibCheckData120Right, R.string.adas_data_MsgTypeCameraCalibCheckData120Right),
TYPE_RECEIVE_CAPTURE_FRONT_IMG_ON_TAKE_OVER(MessagePad.MessageType.MsgTypeCaptureFrontImgOnTakeOver, "人工接管时给PAD发前摄像头数据响应"),
TYPE_RECEIVE_CAPTURE_BACK_IMG_ON_TAKE_OVER(MessagePad.MessageType.MsgTypeCaptureBackImgOnTakeOver, "人工接管时给PAD发后摄像头数据响应"),
TYPE_RECEIVE_CAPTURE_FRONT_IMG_ON_TAKE_OVER(MessagePad.MessageType.MsgTypeCaptureFrontImgOnTakeOver, R.string.adas_data_MsgTypeCaptureFrontImgOnTakeOver),
TYPE_RECEIVE_CAPTURE_BACK_IMG_ON_TAKE_OVER(MessagePad.MessageType.MsgTypeCaptureBackImgOnTakeOver, R.string.adas_data_MsgTypeCaptureBackImgOnTakeOver),
;
@@ -138,22 +144,31 @@ public enum MessageType {
/**
* 描述
*/
public final String desc;
@StringRes
private final int descResId;
/**
* 消息回执超时时间 毫秒 0表示不需要回执
*/
public final long timeoutMillis;
MessageType(MessagePad.MessageType typeCode, String desc) {
this(typeCode, desc, 0L);
MessageType(MessagePad.MessageType typeCode, @StringRes int descResId) {
this(typeCode, descResId, 0L);
}
MessageType(MessagePad.MessageType typeCode, String desc, long timeoutMillis) {
MessageType(MessagePad.MessageType typeCode, @StringRes int descResId, long timeoutMillis) {
this.typeCode = typeCode;
this.desc = desc;
this.descResId = descResId;
this.timeoutMillis = timeoutMillis;
}
public String getDesc(Context context) {
if (context == null) return "";
try {
return context.getString(descResId);
} catch (Exception e) {
return "";
}
}
}

View File

@@ -3,20 +3,32 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 实时决策建议 控车变道建议转向状态
* 出口定义从当前道路逆时针算起
*/
public enum AdviceComRsiEventSource {
ERROR(-1, "异常"),
UNDEFINED(255, "缺省"),
UNKNOWN(0, "未知来源"),
TRAFFIC_POLICE(1, "交管部门"),
GOVERNMENT(2, "其他政府部门"),
METEOROLOGY(3, "气象部门"),
INTERNET(4, "互联网"),
SENSING(5, "路侧或云端感知"),
OTHER(6, "其他来源"),
// ERROR(-1, "异常"),
ERROR(-1, StringUtils.getString(R.string.adas_data_abnormal)),
// UNDEFINED(255, "缺省"),
UNDEFINED(255, StringUtils.getString(R.string.adas_data_default)),
// UNKNOWN(0, "未知来源"),
UNKNOWN(0, StringUtils.getString(R.string.adas_data_unknown_source)),
// TRAFFIC_POLICE(1, "交管部门"),
TRAFFIC_POLICE(1, StringUtils.getString(R.string.adas_data_traffic_management_department)),
// GOVERNMENT(2, "其他政府部门"),
GOVERNMENT(2, StringUtils.getString(R.string.adas_data_other_government_departments)),
// METEOROLOGY(3, "气象部门"),
METEOROLOGY(3, StringUtils.getString(R.string.adas_data_meteorological_department)),
// INTERNET(4, "互联网"),
INTERNET(4, StringUtils.getString(R.string.adas_data_internet)),
// SENSING(5, "路侧或云端感知"),
SENSING(5, StringUtils.getString(R.string.adas_data_roadside_or_cloud_perception)),
// OTHER(6, "其他来源"),
OTHER(6, StringUtils.getString(R.string.adas_data_other_source)),
;
public final int type;

View File

@@ -3,15 +3,23 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 实时决策建议 事件分类
*/
public enum AdviceEventType {
ERROR(-1, "异常"),
UNKNOWN(0, "未知类型"),
TRAFFIC_EVENT(1, "道路交通事件"),
TRAFFIC_SIGN(2, "道路交通标志"),
CLOUD_DECISION(3, "云端决策建议"),
// ERROR(-1, "异常"),
ERROR(-1, StringUtils.getString(R.string.adas_data_event_abnormal)),
// UNKNOWN(0, "未知类型"),
UNKNOWN(0, StringUtils.getString(R.string.adas_data_event_unknown_type)),
// TRAFFIC_EVENT(1, "道路交通事件"),
TRAFFIC_EVENT(1, StringUtils.getString(R.string.adas_data_event_road_traffic_incident)),
// TRAFFIC_SIGN(2, "道路交通标志"),
TRAFFIC_SIGN(2, StringUtils.getString(R.string.adas_data_event_road_traffic_sign)),
// CLOUD_DECISION(3, "云端决策建议"),
CLOUD_DECISION(3, StringUtils.getString(R.string.adas_data_event_cloud_decision_suggestion)),
;
public final int type;

View File

@@ -3,17 +3,27 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 实时决策建议 紧急车辆预警指令 车辆类型
*/
public enum AdviceEvwType {
ERROR(-1, "异常"),
RESERVED(-2, "预留"),
UNDEFINED(255, "缺省"),
INVALID(0, "失效"),
AMBULANCE(1, "救护车"),
POLICE_CAR(2, "警车"),
FIRE_TRUCK(3, "消防车"),
// ERROR(-1, "异常"),
ERROR(-1, StringUtils.getString(R.string.adas_data_evw_type_abnormal)),
// RESERVED(-2, "预留"),
RESERVED(-2, StringUtils.getString(R.string.adas_data_evw_type_reserved)),
// UNDEFINED(255, "缺省"),
UNDEFINED(255, StringUtils.getString(R.string.adas_data_evw_type_default)),
// INVALID(0, "失效"),
INVALID(0, StringUtils.getString(R.string.adas_data_evw_type_invalid)),
// AMBULANCE(1, "救护车"),
AMBULANCE(1, StringUtils.getString(R.string.adas_data_evw_type_ambulance)),
// POLICE_CAR(2, "警车"),
POLICE_CAR(2, StringUtils.getString(R.string.adas_data_evw_type_police_car)),
// FIRE_TRUCK(3, "消防车"),
FIRE_TRUCK(3, StringUtils.getString(R.string.adas_data_evw_type_fire_engine)),
;
public final int type;

View File

@@ -3,16 +3,25 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 实时决策建议 信号灯路口车速引导功能指令 车道方向建议速度 通行行为
*/
public enum AdviceGlosaSpdExpManeuver {
UNKNOWN(-1, "未知"),
UNDEFINED(255, "缺省"),
STRAIGHT(0, "直行"),
LEFT(1, "左转"),
RIGHT(3, "右转"),
U_TURN(4, "掉头"),
// UNKNOWN(-1, "未知"),
UNKNOWN(-1, StringUtils.getString(R.string.adas_data_glosa_spd_unknown)),
// UNDEFINED(255, "缺省"),
UNDEFINED(255, StringUtils.getString(R.string.adas_data_glosa_spd_default)),
// STRAIGHT(0, "直行"),
STRAIGHT(0, StringUtils.getString(R.string.adas_data_glosa_spd_straight)),
// LEFT(1, "左转"),
LEFT(1, StringUtils.getString(R.string.adas_data_glosa_spd_left_turn)),
// RIGHT(3, "右转"),
RIGHT(3, StringUtils.getString(R.string.adas_data_glosa_spd_right_turn)),
// U_TURN(4, "掉头"),
U_TURN(4, StringUtils.getString(R.string.adas_data_glosa_spd_u_turn)),
;
public final int type;

View File

@@ -3,15 +3,23 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 实时决策建议 信号灯路口车速引导功能指令 命令标识
*/
public enum AdviceGlosaType {
ERROR(-1, "异常"),
INVALID(0, "失效"),
GUIDE(1, "引导"),
PARK(2, "停车指令"),
START(3, "启动指令"),
// ERROR(-1, "异常"),
ERROR(-1, StringUtils.getString(R.string.adas_data_glosa_abnormal)),
// INVALID(0, "失效"),
INVALID(0, StringUtils.getString(R.string.adas_data_glosa_invalid)),
// GUIDE(1, "引导"),
GUIDE(1, StringUtils.getString(R.string.adas_data_glosa_guide)),
// PARK(2, "停车指令"),
PARK(2, StringUtils.getString(R.string.adas_data_glosa_parking_instruction)),
// START(3, "启动指令"),
START(3, StringUtils.getString(R.string.adas_data_glosa_start_instruction)),
;
public final int type;

View File

@@ -3,24 +3,40 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 实时决策建议 控车变道建议转向状态
* 出口定义从当前道路逆时针算起
*/
public enum AdviceInstructDirection {
ERROR(-1, "异常"),
UNDEFINED(255, "缺省"),
KEEP_LANE(0, "沿车道行驶"),
EXIT_1(1, "第一出口"),
EXIT_2(2, "第二出口"),
EXIT_3(3, "第三出口"),
EXIT_4(4, "第四出口"),
EXIT_5(5, "第五出口"),
EXIT_6(6, "第六出口"),
EXIT_7(7, "第七出口"),
EXIT_8(8, "第八出口"),
CHANGE_LEFT(9, "左变道"),
CHANGE_RIGHT(10, "右变道"),
// ERROR(-1, "异常"),
ERROR(-1, StringUtils.getString(R.string.adas_data_instruct_abnormal)),
// UNDEFINED(255, "缺省"),
UNDEFINED(255, StringUtils.getString(R.string.adas_data_instruct_default)),
// KEEP_LANE(0, "沿车道行驶"),
KEEP_LANE(0, StringUtils.getString(R.string.adas_data_instruct_lane_keeping_driving)),
// EXIT_1(1, "第一出口"),
EXIT_1(1, StringUtils.getString(R.string.adas_data_instruct_first_exit)),
// EXIT_2(2, "第二出口"),
EXIT_2(2, StringUtils.getString(R.string.adas_data_instruct_second_exit)),
// EXIT_3(3, "第三出口"),
EXIT_3(3, StringUtils.getString(R.string.adas_data_instruct_third_exit)),
// EXIT_4(4, "第四出口"),
EXIT_4(4, StringUtils.getString(R.string.adas_data_instruct_fourth_exit)),
// EXIT_5(5, "第五出口"),
EXIT_5(5, StringUtils.getString(R.string.adas_data_instruct_fifth_exit)),
// EXIT_6(6, "第六出口"),
EXIT_6(6, StringUtils.getString(R.string.adas_data_instruct_sixth_exit)),
// EXIT_7(7, "第七出口"),
EXIT_7(7, StringUtils.getString(R.string.adas_data_instruct_seventh_exit)),
// EXIT_8(8, "第八出口"),
EXIT_8(8, StringUtils.getString(R.string.adas_data_instruct_eighth_exit)),
// CHANGE_LEFT(9, "左变道"),
CHANGE_LEFT(9, StringUtils.getString(R.string.adas_data_instruct_left_lane_change)),
// CHANGE_RIGHT(10, "右变道"),
CHANGE_RIGHT(10, StringUtils.getString(R.string.adas_data_instruct_right_lane_change)),
;
public final int type;

View File

@@ -3,31 +3,51 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 实时决策建议 建议类型
*/
public enum AdviceType {
ERROR(-1, "异常"),
// ERROR(-1, "异常"),
ERROR(-1, StringUtils.getString(R.string.adas_data_advice_type_abnormal)),
//2、绿波通行 adviceType=1
CLOUD2VEH_ADVICE_GLOSA(1, "信号灯路口车速引导功能指令"),
VEH2CLOUD_ADVICE_GLOSA_RES(2, "信号灯路口车速引导功能指令返回"),
CLOUD2VEH_ADVICE_NTLAR(3, "无信号灯路口右转功能指令"),
VEH2CLOUD_ADVICE_NTLAR_RES(4, "无信号灯路口右转功能指令返回"),
// CLOUD2VEH_ADVICE_GLOSA(1, "信号灯路口车速引导功能指令"),
CLOUD2VEH_ADVICE_GLOSA(1, StringUtils.getString(R.string.adas_data_advice_type_glosa_function_instruction)),
// VEH2CLOUD_ADVICE_GLOSA_RES(2, "信号灯路口车速引导功能指令返回"),
VEH2CLOUD_ADVICE_GLOSA_RES(2, StringUtils.getString(R.string.adas_data_advice_type_glosa_function_instruction_return)),
// CLOUD2VEH_ADVICE_NTLAR(3, "无信号灯路口右转功能指令"),
CLOUD2VEH_ADVICE_NTLAR(3, StringUtils.getString(R.string.adas_data_advice_type_no_signal_intersection_right_turn_instruction)),
// VEH2CLOUD_ADVICE_NTLAR_RES(4, "无信号灯路口右转功能指令返回"),
VEH2CLOUD_ADVICE_NTLAR_RES(4, StringUtils.getString(R.string.adas_data_advice_type_no_signal_intersection_right_turn_instruction_return)),
//8、动态限速信息
CLOUD2VEH_ADVICE_LANESPDLMT(5, "动态车道级限速指令"),
VEH2CLOUD_ADVICE_LANESPDLMT_RES(6, "动态车道级限速指令返回"),
CLOUD2VEH_ADVICE_RAMP_INTENT_CHANGE(7, "匝道汇回预警指令"),
VEH2CLOUD_ADVICE_RAMP_INTENT_CHANGE_RES(8, "匝道汇回预警指令返回"),
CLOUD2VEH_ADVICE_FCW(9, "前向碰撞预警指令"),
VEH2CLOUD_ADVICE_FCW_RES(10, "前向碰撞预警返回"),
// CLOUD2VEH_ADVICE_LANESPDLMT(5, "动态车道级限速指令"),
CLOUD2VEH_ADVICE_LANESPDLMT(5, StringUtils.getString(R.string.adas_data_advice_type_dynamic_lane_speed_limit_instruction)),
// VEH2CLOUD_ADVICE_LANESPDLMT_RES(6, "动态车道级限速指令返回"),
VEH2CLOUD_ADVICE_LANESPDLMT_RES(6, StringUtils.getString(R.string.adas_data_advice_type_dynamic_lane_speed_limit_instruction_return)),
// CLOUD2VEH_ADVICE_RAMP_INTENT_CHANGE(7, "匝道汇回预警指令"),
CLOUD2VEH_ADVICE_RAMP_INTENT_CHANGE(7, StringUtils.getString(R.string.adas_data_advice_type_ramp_merge_warn_instruction)),
// VEH2CLOUD_ADVICE_RAMP_INTENT_CHANGE_RES(8, "匝道汇回预警指令返回"),
VEH2CLOUD_ADVICE_RAMP_INTENT_CHANGE_RES(8, StringUtils.getString(R.string.adas_data_advice_type_ramp_merge_warn_instruction_return)),
// CLOUD2VEH_ADVICE_FCW(9, "前向碰撞预警指令"),
CLOUD2VEH_ADVICE_FCW(9, StringUtils.getString(R.string.adas_data_advice_type_fcw_instruction)),
// VEH2CLOUD_ADVICE_FCW_RES(10, "前向碰撞预警返回"),
VEH2CLOUD_ADVICE_FCW_RES(10, StringUtils.getString(R.string.adas_data_advice_type_fcw_instruction_return)),
//异常车辆预警
CLOUD2VEH_ADVICE_AVW(11, "异常车辆预警指令"),
VEH2CLOUD_ADVICE_AVW_RES(12, "异常车辆预警返回"),
// CLOUD2VEH_ADVICE_AVW(11, "异常车辆预警指令"),
CLOUD2VEH_ADVICE_AVW(11, StringUtils.getString(R.string.adas_data_advice_type_avw_instruction)),
// VEH2CLOUD_ADVICE_AVW_RES(12, "异常车辆预警返回"),
VEH2CLOUD_ADVICE_AVW_RES(12, StringUtils.getString(R.string.adas_data_advice_type_avw_instruction_return)),
//6、紧急车辆优先通行 adviceType=13
CLOUD2VEH_ADVICE_EVW(13, "紧急车辆预警指令"),
VEH2CLOUD_ADVICE_EVW_RES(14, "紧急车辆预警返回"),
CLOUD2VEH_ADVICE_RAMP_ASSIST(15, "匝道辅助指令"),
VEH2CLOUD_ADVICE_RAMP_ASSIST_RES(16, "匝道辅助返回"),
// CLOUD2VEH_ADVICE_EVW(13, "紧急车辆预警指令"),
CLOUD2VEH_ADVICE_EVW(13, StringUtils.getString(R.string.adas_data_advice_type_evw_instruction)),
// VEH2CLOUD_ADVICE_EVW_RES(14, "紧急车辆预警返回"),
VEH2CLOUD_ADVICE_EVW_RES(14, StringUtils.getString(R.string.adas_data_advice_type_evw_instruction_return)),
// CLOUD2VEH_ADVICE_RAMP_ASSIST(15, "匝道辅助指令"),
CLOUD2VEH_ADVICE_RAMP_ASSIST(15, StringUtils.getString(R.string.adas_data_advice_type_alg_instruction)),
// VEH2CLOUD_ADVICE_RAMP_ASSIST_RES(16, "匝道辅助返回"),
VEH2CLOUD_ADVICE_RAMP_ASSIST_RES(16, StringUtils.getString(R.string.adas_data_advice_type_alg_instruction_return)),
//3、闯红灯预警 adviceType=17 sub_eventType=6011
//4、行驶车道建议 adviceType=17 sub_eventType=6031/6032
//5、交通拥堵提醒 adviceType=17 sub_eventType=6061
@@ -36,10 +56,14 @@ public enum AdviceType {
//10、路口其他车辆闯红灯预警 adviceType=17 sub_eventType=6041
//11、障碍物(路面遗撒)预警 adviceType=17 sub_eventType=6081
//12、能见度预警 adviceType=17 sub_eventType=6071
CLOUD2VEH_ADVICE_COM_RSI(17, "通用RSI预警指令"),
VEH2CLOUD_ADVICE_COM_RSI_RES(18, "通用RSI预警返回"),
CLOUD2VEH_ADVICE_GUIDANCE(19, "路线规划指令"),
VEH2CLOUD_ADVICE_GUIDANCE_RES(20, "路线规划返回"),
// CLOUD2VEH_ADVICE_COM_RSI(17, "通用RSI预警指令"),
CLOUD2VEH_ADVICE_COM_RSI(17, StringUtils.getString(R.string.adas_data_advice_type_grsi_warning_instruction)),
// VEH2CLOUD_ADVICE_COM_RSI_RES(18, "通用RSI预警返回"),
VEH2CLOUD_ADVICE_COM_RSI_RES(18, StringUtils.getString(R.string.adas_data_advice_type_grsi_warning_instruction_return)),
// CLOUD2VEH_ADVICE_GUIDANCE(19, "路线规划指令"),
CLOUD2VEH_ADVICE_GUIDANCE(19, StringUtils.getString(R.string.adas_data_advice_type_arp_instruction)),
// VEH2CLOUD_ADVICE_GUIDANCE_RES(20, "路线规划返回"),
VEH2CLOUD_ADVICE_GUIDANCE_RES(20, StringUtils.getString(R.string.adas_data_advice_type_arp_instruction_return)),
;
public final int type;

View File

@@ -3,16 +3,25 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 云端辅助功能 云端下发信号灯信息 红绿灯控制方式
*/
public enum AstFuncTlmControlMode {
ERROR(-1, "异常"),
RESERVED(-2, "预留"),
UNDEFINED(255, "缺省"),
PERIODIC(1, "固定周期"),
MANUAL(2, "手动控制"),
YELLOW_FLASH(3, "黄闪控制"),
// ERROR(-1, "异常"),
ERROR(-1, StringUtils.getString(R.string.adas_data_control_abnormal)),
// RESERVED(-2, "预留"),
RESERVED(-2, StringUtils.getString(R.string.adas_data_control_reserved)),
// UNDEFINED(255, "缺省"),
UNDEFINED(255, StringUtils.getString(R.string.adas_data_control_default)),
// PERIODIC(1, "固定周期"),
PERIODIC(1, StringUtils.getString(R.string.adas_data_control_fixed_cycle)),
// MANUAL(2, "手动控制"),
MANUAL(2, StringUtils.getString(R.string.adas_data_control_manual_control)),
// YELLOW_FLASH(3, "黄闪控制"),
YELLOW_FLASH(3, StringUtils.getString(R.string.adas_data_control_yellow_flash_control)),
;
public final int type;

View File

@@ -3,22 +3,37 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 云端辅助功能 云端下发信号灯信息 红绿灯控制方式
*/
public enum AstFuncTlmPhaseStateLightState {
ERROR(-1, "异常"),
RESERVED(-2, "预留"),
UNKNOWN(0, "未知状态"),
OFF(1, "信号灯未工作"),
RED_FLASH(2, "红闪"),
RED(3, "红灯状态"),
GREEN_WAIT(4, "绿灯待行状态"),
GREEN(5, "绿灯状态"),
GREEN_PROTECTED(6, "受保护相位绿灯(箭头灯)"),
YELLOW(7, "黄灯状态"),
YELLOW_FLASH(8, "黄闪"),
FAULT(255, "故障"),
// ERROR(-1, "异常"),
ERROR(-1, StringUtils.getString(R.string.adas_data_light_state_abnormal)),
// RESERVED(-2, "预留"),
RESERVED(-2, StringUtils.getString(R.string.adas_data_light_state_reserved)),
// UNKNOWN(0, "未知状态"),
UNKNOWN(0, StringUtils.getString(R.string.adas_data_light_state_unknown_status)),
// OFF(1, "信号灯未工作"),
OFF(1, StringUtils.getString(R.string.adas_data_light_state_signal_light_not_working)),
// RED_FLASH(2, "红闪"),
RED_FLASH(2, StringUtils.getString(R.string.adas_data_light_state_red_flashing)),
// RED(3, "红灯状态"),
RED(3, StringUtils.getString(R.string.adas_data_light_state_red_light_status)),
// GREEN_WAIT(4, "绿灯待行状态"),
GREEN_WAIT(4, StringUtils.getString(R.string.adas_data_light_state_green_light_waiting_status)),
// GREEN(5, "绿灯状态"),
GREEN(5, StringUtils.getString(R.string.adas_data_light_state_green_light_status)),
// GREEN_PROTECTED(6, "受保护相位绿灯(箭头灯)"),
GREEN_PROTECTED(6, StringUtils.getString(R.string.adas_data_light_state_protected_phase_green_light_arrow_light)),
// YELLOW(7, "黄灯状态"),
YELLOW(7, StringUtils.getString(R.string.adas_data_light_state_yellow_light_status)),
// YELLOW_FLASH(8, "黄闪"),
YELLOW_FLASH(8, StringUtils.getString(R.string.adas_data_light_state_yellow_flashing)),
// FAULT(255, "故障"),
FAULT(255, StringUtils.getString(R.string.adas_data_light_state_fault)),
;
public final int type;

View File

@@ -3,28 +3,49 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 云端辅助功能 云端下发信号灯信息 红绿灯控制方式
*/
public enum AstFuncTlmPhaseStateLightType {
ERROR(-1, "异常"),
RESERVED(-2, "预留"),
STRAIGHT(1, "直行方向指示信号灯"),
LEFT(2, "左转方向指示信号灯"),
RIGHT(3, "右转方向指示信号灯"),
VEHICLE(4, "机动车信号灯"),
NON_MOTOR_LEFT(5, "左转非机动车信号灯"),
NON_MOTOR_RIGHT(6, "右转非机动车信号灯"),
NON_MOTOR(7, "非机动车信号灯"),
PEDESTRIAN(8, "人行横道信号灯"),
U_TURN(9, "掉头信号灯"),
LANE(10, "车道信号灯"),
CROSSING(11, "道口信号灯"),
WARNING_FLASH(12, "闪光警告信号灯"),
TRAM_STRAIGHT(13, "有轨电车专用信号灯(直行)"),
TRAM_LEFT(14, "有轨电车专用信号灯(左转)"),
TRAM_RIGHT(15, "有轨电车专用信号灯(右转)"),
INVALID(255, "无效或未知灯组类型")
// ERROR(-1, "异常"),
ERROR(-1, StringUtils.getString(R.string.adas_data_light_type_abnormal)),
// RESERVED(-2, "预留"),
RESERVED(-2, StringUtils.getString(R.string.adas_data_light_type_reserved)),
// STRAIGHT(1, "直行方向指示信号灯"),
STRAIGHT(1, StringUtils.getString(R.string.adas_data_light_type_straight_direction_indicator_light)),
// LEFT(2, "左转方向指示信号灯"),
LEFT(2, StringUtils.getString(R.string.adas_data_light_type_left_turn_direction_indicator_light)),
// RIGHT(3, "右转方向指示信号灯"),
RIGHT(3, StringUtils.getString(R.string.adas_data_light_type_right_turn_direction_indicator_light)),
// VEHICLE(4, "机动车信号灯"),
VEHICLE(4, StringUtils.getString(R.string.adas_data_light_type_motor_vehicle_light)),
// NON_MOTOR_LEFT(5, "左转非机动车信号灯"),
NON_MOTOR_LEFT(5, StringUtils.getString(R.string.adas_data_light_type_left_turn_non_motor_vehicle_light)),
// NON_MOTOR_RIGHT(6, "右转非机动车信号灯"),
NON_MOTOR_RIGHT(6, StringUtils.getString(R.string.adas_data_light_type_right_turn_non_motor_vehicle_light)),
// NON_MOTOR(7, "非机动车信号灯"),
NON_MOTOR(7, StringUtils.getString(R.string.adas_data_light_type_non_motor_vehicle_light)),
// PEDESTRIAN(8, "人行横道信号灯"),
PEDESTRIAN(8, StringUtils.getString(R.string.adas_data_light_type_pedestrian_crossing_light)),
// U_TURN(9, "掉头信号灯"),
U_TURN(9, StringUtils.getString(R.string.adas_data_light_type_u_turn_signal_light)),
// LANE(10, "车道信号灯"),
LANE(10, StringUtils.getString(R.string.adas_data_light_type_lane_signal_light)),
// CROSSING(11, "道口信号灯"),
CROSSING(11, StringUtils.getString(R.string.adas_data_light_type_railroad_crossing_signal_light)),
// WARNING_FLASH(12, "闪光警告信号灯"),
WARNING_FLASH(12, StringUtils.getString(R.string.adas_data_light_type_flashing_warning_signal_light)),
// TRAM_STRAIGHT(13, "有轨电车专用信号灯(直行)"),
TRAM_STRAIGHT(13, StringUtils.getString(R.string.adas_data_light_type_straight_tramway_dedicated_signal_light)),
// TRAM_LEFT(14, "有轨电车专用信号灯(左转)"),
TRAM_LEFT(14, StringUtils.getString(R.string.adas_data_light_type_left_turn_tramway_dedicated_signal_light)),
// TRAM_RIGHT(15, "有轨电车专用信号灯(右转)"),
TRAM_RIGHT(15, StringUtils.getString(R.string.adas_data_light_type_right_turn_tram_traffic_signal)),
// INVALID(255, "无效或未知灯组类型")
INVALID(255, StringUtils.getString(R.string.adas_data_light_type_invalid_or_unknown_light_group_type))
;
public final int type;

View File

@@ -3,21 +3,35 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 云端辅助功能信息 辅助功能类别
*/
public enum AstFuncType {
ERROR(-1, "异常"),
CLOUD2VEH_ASTFUNC_STREAM_VIDEO(1, "云端请求车辆视频流上传指令"),
VEH2CLOUD_ASTFUNC_STREAM_VIDEO_RES(2, "云端请求车辆视频流上传指令返回"),
CLOUD2VEH_ASTFUNC_HIST_VIDEO(3, "云端请求车辆历史视频上传指令"),
VEH2CLOUD_ASTFUNC_HIST_VIDEO_RES(4, "云端请求车辆历史视频上传指令返回"),
CLOUD2VEH_ASTFUNC_HIST_EDR(5, "云端请求车端上传EDR数据"),
CLOUD2VEH_ASTFUNC_HIST_EDR_RES(6, "云端请求车端上传EDR数据返回"),
CLOUD2VEH_ASTFUNC_TLM(7, "云端下发信号灯信息"),
CLOUD2VEH_ASTFUNC_RTCM(9, "云端下发定位增强信息"),
VEH2CLOUD_ASTFUNC_RTCM_RES(10, "云端下发定位增强信息返回"),
CLOUD2VEH_ASTFUNC_RSM(11, "云端下发实时感知信息"),
// ERROR(-1, "异常"),
ERROR(-1, StringUtils.getString(R.string.adas_data_func_type_abnormal)),
// CLOUD2VEH_ASTFUNC_STREAM_VIDEO(1, "云端请求车辆视频流上传指令"),
CLOUD2VEH_ASTFUNC_STREAM_VIDEO(1, StringUtils.getString(R.string.adas_data_func_type_cloud_request_vehicle_video_stream_upload_command)),
// VEH2CLOUD_ASTFUNC_STREAM_VIDEO_RES(2, "云端请求车辆视频上传指令返回"),
VEH2CLOUD_ASTFUNC_STREAM_VIDEO_RES(2, StringUtils.getString(R.string.adas_data_func_type_cloud_request_vehicle_video_stream_upload_command_response)),
// CLOUD2VEH_ASTFUNC_HIST_VIDEO(3, "云端请求车辆历史视频上传指令"),
CLOUD2VEH_ASTFUNC_HIST_VIDEO(3, StringUtils.getString(R.string.adas_data_func_type_cloud_request_vehicle_historical_video_upload_command)),
// VEH2CLOUD_ASTFUNC_HIST_VIDEO_RES(4, "云端请求车辆历史视频上传指令返回"),
VEH2CLOUD_ASTFUNC_HIST_VIDEO_RES(4, StringUtils.getString(R.string.adas_data_func_type_cloud_request_vehicle_historical_video_upload_command_response)),
// CLOUD2VEH_ASTFUNC_HIST_EDR(5, "云端请求车端上传EDR数据"),
CLOUD2VEH_ASTFUNC_HIST_EDR(5, StringUtils.getString(R.string.adas_data_func_type_cloud_request_vehicle_upload_edr_data)),
// CLOUD2VEH_ASTFUNC_HIST_EDR_RES(6, "云端请求车端上传EDR数据返回"),
CLOUD2VEH_ASTFUNC_HIST_EDR_RES(6, StringUtils.getString(R.string.adas_data_func_type_cloud_request_vehicle_upload_edr_data_response)),
// CLOUD2VEH_ASTFUNC_TLM(7, "云端下发信号灯信息"),
CLOUD2VEH_ASTFUNC_TLM(7, StringUtils.getString(R.string.adas_data_func_type_cloud_deliver_traffic_light_info)),
// CLOUD2VEH_ASTFUNC_RTCM(9, "云端下发定位增强信息"),
CLOUD2VEH_ASTFUNC_RTCM(9, StringUtils.getString(R.string.adas_data_func_type_cloud_deliver_positioning_enhancement_info)),
// VEH2CLOUD_ASTFUNC_RTCM_RES(10, "云端下发定位增强信息返回"),
VEH2CLOUD_ASTFUNC_RTCM_RES(10, StringUtils.getString(R.string.adas_data_func_type_cloud_deliver_positioning_enhancement_info_response)),
// CLOUD2VEH_ASTFUNC_RSM(11, "云端下发实时感知信息"),
CLOUD2VEH_ASTFUNC_RSM(11, StringUtils.getString(R.string.adas_data_func_type_cloud_deliver_real_time_perception_info)),
;
public final int type;

View File

@@ -3,30 +3,53 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 数据传输类型
*/
public enum CloudDataType {
ERROR((byte) 0xFF, "异常"),
HEARTBEAT((byte) 0x0C, "心跳"),
HEARTBEAT_RES((byte) 0x0D, "心跳回应"),
VEH2CLOUD_STATE((byte) 0x15, "车辆运行状态信息"),
CLOUD2VEH_INSTRUCT((byte) 0x1E, "云端实时控制建议"),
CLOUD2VEH_REMOTECTL((byte) 0x1F, "云端远程控制"),
VEH2CLOUD_INH((byte) 0x34, "车辆准静态参数上报"),
CLOUD2VEH_INH_RES((byte) 0x35, "车辆准静态参数上报返回"),
VEH2CLOUD_SUBS((byte) 0x36, "车辆功能订阅信息"),
CLOUD2VEH_SUBS_RES((byte) 0x37, "车辆功能订阅信息返回"),
CLOUD2VEH_ADVICE((byte) 0x3C, "实时决策建议"),
VEH2CLOUD_ADVICE_RES((byte) 0x3D, "实时决策建议返回"),
CLOUD2VEH_ASTFUNC((byte) 0x3E, "辅助功能"),
VEH2CLOUD_ASTFUNC_RES((byte) 0x3F, "辅助功能返回"),
VEH2CLOUD_TEST((byte) 0x5C, "上行自定义功能"),
CLOUD2VEH_TEST_RES((byte) 0x5D, "上行自定义功能返回"),
CLOUD2VEH_TEST((byte) 0x5E, "下行自定义功能"),
VEH2CLOUD_TEST_RES((byte) 0x5D, "下行自定义功能返回"),
VEH2CLOUD_STATE_RESEND((byte) 0x60, "车辆运行状态信息补发"),
CLOUD2VEH_STATE_RESEND_RES((byte) 0x61, "车辆运行状态信息补发返回"),
// ERROR((byte) 0xFF, "异常"),
ERROR((byte) 0xFF, StringUtils.getString(R.string.adas_data_data_type_abnormal)),
// HEARTBEAT((byte) 0x0C, "心跳"),
HEARTBEAT((byte) 0x0C, StringUtils.getString(R.string.adas_data_data_type_heartbeat)),
// HEARTBEAT_RES((byte) 0x0D, "心跳回应"),
HEARTBEAT_RES((byte) 0x0D, StringUtils.getString(R.string.adas_data_data_type_heartbeat_response)),
// VEH2CLOUD_STATE((byte) 0x15, "车辆运行状态信息"),
VEH2CLOUD_STATE((byte) 0x15, StringUtils.getString(R.string.adas_data_data_type_vehicle_operation_status_info)),
// CLOUD2VEH_INSTRUCT((byte) 0x1E, "云端实时控制建议"),
CLOUD2VEH_INSTRUCT((byte) 0x1E, StringUtils.getString(R.string.adas_data_data_type_cloud_real_time_control_suggestion)),
// CLOUD2VEH_REMOTECTL((byte) 0x1F, "云端远程控制"),
CLOUD2VEH_REMOTECTL((byte) 0x1F, StringUtils.getString(R.string.adas_data_data_type_cloud_remote_control)),
// VEH2CLOUD_INH((byte) 0x34, "车辆准静态参数上报"),
VEH2CLOUD_INH((byte) 0x34, StringUtils.getString(R.string.adas_data_data_type_vehicle_quasi_static_parameter_report)),
// CLOUD2VEH_INH_RES((byte) 0x35, "车辆准静态参数上报返回"),
CLOUD2VEH_INH_RES((byte) 0x35, StringUtils.getString(R.string.adas_data_data_type_vehicle_quasi_static_parameter_report_response)),
// VEH2CLOUD_SUBS((byte) 0x36, "车辆功能订阅信息"),
VEH2CLOUD_SUBS((byte) 0x36, StringUtils.getString(R.string.adas_data_data_type_vehicle_function_subscription_info)),
// CLOUD2VEH_SUBS_RES((byte) 0x37, "车辆功能订阅信息返回"),
CLOUD2VEH_SUBS_RES((byte) 0x37, StringUtils.getString(R.string.adas_data_data_type_vehicle_function_subscription_info_response)),
// CLOUD2VEH_ADVICE((byte) 0x3C, "实时决策建议"),
CLOUD2VEH_ADVICE((byte) 0x3C, StringUtils.getString(R.string.adas_data_data_type_real_time_decision_suggestion)),
// VEH2CLOUD_ADVICE_RES((byte) 0x3D, "实时决策建议返回"),
VEH2CLOUD_ADVICE_RES((byte) 0x3D, StringUtils.getString(R.string.adas_data_data_type_real_time_decision_suggestion_response)),
// CLOUD2VEH_ASTFUNC((byte) 0x3E, "辅助功能"),
CLOUD2VEH_ASTFUNC((byte) 0x3E, StringUtils.getString(R.string.adas_data_data_type_auxiliary_function)),
// VEH2CLOUD_ASTFUNC_RES((byte) 0x3F, "辅助功能返回"),
VEH2CLOUD_ASTFUNC_RES((byte) 0x3F, StringUtils.getString(R.string.adas_data_data_type_auxiliary_function_response)),
// VEH2CLOUD_TEST((byte) 0x5C, "上行自定义功能"),
VEH2CLOUD_TEST((byte) 0x5C, StringUtils.getString(R.string.adas_data_data_type_uplink_custom_function)),
// CLOUD2VEH_TEST_RES((byte) 0x5D, "上行自定义功能返回"),
CLOUD2VEH_TEST_RES((byte) 0x5D, StringUtils.getString(R.string.adas_data_data_type_uplink_custom_function_response)),
// CLOUD2VEH_TEST((byte) 0x5E, "下行自定义功能"),
CLOUD2VEH_TEST((byte) 0x5E, StringUtils.getString(R.string.adas_data_data_type_downlink_custom_function)),
// VEH2CLOUD_TEST_RES((byte) 0x5D, "下行自定义功能返回"),
VEH2CLOUD_TEST_RES((byte) 0x5D, StringUtils.getString(R.string.adas_data_data_type_downlink_custom_function_response)),
// VEH2CLOUD_STATE_RESEND((byte) 0x60, "车辆运行状态信息补发"),
VEH2CLOUD_STATE_RESEND((byte) 0x60, StringUtils.getString(R.string.adas_data_data_type_vehicle_operation_status_info_retransmission)),
// CLOUD2VEH_STATE_RESEND_RES((byte) 0x61, "车辆运行状态信息补发返回"),
CLOUD2VEH_STATE_RESEND_RES((byte) 0x61, StringUtils.getString(R.string.adas_data_data_type_vehicle_operation_status_info_retransmission_response)),
;
public final byte type;

View File

@@ -3,23 +3,39 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 通用RSI预警指令 云端决策 交通事件类型
*/
public enum RsiCloudDecisionEventType {
UNKNOWN(-1, "未知/异常"),
RED_LIGHT_RUNNING_WARNING(6011, "闯红灯预警功能"),
ROAD_HAZARD_ALERT_SERVICE_6021(6021, "道路危险状况提示服务功能"),
ROAD_HAZARD_ALERT_SERVICE_6022(6022, "道路危险状况提示服务功能"),
DRIVING_LANE_SUGGESTION_6031(6031, "行驶车道建议功能"),
DRIVING_LANE_SUGGESTION_6032(6032, "行驶车道建议功能"),
INTERSECTION_RED_LIGHT_WARNING(6041, "路口其他车辆闯红灯预警功能"),
OVER_THE_HORIZON_VULNERABLE_ROAD_USER_WARNING(6051, "超视距弱势交通参与者预警功能"),
TRAFFIC_CONGESTION_ALERT(6061, "交通拥堵提醒功能"),
VISIBILITY_WARNING(6071, "能见度预警功能"),
ROAD_DEBRIS_WARNING(6081, "路面遗撒预警功能"),
RED_LIGHT_TO_GREEN_ALERT(6012, "红灯即将变绿功能"),
GREEN_LIGHT_TO_RED_ALERT(6013, "绿灯即将变红功能"),
// UNKNOWN(-1, "未知/异常"),
UNKNOWN(-1, StringUtils.getString(R.string.adas_data_rsi_cloud_unknown_or_abnormal)),
// RED_LIGHT_RUNNING_WARNING(6011, "闯红灯预警功能"),
RED_LIGHT_RUNNING_WARNING(6011, StringUtils.getString(R.string.adas_data_rsi_cloud_red_light_running_warning_function)),
// ROAD_HAZARD_ALERT_SERVICE_6021(6021, "道路危险状况提示服务功能"),
ROAD_HAZARD_ALERT_SERVICE_6021(6021, StringUtils.getString(R.string.adas_data_rsi_cloud_road_hazard_condition_prompt_service_function)),
// ROAD_HAZARD_ALERT_SERVICE_6022(6022, "道路危险状况提示服务功能"),
ROAD_HAZARD_ALERT_SERVICE_6022(6022, StringUtils.getString(R.string.adas_data_rsi_cloud_road_hazard_condition_prompt_service_function)),
// DRIVING_LANE_SUGGESTION_6031(6031, "行驶车道建议功能"),
DRIVING_LANE_SUGGESTION_6031(6031, StringUtils.getString(R.string.adas_data_rsi_cloud_driving_lane_recommendation_function)),
// DRIVING_LANE_SUGGESTION_6032(6032, "行驶车道建议功能"),
DRIVING_LANE_SUGGESTION_6032(6032, StringUtils.getString(R.string.adas_data_rsi_cloud_driving_lane_recommendation_function)),
// INTERSECTION_RED_LIGHT_WARNING(6041, "路口其他车辆闯红灯预警功能"),
INTERSECTION_RED_LIGHT_WARNING(6041, StringUtils.getString(R.string.adas_data_rsi_cloud_intersection_other_vehicle_red_light_running_warning_function)),
// OVER_THE_HORIZON_VULNERABLE_ROAD_USER_WARNING(6051, "超视距弱势交通参与者预警功能"),
OVER_THE_HORIZON_VULNERABLE_ROAD_USER_WARNING(6051, StringUtils.getString(R.string.adas_data_rsi_cloud_over_the_horizon_vru_warning_function)),
// TRAFFIC_CONGESTION_ALERT(6061, "交通拥堵提醒功能"),
TRAFFIC_CONGESTION_ALERT(6061, StringUtils.getString(R.string.adas_data_rsi_cloud_traffic_congestion_reminder_function)),
// VISIBILITY_WARNING(6071, "能见度预警功能"),
VISIBILITY_WARNING(6071, StringUtils.getString(R.string.adas_data_rsi_cloud_visibility_warning_function)),
// ROAD_DEBRIS_WARNING(6081, "路面遗撒预警功能"),
ROAD_DEBRIS_WARNING(6081, StringUtils.getString(R.string.adas_data_rsi_cloud_road_surface_debris_warning_function)),
// RED_LIGHT_TO_GREEN_ALERT(6012, "红灯即将变绿功能"),
RED_LIGHT_TO_GREEN_ALERT(6012, StringUtils.getString(R.string.adas_data_rsi_cloud_red_light_about_to_turn_green_function)),
// GREEN_LIGHT_TO_RED_ALERT(6013, "绿灯即将变红功能"),
GREEN_LIGHT_TO_RED_ALERT(6013, StringUtils.getString(R.string.adas_data_rsi_cloud_green_light_about_to_turn_red_function)),
;
public final int type;

View File

@@ -3,34 +3,61 @@ package com.zhjt.mogo.adas.common.cloud;
import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhjt.mogo.adas.data.R;
/**
* 通用RSI预警指令 交通事件类型
*/
public enum RsiEventType {
UNKNOWN(-1, "未知/异常"),
PEDESTRIAN_WARNING(5501, "行人提醒"),
NON_MOTOR_WARNING(5502, "非机动车提醒"),
EMERGENCY_BRAKE_WARNING(5503, "紧急制动预警"),
REVERSING_WARNING(5504, "倒车预警"),
WRONG_WAY_WARNING(5505, "逆行预警"),
ABNORMALLY_LOW_SPEED(5506, "异常低速预警"),
ABNORMAL_PARKING(5507, "异常停车预警"),
OVERSPEED_WARNING(5508, "超速预警"),
TRAFFIC_JAM(5509, "交通拥堵预警"),
SPECIAL_VEHICLE_WARNING(5510, "特殊车辆预警"),
EMERGENCY_VEHICLE_WARNING(5511, "紧急车辆预警"),
VEHICLE_STATUS_ABNORMAL(5512, "车辆状态异常预警"),
CONTINUOUS_LANE_CHANGE(5513, "连续并道预警"),
RAMP_TO_MAIN_ROAD(5514, "匝道退回主路预警"),
TRAFFIC_CONTROL(5515, "交通管控预警"),
LOW_FRICTION_ROAD(5516, "路面低摩阻预警"),
LANE_LEVEL_SPEED_LIMIT(5517, "动态车道级限速预警"),
OBSTACLE_REMINDER(5518, "障碍物提醒"),
TRAFFIC_LIGHT_FAULT(5519, "红绿灯故障预警"),
VULNERABLE_PARTICIPANT(5520, "弱势交通参与者预警"),
RED_LIGHT_VIOLATION_WARNING(5521, "闯红灯预警"),
SOLID_LINE_LANE_CHANGE(5522, "机动车压实线变道"),
WRONG_GUIDE_DIRECTION(5523, "机动车不按导向标识行驶"),
// UNKNOWN(-1, "未知/异常"),
UNKNOWN(-1, StringUtils.getString(R.string.adas_data_rsi_event_unknown_or_abnormal)),
// PEDESTRIAN_WARNING(5501, "行人提醒"),
PEDESTRIAN_WARNING(5501, StringUtils.getString(R.string.adas_data_rsi_event_pedestrian_reminder_function)),
// NON_MOTOR_WARNING(5502, "非机动车提醒"),
NON_MOTOR_WARNING(5502, StringUtils.getString(R.string.adas_data_rsi_event_non_motor_vehicle_reminder_function)),
// EMERGENCY_BRAKE_WARNING(5503, "紧急制动预警"),
EMERGENCY_BRAKE_WARNING(5503, StringUtils.getString(R.string.adas_data_rsi_event_emergency_brake_warning_function)),
// REVERSING_WARNING(5504, "倒车预警"),
REVERSING_WARNING(5504, StringUtils.getString(R.string.adas_data_rsi_event_reverse_warning_function)),
// WRONG_WAY_WARNING(5505, "逆行预警"),
WRONG_WAY_WARNING(5505, StringUtils.getString(R.string.adas_data_rsi_event_wrong_way_driving_warning_function)),
// ABNORMALLY_LOW_SPEED(5506, "异常低速预警"),
ABNORMALLY_LOW_SPEED(5506, StringUtils.getString(R.string.adas_data_rsi_event_abnormal_low_speed_warning_function)),
// ABNORMAL_PARKING(5507, "异常停车预警"),
ABNORMAL_PARKING(5507, StringUtils.getString(R.string.adas_data_rsi_event_abnormal_parking_warning_function)),
// OVERSPEED_WARNING(5508, "超速预警"),
OVERSPEED_WARNING(5508, StringUtils.getString(R.string.adas_data_rsi_event_over_speed_warning_function)),
// TRAFFIC_JAM(5509, "交通拥堵预警"),
TRAFFIC_JAM(5509, StringUtils.getString(R.string.adas_data_rsi_event_traffic_congestion_warning_function)),
// SPECIAL_VEHICLE_WARNING(5510, "特殊车辆预警"),
SPECIAL_VEHICLE_WARNING(5510, StringUtils.getString(R.string.adas_data_rsi_event_special_vehicle_warning_function)),
// EMERGENCY_VEHICLE_WARNING(5511, "紧急车辆预警"),
EMERGENCY_VEHICLE_WARNING(5511, StringUtils.getString(R.string.adas_data_rsi_event_emergency_vehicle_warning_function)),
// VEHICLE_STATUS_ABNORMAL(5512, "车辆状态异常预警"),
VEHICLE_STATUS_ABNORMAL(5512, StringUtils.getString(R.string.adas_data_rsi_event_vehicle_status_abnormality_warning_function)),
// CONTINUOUS_LANE_CHANGE(5513, "连续并道预警"),
CONTINUOUS_LANE_CHANGE(5513, StringUtils.getString(R.string.adas_data_rsi_event_continuous_lane_change_warning_function)),
// RAMP_TO_MAIN_ROAD(5514, "匝道退回主路预警"),
RAMP_TO_MAIN_ROAD(5514, StringUtils.getString(R.string.adas_data_rsi_event_ramp_return_to_main_road_warning_function)),
// TRAFFIC_CONTROL(5515, "交通管控预警"),
TRAFFIC_CONTROL(5515, StringUtils.getString(R.string.adas_data_rsi_event_traffic_control_warning_function)),
// LOW_FRICTION_ROAD(5516, "路面低摩阻预警"),
LOW_FRICTION_ROAD(5516, StringUtils.getString(R.string.adas_data_rsi_event_road_surface_low_friction_warning_function)),
// LANE_LEVEL_SPEED_LIMIT(5517, "动态车道级限速预警"),
LANE_LEVEL_SPEED_LIMIT(5517, StringUtils.getString(R.string.adas_data_rsi_event_dynamic_lane_level_speed_limit_warning_function)),
// OBSTACLE_REMINDER(5518, "障碍物提醒"),
OBSTACLE_REMINDER(5518, StringUtils.getString(R.string.adas_data_rsi_event_obstacle_reminder_function)),
// TRAFFIC_LIGHT_FAULT(5519, "红绿灯故障预警"),
TRAFFIC_LIGHT_FAULT(5519, StringUtils.getString(R.string.adas_data_rsi_event_traffic_light_fault_warning_function)),
// VULNERABLE_PARTICIPANT(5520, "弱势交通参与者预警"),
VULNERABLE_PARTICIPANT(5520, StringUtils.getString(R.string.adas_data_rsi_event_vulnerable_road_user_warning_function)),
// RED_LIGHT_VIOLATION_WARNING(5521, "闯红灯预警"),
RED_LIGHT_VIOLATION_WARNING(5521, StringUtils.getString(R.string.adas_data_rsi_event_red_light_running_warning_function)),
// SOLID_LINE_LANE_CHANGE(5522, "机动车压实线变道"),
SOLID_LINE_LANE_CHANGE(5522, StringUtils.getString(R.string.adas_data_rsi_event_motor_vehicle_solid_line_violation_lane_change_function)),
// WRONG_GUIDE_DIRECTION(5523, "机动车不按导向标识行驶"),
WRONG_GUIDE_DIRECTION(5523, StringUtils.getString(R.string.adas_data_rsi_event_motor_vehicle_violation_of_guidance_signs_driving_function)),
;
public final int type;

View File

@@ -1,9 +1,14 @@
package com.zhjt.mogo.adas.data.bean;
import android.content.Context;
import androidx.annotation.NonNull;
import com.google.protobuf.GeneratedMessageV3;
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.TextFormat;
import com.google.protobuf.util.JsonFormat;
import com.zhjt.mogo.adas.data.R;
import org.json.JSONArray;
import org.json.JSONException;
@@ -92,7 +97,7 @@ public class LaunchConditionData {
createTime = System.currentTimeMillis();
}
public String getJson() {
public String getJson(@NonNull Context context) {
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("ability_version", abilityVersion);
@@ -106,21 +111,21 @@ public class LaunchConditionData {
chassisStatesObject.put("data_header", TextFormat.printer().escapingNonAscii(false).printToString(chassisStates.getHeader()));
}
//制动踏板
String temp = "未知";
String temp = context.getString(R.string.adas_data_unknown);
if (chassisStates.hasBrakeSystemStates()) {
float brake = chassisStates.getBrakeSystemStates().getBrakePedalResponsePosition();
temp = String.valueOf(brake);
}
chassisStatesObject.put("brake", temp);
//油门踏板
temp = "未知";
temp = context.getString(R.string.adas_data_unknown);
if (chassisStates.hasDrivingSystemStates()) {
float throttle = chassisStates.getDrivingSystemStates().getThrottleResponsePosition();
temp = String.valueOf(throttle);
}
chassisStatesObject.put("throttle", temp);
//档位
temp = "未知";
temp = context.getString(R.string.adas_data_unknown);
if (chassisStates.hasGearSystemStates()) {
Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition();
temp = gear.name();
@@ -128,7 +133,7 @@ public class LaunchConditionData {
chassisStatesObject.put("gear", temp);
//方向盘
temp = "未知";
temp = context.getString(R.string.adas_data_unknown);
if (chassisStates.hasSteerSystemStates()) {
ChassisStatesOuterClass.SteerSystemStates steerSystemStates = chassisStates.getSteerSystemStates();
if (steerSystemStates.hasSteeringWheelAngle()) {
@@ -136,7 +141,7 @@ public class LaunchConditionData {
temp = String.valueOf(steering);
}
}
chassisStatesObject.put("old_steering", oldSteering == Float.MAX_VALUE ? "未知" : oldSteering);
chassisStatesObject.put("old_steering", oldSteering == Float.MAX_VALUE ? context.getString(R.string.adas_data_unknown) : oldSteering);
chassisStatesObject.put("steering", temp);
}
//车灯
@@ -195,7 +200,7 @@ public class LaunchConditionData {
arr.put(TextFormat.printer().escapingNonAscii(false).printToString(inf));
}
objectParse.put("auto_pilot_unready_list", arr);
}else {
} else {
objectParse.put("auto_pilot_unready_list", "null");
}

View File

@@ -1,5 +1,11 @@
package com.zhjt.mogo.adas.data.bean;
import android.content.Context;
import androidx.annotation.StringRes;
import com.zhjt.mogo.adas.data.R;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Locale;
@@ -28,12 +34,12 @@ public class MogoReport {
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, "存在不确定因素,警示");
AUTOPILOT_SYSTEM_UNSTARTED(Result.AUTOPILOT_SYSTEM_UNSTARTED, R.string.adas_data_report_result_AUTOPILOT_SYSTEM_UNSTARTED),
AUTOPILOT_DISABLE(Result.AUTOPILOT_DISABLE, R.string.adas_data_report_result_AUTOPILOT_DISABLE),
AUTOPILOT_INFERIOR(Result.AUTOPILOT_INFERIOR, R.string.adas_data_report_result_AUTOPILOT_INFERIOR),
REMOTEPILOT_DISABLE(Result.REMOTEPILOT_DISABLE, R.string.adas_data_report_result_REMOTEPILOT_DISABLE),
REMOTEPILOT_INFERIOR(Result.REMOTEPILOT_INFERIOR, R.string.adas_data_report_result_REMOTEPILOT_INFERIOR),
SHOW_WARNING(Result.SHOW_WARNING, R.string.adas_data_report_result_SHOW_WARNING);
/**
@@ -43,31 +49,36 @@ public class MogoReport {
/**
* 描述
*/
public final String desc;
@StringRes
private final int descResId;
ResultDesc(String result, String desc) {
ResultDesc(String result, @StringRes int descResId) {
this.result = result;
this.desc = desc;
this.descResId = descResId;
}
public static String getDesc(String result) {
switch (result) {
case Result.AUTOPILOT_SYSTEM_UNSTARTED:
return AUTOPILOT_SYSTEM_UNSTARTED.desc;
case Result.AUTOPILOT_DISABLE:
return AUTOPILOT_DISABLE.desc;
case Result.AUTOPILOT_INFERIOR:
return AUTOPILOT_INFERIOR.desc;
case Result.REMOTEPILOT_DISABLE:
return REMOTEPILOT_DISABLE.desc;
case Result.REMOTEPILOT_INFERIOR:
return REMOTEPILOT_INFERIOR.desc;
case Result.SHOW_WARNING:
return SHOW_WARNING.desc;
default:
return result;
public static String getDesc(Context context, String result) {
if (context == null) return result;
try {
switch (result) {
case Result.AUTOPILOT_SYSTEM_UNSTARTED:
return context.getString(AUTOPILOT_SYSTEM_UNSTARTED.descResId);
case Result.AUTOPILOT_DISABLE:
return context.getString(AUTOPILOT_DISABLE.descResId);
case Result.AUTOPILOT_INFERIOR:
return context.getString(AUTOPILOT_INFERIOR.descResId);
case Result.REMOTEPILOT_DISABLE:
return context.getString(REMOTEPILOT_DISABLE.descResId);
case Result.REMOTEPILOT_INFERIOR:
return context.getString(REMOTEPILOT_INFERIOR.descResId);
case Result.SHOW_WARNING:
return context.getString(SHOW_WARNING.descResId);
default:
return result;
}
} catch (Exception e) {
return result;
}
}
@@ -108,19 +119,19 @@ public class MogoReport {
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, "请安全位置停车,保持上电,等待修复完成"),
CONTACT_TECH_SUPPORT(Action.CONTACT_TECH_SUPPORT, R.string.adas_data_report_action_CONTACT_TECH_SUPPORT),
CONTACT_MAINTENANCE(Action.CONTACT_MAINTENANCE, R.string.adas_data_report_action_CONTACT_MAINTENANCE),
CONTACT_HARDWARE_ENGINEER(Action.CONTACT_HARDWARE_ENGINEER, R.string.adas_data_report_action_CONTACT_HARDWARE_ENGINEER),
REBOOT_PAD(Action.REBOOT_PAD, R.string.adas_data_report_action_REBOOT_PAD),
REBOOT_VEHICLE(Action.REBOOT_VEHICLE, R.string.adas_data_report_action_REBOOT_VEHICLE),
CHECK_GEAR(Action.CHECK_GEAR, R.string.adas_data_report_action_CHECK_GEAR),
CHECK_NETWORK(Action.CHECK_NETWORK, R.string.adas_data_report_action_CHECK_NETWORK),
TRY_AGAIN_LATER(Action.TRY_AGAIN_LATER, R.string.adas_data_report_action_TRY_AGAIN_LATER),
REMOTEPILOT_REQUEST(Action.REMOTEPILOT_REQUEST, R.string.adas_data_report_action_REMOTEPILOT_REQUEST),
MANUAL_HANDLE_REQUEST(Action.MANUAL_HANDLE_REQUEST, R.string.adas_data_report_action_MANUAL_HANDLE_REQUEST),
MANUAL_HANDLE_IMMEDIATELY(Action.MANUAL_HANDLE_IMMEDIATELY, R.string.adas_data_report_action_MANUAL_HANDLE_IMMEDIATELY),
REBOOT_SYSTEM(Action.REBOOT_SYSTEM, R.string.adas_data_report_action_REBOOT_SYSTEM),
KEEP_POWERON_AND_WAIT(Action.KEEP_POWERON_AND_WAIT, R.string.adas_data_report_action_KEEP_POWERON_AND_WAIT),
;
/**
@@ -130,44 +141,50 @@ public class MogoReport {
/**
* 描述
*/
public final String desc;
@StringRes
private final int descResId;
ActionDesc(String action, String desc) {
ActionDesc(String action, @StringRes int descResId) {
this.action = action;
this.desc = desc;
this.descResId = descResId;
}
public static String getDesc(String action) {
switch (action) {
case Action.CONTACT_TECH_SUPPORT:
return CONTACT_TECH_SUPPORT.desc;
case Action.CONTACT_MAINTENANCE:
return CONTACT_MAINTENANCE.desc;
case Action.CONTACT_HARDWARE_ENGINEER:
return CONTACT_HARDWARE_ENGINEER.desc;
case Action.REBOOT_PAD:
return REBOOT_PAD.desc;
case Action.REBOOT_VEHICLE:
return REBOOT_VEHICLE.desc;
case Action.CHECK_GEAR:
return CHECK_GEAR.desc;
case Action.CHECK_NETWORK:
return CHECK_NETWORK.desc;
case Action.TRY_AGAIN_LATER:
return TRY_AGAIN_LATER.desc;
case Action.REMOTEPILOT_REQUEST:
return REMOTEPILOT_REQUEST.desc;
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 action;
public static String getDesc(Context context, String action) {
if (context == null) return action;
try {
switch (action) {
case Action.CONTACT_TECH_SUPPORT:
return context.getString(CONTACT_TECH_SUPPORT.descResId);
case Action.CONTACT_MAINTENANCE:
return context.getString(CONTACT_MAINTENANCE.descResId);
case Action.CONTACT_HARDWARE_ENGINEER:
return context.getString(CONTACT_HARDWARE_ENGINEER.descResId);
case Action.REBOOT_PAD:
return context.getString(REBOOT_PAD.descResId);
case Action.REBOOT_VEHICLE:
return context.getString(REBOOT_VEHICLE.descResId);
case Action.CHECK_GEAR:
return context.getString(CHECK_GEAR.descResId);
case Action.CHECK_NETWORK:
return context.getString(CHECK_NETWORK.descResId);
case Action.TRY_AGAIN_LATER:
return context.getString(TRY_AGAIN_LATER.descResId);
case Action.REMOTEPILOT_REQUEST:
return context.getString(REMOTEPILOT_REQUEST.descResId);
case Action.MANUAL_HANDLE_REQUEST:
return context.getString(MANUAL_HANDLE_REQUEST.descResId);
case Action.MANUAL_HANDLE_IMMEDIATELY:
return context.getString(MANUAL_HANDLE_IMMEDIATELY.descResId);
case Action.REBOOT_SYSTEM:
return context.getString(REBOOT_SYSTEM.descResId);
case Action.KEEP_POWERON_AND_WAIT:
return context.getString(KEEP_POWERON_AND_WAIT.descResId);
default:
return action;
}
} catch (Exception e) {
return action;
}
}
}

View File

@@ -0,0 +1,311 @@
<resources>
<string name="adas_data_MsgTypeDefault">Default</string>
<string name="adas_data_MsgTypeTrajectory">Front guide line</string>
<string name="adas_data_MsgTypeTrackedObjects">Obstacle information</string>
<string name="adas_data_MsgTypeGnssInfo">Inertial navigation information</string>
<string name="adas_data_MsgTypeVehicleState">Legacy chassis state</string>
<string name="adas_data_MsgTypeAutopilotState">Autopilot state</string>
<string name="adas_data_MsgTypeReportMessage">Monitoring event report</string>
<string name="adas_data_MsgTypePerceptionTrafficLight">Fused traffic light perception</string>
<string name="adas_data_MsgTypePredictionObstacleTrajectory">Other vehicle trajectory prediction</string>
<string name="adas_data_MsgTypePointCloud">Point cloud pass-through</string>
<string name="adas_data_MsgTypePlanningObjects">Planning obstacles</string>
<string name="adas_data_MsgTypeChassisStates">Chassis state</string>
<string name="adas_data_MsgTypeFunctionStates">Reconstructed function state</string>
<string name="adas_data_MsgTypeBackCameraVideo">Rear camera</string>
<string name="adas_data_MsgTypeM1StitchedVideo">M1 stitched video</string>
<string name="adas_data_MsgTypeSSMState">SSM system state</string>
<string name="adas_data_MsgTypeFMState">FM state</string>
<string name="adas_data_MsgTypeFSM2024State">FSM state</string>
<string name="adas_data_MsgTypeLocState">Localization state</string>
<string name="adas_data_MsgTypeCloudRegulatoryWarning">Cloud control regulatory warning</string>
<string name="adas_data_MsgTypePredictionObjects2025">Obstacle trajectory prediction</string>
<string name="adas_data_MsgTypevllm">Vision-language model</string>
<string name="adas_data_MsgTypeVllmImage60">Vision-language model image</string>
<string name="adas_data_MsgTypeBasicInfoReq">Autonomous device basic info request</string>
<string name="adas_data_MsgTypeBasicInfoResp">Autonomous device basic info response</string>
<string name="adas_data_MsgTypeSetAutopilotModeReq">Set autopilot mode / Start autopilot</string>
<string name="adas_data_MsgTypeSetDemoModeReq">Set demo mode</string>
<string name="adas_data_MsgTypeCarConfigReq">Vehicle basic info request</string>
<string name="adas_data_MsgTypeCarConfigResp">Vehicle basic info response</string>
<string name="adas_data_MsgTypeRecordCause">Record manual takeover reason</string>
<string name="adas_data_MsgTypeRecordData">Data collection request</string>
<string name="adas_data_MsgTypeRecordResult">Data collection result</string>
<string name="adas_data_MsgTypeSetAutopilotSpeedReq">Set autopilot max speed</string>
<string name="adas_data_MsgTypeGlobalPathReq">Autopilot path request</string>
<string name="adas_data_MsgTypeGlobalPathResp">Autopilot path response</string>
<string name="adas_data_MsgTypeTrafficLightData">Send traffic light data to IPC</string>
<string name="adas_data_MsgTypeWarn">Warning data</string>
<string name="adas_data_MsgTypeArrivalNotification">Arrival notification</string>
<string name="adas_data_MsgTypeSystemCmdReq">System command request</string>
<string name="adas_data_MsgTypeTrajectoryDownloadReq">Trajectory download request</string>
<string name="adas_data_MsgTypeStatusQueryReq">Status query request</string>
<string name="adas_data_MsgTypeStatusQueryResp">Status query response</string>
<string name="adas_data_MsgTypeSetRainModeReq">Set rain mode</string>
<string name="adas_data_MsgTypeRecordDataConfigReq">Data collection config query</string>
<string name="adas_data_MsgTypeRecordDataConfigResp">Data collection config</string>
<string name="adas_data_MsgTypeOperatorCmdReq">Operator command</string>
<string name="adas_data_MsgTypeSubscribeDataReq">Data subscribe/unsubscribe request</string>
<string name="adas_data_MsgTypeSpecialVehicleTaskCmd">Special vehicle command</string>
<string name="adas_data_MsgTypeSetParamReq">Set parameter command</string>
<string name="adas_data_MsgTypeTripInfoEvent">Trip information</string>
<string name="adas_data_MsgTypeBagManagerCmd_SEND">Bag management request</string>
<string name="adas_data_MsgTypeBagManagerCmd_RECEIVE">Bag management response</string>
<string name="adas_data_MsgTypePlanningCmd">Planning command</string>
<string name="adas_data_MsgTypeSetParamReqV2">Set parameter command V2</string>
<string name="adas_data_MsgTypeV2nCongestionEvent">Nearby vehicle event push</string>
<string name="adas_data_MsgTypeV2nGlobalPathEvents">Global path event push</string>
<string name="adas_data_MsgTypeGetParamReq">Get parameter request</string>
<string name="adas_data_MsgTypeGetParamResp">Get parameter response</string>
<string name="adas_data_MsgTypeTaskCmd_SEND">Send sweeper command to cloud</string>
<string name="adas_data_MsgTypeTaskCmd_RECEIVE">Cloud issued sweeper task command</string>
<string name="adas_data_MsgTypeFSMStatusReasonQueryReq">FSM status reason query</string>
<string name="adas_data_MsgTypeFSMStatusReasonQueryResp">FSM status reason response</string>
<string name="adas_dataMsgTypeGetDebugInfo_SEND">Debug info request</string>
<string name="adas_data_MsgTypeGetDebugInfo_RECEIVE">Debug info response</string>
<string name="adas_data_MsgTypeParallelDrivingCmd_SEND">Parallel driving request</string>
<string name="adas_data_MsgTypeParallelDrivingCmd_RECEIVE">Parallel driving state</string>
<string name="adas_data_MsgTypeReceivedAck_SEND">Send message acknowledgment</string>
<string name="adas_data_MsgTypeReceivedAck_RECEVIE">Receive message acknowledgment</string>
<string name="adas_data_MsgTypeV2nNioGreenWavePassageEvent">V2N NIO green wave passage (single intersection)</string>
<string name="adas_data_MsgTypeV2nNioCrossoverEvent">V2N NIO pedestrian crossing (roadside)</string>
<string name="adas_data_MsgTypeV2nNioOtherRetrogradeEvent">V2N NIO other vehicle wrong-way (roadside)</string>
<string name="adas_data_MsgTypeV2nNioCongestionEvent">V2N NIO congestion event</string>
<string name="adas_data_MsgTypeLaneMarksTran">Lane markings</string>
<string name="adas_data_MsgTypeCollisionReport">Collision report</string>
<string name="adas_data_MsgTypePowerUnit_SEND">Power module request</string>
<string name="adas_data_MsgTypePowerUnit_RECEIVE">Power module response</string>
<string name="adas_data_MsgTypeSSMFuncMsg_SEND">SSM function control</string>
<string name="adas_data_MsgTypeSSMFuncMsg_RECEIVE">SSM function response</string>
<string name="adas_data_MsgTypeSSMFuncStatusQuery_SEND">SSM function status query</string>
<string name="adas_data_MsgTypeSSMFuncStatusQuery_RECEIVE">SSM function status response</string>
<string name="adas_data_MsgTypeCaptureImgReqOnTakeOver">Camera data request on takeover</string>
<string name="adas_data_MsgTypeEzhouCloud">Cloud control data</string>
<string name="adas_data_MsgTypeCopyBag_SEND">Data disk control</string>
<string name="adas_data_MsgTypeCopyBag_RECEIVE">Data disk response</string>
<string name="adas_data_MsgTypeCloudConfig_SEND">Cloud config query</string>
<string name="adas_data_MsgTypeCloudConfig_RECEIVE">Cloud config response</string>
<string name="adas_data_MsgTypeImgUploadCloudEnable">Camera upload NDE cloud switch</string>
<string name="adas_data_MsgTypeImgUploadCloudStatusQuery_SEND">Camera upload NDE cloud status query</string>
<string name="adas_data_MsgTypeImgUploadCloudStatusQuery_RECEIVE">Camera upload NDE cloud status response</string>
<string name="adas_data_MsgTypeForceStopOrStartCloudReq">Cloud config control</string>
<string name="adas_data_MsgTypeSetObuUploadReq">Domain control OBU upload switch control</string>
<string name="adas_data_MsgTypeObuUploadStatus_SEND">Domain control OBU upload status query</string>
<string name="adas_data_MsgTypeObuUploadStatus_RECEIVE">Domain control OBU upload status response</string>
<string name="adas_data_MsgTypePlanningDecisionState">Planning decision state</string>
<string name="adas_data_MsgTypeSweeperTaskIndexData">Sweeper index data</string>
<string name="adas_data_MsgTypeObuWarningData">OBU warning event</string>
<string name="adas_data_MsgTypeCameraCalibCheckData30">Camera calibration check video 30</string>
<string name="adas_data_MsgTypeCameraCalibCheckData60">Camera calibration check video 60</string>
<string name="adas_data_MsgTypeCameraCalibCheckData120Front">Camera calibration check video 120 front</string>
<string name="adas_data_MsgTypeCameraCalibCheckData120Back">Camera calibration check video 120 back</string>
<string name="adas_data_MsgTypeCameraCalibCheckData120Left">Camera calibration check video 120 left</string>
<string name="adas_data_MsgTypeCameraCalibCheckData120Right">Camera calibration check video 120 right</string>
<string name="adas_data_MsgTypeCaptureFrontImgOnTakeOver">Front camera data response on manual takeover</string>
<string name="adas_data_MsgTypeCaptureBackImgOnTakeOver">Rear camera data response on manual takeover</string>
<string name="adas_data_unknown">Unknown</string>
<string name="adas_data_report_result_AUTOPILOT_SYSTEM_UNSTARTED">Autopilot system failed to start</string>
<string name="adas_data_report_result_AUTOPILOT_DISABLE">Unable to start autopilot</string>
<string name="adas_data_report_result_AUTOPILOT_INFERIOR">Autopilot performance affected</string>
<string name="adas_data_report_result_REMOTEPILOT_DISABLE">Unable to start remote driving</string>
<string name="adas_data_report_result_REMOTEPILOT_INFERIOR">Remote driving performance affected</string>
<string name="adas_data_report_result_SHOW_WARNING">Uncertain factors detected, warning</string>
<string name="adas_data_report_action_CONTACT_TECH_SUPPORT">Contact technical support</string>
<string name="adas_data_report_action_CONTACT_MAINTENANCE">Contact maintenance</string>
<string name="adas_data_report_action_CONTACT_HARDWARE_ENGINEER">Contact hardware engineer</string>
<string name="adas_data_report_action_REBOOT_PAD">Reboot PAD</string>
<string name="adas_data_report_action_REBOOT_VEHICLE">Reboot vehicle</string>
<string name="adas_data_report_action_CHECK_GEAR">Check vehicle gear, dashboard, and related factors</string>
<string name="adas_data_report_action_CHECK_NETWORK">Check network connection and router</string>
<string name="adas_data_report_action_TRY_AGAIN_LATER">Please try again later</string>
<string name="adas_data_report_action_REMOTEPILOT_REQUEST">Request remote driving</string>
<string name="adas_data_report_action_MANUAL_HANDLE_REQUEST">Operator attention required</string>
<string name="adas_data_report_action_MANUAL_HANDLE_IMMEDIATELY">Operator must take over immediately</string>
<string name="adas_data_report_action_REBOOT_SYSTEM">Soft system reboot</string>
<string name="adas_data_report_action_KEEP_POWERON_AND_WAIT">Stop safely, keep powered on, and wait for repair</string>
<string name="adas_data_abnormal">Abnormal</string>
<string name="adas_data_default">Default</string>
<string name="adas_data_unknown_source">Unknown source</string>
<string name="adas_data_traffic_management_department">Traffic management department</string>
<string name="adas_data_other_government_departments">Other government departments</string>
<string name="adas_data_meteorological_department">Meteorological department</string>
<string name="adas_data_internet">Internet</string>
<string name="adas_data_roadside_or_cloud_perception">Roadside or cloud perception</string>
<string name="adas_data_other_source">Other source</string>
<string name="adas_data_event_abnormal">Abnormal</string>
<string name="adas_data_event_unknown_type">Unknown type</string>
<string name="adas_data_event_road_traffic_incident">Road traffic incident</string>
<string name="adas_data_event_road_traffic_sign">Road traffic sign</string>
<string name="adas_data_event_cloud_decision_suggestion">Cloud decision suggestion</string>
<string name="adas_data_evw_type_abnormal">Abnormal</string>
<string name="adas_data_evw_type_reserved">Reserved</string>
<string name="adas_data_evw_type_default">Default</string>
<string name="adas_data_evw_type_invalid">Invalid</string>
<string name="adas_data_evw_type_ambulance">Ambulance</string>
<string name="adas_data_evw_type_police_car">Police car</string>
<string name="adas_data_evw_type_fire_engine">Fire engine</string>
<string name="adas_data_glosa_spd_unknown">Unknown</string>
<string name="adas_data_glosa_spd_default">Default</string>
<string name="adas_data_glosa_spd_straight">Straight</string>
<string name="adas_data_glosa_spd_left_turn">Left turn</string>
<string name="adas_data_glosa_spd_right_turn">Right turn</string>
<string name="adas_data_glosa_spd_u_turn">U-turn</string>
<string name="adas_data_glosa_abnormal">Abnormal</string>
<string name="adas_data_glosa_invalid">Invalid</string>
<string name="adas_data_glosa_guide">Guidance</string>
<string name="adas_data_glosa_parking_instruction">Parking instruction</string>
<string name="adas_data_glosa_start_instruction">Start instruction</string>
<string name="adas_data_instruct_abnormal">Abnormal</string>
<string name="adas_data_instruct_default">Default</string>
<string name="adas_data_instruct_lane_keeping_driving">Lane keeping</string>
<string name="adas_data_instruct_first_exit">First exit</string>
<string name="adas_data_instruct_second_exit">Second exit</string>
<string name="adas_data_instruct_third_exit">Third exit</string>
<string name="adas_data_instruct_fourth_exit">Fourth exit</string>
<string name="adas_data_instruct_fifth_exit">Fifth exit</string>
<string name="adas_data_instruct_sixth_exit">Sixth exit</string>
<string name="adas_data_instruct_seventh_exit">Seventh exit</string>
<string name="adas_data_instruct_eighth_exit">Eighth exit</string>
<string name="adas_data_instruct_left_lane_change">Left lane change</string>
<string name="adas_data_instruct_right_lane_change">Right lane change</string>
<string name="adas_data_advice_type_abnormal">Abnormal</string>
<string name="adas_data_advice_type_glosa_function_instruction">Traffic light intersection speed guidance instruction</string>
<string name="adas_data_advice_type_glosa_function_instruction_return">Traffic light intersection speed guidance instruction response</string>
<string name="adas_data_advice_type_no_signal_intersection_right_turn_instruction">No-signal intersection right turn instruction</string>
<string name="adas_data_advice_type_no_signal_intersection_right_turn_instruction_return">No-signal intersection right turn instruction response</string>
<string name="adas_data_advice_type_dynamic_lane_speed_limit_instruction">Dynamic lane-level speed limit instruction</string>
<string name="adas_data_advice_type_dynamic_lane_speed_limit_instruction_return">Dynamic lane-level speed limit instruction response</string>
<string name="adas_data_advice_type_ramp_merge_warn_instruction">Ramp merge warning instruction</string>
<string name="adas_data_advice_type_ramp_merge_warn_instruction_return">Ramp merge warning instruction response</string>
<string name="adas_data_advice_type_fcw_instruction">Forward collision warning instruction</string>
<string name="adas_data_advice_type_fcw_instruction_return">Forward collision warning response</string>
<string name="adas_data_advice_type_avw_instruction">Abnormal vehicle warning instruction</string>
<string name="adas_data_advice_type_avw_instruction_return">Abnormal vehicle warning response</string>
<string name="adas_data_advice_type_evw_instruction">Emergency vehicle warning instruction</string>
<string name="adas_data_advice_type_evw_instruction_return">Emergency vehicle warning response</string>
<string name="adas_data_advice_type_alg_instruction">Ramp assist instruction</string>
<string name="adas_data_advice_type_alg_instruction_return">Ramp assist response</string>
<string name="adas_data_advice_type_grsi_warning_instruction">General RSI warning instruction</string>
<string name="adas_data_advice_type_grsi_warning_instruction_return">General RSI warning response</string>
<string name="adas_data_advice_type_arp_instruction">Route planning instruction</string>
<string name="adas_data_advice_type_arp_instruction_return">Route planning response</string>
<string name="adas_data_control_abnormal">Abnormal</string>
<string name="adas_data_control_reserved">Reserved</string>
<string name="adas_data_control_default">Default</string>
<string name="adas_data_control_fixed_cycle">Fixed cycle</string>
<string name="adas_data_control_manual_control">Manual control</string>
<string name="adas_data_control_yellow_flash_control">Yellow flashing control</string>
<string name="adas_data_light_state_abnormal">Abnormal</string>
<string name="adas_data_light_state_reserved">Reserved</string>
<string name="adas_data_light_state_unknown_status">Unknown status</string>
<string name="adas_data_light_state_signal_light_not_working">Signal light not working</string>
<string name="adas_data_light_state_red_flashing">Red flashing</string>
<string name="adas_data_light_state_red_light_status">Red light status</string>
<string name="adas_data_light_state_green_light_waiting_status">Green light waiting</string>
<string name="adas_data_light_state_green_light_status">Green light status</string>
<string name="adas_data_light_state_protected_phase_green_light_arrow_light">Protected phase green arrow</string>
<string name="adas_data_light_state_yellow_light_status">Yellow light status</string>
<string name="adas_data_light_state_yellow_flashing">Yellow flashing</string>
<string name="adas_data_light_state_fault">Fault</string>
<string name="adas_data_light_type_abnormal">Abnormal</string>
<string name="adas_data_light_type_reserved">Reserved</string>
<string name="adas_data_light_type_straight_direction_indicator_light">Straight direction indicator light</string>
<string name="adas_data_light_type_left_turn_direction_indicator_light">Left turn direction indicator light</string>
<string name="adas_data_light_type_right_turn_direction_indicator_light">Right turn direction indicator light</string>
<string name="adas_data_light_type_motor_vehicle_light">Motor vehicle light</string>
<string name="adas_data_light_type_left_turn_non_motor_vehicle_light">Left turn non-motor vehicle light</string>
<string name="adas_data_light_type_right_turn_non_motor_vehicle_light">Right turn non-motor vehicle light</string>
<string name="adas_data_light_type_non_motor_vehicle_light">Non-motor vehicle light</string>
<string name="adas_data_light_type_pedestrian_crossing_light">Pedestrian crossing light</string>
<string name="adas_data_light_type_u_turn_signal_light">U-turn signal light</string>
<string name="adas_data_light_type_lane_signal_light">Lane signal light</string>
<string name="adas_data_light_type_railroad_crossing_signal_light">Railroad crossing signal light</string>
<string name="adas_data_light_type_flashing_warning_signal_light">Flashing warning signal light</string>
<string name="adas_data_light_type_straight_tramway_dedicated_signal_light">Tram dedicated signal light (straight)</string>
<string name="adas_data_light_type_left_turn_tramway_dedicated_signal_light">Tram dedicated signal light (left turn)</string>
<string name="adas_data_light_type_right_turn_tram_traffic_signal">Tram dedicated signal light (right turn)</string>
<string name="adas_data_light_type_invalid_or_unknown_light_group_type">Invalid or unknown light group type</string>
<string name="adas_data_func_type_abnormal">Abnormal</string>
<string name="adas_data_func_type_cloud_request_vehicle_video_stream_upload_command">Cloud request vehicle video stream upload</string>
<string name="adas_data_func_type_cloud_request_vehicle_video_stream_upload_command_response">Cloud request vehicle video stream upload response</string>
<string name="adas_data_func_type_cloud_request_vehicle_historical_video_upload_command">Cloud request vehicle historical video upload</string>
<string name="adas_data_func_type_cloud_request_vehicle_historical_video_upload_command_response">Cloud request vehicle historical video upload response</string>
<string name="adas_data_func_type_cloud_request_vehicle_upload_edr_data">Cloud request vehicle EDR data upload</string>
<string name="adas_data_func_type_cloud_request_vehicle_upload_edr_data_response">Cloud request vehicle EDR data upload response</string>
<string name="adas_data_func_type_cloud_deliver_traffic_light_info">Cloud deliver traffic light information</string>
<string name="adas_data_func_type_cloud_deliver_positioning_enhancement_info">Cloud deliver positioning enhancement information</string>
<string name="adas_data_func_type_cloud_deliver_positioning_enhancement_info_response">Cloud deliver positioning enhancement information response</string>
<string name="adas_data_func_type_cloud_deliver_real_time_perception_info">Cloud deliver real-time perception information</string>
<string name="adas_data_data_type_abnormal">Abnormal</string>
<string name="adas_data_data_type_heartbeat">Heartbeat</string>
<string name="adas_data_data_type_heartbeat_response">Heartbeat response</string>
<string name="adas_data_data_type_vehicle_operation_status_info">Vehicle operation status info</string>
<string name="adas_data_data_type_cloud_real_time_control_suggestion">Cloud real-time control suggestion</string>
<string name="adas_data_data_type_cloud_remote_control">Cloud remote control</string>
<string name="adas_data_data_type_vehicle_quasi_static_parameter_report">Vehicle quasi-static parameter report</string>
<string name="adas_data_data_type_vehicle_quasi_static_parameter_report_response">Vehicle quasi-static parameter report response</string>
<string name="adas_data_data_type_vehicle_function_subscription_info">Vehicle function subscription info</string>
<string name="adas_data_data_type_vehicle_function_subscription_info_response">Vehicle function subscription info response</string>
<string name="adas_data_data_type_real_time_decision_suggestion">Real-time decision suggestion</string>
<string name="adas_data_data_type_real_time_decision_suggestion_response">Real-time decision suggestion response</string>
<string name="adas_data_data_type_auxiliary_function">Auxiliary function</string>
<string name="adas_data_data_type_auxiliary_function_response">Auxiliary function response</string>
<string name="adas_data_data_type_uplink_custom_function">Uplink custom function</string>
<string name="adas_data_data_type_uplink_custom_function_response">Uplink custom function response</string>
<string name="adas_data_data_type_downlink_custom_function">Downlink custom function</string>
<string name="adas_data_data_type_downlink_custom_function_response">Downlink custom function response</string>
<string name="adas_data_data_type_vehicle_operation_status_info_retransmission">Vehicle operation status info retransmission</string>
<string name="adas_data_data_type_vehicle_operation_status_info_retransmission_response">Vehicle operation status info retransmission response</string>
<string name="adas_data_rsi_cloud_unknown_or_abnormal">Unknown/Abnormal</string>
<string name="adas_data_rsi_cloud_red_light_running_warning_function">Red light running warning function</string>
<string name="adas_data_rsi_cloud_road_hazard_condition_prompt_service_function">Road hazard condition prompt service function</string>
<string name="adas_data_rsi_cloud_driving_lane_recommendation_function">Driving lane recommendation function</string>
<string name="adas_data_rsi_cloud_intersection_other_vehicle_red_light_running_warning_function">Intersection other vehicle red light running warning function</string>
<string name="adas_data_rsi_cloud_over_the_horizon_vru_warning_function">Over-the-horizon vulnerable road user warning function</string>
<string name="adas_data_rsi_cloud_traffic_congestion_reminder_function">Traffic congestion reminder function</string>
<string name="adas_data_rsi_cloud_visibility_warning_function">Visibility warning function</string>
<string name="adas_data_rsi_cloud_road_surface_debris_warning_function">Road surface debris warning function</string>
<string name="adas_data_rsi_cloud_red_light_about_to_turn_green_function">Red light about to turn green function</string>
<string name="adas_data_rsi_cloud_green_light_about_to_turn_red_function">Green light about to turn red function</string>
<string name="adas_data_rsi_event_unknown_or_abnormal">Unknown/Abnormal</string>
<string name="adas_data_rsi_event_pedestrian_reminder_function">Pedestrian reminder</string>
<string name="adas_data_rsi_event_non_motor_vehicle_reminder_function">Non-motor vehicle reminder</string>
<string name="adas_data_rsi_event_emergency_brake_warning_function">Emergency brake warning</string>
<string name="adas_data_rsi_event_reverse_warning_function">Reverse warning</string>
<string name="adas_data_rsi_event_wrong_way_driving_warning_function">Wrong-way driving warning</string>
<string name="adas_data_rsi_event_abnormal_low_speed_warning_function">Abnormal low-speed warning</string>
<string name="adas_data_rsi_event_abnormal_parking_warning_function">Abnormal parking warning</string>
<string name="adas_data_rsi_event_over_speed_warning_function">Over-speed warning</string>
<string name="adas_data_rsi_event_traffic_congestion_warning_function">Traffic congestion warning</string>
<string name="adas_data_rsi_event_special_vehicle_warning_function">Special vehicle warning</string>
<string name="adas_data_rsi_event_emergency_vehicle_warning_function">Emergency vehicle warning</string>
<string name="adas_data_rsi_event_vehicle_status_abnormality_warning_function">Vehicle status abnormality warning</string>
<string name="adas_data_rsi_event_continuous_lane_change_warning_function">Continuous lane change warning</string>
<string name="adas_data_rsi_event_ramp_return_to_main_road_warning_function">Ramp return to main road warning</string>
<string name="adas_data_rsi_event_traffic_control_warning_function">Traffic control warning</string>
<string name="adas_data_rsi_event_road_surface_low_friction_warning_function">Road surface low friction warning</string>
<string name="adas_data_rsi_event_dynamic_lane_level_speed_limit_warning_function">Dynamic lane-level speed limit warning</string>
<string name="adas_data_rsi_event_obstacle_reminder_function">Obstacle reminder</string>
<string name="adas_data_rsi_event_traffic_light_fault_warning_function">Traffic light fault warning</string>
<string name="adas_data_rsi_event_vulnerable_road_user_warning_function">Vulnerable road user warning</string>
<string name="adas_data_rsi_event_red_light_running_warning_function">Red light running warning</string>
<string name="adas_data_rsi_event_motor_vehicle_solid_line_violation_lane_change_function">Motor vehicle solid line violation lane change</string>
<string name="adas_data_rsi_event_motor_vehicle_violation_of_guidance_signs_driving_function">Motor vehicle violation of guidance signs</string>
</resources>

View File

@@ -0,0 +1,311 @@
<resources>
<string name="adas_data_MsgTypeDefault">默认</string>
<string name="adas_data_MsgTypeTrajectory">车前引导线</string>
<string name="adas_data_MsgTypeTrackedObjects">障碍物信息</string>
<string name="adas_data_MsgTypeGnssInfo">惯导信息</string>
<string name="adas_data_MsgTypeVehicleState">老底盘状态</string>
<string name="adas_data_MsgTypeAutopilotState">自动驾驶状态</string>
<string name="adas_data_MsgTypeReportMessage">监控事件报告</string>
<string name="adas_data_MsgTypePerceptionTrafficLight">融合感知红绿灯</string>
<string name="adas_data_MsgTypePredictionObstacleTrajectory">他车轨迹预测</string>
<string name="adas_data_MsgTypePointCloud">点云透传</string>
<string name="adas_data_MsgTypePlanningObjects">Planning障碍物</string>
<string name="adas_data_MsgTypeChassisStates">底盘状态</string>
<string name="adas_data_MsgTypeFunctionStates">重构后功能状态</string>
<string name="adas_data_MsgTypeBackCameraVideo">后摄像头</string>
<string name="adas_data_MsgTypeM1StitchedVideo">M1拼接视频</string>
<string name="adas_data_MsgTypeSSMState">SSM系统状态</string>
<string name="adas_data_MsgTypeFMState">FM状态</string>
<string name="adas_data_MsgTypeFSM2024State">FSM状态</string>
<string name="adas_data_MsgTypeLocState">定位状态</string>
<string name="adas_data_MsgTypeCloudRegulatoryWarning">云控监管预警</string>
<string name="adas_data_MsgTypePredictionObjects2025">障碍物轨迹预测</string>
<string name="adas_data_MsgTypevllm">视觉语言模型</string>
<string name="adas_data_MsgTypeVllmImage60">视觉语言模型图像</string>
<string name="adas_data_MsgTypeBasicInfoReq">自动驾驶设备基础信息请求</string>
<string name="adas_data_MsgTypeBasicInfoResp">自动驾驶设备基础信息应答</string>
<string name="adas_data_MsgTypeSetAutopilotModeReq">设置自动驾驶模式 启动自动驾驶</string>
<string name="adas_data_MsgTypeSetDemoModeReq">设置演示模式</string>
<string name="adas_data_MsgTypeCarConfigReq">车机基础信息请求</string>
<string name="adas_data_MsgTypeCarConfigResp">车机基础信息应答</string>
<string name="adas_data_MsgTypeRecordCause">记录人工接管原因</string>
<string name="adas_data_MsgTypeRecordData">数据采集请求</string>
<string name="adas_data_MsgTypeRecordResult">数据采集结果</string>
<string name="adas_data_MsgTypeSetAutopilotSpeedReq">设置自动驾驶最大速度</string>
<string name="adas_data_MsgTypeGlobalPathReq">自动驾驶路径请求</string>
<string name="adas_data_MsgTypeGlobalPathResp">自动驾驶路径应答</string>
<string name="adas_data_MsgTypeTrafficLightData">发送红绿灯数据到工控机</string>
<string name="adas_data_MsgTypeWarn">预警数据</string>
<string name="adas_data_MsgTypeArrivalNotification">到站提醒</string>
<string name="adas_data_MsgTypeSystemCmdReq">系统命令请求</string>
<string name="adas_data_MsgTypeTrajectoryDownloadReq">轨迹下载请求</string>
<string name="adas_data_MsgTypeStatusQueryReq">状态查询请求</string>
<string name="adas_data_MsgTypeStatusQueryResp">状态查询应答</string>
<string name="adas_data_MsgTypeSetRainModeReq">设置雨天模式</string>
<string name="adas_data_MsgTypeRecordDataConfigReq">数据采集配置查询</string>
<string name="adas_data_MsgTypeRecordDataConfigResp">数据采集配置</string>
<string name="adas_data_MsgTypeOperatorCmdReq">操控指令</string>
<string name="adas_data_MsgTypeSubscribeDataReq">数据订阅、取消订阅请求</string>
<string name="adas_data_MsgTypeSpecialVehicleTaskCmd">特种车辆命令</string>
<string name="adas_data_MsgTypeSetParamReq">设置参数命令</string>
<string name="adas_data_MsgTypeTripInfoEvent">行程信息</string>
<string name="adas_data_MsgTypeBagManagerCmd_SEND">Bag管理请求</string>
<string name="adas_data_MsgTypeBagManagerCmd_RECEIVE">Bag管理应答</string>
<string name="adas_data_MsgTypePlanningCmd">给Planning指令</string>
<string name="adas_data_MsgTypeSetParamReqV2">设置参数命令V2</string>
<string name="adas_data_MsgTypeV2nCongestionEvent">主车附近事件推送</string>
<string name="adas_data_MsgTypeV2nGlobalPathEvents">主车路径全局事件推送</string>
<string name="adas_data_MsgTypeGetParamReq">参数获取请求</string>
<string name="adas_data_MsgTypeGetParamResp">参数获取应答</string>
<string name="adas_data_MsgTypeTaskCmd_SEND">发送清扫车指令到云控</string>
<string name="adas_data_MsgTypeTaskCmd_RECEIVE">云控下发清扫车任务指令</string>
<string name="adas_data_MsgTypeFSMStatusReasonQueryReq">FSM状态原因查询</string>
<string name="adas_data_MsgTypeFSMStatusReasonQueryResp">FSM状态原因查询应答</string>
<string name="adas_dataMsgTypeGetDebugInfo_SEND">Debug信息请求</string>
<string name="adas_data_MsgTypeGetDebugInfo_RECEIVE">Debug信息应答</string>
<string name="adas_data_MsgTypeParallelDrivingCmd_SEND">平行驾驶请求</string>
<string name="adas_data_MsgTypeParallelDrivingCmd_RECEIVE">平行驾驶状态</string>
<string name="adas_data_MsgTypeReceivedAck_SEND">发送消息回执</string>
<string name="adas_data_MsgTypeReceivedAck_RECEVIE">接收消息回执</string>
<string name="adas_data_MsgTypeV2nNioGreenWavePassageEvent">V2N NIO绿波通行单路口</string>
<string name="adas_data_MsgTypeV2nNioCrossoverEvent">V2N NIO行人横穿路侧</string>
<string name="adas_data_MsgTypeV2nNioOtherRetrogradeEvent">V2N NIO他车逆行路侧</string>
<string name="adas_data_MsgTypeV2nNioCongestionEvent">V2N NIO拥堵事件</string>
<string name="adas_data_MsgTypeLaneMarksTran">车道线</string>
<string name="adas_data_MsgTypeCollisionReport">碰撞上报</string>
<string name="adas_data_MsgTypePowerUnit_SEND">电源模块请求</string>
<string name="adas_data_MsgTypePowerUnit_RECEIVE">电源模块响应</string>
<string name="adas_data_MsgTypeSSMFuncMsg_SEND">SSM功能控制</string>
<string name="adas_data_MsgTypeSSMFuncMsg_RECEIVE">SSM功能响应</string>
<string name="adas_data_MsgTypeSSMFuncStatusQuery_SEND">SSM功能状态查询</string>
<string name="adas_data_MsgTypeSSMFuncStatusQuery_RECEIVE">SSM功能状态响应</string>
<string name="adas_data_MsgTypeCaptureImgReqOnTakeOver">接管时摄像头数据请求</string>
<string name="adas_data_MsgTypeEzhouCloud">云控数据</string>
<string name="adas_data_MsgTypeCopyBag_SEND">数据落盘控制</string>
<string name="adas_data_MsgTypeCopyBag_RECEIVE">数据落盘响应</string>
<string name="adas_data_MsgTypeCloudConfig_SEND">云端配置查询</string>
<string name="adas_data_MsgTypeCloudConfig_RECEIVE">云端配置响应</string>
<string name="adas_data_MsgTypeImgUploadCloudEnable">摄像头上传NDE云开关</string>
<string name="adas_data_MsgTypeImgUploadCloudStatusQuery_SEND">摄像头上传NDE云状态查询</string>
<string name="adas_data_MsgTypeImgUploadCloudStatusQuery_RECEIVE">摄像头上传NDE云状态响应</string>
<string name="adas_data_MsgTypeForceStopOrStartCloudReq">云端配置控制</string>
<string name="adas_data_MsgTypeSetObuUploadReq">域控上报OBU开关控制</string>
<string name="adas_data_MsgTypeObuUploadStatus_SEND">域控上报OBU开关状态查询</string>
<string name="adas_data_MsgTypeObuUploadStatus_RECEIVE">域控上报OBU开关状态响应</string>
<string name="adas_data_MsgTypePlanningDecisionState">Planning决策状态</string>
<string name="adas_data_MsgTypeSweeperTaskIndexData">清扫车指标数据</string>
<string name="adas_data_MsgTypeObuWarningData">OBU预警事件</string>
<string name="adas_data_MsgTypeCameraCalibCheckData30">相机标定检查视频30</string>
<string name="adas_data_MsgTypeCameraCalibCheckData60">相机标定检查视频60</string>
<string name="adas_data_MsgTypeCameraCalibCheckData120Front">相机标定检查视频120前</string>
<string name="adas_data_MsgTypeCameraCalibCheckData120Back">相机标定检查视频120后</string>
<string name="adas_data_MsgTypeCameraCalibCheckData120Left">相机标定检查视频120左</string>
<string name="adas_data_MsgTypeCameraCalibCheckData120Right">相机标定检查视频120右</string>
<string name="adas_data_MsgTypeCaptureFrontImgOnTakeOver">人工接管时给PAD发前摄像头数据响应</string>
<string name="adas_data_MsgTypeCaptureBackImgOnTakeOver">人工接管时给PAD发后摄像头数据响应</string>
<string name="adas_data_unknown">未知</string>
<string name="adas_data_report_result_AUTOPILOT_SYSTEM_UNSTARTED">自动驾驶系统启动失败</string>
<string name="adas_data_report_result_AUTOPILOT_DISABLE">无法启动自动驾驶</string>
<string name="adas_data_report_result_AUTOPILOT_INFERIOR">自动驾驶效果受影响</string>
<string name="adas_data_report_result_REMOTEPILOT_DISABLE">无法启动远程驾驶</string>
<string name="adas_data_report_result_REMOTEPILOT_INFERIOR">远程驾驶效果受影响</string>
<string name="adas_data_report_result_SHOW_WARNING">存在不确定因素,警示</string>
<string name="adas_data_report_action_CONTACT_TECH_SUPPORT">联系技术支持</string>
<string name="adas_data_report_action_CONTACT_MAINTENANCE">联系运维</string>
<string name="adas_data_report_action_CONTACT_HARDWARE_ENGINEER">联系硬件</string>
<string name="adas_data_report_action_REBOOT_PAD">重启PAD</string>
<string name="adas_data_report_action_REBOOT_VEHICLE">重启车辆</string>
<string name="adas_data_report_action_CHECK_GEAR">检查车辆档位仪表盘等自车因素</string>
<string name="adas_data_report_action_CHECK_NETWORK">检查网络连接和路由器等通信因素</string>
<string name="adas_data_report_action_TRY_AGAIN_LATER">请稍后重试</string>
<string name="adas_data_report_action_REMOTEPILOT_REQUEST">请求远程驾驶</string>
<string name="adas_data_report_action_MANUAL_HANDLE_REQUEST">请安全员注意接管</string>
<string name="adas_data_report_action_MANUAL_HANDLE_IMMEDIATELY">请安全员立即接管</string>
<string name="adas_data_report_action_REBOOT_SYSTEM">系统软重启</string>
<string name="adas_data_report_action_KEEP_POWERON_AND_WAIT">请安全位置停车,保持上电,等待修复完成</string>
<string name="adas_data_abnormal">异常</string>
<string name="adas_data_default">缺省</string>
<string name="adas_data_unknown_source">未知来源</string>
<string name="adas_data_traffic_management_department">交管部门</string>
<string name="adas_data_other_government_departments">其他政府部门</string>
<string name="adas_data_meteorological_department">气象部门</string>
<string name="adas_data_internet">互联网</string>
<string name="adas_data_roadside_or_cloud_perception">路侧或云端感知</string>
<string name="adas_data_other_source">其他来源</string>
<string name="adas_data_event_abnormal">异常</string>
<string name="adas_data_event_unknown_type">未知类型</string>
<string name="adas_data_event_road_traffic_incident">道路交通事件</string>
<string name="adas_data_event_road_traffic_sign">道路交通标志</string>
<string name="adas_data_event_cloud_decision_suggestion">云端决策建议</string>
<string name="adas_data_evw_type_abnormal">异常</string>
<string name="adas_data_evw_type_reserved">预留</string>
<string name="adas_data_evw_type_default">缺省</string>
<string name="adas_data_evw_type_invalid">失效</string>
<string name="adas_data_evw_type_ambulance">救护车</string>
<string name="adas_data_evw_type_police_car">警车</string>
<string name="adas_data_evw_type_fire_engine">消防车</string>
<string name="adas_data_glosa_spd_unknown">未知</string>
<string name="adas_data_glosa_spd_default">缺省</string>
<string name="adas_data_glosa_spd_straight">直行</string>
<string name="adas_data_glosa_spd_left_turn">左转</string>
<string name="adas_data_glosa_spd_right_turn">右转</string>
<string name="adas_data_glosa_spd_u_turn">掉头</string>
<string name="adas_data_glosa_abnormal">异常</string>
<string name="adas_data_glosa_invalid">失效</string>
<string name="adas_data_glosa_guide">引导</string>
<string name="adas_data_glosa_parking_instruction">停车指令</string>
<string name="adas_data_glosa_start_instruction">启动指令</string>
<string name="adas_data_instruct_abnormal">异常</string>
<string name="adas_data_instruct_default">缺省</string>
<string name="adas_data_instruct_lane_keeping_driving">沿车道行驶</string>
<string name="adas_data_instruct_first_exit">第一出口</string>
<string name="adas_data_instruct_second_exit">第二出口</string>
<string name="adas_data_instruct_third_exit">第三出口</string>
<string name="adas_data_instruct_fourth_exit">第四出口</string>
<string name="adas_data_instruct_fifth_exit">第五出口</string>
<string name="adas_data_instruct_sixth_exit">第六出口</string>
<string name="adas_data_instruct_seventh_exit">第七出口</string>
<string name="adas_data_instruct_eighth_exit">第八出口</string>
<string name="adas_data_instruct_left_lane_change">左变道</string>
<string name="adas_data_instruct_right_lane_change">右变道</string>
<string name="adas_data_advice_type_abnormal">异常</string>
<string name="adas_data_advice_type_glosa_function_instruction">信号灯路口车速引导功能指令</string>
<string name="adas_data_advice_type_glosa_function_instruction_return">信号灯路口车速引导功能指令返回</string>
<string name="adas_data_advice_type_no_signal_intersection_right_turn_instruction">无信号灯路口右转功能指令</string>
<string name="adas_data_advice_type_no_signal_intersection_right_turn_instruction_return">无信号灯路口右转功能指令返回</string>
<string name="adas_data_advice_type_dynamic_lane_speed_limit_instruction">动态车道级限速指令</string>
<string name="adas_data_advice_type_dynamic_lane_speed_limit_instruction_return">动态车道级限速指令返回</string>
<string name="adas_data_advice_type_ramp_merge_warn_instruction">匝道汇回预警指令</string>
<string name="adas_data_advice_type_ramp_merge_warn_instruction_return">匝道汇回预警指令返回</string>
<string name="adas_data_advice_type_fcw_instruction">前向碰撞预警指令</string>
<string name="adas_data_advice_type_fcw_instruction_return">前向碰撞预警返回</string>
<string name="adas_data_advice_type_avw_instruction">异常车辆预警指令</string>
<string name="adas_data_advice_type_avw_instruction_return">异常车辆预警返回</string>
<string name="adas_data_advice_type_evw_instruction">紧急车辆预警指令</string>
<string name="adas_data_advice_type_evw_instruction_return">紧急车辆预警返回</string>
<string name="adas_data_advice_type_alg_instruction">匝道辅助指令</string>
<string name="adas_data_advice_type_alg_instruction_return">匝道辅助返回</string>
<string name="adas_data_advice_type_grsi_warning_instruction">通用RSI预警指令</string>
<string name="adas_data_advice_type_grsi_warning_instruction_return">通用RSI预警返回</string>
<string name="adas_data_advice_type_arp_instruction">路线规划指令</string>
<string name="adas_data_advice_type_arp_instruction_return">路线规划返回</string>
<string name="adas_data_control_abnormal">异常</string>
<string name="adas_data_control_reserved">预留</string>
<string name="adas_data_control_default">缺省</string>
<string name="adas_data_control_fixed_cycle">固定周期</string>
<string name="adas_data_control_manual_control">手动控制</string>
<string name="adas_data_control_yellow_flash_control">黄闪控制</string>
<string name="adas_data_light_state_abnormal">异常</string>
<string name="adas_data_light_state_reserved">预留</string>
<string name="adas_data_light_state_unknown_status">未知状态</string>
<string name="adas_data_light_state_signal_light_not_working">信号灯未工作</string>
<string name="adas_data_light_state_red_flashing">红闪</string>
<string name="adas_data_light_state_red_light_status">红灯状态</string>
<string name="adas_data_light_state_green_light_waiting_status">绿灯待行状态</string>
<string name="adas_data_light_state_green_light_status">绿灯状态</string>
<string name="adas_data_light_state_protected_phase_green_light_arrow_light">受保护相位绿灯(箭头灯)</string>
<string name="adas_data_light_state_yellow_light_status">黄灯状态</string>
<string name="adas_data_light_state_yellow_flashing">黄闪</string>
<string name="adas_data_light_state_fault">故障</string>
<string name="adas_data_light_type_abnormal">异常</string>
<string name="adas_data_light_type_reserved">预留</string>
<string name="adas_data_light_type_straight_direction_indicator_light">直行方向指示信号灯</string>
<string name="adas_data_light_type_left_turn_direction_indicator_light">左转方向指示信号灯</string>
<string name="adas_data_light_type_right_turn_direction_indicator_light">右转方向指示信号灯</string>
<string name="adas_data_light_type_motor_vehicle_light">机动车信号灯</string>
<string name="adas_data_light_type_left_turn_non_motor_vehicle_light">左转非机动车信号灯</string>
<string name="adas_data_light_type_right_turn_non_motor_vehicle_light">右转非机动车信号灯</string>
<string name="adas_data_light_type_non_motor_vehicle_light">非机动车信号灯</string>
<string name="adas_data_light_type_pedestrian_crossing_light">人行横道信号灯</string>
<string name="adas_data_light_type_u_turn_signal_light">掉头信号灯</string>
<string name="adas_data_light_type_lane_signal_light">车道信号灯</string>
<string name="adas_data_light_type_railroad_crossing_signal_light">道口信号灯</string>
<string name="adas_data_light_type_flashing_warning_signal_light">闪光警告信号灯</string>
<string name="adas_data_light_type_straight_tramway_dedicated_signal_light">有轨电车专用信号灯(直行)</string>
<string name="adas_data_light_type_left_turn_tramway_dedicated_signal_light">有轨电车专用信号灯(左转)</string>
<string name="adas_data_light_type_right_turn_tram_traffic_signal">有轨电车专用信号灯(右转)</string>
<string name="adas_data_light_type_invalid_or_unknown_light_group_type">无效或未知灯组类型</string>
<string name="adas_data_func_type_abnormal">异常</string>
<string name="adas_data_func_type_cloud_request_vehicle_video_stream_upload_command">云端请求车辆视频流上传指令</string>
<string name="adas_data_func_type_cloud_request_vehicle_video_stream_upload_command_response">云端请求车辆视频流上传指令返回</string>
<string name="adas_data_func_type_cloud_request_vehicle_historical_video_upload_command">云端请求车辆历史视频上传指令</string>
<string name="adas_data_func_type_cloud_request_vehicle_historical_video_upload_command_response">云端请求车辆历史视频上传指令返回</string>
<string name="adas_data_func_type_cloud_request_vehicle_upload_edr_data">云端请求车端上传EDR数据</string>
<string name="adas_data_func_type_cloud_request_vehicle_upload_edr_data_response">云端请求车端上传EDR数据返回</string>
<string name="adas_data_func_type_cloud_deliver_traffic_light_info">云端下发信号灯信息</string>
<string name="adas_data_func_type_cloud_deliver_positioning_enhancement_info">云端下发定位增强信息</string>
<string name="adas_data_func_type_cloud_deliver_positioning_enhancement_info_response">云端下发定位增强信息返回</string>
<string name="adas_data_func_type_cloud_deliver_real_time_perception_info">云端下发实时感知信息</string>
<string name="adas_data_data_type_abnormal">异常</string>
<string name="adas_data_data_type_heartbeat">心跳</string>
<string name="adas_data_data_type_heartbeat_response">心跳回应</string>
<string name="adas_data_data_type_vehicle_operation_status_info">车辆运行状态信息</string>
<string name="adas_data_data_type_cloud_real_time_control_suggestion">云端实时控制建议</string>
<string name="adas_data_data_type_cloud_remote_control">云端远程控制</string>
<string name="adas_data_data_type_vehicle_quasi_static_parameter_report">车辆准静态参数上报</string>
<string name="adas_data_data_type_vehicle_quasi_static_parameter_report_response">车辆准静态参数上报返回</string>
<string name="adas_data_data_type_vehicle_function_subscription_info">车辆功能订阅信息</string>
<string name="adas_data_data_type_vehicle_function_subscription_info_response">车辆功能订阅信息返回</string>
<string name="adas_data_data_type_real_time_decision_suggestion">实时决策建议</string>
<string name="adas_data_data_type_real_time_decision_suggestion_response">实时决策建议返回</string>
<string name="adas_data_data_type_auxiliary_function">辅助功能</string>
<string name="adas_data_data_type_auxiliary_function_response">辅助功能返回</string>
<string name="adas_data_data_type_uplink_custom_function">上行自定义功能</string>
<string name="adas_data_data_type_uplink_custom_function_response">上行自定义功能返回</string>
<string name="adas_data_data_type_downlink_custom_function">下行自定义功能</string>
<string name="adas_data_data_type_downlink_custom_function_response">下行自定义功能返回</string>
<string name="adas_data_data_type_vehicle_operation_status_info_retransmission">车辆运行状态信息补发</string>
<string name="adas_data_data_type_vehicle_operation_status_info_retransmission_response">车辆运行状态信息补发返回</string>
<string name="adas_data_rsi_cloud_unknown_or_abnormal">未知/异常</string>
<string name="adas_data_rsi_cloud_red_light_running_warning_function">闯红灯预警功能</string>
<string name="adas_data_rsi_cloud_road_hazard_condition_prompt_service_function">道路危险状况提示服务功能</string>
<string name="adas_data_rsi_cloud_driving_lane_recommendation_function">行驶车道建议功能</string>
<string name="adas_data_rsi_cloud_intersection_other_vehicle_red_light_running_warning_function">路口其他车辆闯红灯预警功能</string>
<string name="adas_data_rsi_cloud_over_the_horizon_vru_warning_function">超视距弱势交通参与者预警功能</string>
<string name="adas_data_rsi_cloud_traffic_congestion_reminder_function">交通拥堵提醒功能</string>
<string name="adas_data_rsi_cloud_visibility_warning_function">能见度预警功能</string>
<string name="adas_data_rsi_cloud_road_surface_debris_warning_function">路面遗撒预警功能</string>
<string name="adas_data_rsi_cloud_red_light_about_to_turn_green_function">红灯即将变绿功能</string>
<string name="adas_data_rsi_cloud_green_light_about_to_turn_red_function">绿灯即将变红功能</string>
<string name="adas_data_rsi_event_unknown_or_abnormal">未知/异常</string>
<string name="adas_data_rsi_event_pedestrian_reminder_function">行人提醒</string>
<string name="adas_data_rsi_event_non_motor_vehicle_reminder_function">非机动车提醒</string>
<string name="adas_data_rsi_event_emergency_brake_warning_function">紧急制动预警</string>
<string name="adas_data_rsi_event_reverse_warning_function">倒车预警</string>
<string name="adas_data_rsi_event_wrong_way_driving_warning_function">逆行预警</string>
<string name="adas_data_rsi_event_abnormal_low_speed_warning_function">异常低速预警</string>
<string name="adas_data_rsi_event_abnormal_parking_warning_function">异常停车预警</string>
<string name="adas_data_rsi_event_over_speed_warning_function">超速预警</string>
<string name="adas_data_rsi_event_traffic_congestion_warning_function">交通拥堵预警</string>
<string name="adas_data_rsi_event_special_vehicle_warning_function">特殊车辆预警</string>
<string name="adas_data_rsi_event_emergency_vehicle_warning_function">紧急车辆预警</string>
<string name="adas_data_rsi_event_vehicle_status_abnormality_warning_function">车辆状态异常预警</string>
<string name="adas_data_rsi_event_continuous_lane_change_warning_function">连续并道预警</string>
<string name="adas_data_rsi_event_ramp_return_to_main_road_warning_function">匝道退回主路预警</string>
<string name="adas_data_rsi_event_traffic_control_warning_function">交通管控预警</string>
<string name="adas_data_rsi_event_road_surface_low_friction_warning_function">路面低摩阻预警</string>
<string name="adas_data_rsi_event_dynamic_lane_level_speed_limit_warning_function">动态车道级限速预警</string>
<string name="adas_data_rsi_event_obstacle_reminder_function">障碍物提醒</string>
<string name="adas_data_rsi_event_traffic_light_fault_warning_function">红绿灯故障预警</string>
<string name="adas_data_rsi_event_vulnerable_road_user_warning_function">弱势交通参与者预警</string>
<string name="adas_data_rsi_event_red_light_running_warning_function">闯红灯预警</string>
<string name="adas_data_rsi_event_motor_vehicle_solid_line_violation_lane_change_function">机动车压实线变道</string>
<string name="adas_data_rsi_event_motor_vehicle_violation_of_guidance_signs_driving_function">机动车不按导向标识行驶</string>
</resources>

View File

@@ -102,6 +102,7 @@ dependencies {
implementation 'com.squareup.okhttp3:okhttp:3.12.3'
implementation 'com.tencent:mmkv:1.2.14'
implementation project(':libraries:mogo-adas-data')
implementation project(':core:mogo-core-utils')
}
task androidSourcesJar(type: Jar) {

View File

@@ -10,7 +10,7 @@ import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_SOURCE_ADAS;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_TYPE_INIT_STATUS;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_TYPE_SOCKET_AUTOPILOT;
import android.content.Context;
import android.app.Application;
import android.os.SystemClock;
import android.text.TextUtils;
import android.util.Log;
@@ -154,7 +154,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
private OnAdasListener mAdasListener;
//连接状态listener
private final OnAdasConnectStatusListener adasConnectStatusListener;
private Context context;
private final Application context;
private final ReceivedAckManager receivedAckManager = new ReceivedAckManager();//消息回执
private final AtomicBoolean isInitConfigure = new AtomicBoolean(false);//是否进行配置初始化
@@ -199,10 +199,11 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
* @param options
* @param listener
*/
AdasChannel(Context context, @Nullable AdasOptions options, @Nullable OnAdasConnectStatusListener listener) {
AdasChannel(Application context, @Nullable AdasOptions options, @Nullable OnAdasConnectStatusListener listener) {
this.context = context;
this.adasConnectStatusListener = listener;
setAdasOptions(options);
AutopilotAbilityManager.getInstance().init(context);
initData();
if (!adasOptions.isPassenger() && listener != null && adasOptions.isAutoConnect())
connect();
@@ -371,7 +372,6 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
private void initSocket() {
if (mSocket == null) {
mSocket = new FpgaSocket(context);
context = null;
mSocket.setWebSocketListener(this);
if (isUseQueue) {
WebSocketQueueManager.getInstance().registerWebSocketListener(this);
@@ -924,7 +924,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
}
if (args != null && args.length > 0) {
if (status == AdasConstants.IpcConnectionStatus.HEARTBEAT_TIMEOUT && args.length > 2) {
reason = ReceiveTimeoutManager.buildTimeoutStr(true, (boolean) args[0], (long) args[1], (long) args[2]);
reason = ReceiveTimeoutManager.buildTimeoutStr(context, true, (boolean) args[0], (long) args[1], (long) args[2]);
} else {
reason = String.valueOf(args[0]);
}

View File

@@ -1,5 +1,6 @@
package com.zhidao.support.adas.high;
import android.app.Application;
import android.content.Context;
import android.text.TextUtils;
@@ -127,7 +128,7 @@ public class AdasManager implements IAdasNetCommApi {
* @param options 连接参数
* @param onAdasConnectStatusListener 连接状态监听
*/
public synchronized void create(Context context, AdasOptions options, OnAdasConnectStatusListener onAdasConnectStatusListener) {
public synchronized void create(Application context, AdasOptions options, OnAdasConnectStatusListener onAdasConnectStatusListener) {
if (mChannel != null) {
mChannel.disconnect();
carConfig = null;

View File

@@ -3,6 +3,7 @@ package com.zhidao.support.adas.high.common;
import androidx.annotation.NonNull;
import com.zhidao.support.adas.high.AdasOptions;
import com.zhidao.support.adas.high.R;
import java.io.BufferedReader;
import java.io.IOException;
@@ -188,7 +189,8 @@ public class PingAddressHelper {
while ((line = in.readLine()) != null) {
builder.append(line).append("\n");
}
builder.append("工控机IP").append(str).append(" 是否可以连通:").append(status == 0 ? "" : "");
// builder.append("工控机IP").append(str).append(" 是否可以连通:").append(status == 0 ? "是" : "否");
builder.append(R.string.adas_ipc_ip).append(str).append(R.string.adas_whether_connectable).append(status == 0 ? R.string.adas_connect_yes : R.string.adas_connect_no);
CupidLogUtils.i(TAG, builder.toString());
return status == 0;
} catch (IOException | InterruptedException e) {

View File

@@ -1,17 +1,20 @@
package com.zhidao.support.adas.high.common;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhidao.support.adas.high.R;
/**
* 数据协议解析状态
*/
public enum ProtocolStatus {
SUCCEED(0x00, "数据解析成功"),
MAGIC_CODE_CHECK_FAILED(0x01, "数据头校验失败"),
PACKAGE_LENGTH_CHECK_FAILED(0x02, "数据包长度校验失败"),
MESSAGE_TYPE_UNKNOWN(0x03, "MessageType未知"),
HEADER_DECODE_FAILED(0x04, "Header解析失败"),
BUSINESS_DATA_PARSE_FAILED(0x05, "业务数据解析失败");
SUCCEED(0x00, StringUtils.getString(R.string.adas_data_parsing_succeeded)),
MAGIC_CODE_CHECK_FAILED(0x01, StringUtils.getString(R.string.adas_data_header_verification_failed)),
PACKAGE_LENGTH_CHECK_FAILED(0x02, StringUtils.getString(R.string.adas_data_package_length_verification_failed)),
MESSAGE_TYPE_UNKNOWN(0x03, StringUtils.getString(R.string.adas_message_type_unknown)),
HEADER_DECODE_FAILED(0x04, StringUtils.getString(R.string.adas_header_parsing_failed)),
BUSINESS_DATA_PARSE_FAILED(0x05, StringUtils.getString(R.string.adas_business_data_parsing_failed));
public final int code;

View File

@@ -1,7 +1,10 @@
package com.zhidao.support.adas.high.common;
import android.content.Context;
import android.os.SystemClock;
import android.text.TextUtils;
import com.zhidao.support.adas.high.R;
import com.zhjt.mogo.adas.data.AdasConstants;
import java.util.Locale;
@@ -128,7 +131,7 @@ public class ReceiveTimeoutManager {
long now = SystemClock.elapsedRealtime();
long difference = now - lastRefreshTime;
boolean isTimeout = difference >= timeout;
CupidLogUtils.e(TAG, buildTimeoutStr(isTimeout, isHaveIpcHeartbeat(), lastDataTimestamp, difference) + " 设备开机到现在的时间:" + now + "ms 最后一条数据刷新时间:" + lastRefreshTime + "ms");
CupidLogUtils.e(TAG, buildTimeoutStr(null,isTimeout, isHaveIpcHeartbeat(), lastDataTimestamp, difference) + " 设备开机到现在的时间:" + now + "ms 最后一条数据刷新时间:" + lastRefreshTime + "ms");
if (isTimeout) {
if (listener != null) {
listener.onTimeout(isHaveIpcHeartbeat(), lastDataTimestamp, difference);
@@ -147,17 +150,35 @@ public class ReceiveTimeoutManager {
}
public static String buildTimeoutStr(
Context context,
boolean isTimeout,
boolean isHaveIpcHeartbeat,
long lastDataTimestamp,
long time
) {
String type = isTimeout
? "超时时间:"
: "最后刷新时间时间差:";
String type1 = isHaveIpcHeartbeat
? "最后一条Telematics心跳接收时间"
: "最后一条Telematics数据发送时间";
String type = null;
String type1 = null;
if (context != null) {
try {
type = isTimeout
? context.getString(R.string.adas_time_out_period)
: context.getString(R.string.adas_last_refresh_time_difference);
type1 = isHaveIpcHeartbeat
? context.getString(R.string.adas_last_receive_heartbeat_time)
: context.getString(R.string.adas_last_receive_data_time);
} catch (Exception e) {
type = null;
type1 = null;
}
}
if (TextUtils.isEmpty(type) || TextUtils.isEmpty(type1)) {
type = isTimeout
? context.getString(R.string.adas_timeout_duration)
: context.getString(R.string.adas_last_refresh_time_interval);
type1 = isHaveIpcHeartbeat
? context.getString(R.string.adas_last_telematics_heartbeat_receive_time)
: context.getString(R.string.adas_last_telematics_data_send_time);
}
return String.format(Locale.getDefault(),
"%s%dms %s%d",
type,

View File

@@ -3,6 +3,7 @@ package com.zhidao.support.adas.high.common.autopilot.ability;
import androidx.annotation.NonNull;
import com.zhidao.support.adas.high.AdasManager;
import com.zhidao.support.adas.high.R;
import com.zhidao.support.adas.high.common.CupidLogUtils;
import com.zhjt.mogo.adas.data.bean.LaunchConditionData;
import com.zhjt.mogo.adas.data.bean.UnableLaunchReason;
@@ -24,10 +25,13 @@ import system_master.SystemStatusInfo;
public class AutopilotAbility250 extends BaseAutopilotAbilityChassis {
private volatile Timer timer;
private int masterVersion = -1;//Master版本
@NonNull
private final String[] NODE_INFO_STATE;
public AutopilotAbility250(@NonNull AutopilotAbilityManager manager) {
super(manager);
NODE_INFO_STATE = manager.getStringArray(R.array.adas_node_info_state);
}
@@ -58,14 +62,14 @@ public class AutopilotAbility250 extends BaseAutopilotAbilityChassis {
for (SystemStatusInfo.NodeInfo info : list) {
String nodeName = info.getNodeName();
int state = info.getState();
if (state < AutopilotAbilityManager.NODE_INFO_STATE.length) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_OFFER, nodeName + AutopilotAbilityManager.NODE_INFO_STATE[state]);
if (state < NODE_INFO_STATE.length) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_OFFER, nodeName + NODE_INFO_STATE[state]);
} else {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, nodeName + "未知异常");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, nodeName + manager.getString(R.string.adas_unknown_error));
}
}
} else {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, "未知异常节点");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, manager.getString(R.string.adas_unknown_error_node));
}
}
} else {
@@ -75,11 +79,11 @@ public class AutopilotAbility250 extends BaseAutopilotAbilityChassis {
boolean isAutopilotAbility = false;
String unableAutopilotReason = null;
if (systemState == SystemStatusInfo.SystemState.SYS_STARTING) {
unableAutopilotReason = "系统正在启动";
unableAutopilotReason = manager.getString(R.string.adas_system_starting);
} else if (systemState == SystemStatusInfo.SystemState.SYS_EXITING) {
unableAutopilotReason = "系统正在关闭";
unableAutopilotReason = manager.getString(R.string.adas_system_shutting_down);
} else if (systemState == SystemStatusInfo.SystemState.SYS_FAULT) {
unableAutopilotReason = "系统异常";
unableAutopilotReason = manager.getString(R.string.adas_system_error);
} else if (systemState == SystemStatusInfo.SystemState.AUTO_PILOT_STARTING) {
//TODO 如果第一次下发了启动自动驾驶,没起来或者存在干预 此时systemState是AUTO_PILOT_STARTING 需要二次下发启动自驾命令 所以需要排除此状态
isAutopilotAbility = true;
@@ -89,11 +93,11 @@ public class AutopilotAbility250 extends BaseAutopilotAbilityChassis {
isAutopilotAbility = true;
// unableAutopilotReason = "自动驾驶运行中";
} else if (systemState == SystemStatusInfo.SystemState.REMOTE_PILOT_STARTING) {
unableAutopilotReason = "平行驾驶启动中";
unableAutopilotReason = manager.getString(R.string.adas_parallel_drive_starting);
} else if (systemState == SystemStatusInfo.SystemState.REMOTE_PILOT_RUNNING) {
unableAutopilotReason = "平行驾驶运行中";
unableAutopilotReason = manager.getString(R.string.adas_parallel_drive_running);
} else {
unableAutopilotReason = "未知系统状态";
unableAutopilotReason = manager.getString(R.string.adas_unknown_system_state);
}
if (!isAutopilotAbility) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_OFFER, unableAutopilotReason);
@@ -101,7 +105,7 @@ public class AutopilotAbility250 extends BaseAutopilotAbilityChassis {
}
}
} else {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.SSM_TIMEOUT, "SSM查询超时无响应");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.SSM_TIMEOUT, manager.getString(R.string.adas_ssm_find_timeout));
}
//检测底盘相关
unableAutopilotReasons = onCallbackChassis(unableAutopilotReasons);

View File

@@ -5,6 +5,7 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import com.zhidao.support.adas.high.AdasManager;
import com.zhidao.support.adas.high.R;
import com.zhidao.support.adas.high.common.CupidLogUtils;
import com.zhjt.mogo.adas.data.bean.LaunchConditionData;
import com.zhjt.mogo.adas.data.bean.UnableLaunchReason;
@@ -35,11 +36,13 @@ public class AutopilotAbility330 {
private int mapVersion = -1;//MAP版本
private int masterVersion = -1;//Master版本
private OnAutopilotAbilityListener listener;
private final String[] NODE_INFO_STATE;
protected AutopilotAbility330(@NonNull AutopilotAbilityManager manager, int mapVersion) {
this.manager = manager;
this.mapVersion = mapVersion;
this.masterVersion = -1;
NODE_INFO_STATE = manager.getStringArray(R.array.adas_node_info_state);
}
protected synchronized void setFsmStatusReasonRespond(FSMStatusReasonQueryOuterClass.FSMStatusReasonRespond fsmStatusReasonRespond) {
@@ -76,14 +79,14 @@ public class AutopilotAbility330 {
for (SystemStatusInfo.NodeInfo info : list) {
String nodeName = info.getNodeName();
int state = info.getState();
if (state < AutopilotAbilityManager.NODE_INFO_STATE.length) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_OFFER, nodeName + AutopilotAbilityManager.NODE_INFO_STATE[state]);
if (state < NODE_INFO_STATE.length) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_OFFER, nodeName + NODE_INFO_STATE[state]);
} else {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, nodeName + "未知异常");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, nodeName + manager.getString(R.string.adas_unknown_error));
}
}
} else {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, "未知异常节点");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, manager.getString(R.string.adas_unknown_error_node));
}
}
} else {
@@ -93,11 +96,11 @@ public class AutopilotAbility330 {
isAutopilotAbility = false;
String unableAutopilotReason = null;
if (systemState == SystemStatusInfo.SystemState.SYS_STARTING) {
unableAutopilotReason = "系统正在启动";
unableAutopilotReason = manager.getString(R.string.adas_system_starting);
} else if (systemState == SystemStatusInfo.SystemState.SYS_EXITING) {
unableAutopilotReason = "系统正在关闭";
unableAutopilotReason = manager.getString(R.string.adas_system_shutting_down);
} else if (systemState == SystemStatusInfo.SystemState.SYS_FAULT) {
unableAutopilotReason = "系统异常";
unableAutopilotReason = manager.getString(R.string.adas_system_error);
} else if (systemState == SystemStatusInfo.SystemState.AUTO_PILOT_STARTING) {
//TODO 如果第一次下发了启动自动驾驶,没起来或者存在干预 此时systemState是AUTO_PILOT_STARTING 需要二次下发启动自驾命令 所以需要排除此状态
isAutopilotAbility = true;
@@ -107,11 +110,11 @@ public class AutopilotAbility330 {
isAutopilotAbility = true;
// unableAutopilotReason = "自动驾驶运行中";
} else if (systemState == SystemStatusInfo.SystemState.REMOTE_PILOT_STARTING) {
unableAutopilotReason = "平行驾驶启动中";
unableAutopilotReason = manager.getString(R.string.adas_parallel_drive_starting);
} else if (systemState == SystemStatusInfo.SystemState.REMOTE_PILOT_RUNNING) {
unableAutopilotReason = "平行驾驶运行中";
unableAutopilotReason = manager.getString(R.string.adas_parallel_drive_running);
} else {
unableAutopilotReason = "未知系统状态";
unableAutopilotReason = manager.getString(R.string.adas_unknown_system_state);
}
if (!isAutopilotAbility) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_OFFER, unableAutopilotReason);
@@ -120,7 +123,7 @@ public class AutopilotAbility330 {
}
} else {
isAutopilotAbility = false;//是否能启动自动驾驶
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.SSM_TIMEOUT, "SSM查询超时无响应");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.SSM_TIMEOUT, manager.getString(R.string.adas_ssm_find_timeout));
}
if (fsmStatusReasonRespond != null) {
int count = fsmStatusReasonRespond.getFsmStatusReasonRespondCount();
@@ -133,7 +136,7 @@ public class AutopilotAbility330 {
}
}
if (unableAutopilotReasons == null || unableAutopilotReasons.isEmpty()) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.FSM_ERROR, "FSM数据异常");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.FSM_ERROR, manager.getString(R.string.adas_fsm_data_error));
}
}
}

View File

@@ -3,6 +3,7 @@ package com.zhidao.support.adas.high.common.autopilot.ability;
import androidx.annotation.NonNull;
import com.zhidao.support.adas.high.AdasManager;
import com.zhidao.support.adas.high.R;
import com.zhidao.support.adas.high.common.CupidLogUtils;
import com.zhjt.mogo.adas.data.bean.LaunchConditionData;
import com.zhjt.mogo.adas.data.bean.UnableLaunchReason;
@@ -26,11 +27,6 @@ import system_master.SsmInfo;
*/
public class AutopilotAbility350And360 {
private final String TAG = this.getClass().getSimpleName();
private static final String REASON_CHASSIS_BRAKE = "刹车踏板";
private static final String REASON_CHASSIS_THROTTLE = "油门踏板";
private static final String REASON_CHASSIS_GEAR = "档位";
private static final String REASON_CHASSIS_HAZARD_LIGHTS = "危险报警灯";
private static final String REASON_CHASSIS_STEERING = "方向盘";
@NonNull
private final AutopilotAbilityManager manager;
private volatile SsmInfo.SsmStatusInf statusInfo;
@@ -54,9 +50,11 @@ public class AutopilotAbility350And360 {
private int masterVersion = -1;//Master版本
private long seqNum = -1;//消息条数
private final String[] NODE_INFO_STATE_FIXED_FREQUENCY;
public AutopilotAbility350And360(@NonNull AutopilotAbilityManager manager) {
this.manager = manager;
NODE_INFO_STATE_FIXED_FREQUENCY = manager.getStringArray(R.array.adas_node_info_state_fixed_frequency);
}
public void setCarConfig(@NonNull MessagePad.CarConfigResp carConfig) {
@@ -151,14 +149,14 @@ public class AutopilotAbility350And360 {
SsmInfo.NodeInf info = statusInfo.getAutoPilotUnreadyList(i);
String nodeName = info.getNodeName();
int state = info.getState().getNumber();
if (state < AutopilotAbilityManager.NODE_INFO_STATE_FIXED_FREQUENCY.length) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_OFFER, nodeName + AutopilotAbilityManager.NODE_INFO_STATE_FIXED_FREQUENCY[state]);
if (state < NODE_INFO_STATE_FIXED_FREQUENCY.length) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_OFFER, nodeName + NODE_INFO_STATE_FIXED_FREQUENCY[state]);
} else {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, nodeName + "未知异常");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, nodeName + manager.getString(R.string.adas_unknown_error));
}
}
} else {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, "未知异常节点");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, manager.getString(R.string.adas_unknown_error_node));
}
}
} else {
@@ -166,21 +164,21 @@ public class AutopilotAbility350And360 {
if (modeState != SsmInfo.ModeState.MODE_RUN_UNREADY && modeState != SsmInfo.ModeState.MODE_RUN_READY) {
String unableAutopilotReason = null;
if (modeState == SsmInfo.ModeState.MODE_STOP_UNREADY) {
unableAutopilotReason = "系统处于停止模式(未就绪)";
unableAutopilotReason = manager.getString(R.string.adas_mode_stop_unready);
} else if (modeState == SsmInfo.ModeState.MODE_STOP_READY) {
unableAutopilotReason = "系统处于停止模式";
unableAutopilotReason = manager.getString(R.string.adas_mode_stop_ready);
} else if (modeState == SsmInfo.ModeState.MODE_IDLE_UNREADY) {
unableAutopilotReason = "系统处于空闲模式(未就绪)";
unableAutopilotReason = manager.getString(R.string.adas_mode_idle_unready);
} else if (modeState == SsmInfo.ModeState.MODE_IDLE_READY) {
unableAutopilotReason = "系统处于空闲模式";
unableAutopilotReason = manager.getString(R.string.adas_mode_idle_ready);
} else {
unableAutopilotReason = "未知系统模式";
unableAutopilotReason = manager.getString(R.string.adas_unknown_system_mode);
}
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_OFFER, unableAutopilotReason);
}
}
} else {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.SSM_TIMEOUT, "SSM超时无响应");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.SSM_TIMEOUT, manager.getString(R.string.adas_ssm_timeout));
}
return unableAutopilotReasons;
}
@@ -240,26 +238,26 @@ public class AutopilotAbility350And360 {
if (chassisStates.hasBrakeSystemStates()) {
float brake = chassisStates.getBrakeSystemStates().getBrakePedalResponsePosition();
if (brake > 0) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_BRAKE, REASON_CHASSIS_BRAKE);
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_BRAKE, manager.getString(R.string.adas_reason_chassis_brake));
}
}
//油门踏板
if (chassisStates.hasDrivingSystemStates()) {
float throttle = chassisStates.getDrivingSystemStates().getThrottleResponsePosition();
if (throttle > 0) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_THROTTLE, REASON_CHASSIS_THROTTLE);
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_THROTTLE, manager.getString(R.string.adas_reason_chassis_throttle));
}
}
//档位
if (chassisStates.hasGearSystemStates()) {
Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition();
if (!isLaunchAutopilotGear(gear)) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_GEAR, REASON_CHASSIS_GEAR);
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_GEAR, manager.getString(R.string.adas_reason_chassis_gear));
}
}
//危险报警灯
if (!isLaunchAutopilotLight(currentLight)) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_HAZARD_LIGHTS, REASON_CHASSIS_HAZARD_LIGHTS);
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_HAZARD_LIGHTS, manager.getString(R.string.adas_reason_chassis_hazard_lights));
}
//延迟太高改用timer
// //方向盘
@@ -288,7 +286,7 @@ public class AutopilotAbility350And360 {
// }
// Log.i(TAG, "方向盘是否在转动=" + isTurning.get());
if (isTurning.get()) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_STEERING, REASON_CHASSIS_STEERING);
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_STEERING, manager.getString(R.string.adas_reason_chassis_steering));
}
}
if (listener != null) {

View File

@@ -5,6 +5,7 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import com.zhidao.support.adas.high.AdasManager;
import com.zhidao.support.adas.high.R;
import com.zhidao.support.adas.high.common.CupidLogUtils;
import com.zhjt.mogo.adas.data.bean.LaunchConditionData;
import com.zhjt.mogo.adas.data.bean.UnableLaunchReason;
@@ -28,10 +29,12 @@ public class AutopilotAbility360 {
private volatile FSMStatusReasonQueryOuterClass.FSMStatusReasonRespond fsmStatusReasonRespond;//自动驾驶状态为OFF的原因
private int masterVersion = -1;//Master版本
private OnAutopilotAbilityListener listener;
private final String[] NODE_INFO_STATE_FIXED_FREQUENCY;
protected AutopilotAbility360(@NonNull AutopilotAbilityManager manager) {
this.manager = manager;
this.masterVersion = -1;
NODE_INFO_STATE_FIXED_FREQUENCY = manager.getStringArray(R.array.adas_node_info_state_fixed_frequency);
}
protected synchronized void setFsmStatusReasonRespond(FSMStatusReasonQueryOuterClass.FSMStatusReasonRespond fsmStatusReasonRespond) {
@@ -68,14 +71,14 @@ public class AutopilotAbility360 {
SsmInfo.NodeInf info = statusInfo.getAutoPilotUnreadyList(i);
String nodeName = info.getNodeName();
int state = info.getState().getNumber();
if (state < AutopilotAbilityManager.NODE_INFO_STATE_FIXED_FREQUENCY.length) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_OFFER, nodeName + AutopilotAbilityManager.NODE_INFO_STATE_FIXED_FREQUENCY[state]);
if (state < NODE_INFO_STATE_FIXED_FREQUENCY.length) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_OFFER, nodeName + NODE_INFO_STATE_FIXED_FREQUENCY[state]);
} else {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, nodeName + "未知异常");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, nodeName + manager.getString(R.string.adas_unknown_error));
}
}
} else {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, "未知异常节点");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_ERROR, manager.getString(R.string.adas_unknown_error_node));
}
}
} else {
@@ -84,22 +87,22 @@ public class AutopilotAbility360 {
isAutopilotAbility = false;
String unableAutopilotReason = null;
if (modeState == SsmInfo.ModeState.MODE_STOP_UNREADY) {
unableAutopilotReason = "系统处于停止模式(未就绪)";
unableAutopilotReason = manager.getString(R.string.adas_mode_stop_unready);
} else if (modeState == SsmInfo.ModeState.MODE_STOP_READY) {
unableAutopilotReason = "系统处于停止模式";
unableAutopilotReason = manager.getString(R.string.adas_mode_stop_ready);
} else if (modeState == SsmInfo.ModeState.MODE_IDLE_UNREADY) {
unableAutopilotReason = "系统处于空闲模式(未就绪)";
unableAutopilotReason = manager.getString(R.string.adas_mode_idle_unready);
} else if (modeState == SsmInfo.ModeState.MODE_IDLE_READY) {
unableAutopilotReason = "系统处于空闲模式";
unableAutopilotReason = manager.getString(R.string.adas_mode_idle_ready);
} else {
unableAutopilotReason = "未知系统模式";
unableAutopilotReason = manager.getString(R.string.adas_unknown_system_mode);
}
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.SSM, UnableLaunchReason.UnableType.SSM_OFFER, unableAutopilotReason);
}
}
} else {
isAutopilotAbility = false;//是否能启动自动驾驶
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.SSM_TIMEOUT, "SSM超时无响应");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.SSM_TIMEOUT, manager.getString(R.string.adas_ssm_timeout));
}
if (fsmStatusReasonRespond != null) {
int count = fsmStatusReasonRespond.getFsmStatusReasonRespondCount();
@@ -112,7 +115,7 @@ public class AutopilotAbility360 {
}
}
if (unableAutopilotReasons == null || unableAutopilotReasons.isEmpty()) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.FSM_ERROR, "FSM数据异常");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.FSM_ERROR, manager.getString(R.string.adas_fsm_data_error));
}
}
}

View File

@@ -2,6 +2,7 @@ package com.zhidao.support.adas.high.common.autopilot.ability;
import androidx.annotation.NonNull;
import com.zhidao.support.adas.high.R;
import com.zhjt.mogo.adas.data.bean.LaunchConditionData;
import com.zhjt.mogo.adas.data.bean.UnableLaunchReason;
@@ -38,7 +39,7 @@ public class AutopilotAbilityFSM {
protected void onCallbackFsm(Fsm2024.FSMStateMsg fsmState) {
ArrayList<UnableLaunchReason> unableAutopilotReasons = null;//不能启动自动驾驶原因
if (fsmState == null) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.FSM2024_TIMEOUT, "FSM超时无响应");
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.LIB, UnableLaunchReason.UnableType.FSM2024_TIMEOUT, manager.getString(R.string.adas_fsm_timeout));
} else {
if (!fsmState.getPilotStandbyFlag()) {
List<String> list = null;

View File

@@ -1,15 +1,19 @@
package com.zhidao.support.adas.high.common.autopilot.ability;
import android.app.Application;
import android.text.TextUtils;
import androidx.annotation.ArrayRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import com.zhidao.support.adas.high.AdasManager;
import com.zhidao.support.adas.high.AdasOptions;
import com.zhidao.support.adas.high.BuildConfig;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.R;
import com.zhidao.support.adas.high.common.CupidLogUtils;
import com.zhjt.mogo.adas.data.AdasConstants;
import com.zhjt.mogo.adas.data.bean.LaunchConditionData;
@@ -45,8 +49,6 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener {
private static final String TAG = AutopilotAbilityManager.class.getSimpleName();
protected static final long DEFAULT_TIMEOUT = 5000L;//SSM和FSM超时时间
protected static final long DEFAULT_DETECTION_TIME = 3 * 1000L;//默认检测周期
protected static final String[] NODE_INFO_STATE = {"未知状态", "依赖未就绪", "启动中", "运行", "停止", "无法启动状态", "人为启动状态", "人为关闭状态"};
protected static final String[] NODE_INFO_STATE_FIXED_FREQUENCY = {"未知状态", "依赖未就绪", "启动中", "运行", "停止", "无法启动状态", "非自动启动状态", "非自动关闭状态"};
private static volatile AutopilotAbilityManager INSTANCE;
private OnAdasListener listener;
@@ -75,6 +77,7 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener {
private final AtomicInteger isSupportFSM2024 = new AtomicInteger(-1);//-1未初始化 0不支持 1通过SSM V2判断支持 2通过FSM数据源判断支持
private final Map<AdasConstants.NodeName, NodeStateInfo> nodeStateInfos = new ConcurrentHashMap<>();
private int fsm2024Version = -1;//FSM2024版本 -1未初始化 0SSM判断存在FSM2024但是并不知道具体版本或根据FMS中Version解析失败 其他数值根据FSM数据中的version 判断得出
private Application context;
private AutopilotAbilityManager() {
}
@@ -90,6 +93,10 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener {
return INSTANCE;
}
public void init(@NonNull Application context) {
this.context = context;
}
private void initStartData() {
nodeStateInfos.clear();
NodeStateInfo ssmInfo = new NodeStateInfo(AdasConstants.NodeName.SSM, AdasConstants.NodeState.NODE_EXIST);
@@ -129,7 +136,7 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener {
*/
protected ArrayList<UnableLaunchReason> addUnableAutopilotReason(ArrayList<UnableLaunchReason> unableAutopilotReasons, UnableLaunchReason.SourceType source, UnableLaunchReason.UnableType unableType, String unableAutopilotReason) {
if (TextUtils.isEmpty(unableAutopilotReason)) {
unableAutopilotReason = "未知";
unableAutopilotReason = getString(R.string.adas_unknown);
}
List<String> list = new ArrayList<>();
list.add(unableAutopilotReason);
@@ -587,4 +594,22 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener {
isJLB2 = false;
}
public String getString(@StringRes int resId) {
if (context == null) return "";
try {
return context.getString(resId);
} catch (Exception e) {
return "";
}
}
public String[] getStringArray(@ArrayRes int resId) {
if (context == null) return new String[0];
try {
return context.getResources().getStringArray(resId);
} catch (Exception e) {
return new String[0];
}
}
}

View File

@@ -2,6 +2,7 @@ package com.zhidao.support.adas.high.common.autopilot.ability;
import androidx.annotation.NonNull;
import com.zhidao.support.adas.high.R;
import com.zhjt.mogo.adas.data.bean.UnableLaunchReason;
import java.util.ArrayList;
@@ -17,11 +18,6 @@ import mogo.telematics.pad.MessagePad;
*/
public abstract class BaseAutopilotAbilityChassis {
protected final String TAG = this.getClass().getSimpleName();
private static final String REASON_CHASSIS_BRAKE = "刹车踏板";
private static final String REASON_CHASSIS_THROTTLE = "油门踏板";
private static final String REASON_CHASSIS_GEAR = "档位";
private static final String REASON_CHASSIS_HAZARD_LIGHTS = "危险报警灯";
private static final String REASON_CHASSIS_STEERING = "方向盘";
@NonNull
protected final AutopilotAbilityManager manager;
protected ChassisStatesOuterClass.ChassisStates chassisStates;
@@ -116,26 +112,26 @@ public abstract class BaseAutopilotAbilityChassis {
if (chassisStates.hasBrakeSystemStates()) {
float brake = chassisStates.getBrakeSystemStates().getBrakePedalResponsePosition();
if (brake > 0) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_BRAKE, REASON_CHASSIS_BRAKE);
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_BRAKE, manager.getString(R.string.adas_reason_chassis_brake));
}
}
//油门踏板
if (chassisStates.hasDrivingSystemStates()) {
float throttle = chassisStates.getDrivingSystemStates().getThrottleResponsePosition();
if (throttle > 0) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_THROTTLE, REASON_CHASSIS_THROTTLE);
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_THROTTLE, manager.getString(R.string.adas_reason_chassis_throttle));
}
}
//档位
if (chassisStates.hasGearSystemStates()) {
Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition();
if (!isLaunchAutopilotGear(gear)) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_GEAR, REASON_CHASSIS_GEAR);
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_GEAR, manager.getString(R.string.adas_reason_chassis_gear));
}
}
//危险报警灯
if (!isLaunchAutopilotLight()) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_HAZARD_LIGHTS, REASON_CHASSIS_HAZARD_LIGHTS);
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_HAZARD_LIGHTS, manager.getString(R.string.adas_reason_chassis_hazard_lights));
}
//方向盘
if (chassisStates.hasSteerSystemStates()) {
@@ -150,7 +146,7 @@ public abstract class BaseAutopilotAbilityChassis {
oldSteering = steering;
// CupidLogUtils.log(TAG, "方向盘是否转动=" + isTurning);
if (isTurning) {
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_STEERING, REASON_CHASSIS_STEERING);
unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_STEERING, manager.getString(R.string.adas_reason_chassis_steering));
}
}
}

View File

@@ -1515,14 +1515,14 @@ public class CloudControlMessage extends MyAbstractMessageHandler {
@Override
public String toString() {
return "Packet{" +
"原始数据=" + ByteUtil.byteArrToHex(original) +
", 标识位=0x" + Integer.toHexString(marker & 0xFF) +
", 负载数据长度=" + payloadLength +
", 数据类型=" + cloudDataType +
", 版本=" + (version & 0xFF) +
", 时间戳=" + timestamp +
", 控制=" + (control & 0xFF) +
", 负载数据=" + (payload == null ? null : ByteUtil.byteArrToHex(payload.toByteArray())) +
"raw_data=" + ByteUtil.byteArrToHex(original) +
", marker=0x" + Integer.toHexString(marker & 0xFF) +
", payloadLength=" + payloadLength +
", cloudDataType=" + cloudDataType +
", version=" + (version & 0xFF) +
", timestamp=" + timestamp +
", control=" + (control & 0xFF) +
", payload=" + (payload == null ? null : ByteUtil.byteArrToHex(payload.toByteArray())) +
'}';
}
}

View File

@@ -20,7 +20,7 @@ public class V2nNioCrossoverEventAndOtherRetrogradeEventMessage extends MyAbstra
public V2nNioCrossoverEventAndOtherRetrogradeEventMessage(MessagePad.MessageType messageType) {
this.messageType = messageType;
TAG = messageType == MessageType.TYPE_RECEIVE_V2N_NIO_CROSSOVER_EVENT.typeCode ? "V2N NIO行人横穿(路侧)" : "V2N NIO他车逆行路侧";
TAG = messageType == MessageType.TYPE_RECEIVE_V2N_NIO_CROSSOVER_EVENT.typeCode ? "V2N NIO roadside_pedestrian_crossing" : "V2N NIO roadside_other_vehicle_retrograde";
}
@Override

View File

@@ -14,7 +14,9 @@ import android.util.Log;
import androidx.annotation.NonNull;
import com.google.protobuf.InvalidProtocolBufferException;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.zhidao.support.adas.high.AdasChannel;
import com.zhidao.support.adas.high.R;
import com.zhidao.support.adas.high.common.CupidLogUtils;
import com.zhidao.support.adas.high.common.ReceiveTimeoutManager;
import com.zhidao.support.adas.high.common.ReconnectManager;
@@ -373,13 +375,13 @@ public class FpgaSocket implements IWebSocket {
String closeReason = null;
AdasConstants.IpcConnectionStatus s = status.get();
if (s == AdasConstants.IpcConnectionStatus.DISCONNECTED) {
closeReason = "用户主动关闭";
closeReason = StringUtils.getString(R.string.adas_user_active_close);
} else if (s == AdasConstants.IpcConnectionStatus.CERTIFICATION_FAILED) {
closeReason = "认证失败";
closeReason = StringUtils.getString(R.string.adas_authentication_failed);
} else if (s == AdasConstants.IpcConnectionStatus.HEARTBEAT_TIMEOUT) {
closeReason = "心跳超时";
closeReason = StringUtils.getString(R.string.adas_heartbeat_timeout);
} else if (s == AdasConstants.IpcConnectionStatus.PROTOCOL_MISMATCH) {
closeReason = "協議不匹配";
closeReason = StringUtils.getString(R.string.adas_protocol_mismatch);
}
boolean isClose = mWebSocket.close(code, closeReason);
CupidLogUtils.log(TAG, "WebSocket code=" + code + " isCancel=" + isCancel + " 断开连接是否成功= " + isClose);

View File

@@ -0,0 +1,74 @@
<resources>
<string name="adas_time_out_period">Timeout period:</string>
<string name="adas_last_refresh_time_difference">Time difference since last refresh:</string>
<string name="adas_last_receive_heartbeat_time">Last Telematics heartbeat received time</string>
<string name="adas_last_receive_data_time">Last Telematics data sent time</string>
<string name="adas_timeout_duration">Timeout period:</string>
<string name="adas_last_refresh_time_interval">Time difference since last refresh:</string>
<string name="adas_last_telematics_heartbeat_receive_time">Last Telematics heartbeat received time</string>
<string name="adas_last_telematics_data_send_time">Last Telematics data sent time</string>
<string-array name="adas_node_info_state">
<item>Unknown state</item>
<item>Dependency not ready</item>
<item>Starting</item>
<item>Running</item>
<item>Stopped</item>
<item>Cannot start</item>
<item>Manual start</item>
<item>Manual stop</item>
</string-array>
<string-array name="adas_node_info_state_fixed_frequency">
<item>Unknown state</item>
<item>Dependency not ready</item>
<item>Starting</item>
<item>Running</item>
<item>Stopped</item>
<item>Cannot start</item>
<item>Non-auto start</item>
<item>Non-auto stop</item>
</string-array>
<string name="adas_unknown">Unknown</string>
<string name="adas_unknown_error">Unknown exception</string>
<string name="adas_unknown_error_node">Unknown exception node</string>
<string name="adas_system_starting">System starting</string>
<string name="adas_system_shutting_down">System shutting down</string>
<string name="adas_system_error">System error</string>
<string name="adas_parallel_drive_starting">Parallel driving starting</string>
<string name="adas_parallel_drive_running">Parallel driving running</string>
<string name="adas_unknown_system_state">Unknown system state</string>
<string name="adas_ssm_find_timeout">SSM query timeout, no response</string>
<string name="adas_fsm_data_error">FSM data error</string>
<string name="adas_reason_chassis_brake">Brake pedal</string>
<string name="adas_reason_chassis_throttle">Throttle pedal</string>
<string name="adas_reason_chassis_gear">Gear</string>
<string name="adas_reason_chassis_hazard_lights">Hazard lights</string>
<string name="adas_reason_chassis_steering">Steering wheel</string>
<string name="adas_mode_stop_unready">System in stop mode (not ready)</string>
<string name="adas_mode_stop_ready">System in stop mode</string>
<string name="adas_mode_idle_unready">System in idle mode (not ready)</string>
<string name="adas_mode_idle_ready">System in idle mode</string>
<string name="adas_unknown_system_mode">Unknown system mode</string>
<string name="adas_ssm_timeout">SSM timeout, no response</string>
<string name="adas_fsm_timeout">FSM timeout, no response</string>
<string name="adas_ipc_ip">IPC IP:</string>
<string name="adas_whether_connectable"> Connectable:</string>
<string name="adas_connect_yes">Yes</string>
<string name="adas_connect_no">No</string>
<string name="adas_data_parsing_succeeded">Data parsing succeeded</string>
<string name="adas_data_header_verification_failed">Data header verification failed</string>
<string name="adas_data_package_length_verification_failed">Data package length verification failed</string>
<string name="adas_message_type_unknown">Unknown MessageType</string>
<string name="adas_header_parsing_failed">Header parsing failed</string>
<string name="adas_business_data_parsing_failed">Business data parsing failed</string>
<string name="adas_user_active_close">User closed manually</string>
<string name="adas_authentication_failed">Authentication failed</string>
<string name="adas_heartbeat_timeout">Heartbeat timeout</string>
<string name="adas_protocol_mismatch">Protocol mismatch</string>
</resources>

View File

@@ -1,3 +1,74 @@
<resources>
<string name="app_name">adas-high</string>
<string name="adas_time_out_period">超时时间:</string>
<string name="adas_last_refresh_time_difference">最后刷新时间时间差:</string>
<string name="adas_last_receive_heartbeat_time">最后一条Telematics心跳接收时间</string>
<string name="adas_last_receive_data_time">最后一条Telematics数据发送时间</string>
<string name="adas_timeout_duration">超时时间:</string>
<string name="adas_last_refresh_time_interval">最后刷新时间时间差:</string>
<string name="adas_last_telematics_heartbeat_receive_time">最后一条Telematics心跳接收时间</string>
<string name="adas_last_telematics_data_send_time">最后一条Telematics数据发送时间</string>
<string-array name="adas_node_info_state">
<item>未知状态</item>
<item>依赖未就绪</item>
<item>启动中</item>
<item>运行</item>
<item>停止</item>
<item>无法启动状态</item>
<item>人为启动状态</item>
<item>人为关闭状态</item>
</string-array>
<string-array name="adas_node_info_state_fixed_frequency">
<item>未知状态</item>
<item>依赖未就绪</item>
<item>启动中</item>
<item>运行</item>
<item>停止</item>
<item>无法启动状态</item>
<item>非自动启动状态</item>
<item>非自动关闭状态</item>
</string-array>
<string name="adas_unknown">未知</string>
<string name="adas_unknown_error">未知异常</string>
<string name="adas_unknown_error_node">未知异常节点</string>
<string name="adas_system_starting">系统正在启动</string>
<string name="adas_system_shutting_down">系统正在关闭</string>
<string name="adas_system_error">系统异常</string>
<string name="adas_parallel_drive_starting">平行驾驶启动中</string>
<string name="adas_parallel_drive_running">平行驾驶运行中</string>
<string name="adas_unknown_system_state">未知系统状态</string>
<string name="adas_ssm_find_timeout">SSM查询超时无响应</string>
<string name="adas_fsm_data_error">FSM数据异常</string>
<string name="adas_reason_chassis_brake">刹车踏板</string>
<string name="adas_reason_chassis_throttle">油门踏板</string>
<string name="adas_reason_chassis_gear">档位</string>
<string name="adas_reason_chassis_hazard_lights">危险报警灯</string>
<string name="adas_reason_chassis_steering">方向盘</string>
<string name="adas_mode_stop_unready">系统处于停止模式(未就绪)</string>
<string name="adas_mode_stop_ready">系统处于停止模式</string>
<string name="adas_mode_idle_unready">系统处于空闲模式(未就绪)</string>
<string name="adas_mode_idle_ready">系统处于空闲模式</string>
<string name="adas_unknown_system_mode">未知系统模式</string>
<string name="adas_ssm_timeout">SSM超时无响应</string>
<string name="adas_fsm_timeout">FSM超时无响应</string>
<string name="adas_ipc_ip">工控机IP</string>
<string name="adas_whether_connectable"> 是否可以连通:</string>
<string name="adas_connect_yes"></string>
<string name="adas_connect_no"></string>
<string name="adas_data_parsing_succeeded">数据解析成功</string>
<string name="adas_data_header_verification_failed">数据头校验失败</string>
<string name="adas_data_package_length_verification_failed">数据包长度校验失败</string>
<string name="adas_message_type_unknown">MessageType未知</string>
<string name="adas_header_parsing_failed">Header解析失败</string>
<string name="adas_business_data_parsing_failed">业务数据解析失败</string>
<string name="adas_user_active_close">用户主动关闭</string>
<string name="adas_authentication_failed">认证失败</string>
<string name="adas_heartbeat_timeout">心跳超时</string>
<string name="adas_protocol_mismatch">协议不匹配</string>
</resources>

View File

@@ -1,9 +1,13 @@
package com.mogo.support.device
import androidx.annotation.StringRes
/**
* 日志
*/
interface IWriteChainLogListener {
fun onWriteChainLog(tag: String, title: String, info: String)
fun onGetString(@StringRes id: Int): String
}

View File

@@ -2,6 +2,7 @@ package com.mogo.support.device.led
import android.util.Log
import com.mogo.support.device.IWriteChainLogListener
import com.mogo.support.device.R
import com.mogo.support.device.manager.cpower5a.LedScreenCpower5aManager
import com.mogo.support.device.manager.cpower5a.common.LedScreen
import com.mogo.support.device.manager.cpower5a.common.Program
@@ -101,7 +102,8 @@ open class BackLedUIViewModel(writeChainLogListener: IWriteChainLogListener) : B
LedScreenCpower5aManager.getInstance()
.playProgramLineStationReportHint(
LedScreen.OUTWARD_BACK,
"车辆进站"
// "车辆进站"
writeChainLogListener.onGetString(R.string.module_device_vehicle_arrive_station)
)
writeChainLogListener.onWriteChainLog(
TAG,
@@ -114,7 +116,8 @@ open class BackLedUIViewModel(writeChainLogListener: IWriteChainLogListener) : B
LedScreenCpower5aManager.getInstance()
.playProgramLineStationReportHint(
LedScreen.OUTWARD_BACK,
"车辆起步"
// "车辆起步"
writeChainLogListener.onGetString(R.string.module_device_vehicle_start)
)
writeChainLogListener.onWriteChainLog(
TAG,

View File

@@ -2,6 +2,7 @@ package com.mogo.support.device.led
import android.util.Log
import com.mogo.support.device.IWriteChainLogListener
import com.mogo.support.device.R
import com.mogo.support.device.manager.cpower5a.LedScreenCpower5aManager
import com.mogo.support.device.manager.cpower5a.common.LedScreen
import com.mogo.support.device.manager.cpower5a.common.Program
@@ -94,7 +95,8 @@ class FrontLedUIViewModel(writeChainLogListener: IWriteChainLogListener) : BaseL
LedScreenCpower5aManager.getInstance()
.playProgramLineStationReportHint(
LedScreen.OUTWARD_FRONT,
"车辆进站"
// "车辆进站"
writeChainLogListener.onGetString(R.string.module_device_vehicle_arrive_station)
)
writeChainLogListener.onWriteChainLog(
TAG,
@@ -107,7 +109,8 @@ class FrontLedUIViewModel(writeChainLogListener: IWriteChainLogListener) : BaseL
LedScreenCpower5aManager.getInstance()
.playProgramLineStationReportHint(
LedScreen.OUTWARD_FRONT,
"车辆起步"
// "车辆起步"
writeChainLogListener.onGetString(R.string.module_device_vehicle_start)
)
writeChainLogListener.onWriteChainLog(
TAG,

View File

@@ -4,7 +4,9 @@ package com.mogo.support.device.led
import android.content.Context
import android.os.CountDownTimer
import android.text.TextUtils
import androidx.annotation.StringRes
import com.mogo.support.device.IWriteChainLogListener
import com.mogo.support.device.R
import com.mogo.support.device.manager.cpower5a.LedScreenCpower5aManager
import com.mogo.support.device.manager.cpower5a.OnLedScreenCpower5aListener
import com.mogo.support.device.manager.cpower5a.common.Cpower5aState.Execute
@@ -297,20 +299,24 @@ object LedSourceManager : IWriteChainLogListener {
//结束
frontViewModel.reset()
backViewModel.reset()
receiveUI(FinishUI())
// receiveUI(FinishUI())
receiveUI(FinishUI(writeChainLogListener?.onGetString(R.string.module_device_thank_you_for_accompanying_all_the_way) ?: "感谢一路相伴"))
} else if (type == 3) {
//出站
if (arrivalStopName.isNotEmpty()) {
updateStationReportUI(arrivalStopName, "下一站")
// updateStationReportUI(arrivalStopName, "下一站")
updateStationReportUI(arrivalStopName, writeChainLogListener?.onGetString(R.string.module_device_next_station) ?: "下一站")
}
} else if (type == 4) {
//进站
if (arrivalStopName.isNotEmpty()) {
updateStationReportUI(
arrivalStopName, if (isLastStop) {
"终点站"
// "终点站"
writeChainLogListener?.onGetString(R.string.module_device_destination) ?: "终点站"
} else {
"已到达"
// "已到达"
writeChainLogListener?.onGetString(R.string.module_device_have_arrived) ?: "已到达"
}
)
}
@@ -344,6 +350,10 @@ object LedSourceManager : IWriteChainLogListener {
writeChainLogListener?.onWriteChainLog(tag, title, info)
}
override fun onGetString(@StringRes id: Int): String {
return writeChainLogListener?.onGetString(id) ?: ""
}
private val cpower5aListener: OnLedScreenCpower5aListener =
object : OnLedScreenCpower5aListener() {
@@ -459,23 +469,28 @@ object LedSourceManager : IWriteChainLogListener {
): String {
var temp = when (state) {
Execute.EXECUTE_SUCCEED -> {
"欢迎语更改成功"
// "欢迎语更改成功"
writeChainLogListener?.onGetString(R.string.module_device_welcome_msg_update_success) ?: "欢迎语更改成功"
}
Execute.CONNECT_FAILED -> {
"欢迎语更改失败,无法连接到设备"
// "欢迎语更改失败,无法连接到设备"
writeChainLogListener?.onGetString(R.string.module_device_welcome_msg_update_fail_connect_failed) ?: "欢迎语更改失败,无法连接到设备"
}
Execute.DATA_EXCEPTION -> {
"欢迎语更改失败,数据异常"
// "欢迎语更改失败,数据异常"
writeChainLogListener?.onGetString(R.string.module_device_welcome_msg_update_fail_data_exception) ?: "欢迎语更改失败,数据异常"
}
Execute.EXECUTE_EXCEPTION -> {
"欢迎语更改失败,解析或发送异常"
// "欢迎语更改失败,解析或发送异常"
writeChainLogListener?.onGetString(R.string.module_device_welcome_msg_update_fail_execute_exception) ?: "欢迎语更改失败,解析或发送异常"
}
else -> {
"欢迎语更改失败"
// "欢迎语更改失败"
writeChainLogListener?.onGetString(R.string.module_device_welcome_msg_update_fail) ?: "欢迎语更改失败"
}
}
if (!TextUtils.isEmpty(errMsg)) {
@@ -483,15 +498,18 @@ object LedSourceManager : IWriteChainLogListener {
}
val device = when (LedScreen.getLedScreen(ip)) {
LedScreen.OUTWARD_FRONT -> {
"前屏"
// "前屏"
writeChainLogListener?.onGetString(R.string.module_device_front_screen) ?: "前屏"
}
LedScreen.OUTWARD_BACK -> {
"后屏"
// "后屏"
writeChainLogListener?.onGetString(R.string.module_device_back_screen) ?: "后屏"
}
else -> {
"未知屏幕"
// "未知屏幕"
writeChainLogListener?.onGetString(R.string.module_device_unknown_screen) ?: "未知屏幕"
}
}
return device + temp

View File

@@ -49,7 +49,8 @@ class WelcomeUI(val hintMsg: String? = null, val isForever: Boolean = false) :
}
//结束提示
class FinishUI(val hintMsg: String = "感谢一路相伴") :
//class FinishUI(val hintMsg: String = "感谢一路相伴") :
class FinishUI(val hintMsg: String) :
LedUICountDown(priority = 5, countDownSeconds = 10)
//线路信息提示

View File

@@ -0,0 +1,18 @@
<resources>
<string name="module_device_thank_you_for_accompanying_all_the_way">Thank you for accompanying all the way</string>
<string name="module_device_next_station">Next Station</string>
<string name="module_device_destination">Destination</string>
<string name="module_device_have_arrived">Arrived</string>
<string name="module_device_front_screen">Front Screen</string>
<string name="module_device_back_screen">Back Screen</string>
<string name="module_device_unknown_screen">Unknown Screen</string>
<string name="module_device_welcome_msg_update_success">Welcome message updated successfully</string>
<string name="module_device_welcome_msg_update_fail_connect_failed">Welcome message update failed, connection to device failed</string>
<string name="module_device_welcome_msg_update_fail_data_exception">Welcome message update failed, data exception</string>
<string name="module_device_welcome_msg_update_fail_execute_exception">Welcome message update failed, parsing or sending exception</string>
<string name="module_device_welcome_msg_update_fail">Welcome message update failed</string>
<string name="module_device_vehicle_arrive_station">Vehicle Arriving at Station</string>
<string name="module_device_vehicle_start">Vehicle Starting</string>
</resources>

View File

@@ -0,0 +1,18 @@
<resources>
<string name="module_device_thank_you_for_accompanying_all_the_way">感谢一路相伴</string>
<string name="module_device_next_station">下一站</string>
<string name="module_device_destination">终点站</string>
<string name="module_device_have_arrived">已到达</string>
<string name="module_device_front_screen">前屏</string>
<string name="module_device_back_screen">后屏</string>
<string name="module_device_unknown_screen">未知屏幕</string>
<string name="module_device_welcome_msg_update_success">欢迎语更改成功</string>
<string name="module_device_welcome_msg_update_fail_connect_failed">欢迎语更改失败,无法连接到设备</string>
<string name="module_device_welcome_msg_update_fail_data_exception">欢迎语更改失败,数据异常</string>
<string name="module_device_welcome_msg_update_fail_execute_exception">欢迎语更改失败,解析或发送异常</string>
<string name="module_device_welcome_msg_update_fail">欢迎语更改失败</string>
<string name="module_device_vehicle_arrive_station">车辆进站</string>
<string name="module_device_vehicle_start">车辆起步</string>
</resources>

View File

@@ -1,6 +1,8 @@
package com.mogo.map.utils;
import com.mogo.eagle.core.data.map.MogoLatLng;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.mogo.map.R;
import com.mogo.map.exception.MogoMapException;
import com.zhidaoauto.map.data.point.LonLatPoint;
import com.zhidaoauto.map.sdk.open.logics.camera.LatLngBounds;
@@ -18,7 +20,8 @@ public class MogoMapUtils {
public static LatLngBounds getLatLngBounds(MogoLatLng carPosition, List< MogoLatLng > lonLats, boolean lockCarPosition ) throws Exception {
if ( lonLats == null || lonLats.isEmpty() ) {
throw new MogoMapException( "经纬度不能为null或空集合" );
// throw new MogoMapException( "经纬度不能为null或空集合" );
throw new MogoMapException(StringUtils.getString(R.string.module_map_lon_lat_not_null));
}
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for ( MogoLatLng lonLat : lonLats ) {
@@ -33,7 +36,8 @@ public class MogoMapUtils {
}
if ( carPosition == null ) {
throw new MogoMapException( "自车位置经纬度信息不能为空" );
// throw new MogoMapException( "自车位置经纬度信息不能为空" );
throw new MogoMapException(StringUtils.getString(R.string.module_map_car_position_not_null));
}
if ( latLngBounds.getNortheast() == null && latLngBounds.getSouthwest() == null ) {

View File

@@ -0,0 +1,5 @@
<resources>
<string name="app_name">mogo-map</string>
<string name="module_map_lon_lat_not_null">Longitude and latitude cannot be null or an empty collection</string>
<string name="module_map_car_position_not_null">Own vehicle position longitude and latitude information cannot be empty</string>
</resources>

View File

@@ -1,3 +1,5 @@
<resources>
<string name="app_name">mogo-map</string>
<string name="module_map_lon_lat_not_null">经纬度不能为null或空集合</string>
<string name="module_map_car_position_not_null">自车位置经纬度信息不能为空</string>
</resources>

View File

@@ -1,6 +1,7 @@
package com.mogo.mgintelligent.speech
import android.util.Log
import com.mogo.eagle.core.utilcode.util.StringUtils
import org.json.JSONObject
data class AsrResult(val type: AsrState, val content: String)
@@ -35,7 +36,8 @@ fun parseAsrResult(asrResult: String): AsrResult {
val bestResult = json.optString("best_result")
if (error != 0) {
return AsrResult(AsrState.STATE_ERROR, "识别失败")
// return AsrResult(AsrState.STATE_ERROR, "识别失败")
return AsrResult(AsrState.STATE_ERROR, StringUtils.getString(R.string.module_speech_identification_failure))
}
val state = when (resultType) {
@@ -44,7 +46,8 @@ fun parseAsrResult(asrResult: String): AsrResult {
else -> AsrState.STATE_ERROR
}
val content = if (state == AsrState.STATE_ERROR) {
"识别错误"
// "识别错误"
StringUtils.getString(R.string.module_speech_state_error)
} else bestResult
return AsrResult(state, content)
}

View File

@@ -11,8 +11,10 @@ import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.FileUtils
import com.mogo.eagle.core.utilcode.util.ResourceUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.Utils
import com.mogo.mgintelligent.speech.R
import java.io.File
object WakeManager {
@@ -101,6 +103,7 @@ object WakeManager {
AbsMogoApplication.getApp()?.let {
return it.filesDir.path + File.separator + "iflytek" + File.separator
}
throw IllegalArgumentException("找不到 Application")
// throw IllegalArgumentException("找不到 Application")
throw IllegalArgumentException(StringUtils.getString(R.string.module_speech_not_find_application))
}
}

View File

@@ -0,0 +1,5 @@
<resources>
<string name="module_speech_identification_failure">Identification failed</string>
<string name="module_speech_state_error">Recognition error</string>
<string name="module_speech_not_find_application">Application not found</string>
</resources>

View File

@@ -0,0 +1,5 @@
<resources>
<string name="module_speech_identification_failure">识别失败</string>
<string name="module_speech_state_error">识别错误</string>
<string name="module_speech_not_find_application">找不到 Application</string>
</resources>