新增obu容错重连机制

This commit is contained in:
tongchenfei
2020-06-28 19:35:30 +08:00
parent 2b1a1870f9
commit f8e084334b
3 changed files with 37 additions and 7 deletions

View File

@@ -158,6 +158,6 @@ ext {
tanluupload : "com.mogo.module:module-tanlu-upload:${TANLULIB_VERSION}",
// obu sdk
obusdk : "com.zhidao.enterprise.smartv2x:smartv2x:1.0.0.2"
obusdk : "com.zhidao.enterprise.smartv2x:smartv2x:1.0.0.3"
]
}

View File

@@ -24,7 +24,7 @@ SNAPSHOT_REPOSITORY_URL=http://nexus.zhidaoauto.com/repository/maven-snapshots/
USERNAME=xintai
PASSWORD=xintai2018
# 编译模式: false - 依赖本地版本, true - 依赖 maven 版本
RELEASE=false
RELEASE=true
# 模块版本
## 工程内模块
MOGO_COMMONS_VERSION=1.2.1.12-shunyi
@@ -34,12 +34,12 @@ MAP_AUTONAVI_VERSION=1.2.1.12-shunyi
MOGO_MAP_VERSION=1.2.1.12-shunyi
MOGO_MAP_API_VERSION=1.2.1.12-shunyi
MOGO_SERVICE_VERSION=1.2.1.12-shunyi
MOGO_SERVICE_API_VERSION=1.2.1.12-shunyi
MOGO_SERVICE_API_VERSION=1.2.1.13-shunyi
MOGO_CONNECTION_VERSION=1.2.1.12-shunyi
MOGO_MODULE_APPS_VERSION=1.2.1.12-shunyi
MOGO_MODULE_NAVI_VERSION=1.2.1.12-shunyi
MOGO_MODULE_SHARE_VERSION=1.2.1.12-shunyi
MOGO_MODULE_COMMON_VERSION=1.2.1.12-shunyi
MOGO_MODULE_COMMON_VERSION=1.2.1.13-shunyi
MOGO_MODULE_MAIN_VERSION=1.2.1.12-shunyi
MOGO_MODULE_MAP_VERSION=1.2.1.12-shunyi
MOGO_MODULE_SERVICE_VERSION=1.2.1.12-shunyi

View File

@@ -4,6 +4,7 @@ import android.content.Context
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.os.Message
import android.view.View
import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.facade.annotation.Route
@@ -28,9 +29,11 @@ import com.zhidao.smartv2x.model.obu.TrafficLightInfo
* @author tongchenfei
*/
@Route(path = MogoServicePaths.PATH_OBU)
class ObuManager: IMogoObuManager {
class ObuManager: IMogoObuManager,Handler.Callback {
companion object{
const val TAG = "ObuManger"
const val MSG_MONITOR_OBU_STATUS = 1001
const val DEFAULT_MONITOR_TIME = 10_000L
}
private var dataChangedListener: IMogoObuDataChangedListener? = null
@@ -58,7 +61,10 @@ class ObuManager: IMogoObuManager {
MockUtil.init(this)
} else {
// 初始化sdk注册数据回调等信息
V2xController.getInstance().setMessageReceiveListener(this@ObuManager)
V2xController.getInstance().setMessageReceiveListener(this)
V2xController.getInstance().init()
// V2xController.getInstance().setMessageReceiveListener(this@ObuManager)
handler.sendEmptyMessageDelayed(MSG_MONITOR_OBU_STATUS, DEFAULT_MONITOR_TIME)
}
}
@@ -98,7 +104,14 @@ class ObuManager: IMogoObuManager {
* 车辆位置信息回调接口
*/
override fun showCarLocationInfo(info: CarLocationInfo?) {
Logger.d(TAG, "thread: ${Thread.currentThread()} showCarLocationInfo: ${info?.carId}")
Logger.v(TAG, "thread: ${Thread.currentThread()} showCarLocationInfo: ${info?.carId}")
if(!DebugConfig.isUseMockObuData()) {
// 不使用模拟数据时候不做此处理
// 由于obu会频繁回调此接口故10秒收不到此数据则认为obu连接不正常就断开重连一下
handler.removeMessages(MSG_MONITOR_OBU_STATUS)
handler.sendEmptyMessageDelayed(MSG_MONITOR_OBU_STATUS, DEFAULT_MONITOR_TIME)
}
handler.post{
dataChangedListener?.showCarLocationInfo(info)
}
@@ -133,4 +146,21 @@ class ObuManager: IMogoObuManager {
dataChangedListener?.showCarEventInfo(info)
}
}
/**
* @param msg A [Message][android.os.Message] object
* @return True if no further handling is desired
*/
override fun handleMessage(msg: Message?): Boolean {
if (msg?.what == MSG_MONITOR_OBU_STATUS) {
// obu未正常连接需要重新连接
Logger.d(TAG,"obu未正常连接需要重新连接")
V2xController.getInstance().release()
V2xController.getInstance().setMessageReceiveListener(this)
V2xController.getInstance().init()
// V2xController.getInstance().release()
return true
}
return false
}
}