[630][adas] 修复处于PING状态时,无法停止PING问题
This commit is contained in:
@@ -30,6 +30,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotControlProvider
|
||||
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_RAIN
|
||||
import com.mogo.eagle.core.function.api.map.collect.IMoGoMapDataCollectProvider
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
|
||||
import com.mogo.eagle.core.function.call.cloud.CallerCloudCertManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapDataCollectorManager
|
||||
@@ -125,6 +126,9 @@ class MoGoAutopilotControlProvider :
|
||||
.setConnectionMode(AdasOptions.IPC_CONNECTION_MODE.PING)
|
||||
.setPingAddressList(AdasManager.getInstance().pingAddressList)
|
||||
.setPassenger(false)
|
||||
.setEnableCertification(SharedPrefsMgr.getInstance().getBoolean(MoGoConfig.AUTOPILOT_CERTIFICATION, MoGoConfig.AUTOPILOT_CERTIFICATION_DEFAULT_VALUE))
|
||||
.setRootCrt(CallerCloudCertManager.getRootCrtF())
|
||||
.setDeviceCrt(CallerCloudCertManager.getDeviceCrtF())
|
||||
.setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear)
|
||||
// .setSubscribeInterfaceOptions(subscribeInterfaceOptions)//
|
||||
.build()
|
||||
@@ -253,6 +257,9 @@ class MoGoAutopilotControlProvider :
|
||||
.setConnectionMode(AdasOptions.IPC_CONNECTION_MODE.PING)
|
||||
.setPingAddressList(AdasManager.getInstance().pingAddressList)
|
||||
.setPassenger(false)// 乘客端直连工控机改为false
|
||||
.setEnableCertification(SharedPrefsMgr.getInstance().getBoolean(MoGoConfig.AUTOPILOT_CERTIFICATION, MoGoConfig.AUTOPILOT_CERTIFICATION_DEFAULT_VALUE))
|
||||
.setRootCrt(CallerCloudCertManager.getRootCrtF())
|
||||
.setDeviceCrt(CallerCloudCertManager.getDeviceCrtF())
|
||||
.setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear)
|
||||
.build()
|
||||
AdasManager.getInstance().create(mContext, options, MoGoAdasMsgConnectStatusListenerImpl())
|
||||
@@ -311,6 +318,9 @@ class MoGoAutopilotControlProvider :
|
||||
// 设置IP地址
|
||||
val options = AdasOptions.newBuilder()
|
||||
.setPassenger(false)
|
||||
.setEnableCertification(SharedPrefsMgr.getInstance().getBoolean(MoGoConfig.AUTOPILOT_CERTIFICATION, MoGoConfig.AUTOPILOT_CERTIFICATION_DEFAULT_VALUE))
|
||||
.setRootCrt(CallerCloudCertManager.getRootCrtF())
|
||||
.setDeviceCrt(CallerCloudCertManager.getDeviceCrtF())
|
||||
.setConnectionMode(AdasOptions.IPC_CONNECTION_MODE.SPECIFIED)
|
||||
.setSpecifiedAddress(autoPilotIp)
|
||||
.build()
|
||||
|
||||
@@ -369,20 +369,6 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
invokeAutopilotSNRequest(basicInfoReq)
|
||||
}
|
||||
|
||||
/**
|
||||
* 域控证书认证状态
|
||||
* 启用认证需要配置 AdasOptions.setEnableCertification()
|
||||
* 连接时启用认证 后才会有证认结果
|
||||
* ROOT证书异常会影响校验域控证书
|
||||
* PAD证书异常会影响域控端校验的证书校验,域控端证书校验失败将会断开连接,且并不会给出断开原因,ADAS LIB会执行重连操作(如果配置启用重连)
|
||||
* 假如校验域控证书认证失败会主动断开连接,且不进行重连
|
||||
*
|
||||
* @param status 域控证书认证结果{@link AdasConstants.CertificationStatus}
|
||||
*/
|
||||
override fun onCertification(status: AdasConstants.CertificationStatus) {
|
||||
|
||||
}
|
||||
|
||||
//工控机基础配置信息
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_TYPE_STATUS,
|
||||
@@ -400,7 +386,6 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
AppConfigInfo.plateNumber = carConfigResp.plateNumber//车牌号
|
||||
AppConfigInfo.iPCMacAddress = carConfigResp.macAddress//工控机MAC地址
|
||||
AppConfigInfo.protocolVersionNumber = carConfigResp.protocolVersionValue//工控机协议版本
|
||||
AppConfigInfo.isConnectAutopilot = true
|
||||
invokeAutopilotCarConfigData(carConfigResp)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.mogo.eagle.core.function.datacenter.autopilot.adapter
|
||||
|
||||
import android.text.TextUtils
|
||||
import com.mogo.commons.debug.DebugConfig.NET_MODE_DEMO
|
||||
import com.mogo.commons.debug.DebugConfig.NET_MODE_DEV
|
||||
import com.mogo.commons.debug.DebugConfig.NET_MODE_QA
|
||||
@@ -22,6 +23,7 @@ import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
|
||||
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_D_C
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.zhidao.support.adas.high.AdasManager
|
||||
import com.zhidao.support.adas.high.OnAdasConnectStatusListener
|
||||
@@ -34,6 +36,7 @@ import com.zhidao.support.adas.high.common.Constants.TERMINAL_ROLE.DRIVER
|
||||
import com.zhidao.support.adas.high.common.Constants.TERMINAL_ROLE.PASSENGER
|
||||
import com.zhjt.mogo.adas.data.AdasConstants
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
|
||||
/**
|
||||
* ADAS-SDK与工控机连接状态回调
|
||||
@@ -52,9 +55,15 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
|
||||
@Volatile
|
||||
private var isFirstDisconnected = false//只有连接成功后断开连接才加入消息盒子
|
||||
private val isReceivedBasicInfoReq = AtomicBoolean(false)//是否接收到域控基础信息请求
|
||||
private val isSentBasicInfoReq = AtomicBoolean(false)//是否已回复域控基础信息请求
|
||||
|
||||
@Volatile
|
||||
private var certificationResult = ""
|
||||
|
||||
init {
|
||||
CallerCloudListenerManager.addListener(TAG, this)
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
CallerAutopilotActionsListenerManager.setConnected(AdasManager.getInstance().ipcConnectionStatus == AdasConstants.IpcConnectionStatus.CONNECTED)
|
||||
CallerParallelDrivingActionsListenerManager.setConnected(AdasManager.getInstance().ipcConnectionStatus == AdasConstants.IpcConnectionStatus.CONNECTED)
|
||||
}
|
||||
@@ -68,11 +77,11 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
AdasManager.getInstance().ipcConnectedIp
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectPort =
|
||||
AdasManager.getInstance().ipcConnectedPort
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = false
|
||||
AppConfigInfo.isConnectAutopilot = false
|
||||
//与工控机断开连接,需要重置自动驾驶状态(包括上传至云平台缓存信息),等待连接成功后同步状态信息
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state = 0
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().pilotmode = 0
|
||||
isReceivedBasicInfoReq.set(false)
|
||||
isSentBasicInfoReq.set(false)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -85,11 +94,16 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
* {@link AdasConstants.IpcConnectionStatus#SERVER_DISCONNECTED} 服务端断开(如果服务端关闭时发送了原因将存在,如果服务端关闭时未发送将为null)
|
||||
*/
|
||||
override fun onConnectionIPCStatus(status: AdasConstants.IpcConnectionStatus, reason: String?) {
|
||||
CallerAutopilotActionsListenerManager.setConnected(status == AdasConstants.IpcConnectionStatus.CONNECTED)
|
||||
CallerParallelDrivingActionsListenerManager.setConnected(status == AdasConstants.IpcConnectionStatus.CONNECTED)
|
||||
AppConfigInfo.connectStatusDescribe = reason
|
||||
val isConnected = status == AdasConstants.IpcConnectionStatus.CONNECTED
|
||||
CallerAutopilotActionsListenerManager.setConnected(isConnected)
|
||||
CallerParallelDrivingActionsListenerManager.setConnected(isConnected)
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = isConnected
|
||||
AppConfigInfo.isConnectAutopilot = isConnected
|
||||
|
||||
var connectStatusDescribe = "未连接"
|
||||
when (status) {
|
||||
AdasConstants.IpcConnectionStatus.DISCONNECTED -> {
|
||||
connectStatusDescribe = "主动断开连接"
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"未连接或主动断开连接(未连接:鹰眼首次启动时未调用连接函数【目前鹰眼默认启动就会调用连接函数】;主动断开连接:主动调用断开连接函数;)"
|
||||
@@ -98,7 +112,8 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.CONNECTED -> {
|
||||
CallerLogger.d("$M_D_C$TAG", "已连接")
|
||||
connectStatusDescribe = "已连接"
|
||||
CallerLogger.d("$M_D_C$TAG", connectStatusDescribe)
|
||||
// 初始化自动驾驶状态信息
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectIP =
|
||||
AdasManager.getInstance().ipcConnectedIp
|
||||
@@ -106,10 +121,6 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
AdasManager.getInstance().ipcConnectedPort
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().version =
|
||||
AdasManager.getInstance().adasVersion
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = true
|
||||
AppConfigInfo.isConnectAutopilot = true
|
||||
// 同步SN给工控机
|
||||
syncBasicInfoToAutopilot()
|
||||
//每次工控机连接成功后,需同步当前设置的美化模式状态
|
||||
CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode)
|
||||
//当连接状态是关闭美化模式时,同步给工控机
|
||||
@@ -122,92 +133,157 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.CONNECTING -> {
|
||||
CallerLogger.d("$M_D_C$TAG", "域控连接中")
|
||||
connectStatusDescribe = "连接中"
|
||||
CallerLogger.d("$M_D_C$TAG", connectStatusDescribe)
|
||||
connectToast("域控连接中")
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.RECONNECTING_TIMER -> {
|
||||
CallerLogger.d("$M_D_C$TAG", "域控重连中(定时器)")
|
||||
connectStatusDescribe = "重连中(定时器)"
|
||||
CallerLogger.d("$M_D_C$TAG", connectStatusDescribe)
|
||||
connectToast("域控重连中")
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.RECONNECTING_NETWORK -> {
|
||||
CallerLogger.d("$M_D_C$TAG", "域控重连中(网络监听)")
|
||||
connectStatusDescribe = "重连中(网络监听)"
|
||||
CallerLogger.d("$M_D_C$TAG", connectStatusDescribe)
|
||||
connectToast("域控重连中")
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.CONNECT_EXCEPTION -> {
|
||||
connectStatusDescribe =
|
||||
"连接异常(鹰眼与域控连接失败、无法连接、非正常断开等),原因:$reason"
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"连接异常(表示鹰眼与域控连接失败、无法连接、非正常断开等),原因:$reason"
|
||||
connectStatusDescribe
|
||||
)
|
||||
resetArgs()
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.ILLEGAL_ADDRESS -> {
|
||||
connectStatusDescribe =
|
||||
"非法地址(连接模式为指定地址时:表示当前鹰眼调用连接时传入的域控地址错误或不符合规则【不修改默认配置不会出现此问题】;连接模式为PING模式时:表示传入的PING地址列表存在问题)"
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"非法地址(连接模式为指定地址时:表示当前鹰眼调用连接时传入的域控地址错误或不符合规则【不修改默认配置不会出现此问题】;连接模式为PING模式时:表示传入的PING地址列表存在问题)"
|
||||
connectStatusDescribe
|
||||
)
|
||||
resetArgs()
|
||||
connectToast("非法域控地址")
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.SEARCH_ADDRESS -> {
|
||||
connectStatusDescribe = "正在搜索域控地址"
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"正在搜索域控地址(表示当前鹰眼正在查找是否有可用的域控地址)"
|
||||
connectStatusDescribe
|
||||
)
|
||||
connectToast("正在搜索域控地址")
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.NOT_FOUND_ADDRESS -> {
|
||||
connectStatusDescribe =
|
||||
"找不到可用地址(域控地址列表中的全部地址均无法连通【不修改默认配置的情况下需要排查PAD是否连接车载路由器、工控机是否连接车载路由器、工控机是否开机等】)"
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"找不到可用地址(当前鹰眼配置的域控地址列表中的全部地址均无法PING通【不修改默认配置的情况下需要排查PAD是否连接车载路由器、工控机是否连接车载路由器、工控机是否开机等】)"
|
||||
connectStatusDescribe
|
||||
)
|
||||
resetArgs()
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.CERTIFICATION_FAILED -> {
|
||||
connectStatusDescribe =
|
||||
"域控证书认证异常(鹰眼端或鹰眼端和域控端启用认证后出现异常),原因$certificationResult"
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"认证异常(表示鹰眼端或鹰眼端和域控端启用认证后,认证出现异常。具体认证异常状态详情见认证状态CertificationStatus【鹰眼端验证域控证书失败会断开连接不进行重连;域控端验证鹰眼端证书失败会断开连接,但是由于域控断开并没有发送断开的原因所以鹰眼会自动重连,重连次数可配置为:用不重连、无限重连、指定次数重连】)"
|
||||
"域控证书认证异常(鹰眼端或鹰眼端和域控端启用认证后,认证出现异常。具体认证异常状态详情见认证状态CertificationStatus【鹰眼端验证域控证书失败会断开连接不进行重连;域控端验证鹰眼端证书失败会断开连接,但是由于域控断开并没有发送断开的原因所以鹰眼会自动重连,重连次数可配置为:用不重连、无限重连、指定次数重连】)"
|
||||
)
|
||||
resetArgs()
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.HEARTBEAT_TIMEOUT -> {
|
||||
connectStatusDescribe =
|
||||
"心跳超时(连接域控成功后在一段时间内未收到域控任何数据),超时时间:${reason}秒"
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"心跳超时(表示连接域控成功后在一段时间内未收到域控任何数据,默认4秒【可以配置】),超时时间:${reason}秒"
|
||||
connectStatusDescribe
|
||||
)
|
||||
resetArgs()
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.PROTOCOL_MISMATCH -> {
|
||||
connectStatusDescribe = "協議不匹配(被连接的域控端非WebSocket协议【可能性非常低】)"
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"協議不匹配(表示被连接的服务端非WebSocket协议【可能性非常低】)"
|
||||
connectStatusDescribe
|
||||
)
|
||||
resetArgs()
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.SERVER_DISCONNECTED -> {
|
||||
connectStatusDescribe =
|
||||
"域控主动断开连接(域控主动发起断开WebSocket连接,目前主要原因有:1.证书认证失败;2.老版本MAP不支持多连接的情况下会踢掉客户端;),域控断开发送的消息:${reason}"
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"域控主动断开连接(表示域控主动发起断开WebSocket连接,目前主要原因有:1.证书认证失败;2.老版本MAP不支持多连接的情况下会踢掉客户端;),域控断开发送的消息:${reason}"
|
||||
connectStatusDescribe
|
||||
)
|
||||
resetArgs()
|
||||
}
|
||||
}
|
||||
AppConfigInfo.connectStatusDescribe = connectStatusDescribe
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ipcConnStatus = status
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatusDescribe = reason
|
||||
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatusReason = reason
|
||||
CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus()
|
||||
CallerAutoPilotStatusListenerManager.invokeAutoPilotIPCStatusChanged(status, reason)
|
||||
saveIntoMsgBox(status, reason)
|
||||
}
|
||||
|
||||
/**
|
||||
* 域控证书认证状态
|
||||
* 启用认证需要配置 AdasOptions.setEnableCertification()
|
||||
* 连接时启用认证 后才会有证认结果
|
||||
* ROOT证书异常会影响校验域控证书
|
||||
* PAD证书异常会影响域控端校验的证书校验,域控端证书校验失败将会断开连接,且并不会给出断开原因,ADAS LIB会执行重连操作(如果配置启用重连)
|
||||
* 假如校验域控证书认证失败会主动断开连接,且不进行重连
|
||||
*
|
||||
* @param status 域控证书认证结果{@link AdasConstants.CertificationStatus}
|
||||
*/
|
||||
override fun onCertification(status: AdasConstants.CertificationStatus) {
|
||||
if (status == AdasConstants.CertificationStatus.TIMEOUT) {
|
||||
certificationResult = ":认证超时";
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"域控证书认证超时(表示域控未发送BasicInfoReq接口的数据【这种情况可能是连接出现了问题】)"
|
||||
)
|
||||
} else {
|
||||
if (status != AdasConstants.CertificationStatus.NOT_ENABLED) {
|
||||
if (status == AdasConstants.CertificationStatus.CERTIFICATE_CHAIN_SUCCESS) {
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"域控证书链校验成功"
|
||||
)
|
||||
} else if (status == AdasConstants.CertificationStatus.ROOT_CRT_ERROR) {
|
||||
certificationResult = ":ROOT证书异常";
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"ROOT证书异常(表示未传递证书,没有拿到ROOT证书)"
|
||||
)
|
||||
} else if (status == AdasConstants.CertificationStatus.IPC_CRT_ERROR) {
|
||||
certificationResult = ":域控证书异常";
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"域控证书异常(表示域控发送了BasicInfoReq接口的数据但是未传递证书或证书解码失败【失败的可能性很低】)"
|
||||
)
|
||||
} else if (status == AdasConstants.CertificationStatus.CERTIFICATE_CHAIN_FAILED) {
|
||||
certificationResult = ":证书链校验失败";
|
||||
CallerLogger.d(
|
||||
"$M_D_C$TAG",
|
||||
"域控证书链校验失败(表示证书链未验证通过。证书不匹配、证书格式不正确)"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun saveIntoMsgBox(
|
||||
status: AdasConstants.IpcConnectionStatus,
|
||||
reason: String?
|
||||
@@ -219,6 +295,7 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
isFirstException = true
|
||||
isFirstDisconnected = true
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.DISCONNECTED -> {
|
||||
if (isFirstDisconnected) {
|
||||
title = "连接异常"
|
||||
@@ -239,14 +316,22 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
isFirstException = false
|
||||
}
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.CERTIFICATION_FAILED -> {
|
||||
title = "连接异常"
|
||||
content = "域控证书认证异常$certificationResult"
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.HEARTBEAT_TIMEOUT -> {
|
||||
title = "连接异常"
|
||||
content = "域控心跳超时"
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.SERVER_DISCONNECTED -> {
|
||||
title = "连接异常"
|
||||
content = "域控主动断开连接"
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
if (title.isNotEmpty() && content.isNotEmpty()) {
|
||||
@@ -267,7 +352,11 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
* 工控机获取SN
|
||||
*/
|
||||
override fun onAutopilotSNRequest(basicInfoReq: MessagePad.BasicInfoReq) {
|
||||
syncBasicInfoToAutopilot()
|
||||
CallerLogger.d("$M_D_C$TAG", "收到域控基础信息请求");
|
||||
isReceivedBasicInfoReq.set(true)
|
||||
if (!TextUtils.isEmpty(SharedPrefsMgr.getInstance().sn)) {
|
||||
syncBasicInfoToAutopilot()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -281,7 +370,9 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
.sendBasicInfoResp(
|
||||
SharedPrefsMgr.getInstance().sn,
|
||||
getEnvironment(),
|
||||
getTerminalRole()
|
||||
getTerminalRole(),
|
||||
AppUtils.getAppVersionCode(),
|
||||
AppUtils.getAppVersionName()
|
||||
)
|
||||
} else {
|
||||
// 乘客屏先不传sn
|
||||
@@ -289,9 +380,12 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
.sendBasicInfoResp(
|
||||
"",
|
||||
getEnvironment(),
|
||||
getTerminalRole()
|
||||
getTerminalRole(),
|
||||
AppUtils.getAppVersionCode(),
|
||||
AppUtils.getAppVersionName()
|
||||
)
|
||||
}
|
||||
isSentBasicInfoReq.set(true)
|
||||
}
|
||||
|
||||
private fun getEnvironment(): Int {
|
||||
@@ -313,7 +407,10 @@ class MoGoAdasMsgConnectStatusListenerImpl :
|
||||
}
|
||||
|
||||
override fun tokenGot(token: String, sn: String) {
|
||||
syncBasicInfoToAutopilot()
|
||||
CallerLogger.d("$M_D_C$TAG", "SN获取成功=$sn");
|
||||
if (isReceivedBasicInfoReq.get() && !isSentBasicInfoReq.get()) {//已收到域控基础信息请求,但是之前SN没有所以还未回复,现在获取到SN后再进行回复
|
||||
syncBasicInfoToAutopilot()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user