fix bug and add new func

This commit is contained in:
zhongchao
2022-02-22 22:37:52 +08:00
parent 9df5dd5203
commit 004a37b15b
8 changed files with 73 additions and 21 deletions

View File

@@ -9,9 +9,11 @@ import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_LINK_LOG_ADA
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_DATA
import com.mogo.eagle.core.data.chain.ChainLogParam
import com.mogo.eagle.core.data.constants.MoGoConfig
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.function.api.devatools.IDevaToolsProvider
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.util.DeviceUtils
import com.mogo.eagle.core.utilcode.util.Utils
import com.zhidao.loglib.fw.FileWriteManager
@@ -30,13 +32,37 @@ class DevaToolsProvider : IDevaToolsProvider {
override fun init(context: Context) {
MogoLogCatchManager.init(context)
logCheck(context)
initTrace(context)
}
private fun logCheck(context: Context) {
val logger = SharedPrefsMgr.getInstance(context).getBoolean(MoGoConfig.CATCH_LOG, false)
val loggerTime = SharedPrefsMgr.getInstance(context).getLong(MoGoConfig.CATCH_LOG_TIME, 0)
val logCatchDuration = (System.currentTimeMillis() - loggerTime) / 1000 / 60
if (logger && loggerTime > 0) {
val logTime: Int = if (10 - logCatchDuration < 1) {
1
} else {
10 - logCatchDuration.toInt()
}
MogoLogCatchManager.startCatchLog(logTime)
} else {
Logger.d(
functionName,
"logCheck logger : $logger , logCatchDuration : $logCatchDuration"
)
}
}
override fun startLogCatch() {
MogoLogCatchManager.startCatchLog()
}
override fun startLogCatch(duration: Int) {
MogoLogCatchManager.startCatchLog(duration)
}
override fun stopLogCatch() {
MogoLogCatchManager.stopCatchLog()
}
@@ -52,8 +78,8 @@ class DevaToolsProvider : IDevaToolsProvider {
fwBuildMap[CHAIN_LINK_LOG_WEB_SOCKET_DATA] =
FwBuild(false, pkgName + CHAIN_LINK_LOG_ADAS_MSG, 500)
traceInfoCache[CHAIN_LINK_LOG_CONNECT_STATUS] = ChainLogParam(true,"ADAS连接状态")
traceInfoCache[CHAIN_LINK_LOG_WEB_SOCKET_DATA] = ChainLogParam(false,"ADAS长链数据")
traceInfoCache[CHAIN_LINK_LOG_CONNECT_STATUS] = ChainLogParam(true, "ADAS连接状态")
traceInfoCache[CHAIN_LINK_LOG_WEB_SOCKET_DATA] = ChainLogParam(false, "ADAS长链数据")
FileWriteManager.getInstance()
.init(context, MoGoAiCloudClientConfig.getInstance().sn, pkgName, fwBuildMap)
}
@@ -67,7 +93,7 @@ class DevaToolsProvider : IDevaToolsProvider {
map.forEach { (type, param) ->
val fwBuild = this.fwBuildMap[type]
fwBuild?.let {
Logger.d(functionName,"param : ${param.des} , record : ${param.record}")
Logger.d(functionName, "param : ${param.des} , record : ${param.record}")
it.isRecord = param.record
}
}

View File

@@ -7,10 +7,12 @@ 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.data.constants.MoGoConfig
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
import com.mogo.eagle.core.network.NetConfig
import com.mogo.eagle.core.utilcode.mogo.logger.LogLevel
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.module.common.MogoApisHandler
@@ -45,7 +47,6 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
MogoApisHandler.getInstance().apis
.getSocketManagerApi(AbsMogoApplication.getApp().applicationContext)
.registerOnMessageListener(LOG_PUSH_TYPE, this)
manualContent.duration = 10
manualContent.pkgName = context.packageName
}
@@ -78,12 +79,13 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
return false
}
fun startCatchLog() {
fun startCatchLog(duration:Int = 10) {
if (catchingList.contains(MANUAL_CATCH_PKG_NAME)) {
TipToast.shortTip("已经在抓取日志了,请稍后再试")
} else {
Logger.d(TAG, "开始抓取日志====")
Logger.d(TAG, "开始抓取日志==== duration : $duration")
manualContent.type = START_CATCH_LOG
manualContent.duration = duration
startCatchLog(manualContent)
}
}
@@ -99,21 +101,28 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
var delay = (content.duration).toLong()
handler.removeMessages(MSG_TRY_CLOSE_LOG)
if (delay <= 0) {
// 如果push 下来的delay小于等于0那就给个默认最大值一小时
// 如果push 下来的delay小于等于0那就给个默认
delay = 10
}
handler.sendEmptyMessageDelayed(MSG_TRY_CLOSE_LOG, delay * 1000L * 60)
openLoggerLevel()
logInfoManager = LogInfoManagerFactory.createPushLogInfoManager(
mContext,
MoGoAiCloudClientConfig.getInstance().sn,
content,
this
)
logInfoManager?.start()
logInfoManager?.registerLogOutListener { lineLog ->
CallerDevaToolsListenerManager.invokeDevaToolsLogCatchLines(lineLog)
}
SharedPrefsMgr.getInstance(mContext!!).putBoolean(MoGoConfig.CATCH_LOG, true)
SharedPrefsMgr.getInstance(mContext!!)
.putLong(MoGoConfig.CATCH_LOG_TIME, System.currentTimeMillis())
}
private fun stopCatchLog(content: RemoteLogPushContent) {
@@ -124,6 +133,9 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
logInfoManager?.stop()
logInfoManager = null
closeLoggerLevel()
SharedPrefsMgr.getInstance(mContext!!).putBoolean(MoGoConfig.CATCH_LOG, false)
SharedPrefsMgr.getInstance(mContext!!).putLong(MoGoConfig.CATCH_LOG_TIME, 0)
}
/**
@@ -151,6 +163,10 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
override fun onClose(pkgName: String?) {
ThreadUtils.runOnUiThread {
SharedPrefsMgr.getInstance(mContext!!).putBoolean(MoGoConfig.CATCH_LOG, false)
SharedPrefsMgr.getInstance(mContext!!).putLong(MoGoConfig.CATCH_LOG_TIME, 0)
CallerDevaToolsListenerManager.invokeDevaToolsLogCatchClose()
TipToast.shortTip("日志抓取默认计时结束")
}

View File

@@ -55,9 +55,9 @@ class DebugSettingView @JvmOverloads constructor(
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoObuStatusListener,
IMoGoAutopilotStatusListener, IMoGoAutopilotCarStateListener,
IMoGoMapLocationListener, IMoGoAutopilotIdentifyListener,
IMoGoAutopilotPlanningListener {
IMoGoAutopilotStatusListener, IMoGoAutopilotCarStateListener,
IMoGoMapLocationListener, IMoGoAutopilotIdentifyListener,
IMoGoAutopilotPlanningListener {
private val TAG = "DebugSettingView"
@@ -355,10 +355,8 @@ class DebugSettingView @JvmOverloads constructor(
tbLogCatch.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {
CallerDevaToolsManager.startCatchLog()
SharedPrefsMgr.getInstance(context).putBoolean(MoGoConfig.CATCH_LOG, true)
} else {
CallerDevaToolsManager.stopCatchLog()
SharedPrefsMgr.getInstance(context).putBoolean(MoGoConfig.CATCH_LOG, false)
}
}
CallerDevaToolsListenerManager.registerDevaToolsLogCatchListener(TAG,
@@ -438,15 +436,15 @@ class DebugSettingView @JvmOverloads constructor(
tvAutopilotInfo.text = GsonUtils.toJson(mAutoPilotStatusInfo)
tvCarInfo.text =
"GPS时间${mAutoPilotCarStateInfo?.values?.satelliteTime}\n" +
"自车经纬度:\n${mAutoPilotCarStateInfo?.values?.lon}\n${mAutoPilotCarStateInfo?.values?.lat}\n"
"GPS时间${mAutoPilotCarStateInfo?.values?.satelliteTime}\n" +
"自车经纬度:\n${mAutoPilotCarStateInfo?.values?.lon}\n${mAutoPilotCarStateInfo?.values?.lat}\n"
tvIdentifyInfo.text =
"感知数据个数:${mIdentifyDataSize}"
"感知数据个数:${mIdentifyDataSize}"
tvTrajectoryInfoSize.text =
"引导线点个数:${mTrajectoryInfoSize}"
"引导线点个数:${mTrajectoryInfoSize}"
tvRouteInfoSize.text =
"全局路径规划点个数:${mRouteInfoSize}"
"全局路径规划点个数:${mRouteInfoSize}"
// 用完之后重制为0防止节点回掉突然没数据导致页面显示还是之前的数据情况
mIdentifyDataSize = 0

View File

@@ -14,6 +14,8 @@ object MoGoConfig {
// CMD全量日志抓取
const val CATCH_LOG = "CATCH_LOG"
// CMD全量日志抓取当时时间
const val CATCH_LOG_TIME = "CATCH_LOG_TIME"
// 是否是演示美化模式会存在SP中方便做现场恢复
const val IS_DEMO_MODE = "IS_DEMO_MODE"

View File

@@ -10,6 +10,8 @@ interface IDevaToolsProvider : IMoGoFunctionServerProvider {
fun startLogCatch()
fun startLogCatch(duration: Int)
fun stopLogCatch()
fun getTraceInfo():HashMap<Int, ChainLogParam>

View File

@@ -4,6 +4,7 @@ import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.chain.ChainLogParam
import com.mogo.eagle.core.data.constants.MogoServicePaths.PATH_DEVA_TOOLS
import com.mogo.eagle.core.function.api.devatools.IDevaToolsProvider
import com.mogo.eagle.core.utilcode.util.SnackbarUtils
object CallerDevaToolsManager {
@@ -18,6 +19,14 @@ object CallerDevaToolsManager {
devaToolsProviderApi.startLogCatch()
}
/**
* 开始抓取全量日志
* duration 分钟数
*/
fun startCatchLog(duration: Int){
devaToolsProviderApi.startLogCatch(duration)
}
/**
* 停止抓取全量日志
*/

