diff --git a/.idea/misc.xml b/.idea/misc.xml index 3bbf4cb770..2d8d39b655 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -32,7 +32,7 @@ - + diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/enum/WarningTypeEnum.kt b/modules/mogo-module-common/src/main/java/com/mogo/module/common/enum/WarningTypeEnum.kt index eca26a883b..a068e0bcbf 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/enum/WarningTypeEnum.kt +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/enum/WarningTypeEnum.kt @@ -44,7 +44,7 @@ enum class WarningTypeEnum( ObuConstants.USE_CASE_ID.CLW, "车辆失控预警", "前车失控预警", - "前车失控预警", + "%s前车失控预警", R.drawable.icon_warning_v2x_vehicle_control ), TYPE_USECASE_ID_DNPW( @@ -58,14 +58,14 @@ enum class WarningTypeEnum( ObuConstants.USE_CASE_ID.AVW, "异常车辆提醒", "前车异常", - "前车异常", + "%s前车辆异常", R.drawable.icon_warning_v2x_abnormal_vehicle ), TYPE_USECASE_ID_BSW( ObuConstants.USE_CASE_ID.BSW, "盲区预警", "盲区碰撞预警", - "", + "注意%s后车辆", R.drawable.icon_warning_v2x_blind_area_collision ), TYPE_USECASE_ID_LCW( diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt index d2fa10c0fe..cf14927c07 100644 --- a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt +++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt @@ -1,12 +1,14 @@ package com.mogo.module.obu.mogo import android.content.Context +import android.util.Log import com.alibaba.android.arouter.launcher.ARouter import com.mogo.module.common.enum.WarningTypeEnum import com.mogo.module.obu.mogo.map.ObuRecognizedResultDrawer import com.mogo.service.IMogoServiceApis import com.mogo.service.MogoServicePaths import com.mogo.service.warning.IMoGoWaringProvider +import com.mogo.utils.UiThreadHandler import com.mogo.utils.logger.Logger import com.zhidao.support.obu.MogoObuManager import com.zhidao.support.obu.OnMogoObuListener @@ -48,13 +50,6 @@ class MogoPrivateObuManager private constructor() { MogoObuManager.getInstance().connect(context, "192.168.1.199") MogoObuManager.getInstance().registerListener(mogoObuListener) - //TODO 测试 -// UiThreadHandler.postDelayed({ -//// MogoObuManager.getInstance().test(icw_data) -// handleSdkObu(107, 2) -// mMogoServiceApis!!.v2XListenerManager.warningChangedForListenerWithDirection(1, "ACTION_V2X_FRONT_WARNING") -// -// }, 5000L) } private val mogoObuListener: OnMogoObuListener = object : OnMogoObuListener() { @@ -117,6 +112,22 @@ class MogoPrivateObuManager private constructor() { mObuRecognizedResultDrawer?.addCvxRvInfoIndInfo(info) } + //车与其他,obu与rsu + override fun onCvxRtiThreatIndInfo(info: CvxRtiThreatIndInfo) { + Logger.d(MogoObuConst.TAG_MOGO_OBU, "onCvxRtiThreatIndInfo ------> $info") + //拥堵 + + //车内标盘 + + //道路危险 + + } + + //红绿灯 + override fun onCvxIvpThreatIndInfo(info: CvxIvpThreatIndInfo?) { + Logger.d(MogoObuConst.TAG_MOGO_OBU, "CvxIvpThreatIndInfo ------> $info") + } + // 弱势交通预警 override fun onCvxPtcInfoIndInfo(info: CvxPtcInfoIndInfo?) { super.onCvxPtcInfoIndInfo(info) @@ -258,7 +269,7 @@ class MogoPrivateObuManager private constructor() { private fun handleSdkObu(useCaseId: Int, level: Int, direction: Int, status: Int) { var alertContent = "" var ttsContent = "" - + Log.d(MogoObuConst.TAG_MOGO_OBU, "useCaseId = $ " + useCaseId) // TODO 这里排除需要特殊定制的语音及文案外,其余的都可以使用 WarningTypeEnum 提供的 when (useCaseId) { // 变道预警,注意左后车辆/注意右后车辆 @@ -269,18 +280,86 @@ class MogoPrivateObuManager private constructor() { } else if (direction == 4) else { ttsContent = String.format(ttsContent, "右") } + alertContent = WarningTypeEnum.getWarningContent(useCaseId) } + + //车辆失控预警 + WarningTypeEnum.TYPE_USECASE_ID_CLW.useCaseId -> { + ttsContent = WarningTypeEnum.getWarningTts(useCaseId) + + if (direction == 1) { //左前 + ttsContent = String.format(ttsContent, "左") + } else if (direction == 3) { //右前 + ttsContent = String.format(ttsContent, "右") + } else if (direction == 5) { //正前 + ttsContent = "前车失控预警" + } + alertContent = WarningTypeEnum.getWarningContent(useCaseId) + } + + //异常车辆提醒 + WarningTypeEnum.TYPE_USECASE_ID_AVW.useCaseId -> { + ttsContent = WarningTypeEnum.getWarningTts(useCaseId) + if (direction == 1) { //左前 + ttsContent = String.format(ttsContent, "左") + } else if (direction == 3) { //右前 + ttsContent = String.format(ttsContent, "右") + } else if (direction == 5) { //正前 + ttsContent = "前车异常" + } + alertContent = WarningTypeEnum.getWarningContent(useCaseId) + } + + //盲区预警 + WarningTypeEnum.TYPE_USECASE_ID_BSW.useCaseId -> { + ttsContent = WarningTypeEnum.getWarningTts(useCaseId) + if (direction == 2) { + ttsContent = String.format(ttsContent, "左") + } else if (direction == 4) else { + ttsContent = String.format(ttsContent, "右") + } + alertContent = WarningTypeEnum.getWarningContent(useCaseId) + } + // 弱势交通参与者碰撞预警,行人/摩托车碰撞预警 TODO WarningTypeEnum.TYPE_USECASE_ID_VRUCW.useCaseId -> { } + + //限速预警 TODO + WarningTypeEnum.TYPE_USECASE_ID_SLW.useCaseId -> { + ttsContent = WarningTypeEnum.getWarningTts(useCaseId) + alertContent = WarningTypeEnum.getWarningContent(useCaseId) + if (status == ObuConstants.STATUS.ADD) { + mIMoGoWaringProvider!!.showLimitingVelocity(0) + } else if (status == ObuConstants.STATUS.DELETE) { + mIMoGoWaringProvider!!.disableLimitingVelocity() + } + } + // 前方拥堵提醒,前方XXX米道路拥堵,请减速慢行 TODO WarningTypeEnum.TYPE_USECASE_ID_TJW.useCaseId -> { - + ttsContent = WarningTypeEnum.getWarningTts(useCaseId) +// ttsContent = String.format(ttsContent, "") + alertContent = WarningTypeEnum.getWarningContent(useCaseId) } + + //闯红灯预警,应该是红灯。其他灯的时候 TODO + WarningTypeEnum.TYPE_USECASE_ID_IVP.useCaseId -> { + ttsContent = WarningTypeEnum.getWarningTts(useCaseId) + alertContent = WarningTypeEnum.getWarningContent(useCaseId) + + if (status == ObuConstants.STATUS.ADD) { + mIMoGoWaringProvider!!.showWarningTrafficLight(0) + } else if (status == ObuConstants.STATUS.DELETE) { + mIMoGoWaringProvider!!.disableWarningTrafficLight() //关闭交通灯 + } + } + // 这里处理固定的提示信息 else -> { ttsContent = WarningTypeEnum.getWarningTts(useCaseId) + alertContent = WarningTypeEnum.getWarningContent(useCaseId) } } @@ -296,71 +375,6 @@ class MogoPrivateObuManager private constructor() { mIMoGoWaringProvider!!.disableWarningV2X(useCaseId.toString()) } - -// if (type == WarningTypeEnum.TYPE_USECASE_ID_ICW.useCaseId) { //交叉路口碰撞预警 -// alertContent = MogoObuConst.TYPE_CROSS_COLLISION_WARNING_TEXT -// ttsContent = MogoObuConst.TYPE_CROSS_COLLISION_WARNING_VOICE_TEXT -// } else if (type == MogoObuConst.TYPE_URGENCY_COLLISION_WARNING) { // 前车紧急制动预警 -// alertContent = MogoObuConst.TYPE_URGENCY_COLLISION_WARNING_TEXT -// ttsContent = MogoObuConst.TYPE_URGENCY_COLLISION_WARNING_VOICE_TEXT -// } else if (type == MogoObuConst.TYPE_FRONT_COLLISION_WARNING) { //前车碰撞预警 -// alertContent = MogoObuConst.TYPE_FRONT_COLLISION_WARNING_TEXT -// ttsContent = MogoObuConst.TYPE_FRONT_COLLISION_WARNING_VOICE_TEXT -// } else if (type == MogoObuConst.TYPE_TURN_LEFT_WARN) { //左转辅助 -// alertContent = MogoObuConst.TYPE_TURN_LEFT_WARN_TEXT -// ttsContent = MogoObuConst.TYPE_TURN_LEFT_WARN_VOICE_TEXT -// } else if (type == MogoObuConst.TYPE_BLIND_ASSIST_WARN) { //盲区预警/变道预警 -// alertContent = MogoObuConst.TYPE_BLIND_ASSIST_WARN_TEXT -// if (directe == 2) { -// ttsContent = MogoObuConst.TYPE_BLIND_ASSIST_WARN_VOICE_LEFT_TEXT -// } else if (directe == 4) { -// ttsContent = MogoObuConst.TYPE_BLIND_ASSIST_WARN_VOICE_RIGHT_TEXT -// } -// } else if (type == MogoObuConst.TYPE_REVERSE_OVERTAKING_WARN) { //逆向超车预警 -// alertContent = MogoObuConst.TYPE_REVERSE_OVERTAKING_WARN_TEXT -// ttsContent = MogoObuConst.TYPE_REVERSE_OVERTAKING_WARN_VOICE_TEXT -// } else if (type == MogoObuConst.TYPE_UNUSUAL_CAR_WARN) { //异常车辆预警 -// alertContent = MogoObuConst.TYPE_UNUSUAL_CAR_WARN_TEXT -// if (directe == 1) { -// ttsContent = MogoObuConst.TYPE_UNUSUAL_CAR_WARN_VOICE_LEFT_TEXT -// } else if (directe == 3) { -// ttsContent = MogoObuConst.TYPE_UNUSUAL_CAR_WARN_VOICE_RIGHT_TEXT -// } else if (directe == 5) { -// ttsContent = MogoObuConst.TYPE_UNUSUAL_CAR_WARN_VOICE_TEXT -// } -// } else if (type == MogoObuConst.TYPE_CAR_OUT_OF_CONTROL_WARN) { //前车失控预警 -// alertContent = MogoObuConst.TYPE_CAR_OUT_OF_CONTROL_WARN_TEXT -// if (directe == 1) { -// ttsContent = MogoObuConst.TYPE_CAR_OUT_OF_CONTROL_WARN_VOICE_LEFT_TEXT -// } else if (directe == 3) { -// ttsContent = MogoObuConst.TYPE_CAR_OUT_OF_CONTROL_WARN_VOICE_RIGHT_TEXT -// } else if (directe == 5) { -// ttsContent = MogoObuConst.TYPE_CAR_OUT_OF_CONTROL_WARN_VOICE_TEXT -// } -// } else if (type == MogoObuConst.TYPE_LIMIT_SPEED_WARN) { //限速预警 -// alertContent = MogoObuConst.TYPE_LIMIT_SPEED_WARN_TEXT -// ttsContent = MogoObuConst.TYPE_LIMIT_SPEED_WARN_VOICE_TEXT -// } else if (type == MogoObuConst.TYPE_UNUSUAL_ROAD_WARN) { //道路危险情况预警 -// alertContent = MogoObuConst.TYPE_UNUSUAL_ROAD_WARN_TEXT -// ttsContent = MogoObuConst.TYPE_UNUSUAL_ROAD_WARN_VOICE_TEXT -// } else if (type == MogoObuConst.TYPE_BLOCK_WARN) { //前方拥堵提醒 TODO -// alertContent = MogoObuConst.TYPE_BLOCK_WARN_TEXT -// ttsContent = MogoObuConst.TYPE_BLOCK_WARN_VOICE_TEXT -// } else if (type == MogoObuConst.TYPE_PRESSING_CAR_WARN) { //紧急车辆预警 -// alertContent = MogoObuConst.TYPE_PRESSING_CAR_WARN_TEXT -// ttsContent = MogoObuConst.TYPE_PRESSING_CAR_WARN_VOICE_TEXT -// } else if (type == MogoObuConst.TYPE_TRAFFIC_SIGN_INFO) { //交通标牌 TODO -// -// } else if (type == MogoObuConst.TYPE_ROAD_USER_COLLISION_WARNING) { //弱势交通群体 TODO -// -// } else if (type == MogoObuConst.TYPE_OPTIMAL_SPEED_ADVISORY) { //绿波车速引导 TODO -// alertContent = "" -// ttsContent = "" -// } else if (type == MogoObuConst.TYPE_RUSH_RED_LIGHT) { //闯红灯预警 TODO -// alertContent = MogoObuConst.TYPE_RUSH_RED_LIGHT_TEXT -// ttsContent = MogoObuConst.TYPE_RUSH_RED_LIGHT_VOICE_TEXT -// } - } } \ No newline at end of file