[630][adas] 新增域控认证;优化重连机制:无限重连、用不重连、指定次数重连;优化连接状态;新增设置是否启用超时检测;新增是否自动连接;

This commit is contained in:
xinfengkun
2024-02-28 14:13:19 +08:00
parent 6371ed33c4
commit 58e533bb2f
43 changed files with 1198 additions and 640 deletions

View File

@@ -17,6 +17,7 @@ import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.util.NetworkUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.zhjt.mogo.adas.data.AdasConstants
import kotlinx.android.synthetic.main.view_blue_tooth.view.*
import java.util.concurrent.TimeUnit
import java.util.concurrent.atomic.AtomicInteger
@@ -99,7 +100,7 @@ open class BlueToothView: LinearLayout, IMoGoMoFangProvider.OnMoFangStatusListen
}
}
override fun onAutopilotIpcConnectStatusChanged(status: Int, reason: String?) {
override fun onAutopilotIpcConnectStatusChanged(status: AdasConstants.IpcConnectionStatus, reason: String?) {
super.onAutopilotIpcConnectStatusChanged(status, reason)
if (!CallerAutoPilotStatusListenerManager.isConnect()) {
UiThreadHandler.post {

View File

@@ -16,6 +16,7 @@ import com.mogo.eagle.core.function.hmi.notification.WarningFloat
import com.mogo.eagle.core.function.hmi.ui.tools.DockerRebootDialog
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.zhjt.mogo.adas.data.AdasConstants
import kotlinx.android.synthetic.main.view_check_system.view.*
class CheckSystemView @JvmOverloads constructor(
@@ -100,10 +101,10 @@ class CheckSystemView @JvmOverloads constructor(
CallerAutoPilotStatusListenerManager.removeListener(TAG)
}
override fun onAutopilotIpcConnectStatusChanged(status: Int, reason: String?) {
override fun onAutopilotIpcConnectStatusChanged(status: AdasConstants.IpcConnectionStatus, reason: String?) {
super.onAutopilotIpcConnectStatusChanged(status, reason)
ThreadUtils.runOnUiThread {
setViewStatus(status == 0x00)
setViewStatus(status == AdasConstants.IpcConnectionStatus.CONNECTED)
}
}

View File

@@ -12,6 +12,7 @@ import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.util.NetworkUtils
import com.mogo.eagle.core.utilcode.util.NetworkUtils.OnNetworkStatusChangedListener
import com.mogo.eagle.core.utilcode.util.SpanUtils
import com.zhjt.mogo.adas.data.AdasConstants
import kotlinx.android.synthetic.main.view_connect_status.view.tvADASStatus
import kotlinx.android.synthetic.main.view_connect_status.view.tvNetStatus
@@ -105,11 +106,14 @@ class ConnectStatusView @JvmOverloads constructor(
}
}
override fun onAutopilotIpcConnectStatusChanged(status: Int, reason: String?) {
override fun onAutopilotIpcConnectStatusChanged(
status: AdasConstants.IpcConnectionStatus,
reason: String?
) {
super.onAutopilotIpcConnectStatusChanged(status, reason)
tvADASStatus.post {
when (status) {
IPC_CONNECTION_STATUS.CONNECTED -> {
AdasConstants.IpcConnectionStatus.CONNECTED -> {
// 统计代码
val properties: MutableMap<String, Any> = HashMap()
properties["连接状态"] = "已连接"
@@ -135,7 +139,15 @@ class ConnectStatusView @JvmOverloads constructor(
MogoAnalyticUtils.track("IPC_CONNECTION_STATUS", properties)
}
IPC_CONNECTION_STATUS.DISCONNECTED -> {
AdasConstants.IpcConnectionStatus.DISCONNECTED,//未连接或主动断开连接(不管是否配置重连都不进行重连)
AdasConstants.IpcConnectionStatus.CONNECT_EXCEPTION,//连接异常
AdasConstants.IpcConnectionStatus.ILLEGAL_ADDRESS,//非法地址不管是否配置重连都不进行重连)
AdasConstants.IpcConnectionStatus.NOT_FOUND_ADDRESS,//找不到可用地址
AdasConstants.IpcConnectionStatus.CERTIFICATION_FAILED,//认证异常(不管是否配置重连都不进行重连)
AdasConstants.IpcConnectionStatus.HEARTBEAT_TIMEOUT,//心跳超时
AdasConstants.IpcConnectionStatus.PROTOCOL_MISMATCH,//協議不匹配
AdasConstants.IpcConnectionStatus.SERVER_DISCONNECTED,//服务端主动断开连接
-> {
disconnectADASCount++
disconnectADASTime = System.currentTimeMillis()
val adasSpan = SpanUtils.with(tvADASStatus)
@@ -173,33 +185,4 @@ class ConnectStatusView @JvmOverloads constructor(
CallerAutoPilotStatusListenerManager.removeListener(TAG)
}
interface IPC_CONNECTION_STATUS {
companion object {
/**
* 已连接
*/
const val CONNECTED = 0x00
/**
* 未连接
*/
const val DISCONNECTED = 0x01
/**
* 正在连接
*/
const val CONNECTING = 0x02
/**
* 正在搜索IP
*/
const val SEARCH_ADDRESS = 0x03
/**
* 找不到可用IP 传入的IP不可用或固定IP列表中所有IP不可用
*/
const val NOT_FOUND_ADDRESS = 0x04
}
}
}

View File

@@ -51,6 +51,7 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.map.listener.IMogoMapListener
import com.mogo.map.listener.MogoMapListenerHandler.Companion.mogoMapListenerHandler
import com.mogo.map.uicontroller.EnumMapUI
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.service.chain.ChainLog
import kotlinx.android.synthetic.main.module_main_activity_main.module_main_id_cover_up
import kotlinx.android.synthetic.main.module_main_activity_main.rvConnectInfo
@@ -71,8 +72,8 @@ open class MainActivity : MvpActivity<MainView?, MainPresenter?>(), MainView,
private var isFirst = false
private var mConnAdapter: ConnInfoAdapter? = null
private val dataList: List<AutopilotStatusInfo> = ArrayList()
// private var mLastStatus = 0x00
private var mLastStatus = 0x01
// private var mLastStatus = AdasConstants.IpcConnectionStatus.CONNECTED
private var mLastStatus = AdasConstants.IpcConnectionStatus.DISCONNECTED
private var isFloatingLayerHidden = false
override fun getLayoutId(): Int {
@@ -323,7 +324,7 @@ open class MainActivity : MvpActivity<MainView?, MainPresenter?>(), MainView,
MogoStatusManager.getInstance().setMainPageIsBackgroundStatus(TAG, true)
}
override fun onAutopilotIpcConnectStatusChanged(status: Int, reason: String?) {
override fun onAutopilotIpcConnectStatusChanged(status: AdasConstants.IpcConnectionStatus, reason: String?) {
super.onAutopilotIpcConnectStatusChanged(status, reason)
UiThreadHandler.post {
if(mLastStatus != status){