[dev_sweeper310][adas]云控清扫车收发接口添加,添加接口使用说明

This commit is contained in:
xinfengkun
2023-04-26 17:05:19 +08:00
parent 22c8e10708
commit 59db2bf7c4
28 changed files with 2107 additions and 60 deletions

View File

@@ -55,6 +55,11 @@ import com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS
import com.zhidao.support.adas.high.common.CupidLogUtils
import com.zhidao.support.adas.high.common.MessageType
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.confirm.SweeperTaskConfirm
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
import com.zhjt.service.chain.ChainLog
import com.zhjt.service.chain.TracingConstants
import io.netty.channel.Channel
@@ -829,6 +834,80 @@ class MoGoAutopilotControlProvider :
AdasManager.getInstance().sendRoboSweeperFuTianTaskCmd(fuTianTaskCmd)
}
/**
* 开始大任务响应
* 1、云端下发大任务信息type: 100001-> sweeper_task.proto/StartTaskResp 响应信息
*
* @param reqNo 请求编号
* @param startTaskResp 参数
* @return boolean
*/
override fun sendSweeperStartTaskResp(reqNo: String, startTaskResp: SweeperTask.StartTaskResp): Boolean {
return AdasManager.getInstance().sendSweeperStartTaskResp(reqNo, startTaskResp)
}
/**
* 子任务安全员确认响应
* 2、云端下发子任务请求pad确认type100002-> sweeper_task_confirm.proto/TaskConfirmResp 响应信息
*
* @param reqNo 请求编号
* @param taskConfirmResp 参数
* @return boolean
*/
override fun sendSweeperTaskConfirmResp(reqNo: String, taskConfirmResp: SweeperTaskConfirm.TaskConfirmResp): Boolean {
return AdasManager.getInstance().sendSweeperTaskConfirmResp(reqNo, taskConfirmResp)
}
/**
* 结束任务响应
* 4、云端请求pad结束任务type100004-> sweeper_task_stop.proto/StopTaskResp 响应信息
*
* @param reqNo 请求编号
* @param stopTaskResp 参数
* @return boolean
*/
override fun sendSweeperStopTaskResp(reqNo: String, stopTaskResp: SweeperTaskStop.StopTaskResp): Boolean {
return AdasManager.getInstance().sendSweeperStopTaskResp(reqNo, stopTaskResp)
}
/**
* 挂起任务 恢复挂起的任务
* 5、pad请求挂起任务type100005-> sweeper_task_suspend_resume.proto/SuspendResumeTaskReq
* 6、pad请求恢复挂起的任务type100006-> sweeper_task_suspend_resume.proto/SuspendResumeTaskReq
*
* @param isSuspend true挂起任务 false恢复挂起的任务
* @param reqNo 请求编号
* @param suspendResumeTaskReq 参数
* @return boolean
*/
override fun sendSweeperSuspendResumeTaskReq(isSuspend: Boolean, reqNo: String, suspendResumeTaskReq: SweeperTaskSuspendResume.SuspendResumeTaskReq): Boolean {
return AdasManager.getInstance().sendSweeperSuspendResumeTaskReq(isSuspend,reqNo, suspendResumeTaskReq)
}
/**
* pad主动拉取当前车辆正在执行任务的完整信息请求
* 7、pad主动拉取当前车辆正在执行任务的完整信息type100007-> sweeper_task.proto/GetTaskReq
*
* @param reqNo 请求编号
* @param getTaskReq 参数
* @return boolean
*/
override fun sendSweeperGetTaskReq(reqNo: String, getTaskReq: SweeperTask.GetTaskReq): Boolean {
return AdasManager.getInstance().sendSweeperGetTaskReq(reqNo, getTaskReq)
}
/**
* pad上报是否可以进自驾
* 8、接管后回自驾-pad上报状态给云端 云端下发启动自驾type: 100008sweeper_bootable.proto/IsBootable
*
* @param reqNo 请求编号
* @param isBootable 参数
* @return boolean
*/
override fun sendSweeperAutopilotBootable(reqNo: String, isBootable: SweeperBootable.IsBootable): Boolean {
return AdasManager.getInstance().sendSweeperAutopilotBootable(reqNo, isBootable)
}
override fun setIsDrawPointCloud(isDrawPointCloud: Boolean) {
if (isDrawPointCloud) {
AdasManager.getInstance().subscribeInterface(

View File

@@ -60,6 +60,14 @@ import com.zhidao.support.adas.high.AdasManager
import com.zhidao.support.adas.high.OnAdasListener
import com.zhidao.support.adas.high.common.ProtocolStatus
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.confirm.SweeperTaskConfirm
import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
import com.zhjt.service.chain.ChainLog
import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD
import function_state_management.FunctionStates
@@ -615,6 +623,99 @@ class MoGoAdasListenerImpl : OnAdasListener {
}
}
/**
* 1、云端下发大任务信息type: 100001-> sweeper_task.proto
* 7、pad主动拉取当前车辆正在执行任务的完整信息type100007-> sweeper_task.proto
*
* @param header 头
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param taskInfo 数据
*/
override fun onSweeperFutianCloudTask(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskInfo: SweeperTask.TaskInfo) {
CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTask(messageType, reqNo, sysTime, taskInfo)
}
/**
* 2、云端下发子任务请求pad确认type100002-> sweeper_task_confirm.proto
*
* @param header 头
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param taskConfirm 数据
*/
override fun onSweeperFutianCloudTaskConfirm(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskConfirm: SweeperTaskConfirm.TaskConfirm) {
CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTaskConfirm(messageType, reqNo, sysTime, taskConfirm)
}
/**
* 3、云端下发任务状态到padtype100003-> sweeper_task_status.proto
*
* @param header 头
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param taskStatusPush 数据
*/
override fun onSweeperFutianCloudTaskStatus(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskStatusPush: SweeperTaskStatus.TaskStatusPush) {
CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTaskStatus(messageType, reqNo, sysTime, taskStatusPush)
}
/**
* 4、云端请求pad结束任务type100004-> sweeper_task_stop.proto
*
* @param header 头
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param stopTaskReq 数据
*/
override fun onSweeperFutianCloudTaskStop(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, stopTaskReq: SweeperTaskStop.StopTaskReq) {
CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTaskStop(messageType, reqNo, sysTime, stopTaskReq)
}
/**
* 5、pad请求挂起任务type100005-> sweeper_task_suspend_resume.proto
* 6、pad请求恢复挂起的任务type100006-> sweeper_task_suspend_resume.proto
*
* @param header 头
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param suspendResumeTaskResp 数据
*/
override fun onSweeperFutianCloudTaskSuspendResume(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, suspendResumeTaskResp: SweeperTaskSuspendResume.SuspendResumeTaskResp) {
CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudTaskSuspendResume(messageType, reqNo, sysTime, suspendResumeTaskResp)
}
/**
* 8、接管后回自驾-pad上报状态给云端 云端下发启动自驾type: 100008-> sweeper_autopilot.proto
*
* @param header 头
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param isBootableResp 数据
*/
override fun onSweeperFutianCloudBootable(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, isBootableResp: SweeperBootable.IsBootableResp) {
CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudBootable(messageType, reqNo, sysTime, isBootableResp)
}
/**
* 9、云端下发pad大任务状态type: 100009-> sweeper_big_task_status.proto
*
* @param header 头
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param bigTaskStatusPush 数据
*/
override fun onSweeperFutianCloudBigTaskStatus(header: MessagePad.Header, messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, bigTaskStatusPush: SweeperBigTaskStatus.BigTaskStatusPush) {
CallerSweeperFutianCloudTaskListenerManager.invokeSweeperFutianCloudBigTaskStatus(messageType, reqNo, sysTime, bigTaskStatusPush)
}
/**
* Bag管理应答
*

View File

@@ -2,9 +2,15 @@ package com.mogo.eagle.core.function.api.autopilot
import chassis.SpecialVehicleTaskCmdOuterClass
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
import com.mogo.eagle.core.data.deva.badcase.BagManagerEntity
import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult
import com.mogo.eagle.core.data.deva.badcase.BagManagerEntity
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.confirm.SweeperTaskConfirm.TaskConfirmResp
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskResp
/**
* @author xiaoyuzhou
@@ -291,6 +297,69 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
*/
fun sendSweeperFuTianTaskCmd(fuTianTaskCmd: SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd)
/**
* 开始大任务响应
* 1、云端下发大任务信息type: 100001-> sweeper_task.proto/StartTaskResp 响应信息
*
* @param reqNo 请求编号
* @param startTaskResp 参数
* @return boolean
*/
fun sendSweeperStartTaskResp(reqNo: String, startTaskResp: StartTaskResp): Boolean
/**
* 子任务安全员确认响应
* 2、云端下发子任务请求pad确认type100002-> sweeper_task_confirm.proto/TaskConfirmResp 响应信息
*
* @param reqNo 请求编号
* @param taskConfirmResp 参数
* @return boolean
*/
fun sendSweeperTaskConfirmResp(reqNo: String, taskConfirmResp: TaskConfirmResp): Boolean
/**
* 结束任务响应
* 4、云端请求pad结束任务type100004-> sweeper_task_stop.proto/StopTaskResp 响应信息
*
* @param reqNo 请求编号
* @param stopTaskResp 参数
* @return boolean
*/
fun sendSweeperStopTaskResp(reqNo: String, stopTaskResp: StopTaskResp): Boolean
/**
* 挂起任务 恢复挂起的任务
* 5、pad请求挂起任务type100005-> sweeper_task_suspend_resume.proto/SuspendResumeTaskReq
* 6、pad请求恢复挂起的任务type100006-> sweeper_task_suspend_resume.proto/SuspendResumeTaskReq
*
* @param isSuspend true挂起任务 false恢复挂起的任务
* @param reqNo 请求编号
* @param suspendResumeTaskReq 参数
* @return boolean
*/
fun sendSweeperSuspendResumeTaskReq(isSuspend: Boolean, reqNo: String, suspendResumeTaskReq: SuspendResumeTaskReq): Boolean
/**
* pad主动拉取当前车辆正在执行任务的完整信息请求
* 7、pad主动拉取当前车辆正在执行任务的完整信息type100007-> sweeper_task.proto/GetTaskReq
*
* @param reqNo 请求编号
* @param getTaskReq 参数
* @return boolean
*/
fun sendSweeperGetTaskReq(reqNo: String, getTaskReq: GetTaskReq): Boolean
/**
* pad上报是否可以进自驾
* 8、接管后回自驾-pad上报状态给云端 云端下发启动自驾type: 100008sweeper_bootable.proto/IsBootable
*
* @param reqNo 请求编号
* @param isBootable 参数
* @return boolean
*/
fun sendSweeperAutopilotBootable(reqNo: String, isBootable: IsBootable): Boolean
/**
* 打开点云绘制
*

View File

@@ -0,0 +1,89 @@
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.confirm.SweeperTaskConfirm.TaskConfirm
import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus.TaskStatusPush
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskReq
/**
* 清扫车(福田)云端任务接口
*/
interface IMoGoSweeperFutianCloudTaskListener {
/**
* 1、云端下发大任务信息type: 100001-> sweeper_task.proto
* 7、pad主动拉取当前车辆正在执行任务的完整信息type100007-> sweeper_task.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param taskInfo 数据
*/
fun onSweeperFutianCloudTask(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskInfo: SweeperTask.TaskInfo)
/**
* 2、云端下发子任务请求pad确认type100002-> sweeper_task_confirm.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param taskConfirm 数据
*/
fun onSweeperFutianCloudTaskConfirm(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskConfirm: TaskConfirm)
/**
* 3、云端下发任务状态到padtype100003-> sweeper_task_status.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param taskStatusPush 数据
*/
fun onSweeperFutianCloudTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskStatusPush: TaskStatusPush)
/**
* 4、云端请求pad结束任务type100004-> sweeper_task_stop.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param stopTaskReq 数据
*/
fun onSweeperFutianCloudTaskStop(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, stopTaskReq: StopTaskReq)
/**
* 5、pad请求挂起任务type100005-> sweeper_task_suspend_resume.proto
* 6、pad请求恢复挂起的任务type100006-> sweeper_task_suspend_resume.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param suspendResumeTaskResp 数据
*/
fun onSweeperFutianCloudTaskSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, suspendResumeTaskResp: SuspendResumeTaskResp)
/**
* 8、接管后回自驾-pad上报状态给云端 云端下发启动自驾type: 100008-> sweeper_autopilot.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param isBootableResp 数据
*/
fun onSweeperFutianCloudBootable(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, isBootableResp: IsBootableResp)
/**
* 9、云端下发pad大任务状态type: 100009-> sweeper_big_task_status.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param bigTaskStatusPush 数据
*/
fun onSweeperFutianCloudBigTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, bigTaskStatusPush: BigTaskStatusPush)
}

