opt trafic light
This commit is contained in:
@@ -538,8 +538,6 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuDcCombineListener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private var isRedLight = false
|
|
||||||
private var isGreenLight = false
|
|
||||||
private var isShowGreenWave = false
|
private var isShowGreenWave = false
|
||||||
private var isShowRunRedLight = false
|
private var isShowRunRedLight = false
|
||||||
|
|
||||||
@@ -662,11 +660,7 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuDcCombineListener
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 红灯
|
// 红灯
|
||||||
2, 3 -> { //todo 小鹏
|
2, 3 -> {
|
||||||
if (!isRedLight) {
|
|
||||||
isRedLight = true
|
|
||||||
}
|
|
||||||
isGreenLight = false
|
|
||||||
CallerTrafficLightListenerManager.showTrafficLight(
|
CallerTrafficLightListenerManager.showTrafficLight(
|
||||||
TrafficLightEnum.RED,
|
TrafficLightEnum.RED,
|
||||||
DataSourceType.TELEMATIC
|
DataSourceType.TELEMATIC
|
||||||
@@ -676,11 +670,7 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuDcCombineListener
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 绿灯
|
// 绿灯
|
||||||
4, 5, 6 -> { //todo 小鹏
|
4, 5, 6 -> {
|
||||||
if (!isGreenLight) {
|
|
||||||
isGreenLight = true
|
|
||||||
}
|
|
||||||
isRedLight = false
|
|
||||||
CallerTrafficLightListenerManager.showTrafficLight(
|
CallerTrafficLightListenerManager.showTrafficLight(
|
||||||
TrafficLightEnum.GREEN,
|
TrafficLightEnum.GREEN,
|
||||||
DataSourceType.TELEMATIC
|
DataSourceType.TELEMATIC
|
||||||
|
|||||||
@@ -635,382 +635,322 @@ class MogoPrivateObuNewManager private constructor() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取消息的方位 车辆相关
|
* 获取消息的方位 车辆相关
|
||||||
*/
|
*/
|
||||||
private fun getMessageDirection(targetClassification: Int): WarningDirectionEnum {
|
private fun getMessageDirection(targetClassification: Int): WarningDirectionEnum {
|
||||||
// CallerLogger.d("$M_OBU${TAG_MOGO_NEW_OBU}", "预警红边:预警方向->$targetClassification")
|
// CallerLogger.d("$M_OBU${TAG_MOGO_NEW_OBU}", "预警红边:预警方向->$targetClassification")
|
||||||
return when (targetClassification) {
|
return when (targetClassification) {
|
||||||
MogoObuConstants.VEH_TARGET_POSITION.AHEAD_IN_LANE,
|
MogoObuConstants.VEH_TARGET_POSITION.AHEAD_IN_LANE,
|
||||||
MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_IN_LANE -> WarningDirectionEnum.ALERT_WARNING_TOP //正前方
|
MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_IN_LANE -> WarningDirectionEnum.ALERT_WARNING_TOP //正前方
|
||||||
|
|
||||||
MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_IN_LANE -> WarningDirectionEnum.ALERT_WARNING_BOTTOM //正后方
|
MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_IN_LANE -> WarningDirectionEnum.ALERT_WARNING_BOTTOM //正后方
|
||||||
|
|
||||||
MogoObuConstants.VEH_TARGET_POSITION.INTERSECTION_RIGHT -> WarningDirectionEnum.ALERT_WARNING_RIGHT //正右方
|
MogoObuConstants.VEH_TARGET_POSITION.INTERSECTION_RIGHT -> WarningDirectionEnum.ALERT_WARNING_RIGHT //正右方
|
||||||
|
|
||||||
MogoObuConstants.VEH_TARGET_POSITION.INTERSECTION_LEFT -> WarningDirectionEnum.ALERT_WARNING_LEFT //正左方
|
MogoObuConstants.VEH_TARGET_POSITION.INTERSECTION_LEFT -> WarningDirectionEnum.ALERT_WARNING_LEFT //正左方
|
||||||
|
|
||||||
MogoObuConstants.VEH_TARGET_POSITION.AHEAD_LEFT, MogoObuConstants.VEH_TARGET_POSITION.AHEAD_FAR_LEFT,
|
MogoObuConstants.VEH_TARGET_POSITION.AHEAD_LEFT, MogoObuConstants.VEH_TARGET_POSITION.AHEAD_FAR_LEFT,
|
||||||
MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_LEFT, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_FAR_LEFT
|
MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_LEFT, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_FAR_LEFT
|
||||||
-> WarningDirectionEnum.ALERT_WARNING_TOP_LEFT //左前方
|
-> WarningDirectionEnum.ALERT_WARNING_TOP_LEFT //左前方
|
||||||
|
|
||||||
MogoObuConstants.VEH_TARGET_POSITION.AHEAD_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.AHEAD_FAR_RIGHT,
|
MogoObuConstants.VEH_TARGET_POSITION.AHEAD_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.AHEAD_FAR_RIGHT,
|
||||||
MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_FAT_RIGHT
|
MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_FAT_RIGHT
|
||||||
-> WarningDirectionEnum.ALERT_WARNING_TOP_RIGHT //右前方
|
-> WarningDirectionEnum.ALERT_WARNING_TOP_RIGHT //右前方
|
||||||
|
|
||||||
MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_LEFT, MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_FAR_LEFT,
|
MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_LEFT, MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_FAR_LEFT,
|
||||||
-> WarningDirectionEnum.ALERT_WARNING_BOTTOM_LEFT //左后方
|
-> WarningDirectionEnum.ALERT_WARNING_BOTTOM_LEFT //左后方
|
||||||
|
|
||||||
MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_FAR_RIGHT,
|
MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_FAR_RIGHT,
|
||||||
-> WarningDirectionEnum.ALERT_WARNING_BOTTOM_RIGHT //右后方
|
-> WarningDirectionEnum.ALERT_WARNING_BOTTOM_RIGHT //右后方
|
||||||
|
|
||||||
MogoObuConstants.VEH_TARGET_POSITION.UNCLASSIFIED -> WarningDirectionEnum.ALERT_WARNING_NON //未知
|
MogoObuConstants.VEH_TARGET_POSITION.UNCLASSIFIED -> WarningDirectionEnum.ALERT_WARNING_NON //未知
|
||||||
else -> WarningDirectionEnum.ALERT_WARNING_ALL
|
else -> WarningDirectionEnum.ALERT_WARNING_ALL
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 构造对应展示数据和场景 根据obu的场景,add change delete确定是否展示
|
|
||||||
*
|
|
||||||
* @param appId 使用WarningTypeEnum获取icon、提示内容、tts内容 TODO 添加事件频繁播报拦截
|
|
||||||
*
|
|
||||||
* @see com.mogo.module.common.enums.EventTypeEnum
|
|
||||||
*/
|
|
||||||
private fun handleSdkObu(
|
|
||||||
appId: String,
|
|
||||||
direction: WarningDirectionEnum,
|
|
||||||
status: Int,
|
|
||||||
level: Int,
|
|
||||||
info: MogoObuRvWarningData
|
|
||||||
) {
|
|
||||||
// 这里排除需要特殊定制的语音及文案外,其余的都可以使用 EventTypeEnumNew 提供的
|
|
||||||
var alertContent: String = ""
|
|
||||||
var ttsContent: String = ""
|
|
||||||
var changeVisualAngle = false
|
|
||||||
when (appId) {
|
|
||||||
//交叉路口碰撞预警
|
|
||||||
MogoObuConstants.V2X_WARNING_TYPE.FCW.toString() -> {
|
|
||||||
alertContent =
|
|
||||||
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_FCW.poiType)
|
|
||||||
ttsContent =
|
|
||||||
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_FCW.poiType)
|
|
||||||
}
|
|
||||||
|
|
||||||
//交叉路口碰撞预警
|
|
||||||
MogoObuConstants.V2X_WARNING_TYPE.ICW.toString() -> {
|
|
||||||
alertContent =
|
|
||||||
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_ICW.poiType)
|
|
||||||
ttsContent =
|
|
||||||
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_ICW.poiType)
|
|
||||||
}
|
|
||||||
|
|
||||||
//左转辅助预警
|
|
||||||
MogoObuConstants.V2X_WARNING_TYPE.LTA.toString() -> {
|
|
||||||
alertContent =
|
|
||||||
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_LTA.poiType)
|
|
||||||
ttsContent =
|
|
||||||
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_LTA.poiType)
|
|
||||||
}
|
|
||||||
|
|
||||||
//盲区预警
|
|
||||||
MogoObuConstants.V2X_WARNING_TYPE.BSW.toString() -> {
|
|
||||||
ttsContent =
|
|
||||||
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_BSW.poiType)
|
|
||||||
alertContent =
|
|
||||||
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_BSW.poiType)
|
|
||||||
if (
|
|
||||||
direction == WarningDirectionEnum.ALERT_WARNING_LEFT ||
|
|
||||||
direction == WarningDirectionEnum.ALERT_WARNING_TOP_LEFT ||
|
|
||||||
direction == WarningDirectionEnum.ALERT_WARNING_BOTTOM_LEFT
|
|
||||||
) { //左后
|
|
||||||
changeVisualAngle = true
|
|
||||||
ttsContent = String.format(ttsContent, "左")
|
|
||||||
alertContent = String.format(alertContent, "左")
|
|
||||||
} else if (
|
|
||||||
direction == WarningDirectionEnum.ALERT_WARNING_RIGHT ||
|
|
||||||
direction == WarningDirectionEnum.ALERT_WARNING_TOP_RIGHT ||
|
|
||||||
direction == WarningDirectionEnum.ALERT_WARNING_BOTTOM_RIGHT
|
|
||||||
) { //右后
|
|
||||||
changeVisualAngle = true
|
|
||||||
ttsContent = String.format(ttsContent, "右")
|
|
||||||
alertContent = String.format(alertContent, "右")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 变道预警,注意左后车辆/注意右后车辆
|
|
||||||
MogoObuConstants.V2X_WARNING_TYPE.LCW.toString() -> {
|
|
||||||
alertContent =
|
|
||||||
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_LCW.poiType)
|
|
||||||
ttsContent =
|
|
||||||
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_LCW.poiType)
|
|
||||||
if (
|
|
||||||
direction == WarningDirectionEnum.ALERT_WARNING_LEFT ||
|
|
||||||
direction == WarningDirectionEnum.ALERT_WARNING_TOP_LEFT ||
|
|
||||||
direction == WarningDirectionEnum.ALERT_WARNING_BOTTOM_LEFT
|
|
||||||
) {
|
|
||||||
ttsContent = String.format(ttsContent, "左")
|
|
||||||
alertContent = String.format(alertContent, "左")
|
|
||||||
} else if (
|
|
||||||
direction == WarningDirectionEnum.ALERT_WARNING_RIGHT ||
|
|
||||||
direction == WarningDirectionEnum.ALERT_WARNING_TOP_RIGHT ||
|
|
||||||
direction == WarningDirectionEnum.ALERT_WARNING_BOTTOM_RIGHT
|
|
||||||
) {
|
|
||||||
ttsContent = String.format(ttsContent, "右")
|
|
||||||
alertContent = String.format(alertContent, "右")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//逆向超车预警
|
|
||||||
MogoObuConstants.V2X_WARNING_TYPE.DNPW.toString() -> {
|
|
||||||
alertContent =
|
|
||||||
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_DNPW.poiType)
|
|
||||||
ttsContent =
|
|
||||||
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_DNPW.poiType)
|
|
||||||
}
|
|
||||||
|
|
||||||
//紧急制动预警
|
|
||||||
MogoObuConstants.V2X_WARNING_TYPE.EBW.toString() -> {
|
|
||||||
alertContent =
|
|
||||||
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_EBW.poiType)
|
|
||||||
ttsContent =
|
|
||||||
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_EBW.poiType)
|
|
||||||
}
|
|
||||||
|
|
||||||
//异常车辆提醒
|
|
||||||
MogoObuConstants.V2X_WARNING_TYPE.AVW.toString() -> {
|
|
||||||
alertContent =
|
|
||||||
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_AVW.poiType)
|
|
||||||
ttsContent =
|
|
||||||
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_AVW.poiType)
|
|
||||||
alertContent = String.format(alertContent, direction.desc)
|
|
||||||
ttsContent = String.format(ttsContent, direction.desc)
|
|
||||||
}
|
|
||||||
|
|
||||||
//车辆失控预警
|
|
||||||
MogoObuConstants.V2X_WARNING_TYPE.CLW.toString() -> {
|
|
||||||
alertContent =
|
|
||||||
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_CLW.poiType)
|
|
||||||
ttsContent =
|
|
||||||
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_CLW.poiType)
|
|
||||||
alertContent = String.format(alertContent, direction.desc)
|
|
||||||
ttsContent = String.format(ttsContent, direction.desc)
|
|
||||||
}
|
|
||||||
//车辆失控预警
|
|
||||||
MogoObuConstants.V2X_WARNING_TYPE.EVW.toString() -> {
|
|
||||||
alertContent =
|
|
||||||
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_EVW.poiType)
|
|
||||||
ttsContent =
|
|
||||||
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_EVW.poiType)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 这里处理固定的提示信息,包括了<紧急车辆提醒>
|
|
||||||
else -> { //TODO
|
|
||||||
// ttsContent = EventTypeEnumNew.getWarningTts(appId.toString())
|
|
||||||
// alertContent = EventTypeEnumNew.getWarningContent(appId.toString())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
when (status) {
|
/**
|
||||||
// 添加,更新 add的时候,可能级别是2,
|
* 构造对应展示数据和场景 根据obu的场景,add change delete确定是否展示
|
||||||
MogoObuConstants.STATUS.ADD,
|
*
|
||||||
MogoObuConstants.STATUS.UPDATE -> {
|
* @param appId 使用WarningTypeEnum获取icon、提示内容、tts内容 TODO 添加事件频繁播报拦截
|
||||||
CallerLogger.d(
|
*
|
||||||
"$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}",
|
* @see com.mogo.module.common.enums.EventTypeEnum
|
||||||
"new handleSdkObu appId2 = $appId --- level = $level ---ttsContent = $ttsContent --- alertContent = $alertContent --- direction = $direction"
|
*/
|
||||||
)
|
private fun handleSdkObu(
|
||||||
if (level == 2 || level == 3) {
|
appId: String,
|
||||||
//不显示弹框,其它保留
|
direction: WarningDirectionEnum,
|
||||||
CallerMsgBoxManager.saveMsgBox(
|
status: Int,
|
||||||
MsgBoxBean(
|
level: Int,
|
||||||
MsgBoxType.V2X,
|
info: MogoObuRvWarningData
|
||||||
V2XMsg(
|
) {
|
||||||
appId,
|
// 这里排除需要特殊定制的语音及文案外,其余的都可以使用 EventTypeEnumNew 提供的
|
||||||
alertContent,
|
var alertContent: String = ""
|
||||||
ttsContent
|
var ttsContent: String = ""
|
||||||
)
|
var changeVisualAngle = false
|
||||||
).apply {
|
when (appId) {
|
||||||
sourceType = DataSourceType.OBU
|
//交叉路口碰撞预警
|
||||||
}
|
MogoObuConstants.V2X_WARNING_TYPE.FCW.toString() -> {
|
||||||
)
|
alertContent =
|
||||||
CallerHmiManager.warningV2X(
|
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_FCW.poiType)
|
||||||
appId,
|
ttsContent =
|
||||||
alertContent,
|
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_FCW.poiType)
|
||||||
ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒
|
|
||||||
object : IMoGoWarningStatusListener {
|
|
||||||
override fun onShow() {
|
|
||||||
super.onShow()
|
|
||||||
if (changeVisualAngle) {
|
|
||||||
CallerVisualAngleManager.changeVisualAngle(TooClose)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onDismiss() {
|
|
||||||
// 关闭警告红边
|
|
||||||
CallerHmiManager.dismissWarning(WarningDirectionEnum.ALERT_WARNING_ALL)
|
|
||||||
if (changeVisualAngle) {
|
|
||||||
CallerVisualAngleManager.changeVisualAngle(Default())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
//显示警告红边
|
|
||||||
CallerHmiManager.showWarning(direction)
|
|
||||||
}
|
}
|
||||||
//更新周边车辆进行预警颜色变换,车辆实时移动和变色 ,UUID不需要匹配了
|
|
||||||
TrafficDataConvertUtilsNew.cvxV2vThreatIndInfo2TrafficData(info)?.let {
|
//交叉路口碰撞预警
|
||||||
CallerMapUIServiceManager.getMarkerService()
|
MogoObuConstants.V2X_WARNING_TYPE.ICW.toString() -> {
|
||||||
?.updateITrafficThreatLevelInfo(it)
|
alertContent =
|
||||||
|
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_ICW.poiType)
|
||||||
|
ttsContent =
|
||||||
|
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_ICW.poiType)
|
||||||
|
}
|
||||||
|
|
||||||
|
//左转辅助预警
|
||||||
|
MogoObuConstants.V2X_WARNING_TYPE.LTA.toString() -> {
|
||||||
|
alertContent =
|
||||||
|
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_LTA.poiType)
|
||||||
|
ttsContent =
|
||||||
|
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_LTA.poiType)
|
||||||
|
}
|
||||||
|
|
||||||
|
//盲区预警
|
||||||
|
MogoObuConstants.V2X_WARNING_TYPE.BSW.toString() -> {
|
||||||
|
ttsContent =
|
||||||
|
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_BSW.poiType)
|
||||||
|
alertContent =
|
||||||
|
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_BSW.poiType)
|
||||||
|
if (
|
||||||
|
direction == WarningDirectionEnum.ALERT_WARNING_LEFT ||
|
||||||
|
direction == WarningDirectionEnum.ALERT_WARNING_TOP_LEFT ||
|
||||||
|
direction == WarningDirectionEnum.ALERT_WARNING_BOTTOM_LEFT
|
||||||
|
) { //左后
|
||||||
|
changeVisualAngle = true
|
||||||
|
ttsContent = String.format(ttsContent, "左")
|
||||||
|
alertContent = String.format(alertContent, "左")
|
||||||
|
} else if (
|
||||||
|
direction == WarningDirectionEnum.ALERT_WARNING_RIGHT ||
|
||||||
|
direction == WarningDirectionEnum.ALERT_WARNING_TOP_RIGHT ||
|
||||||
|
direction == WarningDirectionEnum.ALERT_WARNING_BOTTOM_RIGHT
|
||||||
|
) { //右后
|
||||||
|
changeVisualAngle = true
|
||||||
|
ttsContent = String.format(ttsContent, "右")
|
||||||
|
alertContent = String.format(alertContent, "右")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 变道预警,注意左后车辆/注意右后车辆
|
||||||
|
MogoObuConstants.V2X_WARNING_TYPE.LCW.toString() -> {
|
||||||
|
alertContent =
|
||||||
|
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_LCW.poiType)
|
||||||
|
ttsContent =
|
||||||
|
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_LCW.poiType)
|
||||||
|
if (
|
||||||
|
direction == WarningDirectionEnum.ALERT_WARNING_LEFT ||
|
||||||
|
direction == WarningDirectionEnum.ALERT_WARNING_TOP_LEFT ||
|
||||||
|
direction == WarningDirectionEnum.ALERT_WARNING_BOTTOM_LEFT
|
||||||
|
) {
|
||||||
|
ttsContent = String.format(ttsContent, "左")
|
||||||
|
alertContent = String.format(alertContent, "左")
|
||||||
|
} else if (
|
||||||
|
direction == WarningDirectionEnum.ALERT_WARNING_RIGHT ||
|
||||||
|
direction == WarningDirectionEnum.ALERT_WARNING_TOP_RIGHT ||
|
||||||
|
direction == WarningDirectionEnum.ALERT_WARNING_BOTTOM_RIGHT
|
||||||
|
) {
|
||||||
|
ttsContent = String.format(ttsContent, "右")
|
||||||
|
alertContent = String.format(alertContent, "右")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//逆向超车预警
|
||||||
|
MogoObuConstants.V2X_WARNING_TYPE.DNPW.toString() -> {
|
||||||
|
alertContent =
|
||||||
|
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_DNPW.poiType)
|
||||||
|
ttsContent =
|
||||||
|
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_DNPW.poiType)
|
||||||
|
}
|
||||||
|
|
||||||
|
//紧急制动预警
|
||||||
|
MogoObuConstants.V2X_WARNING_TYPE.EBW.toString() -> {
|
||||||
|
alertContent =
|
||||||
|
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_EBW.poiType)
|
||||||
|
ttsContent =
|
||||||
|
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_EBW.poiType)
|
||||||
|
}
|
||||||
|
|
||||||
|
//异常车辆提醒
|
||||||
|
MogoObuConstants.V2X_WARNING_TYPE.AVW.toString() -> {
|
||||||
|
alertContent =
|
||||||
|
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_AVW.poiType)
|
||||||
|
ttsContent =
|
||||||
|
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_AVW.poiType)
|
||||||
|
alertContent = String.format(alertContent, direction.desc)
|
||||||
|
ttsContent = String.format(ttsContent, direction.desc)
|
||||||
|
}
|
||||||
|
|
||||||
|
//车辆失控预警
|
||||||
|
MogoObuConstants.V2X_WARNING_TYPE.CLW.toString() -> {
|
||||||
|
alertContent =
|
||||||
|
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_CLW.poiType)
|
||||||
|
ttsContent =
|
||||||
|
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_CLW.poiType)
|
||||||
|
alertContent = String.format(alertContent, direction.desc)
|
||||||
|
ttsContent = String.format(ttsContent, direction.desc)
|
||||||
|
}
|
||||||
|
//车辆失控预警
|
||||||
|
MogoObuConstants.V2X_WARNING_TYPE.EVW.toString() -> {
|
||||||
|
alertContent =
|
||||||
|
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_EVW.poiType)
|
||||||
|
ttsContent =
|
||||||
|
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_EVW.poiType)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 这里处理固定的提示信息,包括了<紧急车辆提醒>
|
||||||
|
else -> { //TODO
|
||||||
|
// ttsContent = EventTypeEnumNew.getWarningTts(appId.toString())
|
||||||
|
// alertContent = EventTypeEnumNew.getWarningContent(appId.toString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 删除
|
|
||||||
MogoObuConstants.STATUS.DELETE -> {
|
|
||||||
// 关闭警告红边
|
|
||||||
CallerHmiManager.showWarning(WarningDirectionEnum.ALERT_WARNING_NON)
|
|
||||||
// 移除顶部弹窗
|
|
||||||
// CallerHmiManager.disableWarningV2X((appId + direction.direction))
|
|
||||||
//更新周边车辆进行预警颜色变换,车辆实时移动和变色
|
|
||||||
TrafficDataConvertUtilsNew.cvxV2vThreatIndInfo2TrafficData(info)?.let {
|
|
||||||
it.threatLevel = 0x01
|
|
||||||
CallerMapUIServiceManager.getMarkerService()
|
|
||||||
?.updateITrafficThreatLevelInfo(it)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
when (status) {
|
||||||
* 处理红绿灯
|
// 添加,更新 add的时候,可能级别是2,
|
||||||
*/
|
MogoObuConstants.STATUS.ADD,
|
||||||
private fun handlerTrafficLight(appId: Int, status: Int, lights: List<SpatLight>) {
|
MogoObuConstants.STATUS.UPDATE -> {
|
||||||
CallerLogger.d(
|
|
||||||
"$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}",
|
|
||||||
"handlerTrafficLight --- status = $status ---lights.size = ${lights.size} ---lights = $lights ---appId = $appId"
|
|
||||||
)
|
|
||||||
when (status) {
|
|
||||||
// 添加
|
|
||||||
MogoObuConstants.STATUS.ADD,
|
|
||||||
MogoObuConstants.STATUS.UPDATE
|
|
||||||
-> {
|
|
||||||
if (lights != null && lights.isNotEmpty()) {
|
|
||||||
changeTrafficLightStatus(appId, lights)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 删除
|
|
||||||
MogoObuConstants.STATUS.DELETE -> {
|
|
||||||
// 移除顶部弹窗
|
|
||||||
CallerTrafficLightListenerManager.disableTrafficLight()
|
|
||||||
isShowGreenWave = false
|
|
||||||
isShowRunRedLight = false
|
|
||||||
isYellowLight = false
|
|
||||||
// lightCountDownRed = 1
|
|
||||||
// lightCountDownGreen = 1
|
|
||||||
// lightCountDownYellow = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private var isRedLight = false
|
|
||||||
private var isGreenLight = false
|
|
||||||
private var isYellowLight = false
|
|
||||||
private var isShowGreenWave = false
|
|
||||||
private var isShowRunRedLight = false
|
|
||||||
|
|
||||||
// private var lightCountDownRed : Int = 1
|
|
||||||
// private var lightCountDownGreen : Int = 1
|
|
||||||
// private var lightCountDownYellow : Int = 1
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改红绿灯
|
|
||||||
*/
|
|
||||||
@Synchronized
|
|
||||||
private fun changeTrafficLightStatus(
|
|
||||||
appId: Int,
|
|
||||||
lights: List<SpatLight>
|
|
||||||
) {
|
|
||||||
var ttsContent = ""
|
|
||||||
var alertContent = ""
|
|
||||||
//这里需要根据真实数据确定 index 取值方式
|
|
||||||
val currentLight = lights[0]
|
|
||||||
CallerLogger.d(
|
|
||||||
"$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}",
|
|
||||||
"changeTrafficLightStatus currentLight = $currentLight ----currentLight.light = ${currentLight.light} ---currentLight.phase = ${currentLight.phaseId} ---appId = $appId --countDown = ${currentLight.countDown.toInt()}"
|
|
||||||
)
|
|
||||||
// 闯红灯预警,绿波通行和闯红灯是互斥的
|
|
||||||
when (appId) {
|
|
||||||
0 -> {//不可用 V2I_RLVW_VIOLATION_TYPE_UNAVAILABLE 无效
|
|
||||||
|
|
||||||
}
|
|
||||||
1 -> {//闯红灯 V2I_RLVW_VIOLATION_TYPE_RUNNING_RED_LIGHT 一个红灯周期只显示一次
|
|
||||||
if (!isShowRunRedLight) {
|
|
||||||
isShowRunRedLight = true
|
|
||||||
CallerLogger.d(
|
CallerLogger.d(
|
||||||
"$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}",
|
"$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}",
|
||||||
"changeTrafficLightStatus 闯红灯 --------> "
|
"new handleSdkObu appId2 = $appId --- level = $level ---ttsContent = $ttsContent --- alertContent = $alertContent --- direction = $direction"
|
||||||
)
|
)
|
||||||
ttsContent =
|
if (level == 2 || level == 3) {
|
||||||
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType)
|
//不显示弹框,其它保留
|
||||||
alertContent =
|
|
||||||
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType)
|
|
||||||
CallerMsgBoxManager.saveMsgBox(
|
|
||||||
MsgBoxBean(
|
|
||||||
MsgBoxType.V2X,
|
|
||||||
V2XMsg(
|
|
||||||
EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType,
|
|
||||||
alertContent,
|
|
||||||
ttsContent
|
|
||||||
)
|
|
||||||
).apply {
|
|
||||||
sourceType = DataSourceType.OBU
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
CallerHmiManager.warningV2X(
|
|
||||||
EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType,
|
|
||||||
alertContent,
|
|
||||||
ttsContent// 只有第一次才tts,防止更新的时候不断的提醒
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
2 -> { //绿波通行引导 V2I_RLVW_VIOLATION_TYPE_NO_VIOLATION 一个绿灯周期只显示一次 100m的时候
|
|
||||||
if (!isShowGreenWave) {
|
|
||||||
isShowGreenWave = true
|
|
||||||
|
|
||||||
var minSpeedTemp = Math.round(currentLight.suggestMinSpeed * 3.6)
|
|
||||||
var maxSpeedTemp = Math.round(currentLight.suggestMaxSpeed * 3.6)
|
|
||||||
if (minSpeedTemp == maxSpeedTemp) {
|
|
||||||
minSpeedTemp -= 5
|
|
||||||
}
|
|
||||||
|
|
||||||
val adviceSpeed = "$minSpeedTemp - $maxSpeedTemp"
|
|
||||||
val adviceSpeedTts = "$minSpeedTemp 到 $maxSpeedTemp"
|
|
||||||
|
|
||||||
// val adviceSpeed =
|
|
||||||
// "${Math.round(currentLight.suggestMinSpeed*3.6)} - ${Math.round(currentLight.suggestMaxSpeed*3.6)}"
|
|
||||||
// val adviceSpeedTts =
|
|
||||||
// "${Math.round(currentLight.suggestMinSpeed*3.6)} 到 ${Math.round(currentLight.suggestMaxSpeed*3.6)}"
|
|
||||||
|
|
||||||
ttsContent =
|
|
||||||
String.format(
|
|
||||||
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType),
|
|
||||||
adviceSpeedTts
|
|
||||||
)
|
|
||||||
alertContent =
|
|
||||||
String.format(
|
|
||||||
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType),
|
|
||||||
adviceSpeed
|
|
||||||
)
|
|
||||||
|
|
||||||
val maxSpeed = currentLight.suggestMaxSpeed
|
|
||||||
if (maxSpeed > 0) {
|
|
||||||
CallerMsgBoxManager.saveMsgBox(
|
CallerMsgBoxManager.saveMsgBox(
|
||||||
MsgBoxBean(
|
MsgBoxBean(
|
||||||
MsgBoxType.V2X,
|
MsgBoxType.V2X,
|
||||||
V2XMsg(
|
V2XMsg(
|
||||||
EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType,
|
appId,
|
||||||
|
alertContent,
|
||||||
|
ttsContent
|
||||||
|
)
|
||||||
|
).apply {
|
||||||
|
sourceType = DataSourceType.OBU
|
||||||
|
}
|
||||||
|
)
|
||||||
|
CallerHmiManager.warningV2X(
|
||||||
|
appId,
|
||||||
|
alertContent,
|
||||||
|
ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒
|
||||||
|
object : IMoGoWarningStatusListener {
|
||||||
|
override fun onShow() {
|
||||||
|
super.onShow()
|
||||||
|
if (changeVisualAngle) {
|
||||||
|
CallerVisualAngleManager.changeVisualAngle(TooClose)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDismiss() {
|
||||||
|
// 关闭警告红边
|
||||||
|
CallerHmiManager.dismissWarning(WarningDirectionEnum.ALERT_WARNING_ALL)
|
||||||
|
if (changeVisualAngle) {
|
||||||
|
CallerVisualAngleManager.changeVisualAngle(Default())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
//显示警告红边
|
||||||
|
CallerHmiManager.showWarning(direction)
|
||||||
|
}
|
||||||
|
//更新周边车辆进行预警颜色变换,车辆实时移动和变色 ,UUID不需要匹配了
|
||||||
|
TrafficDataConvertUtilsNew.cvxV2vThreatIndInfo2TrafficData(info)?.let {
|
||||||
|
CallerMapUIServiceManager.getMarkerService()
|
||||||
|
?.updateITrafficThreatLevelInfo(it)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 删除
|
||||||
|
MogoObuConstants.STATUS.DELETE -> {
|
||||||
|
// 关闭警告红边
|
||||||
|
CallerHmiManager.showWarning(WarningDirectionEnum.ALERT_WARNING_NON)
|
||||||
|
// 移除顶部弹窗
|
||||||
|
// CallerHmiManager.disableWarningV2X((appId + direction.direction))
|
||||||
|
//更新周边车辆进行预警颜色变换,车辆实时移动和变色
|
||||||
|
TrafficDataConvertUtilsNew.cvxV2vThreatIndInfo2TrafficData(info)?.let {
|
||||||
|
it.threatLevel = 0x01
|
||||||
|
CallerMapUIServiceManager.getMarkerService()
|
||||||
|
?.updateITrafficThreatLevelInfo(it)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理红绿灯
|
||||||
|
*/
|
||||||
|
private fun handlerTrafficLight(appId: Int, status: Int, lights: List<SpatLight>) {
|
||||||
|
CallerLogger.d(
|
||||||
|
"$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}",
|
||||||
|
"handlerTrafficLight --- status = $status ---lights.size = ${lights.size} ---lights = $lights ---appId = $appId"
|
||||||
|
)
|
||||||
|
when (status) {
|
||||||
|
// 添加
|
||||||
|
MogoObuConstants.STATUS.ADD,
|
||||||
|
MogoObuConstants.STATUS.UPDATE
|
||||||
|
-> {
|
||||||
|
if (lights != null && lights.isNotEmpty()) {
|
||||||
|
changeTrafficLightStatus(appId, lights)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 删除
|
||||||
|
MogoObuConstants.STATUS.DELETE -> {
|
||||||
|
// 移除顶部弹窗
|
||||||
|
CallerTrafficLightListenerManager.disableTrafficLight()
|
||||||
|
isShowGreenWave = false
|
||||||
|
isShowRunRedLight = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private var isYellowLight = false
|
||||||
|
private var isShowGreenWave = false
|
||||||
|
private var isShowRunRedLight = false
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改红绿灯
|
||||||
|
*/
|
||||||
|
@Synchronized
|
||||||
|
private fun changeTrafficLightStatus(
|
||||||
|
appId: Int,
|
||||||
|
lights: List<SpatLight>
|
||||||
|
) {
|
||||||
|
var ttsContent = ""
|
||||||
|
var alertContent = ""
|
||||||
|
//这里需要根据真实数据确定 index 取值方式
|
||||||
|
val currentLight = lights[0]
|
||||||
|
CallerLogger.d(
|
||||||
|
"$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}",
|
||||||
|
"changeTrafficLightStatus currentLight = $currentLight ----currentLight.light = ${currentLight.light} ---currentLight.phase = ${currentLight.phaseId} ---appId = $appId --countDown = ${currentLight.countDown.toInt()}"
|
||||||
|
)
|
||||||
|
// 闯红灯预警,绿波通行和闯红灯是互斥的
|
||||||
|
when (appId) {
|
||||||
|
0 -> {//不可用 V2I_RLVW_VIOLATION_TYPE_UNAVAILABLE 无效
|
||||||
|
|
||||||
|
}
|
||||||
|
1 -> {//闯红灯 V2I_RLVW_VIOLATION_TYPE_RUNNING_RED_LIGHT 一个红灯周期只显示一次
|
||||||
|
if (!isShowRunRedLight) {
|
||||||
|
isShowRunRedLight = true
|
||||||
|
CallerLogger.d(
|
||||||
|
"$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}",
|
||||||
|
"changeTrafficLightStatus 闯红灯 --------> "
|
||||||
|
)
|
||||||
|
ttsContent =
|
||||||
|
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType)
|
||||||
|
alertContent =
|
||||||
|
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType)
|
||||||
|
CallerMsgBoxManager.saveMsgBox(
|
||||||
|
MsgBoxBean(
|
||||||
|
MsgBoxType.V2X,
|
||||||
|
V2XMsg(
|
||||||
|
EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType,
|
||||||
alertContent,
|
alertContent,
|
||||||
ttsContent
|
ttsContent
|
||||||
)
|
)
|
||||||
@@ -1020,51 +960,80 @@ private fun changeTrafficLightStatus(
|
|||||||
)
|
)
|
||||||
|
|
||||||
CallerHmiManager.warningV2X(
|
CallerHmiManager.warningV2X(
|
||||||
EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType,
|
EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType,
|
||||||
alertContent,
|
alertContent,
|
||||||
ttsContent// 只有第一次才tts,防止更新的时候不断的提醒
|
ttsContent// 只有第一次才tts,防止更新的时候不断的提醒
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2 -> { //绿波通行引导 V2I_RLVW_VIOLATION_TYPE_NO_VIOLATION 一个绿灯周期只显示一次 100m的时候
|
||||||
|
if (!isShowGreenWave) {
|
||||||
|
isShowGreenWave = true
|
||||||
|
|
||||||
|
var minSpeedTemp = Math.round(currentLight.suggestMinSpeed * 3.6)
|
||||||
|
var maxSpeedTemp = Math.round(currentLight.suggestMaxSpeed * 3.6)
|
||||||
|
if (minSpeedTemp == maxSpeedTemp) {
|
||||||
|
minSpeedTemp -= 5
|
||||||
|
}
|
||||||
|
|
||||||
|
val adviceSpeed = "$minSpeedTemp - $maxSpeedTemp"
|
||||||
|
val adviceSpeedTts = "$minSpeedTemp 到 $maxSpeedTemp"
|
||||||
|
|
||||||
|
ttsContent =
|
||||||
|
String.format(
|
||||||
|
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType),
|
||||||
|
adviceSpeedTts
|
||||||
|
)
|
||||||
|
alertContent =
|
||||||
|
String.format(
|
||||||
|
EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType),
|
||||||
|
adviceSpeed
|
||||||
|
)
|
||||||
|
|
||||||
|
val maxSpeed = currentLight.suggestMaxSpeed
|
||||||
|
if (maxSpeed > 0) {
|
||||||
|
CallerMsgBoxManager.saveMsgBox(
|
||||||
|
MsgBoxBean(
|
||||||
|
MsgBoxType.V2X,
|
||||||
|
V2XMsg(
|
||||||
|
EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType,
|
||||||
|
alertContent,
|
||||||
|
ttsContent
|
||||||
|
)
|
||||||
|
).apply {
|
||||||
|
sourceType = DataSourceType.OBU
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
CallerHmiManager.warningV2X(
|
||||||
|
EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType,
|
||||||
|
alertContent,
|
||||||
|
ttsContent// 只有第一次才tts,防止更新的时候不断的提醒
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
when (currentLight.light) {
|
||||||
|
// 灯光不可用
|
||||||
|
0 -> {
|
||||||
|
CallerTrafficLightListenerManager.invokeObuTrafficLightStatus(TrafficLightEnum.BLACK)
|
||||||
|
}
|
||||||
|
// 红灯
|
||||||
|
2, 3 -> {
|
||||||
|
CallerTrafficLightListenerManager.invokeObuTrafficLightStatus(TrafficLightEnum.RED)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 绿灯
|
||||||
|
4, 5, 6 -> {
|
||||||
|
CallerTrafficLightListenerManager.invokeObuTrafficLightStatus(TrafficLightEnum.GREEN)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 黄灯
|
||||||
|
7, 8 -> {
|
||||||
|
CallerTrafficLightListenerManager.invokeObuTrafficLightStatus(TrafficLightEnum.YELLOW)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
when (currentLight.light) {
|
|
||||||
// 灯光不可用
|
|
||||||
0 -> {
|
|
||||||
CallerTrafficLightListenerManager.invokeObuTrafficLightStatus(TrafficLightEnum.BLACK)
|
|
||||||
}
|
|
||||||
// 红灯
|
|
||||||
2, 3 -> {
|
|
||||||
if (!isRedLight) { //todo 小鹏
|
|
||||||
isRedLight = true
|
|
||||||
}
|
|
||||||
isGreenLight = false
|
|
||||||
isYellowLight = false
|
|
||||||
CallerTrafficLightListenerManager.invokeObuTrafficLightStatus(TrafficLightEnum.RED)
|
|
||||||
val red = currentLight.countDown.toInt()
|
|
||||||
}
|
|
||||||
|
|
||||||
// 绿灯
|
|
||||||
4, 5, 6 -> { //todo 小鹏
|
|
||||||
if (!isGreenLight) {
|
|
||||||
isGreenLight = true
|
|
||||||
}
|
|
||||||
isRedLight = false
|
|
||||||
isYellowLight = false
|
|
||||||
CallerTrafficLightListenerManager.invokeObuTrafficLightStatus(TrafficLightEnum.GREEN)
|
|
||||||
val green = currentLight.countDown.toInt()
|
|
||||||
}
|
|
||||||
|
|
||||||
// 黄灯
|
|
||||||
7, 8 -> {
|
|
||||||
if (!isYellowLight) {
|
|
||||||
isYellowLight = true
|
|
||||||
}
|
|
||||||
isRedLight = false
|
|
||||||
isGreenLight = false
|
|
||||||
CallerTrafficLightListenerManager.invokeObuTrafficLightStatus(TrafficLightEnum.YELLOW)
|
|
||||||
val yellow = currentLight.countDown.toInt()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user