This commit is contained in:
zhongchao
2022-03-17 19:06:22 +08:00
parent 22c7920027
commit ee881c99e7
33 changed files with 330 additions and 403 deletions

View File

@@ -4,17 +4,17 @@ import chassis.VehicleStateOuterClass
import com.mogo.eagle.core.data.autopilot.ADASTrajectoryInfo
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.config.HdMapBuildConfig
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ARRIVE
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAJECTORY
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_LINK_ADAS
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_DATA
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ARRIVE
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAJECTORY
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_ADAS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_DATA
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ADAS_IMPL
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeArriveAtStation

View File

@@ -1,14 +1,11 @@
package com.mogo.eagle.core.function.chat.facade.net
import com.alibaba.android.arouter.launcher.ARouter
import com.google.gson.Gson
import com.google.gson.JsonElement
import com.google.gson.JsonObject
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.data.BaseResponse
import com.mogo.eagle.core.data.chat.UserInfo
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.function.api.chat.biz.ChatConsts
import com.mogo.eagle.core.function.api.chat.biz.IMCallType.CALL_TYPE_VOICE
import com.mogo.eagle.core.function.chat.facade.bridge.BridgeApi
@@ -18,8 +15,8 @@ import com.mogo.eagle.core.function.chat.facade.net.bean.*
import com.mogo.eagle.core.function.chat.facade.utils.log
import com.mogo.map.MogoLocationClient
import com.mogo.service.IMogoServiceApis
import com.mogo.eagle.core.network.MoGoRetrofitFactory
import retrofit2.http.*
import java.lang.IllegalStateException
internal class ChatServiceModel {
@@ -35,11 +32,12 @@ internal class ChatServiceModel {
} ?: false
}
suspend fun queryUserInfo(sn: String): Pair<Error?,UserInfo?>? {
suspend fun queryUserInfo(sn: String): Pair<Error?, UserInfo?>? {
val sns = arrayListOf(sn)
val requestData = SnArrayRequestBody().also { it.sns = sns }
return apiCall {
getNetWorkApi(getConfig())?.queryUserInfoBySnS(requestData) ?: throw IllegalStateException("apis is null.")
getNetWorkApi(getConfig())?.queryUserInfoBySnS(requestData)
?: throw IllegalStateException("apis is null.")
}.let { itx ->
if (itx.code != 0 && itx.code != 200) {
return@let Pair(Error(itx.code, itx.msg), null)
@@ -84,11 +82,13 @@ internal class ChatServiceModel {
map["data"] = Gson().toJson(params)
return if (params.type == CALL_TYPE_VOICE.type) {
apiCall {
getNetWorkApi()?.requestConnectStatus(sn, map) ?: throw IllegalStateException("apis is null.")
getNetWorkApi()?.requestConnectStatus(sn, map)
?: throw IllegalStateException("apis is null.")
}
} else {
apiCall {
getNetWorkApi()?.requestVehicleTeamConnectStatus(map) ?: throw IllegalStateException("apis is null.")
getNetWorkApi()?.requestVehicleTeamConnectStatus(map)
?: throw IllegalStateException("apis is null.")
}
}
}
@@ -99,7 +99,8 @@ internal class ChatServiceModel {
map["sn"] = MoGoAiCloudClientConfig.getInstance().sn
map["data"] = Gson().toJson(param)
return apiCall {
getNetWorkApi()?.inviteJoinVehicleTeam(map) ?: throw IllegalStateException("apis is null.")
getNetWorkApi()?.inviteJoinVehicleTeam(map)
?: throw IllegalStateException("apis is null.")
}
}
@@ -122,8 +123,7 @@ internal class ChatServiceModel {
}
private fun getNetWorkApi(baseUrl: String = ChatHttp.getBaseUrl()): HttpApi? {
val serviceApi: IMogoServiceApis? = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation() as? IMogoServiceApis
return serviceApi?.networkApi?.createNoCallAdapter(HttpApi::class.java, baseUrl)
return MoGoRetrofitFactory.getInstanceNoCallAdapter(baseUrl).create(HttpApi::class.java)
}
}
@@ -131,7 +131,10 @@ internal interface HttpApi {
@FormUrlEncoded
@POST("/yycp-chat-service/car/voiceRoom/no/operate/v1")
suspend fun requestConnectStatus(@Query("sn") sn: String, @FieldMap connectStatus: Map<String, String>): BaseResponse<Any>
suspend fun requestConnectStatus(
@Query("sn") sn: String,
@FieldMap connectStatus: Map<String, String>
): BaseResponse<Any>
//邀请加入车队
@FormUrlEncoded

View File

@@ -4,12 +4,15 @@ import android.annotation.SuppressLint
import android.content.Context
import android.view.View
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.data.chain.ChainLogParam
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.data.deva.chain.ChainLogParam
import com.mogo.eagle.core.data.deva.scene.SceneModule
import com.mogo.eagle.core.data.deva.scene.SceneTAG
import com.mogo.eagle.core.function.api.devatools.IDevaToolsProvider
import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager
import com.zhjt.mogo_core_function_devatools.feedback.FeedbackManager
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchManager
import com.zhjt.mogo_core_function_devatools.scene.SceneManager.Companion.sceneManager
import com.zhjt.mogo_core_function_devatools.trace.TraceManager.Companion.traceManager
import record_cache.RecordPanelOuterClass
@@ -49,6 +52,22 @@ class DevaToolsProvider : IDevaToolsProvider {
traceManager.refreshTraceInfo(map)
}
override fun getModuleTAG(): MutableMap<String, SceneModule> {
return sceneManager.getModuleLogTAG()
}
override fun updateModuleTAG(moduleTag: MutableMap<String, SceneModule>) {
sceneManager.updateModuleTAG(moduleTag)
}
override fun getSceneLogTAG(): MutableMap<String, SceneTAG> {
return sceneManager.getSceneLogTAG()
}
override fun updateSceneTAG(sceneTag: MutableMap<String, SceneTAG>) {
sceneManager.updateSceneTAG(sceneTag)
}
override fun initBadCase(view: View, onShow: (() -> Unit)?, onHide: (() -> Unit)?) {
BadCaseManager.init(view, onShow, onHide)
}

View File

@@ -1,17 +1,127 @@
package com.zhjt.mogo_core_function_devatools.scene
import com.mogo.eagle.core.data.deva.scene.SceneLogTAG
import com.mogo.eagle.core.data.deva.scene.SceneModule
import com.mogo.eagle.core.data.deva.scene.SceneModuleTAG
import com.mogo.eagle.core.data.deva.scene.SceneTAG
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.scene.Scene.Companion.scene
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ADAS_IMPL
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_NETWORK
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OLD_ROUTE
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_V2X
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneLogCache
//todo 1. SceneLogCache增加模块名称提供场景需要
//todo 2. 对特定场景提供数据, 网约车,调度...
//1. SceneLogCache增加模块名称提供场景需要
//2. 对特定场景提供数据, 网约车,调度...
class SceneManager {
companion object {
private const val ADAS = "ADAS"
private const val DEVA = "DEVA"
private const val HMI = "HMI"
private const val OBU = "OBU"
private const val V2X = "V2X"
private const val ROUTE = "ROUTE"
private const val NET = "NET"
private const val BUS = "BUS"
private const val TAXI = "TAXI"
val sceneManager: SceneManager by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
SceneManager()
}
}
fun init(){
private var sceneCache: MutableMap<String, SceneLogCache> = scene.getSceneCache()
private var sceneModuleTAG: SceneModuleTAG = SceneModuleTAG(mutableMapOf())
private var sceneLogTAG: SceneLogTAG = SceneLogTAG(mutableMapOf())
fun init() {
//过滤所需条件
sceneModuleTAG.map[ADAS] = SceneModule(true, M_ADAS_IMPL)
sceneModuleTAG.map[DEVA] = SceneModule(true, M_DEVA)
sceneModuleTAG.map[HMI] = SceneModule(true, M_HMI)
sceneModuleTAG.map[OBU] = SceneModule(false, M_OBU)
sceneModuleTAG.map[V2X] = SceneModule(true, M_V2X)
sceneModuleTAG.map[ROUTE] = SceneModule(true, M_OLD_ROUTE)
sceneModuleTAG.map[NET] = SceneModule(true, M_NETWORK)
sceneModuleTAG.map[BUS] = SceneModule(false, M_BUS)
sceneModuleTAG.map[TAXI] = SceneModule(false, M_TAXI)
sceneLogTAG.map[TAXI] = SceneTAG(false)
sceneLogTAG.map[BUS] = SceneTAG(false)
}
fun getModuleLogTAG(): MutableMap<String, SceneModule> {
return sceneModuleTAG.map
}
fun getSceneLogTAG(): MutableMap<String, SceneTAG> {
return sceneLogTAG.map
}
fun updateModuleTAG(moduleTag: MutableMap<String, SceneModule>) {
moduleTag.iterator().forEach { map ->
val name = map.value.name
val logger = map.value.log
name?.let {
val sceneLogCache = sceneCache[it]
sceneLogCache?.let { logCache ->
logCache.logger = logger
sceneCache[it] = logCache
}
}
}
scene.updateSceneCache(sceneCache)
}
fun updateSceneTAG(sceneTag: MutableMap<String, SceneTAG>) {
sceneTag.iterator().forEach { map ->
realUpdateSceneTAG(map.key, map.value.log)
}
updateSceneModuleTAG()
}
private fun updateSceneModuleTAG() {
sceneModuleTAG.map.iterator().forEach { map ->
val sceneModule = map.value
val sceneLogCache = sceneCache[sceneModule.name]
sceneLogCache?.let {
sceneModule.log = it.logger
}
map.setValue(sceneModule)
}
//call back
CallerDevaToolsListenerManager.invokeDevaToolsModuleLogChanges(sceneModuleTAG.map)
}
private fun realUpdateSceneTAG(name: String, logger: Boolean) {
when (name) {
TAXI -> {
sceneCache[M_TAXI]?.logger = logger
sceneCache[M_NETWORK]?.logger = logger
sceneCache[M_ADAS_IMPL]?.logger = logger
sceneCache[M_HMI]?.logger = logger
sceneCache[M_DEVA]?.logger = logger
sceneCache[M_OLD_ROUTE]?.logger = logger
scene.updateSceneCache(sceneCache)
}
BUS -> {
sceneCache[M_BUS]?.logger = logger
sceneCache[M_NETWORK]?.logger = logger
sceneCache[M_ADAS_IMPL]?.logger = logger
sceneCache[M_HMI]?.logger = logger
sceneCache[M_DEVA]?.logger = logger
sceneCache[M_OLD_ROUTE]?.logger = logger
scene.updateSceneCache(sceneCache)
}
}
}
}

View File

@@ -2,8 +2,8 @@ package com.zhjt.mogo_core_function_devatools.trace
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.data.chain.ChainConstant
import com.mogo.eagle.core.data.chain.ChainLogParam
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.util.DeviceUtils

View File

@@ -3,16 +3,8 @@ package com.mogo.eagle.core.function.hmi.receiver
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.data.notice.NoticeNormalData
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.showBrakeLight
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.showTurnLight
import com.mogo.eagle.core.function.hmi.WaringConst
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.util.SharedPrefs
import com.mogo.service.IMogoServiceApis
/**
* 转向灯,刹车
@@ -37,8 +29,8 @@ class TurnLightBroadcastReceiver : BroadcastReceiver() {
private fun showTurnLight( //type 1,转向灯2刹车
type: Int,
lightInt: Int
type: Int,
lightInt: Int
) {
if (type == 1) {
showTurnLight(lightInt) //设置转向灯

View File

@@ -3,13 +3,10 @@ package com.mogo.eagle.core.function.hmi.receiver
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.hmi.WaringConst
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
import com.mogo.service.IMogoServiceApis
/**
* V2X 预警广播接收。用于跨应用,跨进程,内部也可以通过这种方式 控制限速标志
@@ -21,13 +18,10 @@ class V2XLimitingVelocityBroadcastReceiver : BroadcastReceiver() {
companion object {
private const val TAG = "V2XLimitingVelocityBroadcastReceiver"
private var mMogoServiceApis: IMogoServiceApis? = null
}
override fun onReceive(context: Context, intent: Intent) {
try {
mMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS)
.navigation(context) as IMogoServiceApis
mContext = context
val limitingVelocityIsShow =

View File

@@ -3,11 +3,8 @@ package com.mogo.eagle.core.function.hmi.receiver
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.hmi.WaringConst
import com.mogo.service.IMogoServiceApis
/**
* V2X 预警广播接收。用于跨应用,跨进程,内部也可以通过这种方式 触发红绿灯场景
@@ -19,13 +16,10 @@ class V2XTrafficLightBroadcastReceiver : BroadcastReceiver() {
companion object {
private const val TAG = "V2XTrafficLightBroadcastReceiver"
private var mMogoServiceApis: IMogoServiceApis? = null
}
override fun onReceive(context: Context, intent: Intent) {
try {
mMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS)
.navigation(context) as IMogoServiceApis
mContext = context
val trafficLightIsShow =

View File

@@ -95,7 +95,7 @@ class NoticeCheckDialog(context: Context) : BaseFloatDialog(context), LifecycleO
}
mServiceApis = MogoApisHandler.getInstance().apis
mServiceApis?.getStatusManagerApi()?.registerStatusChangedListener(TAG, StatusDescriptor.MAIN_PAGE_IS_BACKGROUND, statusChangedListenerForCheckNotice)
mServiceApis?.statusManagerApi?.registerStatusChangedListener(TAG, StatusDescriptor.MAIN_PAGE_IS_BACKGROUND, statusChangedListenerForCheckNotice)
}

View File

@@ -11,9 +11,10 @@ import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.debug.DebugConfig
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.autopilot.*
import com.mogo.eagle.core.data.chain.ChainConstant
import com.mogo.eagle.core.data.deva.chain.ChainConstant
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.constants.MoGoConfig
import com.mogo.eagle.core.data.deva.scene.SceneModule
import com.mogo.eagle.core.data.enums.TrafficTypeEnum
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.data.obu.ObuStatusInfo
@@ -424,6 +425,10 @@ class DebugSettingView @JvmOverloads constructor(
}
}
}
override fun moduleLogChanged(moduleTag: MutableMap<String, SceneModule>) {
//todo 模块日志 tag 发生变化,需要更新对应 UI
}
})
tbLogDebugView.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {

View File

@@ -1,10 +1,6 @@
package com.mogo.eagle.core.function.hmi.ui.utils
import android.content.Context
import android.view.View
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.service.IMogoServiceApis
import com.mogo.eagle.core.data.constants.MogoServicePaths
/**
* @author congtaowang
@@ -12,15 +8,6 @@ import com.mogo.eagle.core.data.constants.MogoServicePaths
*
* 描述
*/
private var apis: IMogoServiceApis? = null
fun getApis(context: Context): IMogoServiceApis {
if (apis == null) {
apis = ARouter.getInstance().build(com.mogo.eagle.core.data.constants.MogoServicePaths.PATH_SERVICE_APIS).navigation(context) as IMogoServiceApis;
}
return apis!!
}
fun View.gone() {
if (this.visibility != View.GONE) {
this.visibility = View.GONE

View File

@@ -326,7 +326,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
// 云公告发布
MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_AI_NOTICE, "IMoGoNoticeProvider"));
// 调度
MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_AI_DISPATCH, "IDispatchProvider"));
MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_AI_DISPATCH, "IDispatchProvider"));
// V2X 模块
MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_V2X_MODULE, "V2XProvider"));
// 自动驾驶系统检测模块

View File

@@ -8,7 +8,7 @@ import android.widget.ImageView
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.mogo.eagle.core.function.v2x.R
import com.mogo.module.common.glide.SkinAbleBitmapTarget
import com.mogo.eagle.core.widget.glide.SkinAbleBitmapTarget
import com.shuyu.gsyvideoplayer.GSYVideoManager
import com.shuyu.gsyvideoplayer.utils.GSYVideoType
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer