[sweeper320][adas]云控清扫车添加云端下发任务暂停/恢复指令到pad(type: 100010)收发接口

This commit is contained in:
xinfengkun
2023-07-19 18:08:44 +08:00
parent 077b339956
commit 874c96a4ad
16 changed files with 248 additions and 43 deletions

View File

@@ -42,9 +42,10 @@ import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils;
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus;
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm;
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus;
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop;
@@ -408,6 +409,11 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
}
}
@Override
public void onSweeperFutianCloudTaskCloudSuspendResume(@NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskCloudSuspendResume.BigTaskActionPush bigTaskActionPush) {
}
@Override
public void onSweeperFutianCleanSystemState(@NonNull ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) {
if (cleanSystemState == null) {

View File

@@ -61,7 +61,8 @@ import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo.adas.data.bean.MogoReport
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
import com.zhjt.service.chain.ChainLog
@@ -1002,6 +1003,18 @@ class MoGoAutopilotControlProvider :
return AdasManager.getInstance().sendSweeperAutopilotBootable(reqNo, isBootable)
}
/**
* pad收到云端下发暂停恢复响应
* 10、云端下发任务暂停/恢复指令到padtype: 100010sweeper_task_cloud_suspend_resume.proto/BigTaskActionResp
*
* @param reqNo 请求编号
* @param bigTaskActionResp 参数
* @return boolean
*/
override fun sendSweeperCloudSuspendResumeTaskResp(reqNo: String, bigTaskActionResp: SweeperTaskCloudSuspendResume.BigTaskActionResp): Boolean {
return AdasManager.getInstance().sendSweeperCloudSuspendResumeTaskResp(reqNo, bigTaskActionResp)
}
override fun setIsDrawPointCloud(isDrawPointCloud: Boolean) {
if (isDrawPointCloud) {
AdasManager.getInstance().subscribeInterface(

View File

@@ -58,8 +58,9 @@ import com.zhjt.mogo.adas.data.bean.AutopilotStatistics
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume
import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm
import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
@@ -646,6 +647,19 @@ class MoGoAdasListenerImpl : OnAdasListener {
CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudBigTaskStatus(messageType, reqNo, sysTime, bigTaskStatusPush)
}
/**
* 10、云端下发任务暂停/恢复指令到padtype: 100010-> sweeper_task_cloud_suspend_resume.proto
*
* @param header 头
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param bigTaskActionPush 数据
*/
override fun onSweeperFutianCloudTaskCloudSuspendResume(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: SweeperTaskCloudSuspendResume.BigTaskActionPush?) {
CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTaskCloudSuspendResume(messageType, reqNo, sysTime, bigTaskActionPush)
}
/**
* 清扫车云端任务未知类型
*

View File

@@ -8,10 +8,11 @@ import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable.IsBootable
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.GetTaskReq
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.StartTaskResp
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume.SuspendResumeTaskReq
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume.SuspendResumeTaskReq
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm.TaskConfirmResp
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskResp
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume.BigTaskActionResp
/**
* @author xiaoyuzhou
@@ -399,6 +400,16 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
*/
fun sendSweeperAutopilotBootable(reqNo: String, isBootable: IsBootable): Boolean
/**
* pad收到云端下发暂停恢复响应
* 10、云端下发任务暂停/恢复指令到padtype: 100010sweeper_task_cloud_suspend_resume.proto/BigTaskActionResp
*
* @param reqNo 请求编号
* @param bigTaskActionResp 参数
* @return boolean
*/
fun sendSweeperCloudSuspendResumeTaskResp(reqNo: String, bigTaskActionResp: BigTaskActionResp): Boolean
/**
* 打开点云绘制
*

View File

@@ -3,12 +3,12 @@ package com.mogo.eagle.core.function.api.autopilot
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable.IsBootableResp
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume.SuspendResumeTaskResp
import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus.BigTaskStatusPush
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume.BigTaskActionPush
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm.TaskConfirm
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume.SuspendResumeTaskResp
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
/**
* 清扫车(福田)云端任务接口
@@ -87,6 +87,16 @@ interface IMoGoSweeperFutianCloudTaskListener {
*/
fun onSweeperFutianCloudBigTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskStatusPush: BigTaskStatusPush?)
/**
* 10、云端下发任务暂停/恢复指令到padtype: 100010-> sweeper_task_cloud_suspend_resume.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param bigTaskActionPush 数据
*/
fun onSweeperFutianCloudTaskCloudSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: BigTaskActionPush?)
/**
* 清扫车云端任务未知类型
*

View File

@@ -17,10 +17,11 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable.IsBootable
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.GetTaskReq
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.StartTaskResp
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume.SuspendResumeTaskReq
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume.SuspendResumeTaskReq
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm.TaskConfirmResp
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskResp
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume.BigTaskActionResp
import com.zhjt.service.chain.ChainLog
import com.zhjt.service_biz.BizConfig
import kotlin.random.Random
@@ -550,6 +551,17 @@ object CallerAutoPilotControlManager {
return providerApi?.sendSweeperAutopilotBootable(reqNo, isBootable) ?: false
}
/**
* pad收到云端下发暂停恢复响应
* 10、云端下发任务暂停/恢复指令到padtype: 100010sweeper_task_cloud_suspend_resume.proto/BigTaskActionResp
*
* @param reqNo 请求编号
* @param bigTaskActionResp 参数
* @return boolean
*/
fun sendSweeperCloudSuspendResumeTaskResp( reqNo: String, bigTaskActionResp: BigTaskActionResp): Boolean {
return providerApi?.sendSweeperCloudSuspendResumeTaskResp(reqNo, bigTaskActionResp) ?: false
}
/**
* 打开点云绘制

View File

@@ -5,8 +5,9 @@ import com.mogo.eagle.core.function.call.base.CallerBase
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume
import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm
import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
@@ -123,6 +124,21 @@ object CallerSweeperFutianCloudTaskListenerManager : CallerBase<IMoGoSweeperFuti
}
}
/**
* 10、云端下发任务暂停/恢复指令到padtype: 100010-> sweeper_task_cloud_suspend_resume.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param bigTaskActionPush 数据
*/
fun invokeSweeperFutianCloudTaskCloudSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: SweeperTaskCloudSuspendResume.BigTaskActionPush?) {
M_LISTENERS.forEach {
val listener = it.value
listener.onSweeperFutianCloudTaskCloudSuspendResume(messageType, reqNo, sysTime, bigTaskActionPush)
}
}
/**
* 清扫车云端任务未知类型
*

View File

@@ -12,6 +12,7 @@
|7、pad主动拉取当前车辆正在执行任务的完整信息type100007|sweeper/sweeper_task.proto|
|8、接管后回自驾-pad上报状态给云端 云端下发启动自驾type: 100008|sweeper/sweeper_bootable.proto|
|9、云端下发pad大任务状态type: 100009|sweeper/sweeper_big_task_status.proto|
|10、云端下发任务暂停/恢复指令到padtype: 100010|sweeper/sweeper_task_cloud_suspend_resume.proto|
# 接口使用说明
## 回调接口类IMoGoSweeperFutianCloudTaskListener
@@ -181,4 +182,28 @@ fun onSweeperFutianCloudBigTaskStatus(messageType: SweeperCloudTask.MessageType,
客户端回复:
~~~
~~~
服务端发:
/**
* 10、云端下发任务暂停/恢复指令到padtype: 100010
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param bigTaskActionPush 数据
*/
fun onSweeperFutianCloudTaskCloudSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: BigTaskActionPush?)
客户端回复:
/**
* pad收到云端下发暂停恢复响应
* 10、云端下发任务暂停/恢复指令到padtype: 100010
*
* @param reqNo 请求编号
* @param bigTaskActionResp 参数
* @return boolean
*/
CallerAutoPilotControlManager.INSTANCE.sendSweeperSuspendResumeTaskReq(
~~~

View File

@@ -16,6 +16,7 @@ enum MessageType
PadSendGetTaskReq = 100007; //7、pad主动拉取当前车辆正在执行任务的完整信息type100007-> sweeper_task.proto
PadSendBootable = 100008; //8、接管后回自驾-pad上报状态给云端 云端下发启动自驾type: 100008-> sweeper_bootable.proto
CloudPushBigTaskStatus = 100009; //9、云端下发pad大任务状态type: 100009-> sweeper_big_task_status.proto
CloudPushTaskSuspendResume = 100010; //10、云端下发任务暂停/恢复指令到padtype: 100010-> sweeper_task_cloud_suspend_resume.proto
}
//云下行消息

