[code_opt_3.3.0] fix plugin bug and add trace

This commit is contained in:
zhongchao
2023-06-13 23:25:12 +08:00
parent 1c59412d0e
commit e741d23351
22 changed files with 265 additions and 109 deletions

View File

@@ -29,8 +29,8 @@ class MapBizProvider :IMoGoFunctionServerProvider, IMogoRoma {
CallerVisualAngleManager.init()
}
override fun trigger(romaStatus: Boolean,requestSuccess:((Boolean) -> Unit)?) {
aiCloudIdentifyDataManager.trigger(romaStatus,requestSuccess)
override fun trigger(romaStatus: Boolean) {
aiCloudIdentifyDataManager.trigger(romaStatus)
}
override fun onDestroy() {

View File

@@ -1,14 +1,25 @@
package com.mogo.eagle.core.function.business.ai
import android.content.Context
import android.os.Handler
import com.mogo.aicloud.services.socket.IMogoOnMessageListener
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager
import com.mogo.commons.debug.DebugConfig
import com.mogo.commons.module.status.MogoStatusManager
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.deva.chain.ChainConstant
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ROMA_CLICK
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ROMA_CLICK_END
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ROMA_CLOUD_ERROR
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ROMA_MAP_END
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ROMA_MAP_START
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ROMA_REQUEST
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ROMA_REQUEST_ERROR
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ROMA_REQUEST_OK
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ROMA_ROUTE_MODE
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener
import com.mogo.eagle.core.function.api.map.roma.IMoGoRomaListener
import com.mogo.eagle.core.function.business.ai.net.AiCloudIdentifyNetWorkModel.Companion.aiCloudIdentifyNetWorkModel
import com.mogo.eagle.core.function.business.identify.MapIdentifySubscriber
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
@@ -18,18 +29,17 @@ import com.mogo.eagle.core.function.call.map.CallerMapRomaListener
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.updateLongSightLevel
import com.mogo.eagle.core.function.utils.MapBizTrace
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.map.MogoMapUIController
import com.mogo.map.listener.IMogoMapListener
import com.mogo.map.listener.MogoMapListenerHandler
import com.mogo.map.uicontroller.VisualAngleMode
import com.zhjt.service.chain.ChainLog
import mogo.telematics.pad.MessagePad
import mogo.yycp.api.proto.SocketDownData
import java.util.concurrent.atomic.AtomicBoolean
class AiCloudIdentifyDataManager : IMogoMapListener,
IMoGoPlanningRottingListener, IMoGoAutopilotStatusListener {
class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener,
IMoGoAutopilotStatusListener, IMoGoRomaListener {
companion object {
private const val TAG = "AiCloudIdentifyData"
@@ -45,10 +55,29 @@ class AiCloudIdentifyDataManager : IMogoMapListener,
private var showAiCloud = AtomicBoolean(false)
private var aiCloudDataChange = AtomicBoolean(false)
private val handler = Handler {
if (it.what == 1) {
if (!aiCloudDataChange.get()) {
MapBizTrace.log(
CHAIN_CODE_ROMA_MAP_START, CHAIN_CODE_ROMA_CLOUD_ERROR, TAG, GsonUtils.toJson(
mutableMapOf(
"msg" to "云端5秒内无感知数据下发",
"socketStatus" to MogoStatusManager.getInstance().isSocketOnLine,
"cityCode" to CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().cityCode
)
)
)
}
}
true
}
fun initServer(mContext: Context) {
MogoMapListenerHandler.mogoMapListenerHandler.registerHostMapListener(TAG, this)
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
CallerPlanningRottingListenerManager.addListener(TAG,this)
CallerPlanningRottingListenerManager.addListener(TAG, this)
CallerMapRomaListener.addListener(TAG, this)
MogoAiCloudSocketManager.getInstance(mContext)
.registerOnMessageListener(
0x040003, //低频数据
@@ -66,6 +95,9 @@ class AiCloudIdentifyDataManager : IMogoMapListener,
override fun onMsgReceived(obj: SocketDownData.SocketDownDataProto?) {
obj?.let {
obj.data?.let {
if (it.allListList != null && it.allListList.size > 0) {
aiCloudDataChange.set(true)
}
if (showAiCloud.get()) {
if (it.allListList == null || it.allListList.size == 0) {
MapIdentifySubscriber.instance.clearAiCloudRoma()
@@ -79,8 +111,13 @@ class AiCloudIdentifyDataManager : IMogoMapListener,
})
}
fun trigger(romaStatus: Boolean,connectError: ((Boolean) -> Unit)?) {
MapBizTrace.log(TAG, "trigger")
fun trigger(romaStatus: Boolean) {
MapBizTrace.log(
"",
CHAIN_CODE_ROMA_CLICK,
TAG,
GsonUtils.toJson(mutableMapOf("trigger" to romaStatus))
)
// 乘客司机屏屏各自单独控制漫游
if (romaStatus) {
// 开启roma当前非漫游开启
@@ -103,52 +140,105 @@ class AiCloudIdentifyDataManager : IMogoMapListener,
MapIdentifySubscriber.instance.clearAiCloudRoma()
// 主动关闭roma回到中景视角
if (manual) {
MapBizTrace.logEnd(CHAIN_CODE_ROMA_CLICK, CHAIN_CODE_ROMA_CLICK_END, TAG, "")
MogoMapUIController.getInstance()
.changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null)
}
}
fun requestRangeOfIdentify(dataReceive: Boolean) {
val status = MogoStatusManager.getInstance().isSocketOnLine
val gnss = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().gnssInfo
MapBizTrace.log(TAG,"开启请求data:$dataReceive , socketStatus:$status , lon:${gnss.longitude} , lat:${gnss.latitude} , heading:${gnss.heading}")
aiCloudIdentifyNetWorkModel.requestIdentifyRange(dataReceive, gnss.longitude,gnss.latitude,{
MapBizTrace.log(
TAG,
"requestIdentifyRange ok startRange:$START_METRE, endRange:$END_METRE , dataReceive:$dataReceive"
// false改变父节点信息
MapBizTrace.log(
if (dataReceive) CHAIN_CODE_ROMA_CLICK else "", CHAIN_CODE_ROMA_REQUEST, TAG,
GsonUtils.toJson(
mutableMapOf(
"dataReceive" to dataReceive,
"lon" to gnss.longitude,
"lat" to gnss.latitude,
"heading" to gnss.heading,
"socketStatus" to MogoStatusManager.getInstance().isSocketOnLine,
"cityCode" to CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().cityCode
)
)
if (dataReceive) {
// 请求地图开始漫游
MogoMapUIController.getInstance().setRomaMode(FunctionBuildConfig.romaModeStyle)
CallerMapRomaListener.invokeMapRoma(true)
} else {
)
aiCloudIdentifyNetWorkModel.requestIdentifyRange(
dataReceive,
gnss.longitude,
gnss.latitude,
{
// false改变父节点信息
MapBizTrace.log(
if (dataReceive) CHAIN_CODE_ROMA_REQUEST else "",
CHAIN_CODE_ROMA_REQUEST_OK,
TAG,
GsonUtils.toJson(
mutableMapOf(
"dataResult" to dataReceive,
"startRange" to START_METRE,
"endRange" to END_METRE,
)
)
)
if (dataReceive) {
// 请求地图开始漫游
MogoMapUIController.getInstance().setRomaMode(FunctionBuildConfig.romaModeStyle)
CallerMapRomaListener.invokeMapRoma(true)
} else {
CallerMapRomaListener.invokeMapRoma(false)
}
},
{ errorMsg ->
// false改变父节点信息
MapBizTrace.logEnd(
if (dataReceive) CHAIN_CODE_ROMA_REQUEST else "",
CHAIN_CODE_ROMA_REQUEST_ERROR,
TAG,
GsonUtils.toJson(
mutableMapOf(
"errorMsg" to errorMsg,
"dataResult" to dataReceive,
"startRange" to START_METRE,
"endRange" to END_METRE
)
)
)
updateLongSightLevel(false)
CallerMapRomaListener.invokeMapRoma(false)
}
}, {
MapBizTrace.log(
TAG,
"requestIdentifyRange error : $it , startRange:$START_METRE, endRange:$END_METRE, dataReceive:$dataReceive"
)
updateLongSightLevel(false)
CallerMapRomaListener.invokeMapRoma(false)
if(DebugConfig.isDebug()){
ToastUtils.showShort("漫游请求异常msg:$it")
}
})
if (DebugConfig.isDebug()) {
ToastUtils.showShort("漫游请求异常msg:$errorMsg")
}
})
}
override fun onMapVisualAngleChanged(visualAngleMode: VisualAngleMode) {
super.onMapVisualAngleChanged(visualAngleMode)
when {
// 解除漫游限制
visualAngleMode.isRoma -> {
MapBizTrace.log(TAG, "onMapVisualAngleChanged, invoke roma , socketStatus: ${ MogoStatusManager.getInstance().isSocketOnLine}")
//status 0进入漫游模式成功 1进入漫游模式失败 2正常结束漫游 3切换视角结束漫游
override fun mapRomaStatus(status: Int, msg: String) {
super.mapRomaStatus(status, msg)
MapBizTrace.log(
CHAIN_CODE_ROMA_REQUEST_OK,
CHAIN_CODE_ROMA_MAP_START,
TAG,
GsonUtils.toJson(mutableMapOf("mapStatus" to status, "mapRomaMsg" to msg))
)
when (status) {
0 -> {
showAiCloud.set(true)
FunctionBuildConfig.isDrawIdentifyData = false
// 5秒没有触发 则预警日志写入
handler.sendEmptyMessageDelayed(1, 5_000L)
}
else -> {
1 -> {
if (DebugConfig.isDebug()) {
ToastUtils.showShort("进入漫游模式失败msg:$msg")
}
}
2, 3 -> {
if (showAiCloud.get()) {
MapBizTrace.log(TAG, "onMapVisualAngleChanged, invoke close roma")
MapBizTrace.logEnd(
CHAIN_CODE_ROMA_MAP_START, CHAIN_CODE_ROMA_MAP_END, TAG, GsonUtils.toJson(
mutableMapOf("romaEnd" to "地图结束回调,状态:$status")
)
)
showAiCloud.set(false)
closeRoma(false)
FunctionBuildConfig.isDrawIdentifyData = true
@@ -181,7 +271,12 @@ class AiCloudIdentifyDataManager : IMogoMapListener,
}
private fun updateRomaStyle(auto: Boolean, route: String? = null) {
MapBizTrace.log(TAG, "updateRomaStyle auto status:$auto, route:${route?:"reset null"}")
MapBizTrace.log(
"",
CHAIN_CODE_ROMA_ROUTE_MODE,
TAG,
"updateRomaStyle auto status:$auto, route:${route ?: "reset null"}"
)
route?.let {
CallerMapUIServiceManager.getMapUIController()?.setRoamTrajectory(route)
}

View File

@@ -143,7 +143,4 @@ public class MogoRouteOverlayManager implements
public void onAutopilotDockerInfo(@NonNull String dockerVersion) {
}
@Override
public void onAutopilotConnectInfo(boolean connectInfo) {
}
}

View File

@@ -5,18 +5,30 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_MAP
import com.zhjt.service.chain.ChainLog
import com.zhjt.service.chain.ChildNodeAlias
import com.zhjt.service.chain.ParentNodeAlias
class MapBizTrace {
companion object {
@ChainLog(
linkChainLog = ChainConstant.CHAIN_TYPE_HD_MAP,
linkCode = ChainConstant.CHAIN_SOURCE_MAP,
paramIndexes = [2, 3],
endPoint = false
)
fun log(@ParentNodeAlias pN: String, @ChildNodeAlias cN: String, data: Any, data1: Any) {
if (DebugConfig.isDebug()) {
CallerLogger.d("$M_MAP${data.toString()}", data1)
}
}
@ChainLog(
linkChainLog = ChainConstant.CHAIN_TYPE_HD_MAP,
linkCode = ChainConstant.CHAIN_SOURCE_MAP,
nodeAliasCode = ChainConstant.CHAIN_CODE_HD_MAP_BIZ,
paramIndexes = [0, 1]
paramIndexes = [2, 3]
)
fun log(data: Any, data1: Any) {
fun logEnd(@ParentNodeAlias pN: String, @ChildNodeAlias cN: String, data: Any, data1: Any) {
if (DebugConfig.isDebug()) {
CallerLogger.d("$M_MAP${data.toString()}", data1)
}