[6.11.0] ADAS LIB中进行的异常捕获,包括解析异常和数据使用异常(UI层)添加到链路日志以及log堆栈打印
This commit is contained in:
@@ -14,6 +14,7 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_AD
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_CAR_CONFIG
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_CAR_LOC
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_COLD_START_STATE
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_ALL_ERROR
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_FM_MSG
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_FSM_MSG
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_GUARDIAN
|
||||
@@ -119,6 +120,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm
|
||||
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume
|
||||
import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus
|
||||
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
|
||||
import com.zhjt.mogo.adas.utils.ByteUtil
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import fault_management.FmInfo
|
||||
import fsm.Fsm2024
|
||||
@@ -138,6 +140,8 @@ import prediction.Prediction
|
||||
import record_cache.RecordPanelOuterClass
|
||||
import system_master.SsmInfo
|
||||
import system_master.SystemStatusInfo
|
||||
import java.io.PrintWriter
|
||||
import java.io.StringWriter
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
/**
|
||||
@@ -1534,11 +1538,43 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据解析失败、数据异常回调
|
||||
* @param status 错误原因
|
||||
* @param bytes 原始数据
|
||||
* ADAS LIB中进行的异常捕获,包括解析异常和数据使用异常(UI层)
|
||||
*
|
||||
* @param status 错误原因
|
||||
* @param bytes 原始数据
|
||||
* @param exception 异常堆栈 status==ProtocolStatus.BUSINESS_DATA_PARSE_FAILED 或 ProtocolStatus.HEADER_DECODE_FAILED 时才存在异常信息
|
||||
*/
|
||||
override fun onError(status: ProtocolStatus, bytes: ByteArray) {
|
||||
CallerLogger.e("$M_D_C$TAG", "status===$status")
|
||||
override fun onError(
|
||||
status: ProtocolStatus,
|
||||
bytes: ByteArray?,
|
||||
exception: java.lang.Exception?
|
||||
) {
|
||||
val s = status.desc
|
||||
val b = try {
|
||||
if (bytes == null || bytes.isEmpty()) "NULL" else ByteUtil.byteArrToHex(bytes, false)
|
||||
} catch (ex: Exception) {
|
||||
"转换异常:" + ex.message
|
||||
}
|
||||
val e =
|
||||
if ((status == ProtocolStatus.BUSINESS_DATA_PARSE_FAILED || status == ProtocolStatus.HEADER_DECODE_FAILED) && exception != null) {
|
||||
val sw = StringWriter()
|
||||
val pw = PrintWriter(sw)
|
||||
exception.printStackTrace(pw)
|
||||
sw.toString().trim()
|
||||
} else {
|
||||
"NULL"
|
||||
}
|
||||
adasError(s, b, e)
|
||||
CallerLogger.e("$M_D_C$TAG", "数据错误 协议状态:$s 异常堆栈:$e")
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_ALL_ERROR,
|
||||
paramIndexes = [0, 1, 2]
|
||||
)
|
||||
private fun adasError(status: String, bytes: String, error: String) {
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user