diff --git a/modules/mogo-module-obu-mogo/src/main/AndroidManifest.xml b/modules/mogo-module-obu-mogo/src/main/AndroidManifest.xml
index b43b74fa98..a368667a0d 100644
--- a/modules/mogo-module-obu-mogo/src/main/AndroidManifest.xml
+++ b/modules/mogo-module-obu-mogo/src/main/AndroidManifest.xml
@@ -18,5 +18,14 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoObuConst.java b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoObuConst.java
index e68dcd1ad8..bad9ce5b9b 100644
--- a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoObuConst.java
+++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoObuConst.java
@@ -19,5 +19,8 @@ public class MogoObuConst {
public static String BROADCAST_OBU_STATES_EXTRA_KEY = "obuStates";
// 场景预警等级,2-弹窗,3-弹窗+tts+地图绘制
public static String BROADCAST_OBU_LEVEL_EXTRA_KEY = "obuLevel";
+ //红绿灯标识 0:不可用,1:红灯,2:绿灯,3:黄灯
+ public static String BROADCAST_LIGHT_LEVEL_EXTRA_KEY = "lightLevel";
+
}
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 e0599c9fd9..c561b82c8a 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
@@ -175,7 +175,7 @@ class MogoPrivateObuManager private constructor() {
override fun onCvxIvpThreatIndInfo(info: CvxIvpThreatIndInfo?) {
Logger.d(MogoObuConst.TAG_MOGO_OBU, "CvxIvpThreatIndInfo ------> $info")
info?.let {
- handlerTrafficLight(info.status, info.ext_info.lights)
+ handlerTrafficLight(info.status, info.ext_info.lights, info.threat_info.app_id)
}
}
@@ -183,7 +183,7 @@ class MogoPrivateObuManager private constructor() {
override fun onCvxMapSpatInfoIndInfo(info: CvxMapSpatInfoIndInfo?) {
Logger.d(MogoObuConst.TAG_MOGO_OBU, "onCvxMapSpatInfoIndInfo ------> $info")
info?.let {
- handlerTrafficLight(info.status, info.ivp_threat_ext.lights)
+// handlerTrafficLight(info.status, info.ivp_threat_ext.lights)
}
}
@@ -296,7 +296,10 @@ class MogoPrivateObuManager private constructor() {
/**
* 处理红绿灯
*/
- private fun handlerTrafficLight(status: Int, lights: List) {
+ private fun handlerTrafficLight(status: Int, lights: List, appId: Int) {
+ var alertContent = ""
+ var ttsContent = ""
+
when (status) {
// 添加
ObuConstants.STATUS.ADD -> {
@@ -309,6 +312,14 @@ class MogoPrivateObuManager private constructor() {
// 红灯
0x1 -> {
mIMoGoWaringProvider?.showWarningTrafficLight(1)
+ ttsContent = WarningTypeEnum.getWarningTts(appId)
+ alertContent = WarningTypeEnum.getWarningContent(appId)
+ mIMoGoWaringProvider!!.showWarningV2X(
+ appId,
+ alertContent,
+ ttsContent,
+ appId.toString()
+ )
}
// 绿灯
0x2 -> {
@@ -321,9 +332,12 @@ class MogoPrivateObuManager private constructor() {
}
}
}
+
// 删除
ObuConstants.STATUS.DELETE -> {
mIMoGoWaringProvider?.disableWarningTrafficLight()
+ // 移除顶部弹窗
+ mIMoGoWaringProvider?.disableWarningV2X(appId.toString())
}
else -> {
}
@@ -405,22 +419,6 @@ class MogoPrivateObuManager private constructor() {
alertContent = WarningTypeEnum.getWarningContent(appId)
}
- // 弱势交通参与者碰撞预警,行人/摩托车碰撞预警 TODO
- WarningTypeEnum.TYPE_USECASE_ID_VRUCW.useCaseId -> {
-
- }
-
- //限速预警 TODO
- WarningTypeEnum.TYPE_USECASE_ID_SLW.useCaseId -> {
- ttsContent = WarningTypeEnum.getWarningTts(appId)
- alertContent = WarningTypeEnum.getWarningContent(appId)
- 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(appId)
@@ -428,18 +426,6 @@ class MogoPrivateObuManager private constructor() {
alertContent = WarningTypeEnum.getWarningContent(appId)
}
- //闯红灯预警,应该是红灯。其他灯的时候 TODO
- WarningTypeEnum.TYPE_USECASE_ID_IVP.useCaseId -> {
- ttsContent = WarningTypeEnum.getWarningTts(appId)
- alertContent = WarningTypeEnum.getWarningContent(appId)
-
- if (status == ObuConstants.STATUS.ADD) {
- mIMoGoWaringProvider!!.showWarningTrafficLight(0)
- } else if (status == ObuConstants.STATUS.DELETE) {
- mIMoGoWaringProvider!!.disableWarningTrafficLight() //关闭交通灯
- }
- }
-
// 这里处理固定的提示信息
else -> {
ttsContent = WarningTypeEnum.getWarningTts(appId)
@@ -483,4 +469,6 @@ class MogoPrivateObuManager private constructor() {
}
}
}
+
+
}
\ No newline at end of file
diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/receiver/ObuRsuTestTriggerReceiver.kt b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/receiver/ObuRsuTestTriggerReceiver.kt
new file mode 100644
index 0000000000..e4d67a2b9a
--- /dev/null
+++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/receiver/ObuRsuTestTriggerReceiver.kt
@@ -0,0 +1,81 @@
+package com.mogo.module.obu.mogo.receiver
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.util.Log
+import com.mogo.module.obu.mogo.MogoObuConst
+import com.mogo.module.obu.mogo.MogoPrivateObuManager
+import com.mogo.utils.logger.Logger
+import com.zhidao.support.obu.constants.ObuConstants
+import com.zhidao.support.obu.model.CvxIvpThreatIndInfo
+import com.zhidao.support.obu.model.CvxSlwThreatIndInfo
+import com.zhidao.support.obu.model.advance.*
+
+
+/**
+ * @author lixiaopeng
+ * @date 2021/8/18
+ *
+ * OBU 测试使用
+ * 红绿灯
+ */
+class ObuRsuTestTriggerReceiver : BroadcastReceiver() {
+ private var mContext: Context? = null
+
+ companion object {
+ private const val TAG = "ObuRsuTestTriggerReceiver"
+ }
+
+ override fun onReceive(context: Context, intent: Intent) {
+ mContext = context
+
+ val obuType = intent.getIntExtra(MogoObuConst.BROADCAST_OBU_TYPE_EXTRA_KEY, 0)
+ val obuStatus = intent.getIntExtra(MogoObuConst.BROADCAST_OBU_STATES_EXTRA_KEY, 0)
+ val obuLevel = intent.getIntExtra(MogoObuConst.BROADCAST_OBU_LEVEL_EXTRA_KEY, 3)
+ val phase = intent.getIntExtra(MogoObuConst.BROADCAST_LIGHT_LEVEL_EXTRA_KEY, 0)
+
+ Logger.d(
+ TAG, "obuStatus:$obuStatus phase:$phase obuType:$obuType obuLevel:$obuLevel"
+ )
+
+ when (obuType) {
+ ObuConstants.USE_CASE_ID.IVP -> { //构建红绿灯数据
+ var cvxIvpThreatIndInfo = CvxIvpThreatIndInfo(1, 1, 1L)
+
+ val ivpThreat = IvpThreat(1, obuType, null, 1000, obuLevel, 100)
+
+ cvxIvpThreatIndInfo.threat_info = ivpThreat
+
+ val lightList = listOf(Light(1, phase, 1000, 100, 100, 1, 100, 1000))
+ val ivpThreatExt = IvpThreatExt(1, 1000, 1000, 0, 2, lightList)
+ cvxIvpThreatIndInfo.ext_info = ivpThreatExt
+ cvxIvpThreatIndInfo.status = obuStatus
+ cvxIvpThreatIndInfo.link_id = "1"
+
+ MogoPrivateObuManager.INSTANCE.getMogoObuListener()
+ .onCvxIvpThreatIndInfo(cvxIvpThreatIndInfo)
+ }
+
+ ObuConstants.USE_CASE_ID.SLW -> { //限速预警
+ val cvxSlwThreatIndInfo = CvxSlwThreatIndInfo(1, 1, 1L)
+ val slwThreatExt = SlwThreatExt(1, 2, 6000, 2000)
+
+ cvxSlwThreatIndInfo.ext_info = slwThreatExt
+ cvxSlwThreatIndInfo.status = obuStatus
+
+ MogoPrivateObuManager.INSTANCE.getMogoObuListener().onCvxSlwThreatIndInfo(cvxSlwThreatIndInfo)
+ }
+
+ //弱势交通参与者碰撞预警,行人/摩托车碰撞预警
+ ObuConstants.USE_CASE_ID.VRUCW -> {
+
+ }
+
+
+
+ }
+
+ }
+
+}