add config upload server

This commit is contained in:
zhongchao
2022-12-01 17:38:07 +08:00
parent 92a954ddbc
commit e646d4367b
18 changed files with 336 additions and 98 deletions

View File

@@ -1,6 +1,8 @@
package com.mogo.och.bus.util;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
import android.annotation.SuppressLint;
import android.text.TextUtils;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
@@ -54,6 +56,7 @@ public class BusAnalyticsManager {
AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams);
}
@SuppressLint("NewApi")
private void removeWaitingCallback() {
if (startAutopilotRunnable != null &&
UiThreadHandler.getsUiHandler().hasCallbacks(startAutopilotRunnable)) {

View File

@@ -26,7 +26,7 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_C
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_HTTP_DNS_CHANGED
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD_SHOW
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.function.call.analytics.AnalyticsManager
@@ -111,7 +111,7 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
// 设置是否输出日志
clientConfig.isShowDebugLog = true
// 设置是否输出网络日志
clientConfig.isShowNetDebugLog = false
clientConfig.isShowNetDebugLog = true //todo test em arrow
// 设置是否是直播推流的主播
clientConfig.isAnchor = true
when (DebugConfig.getCarMachineType()) {
@@ -258,7 +258,7 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
mogoHttpDns.addressChangedListener(object : OnAddressChangedListener {
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD_SHOW,
linkCode = CHAIN_LINK_CLOUD,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_HTTP_DNS_CHANGED,
paramIndexes = [0, 1],
@@ -309,7 +309,7 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD_SHOW,
linkCode = CHAIN_LINK_CLOUD,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL,
paramIndexes = [-1],
@@ -322,7 +322,7 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD_SHOW,
linkCode = CHAIN_LINK_CLOUD,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS,
paramIndexes = [-1],
@@ -335,7 +335,7 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD_SHOW,
linkCode = CHAIN_LINK_CLOUD,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST,
paramIndexes = [-1],
@@ -348,7 +348,7 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD_SHOW,
linkCode = CHAIN_LINK_CLOUD,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST,
paramIndexes = [0, 1],

View File

@@ -19,7 +19,6 @@ import com.zhjt.mogo_core_function_devatools.monitor.MonitorManager
import com.zhjt.mogo_core_function_devatools.scene.SceneManager.Companion.sceneManager
import com.zhjt.mogo_core_function_devatools.status.*
import com.zhjt.mogo_core_function_devatools.trace.TraceManager.Companion.traceManager
import com.zhjt.mogo_core_function_devatools.tts.TtsManager
import com.zhjt.mogo_core_function_devatools.tts.TtsManager.Companion.ttsManager
import com.zhjt.mogo_core_function_devatools.upgrade.UpgradeManager.Companion.upgradeManager
import record_cache.RecordPanelOuterClass
@@ -130,4 +129,8 @@ class DevaToolsProvider : IDevaToolsProvider {
override fun stopMonitor() {
mContext?.let { MonitorManager.getInstance(it)?.stopMonitor() }
}
override fun syncConfig() {
traceManager.syncConfig()
}
}

View File

@@ -5,7 +5,7 @@ import com.mogo.aicloud.services.socket.IMogoOnMessageListener
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_FUNC_CONFIG_CHANGED
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD_SHOW
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
@@ -73,7 +73,7 @@ class FuncConfigCenter : IMogoOnMessageListener<FuncConfig>, IMoGoAutopilotCarCo
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD_SHOW,
linkCode = CHAIN_LINK_CLOUD,
endpoint = TracingConstants.Endpoint.PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_FUNC_CONFIG_CHANGED,
paramIndexes = [0],

View File

@@ -36,8 +36,8 @@ import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.V2I
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.V2N
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.V2V
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.getMisChannelCode
import com.mogo.eagle.core.utilcode.util.AppUtils
import com.zhjt.mogo_core_function_devatools.BuildConfig
import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager
import com.zhjt.service_biz.Business
import com.zhjt.service_biz.FuncConfig
@@ -94,7 +94,7 @@ class FuncConfigConst {
foundationSubList.add(SubBiz(BIZ_PNC_WARNING, lock = false, state = true, dependNode = "", data = ""))
businessList.add(Business(FOUNDATION,foundationSubList))
return FuncConfig(0, AppUtils.getAppVersionCode(), getChannelCode(), getEnv(), businessList)
return FuncConfig(0, AppUtils.getAppVersionCode(), AppIdentityModeUtils.getMisChannelCode(FunctionBuildConfig.appIdentityMode), getEnv(), businessList)
}
private fun getEnv():Int{
@@ -105,19 +105,5 @@ class FuncConfigConst {
}
}
// todo 新增车型需要更新(清扫车)
fun getChannelCode(): Int{
return when{
AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)
&& AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode) -> 1
AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)
&& AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode) -> 2
AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)
&& AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode) -> 3
AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)
&& AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode) -> 4
else -> 0
}
}
}
}

