From a80e3614067c888909d811d0c44378e1efb94d18 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 16 Mar 2026 18:30:34 +0800 Subject: [PATCH 01/16] =?UTF-8?q?[8.4.0]=20[=E4=BB=BB=E5=8A=A1=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=20[=E8=87=AA=E5=8A=A8=E9=A9=BE=E9=A9=B6=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=8F=98=E4=B8=BA=E8=87=AA=E9=A9=BE=E4=B8=AD=20?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E5=85=A8=E5=B1=80=E8=BD=A8=E8=BF=B9=E3=80=81?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E6=AD=A3=E5=9C=A8=E6=89=A7=E8=A1=8C=E7=9A=84?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=A9=BE=E9=A9=B6=E4=BB=BB=E5=8A=A1=E4=BF=A1?= =?UTF-8?q?=E6=81=AF]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt | 4 ++-- .../autopilot/server/AsyncDataToAutopilotServer.kt | 1 + .../java/com/zhidao/support/adas/high/OnAdasListener.java | 2 +- .../com/zhidao/support/adas/high/msg/TaskManagerMessage.java | 5 +++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt index bdf3ba6ec9..44351d17d3 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 @@ -1679,8 +1679,8 @@ class MoGoAdasListenerImpl : OnAdasListener { override fun onPlanningStopLine(header: MessagePad.Header, mapMsg: Hadmap.MapMsg) { } - override fun onAdasTaskManagerOriginal(header: MessagePad.Header, data: ByteArray) { - taskManagerOriginal(header, ByteUtil.byteArrToHex(data, false)) + override fun onAdasTaskManagerOriginal(header: MessagePad.Header, data: String) { + taskManagerOriginal(header, data) } @ChainLog( diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt index 97815c2539..d579413d43 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt @@ -55,6 +55,7 @@ class AsyncDataToAutopilotServer private constructor() : IMoGoTrafficLightListen .subscribe { bizLog(SceneConstant.M_D_C + TAG, "请求底盘轨迹") CallerAutoPilotControlManager.getGlobalPath() + CallerAutoPilotControlManager.sendTaskManagerRunningInfo() } } else -> {} 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 dffcac4499..797c126ec0 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 @@ -805,7 +805,7 @@ public interface OnAdasListener { * @param header 头 * @param data 数据 */ - void onAdasTaskManagerOriginal(@NonNull MessagePad.Header header, @NonNull byte[] data); + void onAdasTaskManagerOriginal(@NonNull MessagePad.Header header, @NonNull String data); /** * 域控任务管理离站通知 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 27c28f21ca..dea191093b 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 @@ -45,8 +45,9 @@ public class TaskManagerMessage extends MyAbstractMessageHandler { if (CupidLogUtils.isEnableLog()) nowTime = SystemClock.elapsedRealtime(); if (adasListener != null) { - adasListener.onAdasTaskManagerOriginal(raw.getHeader(), data); - parse(adasListener, new String(data, StandardCharsets.UTF_8)); + String dataString = new String(data, StandardCharsets.UTF_8); + adasListener.onAdasTaskManagerOriginal(raw.getHeader(), dataString); + parse(adasListener,dataString); } AdasChannel.calculateTimeConsumingBusiness("任务管理消息", nowTime); } From a75ba62a6b732280106d07c59a89ee7b7718f901 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 16 Mar 2026 20:53:09 +0800 Subject: [PATCH 02/16] =?UTF-8?q?[8.4.0]=20[=E4=BB=BB=E5=8A=A1=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=20[=E4=B8=8B=E5=8F=91=E4=BB=BB=E5=8A=A1=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=20=E5=86=99=E5=85=A5=E9=93=BE=E8=B7=AF=E6=97=A5?= =?UTF-8?q?=E5=BF=97]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zhidao/support/adas/high/AdasChannel.java | 13 ++++++++++++- .../zhidao/support/adas/high/chain/AdasChain.java | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) 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 c08e1e1d33..d3abd9870a 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 @@ -4,6 +4,7 @@ package com.zhidao.support.adas.high; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_INIT; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_GLOBAL_PATH; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_SYSTEM_CMD; +import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_TASK; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_CONNECT_ADDRESS; import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_SOURCE_ADAS; @@ -3397,7 +3398,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec // .newBuilder() // .setTaskData(com.google.protobuf.ByteString.copyFrom(JsonUtil.toJsonBase64(data).getBytes(StandardCharsets.UTF_8))); // return sendPBMessage(MessageType.TYPE_SEND_TASK_MANAGER, builder.build().toByteArray()); - Log.i(TAG, "任务管理:"+data.toString()); + sendTaskManageReqLog(data); return sendPBMessage(MessageType.TYPE_SEND_TASK_MANAGER, JsonUtil.toJsonBase64(data).getBytes(StandardCharsets.UTF_8)); } @@ -3464,5 +3465,15 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec .lineId(0L).timestamp(System.currentTimeMillis()).data(new JSONObject()).build(); return sendTaskManager(cmdDto); } + + @ChainLog( + linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT, + linkCode = CHAIN_SOURCE_ADAS, + nodeAliasCode = CHAIN_CODE_ADAS_SEND_TASK, + paramIndexes = {0} + ) + public void sendTaskManageReqLog(T data) { + Log.i(TAG, "任务管理:"+data.toString()); + } } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/chain/AdasChain.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/chain/AdasChain.java index 7eec42aaa1..92a60ae567 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/chain/AdasChain.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/chain/AdasChain.java @@ -17,4 +17,5 @@ public class AdasChain { public static final String CHAIN_CODE_ADAS_SEND_GLOBAL_PATH = "CHAIN_CODE_ADAS_SEND_GLOBAL_PATH"; public static final String CHAIN_CODE_ADAS_SEND_SYSTEM_CMD = "CHAIN_CODE_ADAS_SEND_SYSTEM_CMD"; public static final String CHAIN_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD = "CHAIN_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD"; + public static final String CHAIN_CODE_ADAS_SEND_TASK = "CHAIN_CODE_ADAS_SEND_TASK"; } From a64ddd739a5bde51be2c3ec8ae6bf871ada4f608 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 17 Mar 2026 14:22:16 +0800 Subject: [PATCH 03/16] =?UTF-8?q?[8.4.0]=20[=E4=BB=BB=E5=8A=A1=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=20[=E6=B3=A8=E9=87=8A]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adas/unmanned/task/enums/MessageCmdEnum.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/unmanned/task/enums/MessageCmdEnum.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/unmanned/task/enums/MessageCmdEnum.java index 9572bb1076..20196dfd8b 100644 --- a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/unmanned/task/enums/MessageCmdEnum.java +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/unmanned/task/enums/MessageCmdEnum.java @@ -9,16 +9,31 @@ public enum MessageCmdEnum { AutopilotStartRequest("AutopilotStartRequest", "APP开始任务"), TaskContinueNotification("TaskContinueNotification", "站点出发"), + + @Deprecated TaskFinishNotification("TaskFinishNotification", "任务完成"), + + @Deprecated TaskLocationQueryRequest("TaskLocationQueryRequest", "任务查询"), + TaskStartNotification("TaskStartNotification", "自驾/离站结果回执"), + TaskArrivalNotification("TaskArrivalNotification", "到站通知"), + TaskAbortNotification("TaskAbortNotification", "任务终止"), + + // 定频返回 TaskLocationQueryResponse("TaskLocationQueryResponse", "任务查询结果"), + TaskCancelRequest("TaskCancelRequest", "任务取消请求"), TaskCancelResponse("TaskCancelResponse", "任务取消请求"), + + //车向云的查询请求 TaskQueryStateRequest("TaskQueryStateRequest", "任务状态查询"), + //查询状态响应, 车端重启后请求 TaskQueryStateResponse("TaskQueryStateResponse", "任务状态查询响应"), + + TaskRouteSyncRequest("TaskRouteSyncRequest", "查询正在执行的任务"), TaskRouteSyncResponse("TaskRouteSyncResponse", "查询执行的任务的结果"), ; From df373cec150f47b545e119c2b0c5d9f954656876 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 17 Mar 2026 20:08:16 +0800 Subject: [PATCH 04/16] =?UTF-8?q?[8.4.0]=20[login]=20[=E5=B1=95=E7=A4=BAbt?= =?UTF-8?q?n=E9=94=99=E8=AF=AF]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt | 6 +----- .../mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt index bade34a762..6c89347933 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt @@ -906,11 +906,7 @@ class ColdStartView @JvmOverloads constructor( tvColdStartContent.text = resources.getString(R.string.cold_start_fail_content) tvColdStartContent.setTextColor(ContextCompat.getColor(context, R.color.cold_start_fail)) coldStartResultListener?.coldStartFail() - ThreadUtils.runOnUiThread { - tvColdStartNow.visibility = View.VISIBLE - ivColdStartNow.visibility = View.VISIBLE - tvColdStartTip.visibility = View.VISIBLE - } + initUseNowBtnView() } /** diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt index 910d176f04..6beeba44ed 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt @@ -366,8 +366,8 @@ object AppIdentityModeUtils { //获取驾舱类型 @JvmStatic fun getCockpitType(): CockpitType { -// return CockpitType.getCockpitType(SPUtils.getInstance().getString(COCKPIT_TYPE, CockpitType.NONE.code)) - return CockpitType.UNMANNED + return CockpitType.getCockpitType(SPUtils.getInstance().getString(COCKPIT_TYPE, CockpitType.NONE.code)) +// return CockpitType.UNMANNED } } From cf10a6a70692de9fe079912c72bd21fa79b46713 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 18 Mar 2026 11:19:16 +0800 Subject: [PATCH 05/16] =?UTF-8?q?[8.4.0]=20[=E8=87=AA=E5=8A=A8=E6=BB=91?= =?UTF-8?q?=E5=8A=A8=E5=87=BA=E5=8F=91+=E9=83=A8=E5=88=86=E8=B7=B3?= =?UTF-8?q?=E7=AB=99]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/bridge/BridgeProvider.kt | 10 +++ .../IOchAutopilotStatusListener.java | 11 ++++ .../autopilot/OchAutoPilotManager.kt | 4 +- .../OchAutoPilotStatusListenerManager.kt | 8 +++ .../och/bridge/autopilot/line/LineManager.kt | 18 +++-- .../common/module/debug/DebugDataDispatch.kt | 6 ++ .../common/module/biz/birdge/BridgeManager.kt | 4 ++ .../common/module/biz/birdge/BridgeService.kt | 2 + .../com/mogo/och/unmanned/model/OrderModel.kt | 26 ++++++++ .../cloud/model/SweeperCloudTaskModel.java | 6 ++ .../presenter/SweeperOperatePresenter.java | 6 ++ .../autopilot/MoGoAutopilotControlProvider.kt | 5 +- .../autopilot/adapter/MoGoAdasListenerImpl.kt | 8 ++- .../IMoGoAutopilotControlProvider.kt | 3 +- .../autopilot/IMoGoAutopilotStatusListener.kt | 6 ++ .../CallerAutoPilotControlManager.kt | 4 +- .../CallerAutoPilotStatusListenerManager.kt | 8 +++ .../dto/cmd/TaskContinueNotification.java | 20 +++++- .../task/dto/cmd/TaskStartNotification.java | 66 ++++++++++++++++--- .../zhidao/support/adas/high/AdasChannel.java | 14 ++-- .../zhidao/support/adas/high/AdasManager.java | 5 +- .../support/adas/high/IAdasNetCommApi.java | 3 +- .../support/adas/high/OnAdasListener.java | 4 +- .../adas/high/msg/TaskManagerMessage.java | 3 +- 24 files changed, 211 insertions(+), 39 deletions(-) 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) {//到站通知 From 9e80a6896eacb5c912bee8bd647da0e49fc65d69 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 18 Mar 2026 20:11:43 +0800 Subject: [PATCH 06/16] =?UTF-8?q?[8.5.0]=20[=E5=AE=8C=E6=95=B4=E7=9A=84?= =?UTF-8?q?=E8=B7=B3=E7=AB=99=E5=8A=9F=E8=83=BD]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/module/debug/DebugDataDispatch.kt | 2 +- .../main/res/layout/common_visual_view.xml | 5 -- .../com/mogo/och/unmanned/model/LineModel.kt | 2 +- .../com/mogo/och/unmanned/model/OrderModel.kt | 90 ++++++++++++++++++- .../unmanned/repository/RepositoryManager.kt | 4 + .../repository/db/bean/TaskSiteDataBean.kt | 6 ++ .../repository/db/dao/TaskSiteDataDao.kt | 5 ++ .../repository/db/repository/TaskSiteDb.kt | 17 ++++ .../repository/line/ILineRepository.kt | 2 + .../repository/line/impl/NormalRepository.kt | 4 + .../repository/line/impl/WeaknetRepository.kt | 33 +++++++ .../ui/taskrunning/TaskRunningModel.kt | 2 +- .../ui/taskrunning/TaskRunningView.kt | 1 - .../ui/linenew/PB4DrivingInfoFullSFragment.kt | 17 +++- .../src/main/res/b4/values/colors.xml | 1 + .../dto/cmd/TaskContinueNotification.java | 1 + 16 files changed, 179 insertions(+), 13 deletions(-) delete mode 100644 OCH/common/common/src/main/res/layout/common_visual_view.xml 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 8ffa9fdfbc..7efefeafdd 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 @@ -109,7 +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.mogo.launcher.debug -f 0x011000000 --es type "startAutopilot" --ei startType 0 // adb shell am broadcast -a com.hmi.v2x.trafficlight -f 0x011000000 --ei trafficLightCheckType 1 --ei trafficLightCountDown 0 --ez trafficLightIsShow true // 红绿灯 diff --git a/OCH/common/common/src/main/res/layout/common_visual_view.xml b/OCH/common/common/src/main/res/layout/common_visual_view.xml deleted file mode 100644 index 3d5f5aa763..0000000000 --- a/OCH/common/common/src/main/res/layout/common_visual_view.xml +++ /dev/null @@ -1,5 +0,0 @@ - - diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/LineModel.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/LineModel.kt index c4a47de91c..66a31593a3 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/LineModel.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/LineModel.kt @@ -214,7 +214,7 @@ object LineModel { null } else { // startStationIndex == stationList!!.size - 1 - startStationIndex == getLastStationPos(stationList!!)-1 + nextStationIndex == getLastStationPos(stationList!!) } } 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 a4a407ad40..4e6dd6a057 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 @@ -269,13 +269,15 @@ object OrderModel { } } - private fun onStartAutopilot(taskId: Long?) { + private fun onStartAutopilot() { //开启自动驾驶 2.10.0: 如果自动驾驶状态下开启, 非自动驾驶状态下不开启,需手动点击自动驾驶按钮开启 isGoingToNextStation = true if (CallerTaskListenerManager.isCarRunningTask()) { LineManager.unmanneAutopilotContinue(false) + d(TAG, "启动自驾:继续启动自驾") }else{ LineManager.unmannedStartAutopilot(true) + d(TAG, "启动自驾:下发轨迹启动自驾") } if (CallerAutoPilotStatusListenerManager.getState() != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING ) { @@ -344,7 +346,7 @@ object OrderModel { } LineModel.leaveStationSuccess() isArrivedStation = false - onStartAutopilot(task.taskId) + onStartAutopilot() ThirdDeviceData.leaveStation() @@ -362,7 +364,7 @@ object OrderModel { if (data) { LineModel.leaveStationSuccess() isArrivedStation = false - onStartAutopilot(task.taskId) + onStartAutopilot() ThirdDeviceData.leaveStation() @@ -581,6 +583,88 @@ object OrderModel { } + @JvmStatic + fun skipNextStation() { + // 手动点击到站 + LineManager.getStations { start, end -> + + if (isArrivedStation || end.siteId == LineManager.lastArrivedSiteId) return@getStations + + OchChainLogManager.writeChainLog("触发跳站", "点击") + end.tag = 2 + end.drivingStatus = TaskSiteDataBean.drivingStatusNotArrived + RepositoryManager.skipStation() + ?.subscribeOn(Schedulers.io()) + ?.observeOn(AndroidSchedulers.mainThread()) + ?.subscribe(object : Observer { + override fun onSubscribe(d: Disposable) { + d(TAG, "onSubscribe") + } + + override fun onError(e: Throwable) { + d(TAG, "onError${e.printStackTrace()}") + if (e is DataException) { + e.printStackTrace() + } + ThirdDeviceData.arriveStation() + d(TAG, "skipNextStation onComplete") + LineModel.stationList?.let { + //此处始发站应为上段路程的终点站 + val startStation = LineManager.getStations().first + if (LineModel.startStationIndex + 1 < it.size) { + //遍历当前路段起始点之后的数组,第一个正常停靠点即为该段终点 + val subStationList = it.subList(LineModel.startStationIndex + 1, it.size) + val endStation = subStationList.firstOrNull { bean -> + bean.tag != 2 + } + LineModel.nextStationIndex = it.indexOf(endStation) +// val endStation = stationlist[LineModel.startStationIndex + 1] + LineManager.setStartAndEndStation(startStation, endStation) + LineModel.callEyeMap(5) + } + } + LineModel.leaveStationSuccess() + ThirdDeviceData.leaveStation() + updateBusStatus() + + isArrivedStation = false + onStartAutopilot() + } + + override fun onComplete() { + ThirdDeviceData.arriveStation() + d(TAG, "skipNextStation onComplete") + LineModel.stationList?.let { + //此处始发站应为上段路程的终点站 + val startStation = LineManager.getStations().first + if (LineModel.startStationIndex + 1 < it.size) { + //遍历当前路段起始点之后的数组,第一个正常停靠点即为该段终点 + val subStationList = it.subList(LineModel.startStationIndex + 1, it.size) + val endStation = subStationList.firstOrNull { bean -> + bean.tag != 2 + } + LineModel.nextStationIndex = it.indexOf(endStation) +// val endStation = stationlist[LineModel.startStationIndex + 1] + LineManager.setStartAndEndStation(startStation, endStation) + LineModel.callEyeMap(6) + } + } + LineModel.leaveStationSuccess() + ThirdDeviceData.leaveStation() + updateBusStatus() + + isArrivedStation = false + onStartAutopilot() + } + + override fun onNext(data: Boolean) { + + } + }) + + } + } + // 登出 @JvmStatic fun logoutInner() { diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/RepositoryManager.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/RepositoryManager.kt index 975c36dfd6..488da372dd 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/RepositoryManager.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/RepositoryManager.kt @@ -138,6 +138,10 @@ object RepositoryManager { return lineRepository?.arriveStation(seq, siteId, taskId) } + fun skipStation(): Observable? { + return lineRepository?.skipStation() + } + fun endTask(shiftsId: Long, taskId: Long): Observable? { return lineRepository?.endTask(shiftsId, taskId) } diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt index c5dfbc66cc..74cfdc20ac 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt @@ -178,5 +178,11 @@ data class TaskSiteDataBean( const val drivingStatusPassed = 1//1已经过 const val drivingStatusCurrent = 2//2当前站 const val drivingStatusNotArrived = 3//3未到站 + + const val tagInit = 0//0初始值 + const val tagNormal = 1//1正常停靠 + const val tagSkip = 2//2 需要跳过 + + } } diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/dao/TaskSiteDataDao.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/dao/TaskSiteDataDao.kt index 29647a0bea..c58afe3c47 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/dao/TaskSiteDataDao.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/dao/TaskSiteDataDao.kt @@ -23,6 +23,11 @@ interface TaskSiteDataDao { @Query("UPDATE ${TaskSiteDataBean.tableName} SET leaving = :leave , driving_status = :drivingStatusCurrent WHERE task_id = :taskId and site_id = :siteId") fun updateDrivingStatusANdLeave(taskId: Long, siteId: Long, drivingStatusCurrent: Int, leave: Int) + // 跳站中把tag 值为2 仅置运行表中 + @Query("UPDATE ${TaskSiteDataBean.tableName} SET leaving = :leave , driving_status = :drivingStatusCurrent , tag = :tag WHERE task_id = :taskId and site_id = :siteId") + fun updateDrivingStatusTagAndLeave(taskId: Long, siteId: Long, drivingStatusCurrent: Int, leave: Int , tag:Int) + + @Query("UPDATE ${TaskSiteDataBean.tableName} SET driving_status = :drivingStatusCurrent WHERE task_id = :taskId and site_id = :siteId") fun updateDrivingStatus(taskId: Long, siteId: Long, drivingStatusCurrent: Int) diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt index e4c34b2a15..69e7b846a9 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt @@ -95,6 +95,23 @@ object TaskSiteDb : IDbRepository { ) } } + fun updateDrivingStatusTagAndLeave( + taskId: Long, + siteId: Long, + drivingStatus: Int, + leave: Boolean, + tag:Int + ) { + BizLoopManager.runInIoThread { + taskSiteDataDao?.updateDrivingStatusTagAndLeave( + taskId, + siteId, + drivingStatus, + if (leave) 1 else 0, + tag + ) + } + } fun queryRunningTask(taskId: Long): List? { return taskSiteDataDao?.queryRunningTask(taskId) diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/ILineRepository.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/ILineRepository.kt index 70a2918926..bb9654777e 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/ILineRepository.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/ILineRepository.kt @@ -32,6 +32,8 @@ interface ILineRepository { fun arriveStation(seq: Int, siteId: Long, taskId: Long): Observable? + fun skipStation(): Observable? + fun endTask(shiftsId: Long, taskId: Long): Observable? fun queryCarExecutableTaskList(ochCommonServiceCallback: OchCommonServiceCallback) diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt index 23b96a3fa8..d1e56370d8 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt @@ -201,6 +201,10 @@ class NormalRepository : ILineRepository { ) } + override fun skipStation(): Observable? { + return Observable.just(false) + } + override fun endTask(shiftsId: Long, taskId: Long): Observable? { return normalLineInterface?.endTask(taskId) } diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt index 72d4f54e76..ac4bb104f5 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt @@ -476,6 +476,39 @@ class WeaknetRepository : ILineRepository { } + override fun skipStation(): Observable? { + return Observable.just(12) + .flatMap {temp-> + //1 恢复end站点的值并置tag为临时不停靠运行表中 + LineManager.getStations { start, end -> + if (currentTask != null && currentTask!!.taskId != null) { + currentTask?.let { task -> + if (task.taskId != null && task.lineId != null) { + TaskSiteDb.updateDrivingStatusTagAndLeave( + task.taskId!!, + end.siteId.toLong(), + TaskSiteDataBean.drivingStatusNotArrived, + false, + TaskSiteDataBean.tagSkip + ) + } + } + } else { + OchChainLogManager.writeChainLog( + "跳站点_数据更新_error", + "task:${currentTask}__taskId:${currentTask?.taskId}" + ) + CallerLogger.d(TAG, "跳斩_数据更新_error:task:${currentTask}__taskId:${currentTask?.taskId}") + } + val changeInfo = + "taskId:${currentTask?.taskId}--lineId:${currentTask?.lineId}--currentStationName:${start.name}--finalNextStationName:${end.name}" + OchChainLogManager.writeChainLog("到站", changeInfo) + CallerLogger.d(TAG, "到站:$changeInfo") + } + return@flatMap Observable.just(true) + } + } + override fun endTask(shiftsId: Long, taskId: Long): Observable? { return Observable.just(taskId).flatMap { currentTask?.let { task -> diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningModel.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningModel.kt index f684648fd8..b635d2f279 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningModel.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningModel.kt @@ -84,7 +84,7 @@ class TaskRunningModel : ViewModel(), IBusLinesCallback { if (LineModel.isLastStation() == true) { return } - OrderModel.onArriveAt(null, "页面挑站触发到站",true) + OrderModel.skipNextStation() } } diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningView.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningView.kt index e646d32376..bbc588af94 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningView.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningView.kt @@ -88,7 +88,6 @@ class TaskRunningView : ConstraintLayout, TaskRunningModel.SwtichLineViewCallbac }else{ viewModel?.skipStation() } - viewModel?.arriveStation() } unmanned_actv_arriver_station_new.setOnLongClickListener { viewModel?.arriveStation() diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/ui/linenew/PB4DrivingInfoFullSFragment.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/ui/linenew/PB4DrivingInfoFullSFragment.kt index 11311923a1..a09e73badf 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/ui/linenew/PB4DrivingInfoFullSFragment.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/ui/linenew/PB4DrivingInfoFullSFragment.kt @@ -2,6 +2,8 @@ package com.mogo.och.shuttle.weaknet.passenger.ui.linenew import android.os.Bundle import android.view.View +import androidx.appcompat.widget.AppCompatTextView +import androidx.core.content.ContextCompat import com.mogo.commons.mvp.MvpFragment import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.StringUtils @@ -30,7 +32,6 @@ import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.cl_empty_ser import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.cl_line_info_station import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.end_station_name import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.group_station_empty -import kotlinx.android.synthetic.main.m2_arrive_view.view.ochtv_arrive_station_value import kotlin.math.ceil import kotlin.math.roundToInt @@ -186,6 +187,7 @@ class PB4DrivingInfoFullSFragment : } private fun showBottom1Station(station:BusStationBean?,isShow:Boolean){ + setTextColor(station,actv_station_pre_1) if(isShow) { actv_station_pre_1.text = station?.name aciv_arrow_station_1.visibility = View.VISIBLE @@ -199,6 +201,7 @@ class PB4DrivingInfoFullSFragment : } private fun showBottom2Station(station:BusStationBean?,isShow:Boolean){ + setTextColor(station, actv_station_pre_2) if(isShow) { actv_station_pre_2.text = station?.name aciv_arrow_station_2.visibility = View.VISIBLE @@ -212,6 +215,7 @@ class PB4DrivingInfoFullSFragment : } private fun showBottom3Station(station:BusStationBean?,isShow:Boolean){ + setTextColor(station, actv_station_pre_3) if(isShow) { actv_station_pre_3.text = station?.name aciv_arrow_station_3.visibility = View.VISIBLE @@ -225,6 +229,7 @@ class PB4DrivingInfoFullSFragment : } private fun showBottom4Station(station:BusStationBean?,isShow:Boolean){ + setTextColor(station, actv_station_pre_4) if(isShow) { actv_station_pre_4.text = station?.name aciv_arrow_station_4.visibility = View.VISIBLE @@ -237,6 +242,16 @@ class PB4DrivingInfoFullSFragment : } } + private fun setTextColor(station: BusStationBean?, textView: AppCompatTextView){ + context?.let { + if(station?.tag==2){ + textView.setTextColor(ContextCompat.getColor(it, R.color.b4_5E5E5E)) + }else{ + textView.setTextColor(ContextCompat.getColor(it, R.color.white)) + } + } + } + fun updateLineName(lineName: String){ actvLineName.text = lineName diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/colors.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/colors.xml index 758e344554..b5d922c847 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/colors.xml +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/colors.xml @@ -22,4 +22,5 @@ #9AFF98 #EDBE2B #FF8300 + #5E5E5E \ No newline at end of file diff --git a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/unmanned/task/dto/cmd/TaskContinueNotification.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/unmanned/task/dto/cmd/TaskContinueNotification.java index e80cdb71fb..cb871b7585 100644 --- a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/unmanned/task/dto/cmd/TaskContinueNotification.java +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/unmanned/task/dto/cmd/TaskContinueNotification.java @@ -39,6 +39,7 @@ public class TaskContinueNotification { public String toString() { return "TaskContinueNotification{" + "curStation=" + curStation + + ", nextStation=" + nextStation + '}'; } From 7589b4a0fd79a4bef1cee49274b17f3605c17411 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 18 Mar 2026 21:09:52 +0800 Subject: [PATCH 07/16] =?UTF-8?q?[8.5.0]=20[=E5=92=8C=E5=9C=B0=E7=9B=98?= =?UTF-8?q?=E5=BB=BA=E7=AB=8B=E8=BF=9E=E6=8E=A5=E5=90=8E=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E6=AD=A3=E5=9C=A8=E8=BF=90=E8=A1=8C=E7=9A=84=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/bridge/device/checkvin/CheckVinManager.kt | 1 + .../datacenter/autopilot/server/AsyncDataToAutopilotServer.kt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/checkvin/CheckVinManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/checkvin/CheckVinManager.kt index 724e46d36a..e666166d0c 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/checkvin/CheckVinManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/checkvin/CheckVinManager.kt @@ -24,6 +24,7 @@ object CheckVinManager : IMoGoAutopilotCarConfigListener { override fun onAutopilotCarConfig(carConfigResp: MessagePad.CarConfigResp) { checkVin() + CallerAutoPilotControlManager.sendTaskManagerRunningInfo() } fun getVin(): String { diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt index d579413d43..3b668d062e 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt @@ -55,7 +55,7 @@ class AsyncDataToAutopilotServer private constructor() : IMoGoTrafficLightListen .subscribe { bizLog(SceneConstant.M_D_C + TAG, "请求底盘轨迹") CallerAutoPilotControlManager.getGlobalPath() - CallerAutoPilotControlManager.sendTaskManagerRunningInfo() + } } else -> {} From 957c9aa9240fc1d47c58c3a3fa9c7da2dbc31a88 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Thu, 19 Mar 2026 19:11:07 +0800 Subject: [PATCH 08/16] =?UTF-8?q?[8.5.0]=20[16s=E6=8B=A6=E6=88=AA=E5=8E=BB?= =?UTF-8?q?=E6=8E=89]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/bridge/autopilot/line/LineManager.kt | 6 ------ .../java/com/mogo/och/data/bean/BusStationBean.kt | 11 +++++++++++ .../unmanned/bean/response/BusRoutesResponse.kt | 2 +- .../java/com/mogo/och/unmanned/model/LineModel.kt | 2 +- .../com/mogo/och/unmanned/model/OrderModel.kt | 9 +++++---- .../repository/db/bean/TaskSiteDataBean.kt | 15 +++------------ .../repository/db/repository/TaskSiteDb.kt | 7 ++++--- .../repository/line/impl/NormalRepository.kt | 2 +- .../repository/line/impl/WeaknetRepository.kt | 9 +++++---- .../weaknet/bean/response/BusRoutesResponse.kt | 2 +- .../java/com/mogo/och/weaknet/model/LineModel.kt | 2 +- .../java/com/mogo/och/weaknet/model/OrderModel.kt | 8 ++++---- .../repository/db/bean/TaskSiteDataBean.kt | 10 +++------- .../repository/db/repository/TaskSiteDb.kt | 7 ++++--- .../repository/line/impl/NormalRepository.kt | 2 +- .../repository/line/impl/WeaknetRepository.kt | 5 +++-- 16 files changed, 48 insertions(+), 51 deletions(-) diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/line/LineManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/line/LineManager.kt index 1c0016ab49..be54333f2e 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/line/LineManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/line/LineManager.kt @@ -638,12 +638,6 @@ object LineManager : CallerBase() { return } } - /** - * 存在Session - */ - if (!OchAutoPilotManager.canStartAutopilotBySessionId()) { - return - } OchAutopilotAnalytics.triggerClickStartAutopilotTime(System.currentTimeMillis()) //1、判断轨迹url是否可用 if (_contraiInfo == null) { diff --git a/OCH/common/data/src/main/java/com/mogo/och/data/bean/BusStationBean.kt b/OCH/common/data/src/main/java/com/mogo/och/data/bean/BusStationBean.kt index 556384ff19..5e42363b1c 100644 --- a/OCH/common/data/src/main/java/com/mogo/och/data/bean/BusStationBean.kt +++ b/OCH/common/data/src/main/java/com/mogo/och/data/bean/BusStationBean.kt @@ -11,6 +11,17 @@ import java.util.Objects * @author tongchenfei */ open class BusStationBean { + companion object{ + const val drivingStatusInit = 0//0初始值 + const val drivingStatusPassed = 1//1已经过 + const val drivingStatusCurrent = 2//2当前站 + const val drivingStatusNotArrived = 3//3未到站 + + const val tagInit = 0//0初始值 + const val tagNormal = 1//1正常停靠 + const val tagSkip = 2//2 需要跳过 + } + var siteId: Int = 0 @JvmField diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/bean/response/BusRoutesResponse.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/bean/response/BusRoutesResponse.kt index 13ce5c4d93..31072afbda 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/bean/response/BusRoutesResponse.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/bean/response/BusRoutesResponse.kt @@ -103,7 +103,7 @@ class BusRoutesResponse : BaseData() { } result.add(temp!!) // 正在进行中的任务 - if (temp!!.drivingStatus == TaskSiteDataBean.drivingStatusCurrent) { + if (temp!!.drivingStatus == BusStationBean.drivingStatusCurrent) { if (temp!!.tag != 2) { currentStationIndex = index } diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/LineModel.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/LineModel.kt index 66a31593a3..37c466550e 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/LineModel.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/model/LineModel.kt @@ -334,7 +334,7 @@ object LineModel { fun startTaskMessage(): Boolean { if (!stationList.isNullOrEmpty()) { - return startStationIndex == 0 && stationList!!.first().drivingStatus == TaskSiteDataBean.drivingStatusCurrent && !stationList!!.first().isLeaving + return startStationIndex == 0 && stationList!!.first().drivingStatus == BusStationBean.drivingStatusCurrent && !stationList!!.first().isLeaving } return false } 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 4e6dd6a057..eda4e243a3 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 @@ -40,6 +40,7 @@ import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.OCHThreadPoolManager import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.common.module.utils.RxUtils +import com.mogo.och.data.bean.BusStationBean import com.mogo.och.shuttle.unmanned.R import com.mogo.och.unmanned.constant.BusConst import com.mogo.och.unmanned.repository.RepositoryManager @@ -320,7 +321,7 @@ object OrderModel { } LineManager.getStations().first?.let { startStation -> - startStation.drivingStatus = TaskSiteDataBean.drivingStatusCurrent + startStation.drivingStatus = BusStationBean.drivingStatusCurrent startStation.isLeaving = true LineModel.currentTask?.let { task -> RepositoryManager.leaveStation( @@ -506,9 +507,9 @@ object OrderModel { LineManager.lastArrivedSiteId = end.siteId isArrivedStation = true isGoingToNextStation = false - start.drivingStatus = TaskSiteDataBean.drivingStatusPassed + start.drivingStatus = BusStationBean.drivingStatusPassed start.isLeaving = false - end.drivingStatus = TaskSiteDataBean.drivingStatusCurrent + end.drivingStatus = BusStationBean.drivingStatusCurrent RepositoryManager.arriveStation(end.seq, end.siteId.toLong(), LineModel.currentTask?.taskId ?: 0L) ?.subscribeOn(Schedulers.io()) @@ -592,7 +593,7 @@ object OrderModel { OchChainLogManager.writeChainLog("触发跳站", "点击") end.tag = 2 - end.drivingStatus = TaskSiteDataBean.drivingStatusNotArrived + end.drivingStatus = BusStationBean.drivingStatusNotArrived RepositoryManager.skipStation() ?.subscribeOn(Schedulers.io()) ?.observeOn(AndroidSchedulers.mainThread()) diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt index 74cfdc20ac..50049d5951 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt @@ -3,6 +3,7 @@ package com.mogo.och.unmanned.repository.db.bean import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey +import com.mogo.och.data.bean.BusStationBean @Entity(tableName = TaskSiteDataBean.tableName) data class TaskSiteDataBean( @@ -158,9 +159,9 @@ data class TaskSiteDataBean( temp?.lon = it.lon temp?.lat = it.lat if (it.seq == 1) { - temp?.drivingStatus = drivingStatusCurrent + temp?.drivingStatus = BusStationBean.drivingStatusCurrent } else { - temp?.drivingStatus = drivingStatusNotArrived + temp?.drivingStatus = BusStationBean.drivingStatusNotArrived } temp?.leaving = false temp?.introduction = it.introduction @@ -174,15 +175,5 @@ data class TaskSiteDataBean( const val tableName: String = "used_task_data_table" - const val drivingStatusInit = 0//0初始值 - const val drivingStatusPassed = 1//1已经过 - const val drivingStatusCurrent = 2//2当前站 - const val drivingStatusNotArrived = 3//3未到站 - - const val tagInit = 0//0初始值 - const val tagNormal = 1//1正常停靠 - const val tagSkip = 2//2 需要跳过 - - } } diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt index 69e7b846a9..834794fae5 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt @@ -4,6 +4,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ import com.mogo.eagle.core.utilcode.util.StringUtils import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.data.bean.BusStationBean import com.mogo.och.data.db.exception.DbException import com.mogo.och.shuttle.unmanned.R import com.mogo.och.unmanned.repository.db.IDbRepository @@ -168,7 +169,7 @@ object TaskSiteDb : IDbRepository { runningSite.forEach { if (it.siteId == currentSiteId) { currentSeq = it.seq ?: 0 - it.drivingStatus = TaskSiteDataBean.drivingStatusCurrent + it.drivingStatus = BusStationBean.drivingStatusCurrent it.leaving = leaving return@forEach } @@ -176,10 +177,10 @@ object TaskSiteDb : IDbRepository { runningSite.forEach { val seq = it.seq ?: 0 if (seq < currentSeq) { - it.drivingStatus = TaskSiteDataBean.drivingStatusPassed + it.drivingStatus = BusStationBean.drivingStatusPassed it.leaving = true } else if (seq > currentSeq) { - it.drivingStatus = TaskSiteDataBean.drivingStatusNotArrived + it.drivingStatus = BusStationBean.drivingStatusNotArrived it.leaving = false } } diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt index d1e56370d8..84a0430107 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt @@ -103,7 +103,7 @@ class NormalRepository : ILineRepository { temp?.siteId = taskAndsite.siteId result.add(temp!!) // 正在进行中的任务 - if (temp!!.drivingStatus == TaskSiteDataBean.drivingStatusCurrent) { + if (temp!!.drivingStatus == BusStationBean.drivingStatusCurrent) { if (temp!!.tag != 2) { currentStationIndex = index } diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt index ac4bb104f5..8bd87953ed 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt @@ -16,6 +16,7 @@ import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.data.bean.BusStationBean import com.mogo.och.data.bean.ContraiInfo import com.mogo.och.shuttle.unmanned.R import com.mogo.och.unmanned.bean.request.QueryPointRequest @@ -424,7 +425,7 @@ class WeaknetRepository : ILineRepository { TaskSiteDb.updateDrivingStatusAndLeave( task.taskId!!, start.siteId.toLong(), - TaskSiteDataBean.drivingStatusPassed, + BusStationBean.drivingStatusPassed, false ) // 设置到站任务 @@ -455,7 +456,7 @@ class WeaknetRepository : ILineRepository { TaskSiteDb.updateDrivingStatus( taskId, end.siteId.toLong(), - TaskSiteDataBean.drivingStatusCurrent + BusStationBean.drivingStatusCurrent ) } } else { @@ -487,9 +488,9 @@ class WeaknetRepository : ILineRepository { TaskSiteDb.updateDrivingStatusTagAndLeave( task.taskId!!, end.siteId.toLong(), - TaskSiteDataBean.drivingStatusNotArrived, + BusStationBean.drivingStatusNotArrived, false, - TaskSiteDataBean.tagSkip + BusStationBean.tagSkip ) } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/BusRoutesResponse.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/BusRoutesResponse.kt index 9b61318290..84d3c7fc42 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/BusRoutesResponse.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/BusRoutesResponse.kt @@ -95,7 +95,7 @@ class BusRoutesResponse : BaseData() { } result.add(temp!!) // 正在进行中的任务 - if (temp!!.drivingStatus == TaskSiteDataBean.drivingStatusCurrent) { + if (temp!!.drivingStatus == BusStationBean.drivingStatusCurrent) { if (temp!!.tag != 2) { currentStationIndex = index } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt index 70bfb268d1..39ef0bce72 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt @@ -324,7 +324,7 @@ object LineModel { fun startTaskMessage():Boolean { if (!stationList.isNullOrEmpty()) { - return startStationIndex == 0 && stationList!!.first().drivingStatus == TaskSiteDataBean.drivingStatusCurrent && !stationList!!.first().isLeaving + return startStationIndex == 0 && stationList!!.first().drivingStatus == BusStationBean.drivingStatusCurrent && !stationList!!.first().isLeaving } return false } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt index 6f99a573de..9cdff7c423 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt @@ -40,9 +40,9 @@ import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.OCHThreadPoolManager import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.common.module.utils.RxUtils +import com.mogo.och.data.bean.BusStationBean import com.mogo.och.shuttle.weaknet.R import com.mogo.och.weaknet.constant.BusConst -import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean import com.mogo.och.weaknet.repository.RepositoryManager import com.mogo.och.weaknet.repository.exception.DataException import com.mogo.och.weaknet.util.BusTrajectoryManager @@ -285,7 +285,7 @@ object OrderModel { } LineManager.getStations().first?.let {startStation-> - startStation.drivingStatus = TaskSiteDataBean.drivingStatusCurrent + startStation.drivingStatus = BusStationBean.drivingStatusCurrent startStation.isLeaving = true LineModel.currentTask?.let { task-> RepositoryManager.leaveStation( @@ -472,9 +472,9 @@ object OrderModel { LineManager.lastArrivedSiteId = end.siteId isArrivedStation = true isGoingToNextStation = false - start.drivingStatus = TaskSiteDataBean.drivingStatusPassed + start.drivingStatus = BusStationBean.drivingStatusPassed start.isLeaving = false - end.drivingStatus = TaskSiteDataBean.drivingStatusCurrent + end.drivingStatus = BusStationBean.drivingStatusCurrent RepositoryManager.arriveStation(end.seq,end.siteId.toLong(), LineModel.currentTask?.taskId?:0L) ?.subscribeOn(Schedulers.io()) ?.observeOn(AndroidSchedulers.mainThread()) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskSiteDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskSiteDataBean.kt index 848e3b279d..5fd09c388d 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskSiteDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskSiteDataBean.kt @@ -3,7 +3,7 @@ package com.mogo.och.weaknet.repository.db.bean import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey -import com.mogo.och.weaknet.repository.db.bean.SiteDataBean +import com.mogo.och.data.bean.BusStationBean @Entity(tableName = TaskSiteDataBean.tableName) data class TaskSiteDataBean( @@ -159,9 +159,9 @@ data class TaskSiteDataBean( temp?.lon = it.lon temp?.lat = it.lat if(it.seq==1){ - temp?.drivingStatus = drivingStatusCurrent + temp?.drivingStatus = BusStationBean.drivingStatusCurrent }else{ - temp?.drivingStatus = drivingStatusNotArrived + temp?.drivingStatus = BusStationBean.drivingStatusNotArrived } temp?.leaving = false temp?.introduction = it.introduction @@ -175,9 +175,5 @@ data class TaskSiteDataBean( const val tableName: String = "used_task_data_table" - const val drivingStatusInit = 0//0初始值 - const val drivingStatusPassed = 1//1已经过 - const val drivingStatusCurrent = 2//2当前站 - const val drivingStatusNotArrived = 3//3未到站 } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt index b17d30720c..2497bb8cdb 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt @@ -5,6 +5,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ import com.mogo.eagle.core.utilcode.util.StringUtils import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.data.bean.BusStationBean import com.mogo.och.weaknet.repository.db.IDbRepository import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean @@ -152,7 +153,7 @@ object TaskSiteDb : IDbRepository { runningSite.forEach { if (it.siteId == currentSiteId) { currentSeq = it.seq ?: 0 - it.drivingStatus = TaskSiteDataBean.drivingStatusCurrent + it.drivingStatus = BusStationBean.drivingStatusCurrent it.leaving = leaving return@forEach } @@ -160,10 +161,10 @@ object TaskSiteDb : IDbRepository { runningSite.forEach { val seq = it.seq ?: 0 if (seq < currentSeq) { - it.drivingStatus = TaskSiteDataBean.drivingStatusPassed + it.drivingStatus = BusStationBean.drivingStatusPassed it.leaving = true } else if (seq > currentSeq) { - it.drivingStatus = TaskSiteDataBean.drivingStatusNotArrived + it.drivingStatus = BusStationBean.drivingStatusNotArrived it.leaving = false } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/NormalRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/NormalRepository.kt index 938fb08faa..bbc0268a64 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/NormalRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/NormalRepository.kt @@ -100,7 +100,7 @@ class NormalRepository: ILineRepository { temp?.siteId = taskAndsite.siteId result.add(temp!!) // 正在进行中的任务 - if (temp!!.drivingStatus == TaskSiteDataBean.drivingStatusCurrent) { + if (temp!!.drivingStatus == BusStationBean.drivingStatusCurrent) { if (temp!!.tag != 2) { currentStationIndex = index } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/WeaknetRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/WeaknetRepository.kt index 8dbcb6cff3..c66df1e17e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/WeaknetRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/WeaknetRepository.kt @@ -16,6 +16,7 @@ import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.data.bean.BusStationBean import com.mogo.och.data.bean.ContraiInfo import com.mogo.och.shuttle.weaknet.R import com.mogo.och.weaknet.bean.request.QueryPointRequest @@ -420,7 +421,7 @@ class WeaknetRepository : ILineRepository { TaskSiteDb.updateDrivingStatusAndLeave( task.taskId!!, start.siteId.toLong(), - TaskSiteDataBean.drivingStatusPassed, + BusStationBean.drivingStatusPassed, false ) // 设置到站任务 @@ -451,7 +452,7 @@ class WeaknetRepository : ILineRepository { TaskSiteDb.updateDrivingStatus( taskId, end.siteId.toLong(), - TaskSiteDataBean.drivingStatusCurrent + BusStationBean.drivingStatusCurrent ) } } else { From 19687e1330ad710241620bdd9fa76f33a9f5f29a Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 20 Mar 2026 09:48:03 +0800 Subject: [PATCH 09/16] =?UTF-8?q?[8.5.0]=20[=E5=9C=B0=E7=9B=98=E7=BB=99?= =?UTF-8?q?=E7=9A=84=E6=BB=91=E5=8A=A8=E5=87=BA=E5=8F=91=E4=B8=8D=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E8=87=AA=E9=A9=BE]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/unmanned/model/OrderModel.kt | 26 ++++++++----------- .../ui/taskrunning/TaskRunningModel.kt | 4 +-- 2 files changed, 13 insertions(+), 17 deletions(-) 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 eda4e243a3..dc82f356c8 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 @@ -44,7 +44,6 @@ import com.mogo.och.data.bean.BusStationBean import com.mogo.och.shuttle.unmanned.R import com.mogo.och.unmanned.constant.BusConst 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 @@ -129,7 +128,7 @@ object OrderModel { private val ochAutopilotStatusListener = object : IOchAutopilotStatusListener { override fun onAutopilotArriveAtStation(arrivedStation: ArrivedStation?) { e(TAG, "行程日志-onAutopilotArriveAtStation arrive") - onArriveAt(arrivedStation, "底盘触发进站",false) + onArriveAt(arrivedStation, "底盘触发进站") } override fun onAutopilotLeaveStation( @@ -145,7 +144,7 @@ object OrderModel { LineManager.getStations { start, end -> if(start.siteId.toLong()==curStation.stationId&&end.siteId.toLong()==nextStation.stationId){ OchChainLogManager.writeChainLog("触发滑动出发,","触发成功") - driveToNextStation() + driveToNextStation(false) }else{ OchChainLogManager.writeChainLog("触发滑动出发,","起始终点id不同触发失败") } @@ -172,7 +171,7 @@ object OrderModel { //是否到站的围栏判断 离站状态并且自动驾驶还未触发到站 if (isGoingToNextStation && !isArrivedStation) { OCHThreadPoolManager.getsInstance().locationExecute { - onArriveAt(null, "兜底:距离站点15m内 每秒钟向底盘查询是否到站 底盘返回",false) + onArriveAt(null, "兜底:距离站点15m内 每秒钟向底盘查询是否到站 底盘返回") } } } @@ -313,7 +312,7 @@ object OrderModel { * 滑动出发 */ @JvmStatic - fun driveToNextStation() { + fun driveToNextStation(startAutopilot:Boolean) { if (LineModel.isLastStation() == true) { // 当前站是最后一站,结束当前行程 completeTask(true) @@ -347,7 +346,9 @@ object OrderModel { } LineModel.leaveStationSuccess() isArrivedStation = false - onStartAutopilot() + if(startAutopilot) { + onStartAutopilot() + } ThirdDeviceData.leaveStation() @@ -365,8 +366,9 @@ object OrderModel { if (data) { LineModel.leaveStationSuccess() isArrivedStation = false - onStartAutopilot() - + if(startAutopilot) { + onStartAutopilot() + } ThirdDeviceData.leaveStation() updateBusStatus() @@ -487,7 +489,7 @@ object OrderModel { * @param data */ @JvmStatic - fun onArriveAt(data: ArrivedStation?, type: String,skipStation:Boolean) { + fun onArriveAt(data: ArrivedStation?, type: String) { if (LineManager.getStations().second == null) { e(TAG, "行程日志-到站异常,取消后续操作结束") OchChainLogManager.writeChainLog("shuttle弱网", "$type 行程日志-到站异常,取消后续操作结束") @@ -544,9 +546,6 @@ object OrderModel { } LineModel.arrivedStationSuccess() updateBusStatus() - if(skipStation) { - driveToNextStation() - } } override fun onComplete() { @@ -570,9 +569,6 @@ object OrderModel { } LineModel.arrivedStationSuccess() updateBusStatus() - if(skipStation) { - driveToNextStation() - } } override fun onNext(data: Boolean) { diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningModel.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningModel.kt index b635d2f279..2798abdead 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningModel.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningModel.kt @@ -28,7 +28,7 @@ class TaskRunningModel : ViewModel(), IBusLinesCallback { } fun leaveStation() { - OrderModel.driveToNextStation() + OrderModel.driveToNextStation(true) } interface SwtichLineViewCallback { @@ -55,7 +55,7 @@ class TaskRunningModel : ViewModel(), IBusLinesCallback { } fun arriveStation() { - OrderModel.onArriveAt(null, "页面触发到站",false) + OrderModel.onArriveAt(null, "页面触发到站") } override fun onArriveStationSuccess() { From 643e5ac1fe671035e8d3269f02f7540476e0b4c1 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 20 Mar 2026 12:07:44 +0800 Subject: [PATCH 10/16] =?UTF-8?q?[8.5.0]=20[=E6=8E=A5=E5=8F=97taskmanger?= =?UTF-8?q?=E7=9A=84=E5=88=B0=E7=AB=99=20=E7=84=B6=E5=90=8E=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=AE=9E=E6=97=B6=E7=AB=99=E7=82=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/bridge/BridgeProvider.kt | 10 ++ .../IOchAutopilotStatusListener.java | 10 ++ .../OchAutoPilotStatusListenerManager.kt | 11 ++ .../common/module/debug/DebugDataDispatch.kt | 7 ++ .../module/biz/birdge/BridgeListener.kt | 2 + .../common/module/biz/birdge/BridgeManager.kt | 4 + .../common/module/biz/birdge/BridgeService.kt | 2 + .../com/mogo/och/unmanned/model/OrderModel.kt | 100 +++++++++++++++++- .../unmanned/repository/RepositoryManager.kt | 6 ++ .../repository/db/repository/TaskSiteDb.kt | 18 ++++ .../repository/line/ILineRepository.kt | 3 + .../repository/line/impl/NormalRepository.kt | 6 +- .../repository/line/impl/WeaknetRepository.kt | 33 +++++- .../cloud/model/SweeperCloudTaskModel.java | 6 ++ .../presenter/SweeperOperatePresenter.java | 6 ++ .../autopilot/adapter/MoGoAdasListenerImpl.kt | 9 +- .../autopilot/IMoGoAutopilotStatusListener.kt | 3 + .../CallerAutoPilotStatusListenerManager.kt | 15 ++- .../support/adas/high/OnAdasListener.java | 3 +- .../adas/high/msg/TaskManagerMessage.java | 3 +- 20 files changed, 245 insertions(+), 12 deletions(-) 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 09d6881f33..070350fc48 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 @@ -73,9 +73,13 @@ class BridgeProvider : BridgeService, CallerBase() { when (type) { 0 -> {LineManager.unmannedStartAutopilot(false)} 1 -> {LineManager.unmanneAutopilotContinue(false)} + 2 -> {} else -> {} } + } + override fun taskManager(type: Int, index: Int) { + invokeTaskManagerTestArrived(index) } override fun doSomeAfterAddListener(tag: String, listener: BridgeListener) { @@ -143,5 +147,11 @@ class BridgeProvider : BridgeService, CallerBase() { } } + fun invokeTaskManagerTestArrived(indexStation:Int){ + M_LISTENERS.forEach { + it.value.onTestArrivedStation(indexStation) + } + } + } \ No newline at end of file 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 dd6a2bbb75..e07a6c0222 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,7 @@ 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.TaskArrivalNotification; import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification; import org.jetbrains.annotations.Nullable; @@ -51,6 +52,15 @@ public interface IOchAutopilotStatusListener { default void onAutopilotLeaveStation(Long taskId, TaskStartNotification taskStartNotification){ } + /** + * 自动驾驶离站 + * @param taskId + * @param taskStartNotification + */ + default void onArriveAtStationByTaskManager(Long taskId, TaskArrivalNotification taskStartNotification){ + } + + /** * 工控机获取SN */ 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 4b36116f84..ff6854b42e 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.TaskArrivalNotification import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification import fsm.Fsm2024 import mogo.telematics.pad.MessagePad @@ -247,6 +248,16 @@ object OchAutoPilotStatusListenerManager : CallerBase { + val type = intent.getIntExtra("startType", 0) + val indexStation = intent.getIntExtra("indexStation", 0) + BridgeManager.debugTaskManager(type,indexStation) + } startAutopilot -> { val type = intent.getIntExtra("startType", 0) BridgeManager.debugStartAutopilot(type) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeListener.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeListener.kt index c4405b105e..4e53646e6d 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeListener.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeListener.kt @@ -28,4 +28,6 @@ interface BridgeListener { fun onPncInfoListener(pncAction: String) {} fun onCollisionRisk() {} + + fun onTestArrivedStation(indexStation:Int) {} } \ No newline at end of file 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 a5628a7db9..d679db47f3 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 @@ -39,4 +39,8 @@ object BridgeManager { bridgeService?.startAutopilot(type) } + fun debugTaskManager(type:Int,index:Int){ + bridgeService?.taskManager(type,index) + } + } \ 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 6b5943da64..59bd1c3cd7 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 @@ -15,4 +15,6 @@ interface BridgeService : IProvider { fun removeBridgeListener(tag: String) fun startAutopilot(type: Int) + + fun taskManager(type: Int,index: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 dc82f356c8..eab8d0c759 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,7 +46,12 @@ import com.mogo.och.unmanned.constant.BusConst import com.mogo.och.unmanned.repository.RepositoryManager import com.mogo.och.unmanned.repository.exception.DataException import com.mogo.och.unmanned.util.ShuttleVoiceManager +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.AutopilotPoint +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskArrivalNotification import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.VehicleSite +import com.zhjt.mogo.adas.unmanned.task.enums.AutopilotCoordinateTypeEnum +import com.zhjt.mogo.adas.unmanned.task.enums.StationEnum import io.reactivex.Observer import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable @@ -123,12 +128,39 @@ object OrderModel { // else -> {} // } } + + override fun onTestArrivedStation(indexStation: Int) { + super.onTestArrivedStation(indexStation) + try { + LineModel.currentTask?.taskId?.let { taskId -> + LineModel.stationList?.let { list -> + if (list.size > indexStation) { + val busStationBean = list.get(indexStation) + val behicleSite = VehicleSite.builder() + .coordinateType(AutopilotCoordinateTypeEnum.WGS84.code) + .point(AutopilotPoint.builder().x(busStationBean.lon).y(busStationBean.lat).build()) + .station(StationEnum.SITE.code) + .stationId(busStationBean.siteId.toLong()) + .stationName(busStationBean.name) + .stationSeq(busStationBean.seq) + .tag(busStationBean.tag) + .build() + val mockInfo = TaskArrivalNotification(behicleSite,behicleSite,12.0) + ochAutopilotStatusListener.onArriveAtStationByTaskManager(taskId,mockInfo) + } + } + } + }catch (e:Exception){ + e.printStackTrace() + } + + } } private val ochAutopilotStatusListener = object : IOchAutopilotStatusListener { override fun onAutopilotArriveAtStation(arrivedStation: ArrivedStation?) { e(TAG, "行程日志-onAutopilotArriveAtStation arrive") - onArriveAt(arrivedStation, "底盘触发进站") + //onArriveAt(arrivedStation, "底盘触发进站") } override fun onAutopilotLeaveStation( @@ -156,6 +188,68 @@ object OrderModel { } } + + override fun onArriveAtStationByTaskManager( + taskId: Long?, + taskArrivalNotification: TaskArrivalNotification? + ) { + OchChainLogManager.writeChainLog("任务管理触发进站,","taskId:$taskId taskStartNotification:${taskArrivalNotification}") + taskId?.let { taskIdNotNull-> + LineModel.currentTask?.let { + if(it.taskId==taskIdNotNull){ + taskArrivalNotification?.station?.let { arrivedStation-> + LineModel.stationList?.forEachIndexed { index, busStationBean -> + if(busStationBean.siteId.toLong()==arrivedStation.stationId){ + if(busStationBean.tag==BusStationBean.tagSkip){ + OchChainLogManager.writeChainLog("任务管理触发进站,","触发到站是临时不停不进行向下操作") + return + } + } + } + + LineManager.getStations { start, end -> + if(end.siteId.toLong()==arrivedStation.stationId){ + onArriveAt(arrivedStation, "任务管理器触发进站") + }else{ + if(start.siteId.toLong()==arrivedStation.stationId){ + OchChainLogManager.writeChainLog("任务管理触发进站,","开始站点和到达站点一致 不到站正好调整好数据") + }else{ + + OchChainLogManager.writeChainLog("任务管理触发进站,","到达站点和${start}还有${end}都不一致但是taskId:${taskId}一致去数据库调整数据使之一致") + RepositoryManager.adjustAllStation(taskIdNotNull,arrivedStation) + ?.subscribeOn(Schedulers.io()) + ?.observeOn(AndroidSchedulers.mainThread()) + ?.subscribe(object : Observer { + override fun onSubscribe(d: Disposable) { + d(TAG, "onSubscribe") + + } + + override fun onError(e: Throwable) { + d(TAG, "onError${e.printStackTrace()}") + + } + + override fun onComplete() { + d(TAG, "onComplete") + } + + override fun onNext(data: Boolean) { + d(TAG, "onNext:${data}") + queryBusRoutes() + } + }) + } + } + } + } + }else{ + OchChainLogManager.writeChainLog("任务管理触发进站,","任务管理和pad端task 不一致请取消任务后重新选择任务") + } + } + } + + } } private val ochTransform = object : OchTransformDispatch { @@ -171,7 +265,7 @@ object OrderModel { //是否到站的围栏判断 离站状态并且自动驾驶还未触发到站 if (isGoingToNextStation && !isArrivedStation) { OCHThreadPoolManager.getsInstance().locationExecute { - onArriveAt(null, "兜底:距离站点15m内 每秒钟向底盘查询是否到站 底盘返回") + //onArriveAt(null, "兜底:距离站点15m内 每秒钟向底盘查询是否到站 底盘返回") } } } @@ -489,7 +583,7 @@ object OrderModel { * @param data */ @JvmStatic - fun onArriveAt(data: ArrivedStation?, type: String) { + fun onArriveAt(data: VehicleSite?, type: String) { if (LineManager.getStations().second == null) { e(TAG, "行程日志-到站异常,取消后续操作结束") OchChainLogManager.writeChainLog("shuttle弱网", "$type 行程日志-到站异常,取消后续操作结束") diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/RepositoryManager.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/RepositoryManager.kt index 488da372dd..8b46819cfd 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/RepositoryManager.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/RepositoryManager.kt @@ -27,6 +27,7 @@ import com.mogo.och.unmanned.repository.net.bean.response.PassengerWriteOffRespo import com.mogo.och.unmanned.repository.writeoff.IWriteOffRepository import com.mogo.och.unmanned.repository.writeoff.impl.WriteOffCacheRepository import com.mogo.och.unmanned.repository.writeoff.impl.WriteOffNormallRepository +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.VehicleSite import io.reactivex.Observable object RepositoryManager { @@ -142,6 +143,11 @@ object RepositoryManager { return lineRepository?.skipStation() } + + fun adjustAllStation(taskId: Long, arrivedStation: VehicleSite): Observable? { + return lineRepository?.adjustAllStation(taskId,arrivedStation) + } + fun endTask(shiftsId: Long, taskId: Long): Observable? { return lineRepository?.endTask(shiftsId, taskId) } diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt index 834794fae5..b51ffea986 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/repository/TaskSiteDb.kt @@ -1,5 +1,6 @@ package com.mogo.och.unmanned.repository.db.repository +import androidx.room.Transaction import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.eagle.core.utilcode.util.StringUtils import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager @@ -187,5 +188,22 @@ object TaskSiteDb : IDbRepository { return runningSite } + fun adjustAllStationByTaskId(queryRunningTask: List?) { + val runnable = object : Runnable { + @Transaction + override fun run() { + queryRunningTask?.forEach { + taskSiteDataDao?.updateDrivingStatusANdLeave( + it.taskId ?: 0, + it.siteId ?: 0, + it.drivingStatus ?: 0, + if (it.leaving == true) 1 else 0, + ) + } + } + } + BizLoopManager.runInIoThread(runnable) + } + } \ No newline at end of file diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/ILineRepository.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/ILineRepository.kt index bb9654777e..d60b6c5de4 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/ILineRepository.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/ILineRepository.kt @@ -8,6 +8,7 @@ import com.mogo.och.unmanned.bean.response.CarExecutableTaskResponse import com.mogo.och.unmanned.bean.response.PointResponse import com.mogo.och.unmanned.repository.db.bean.LineDataBean import com.mogo.och.unmanned.repository.db.bean.TaskDataBean +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.VehicleSite import io.reactivex.Observable interface ILineRepository { @@ -34,6 +35,8 @@ interface ILineRepository { fun skipStation(): Observable? + fun adjustAllStation(taskId: Long, arrivedStation: VehicleSite):Observable? + fun endTask(shiftsId: Long, taskId: Long): Observable? fun queryCarExecutableTaskList(ochCommonServiceCallback: OchCommonServiceCallback) diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt index 84a0430107..d0cb10dd76 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/NormalRepository.kt @@ -22,13 +22,13 @@ import com.mogo.och.unmanned.bean.response.PointResponse import com.mogo.och.unmanned.model.LineModel import com.mogo.och.unmanned.repository.db.bean.LineDataBean import com.mogo.och.unmanned.repository.db.bean.TaskDataBean -import com.mogo.och.unmanned.repository.db.bean.TaskSiteDataBean import com.mogo.och.unmanned.repository.line.ILineRepository import com.mogo.och.unmanned.repository.net.NetInterface import com.mogo.och.unmanned.repository.net.exception.NetException import com.mogo.och.unmanned.repository.net.project.dali.bus.DaliBusServiceManager import com.mogo.och.unmanned.repository.net.project.mogo.bus.MogoBusServiceManager import com.mogo.och.unmanned.repository.net.project.mogo.shuttle.MogoShuttleServiceManager +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.VehicleSite import io.reactivex.Observable class NormalRepository : ILineRepository { @@ -205,6 +205,10 @@ class NormalRepository : ILineRepository { return Observable.just(false) } + override fun adjustAllStation(taskId: Long, arrivedStation: VehicleSite):Observable? { + return Observable.just(false) + } + override fun endTask(shiftsId: Long, taskId: Long): Observable? { return normalLineInterface?.endTask(taskId) } diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt index 8bd87953ed..c80fdd5d85 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/line/impl/WeaknetRepository.kt @@ -30,7 +30,6 @@ import com.mogo.och.unmanned.model.LineModel.currentTask import com.mogo.och.unmanned.repository.db.bean.ContrailDataBean import com.mogo.och.unmanned.repository.db.bean.LineDataBean import com.mogo.och.unmanned.repository.db.bean.TaskDataBean -import com.mogo.och.unmanned.repository.db.bean.TaskSiteDataBean import com.mogo.och.unmanned.repository.db.repository.ContraiDb import com.mogo.och.unmanned.repository.db.repository.EventDb import com.mogo.och.unmanned.repository.db.repository.LineDb @@ -44,6 +43,7 @@ import com.mogo.och.unmanned.repository.net.project.dali.shuttle.DaliShuttleServ import com.mogo.och.unmanned.repository.net.project.saas.bus.SaasBusServiceManager import com.mogo.och.unmanned.repository.net.project.saas.scheduled.SaasScheduledServiceManager import com.mogo.och.unmanned.repository.net.project.saas.shuttle.SaasShuttleServiceManager +import com.zhjt.mogo.adas.unmanned.task.dto.cmd.VehicleSite import io.reactivex.Observable class WeaknetRepository : ILineRepository { @@ -510,6 +510,37 @@ class WeaknetRepository : ILineRepository { } } + override fun adjustAllStation(taskId: Long, arrivedStation: VehicleSite): Observable? { + return Observable.just(12) + .flatMap {temp-> + //1 查询正在执行的任务 + val queryRunningTask = TaskSiteDb.queryRunningTask(taskId) + //2 根据参数arrivedStation 来设置正确的 当前站和下一站 + var arrivedStationIndex = -1 + queryRunningTask?.forEachIndexed { index, taskSiteDataBean -> + if (taskSiteDataBean.tag != BusStationBean.tagSkip) { + if (taskSiteDataBean.siteId == arrivedStation.stationId) { + arrivedStationIndex = index + taskSiteDataBean.drivingStatus = BusStationBean.drivingStatusCurrent + taskSiteDataBean.leaving = false + } else { + if (arrivedStationIndex < 0) { + taskSiteDataBean.drivingStatus = BusStationBean.drivingStatusPassed + taskSiteDataBean.leaving = false + } else { + taskSiteDataBean.drivingStatus = + BusStationBean.drivingStatusNotArrived + taskSiteDataBean.leaving = false + } + } + } + } + OchChainLogManager.writeChainLog("任务管理触发进站,","更新新的数据库类型去") + TaskSiteDb.adjustAllStationByTaskId(queryRunningTask) + return@flatMap Observable.just(true) + } + } + override fun endTask(shiftsId: Long, taskId: Long): Observable? { return Observable.just(taskId).flatMap { currentTask?.let { task -> 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 c84c74919c..a23c8cf4cc 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.TaskArrivalNotification; import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification; import java.io.IOException; @@ -809,4 +810,9 @@ public class SweeperCloudTaskModel implements IMoGoSweeperFutianCloudTaskListene public void invokeLeaveStation(@Nullable Long taskId, @Nullable TaskStartNotification taskStartNotification) { } + + @Override + public void onArriveAtStationByTaskManager(@Nullable Long taskId, @Nullable TaskArrivalNotification taskArrivalNotification) { + + } } 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 0beea4e732..b1679e1e8e 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.TaskArrivalNotification; import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification; import java.math.BigDecimal; @@ -489,4 +490,9 @@ public class SweeperOperatePresenter extends Presenter public void invokeLeaveStation(@Nullable Long taskId, @Nullable TaskStartNotification taskStartNotification) { } + + @Override + public void onArriveAtStationByTaskManager(@Nullable Long taskId, @Nullable TaskArrivalNotification taskArrivalNotification) { + + } } 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 efcba4f7d4..e9b8269717 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,8 +38,9 @@ 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.invokeLeaveStation import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeArriveAtStation +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeArriveAtStationByTaskManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeAutoPilotInfo import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeAutoPilotStation import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeAutopilotGuardian @@ -133,6 +134,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.TaskArrivalNotification 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 @@ -1699,10 +1701,11 @@ class MoGoAdasListenerImpl : OnAdasListener { taskId: Long?, taskStartNotification: TaskStartNotification? ) { - inVokeLeaveStation(taskId,taskStartNotification) + invokeLeaveStation(taskId,taskStartNotification) } - override fun onAdasTaskManagerArrival(taskId: Long?, siteId: Long?, sequence: Int?, mileage: BigDecimal?) { + override fun onAdasTaskManagerArrival(taskId: Long?,taskArrivalNotification: TaskArrivalNotification? ) { + invokeArriveAtStationByTaskManager(taskId,taskArrivalNotification) } override fun onAdasTaskManagerComplete(taskId: Long?, userId: Long?, status: Int?, reason: String?, completedTime: Date?, mileage: BigDecimal?) { 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 5ce21a6647..a6ea2e62a1 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.TaskArrivalNotification import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification import mogo.telematics.pad.MessagePad import mogo_msg.MogoReportMsg @@ -68,6 +69,8 @@ interface IMoGoAutopilotStatusListener { */ fun onAutopilotArriveAtStation(arrivalNotification: MessagePad.ArrivalNotification?) {} + fun onArriveAtStationByTaskManager(taskId: Long?,taskArrivalNotification: TaskArrivalNotification?) {} + /** * 自动驾驶 离站触发 */ 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 3c7dcfa864..cc1cf8c4e6 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.TaskArrivalNotification import com.zhjt.mogo.adas.unmanned.task.dto.cmd.TaskStartNotification import mogo.telematics.pad.MessagePad import mogo_msg.MogoReportMsg @@ -271,8 +272,20 @@ object CallerAutoPilotStatusListenerManager : CallerBase - + + + + + + + + + + Date: Fri, 20 Mar 2026 15:45:55 +0800 Subject: [PATCH 12/16] =?UTF-8?q?[8.4.0]=20[=E7=BA=A2=E7=BB=BF=E7=81=AF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shuttle_unmanned_container_view.xml | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_container_view.xml b/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_container_view.xml index 01a5993465..56b75ec867 100644 --- a/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_container_view.xml +++ b/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_container_view.xml @@ -20,18 +20,18 @@ - + + + + + + + + + + + + From 9b553fe21c48a95593b70acf20be02a30fa4c419 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 20 Mar 2026 16:10:18 +0800 Subject: [PATCH 13/16] =?UTF-8?q?[8.4.0]=20[=E9=A6=96=E7=AB=99=E6=98=AF?= =?UTF-8?q?=E4=B8=B4=E6=97=B6=E4=B8=8D=E5=81=9C=E3=80=81=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E7=AB=99=E7=82=B9=E9=94=99=E8=AF=AF]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/db/bean/TaskSiteDataBean.kt | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt index 50049d5951..edd989e81e 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/repository/db/bean/TaskSiteDataBean.kt @@ -144,6 +144,17 @@ data class TaskSiteDataBean( fun toTaskSiteDatas(querySites: List, shiftsId: Long, taskId: Long, lineName: String): MutableList { val result = mutableListOf() var temp: TaskSiteDataBean? = null + + // 先定义变量存储「第一个tag≠2」的元素seq值 + var targetSeq: Int? = null + +// 第一步:遍历找到第一个tag≠2的元素的seq + querySites.forEach { + if (it.tag != 2 && targetSeq == null) { + targetSeq = it.seq + } + } + querySites.forEach { temp = TaskSiteDataBean() temp?.taskId = taskId @@ -158,10 +169,14 @@ data class TaskSiteDataBean( temp?.gcjLat = it.gcjLat temp?.lon = it.lon temp?.lat = it.lat - if (it.seq == 1) { - temp?.drivingStatus = BusStationBean.drivingStatusCurrent - } else { - temp?.drivingStatus = BusStationBean.drivingStatusNotArrived + // 核心:根据tag条件设置drivingStatus + temp?.drivingStatus = when { + // 1. 找到第一个tag≠2的元素 → Current + targetSeq != null && it.seq == targetSeq -> BusStationBean.drivingStatusCurrent + // 2. 该元素之前的 → Passed + targetSeq != null && it.seq!! < targetSeq!! -> BusStationBean.drivingStatusPassed + // 3. 其余情况(包括所有tag=2)→ NotArrived + else -> BusStationBean.drivingStatusNotArrived } temp?.leaving = false temp?.introduction = it.introduction From d46e47cf9761ac5ee28be31cd187b9cf60857b9e Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 20 Mar 2026 16:46:20 +0800 Subject: [PATCH 14/16] =?UTF-8?q?[8.4.0]=20[=E7=A7=91=E5=A4=A7=E8=AE=AF?= =?UTF-8?q?=E9=A3=9E=E5=87=BA=E7=8E=B0=20=E5=BC=80=E5=90=AF=E4=BC=9A?= =?UTF-8?q?=E8=AF=9D=E6=8A=A5=E9=94=99=EF=BC=9A18310=20=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=90=8E=E4=B8=BB=E5=8A=A8=E8=B0=83=E7=94=A8=E4=B8=80=E6=AC=A1?= =?UTF-8?q?end]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/tts/iflytekoffline/IFlyTekOfflineTts.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tts/tts-iflytek-offline/src/main/java/com/mogo/tts/iflytekoffline/IFlyTekOfflineTts.kt b/tts/tts-iflytek-offline/src/main/java/com/mogo/tts/iflytekoffline/IFlyTekOfflineTts.kt index b00f6789e5..e2a8de0cb4 100644 --- a/tts/tts-iflytek-offline/src/main/java/com/mogo/tts/iflytekoffline/IFlyTekOfflineTts.kt +++ b/tts/tts-iflytek-offline/src/main/java/com/mogo/tts/iflytekoffline/IFlyTekOfflineTts.kt @@ -342,6 +342,12 @@ class IFlyTekOfflineTts : IMogoTTS { if (!aiHandle!!.isSuccess) { // handleErrorEvent("开启会话报错:${aiHandle!!.code}") handleErrorEvent("${StringUtils.getString(R.string.module_tts_start_ai_handle_error)}${aiHandle!!.code}") + if(aiHandle!!.code==18310){ + aiHandle?.let { + val ret = AiHelper.getInst().end(it) + d(TAG, "AIKit_End:$ret") + } + } aiHandle = null return } From 0816d7596a0b39ccb8d77eeba1a535d926c2bcbf Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 20 Mar 2026 17:31:01 +0800 Subject: [PATCH 15/16] =?UTF-8?q?[8.4.0]=20[=E4=B8=8B=E5=8F=91=E7=BB=A7?= =?UTF-8?q?=E7=BB=AD=E6=8A=8A16s=E6=8B=A6=E6=88=AA=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=8E=89]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/bridge/autopilot/line/LineManager.kt | 6 ------ 1 file changed, 6 deletions(-) diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/line/LineManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/line/LineManager.kt index be54333f2e..0201d2fc1c 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/line/LineManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/line/LineManager.kt @@ -753,12 +753,6 @@ object LineManager : CallerBase() { return } } - /** - * 存在Session - */ - if (!OchAutoPilotManager.canStartAutopilotBySessionId()) { - return - } OchAutopilotAnalytics.triggerClickStartAutopilotTime(System.currentTimeMillis()) //1、判断轨迹url是否可用 if (_contraiInfo == null) { From d9e01100784642260bc3f80b7011445aef83736b Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 20 Mar 2026 17:41:00 +0800 Subject: [PATCH 16/16] =?UTF-8?q?[8.4.0]=20[=E7=A7=91=E5=A4=A7=E8=AE=AF?= =?UTF-8?q?=E9=A3=9E=E6=B2=A1=E6=88=90=E5=AF=B9=E8=B0=83=E7=94=A8start?= =?UTF-8?q?=E5=92=8Cend=E5=90=8E=E9=87=8D=E5=A4=8D=E6=92=AD=E6=94=BE]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/tts/iflytekoffline/IFlyTekOfflineTts.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tts/tts-iflytek-offline/src/main/java/com/mogo/tts/iflytekoffline/IFlyTekOfflineTts.kt b/tts/tts-iflytek-offline/src/main/java/com/mogo/tts/iflytekoffline/IFlyTekOfflineTts.kt index e2a8de0cb4..d698f42afb 100644 --- a/tts/tts-iflytek-offline/src/main/java/com/mogo/tts/iflytekoffline/IFlyTekOfflineTts.kt +++ b/tts/tts-iflytek-offline/src/main/java/com/mogo/tts/iflytekoffline/IFlyTekOfflineTts.kt @@ -346,6 +346,11 @@ class IFlyTekOfflineTts : IMogoTTS { aiHandle?.let { val ret = AiHelper.getInst().end(it) d(TAG, "AIKit_End:$ret") + if(ret==0){ + realSpeak(content,language) + }else{ + handleErrorEvent("${StringUtils.getString(R.string.module_tts_start_ai_handle_error)}${ret}") + } } } aiHandle = null