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

@@ -96,23 +96,25 @@ class DebugSettingView @JvmOverloads constructor(
//当前PAD支持的CPU架构
private var cpuList = "CPU架构"
//日志过滤标签集合
private val sceneMap = mutableMapOf< String, SceneModule>()
private val sceneMap = mutableMapOf<String, SceneModule>()
private var dockerRebootDialog: DockerRebootDialog? = null //docker重启对话框
private var adUpgradeDialog : AdUpgradeDialog? = null //工控机升级对话框
private var upgradeMode: Int=-1 //升级模式
private var downloadStatus: Int=-1 //下载状态
private var currentProgress: Int=-1 //当前已下载包体大小
private var previousProgress: Int=-1 //前一秒的下载进度,用于计算下载剩余时间
private var totalProgress: Int=-1 //包体总大小
private var downloadVersion: String?=null //工控机docker版本
private var upgradeStatus: Int=-1 //升级状态
private var adUpgradeDialog: AdUpgradeDialog? = null //工控机升级对话框
private var upgradeMode: Int = -1 //升级模式
private var downloadStatus: Int = -1 //下载状态
private var currentProgress: Int = -1 //当前已下载包体大小
private var previousProgress: Int = -1 //前一秒的下载进度,用于计算下载剩余时间
private var totalProgress: Int = -1 //包体总大小
private var downloadVersion: String? = null //工控机docker版本
private var upgradeStatus: Int = -1 //升级状态
//ADAS连接状态
private var adasConnectStatus: Boolean=false
private var adasConnectStatus: Boolean = false
//OBU连接状态
private var obuConnectStatus: Boolean=false
private var obuConnectStatus: Boolean = false
private val mapUiController by lazy {
CallerMapUIServiceManager.getMapUIController()
@@ -185,23 +187,23 @@ class DebugSettingView @JvmOverloads constructor(
}
private fun initView() {
val iconDown = ContextCompat.getDrawable(context,R.drawable.icon_down)
iconDown?.setBounds(0,0,iconDown.minimumWidth,iconDown.minimumHeight)
val iconRight = ContextCompat.getDrawable(context,R.drawable.icon_right)
iconRight?.setBounds(0,0,iconRight.minimumWidth,iconRight.minimumHeight)
val iconDown = ContextCompat.getDrawable(context, R.drawable.icon_down)
iconDown?.setBounds(0, 0, iconDown.minimumWidth, iconDown.minimumHeight)
val iconRight = ContextCompat.getDrawable(context, R.drawable.icon_right)
iconRight?.setBounds(0, 0, iconRight.minimumWidth, iconRight.minimumHeight)
/**
* 设备绑定关系
*/
tbDeviceBind.setOnCheckedChangeListener { buttonView, isChecked ->
if(isChecked){
buttonView.setCompoundDrawables(null,null,iconDown,null)
if (isChecked) {
buttonView.setCompoundDrawables(null, null, iconDown, null)
//展示隐藏设备绑定关系视图
deviceBindLayout.visibility =View.VISIBLE
}else{
buttonView.setCompoundDrawables(null,null,iconRight,null)
deviceBindLayout.visibility = View.VISIBLE
} else {
buttonView.setCompoundDrawables(null, null, iconRight, null)
//默认隐藏设备绑定关系视图
deviceBindLayout.visibility =View.GONE
deviceBindLayout.visibility = View.GONE
}
}
@@ -209,12 +211,12 @@ class DebugSettingView @JvmOverloads constructor(
* 版本信息
*/
tbAppVersionInfo.setOnCheckedChangeListener { buttonView, isChecked ->
if(isChecked){
buttonView.setCompoundDrawables(null,null,iconDown,null)
if (isChecked) {
buttonView.setCompoundDrawables(null, null, iconDown, null)
//展示版本信息
appVersionInfoLayout.visibility = View.VISIBLE
}else{
buttonView.setCompoundDrawables(null,null,iconRight,null)
} else {
buttonView.setCompoundDrawables(null, null, iconRight, null)
//隐藏版本信息
appVersionInfoLayout.visibility = View.GONE
}
@@ -223,33 +225,33 @@ class DebugSettingView @JvmOverloads constructor(
* 状态中心
*/
tbStatusCenter.setOnCheckedChangeListener { buttonView, isChecked ->
if(isChecked){
buttonView.setCompoundDrawables(null,null,iconDown,null)
if (isChecked) {
buttonView.setCompoundDrawables(null, null, iconDown, null)
//展示状态中心
statusCenterLayout.visibility = View.VISIBLE
}else{
buttonView.setCompoundDrawables(null,null,iconRight,null)
} else {
buttonView.setCompoundDrawables(null, null, iconRight, null)
//隐藏状态中心
statusCenterLayout.visibility = View.GONE
}
}
for(element in DeviceUtils.getABIs()){
for (element in DeviceUtils.getABIs()) {
cpuList = "$cpuList$element "
}
tvCPUFrameworkInfo.text =cpuList
tvCPUFrameworkInfo.text = cpuList
/**
* 控制中心
*/
tbControlCenter.setOnCheckedChangeListener { buttonView, isChecked ->
if(isChecked){
buttonView.setCompoundDrawables(null,null,iconDown,null)
if (isChecked) {
buttonView.setCompoundDrawables(null, null, iconDown, null)
//展示控制中心
controlCenterLayout.visibility = View.VISIBLE
}else{
buttonView.setCompoundDrawables(null,null,iconRight,null)
} else {
buttonView.setCompoundDrawables(null, null, iconRight, null)
//隐藏控制中心
controlCenterLayout.visibility = View.GONE
}
@@ -259,12 +261,12 @@ class DebugSettingView @JvmOverloads constructor(
* 域控制器
*/
tbDomainController.setOnCheckedChangeListener { buttonView, isChecked ->
if(isChecked){
buttonView.setCompoundDrawables(null,null,iconDown,null)
if (isChecked) {
buttonView.setCompoundDrawables(null, null, iconDown, null)
//展示域控制器
domainControllerLayout.visibility = View.VISIBLE
}else{
buttonView.setCompoundDrawables(null,null,iconRight,null)
} else {
buttonView.setCompoundDrawables(null, null, iconRight, null)
//隐藏域控制器
domainControllerLayout.visibility = View.GONE
}
@@ -274,13 +276,13 @@ class DebugSettingView @JvmOverloads constructor(
* OBU控制中心
*/
tbObuController.setOnCheckedChangeListener { buttonView, isChecked ->
if(isChecked){
buttonView.setCompoundDrawables(null,null,iconDown,null)
if (isChecked) {
buttonView.setCompoundDrawables(null, null, iconDown, null)
//展示OBU控制中心
obuControllerLayout.visibility = View.VISIBLE
}else{
buttonView.setCompoundDrawables(null,null,iconRight,null)
} else {
buttonView.setCompoundDrawables(null, null, iconRight, null)
//隐藏OBU控制中心
obuControllerLayout.visibility = View.GONE
}
@@ -290,12 +292,12 @@ class DebugSettingView @JvmOverloads constructor(
* HMI控制中心
*/
tbHmiController.setOnCheckedChangeListener { buttonView, isChecked ->
if(isChecked){
buttonView.setCompoundDrawables(null,null,iconDown,null)
if (isChecked) {
buttonView.setCompoundDrawables(null, null, iconDown, null)
//展示HMI控制中心
hmiControllerLayout.visibility = View.VISIBLE
}else{
buttonView.setCompoundDrawables(null,null,iconRight,null)
} else {
buttonView.setCompoundDrawables(null, null, iconRight, null)
//隐藏HMI控制中心
hmiControllerLayout.visibility = View.GONE
}
@@ -305,12 +307,12 @@ class DebugSettingView @JvmOverloads constructor(
* 高精地图控制中心
*/
tbHdMapController.setOnCheckedChangeListener { buttonView, isChecked ->
if(isChecked){
buttonView.setCompoundDrawables(null,null,iconDown,null)
if (isChecked) {
buttonView.setCompoundDrawables(null, null, iconDown, null)
//展示高精地图控制中心
hdMapControllerLayout.visibility = View.VISIBLE
}else{
buttonView.setCompoundDrawables(null,null,iconRight,null)
} else {
buttonView.setCompoundDrawables(null, null, iconRight, null)
//隐藏高精地图控制中心
hdMapControllerLayout.visibility = View.GONE
}
@@ -320,12 +322,12 @@ class DebugSettingView @JvmOverloads constructor(
* 日志中心
*/
tbLogcatCenter.setOnCheckedChangeListener { buttonView, isChecked ->
if(isChecked){
buttonView.setCompoundDrawables(null,null,iconDown,null)
if (isChecked) {
buttonView.setCompoundDrawables(null, null, iconDown, null)
//展示日志中心
logcatCenterLayout.visibility = View.VISIBLE
}else{
buttonView.setCompoundDrawables(null,null,iconRight,null)
} else {
buttonView.setCompoundDrawables(null, null, iconRight, null)
//隐藏日志中心
logcatCenterLayout.visibility = View.GONE
}
@@ -373,9 +375,6 @@ class DebugSettingView @JvmOverloads constructor(
}
/**
* 修改自车按钮(出租车、小巴车)
*/
@@ -475,7 +474,6 @@ class DebugSettingView @JvmOverloads constructor(
}
// 初始化 ADAS感知数据是否绘制 选择情况
tbIsDrawIdentifyData.isChecked = FunctionBuildConfig.isDrawIdentifyData
tbIsDrawIdentifyData.setOnCheckedChangeListener { buttonView, isChecked ->
@@ -505,7 +503,7 @@ class DebugSettingView @JvmOverloads constructor(
/**
* 设置域控制器点击监听
*/
private fun setDomainControllerCheckedChangeListener(){
private fun setDomainControllerCheckedChangeListener() {
// 初始化工控机 IP信息
val autoPilotIpAddress =
@@ -534,15 +532,15 @@ class DebugSettingView @JvmOverloads constructor(
/**
* 设置最大速度
*/
btnSetAutopilotSpeed.onClick{
if(AppConfigInfo.isConnectAutopilot){
btnSetAutopilotSpeed.onClick {
if (AppConfigInfo.isConnectAutopilot) {
val speedStr = etInputSpeed.text?.toString()
try {
if(speedStr.isNullOrEmpty()){
if (speedStr.isNullOrEmpty()) {
ToastUtils.showShort("请输入最大车速")
}
val speed = speedStr?.toInt()
if(speed!=null && speed>0 && speed<60){
if (speed != null && speed > 0 && speed < 60) {
// 设置自动驾驶速度
val isSuccess = CallerAutoPilotManager.setAutoPilotSpeed(speed)
when {
@@ -553,13 +551,13 @@ class DebugSettingView @JvmOverloads constructor(
ToastUtils.showShort("设置车速失败,请启动域控制器")
}
}
}else{
} else {
ToastUtils.showShort("最大车速应大于0且小于60")
}
}catch (e: Exception){
} catch (e: Exception) {
ToastUtils.showShort("车速设置失败,请正确设置车速")
}
}else{
} else {
ToastUtils.showShort("设置车速失败,请启动域控制器")
}
}
@@ -567,19 +565,19 @@ class DebugSettingView @JvmOverloads constructor(
/**
* 录制Bag包
*/
btnRecordPackage.onClick{
btnRecordPackage.onClick {
val recordTimeStr = etInputRecordTime.text?.toString()
try{
if(recordTimeStr.isNullOrEmpty()){
try {
if (recordTimeStr.isNullOrEmpty()) {
CallerAutoPilotManager.recordPackage()
}
val recordTime = recordTimeStr?.toInt()
if(recordTime!=null && recordTime>0){
if (recordTime != null && recordTime > 0) {
CallerAutoPilotManager.recordPackage(recordTime)
}else{
} else {
CallerAutoPilotManager.recordPackage()
}
}catch (e: Exception){
} catch (e: Exception) {
CallerAutoPilotManager.recordPackage()
}
}
@@ -587,30 +585,43 @@ class DebugSettingView @JvmOverloads constructor(
/**
* 工控机升级
*/
btnSystemUpgrade.onClick{
if(AppConfigInfo.isConnectAutopilot){
Logger.i(TAG,"upgradeMode="+upgradeMode+" downloadStatus="+downloadStatus+" upgradeStatus="+upgradeStatus)
if(AdUpgradeStateHelper.isDownloading(downloadStatus)){
btnSystemUpgrade.onClick {
if (AppConfigInfo.isConnectAutopilot) {
Logger.i(
TAG,
"upgradeMode=" + upgradeMode + " downloadStatus=" + downloadStatus + " upgradeStatus=" + upgradeStatus
)
if (AdUpgradeStateHelper.isDownloading(downloadStatus)) {
//点击Toast提示下载剩余时间
ToastUtils.showShort("预计"+AdUpgradeStateHelper.getRemainingTime(totalProgress,previousProgress,currentProgress)+"下载完成")
}else if(AdUpgradeStateHelper.getUpgradeStatus()){
ToastUtils.showShort(
"预计" + AdUpgradeStateHelper.getRemainingTime(
totalProgress,
previousProgress,
currentProgress
) + "下载完成"
)
} else if (AdUpgradeStateHelper.getUpgradeStatus()) {
//工控机状态为“升级中”
ToastUtils.showShort("新版本升级中预计5分钟升级完成")
}else if(AdUpgradeStateHelper.isUpgradeFailed(upgradeStatus)){
} else if (AdUpgradeStateHelper.isUpgradeFailed(upgradeStatus)) {
//如果升级失败则Toast提示升级失败请联系运维人员
ToastUtils.showShort("升级失败,请联系运维人员")
}else if(AdUpgradeStateHelper.isHintUpgradeMode(upgradeMode) && AdUpgradeStateHelper.isDownloadFinish(downloadStatus,upgradeStatus)){
} else if (AdUpgradeStateHelper.isHintUpgradeMode(upgradeMode) && AdUpgradeStateHelper.isDownloadFinish(
downloadStatus,
upgradeStatus
)
) {
//如果升级模式为“提示升级”,并且下载状态为已经下载完成,点击弹出升级确认弹窗
if(adUpgradeDialog == null){
if (adUpgradeDialog == null) {
adUpgradeDialog = AdUpgradeDialog(context)
adUpgradeDialog?.setClickListener(object : AdUpgradeDialog.ClickListener{
adUpgradeDialog?.setClickListener(object : AdUpgradeDialog.ClickListener {
override fun confirm() {
if(mAutoPilotStatusInfo?.state==2){
if (mAutoPilotStatusInfo?.state == 2) {
//当前处于自动驾驶状态不可进行升级Toast提示
ToastUtils.showShort("升级前请先退出自动驾驶模式")
}else{
} else {
//确认升级
Logger.i(TAG,"upgrade confirm")
Logger.i(TAG, "upgrade confirm")
//设置当前状态为“升级中”
AdUpgradeStateHelper.setUpgradeStatus(true)
CallerAutoPilotManager.setIPCUpgradeAffirm()
@@ -619,7 +630,7 @@ class DebugSettingView @JvmOverloads constructor(
override fun cancel() {
//取消升级
Logger.i(TAG,"upgrade cancel")
Logger.i(TAG, "upgrade cancel")
//取消升级命令不下发
// CallerAutoPilotManager.setIPCUpgradeCancel()
}
@@ -627,10 +638,10 @@ class DebugSettingView @JvmOverloads constructor(
})
}
adUpgradeDialog?.showUpgradeDialog()
}else{
} else {
ToastUtils.showShort("当前工控机处于最新版本状态,不可升级")
}
}else{
} else {
ToastUtils.showShort("域控制器未连接")
}
@@ -640,34 +651,38 @@ class DebugSettingView @JvmOverloads constructor(
/**
* 重启系统
*/
btnSystemRestart.onClick{
if(AppConfigInfo.isConnectAutopilot){
if(dockerRebootDialog == null){
btnSystemRestart.onClick {
if (AppConfigInfo.isConnectAutopilot) {
if (dockerRebootDialog == null) {
dockerRebootDialog = DockerRebootDialog(context)
dockerRebootDialog?.setClickListener(object : DockerRebootDialog.ClickListener{
dockerRebootDialog?.setClickListener(object : DockerRebootDialog.ClickListener {
override fun confirm() {
if(mAutoPilotStatusInfo?.state==2){
if (mAutoPilotStatusInfo?.state == 2) {
//当前处于自动驾驶状态不可进行重启Toast提示
ToastUtils.showShort("请先退出自动驾驶状态")
}else if(AdUpgradeStateHelper.showCannotReboot(downloadStatus, upgradeStatus)){
} else if (AdUpgradeStateHelper.showCannotReboot(
downloadStatus,
upgradeStatus
)
) {
//当工控机处于下载或者升级状态,需要先进行升级
ToastUtils.showShort("请先完成新自动驾驶系统的下载/升级")
} else{
} else {
//确认重启
Logger.i(TAG,"reboot confirm")
Logger.i(TAG, "reboot confirm")
CallerAutoPilotManager.setIPCReboot()
}
}
override fun cancel() {
//取消重启
Logger.i(TAG,"reboot cancel")
Logger.i(TAG, "reboot cancel")
}
})
}
dockerRebootDialog?.showUpgradeDialog()
}else{
} else {
ToastUtils.showShort("域控制器未连接")
}
@@ -701,21 +716,23 @@ class DebugSettingView @JvmOverloads constructor(
* @param downloadVersion 下载版本
* @param upgradeStatus 升级状态
*/
fun setAdUpgradeInfo(upgradeMode: Int,downloadStatus: Int,currentProgress: Int,totalProgress: Int,
downloadVersion: String,upgradeStatus: Int){
this.upgradeMode=upgradeMode
this.downloadStatus=downloadStatus
this.previousProgress=this.currentProgress
this.currentProgress=currentProgress
this.totalProgress=totalProgress
this.downloadVersion=downloadVersion
this.upgradeStatus=upgradeStatus
fun setAdUpgradeInfo(
upgradeMode: Int, downloadStatus: Int, currentProgress: Int, totalProgress: Int,
downloadVersion: String, upgradeStatus: Int
) {
this.upgradeMode = upgradeMode
this.downloadStatus = downloadStatus
this.previousProgress = this.currentProgress
this.currentProgress = currentProgress
this.totalProgress = totalProgress
this.downloadVersion = downloadVersion
this.upgradeStatus = upgradeStatus
}
/**
* 设置Hmi点击监听
*/
private fun setHmiCheckedChangeListener(){
private fun setHmiCheckedChangeListener() {
/**
* 显示、隐藏迈速表
*/
@@ -798,36 +815,36 @@ class DebugSettingView @JvmOverloads constructor(
/**
* 设置日志点击监听
*/
private fun setLogCheckedChangeListener(){
private fun setLogCheckedChangeListener() {
//初始化标签选中状态
val tagMap=CallerDevaToolsManager.getModuleTAG()
val tagMap = CallerDevaToolsManager.getModuleTAG()
tagMap?.let {
it.iterator().forEach {map ->
it.iterator().forEach { map ->
val name = map.value.name
val log = map.value.log
when(name){
when (name) {
////ADAS日志标签
SceneConstant.M_ADAS_IMPL-> cbAdasLog.isChecked = log
SceneConstant.M_ADAS_IMPL -> cbAdasLog.isChecked = log
//OBU日志标签
SceneConstant.M_OBU-> cbObuLog.isChecked = log
SceneConstant.M_OBU -> cbObuLog.isChecked = log
//HMI日志标签
SceneConstant.M_HMI-> cbHmiLog.isChecked = log
SceneConstant.M_HMI -> cbHmiLog.isChecked = log
//V2X日志标签
SceneConstant.M_V2X-> cbV2xLog.isChecked = log
SceneConstant.M_V2X -> cbV2xLog.isChecked = log
//地图日志标签
SceneConstant.M_MAP-> cbMapLog.isChecked = log
SceneConstant.M_MAP -> cbMapLog.isChecked = log
//DEVA日志标签
SceneConstant.M_DEVA-> cbDevaLog.isChecked = log
SceneConstant.M_DEVA -> cbDevaLog.isChecked = log
//网络模块日志标签
SceneConstant.M_NETWORK-> cbNetworkLog.isChecked = log
SceneConstant.M_NETWORK -> cbNetworkLog.isChecked = log
//ROUTE日志标签
SceneConstant.M_OLD_ROUTE-> cbOldRouteLog.isChecked = log
SceneConstant.M_OLD_ROUTE -> cbOldRouteLog.isChecked = log
//BUS日志标签
SceneConstant.M_BUS-> cbBusLog.isChecked = log
SceneConstant.M_BUS -> cbBusLog.isChecked = log
//TAXI日志标签
SceneConstant.M_TAXI-> cbTaxiLog.isChecked = log
SceneConstant.M_TAXI -> cbTaxiLog.isChecked = log
//TAXI_P日志标签
SceneConstant.M_TAXI_P-> cbTaxiPLog.isChecked = log
SceneConstant.M_TAXI_P -> cbTaxiPLog.isChecked = log
}
}
}
@@ -859,70 +876,69 @@ class DebugSettingView @JvmOverloads constructor(
}
//ADAS日志标签
cbAdasLog.setOnCheckedChangeListener { _, isChecked ->
val adasModule = SceneModule(isChecked,SceneConstant.M_ADAS_IMPL)
val adasModule = SceneModule(isChecked, SceneConstant.M_ADAS_IMPL)
sceneMap[SceneConstant.M_ADAS_IMPL] = adasModule
CallerDevaToolsManager.updateModuleTAG(sceneMap)
}
//OBU日志标签
cbObuLog.setOnCheckedChangeListener { _, isChecked ->
val obuModule = SceneModule(isChecked,SceneConstant.M_OBU)
val obuModule = SceneModule(isChecked, SceneConstant.M_OBU)
sceneMap[SceneConstant.M_OBU] = obuModule
CallerDevaToolsManager.updateModuleTAG(sceneMap)
}
//HMI日志标签
cbHmiLog.setOnCheckedChangeListener { _, isChecked ->
val hmiModule = SceneModule(isChecked,SceneConstant.M_HMI)
val hmiModule = SceneModule(isChecked, SceneConstant.M_HMI)
sceneMap[SceneConstant.M_HMI] = hmiModule
CallerDevaToolsManager.updateModuleTAG(sceneMap)
}
//V2X日志标签
cbV2xLog.setOnCheckedChangeListener { _, isChecked ->
val v2xModule = SceneModule(isChecked,SceneConstant.M_V2X)
val v2xModule = SceneModule(isChecked, SceneConstant.M_V2X)
sceneMap[SceneConstant.M_V2X] = v2xModule
CallerDevaToolsManager.updateModuleTAG(sceneMap)
}
//地图日志标签
cbMapLog.setOnCheckedChangeListener { _, isChecked ->
val mapModule = SceneModule(isChecked,SceneConstant.M_MAP)
val mapModule = SceneModule(isChecked, SceneConstant.M_MAP)
sceneMap[SceneConstant.M_MAP] = mapModule
CallerDevaToolsManager.updateModuleTAG(sceneMap)
}
//DEVA日志标签
cbDevaLog.setOnCheckedChangeListener { _, isChecked ->
val devaModule = SceneModule(isChecked,SceneConstant.M_DEVA)
val devaModule = SceneModule(isChecked, SceneConstant.M_DEVA)
sceneMap[SceneConstant.M_DEVA] = devaModule
CallerDevaToolsManager.updateModuleTAG(sceneMap)
}
//网络模块日志标签
cbNetworkLog.setOnCheckedChangeListener { _, isChecked ->
val networkModule = SceneModule(isChecked,SceneConstant.M_NETWORK)
val networkModule = SceneModule(isChecked, SceneConstant.M_NETWORK)
sceneMap[SceneConstant.M_NETWORK] = networkModule
CallerDevaToolsManager.updateModuleTAG(sceneMap)
}
//ROUTE日志标签
cbOldRouteLog.setOnCheckedChangeListener { _, isChecked ->
val oldRouteModule = SceneModule(isChecked,SceneConstant.M_OLD_ROUTE)
val oldRouteModule = SceneModule(isChecked, SceneConstant.M_OLD_ROUTE)
sceneMap[SceneConstant.M_OLD_ROUTE] = oldRouteModule
CallerDevaToolsManager.updateModuleTAG(sceneMap)
}
//BUS日志标签
cbBusLog.setOnCheckedChangeListener { _, isChecked ->
val busModule = SceneModule(isChecked,SceneConstant.M_BUS)
val busModule = SceneModule(isChecked, SceneConstant.M_BUS)
sceneMap[SceneConstant.M_BUS] = busModule
CallerDevaToolsManager.updateModuleTAG(sceneMap)
}
//TAXI日志标签
cbTaxiLog.setOnCheckedChangeListener { _, isChecked ->
val taxiModule = SceneModule(isChecked,SceneConstant.M_TAXI)
val taxiModule = SceneModule(isChecked, SceneConstant.M_TAXI)
sceneMap[SceneConstant.M_TAXI] = taxiModule
CallerDevaToolsManager.updateModuleTAG(sceneMap)
}
//TAXI_P日志标签
cbTaxiPLog.setOnCheckedChangeListener { _, isChecked ->
val taxiPModule = SceneModule(isChecked,SceneConstant.M_TAXI_P)
val taxiPModule = SceneModule(isChecked, SceneConstant.M_TAXI_P)
sceneMap[SceneConstant.M_TAXI_P] = taxiPModule
CallerDevaToolsManager.updateModuleTAG(sceneMap)
}
@@ -933,7 +949,7 @@ class DebugSettingView @JvmOverloads constructor(
tbLogCatch.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {
var logTimeStr = etLogCatch.text?.toString()
if(logTimeStr.isNullOrEmpty()){
if (logTimeStr.isNullOrEmpty()) {
logTimeStr = "10"
}
val logCatchTime = logTimeStr.toInt()
@@ -994,16 +1010,73 @@ class DebugSettingView @JvmOverloads constructor(
}
}
val traceInfoMap = CallerDevaToolsManager.getTraceInfo()
val autopilot = traceInfoMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT]
autopilot?.let{
cbAdasAutoPilot.isChecked = it.record
}
val dataTrack = traceInfoMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED]
dataTrack?.let {
cbAdasDataTrack.isChecked = it.record
}
val trajectory = traceInfoMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY]
trajectory?.let {
cbAdasTrajectory.isChecked = it.record
}
val vehicle = traceInfoMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE]
vehicle?.let {
cbAdasVehicle.isChecked = it.record
}
/**
* ADAS长链数据
* ADAS自动驾驶链路
*/
cbAdasChainLog.setOnCheckedChangeListener { _, isChecked ->
val traceInfoMap = CallerDevaToolsManager.getTraceInfo()
val chainLogParam = traceInfoMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA]
chainLogParam?.let {
cbAdasAutoPilot.setOnCheckedChangeListener { _, isChecked ->
val map = CallerDevaToolsManager.getTraceInfo()
val param = map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT]
param?.let {
it.record = isChecked
traceInfoMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA] = chainLogParam
CallerDevaToolsManager.refreshTraceInfo(traceInfoMap)
map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT] = param
CallerDevaToolsManager.refreshTraceInfo(map)
}
}
/**
* ADAS感知物体
*/
cbAdasDataTrack.setOnCheckedChangeListener { _, isChecked ->
val map = CallerDevaToolsManager.getTraceInfo()
val param = map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED]
param?.let {
it.record = isChecked
map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED] = param
CallerDevaToolsManager.refreshTraceInfo(map)
}
}
/**
* ADAS前车引导线
*/
cbAdasTrajectory.setOnCheckedChangeListener { _, isChecked ->
val map = CallerDevaToolsManager.getTraceInfo()
val param = map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY]
param?.let {
it.record = isChecked
map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY] = param
CallerDevaToolsManager.refreshTraceInfo(map)
}
}
/**
* ADAS车辆地盘数据
*/
cbAdasVehicle.setOnCheckedChangeListener { _, isChecked ->
val map = CallerDevaToolsManager.getTraceInfo()
val param = map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE]
param?.let {
it.record = isChecked
map[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE] = param
CallerDevaToolsManager.refreshTraceInfo(map)
}
}
}
@@ -1036,7 +1109,8 @@ class DebugSettingView @JvmOverloads constructor(
AppConfigInfo.uniqueDeviceId = DeviceIdUtils.getDeviceId(AbsMogoApplication.getApp())
}
if (AppConfigInfo.widevineIDMd5.isNullOrEmpty()) {
AppConfigInfo.widevineIDMd5 = DeviceIdUtils.getWidevineIDWithMd5(AbsMogoApplication.getApp())
AppConfigInfo.widevineIDMd5 =
DeviceIdUtils.getWidevineIDWithMd5(AbsMogoApplication.getApp())
}
AppConfigInfo.mogoSN = MoGoAiCloudClient.getInstance().aiCloudClientConfig.sn
AppConfigInfo.mogoToken = MoGoAiCloudClient.getInstance().aiCloudClientConfig.token
@@ -1074,7 +1148,8 @@ class DebugSettingView @JvmOverloads constructor(
tvObuAppInfo.text = "OBU程序版本${CallerObuListenerManager.getObuStatusInfo().appInfo}"
tvObuHliInfo.text = "OBU协议版本${CallerObuListenerManager.getObuStatusInfo().hliInfo}"
tvObuSdkVersion.text = "OBU-SDK版本${AppConfigInfo.obuSdkVersion}"
tvAutopilotProtocolVersionInfo.text = "Autopilot协议版本${CallerAutoPilotManager.getProtocolVersion()}"
tvAutopilotProtocolVersionInfo.text =
"Autopilot协议版本${CallerAutoPilotManager.getProtocolVersion()}"
tvIpcProtocolVersionInfo.text = "工控机协议版本:${AppConfigInfo.protocolVersionNumber}"
tvMoGoMapVersion.text = "HD-Map版本${MogoMap.getInstance().mogoMap.mapVersion}"
tvGitBranchInfo.text = "Git分支${AppConfigInfo.workingBranchName}"
@@ -1101,76 +1176,88 @@ class DebugSettingView @JvmOverloads constructor(
}
}"
tvInternetEnvironment.text =Html.fromHtml("当前网络环境:${
if(NetworkUtils.isConnected(context)){
if(NetworkUtils.isConnectedMobile(context)){
//已连接移动数据
"移动数据"
}else{
//WiFi
CommonUtils.getWifiName(context)
tvInternetEnvironment.text = Html.fromHtml(
"当前网络环境:${
if (NetworkUtils.isConnected(context)) {
if (NetworkUtils.isConnectedMobile(context)) {
//已连接移动数据
"移动数据"
} else {
//WiFi
CommonUtils.getWifiName(context)
}
} else {
//未连接任何网络
"<font color='red'>异常"
}
}else{
//未连接任何网络
"<font color='red'>异常"
}
}")
}"
)
tvServerSocketStatus.text = Html.fromHtml("服务器Socket状态${
if(DebugConfig.isDownloadSnapshot()){
"<font color='blue'>正常"
}else{
"<font color='red'>异常"
}
}")
tvAutopilotConnectStatus.text =Html.fromHtml("Autopilot系统连接状态${
if(AppConfigInfo.isConnectAutopilot){
"<font color='blue'>正常"
}else{
"<font color='red'>异常"
}
}")
tvObuConnectStatus.text =Html.fromHtml("OBU连接状态${
if(AppConfigInfo.isConnectObu){
"<font color='blue'>正常"
}else{
"<font color='red'>异常"
}
}")
tvDriverServerStartupStatus.text = Html.fromHtml("${
when {
AppConfigInfo.isDriver -> {
"司机端Server启动"
tvServerSocketStatus.text = Html.fromHtml(
"服务器Socket状态${
if (DebugConfig.isDownloadSnapshot()) {
"<font color='blue'>正常"
} else {
"<font color='red'>异常"
}
else -> {
"乘客端${
when {
AppConfigInfo.serverIp.isNotEmpty() -> "(目标ip为:${AppConfigInfo.serverIp})"
else -> ""
}
}连接"
}
}
}是否正常${
if (AppConfigInfo.isConnectedNetty) {
"<font color='blue'>正常"
} else {
"<font color='red'>异常"
}
}")
}"
)
tvLocationEnabled.text =Html.fromHtml("定位服务开启状态:${
if(DeviceUtils.isLocationEnabled()){
"<font color='blue'>正常"
}else{
"<font color='red'>异常"
}
}")
tvAutopilotConnectStatus.text = Html.fromHtml(
"Autopilot系统连接状态${
if (AppConfigInfo.isConnectAutopilot) {
"<font color='blue'>正常"
} else {
"<font color='red'>异常"
}
}"
)
tvObuConnectStatus.text = Html.fromHtml(
"OBU连接状态${
if (AppConfigInfo.isConnectObu) {
"<font color='blue'>正常"
} else {
"<font color='red'>异常"
}
}"
)
tvDriverServerStartupStatus.text = Html.fromHtml(
"${
when {
AppConfigInfo.isDriver -> {
"司机端Server启动"
}
else -> {
"乘客端${
when {
AppConfigInfo.serverIp.isNotEmpty() -> "(目标ip为:${AppConfigInfo.serverIp})"
else -> ""
}
}连接"
}
}
}是否正常${
if (AppConfigInfo.isConnectedNetty) {
"<font color='blue'>正常"
} else {
"<font color='red'>异常"
}
}"
)
tvLocationEnabled.text = Html.fromHtml(
"定位服务开启状态:${
if (DeviceUtils.isLocationEnabled()) {
"<font color='blue'>正常"
} else {
"<font color='red'>异常"
}
}"
)
tvAutopilotInfo.text = GsonUtils.toJson(mAutoPilotStatusInfo)
@@ -1188,7 +1275,6 @@ class DebugSettingView @JvmOverloads constructor(
"全局路径规划点个数:${mRouteInfoSize}"
// 用完之后重制为0防止节点回掉突然没数据导致页面显示还是之前的数据情况
mIdentifyDataSize = 0
mUnknownIdentifyDataSize = 0
@@ -1205,11 +1291,11 @@ class DebugSettingView @JvmOverloads constructor(
AppConfigInfo.obuSdkVersion = obuStatusInfo.obuSdkVersion
AppConfigInfo.isConnectObu = obuStatusInfo.obuStatus
if(obuStatusInfo.obuStatus){
if (obuStatusInfo.obuStatus) {
obuConnectStatus = true
}
//OBU断开连接提示异常
if(obuConnectStatus && !obuStatusInfo.obuStatus){
if (obuConnectStatus && !obuStatusInfo.obuStatus) {
obuConnectStatus = false
toastMsg("OBU连接状态异常")
}
@@ -1222,17 +1308,17 @@ class DebugSettingView @JvmOverloads constructor(
mAutoPilotStatusInfo = autoPilotStatusInfo
AppConfigInfo.isConnectAutopilot = autoPilotStatusInfo.connectStatus
if(AppConfigInfo.isConnectAutopilot && (AppConfigInfo.plateNumber.isNullOrEmpty() || AppConfigInfo.iPCMacAddress.isNullOrEmpty())){
if (AppConfigInfo.isConnectAutopilot && (AppConfigInfo.plateNumber.isNullOrEmpty() || AppConfigInfo.iPCMacAddress.isNullOrEmpty())) {
//查询工控机基础配置信息
CallerAutoPilotManager.getCarConfig()
}
if(autoPilotStatusInfo.connectStatus){
if (autoPilotStatusInfo.connectStatus) {
adasConnectStatus = true
}
//ADAS断开连接提示异常
if(adasConnectStatus && !autoPilotStatusInfo.connectStatus){
adasConnectStatus=false
if (adasConnectStatus && !autoPilotStatusInfo.connectStatus) {
adasConnectStatus = false
toastMsg("Autopilot系统连接状态异常")
}
}
@@ -1280,21 +1366,21 @@ class DebugSettingView @JvmOverloads constructor(
* 工控机异常回调
*/
override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) {
ThreadUtils.runOnUiThread{
ThreadUtils.runOnUiThread {
guardianInfo?.let {
reportMsgLayout.visibility = View.VISIBLE
tvReportSrc.text = "src:${it.src}"
tvReportLevel.text = "level:${it.level}"
tvReportMsg.text = "msg:${it.msg}"
tvReportCode.text = "code:${it.code}"
var resultStr="result:"
for(result in it.resultList){
var resultStr = "result:"
for (result in it.resultList) {
resultStr = "$resultStr$result "
}
tvReportResult.text = resultStr
var actionStr="action:"
for(action in it.actionsList){
var actionStr = "action:"
for (action in it.actionsList) {
actionStr = "$actionStr$action "
}
tvReportActions.text = actionStr
@@ -1303,7 +1389,7 @@ class DebugSettingView @JvmOverloads constructor(
tvReportNSec.text = "nsec:${it.timestamp.nsec}"
if("error" == it.level){
if ("error" == it.level) {
//字体为红色,吐司提示
tvReportSrc.setTextColor(Color.RED)
tvReportLevel.setTextColor(Color.RED)
@@ -1314,7 +1400,7 @@ class DebugSettingView @JvmOverloads constructor(
tvReportSec.setTextColor(Color.RED)
tvReportNSec.setTextColor(Color.RED)
toastMsg(it.msg)
}else{
} else {
tvReportSrc.setTextColor(Color.BLACK)
tvReportLevel.setTextColor(Color.BLACK)
tvReportMsg.setTextColor(Color.BLACK)
@@ -1342,9 +1428,9 @@ class DebugSettingView @JvmOverloads constructor(
/**
* 吐司提示
*/
private fun toastMsg(msg: String){
private fun toastMsg(msg: String) {
//当处于美化演示模式、msg为空时不弹吐司
if(!FunctionBuildConfig.isDemoMode && msg.isNotEmpty()){
if (!FunctionBuildConfig.isDemoMode && msg.isNotEmpty()) {
ToastUtils.showLong(msg)
}
}