View File

@@ -3,22 +3,29 @@ package com.mogo.eagle.core.function.call.autopilot
import android.os.SystemClock
import chassis.SpecialVehicleTaskCmdOuterClass
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
import com.mogo.eagle.core.data.deva.badcase.BagManagerEntity
import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.data.deva.badcase.BagManagerEntity
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_EAGLE_START_AUTOPILOT
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_ADAS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT
import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotControlProvider
import com.mogo.eagle.core.function.call.base.CallerBase
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.confirm.SweeperTaskConfirm.TaskConfirmResp
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskResp
import com.zhjt.service.chain.ChainLog
import com.zhjt.service.chain.TracingConstants
import com.zhjt.service_biz.BizConfig
import kotlin.random.Random
/**
*@author xiaoyuzhou
*@date 2021/10/14 2:15 下午
@@ -422,6 +429,81 @@ object CallerAutoPilotControlManager {
providerApi?.sendSweeperFuTianTaskCmd(fuTianTaskCmd)
}
/**
* 开始大任务响应
* 1、云端下发大任务信息type: 100001-> sweeper_task.proto/StartTaskResp 响应信息
*
* @param reqNo 请求编号
* @param startTaskResp 参数
* @return boolean
*/
fun sendSweeperStartTaskResp( reqNo: String, startTaskResp: StartTaskResp): Boolean {
return providerApi?.sendSweeperStartTaskResp(reqNo, startTaskResp) ?: false
}
/**
* 子任务安全员确认响应
* 2、云端下发子任务请求pad确认type100002-> sweeper_task_confirm.proto/TaskConfirmResp 响应信息
*
* @param reqNo 请求编号
* @param taskConfirmResp 参数
* @return boolean
*/
fun sendSweeperTaskConfirmResp( reqNo: String, taskConfirmResp: TaskConfirmResp): Boolean {
return providerApi?.sendSweeperTaskConfirmResp(reqNo, taskConfirmResp) ?: false
}
/**
* 结束任务响应
* 4、云端请求pad结束任务type100004-> sweeper_task_stop.proto/StopTaskResp 响应信息
*
* @param reqNo 请求编号
* @param stopTaskResp 参数
* @return boolean
*/
fun sendSweeperStopTaskResp( reqNo: String, stopTaskResp: StopTaskResp): Boolean {
return providerApi?.sendSweeperStopTaskResp(reqNo, stopTaskResp) ?: false
}
/**
* 挂起任务 恢复挂起的任务
* 5、pad请求挂起任务type100005-> sweeper_task_suspend_resume.proto/SuspendResumeTaskReq
* 6、pad请求恢复挂起的任务type100006-> sweeper_task_suspend_resume.proto/SuspendResumeTaskReq
*
* @param isSuspend true挂起任务 false恢复挂起的任务
* @param reqNo 请求编号
* @param suspendResumeTaskReq 参数
* @return boolean
*/
fun sendSweeperSuspendResumeTaskReq(isSuspend: Boolean, reqNo: String, suspendResumeTaskReq: SuspendResumeTaskReq): Boolean {
return providerApi?.sendSweeperSuspendResumeTaskReq(isSuspend, reqNo, suspendResumeTaskReq) ?: false
}
/**
* pad主动拉取当前车辆正在执行任务的完整信息请求
* 7、pad主动拉取当前车辆正在执行任务的完整信息type100007-> sweeper_task.proto/GetTaskReq
*
* @param reqNo 请求编号
* @param getTaskReq 参数
* @return boolean
*/
fun sendSweeperGetTaskReq( reqNo: String, getTaskReq: GetTaskReq): Boolean {
return providerApi?.sendSweeperGetTaskReq(reqNo, getTaskReq) ?: false
}
/**
* pad上报是否可以进自驾
* 8、接管后回自驾-pad上报状态给云端 云端下发启动自驾type: 100008sweeper_bootable.proto/IsBootable
*
* @param reqNo 请求编号
* @param isBootable 参数
* @return boolean
*/
fun sendSweeperAutopilotBootable( reqNo: String, isBootable: IsBootable): Boolean {
return providerApi?.sendSweeperAutopilotBootable(reqNo, isBootable) ?: false
}
/**
* 打开点云绘制
*/

