2.13.0 添加obu的限速功能,添加开关控制限速数据来源

This commit is contained in:
lixiaopeng
2022-12-01 14:40:34 +08:00
parent 38096e1a2a
commit 0f98d5b7f0
6 changed files with 79 additions and 31 deletions

View File

@@ -26,6 +26,7 @@ import com.mogo.commons.debug.DebugConfig
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.autopilot.*
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.config.HmiBuildConfig
import com.mogo.eagle.core.data.constants.MoGoConfig
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.BIZ_BAG_RECORD
@@ -1136,6 +1137,13 @@ class DebugSettingView @JvmOverloads constructor(
}
}
/**
* 限速数据优先使用obu默认打开
*/
tbRoadLimitSpeed.setOnCheckedChangeListener { _, isChecked ->
HmiBuildConfig.isShowObuLimitSpeedView = !isChecked
}
/**
* 实时加速度面板控制
*/

View File

@@ -1379,6 +1379,17 @@
android:textOn="关闭云端弱势群体预警"
android:textSize="@dimen/dp_24" />
<ToggleButton
android:id="@+id/tbRoadLimitSpeed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:layout_margin="2dp"
android:gravity="center"
android:textOff="关闭路侧限速"
android:textOn="获取路侧限速"
android:textSize="@dimen/dp_24" />
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/etThreshold"
android:layout_width="wrap_content"

View File

