[610][adas]添加平行驾驶相关接口;能否启动自驾接口添加手刹状态判断;修改清扫车云控PB与平行驾驶PB共用
This commit is contained in:
@@ -3,7 +3,7 @@ package com.mogo.och.sweepercloud.callback
|
||||
import chassis.ChassisStatesOuterClass
|
||||
import com.mogo.och.sweepercloud.bean.SweeperRoutePlanningUpdateReqBean
|
||||
import com.mogo.och.sweepercloud.database.bean.WeltDataBean
|
||||
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask
|
||||
import com.zhjt.mogo.adas.data.AiCloudTask
|
||||
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
|
||||
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable.IsBootableResp
|
||||
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
|
||||
@@ -22,7 +22,7 @@ interface ISweeperCloudTaskCallback {
|
||||
/**
|
||||
* 接取云端任务/正在执行中任务信息回调
|
||||
*/
|
||||
fun onSweeperCloudTask(messageType: SweeperCloudTask.MessageType,taskInfo: SweeperTask.TaskInfo?)
|
||||
fun onSweeperCloudTask(messageType: AiCloudTask.MessageType, taskInfo: SweeperTask.TaskInfo?)
|
||||
|
||||
/**
|
||||
* 云端下发子任务请求pad确认
|
||||
@@ -42,7 +42,7 @@ interface ISweeperCloudTaskCallback {
|
||||
/**
|
||||
* 挂起/恢复
|
||||
*/
|
||||
fun onSweeperCloudTaskSuspendResume(messageType: SweeperCloudTask.MessageType,taskId:String,subTaskId:String,code:Code)
|
||||
fun onSweeperCloudTaskSuspendResume(messageType: AiCloudTask.MessageType,taskId:String,subTaskId:String,code:Code)
|
||||
|
||||
/**
|
||||
* pad请求云端进入自驾
|
||||
|
||||
@@ -39,7 +39,7 @@ import com.mogo.och.sweepercloud.constant.SweeperConst;
|
||||
import com.mogo.och.sweepercloud.database.MyDataBase;
|
||||
import com.mogo.och.sweepercloud.database.bean.WeltDataBean;
|
||||
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils;
|
||||
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask;
|
||||
import com.zhjt.mogo.adas.data.AiCloudTask;
|
||||
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.big.SweeperBigTaskStatus;
|
||||
@@ -332,7 +332,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSweeperFutianCloudTask(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
public void onSweeperFutianCloudTask(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperTask.TaskInfo taskInfo) {
|
||||
|
||||
CallerLogger.d(M_SWEEPER + TAG,
|
||||
@@ -344,7 +344,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSweeperFutianCloudTaskConfirm(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
public void onSweeperFutianCloudTaskConfirm(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperTaskConfirm.TaskConfirm taskConfirm) {
|
||||
|
||||
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " " +
|
||||
@@ -356,7 +356,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSweeperFutianCloudTaskStatus(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
public void onSweeperFutianCloudTaskStatus(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperTaskStatus.TaskStatusPush taskStatusPush) {
|
||||
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " " +
|
||||
"onSweeperFutianCloudTaskStatus:" + printMessage(taskStatusPush));
|
||||
@@ -367,7 +367,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSweeperFutianCloudTaskStop(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
public void onSweeperFutianCloudTaskStop(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperTaskStop.StopTaskReq stopTaskReq) {
|
||||
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " " +
|
||||
"onSweeperFutianCloudTaskStop:" + printMessage(stopTaskReq));
|
||||
@@ -378,7 +378,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSweeperFutianCloudTaskSuspendResume(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
public void onSweeperFutianCloudTaskSuspendResume(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperTaskSuspendResume.SuspendResumeTaskResp suspendResumeTaskResp) {
|
||||
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " " +
|
||||
"onSweeperFutianCloudTaskSuspendResume:" + printMessage(suspendResumeTaskResp));
|
||||
@@ -390,7 +390,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSweeperFutianCloudBootable(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
public void onSweeperFutianCloudBootable(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperBootable.IsBootableResp isBootableResp) {
|
||||
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " " +
|
||||
"onSweeperFutianCloudBootable:" + printMessage(isBootableResp));
|
||||
@@ -401,7 +401,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSweeperFutianCloudBigTaskStatus(@NonNull SweeperCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
public void onSweeperFutianCloudBigTaskStatus(@NonNull AiCloudTask.MessageType messageType, String reqNo, long sysTime,
|
||||
SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush) {
|
||||
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " " +
|
||||
"onSweeperFutianCloudBigTaskStatus:" + printMessage(bigTaskStatusPush));
|
||||
@@ -412,7 +412,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSweeperFutianCloudTaskCloudSuspendResume(@NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime,
|
||||
public void onSweeperFutianCloudTaskCloudSuspendResume(@NonNull AiCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime,
|
||||
@Nullable SweeperTaskCloudSuspendResume.BigTaskActionPush bigTaskActionPush) {
|
||||
CallerLogger.d(M_SWEEPER + TAG, "messageType: " + messageType.getNumber() + " sysTime:" + sysTime + " reqNo:" + reqNo + " " +
|
||||
"onSweeperFutianCloudTaskCloudSuspendResume:" + printMessage(bigTaskActionPush));
|
||||
@@ -521,7 +521,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
SweeperTask.GetTaskReq getTaskReq = builder.build();
|
||||
|
||||
CallerLogger.d(M_SWEEPER + TAG,
|
||||
"getCurrentTask:" + printMessage(getTaskReq) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.PadSendGetTaskReq.getNumber());
|
||||
"getCurrentTask:" + printMessage(getTaskReq) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.PadSendGetTaskReq.getNumber());
|
||||
getAutoPilotControlManager().sendSweeperGetTaskReq(reqNo, getTaskReq);
|
||||
}
|
||||
|
||||
@@ -534,11 +534,11 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
builder.setTaskId(taskId);
|
||||
builder.setCode(code);
|
||||
SweeperTask.StartTaskResp startTaskResp = builder.build();
|
||||
String reqNo = msgTypeAndReqNo.get(SweeperCloudTask.MessageType.CloudPushTask.getNumber());
|
||||
String reqNo = msgTypeAndReqNo.get(AiCloudTask.MessageType.CloudPushTask.getNumber());
|
||||
|
||||
getAutoPilotControlManager().sendSweeperStartTaskResp(reqNo, startTaskResp);
|
||||
CallerLogger.d(M_SWEEPER + TAG,
|
||||
"sendSweeperStartTaskResp:" + printMessage(startTaskResp) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.CloudPushTask.getNumber());
|
||||
"sendSweeperStartTaskResp:" + printMessage(startTaskResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTask.getNumber());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -551,9 +551,9 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
builder.setSubTaskId(subTaskId);
|
||||
builder.setCode(code);
|
||||
SweeperTaskConfirm.TaskConfirmResp taskConfirmResp = builder.build();
|
||||
String reqNo = msgTypeAndReqNo.get(SweeperCloudTask.MessageType.CloudPushTaskConfirm.getNumber());
|
||||
String reqNo = msgTypeAndReqNo.get(AiCloudTask.MessageType.CloudPushTaskConfirm.getNumber());
|
||||
CallerLogger.d(M_SWEEPER + TAG,
|
||||
"sendSweeperTaskConfirmResp" + printMessage(taskConfirmResp) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.CloudPushTaskConfirm.getNumber());
|
||||
"sendSweeperTaskConfirmResp" + printMessage(taskConfirmResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskConfirm.getNumber());
|
||||
getAutoPilotControlManager().sendSweeperTaskConfirmResp(reqNo, taskConfirmResp);
|
||||
}
|
||||
|
||||
@@ -569,10 +569,10 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
builder.setTaskId(taskId);
|
||||
builder.setCode(code);
|
||||
SweeperTaskStop.StopTaskResp stopTaskResp = builder.build();
|
||||
String reqNo = msgTypeAndReqNo.get(SweeperCloudTask.MessageType.CloudPushTaskStop.getNumber());
|
||||
String reqNo = msgTypeAndReqNo.get(AiCloudTask.MessageType.CloudPushTaskStop.getNumber());
|
||||
|
||||
CallerLogger.d(M_SWEEPER + TAG,
|
||||
"sendSweeperStopTaskResp" + printMessage(stopTaskResp) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.CloudPushTaskStop.getNumber());
|
||||
"sendSweeperStopTaskResp" + printMessage(stopTaskResp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskStop.getNumber());
|
||||
getAutoPilotControlManager().sendSweeperStopTaskResp(reqNo, stopTaskResp);
|
||||
}
|
||||
|
||||
@@ -593,7 +593,7 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
String reqNo = SweeperCloudTaskUtils.getRequestId();
|
||||
|
||||
CallerLogger.d(M_SWEEPER + TAG,
|
||||
"sendSweeperAutopilotBootable" + printMessage(isBootable) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.PadSendBootable.getNumber());
|
||||
"sendSweeperAutopilotBootable" + printMessage(isBootable) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.PadSendBootable.getNumber());
|
||||
getAutoPilotControlManager().sendSweeperAutopilotBootable(reqNo, isBootable);
|
||||
//SweeperCloudTaskUtils.mockSendCloudBootable();
|
||||
}
|
||||
@@ -609,10 +609,10 @@ public class SweeperTaskModel implements IMoGoSweeperFutianCloudTaskListener, IM
|
||||
builder.setTaskId(taskId);
|
||||
builder.setCode(code);
|
||||
SweeperTaskCloudSuspendResume.BigTaskActionResp resp = builder.build();
|
||||
String reqNo = msgTypeAndReqNo.get(SweeperCloudTask.MessageType.CloudPushTaskSuspendResume.getNumber());
|
||||
String reqNo = msgTypeAndReqNo.get(AiCloudTask.MessageType.CloudPushTaskSuspendResume.getNumber());
|
||||
|
||||
CallerLogger.d(M_SWEEPER + TAG,
|
||||
"sendSweeperSuspendResumeTaskResp" + printMessage(resp) + " reqNo:" + reqNo + " messageType:" + SweeperCloudTask.MessageType.CloudPushTaskSuspendResume);
|
||||
"sendSweeperSuspendResumeTaskResp" + printMessage(resp) + " reqNo:" + reqNo + " messageType:" + AiCloudTask.MessageType.CloudPushTaskSuspendResume);
|
||||
getAutoPilotControlManager().sendSweeperCloudSuspendResumeTaskResp(reqNo, resp);
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ import com.mogo.och.sweepercloud.callback.SweeperCloudDialogClickListener
|
||||
import com.mogo.och.sweepercloud.constant.SweeperConst
|
||||
import com.mogo.och.sweepercloud.model.SweeperTaskModel
|
||||
import com.mogo.och.sweepercloud.ui.dialog.SweeperCloudDialog
|
||||
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask.MessageType
|
||||
import com.zhjt.mogo.adas.data.AiCloudTask
|
||||
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
|
||||
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
|
||||
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.Location
|
||||
@@ -50,7 +50,7 @@ object SweeperCloudTaskUtils {
|
||||
* 模拟云控发送任务给pad
|
||||
*/
|
||||
@JvmStatic
|
||||
fun mockSendCloudTaskInfo(messageType: MessageType) {
|
||||
fun mockSendCloudTaskInfo(messageType: AiCloudTask.MessageType) {
|
||||
val builder = TaskInfo.newBuilder()
|
||||
builder.sn = getDriverSn()
|
||||
builder.taskId = "10"
|
||||
@@ -169,7 +169,7 @@ object SweeperCloudTaskUtils {
|
||||
builder.taskId = "10"
|
||||
builder.subTaskId = "1"
|
||||
SweeperTaskModel.getInstance().onSweeperFutianCloudTaskConfirm(
|
||||
MessageType.CloudPushTaskConfirm, "${System.currentTimeMillis()}",
|
||||
AiCloudTask.MessageType.CloudPushTaskConfirm, "${System.currentTimeMillis()}",
|
||||
System.currentTimeMillis(), builder.build()
|
||||
)
|
||||
}
|
||||
@@ -185,7 +185,7 @@ object SweeperCloudTaskUtils {
|
||||
builder.subTaskId = "1"
|
||||
builder.taskStatus = SweeperCommon.TaskStatus.RUNNING
|
||||
SweeperTaskModel.getInstance().onSweeperFutianCloudTaskStatus(
|
||||
MessageType.CloudPushTaskStatus, "${System.currentTimeMillis()}",
|
||||
AiCloudTask.MessageType.CloudPushTaskStatus, "${System.currentTimeMillis()}",
|
||||
System.currentTimeMillis(), builder.build()
|
||||
)
|
||||
}
|
||||
@@ -200,7 +200,7 @@ object SweeperCloudTaskUtils {
|
||||
builder.taskId = "10"
|
||||
builder.type = SweeperTaskStop.StopTaskType.ADVANCE
|
||||
SweeperTaskModel.getInstance().onSweeperFutianCloudTaskStop(
|
||||
MessageType.CloudPushTaskStop, "${System.currentTimeMillis()}",
|
||||
AiCloudTask.MessageType.CloudPushTaskStop, "${System.currentTimeMillis()}",
|
||||
System.currentTimeMillis(), builder.build()
|
||||
)
|
||||
}
|
||||
@@ -216,7 +216,7 @@ object SweeperCloudTaskUtils {
|
||||
builder.taskStatus = SweeperCommon.TaskStatus.FINISHED
|
||||
builder.systemTime = System.currentTimeMillis()
|
||||
SweeperTaskModel.getInstance().onSweeperFutianCloudBigTaskStatus(
|
||||
MessageType.CloudPushBigTaskStatus, "${System.currentTimeMillis()}",
|
||||
AiCloudTask.MessageType.CloudPushBigTaskStatus, "${System.currentTimeMillis()}",
|
||||
System.currentTimeMillis(), builder.build()
|
||||
)
|
||||
}
|
||||
@@ -233,7 +233,7 @@ object SweeperCloudTaskUtils {
|
||||
builder.code = SweeperCommon.Code.SUCCEED
|
||||
UiThreadHandler.getsUiHandler().postDelayed({
|
||||
SweeperTaskModel.getInstance().onSweeperFutianCloudBootable(
|
||||
MessageType.PadSendBootable, "${System.currentTimeMillis()}",
|
||||
AiCloudTask.MessageType.PadSendBootable, "${System.currentTimeMillis()}",
|
||||
System.currentTimeMillis(), builder.build()
|
||||
)
|
||||
}, 10000)
|
||||
|
||||
@@ -70,6 +70,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import io.netty.channel.Channel
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import mogo.yycp.paralleldriving.protocol.ParallelDrivingRequest
|
||||
import java.util.*
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@@ -1093,6 +1094,13 @@ class MoGoAutopilotControlProvider :
|
||||
return AdasManager.getInstance().sendSweeperCloudSuspendResumeTaskResp(reqNo, bigTaskActionResp)
|
||||
}
|
||||
|
||||
override fun sendParallelDrivingReq(
|
||||
reqNo: String,
|
||||
parallelRequest: ParallelDrivingRequest.ParallelRequest
|
||||
): Boolean {
|
||||
return AdasManager.getInstance().sendParallelDrivingReq(reqNo, parallelRequest)
|
||||
}
|
||||
|
||||
override fun setIsDrawPointCloud(isDrawPointCloud: Boolean) {
|
||||
if (isDrawPointCloud) {
|
||||
AdasManager.getInstance().subscribeInterface(
|
||||
|
||||
@@ -56,9 +56,9 @@ import com.mogo.support.obu.ObuScene
|
||||
import com.zhidao.support.adas.high.OnAdasListener
|
||||
import com.zhjt.mogo.adas.data.bean.AdasParam
|
||||
import com.zhidao.support.adas.high.common.ProtocolStatus
|
||||
import com.zhjt.mogo.adas.data.AiCloudTask
|
||||
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics
|
||||
import com.zhjt.mogo.adas.data.bean.UnableAutopilotReason
|
||||
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.s_r.SweeperTaskSuspendResume
|
||||
@@ -73,6 +73,7 @@ import mogo.telematics.pad.MessagePad
|
||||
import mogo.telematics.pad.MessagePad.TrackedObject
|
||||
import mogo.v2x.MogoV2X
|
||||
import mogo.v2x.RoadOverviewEvents
|
||||
import mogo.yycp.paralleldriving.protocol.ParallelTaskProcessNoticeOuterClass
|
||||
import mogo_msg.MogoReportMsg
|
||||
import perception.TrafficLightOuterClass
|
||||
import planning.RoboSweeperTaskIndexOuterClass
|
||||
@@ -576,7 +577,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
*/
|
||||
override fun onSweeperFutianCloudTask(
|
||||
header: MessagePad.Header,
|
||||
messageType: SweeperCloudTask.MessageType,
|
||||
messageType: AiCloudTask.MessageType,
|
||||
reqNo: String?,
|
||||
sysTime: Long,
|
||||
taskInfo: SweeperTask.TaskInfo?
|
||||
@@ -600,7 +601,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
*/
|
||||
override fun onSweeperFutianCloudTaskConfirm(
|
||||
header: MessagePad.Header,
|
||||
messageType: SweeperCloudTask.MessageType,
|
||||
messageType: AiCloudTask.MessageType,
|
||||
reqNo: String?,
|
||||
sysTime: Long,
|
||||
taskConfirm: SweeperTaskConfirm.TaskConfirm?
|
||||
@@ -624,7 +625,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
*/
|
||||
override fun onSweeperFutianCloudTaskStatus(
|
||||
header: MessagePad.Header,
|
||||
messageType: SweeperCloudTask.MessageType,
|
||||
messageType: AiCloudTask.MessageType,
|
||||
reqNo: String?,
|
||||
sysTime: Long,
|
||||
taskStatusPush: SweeperTaskStatus.TaskStatusPush?
|
||||
@@ -648,7 +649,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
*/
|
||||
override fun onSweeperFutianCloudTaskStop(
|
||||
header: MessagePad.Header,
|
||||
messageType: SweeperCloudTask.MessageType,
|
||||
messageType: AiCloudTask.MessageType,
|
||||
reqNo: String?,
|
||||
sysTime: Long,
|
||||
stopTaskReq: SweeperTaskStop.StopTaskReq?
|
||||
@@ -673,7 +674,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
*/
|
||||
override fun onSweeperFutianCloudTaskSuspendResume(
|
||||
header: MessagePad.Header,
|
||||
messageType: SweeperCloudTask.MessageType,
|
||||
messageType: AiCloudTask.MessageType,
|
||||
reqNo: String?,
|
||||
sysTime: Long,
|
||||
suspendResumeTaskResp: SweeperTaskSuspendResume.SuspendResumeTaskResp?
|
||||
@@ -697,7 +698,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
*/
|
||||
override fun onSweeperFutianCloudBootable(
|
||||
header: MessagePad.Header,
|
||||
messageType: SweeperCloudTask.MessageType,
|
||||
messageType: AiCloudTask.MessageType,
|
||||
reqNo: String?,
|
||||
sysTime: Long,
|
||||
isBootableResp: SweeperBootable.IsBootableResp?
|
||||
@@ -721,7 +722,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
*/
|
||||
override fun onSweeperFutianCloudBigTaskStatus(
|
||||
header: MessagePad.Header,
|
||||
messageType: SweeperCloudTask.MessageType,
|
||||
messageType: AiCloudTask.MessageType,
|
||||
reqNo: String?,
|
||||
sysTime: Long,
|
||||
bigTaskStatusPush: SweeperBigTaskStatus.BigTaskStatusPush?
|
||||
@@ -743,17 +744,37 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param bigTaskActionPush 数据
|
||||
*/
|
||||
override fun onSweeperFutianCloudTaskCloudSuspendResume(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: SweeperTaskCloudSuspendResume.BigTaskActionPush?) {
|
||||
override fun onSweeperFutianCloudTaskCloudSuspendResume(header: MessagePad.Header, messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: SweeperTaskCloudSuspendResume.BigTaskActionPush?) {
|
||||
CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTaskCloudSuspendResume(messageType, reqNo, sysTime, bigTaskActionPush)
|
||||
}
|
||||
|
||||
/**
|
||||
* 无人化场景
|
||||
* 平行驾驶请求相关状态反馈
|
||||
*
|
||||
* @param header 头
|
||||
* @param messageType 消息类型
|
||||
* @param reqNo 请求编号
|
||||
* @param sysTime 当前时间戳
|
||||
* @param parallelTaskProcessNotice 数据
|
||||
*/
|
||||
override fun onParallelDrivingResp(
|
||||
header: MessagePad.Header,
|
||||
messageType: AiCloudTask.MessageType,
|
||||
reqNo: String?,
|
||||
sysTime: Long,
|
||||
parallelTaskProcessNotice: ParallelTaskProcessNoticeOuterClass.ParallelTaskProcessNotice?
|
||||
) {
|
||||
CallerParallelDrivingListenerManager.invokeParallelDrivingListener(parallelTaskProcessNotice)
|
||||
}
|
||||
|
||||
/**
|
||||
* 清扫车云端任务未知类型
|
||||
*
|
||||
* @param header 头
|
||||
* @param bytes 原始数据
|
||||
*/
|
||||
override fun onSweeperFutianCloudTaskUnknown(header: MessagePad.Header, bytes: ByteArray) {
|
||||
override fun onAiCloudTaskUnknown(header: MessagePad.Header, bytes: ByteArray) {
|
||||
CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTaskUnknown(bytes)
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm.TaskConfi
|
||||
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 mogo.yycp.paralleldriving.protocol.ParallelDrivingRequest
|
||||
|
||||
/**
|
||||
* @author xiaoyuzhou
|
||||
@@ -458,6 +459,15 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
|
||||
*/
|
||||
fun sendSweeperAutopilotBootable(reqNo: String, isBootable: IsBootable): Boolean
|
||||
|
||||
/**
|
||||
* PAD发起平行驾驶请求
|
||||
*
|
||||
* @param reqNo 请求编号(目前没有传递需求,可以传null)
|
||||
* @param parallelRequest 参数
|
||||
* @return boolean
|
||||
*/
|
||||
fun sendParallelDrivingReq(reqNo: String, parallelRequest: ParallelDrivingRequest.ParallelRequest): Boolean
|
||||
|
||||
/**
|
||||
* pad收到云端下发暂停恢复响应
|
||||
* 10、云端下发任务暂停/恢复指令到pad(type: 100010)sweeper_task_cloud_suspend_resume.proto/BigTaskActionResp
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.mogo.eagle.core.function.api.autopilot
|
||||
|
||||
import mogo.yycp.paralleldriving.protocol.ParallelTaskProcessNoticeOuterClass
|
||||
|
||||
/**
|
||||
* 平行驾驶状态
|
||||
*/
|
||||
interface IMoGoParallelDrivingStatusListener {
|
||||
|
||||
/**
|
||||
* 需要判空
|
||||
*/
|
||||
fun onParallelDrivingResp(
|
||||
parallelTaskProcessNotice: ParallelTaskProcessNoticeOuterClass.ParallelTaskProcessNotice?
|
||||
)
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.mogo.eagle.core.function.api.autopilot
|
||||
|
||||
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask
|
||||
import com.zhjt.mogo.adas.data.AiCloudTask
|
||||
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.big.SweeperBigTaskStatus.BigTaskStatusPush
|
||||
@@ -24,7 +24,7 @@ interface IMoGoSweeperFutianCloudTaskListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param taskInfo 数据
|
||||
*/
|
||||
fun onSweeperFutianCloudTask(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, taskInfo: SweeperTask.TaskInfo?)
|
||||
fun onSweeperFutianCloudTask(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, taskInfo: SweeperTask.TaskInfo?)
|
||||
|
||||
/**
|
||||
* 2、云端下发子任务,请求pad确认(type:100002)-> sweeper_task_confirm.proto
|
||||
@@ -34,7 +34,7 @@ interface IMoGoSweeperFutianCloudTaskListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param taskConfirm 数据
|
||||
*/
|
||||
fun onSweeperFutianCloudTaskConfirm(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, taskConfirm: TaskConfirm?)
|
||||
fun onSweeperFutianCloudTaskConfirm(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, taskConfirm: TaskConfirm?)
|
||||
|
||||
/**
|
||||
* 3、云端下发任务状态到pad(type:100003)-> sweeper_task_status.proto
|
||||
@@ -44,7 +44,7 @@ interface IMoGoSweeperFutianCloudTaskListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param taskStatusPush 数据
|
||||
*/
|
||||
fun onSweeperFutianCloudTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, taskStatusPush: TaskStatusPush?)
|
||||
fun onSweeperFutianCloudTaskStatus(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, taskStatusPush: TaskStatusPush?)
|
||||
|
||||
/**
|
||||
* 4、云端请求pad结束任务(type:100004)-> sweeper_task_stop.proto
|
||||
@@ -54,7 +54,7 @@ interface IMoGoSweeperFutianCloudTaskListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param stopTaskReq 数据
|
||||
*/
|
||||
fun onSweeperFutianCloudTaskStop(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, stopTaskReq: StopTaskReq?)
|
||||
fun onSweeperFutianCloudTaskStop(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, stopTaskReq: StopTaskReq?)
|
||||
|
||||
/**
|
||||
* 5、pad请求挂起任务(type:100005)-> sweeper_task_suspend_resume.proto
|
||||
@@ -65,7 +65,7 @@ interface IMoGoSweeperFutianCloudTaskListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param suspendResumeTaskResp 数据
|
||||
*/
|
||||
fun onSweeperFutianCloudTaskSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, suspendResumeTaskResp: SuspendResumeTaskResp?)
|
||||
fun onSweeperFutianCloudTaskSuspendResume(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, suspendResumeTaskResp: SuspendResumeTaskResp?)
|
||||
|
||||
/**
|
||||
* 8、接管后回自驾-pad上报状态给云端 云端下发启动自驾(type: 100008)-> sweeper_autopilot.proto
|
||||
@@ -75,7 +75,7 @@ interface IMoGoSweeperFutianCloudTaskListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param isBootableResp 数据
|
||||
*/
|
||||
fun onSweeperFutianCloudBootable(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, isBootableResp: IsBootableResp?)
|
||||
fun onSweeperFutianCloudBootable(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, isBootableResp: IsBootableResp?)
|
||||
|
||||
/**
|
||||
* 9、云端下发pad大任务状态(type: 100009)-> sweeper_big_task_status.proto
|
||||
@@ -85,7 +85,7 @@ interface IMoGoSweeperFutianCloudTaskListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param bigTaskStatusPush 数据
|
||||
*/
|
||||
fun onSweeperFutianCloudBigTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskStatusPush: BigTaskStatusPush?)
|
||||
fun onSweeperFutianCloudBigTaskStatus(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskStatusPush: BigTaskStatusPush?)
|
||||
|
||||
/**
|
||||
* 10、云端下发任务暂停/恢复指令到pad(type: 100010)-> sweeper_task_cloud_suspend_resume.proto
|
||||
@@ -95,7 +95,7 @@ interface IMoGoSweeperFutianCloudTaskListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param bigTaskActionPush 数据
|
||||
*/
|
||||
fun onSweeperFutianCloudTaskCloudSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: BigTaskActionPush?)
|
||||
fun onSweeperFutianCloudTaskCloudSuspendResume(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: BigTaskActionPush?)
|
||||
|
||||
/**
|
||||
* 清扫车云端任务未知类型
|
||||
|
||||
@@ -24,6 +24,7 @@ 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 mogo.yycp.paralleldriving.protocol.ParallelDrivingRequest
|
||||
import kotlin.random.Random
|
||||
|
||||
|
||||
@@ -642,6 +643,17 @@ object CallerAutoPilotControlManager {
|
||||
return providerApi?.sendSweeperCloudSuspendResumeTaskResp(reqNo, bigTaskActionResp) ?: false
|
||||
}
|
||||
|
||||
/**
|
||||
* PAD发起平行驾驶请求
|
||||
*
|
||||
* @param reqNo 请求编号(目前没有传递需求,可以传null)
|
||||
* @param parallelRequest 参数
|
||||
* @return boolean
|
||||
*/
|
||||
fun sendParallelDrivingReq( reqNo: String, parallelRequest: ParallelDrivingRequest.ParallelRequest): Boolean {
|
||||
return providerApi?.sendParallelDrivingReq(reqNo, parallelRequest) ?: false
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开点云绘制
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.mogo.eagle.core.function.call.autopilot
|
||||
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoParallelDrivingStatusListener
|
||||
import com.mogo.eagle.core.function.call.base.CallerBase
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import mogo.yycp.paralleldriving.protocol.ParallelTaskProcessNoticeOuterClass
|
||||
|
||||
/**
|
||||
* 平行驾驶状态回调,云端说有状态变化就回调
|
||||
*/
|
||||
object CallerParallelDrivingListenerManager : CallerBase<IMoGoParallelDrivingStatusListener>() {
|
||||
|
||||
|
||||
fun invokeParallelDrivingListener(parallelTaskProcessNotice: ParallelTaskProcessNoticeOuterClass.ParallelTaskProcessNotice?) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onParallelDrivingResp(parallelTaskProcessNotice)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,7 +2,7 @@ package com.mogo.eagle.core.function.call.autopilot
|
||||
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoSweeperFutianCloudTaskListener
|
||||
import com.mogo.eagle.core.function.call.base.CallerBase
|
||||
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask
|
||||
import com.zhjt.mogo.adas.data.AiCloudTask
|
||||
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.s_r.SweeperTaskSuspendResume
|
||||
@@ -26,7 +26,7 @@ object CallerSweeperFutianCloudTaskListenerManager : CallerBase<IMoGoSweeperFuti
|
||||
* @param sysTime 当前时间戳
|
||||
* @param taskInfo 数据
|
||||
*/
|
||||
fun invokeSweeperFutianCloudTask(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, taskInfo: SweeperTask.TaskInfo?) {
|
||||
fun invokeSweeperFutianCloudTask(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, taskInfo: SweeperTask.TaskInfo?) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onSweeperFutianCloudTask(messageType, reqNo, sysTime, taskInfo)
|
||||
@@ -41,7 +41,7 @@ object CallerSweeperFutianCloudTaskListenerManager : CallerBase<IMoGoSweeperFuti
|
||||
* @param sysTime 当前时间戳
|
||||
* @param taskConfirm 数据
|
||||
*/
|
||||
fun invokeSweeperFutianCloudTaskConfirm(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, taskConfirm: SweeperTaskConfirm.TaskConfirm?) {
|
||||
fun invokeSweeperFutianCloudTaskConfirm(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, taskConfirm: SweeperTaskConfirm.TaskConfirm?) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onSweeperFutianCloudTaskConfirm(messageType, reqNo, sysTime, taskConfirm)
|
||||
@@ -56,7 +56,7 @@ object CallerSweeperFutianCloudTaskListenerManager : CallerBase<IMoGoSweeperFuti
|
||||
* @param sysTime 当前时间戳
|
||||
* @param taskStatusPush 数据
|
||||
*/
|
||||
fun invokeSweeperFutianCloudTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, taskStatusPush: SweeperTaskStatus.TaskStatusPush?) {
|
||||
fun invokeSweeperFutianCloudTaskStatus(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, taskStatusPush: SweeperTaskStatus.TaskStatusPush?) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onSweeperFutianCloudTaskStatus(messageType, reqNo, sysTime, taskStatusPush)
|
||||
@@ -71,7 +71,7 @@ object CallerSweeperFutianCloudTaskListenerManager : CallerBase<IMoGoSweeperFuti
|
||||
* @param sysTime 当前时间戳
|
||||
* @param stopTaskReq 数据
|
||||
*/
|
||||
fun invokeSweeperFutianCloudTaskStop(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, stopTaskReq: SweeperTaskStop.StopTaskReq?) {
|
||||
fun invokeSweeperFutianCloudTaskStop(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, stopTaskReq: SweeperTaskStop.StopTaskReq?) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onSweeperFutianCloudTaskStop(messageType, reqNo, sysTime, stopTaskReq)
|
||||
@@ -87,7 +87,7 @@ object CallerSweeperFutianCloudTaskListenerManager : CallerBase<IMoGoSweeperFuti
|
||||
* @param sysTime 当前时间戳
|
||||
* @param suspendResumeTaskResp 数据
|
||||
*/
|
||||
fun invokeSweeperFutianCloudTaskSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, suspendResumeTaskResp: SweeperTaskSuspendResume.SuspendResumeTaskResp?) {
|
||||
fun invokeSweeperFutianCloudTaskSuspendResume(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, suspendResumeTaskResp: SweeperTaskSuspendResume.SuspendResumeTaskResp?) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onSweeperFutianCloudTaskSuspendResume(messageType, reqNo, sysTime, suspendResumeTaskResp)
|
||||
@@ -102,7 +102,7 @@ object CallerSweeperFutianCloudTaskListenerManager : CallerBase<IMoGoSweeperFuti
|
||||
* @param sysTime 当前时间戳
|
||||
* @param isBootableResp 数据
|
||||
*/
|
||||
fun invokeSweeperFutianCloudBootable(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, isBootableResp: SweeperBootable.IsBootableResp?) {
|
||||
fun invokeSweeperFutianCloudBootable(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, isBootableResp: SweeperBootable.IsBootableResp?) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onSweeperFutianCloudBootable(messageType, reqNo, sysTime, isBootableResp)
|
||||
@@ -117,7 +117,7 @@ object CallerSweeperFutianCloudTaskListenerManager : CallerBase<IMoGoSweeperFuti
|
||||
* @param sysTime 当前时间戳
|
||||
* @param bigTaskStatusPush 数据
|
||||
*/
|
||||
fun invokeSweeperFutianCloudBigTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskStatusPush: SweeperBigTaskStatus.BigTaskStatusPush?) {
|
||||
fun invokeSweeperFutianCloudBigTaskStatus(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskStatusPush: SweeperBigTaskStatus.BigTaskStatusPush?) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onSweeperFutianCloudBigTaskStatus(messageType, reqNo, sysTime, bigTaskStatusPush)
|
||||
@@ -132,7 +132,7 @@ object CallerSweeperFutianCloudTaskListenerManager : CallerBase<IMoGoSweeperFuti
|
||||
* @param sysTime 当前时间戳
|
||||
* @param bigTaskActionPush 数据
|
||||
*/
|
||||
fun invokeSweeperFutianCloudTaskCloudSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: SweeperTaskCloudSuspendResume.BigTaskActionPush?) {
|
||||
fun invokeSweeperFutianCloudTaskCloudSuspendResume(messageType: AiCloudTask.MessageType, reqNo: String?, sysTime: Long, bigTaskActionPush: SweeperTaskCloudSuspendResume.BigTaskActionPush?) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onSweeperFutianCloudTaskCloudSuspendResume(messageType, reqNo, sysTime, bigTaskActionPush)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
syntax = "proto3";
|
||||
package com.zhjt.mogo.adas.data.sweeper;
|
||||
package com.zhjt.mogo.adas.data;
|
||||
|
||||
//清扫车云端任务调度
|
||||
|
||||
@@ -17,11 +17,13 @@ enum MessageType
|
||||
PadSendBootable = 100008; //8、接管后回自驾-pad上报状态给云端 云端下发启动自驾(type: 100008)-> sweeper_bootable.proto
|
||||
CloudPushBigTaskStatus = 100009; //9、云端下发pad大任务状态(type: 100009)-> sweeper_big_task_status.proto
|
||||
CloudPushTaskSuspendResume = 100010; //10、云端下发任务暂停/恢复指令到pad(type: 100010)-> sweeper_task_cloud_suspend_resume.proto
|
||||
|
||||
ParallelDrivingCmd = 200001; //无人化场景,平行驾驶请求相关指令及状态反馈, 云控<->鹰眼双向透传
|
||||
}
|
||||
|
||||
//云下行消息
|
||||
//PAD上行消息
|
||||
message SweeperMessage
|
||||
message AiCloudPadMessage
|
||||
{
|
||||
uint32 msgType = 1; //消息类型,响应请求时,使用对应请求的消息类型
|
||||
bytes payload = 2; //消息内容
|
||||
@@ -72,6 +72,7 @@ enum MessageType
|
||||
MsgTypeFSMStatusReasonQueryReq = 0x10123; //fsm状态原因查询
|
||||
MsgTypeFSMStatusReasonQueryResp = 0x10124; //fsm状态原因查询应答
|
||||
MsgTypeGetDebugInfo = 0x10125; //debug信息查询 pad->telematics
|
||||
MsgTypeParallelDrivingCmd = 0x10126; //无人化场景,平行驾驶请求相关指令及状态反馈, 云控<->鹰眼双向透传
|
||||
}
|
||||
|
||||
message Header
|
||||
@@ -713,3 +714,7 @@ message SessionInfo
|
||||
|
||||
//message definition for MsgTypeSSMState
|
||||
//refer to ssm_info.proto for details
|
||||
|
||||
//message definition for MsgTypeParallelDrivingCmd
|
||||
//查看云端和鹰眼的接口
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
syntax = "proto3";
|
||||
package mogo.yycp.paralleldriving.protocol;
|
||||
option java_package = "mogo.yycp.paralleldriving.protocol";
|
||||
|
||||
message ParallelRequest {
|
||||
string sn = 1;
|
||||
int32 type = 2; //类型:1,预接管,2,鹰眼请求 3 遇困,4,自检异常
|
||||
int32 takeover = 3; //1接管请求,2取消请求接管
|
||||
string code = 4 ; // 请求上报的类型,如:"PAD_ACTIVE",用于描述type的具体内容,不同的code可以对应同一个type
|
||||
string reason = 5; // 具体的请求原因描述,如:因底盘消息掉帧强退自动驾驶
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
syntax = "proto3";
|
||||
package mogo.yycp.paralleldriving.protocol;
|
||||
option java_package = "mogo.yycp.paralleldriving.protocol";
|
||||
|
||||
message ParallelTaskProcessNotice {
|
||||
string code = 1; // 消息code: START_SYNC ; EXIT_SYNC ; UNABLE_TAKEOVER ; EXCEPTION_EXIT_SYNC ; TASK_REJECTED ; PARALLEL_EXCEPTION_MANUAL_DRIVING ; EXCEPTION_EXIT_PARALLEL_DRIVING
|
||||
string content = 2; //消息具体内容:进入同步状态 ; 同步结束 ; 无法接管 ; 同步异常结束 ; 任务已被拒绝 ; 异常请人工驾驶 ; 平行驾驶异常结束
|
||||
}
|
||||
@@ -45,9 +45,9 @@ 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.AiCloudTask;
|
||||
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.cloud.s_r.SweeperTaskCloudSuspendResume;
|
||||
@@ -71,6 +71,7 @@ import common.HeaderOuterClass;
|
||||
import function_state_management.FSMStatusReasonQueryOuterClass;
|
||||
import mogo.telematics.ParamSetCmdOuterClass;
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
import mogo.yycp.paralleldriving.protocol.ParallelDrivingRequest;
|
||||
import okio.ByteString;
|
||||
|
||||
/**
|
||||
@@ -1889,15 +1890,16 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送清扫车指令到云控
|
||||
* 发送云控指令
|
||||
*
|
||||
* @param messageType 消息类型
|
||||
* @param reqNo 请求编号
|
||||
* @param payload 有效数据
|
||||
* @param padMessageType PAD到域控消息类型
|
||||
* @param messageType PAD到AI云消息类型
|
||||
* @param reqNo 请求编号
|
||||
* @param payload 有效数据
|
||||
* @return boolean
|
||||
*/
|
||||
private boolean sendSweeperCloudTaskCmd(@NonNull SweeperCloudTask.MessageType messageType, @NonNull String reqNo, @NonNull com.google.protobuf.ByteString payload) {
|
||||
SweeperCloudTask.SweeperMessage.Builder builder = SweeperCloudTask.SweeperMessage.newBuilder()
|
||||
private boolean sendAiCloudTaskCmd(@NonNull MessageType padMessageType, @NonNull AiCloudTask.MessageType messageType, @NonNull String reqNo, @NonNull com.google.protobuf.ByteString payload) {
|
||||
AiCloudTask.AiCloudPadMessage.Builder builder = AiCloudTask.AiCloudPadMessage.newBuilder()
|
||||
.setMsgType(messageType.getNumber())
|
||||
.setSysTime(System.currentTimeMillis());
|
||||
if (!TextUtils.isEmpty(reqNo)) {
|
||||
@@ -1906,8 +1908,8 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
if (payload != null && !payload.isEmpty()) {
|
||||
builder.setPayload(payload);
|
||||
}
|
||||
SweeperCloudTask.SweeperMessage message = builder.build();
|
||||
return sendPBMessage(MessageType.TYPE_SEND_SWEEPER_CLOUD_TASK_CMD.typeCode, message.toByteArray());
|
||||
AiCloudTask.AiCloudPadMessage message = builder.build();
|
||||
return sendPBMessage(padMessageType.typeCode, message.toByteArray());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1920,7 +1922,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendSweeperStartTaskResp(@NonNull String reqNo, @NonNull SweeperTask.StartTaskResp startTaskResp) {
|
||||
return sendSweeperCloudTaskCmd(SweeperCloudTask.MessageType.CloudPushTask, reqNo, startTaskResp.toByteString());
|
||||
return sendAiCloudTaskCmd(MessageType.TYPE_SEND_SWEEPER_CLOUD_TASK_CMD, AiCloudTask.MessageType.CloudPushTask, reqNo, startTaskResp.toByteString());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1933,7 +1935,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendSweeperTaskConfirmResp(@NonNull String reqNo, @NonNull SweeperTaskConfirm.TaskConfirmResp taskConfirmResp) {
|
||||
return sendSweeperCloudTaskCmd(SweeperCloudTask.MessageType.CloudPushTaskConfirm, reqNo, taskConfirmResp.toByteString());
|
||||
return sendAiCloudTaskCmd(MessageType.TYPE_SEND_SWEEPER_CLOUD_TASK_CMD, AiCloudTask.MessageType.CloudPushTaskConfirm, reqNo, taskConfirmResp.toByteString());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1946,7 +1948,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendSweeperStopTaskResp(@NonNull String reqNo, @NonNull SweeperTaskStop.StopTaskResp stopTaskResp) {
|
||||
return sendSweeperCloudTaskCmd(SweeperCloudTask.MessageType.CloudPushTaskStop, reqNo, stopTaskResp.toByteString());
|
||||
return sendAiCloudTaskCmd(MessageType.TYPE_SEND_SWEEPER_CLOUD_TASK_CMD, AiCloudTask.MessageType.CloudPushTaskStop, reqNo, stopTaskResp.toByteString());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1961,7 +1963,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendSweeperSuspendResumeTaskReq(boolean isSuspend, @NonNull String reqNo, @NonNull SweeperTaskSuspendResume.SuspendResumeTaskReq suspendResumeTaskReq) {
|
||||
return sendSweeperCloudTaskCmd(isSuspend ? SweeperCloudTask.MessageType.PadSendTaskSuspend : SweeperCloudTask.MessageType.PadSendTaskResume, reqNo, suspendResumeTaskReq.toByteString());
|
||||
return sendAiCloudTaskCmd(MessageType.TYPE_SEND_SWEEPER_CLOUD_TASK_CMD, isSuspend ? AiCloudTask.MessageType.PadSendTaskSuspend : AiCloudTask.MessageType.PadSendTaskResume, reqNo, suspendResumeTaskReq.toByteString());
|
||||
}
|
||||
|
||||
|
||||
@@ -1975,7 +1977,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendSweeperGetTaskReq(@NonNull String reqNo, @NonNull SweeperTask.GetTaskReq getTaskReq) {
|
||||
return sendSweeperCloudTaskCmd(SweeperCloudTask.MessageType.PadSendGetTaskReq, reqNo, getTaskReq.toByteString());
|
||||
return sendAiCloudTaskCmd(MessageType.TYPE_SEND_SWEEPER_CLOUD_TASK_CMD, AiCloudTask.MessageType.PadSendGetTaskReq, reqNo, getTaskReq.toByteString());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1988,7 +1990,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendSweeperAutopilotBootable(@NonNull String reqNo, @NonNull SweeperBootable.IsBootable isBootable) {
|
||||
return sendSweeperCloudTaskCmd(SweeperCloudTask.MessageType.PadSendBootable, reqNo, isBootable.toByteString());
|
||||
return sendAiCloudTaskCmd(MessageType.TYPE_SEND_SWEEPER_CLOUD_TASK_CMD, AiCloudTask.MessageType.PadSendBootable, reqNo, isBootable.toByteString());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2001,7 +2003,20 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendSweeperCloudSuspendResumeTaskResp(@NonNull String reqNo, @NonNull SweeperTaskCloudSuspendResume.BigTaskActionResp bigTaskActionResp) {
|
||||
return sendSweeperCloudTaskCmd(SweeperCloudTask.MessageType.CloudPushTaskSuspendResume, reqNo, bigTaskActionResp.toByteString());
|
||||
return sendAiCloudTaskCmd(MessageType.TYPE_SEND_SWEEPER_CLOUD_TASK_CMD, AiCloudTask.MessageType.CloudPushTaskSuspendResume, reqNo, bigTaskActionResp.toByteString());
|
||||
}
|
||||
|
||||
/**
|
||||
* PAD发起平行驾驶请求
|
||||
*
|
||||
* @param reqNo 请求编号
|
||||
* @param parallelRequest 参数
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
public boolean sendParallelDrivingReq(@NonNull String reqNo, @NonNull ParallelDrivingRequest.ParallelRequest parallelRequest) {
|
||||
return sendAiCloudTaskCmd(MessageType.TYPE_SEND_PARALLEL_DRIVING_REQ, AiCloudTask.MessageType.ParallelDrivingCmd, reqNo, parallelRequest.toByteString());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ import java.util.regex.Pattern;
|
||||
import bag_manager.BagManagerOuterClass;
|
||||
import chassis.SpecialVehicleTaskCmdOuterClass;
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
import mogo.yycp.paralleldriving.protocol.ParallelDrivingRequest;
|
||||
|
||||
/**
|
||||
* @ProjectName: lib-adas-fpga
|
||||
@@ -1194,6 +1195,18 @@ public class AdasManager implements IAdasNetCommApi {
|
||||
return mChannel != null && mChannel.sendSweeperCloudSuspendResumeTaskResp(reqNo, bigTaskActionResp);
|
||||
}
|
||||
|
||||
/**
|
||||
* PAD发起平行驾驶请求
|
||||
*
|
||||
* @param reqNo 请求编号
|
||||
* @param parallelRequest 参数
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
public boolean sendParallelDrivingReq(@NonNull String reqNo, @NonNull ParallelDrivingRequest.ParallelRequest parallelRequest) {
|
||||
return mChannel != null && mChannel.sendParallelDrivingReq(reqNo, parallelRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取工控机固定IP列表
|
||||
*
|
||||
|
||||
@@ -21,6 +21,7 @@ import java.util.Set;
|
||||
import bag_manager.BagManagerOuterClass;
|
||||
import chassis.SpecialVehicleTaskCmdOuterClass;
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
import mogo.yycp.paralleldriving.protocol.ParallelDrivingRequest;
|
||||
|
||||
/**
|
||||
* @author nie yunlong
|
||||
@@ -750,6 +751,15 @@ public interface IAdasNetCommApi {
|
||||
*/
|
||||
boolean sendSweeperCloudSuspendResumeTaskResp(@NonNull String reqNo, @NonNull SweeperTaskCloudSuspendResume.BigTaskActionResp bigTaskActionResp);
|
||||
|
||||
/**
|
||||
* PAD发起平行驾驶请求
|
||||
*
|
||||
* @param reqNo 请求编号
|
||||
* @param parallelRequest 参数
|
||||
* @return boolean
|
||||
*/
|
||||
boolean sendParallelDrivingReq(@NonNull String reqNo, @NonNull ParallelDrivingRequest.ParallelRequest parallelRequest);
|
||||
|
||||
// TODO 需求暂停 待讨论
|
||||
// boolean getRoutes();
|
||||
|
||||
|
||||
@@ -7,10 +7,10 @@ import com.mogo.support.obu.ObuScene;
|
||||
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.AiCloudTask;
|
||||
import com.zhjt.mogo.adas.data.bean.AdasParam;
|
||||
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics;
|
||||
import com.zhjt.mogo.adas.data.bean.UnableAutopilotReason;
|
||||
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.big.SweeperBigTaskStatus;
|
||||
@@ -29,6 +29,7 @@ import function_state_management.FunctionStates;
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
import mogo.v2x.MogoV2X;
|
||||
import mogo.v2x.RoadOverviewEvents;
|
||||
import mogo.yycp.paralleldriving.protocol.ParallelTaskProcessNoticeOuterClass;
|
||||
import mogo_msg.MogoReportMsg;
|
||||
import perception.TrafficLightOuterClass;
|
||||
import planning.RoboSweeperTaskIndexOuterClass;
|
||||
@@ -302,7 +303,7 @@ public interface OnAdasListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param taskInfo 数据
|
||||
*/
|
||||
void onSweeperFutianCloudTask(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTask.TaskInfo taskInfo);
|
||||
void onSweeperFutianCloudTask(@NonNull MessagePad.Header header, @NonNull AiCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTask.TaskInfo taskInfo);
|
||||
|
||||
/**
|
||||
* 2、云端下发子任务,请求pad确认(type:100002)-> sweeper_task_confirm.proto
|
||||
@@ -313,7 +314,7 @@ public interface OnAdasListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param taskConfirm 数据
|
||||
*/
|
||||
void onSweeperFutianCloudTaskConfirm(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskConfirm.TaskConfirm taskConfirm);
|
||||
void onSweeperFutianCloudTaskConfirm(@NonNull MessagePad.Header header, @NonNull AiCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskConfirm.TaskConfirm taskConfirm);
|
||||
|
||||
/**
|
||||
* 3、云端下发任务状态到pad(type:100003)-> sweeper_task_status.proto
|
||||
@@ -324,7 +325,7 @@ public interface OnAdasListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param taskStatusPush 数据
|
||||
*/
|
||||
void onSweeperFutianCloudTaskStatus(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskStatus.TaskStatusPush taskStatusPush);
|
||||
void onSweeperFutianCloudTaskStatus(@NonNull MessagePad.Header header, @NonNull AiCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskStatus.TaskStatusPush taskStatusPush);
|
||||
|
||||
/**
|
||||
* 4、云端请求pad结束任务(type:100004)-> sweeper_task_stop.proto
|
||||
@@ -335,7 +336,7 @@ public interface OnAdasListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param stopTaskReq 数据
|
||||
*/
|
||||
void onSweeperFutianCloudTaskStop(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskStop.StopTaskReq stopTaskReq);
|
||||
void onSweeperFutianCloudTaskStop(@NonNull MessagePad.Header header, @NonNull AiCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskStop.StopTaskReq stopTaskReq);
|
||||
|
||||
/**
|
||||
* 5、pad请求挂起任务(type:100005)-> sweeper_task_suspend_resume.proto
|
||||
@@ -347,7 +348,7 @@ public interface OnAdasListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param suspendResumeTaskResp 数据
|
||||
*/
|
||||
void onSweeperFutianCloudTaskSuspendResume(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskSuspendResume.SuspendResumeTaskResp suspendResumeTaskResp);
|
||||
void onSweeperFutianCloudTaskSuspendResume(@NonNull MessagePad.Header header, @NonNull AiCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskSuspendResume.SuspendResumeTaskResp suspendResumeTaskResp);
|
||||
|
||||
/**
|
||||
* 8、接管后回自驾-pad上报状态给云端 云端下发启动自驾(type: 100008)-> sweeper_autopilot.proto
|
||||
@@ -358,7 +359,7 @@ public interface OnAdasListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param isBootableResp 数据
|
||||
*/
|
||||
void onSweeperFutianCloudBootable(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperBootable.IsBootableResp isBootableResp);
|
||||
void onSweeperFutianCloudBootable(@NonNull MessagePad.Header header, @NonNull AiCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperBootable.IsBootableResp isBootableResp);
|
||||
|
||||
/**
|
||||
* 9、云端下发pad大任务状态(type: 100009)-> sweeper_big_task_status.proto
|
||||
@@ -369,7 +370,7 @@ public interface OnAdasListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param bigTaskStatusPush 数据
|
||||
*/
|
||||
void onSweeperFutianCloudBigTaskStatus(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush);
|
||||
void onSweeperFutianCloudBigTaskStatus(@NonNull MessagePad.Header header, @NonNull AiCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush);
|
||||
|
||||
/**
|
||||
* 10、云端下发任务暂停/恢复指令到pad(type: 100010)-> sweeper_task_cloud_suspend_resume.proto
|
||||
@@ -380,15 +381,27 @@ public interface OnAdasListener {
|
||||
* @param sysTime 当前时间戳
|
||||
* @param bigTaskActionPush 数据
|
||||
*/
|
||||
void onSweeperFutianCloudTaskCloudSuspendResume(@NonNull MessagePad.Header header, @NonNull SweeperCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskCloudSuspendResume.BigTaskActionPush bigTaskActionPush);
|
||||
void onSweeperFutianCloudTaskCloudSuspendResume(@NonNull MessagePad.Header header, @NonNull AiCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable SweeperTaskCloudSuspendResume.BigTaskActionPush bigTaskActionPush);
|
||||
|
||||
/**
|
||||
* 清扫车云端任务未知类型
|
||||
* 无人化场景
|
||||
* 平行驾驶请求相关状态反馈
|
||||
*
|
||||
* @param header 头
|
||||
* @param messageType 消息类型
|
||||
* @param reqNo 请求编号
|
||||
* @param sysTime 当前时间戳
|
||||
* @param parallelTaskProcessNotice 数据
|
||||
*/
|
||||
void onParallelDrivingResp(@NonNull MessagePad.Header header, @NonNull AiCloudTask.MessageType messageType, @Nullable String reqNo, long sysTime, @Nullable ParallelTaskProcessNoticeOuterClass.ParallelTaskProcessNotice parallelTaskProcessNotice);
|
||||
|
||||
/**
|
||||
* AI云端任务未知类型
|
||||
*
|
||||
* @param header 头
|
||||
* @param bytes 原始数据
|
||||
*/
|
||||
void onSweeperFutianCloudTaskUnknown(@NonNull MessagePad.Header header, @NonNull byte[] bytes);
|
||||
void onAiCloudTaskUnknown(@NonNull MessagePad.Header header, @NonNull byte[] bytes);
|
||||
|
||||
/**
|
||||
* Bag管理应答
|
||||
|
||||
@@ -73,6 +73,8 @@ public enum MessageType {
|
||||
TYPE_RECEIVE_SWEEPER_CLOUD_TASK_CMD(MessagePad.MessageType.MsgTypeTaskCmd, "云控下发清扫车任务指令"),
|
||||
TYPE_SEND_FSM_STATUS_REASON_QUERY_REQ(MessagePad.MessageType.MsgTypeFSMStatusReasonQueryReq, "FSM状态原因查询"),
|
||||
TYPE_RECEIVE_FSM_STATUS_REASON_QUERY_RESP(MessagePad.MessageType.MsgTypeFSMStatusReasonQueryResp, "FSM状态原因查询应答"),
|
||||
TYPE_SEND_PARALLEL_DRIVING_REQ(MessagePad.MessageType.MsgTypeParallelDrivingCmd, "平行驾驶请求"),
|
||||
TYPE_RECEIVE_PARALLEL_DRIVING_STATUS(MessagePad.MessageType.MsgTypeParallelDrivingCmd, "平行驾驶状态"),
|
||||
//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, "清扫车指标数据"),
|
||||
|
||||
@@ -13,6 +13,7 @@ import java.util.TimerTask;
|
||||
|
||||
import chassis.Chassis;
|
||||
import chassis.ChassisStatesOuterClass;
|
||||
import chassis.VehicleStateOuterClass;
|
||||
import system_master.SystemStatusInfo;
|
||||
|
||||
/**
|
||||
@@ -26,6 +27,7 @@ public class AutopilotAbility250 {
|
||||
private static final String TAG = AutopilotAbility250.class.getSimpleName();
|
||||
private volatile Timer timer;
|
||||
private ChassisStatesOuterClass.ChassisStates chassisStates;
|
||||
private VehicleStateOuterClass.VehicleState vehicleState;
|
||||
private int mapVersion = -1;//MAP版本
|
||||
private int masterVersion = -1;//Master版本
|
||||
private OnAutopilotAbilityListener listener;
|
||||
@@ -57,6 +59,10 @@ public class AutopilotAbility250 {
|
||||
this.chassisStates = chassisStates;
|
||||
}
|
||||
|
||||
protected void setVehicleState(VehicleStateOuterClass.VehicleState vehicleState) {
|
||||
this.vehicleState = vehicleState;
|
||||
}
|
||||
|
||||
private void onCallback(SystemStatusInfo.StatusInfo statusInfo) {
|
||||
boolean isAutopilotAbility = true;//是否能启动自动驾驶
|
||||
ArrayList<UnableAutopilotReason> unableAutopilotReasons = null;//不能启动自动驾驶原因
|
||||
@@ -144,17 +150,19 @@ public class AutopilotAbility250 {
|
||||
unableAutopilotReasons = AutopilotAbilityManager.getInstance().addUnableAutopilotReason(unableAutopilotReasons, UnableAutopilotReason.SourceType.CHASSIS, "档位异常");
|
||||
}
|
||||
}
|
||||
//TODO 关于手刹:不同车型的实现不同所以目前没法使用此字段
|
||||
|
||||
// //电子驻车制动系统
|
||||
// if (chassisStates.hasEpbSystemStates()) {
|
||||
// ChassisStatesOuterClass.EPBSystemStates epb = chassisStates.getEpbSystemStates();
|
||||
// if (epb.hasEpbEnableState()){
|
||||
// epb.getEpbWorkState();
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
if (vehicleState != null) {
|
||||
//TODO 关于手刹:目前只有老底盘中存在这个字段,df360开始,其他车型未知
|
||||
//电子驻车制动系统
|
||||
if (vehicleState.hasParkingBrake()) {
|
||||
boolean isBrake = vehicleState.getParkingBrake();
|
||||
if (isBrake) {
|
||||
isAutopilotAbility = false;
|
||||
unableAutopilotReasons = AutopilotAbilityManager.getInstance().addUnableAutopilotReason(unableAutopilotReasons, UnableAutopilotReason.SourceType.CHASSIS, "施加驻车");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (listener != null) {
|
||||
listener.onAutopilotAbility(isAutopilotAbility, unableAutopilotReasons);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import java.util.ArrayList;
|
||||
|
||||
import chassis.Chassis;
|
||||
import chassis.ChassisStatesOuterClass;
|
||||
import chassis.VehicleStateOuterClass;
|
||||
import system_master.SsmInfo;
|
||||
|
||||
/**
|
||||
@@ -21,6 +22,7 @@ import system_master.SsmInfo;
|
||||
public class AutopilotAbility350And360 {
|
||||
private static final String TAG = AutopilotAbility250.class.getSimpleName();
|
||||
private ChassisStatesOuterClass.ChassisStates chassisStates;
|
||||
private VehicleStateOuterClass.VehicleState vehicleState;
|
||||
private int masterVersion = -1;//Master版本
|
||||
private OnAutopilotAbilityListener listener;
|
||||
|
||||
@@ -43,6 +45,10 @@ public class AutopilotAbility350And360 {
|
||||
this.chassisStates = chassisStates;
|
||||
}
|
||||
|
||||
protected void setVehicleState(VehicleStateOuterClass.VehicleState vehicleState) {
|
||||
this.vehicleState = vehicleState;
|
||||
}
|
||||
|
||||
private void onCallback(SsmInfo.SsmStatusInf statusInfo) {
|
||||
boolean isAutopilotAbility = true;//是否能启动自动驾驶
|
||||
ArrayList<UnableAutopilotReason> unableAutopilotReasons = null;//不能启动自动驾驶原因
|
||||
@@ -117,17 +123,19 @@ public class AutopilotAbility350And360 {
|
||||
unableAutopilotReasons = AutopilotAbilityManager.getInstance().addUnableAutopilotReason(unableAutopilotReasons, UnableAutopilotReason.SourceType.CHASSIS, "档位异常");
|
||||
}
|
||||
}
|
||||
//TODO 关于手刹:不同车型的实现不同所以目前没法使用此字段
|
||||
|
||||
// //电子驻车制动系统
|
||||
// if (chassisStates.hasEpbSystemStates()) {
|
||||
// ChassisStatesOuterClass.EPBSystemStates epb = chassisStates.getEpbSystemStates();
|
||||
// if (epb.hasEpbEnableState()){
|
||||
// epb.getEpbWorkState();
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
if (vehicleState != null) {
|
||||
//TODO 关于手刹:目前只有老底盘中存在这个字段,df360开始,其他车型未知
|
||||
//电子驻车制动系统
|
||||
if (vehicleState.hasParkingBrake()) {
|
||||
boolean isBrake = vehicleState.getParkingBrake();
|
||||
if (isBrake) {
|
||||
isAutopilotAbility = false;
|
||||
unableAutopilotReasons = AutopilotAbilityManager.getInstance().addUnableAutopilotReason(unableAutopilotReasons, UnableAutopilotReason.SourceType.CHASSIS, "施加驻车");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (listener != null) {
|
||||
listener.onAutopilotAbility(isAutopilotAbility, unableAutopilotReasons);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import java.util.TimerTask;
|
||||
|
||||
import chassis.Chassis;
|
||||
import chassis.ChassisStatesOuterClass;
|
||||
import chassis.VehicleStateOuterClass;
|
||||
import function_state_management.FSMStatusReasonQueryOuterClass;
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
import system_master.SsmInfo;
|
||||
@@ -206,6 +207,20 @@ public class AutopilotAbilityManager implements AutopilotAbility230.OnAutopilotA
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 老底盘中手刹状态更新(新底盘PB中没有所以单独传递)
|
||||
*
|
||||
* @param vehicleState 底盘
|
||||
*/
|
||||
public void setVehicleState(VehicleStateOuterClass.VehicleState vehicleState) {
|
||||
if (autopilotAbility250 != null) {
|
||||
autopilotAbility250.setVehicleState(vehicleState);
|
||||
}
|
||||
if (autopilotAbility350And360 != null) {
|
||||
autopilotAbility350And360.setVehicleState(vehicleState);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* FSM OFF状态原因更新
|
||||
*
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.zhidao.support.adas.high.OnAdasListener;
|
||||
import com.zhidao.support.adas.high.common.ByteUtil;
|
||||
import com.zhidao.support.adas.high.common.CupidLogUtils;
|
||||
import com.zhidao.support.adas.high.protocol.RawData;
|
||||
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask;
|
||||
import com.zhjt.mogo.adas.data.AiCloudTask;
|
||||
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.big.SweeperBigTaskStatus;
|
||||
@@ -20,32 +20,33 @@ import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus;
|
||||
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop;
|
||||
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
import mogo.yycp.paralleldriving.protocol.ParallelTaskProcessNoticeOuterClass;
|
||||
|
||||
/**
|
||||
* 清扫车云端任务调度
|
||||
* 云控任务:清扫车任务调度、无人化场景,平行驾驶请求相关指令及状态反馈
|
||||
*/
|
||||
public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
|
||||
public class AiCloudTaskMessage extends MyAbstractMessageHandler {
|
||||
|
||||
public SweeperCloudTaskMessage() {
|
||||
public AiCloudTaskMessage() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
|
||||
byte[] bytes = raw.originalData.toByteArray();
|
||||
SweeperCloudTask.SweeperMessage message = SweeperCloudTask.SweeperMessage.parser().parseFrom(bytes, raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
|
||||
AdasChannel.calculateTimeConsumingOnDispatchRaw("清扫车云端任务调度", raw.receiveTime);
|
||||
AiCloudTask.AiCloudPadMessage message = AiCloudTask.AiCloudPadMessage.parser().parseFrom(bytes, raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
|
||||
AdasChannel.calculateTimeConsumingOnDispatchRaw("云控任务", raw.receiveTime);
|
||||
long nowTime = 0;
|
||||
if (CupidLogUtils.isEnableLog())
|
||||
nowTime = SystemClock.elapsedRealtime();
|
||||
if (adasListener != null) {
|
||||
MessagePad.Header header = raw.getHeader();
|
||||
SweeperCloudTask.MessageType msgType = SweeperCloudTask.MessageType.forNumber(message.getMsgType());//消息类型,响应请求时,使用对应请求的消息类型
|
||||
AiCloudTask.MessageType msgType = AiCloudTask.MessageType.forNumber(message.getMsgType());//消息类型,响应请求时,使用对应请求的消息类型
|
||||
String reqNo = message.getReqNo(); //请求编号,响应请求时,使用请求方的请求编号
|
||||
long sysTime = message.getSysTime(); //当前时间戳
|
||||
ByteString payload = message.getPayload();
|
||||
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) {
|
||||
if (msgType == AiCloudTask.MessageType.CloudPushTask || msgType == AiCloudTask.MessageType.PadSendGetTaskReq) {
|
||||
//1、云端下发大任务信息(type: 100001)-> sweeper_task.proto
|
||||
//7、pad主动拉取当前车辆正在执行任务的完整信息(type:100007)-> sweeper_task.proto
|
||||
SweeperTask.TaskInfo taskInfo = null;
|
||||
@@ -55,7 +56,7 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
|
||||
// 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) {
|
||||
} else if (msgType == AiCloudTask.MessageType.CloudPushTaskConfirm) {
|
||||
//2、云端下发子任务,请求pad确认(type:100002)-> sweeper_task_confirm.proto
|
||||
SweeperTaskConfirm.TaskConfirm taskConfirm = null;
|
||||
if (isExistPayload) {
|
||||
@@ -64,7 +65,7 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
|
||||
// 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) {
|
||||
} else if (msgType == AiCloudTask.MessageType.CloudPushTaskStatus) {
|
||||
//3、云端下发任务状态到pad(type:100003)-> sweeper_task_status.proto
|
||||
SweeperTaskStatus.TaskStatusPush taskStatusPush = null;
|
||||
if (isExistPayload) {
|
||||
@@ -73,7 +74,7 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
|
||||
// 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) {
|
||||
} else if (msgType == AiCloudTask.MessageType.CloudPushTaskStop) {
|
||||
//4、云端请求pad结束任务(type:100004)-> sweeper_task_stop.proto
|
||||
SweeperTaskStop.StopTaskReq stopTaskReq = null;
|
||||
if (isExistPayload) {
|
||||
@@ -82,7 +83,7 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
|
||||
// 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) {
|
||||
} else if (msgType == AiCloudTask.MessageType.PadSendTaskSuspend || msgType == AiCloudTask.MessageType.PadSendTaskResume) {
|
||||
//5、pad请求挂起任务(type:100005)-> sweeper_task_suspend_resume.proto
|
||||
//6、pad请求恢复挂起的任务(type:100006)-> sweeper_task_suspend_resume.proto
|
||||
SweeperTaskSuspendResume.SuspendResumeTaskResp suspendResumeTaskResp = null;
|
||||
@@ -92,7 +93,7 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
|
||||
// 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) {
|
||||
} else if (msgType == AiCloudTask.MessageType.PadSendBootable) {
|
||||
//8、接管后回自驾-pad上报状态给云端 云端下发启动自驾(type: 100008)-> sweeper_autopilot.proto
|
||||
SweeperBootable.IsBootableResp isBootableResp = null;
|
||||
if (isExistPayload) {
|
||||
@@ -101,7 +102,7 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
|
||||
// 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) {
|
||||
} else if (msgType == AiCloudTask.MessageType.CloudPushBigTaskStatus) {
|
||||
//9、云端下发pad大任务状态(type: 100009)-> sweeper_big_task_status.proto
|
||||
SweeperBigTaskStatus.BigTaskStatusPush bigTaskStatusPush = null;
|
||||
if (isExistPayload) {
|
||||
@@ -110,7 +111,7 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
|
||||
// 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) {
|
||||
} else if (msgType == AiCloudTask.MessageType.CloudPushTaskSuspendResume) {
|
||||
//10、云端下发任务暂停/恢复指令到pad(type: 100010)
|
||||
SweeperTaskCloudSuspendResume.BigTaskActionPush bigTaskActionPush = null;
|
||||
if (isExistPayload) {
|
||||
@@ -119,12 +120,19 @@ public class SweeperCloudTaskMessage extends MyAbstractMessageHandler {
|
||||
// Log.i("SweeperCloudTaskMessage", " msgType=" + msgType + " " + (bigTaskActionPush == null ? "null" :
|
||||
// TextFormat.printer().escapingNonAscii(false).printToString(bigTaskActionPush)));
|
||||
adasListener.onSweeperFutianCloudTaskCloudSuspendResume(header, msgType, reqNo, sysTime, bigTaskActionPush);
|
||||
} else if (msgType == AiCloudTask.MessageType.ParallelDrivingCmd) {
|
||||
//无人化场景,平行驾驶请求相关指令及状态反馈
|
||||
ParallelTaskProcessNoticeOuterClass.ParallelTaskProcessNotice parallelTaskProcessNotice = null;
|
||||
if (isExistPayload) {
|
||||
parallelTaskProcessNotice = ParallelTaskProcessNoticeOuterClass.ParallelTaskProcessNotice.parseFrom(payload);
|
||||
}
|
||||
adasListener.onParallelDrivingResp(header, msgType, reqNo, sysTime, parallelTaskProcessNotice);
|
||||
} else {
|
||||
//未知数据类型
|
||||
CupidLogUtils.i("SweeperCloudTaskMessage", " 错误数据=" + ByteUtil.byteArrToHex(bytes));
|
||||
adasListener.onSweeperFutianCloudTaskUnknown(header, bytes);
|
||||
adasListener.onAiCloudTaskUnknown(header, bytes);
|
||||
}
|
||||
}
|
||||
AdasChannel.calculateTimeConsumingBusiness("清扫车云端任务调度", nowTime);
|
||||
AdasChannel.calculateTimeConsumingBusiness("云控任务", nowTime);
|
||||
}
|
||||
}
|
||||
@@ -42,7 +42,7 @@ public class MyMessageFactory implements IMyMessageFactory {
|
||||
private IMsg v2nCongestionEventMessage;//主车附近事件推送
|
||||
private IMsg v2nGlobalPathEventsMessage;//主车路径全局事件推送
|
||||
private IMsg getParamRespMessage;//参数获取应答
|
||||
private IMsg sweeperCloudTaskMessage;//云控下发清扫车任务指令
|
||||
private IMsg aiCloudTaskMessage;//云控任务:清扫车任务指令、无人化场景,平行驾驶请求相关指令及状态反馈
|
||||
private IMsg m1StitchedVideoMessage;//M1拼接视频
|
||||
private IMsg fSMStatusReasonRespondMessage;//FSM状态原因查询
|
||||
|
||||
@@ -228,12 +228,12 @@ public class MyMessageFactory implements IMyMessageFactory {
|
||||
getParamRespMessage = new GetParamRespMessage();
|
||||
}
|
||||
return getParamRespMessage;
|
||||
} else if (messageType == MessageType.TYPE_RECEIVE_SWEEPER_CLOUD_TASK_CMD.typeCode) {
|
||||
//云控下发清扫车任务指令
|
||||
if (sweeperCloudTaskMessage == null) {
|
||||
sweeperCloudTaskMessage = new SweeperCloudTaskMessage();
|
||||
} else if (messageType == MessageType.TYPE_RECEIVE_SWEEPER_CLOUD_TASK_CMD.typeCode || messageType == MessageType.TYPE_RECEIVE_PARALLEL_DRIVING_STATUS.typeCode) {
|
||||
//云控任务:清扫车任务指令、无人化场景,平行驾驶请求相关指令及状态反馈
|
||||
if (aiCloudTaskMessage == null) {
|
||||
aiCloudTaskMessage = new AiCloudTaskMessage();
|
||||
}
|
||||
return sweeperCloudTaskMessage;
|
||||
return aiCloudTaskMessage;
|
||||
} else if (messageType == MessageType.TYPE_RECEIVE_M1_STITCHED_VIDEO.typeCode) {
|
||||
//M1拼接视频
|
||||
if (m1StitchedVideoMessage == null) {
|
||||
|
||||
@@ -26,6 +26,7 @@ public class VehicleStateMessage extends MyAbstractMessageHandler {
|
||||
long nowTime = 0;
|
||||
if (CupidLogUtils.isEnableLog())
|
||||
nowTime = SystemClock.elapsedRealtime();
|
||||
AutopilotAbilityManager.getInstance().setVehicleState(vehicleState);
|
||||
ChassisStatesOuterClass.ChassisStates chassisStates = compatibility(adasListener, raw, vehicleState);
|
||||
if (adasListener != null) {
|
||||
//TODO 暂时关闭老底盘转发 后期 会删除 onVehicleState
|
||||
|
||||
Reference in New Issue
Block a user