From c7030efa0bc558ceafacfe55b154e71612ed360f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 11 Aug 2021 14:42:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0OBU=E8=87=AA=E6=B5=8B?= =?UTF-8?q?=E5=B9=BF=E6=92=AD=E5=8F=8A=E6=B5=8B=E8=AF=95=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 +- .../src/main/AndroidManifest.xml | 10 ++ .../mogo/module/obu/mogo/MoGoObuProvider.kt | 5 +- .../mogo/module/obu/mogo/MogoObuConst.java | 120 +----------------- .../module/obu/mogo/MogoPrivateObuManager.kt | 15 ++- .../obu/mogo/map/ObuRecognizedResultDrawer.kt | 4 +- .../mogo/receiver/ObuTestTriggerReceiver.kt | 74 +++++++++++ 7 files changed, 110 insertions(+), 125 deletions(-) create mode 100644 modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/receiver/ObuTestTriggerReceiver.kt diff --git a/README.md b/README.md index 1317da39a7..352d6eb8f6 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,10 @@ adb shell am broadcast -a com.hmi.v2x.trafficlight --ez trafficLightIsShow false adb shell am broadcast -a com.hmi.v2x.limitingvelocity --ez limitingVelocityIsShow true --ei limitingVelocitySpeed 60 adb shell am broadcast -a com.hmi.v2x.limitingvelocity --ez limitingVelocityIsShow false +// 控制OBU场景自测 +adb shell am broadcast -a com.obu.test_trigger --ei obuType 0x2A01 --ei obuStates 1 + + // (旧版本)使用命令行触发各种测试场景演示 adb shell am broadcast -a com.v2x.test_panel_control --ei sceneType 1 @@ -34,4 +38,5 @@ adb shell am broadcast -a com.v2x.adas_data_broadcast --es ADASData right adb shell am broadcast -a com.mogo.mock --ei oper 46 // 小智语音 -adb shell am broadcast -a com.zhidao.auto.txz.receiver --es text "欢迎乘坐’蘑菇车联‘无人驾驶小巴车" --ei speakType 5 \ No newline at end of file +adb shell am broadcast -a com.zhidao.auto.txz.receiver --es text "欢迎乘坐’蘑菇车联‘无人驾驶小巴车" --ei speakType 5 + diff --git a/modules/mogo-module-obu-mogo/src/main/AndroidManifest.xml b/modules/mogo-module-obu-mogo/src/main/AndroidManifest.xml index 838a9d6c27..053183effc 100644 --- a/modules/mogo-module-obu-mogo/src/main/AndroidManifest.xml +++ b/modules/mogo-module-obu-mogo/src/main/AndroidManifest.xml @@ -2,4 +2,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MoGoObuProvider.kt b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MoGoObuProvider.kt index 2c1d4f7698..a42f3f5d0e 100644 --- a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MoGoObuProvider.kt +++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MoGoObuProvider.kt @@ -2,8 +2,6 @@ package com.mogo.module.obu.mogo import android.content.Context import com.alibaba.android.arouter.facade.annotation.Route -import com.mogo.module.obu.mogo.MogoPrivateObuManager.Companion.INSTANCE -import com.mogo.module.obu.mogo.map.ObuRecognizedResultDrawer import com.mogo.service.MogoServicePaths import com.mogo.service.obu.IMoGoObuProvider import com.mogo.utils.logger.Logger @@ -18,7 +16,6 @@ class MoGoObuProvider : IMoGoObuProvider { override fun init(context: Context) { Logger.d(MogoObuConst.TAG_MOGO_OBU, "初始化蘑菇自研OBU……") - // MogoPrivateObuManager.getInstance().init(context); - INSTANCE.init(context) + MogoPrivateObuManager.INSTANCE.init(context) } } \ 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 29c59a4189..cb0f4f7a44 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 @@ -12,120 +12,10 @@ public class MogoObuConst { */ public static final String TAG_MOGO_OBU = "MogoObu"; - /** - * 前碰撞预警 - */ - public static final int TYPE_FRONT_COLLISION_WARNING = 101; - public static final String TYPE_FRONT_COLLISION_WARNING_TEXT = "前车碰撞预警"; - public static final String TYPE_FRONT_COLLISION_WARNING_VOICE_TEXT = "前车碰撞预警"; - - /** - * 交叉路口碰撞预警 - */ - public static final int TYPE_CROSS_COLLISION_WARNING = 102; - public static final String TYPE_CROSS_COLLISION_WARNING_TEXT = "交叉路口碰撞预警"; - public static final String TYPE_CROSS_COLLISION_WARNING_VOICE_TEXT = "注意交叉路口车辆"; - - /** - * 左转辅助 - */ - public static final int TYPE_TURN_LEFT_WARN = 103; - public static final String TYPE_TURN_LEFT_WARN_TEXT = "左转碰撞预警"; - public static final String TYPE_TURN_LEFT_WARN_VOICE_TEXT = "注意左前车辆"; - - /** - * 盲区预警/变道预警 类似 - */ - public static final int TYPE_BLIND_ASSIST_WARN = 104; - public static final String TYPE_BLIND_ASSIST_WARN_TEXT = "盲区碰撞预警"; - public static final String TYPE_BLIND_ASSIST_WARN_VOICE_LEFT_TEXT = "注意左后车辆"; - public static final String TYPE_BLIND_ASSIST_WARN_VOICE_RIGHT_TEXT = "注意右后车辆"; - - /** - * 逆向超车预警 - */ - public static final int TYPE_REVERSE_OVERTAKING_WARN = 106; - public static final String TYPE_REVERSE_OVERTAKING_WARN_TEXT = "逆向超车预警"; - public static final String TYPE_REVERSE_OVERTAKING_WARN_VOICE_TEXT = "注意逆向车道车辆"; - - /** - * 紧急制动预警/前车急刹 - */ - public static final int TYPE_URGENCY_COLLISION_WARNING = 107; - public static final String TYPE_URGENCY_COLLISION_WARNING_TEXT = "前车急刹车"; - public static final String TYPE_URGENCY_COLLISION_WARNING_VOICE_TEXT = "前车急刹车"; - - /** - * 异常车辆预警 - */ - public static final int TYPE_UNUSUAL_CAR_WARN = 108; - public static final String TYPE_UNUSUAL_CAR_WARN_TEXT = "前车异常"; - public static final String TYPE_UNUSUAL_CAR_WARN_VOICE_TEXT = "前车异常"; - public static final String TYPE_UNUSUAL_CAR_WARN_VOICE_LEFT_TEXT = "左前车辆异常"; - public static final String TYPE_UNUSUAL_CAR_WARN_VOICE_RIGHT_TEXT = "右前车辆异常"; - - /** - * 车辆失控预警 - */ - public static final int TYPE_CAR_OUT_OF_CONTROL_WARN = 109; - public static final String TYPE_CAR_OUT_OF_CONTROL_WARN_TEXT = "前车失控预警"; - public static final String TYPE_CAR_OUT_OF_CONTROL_WARN_VOICE_TEXT = "前车失控预警"; - public static final String TYPE_CAR_OUT_OF_CONTROL_WARN_VOICE_LEFT_TEXT = "左前车失控预警"; - public static final String TYPE_CAR_OUT_OF_CONTROL_WARN_VOICE_RIGHT_TEXT = "右前车失控预警"; - - /** - * 限速预警 ? 未知 - */ - public static final int TYPE_LIMIT_SPEED_WARN = 110; - public static final String TYPE_LIMIT_SPEED_WARN_TEXT = "用户已超速"; - public static final String TYPE_LIMIT_SPEED_WARN_VOICE_TEXT = ""; - - /** - * 闯红灯预警 ? - */ - public static final int TYPE_RUSH_RED_LIGHT = 111; - public static final String TYPE_RUSH_RED_LIGHT_TEXT = "路口红灯,禁止通行"; - public static final String TYPE_RUSH_RED_LIGHT_VOICE_TEXT = "路口红灯,禁止通行"; - - - /** - * 行人/摩托车 碰撞预警 -1 根据类型判断 - */ - public static final int TYPE_ROAD_USER_COLLISION_WARNING = 112; - public static final String TYPE_ROAD_USER_COLLISION_WARNING_PERSON_TEXT = "行人碰撞预警"; - public static final String TYPE_ROAD_USER_COLLISION_WARNING_MOTORBIKE_TEXT = "摩托车碰撞预警"; - - /** - * 绿波车速引导 ? - */ - public static final int TYPE_OPTIMAL_SPEED_ADVISORY = 113; - - /** - * 交通标牌提示 ? - */ - public static final int TYPE_TRAFFIC_SIGN_INFO = 115; - - /** - * 道路危险情况预警 ? - */ - public static final int TYPE_UNUSUAL_ROAD_WARN = 114; - public static final String TYPE_UNUSUAL_ROAD_WARN_TEXT = "道路危险情况预警"; - public static final String TYPE_UNUSUAL_ROAD_WARN_VOICE_TEXT = "前方路况危险"; - - /** - * 前方拥堵提醒 ? 具体距离是否有未知 - */ - public static final int TYPE_BLOCK_WARN = 116; - public static final String TYPE_BLOCK_WARN_TEXT = "前方道路拥堵"; - public static final String TYPE_BLOCK_WARN_VOICE_TEXT = "前方X米道路拥堵,请减速慢行"; - - /** - * 紧急车辆提示预警 - */ - public static final int TYPE_PRESSING_CAR_WARN = 117; - public static final String TYPE_PRESSING_CAR_WARN_TEXT = "请避让特种车辆"; - public static final String TYPE_PRESSING_CAR_WARN_VOICE_TEXT = "后方存在特殊车辆,请安排避让"; - - + // OBU 场景测试 + // 场景类型 + public static String BROADCAST_OBU_TYPE_EXTRA_KEY = "obuType"; + // 场景操作状态,ObuConstants.STATUS + public static String BROADCAST_OBU_STATES_EXTRA_KEY = "obuStates"; } 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 3d72133955..23e955b7fc 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,8 +1,6 @@ package com.mogo.module.obu.mogo import android.content.Context -import android.os.Handler -import android.os.Looper import android.util.Log import com.alibaba.android.arouter.launcher.ARouter import com.mogo.module.common.enum.WarningTypeEnum @@ -11,7 +9,6 @@ import com.mogo.module.obu.mogo.map.ObuVulnerableGroupsDrawer 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 @@ -288,6 +285,13 @@ class MogoPrivateObuManager private constructor() { } } + /** + * 返回OBU监听 + */ + fun getMogoObuListener(): OnMogoObuListener { + return mogoObuListener + } + /** * 获取消息的方位 @@ -330,7 +334,10 @@ class MogoPrivateObuManager private constructor() { ) { var alertContent = "" var ttsContent = "" - Log.d(MogoObuConst.TAG_MOGO_OBU, "useCaseId = $useCaseId ---level = $level --direction = $direction ---status = $status ") + Log.d( + MogoObuConst.TAG_MOGO_OBU, + "useCaseId = $useCaseId ---level = $level --direction = $direction ---status = $status " + ) // TODO 这里排除需要特殊定制的语音及文案外,其余的都可以使用 WarningTypeEnum 提供的 when (useCaseId) { // 变道预警,注意左后车辆/注意右后车辆 diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/map/ObuRecognizedResultDrawer.kt b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/map/ObuRecognizedResultDrawer.kt index 9e36a80361..1c1ce4cc77 100644 --- a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/map/ObuRecognizedResultDrawer.kt +++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/map/ObuRecognizedResultDrawer.kt @@ -122,7 +122,9 @@ class ObuRecognizedResultDrawer() { * 移除识别的数据 */ fun removeCvxRvInfoIndInfo(key: String) { - mCvxRvInfoIndInfoMap.remove(key) + if (mCvxRvInfoIndInfoMap.contains(key)) { + mCvxRvInfoIndInfoMap.remove(key) + } } /** diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/receiver/ObuTestTriggerReceiver.kt b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/receiver/ObuTestTriggerReceiver.kt new file mode 100644 index 0000000000..63afe34c99 --- /dev/null +++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/receiver/ObuTestTriggerReceiver.kt @@ -0,0 +1,74 @@ +package com.mogo.module.obu.mogo.receiver + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +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.CvxV2vThreatIndInfo +import com.zhidao.support.obu.model.advance.MovingObjectInfo +import com.zhidao.support.obu.model.advance.Position +import com.zhidao.support.obu.model.advance.V2vThreat +import com.zhidao.support.obu.model.advance.V2vThreatExt + +/** + * @author xiaoyuzhou + * @date 2021/8/11 10:50 上午 + * + * OBU 测试使用 + */ +class ObuTestTriggerReceiver : BroadcastReceiver() { + private var mContext: Context? = null + + companion object { + private const val TAG = "ObuTestTriggerReceiver" + } + + override fun onReceive(context: Context, intent: Intent) { + mContext = context + /** + * OBU 场景类型 + * @see com.zhidao.support.obu.constants.ObuConstants.USE_CASE_ID + */ + val obuType = intent.getIntExtra(MogoObuConst.BROADCAST_OBU_TYPE_EXTRA_KEY, 0) + val obuStatus = intent.getIntExtra(MogoObuConst.BROADCAST_OBU_STATES_EXTRA_KEY, 0) + Logger.d( + TAG, "obuType:$obuType obuStatus:$obuStatus" + ) + + when (obuType) { + ObuConstants.USE_CASE_ID.EBW, ObuConstants.USE_CASE_ID.FCW, ObuConstants.USE_CASE_ID.ICW, + ObuConstants.USE_CASE_ID.CLW, ObuConstants.USE_CASE_ID.DNPW, ObuConstants.USE_CASE_ID.AVW, + ObuConstants.USE_CASE_ID.BSW, ObuConstants.USE_CASE_ID.LCW, ObuConstants.USE_CASE_ID.EVW, ObuConstants.USE_CASE_ID.VRUCW, + ObuConstants.USE_CASE_ID.SLW, ObuConstants.USE_CASE_ID.LTA, ObuConstants.USE_CASE_ID.HLW, ObuConstants.USE_CASE_ID.IVS, + ObuConstants.USE_CASE_ID.TJW, ObuConstants.USE_CASE_ID.IVP, ObuConstants.USE_CASE_ID.COC -> { + + // 构建测试数据 + val cvxV2vThreatIndInfo = CvxV2vThreatIndInfo(1, 1, 1L) + + val v2vThreat = V2vThreat(1, obuType, null, 1000, 2, 100) + cvxV2vThreatIndInfo.threat_info = v2vThreat + + val v2vThreatExt = + V2vThreatExt( + 1, 1, + ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_FAR_LEFT, 1, 1 + ) + cvxV2vThreatIndInfo.ext_info = v2vThreatExt + cvxV2vThreatIndInfo.status = obuStatus + cvxV2vThreatIndInfo.vehicle_id = "123321" + + // 设置位置 + val position = Position(0, 399739429, 1164115207, 20) + val movingObjectInfo = MovingObjectInfo(0, position, 1800, 60) + cvxV2vThreatIndInfo.basic_info = movingObjectInfo + + MogoPrivateObuManager.INSTANCE.getMogoObuListener() + .onCvxV2vThreatIndInfo(cvxV2vThreatIndInfo) + } + } + } + +} \ No newline at end of file