This commit is contained in:
zhongchao
2022-03-17 19:06:22 +08:00
parent 22c7920027
commit ee881c99e7
33 changed files with 330 additions and 403 deletions

View File

@@ -4,12 +4,15 @@ import android.annotation.SuppressLint
import android.content.Context
import android.view.View
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.data.chain.ChainLogParam
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.data.deva.chain.ChainLogParam
import com.mogo.eagle.core.data.deva.scene.SceneModule
import com.mogo.eagle.core.data.deva.scene.SceneTAG
import com.mogo.eagle.core.function.api.devatools.IDevaToolsProvider
import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager
import com.zhjt.mogo_core_function_devatools.feedback.FeedbackManager
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchManager
import com.zhjt.mogo_core_function_devatools.scene.SceneManager.Companion.sceneManager
import com.zhjt.mogo_core_function_devatools.trace.TraceManager.Companion.traceManager
import record_cache.RecordPanelOuterClass
@@ -49,6 +52,22 @@ class DevaToolsProvider : IDevaToolsProvider {
traceManager.refreshTraceInfo(map)
}
override fun getModuleTAG(): MutableMap<String, SceneModule> {
return sceneManager.getModuleLogTAG()
}
override fun updateModuleTAG(moduleTag: MutableMap<String, SceneModule>) {
sceneManager.updateModuleTAG(moduleTag)
}
override fun getSceneLogTAG(): MutableMap<String, SceneTAG> {
return sceneManager.getSceneLogTAG()
}
override fun updateSceneTAG(sceneTag: MutableMap<String, SceneTAG>) {
sceneManager.updateSceneTAG(sceneTag)
}
override fun initBadCase(view: View, onShow: (() -> Unit)?, onHide: (() -> Unit)?) {
BadCaseManager.init(view, onShow, onHide)
}

View File

@@ -1,17 +1,127 @@
package com.zhjt.mogo_core_function_devatools.scene
import com.mogo.eagle.core.data.deva.scene.SceneLogTAG
import com.mogo.eagle.core.data.deva.scene.SceneModule
import com.mogo.eagle.core.data.deva.scene.SceneModuleTAG
import com.mogo.eagle.core.data.deva.scene.SceneTAG
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.scene.Scene.Companion.scene
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ADAS_IMPL
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_NETWORK
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OLD_ROUTE
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_V2X
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneLogCache
//todo 1. SceneLogCache增加模块名称提供场景需要
//todo 2. 对特定场景提供数据, 网约车,调度...
//1. SceneLogCache增加模块名称提供场景需要
//2. 对特定场景提供数据, 网约车,调度...
class SceneManager {
companion object {
private const val ADAS = "ADAS"
private const val DEVA = "DEVA"
private const val HMI = "HMI"
private const val OBU = "OBU"
private const val V2X = "V2X"
private const val ROUTE = "ROUTE"
private const val NET = "NET"
private const val BUS = "BUS"
private const val TAXI = "TAXI"
val sceneManager: SceneManager by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
SceneManager()
}
}
fun init(){
private var sceneCache: MutableMap<String, SceneLogCache> = scene.getSceneCache()
private var sceneModuleTAG: SceneModuleTAG = SceneModuleTAG(mutableMapOf())
private var sceneLogTAG: SceneLogTAG = SceneLogTAG(mutableMapOf())
fun init() {
//过滤所需条件
sceneModuleTAG.map[ADAS] = SceneModule(true, M_ADAS_IMPL)
sceneModuleTAG.map[DEVA] = SceneModule(true, M_DEVA)
sceneModuleTAG.map[HMI] = SceneModule(true, M_HMI)
sceneModuleTAG.map[OBU] = SceneModule(false, M_OBU)
sceneModuleTAG.map[V2X] = SceneModule(true, M_V2X)
sceneModuleTAG.map[ROUTE] = SceneModule(true, M_OLD_ROUTE)
sceneModuleTAG.map[NET] = SceneModule(true, M_NETWORK)
sceneModuleTAG.map[BUS] = SceneModule(false, M_BUS)
sceneModuleTAG.map[TAXI] = SceneModule(false, M_TAXI)
sceneLogTAG.map[TAXI] = SceneTAG(false)
sceneLogTAG.map[BUS] = SceneTAG(false)
}
fun getModuleLogTAG(): MutableMap<String, SceneModule> {
return sceneModuleTAG.map
}
fun getSceneLogTAG(): MutableMap<String, SceneTAG> {
return sceneLogTAG.map
}
fun updateModuleTAG(moduleTag: MutableMap<String, SceneModule>) {
moduleTag.iterator().forEach { map ->
val name = map.value.name
val logger = map.value.log
name?.let {
val sceneLogCache = sceneCache[it]
sceneLogCache?.let { logCache ->
logCache.logger = logger
sceneCache[it] = logCache
}
}
}
scene.updateSceneCache(sceneCache)
}
fun updateSceneTAG(sceneTag: MutableMap<String, SceneTAG>) {
sceneTag.iterator().forEach { map ->
realUpdateSceneTAG(map.key, map.value.log)
}
updateSceneModuleTAG()
}
private fun updateSceneModuleTAG() {
sceneModuleTAG.map.iterator().forEach { map ->
val sceneModule = map.value
val sceneLogCache = sceneCache[sceneModule.name]
sceneLogCache?.let {
sceneModule.log = it.logger
}
map.setValue(sceneModule)
}
//call back
CallerDevaToolsListenerManager.invokeDevaToolsModuleLogChanges(sceneModuleTAG.map)
}
private fun realUpdateSceneTAG(name: String, logger: Boolean) {
when (name) {
TAXI -> {
sceneCache[M_TAXI]?.logger = logger
sceneCache[M_NETWORK]?.logger = logger
sceneCache[M_ADAS_IMPL]?.logger = logger
sceneCache[M_HMI]?.logger = logger
sceneCache[M_DEVA]?.logger = logger
sceneCache[M_OLD_ROUTE]?.logger = logger
scene.updateSceneCache(sceneCache)
}
BUS -> {
sceneCache[M_BUS]?.logger = logger
sceneCache[M_NETWORK]?.logger = logger
sceneCache[M_ADAS_IMPL]?.logger = logger
sceneCache[M_HMI]?.logger = logger
sceneCache[M_DEVA]?.logger = logger
sceneCache[M_OLD_ROUTE]?.logger = logger
scene.updateSceneCache(sceneCache)
}
}
}
}

View File

@@ -2,8 +2,8 @@ package com.zhjt.mogo_core_function_devatools.trace
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.data.chain.ChainConstant
import com.mogo.eagle.core.data.chain.ChainLogParam
import com.mogo.eagle.core.data.deva.chain.ChainConstant
import com.mogo.eagle.core.data.deva.chain.ChainLogParam
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.DeviceUtils