From c656ceea586468dd53f16936bfe5fe5c48c1ef3a Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Wed, 11 Jan 2023 11:50:19 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=B8=85=E6=89=AB=E8=BD=A6]=E8=B4=B4=E8=BE=B9?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=9B=9E=E8=B0=83=E5=92=8C=E7=94=B5=E9=87=8F?= =?UTF-8?q?=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sweeper/ui/SweeperOperatePanelView.java | 11 ++++++ .../sweeper/view/SweeperTrafficDataView.java | 16 ++++++++- .../autopilot/adapter/MoGoAdasListenerImpl.kt | 9 ++++- .../adapter/MoGoHandAdasMsgManager.java | 10 ++++++ .../status/flow/can/CanImpl.kt | 27 ++++++++++---- .../hmi/ui/setting/DebugSettingView.kt | 35 +++++++++++++++---- .../hmi/ui/widget/SteeringWheelView.java | 10 ++++++ .../hmi/ui/widget/TrafficDataView.java | 11 +++++- .../IMoGoAutopilotVehicleStateListener.kt | 11 ++++++ ...lerAutopilotVehicleStateListenerManager.kt | 20 ++++++++++- 10 files changed, 143 insertions(+), 17 deletions(-) diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/ui/SweeperOperatePanelView.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/ui/SweeperOperatePanelView.java index 4765373f02..2565f54b4c 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/ui/SweeperOperatePanelView.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/ui/SweeperOperatePanelView.java @@ -42,6 +42,7 @@ import java.util.List; import chassis.Chassis; import chassis.ChassisStatesOuterClass; import chassis.SpecialVehicleTaskCmdOuterClass; +import planning.RoboSweeperTaskIndexOuterClass; /** * 清扫车操作面板View @@ -758,6 +759,11 @@ public class SweeperOperatePanelView extends LinearLayout { * 底盘数据透传listener */ private final IMoGoAutopilotVehicleStateListener mIMoGoAutopilotVehicleStateListener = new IMoGoAutopilotVehicleStateListener() { + @Override + public void onBMSSystemStates(@NonNull ChassisStatesOuterClass.BMSSystemStates bmsSystemStates) { + + } + @Override public void onAutopilotDataException(long timestamp) { } @@ -813,6 +819,11 @@ public class SweeperOperatePanelView extends LinearLayout { } } } + + @Override + public void onSweeperFutianTaskIndexData(@NonNull RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex) { + + } }; @Override diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java index 4164276bcf..31a47a3358 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java @@ -21,7 +21,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.ConstraintLayout; import chassis.Chassis; +import chassis.ChassisStatesOuterClass; import chassis.VehicleStateOuterClass; +import planning.RoboSweeperTaskIndexOuterClass; public class SweeperTrafficDataView extends ConstraintLayout { private static final String TAG = "SweeperTrafficDataView"; @@ -71,9 +73,21 @@ public class SweeperTrafficDataView extends ConstraintLayout { } private final IMoGoAutopilotVehicleStateListener mIMoGoAutopilotVehicleStateListener = new IMoGoAutopilotVehicleStateListener() { @Override - public void onSweeperFutianCleanSystemState(@NonNull VehicleStateOuterClass.SweeperFuTianCleanSystemState cleanSystemState) { + public void onSweeperFutianTaskIndexData(@NonNull RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex) { + } + @Override + public void onSweeperFutianCleanSystemState(@NonNull ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) { + + } + + @Override + public void onBMSSystemStates(@NonNull ChassisStatesOuterClass.BMSSystemStates bmsSystemStates) { + + } + + /** * 车辆转向灯 * @param lightSwitch diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt index 856ba89754..f68e63ee3f 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -190,6 +190,10 @@ class MoGoAdasListenerImpl : OnAdasListener { //刹车 CallerAutopilotVehicleStateListenerManager.invokeAutopilotBrake(it.brakePedalResponsePosition) } + chassisStates.bmsSystemStates?.let { + //电池管理系统 + CallerAutopilotVehicleStateListenerManager.invokeBMSSystemStates(it) + } chassisStates.taskSystemStates?.let { taskSystemStates -> taskSystemStates.sweeperFutianTaskSystemStates?.let { //清扫车(福田)清扫控制系统状态 @@ -478,7 +482,10 @@ class MoGoAdasListenerImpl : OnAdasListener { * @param roboSweeperTaskIndex 数据 */ override fun onSweeperTaskIndexData(header: MessagePad.Header?, roboSweeperTaskIndex: RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex?) { - + roboSweeperTaskIndex?.let { + //清扫车(福田)清扫控制系统状态 + CallerAutopilotVehicleStateListenerManager.invokeSweeperFutianCleanTaskIndexData(it) + } } diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java index 64f7b136a5..0a9b31a700 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java @@ -30,6 +30,7 @@ import org.jetbrains.annotations.NotNull; import chassis.Chassis; import chassis.ChassisStatesOuterClass; import mogo.telematics.pad.MessagePad; +import planning.RoboSweeperTaskIndexOuterClass; public class MoGoHandAdasMsgManager implements IMoGoAutopilotVehicleStateListener, @@ -189,5 +190,14 @@ public class MoGoHandAdasMsgManager implements @Override public void onSweeperFutianCleanSystemState(ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) { + } + @Override + public void onSweeperFutianTaskIndexData(@NonNull RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex) { + + } + + @Override + public void onBMSSystemStates(@NonNull ChassisStatesOuterClass.BMSSystemStates bmsSystemStates) { + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/can/CanImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/can/CanImpl.kt index d11d4e5190..a9b335f081 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/can/CanImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/can/CanImpl.kt @@ -1,19 +1,26 @@ package com.zhjt.mogo_core_function_devatools.status.flow.can -import android.content.* +import android.content.Context import android.util.Log import chassis.Chassis.GearPosition import chassis.Chassis.LightSwitch import chassis.ChassisStatesOuterClass -import com.mogo.eagle.core.function.api.autopilot.* -import com.mogo.eagle.core.function.call.autopilot.* -import com.mogo.eagle.core.utilcode.kotlin.* -import com.zhjt.mogo_core_function_devatools.status.flow.IFlow +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotVehicleStateListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotVehicleStateListenerManager +import com.mogo.eagle.core.utilcode.kotlin.safeCancel import com.zhjt.mogo_core_function_devatools.status.entity.CanStatus -import kotlinx.coroutines.* +import com.zhjt.mogo_core_function_devatools.status.flow.IFlow +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch import mogo_msg.MogoReportMsg.MogoReportMessage +import planning.RoboSweeperTaskIndexOuterClass import system_master.SystemStatusInfo.StatusInfo -import java.util.concurrent.atomic.* +import java.util.concurrent.atomic.AtomicInteger internal class CanImpl(ctx: Context): IFlow(ctx), IMoGoAutopilotVehicleStateListener, IMoGoAutopilotStatusListener { @@ -82,11 +89,17 @@ internal class CanImpl(ctx: Context): IFlow(ctx), IMoGoAutopilotVehic timeOutCheck() } + override fun onBMSSystemStates(bmsSystemStates: ChassisStatesOuterClass.BMSSystemStates) { + + } + override fun onSweeperFutianCleanSystemState(cleanSystemState: ChassisStatesOuterClass.SweeperFuTianTaskSystemStates) { send(CanStatus(isCanEnabled())) timeOutCheck() } + override fun onSweeperFutianTaskIndexData(roboSweeperTaskIndex: RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex) { + } override fun onAutopilotGuardian(guardianInfo: MogoReportMessage?) { super.onAutopilotGuardian(guardianInfo) send(CanStatus(isCanEnabled())) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index e37df27a81..511734a78a 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -15,7 +15,7 @@ import androidx.annotation.RequiresApi import androidx.appcompat.widget.PopupMenu import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat -import androidx.core.view.* +import androidx.core.view.MenuCompat import androidx.recyclerview.widget.LinearLayoutManager import chassis.Chassis import chassis.ChassisStatesOuterClass @@ -24,7 +24,7 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.debug.DebugConfig import com.mogo.commons.module.status.MogoStatusManager import com.mogo.eagle.core.data.app.AppConfigInfo -import com.mogo.eagle.core.data.autopilot.* +import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig import com.mogo.eagle.core.data.constants.MoGoConfig @@ -47,6 +47,7 @@ import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsFuncConfigListen import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener import com.mogo.eagle.core.function.api.obu.IMoGoObuStatusListener +import com.mogo.eagle.core.function.business.routeoverlay.RouteStrategy import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsFuncConfigListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager @@ -59,6 +60,7 @@ import com.mogo.eagle.core.function.call.map.CallerSmpManager import com.mogo.eagle.core.function.call.obu.CallerOBUManager import com.mogo.eagle.core.function.call.obu.CallerObuListenerManager import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.logcatch.ILogViewListener import com.mogo.eagle.core.function.hmi.ui.logcatch.LogInfoView @@ -76,17 +78,32 @@ import com.mogo.eagle.core.utilcode.util.* import com.mogo.map.MogoMapUIController import com.mogo.map.uicontroller.VisualAngleMode import com.mogo.map.uicontroller.VisualAngleMode.* -import com.mogo.eagle.core.function.business.routeoverlay.* -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.zhidao.easysocket.utils.L import com.zhidao.support.adas.high.other.permission.BackgrounderPermission -import com.zhjt.mogo_core_function_devatools.env.* +import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager import kotlinx.android.synthetic.main.view_debug_setting.view.* -import kotlinx.android.synthetic.main.view_debug_setting.view.tbRouteDynamicEffect import mogo.telematics.pad.MessagePad import mogo_msg.MogoReportMsg +import planning.RoboSweeperTaskIndexOuterClass import java.text.SimpleDateFormat import java.util.* +import kotlin.collections.ArrayList +import kotlin.collections.List +import kotlin.collections.Map +import kotlin.collections.MutableList +import kotlin.collections.MutableMap +import kotlin.collections.arrayListOf +import kotlin.collections.component1 +import kotlin.collections.component2 +import kotlin.collections.component3 +import kotlin.collections.component4 +import kotlin.collections.first +import kotlin.collections.forEach +import kotlin.collections.iterator +import kotlin.collections.mutableMapOf +import kotlin.collections.removeLast +import kotlin.collections.set +import kotlin.collections.sortByDescending import kotlin.math.abs @@ -2169,13 +2186,19 @@ class DebugSettingView @JvmOverloads constructor( } + override fun onBMSSystemStates(bmsSystemStates: ChassisStatesOuterClass.BMSSystemStates) { + + } + /** * 清扫车(福田)清扫控制系统状态 */ override fun onSweeperFutianCleanSystemState(cleanSystemState: ChassisStatesOuterClass.SweeperFuTianTaskSystemStates) { } + override fun onSweeperFutianTaskIndexData(roboSweeperTaskIndex: RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex) { + } /** * 吐司提示 */ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.java index 68462b033b..f1de4d556c 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.java @@ -30,6 +30,7 @@ import chassis.Chassis; import chassis.ChassisStatesOuterClass; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; +import planning.RoboSweeperTaskIndexOuterClass; import system_master.SystemStatusInfo; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS_P; @@ -165,10 +166,19 @@ public class SteeringWheelView extends ConstraintLayout { private final IMoGoAutopilotVehicleStateListener mIMoGoAutopilotVehicleStateListener = new IMoGoAutopilotVehicleStateListener() { + @Override + public void onBMSSystemStates(@NonNull ChassisStatesOuterClass.BMSSystemStates bmsSystemStates) { + + } + @Override public void onSweeperFutianCleanSystemState(@NonNull ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) { } + @Override + public void onSweeperFutianTaskIndexData(@NonNull RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex) { + + } /** * @param brake 刹车 */ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java index 59ca396ea8..021163f822 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java @@ -27,6 +27,7 @@ import org.jetbrains.annotations.NotNull; import chassis.Chassis; import chassis.ChassisStatesOuterClass; +import planning.RoboSweeperTaskIndexOuterClass; /** * @author Jing @@ -123,9 +124,17 @@ public class TrafficDataView extends ConstraintLayout { private final IMoGoAutopilotVehicleStateListener mIMoGoAutopilotVehicleStateListener = new IMoGoAutopilotVehicleStateListener() { @Override - public void onSweeperFutianCleanSystemState(@NonNull ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) { + public void onBMSSystemStates(@NonNull ChassisStatesOuterClass.BMSSystemStates bmsSystemStates) { + } + @Override + public void onSweeperFutianCleanSystemState(@NonNull ChassisStatesOuterClass.SweeperFuTianTaskSystemStates cleanSystemState) { + } + @Override + public void onSweeperFutianTaskIndexData(@NonNull RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex) { + + } /** * 车辆转向灯 * @param lightSwitch diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotVehicleStateListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotVehicleStateListener.kt index 32546477ec..5dc073f071 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotVehicleStateListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotVehicleStateListener.kt @@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.api.autopilot import chassis.Chassis import chassis.ChassisStatesOuterClass +import planning.RoboSweeperTaskIndexOuterClass /** * 车辆底盘 数据 回调监听 @@ -53,8 +54,18 @@ interface IMoGoAutopilotVehicleStateListener { */ fun onAutopilotBrake(brake: Float) + /** + * 电池管理状态 + */ + fun onBMSSystemStates(bmsSystemStates: ChassisStatesOuterClass.BMSSystemStates) + /** * 清扫车(福田)清扫控制系统状态 */ fun onSweeperFutianCleanSystemState(cleanSystemState: ChassisStatesOuterClass.SweeperFuTianTaskSystemStates) + + /** + * 清扫车(福田)指标数据 贴边数据 + */ + fun onSweeperFutianTaskIndexData(roboSweeperTaskIndex: RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex) } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotVehicleStateListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotVehicleStateListenerManager.kt index 16ab9661eb..f712d18731 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotVehicleStateListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotVehicleStateListenerManager.kt @@ -5,6 +5,7 @@ import chassis.Chassis import chassis.ChassisStatesOuterClass import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotVehicleStateListener import com.mogo.eagle.core.function.call.base.CallerBase +import planning.RoboSweeperTaskIndexOuterClass import java.util.concurrent.ConcurrentHashMap /** @@ -131,7 +132,15 @@ object CallerAutopilotVehicleStateListenerManager : CallerBase() { listener.onAutopilotBrake(brake) } } - + /** + * 电池管理状态 + */ + fun invokeBMSSystemStates(bmsSystemStates: ChassisStatesOuterClass.BMSSystemStates) { + M_AUTOPILOT_VEHICLE_LISTENERS.forEach { + val listener = it.value + listener.onBMSSystemStates(bmsSystemStates) + } + } /** * clean system state 清扫车(福田)清扫控制系统状态 */ @@ -142,6 +151,15 @@ object CallerAutopilotVehicleStateListenerManager : CallerBase() { } } + /** + *清扫车(福田)指标数据 贴边数据 + */ + fun invokeSweeperFutianCleanTaskIndexData(roboSweeperTaskIndex: RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex) { + M_AUTOPILOT_VEHICLE_LISTENERS.forEach { + val listener = it.value + listener.onSweeperFutianTaskIndexData(roboSweeperTaskIndex) + } + } /** * 工控机时间回调