View File

@@ -3,9 +3,12 @@ package com.zhjt.mogo_core_function_devatools.funcconfig.network
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.constants.HostConst
import com.mogo.eagle.core.data.BaseResponse
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.network.MoGoRetrofitFactory
import com.mogo.eagle.core.network.apiCall
import com.mogo.eagle.core.network.request
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.getMisChannelCode
import com.mogo.eagle.core.utilcode.util.DeviceUtils
import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigConst
import com.zhjt.service_biz.FuncConfig
@@ -37,7 +40,7 @@ class FuncConfigNetWorkModel {
}
map["sn"] = MoGoAiCloudClientConfig.getInstance().sn
map["mac"] = DeviceUtils.getMacAddress()
map["channelVersion"] = FuncConfigConst.getChannelCode()
map["channelVersion"] = AppIdentityModeUtils.getMisChannelCode(FunctionBuildConfig.appIdentityMode)
}
loader {
apiCall {

View File

@@ -0,0 +1,77 @@
package com.zhjt.mogo_core_function_devatools.trace
import android.content.Context
import android.util.Log
import com.mogo.cloud.passport.MoGoAiCloudClient
import com.mogo.commons.debug.DebugConfig
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.deva.chain.ChainConstant
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
import com.mogo.eagle.core.utilcode.util.NetworkUtils
import com.mogo.map.MogoMap
import com.zhjt.mogo_core_function_devatools.trace.network.StartUpTraceNetWorkModel
import com.zhjt.service.chain.ChainLog
import com.zhjt.service.chain.TracingConstants
object SyncConfig {
private val startUpTraceModel = StartUpTraceNetWorkModel()
private var traceId: String? = null
fun update(context: Context) {
// if (AppConfigInfo.widevineIDMd5.isNullOrEmpty()) {
// AppConfigInfo.widevineIDMd5 =
// DeviceIdUtils.getWidevineIDWithMd5(AbsMogoApplication.getApp())
// }
if (MoGoAiCloudClient.getInstance().aiCloudClientConfig != null) {
AppConfigInfo.mogoSN = MoGoAiCloudClient.getInstance().aiCloudClientConfig.sn
AppConfigInfo.mogoToken = MoGoAiCloudClient.getInstance().aiCloudClientConfig.token
}
AppConfigInfo.netMode = DebugConfig.getNetMode()
if (MogoMap.getInstance().mogoMap != null) {
AppConfigInfo.mapSdkVersion = MogoMap.getInstance().mogoMap.mapVersion
}
AppConfigInfo.isConnectNet = NetworkUtils.isConnected(context)
AppConfigInfo.isConnectSocket = DebugConfig.isDownloadSnapshot()
when {
AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode) -> {// 司机端
AppConfigInfo.isDriver = true
AppConfigInfo.isConnectedNetty = CallerTelematicManager.getServerStarted()
}
AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode) -> {
AppConfigInfo.isDriver = false
AppConfigInfo.isConnectedNetty = CallerTelematicManager.getClientConnStatus()
AppConfigInfo.serverSn = CallerTelematicManager.getServerToken()
}
else -> {
}
}
AppConfigInfo.teleTimeStamp = CallerAutoPilotManager.getTeleTimeStamp()
logOutConfig(AppConfigInfo)
}
@ChainLog(
linkChainLog = ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = ChainConstant.CHAIN_LINK_INIT,
endpoint = TracingConstants.Endpoint.PAD,
nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_APP_INFO_CONFIG_UPDATE,
paramIndexes = [0],
clientPkFileName = "sn"
)
fun logOutConfig(appConfig: AppConfigInfo) {
Log.d("$M_DEVA${"SyncConfig"}", "logOut APP Config : $appConfig")
startUpTraceModel.report(traceId, {
traceId = it
}, {
CallerLogger.e("$M_DEVA${"SyncConfig"}","error : $it")
})
}
}

