[2.13.2] 修改弱势交通删除逻辑,修改限速来源字体颜色

This commit is contained in:
lixiaopeng
2023-01-14 19:22:15 +08:00
parent 787e981f69
commit ce288c1b60
4 changed files with 78 additions and 49 deletions

View File

@@ -960,7 +960,6 @@ class MoGoHmiFragment : MvpFragment<MoGoHmiContract.View?, HmiPresenter?>(),
CallerAutoPilotManager.sendTripInfo(5, "", "", "", false)
}
}
if (warningContent.isEmpty()) {
CallerLogger.e("$M_HMI$TAG", "Show warningContent is null or empty!")
return

View File

@@ -189,8 +189,9 @@
android:layout_height="35dp"
android:gravity="center"
android:text=""
android:textColor="@color/notice_text_blue"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/dp_30"
android:textStyle="bold"
android:layout_marginEnd="40dp"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -101,7 +101,7 @@ object TrafficMarkerDrawer {
fun updateITrafficThreatLevelInfo(trafficData: TrafficData) {
CallerLogger.d(TAG,
"trafficData.type = " + trafficData.type + "---trafficData.threatLevel = " + trafficData.threatLevel + "----FunctionBuildConfig.debugTrackerProvider = " + FunctionBuildConfig.debugTrackerProvider)
if (FunctionBuildConfig.debugTrackerProvider != 1) {
if (FunctionBuildConfig.debugTrackerProvider != 1) {
return
}
if (trafficData != null && !TextUtils.isEmpty(trafficData.uuid)) {
@@ -128,6 +128,10 @@ object TrafficMarkerDrawer {
fun removeCvxRvInfoIndInfo(key: String) {
if (mTrafficMap.containsKey(key)) {
mTrafficMap.remove(key)
mMarkersCaches.get(key)?.let {
it.remove()
}
}
}

View File

@@ -247,6 +247,7 @@ class MogoPrivateObuNewManager private constructor() {
val rvMap = mutableMapOf<String, Long>()
val rsiMap = mutableMapOf<String, Long>()
val rsmMap = mutableMapOf<String, Long>()
val rsmPtcIdMap = mutableMapOf<String, Long>()
/**
* RSI预警信息 onMogoObuRsiWarning交通标志预警前方限速、前方学校等等交通事件预警前方拥堵、前方积水等等
@@ -539,62 +540,81 @@ class MogoPrivateObuNewManager private constructor() {
var level = -1
val direction = getMessageDirection(data.participant.targetPosition)
//15秒内同一个事件只出现一次
if (rsmMap.containsKey(v2xType)) {
var oldTime = rsmMap[v2xType]
var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000
if (timeDiff < 15) {
return
}
rsmMap.remove(v2xType)
rsmMap[v2xType] = System.currentTimeMillis()
} else {
rsmMap[v2xType] = System.currentTimeMillis()
}
//物体数据绘制 TODO 这里与dc通过工控机有区别
when (data.status) {
MogoObuConstants.STATUS.ADD -> { // 添加
// 更新数据
TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(data)
?.let {
CallerLogger.d(
"$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}",
"add cvxPtcThreatIndInfo2TrafficData ---it---> $it"
)
CallerMapUIServiceManager.getMarkerService()
?.updateITrafficThreatLevelInfo(it)
}
}
MogoObuConstants.STATUS.UPDATE -> {// 更新
}
MogoObuConstants.STATUS.DELETE -> { // 删除
// 更新数据 TODO 删除原来的改变颜色删除marker。不影响别的模型添加
TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(data)
?.let {
// 事件结束,还原交通参与者颜色
it.threatLevel = 0x01
CallerMapUIServiceManager.getMarkerService()
?.updateITrafficThreatLevelInfo(it)
}
//删除弱势交通元素
CallerMapUIServiceManager.getMarkerService()
?.removeCvxRvInfoIndInfo(data.participant.ptcId.toString())
}
}
CallerLogger.d(
"$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onMogoObuRsmWarning ---- data.status = ${data.status} ---data.participant.ptcId = ${data.participant.ptcId} ---data.participant.ptcType = ${data.participant.ptcType} ---data.warningMsg = ${data.warningMsg} -----data = ${data.toString()}")
// when (data.status) {
// MogoObuConstants.STATUS.ADD -> { // 添加
// // 更新数据模型变色的时候是不是update,如果不是更新可能导致模型不变色add的时候是否有level高的 TODO
// TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(data)
// ?.let {
// CallerMapUIServiceManager.getMarkerService()
// ?.updateITrafficThreatLevelInfo(it)
// }
// }
//
// MogoObuConstants.STATUS.UPDATE -> { // 更新
// //处理删除逻辑,
//// if (rsmPtcIdMap.containsKey(data.participant.ptcId.toString())) {
//// var oldTime = rsmPtcIdMap[data.participant.ptcId.toString()]
//// var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000
//// if (timeDiff > 3) { //超过3秒,删除对应弱势交通元素
//// CallerMapUIServiceManager.getMarkerService()
//// ?.removeCvxRvInfoIndInfo(data.participant.ptcId.toString())
//// }
//// rsmPtcIdMap.remove(data.participant.ptcId.toString())
//// rsmPtcIdMap[data.participant.ptcId.toString()] = System.currentTimeMillis()
//// } else {
//// rsmPtcIdMap[data.participant.ptcId.toString()] = System.currentTimeMillis()
//// }
// }
//
// MogoObuConstants.STATUS.DELETE -> { // 删除
// // 更新数据 TODO 删除原来的改变颜色删除marker。不影响别的模型添加
// TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(data)
// ?.let {
// // 事件结束,还原交通参与者颜色
// it.threatLevel = 0x01
// CallerMapUIServiceManager.getMarkerService()
// ?.updateITrafficThreatLevelInfo(it)
// }
//
// //删除弱势交通元素
// CallerMapUIServiceManager.getMarkerService()
// ?.removeCvxRvInfoIndInfo(data.participant.ptcId.toString())
// }
// }
//预警status
if (data.warningMsg != null && data.warningMsg.warningData != null && data.warningMsg.warningData.size > 0) {
level = data.warningMsg.warningData[0].warningLevel //默认是1个
CallerLogger.d(
"$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}",
"onMogoObuRsmWarning ---status---> ${data.status} ---data.warningMsg.warningData[0].status = ${data.warningMsg.warningData[0].status} ---v2xType = $v2xType ---alertContent = $alertContent ---ttsContent = $ttsContent "
"onMogoObuRsmWarning ---status---> ${data.status} ---data.warningMsg.warningData[0].status = ${data.warningMsg.warningData[0].status} ---v2xType = $v2xType ---alertContent = $alertContent ---ttsContent = $ttsContent ---level = $level"
)
when (data.warningMsg.warningData[0].status) {
MogoObuConstants.STATUS.ADD -> { // 添加
//更新模型的颜色
Log.e("lixp", "MogoObuConstants.STATUS.ADD ------1--------v2xType = $v2xType ---alertContent = $alertContent ---ttsContent = $ttsContent ---level = $level --ptcId = ${data.participant.ptcId}")
//15秒内同一个事件只出现一次
if (rsmMap.containsKey(v2xType)) {
var oldTime = rsmMap[v2xType]
var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000
if (timeDiff < 15) {
return
}
rsmMap.remove(v2xType)
rsmMap[v2xType] = System.currentTimeMillis()
} else {
rsmMap[v2xType] = System.currentTimeMillis()
}
TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(data)
?.let {
CallerMapUIServiceManager.getMarkerService()
?.updateITrafficThreatLevelInfo(it)
}
//显示警告红边
CallerHmiManager.showWarning(direction)
CallerMsgBoxManager.saveMsgBox(
@@ -609,6 +629,7 @@ class MogoPrivateObuNewManager private constructor() {
sourceType = DataSourceType.OBU
}
)
CallerHmiManager.warningV2X(
v2xType,
alertContent,
@@ -631,8 +652,12 @@ class MogoPrivateObuNewManager private constructor() {
}
MogoObuConstants.STATUS.DELETE -> { // 删除
Log.d("lixp", "MogoObuConstants.STATUS.DELETE ------3----- ---v2xType = $v2xType ---alertContent = $alertContent ---ttsContent = $ttsContent ---level = $level --ptcId = ${data.participant.ptcId}")
// 关闭警告红边
CallerHmiManager.showWarning(WarningDirectionEnum.ALERT_WARNING_NON)
//删除弱势交通元素
CallerMapUIServiceManager.getMarkerService()
?.removeCvxRvInfoIndInfo(data.participant.ptcId.toString())
}
}
}