diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java index 88fdfe533b..6de6ceb031 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java @@ -9,13 +9,17 @@ import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.widget.ContentLoadingProgressBar; import com.mogo.commons.mvp.IView; import com.mogo.commons.mvp.MvpFragment; import com.mogo.commons.mvp.Presenter; +import com.mogo.eagle.core.data.multidisplay.TelematicConstant; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; +import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener; +import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager; import com.mogo.eagle.core.function.hmi.ui.widget.DriverMonitorView; import com.mogo.eagle.core.function.view.MapBizView; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; @@ -44,6 +48,11 @@ public abstract class BusPassengerBaseFragment 0) { uploadLine(lineId) } diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt index 1ab7cca965..ac372aa987 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt @@ -18,6 +18,7 @@ import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager.saveMsgBox import com.mogo.eagle.core.utilcode.mogo.* import com.mogo.eagle.core.utilcode.mogo.logger.* import com.mogo.eagle.core.utilcode.util.* +import com.mogo.eagle.function.biz.v2x.V2XBizTrace import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.airoad.* import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.airoad.AiRoadMarker.Marker import mogo.telematics.pad.MessagePad.Header @@ -199,6 +200,14 @@ internal object V2NIdentifyDrawer { override fun onAutopilotIdentifyDataUpdate(trafficData: List?) { super.onAutopilotIdentifyDataUpdate(trafficData) + try { + if (trafficData != null) { + V2XBizTrace.onAck("onAutopilotIdentifyDataUpdate", trafficData) + } + } catch (t: Throwable) { + t.printStackTrace() + } + val shiGong = trafficData?.filter { it.type == 501 || it.type == 502 } Logger.d(TAG, "--- onAutopilotIdentifyDataUpdate -- : trafficData: ${ trafficData?.joinToString(",") }") if (shiGong != null && shiGong.isNotEmpty()) { @@ -212,6 +221,13 @@ internal object V2NIdentifyDrawer { override fun onAutopilotV2nCongestionEvent(header: Header, rsi: RSI_PB) { super.onAutopilotV2nCongestionEvent(header, rsi) + + try { + V2XBizTrace.onAck("onAutopilotV2nCongestionEvent", rsi) + } catch (t: Throwable) { + t.printStackTrace() + } + rsi.rsiFrame?.rtes?.rteDataList?.filter { it.eventType == 102 }?.takeIf { diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt index 4a6c46f7d9..af46c9d815 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt @@ -149,6 +149,11 @@ class TeleMsgHandler : IMsgHandler { CallerTelematicListenerManager.invokeReceivedMsg(TelematicConstant.OPEN_ROMA_STATUS,it.body) } } + TelematicConstant.CONTROL_PASSENGER_DRIVER_MONITOR -> { + ThreadUtils.runOnUiThread { + CallerTelematicListenerManager.invokeReceivedMsg(TelematicConstant.CONTROL_PASSENGER_DRIVER_MONITOR,it.body) + } + } else -> { } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/BusPassengerMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/BusPassengerMsgBoxBubbleView.kt index f88d023f2d..e867ee032b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/BusPassengerMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/BusPassengerMsgBoxBubbleView.kt @@ -52,7 +52,7 @@ class BusPassengerMsgBoxBubbleView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean){ - UiThreadHandler.post{ + UiThreadHandler.post({ if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X || msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){ @@ -65,7 +65,7 @@ class BusPassengerMsgBoxBubbleView @JvmOverloads constructor( } } } - } + },UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt index 0bf5097f02..28c772f1db 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt @@ -70,7 +70,7 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxBean: MsgBoxBean) { - UiThreadHandler.post { + UiThreadHandler.post({ when (category) { MsgCategory.NOTICE -> { MsgBoxConfig.noticeList.add(msgBoxBean) @@ -98,7 +98,7 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( driverMsgBoxBubbleAdapter?.setData(dataList) } } - } + }, UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt index 75e5e6f583..88e872b9c5 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt @@ -171,7 +171,7 @@ class DriverMsgBoxListView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { - UiThreadHandler.post{ + UiThreadHandler.post({ when (category) { MsgCategory.NOTICE -> { noticeList?.add(0,msgBoxList) @@ -192,7 +192,7 @@ class DriverMsgBoxListView @JvmOverloads constructor( } } } - } + },UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt index 42f7fa8178..37e6065841 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt @@ -55,7 +55,7 @@ class MBoxBubbleView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { - UiThreadHandler.post { + UiThreadHandler.post({ if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X || msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){ @@ -68,7 +68,7 @@ class MBoxBubbleView @JvmOverloads constructor( } } } - } + },UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt index e6daa2e3ed..67526ebbdb 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt @@ -49,14 +49,14 @@ class MMsgBoxBubbleView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { - UiThreadHandler.post { + UiThreadHandler.post({ if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X || msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){ update(msgBoxList) } } - } + },UiThreadHandler.MODE.QUEUE) } private fun update(msgBoxList: MsgBoxBean){ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt index 726a6dae6d..69f68eb5eb 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt @@ -56,7 +56,7 @@ class MMsgBoxListView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { - UiThreadHandler.post{ + UiThreadHandler.post({ if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X || msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){ @@ -66,7 +66,7 @@ class MMsgBoxListView @JvmOverloads constructor( } } } - } + },UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt index 0ed1eb0622..fc0db9c448 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt @@ -57,7 +57,7 @@ class PassengerMsgBoxBubbleView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { - UiThreadHandler.post { + UiThreadHandler.post({ if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X || msgBoxList.type == MsgBoxType.OBU){ @@ -70,7 +70,7 @@ class PassengerMsgBoxBubbleView @JvmOverloads constructor( } } } - } + },UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxListView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxListView.kt index cc8418f8d2..fcda7aec3e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxListView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxListView.kt @@ -60,7 +60,7 @@ class PassengerMsgBoxListView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { - UiThreadHandler.post{ + UiThreadHandler.post({ if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X || msgBoxList.type == MsgBoxType.OBU){ @@ -70,7 +70,7 @@ class PassengerMsgBoxListView @JvmOverloads constructor( } } } - } + },UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { 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 d7173cbe6c..a6ff3ad01a 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 @@ -45,6 +45,7 @@ import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.data.obu.MogoObuConst import com.mogo.eagle.core.data.obu.ObuStatusInfo import com.mogo.eagle.core.data.deva.report.ReportEntity +import com.mogo.eagle.core.data.multidisplay.TelematicConstant import com.mogo.eagle.core.function.api.autopilot.* import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsFuncConfigListener import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener @@ -581,6 +582,17 @@ internal class DebugSettingView @JvmOverloads constructor( } } + /** + * 控制乘客屏直播监控 + */ + tbControlPassengerDriverMonitor.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + CallerTelematicManager.sendMsgToAllClients(TelematicConstant.CONTROL_PASSENGER_DRIVER_MONITOR, "1".toByteArray()) + } else { + CallerTelematicManager.sendMsgToAllClients(TelematicConstant.CONTROL_PASSENGER_DRIVER_MONITOR, "0".toByteArray()) + } + } + //设置鹰眼本地参数配置监听 setEagleEyeConfigListener() //域控制器中心事件点击监听 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt index bfc61ae6ef..736037efd9 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt @@ -5,6 +5,7 @@ import android.util.AttributeSet import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.data.msgbox.MsgBoxBean @@ -31,6 +32,10 @@ class TakeOverView @JvmOverloads constructor( const val TAG = "TakeOverView" } + private var autopilotStatus: Int = 0 //自动驾驶状态 0代表不可自动驾驶,1代表可自动驾驶,2代表自动驾驶中,7:平行驾驶中 + private var isParallel: Boolean = false //是否是平行驾驶 + + init { LayoutInflater.from(context).inflate(R.layout.view_take_over, this, true) } @@ -42,6 +47,20 @@ class TakeOverView @JvmOverloads constructor( CallerAutoPilotStatusListenerManager.addListener(TAG, this) } + /** + * 自动驾驶状态信息 + * + * @param autoPilotStatusInfo 状态信息 + */ + override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) { + autopilotStatus = autoPilotStatusInfo.state + if(autoPilotStatusInfo.state == 7){ + isParallel = true + }else if(autoPilotStatusInfo.state == 0 || autoPilotStatusInfo.state == 1){ + isParallel = false + } + } + /** * 工控机监控节点上报 */ @@ -84,38 +103,41 @@ class TakeOverView @JvmOverloads constructor( takeOver = false visibility = View.GONE } - },isFromObu = false - ) + } + ,isFromObu = false) } //弱网 MogoReport.Code.Error.EMAP.EPARALLEL_AICLOUD_NETWORK_WEAK, MogoReport.Code.Error.EMAP.EPARALLEL_AICLOUD_CONNECTION_ERROR -> { - CallerHmiManager.warningV2X( - EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, - EventTypeEnumNew.NETWORK_WEAK_EVENT.content, - EventTypeEnumNew.NETWORK_WEAK_EVENT.tts, - object : IMoGoWarningStatusListener { - override fun onShow() { - takeOver = true - visibility = View.VISIBLE - //加入消息盒子 - saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, V2XMsg( - EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, - EventTypeEnumNew.NETWORK_WEAK_EVENT.content, - EventTypeEnumNew.NETWORK_WEAK_EVENT.tts + //如果是平行驾驶状态下,提示弱网接管 + if(isParallel){ + CallerHmiManager.warningV2X( + EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, + EventTypeEnumNew.NETWORK_WEAK_EVENT.content, + EventTypeEnumNew.NETWORK_WEAK_EVENT.tts, + object : IMoGoWarningStatusListener { + override fun onShow() { + takeOver = true + visibility = View.VISIBLE + //加入消息盒子 + saveMsgBox( + MsgBoxBean( + MsgBoxType.V2X, V2XMsg( + EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, + EventTypeEnumNew.NETWORK_WEAK_EVENT.content, + EventTypeEnumNew.NETWORK_WEAK_EVENT.tts + ) ) ) - ) - } + } - override fun onDismiss() { - takeOver = false - visibility = View.GONE + override fun onDismiss() { + takeOver = false + visibility = View.GONE + } } - },isFromObu = false - ) + ,isFromObu = false) + } } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaPassengerView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaPassengerView.kt index 91b4614747..abec42e15b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaPassengerView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaPassengerView.kt @@ -25,6 +25,9 @@ class RomaPassengerView @JvmOverloads constructor( @Volatile private var romaMode = false + @Volatile + private var click = true + private val openRes: Int private val normalRes: Int @@ -36,10 +39,16 @@ class RomaPassengerView @JvmOverloads constructor( normalRes = a.getResourceId(R.styleable.RomaPassengerView_roma_close, 0) a.recycle() setOnClickListener { + if(!click){ + return@setOnClickListener + } + click = false romaMode = !romaMode romaTrigger(romaMode) { mode -> + click = true romaMode = mode } + } } @@ -65,6 +74,7 @@ class RomaPassengerView @JvmOverloads constructor( } override fun romaStatus(status: Boolean) { + click = true if (status) { romaMode = true if (openRes != 0) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaView.kt index b4b5867f90..38e830b0b7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaView.kt @@ -24,9 +24,16 @@ class RomaView @JvmOverloads constructor( @Volatile private var romaMode = false + @Volatile + private var click = false + init { LayoutInflater.from(context).inflate(R.layout.view_roma_bg, this, true) setOnClickListener { + if(!click){ + return@setOnClickListener + } + click = false romaMode = !romaMode // 司机屏发送事件给乘客屏 if (romaMode) { @@ -49,6 +56,7 @@ class RomaView @JvmOverloads constructor( } override fun onReceivedMsg(type: Int, byteArray: ByteArray) { + click = true when(type){ TelematicConstant.OPEN_ROMA_STATUS -> { when (String(byteArray)) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt index 1256f601a1..e7706741cc 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt @@ -143,6 +143,7 @@ class SystemVersionView @JvmOverloads constructor( ToastUtils.showShort(resources.getString(R.string.location_try_again)) } else {// 拿到了高精的经纬度 val dialog = OfflineMapDialog(context) + CallerLogger.i("$M_HMI$$TAG", "location lon is:${location?.longitude}, lat is:${location?.latitude}") dialog.location = location dialog.show() } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml index 61166d3c1d..937c4e07c3 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml @@ -1355,8 +1355,8 @@ android:background="@drawable/setting_toggle_button_background" android:drawableEnd="@drawable/icon_right" android:padding="@dimen/dp_20" - android:textOff="HMI控制" - android:textOn="HMI控制" + android:textOff="打开HMI控制" + android:textOn="关闭HMI控制" android:textSize="@dimen/dp_24" /> + + { if (showAiCloud.get()) { MapBizTrace.log(TAG, "onMapVisualAngleChanged, invoke close roma") - closeRoma(false) showAiCloud.set(false) + closeRoma(false) FunctionBuildConfig.isDrawIdentifyData = true } } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/AiCloudIdentifyNetWorkModel.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/AiCloudIdentifyNetWorkModel.kt index 57f6e064f3..41181c26be 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/AiCloudIdentifyNetWorkModel.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/AiCloudIdentifyNetWorkModel.kt @@ -18,7 +18,8 @@ class AiCloudIdentifyNetWorkModel private constructor(){ } } - private fun getNetWorkApi(baseUrl: String = getEagleHost()): IAiCloudIdentifyApiService { +// private fun getNetWorkApi(baseUrl: String = getEagleHost()): IAiCloudIdentifyApiService { + private fun getNetWorkApi(baseUrl: String = "http://dzt-qa-city.zhidaozhixing.com/"): IAiCloudIdentifyApiService { //todo 2023/4/19 衡阳临时测试 return MoGoRetrofitFactory.getInstanceNoCallAdapter(baseUrl) .create(IAiCloudIdentifyApiService::class.java) } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/IAiCloudIdentifyApiService.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/IAiCloudIdentifyApiService.kt index 2a88126598..111ff9435d 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/IAiCloudIdentifyApiService.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/IAiCloudIdentifyApiService.kt @@ -8,7 +8,8 @@ import retrofit2.http.POST interface IAiCloudIdentifyApiService { @Headers("Content-type:application/json;charset=UTF-8") - @POST("eagle-eye-dns/yycp-c-v2x-service/dataFusion/remoteDrivingSet") +// @POST("eagle-eye-dns/yycp-c-v2x-service/dataFusion/remoteDrivingSet") // @POST("yycp-data-center-service1/remoteDrivingSet") + @POST("yycp-c-v2x-service/dataFusion/remoteDrivingSet") //todo 2023/4/19 衡阳临时测试 suspend fun identifyRange(@Body map: MutableMap): BaseResponse } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/multidisplay/TelematicConstant.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/multidisplay/TelematicConstant.kt index b6f7e195bf..f5b05b667d 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/multidisplay/TelematicConstant.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/multidisplay/TelematicConstant.kt @@ -12,5 +12,6 @@ class TelematicConstant { const val HIDE_TRAFFIC_LIGHT = 102 const val OPEN_ROMA_STATUS = 103 const val ROMA_UPDATE = 104 + const val CONTROL_PASSENGER_DRIVER_MONITOR = 105 } } \ No newline at end of file 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 34facf277a..e86ce263b1 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 @@ -27,16 +27,12 @@ object CallerAutoPilotStatusListenerManager : CallerBase = - ConcurrentHashMap() - @Volatile private var autoPilotMessageCode: String = "" diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicManager.kt index b70b90befc..52fa082b05 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicManager.kt @@ -41,7 +41,7 @@ object CallerTelematicManager { /** * 发送数据给所有客户端 - * type:保存在TelematicConstant中 + * type:保存在 TelematicConstant 中 */ fun sendMsgToAllClients(type: Int, byteArray: ByteArray) { providerApi?.sendMsgToAllClients(type, byteArray) diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java index 42044644ee..171817dd7d 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java @@ -53,6 +53,18 @@ public final class ThreadUtils { private static Executor sDeliver; + public enum MODE { + /** + * 多次post同一个Runnable对象,只会执行最后一次 + */ + LATEST, + + /** + * 多次post,在主线程消息队列中排队执行 + */ + QUEUE + } + /** * Return whether the thread is the main thread. * @@ -63,23 +75,40 @@ public final class ThreadUtils { } public static void runOnUiThread(final Runnable r) { + runOnUiThread(r, MODE.LATEST); + } + + public static void runOnUiThread(final Runnable r, MODE mode) { if (Looper.myLooper() == Looper.getMainLooper()) { r.run(); } else { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - HANDLER.removeMessages(what); - Message msg = Message.obtain(HANDLER, r); - msg.what = what; - HANDLER.sendMessage(msg); + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + HANDLER.removeMessages(what); + Message msg = Message.obtain(HANDLER, r); + msg.what = what; + HANDLER.sendMessage(msg); + } else { + HANDLER.post(r); + } } } public static void runOnUiThreadDelayed(final Runnable r, long delayMillis) { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - HANDLER.removeMessages(what); - Message msg = Message.obtain(HANDLER, r); - msg.what = what; - HANDLER.sendMessageDelayed(msg, delayMillis); + runOnUiThreadDelayed(r, delayMillis, MODE.LATEST); + } + + public static void runOnUiThreadDelayed(final Runnable r, long delayMillis, MODE mode) { + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + HANDLER.removeMessages(what); + Message msg = Message.obtain(HANDLER, r); + msg.what = what; + HANDLER.sendMessageDelayed(msg, delayMillis); + } else { + HANDLER.postDelayed(r, delayMillis); + } + } /** diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java index a8fc918cda..e4d3f8803a 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java @@ -10,24 +10,58 @@ public class UiThreadHandler { private UiThreadHandler() { } + public enum MODE { + /** + * 多次post同一个Runnable对象,只会执行最后一次 + */ + LATEST, + + /** + * 多次post,在主线程消息队列中排队执行 + */ + QUEUE + } + public static boolean post( Runnable r ) { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - sUiHandler.removeMessages(what); - Message msg = Message.obtain(sUiHandler, r); - msg.what = what; - return sUiHandler.sendMessage(msg); + return post(r, MODE.LATEST); + } + + public static boolean post(Runnable r, MODE mode) { + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + sUiHandler.removeMessages(what); + Message msg = Message.obtain(sUiHandler, r); + msg.what = what; + return sUiHandler.sendMessage(msg); + } + return sUiHandler.post(r); } public static boolean postDelayed( Runnable r, long delayMillis ) { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - sUiHandler.removeMessages(what); - Message msg = Message.obtain(sUiHandler, r); - msg.what = what; - return sUiHandler.sendMessageDelayed(msg, delayMillis); + return postDelayed(r, delayMillis, MODE.LATEST); + } + + public static boolean postDelayed( Runnable r, long delayMillis, MODE mode ) { + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + sUiHandler.removeMessages(what); + Message msg = Message.obtain(sUiHandler, r); + msg.what = what; + return sUiHandler.sendMessageDelayed(msg, delayMillis); + } + return sUiHandler.postDelayed(r, delayMillis); } public static void removeCallbacks( Runnable r ) { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - sUiHandler.removeMessages(what); + removeCallbacks(r, MODE.LATEST); + } + + public static void removeCallbacks( Runnable r, MODE mode ) { + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + sUiHandler.removeMessages(what); + } else { + sUiHandler.removeCallbacks(r); + } } } \ No newline at end of file diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 06e1dd1641..766a18c135 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -1090,6 +1090,7 @@ public class AMapViewWrapper implements IMogoMapView, public void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location) { if (mMapView.getMapAutoViewHelper() != null) { hdCacheListener = listener; + CallerLogger.INSTANCE.i(M_MAP + TAG, "location lon is:" + location.getLongitude() + ",lat is:" + location.getLatitude()); mMapView.getMapAutoViewHelper().cacheHDDataByCityByLonLat(location.getLongitude(), location.getLatitude(), new OnHdDataDownByCityListener() { @Override public void onMapHDDataCacheProgressByCity(int cityId, double progress) { @@ -1128,6 +1129,7 @@ public class AMapViewWrapper implements IMogoMapView, public boolean isCityDataCached() { if (mMapView.getMapAutoViewHelper() != null) { String gdCityCode = GDLocationClient.getInstance(getContext()).getLastCityCode(); + CallerLogger.INSTANCE.i(M_MAP + TAG, "gdCityCode is:" + gdCityCode); Integer id = HDMapUtils.getHDCityCode(gdCityCode); if (id != null) { List cityInfoList = mMapView.getMapAutoViewHelper().getAllCityCode();