Merge branch 'demo/shunyi_v2v' of gitlab.zhidaoauto.com:ecos/yycp-service/Launcher into demo/shunyi_v2v

This commit is contained in:
wangcongtao
2020-06-28 19:56:30 +08:00
7 changed files with 123 additions and 65 deletions

View File

@@ -66,6 +66,7 @@ public class MogoApplication extends AbsMogoApplication {
MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_SHARE, "ShareControl"));
MogoModulePaths.addBaseModule( new MogoModule( ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY ) );
MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_OBU,"moduleObu"));
MogoModulePaths.addBaseModule( new MogoModule( V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI ) );
MogoModulePaths.addModule(new MogoModule( PushUIConstants.TAG, PushUIConstants.TAG));

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,44 +24,45 @@ 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.11
MOGO_UTILS_VERSION=1.2.1.11
MAP_AMAP_VERSION=1.2.1.11
MAP_AUTONAVI_VERSION=1.2.1.11
MOGO_MAP_VERSION=1.2.1.11
MOGO_MAP_API_VERSION=1.2.1.11
MOGO_SERVICE_VERSION=1.2.1.11
MOGO_SERVICE_API_VERSION=1.2.1.11
MOGO_CONNECTION_VERSION=1.2.1.11
MOGO_MODULE_APPS_VERSION=1.2.1.11
MOGO_MODULE_NAVI_VERSION=1.2.1.11
MOGO_MODULE_SHARE_VERSION=1.2.1.11
MOGO_MODULE_COMMON_VERSION=1.2.1.12
MOGO_MODULE_MAIN_VERSION=1.2.1.11
MOGO_MODULE_MAP_VERSION=1.2.1.11
MOGO_MODULE_SERVICE_VERSION=1.2.1.11
MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.11
MOGO_MODULE_SEARCH_VERSION=1.2.1.11
MOGO_MODULE_BACK_VERSION=1.2.1.11
MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.11
MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.11
MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.11
MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.11
MOGO_MODULE_GUIDE_VERSION=1.2.1.11
MOGO_MODULE_MEDIA_VERSION=1.2.1.11
MOGO_COMMONS_VERSION=1.2.1.12-shunyi
MOGO_UTILS_VERSION=1.2.1.12-shunyi
MAP_AMAP_VERSION=1.2.1.12-shunyi
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.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.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
MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.12-shunyi
MOGO_MODULE_SEARCH_VERSION=1.2.1.12-shunyi
MOGO_MODULE_BACK_VERSION=1.2.1.12-shunyi
MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.12-shunyi
MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.12-shunyi
MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.12-shunyi
MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.12-shunyi
MOGO_MODULE_GUIDE_VERSION=1.2.1.12-shunyi
MOGO_MODULE_MEDIA_VERSION=1.2.1.12-shunyi
MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.2.1.11
MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.2.1.11
MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.2.1.12-shunyi
MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.2.1.12-shunyi
MOGO_MODULE_OBU_VERSION = 1.2.1.10-SNAPSHOT
## 工程外部模块
# 探路
MOGO_MODULE_TANLU_VERSION=1.2.1.5
MOGO_MODULE_TANLU_VERSION=1.2.1.8-SNAPSHOT
# 车聊聊
CARCHATTING_VERSION=1.1.9
# 车聊聊接口
@@ -73,13 +74,13 @@ MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT
# 在线车辆F
MOGO_MODULE_ONLINECAR_VERSION=1.0.3.2
# v2x
MOGO_MODULE_V2X_VERSION=1.1.36
MOGO_MODULE_V2X_VERSION=1.1.36-SNAPSHOT
# 推送
MOGO_MODULE_PUSH_VERSION=1.1.3
# 广告资源位
MOGO_MODULE_AD_CARD_VERSION=1.0.1
# 探路上报和分享模块
TANLULIB_VERSION=1.2.1.7
TANLULIB_VERSION=1.2.1.8-SNAPSHOT
# Boost分包

View File

