From f87f4607f90ca4f8e0871c3f23a704a017fc821a Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Thu, 17 Apr 2025 19:15:04 +0800 Subject: [PATCH] =?UTF-8?q?[6.10.2]=E9=85=8D=E5=90=88=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E9=A9=BE=E9=A9=B6=E8=BD=A6=E8=A7=86=E9=A2=91=E6=8E=A5=E5=85=A5?= =?UTF-8?q?=E8=A1=8C=E4=BA=91=E5=A4=A7=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/MoGoAutopilotControlProvider.kt | 15 +++++++ .../autopilot/adapter/MoGoAdasListenerImpl.kt | 2 + .../hmi/ui/operate/OperatePanelLayout.kt | 41 ++++++++++++++++--- ...rate_panel_preference_details_vehicles.xml | 7 ++++ .../core/data/config/FunctionBuildConfig.kt | 7 ++++ .../IMoGoAutopilotControlProvider.kt | 11 +++++ .../api/devatools/IImgUploadCloudListener.kt | 15 +++++++ .../CallerAutoPilotControlManager.kt | 16 ++++++++ .../devatools/CallerImgUploadCloudManager.kt | 21 ++++++++++ 9 files changed, 130 insertions(+), 5 deletions(-) create mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IImgUploadCloudListener.kt create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerImgUploadCloudManager.kt 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 58ecdb6353..6659595c39 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 @@ -1594,6 +1594,21 @@ class MoGoAutopilotControlProvider : return AdasManager.getInstance().sendCopyBagAbortCopy() > -1 } + /** + * 域控摄像头上传NDE云开关命令 + * @param enable false: 关闭, true: 打开 + */ + override fun sendImgUploadCloudEnable(enable: Boolean): Boolean { + return AdasManager.getInstance().sendImgUploadCloudEnable(enable) > -1 + } + + /** + * 查询域控摄像头上传NDE云开关状态查询 + */ + override fun sendImgUploadCloudStatusQuery(): Boolean { + return AdasManager.getInstance().sendImgUploadCloudStatusQuery() > -1 + } + /** * 云端配置查询 */ 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 f3e2b0ef2e..1c66b56dd4 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 @@ -88,6 +88,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerV2XListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerV2nNioEventListenerManager import com.mogo.eagle.core.function.call.devatools.CallerCaptureImgManager import com.mogo.eagle.core.function.call.devatools.CallerDiskCopyManager +import com.mogo.eagle.core.function.call.devatools.CallerImgUploadCloudManager import com.mogo.eagle.core.function.call.devatools.CallerOTAManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.obu.CallerObuMapMathListenerManager @@ -1482,6 +1483,7 @@ class MoGoAdasListenerImpl : OnAdasListener { header: MessagePad.Header, resp: MessagePad.ImgUploadCloudStatusResp ) { + CallerImgUploadCloudManager.invokeImgUploadCloudStatusResp(resp) } /** 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 b050b05dc5..4a0af9ae10 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 @@ -28,6 +28,7 @@ import com.mogo.eagle.core.data.multidisplay.TelematicConstant import com.mogo.eagle.core.data.obu.MogoObuConst import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener import com.mogo.eagle.core.function.api.autopilot.IMoGoGetParamResponseListener +import com.mogo.eagle.core.function.api.devatools.IImgUploadCloudListener import com.mogo.eagle.core.function.api.devatools.mofang.IMoGoMoFangProvider import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_DEMO @@ -39,6 +40,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotGetParamResponseDispatcher import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager +import com.mogo.eagle.core.function.call.devatools.CallerImgUploadCloudManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager @@ -66,6 +68,7 @@ import com.mogo.eagle.core.utilcode.util.AppStateManager import com.mogo.eagle.core.utilcode.util.GsonUtils.* import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.support.device.led.ILedForeverChangeWelcomeContentListener import com.mogo.support.device.led.LedSourceManager import com.zhjt.mogo.adas.data.AdasConstants @@ -1058,7 +1061,8 @@ class OperatePanelLayout : LinearLayout { } } - class VehiclesPreferenceFragmentCompat : OperatePanelDetailBase(), IMoGoAutopilotCarConfigListener, ISopSettingListener, IViewControlListener, IMoGoGetParamResponseListener { + class VehiclesPreferenceFragmentCompat : OperatePanelDetailBase(), IMoGoAutopilotCarConfigListener, ISopSettingListener, IViewControlListener, IMoGoGetParamResponseListener, + IImgUploadCloudListener { companion object { private const val TAG = "VehiclesPreferenceFragmentCompat" private const val KEY_PNC_PARK_INTERSECTION_CAR = "pnc_park_intersection_car" @@ -1068,6 +1072,7 @@ class OperatePanelLayout : LinearLayout { private const val KEY_FAULT_DECELERATION_PARK = "fault_deceleration_park" private const val KEY_WEAK_NET_DECELERATION_PARK = "weak_net_deceleration_park" private const val KEY_EXAM_FUNCTION_PANEL = "exam_function_panel" + private const val KEY_IMAGE_UPLOAD = "image_upload" private const val KEY_ALL_MERGE_MODE = "all_merge_mode" private const val KEY_BLIND_AREA_MODE = "blind_area_mode" private const val KEY_BEYOND_VISUAL_RANGE_MODE = "beyond_visual_range_mode" @@ -1082,16 +1087,18 @@ class OperatePanelLayout : LinearLayout { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { Logger.d(TAG, "--- onCreateView --- 1 ---") + CallerAutopilotGetParamResponseDispatcher.addListener(TAG, this) + CallerAutopilotCarConfigListenerManager.addListener(TAG, this) + CallerSopSettingManager.addListener(TAG, this) + CallerHmiViewControlListenerManager.addListener(TAG, this) + CallerImgUploadCloudManager.addListener(TAG, this) if (AppConfigInfo.isConnectAutopilot) { Logger.d(TAG, "--- onCreateView --- 2 ---") //获取车辆配置 CallerAutoPilotControlManager.getCarConfig() //查询融合模式 CallerAutoPilotControlManager.sendGetParamReq(AdasConstants.MapSystemParamType.FUSION_MODE) CallerAutoPilotControlManager.sendGetParamReq(AdasConstants.MapSystemParamType.OVERTAKE_MAX_SPEED) + CallerAutoPilotControlManager.sendImgUploadCloudStatusQuery() } - CallerAutopilotGetParamResponseDispatcher.addListener(TAG, this) - CallerAutopilotCarConfigListenerManager.addListener(TAG, this) - CallerSopSettingManager.addListener(TAG, this) - CallerHmiViewControlListenerManager.addListener(TAG, this) return super.onCreateView(inflater, container, savedInstanceState) } @@ -1100,6 +1107,7 @@ class OperatePanelLayout : LinearLayout { CallerAutopilotCarConfigListenerManager.removeListener(TAG) CallerSopSettingManager.removeListener(TAG) CallerHmiViewControlListenerManager.removeListener(TAG) + CallerImgUploadCloudManager.removeListener(TAG) super.onDestroyView() } @@ -1237,6 +1245,9 @@ class OperatePanelLayout : LinearLayout { KEY_RAIN_DAY -> { return FunctionBuildConfig.isRainMode } + KEY_IMAGE_UPLOAD -> { + return FunctionBuildConfig.isImageUpload + } KEY_WEAK_NET_DECELERATION_PARK -> { return FunctionBuildConfig.isWeakNetSlowDown } @@ -1386,6 +1397,19 @@ class OperatePanelLayout : LinearLayout { clickEventAnalytics("考试功能面板", isChecked) return true } + KEY_IMAGE_UPLOAD -> { + val isChecked = newValue as? Boolean ?: false + FunctionBuildConfig.isImageUpload = isChecked + //域控摄像头上传NDE云开关命令 + CallerAutoPilotControlManager.sendImgUploadCloudEnable(isChecked) + //查询域控摄像头上传NDE云开关状态查询,设置完成后延迟500毫秒进行查询 + UiThreadHandler.postDelayed({ + CallerAutoPilotControlManager.sendImgUploadCloudStatusQuery() + }, 500) + hmiAction("SOP 车辆图像上传行云大模型, ", isChecked) + clickEventAnalytics("车辆图像上传行云大模型", isChecked) + return true + } KEY_ALL_MERGE_MODE -> { if (preference.extras.containsKey("is_checked")) { preference.extras.remove("is_checked") @@ -1489,6 +1513,13 @@ class OperatePanelLayout : LinearLayout { } return super.onPreferenceChange(preference, newValue) } + + /** + * 查询摄像头上传NDE云状态返回 + */ + override fun onImgUploadCloudStatusResp(resp: MessagePad.ImgUploadCloudStatusResp) { + preferenceScreen.findPreferenceReal(KEY_IMAGE_UPLOAD)?.also { changeValue(it, resp.enable) } + } } class WelcomeWordsPreferenceCompat : OperatePanelDetailBase() { 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 e5ef1cdb9e..c7bc68808f 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 @@ -45,6 +45,13 @@ android:title="考试功能面板" android:persistent="false" android:widgetLayout="@layout/layout_operate_panel_preference_widget_switch_compat" /> + () { + + /** + * 查询摄像头上传NDE云状态返回 + */ + fun invokeImgUploadCloudStatusResp(resp: MessagePad.ImgUploadCloudStatusResp){ + M_LISTENERS.forEach{ + val listener = it.value + listener.onImgUploadCloudStatusResp(resp) + } + } +} \ No newline at end of file