diff --git a/app/build.gradle b/app/build.gradle index c67b2e265e..3bb5c251ed 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -184,7 +184,6 @@ dependencies { implementation 'com.volcengine:apm_insight:1.4.4.cn' implementation 'com.volcengine:apm_insight_crash:1.4.2' - implementation rootProject.ext.dependencies.mogologlib compileOnly rootProject.ext.dependencies.adasapi compileOnly rootProject.ext.dependencies.adasconfigapi diff --git a/config.gradle b/config.gradle index 927bb03b04..2d221db552 100644 --- a/config.gradle +++ b/config.gradle @@ -222,6 +222,7 @@ ext { //========================= 新架构的 Maven 版本管理 ========================= mogo_core_function_autopilot : "com.mogo.eagle.core.function.impl:autopilot:${MOGO_CORE_FUNCTION_AUTOPILOT_VERSION}", mogo_core_function_check : "com.mogo.eagle.core.function.impl:check:${MOGO_CORE_FUNCTION_CHECK_VERSION}", + mogo_core_function_devatools : "com.mogo.eagle.core.function.impl:devatools:${MOGO_CORE_FUNCTION_CHECK_VERSION}", mogo_core_function_hmi : "com.mogo.eagle.core.function.impl:hmi:${MOGO_CORE_FUNCTION_HMI_VERSION}", mogo_core_function_map : "com.mogo.eagle.core.function.impl:map:${MOGO_CORE_FUNCTION_MAP_VERSION}", mogo_core_function_main : "com.mogo.eagle.core.function.impl:main:${MOGO_CORE_FUNCTION_MAIN_VERSION}", diff --git a/core/function-impl/mogo-core-function-devatools/src/main/AndroidManifest.xml b/core/function-impl/mogo-core-function-devatools/src/main/AndroidManifest.xml index 1c73e6de8b..4ba99103af 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/AndroidManifest.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/AndroidManifest.xml @@ -1,13 +1,4 @@ - - - \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt index e94918d9d7..863ec94f7b 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt @@ -4,11 +4,13 @@ import android.annotation.SuppressLint import android.content.Context import android.os.Handler import android.os.Message +import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.AbsMogoApplication import com.mogo.commons.debug.DebugConfig -import com.mogo.eagle.core.function.call.devatools.CallDevaToolsListenerManager +import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager import com.mogo.eagle.core.utilcode.mogo.toast.TipToast import com.mogo.eagle.core.utilcode.util.ThreadUtils +import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.module.common.MogoApisHandler import com.mogo.service.cloud.socket.IMogoOnMessageListener import com.mogo.utils.logger.LogLevel @@ -23,6 +25,7 @@ import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companio import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.LOG_PUSH_TYPE import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.START_CATCH_LOG import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.STOP_CATCH_LOG +import java.io.File @SuppressLint("StaticFieldLeak") object MogoLogCatchManager : IMogoOnMessageListener, Handler.Callback, @@ -45,7 +48,7 @@ object MogoLogCatchManager : IMogoOnMessageListener, Handl .getSocketManagerApi(AbsMogoApplication.getApp().applicationContext) .registerOnMessageListener(LOG_PUSH_TYPE, this) manualContent.duration = 60 - manualContent.pkgName = MANUAL_CATCH_PKG_NAME + manualContent.pkgName = context.packageName } override fun target(): Class { @@ -70,7 +73,7 @@ object MogoLogCatchManager : IMogoOnMessageListener, Handl override fun handleMessage(msg: Message): Boolean { if (msg.what == MSG_TRY_CLOSE_LOG) { - CallDevaToolsListenerManager.invokeDevaToolsLogCatch() + CallerDevaToolsListenerManager.invokeDevaToolsLogCatchClose() closeLoggerLevel() return true } @@ -103,7 +106,10 @@ object MogoLogCatchManager : IMogoOnMessageListener, Handl } handler.sendEmptyMessageDelayed(MSG_TRY_CLOSE_LOG, delay) openLoggerLevel() - logInfoManager = LogInfoManagerFactory.createPushLogInfoManager(mContext, content, this) + logInfoManager = LogInfoManagerFactory.createPushLogInfoManager( + mContext, + MoGoAiCloudClientConfig.getInstance().sn + File.separator + TimeUtils.formatYMD(System.currentTimeMillis()), + content, this) logInfoManager?.start() } @@ -142,7 +148,7 @@ object MogoLogCatchManager : IMogoOnMessageListener, Handl override fun onClose(pkgName: String?) { ThreadUtils.runOnUiThread { - CallDevaToolsListenerManager.invokeDevaToolsLogCatch() + CallerDevaToolsListenerManager.invokeDevaToolsLogCatchClose() TipToast.shortTip("日志抓取默认计时结束") } } 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 15f4c9551d..624430853a 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 @@ -18,11 +18,14 @@ import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.data.obu.ObuStatusInfo import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarStateListener import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener +import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener 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.autopilot.CallerAutopilotCarStatusListenerManager +import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager +import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerHDMapManager import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager @@ -50,11 +53,11 @@ import kotlinx.android.synthetic.main.view_debug_setting.view.* * 展示 本机、网络、工控机、OBU等状态信息,支持设置IP,等参数进行调试 */ class DebugSettingView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 ) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoObuStatusListener, - IMoGoAutopilotStatusListener, IMoGoAutopilotCarStateListener, IMoGoMapLocationListener { + IMoGoAutopilotStatusListener, IMoGoAutopilotCarStateListener, IMoGoMapLocationListener { private val TAG = "DebugSettingView" @@ -133,7 +136,7 @@ class DebugSettingView @JvmOverloads constructor( tvObuInfo.text = CallerObuListenerManager.getObuStatusInfoJsonString() tvAutopilotInfo.text = - CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfoJsonString() + CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfoJsonString() // 初始化App 配置信息 val appConfigInfo = AppConfigInfo() @@ -151,7 +154,7 @@ class DebugSettingView @JvmOverloads constructor( // 初始化OBU IP信息 val ipAddress = - SharedPrefsMgr.getInstance(context).getString(MoGoConfig.OBU_IP, "192.168.1.199") + SharedPrefsMgr.getInstance(context).getString(MoGoConfig.OBU_IP, "192.168.1.199") etObuIP.setText(ipAddress) etObuIP.text?.let { etObuIP.setSelection(it.length) } @@ -191,18 +194,18 @@ class DebugSettingView @JvmOverloads constructor( // 初始化 GSP数据源 数据 rgGpsProvider.check( - when (FunctionBuildConfig.gpsProvider) { - 0 -> { - R.id.rbGpsProviderAndroid - } - 1 -> { - R.id.rbGpsProviderRTK - } - 2 -> { - R.id.rbGpsProviderOBU - } - else -> R.id.rbGpsProviderAndroid + when (FunctionBuildConfig.gpsProvider) { + 0 -> { + R.id.rbGpsProviderAndroid } + 1 -> { + R.id.rbGpsProviderRTK + } + 2 -> { + R.id.rbGpsProviderOBU + } + else -> R.id.rbGpsProviderAndroid + } ) rgGpsProvider.setOnCheckedChangeListener { group, checkedId -> when (checkedId) { @@ -220,14 +223,14 @@ class DebugSettingView @JvmOverloads constructor( // 初始化 感知数据是否绘制 选择情况 rgIsDrawIdentifyData.check( - when (FunctionBuildConfig.isDrawIdentifyData) { - true -> { - R.id.rbDraw - } - false -> { - R.id.rbDoNotDraw - } + when (FunctionBuildConfig.isDrawIdentifyData) { + true -> { + R.id.rbDraw } + false -> { + R.id.rbDoNotDraw + } + } ) rgIsDrawIdentifyData.setOnCheckedChangeListener { group, checkedId -> when (checkedId) { @@ -303,6 +306,21 @@ class DebugSettingView @JvmOverloads constructor( CallerSmpManager.showPanel() } } + + tbLogCatch.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + CallerDevaToolsManager.startCatchLog() + } else { + CallerDevaToolsManager.stopCatchLog() + } + } + CallerDevaToolsListenerManager.registerDevaToolsLogCatchListener(TAG, + object : IMoGoDevaToolsListener { + override fun onLogCatchClose() { + super.onLogCatchClose() + tbLogCatch.isChecked = false + } + }) } /** 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 b6682323d5..8881a1ae5a 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 @@ -242,6 +242,16 @@ android:textOn="打开「ADAS」Log" android:textSize="@dimen/dp_34" /> + + diff --git a/core/function-impl/mogo-core-function-main/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-main/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index 614073df92..d741ca6810 100644 --- a/core/function-impl/mogo-core-function-main/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-main/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -299,6 +299,9 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_GAODE_AIMLESS_SHARE, "GaoDeAimlessShare")); MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_MOGO_MONITOR, "MogoMonitor")); + //mogo deva tools + MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_DEVA_TOOLS, "IMoGoDevaToolsProvider")); + // 域控制器模块(新) MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_AUTO_PILOT, "IMoGoAutoPilotProvider")); // OBU 模块 diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/MogoTrafficLightManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/MogoTrafficLightManager.kt index a64045e0fc..5b149e9eb3 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/MogoTrafficLightManager.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/MogoTrafficLightManager.kt @@ -121,12 +121,12 @@ class MogoTrafficLightManager : IMogoCarLocationChangedListener2 { // 检测是否开过路口,开过路口则停止读灯。并重置 trafficLightResult 值为 null if (trafficLightResult != null && it.isInRange(loc.latitude, loc.longitude)) { inRange = true - Logger.d(TAG, "进入路口") +// Logger.d(TAG, "进入路口") CallTrafficLightListenerManager.invokeEnterCrossRoad(true) return } if (inRange) { - Logger.d(TAG, "离开路口") +// Logger.d(TAG, "离开路口") CallTrafficLightListenerManager.invokeEnterCrossRoad(false) inRange = false trafficLightResult = null diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/TrafficLightThreadHandler.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/TrafficLightThreadHandler.kt index afe63fb592..300a65b706 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/TrafficLightThreadHandler.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/TrafficLightThreadHandler.kt @@ -3,8 +3,6 @@ package com.mogo.eagle.core.function.v2x.trafficlight.core import android.os.Handler import android.os.Looper import android.os.Message -import com.mogo.eagle.core.function.v2x.trafficlight.TrafficLightConst -import com.mogo.utils.logger.Logger class TrafficLightThreadHandler : Handler { diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt index 1099384b47..f9633ad1c7 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt @@ -121,13 +121,6 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe this.result = trafficLightResult - if (!turnLightFirst) { - // 首次判断,变灯 - turnLightFirst = true - val controlTime = if (currentResult!!.isGreen()) 45 - currentResult.remain else 45 - Logger.d(TAG, "触发变灯 , controlTime : $controlTime") - turnLight(controlTime) - } lastResult?.let { //如果上次结果和本次灯态结果变化比较大,则已变灯,控制HMI展示弹窗 if (abs(currentResult!!.remain - it.remain) > 5) { @@ -149,6 +142,15 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe } } + + if (!turnLightFirst) { + // 首次判断,变灯 + turnLightFirst = true + val controlTime = if (currentResult!!.isGreen()) 45 - currentResult.remain else 45 + Logger.d(TAG, "触发变灯 , controlTime : $controlTime") + turnLight(controlTime) + } + //可作为补偿措施,暂不启用 // mLocation?.let { // if (canGetThroughCross(it, trafficLightResult)) { diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallDevaToolsListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsListenerManager.kt similarity index 95% rename from core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallDevaToolsListenerManager.kt rename to core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsListenerManager.kt index 6bcd8af8de..9dfaae530d 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallDevaToolsListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsListenerManager.kt @@ -5,7 +5,7 @@ import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener import com.mogo.eagle.core.utilcode.util.LogUtils import java.util.concurrent.ConcurrentHashMap -object CallDevaToolsListenerManager { +object CallerDevaToolsListenerManager { private const val TAG = "CallDevaToolsListenerManager" @@ -56,7 +56,7 @@ object CallDevaToolsListenerManager { } } - fun invokeDevaToolsLogCatch() { + fun invokeDevaToolsLogCatchClose() { M_DEVA_TOOLS_LISTENER.forEach { val listener = it.value listener.onLogCatchClose() diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt new file mode 100644 index 0000000000..deadeb95e3 --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt @@ -0,0 +1,26 @@ +package com.mogo.eagle.core.function.call.devatools + +import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.eagle.core.data.constants.MogoServicePaths.PATH_DEVA_TOOLS +import com.mogo.eagle.core.function.api.devatools.IDevaToolsProvider + +object CallerDevaToolsManager { + + private val devaToolsProviderApi: IDevaToolsProvider + get() = ARouter.getInstance().build(PATH_DEVA_TOOLS) + .navigation() as IDevaToolsProvider + + /** + * 开始抓取全量日志 + */ + fun startCatchLog() { + devaToolsProviderApi.startLogCatch() + } + + /** + * 停止抓取全量日志 + */ + fun stopCatchLog() { + devaToolsProviderApi.stopLogCatch() + } +} \ No newline at end of file diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/TimeUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/TimeUtils.java index 3225975179..b8bed29b54 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/TimeUtils.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/TimeUtils.java @@ -55,6 +55,14 @@ public final class TimeUtils { throw new UnsupportedOperationException("u can't instantiate me..."); } + @SuppressLint("SimpleDateFormat") + public static String formatYMD(long time){ + Date date = new Date(time); + String strDateFormat = "yyyy-MM-dd"; + SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat); + return sdf.format(date); + } + /** * Milliseconds to the formatted time string. *

The pattern is {@code yyyy-MM-dd HH:mm:ss}.

diff --git a/gradle.properties b/gradle.properties index a0e65263a6..d745816928 100644 --- a/gradle.properties +++ b/gradle.properties @@ -56,11 +56,11 @@ bytex.forbidUseLenientMutationDuringGetArtifact=true bytex.verifyProguardConfigurationChanged=false bytex.ASM_API=ASM7 -HOOK_LOG_VERSION=1.4.90 +HOOK_LOG_VERSION=1.4.94 SERVICE_CHAIN_VERSION=1.0.32 ################ 外部依赖引用 ################ # loglib -LOGLIB_VERSION=1.1.4 +LOGLIB_VERSION=1.1.6 ######## MogoAiCloudSDK Version ######## # 网络请求 MOGO_NETWORK_VERSION=1.3.13