View File

@@ -4,7 +4,9 @@ import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.data.deva.chain.ChainConstant
import com.mogo.eagle.core.data.deva.chain.ChainLogParam
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
@@ -14,12 +16,14 @@ import com.mogo.eagle.core.utilcode.util.Utils
import com.zhidao.loglib.fw.FileWriteManager
import com.zhidao.loglib.fw.FwBuild
import com.zhjt.service.chain.core.ChainTraceStarter
import mogo.telematics.pad.MessagePad
class TraceManager : IMoGoCloudListener {
class TraceManager : IMoGoCloudListener, IMoGoAutopilotCarConfigListener {
private val traceInfoCache = hashMapOf<Int, ChainLogParam>()
private val fwBuildMap: MutableMap<Int, FwBuild> = HashMap()
private var init = false
private var mContext: Context? = null
companion object {
@@ -35,10 +39,12 @@ class TraceManager : IMoGoCloudListener {
if (init) {
return
}
mContext = context
// 初始化Trace抓取服务
val pkgName = Utils.getApp().packageName
ChainTraceStarter.start(pkgName, DeviceUtils.getMacAddress(), false)
CallerCloudListenerManager.registerCloudListener(TAG, this)
CallerAutopilotCarConfigListenerManager.addListener(TAG, this)
// Trace过程中进行日志抓取对日志进行配置
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS] =
@@ -103,6 +109,7 @@ class TraceManager : IMoGoCloudListener {
override fun tokenGot(token: String, sn: String) {
FileWriteManager.getInstance().updateDeviceId(sn)
syncConfig()
}
fun setTraceLogEnable(enable: Boolean) {
@@ -130,4 +137,15 @@ class TraceManager : IMoGoCloudListener {
FileWriteManager.getInstance().operateChainMap(fwBuildMap)
}
override fun onAutopilotCarConfig(carConfigResp: MessagePad.CarConfigResp) {
syncConfig()
}
fun syncConfig(){
mContext?.let {
SyncConfig.update(it)
}
}
}

View File

@@ -0,0 +1,77 @@
package com.zhjt.mogo_core_function_devatools.trace.network
import com.google.gson.reflect.TypeToken
import com.mogo.commons.constants.HostConst
import com.mogo.eagle.core.data.BaseResponse
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.app.toConfigUpload
import com.mogo.eagle.core.network.MoGoRetrofitFactory
import com.mogo.eagle.core.network.apiCall
import com.mogo.eagle.core.network.request
import com.mogo.eagle.core.utilcode.util.GsonUtils
class StartUpTraceNetWorkModel {
private fun getNetWorkApi(baseUrl: String = HostConst.getHost()): TraceStartUpApiService {
return MoGoRetrofitFactory.getInstanceNoCallAdapter(baseUrl)
.create(TraceStartUpApiService::class.java)
}
private var retryTime = 0
private var success: ((String) -> Unit)? = null
private var error: ((String) -> Unit)? = null
private var traceId: String = ""
fun report(
id: String? = null,
onSuccess: ((String) -> Unit)? = null,
onError: ((String) -> Unit)? = null
) {
request<BaseResponse<String>> {
var map: MutableMap<String, Any> = mutableMapOf()
start {
if (success == null) {
success = onSuccess
}
if (error == null) {
error = onError
}
if (id != null) {
traceId = id
}
val configUpload = AppConfigInfo.toConfigUpload()
val data = GsonUtils.toJson(configUpload)
map =
GsonUtils.fromJson(data, object : TypeToken<MutableMap<String, Any>>() {}.type)
map["id"] = traceId
}
loader {
apiCall {
getNetWorkApi().report(map)
}
}
onSuccess {
if (it.result != null) {
onSuccess?.invoke(it.result)
} else {
if (retryTime < 3) {
retryTime += 1
report()
} else {
error?.invoke("startUp report error msg is null")
}
}
}
onError {
if (retryTime < 3) {
retryTime += 1
report()
} else if (it.message != null) {
error?.invoke(it.message ?: "startUp report error msg is null")
}
}
}
}
}

View File

@@ -0,0 +1,13 @@
package com.zhjt.mogo_core_function_devatools.trace.network
import com.mogo.eagle.core.data.BaseResponse
import retrofit2.http.Body
import retrofit2.http.Headers
import retrofit2.http.POST
interface TraceStartUpApiService {
@Headers("Content-Type:application/json;charset=UTF-8")
@POST("/eagleEye-mis/startup/report")
suspend fun report(@Body map: MutableMap<String, Any>): BaseResponse<String>
}

View File

@@ -20,13 +20,9 @@ import androidx.core.view.*
import androidx.lifecycle.lifecycleScope
import com.alibaba.android.arouter.facade.annotation.Route
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.cloud.passport.MoGoAiCloudClient
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.debug.DebugConfig
import com.mogo.commons.mvp.BaseFragment
import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.voice.*
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.bindingcar.AdUpgradeStateHelper
import com.mogo.eagle.core.data.bindingcar.IPCUpgradeStateInfo
import com.mogo.eagle.core.data.camera.CameraEntity
@@ -199,6 +195,8 @@ class MoGoHmiFragment : MvpFragment<MoGoHmiContract.View?, HmiPresenter?>(),
override fun initViews() {
initViewShowWithConfig()
// 同步AppInfo Config信息
CallerDevaToolsManager.syncConfig()
val decorView = requireActivity().window.decorView as FrameLayout
statusBarView = decorView.findViewWithTag<View>("status_bar") as StatusBarView?
@@ -231,50 +229,6 @@ class MoGoHmiFragment : MvpFragment<MoGoHmiContract.View?, HmiPresenter?>(),
true
}
// init appConfigInfo
AppConfigInfo.appName = AppUtils.getAppName()
if (AppConfigInfo.appVersionCode == 0) {
AppConfigInfo.appVersionCode = AppUtils.getAppVersionCode()
}
if (AppConfigInfo.appVersionName.isNullOrEmpty()) {
AppConfigInfo.appVersionName = AppUtils.getAppVersionName()
}
if (AppConfigInfo.appPackageName.isNullOrEmpty()) {
AppConfigInfo.appPackageName = AppUtils.getAppPackageName()
}
if (AppConfigInfo.uniqueDeviceId.isNullOrEmpty()) {
AppConfigInfo.uniqueDeviceId = DeviceIdUtils.getDeviceId(AbsMogoApplication.getApp())
}
// if (AppConfigInfo.widevineIDMd5.isNullOrEmpty()) {
// AppConfigInfo.widevineIDMd5 =
// DeviceIdUtils.getWidevineIDWithMd5(AbsMogoApplication.getApp())
// }
if (MoGoAiCloudClient.getInstance().aiCloudClientConfig != null) {
AppConfigInfo.mogoSN = MoGoAiCloudClient.getInstance().aiCloudClientConfig.sn
AppConfigInfo.mogoToken = MoGoAiCloudClient.getInstance().aiCloudClientConfig.token
}
AppConfigInfo.netMode = DebugConfig.getNetMode()
if (MogoMap.getInstance().mogoMap != null) {
AppConfigInfo.mapSdkVersion = MogoMap.getInstance().mogoMap.mapVersion
}
AppConfigInfo.isConnectNet = NetworkUtils.isConnected(context)
AppConfigInfo.isConnectSocket = DebugConfig.isDownloadSnapshot()
when {
AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode) -> {// 司机端
AppConfigInfo.isDriver = true
AppConfigInfo.isConnectedNetty = CallerTelematicManager.getServerStarted()
}
AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode) -> {
AppConfigInfo.isDriver = false
AppConfigInfo.isConnectedNetty = CallerTelematicManager.getClientConnStatus()
AppConfigInfo.serverSn = CallerTelematicManager.getServerToken()
}
else -> {
}
}
AppConfigInfo.teleTimeStamp = CallerAutoPilotManager.getTeleTimeStamp()
//美化模式隐藏开关
viewDemoModeSwitch.setOnClickListener {
//只在司机端设置美化模式开关功能
@@ -346,9 +300,6 @@ class MoGoHmiFragment : MvpFragment<MoGoHmiContract.View?, HmiPresenter?>(),
setProxyTrafficLightView(viewTrafficLightVr)
setProxyLimitingSpeedView(viewLimitingVelocity)
setViewNotificationProvider(this)
// context?.also {
// CallerDevaToolsManager.showStatusBar(it, statusBarContainer)
// }
}
override fun getNotificationView(): IViewNotification? =

View File

@@ -16,7 +16,7 @@ import com.mogo.eagle.core.data.enums.EventTypeEnum
import com.mogo.eagle.core.data.enums.EventTypeHelper
import com.mogo.commons.network.*
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_V2N
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD_SHOW
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CLOUD_V2N
import com.mogo.eagle.core.data.enums.*
import com.mogo.eagle.core.data.map.*
@@ -401,7 +401,7 @@ object V2XEventManager : IMoGoMapLocationListener, IMoGoTokenCallback, IV2XCallb
*/
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CLOUD_V2N,
linkCode = CHAIN_LINK_CLOUD_SHOW,
linkCode = CHAIN_LINK_CLOUD,
endpoint = TracingConstants.Endpoint.PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_V2N,
paramIndexes = [0],

View File

@@ -1,21 +1,27 @@
package com.mogo.eagle.core.data.app
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.getMisChannelCode
import com.mogo.eagle.core.utilcode.util.AppUtils
/**
* @author xiaoyuzhou
* @date 2021/10/12 2:46 下午
* 当前应用的配置信息
*/
object AppConfigInfo {
/*应用构建基本信息*/
var workingBranchName: String? = null
var workingBranchHash: String? = null
var appBuildTime: String? = null
/*应用基本信息*/
var appName: String? = null
var appVersionCode = 0
var appVersionName: String? = null
var appPackageName: String? = null
val appName: String = AppUtils.getAppName()
val appVersionCode = AppUtils.getAppVersionCode()
val appVersionName: String = AppUtils.getAppVersionName()
val appPackageName: String = AppUtils.getAppPackageName()
var uniqueDeviceId: String? = null
var widevineIDMd5: String? = null
@@ -27,6 +33,7 @@ object AppConfigInfo {
var mogoToken: String? = null
var mogoSN: String? = null
// 工控相关信息
//车牌号
@Volatile
var plateNumber: String? = null
@@ -39,6 +46,7 @@ object AppConfigInfo {
//工控机协议版本
var protocolVersionNumber: Int = 0
//业务状态信息
/**
* debug 测试环境--2
* release 生产环境--3
@@ -46,6 +54,9 @@ object AppConfigInfo {
*/
var netMode: Int = 3
// 角色
var role: Int = AppIdentityModeUtils.getMisChannelCode(FunctionBuildConfig.appIdentityMode)
// 是否可以网络连接
var isConnectNet: Boolean = false
@@ -155,4 +166,39 @@ object AppConfigInfo {
}${isConnectedNetty}</font><br/>" +
"<font color='red' size='30'>------------------工控机感知&规控数据---------------------</font><br/>"
}
}
fun AppConfigInfo.toConfigUpload():ConfigUpload{
val configUpload = ConfigUpload()
configUpload.adasSdkVersion = adasSdkVersion
configUpload.appBuildTime = appBuildTime
configUpload.appName = appName
configUpload.appPackageName = appPackageName
configUpload.appVersionCode = appVersionCode
configUpload.appVersionName = appVersionName
configUpload.connectStatusDescribe = connectStatusDescribe
configUpload.dockerVersion = dockerVersion
configUpload.iPCMacAddress = iPCMacAddress
configUpload.isConnectAutopilot = isConnectAutopilot
configUpload.isConnectNet = isConnectNet
configUpload.isConnectObu = isConnectObu
configUpload.isConnectSocket = isConnectSocket
configUpload.isConnectedNetty = isConnectedNetty
configUpload.mapSdkVersion = mapSdkVersion
configUpload.mogoSN = mogoSN
configUpload.mogoToken = mogoToken
configUpload.netMode = netMode
configUpload.obuSdkVersion = obuSdkVersion
configUpload.plateNumber = plateNumber
configUpload.protocolVersionNumber = protocolVersionNumber
configUpload.role = role
configUpload.serverSn = serverSn
configUpload.iPCMacAddress = iPCMacAddress
configUpload.teleTimeStamp = teleTimeStamp
configUpload.timeStamp = System.currentTimeMillis()
configUpload.uniqueDeviceId = uniqueDeviceId
configUpload.widevineIDMd5 = widevineIDMd5
configUpload.workingBranchHash = workingBranchHash
configUpload.workingBranchName = workingBranchName
return configUpload
}

View File

@@ -0,0 +1,36 @@
package com.mogo.eagle.core.data.app
class ConfigUpload(
var workingBranchName: String? = null,
var workingBranchHash: String? = null,
var appBuildTime: String? = null,
var appName: String? = null,
var appVersionCode: Int = 0,
var appVersionName: String? = null,
var appPackageName: String? = null,
var uniqueDeviceId: String? = null,
var widevineIDMd5: String? = null,
var mapSdkVersion: String? = null,
var adasSdkVersion: String? = null,
var obuSdkVersion: String? = null,
var mogoToken: String? = null,
var mogoSN: String? = null,
var plateNumber: String? = null,
var iPCMacAddress: String? = null,
var dockerVersion: String? = null,
var protocolVersionNumber: Int = 0,
var netMode: Int = 3,
var role: Int = 0,
var isConnectNet: Boolean = false,
var isConnectSocket: Boolean = false,
var isConnectAutopilot: Boolean = false,
var connectStatusDescribe: String? = null,
var isConnectObu: Boolean = false,
var isConnectedNetty: Boolean = false,
var serverSn: String = "",
var teleTimeStamp: Long = 0L,
var timeStamp:Long = 0L
) {
}

View File

@@ -5,7 +5,7 @@ class ChainConstant {
companion object{
// 与云平台数据链路交互
const val CHAIN_LINK_CLOUD_SHOW = 0
const val CHAIN_LINK_CLOUD = 0
// 与工控机相关交互
const val CHAIN_LINK_ADAS = 1
// 鹰眼初始化流程顺序相关
@@ -62,6 +62,7 @@ class ChainConstant {
const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_ERROR = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_ERROR"
const val CHAIN_ALIAS_CODE_HTTP_DNS_CHANGED = "CHAIN_ALIAS_CODE_HTTP_DNS_CHANGED"
const val CHAIN_ALIAS_CODE_FUNC_CONFIG_CHANGED = "CHAIN_ALIAS_CODE_FUNC_CONFIG_CHANGED"
const val CHAIN_ALIAS_CODE_APP_INFO_CONFIG_UPDATE = "CHAIN_ALIAS_CODE_APP_INFO_CONFIG_UPDATE"
const val CHAIN_ALIAS_CODE_CLOUD_V2N = "CHAIN_ALIAS_CODE_CLOUD_V2N"
const val CHAIN_ALIAS_CODE_INIT_ON_MAP_LOADED = "CHAIN_ALIAS_CODE_INIT_ON_MAP_LOADED"

View File

@@ -123,4 +123,9 @@ interface IDevaToolsProvider : IProvider {
fun startMonitor()
fun stopMonitor()
/**
* 同步AppConfigInfo信息
*/
fun syncConfig()
}

View File

@@ -2,7 +2,6 @@ package com.mogo.eagle.core.function.call.devatools
import android.app.Activity
import android.content.Context
import android.util.Log
import android.view.*
import com.mogo.eagle.core.data.config.*
import com.mogo.eagle.core.data.constants.MogoServicePaths
@@ -176,4 +175,8 @@ object CallerDevaToolsManager {
fun stopMonitor() {
devaToolsProviderApi?.stopMonitor()
}
fun syncConfig(){
devaToolsProviderApi?.syncConfig()
}
}

View File

@@ -1,19 +1,31 @@
package com.mogo.eagle.core.utilcode.mogo;
package com.mogo.eagle.core.utilcode.mogo
fun AppIdentityModeUtils.getMisChannelCode(appIdentityMode: Int): Int{
return when{
isTaxi(appIdentityMode) && isPassenger(appIdentityMode) -> 1
isTaxi(appIdentityMode) && isDriver(appIdentityMode) -> 2
isBus(appIdentityMode) && isPassenger(appIdentityMode) -> 3
isBus(appIdentityMode) && isDriver(appIdentityMode) -> 4
else -> 0
}
}
/**
* 根据
*
* @see com.mogo.eagle.core.data.config.FunctionBuildConfig#appIdentityMode 判断身份
* @see com.mogo.eagle.core.data.config.FunctionBuildConfig.appIdentityMode 判断身份
*/
public class AppIdentityModeUtils {
object AppIdentityModeUtils {
/**
* 是否是 司机端这里不细分具体是小巴出租车等类型
*
* @param appIdentityMode productFlavors 配置的类型
* @return true - 是司机端 false - 不是司机端
*/
public static boolean isDriver(int appIdentityMode) {
return (appIdentityMode & 0x01) != 0x01;
@JvmStatic
fun isDriver(appIdentityMode: Int): Boolean {
return appIdentityMode and 0x01 != 0x01
}
/**
@@ -22,8 +34,9 @@ public class AppIdentityModeUtils {
* @param appIdentityMode productFlavors 配置的类型
* @return true - 是乘客端 false - 不是乘客端
*/
public static boolean isPassenger(int appIdentityMode) {
return (appIdentityMode & 0x01) == 0x01;
@JvmStatic
fun isPassenger(appIdentityMode: Int): Boolean {
return appIdentityMode and 0x01 == 0x01
}
/**
@@ -32,8 +45,9 @@ public class AppIdentityModeUtils {
* @param appIdentityMode productFlavors 配置的类型
* @return true - 是小巴车端 false - 不是小巴车端
*/
public static boolean isBus(int appIdentityMode) {
return (appIdentityMode & 0xA0) == 0xA0;
@JvmStatic
fun isBus(appIdentityMode: Int): Boolean {
return appIdentityMode and 0xA0 == 0xA0
}
/**
@@ -42,7 +56,9 @@ public class AppIdentityModeUtils {
* @param appIdentityMode productFlavors 配置的类型
* @return true - 是出租车端 false - 不是出租车端
*/
public static boolean isTaxi(int appIdentityMode) {
return (appIdentityMode & 0xA0) != 0xA0;
@JvmStatic
fun isTaxi(appIdentityMode: Int): Boolean {
return appIdentityMode and 0xA0 != 0xA0
}
}