View File

@@ -179,13 +179,12 @@ public abstract class AbsMogoApplication extends Application {
*/
protected void registerSocketHttpDnsTTL(String host) {
sApis.addressChangedListener(map -> {
Logger.d("TEST-SOCKET", "ttl callBack ,ready to getCache Dns IP");
String dnsCacheIp = sApis.getCachedHttpDnsIps(host, HTTP_DNS_ADDRESS_TYPE_HTTP);
if (dnsCacheIp == null) {
return;
}
Logger.d("TEST-SOCKET", "获取缓存Dns IP : " + dnsCacheIp + " , 原缓存 IP " + cacheIp);
if (!dnsCacheIp.equals(cacheIp)) {
Logger.d("TEST-SOCKET", "获取缓存Dns IP : " + dnsCacheIp + " , 原缓存 IP " + cacheIp);
socketTTL();
this.cacheIp = dnsCacheIp;
}

View File

@@ -56,11 +56,11 @@ bytex.forbidUseLenientMutationDuringGetArtifact=true
bytex.verifyProguardConfigurationChanged=false
bytex.ASM_API=ASM7
HOOK_LOG_VERSION=1.5.15
HOOK_LOG_VERSION=1.5.16
SERVICE_CHAIN_VERSION=1.0.52
################ 外部依赖引用 ################
# loglib
LOGLIB_VERSION=1.2.3
LOGLIB_VERSION=1.2.8
######## MogoAiCloudSDK Version ########
# 网络请求
MOGO_NETWORK_VERSION=1.3.19