From 503755609bb4bfa4a3f39aa4ed41645d5d6aa769 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Mon, 10 Oct 2022 11:42:14 +0800 Subject: [PATCH] =?UTF-8?q?[Change]=20A=E3=80=81=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=9C=80=E5=90=8E=E4=B8=80=E6=AC=A1=E5=90=AF=E5=8A=A8=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E9=A9=BE=E9=A9=B6=E5=8F=82=E6=95=B0=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=EF=BC=8C=E6=B3=A8=E6=84=8F=EF=BC=8C=E5=AE=9E=E6=97=B6=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E5=92=8C=E4=B8=BB=E5=8A=A8=E6=9F=A5=E8=AF=A2=E5=87=BA?= =?UTF-8?q?=E6=9D=A5=E5=AF=B9=E5=8F=AF=E8=83=BD=E4=B8=BAnull=E5=8D=B3?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E8=A1=8C=E7=A8=8B=E4=BF=A1=E6=81=AF=EF=BC=8C?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E5=81=9A=E5=A5=BD=E5=AE=B9=E9=94=99=EF=BC=8C?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=96=B9=E6=B3=95=EF=BC=9A=201=E3=80=81?= =?UTF-8?q?=E5=AE=9E=E6=97=B6=E7=9B=91=E5=90=AC=EF=BC=9A=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E7=9B=91=E5=90=AC=E6=8E=A5=E5=8F=A3=EF=BC=8CIMoGoAutopilotStat?= =?UTF-8?q?usListener::onAutopilotStatusResponse(autoPilotStatusInfo:=20Au?= =?UTF-8?q?topilotStatusInfo)=EF=BC=8C=E6=B3=A8=E5=86=8C=E5=8F=98=E5=8C=96?= =?UTF-8?q?=E7=9B=91=E5=90=ACCallerAutoPilotStatusListenerManager.INSTANCE?= =?UTF-8?q?.addListener(TAG,=20this);=202=E3=80=81=E5=8D=95=E6=AC=A1?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=EF=BC=9A=20CallerAutoPilotStatusListenerMana?= =?UTF-8?q?ger.INSTANCE.getAutoPilotStatusInfo().getAutopilotControlParame?= =?UTF-8?q?ters()=203=E3=80=81TODO=20@=E6=96=87=E5=90=9B=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E5=9C=A8Taxi=E8=A1=8C=E7=A8=8B=E7=BB=93=E6=9D=9F=E5=92=8CBus?= =?UTF-8?q?=E8=B7=91=E5=AE=8C=E6=9C=80=E5=90=8E=E4=B8=80=E7=AB=99=E5=90=8E?= =?UTF-8?q?=E5=AF=B9=E6=95=B0=E6=8D=AE=E8=BF=9B=E8=A1=8C=E6=B8=85=E7=A9=BA?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../core/data/autopilot/AutopilotStatusInfo.kt | 7 ++++++- .../call/autopilot/CallerAutoPilotManager.kt | 4 ++++ .../CallerAutoPilotStatusListenerManager.kt | 17 +++++++++++++---- .../core/function/call/autopilot/REEADME.md | 6 ++++++ 4 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/REEADME.md diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/autopilot/AutopilotStatusInfo.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/autopilot/AutopilotStatusInfo.kt index 4cdacb92d6..f0dd46a78b 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/autopilot/AutopilotStatusInfo.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/autopilot/AutopilotStatusInfo.kt @@ -85,12 +85,17 @@ open class AutopilotStatusInfo : Serializable, Cloneable { // 默认未连接 var ipcConnStatus = 0x01 + /** + * 记录最后一次启动自动驾驶需要的参数,结束自动驾驶后设置为null + */ + var autopilotControlParameters: AutopilotControlParameters? = null + override fun toString(): String { return "connectIP=$connectIP, connectPort=$connectPort, " + "connectStatus=$connectStatus, connectDescribe=$connectStatusDescribe, version=$version, dockVersion=$dockVersion," + " locationStatus=$locationStatus), locationLat=$locationLat, locationLon=$locationLon," + " satelliteTime=$satelliteTime, speed=$speed, state=$state, reason=$reason, camera=$camera," + - " radar=$radar, rtk=$rtk, pilotmode=$pilotmode, ipcConnStatus=$ipcConnStatus" + " radar=$radar, rtk=$rtk, pilotmode=$pilotmode, ipcConnStatus=$ipcConnStatus, autopilotControlParameters=$autopilotControlParameters" } public override fun clone(): AutopilotStatusInfo { diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotManager.kt index 56bb110906..a941d04ea8 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotManager.kt @@ -67,6 +67,8 @@ object CallerAutoPilotManager { return } providerApi?.startAutoPilot(controlParameters) + // 更新记录在全局的控制参数 + CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(controlParameters) } /** @@ -94,6 +96,8 @@ object CallerAutoPilotManager { // 司机屏才能取消自动驾驶 if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { providerApi?.cancelAutoPilot() + // 更新记录在全局的控制参数 + CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null) } } 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 5f0625073a..061c1347ca 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 @@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.call.autopilot import android.util.* import androidx.annotation.Nullable +import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.base.CallerBase @@ -24,7 +25,7 @@ object CallerAutoPilotStatusListenerManager : CallerBase() { // 存储所有注册了监听的对象,invokeXXXX进行遍历回调,将信息同步 private val M_AUTOPILOT_STATUS_LISTENERS: ConcurrentHashMap = - ConcurrentHashMap() + ConcurrentHashMap() @Volatile private var autoPilotMessageCode: String = "" @@ -93,8 +94,8 @@ object CallerAutoPilotStatusListenerManager : CallerBase() { * @param listener 监听回调 */ fun addListener( - @Nullable tag: String, - @Nullable listener: IMoGoAutopilotStatusListener + @Nullable tag: String, + @Nullable listener: IMoGoAutopilotStatusListener ) { if (M_AUTOPILOT_STATUS_LISTENERS.containsKey(tag)) { return @@ -201,10 +202,18 @@ object CallerAutoPilotStatusListenerManager : CallerBase() { */ fun invokeAutopilotStatusRespByQuery(statusInfo: SystemStatusInfo.StatusInfo?) { statusInfo?.also { - M_AUTOPILOT_STATUS_LISTENERS.forEach{ itx -> + M_AUTOPILOT_STATUS_LISTENERS.forEach { itx -> val listener = itx.value listener.onAutopilotStatusRespByQuery(it) } } } + + /** + * 更新自动驾驶控制参数,结束自动驾驶时候需要更新为null,且更新时候同时触发onAutopilotStatusResponse回调 + */ + fun updateAutopilotControlParameters(autopilotControlParameters: AutopilotControlParameters? = null) { + mAutopilotStatusInfo.autopilotControlParameters = autopilotControlParameters + invokeAutoPilotStatus(mAutopilotStatusInfo) + } } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/REEADME.md b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/REEADME.md new file mode 100644 index 0000000000..6d3fa01f95 --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/REEADME.md @@ -0,0 +1,6 @@ +#### CallerAutoPilotStatusListenerManager 管理自动驾驶中的状态及参数信息 + +AutopilotStatusInfo: +连接信息 +实时经纬度、速度、车辆硬件状态 +最后一次启动自动驾驶时候的启动参数 AutopilotControlParameters