From b1bb68d57bc452992c2ecce9496740c46e21cf0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Thu, 14 Oct 2021 14:51:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7ADAS=E7=89=88=E6=9C=AC,?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E5=8F=B0=E8=BE=93=E5=87=BAadas=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=BF=A1=E6=81=AF=20=E5=BC=80=E5=A7=8B=E9=87=8D?= =?UTF-8?q?=E6=9E=84ADAS=E7=9A=84=E7=9B=B8=E5=85=B3=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 董宏宇 --- app/build.gradle | 5 ++ .../com/mogo/launcher/MogoApplication.java | 23 ++++--- config.gradle | 6 +- .../mogo-core-function-autopilot/build.gradle | 2 +- .../autopilot/MoGoAutoPilotProvider.kt | 21 ++++++- .../core/function/hmi/ui/MoGoHmiFragment.kt | 40 ------------ .../hmi/ui/setting/DebugSettingView.kt | 6 ++ .../function/hmi/ui/widget/SpeedPanelView.kt | 61 +++++++++++++++---- .../main/res/layout/view_debug_setting.xml | 9 +++ .../mogo-core-function-map/build.gradle | 2 +- .../mogo-core-function-v2x/build.gradle | 2 +- .../data/autopilot/AutoPilotStatusInfo.kt | 3 +- .../api/autopilot/IMoGoAutoPilotProvider.java | 7 +++ .../call/autopilot/CallerAutoPilotManager.kt | 23 +++++++ .../function/call/obu/CallerOBUManager.kt | 1 + modules/mogo-module-adas/build.gradle | 2 +- .../module/adas/AdasAutoPilotManager.java | 2 - .../mogo/module/adas/AdasEventManager.java | 27 +++++--- .../com/mogo/module/adas/AdasProvider.java | 16 +---- .../mogo/module/common/MogoModulePaths.java | 57 +++++++++-------- .../module/main/cards/MogoModulesManager.java | 2 +- .../src/main/AndroidManifest.xml | 2 + 22 files changed, 196 insertions(+), 123 deletions(-) create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotManager.kt diff --git a/app/build.gradle b/app/build.gradle index d4d171277d..97f8e15cac 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -203,6 +203,11 @@ dependencies { implementation project(':core:function-impl:mogo-core-function-obu-mogo') implementation project(':core:function-impl:mogo-core-function-smp') implementation project(':core:function-impl:mogo-core-function-hmi') + implementation project(':core:function-impl:mogo-core-function-autopilot') + implementation project(':core:function-impl:mogo-core-function-check') + implementation project(':core:function-impl:mogo-core-function-map') + implementation project(':core:function-impl:mogo-core-function-notice') + implementation project(':core:function-impl:mogo-core-function-v2x') } diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 45204470dc..5b04ee81e1 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -39,8 +39,6 @@ import com.mogo.utils.ProcessUtils; import com.mogo.utils.logger.LogLevel; import com.mogo.utils.logger.Logger; import com.mogo.utils.storage.SharedPrefsMgr; -//import com.squareup.leakcanary.LeakCanary; -//import com.squareup.leakcanary.RefWatcher; import com.zhidao.boot.persistent.lib.PersistentManager; import com.zhidao.mogo.module.left.panel.LeftPanelConst; @@ -288,25 +286,30 @@ public class MogoApplication extends AbsMogoApplication { MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_STRATEGY_SHARE, "StrategyShare")); MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_GAODE_AIMLESS_SHARE, "GaoDeAimlessShare")); MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_MOGO_MONITOR, "MogoMonitor")); + + // 域控制器模块(新) + MogoModulePaths.addModuleFunction(new MogoModule(MogoServicePaths.PATH_AUTO_PILOT, "IMoGoAutoPilotProvider")); + // OBU 模块 + MogoModulePaths.addModuleFunction(new MogoModule(MogoServicePaths.PATH_V2X_OBU_MOGO, "IMoGoObuProvider")); + // 小地图模块 + MogoModulePaths.addModuleFunction(new MogoModule(MogoServicePaths.PATH_SMALL_MAP, "IMogoSmallMapProvider")); + // widgets 模块 + MogoModulePaths.addModuleFunction(new MogoModule(MogoServicePaths.PATH_V2X_WARNING, "IMoGoWaringProvider")); + // 自动驾驶系统检测模块 MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_CHECK, "CheckProvider")); // 推送模块 MogoModulePaths.addModule(new MogoModule(PushUIConstants.PATH, PushUIConstants.NAME)); // 碰撞报警模块 - MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_CRASH_WARNING, "CrashWarning")); - // OBU 模块 - MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_V2X_OBU_MOGO, "IMoGoObuProvider")); - // 小地图模块 - MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_SMALL_MAP, "IMogoSmallMapProvider")); - // widgets 模块 - MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_V2X_WARNING, "IMoGoWaringProvider")); - // ADAS模块 + MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_CRASH_WARNING, "IMogoCrashWarnProvider")); + // ADAS模块(旧,慢慢被 域控制器模块 替换掉) MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_ADAS, "AdasProvider")); // 前方碰撞预警 MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_V2X_FRONT_CRASH_WARNING, "IV2XManagerProvider")); // 全局语音唤醒 MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_GLOBAL_UNWAKE, "GlobalUnwake")); + if (!DebugConfig.isLauncher()) { PersistentManager.getInstance().initManager(this); Intent intent = new Intent(this, MogoMainService.class); diff --git a/config.gradle b/config.gradle index 2478373080..90803747a0 100644 --- a/config.gradle +++ b/config.gradle @@ -111,7 +111,7 @@ ext { callchatprovider : "com.mogo.module.carchatout:module-carchatting-provider:${CARCHATTINGPROVIDER_VERSION}", guideshow : "com.mogo.module:module-guide:${MOGO_MODULE_GUIDESHOW_VERSION}", - mogomodulecheck : "com.mogo.module:mogo-module-check:${MOGO_MODULE_CHECK_VERSION}", + mogomodulecheck : "com.mogo.module:mogo-module-check:${MOGO_MODULE_CHECK_VERSION}", // V2X moduleV2x : "com.mogo.module:module-v2x:${MOGO_MODULE_V2X_VERSION}", moduleSmallMap : "com.mogo.module:module-small-map:${MOGO_MODULE_SMP_VERSION}", @@ -130,7 +130,7 @@ ext { // OBU moduleobu : "com.mogo.module:module-obu:${MOGO_MODULE_OBU_VERSION}", moduleobumogo : "com.mogo.module:module-obu:${MOGO_MODULE_OBU_MOGO_VERSION}", - carmanager : "com.zhidao.carmanager:common:1.0.30@aar", + carmanager : "com.zhidao.carmanager:common:1.0.30@aar", // jetbrainsannotationsjava5 : "org.jetbrains:annotations-java5:15.0", @@ -166,9 +166,9 @@ ext { // obu sdk obusdk : "com.zhidao.enterprise.smartv2x:smartv2x:1.0.0.3", -// mebulaobu : 'com.zhidao.support.nebulaobu:nebulaobu:1.0.0.3', mogoobu : 'com.zhidao.support.obu:mogoobu:1.0.0.15', mogoami : 'com.zhidao.support.obu.ami:mogoami:1.0.0.3', + adasHigh : 'com.zhidao.support.adas:high:1.2.0.4', // 左侧面板 moduleleftpanel : "com.mogo.module:module-left-panel:${MOGO_MODULE_LEFT_PANEL_VERSION}", diff --git a/core/function-impl/mogo-core-function-autopilot/build.gradle b/core/function-impl/mogo-core-function-autopilot/build.gradle index bd30d9d646..9593327e21 100644 --- a/core/function-impl/mogo-core-function-autopilot/build.gradle +++ b/core/function-impl/mogo-core-function-autopilot/build.gradle @@ -51,7 +51,7 @@ dependencies { kapt rootProject.ext.dependencies.aroutercompiler - implementation "com.zhidao.support.adas:high:1.2.0.2" + implementation rootProject.ext.dependencies.adasHigh if (Boolean.valueOf(RELEASE)) { diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutoPilotProvider.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutoPilotProvider.kt index 9512c9746d..92f55c18bf 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutoPilotProvider.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutoPilotProvider.kt @@ -16,8 +16,20 @@ import com.zhidao.support.adas.high.AdasManager */ @Route(path = MogoServicePaths.PATH_AUTO_PILOT) class MoGoAutoPilotProvider : IMoGoAutoPilotProvider { - override fun init(context: Context) {} - override fun connectAutoPilot() {} + + override fun init(context: Context) { + // 初始化ADAS 域控制器 + AdasManager.getInstance().create(context) + + } + + + override fun connectAutoPilot() { + + + } + + override fun startAutoPilot(result: AutoPilotControlParameters) { if (AdasManager.getInstance().isSocketConnect) { val parameter = @@ -49,6 +61,11 @@ class MoGoAutoPilotProvider : IMoGoAutoPilotProvider { return 0 } + + override fun recordPackage(): Boolean { + return AdasManager.getInstance().recordPackage() + } + companion object { private const val TAG = "MogoAutoPilotProvider" } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index 2d8ac6da8f..ce3bdb971d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -14,7 +14,6 @@ import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.notification.WarningFloat import com.mogo.eagle.core.function.hmi.notification.anim.DefaultAnimator import com.mogo.eagle.core.function.hmi.notification.enums.SidePattern -import com.mogo.eagle.core.function.hmi.ui.setting.DebugSettingView import com.mogo.eagle.core.function.hmi.ui.widget.V2XNotificationView import com.mogo.module.common.enums.EventTypeEnum import com.mogo.utils.logger.Logger @@ -29,48 +28,9 @@ class MoGoHmiFragment : MvpFragment MoGoWarningContract.View { var mWarningFloat: WarningFloat.Builder? = null - var mDebugSettingViewFloat: WarningFloat.Builder? = null override fun initViews() { - autopilotStatus.setOnLongClickListener { - activity?.let { - val debugSettingView = DebugSettingView(it) - if (mDebugSettingViewFloat != null) { - WarningFloat.dismiss(mDebugSettingViewFloat!!.config.floatTag, false) - mDebugSettingViewFloat = null - } else { - mDebugSettingViewFloat = WarningFloat.with(it) - .setTag("DebugSettingView") - .setLayout(debugSettingView) - .setSidePattern(SidePattern.RIGHT) - .setGravity(Gravity.RIGHT, offsetY = 70) - .setImmersionStatusBar(true) - .setAnimator(object : DefaultAnimator() { - override fun enterAnim( - view: View, - params: WindowManager.LayoutParams, - windowManager: WindowManager, - sidePattern: SidePattern - ): Animator? = - super.enterAnim(view, params, windowManager, sidePattern)?.apply { - interpolator = OvershootInterpolator() - } - - override fun exitAnim( - view: View, - params: WindowManager.LayoutParams, - windowManager: WindowManager, - sidePattern: SidePattern - ): Animator? = - super.exitAnim(view, params, windowManager, sidePattern) - ?.setDuration(200) - }) - .show() - } - } - false - } } override fun getLayoutId(): Int { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index e2303c182e..8194220039 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -13,6 +13,7 @@ import com.mogo.eagle.core.data.constants.MoGoConfig import com.mogo.eagle.core.data.obu.ObuStatusInfo import com.mogo.eagle.core.function.api.autopilot.IMoGoAutoPilotStatusListener import com.mogo.eagle.core.function.api.obu.IMoGoObuStatusListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.obu.CallerOBUManager import com.mogo.eagle.core.function.call.obu.CallerObuListenerManager @@ -92,6 +93,11 @@ class DebugSettingView @JvmOverloads constructor( ToastUtils.showShort("请输入正确的IP地址") } } + + // 域控制器 + btnRecordPackage.setOnClickListener { + CallerAutoPilotManager.recordPackage() + } } /** diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt index 997ef7d606..38f8466312 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt @@ -1,22 +1,27 @@ package com.mogo.eagle.core.function.hmi.ui.widget +import android.animation.Animator import android.content.Context -import android.content.Intent import android.graphics.Color import android.location.Location import android.util.AttributeSet import android.util.Log import android.view.Gravity import android.view.View +import android.view.WindowManager +import android.view.animation.OvershootInterpolator import android.widget.FrameLayout import com.alibaba.android.arouter.launcher.ARouter import com.mogo.commons.debug.DebugConfig -import com.mogo.eagle.core.function.hmi.R -import com.mogo.eagle.core.data.map.MogoLatLng -import com.mogo.map.navi.IMogoCarLocationChangedListener2 -import com.mogo.module.common.MogoApisHandler -import com.mogo.service.IMogoServiceApis import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.mogo.eagle.core.data.map.MogoLatLng +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.function.hmi.notification.WarningFloat +import com.mogo.eagle.core.function.hmi.notification.anim.DefaultAnimator +import com.mogo.eagle.core.function.hmi.notification.enums.SidePattern +import com.mogo.eagle.core.function.hmi.ui.setting.DebugSettingView +import com.mogo.map.navi.IMogoCarLocationChangedListener2 +import com.mogo.service.IMogoServiceApis import com.mogo.service.statusmanager.IMogoStatusChangedListener import com.mogo.service.statusmanager.StatusDescriptor @@ -38,6 +43,7 @@ class SpeedPanelView @JvmOverloads constructor( var mContext: Context var mSpeedChartView: SpeedChartView + var mDebugSettingViewFloat: WarningFloat.Builder? = null init { setBackgroundResource(R.drawable.yi_biao_pan_bg_nor) @@ -54,12 +60,45 @@ class SpeedPanelView @JvmOverloads constructor( if (DebugConfig.isDebug()) { mSpeedChartView.isLongClickable = true - mSpeedChartView.setOnLongClickListener { v -> + mSpeedChartView.setOnLongClickListener { Log.d(TAG, "长按显示状态工具栏") - val intent = Intent() - intent.putExtra("oper", 52) - MogoApisHandler.getInstance().apis.intentManagerApi - .invoke("com.mogo.mock", intent) + context.let { + val debugSettingView = DebugSettingView(it) + + if (mDebugSettingViewFloat != null) { + WarningFloat.dismiss(mDebugSettingViewFloat!!.config.floatTag, false) + mDebugSettingViewFloat = null + } else { + mDebugSettingViewFloat = WarningFloat.with(it) + .setTag("DebugSettingView") + .setLayout(debugSettingView) + .setSidePattern(SidePattern.RIGHT) + .setGravity(Gravity.RIGHT, offsetY = 70) + .setImmersionStatusBar(true) + .setAnimator(object : DefaultAnimator() { + override fun enterAnim( + view: View, + params: WindowManager.LayoutParams, + windowManager: WindowManager, + sidePattern: SidePattern + ): Animator? = + super.enterAnim(view, params, windowManager, sidePattern) + ?.apply { + interpolator = OvershootInterpolator() + } + + override fun exitAnim( + view: View, + params: WindowManager.LayoutParams, + windowManager: WindowManager, + sidePattern: SidePattern + ): Animator? = + super.exitAnim(view, params, windowManager, sidePattern) + ?.setDuration(200) + }) + .show() + } + } true } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml index 9fabf69347..81963ea43e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml @@ -97,6 +97,15 @@ android:textSize="@dimen/dp_34" android:textStyle="bold" /> +