View File

@@ -0,0 +1,40 @@
syntax = "proto3";
package com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r;
/**** 10、云端下发任务暂停/恢复指令到padtype: 100010 ****/
//10.1、请求信息
// 指令类型
enum ActionType {
DEFAULT_TYPE = 0; // 无效值
SUSPENDED = 1; // 暂停
RESUME = 2; //恢复
}
message BigTaskActionPush {
string sn = 1;// sn
string taskId = 2;// 大任务编号
ActionType action = 3;// 指令类型
uint64 systemTime = 4; // 时间戳
bool isPop = 5; // 是否弹窗
}
//10.2、响应信息
// 响应状态
enum Code {
DEFAULT_CODE = 0; // 无效值
RECEIVED = 1; // 收到指令
}
/**
开始大任务响应
*/
message BigTaskActionResp {
string sn = 1;// sn
string taskId = 2;// 大任务编号
Code code = 3; //响应状态
}

View File

@@ -1,5 +1,5 @@
syntax = "proto3";
package com.zhjt.mogo.adas.data.sweeper.task;
package com.zhjt.mogo.adas.data.sweeper.task.s_r;
import "sweeper/sweeper_common.proto";

View File

@@ -5,7 +5,6 @@ import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_INIT;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_GLOBAL_PATH;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_SYSTEM_CMD;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_START_AUTOPILOT;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_CONNECT_ADDRESS;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_STATUS_CHANGE_REASON;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_SOURCE_ADAS;
@@ -16,13 +15,11 @@ import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.protobuf.InvalidProtocolBufferException;
import com.zhjt.mogo.adas.data.bean.AdasParam;
import com.zhidao.support.adas.high.bean.VersionCompatibility;
import com.zhidao.support.adas.high.common.AutopilotReview;
import com.zhidao.support.adas.high.common.ByteUtil;
@@ -47,12 +44,14 @@ import com.zhidao.support.adas.high.subscribe.SubscribeInterface;
import com.zhidao.support.adas.high.subscribe.SubscribeInterfaceOptions;
import com.zhidao.support.adas.high.thread.DispatchHandler;
import com.zhjt.mogo.adas.data.AdasConstants;
import com.zhjt.mogo.adas.data.bean.AdasParam;
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics;
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm;
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop;
import com.zhjt.service.chain.ChainLog;
@@ -68,8 +67,8 @@ import java.util.concurrent.atomic.AtomicInteger;
import bag_manager.BagManagerOuterClass;
import chassis.SpecialVehicleTaskCmdOuterClass;
import common.HeaderOuterClass;
import mogo.telematics.ParamSetCmdOuterClass;
import function_state_management.FSMStatusReasonQueryOuterClass;
import mogo.telematics.ParamSetCmdOuterClass;
import mogo.telematics.pad.MessagePad;
import okio.ByteString;
@@ -1748,6 +1747,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
ParamSetCmdOuterClass.ParamSetCmd req = builder.build();
return sendPBMessage(MessageType.TYPE_SEND_SET_PARAM_REQ_V2.typeCode, req.toByteArray());
}
/**
* FSM状态原因查询
* 当FSMFunctionStates的类型是XXX_DRIVING_OFF时查询OFF的原因
@@ -1866,5 +1866,18 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
public boolean sendSweeperAutopilotBootable(@NonNull String reqNo, @NonNull SweeperBootable.IsBootable isBootable) {
return sendSweeperCloudTaskCmd(SweeperCloudTask.MessageType.PadSendBootable, reqNo, isBootable.toByteString());
}
/**
* pad收到云端下发暂停恢复响应
* 10、云端下发任务暂停/恢复指令到padtype: 100010sweeper_task_cloud_suspend_resume.proto/BigTaskActionResp
*
* @param reqNo 请求编号
* @param bigTaskActionResp 参数
* @return boolean
*/
@Override
public boolean sendSweeperCloudSuspendResumeTaskResp(@NonNull String reqNo, @NonNull SweeperTaskCloudSuspendResume.BigTaskActionResp bigTaskActionResp) {
return sendSweeperCloudTaskCmd(SweeperCloudTask.MessageType.CloudPushTaskSuspendResume, reqNo, bigTaskActionResp.toByteString());
}
}

