fix bug of push log func and add trace of car status log

This commit is contained in:
zhongchao
2022-03-29 14:13:03 +08:00
parent e98408e1d8
commit 9cee7a84e7
8 changed files with 749 additions and 728 deletions

View File

@@ -36,7 +36,6 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
ILogListener {
private const val TAG = "MogoLogCatchManager"
private const val MANUAL_CATCH_PKG_NAME = "manual-catch-log"
private const val MSG_TRY_CLOSE_LOG = 1001
private var mContext: Context? = null
@@ -81,14 +80,27 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
override fun onMsgReceived(obj: RemoteLogPushContent?) {
obj?.let {
CallerLogger.d("$M_DEVA$TAG", "收到push消息: $obj")
when (obj.type) {
START_CATCH_LOG -> if (!catchingList.contains(obj.pkgName)) {
startCatchLog(obj)
}
STOP_CATCH_LOG -> stopCatchLog(obj)
LOCAL_CONFIG_OPEN_LOG -> openLoggerLevel()
LOCAL_CONFIG_CLOSE_LOG -> closeLoggerLevel()
else -> {
ThreadUtils.runOnUiThread {
obj.pkgName = mContext?.packageName
when (obj.type) {
START_CATCH_LOG -> if (!catchingList.contains(obj.pkgName)) {
TipToast.longTip("云端下发抓取日志,时间:${obj.duration}分钟")
startCatchLog(obj.duration)
}
STOP_CATCH_LOG -> {
TipToast.longTip("云端下发停止抓取日志")
stopCatchLog(obj)
}
LOCAL_CONFIG_OPEN_LOG -> {
TipToast.longTip("云端下发打开日志开关")
openLoggerLevel()
}
LOCAL_CONFIG_CLOSE_LOG -> {
TipToast.longTip("云端下发关闭日志开关")
closeLoggerLevel()
}
else -> {
}
}
}
}
@@ -104,12 +116,13 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
}
fun startCatchLog(duration: Int = 10, logPrefixName: String? = null) {
if (catchingList.contains(MANUAL_CATCH_PKG_NAME)) {
if (catchingList.contains(manualContent.pkgName + logPrefixName)) {
TipToast.shortTip("已经在抓取日志了,请稍后再试")
} else {
CallerLogger.d("$M_DEVA$TAG", "开始抓取日志==== duration : $duration")
manualContent.type = START_CATCH_LOG
manualContent.duration = duration
CallerLogger.d("$M_DEVA$TAG", "manualContent : $manualContent")
startCatchLog(manualContent, logPrefixName)
}
}
@@ -121,7 +134,7 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
}
private fun startCatchLog(content: RemoteLogPushContent, logPrefixName: String? = null) {
catchingList.add(content.pkgName)
catchingList.add(content.pkgName + logPrefixName)
var delay = (content.duration).toLong()
handler.removeMessages(MSG_TRY_CLOSE_LOG)
if (delay <= 0) {
@@ -131,7 +144,10 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
handler.sendEmptyMessageDelayed(MSG_TRY_CLOSE_LOG, delay * 1000L * 60)
openLoggerLevel()
CallerLogger.d(
"$M_DEVA$TAG",
"createPushLogInfoManager pkgName : ${content.pkgName} , duration : ${content.duration}"
)
logInfoManager = LogInfoManagerFactory.createPushLogInfoManager(
mContext,
MoGoAiCloudClientConfig.getInstance().sn,
@@ -140,7 +156,7 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
content,
this
)
CallerLogger.d("$M_DEVA$TAG", "start : ${logInfoManager.toString()}")
logInfoManager?.start()
logInfoManager?.registerLogOutListener { lineLog ->
CallerDevaToolsListenerManager.invokeDevaToolsLogCatchLines(lineLog)

View File

@@ -4,8 +4,8 @@ import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
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.mogo.logger.scene.SceneConstant.Companion.M_DEVA
import com.mogo.eagle.core.utilcode.util.DeviceUtils
import com.mogo.eagle.core.utilcode.util.Utils
import com.zhidao.loglib.fw.FileWriteManager
@@ -34,13 +34,26 @@ class TraceManager {
// Trace过程中进行日志抓取对日志进行配置
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS] =
FwBuild(true, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_INIT)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA] =
FwBuild(false, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_MSG)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT] =
FwBuild(true, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_AUTO)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED] =
FwBuild(false, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_DATA_TRACK)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY] =
FwBuild(false, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_TRAJECTORY)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE] =
FwBuild(false, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_VEHICLE)
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS] =
ChainLogParam(true, "ADAS连接状态")
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA] =
ChainLogParam(false, "ADAS长链数据")
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT] =
ChainLogParam(true, "ADAS自动驾驶链路(包含: 定位,自动驾驶状态,全局路径,到站提醒,节点状态,异常上报)")
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED] =
ChainLogParam(false, "ADAS感知物体")
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY] =
ChainLogParam(false, "ADAS车前引导线")
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE] =
ChainLogParam(false, "ADAS车辆底盘数据")
FileWriteManager.getInstance()
.init(context, MoGoAiCloudClientConfig.getInstance().sn, pkgName, fwBuildMap)
}
@@ -51,10 +64,12 @@ class TraceManager {
fun refreshTraceInfo(map: HashMap<Int, ChainLogParam>) {
map.forEach { (type, param) ->
val fwBuild = this.fwBuildMap[type]
fwBuild?.let {
CallerLogger.d("$M_DEVA$TAG", "param : ${param.des} , record : ${param.record}")
it.isRecord = param.record
if(type != ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS){
val fwBuild = this.fwBuildMap[type]
fwBuild?.let {
CallerLogger.d("$M_DEVA$TAG", "param : ${param.des} , record : ${param.record}")
it.isRecord = param.record
}
}
}
FileWriteManager.getInstance().operateChainMap(fwBuildMap)