Merge remote-tracking branch 'origin/feature/feature_mogo_obu' into feature/feature_mogo_obu

This commit is contained in:
董宏宇
2021-08-10 16:56:08 +08:00
3 changed files with 93 additions and 79 deletions

2
.idea/misc.xml generated
View File

@@ -32,7 +32,7 @@
</map>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="Embedded JDK" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="Embedded JDK" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="VisualizationToolProject">

View File

@@ -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(

View File

@@ -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)
@@ -197,7 +208,7 @@ class MogoPrivateObuManager private constructor() {
info?.let {
//预警信息,预警类型 threat_level 3
if (info.threat_info != null) {
if (info.threat_info.threat_level == 3) {
if (info.threat_info.threat_level > 1) {
//预警方位
val direction = info.ext_info.target_classification
@@ -269,7 +280,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) {
// 变道预警,注意左后车辆/注意右后车辆
@@ -280,18 +291,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)
}
}
@@ -307,71 +386,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
// }
}
}