opt BlockStrategy.kt
This commit is contained in:
1
.idea/gradle.xml
generated
1
.idea/gradle.xml
generated
@@ -84,6 +84,7 @@
|
||||
</set>
|
||||
</option>
|
||||
<option name="resolveModulePerSourceSet" value="false" />
|
||||
<option name="useQualifiedModuleNames" value="true" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
|
||||
@@ -40,4 +40,40 @@ public class ObuConstant {
|
||||
* 闯红灯预警
|
||||
*/
|
||||
public static final int TYPE_RUSH_RED_LIGHT = 117;
|
||||
/**
|
||||
* 盲区辅助
|
||||
*/
|
||||
public static final int TYPE_BLIND_ASSIST_WARN = 118;
|
||||
/**
|
||||
* 异常车辆预警
|
||||
*/
|
||||
public static final int TYPE_UNUSUAL_CAR_WARN = 119;
|
||||
/**
|
||||
* 道路危险情况预警
|
||||
*/
|
||||
public static final int TYPE_UNUSUAL_ROAD_WARN = 120;
|
||||
/**
|
||||
* 交通标牌提示
|
||||
*/
|
||||
public static final int TYPE_TRAFFIC_SIGN_INFO = 121;
|
||||
/**
|
||||
* 前方拥堵提醒
|
||||
*/
|
||||
public static final int TYPE_BLOCK_WARN = 122;
|
||||
/**
|
||||
* 紧急车辆提示预警
|
||||
*/
|
||||
public static final int TYPE_PRESSING_CAR_WARN = 123;
|
||||
/**
|
||||
* 已闯红灯提示
|
||||
*/
|
||||
public static final int TYPE_HAS_RUSH_RED_LIGHT = 124;
|
||||
/**
|
||||
* 车道汇合预警
|
||||
*/
|
||||
public static final int TYPE_LANE_CONVERGE_WARN = 125;
|
||||
/**
|
||||
* 限速预警
|
||||
*/
|
||||
public static final int TYPE_LIMIT_SPEED_WARN = 126;
|
||||
}
|
||||
|
||||
@@ -36,6 +36,18 @@ class MogoObuEventInfo(){
|
||||
"39" -> // 行人碰撞预警
|
||||
ObuConstant.TYPE_ROAD_USER_COLLISION_WARNING
|
||||
"vip变灯提醒" -> ObuConstant.TYPE_CHANGE_LIGHT_FOR_VIP
|
||||
"01" -> ObuConstant.TYPE_FRONT_COLLISION_WARNING
|
||||
"02" -> ObuConstant.TYPE_CROSS_COLLISION_WARNING
|
||||
"04" -> ObuConstant.TYPE_BLIND_ASSIST_WARN
|
||||
"07" -> ObuConstant.TYPE_UNUSUAL_CAR_WARN
|
||||
"09" -> ObuConstant.TYPE_UNUSUAL_ROAD_WARN
|
||||
"11" -> ObuConstant.TYPE_RUSH_RED_LIGHT
|
||||
"14" -> ObuConstant.TYPE_TRAFFIC_SIGN_INFO
|
||||
"15" -> ObuConstant.TYPE_BLOCK_WARN
|
||||
"16" -> ObuConstant.TYPE_PRESSING_CAR_WARN
|
||||
"20" -> ObuConstant.TYPE_HAS_RUSH_RED_LIGHT
|
||||
"21" -> ObuConstant.TYPE_LANE_CONVERGE_WARN
|
||||
"10" -> ObuConstant.TYPE_LIMIT_SPEED_WARN
|
||||
null -> -1
|
||||
else -> type.toInt()
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ private const val SPEED_NORMAL_COUNT = "SPEED _NORMAL_COUNT"
|
||||
*/
|
||||
class BlockStrategy(private val context: Context, private val apis: IMogoServiceApis) {
|
||||
private var startRecordTime: Long = 0
|
||||
private var speedCacheList = ArrayList<Float>()
|
||||
private var speedCacheList = ArrayList<Int>()
|
||||
|
||||
/**
|
||||
* 停车标志位,当速度为0时加1,超过[STOP_FLAG_THRESHOLD]判定为停车,不认为是拥堵,这组数据无效
|
||||
@@ -99,9 +99,9 @@ class BlockStrategy(private val context: Context, private val apis: IMogoService
|
||||
speedCacheList.clear()
|
||||
}
|
||||
|
||||
speedCacheList.add(speed)
|
||||
speedCacheList.add(currentSpeed)
|
||||
|
||||
if (speed == 0F) {
|
||||
if (currentSpeed == 0) {
|
||||
stopFlag++
|
||||
} else if (stopFlag < STOP_FLAG_THRESHOLD) {
|
||||
// 如果本次计算期间,stopFlag还没超过阈值,就置为零,如果超过阈值了,说明本次计算期间存在超过阈值的停止次数,就舍弃掉本次计算
|
||||
@@ -132,7 +132,7 @@ class BlockStrategy(private val context: Context, private val apis: IMogoService
|
||||
// 到达时间限制,上报速度,数据清空
|
||||
if (stopFlag < STOP_FLAG_THRESHOLD) {
|
||||
// 停车标志位小于阈值,判定不是停车,计算平均值,进行上报
|
||||
var sum = 0F
|
||||
var sum = 0
|
||||
speedCacheList.forEach {
|
||||
sum += it
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ public class V2XObuManager implements IObuCallback, Handler.Callback {
|
||||
public void onEventInfoCallback(MogoObuEventInfo info) {
|
||||
Logger.d("V2X_OBU_EVENT", "carEventInfo==" + info);
|
||||
if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
|
||||
Logger.d("V2X_OBU_EVENT","vr模式下不展示obu事件");
|
||||
Logger.d("V2X_OBU_EVENT", "vr模式下不展示obu事件");
|
||||
return;
|
||||
}
|
||||
Long last = intervalMap.get(info.getTypeCode());
|
||||
@@ -263,6 +263,23 @@ public class V2XObuManager implements IObuCallback, Handler.Callback {
|
||||
intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity);
|
||||
LocalBroadcastManager.getInstance(getContext()).sendBroadcast(intent);
|
||||
break;
|
||||
case ObuConstant.TYPE_BLIND_ASSIST_WARN:
|
||||
case ObuConstant.TYPE_HAS_RUSH_RED_LIGHT:
|
||||
case ObuConstant.TYPE_LANE_CONVERGE_WARN:
|
||||
case ObuConstant.TYPE_LIMIT_SPEED_WARN:
|
||||
case ObuConstant.TYPE_PRESSING_CAR_WARN:
|
||||
case ObuConstant.TYPE_TRAFFIC_SIGN_INFO:
|
||||
case ObuConstant.TYPE_BLOCK_WARN:
|
||||
case ObuConstant.TYPE_FRONT_COLLISION_WARNING:
|
||||
case ObuConstant.TYPE_UNUSUAL_CAR_WARN:
|
||||
case ObuConstant.TYPE_UNUSUAL_ROAD_WARN:
|
||||
// 暂无设计图,先简单显示
|
||||
V2XObuEventEntity tmpEvent = new V2XObuEventEntity();
|
||||
tmpEvent.setType(eventType);
|
||||
tmpEvent.setDesc(info.getType()+"--"+info.getDescribe());
|
||||
messageEntity.setContent(tmpEvent);
|
||||
V2XObuEventScenario.getInstance().init(messageEntity);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -94,6 +94,32 @@ public class V2XObuEventWindow extends FrameLayout implements IV2XWindow<V2XObuE
|
||||
tvType.setText("红灯警告");
|
||||
tvType.setBackgroundResource(R.drawable.bg_v2x_event_type_read);
|
||||
break;
|
||||
case ObuConstant.TYPE_BLIND_ASSIST_WARN:
|
||||
case ObuConstant.TYPE_HAS_RUSH_RED_LIGHT:
|
||||
case ObuConstant.TYPE_LANE_CONVERGE_WARN:
|
||||
case ObuConstant.TYPE_LIMIT_SPEED_WARN:
|
||||
case ObuConstant.TYPE_PRESSING_CAR_WARN:
|
||||
case ObuConstant.TYPE_TRAFFIC_SIGN_INFO:
|
||||
case ObuConstant.TYPE_BLOCK_WARN:
|
||||
case ObuConstant.TYPE_FRONT_COLLISION_WARNING:
|
||||
case ObuConstant.TYPE_UNUSUAL_CAR_WARN:
|
||||
case ObuConstant.TYPE_UNUSUAL_ROAD_WARN:
|
||||
// 暂无设计图,先简单显示
|
||||
String[] descInfo = entity.getDesc().split("--");
|
||||
String t = null;
|
||||
String d = null;
|
||||
if (descInfo.length == 2) {
|
||||
t = descInfo[0];
|
||||
d = descInfo[1];
|
||||
}else{
|
||||
t = "未知类型";
|
||||
d = entity.getDesc();
|
||||
}
|
||||
ivTypeIcon.setImageResource(R.drawable.v2x_icon_obu_urgency_collision);
|
||||
tvDesc.setText(d);
|
||||
tvType.setText(t);
|
||||
tvType.setBackgroundResource(R.drawable.bg_v2x_event_type_read);
|
||||
break;
|
||||
default:
|
||||
Logger.w(MODULE_NAME, "其他obu类型,暂不处理: " + entity.getType());
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user