From 0ff3f345998553e0128efe40a171348e2a559f95 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Thu, 26 Dec 2024 15:27:57 +0800 Subject: [PATCH] =?UTF-8?q?[6.8.4]=20[fea]=20[all]=20[=E6=B7=BB=E5=8A=A0au?= =?UTF-8?q?topilotFlag]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/bridge/autopilot/line/LineManager.kt | 43 ++++++++++++++++++- .../java/com/mogo/och/data/bean/LineInfo.kt | 4 ++ 2 files changed, 45 insertions(+), 2 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 36fd7e91af..2679a24ef5 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 @@ -43,6 +43,11 @@ import kotlin.properties.Delegates */ object LineManager : CallerBase() { const val TAG = "LineManager" + + const val firstStationFirstStartAutopilotFlag = 1 + const val middleStationFirstStartAutopilotFlag = 2 + const val norFirstStartAutopilotFlag = 3 + /** * 线路信息 */ @@ -73,11 +78,35 @@ object LineManager : CallerBase() { */ private var endStation: BusStationBean? = null + + /** + * 和[autopilotId]相关 默认为true + * 一个autopilotId范围内第一次启动自驾成功后 为false + */ var isFirstStartAutopilot = true + + /** + * 和[teleOrderId] 相关的 默认为true + * 一个teleOrderId范围内第一次启动自驾成功后 为false + */ var teleIsFirstStartAutopilot = true /** - * 线路、och业务id、站点 三者确定的id + * 1 首站点触发 + * 2 中间站点触发 + * 3 新的站点第一次启动自驾成功后 + */ + var autopilotFlag : Int by Delegates.observable(firstStationFirstStartAutopilotFlag) { _, oldValue, newValue -> + if(oldValue!=newValue){ + d(TAG,"autopilotFlag old=$oldValue new=$newValue") + } + } + + /** + * bizId 小巴、接驳、班车 时任务id + * taxi 目前是orderNo 6.9.0改为任务id + * ochCommon 抽象的自驾id + * 生成规则 lineId_startsiteId_endsiteId_bizId */ private var autopilotId: String by Delegates.observable("") { _, oldValue, newValue -> if (oldValue != newValue) { @@ -105,7 +134,10 @@ object LineManager : CallerBase() { } /** - * 线路、och业务id、当前线路的所有站点 三者确定的id + * bizId 小巴、接驳、班车 时任务id + * taxi 目前是orderNo 6.9.0改为任务id + * 向地盘传递的orderId + * 生成规则 lineId_siteId1_siteId2_siteId3...siteIdn_bizId */ private var teleOrderId: String by Delegates.observable("") { _, oldValue, newValue -> if (oldValue != newValue) { @@ -291,6 +323,11 @@ object LineManager : CallerBase() { return@getStationsWithLine } d(M_BUS + TAG, "AutopilotControlParameters is update.") + if (lineInfo.isFirstStation(start)) { + autopilotFlag = firstStationFirstStartAutopilotFlag + }else{ + autopilotFlag = middleStationFirstStartAutopilotFlag + } CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(parameters) val startStationLocation = MogoLocation() startStationLocation.latitude = start.gcjLat @@ -310,6 +347,7 @@ object LineManager : CallerBase() { CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null) TrajectoryAndDistanceManager.setStationPoint(null, null, null) autopilotId = "" + autopilotFlag = firstStationFirstStartAutopilotFlag OchLocationManager.removeGCJ02Listener(TAG) } @@ -572,6 +610,7 @@ object LineManager : CallerBase() { if(send){// 启动自驾成功回调 teleIsFirstStartAutopilot = false isFirstStartAutopilot = false + autopilotFlag = norFirstStartAutopilotFlag M_LISTENERS.forEach { it.value.startAutopilotSuccess(source,autopilotId) } diff --git a/OCH/common/data/src/main/java/com/mogo/och/data/bean/LineInfo.kt b/OCH/common/data/src/main/java/com/mogo/och/data/bean/LineInfo.kt index cafce9c0cb..1e51f328fb 100644 --- a/OCH/common/data/src/main/java/com/mogo/och/data/bean/LineInfo.kt +++ b/OCH/common/data/src/main/java/com/mogo/och/data/bean/LineInfo.kt @@ -49,5 +49,9 @@ data class LineInfo( return lineId.hashCode() } + fun isFirstStation(start: BusStationBean):Boolean { + return siteInfos.first()==start + } + }