From 220d2f1aac46c374e46e3d2145d92bc6342af2e3 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Wed, 9 Jun 2021 18:44:18 +0800 Subject: [PATCH] add xingyun obu --- config.gradle | 2 +- .../res/values-xhdpi-2560x1600/dimens.xml | 6 ++ .../src/main/res/values-xhdpi/dimens.xml | 6 +- .../extensions/entrance/EntranceFragment.java | 1 - modules/mogo-module-v2x/build.gradle | 2 +- .../com/mogo/module/v2x/V2XObuManager.java | 98 +++++++++++------- .../scene/obu/V2XObuEventScenario.java | 7 +- .../scenario/scene/obu/V2XObuEventWindow.java | 8 +- .../v2x_icon_ahead_car_brake.png | Bin 0 -> 4612 bytes .../v2x_icon_ahead_car_brake.png | Bin 0 -> 6870 bytes .../v2x_icon_ahead_car_brake.png | Bin 0 -> 4612 bytes .../layout/window_simple_obu_event_detail.xml | 2 +- .../window_simple_obu_event_detail_vr.xml | 54 ++++++++++ 13 files changed, 138 insertions(+), 48 deletions(-) create mode 100644 modules/mogo-module-v2x/src/main/res/drawable-xhdpi-1920x1000/v2x_icon_ahead_car_brake.png create mode 100644 modules/mogo-module-v2x/src/main/res/drawable-xhdpi-2560x1440/v2x_icon_ahead_car_brake.png create mode 100644 modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_ahead_car_brake.png create mode 100644 modules/mogo-module-v2x/src/main/res/layout/window_simple_obu_event_detail_vr.xml diff --git a/config.gradle b/config.gradle index 40fc573a16..9bcd878a53 100644 --- a/config.gradle +++ b/config.gradle @@ -169,7 +169,7 @@ ext { // obu sdk obusdk : "com.zhidao.enterprise.smartv2x:smartv2x:1.0.0.3", - mebulaobu : 'com.zhidao.support.nebulaobu:nebulaobu:1.0.0.1', + mebulaobu : 'com.zhidao.support.nebulaobu:nebulaobu:1.0.0.3', // 左侧面板 moduleleftpanel : "com.mogo.module:module-left-panel:${MOGO_MODULE_LEFT_PANEL_VERSION}", // 左侧面板空实现 diff --git a/modules/mogo-module-common/src/main/res/values-xhdpi-2560x1600/dimens.xml b/modules/mogo-module-common/src/main/res/values-xhdpi-2560x1600/dimens.xml index b693e5557c..038dc5a7eb 100644 --- a/modules/mogo-module-common/src/main/res/values-xhdpi-2560x1600/dimens.xml +++ b/modules/mogo-module-common/src/main/res/values-xhdpi-2560x1600/dimens.xml @@ -6,4 +6,10 @@ 106px 52px 37px + 435px + 186px + 133px + 37px + 27px + diff --git a/modules/mogo-module-common/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-common/src/main/res/values-xhdpi/dimens.xml index c81c22f39e..c43fe754e8 100644 --- a/modules/mogo-module-common/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-common/src/main/res/values-xhdpi/dimens.xml @@ -1128,6 +1128,10 @@ 100px 28px 28px - + 320px + 140px + 28px + 20px + 100px diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index 1f19e955e8..d5fe0f553b 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -1332,7 +1332,6 @@ public class EntranceFragment extends MvpFragment "); //使用adas部门obu sdk (星云) -// NebulaObuClient.getInstance().init(context); -// NebulaObuClient.getInstance().registerObu(100); -// NebulaObuClient.getInstance().registerObuListener(listener); + NebulaObuClient.getInstance().init(context); + NebulaObuClient.getInstance().registerObu(100); + NebulaObuClient.getInstance().registerObuListener(listener); IntentFilter filter = new IntentFilter("com.mogo.launcher.v2x.action.EXCHANGE_OBU_TYPE"); context.registerReceiver(obuTypeExchangeReceiver, filter); } -// public void release() { -// NebulaObuClient.getInstance().unregisterObu(); -// NebulaObuClient.getInstance().unregisterObuListener(); -// } + public void release() { + NebulaObuClient.getInstance().unregisterObu(); + NebulaObuClient.getInstance().unregisterObuListener(); + } /** * 星云obu数据监听 */ -// private OnObuListener listener = new OnObuListener() { -// @Override -// public void onRegister() { -// Log.d("liyz", "onRegister ------> "); -// } -// -// @Override -// public void onConnectFail(boolean isNeedReconnect) { -// Log.d("liyz", "onConnectFail ------> "); -// } -// -// @Override -// public void onUnregister() { -// Log.d("liyz", "onUnregister ------> "); -// } -// -// @Override -// public void onObuInfo(ObuInfo info) { -// Log.d("liyz", "onObuInfo ------> "); -// } -// -// @Override -// public void onWarningInfo(List infoList) { -// Log.d("liyz", "onWarningInfo ------> "); -// } -// }; + private OnObuListener listener = new OnObuListener() { + @Override + public void onRegister() { + } + @Override + public void onConnectFail(boolean isNeedReconnect) { + Logger.d("liyz", "onConnectFail ------> "); + } + + @Override + public void onUnregister() { + } + + @Override + public void onObuInfo(ObuInfo info) { + Logger.d("liyz", "onObuInfo ------> " + info.toString()); + } + + @Override + public void onWarningInfo(List infoList) { + if (infoList != null) { + if (infoList.size() > 0) { //一般只有一个 + ActiveSafetyInfo info = infoList.get(0); + Logger.d("liyz", "onWarningInfo type ------> " + info.getWarningtype() + "--size = " + infoList.size()); + if (info.getWarningtype() == 3) { + if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) { + handleSdkObu(); + } + } + } + } + } + }; + + private void handleSdkObu() { + V2XMessageEntity messageEntity = new V2XMessageEntity<>(); + messageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_OBU_EVENT); + + // 前车紧急制动预警 + V2XObuEventEntity urgencyEvent = new V2XObuEventEntity(); + urgencyEvent.setType(ObuConstant.TYPE_URGENCY_COLLISION_WARNING); + urgencyEvent.setDesc(V2XObuEventScenario.URGENCY_COLLISION_WARN_TEXT); + messageEntity.setContent(urgencyEvent); + V2XObuEventScenario.getInstance().init(messageEntity); + } /** * 用来处理30秒内不重复播报的情况 diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/obu/V2XObuEventScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/obu/V2XObuEventScenario.java index 73e9af43d4..8cec04c52e 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/obu/V2XObuEventScenario.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/obu/V2XObuEventScenario.java @@ -5,6 +5,7 @@ import android.graphics.Color; import android.os.Handler; import android.os.Looper; import android.os.Message; +import android.util.Log; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.voice.AIAssist; @@ -20,6 +21,7 @@ import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.listener.V2XWindowStatusListener; import com.mogo.module.v2x.scenario.impl.AbsV2XScenario; import com.mogo.module.v2x.utils.DrivingDirectionUtils; +import com.mogo.module.v2x.utils.ToastUtils; import com.mogo.utils.logger.Logger; import com.zhidao.mogo.module.obu.ObuConstant; import com.zhidao.mogo.module.obu.obu.bean.MogoObuEventInfo; @@ -40,7 +42,8 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME; */ public class V2XObuEventScenario extends AbsV2XScenario implements Handler.Callback { - public static final String URGENCY_COLLISION_WARN_TEXT = "前车急刹,注意保持安全距离!"; + public static final String URGENCY_COLLISION_WARN_TEXT_ONE = "前车急刹,注意保持安全距离!"; + public static final String URGENCY_COLLISION_WARN_TEXT = "前车急刹"; private static final int MSG_CLOSE_OBU_WINDOW = 1001; private static final int DEFAULT_EXPIRE_TIME = 20_000; @@ -118,7 +121,7 @@ public class V2XObuEventScenario extends AbsV2XScenario imple */ @Override public void show() { - AIAssist.getInstance(V2XServiceManager.getContext()).speakTTSVoice(getV2XMessageEntity().getContent().getDesc()); + AIAssist.getInstance(V2XServiceManager.getContext()).speakTTSVoice(URGENCY_COLLISION_WARN_TEXT_ONE); showWindow(); if (handler.hasMessages(MSG_CLOSE_OBU_WINDOW)) { handler.removeMessages(MSG_CLOSE_OBU_WINDOW); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/obu/V2XObuEventWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/obu/V2XObuEventWindow.java index 5b686a320c..fca42116b3 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/obu/V2XObuEventWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/obu/V2XObuEventWindow.java @@ -17,6 +17,7 @@ import com.mogo.module.v2x.R; import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.listener.V2XWindowStatusListener; import com.mogo.module.v2x.scenario.view.IV2XWindow; +import com.mogo.module.v2x.utils.ToastUtils; import com.mogo.service.windowview.IMogoTopViewStatusListener; import com.mogo.utils.logger.Logger; import com.zhidao.mogo.module.obu.ObuConstant; @@ -47,7 +48,7 @@ public class V2XObuEventWindow extends FrameLayout implements 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 QV*mgE07*qoM6N<$f{=pq{r~^~ literal 0 HcmV?d00001 diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_ahead_car_brake.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_ahead_car_brake.png new file mode 100644 index 0000000000000000000000000000000000000000..a6e80ec51e689acb0eb0d1366785f86dbf12db6f GIT binary patch literal 4612 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 ucA*>Df$$ETyW7F + + + + + + + + + + \ No newline at end of file