From 1ce857a56feff7ff93fc503b9f24c5b3099b83d5 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Thu, 6 Apr 2023 14:31:36 +0800 Subject: [PATCH] =?UTF-8?q?dev=5Fsweeper310][adas]=E4=BA=91=E6=8E=A7?= =?UTF-8?q?=E6=B8=85=E6=89=AB=E8=BD=A6=E6=8E=A5=E6=94=B6=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8F=AF=E7=A9=BA=E5=8F=82=E6=95=B0=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=9C=AA=E7=9F=A5=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/adapter/MoGoAdasListenerImpl.kt | 25 +++++++---- .../IMoGoSweeperFutianCloudTaskListener.kt | 21 ++++++---- ...erSweeperFutianCloudTaskListenerManager.kt | 27 ++++++++---- .../support/adas/high/OnAdasListener.java | 23 ++++++---- .../high/msg/SweeperCloudTaskMessage.java | 42 +++++++++++++++---- 5 files changed, 102 insertions(+), 36 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt index 3c53400565..d9fd0ce007 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -600,6 +600,7 @@ class MoGoAdasListenerImpl : OnAdasListener { ) { } + /** * 清扫车后部摄像头视频 10Hz * @@ -633,7 +634,7 @@ class MoGoAdasListenerImpl : OnAdasListener { * @param sysTime 当前时间戳 * @param taskInfo 数据 */ - override fun onSweeperFutianCloudTask(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskInfo: SweeperTask.TaskInfo) { + override fun onSweeperFutianCloudTask(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, taskInfo: SweeperTask.TaskInfo?) { CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTask(messageType, reqNo, sysTime, taskInfo) } @@ -646,7 +647,7 @@ class MoGoAdasListenerImpl : OnAdasListener { * @param sysTime 当前时间戳 * @param taskConfirm 数据 */ - override fun onSweeperFutianCloudTaskConfirm(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskConfirm: SweeperTaskConfirm.TaskConfirm) { + override fun onSweeperFutianCloudTaskConfirm(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, taskConfirm: SweeperTaskConfirm.TaskConfirm?) { CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTaskConfirm(messageType, reqNo, sysTime, taskConfirm) } @@ -659,7 +660,7 @@ class MoGoAdasListenerImpl : OnAdasListener { * @param sysTime 当前时间戳 * @param taskStatusPush 数据 */ - override fun onSweeperFutianCloudTaskStatus(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskStatusPush: SweeperTaskStatus.TaskStatusPush) { + override fun onSweeperFutianCloudTaskStatus(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, taskStatusPush: SweeperTaskStatus.TaskStatusPush?) { CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTaskStatus(messageType, reqNo, sysTime, taskStatusPush) } @@ -672,7 +673,7 @@ class MoGoAdasListenerImpl : OnAdasListener { * @param sysTime 当前时间戳 * @param stopTaskReq 数据 */ - override fun onSweeperFutianCloudTaskStop(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, stopTaskReq: SweeperTaskStop.StopTaskReq) { + override fun onSweeperFutianCloudTaskStop(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, stopTaskReq: SweeperTaskStop.StopTaskReq?) { CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTaskStop(messageType, reqNo, sysTime, stopTaskReq) } @@ -686,7 +687,7 @@ class MoGoAdasListenerImpl : OnAdasListener { * @param sysTime 当前时间戳 * @param suspendResumeTaskResp 数据 */ - override fun onSweeperFutianCloudTaskSuspendResume(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, suspendResumeTaskResp: SweeperTaskSuspendResume.SuspendResumeTaskResp) { + override fun onSweeperFutianCloudTaskSuspendResume(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, suspendResumeTaskResp: SweeperTaskSuspendResume.SuspendResumeTaskResp?) { CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTaskSuspendResume(messageType, reqNo, sysTime, suspendResumeTaskResp) } @@ -699,7 +700,7 @@ class MoGoAdasListenerImpl : OnAdasListener { * @param sysTime 当前时间戳 * @param isBootableResp 数据 */ - override fun onSweeperFutianCloudBootable(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, isBootableResp: SweeperBootable.IsBootableResp) { + override fun onSweeperFutianCloudBootable(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, isBootableResp: SweeperBootable.IsBootableResp?) { CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudBootable(messageType, reqNo, sysTime, isBootableResp) } @@ -712,10 +713,20 @@ class MoGoAdasListenerImpl : OnAdasListener { * @param sysTime 当前时间戳 * @param bigTaskStatusPush 数据 */ - override fun onSweeperFutianCloudBigTaskStatus(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, bigTaskStatusPush: SweeperBigTaskStatus.BigTaskStatusPush) { + override fun onSweeperFutianCloudBigTaskStatus(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskStatusPush: SweeperBigTaskStatus.BigTaskStatusPush?) { CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudBigTaskStatus(messageType, reqNo, sysTime, bigTaskStatusPush) } + /** + * 清扫车云端任务未知类型 + * + * @param header 头 + * @param bytes 原始数据 + */ + override fun onSweeperFutianCloudTaskUnknown(header: MessagePad.Header, bytes: ByteArray) { + CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTaskUnknown(bytes) + } + /** * Bag管理应答 * diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoSweeperFutianCloudTaskListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoSweeperFutianCloudTaskListener.kt index c5aad62c89..f40c2ed6bc 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoSweeperFutianCloudTaskListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoSweeperFutianCloudTaskListener.kt @@ -8,6 +8,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus.BigTaskStat import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm.TaskConfirm import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus.TaskStatusPush import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskReq +import mogo.telematics.pad.MessagePad /** * 清扫车(福田)云端任务接口 @@ -23,7 +24,7 @@ interface IMoGoSweeperFutianCloudTaskListener { * @param sysTime 当前时间戳 * @param taskInfo 数据 */ - fun onSweeperFutianCloudTask(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskInfo: SweeperTask.TaskInfo) + fun onSweeperFutianCloudTask(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, taskInfo: SweeperTask.TaskInfo?) /** * 2、云端下发子任务,请求pad确认(type:100002)-> sweeper_task_confirm.proto @@ -33,7 +34,7 @@ interface IMoGoSweeperFutianCloudTaskListener { * @param sysTime 当前时间戳 * @param taskConfirm 数据 */ - fun onSweeperFutianCloudTaskConfirm(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskConfirm: TaskConfirm) + fun onSweeperFutianCloudTaskConfirm(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, taskConfirm: TaskConfirm?) /** * 3、云端下发任务状态到pad(type:100003)-> sweeper_task_status.proto @@ -43,7 +44,7 @@ interface IMoGoSweeperFutianCloudTaskListener { * @param sysTime 当前时间戳 * @param taskStatusPush 数据 */ - fun onSweeperFutianCloudTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskStatusPush: TaskStatusPush) + fun onSweeperFutianCloudTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, taskStatusPush: TaskStatusPush?) /** * 4、云端请求pad结束任务(type:100004)-> sweeper_task_stop.proto @@ -53,7 +54,7 @@ interface IMoGoSweeperFutianCloudTaskListener { * @param sysTime 当前时间戳 * @param stopTaskReq 数据 */ - fun onSweeperFutianCloudTaskStop(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, stopTaskReq: StopTaskReq) + fun onSweeperFutianCloudTaskStop(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, stopTaskReq: StopTaskReq?) /** * 5、pad请求挂起任务(type:100005)-> sweeper_task_suspend_resume.proto @@ -64,7 +65,7 @@ interface IMoGoSweeperFutianCloudTaskListener { * @param sysTime 当前时间戳 * @param suspendResumeTaskResp 数据 */ - fun onSweeperFutianCloudTaskSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, suspendResumeTaskResp: SuspendResumeTaskResp) + fun onSweeperFutianCloudTaskSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, suspendResumeTaskResp: SuspendResumeTaskResp?) /** * 8、接管后回自驾-pad上报状态给云端 云端下发启动自驾(type: 100008)-> sweeper_autopilot.proto @@ -74,7 +75,7 @@ interface IMoGoSweeperFutianCloudTaskListener { * @param sysTime 当前时间戳 * @param isBootableResp 数据 */ - fun onSweeperFutianCloudBootable(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, isBootableResp: IsBootableResp) + fun onSweeperFutianCloudBootable(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, isBootableResp: IsBootableResp?) /** * 9、云端下发pad大任务状态(type: 100009)-> sweeper_big_task_status.proto @@ -84,6 +85,12 @@ interface IMoGoSweeperFutianCloudTaskListener { * @param sysTime 当前时间戳 * @param bigTaskStatusPush 数据 */ - fun onSweeperFutianCloudBigTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, bigTaskStatusPush: BigTaskStatusPush) + fun onSweeperFutianCloudBigTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskStatusPush: BigTaskStatusPush?) + /** + * 清扫车云端任务未知类型 + * + * @param bytes 原始数据 + */ + fun onSweeperFutianCloudTaskUnknown(bytes: ByteArray) } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerSweeperFutianCloudTaskListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerSweeperFutianCloudTaskListenerManager.kt index ae53ce6b5e..bee2a3d1f1 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerSweeperFutianCloudTaskListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerSweeperFutianCloudTaskListenerManager.kt @@ -25,7 +25,7 @@ object CallerSweeperFutianCloudTaskListenerManager : CallerBase sweeper_task_confirm.proto @@ -284,7 +285,7 @@ public interface OnAdasListener { * @param sysTime 当前时间戳 * @param taskConfirm 数据 */ - void onSweeperFutianCloudTaskConfirm(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @NonNull String reqNo, long sysTime, @NonNull SweeperTaskConfirm.TaskConfirm taskConfirm); + void onSweeperFutianCloudTaskConfirm(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskConfirm.TaskConfirm taskConfirm); /** * 3、云端下发任务状态到pad(type:100003)-> sweeper_task_status.proto @@ -295,7 +296,7 @@ public interface OnAdasListener { * @param sysTime 当前时间戳 * @param taskStatusPush 数据 */ - void onSweeperFutianCloudTaskStatus(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @NonNull String reqNo, long sysTime, @NonNull SweeperTaskStatus.TaskStatusPush taskStatusPush); + void onSweeperFutianCloudTaskStatus(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskStatus.TaskStatusPush taskStatusPush); /** * 4、云端请求pad结束任务(type:100004)-> sweeper_task_stop.proto @@ -306,7 +307,7 @@ public interface OnAdasListener { * @param sysTime 当前时间戳 * @param stopTaskReq 数据 */ - void onSweeperFutianCloudTaskStop(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @NonNull String reqNo, long sysTime, @NonNull SweeperTaskStop.StopTaskReq stopTaskReq); + void onSweeperFutianCloudTaskStop(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskStop.StopTaskReq stopTaskReq); /** * 5、pad请求挂起任务(type:100005)-> sweeper_task_suspend_resume.proto @@ -318,7 +319,7 @@ public interface OnAdasListener { * @param sysTime 当前时间戳 * @param suspendResumeTaskResp 数据 */ - void onSweeperFutianCloudTaskSuspendResume(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @NonNull String reqNo, long sysTime, @NonNull SweeperTaskSuspendResume.SuspendResumeTaskResp suspendResumeTaskResp); + void onSweeperFutianCloudTaskSuspendResume(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskSuspendResume.SuspendResumeTaskResp suspendResumeTaskResp); /** * 8、接管后回自驾-pad上报状态给云端 云端下发启动自驾(type: 100008)-> sweeper_autopilot.proto @@ -329,7 +330,7 @@ public interface OnAdasListener { * @param sysTime 当前时间戳 * @param isBootableResp 数据 */ - void onSweeperFutianCloudBootable(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @NonNull String reqNo, long sysTime, @NonNull SweeperBootable.IsBootableResp isBootableResp); + void onSweeperFutianCloudBootable(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperBootable.IsBootableResp isBootableResp); /** * 9、云端下发pad大任务状态(type: 100009)-> sweeper_big_task_status.proto @@ -340,7 +341,15 @@ public interface OnAdasListener { * @param sysTime 当前时间戳 * @param bigTaskStatusPush 数据 */ - void onSweeperFutianCloudBigTaskStatus(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @NonNull String reqNo, long sysTime, @NonNull SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush); + void onSweeperFutianCloudBigTaskStatus(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush); + + /** + * 清扫车云端任务未知类型 + * + * @param header 头 + * @param bytes 原始数据 + */ + void onSweeperFutianCloudTaskUnknown(@NonNull MessagePad.Header header, @NonNull byte[] bytes); /** * Bag管理应答 diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/SweeperCloudTaskMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/SweeperCloudTaskMessage.java index e730d67df1..f86fd22a18 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/SweeperCloudTaskMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/SweeperCloudTaskMessage.java @@ -29,7 +29,8 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler { @Override public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException { - SweeperCloudTask.SweeperMessage message = SweeperCloudTask.SweeperMessage.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue()); + byte[] bytes = raw.originalData.toByteArray(); + SweeperCloudTask.SweeperMessage message = SweeperCloudTask.SweeperMessage.parser().parseFrom(bytes, raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue()); AdasChannel.calculateTimeConsumingOnDispatchRaw("清扫车云端任务调度", raw.receiveTime); long nowTime = 0; if (CupidLogUtils.isEnableLog()) @@ -40,36 +41,61 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler { String reqNo = message.getReqNo(); //请求编号,响应请求时,使用请求方的请求编号 long sysTime = message.getSysTime(); //当前时间戳 ByteString payload = message.getPayload(); + boolean isExistPayload = payload != null && !payload.isEmpty(); if (msgType == SweeperCloudTask.MessageType.CloudPushTask || msgType == SweeperCloudTask.MessageType.PadSendGetTaskReq) { //1、云端下发大任务信息(type: 100001)-> sweeper_task.proto //7、pad主动拉取当前车辆正在执行任务的完整信息(type:100007)-> sweeper_task.proto - SweeperTask.TaskInfo taskInfo = SweeperTask.TaskInfo.parseFrom(payload); + SweeperTask.TaskInfo taskInfo = null; + if (isExistPayload) { + taskInfo = SweeperTask.TaskInfo.parseFrom(payload); + } adasListener.onSweeperFutianCloudTask(header, msgType, reqNo, sysTime, taskInfo); } else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskConfirm) { //2、云端下发子任务,请求pad确认(type:100002)-> sweeper_task_confirm.proto - SweeperTaskConfirm.TaskConfirm taskConfirm = SweeperTaskConfirm.TaskConfirm.parseFrom(payload); + SweeperTaskConfirm.TaskConfirm taskConfirm = null; + if (isExistPayload) { + taskConfirm = SweeperTaskConfirm.TaskConfirm.parseFrom(payload); + } adasListener.onSweeperFutianCloudTaskConfirm(header, msgType, reqNo, sysTime, taskConfirm); } else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskStatus) { //3、云端下发任务状态到pad(type:100003)-> sweeper_task_status.proto - SweeperTaskStatus.TaskStatusPush taskStatusPush = SweeperTaskStatus.TaskStatusPush.parseFrom(payload); + SweeperTaskStatus.TaskStatusPush taskStatusPush = null; + if (isExistPayload) { + taskStatusPush = SweeperTaskStatus.TaskStatusPush.parseFrom(payload); + } adasListener.onSweeperFutianCloudTaskStatus(header, msgType, reqNo, sysTime, taskStatusPush); } else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskStop) { //4、云端请求pad结束任务(type:100004)-> sweeper_task_stop.proto - SweeperTaskStop.StopTaskReq stopTaskReq = SweeperTaskStop.StopTaskReq.parseFrom(payload); + SweeperTaskStop.StopTaskReq stopTaskReq = null; + if (isExistPayload) { + stopTaskReq = SweeperTaskStop.StopTaskReq.parseFrom(payload); + } adasListener.onSweeperFutianCloudTaskStop(header, msgType, reqNo, sysTime, stopTaskReq); } else if (msgType == SweeperCloudTask.MessageType.PadSendTaskSuspend || msgType == SweeperCloudTask.MessageType.PadSendTaskResume) { //5、pad请求挂起任务(type:100005)-> sweeper_task_suspend_resume.proto //6、pad请求恢复挂起的任务(type:100006)-> sweeper_task_suspend_resume.proto - SweeperTaskSuspendResume.SuspendResumeTaskResp suspendResumeTaskResp = SweeperTaskSuspendResume.SuspendResumeTaskResp.parseFrom(payload); + SweeperTaskSuspendResume.SuspendResumeTaskResp suspendResumeTaskResp = null; + if (isExistPayload) { + suspendResumeTaskResp = SweeperTaskSuspendResume.SuspendResumeTaskResp.parseFrom(payload); + } adasListener.onSweeperFutianCloudTaskSuspendResume(header, msgType, reqNo, sysTime, suspendResumeTaskResp); } else if (msgType == SweeperCloudTask.MessageType.PadSendBootable) { //8、接管后回自驾-pad上报状态给云端 云端下发启动自驾(type: 100008)-> sweeper_autopilot.proto - SweeperBootable.IsBootableResp isBootableResp = SweeperBootable.IsBootableResp.parseFrom(payload); + SweeperBootable.IsBootableResp isBootableResp = null; + if (isExistPayload) { + isBootableResp = SweeperBootable.IsBootableResp.parseFrom(payload); + } adasListener.onSweeperFutianCloudBootable(header, msgType, reqNo, sysTime, isBootableResp); } else if (msgType == SweeperCloudTask.MessageType.CloudPushBigTaskStatus) { //9、云端下发pad大任务状态(type: 100009)-> sweeper_big_task_status.proto - SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush = SweeperBigTaskStatus.BigTaskStatusPush.parseFrom(payload); + SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush = null; + if (isExistPayload) { + bigTaskStatusPush = SweeperBigTaskStatus.BigTaskStatusPush.parseFrom(payload); + } adasListener.onSweeperFutianCloudBigTaskStatus(header, msgType, reqNo, sysTime, bigTaskStatusPush); + } else { + //未知数据类型 + adasListener.onSweeperFutianCloudTaskUnknown(header, bytes); } // adasListener.onBagManagerCmd(raw.getHeader(), bagManager); }