From 6565b18108a9b55d35d78ae358851a05e910c4f2 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Mon, 15 Sep 2025 17:28:47 +0800 Subject: [PATCH] =?UTF-8?q?[8.2.4][hmi][=E8=BF=90=E8=90=A5=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF-=E8=BD=A6=E8=BE=86=E7=9B=B8=E5=85=B3]=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E9=A9=BE=E9=A9=B6=E6=A8=A1=E5=BC=8F=E5=92=8C=E5=90=A6?= =?UTF-8?q?=E5=90=AF=E7=94=A8AIP=E9=80=89=E9=A1=B9UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/bridge/ui/autopilot/AutopilotState.kt | 27 ++- .../autopilot/MoGoAutopilotControlProvider.kt | 18 ++ .../autopilot/adapter/MoGoAdasListenerImpl.kt | 3 +- .../MoGoAdasMsgConnectStatusListenerImpl.kt | 12 ++ .../lookaround/MoGoLookAroundProviderImpl.kt | 3 +- .../hmi/ui/operate/OperatePanelLayout.kt | 171 +++++++++++++++++- .../function/hmi/ui/setting/SOPSettingView.kt | 7 +- ...rate_panel_preference_details_vehicles.xml | 29 +++ .../IMoGoGetParamResponseListener.kt | 2 +- ...llerAutopilotGetParamResponseDispatcher.kt | 7 +- 10 files changed, 260 insertions(+), 19 deletions(-) diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/autopilot/AutopilotState.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/autopilot/AutopilotState.kt index 937f694c45..27f16d8cff 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/autopilot/AutopilotState.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/autopilot/AutopilotState.kt @@ -10,8 +10,13 @@ import androidx.annotation.DrawableRes import androidx.constraintlayout.widget.ConstraintLayout import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.function.api.autopilot.IMoGoGetParamResponseListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotGetParamResponseDispatcher import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.bridge.R import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener @@ -28,7 +33,7 @@ class AutopilotState @JvmOverloads constructor( attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : ConstraintLayout(context, attrs, defStyleAttr), IOchAutopilotStatusListener, - AutopilotStateModel.AutopilotStateCallback { + AutopilotStateModel.AutopilotStateCallback, IMoGoGetParamResponseListener { private val TAG = "AutopilotState" @@ -50,6 +55,7 @@ class AutopilotState @JvmOverloads constructor( autopilotChangeStateAnimator = ObjectAnimator.ofFloat(aciv_autopilot_state, "alpha", 1f, 0f,1f) autopilotChangeStateAnimator.interpolator = LinearInterpolator() autopilotChangeStateAnimator.duration = 300 + updateActvAutopilotHeadText() onClick { startAutopilot() } @@ -65,13 +71,32 @@ class AutopilotState @JvmOverloads constructor( ViewModelProvider(it).get(AutopilotStateModel::class.java) } viewModel?.setViewCallback(this) + CallerAutopilotGetParamResponseDispatcher.addListener(TAG, this) } override fun onDetachedFromWindow() { super.onDetachedFromWindow() autopilotStateAnimator?.release() + CallerAutopilotGetParamResponseDispatcher.removeListener(TAG) } + private fun updateActvAutopilotHeadText() { + if ((AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode) || AppIdentityModeUtils.isB2( + FunctionBuildConfig.appIdentityMode + ) || AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) && AppIdentityModeUtils.isDriver( + FunctionBuildConfig.appIdentityMode + ) + ) { + actv_autopilot_head.text = if (FunctionBuildConfig.isActivateAip) "AIP" else "AD" + } + } + + override fun onChangeAipState(isActivateAip: Boolean) { + super.onChangeAipState(isActivateAip) + ThreadUtils.runOnUiThread { + updateActvAutopilotHeadText() + } + } init { 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 5ae64d85ee..9ff64d7fac 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 @@ -1648,6 +1648,24 @@ class MoGoAutopilotControlProvider : return AdasManager.getInstance().sendV2iDownPerceptionToPnc(enable) > -1 } + /** + * 驾驶模式 + * + * @param style 0-正常模式 1-安全模式 2-专业模式 + */ + override fun sendDrivingStyle(style: Int): Boolean { + return AdasManager.getInstance().sendDrivingStyle(style) > -1 + } + + /** + * 是否启用AIP选项功能 + * + * @param enable false: off true:on 默认false + */ + override fun sendActivateAip(enable: Boolean): Boolean { + return AdasManager.getInstance().sendActivateAip(if (enable) 1 else 0) > -1 + } + /** * 云端配置控制 * @param type 0:蘑菇云 1:NDE云 2:基础平台云 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 51ff1b22e0..d2b6131d16 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 @@ -1328,8 +1328,7 @@ class MoGoAdasListenerImpl : OnAdasListener { getParamResp: MessagePad.SetParamReq, adasParam: AdasParam ) { - FunctionBuildConfig.fusionMode = adasParam.fusionMode - CallerAutopilotGetParamResponseDispatcher.dispatchResponse(header, getParamResp, adasParam) + CallerAutopilotGetParamResponseDispatcher.dispatchResponse(adasParam) CallerV2XManager.invokeGetParamResp(getParamResp, adasParam) } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt index 9a1481b6b1..f271e82363 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt @@ -146,6 +146,18 @@ class MoGoAdasMsgConnectStatusListenerImpl : CallerAutoPilotControlManager.sendV2nToPncCmd(FunctionBuildConfig.v2nTotalSwitch) + // BUS 司机端 连接成功查询AIP状态和驾驶模式 + if ((AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode) || AppIdentityModeUtils.isB2( + FunctionBuildConfig.appIdentityMode + ) || AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) && AppIdentityModeUtils.isDriver( + FunctionBuildConfig.appIdentityMode + ) + ) { + CallerAutoPilotControlManager.sendGetParamReq( + AdasConstants.MapSystemParamType.ACTIVATE_AIP, + AdasConstants.MapSystemParamType.DRIVING_STYLE + ) + } //事件数据进PNC应用 if(FunctionBuildConfig.ndeEventDataToPnc){ CallerAutoPilotControlManager.sendNdeDownEventToPnc(1) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/lookaround/MoGoLookAroundProviderImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/lookaround/MoGoLookAroundProviderImpl.kt index 2ff36f568f..08808918ed 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/lookaround/MoGoLookAroundProviderImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/lookaround/MoGoLookAroundProviderImpl.kt @@ -158,7 +158,8 @@ internal class MoGoLookAroundProviderImpl: IMoGoLookAroundProvider, IMoGoBackCam } } - override fun onGetParamResp(header: Header, getParamResp: SetParamReq, adasParam: AdasParam) { + override fun onGetParamResp(adasParam: AdasParam) { + super.onGetParamResp(adasParam) Log.d(TAG, "-- onGetParamResp -- 1 --") val parse = adasParam.m1StitchedVideoSelfVehicleParamParse if (parse != null) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/OperatePanelLayout.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/OperatePanelLayout.kt index 8c29a90da5..1f61b0b8de 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/OperatePanelLayout.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/OperatePanelLayout.kt @@ -17,6 +17,7 @@ import android.widget.Toast import androidx.annotation.CallSuper import androidx.core.content.ContextCompat import androidx.lifecycle.lifecycleScope +import androidx.preference.CheckBoxPreference import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceGroup @@ -841,9 +842,10 @@ class OperatePanelLayout : LinearLayout { */ override fun onGetParamResp(getParamResp: MessagePad.SetParamReq, adasParam: AdasParam) { ThreadUtils.runOnUiThread { - Log.i("onGetParamResp","adasParam.v2nToPnc="+adasParam.v2nToPnc) - Log.i("onGetParamResp","adasParam.v2iToPnc="+adasParam.v2iToPnc) - Log.i("onGetParamResp","adasParam.perceptionToPnc="+adasParam.perceptionToPnc) + CallerLogger.i( + "V2X onGetParamResp", + "adasParam.v2nToPnc=${adasParam.v2nToPnc} adasParam.v2iToPnc=${+adasParam.v2iToPnc} adasParam.perceptionToPnc=${adasParam.perceptionToPnc}" + ) //融合v2n开关 NDE下行事件数据进pnc if(adasParam.v2nToPnc != -1){ preferenceScreen.findPreferenceReal(NDE_EVENT_DATA_TO_PNC)?.also { changeValue(it,adasParam.v2nToPnc==1) } @@ -1496,11 +1498,12 @@ class OperatePanelLayout : LinearLayout { setPreferencesFromResource(R.xml.operate_panel_preference_details_mofang, rootKey) } } - +// CallerAutoPilotControlManager class VehiclesPreferenceFragmentCompat : OperatePanelDetailBase(), IMoGoAutopilotCarConfigListener, ISopSettingListener, IViewControlListener, IMoGoGetParamResponseListener{ companion object { private const val TAG = "VehiclesPreferenceFragmentCompat" + private const val IS_CHECKED_DRIVING_STYLE = "is_checked_driving_style" private const val KEY_PNC_PARK_INTERSECTION_CAR = "pnc_park_intersection_car" private const val KEY_PNC_PARK_OVERTAKE_CAR = "pnc_park_overtake_car" private const val KEY_DETOUR_RETARD_PARK = "detour_retard_park" @@ -1513,12 +1516,17 @@ class OperatePanelLayout : LinearLayout { private const val KEY_BEYOND_VISUAL_RANGE_MODE = "beyond_visual_range_mode" private const val KEY_TRANSPARENT_TRANSFER_MODE = "transparent_transfer_mode" private const val KEY_PURE_OBU_MODE = "pure_obu_mode" + private const val KEY_AIP_FUNCTION = "aip_function" + private const val KEY_DRIVING_STYLE_NORMAL = "driving_style_normal" + private const val KEY_DRIVING_STYLE_SAFETY = "driving_style_safety" + private const val KEY_DRIVING_STYLE_PROFESSIONAL = "driving_style_professional" private const val KEY_AUTO_PILOT_SPEED_THRESHOLDS = "auto_pilot_speed_thresholds" private const val KEY_CHANGE_LANE_SPEED_THRESHOLDS = "change_lane_speed_thresholds" private const val KEY_OVERTAKE_SPEED_THRESHOLDSS = "overtake_speed_thresholds" } private var prevCheckedKeyForFusionMode: String? = null + private var prevCheckedKeyForDrivingStyle: String? = null override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { Logger.d(TAG, "--- onCreateView --- 1 ---") @@ -1529,8 +1537,25 @@ class OperatePanelLayout : LinearLayout { if (AppConfigInfo.isConnectAutopilot) { Logger.d(TAG, "--- onCreateView --- 2 ---") //获取车辆配置 CallerAutoPilotControlManager.getCarConfig() //查询融合模式 - CallerAutoPilotControlManager.sendGetParamReq(AdasConstants.MapSystemParamType.FUSION_MODE) - CallerAutoPilotControlManager.sendGetParamReq(AdasConstants.MapSystemParamType.OVERTAKE_MAX_SPEED) + CallerAutoPilotControlManager.sendGetParamReq( + AdasConstants.MapSystemParamType.FUSION_MODE, + AdasConstants.MapSystemParamType.OVERTAKE_MAX_SPEED, + AdasConstants.MapSystemParamType.ACTIVATE_AIP, + AdasConstants.MapSystemParamType.DRIVING_STYLE + ) + } + //非BUS 司机端隐藏按钮 + if (!(AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode) || AppIdentityModeUtils.isB2( + FunctionBuildConfig.appIdentityMode + ) || AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) && AppIdentityModeUtils.isDriver( + FunctionBuildConfig.appIdentityMode + ) + ) { + preferenceScreen.findPreferenceReal(KEY_AIP_FUNCTION)?.isVisible= false + preferenceScreen.findPreference("header_driving_style")?.isVisible = false + preferenceScreen.findPreferenceReal(KEY_DRIVING_STYLE_NORMAL)?.isVisible= false + preferenceScreen.findPreferenceReal(KEY_DRIVING_STYLE_SAFETY)?.isVisible= false + preferenceScreen.findPreferenceReal( KEY_DRIVING_STYLE_PROFESSIONAL)?.isVisible= false } return super.onCreateView(inflater, container, savedInstanceState) } @@ -1553,7 +1578,8 @@ class OperatePanelLayout : LinearLayout { } } - override fun onGetParamResp(header: MessagePad.Header, getParamResp: MessagePad.SetParamReq, adasParam: AdasParam) { + override fun onGetParamResp(adasParam: AdasParam) { + super.onGetParamResp(adasParam) Logger.d(TAG, "-- onGetParamResp --: fusion-mode:${adasParam.fusionMode}, over-take-speed:${adasParam.overtakeMaxSpeed} ") lifecycleScope.launch { when(adasParam.fusionMode) { @@ -1627,6 +1653,60 @@ class OperatePanelLayout : LinearLayout { FunctionBuildConfig.overTakeSpeed = adasParam.overtakeMaxSpeed preferenceScreen.findPreferenceReal(KEY_OVERTAKE_SPEED_THRESHOLDSS)?.update(listOf("3.0", "12.5", "${FunctionBuildConfig.overTakeSpeed}", "0.5", "m/s")) } + CallerLogger.i( + "VEH onGetParamResp", + "adasParam.activateAip=${adasParam.activateAip} " + ) + if (adasParam.activateAip != -1) { + ThreadUtils.runOnUiThread { + preferenceScreen.findPreferenceReal( + KEY_AIP_FUNCTION + )?.also { changeValue(it, adasParam.activateAip == 1) } + } + } + //驾驶模式 + when(adasParam.drivingStyle) { + 0 -> { + //正常模式 + prevCheckedKeyForDrivingStyle?.takeIf { it != KEY_DRIVING_STYLE_NORMAL }?.let { + preferenceScreen.findPreferenceReal(it) + }?.also { + changeValue(it, false) + } + prevCheckedKeyForDrivingStyle = KEY_DRIVING_STYLE_NORMAL + preferenceScreen.findPreferenceReal(KEY_DRIVING_STYLE_NORMAL)?.also { + it.extras.putBoolean(IS_CHECKED_DRIVING_STYLE, true) + changeValue(it, true) + } + } + 1 -> { + //安全模式 + prevCheckedKeyForDrivingStyle?.takeIf { it != KEY_DRIVING_STYLE_SAFETY }?.let { + preferenceScreen.findPreferenceReal(it) + }?.also { + changeValue(it, false) + } + prevCheckedKeyForDrivingStyle = KEY_DRIVING_STYLE_SAFETY + preferenceScreen.findPreferenceReal(KEY_DRIVING_STYLE_SAFETY)?.also { + it.extras.putBoolean(IS_CHECKED_DRIVING_STYLE, true) + changeValue(it, true) + } + } + 2 -> { + //专业模式 + prevCheckedKeyForDrivingStyle?.takeIf { it != KEY_DRIVING_STYLE_PROFESSIONAL}?.let { + preferenceScreen.findPreferenceReal(it) + }?.also { + changeValue(it, false) + } + prevCheckedKeyForDrivingStyle = KEY_DRIVING_STYLE_PROFESSIONAL + preferenceScreen.findPreferenceReal(KEY_DRIVING_STYLE_PROFESSIONAL)?.also { + it.extras.putBoolean(IS_CHECKED_DRIVING_STYLE, true) + changeValue(it, true) + } + } + + } } } @@ -1698,6 +1778,18 @@ class OperatePanelLayout : LinearLayout { KEY_PURE_OBU_MODE -> { return false } + KEY_AIP_FUNCTION -> { + return FunctionBuildConfig.isActivateAip + } + KEY_DRIVING_STYLE_NORMAL -> { + return FunctionBuildConfig.drivingStyle == 0 + } + KEY_DRIVING_STYLE_SAFETY -> { + return FunctionBuildConfig.drivingStyle == 1 + } + KEY_DRIVING_STYLE_PROFESSIONAL -> { + return FunctionBuildConfig.drivingStyle == 2 + } KEY_AUTO_PILOT_SPEED_THRESHOLDS -> { return listOf("0.0", "60.0", "${FunctionBuildConfig.maxSpeedLimit}", "5.0", "km/h") } @@ -1928,6 +2020,71 @@ class OperatePanelLayout : LinearLayout { } return isChecked } + KEY_AIP_FUNCTION -> { + val isChecked = newValue as? Boolean ?: false + CallerAutoPilotControlManager.sendActivateAip(isChecked) + hmiAction("SOP AIP功能, ", isChecked) + clickEventAnalytics("AIP功能", isChecked) + return true + } + KEY_DRIVING_STYLE_NORMAL -> { + if (preference.extras.containsKey(IS_CHECKED_DRIVING_STYLE)) { + preference.extras.remove(IS_CHECKED_DRIVING_STYLE) + return false + } + val isChecked = newValue as? Boolean ?: false + if (isChecked) { + prevCheckedKeyForDrivingStyle?.takeIf { it != KEY_DRIVING_STYLE_NORMAL }?.let { + preferenceScreen.findPreferenceReal(it) + }?.also { + changeValue(it, false) + } + prevCheckedKeyForDrivingStyle = KEY_DRIVING_STYLE_NORMAL + hmiAction("SOP 驾驶模式-正常模式, ", 0) + clickEventAnalytics("驾驶模式-正常模式", true) + CallerAutoPilotControlManager.sendDrivingStyle(0) + } + return isChecked + } + KEY_DRIVING_STYLE_SAFETY -> { + if (preference.extras.containsKey(IS_CHECKED_DRIVING_STYLE)) { + preference.extras.remove(IS_CHECKED_DRIVING_STYLE) + return false + } + val isChecked = newValue as? Boolean ?: false + if (isChecked) { + prevCheckedKeyForDrivingStyle?.takeIf { it != KEY_DRIVING_STYLE_SAFETY }?.let { + preferenceScreen.findPreferenceReal(it) + }?.also { + changeValue(it, false) + } + prevCheckedKeyForDrivingStyle = KEY_DRIVING_STYLE_SAFETY + hmiAction("SOP 驾驶模式-安全模式, ", 1) + clickEventAnalytics("驾驶模式-安全模式", true) + CallerAutoPilotControlManager.sendDrivingStyle(1) + } + return isChecked + } + KEY_DRIVING_STYLE_PROFESSIONAL -> { + if (preference.extras.containsKey(IS_CHECKED_DRIVING_STYLE)) { + preference.extras.remove(IS_CHECKED_DRIVING_STYLE) + return false + } + val isChecked = newValue as? Boolean ?: false + if (isChecked) { + prevCheckedKeyForDrivingStyle?.takeIf { it != KEY_DRIVING_STYLE_PROFESSIONAL }?.let { + preferenceScreen.findPreferenceReal(it) + }?.also { + changeValue(it, false) + } + prevCheckedKeyForDrivingStyle = KEY_DRIVING_STYLE_PROFESSIONAL + hmiAction("SOP 驾驶模式-专业模式, ", 2) + clickEventAnalytics("驾驶模式-专业模式", true) + CallerAutoPilotControlManager.sendDrivingStyle(2) + } + return isChecked + } + } return super.onPreferenceChange(preference, newValue) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt index ca69f7427c..0c872a80d7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt @@ -1107,11 +1107,8 @@ internal class SOPSettingView @JvmOverloads constructor( /** * 工控机配置参数获取 */ - override fun onGetParamResp( - header: MessagePad.Header, - getParamResp: MessagePad.SetParamReq, - adasParam: AdasParam - ) { + override fun onGetParamResp(adasParam: AdasParam) { + super.onGetParamResp(adasParam) //融合模式 ThreadUtils.runOnUiThread { updateFusionModeUI() diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/xml/operate_panel_preference_details_vehicles.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/xml/operate_panel_preference_details_vehicles.xml index 17deae9da6..8076b3c11d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/xml/operate_panel_preference_details_vehicles.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/xml/operate_panel_preference_details_vehicles.xml @@ -78,6 +78,35 @@ android:title="纯路侧模式" android:persistent="false" android:widgetLayout="@layout/layout_operate_panel_preference_widget_checkbox_compat" /> + + + + + 0 _isActivateAip = FunctionBuildConfig.isActivateAip @@ -26,9 +26,12 @@ object CallerAutopilotGetParamResponseDispatcher: CallerBase