View File

@@ -5,7 +5,6 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import com.zhjt.mogo.adas.data.bean.AdasParam;
import com.zhidao.support.adas.high.bean.VersionCompatibility;
import com.zhidao.support.adas.high.common.AppPreferenceHelper;
import com.zhidao.support.adas.high.common.Constants;
@@ -13,12 +12,14 @@ import com.zhidao.support.adas.high.common.CupidLogUtils;
import com.zhidao.support.adas.high.common.Define;
import com.zhidao.support.adas.high.common.MessageType;
import com.zhidao.support.adas.high.common.ReceiveTimeoutManager;
import com.zhjt.mogo.adas.data.AdasConstants;
import com.zhjt.mogo.adas.data.bean.AdasParam;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm;
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop;
import com.zhjt.mogo.adas.data.AdasConstants;
import java.util.HashSet;
import java.util.List;
@@ -929,7 +930,7 @@ public class AdasManager implements IAdasNetCommApi {
* 参数获取请求
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq, AdasParam)}
*
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @return boolean
*/
@Override
@@ -1081,6 +1082,19 @@ public class AdasManager implements IAdasNetCommApi {
return mChannel != null && mChannel.sendSweeperAutopilotBootable(reqNo, isBootable);
}
/**
* pad收到云端下发暂停恢复响应
* 10、云端下发任务暂停/恢复指令到padtype: 100010sweeper_task_cloud_suspend_resume.proto/BigTaskActionResp
*
* @param reqNo 请求编号
* @param bigTaskActionResp 参数
* @return boolean
*/
@Override
public boolean sendSweeperCloudSuspendResumeTaskResp(@NonNull String reqNo, @NonNull SweeperTaskCloudSuspendResume.BigTaskActionResp bigTaskActionResp) {
return mChannel != null && mChannel.sendSweeperCloudSuspendResumeTaskResp(reqNo, bigTaskActionResp);
}
/**
* 获取工控机固定IP列表
*

View File

@@ -6,12 +6,13 @@ import com.zhidao.support.adas.high.bean.VersionCompatibility;
import com.zhidao.support.adas.high.common.Constants;
import com.zhidao.support.adas.high.common.Define;
import com.zhidao.support.adas.high.common.MessageType;
import com.zhjt.mogo.adas.data.AdasConstants;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm;
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop;
import com.zhjt.mogo.adas.data.AdasConstants;
import java.util.List;
import java.util.Set;
@@ -572,7 +573,7 @@ public interface IAdasNetCommApi {
/**
* 参数获取请求
*
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @return boolean
*/
boolean sendGetParamReq(AdasConstants.MapSystemParamType paramType);
@@ -690,6 +691,16 @@ public interface IAdasNetCommApi {
*/
boolean sendSweeperAutopilotBootable(@NonNull String reqNo, @NonNull SweeperBootable.IsBootable isBootable);
/**
* pad收到云端下发暂停恢复响应
* 10、云端下发任务暂停/恢复指令到padtype: 100010sweeper_task_cloud_suspend_resume.proto/BigTaskActionResp
*
* @param reqNo 请求编号
* @param bigTaskActionResp 参数
* @return boolean
*/
boolean sendSweeperCloudSuspendResumeTaskResp(@NonNull String reqNo, @NonNull SweeperTaskCloudSuspendResume.BigTaskActionResp bigTaskActionResp);
// TODO 需求暂停 待讨论
// boolean getRoutes();

View File

@@ -4,18 +4,18 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.mogo.support.obu.ObuScene;
import com.zhjt.mogo.adas.data.AdasConstants;
import com.zhidao.support.adas.high.common.MessageType;
import com.zhidao.support.adas.high.common.ProtocolStatus;
import com.zhjt.mogo.adas.data.AdasConstants;
import com.zhjt.mogo.adas.data.bean.AdasParam;
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics;
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus;
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm;
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus;
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop;
@@ -355,6 +355,17 @@ public interface OnAdasListener {
*/
void onSweeperFutianCloudBigTaskStatus(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush);
/**
* 10、云端下发任务暂停/恢复指令到padtype: 100010-> sweeper_task_cloud_suspend_resume.proto
*
* @param header 头
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param bigTaskActionPush 数据
*/
void onSweeperFutianCloudTaskCloudSuspendResume(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskCloudSuspendResume.BigTaskActionPush bigTaskActionPush);
/**
* 清扫车云端任务未知类型
*

View File

@@ -1,11 +1,9 @@
package com.zhidao.support.adas.high.msg;
import android.os.SystemClock;
import android.util.Log;
import com.google.protobuf.ByteString;
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.TextFormat;
import com.zhidao.support.adas.high.AdasChannel;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.common.ByteUtil;
@@ -14,9 +12,10 @@ import com.zhidao.support.adas.high.protocol.RawData;
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus;
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm;
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus;
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop;
@@ -44,7 +43,7 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
String reqNo = message.getReqNo(); //请求编号,响应请求时,使用请求方的请求编号
long sysTime = message.getSysTime(); //当前时间戳
ByteString payload = message.getPayload();
Log.i("SweeperCloudTaskMessage", "MsgType=" + (msgType == null ? "null" : msgType.getNumber()) + " reqNo=" + reqNo + " sysTime=" + sysTime);
CupidLogUtils.i("SweeperCloudTaskMessage", "MsgType=" + (msgType == null ? "null" : msgType.getNumber()) + " reqNo=" + reqNo + " sysTime=" + sysTime);
boolean isExistPayload = payload != null && !payload.isEmpty();
if (msgType == SweeperCloudTask.MessageType.CloudPushTask || msgType == SweeperCloudTask.MessageType.PadSendGetTaskReq) {
//1、云端下发大任务信息type: 100001-> sweeper_task.proto
@@ -53,8 +52,8 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
if (isExistPayload) {
taskInfo = SweeperTask.TaskInfo.parseFrom(payload);
}
Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (taskInfo == null ? "null" :
TextFormat.printer().escapingNonAscii(false).printToString(taskInfo)));
// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (taskInfo == null ? "null" :
// TextFormat.printer().escapingNonAscii(false).printToString(taskInfo)));
adasListener.onSweeperFutianCloudTask(header, msgType, reqNo, sysTime, taskInfo);
} else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskConfirm) {
//2、云端下发子任务请求pad确认type100002-> sweeper_task_confirm.proto
@@ -62,8 +61,8 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
if (isExistPayload) {
taskConfirm = SweeperTaskConfirm.TaskConfirm.parseFrom(payload);
}
Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (taskConfirm == null ? "null" :
TextFormat.printer().escapingNonAscii(false).printToString(taskConfirm)));
// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (taskConfirm == null ? "null" :
// TextFormat.printer().escapingNonAscii(false).printToString(taskConfirm)));
adasListener.onSweeperFutianCloudTaskConfirm(header, msgType, reqNo, sysTime, taskConfirm);
} else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskStatus) {
//3、云端下发任务状态到padtype100003-> sweeper_task_status.proto
@@ -71,8 +70,8 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
if (isExistPayload) {
taskStatusPush = SweeperTaskStatus.TaskStatusPush.parseFrom(payload);
}
Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (taskStatusPush == null ? "null" :
TextFormat.printer().escapingNonAscii(false).printToString(taskStatusPush)));
// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (taskStatusPush == null ? "null" :
// TextFormat.printer().escapingNonAscii(false).printToString(taskStatusPush)));
adasListener.onSweeperFutianCloudTaskStatus(header, msgType, reqNo, sysTime, taskStatusPush);
} else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskStop) {
//4、云端请求pad结束任务type100004-> sweeper_task_stop.proto
@@ -80,8 +79,8 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
if (isExistPayload) {
stopTaskReq = SweeperTaskStop.StopTaskReq.parseFrom(payload);
}
Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (stopTaskReq == null ? "null" :
TextFormat.printer().escapingNonAscii(false).printToString(stopTaskReq)));
// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (stopTaskReq == null ? "null" :
// TextFormat.printer().escapingNonAscii(false).printToString(stopTaskReq)));
adasListener.onSweeperFutianCloudTaskStop(header, msgType, reqNo, sysTime, stopTaskReq);
} else if (msgType == SweeperCloudTask.MessageType.PadSendTaskSuspend || msgType == SweeperCloudTask.MessageType.PadSendTaskResume) {
//5、pad请求挂起任务type100005-> sweeper_task_suspend_resume.proto
@@ -90,8 +89,8 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
if (isExistPayload) {
suspendResumeTaskResp = SweeperTaskSuspendResume.SuspendResumeTaskResp.parseFrom(payload);
}
Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (suspendResumeTaskResp == null ? "null" :
TextFormat.printer().escapingNonAscii(false).printToString(suspendResumeTaskResp)));
// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (suspendResumeTaskResp == null ? "null" :
// TextFormat.printer().escapingNonAscii(false).printToString(suspendResumeTaskResp)));
adasListener.onSweeperFutianCloudTaskSuspendResume(header, msgType, reqNo, sysTime, suspendResumeTaskResp);
} else if (msgType == SweeperCloudTask.MessageType.PadSendBootable) {
//8、接管后回自驾-pad上报状态给云端 云端下发启动自驾type: 100008-> sweeper_autopilot.proto
@@ -99,8 +98,8 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
if (isExistPayload) {
isBootableResp = SweeperBootable.IsBootableResp.parseFrom(payload);
}
Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (isBootableResp == null ? "null" :
TextFormat.printer().escapingNonAscii(false).printToString(isBootableResp)));
// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (isBootableResp == null ? "null" :
// TextFormat.printer().escapingNonAscii(false).printToString(isBootableResp)));
adasListener.onSweeperFutianCloudBootable(header, msgType, reqNo, sysTime, isBootableResp);
} else if (msgType == SweeperCloudTask.MessageType.CloudPushBigTaskStatus) {
//9、云端下发pad大任务状态type: 100009-> sweeper_big_task_status.proto
@@ -108,12 +107,21 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
if (isExistPayload) {
bigTaskStatusPush = SweeperBigTaskStatus.BigTaskStatusPush.parseFrom(payload);
}
Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (bigTaskStatusPush == null ? "null" :
TextFormat.printer().escapingNonAscii(false).printToString(bigTaskStatusPush)));
// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (bigTaskStatusPush == null ? "null" :
// TextFormat.printer().escapingNonAscii(false).printToString(bigTaskStatusPush)));
adasListener.onSweeperFutianCloudBigTaskStatus(header, msgType, reqNo, sysTime, bigTaskStatusPush);
} else if (msgType == SweeperCloudTask.MessageType.CloudPushTaskSuspendResume) {
//10、云端下发任务暂停/恢复指令到padtype: 100010
SweeperTaskCloudSuspendResume.BigTaskActionPush bigTaskActionPush = null;
if (isExistPayload) {
bigTaskActionPush = SweeperTaskCloudSuspendResume.BigTaskActionPush.parseFrom(payload);
}
// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (bigTaskActionPush == null ? "null" :
// TextFormat.printer().escapingNonAscii(false).printToString(bigTaskActionPush)));
adasListener.onSweeperFutianCloudTaskCloudSuspendResume(header, msgType, reqNo, sysTime, bigTaskActionPush);
} else {
//未知数据类型
Log.i("SweeperCloudTaskMessage", " 错误数据=" + ByteUtil.byteArrToHex(bytes));
CupidLogUtils.i("SweeperCloudTaskMessage", " 错误数据=" + ByteUtil.byteArrToHex(bytes));
adasListener.onSweeperFutianCloudTaskUnknown(header, bytes);
}
}