diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeProvider.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeProvider.kt index 217e99139d..09d6881f33 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeProvider.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeProvider.kt @@ -7,6 +7,7 @@ import com.mogo.eagle.core.function.call.base.CallerBase import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON import com.mogo.eagle.core.utilcode.util.CoordinateUtils +import com.mogo.och.bridge.autopilot.line.LineManager import com.mogo.och.bridge.autopilot.location.OchLocationManager import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager import com.mogo.och.bridge.bridge.OchBridgeManager @@ -68,6 +69,15 @@ class BridgeProvider : BridgeService, CallerBase() { removeListener(tag) } + override fun startAutopilot(type: Int) { + when (type) { + 0 -> {LineManager.unmannedStartAutopilot(false)} + 1 -> {LineManager.unmanneAutopilotContinue(false)} + else -> {} + } + + } + override fun doSomeAfterAddListener(tag: String, listener: BridgeListener) { // 轨迹和距离回调 TrajectoryManager.doSomeAfterBridgeListener() diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/IOchAutopilotStatusListener.java b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/IOchAutopilotStatusListener.java index 1f77f40952..dd6a2bbb75 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/IOchAutopilotStatusListener.java +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/IOchAutopilotStatusListener.java @@ -3,6 +3,9 @@ package com.mogo.och.bridge.autopilot.autopilot; import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation; import com.zhjt.mogo.adas.data.AdasConstants; +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification; + +import org.jetbrains.annotations.Nullable; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; @@ -40,6 +43,14 @@ public interface IOchAutopilotStatusListener { default void onAutopilotArriveAtStation(ArrivedStation arrivalNotification) { } + /** + * 自动驾驶离站 + * @param taskId + * @param taskStartNotification + */ + default void onAutopilotLeaveStation(Long taskId, TaskStartNotification taskStartNotification){ + } + /** * 工控机获取SN */ diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotManager.kt index 4fc28a7efb..77cb11714b 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotManager.kt @@ -122,8 +122,8 @@ object OchAutoPilotManager { * 继续启动自驾 */ @JvmStatic - fun unmannedAutoPilotContinue(taskId: Long, traj: Trajectory, vehicleSite : VehicleSite, parameters: AutopilotControlParameters): Long { - val sessionId = CallerAutoPilotControlManager.unmannedAutoPilotContinue(taskId, traj,vehicleSite, parameters) + fun unmannedAutoPilotContinue(taskId: Long, traj: Trajectory, startStation : VehicleSite,endStation : VehicleSite, parameters: AutopilotControlParameters): Long { + val sessionId = CallerAutoPilotControlManager.unmannedAutoPilotContinue(taskId, traj,startStation,endStation, parameters) globalSessionId.set(SessionWithTime(sessionId, System.currentTimeMillis(), -1L)) OchAutoPilotStatusListenerManager.fsmBackSessionId.set(-1L) OchAutopilotAnalytics.triggerStartAutopilotParameters(traj, parameters, sessionId) diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt index 03897ba137..4b36116f84 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt @@ -23,6 +23,7 @@ import com.zhjt.mogo.adas.common.MessageType import com.zhjt.mogo.adas.data.AdasConstants import com.zhjt.mogo.adas.data.bean.ReceivedAck import com.zhjt.mogo.adas.data.bean.ReceivedAck.Status +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification import fsm.Fsm2024 import mogo.telematics.pad.MessagePad import mogo_msg.MogoReportMsg @@ -239,6 +240,13 @@ object OchAutoPilotStatusListenerManager : CallerBase() { return } _lineInfos?.let { lineInfo -> - startStation?.let { start-> + getStations { start, end -> val wayPoints = ArrayList() val blackPoints = ArrayList() - val vehicleSite = VehicleSite.builder() + val startStation = VehicleSite.builder() .coordinateType(AutopilotCoordinateTypeEnum.WGS84.code) .point(AutopilotPoint.builder().x(start.lon).y(start.lat).build()) .station(StationEnum.SITE.code) @@ -805,7 +805,17 @@ object LineManager : CallerBase() { .stationSeq(start.seq) .tag(start.tag) .build() - wayPoints.add(vehicleSite) + val endStation = VehicleSite.builder() + .coordinateType(AutopilotCoordinateTypeEnum.WGS84.code) + .point(AutopilotPoint.builder().x(end.lon).y(end.lat).build()) + .station(StationEnum.SITE.code) + .stationId(end.siteId.toLong()) + .stationName(end.name) + .stationSeq(end.seq) + .tag(end.tag) + .build() + wayPoints.add(startStation) + wayPoints.add(endStation) val traj = Trajectory.builder() .id(lineInfo.lineId) .name(lineInfo.lineName) @@ -817,7 +827,7 @@ object LineManager : CallerBase() { .wayPoints(wayPoints) .blackPoints(blackPoints) .build() - val sessionId = OchAutoPilotManager.unmannedAutoPilotContinue(lineInfo.taskId, traj,vehicleSite, parameters) + val sessionId = OchAutoPilotManager.unmannedAutoPilotContinue(lineInfo.taskId, traj,startStation, endStation,parameters) OchAutopilotAnalytics.triggerUpdateStartAutoPilotSessionId(sessionId, true) d( TAG, diff --git a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt index 3a971944e8..8ffa9fdfbc 100644 --- a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt +++ b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt @@ -86,6 +86,7 @@ object DebugDataDispatch { const val pncAction = "pncAction" const val collisionRisk = "CollisionRisk" const val mediaStationMedia = "stationMedia" + const val startAutopilot = "startAutopilot" // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "video" --ei add 2 --es url "rtmp://liteavapp.qcloud.com/live/liteavdemoplayerstreamid" // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "location" --es path "1111/11111" @@ -108,6 +109,7 @@ object DebugDataDispatch { // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "vlmMessage" --es message "前方100米有道路施工,施工长度100米,影响第1、2车道通行。" --ei id 128 --ef time 1880.0 // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "vlmImage" --ef time 1880.0 // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "stationMedia" +// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "stationMedia" --ei startType 0 // adb shell am broadcast -a com.hmi.v2x.trafficlight -f 0x011000000 --ei trafficLightCheckType 1 --ei trafficLightCountDown 0 --ez trafficLightIsShow true // 红绿灯 @@ -122,6 +124,10 @@ object DebugDataDispatch { } when (type) { + startAutopilot -> { + val type = intent.getIntExtra("startType", 0) + BridgeManager.debugStartAutopilot(type) + } mediaStationMedia -> { val introductionList = mutableListOf() introductionList.add( diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeManager.kt index cbbebc977e..a5628a7db9 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeManager.kt @@ -35,4 +35,8 @@ object BridgeManager { bridgeService?.removeBridgeListener(tag) } + fun debugStartAutopilot(type:Int){ + bridgeService?.startAutopilot(type) + } + } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeService.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeService.kt index a2c539aae2..6b5943da64 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeService.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeService.kt @@ -13,4 +13,6 @@ interface BridgeService : IProvider { fun addBridgeListener(tag:String, listener:BridgeListener) fun removeBridgeListener(tag: String) + + fun startAutopilot(type: Int) } \ No newline at end of file diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/OrderModel.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/OrderModel.kt index 99bc38cde5..a4a407ad40 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/OrderModel.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/OrderModel.kt @@ -46,6 +46,7 @@ import com.mogo.och.unmanned.repository.RepositoryManager import com.mogo.och.unmanned.repository.db.bean.TaskSiteDataBean import com.mogo.och.unmanned.repository.exception.DataException import com.mogo.och.unmanned.util.ShuttleVoiceManager +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification import io.reactivex.Observer import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable @@ -130,6 +131,31 @@ object OrderModel { onArriveAt(arrivedStation, "底盘触发进站",false) } + override fun onAutopilotLeaveStation( + taskId: Long?, + taskStartNotification: TaskStartNotification? + ) { + OchChainLogManager.writeChainLog("触发滑动出发,","taskId:$taskId taskStartNotification:${taskStartNotification}") + if(taskStartNotification?.isCloseDoorStartAuto==true){ + val curStation = taskStartNotification.curStation + val nextStation = taskStartNotification.nextStation + LineModel.currentTask?.let { task -> + if(task.taskId==taskId){ + LineManager.getStations { start, end -> + if(start.siteId.toLong()==curStation.stationId&&end.siteId.toLong()==nextStation.stationId){ + OchChainLogManager.writeChainLog("触发滑动出发,","触发成功") + driveToNextStation() + }else{ + OchChainLogManager.writeChainLog("触发滑动出发,","起始终点id不同触发失败") + } + } + }else{ + OchChainLogManager.writeChainLog("触发滑动出发,","taskId不同触发失败") + } + } + + } + } } private val ochTransform = object : OchTransformDispatch { diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/model/SweeperCloudTaskModel.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/model/SweeperCloudTaskModel.java index f3beba1629..c84c74919c 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/model/SweeperCloudTaskModel.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/model/SweeperCloudTaskModel.java @@ -49,6 +49,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm; import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus; import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop; +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification; import java.io.IOException; import java.math.BigDecimal; @@ -803,4 +804,9 @@ public class SweeperCloudTaskModel implements IMoGoSweeperFutianCloudTaskListene @Override public void onAutoPilotStation(long token, long timestamp, @Nullable SsmInfo.AutoPilotStation autoPilotStation) { } + + @Override + public void invokeLeaveStation(@Nullable Long taskId, @Nullable TaskStartNotification taskStartNotification) { + + } } diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java index 19b6bb494f..0beea4e732 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java @@ -42,6 +42,7 @@ import com.mogo.och.sweeper.operate.model.SweeperOperateTaskModel; import com.mogo.och.sweeper.common.util.SweeperFutianCmdUtil; import com.mogo.och.sweeper.operate.util.SweeperTrajectoryManager; import com.zhjt.mogo.adas.data.AdasConstants; +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification; import java.math.BigDecimal; import java.math.RoundingMode; @@ -483,4 +484,9 @@ public class SweeperOperatePresenter extends Presenter public void onAutoPilotStation(long token, long timestamp, @Nullable SsmInfo.AutoPilotStation autoPilotStation) { } + + @Override + public void invokeLeaveStation(@Nullable Long taskId, @Nullable TaskStartNotification taskStartNotification) { + + } } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt index 2e2d79d0d5..abeccd8efa 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt @@ -84,6 +84,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop import com.zhjt.mogo.adas.unmanned.task.dto.cmd.Trajectory +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.VehicleSite import com.zhjt.service.chain.ChainLog import io.netty.channel.Channel import mogo.telematics.pad.MessagePad @@ -467,9 +468,9 @@ class MoGoAutopilotControlProvider : } } - override fun sendTaskManagerAutopilotContinue(trackId: Long, taskId: Long, stationId: Long, stationName: String, stationSeq: Int, lon: Double, lat: Double): Long { + override fun sendTaskManagerAutopilotContinue(trackId: Long, taskId: Long, startStation : VehicleSite, endStation:VehicleSite ): Long { return if (AdasManager.getInstance().ipcConnectionStatus == AdasConstants.IpcConnectionStatus.CONNECTED) { - val invokeResult = AdasManager.getInstance().sendTaskManagerAutopilotContinue(trackId, taskId, stationId, stationName, stationSeq, lon, lat) + val invokeResult = AdasManager.getInstance().sendTaskManagerAutopilotContinue(trackId, taskId, startStation, endStation) invokeAutoPilotResult(if (invokeResult > -1) "无人化 取消自动驾驶调用成功:${invokeResult}" else "无人化 取消自动驾驶调用失败, socket 或者 rawPack 可能为空") invokeResult } else { diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt index 44351d17d3..efcba4f7d4 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -38,6 +38,7 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_SO import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_SOCKET_VEHICLE import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_TYPE_STATUS import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.inVokeLeaveStation import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeArriveAtStation import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeAutoPilotInfo import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeAutoPilotStation @@ -133,6 +134,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskLocationQueryResponse +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification import com.zhjt.mogo.adas.utils.ByteUtil import com.zhjt.service.chain.ChainLog import fault_management.FmInfo @@ -1693,7 +1695,11 @@ class MoGoAdasListenerImpl : OnAdasListener { CallerLogger.i("$M_D_C$TAG", "任务管理数据:$data") } - override fun onAdasTaskManagerDeparture(taskId: Long?, siteId: Long?, sequence: Int?, ack: Boolean, reason: String?, stationTimeLeft: Double) { + override fun onAdasTaskManagerDeparture( + taskId: Long?, + taskStartNotification: TaskStartNotification? + ) { + inVokeLeaveStation(taskId,taskStartNotification) } override fun onAdasTaskManagerArrival(taskId: Long?, siteId: Long?, sequence: Int?, mileage: BigDecimal?) { diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt index 7ce79e731e..fe56b1fd08 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt @@ -16,6 +16,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm.TaskConfi import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume.SuspendResumeTaskReq import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskResp import com.zhjt.mogo.adas.unmanned.task.dto.cmd.Trajectory +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.VehicleSite import mogo.telematics.pad.MessagePad import mogo.yycp.paralleldriving.protocol.ParallelDrivingRequest import system_master.SsmInfo @@ -49,7 +50,7 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider { fun sendTaskManagerAutopilotStart(taskId: Long, traj: Trajectory): Long - fun sendTaskManagerAutopilotContinue(trackId: Long, taskId: Long, stationId: Long, stationName: String, stationSeq: Int, lon: Double, lat: Double): Long + fun sendTaskManagerAutopilotContinue(trackId: Long, taskId: Long, startStation : VehicleSite, endStation: VehicleSite): Long /** * 开启自动驾驶(魔方) diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatusListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatusListener.kt index f6f1f074fe..5ce21a6647 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatusListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatusListener.kt @@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.api.autopilot import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters import com.zhjt.mogo.adas.data.AdasConstants +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification import mogo.telematics.pad.MessagePad import mogo_msg.MogoReportMsg import system_master.* @@ -67,6 +68,11 @@ interface IMoGoAutopilotStatusListener { */ fun onAutopilotArriveAtStation(arrivalNotification: MessagePad.ArrivalNotification?) {} + /** + * 自动驾驶 离站触发 + */ + fun invokeLeaveStation(taskId: Long?, taskStartNotification: TaskStartNotification?) {} + /** * 工控机获取SN */ diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt index 4792b68745..fbfdfe6e67 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt @@ -122,12 +122,12 @@ object CallerAutoPilotControlManager { /** * 自驾成功后再次启动自驾时 */ - fun unmannedAutoPilotContinue(taskId: Long, traj: Trajectory?, vehicleSite : VehicleSite, controlParameters: AutopilotControlParameters): Long { + fun unmannedAutoPilotContinue(taskId: Long, traj: Trajectory?, startStation : VehicleSite,endStation : VehicleSite, controlParameters: AutopilotControlParameters): Long { if (traj == null) { //LogUtils.eTag(TAG, "自动驾驶控制参数异常,请检查参数信息") return -1L } - val sessionId = providerApi?.sendTaskManagerAutopilotContinue(traj.id, taskId, vehicleSite.stationId, vehicleSite.stationName, vehicleSite.stationSeq, vehicleSite.point.x, vehicleSite.point.y) ?: -1L + val sessionId = providerApi?.sendTaskManagerAutopilotContinue(traj.id, taskId, startStation,endStation) ?: -1L // 更新记录在全局的控制参数 CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(controlParameters) return sessionId diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotStatusListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotStatusListenerManager.kt index cfe8cfc95c..3c7dcfa864 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotStatusListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotStatusListenerManager.kt @@ -12,6 +12,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.ParseVersionUtils import com.zhjt.mogo.adas.data.AdasConstants +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification import mogo.telematics.pad.MessagePad import mogo_msg.MogoReportMsg import system_master.SsmInfo @@ -271,6 +272,13 @@ object CallerAutoPilotStatusListenerManager : CallerBase errCodes; + /** + * 当前站点 + */ + private VehicleSite curStation; + /** + * 下一个站点 + */ + private VehicleSite nextStation; + /** + * 前一个任务名称 + */ + private String lastTaskCmdType; - public TaskStartNotification() { - } - - public TaskStartNotification(VehicleSite curLocation, boolean autopilotResult, double stationTimeLeft, String errMsg, List errCodes) { - this.curLocation = curLocation; - this.autopilotResult = autopilotResult; - this.stationTimeLeft = stationTimeLeft; - this.errMsg = errMsg; - this.errCodes = errCodes; - } + public TaskStartNotification() {} public VehicleSite getCurLocation() { return curLocation; @@ -78,6 +87,30 @@ public class TaskStartNotification { this.errCodes = errCodes; } + public VehicleSite getCurStation() { + return curStation; + } + + public void setCurStation(VehicleSite curStation) { + this.curStation = curStation; + } + + public VehicleSite getNextStation() { + return nextStation; + } + + public void setNextStation(VehicleSite nextStation) { + this.nextStation = nextStation; + } + + public String getLastTaskCmdType() { + return lastTaskCmdType; + } + + public void setLastTaskCmdType(String lastTaskCmdType) { + this.lastTaskCmdType = lastTaskCmdType; + } + @Override public String toString() { return "TaskStartNotification{" + @@ -86,6 +119,19 @@ public class TaskStartNotification { ", stationTimeLeft=" + stationTimeLeft + ", errMsg='" + errMsg + '\'' + ", errCodes=" + errCodes + + ", curStation=" + curStation + + ", nextStation=" + nextStation + + ", lastTaskCmdType=" + lastTaskCmdType + '}'; } + + public boolean isCloseDoorStartAuto(){ + if(Objects.equals(lastTaskCmdType, MessageCmdEnum.TaskStartNotification.getCode()) || + Objects.equals(lastTaskCmdType, MessageCmdEnum.TaskContinueNotification.getCode()) ){ + return false; + } + return true; + } + + } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index d3abd9870a..3553c67ac6 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -3436,19 +3436,13 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec * * @param trackId * @param taskId - * @param stationId - * @param stationName - * @param stationSeq - * @param lon - * @param lat + * @param startStation + * @param endStation * @return */ @Override - public long sendTaskManagerAutopilotContinue(Long trackId, Long taskId, Long stationId, String stationName, Integer stationSeq, double lon, double lat) { - VehicleSite vehicleSite = VehicleSite.builder().stationId(stationId).stationName(stationName) - .station(StationEnum.SITE.getCode()).stationSeq(stationSeq) - .point(AutopilotPoint.builder().x(lon).y(lat).build()).coordinateType(AutopilotCoordinateTypeEnum.WGS84.getCode()).build(); - TaskContinueNotification taskContinueNotification = TaskContinueNotification.builder().curStation(vehicleSite).build(); + public long sendTaskManagerAutopilotContinue(Long trackId, Long taskId,VehicleSite startStation,VehicleSite endStation) { + TaskContinueNotification taskContinueNotification = TaskContinueNotification.builder().curStation(startStation).nextStation(endStation).build(); CmdDto cmdDto = CmdDto.builder().cmdType(MessageCmdEnum.TaskContinueNotification.getCode()).taskId(taskId).lineId(trackId).timestamp(System.currentTimeMillis()).data(taskContinueNotification).build(); return sendTaskManager(cmdDto); } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java index 1a12b967ed..c30a8609dd 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java @@ -29,6 +29,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm; import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop; import com.zhjt.mogo.adas.unmanned.task.dto.cmd.Trajectory; +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.VehicleSite; import java.util.HashSet; import java.util.List; @@ -2098,8 +2099,8 @@ public class AdasManager implements IAdasNetCommApi { } @Override - public long sendTaskManagerAutopilotContinue(Long trackId, Long taskId, Long stationId, String stationName, Integer stationSeq, double lon, double lat) { - return mChannel == null ? -1L : mChannel.sendTaskManagerAutopilotContinue(trackId, taskId, stationId, stationName, stationSeq, lon, lat); + public long sendTaskManagerAutopilotContinue(Long trackId, Long taskId, VehicleSite startStation, VehicleSite endStation) { + return mChannel == null ? -1L : mChannel.sendTaskManagerAutopilotContinue(trackId, taskId, startStation, endStation); } @Override diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java index d60130095c..db961ebc29 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java @@ -17,6 +17,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm; import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop; import com.zhjt.mogo.adas.unmanned.task.dto.cmd.Trajectory; +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.VehicleSite; import java.util.List; import java.util.Map; @@ -1547,7 +1548,7 @@ public interface IAdasNetCommApi { long sendTaskManagerRunningInfo(); long sendTaskManagerAutopilotStart(Long taskId, Trajectory traj); - long sendTaskManagerAutopilotContinue(Long trackId, Long taskId, Long stationId, String stationName, Integer stationSeq, double lon, double lat); + long sendTaskManagerAutopilotContinue(Long trackId, Long taskId, VehicleSite startStation, VehicleSite endStation); long sendTaskManagerAutopilotCancel(Long taskId); diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java index 797c126ec0..fe0c644b01 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java @@ -34,6 +34,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume; import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus; import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop; import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskLocationQueryResponse; +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification; import java.math.BigDecimal; import java.util.ArrayList; @@ -816,8 +817,9 @@ public interface OnAdasListener { * @param ack * @param reason * @param stationTimeLeft + * @param closeDoorStartAuto */ - void onAdasTaskManagerDeparture(Long taskId, Long siteId, Integer sequence, boolean ack, String reason, double stationTimeLeft); + void onAdasTaskManagerDeparture(Long taskId, TaskStartNotification taskStartNotification); /** * 域控任务管理到站通知 diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/TaskManagerMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/TaskManagerMessage.java index dea191093b..5220f7199c 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/TaskManagerMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/TaskManagerMessage.java @@ -3,6 +3,7 @@ package com.zhidao.support.adas.high.msg; import android.os.SystemClock; import android.util.Log; +import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.reflect.TypeToken; @@ -66,7 +67,7 @@ public class TaskManagerMessage extends MyAbstractMessageHandler { TaskStartNotification taskStartNotification = cmdDto.getData(); VehicleSite vehicleSite = taskStartNotification.getCurLocation(); - adasListener.onAdasTaskManagerDeparture(cmdDto.getTaskId(), vehicleSite.getStationId(), vehicleSite.getStationSeq(), taskStartNotification.isAutopilotResult(), taskStartNotification.getErrMsg(), taskStartNotification.getStationTimeLeft()); + adasListener.onAdasTaskManagerDeparture(cmdDto.getTaskId(), taskStartNotification); } } else if (messageCmdEnum == MessageCmdEnum.TaskArrivalNotification) {//到站通知