增加OBU自测广播及测试数据

This commit is contained in:
董宏宇
2021-08-11 14:42:48 +08:00
parent 649bac3a6c
commit c7030efa0b
7 changed files with 110 additions and 125 deletions

View File

@@ -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
adb shell am broadcast -a com.zhidao.auto.txz.receiver --es text "欢迎乘坐’蘑菇车联‘无人驾驶小巴车" --ei speakType 5

View File

@@ -2,4 +2,14 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mogo.module.obu.mogo">
<application>
<receiver android:name=".receiver.ObuTestTriggerReceiver">
<intent-filter>
<action android:name="com.obu.test_trigger" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</application>
</manifest>

View File

@@ -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)
}
}

View File

@@ -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";
}

View File

@@ -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) {
// 变道预警,注意左后车辆/注意右后车辆

View File

@@ -122,7 +122,9 @@ class ObuRecognizedResultDrawer() {
* 移除识别的数据
*/
fun removeCvxRvInfoIndInfo(key: String) {
mCvxRvInfoIndInfoMap.remove(key)
if (mCvxRvInfoIndInfoMap.contains(key)) {
mCvxRvInfoIndInfoMap.remove(key)
}
}
/**

View File

@@ -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)
}
}
}
}