@@ -73,6 +73,9 @@ object TrafficMarkerDrawer {
* 更新识别数据位置
*/
fun updateITrafficLocationInfo(trafficData: TrafficData) {
CallerLogger.d(TAG, "updateITrafficLocationInfo trafficData = $trafficData")
CallerLogger.d(TAG,
"trafficData.type = " + trafficData.type + "---trafficData.threatLevel = " + trafficData.threatLevel + "----FunctionBuildConfig.debugTrackerProvider = " + FunctionBuildConfig.debugTrackerProvider)
if (FunctionBuildConfig.debugTrackerProvider != 1) {
return
}
@@ -95,6 +98,9 @@ object TrafficMarkerDrawer {
* 更新识别数据颜色
*/
fun updateITrafficThreatLevelInfo(trafficData: TrafficData) {
CallerLogger.d(TAG, "updateITrafficThreatLevelInfo trafficData = $trafficData")
CallerLogger.d(TAG,
"trafficData.type = " + trafficData.type + "---trafficData.threatLevel = " + trafficData.threatLevel + "----FunctionBuildConfig.debugTrackerProvider = " + FunctionBuildConfig.debugTrackerProvider)
if (FunctionBuildConfig.debugTrackerProvider != 1) {
return
}

View File

@@ -3,28 +3,31 @@ package com.mogo.eagle.core.function.obu.mogo
import android.content.Context
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.config.HmiBuildConfig
import com.mogo.eagle.core.data.config.HmiBuildConfig.isShowObuLimitSpeedView
import com.mogo.eagle.core.data.enums.EventTypeEnumNew
import com.mogo.eagle.core.data.enums.EventTypeEnumWeaknessTraffic
import com.mogo.eagle.core.data.enums.V2iEventTypeEnum
import com.mogo.eagle.core.data.enums.WarningDirectionEnum
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
import com.mogo.eagle.core.data.msgbox.MsgBoxType
import com.mogo.eagle.core.data.msgbox.V2XMsg
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.showLimitingVelocity
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.Default
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.TooClose
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
import com.mogo.eagle.core.function.call.obu.CallerObuListenerManager
import com.mogo.eagle.core.function.call.v2x.CallLimitingVelocityListenerManager.invokeOnLimitingVelocityChange
import com.mogo.eagle.core.function.obu.mogo.MogoObuConst.TAG_MOGO_OBU
import com.mogo.eagle.core.function.obu.mogo.utils.TrafficDataConvertUtilsNew
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.enums.EventTypeEnumNew
import com.mogo.eagle.core.data.enums.EventTypeEnumWeaknessTraffic
import com.mogo.eagle.core.data.enums.V2iEventTypeEnum
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
import com.mogo.eagle.core.data.msgbox.MsgBoxType
import com.mogo.eagle.core.data.msgbox.V2XMsg
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
import com.mogo.eagle.core.function.obu.mogo.MogoObuConst.TAG_MOGO_OBU
import com.mogo.eagle.core.function.obu.mogo.utils.TrafficDataConvertUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.support.obu.MogoObuManager
import com.mogo.support.obu.OnMogoObuListener
import com.mogo.support.obu.constants.MogoObuComType
@@ -487,8 +490,7 @@ class MogoPrivateObuNewManager private constructor() {
)
// 交通参与者类型 0x0:未知 UNKNOWN | 1机动车 2:非机动车 NON_MOTOR | 3:行人 PEDESTRIAN 4:obu
if (data != null && data.participant != null && (data.participant.ptcType == 1 || data.participant.ptcType == 3)) {
CallerLogger.d(
"$M_OBU${MogoObuConst.TAG_MOGO_OBU}",
CallerLogger.d("$M_OBU${TAG_MOGO_OBU}",
"onMogoObuRsmWarning ---status---> ${data.status}"
)
@@ -552,7 +554,9 @@ class MogoPrivateObuNewManager private constructor() {
// CallerMapUIServiceManager.getMarkerService()
// ?.updateITrafficInfo(it)
// }
TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(data)?.let {
CallerLogger.d("$M_OBU${TAG_MOGO_OBU}", "cvxPtcThreatIndInfo2TrafficData ---it---> $it")
CallerMapUIServiceManager.getMarkerService()
?.updateITrafficThreatLevelInfo(it)
}
@@ -585,21 +589,28 @@ class MogoPrivateObuNewManager private constructor() {
*/
override fun onMogoObuMapMath(data: MogoObuMapMathData?) {
super.onMogoObuMapMath(data)
if (data != null) {
CallerLogger.d(
"$M_OBU${TAG_MOGO_OBU}",
"onMogoObuMapMathstatus = ${data.status} --speedMaxLimit = ${Math.round((data.speedMaxLimit*3.6))}")
when (data.status) {
MogoObuConstants.STATUS.ADD -> { // 添加
CallerHmiManager.showLimitingVelocity(Math.round((data.speedMaxLimit*3.6)).toInt())
}
if(isShowObuLimitSpeedView) { //默认显示obu的限速
if (data != null) {
CallerLogger.d(
"$M_OBU${TAG_MOGO_OBU}",
"onMogoObuMapMathstatus = ${data.status} --speedMaxLimit = ${Math.round((data.speedMaxLimit*3.6))}")
when (data.status) {
MogoObuConstants.STATUS.ADD -> { // 添加
UiThreadHandler.post {
if(data.speedMaxLimit > 0) {
CallerHmiManager.showLimitingVelocity(Math.round((data.speedMaxLimit*3.6)).toInt())
}
}
}
MogoObuConstants.STATUS.UPDATE -> { // 更新
MogoObuConstants.STATUS.UPDATE -> { // 更新
}
}
MogoObuConstants.STATUS.DELETE -> { // 删除
CallerHmiManager.disableLimitingVelocity()
MogoObuConstants.STATUS.DELETE -> { // 删除
UiThreadHandler.post {
CallerHmiManager.disableLimitingVelocity()
}
}
}
}
}

View File

@@ -1,9 +1,11 @@
package com.mogo.eagle.core.function.v2x.speedlimit;
import static com.mogo.eagle.core.data.config.HmiBuildConfig.isShowObuLimitSpeedView;
import static com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.BIZ_SLW;
import static com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.V2I;
import android.location.Location;
import android.util.Log;
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
import com.mogo.eagle.core.function.call.v2x.CallLimitingVelocityListenerManager;
@@ -52,13 +54,15 @@ public class SpeedLimitDataManager implements IMogoCarLocationChangedListener2 {
@BizConfig(biz = V2I,dependentBizNode = "",bizNode = BIZ_SLW)
private void getSpeedLimit() {
int speedLimit = MogoMapUIController.getInstance().getLimitSpeed(mLocation.getLongitude(), mLocation.getLatitude(), mLocation.getBearing());
UiThreadHandler.post(() -> {
if (speedLimit > 0) {
CallerHmiManager.INSTANCE.showLimitingVelocity(speedLimit);
CallLimitingVelocityListenerManager.INSTANCE.invokeOnLimitingVelocityChange(speedLimit);
}
});
if (!isShowObuLimitSpeedView) {
int speedLimit = MogoMapUIController.getInstance().getLimitSpeed(mLocation.getLongitude(), mLocation.getLatitude(), mLocation.getBearing());
UiThreadHandler.post(() -> {
if (speedLimit > 0) {
CallerHmiManager.INSTANCE.showLimitingVelocity(speedLimit);
CallLimitingVelocityListenerManager.INSTANCE.invokeOnLimitingVelocityChange(speedLimit);
}
});
}
}
}