@@ -126,10 +126,10 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mMogoMapService.getHostListenerRegister().registerMarkerClickListener( this );
}
// IMogoObuManager obuManager = mServiceApis.getObuManager();
// if(obuManager!=null) {
// obuManager.registerObuDataChangedListener(EventDispatchCenter.getInstance());
// }
IMogoObuManager obuManager = mServiceApis.getObuManager();
if(obuManager!=null) {
obuManager.registerObuDataChangedListener(EventDispatchCenter.getInstance());
}
EventDispatchCenter.getInstance().setMapLoadedCallback( () -> {
Logger.d( TAG, "map loaded." + Thread.currentThread().getName() );

View File

@@ -34,10 +34,7 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation rootProject.ext.dependencies.kotlinstdlibjdk7
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.androidxrecyclerview
implementation rootProject.ext.dependencies.androidxccorektx
implementation rootProject.ext.dependencies.androidxconstraintlayout
implementation rootProject.ext.dependencies.arouter
kapt rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.rxjava

View File

@@ -1,18 +1,16 @@
package com.zhidao.mogo.module.obu
import com.mogo.service.obu.IMogoObuDataChangedListener
import com.mogo.utils.logger.Logger
import com.zhidao.smartv2x.listener.OnMessageReceiveListener
import com.zhidao.smartv2x.model.obu.CarEventInfo
import com.zhidao.smartv2x.model.obu.CarLocationInfo
import com.zhidao.smartv2x.model.obu.TrafficLightInfo
import io.reactivex.Observable
import io.reactivex.Scheduler
import io.reactivex.Single
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.internal.operators.single.SingleSubscribeOn
import io.reactivex.schedulers.Schedulers
import io.reactivex.schedulers.Schedulers.io
import java.util.concurrent.TimeUnit
import kotlin.random.Random
/**
* 模拟相关操作及数据的单例类
@@ -32,21 +30,44 @@ object MockUtil {
}
private fun intervalMockData(){
intervalObs = Observable.interval(1000,TimeUnit.MILLISECONDS).map {
intervalObs = Observable.interval(5000,TimeUnit.MILLISECONDS).map {
it.toString()
}.subscribe {
val carLocationInfo = CarLocationInfo()
carLocationInfo.carId = "carLocation$it"
dataCallback.showCarLocationInfo(carLocationInfo)
val other = "other$it"
dataCallback.showOtherInfo(other)
val eventInfo = CarEventInfo()
eventInfo.describe = "event des $it"
eventInfo.type = "event type $it"
dataCallback.showCarEventInfo(eventInfo)
val traffic = TrafficLightInfo()
traffic.id = "traffic $it"
dataCallback.showTrafficLightInfo(traffic)
}.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe {
val random = Random.nextInt(0, 3)
Logger.d(TAG, "random====$random")
val carEventInfo = CarEventInfo()
when (random) {
0->{
// 绿波引导
carEventInfo.type = "绿波车速引导"
carEventInfo.typeCode = "13"
val r = Random.nextInt(0, 3)
carEventInfo.describe = when (r) {
0 -> "保持当前车速行驶!"
1 -> "建议50km/h车速行驶"
else -> "建议30km/h ~ 50km/h 车速行驶"
}
dataCallback.showCarEventInfo(carEventInfo)
}
1->{
// 前方急刹预警
carEventInfo.type = "紧急制动预警"
carEventInfo.typeCode = "06"
carEventInfo.describe = "这个应该是随便写,反正也不用"
dataCallback.showCarEventInfo(carEventInfo)
}
2->{
// 行人碰撞预警
carEventInfo.type = "行人碰撞预警"
carEventInfo.typeCode = "39"
carEventInfo.describe = "这个应该是随便写,反正也不用"
dataCallback.showCarEventInfo(carEventInfo)
}
else->{
// 其他,不处理
}
}
}
}

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,8 +104,17 @@ class ObuManager: IMogoObuManager {
* 车辆位置信息回调接口
*/
override fun showCarLocationInfo(info: CarLocationInfo?) {
Logger.d(TAG, "thread: ${Thread.currentThread()} showCarLocationInfo: ${info?.carId}")
dataChangedListener?.showCarLocationInfo(info)
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)
}
}
/**
@@ -107,7 +122,9 @@ class ObuManager: IMogoObuManager {
*/
override fun showOtherInfo(info: String?) {
Logger.d(TAG, "thread: ${Thread.currentThread()} showOtherInfo: $info")
dataChangedListener?.showOtherInfo(info)
handler.post{
dataChangedListener?.showOtherInfo(info)
}
}
/**
@@ -115,7 +132,9 @@ class ObuManager: IMogoObuManager {
*/
override fun showTrafficLightInfo(info: TrafficLightInfo?) {
Logger.d(TAG, "thread: ${Thread.currentThread()} showTrafficLightInfo: ${info?.id}")
dataChangedListener?.showTrafficLightInfo(info)
handler.post{
dataChangedListener?.showTrafficLightInfo(info)
}
}
/**
@@ -123,6 +142,25 @@ class ObuManager: IMogoObuManager {
*/
override fun showCarEventInfo(info: CarEventInfo?) {
Logger.d(TAG, "thread: ${Thread.currentThread()} showCarEventInfo: ${info?.type}")
dataChangedListener?.showCarEventInfo(info)
handler.post {
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
}
}