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 6659595c39..3d07c2ff3b 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 @@ -1616,4 +1616,53 @@ class MoGoAutopilotControlProvider : return AdasManager.getInstance().sendCloudConfigRequest() > -1 } + /** + * NDE下行感知进PNC开关 + * @param enable 0: 不发给PnC 1:发给Pnc + */ + override fun sendNdeDownPerceptionToPnc(enable: Int): Boolean { + return AdasManager.getInstance().sendNdeDownPerceptionToPnc(enable) > -1 + } + + /** + * NDE下行事件进PNC开关 + * @param enable 0: 不发给PnC 1:发给Pnc + */ + override fun sendNdeDownEventToPnc(enable: Int): Boolean { + return AdasManager.getInstance().sendNdeDownEventToPnc(enable) > -1 + } + + /** + * V2I下行感知进PNC开关 + * @param enable 0: 不发给PnC 1:发给Pnc + */ + override fun sendV2iDownPerceptionToPnc(enable: Int): Boolean { + return AdasManager.getInstance().sendV2iDownPerceptionToPnc(enable) > -1 + } + + /** + * 云端配置控制 + * @param type 0:蘑菇云 1:NDE云 2:基础平台云 + * @param direction 0:上行和下行 1:上行 2:下行 当 type == 0 或 1 时 此值只能是 0(蘑菇云和NDE云只能上下行同时控制;当 type == 2 时 此值不能是 0(基础平台云只能上下行分开控制); + * @param enable 连接使能开关, true:开 false:关闭 + */ + override fun sendForceStopOrStartCloudReq(type: Int, direction: Int, enable: Boolean): Boolean { + return AdasManager.getInstance().sendForceStopOrStartCloudReq(type, direction, enable) > -1 + } + + /** + * 域控上报OBU开关控制 + * @param enable 0:关 1:开 + */ + override fun sendSetObuUploadReq(enable: Int): Boolean { + return AdasManager.getInstance().sendSetObuUploadReq(enable) > -1 + } + + /** + * 域控上报OBU开关状态查询 + */ + override fun sendObuUploadStatusQuery(): Boolean { + return AdasManager.getInstance().sendObuUploadStatusQuery() > -1 + } + } \ No newline at end of file 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 3323fdd812..1d5de869b0 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,7 +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.CallerV2XManager 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 @@ -1308,6 +1308,7 @@ class MoGoAdasListenerImpl : OnAdasListener { ) { FunctionBuildConfig.fusionMode = adasParam.fusionMode CallerAutopilotGetParamResponseDispatcher.dispatchResponse(header, getParamResp, adasParam) + CallerV2XManager.invokeGetParamResp(getParamResp, adasParam) } /** @@ -1485,13 +1486,14 @@ class MoGoAdasListenerImpl : OnAdasListener { override fun onCloudConfig(header: MessagePad.Header, config: MessagePad.CloudConfig) { CallerCloudConfigListenerManager.invokeCloudConfig(config) + CallerV2XManager.invokeCloudConfig(config) } override fun onImgUploadCloudStatusResp( header: MessagePad.Header, resp: MessagePad.ImgUploadCloudStatusResp ) { - CallerImgUploadCloudManager.invokeImgUploadCloudStatusResp(resp) + CallerV2XManager.invokeImgUploadCloudStatusResp(resp) } /** @@ -1594,6 +1596,7 @@ class MoGoAdasListenerImpl : OnAdasListener { * @param enable 数据 */ override fun onObuUploadStatus(header: MessagePad.Header, enable: MessagePad.SetEnableReq) { + CallerV2XManager.invokeObuUploadStatus(enable) } /** 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 4a0af9ae10..6985bba724 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 @@ -25,10 +25,9 @@ import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig 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.IV2XListener 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 @@ -40,11 +39,10 @@ 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.devatools.CallerV2XManager 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 -import com.mogo.eagle.core.function.call.obu.CallerObuApiManager import com.mogo.eagle.core.function.call.setting.CallerSopSettingManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager @@ -324,18 +322,42 @@ class OperatePanelLayout : LinearLayout { } } - class V2XPreferenceFragmentCompat : OperatePanelDetailBase() { + class V2XPreferenceFragmentCompat : OperatePanelDetailBase(), IV2XListener { companion object { - private const val KEY_V2X_TOTAL_SWITCH = "v2x_total_switch" - private const val KEY_V2N_TOTAL_SWITCH = "v2n_total_switch" - private const val KEY_V2N_NEW_LINKED_TO_PNC = "v2n_new_linked_to_pnc" - private const val KEY_V2I_TOTAL_SWITCH = "v2i_total_switch" - private const val KEY_V2I_TO_PNC = "v2i_to_pnc" - private const val KEY_V2I_RED_LIGHT_WARNING = "v2i_red_light_warning" - private const val KEY_V2I_WEAKNESS_TRAFFIC = "v2i_weakness_traffic" - private const val KEY_V2V_TOTAL_SWITCH = "v2v_total_switch" - private const val KEY_OBU_TOTAL_SWITCH = "obu_total_switch" + private const val TAG = "V2XPreferenceFragmentCompat" + private const val NDE_UPWARD_SWITCH = "nde_upward_switch" //NDE(数据上车)上行 + private const val IMAGE_UPLOAD_SWITCH = "image_upload_switch" //车辆图像上传行云大模型 + private const val NDE_DOWNWARD_SWITCH = "nde_downward_switch" //NDE(数据上车)下行 + private const val NDE_EVENT_DATA_TO_PNC = "nde_event_data_to_pnc" //事件数据进PNC应用 + private const val NDE_PERCEPTION_DATA_TO_PNC = "nde_perception_data_to_pnc" //感知数据进PNC应用 + private const val CLOUD_CONTROL_UPWARD = "cloud_control_upward" //云控基础平台上行 + private const val CLOUD_CONTROL_DOWNWARD = "cloud_control_downward" //云控基础平台下行 + private const val OBU_UPWARD_SWITCH = "obu_upward_switch" //OBU上报(V2I、V2V上行) + private const val V2I_DOWNWARD_SWITCH = "v2i_downward_switch" //V2I下行 + private const val V2I_WEAK_TRAFFIC_PARTICIPANT = "v2i_weak_traffic_participant" //弱势交通参与者 + private const val V2I_PERCEPTION_DATA_TO_PNC = "v2i_perception_data_to_pnc" //感知数据进PNC应用 + private const val V2V_DOWNWARD_SWITCH = "v2v_downward_switch" //V2V下行 + } + + override fun onCreateView(inflater: LayoutInflater, + container: ViewGroup?, savedInstanceState: Bundle? + ): View { + CallerV2XManager.addListener(TAG,this) + if (AppConfigInfo.isConnectAutopilot){ + //云端配置查询 + CallerAutoPilotControlManager.sendCloudConfigRequest() + //域控上报OBU开关状态查询 + CallerAutoPilotControlManager.sendObuUploadStatusQuery() + //车辆图像上传行云大模型状态查询 + CallerAutoPilotControlManager.sendImgUploadCloudStatusQuery() + } + return super.onCreateView(inflater, container, savedInstanceState) + } + + override fun onDestroyView() { + CallerV2XManager.removeListener(TAG) + super.onDestroyView() } override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { @@ -344,32 +366,53 @@ class OperatePanelLayout : LinearLayout { override fun getDefaultVal(pref: Preference): Any? { when (pref.key) { - KEY_V2X_TOTAL_SWITCH -> { - return FunctionBuildConfig.v2xTotalSwitch + //NDE(数据上车)上行 + NDE_UPWARD_SWITCH->{ + } - KEY_V2N_TOTAL_SWITCH -> { - return FunctionBuildConfig.v2nTotalSwitch + //车辆图像上传行云大模型 + IMAGE_UPLOAD_SWITCH->{ + return FunctionBuildConfig.isImageUpload } - KEY_V2N_NEW_LINKED_TO_PNC -> { - return FunctionBuildConfig.v2nNewLinkedToPNC + //NDE(数据上车)下行 + NDE_DOWNWARD_SWITCH->{ + } - KEY_V2I_TOTAL_SWITCH -> { + //事件数据进PNC应用 + NDE_EVENT_DATA_TO_PNC->{ + + } + //感知数据进PNC应用 + NDE_PERCEPTION_DATA_TO_PNC->{ + + } + //云控基础平台上行 + CLOUD_CONTROL_UPWARD->{ + + } + //云控基础平台下行 + CLOUD_CONTROL_DOWNWARD->{ + + } + //OBU上报(V2I、V2V上行) + OBU_UPWARD_SWITCH->{ + + } + //V2I下行 + V2I_DOWNWARD_SWITCH->{ return HmiBuildConfig.v2iTotalSwitch } - KEY_V2I_TO_PNC -> { - return FunctionBuildConfig.v2iToPNC - } - KEY_V2I_RED_LIGHT_WARNING -> { - return HmiBuildConfig.v2iRedLightWarning - } - KEY_V2I_WEAKNESS_TRAFFIC -> { + //弱势交通参与者 + V2I_WEAK_TRAFFIC_PARTICIPANT->{ return HmiBuildConfig.v2iWeaknessTraffic } - KEY_V2V_TOTAL_SWITCH -> { - return HmiBuildConfig.v2vTotalSwitch + //感知数据进PNC应用 + V2I_PERCEPTION_DATA_TO_PNC->{ + } - KEY_OBU_TOTAL_SWITCH -> { - return CallerObuApiManager.isConnected() + //V2V下行 + V2V_DOWNWARD_SWITCH->{ + return HmiBuildConfig.v2vTotalSwitch } } return super.getDefaultVal(pref) @@ -378,110 +421,116 @@ class OperatePanelLayout : LinearLayout { override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean { Log.d(TAG, "-- onPreferenceChange:($preference, $newValue)") when (preference.key) { - KEY_V2X_TOTAL_SWITCH -> { + //NDE(数据上车)上行 + NDE_UPWARD_SWITCH->{ + + } + //车辆图像上传行云大模型 + IMAGE_UPLOAD_SWITCH->{ val isChecked = newValue as? Boolean ?: false - FunctionBuildConfig.v2xTotalSwitch = isChecked - hmiAction("V2X总开关, ", isChecked) - clickEventAnalytics("V2X总开关", isChecked) - if (isChecked) { - preferenceScreen.findPreferenceReal(KEY_V2N_TOTAL_SWITCH)?.also { changeValue(it, FunctionBuildConfig.v2nTotalSwitch) } // V2N总开关 - preferenceScreen.findPreferenceReal(KEY_V2I_TOTAL_SWITCH)?.also { changeValue(it, HmiBuildConfig.v2iTotalSwitch) } // V2I总开关 - preferenceScreen.findPreferenceReal(KEY_V2V_TOTAL_SWITCH)?.also { changeValue(it, HmiBuildConfig.v2vTotalSwitch) } // V2V总开关 - preferenceScreen.findPreferenceReal(KEY_OBU_TOTAL_SWITCH)?.also { changeValue(it, CallerObuApiManager.isConnected()) } // OBU总开关 - } else { - preferenceScreen.findPreferenceReal(KEY_V2N_TOTAL_SWITCH)?.also { changeValue(it, false) } // V2N总开关 - preferenceScreen.findPreferenceReal(KEY_V2I_TOTAL_SWITCH)?.also { changeValue(it, false) } // V2I总开关 - preferenceScreen.findPreferenceReal(KEY_V2V_TOTAL_SWITCH)?.also { changeValue(it, false) } // V2V总开关 - preferenceScreen.findPreferenceReal(KEY_OBU_TOTAL_SWITCH)?.also { changeValue(it, false) } // OBU总开关 - } + FunctionBuildConfig.isImageUpload = isChecked + //域控摄像头上传NDE云开关命令 + CallerAutoPilotControlManager.sendImgUploadCloudEnable(isChecked) + //查询域控摄像头上传NDE云开关状态查询,设置完成后延迟500毫秒进行查询 + UiThreadHandler.postDelayed({ + CallerAutoPilotControlManager.sendImgUploadCloudStatusQuery() + }, 500) + hmiAction("SOP 车辆图像上传行云大模型, ", isChecked) + clickEventAnalytics("车辆图像上传行云大模型", isChecked) return true } - KEY_V2N_TOTAL_SWITCH -> { - val isChecked = newValue as? Boolean ?: false - FunctionBuildConfig.v2nTotalSwitch = isChecked - hmiAction("V2N总开关, ", isChecked) - clickEventAnalytics("V2N总开关", isChecked) - if (!isChecked) { // preferenceScreen.findPreferenceReal(KEY_V2N_NEW_LINKED)?.also { changeValue(it, false) } - preferenceScreen.findPreferenceReal(KEY_V2N_NEW_LINKED_TO_PNC)?.also { changeValue(it, false) } - } - val map = HashMap().also { - it["f1"] = isChecked - } - CallerTelematicManager.sendMsgToAllClients(TelematicConstant.V2N_NEW_LINK_SWITCH, toJson(map).toByteArray()) - return true + //NDE(数据上车)下行 + NDE_DOWNWARD_SWITCH->{ + } - KEY_V2N_NEW_LINKED_TO_PNC -> { - val isChecked = newValue as? Boolean ?: false - FunctionBuildConfig.v2nNewLinkedToPNC = isChecked - clickEventAnalytics("V2N场景进PNC", isChecked) - hmiAction("V2N场景进PNC, ", isChecked) - CallerAutoPilotControlManager.sendV2nToPncCmd(isChecked) - return true + //事件数据进PNC应用 + NDE_EVENT_DATA_TO_PNC->{ + } - KEY_V2I_TOTAL_SWITCH -> { + //感知数据进PNC应用 + NDE_PERCEPTION_DATA_TO_PNC->{ + + } + //云控基础平台上行 + CLOUD_CONTROL_UPWARD->{ + + } + //云控基础平台下行 + CLOUD_CONTROL_DOWNWARD->{ + + } + //OBU上报(V2I、V2V上行) + OBU_UPWARD_SWITCH->{ + + } + //V2I下行 + V2I_DOWNWARD_SWITCH->{ val isChecked = newValue as? Boolean ?: false HmiBuildConfig.v2iTotalSwitch = isChecked - hmiAction("V2I总开关, ", isChecked) + hmiAction("V2I下行, ", isChecked) if (!isChecked) { - preferenceScreen.findPreferenceReal(KEY_V2I_TO_PNC)?.also { changeValue(it, false) } - preferenceScreen.findPreferenceReal(KEY_V2I_RED_LIGHT_WARNING)?.also { changeValue(it, false) } - preferenceScreen.findPreferenceReal(KEY_V2I_WEAKNESS_TRAFFIC)?.also { changeValue(it, false) } + preferenceScreen.findPreferenceReal(V2I_WEAK_TRAFFIC_PARTICIPANT)?.also { changeValue(it, false) } + preferenceScreen.findPreferenceReal(V2I_PERCEPTION_DATA_TO_PNC)?.also { changeValue(it, false) } } - clickEventAnalytics("V2I总开关", isChecked) + clickEventAnalytics("V2I下行", isChecked) return true } - KEY_V2I_TO_PNC -> { - val isChecked = newValue as? Boolean ?: false - FunctionBuildConfig.v2iToPNC = isChecked -// FunctionBuildConfig.isFusionColor = isChecked //6.6.2版本基于运营需求-产品设计-v2i进pnc,感知目标颜色替换 - FunctionBuildConfig.fusionMode = 2 - CallerAutoPilotControlManager.sendFusionMode(2) - CallerAutoPilotControlManager.setFusionColor(isChecked) - CallerHmiViewControlListenerManager.invokeFuncMode(IViewControlListener.FUNC_FUSION_COLOR,isChecked) - CallerAutoPilotControlManager.sendV2iToPncCmd(isChecked) - hmiAction("V2I场景进PNC, ", isChecked) - clickEventAnalytics("V2I场景进PNC", isChecked) - return true - } - KEY_V2I_RED_LIGHT_WARNING -> { - val isChecked = newValue as? Boolean ?: false - HmiBuildConfig.v2iRedLightWarning = isChecked - CallerTelematicManager.sendMsgToAllClients(TelematicConstant.OBU_RUNREDLIGHT_WARNING, (if (isChecked) "1" else "0").toByteArray()) - clickEventAnalytics("V2I闯红灯预警", isChecked) - hmiAction("V2I闯红灯预警, ", isChecked) - return true - } - KEY_V2I_WEAKNESS_TRAFFIC -> { + //弱势交通参与者 + V2I_WEAK_TRAFFIC_PARTICIPANT->{ val isChecked = newValue as? Boolean ?: false HmiBuildConfig.v2iWeaknessTraffic = isChecked clickEventAnalytics("V2I弱势交通参与者", isChecked) hmiAction("V2I弱势交通参与者, ", isChecked) return true } - KEY_V2V_TOTAL_SWITCH -> { + //感知数据进PNC应用 + V2I_PERCEPTION_DATA_TO_PNC->{ + + } + //V2V下行 + V2V_DOWNWARD_SWITCH->{ val isChecked = newValue as? Boolean ?: false HmiBuildConfig.v2vTotalSwitch = isChecked - clickEventAnalytics("V2V总开关", isChecked) - hmiAction("V2V总开关, ", isChecked) - return true - } - KEY_OBU_TOTAL_SWITCH -> { - val isChecked = newValue as? Boolean ?: false - if (!isChecked) { - CallerObuApiManager.disConnectObu() // 断开OBU连接 - } else { - val isObuConnected = CallerObuApiManager.isConnected() - if (isObuConnected) { - CallerObuApiManager.resetObuIpAddress(MogoObuConst.OBU_DEFAULT_IP) - } - } - clickEventAnalytics("OBU控制总开关", isChecked) - hmiAction("OBU控制总开关, ", isChecked) + clickEventAnalytics("V2V下行", isChecked) + hmiAction("V2V下行, ", isChecked) return true } } return super.onPreferenceChange(preference, newValue) } + + /** + * 云端配置查询响应 + * @param config 数据 + */ + override fun onCloudConfig(config: MessagePad.CloudConfig) { + + } + + /** + * 查询摄像头上传NDE云状态返回 + */ + override fun onImgUploadCloudStatusResp(resp: MessagePad.ImgUploadCloudStatusResp) { + preferenceScreen.findPreferenceReal(IMAGE_UPLOAD_SWITCH)?.also { changeValue(it, resp.enable) } + } + + /** + * 查询 NDE下行事件数据进pnc 与 V2I下行感知数据进pnc 与 NDE下行感知数据进pnc参数获取应答 + * @param getParamResp 配置参数 + * @param adasParam 解析后的配置参数 + */ + override fun onGetParamResp(getParamResp: MessagePad.SetParamReq, adasParam: AdasParam) { + + } + + /** + * 域控上报OBU开关状态响应 + * @param enable 数据 + */ + override fun onObuUploadStatus(enable: MessagePad.SetEnableReq) { + + } + } class DemoPreferenceFragmentCompat : OperatePanelDetailBase(), IViewControlListener { @@ -1061,8 +1110,8 @@ class OperatePanelLayout : LinearLayout { } } - class VehiclesPreferenceFragmentCompat : OperatePanelDetailBase(), IMoGoAutopilotCarConfigListener, ISopSettingListener, IViewControlListener, IMoGoGetParamResponseListener, - IImgUploadCloudListener { + class VehiclesPreferenceFragmentCompat : OperatePanelDetailBase(), IMoGoAutopilotCarConfigListener, + ISopSettingListener, IViewControlListener, IMoGoGetParamResponseListener{ companion object { private const val TAG = "VehiclesPreferenceFragmentCompat" private const val KEY_PNC_PARK_INTERSECTION_CAR = "pnc_park_intersection_car" @@ -1072,7 +1121,6 @@ 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" @@ -1091,13 +1139,11 @@ class OperatePanelLayout : LinearLayout { 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() } return super.onCreateView(inflater, container, savedInstanceState) } @@ -1107,7 +1153,6 @@ class OperatePanelLayout : LinearLayout { CallerAutopilotCarConfigListenerManager.removeListener(TAG) CallerSopSettingManager.removeListener(TAG) CallerHmiViewControlListenerManager.removeListener(TAG) - CallerImgUploadCloudManager.removeListener(TAG) super.onDestroyView() } @@ -1245,9 +1290,6 @@ class OperatePanelLayout : LinearLayout { KEY_RAIN_DAY -> { return FunctionBuildConfig.isRainMode } - KEY_IMAGE_UPLOAD -> { - return FunctionBuildConfig.isImageUpload - } KEY_WEAK_NET_DECELERATION_PARK -> { return FunctionBuildConfig.isWeakNetSlowDown } @@ -1397,19 +1439,6 @@ 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") @@ -1514,12 +1543,6 @@ 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/layout/layout_operate_panel_preference_bottom_divider.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_operate_panel_preference_bottom_divider.xml new file mode 100644 index 0000000000..91a254621a --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_operate_panel_preference_bottom_divider.xml @@ -0,0 +1,46 @@ + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_operate_panel_preference_top_divider.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_operate_panel_preference_top_divider.xml new file mode 100644 index 0000000000..fe533453af --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_operate_panel_preference_top_divider.xml @@ -0,0 +1,46 @@ + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/xml/operate_panel_preference_details_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/xml/operate_panel_preference_details_v2x.xml index db426edc48..287b4b14ac 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/xml/operate_panel_preference_details_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/xml/operate_panel_preference_details_v2x.xml @@ -2,87 +2,111 @@ + + + - - - - - - - - + + + + + - - - + + + + + + + + + + \ No newline at end of file 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 c7bc68808f..e5ef1cdb9e 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,13 +45,6 @@ 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 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerV2XManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerV2XManager.kt new file mode 100644 index 0000000000..c94076d6ba --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerV2XManager.kt @@ -0,0 +1,58 @@ +package com.mogo.eagle.core.function.call.devatools + +import com.mogo.eagle.core.function.api.devatools.IV2XListener +import com.mogo.eagle.core.function.call.base.CallerBase +import com.zhjt.mogo.adas.data.bean.AdasParam +import mogo.telematics.pad.MessagePad + +/** + * 域控摄像头上传NDE云开关状态回调管理 + */ +object CallerV2XManager: CallerBase() { + + /** + * 云端配置查询响应 + * @param config 数据 + */ + fun invokeCloudConfig(config: MessagePad.CloudConfig){ + M_LISTENERS.forEach{ + val listener = it.value + listener.onCloudConfig(config) + } + } + + + /** + * 查询摄像头上传NDE云状态返回 + */ + fun invokeImgUploadCloudStatusResp(resp: MessagePad.ImgUploadCloudStatusResp){ + M_LISTENERS.forEach{ + val listener = it.value + listener.onImgUploadCloudStatusResp(resp) + } + } + + /** + * 查询 NDE下行事件数据进pnc 与 V2I下行感知数据进pnc 与 NDE下行感知数据进pnc参数获取应答 + * @param getParamResp 配置参数 + * @param adasParam 解析后的配置参数 + */ + fun invokeGetParamResp(getParamResp: MessagePad.SetParamReq,adasParam: AdasParam){ + M_LISTENERS.forEach{ + val listener = it.value + listener.onGetParamResp(getParamResp, adasParam) + } + } + + /** + * 域控上报OBU开关状态响应 + * @param enable 数据 + */ + fun invokeObuUploadStatus(enable: MessagePad.SetEnableReq){ + M_LISTENERS.forEach{ + val listener = it.value + listener.onObuUploadStatus(enable) + } + } + +} \ No newline at end of file diff --git a/core/mogo-core-res/src/main/res/values/operate_panel_config.xml b/core/mogo-core-res/src/main/res/values/operate_panel_config.xml index d010cc6d86..374386d9af 100644 --- a/core/mogo-core-res/src/main/res/values/operate_panel_config.xml +++ b/core/mogo-core-res/src/main/res/values/operate_panel_config.xml @@ -1,38 +1,41 @@ - - true + + true - - true + + false - - true + + true - - true + + true - - false + + true - - true + + false - - false + + false - - false + + false - - true + + false - - false + + false - - false + + false + + + false