View File

@@ -0,0 +1,125 @@
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.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.confirm.SweeperTaskConfirm
import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
/**
* 清扫车(福田)云端任务接口
*/
object CallerSweeperFutianCloudTaskListenerManager : CallerBase<IMoGoSweeperFutianCloudTaskListener>() {
/**
* 1、云端下发大任务信息type: 100001-> sweeper_task.proto
* 7、pad主动拉取当前车辆正在执行任务的完整信息type100007-> sweeper_task.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param taskInfo 数据
*/
fun invokeSweeperFutianCloudTask(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskInfo: SweeperTask.TaskInfo) {
M_LISTENERS.forEach {
val listener = it.value
listener.onSweeperFutianCloudTask(messageType, reqNo, sysTime, taskInfo)
}
}
/**
* 2、云端下发子任务请求pad确认type100002-> sweeper_task_confirm.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param taskConfirm 数据
*/
fun invokeSweeperFutianCloudTaskConfirm(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskConfirm: SweeperTaskConfirm.TaskConfirm) {
M_LISTENERS.forEach {
val listener = it.value
listener.onSweeperFutianCloudTaskConfirm(messageType, reqNo, sysTime, taskConfirm)
}
}
/**
* 3、云端下发任务状态到padtype100003-> sweeper_task_status.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param taskStatusPush 数据
*/
fun invokeSweeperFutianCloudTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, taskStatusPush: SweeperTaskStatus.TaskStatusPush) {
M_LISTENERS.forEach {
val listener = it.value
listener.onSweeperFutianCloudTaskStatus(messageType, reqNo, sysTime, taskStatusPush)
}
}
/**
* 4、云端请求pad结束任务type100004-> sweeper_task_stop.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param stopTaskReq 数据
*/
fun invokeSweeperFutianCloudTaskStop(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, stopTaskReq: SweeperTaskStop.StopTaskReq) {
M_LISTENERS.forEach {
val listener = it.value
listener.onSweeperFutianCloudTaskStop(messageType, reqNo, sysTime, stopTaskReq)
}
}
/**
* 5、pad请求挂起任务type100005-> sweeper_task_suspend_resume.proto
* 6、pad请求恢复挂起的任务type100006-> sweeper_task_suspend_resume.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param suspendResumeTaskResp 数据
*/
fun invokeSweeperFutianCloudTaskSuspendResume(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, suspendResumeTaskResp: SweeperTaskSuspendResume.SuspendResumeTaskResp) {
M_LISTENERS.forEach {
val listener = it.value
listener.onSweeperFutianCloudTaskSuspendResume(messageType, reqNo, sysTime, suspendResumeTaskResp)
}
}
/**
* 8、接管后回自驾-pad上报状态给云端 云端下发启动自驾type: 100008-> sweeper_autopilot.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param isBootableResp 数据
*/
fun invokeSweeperFutianCloudBootable(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, isBootableResp: SweeperBootable.IsBootableResp) {
M_LISTENERS.forEach {
val listener = it.value
listener.onSweeperFutianCloudBootable(messageType, reqNo, sysTime, isBootableResp)
}
}
/**
* 9、云端下发pad大任务状态type: 100009-> sweeper_big_task_status.proto
*
* @param messageType 消息类型
* @param reqNo 请求编号
* @param sysTime 当前时间戳
* @param bigTaskStatusPush 数据
*/
fun invokeSweeperFutianCloudBigTaskStatus(messageType: SweeperCloudTask.MessageType, reqNo: String, sysTime: Long, bigTaskStatusPush: SweeperBigTaskStatus.BigTaskStatusPush) {
M_LISTENERS.forEach {
val listener = it.value
listener.onSweeperFutianCloudBigTaskStatus(messageType, reqNo, sysTime, bigTaskStatusPush)
}
}
}