diff --git a/core/function-impl/mogo-core-function-v2x/src/main/AndroidManifest.xml b/core/function-impl/mogo-core-function-v2x/src/main/AndroidManifest.xml index af9b0fa90e..6ccd24e6c8 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/AndroidManifest.xml +++ b/core/function-impl/mogo-core-function-v2x/src/main/AndroidManifest.xml @@ -1,4 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/receiver/TestPanelBroadcastReceiver.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/receiver/TestPanelBroadcastReceiver.java new file mode 100644 index 0000000000..61632259ce --- /dev/null +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/receiver/TestPanelBroadcastReceiver.java @@ -0,0 +1,202 @@ +package com.mogo.eagle.core.function.v2x.events.receiver; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.eagle.core.function.call.map.CallerSmpManager; +import com.mogo.eagle.core.function.v2x.events.bridge.BridgeApi; +import com.mogo.eagle.core.function.v2x.events.consts.V2XConst; +import com.mogo.eagle.core.function.v2x.events.entity.net.V2XOptimalRouteDataRes; +import com.mogo.eagle.core.function.v2x.events.entity.net.V2XSpecialCarRes; +import com.mogo.eagle.core.function.v2x.events.scenario.scene.livecar.V2XVoiceCallLiveBiz; +import com.mogo.eagle.core.function.v2x.events.utils.TestOnLineCarUtils; +import com.mogo.eagle.core.function.v2x.events.utils.V2XSQLiteUtils; +import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.module.common.entity.MarkerExploreWay; +import com.mogo.module.common.entity.V2XMessageEntity; +import com.mogo.module.common.entity.V2XPushMessageEntity; +import com.mogo.module.common.entity.V2XRoadEventEntity; +import com.mogo.service.share.IMogoTrafficUploadProvider; +import com.mogo.service.statusmanager.IMogoStatusManager; +import com.zhidao.carchattingprovider.ICarsChattingProvider; +import com.zhidao.carchattingprovider.MogoDriverInfo; + +import java.util.List; + +import static android.text.style.TtsSpan.GENDER_MALE; + +/** + * V2X 测试面板广播接收,目的是可以通过广播调用起来面板 + * + * @author donghongyu + */ +public class TestPanelBroadcastReceiver extends BroadcastReceiver { + private static final String TAG = V2XConst.MODULE_NAME + "_TestPanelBroadcastReceiver"; + + private Context mContext; + + @Override + public void onReceive(Context context, Intent intent) { + try { + this.mContext = context; + int sceneType = intent.getIntExtra(V2XConst.BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY, 0); + Logger.d(TAG, "textPanelOpenType:" + sceneType); + + // 分发场景 + dispatchSceneTest(sceneType); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 分发处理场景 + * + * @param sceneType 场景类型 + */ + private void dispatchSceneTest(int sceneType) { + Logger.d(TAG, "sceneType=" + sceneType); + if (sceneType == 0) {//打开用户信息 + MogoDriverInfo mogoDriverInfo = new MogoDriverInfo(); + mogoDriverInfo.setAge(24); + mogoDriverInfo.setGender(GENDER_MALE); + mogoDriverInfo.setSn("12345678"); + mogoDriverInfo.setUserName("测试"); + mogoDriverInfo.setUserHead("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1600872867592&di=994e371880ca6ae2814f553e0d0e4139&imgtype=0&src=http%3A%2F%2Fp3.ssl.cdn.btime.com%2Ft014c5d8a1e5cef12ba.jpg%3Fsize%3D506x543"); + ICarsChattingProvider provider = BridgeApi.INSTANCE.carChatProvider(); + if (provider != null) { + provider.showUserWindow("CAR_CALL_USER_TO_" + V2XConst.MODULE_NAME, mogoDriverInfo, mContext); + } + } else if (sceneType == 1) {// 触发道路事件 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioRoadEventData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + + // 存储本地,出行动态作展示 + saveLocalStory(V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_WARNING, + v2XMessageEntity.getContent().getNoveltyInfo()); + } else if (sceneType == 3) {//触发H5推送事件 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioPushEventData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 4) {//触发H5推送直播事件 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioPushLiveEventData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 5) {//H5推送触发V2X动画 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioAnimationEventData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 6) {//查看前车直播 + V2XVoiceCallLiveBiz.getInstance().getFrontCarLive(); + } else if (sceneType == 7) {//查看前方路口直播 + V2XVoiceCallLiveBiz.getInstance().getOpenRoadCameraLive(); + } else if (sceneType == 8) {//触发疲劳驾驶 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioFatigueDrivingData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 9) {//触发他人发起道路求助事件 + V2XMessageEntity> v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioSeekHelpData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 10) {//触发事件UGC + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioRoadEventUGCData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 11) {//触发违章停车事件 + V2XMessageEntity> v2XMessageEntity = + TestOnLineCarUtils.getV2XIllegalParkData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 12) {//车路云场景预警-右侧 + V2XMessageEntity messageEntity = TestOnLineCarUtils.getV2XScenarioPushFrontWarningEventData("right"); + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, messageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 13) {//车路云场景预警-左侧 + V2XMessageEntity messageEntity = TestOnLineCarUtils.getV2XScenarioPushFrontWarningEventData("left"); + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, messageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 14) {//行人预警,行人路线预测 车路云预警-前方行人 + V2XMessageEntity messageEntity = TestOnLineCarUtils.getV2XScenarioPushFrontWarningEventData("pedestrians"); + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, messageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 15) {// 交通状况查询 + + IMogoTrafficUploadProvider provider = BridgeApi.INSTANCE.trafficUpload(); + if (provider != null) { + provider.verifyCurrentTrafficStatus(); + } + } /*else if (sceneType == 16) {//触发基于目的地预测的线路推荐 + V2XRefreshModel model = BridgeApi.INSTANCE.refreshModel(); + model. + V2XServiceManager.getV2XRefreshModel().queryRoadData("F803EB2046PZD00149"); + } */else if (sceneType == 17) {//最优路线推荐 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XOptimalRoute(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 18) {// 自车求助 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioCarForHelpEventData(); + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + IMogoStatusManager statusManager = BridgeApi.INSTANCE.statusManager(); + if (statusManager != null) { + statusManager.setSeekHelping(V2XConst.MODULE_NAME, true); + } + } else if (sceneType == 20) {// 小地图绘制线 + List coordinates = TestOnLineCarUtils.getTestCoordinates(); + CallerSmpManager.drawablePolyline(coordinates); + } else if (sceneType == 21) {// 小地图清除绘制线 + CallerSmpManager.clearPolyline(); + } + } + + + /** + * 存储本地数据 + * + * @param v2XRoadEventEntity 要存储的场景 + */ + public void saveLocalStory(int scenarioType, MarkerExploreWay v2XRoadEventEntity) { + try { + V2XSQLiteUtils.saveLocalStory(scenarioType, v2XRoadEventEntity, v2XRoadEventEntity.hashCode()); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/TestOnLineCarUtils.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/TestOnLineCarUtils.java new file mode 100644 index 0000000000..8267396b79 --- /dev/null +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/TestOnLineCarUtils.java @@ -0,0 +1,516 @@ +package com.mogo.eagle.core.function.v2x.events.utils; + +import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.eagle.core.function.v2x.R; +import com.mogo.eagle.core.function.v2x.events.entity.net.V2XOptimalRouteDataRes; +import com.mogo.eagle.core.function.v2x.events.entity.net.V2XSpecialCarRes; +import com.mogo.eagle.core.network.utils.GsonUtil; +import com.mogo.eagle.core.utilcode.util.Utils; +import com.mogo.module.common.entity.MarkerExploreWay; +import com.mogo.module.common.entity.MarkerResponse; +import com.mogo.module.common.entity.V2XMessageEntity; +import com.mogo.module.common.entity.V2XPushMessageEntity; +import com.mogo.module.common.entity.V2XRoadEventEntity; +import com.mogo.module.common.entity.V2XWarningEntity; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.util.List; + +/** + * author : donghongyu + * e-mail : 1358506549@qq.com + * date : 2020-01-0918:20 + * desc : 生成测试数据 + * version: 1.0 + */ +public class TestOnLineCarUtils { + + + /** + * 获取测试的违章停车数据 + */ + public static V2XMessageEntity> getV2XIllegalParkData() { + try { + InputStream inputStream = Utils.getApp().getResources().openRawResource(R.raw.illegal_park_data); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + MarkerResponse markerResponse = GsonUtil.objectFromJson(baos.toString(), MarkerResponse.class); + + V2XMessageEntity> v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_ILLEGAL_PARK_WARNING); + // 设置数据 + v2xMessageEntity.setContent(markerResponse.getResult().getExploreWay()); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + return v2xMessageEntity; + + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 模拟道路事件测试数据 + */ + public static V2XMessageEntity getV2XScenarioRoadEventData() { + try { + InputStream inputStream = Utils.getApp() + .getResources() + .openRawResource(R.raw.scenario_road_event_data); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + V2XRoadEventEntity v2xRoadEventEntity = GsonUtil.objectFromJson(baos.toString(), V2XRoadEventEntity.class); + + V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_WARNING); + // 设置数据 + v2xMessageEntity.setContent(v2xRoadEventEntity); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + return v2xMessageEntity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 模拟道路事件UGC测试数据 + */ + public static V2XMessageEntity getV2XScenarioRoadEventUGCData() { + try { + InputStream inputStream = Utils.getApp() + .getResources() + .openRawResource(R.raw.scenario_road_event_data); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + V2XRoadEventEntity v2xRoadEventEntity = GsonUtil.objectFromJson(baos.toString(), V2XRoadEventEntity.class); + + V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_EVENT_UGC_WARNING); + // 设置数据 + v2xMessageEntity.setContent(v2xRoadEventEntity); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + return v2xMessageEntity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 模拟H5推送数据 + */ + public static V2XMessageEntity getV2XScenarioPushEventData() { + try { + InputStream inputStream = Utils.getApp() + .getResources() + .openRawResource(R.raw.scenario_push_event_data); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + V2XPushMessageEntity v2xRoadEventEntity = GsonUtil.objectFromJson(baos.toString(), V2XPushMessageEntity.class); + + V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_WINDOW_WARNING); + // 设置数据 + v2xMessageEntity.setContent(v2xRoadEventEntity); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + return v2xMessageEntity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 测试数据 + */ + public static V2XMessageEntity getV2XScenarioPushFrontWarningEventData(String adasResult) { + + try { + int id = R.raw.scenario_warning_event_data_right; + switch (adasResult) { + case "left": + id = R.raw.scenario_warning_event_data_left; + break; + case "pedestrians": + id = R.raw.scenario_warning_event_data_pedestrians; + break; + default: + } + InputStream inputStream = Utils.getApp() + .getResources() + .openRawResource(id); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + V2XWarningEntity warningEntity = GsonUtil.objectFromJson(baos.toString(), V2XWarningEntity.class); + V2XMessageEntity messageEntity = new V2XMessageEntity(); + messageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_WEAKNESS); + messageEntity.setContent(warningEntity); + return messageEntity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 模拟H5推送直播数据 + */ + public static V2XMessageEntity getV2XScenarioPushLiveEventData() { + try { + InputStream inputStream = Utils.getApp() + .getResources() + .openRawResource(R.raw.scenario_push_live_event_data); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + V2XPushMessageEntity v2xRoadEventEntity = GsonUtil.objectFromJson(baos.toString(), V2XPushMessageEntity.class); + + V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_LIVE_CAR_WARNING); + // 设置数据 + v2xMessageEntity.setContent(v2xRoadEventEntity); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + return v2xMessageEntity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 模拟H5推送场景动画数据 + */ + public static V2XMessageEntity getV2XScenarioAnimationEventData() { + try { + InputStream inputStream = Utils.getApp() + .getResources() + .openRawResource(R.raw.scenario_push_animation_event_data); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + V2XPushMessageEntity v2xRoadEventEntity = GsonUtil.objectFromJson(baos.toString(), V2XPushMessageEntity.class); + + V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_ANIMATION_WARNING); + // 设置数据 + v2xMessageEntity.setContent(v2xRoadEventEntity); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + return v2xMessageEntity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 模拟H5推送场景--十字路口碰撞 + */ + public static V2XMessageEntity getV2XScenarioCrossCrash() { + try { + InputStream inputStream = Utils.getApp() + .getResources() + .openRawResource(R.raw.scenario_push_cross_crash); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + V2XPushMessageEntity v2xRoadEventEntity = GsonUtil.objectFromJson(baos.toString(), V2XPushMessageEntity.class); + + V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_ANIMATION_WARNING); + // 设置数据 + v2xMessageEntity.setContent(v2xRoadEventEntity); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + return v2xMessageEntity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 模拟 疲劳驾驶 + */ + public static V2XMessageEntity getV2XScenarioFatigueDrivingData() { + try { + InputStream inputStream = Utils.getApp() + .getResources() + .openRawResource(R.raw.scenario_fatigue_driving_data); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + V2XPushMessageEntity v2xRoadEventEntity = + GsonUtil.objectFromJson(baos.toString(), V2XPushMessageEntity.class); + + V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_FATIGUE_DRIVING); + // 设置数据 + v2xMessageEntity.setContent(v2xRoadEventEntity); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + return v2xMessageEntity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 模拟 道路求助 + */ + public static V2XMessageEntity> getV2XScenarioSeekHelpData() { + try { + InputStream inputStream = Utils.getApp() + .getResources() + .openRawResource(R.raw.scenario_seek_help); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + V2XSpecialCarRes v2xRoadEventEntity = + GsonUtil.objectFromJson(baos.toString(), V2XSpecialCarRes.class); + + V2XMessageEntity> v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_SEEK_WARNING); + // 设置数据 + v2xMessageEntity.setContent(v2xRoadEventEntity.getCoordinates()); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + return v2xMessageEntity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 模拟 后方VIP + */ + public static V2XMessageEntity> getV2XScenarionVRBehindVIPData() { + try { + InputStream inputStream = Utils.getApp() + .getResources() + .openRawResource(R.raw.scenario_push_vr_hehind_vip_data); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + V2XSpecialCarRes v2xRoadEventEntity = + GsonUtil.objectFromJson(baos.toString(), V2XSpecialCarRes.class); + + V2XMessageEntity> v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_WINDOW_WARNING); + // 设置数据 + v2xMessageEntity.setContent(v2xRoadEventEntity.getCoordinates()); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + return v2xMessageEntity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 逆向车辆路线预判 + */ + public static V2XMessageEntity getV2XScenarionVRReverseCarData() { + try { + InputStream inputStream = Utils.getApp() + .getResources() + .openRawResource(R.raw.scenario_push_vr_reverse_car_data); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + V2XPushMessageEntity v2xRoadEventEntity = GsonUtil.objectFromJson(baos.toString(), V2XPushMessageEntity.class); + + V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_VR_SHOW); + // 设置数据 + v2xMessageEntity.setContent(v2xRoadEventEntity); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + return v2xMessageEntity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 模拟最优路线推送 + */ + public static V2XMessageEntity getV2XOptimalRoute() { + try { + InputStream inputStream = Utils.getApp() + .getResources() + .openRawResource(R.raw.test_data_v2x_zuiyouluxian); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + V2XOptimalRouteDataRes v2xRoadEventEntity = GsonUtil.objectFromJson(baos.toString(), V2XOptimalRouteDataRes.class); + + V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_VR_SHOW); + // 设置数据 + v2xMessageEntity.setContent(v2xRoadEventEntity); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + return v2xMessageEntity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 自车求助测试数据 + */ + public static V2XMessageEntity getV2XScenarioCarForHelpEventData() { + try { + + V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_CAR_FOR_HELP); + // 设置数据 + v2xMessageEntity.setContent(true); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + return v2xMessageEntity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 返回绘制线路测试数据 + * + * @return + */ + public static List getTestCoordinates() { + try { + InputStream inputStream = Utils.getApp() + .getResources() + .openRawResource(R.raw.test_coordinates); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int len = -1; + byte[] buffer = new byte[1024]; + while ((len = inputStream.read(buffer)) != -1) { + baos.write(buffer, 0, len); + } + inputStream.close(); + + // 加载数据源 + return GsonUtil.arrayFromJson(baos.toString(), MogoLatLng.class); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + +}