From a8bcbdcc7f282a3cf21c7833eaaab8a2f152cce9 Mon Sep 17 00:00:00 2001 From: renwj Date: Mon, 7 Feb 2022 19:17:07 +0800 Subject: [PATCH 1/7] =?UTF-8?q?[ThreadOpt]=E7=BA=BF=E7=A8=8B=E6=B1=A0?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E7=89=88=E6=9C=AC=E5=8D=87=E7=BA=A7=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3RxJava=E5=AE=9A=E6=97=B6=E5=99=A8=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 19 +++-- .../test/KotlinCoroutineSchedulersTest.kt | 57 ++++++++++++++ .../functions/test/RxJavaSchedulersTest.kt | 76 +++++++++++++++++++ build.gradle | 2 +- 4 files changed, 143 insertions(+), 11 deletions(-) create mode 100644 app/src/androidTest/java/com/mogo/functions/test/KotlinCoroutineSchedulersTest.kt create mode 100644 app/src/androidTest/java/com/mogo/functions/test/RxJavaSchedulersTest.kt diff --git a/app/build.gradle b/app/build.gradle index 31a45c8fb6..eabcafae8f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,7 +10,6 @@ if (!isAndroidTestBuild()) { } //apply ByteX宿主 - if (!isAndroidTestBuild()) { apply plugin: 'bytex' ByteX { @@ -21,15 +20,15 @@ if (!isAndroidTestBuild()) { } if (!isAndroidTestBuild()) { -// apply plugin: 'bytex.threadOpt' -// thread_opt { -// enable true -// enableInDebug true -// rxJavaIoReplacer 'com/mogo/eagle/core/utilcode/util/ThreadUtils@@getIoPool@@()Ljava/util/concurrent/ExecutorService;' -// rxJavaComputationReplacer 'com/mogo/eagle/core/utilcode/util/ThreadUtils@@getCpuPool@@()Ljava/util/concurrent/ExecutorService;' -// coroutineIoReplacer 'com/mogo/eagle/core/utilcode/util/ThreadUtils@@getIoPool@@()Ljava/util/concurrent/ExecutorService;' -// coroutineDefaultReplacer 'com/mogo/eagle/core/utilcode/util/ThreadUtils@@getCpuPool@@()Ljava/util/concurrent/ExecutorService;' -// } + apply plugin: 'bytex.threadOpt' + thread_opt { + enable true + enableInDebug true + rxJavaIoReplacer 'com/mogo/eagle/core/utilcode/util/ThreadUtils@@getIoPool@@()Ljava/util/concurrent/ExecutorService;' + rxJavaComputationReplacer 'com/mogo/eagle/core/utilcode/util/ThreadUtils@@getCpuPool@@()Ljava/util/concurrent/ExecutorService;' + coroutineIoReplacer 'com/mogo/eagle/core/utilcode/util/ThreadUtils@@getIoPool@@()Ljava/util/concurrent/ExecutorService;' + coroutineDefaultReplacer 'com/mogo/eagle/core/utilcode/util/ThreadUtils@@getCpuPool@@()Ljava/util/concurrent/ExecutorService;' + } /** * 方便使用systrace工具,在工程侧打点,便于分析工程侧性能问题 diff --git a/app/src/androidTest/java/com/mogo/functions/test/KotlinCoroutineSchedulersTest.kt b/app/src/androidTest/java/com/mogo/functions/test/KotlinCoroutineSchedulersTest.kt new file mode 100644 index 0000000000..4b0ae4bb87 --- /dev/null +++ b/app/src/androidTest/java/com/mogo/functions/test/KotlinCoroutineSchedulersTest.kt @@ -0,0 +1,57 @@ +package com.mogo.functions.test + +import androidx.lifecycle.coroutineScope +import androidx.test.core.app.ActivityScenario +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.LargeTest +import com.mogo.eagle.core.function.main.MainLauncherActivity +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.delay +import kotlinx.coroutines.runBlocking +import kotlinx.coroutines.withContext +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import java.util.concurrent.TimeUnit + +@RunWith(AndroidJUnit4::class) +@LargeTest +class KotlinCoroutineSchedulersTest { + + lateinit var launch: ActivityScenario + + @Before + fun before() { + launch = ActivityScenario.launch(MainLauncherActivity::class.java) + } + + @Test + fun testKotlinCoroutineSchedulersIo() = runBlocking { + launch.onActivity { + it.lifecycle.coroutineScope.launchWhenCreated { + repeat(10) { + withContext(Dispatchers.IO) { + assert(Thread.currentThread().name.startsWith("io-pool-")) + } + delay(TimeUnit.SECONDS.toMillis(1)) + } + } + } + delay(TimeUnit.SECONDS.toMillis(20)) + } + + @Test + fun testKotlinCoroutineSchedulersCpu() = runBlocking { + launch.onActivity { + it.lifecycle.coroutineScope.launchWhenCreated { + repeat(10) { + withContext(Dispatchers.Default) { + assert(Thread.currentThread().name.startsWith("cpu-pool-")) + } + delay(TimeUnit.SECONDS.toMillis(1)) + } + } + } + delay(TimeUnit.SECONDS.toMillis(20)) + } +} \ No newline at end of file diff --git a/app/src/androidTest/java/com/mogo/functions/test/RxJavaSchedulersTest.kt b/app/src/androidTest/java/com/mogo/functions/test/RxJavaSchedulersTest.kt new file mode 100644 index 0000000000..58ac995932 --- /dev/null +++ b/app/src/androidTest/java/com/mogo/functions/test/RxJavaSchedulersTest.kt @@ -0,0 +1,76 @@ +package com.mogo.functions.test + +import androidx.test.core.app.ActivityScenario +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.LargeTest +import com.mogo.eagle.core.function.main.MainLauncherActivity +import io.reactivex.Observable +import io.reactivex.ObservableOnSubscribe +import io.reactivex.schedulers.Schedulers +import kotlinx.coroutines.delay +import kotlinx.coroutines.runBlocking +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import java.util.concurrent.TimeUnit.SECONDS + +@RunWith(AndroidJUnit4::class) +@LargeTest +class RxJavaSchedulersTest { + + lateinit var launch: ActivityScenario + + @Before + fun before() { + launch = ActivityScenario.launch(MainLauncherActivity::class.java) + } + + @Test + fun testRxJavaIoSchedulers() = runBlocking { + val list = mutableListOf() + for (i in 1..10) { + list += i + } + val result = Observable.fromIterable(list) + .doOnNext { + assert(Thread.currentThread().name.startsWith("io-pool-")) + } + .subscribeOn(Schedulers.io()) + .reduce(0) { adder, toAdd -> + val sum = adder + toAdd + sum + } + .blockingGet() + assert(result == 55) + + delay(SECONDS.toMillis(20)) + } + + @Test + fun testRxJavaCpuSchedulers() = runBlocking { + val result = Observable.create(ObservableOnSubscribe { emitter -> + for (i in 1..10) { + emitter.onNext(i) + } + assert(Thread.currentThread().name.startsWith("cpu-pool-")) + emitter.onComplete() + }).reduce(0) { adder, toAdd -> + adder + toAdd + }.subscribeOn(Schedulers.computation()).blockingGet() + assert(result == 55) + delay(SECONDS.toMillis(20)) + } + + @Test + fun testRxJavaIntervalSchedulers() = runBlocking { + var counter = 0 + Observable.intervalRange(0, 10, 1, 1 ,SECONDS) + .doOnNext { + counter ++ + } + .subscribe() + delay(SECONDS.toMillis(20)) + assert(counter == 10) + } + +} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 95ee9b6c7f..aa98125141 100644 --- a/build.gradle +++ b/build.gradle @@ -33,7 +33,7 @@ buildscript { classpath "com.bytedance.android.byteX:base-plugin:0.3.0" classpath "com.mogo.cloud:hook:${HOOK_LOG_VERSION}" classpath 'com.volcengine:apm_insight_plugin:1.4.1' - classpath 'com.mogo.cloud:thread_opt:1.0.0' + classpath 'com.mogo.cloud:thread_opt:1.0.1' classpath 'com.mogo.cloud:systrace:1.0.1' // classpath "com.bytedance.android.byteX:base-plugin:0.3.0" From 3ca6d33c30aef8020dc34920d04b8a3a27be64a8 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Mon, 7 Feb 2022 19:44:59 +0800 Subject: [PATCH 2/7] =?UTF-8?q?[Change]=20=E6=9B=BF=E6=8D=A2=E8=B0=83?= =?UTF-8?q?=E5=BA=A6=E4=B8=AD=E7=9A=84=E5=BC=80=E5=90=AF=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E9=A9=BE=E9=A9=B6=E7=9A=84=E6=96=B9=E6=B3=95=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../src/main/assets/testFile.txt | 102 ------------------ .../dispatch/DispatchAutoPilotManager.java | 3 +- .../service/adas/IMogoADASController.java | 9 -- .../service/impl/adas/MogoADASController.java | 18 ---- 4 files changed, 2 insertions(+), 130 deletions(-) delete mode 100644 modules/mogo-module-adas/src/main/assets/testFile.txt diff --git a/modules/mogo-module-adas/src/main/assets/testFile.txt b/modules/mogo-module-adas/src/main/assets/testFile.txt deleted file mode 100644 index a6162b11ce..0000000000 --- a/modules/mogo-module-adas/src/main/assets/testFile.txt +++ /dev/null @@ -1,102 +0,0 @@ -{lat=26.820175208327566,lon=112.57748204198309}, -{lat=26.82009891465042,lon=112.57735739748664}, -{lat=26.820022750763542,lon=112.57723266155585}, -{lat=26.81994655656347,lon=112.57710795477944}, -{lat=26.81987031666393,lon=112.57698328267305}, -{lat=26.819793988171348,lon=112.57685866945901}, -{lat=26.819717530408877,lon=112.57673414980971}, -{lat=26.819635079638967,lon=112.57661462149986}, -{lat=26.819532022659132,lon=112.5765234581422}, -{lat=26.819488197195188,lon=112.5764835085963}, -{lat=26.81947053563866,lon=112.57645743645142}, -{lat=26.81945285740347,lon=112.5764313389555}, -{lat=26.81941584428336,lon=112.57637074918446}, -{lat=26.819355855639404,lon=112.57626774620917}, -{lat=26.8193352833325,lon=112.57623094969783}, -{lat=26.819315738575742,lon=112.57619587959701}, -{lat=26.81929619389902,lon=112.5761608096667}, -{lat=26.819276064037396,lon=112.5761245744324}, -{lat=26.819221654527443,lon=112.5760208132482}, -{lat=26.819153675938914,lon=112.5758903945585}, -{lat=26.8190859083974,lon=112.57576035026403}, -{lat=26.81904791926707,lon=112.57568644394968}, -{lat=26.819047477540156,lon=112.57568591545105}, -{lat=26.819047035811135,lon=112.57568538694994}, -{lat=26.819046594080046,lon=112.57568485844635}, -{lat=26.81902999052958,lon=112.57568137976324}, -{lat=26.818966668056316,lon=112.57572279587626}, -{lat=26.81896660310204,lon=112.57572518130716}, -{lat=26.81896683258833,lon=112.57572606581252}, -{lat=26.81896706207354,lon=112.57572695031374}, -{lat=26.818971211272444,lon=112.57573544393973}, -{lat=26.819027657144368,lon=112.57584589447032}, -{lat=26.819095546341085,lon=112.57597644303986}, -{lat=26.8191650468231,lon=112.57610591408428}, -{lat=26.819236806047,lon=112.5762338575302}, -{lat=26.819310184480436,lon=112.57636063880027}, -{lat=26.819384451187933,lon=112.5764867800095}, -{lat=26.819460642360763,lon=112.57661149583805}, -{lat=26.819536878267925,lon=112.57673619431976}, -{lat=26.819613220428206,lon=112.57686079387894}, -{lat=26.819689146973122,lon=112.57698570087358}, -{lat=26.819765257290772,lon=112.57711047564952}, -{lat=26.81984156841068,lon=112.57723510283108}, -{lat=26.819916608456698,lon=112.57735767331373}, -{lat=26.819990868286688,lon=112.57747918205983}, -{lat=26.82006704845146,lon=112.57760363217366}, -{lat=26.820142688927376,lon=112.57772676391022}, -{lat=26.820220480866162,lon=112.57784947830805}, -{lat=26.82029609426984,lon=112.57797111160743}, -{lat=26.820372540342063,lon=112.57809575812311}, -{lat=26.820449035279513,lon=112.57822036992494}, -{lat=26.82052479395364,lon=112.5783432083879}, -{lat=26.820600741070034,lon=112.57846626552721}, -{lat=26.820676451505513,lon=112.57858892597905}, -{lat=26.820750627333855,lon=112.57870908764811}, -{lat=26.820788099971104,lon=112.57876896886103}, -{lat=26.82079340880141,lon=112.57877600898784}, -{lat=26.82079871765643,lon=112.57878304914836}, -{lat=26.820804096213536,lon=112.57879017489086}, -{lat=26.820866626548845,lon=112.5788587003478}, -{lat=26.820983640738305,lon=112.57893123552938}, -{lat=26.82111632395692,lon=112.57893777257203}, -{lat=26.82117204164965,lon=112.57891747212024}, -{lat=26.821184743761496,lon=112.57890962148315}, -{lat=26.821197445813166,lon=112.57890177088103}, -{lat=26.821210607045213,lon=112.57889357476125}, -{lat=26.821290516628242,lon=112.57883467623317}, -{lat=26.82140278979742,lon=112.57875048180252}, -{lat=26.821515292745254,lon=112.57866667791178}, -{lat=26.821628395747688,lon=112.5785838835907}, -{lat=26.82174189376551,lon=112.57850175198458}, -{lat=26.82185566968843,lon=112.57842010282002}, -{lat=26.82196987298559,lon=112.57833919555353}, -{lat=26.822083935682734,lon=112.5782580474171}, -{lat=26.822198178890964,lon=112.57817722472228}, -{lat=26.82231299206679,lon=112.5780973993899}, -{lat=26.822427661696032,lon=112.57801732090307}, -{lat=26.82254293064344,lon=112.57793832470455}, -{lat=26.822658717481524,lon=112.57786026718888}, -{lat=26.822774624402133,lon=112.57778243034805}, -{lat=26.82289066838358,lon=112.57770484656757}, -{lat=26.823007036027615,lon=112.57762787191734}, -{lat=26.823123797760537,lon=112.57755163699323}, -{lat=26.82324089700492,lon=112.57747604255579}, -{lat=26.823355874237176,lon=112.57740187937155}, -{lat=26.823470001455,lon=112.57732986163221}, -{lat=26.82358841433288,lon=112.57725688653507}, -{lat=26.823706827172103,lon=112.5771839112856}, -{lat=26.82382523997266,lon=112.57711093588388}, -{lat=26.823943652734542,lon=112.57703796032986}, -{lat=26.824062065457753,lon=112.57696498462354}, -{lat=26.824180478142292,lon=112.57689200876496}, -{lat=26.82429889078817,lon=112.57681903275407}, -{lat=26.824416715403633,lon=112.5767464980989}, -{lat=26.824533859020413,lon=112.57667699873441}, -{lat=26.824651399274774,lon=112.57660868246823}, -{lat=26.824762900762973,lon=112.57658692553045}, -{lat=26.824968687097577,lon=112.57656763804074}, -{lat=26.825104150528567,lon=112.57650684107888}, -{lat=26.82522465989416,lon=112.57643823074989}, -{lat=26.825345659446693,lon=112.57637072881484}, -{lat=26.8255763298452,lon=112.57624421893341}, \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/dispatch/DispatchAutoPilotManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/dispatch/DispatchAutoPilotManager.java index ecb502ef85..f4ec46d942 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/dispatch/DispatchAutoPilotManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/dispatch/DispatchAutoPilotManager.java @@ -17,6 +17,7 @@ import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.api.hmi.autopilot.IMoGoCheckAutoPilotBtnListener; +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager; import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager; @@ -172,7 +173,7 @@ public class DispatchAutoPilotManager implements IMogoOnMessageListener Date: Tue, 8 Feb 2022 11:08:21 +0800 Subject: [PATCH 3/7] =?UTF-8?q?[Lamda]=E4=BB=A3=E7=A0=81Lamda=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/crash/FinalizeCrashFixer.java | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/crash/FinalizeCrashFixer.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/crash/FinalizeCrashFixer.java index fcb3300bf1..fcde90869f 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/crash/FinalizeCrashFixer.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/crash/FinalizeCrashFixer.java @@ -37,19 +37,15 @@ public class FinalizeCrashFixer { * 只有线程在运行状态才会关闭线程 */ public static void fix() { - AppStateManager.INSTANCE.registerAppStateListener(new IAppStateListener() { - @Override - public void onAppStateChanged(boolean isForeground) { - if (isForeground) { - //前后台则重新反射关闭一遍,避免线程被再次开启 - Logger.d("FinalizeCrashFixer", "--- 切换到前台 ---"); - realFix(); - } else { - //前后台则重新反射关闭一遍,避免线程被再次开启 - Logger.d("FinalizeCrashFixer", "--- 切换到后台 ---"); - realFix(); - } + AppStateManager.INSTANCE.registerAppStateListener(isForeground -> { + if (isForeground) { + //前后台则重新反射关闭一遍,避免线程被再次开启 + Logger.d("FinalizeCrashFixer", "--- 切换到前台 ---"); + } else { + //前后台则重新反射关闭一遍,避免线程被再次开启 + Logger.d("FinalizeCrashFixer", "--- 切换到后台 ---"); } + realFix(); }); } From 151b35fcec103e0ad2aa2a45e3e49540d1e60352 Mon Sep 17 00:00:00 2001 From: pangfan Date: Tue, 8 Feb 2022 11:56:14 +0800 Subject: [PATCH 4/7] =?UTF-8?q?[OCH]OCH:=20=E5=9F=BA=E4=BA=8E=E6=8F=90?= =?UTF-8?q?=E4=BA=A4'[ThreadOpt]=E7=BA=BF=E7=A8=8B=E6=B1=A0=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E7=89=88=E6=9C=AC=E5=8D=87=E7=BA=A7=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3RxJava=E5=AE=9A=E6=97=B6=E5=99=A8=E9=97=AE=E9=A2=98'?= =?UTF-8?q?=EF=BC=8C=E6=81=A2=E5=A4=8D=E5=AE=9A=E6=97=B6=E5=99=A8=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E9=BB=98=E8=AE=A4=E8=B0=83=E5=BA=A6=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/bus/presenter/OchBusModelLoopManager.java | 2 +- .../java/com/mogo/och/bus/presenter/OchBusOrderModel.java | 2 +- .../och/taxi/passenger/model/OCHTaxiModelLoopManager.java | 8 ++++---- .../com/mogo/och/taxi/model/OCHTaxiModelLoopManager.java | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusModelLoopManager.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusModelLoopManager.java index 0ff9bd7ff8..c21d6d9302 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusModelLoopManager.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusModelLoopManager.java @@ -35,7 +35,7 @@ public class OchBusModelLoopManager { } Logger.i(TAG, "startHeartbeatLoop()"); mHeartbeatDisposable = Observable.interval(OchBusConst.LOOP_DELAY, - OchBusConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS,Schedulers.trampoline()) + OchBusConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusOrderModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusOrderModel.java index 1cb2abe29a..236dc08dd4 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusOrderModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusOrderModel.java @@ -196,7 +196,7 @@ public class OchBusOrderModel { return; } mBusOrdersDisposable = Observable.interval(OchBusConst.LOOP_DELAY, - OchBusConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS,Schedulers.trampoline()) + OchBusConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/OCHTaxiModelLoopManager.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/OCHTaxiModelLoopManager.java index ad1d7d1b97..a58fc4b411 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/OCHTaxiModelLoopManager.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/OCHTaxiModelLoopManager.java @@ -38,7 +38,7 @@ public class OCHTaxiModelLoopManager { } Logger.i(TAG, "startInAndWaitOrdersLoop()"); mInAndWaitServiceDisposable = Observable.interval(OCHTaxiConst.LOOP_DELAY, - OCHTaxiConst.LOOP_PERIOD_2S, TimeUnit.MILLISECONDS,Schedulers.trampoline()) + OCHTaxiConst.LOOP_PERIOD_2S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -59,7 +59,7 @@ public class OCHTaxiModelLoopManager { } Logger.i(TAG, "startNewBookingOrderLoop()"); mNewBookingOrderDisposable = Observable.interval(OCHTaxiConst.LOOP_DELAY, - OCHTaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS,Schedulers.trampoline()) + OCHTaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -80,7 +80,7 @@ public class OCHTaxiModelLoopManager { } Logger.i(TAG, "startGrabResultLoop()"); mGrabResultDisposable = Observable.interval(OCHTaxiConst.LOOP_DELAY, - OCHTaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS,Schedulers.trampoline()) + OCHTaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -101,7 +101,7 @@ public class OCHTaxiModelLoopManager { } Logger.i(TAG, "startHeartbeatLoop()"); mHeartbeatDisposable = Observable.interval(OCHTaxiConst.LOOP_DELAY, - OCHTaxiConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS,Schedulers.trampoline()) + OCHTaxiConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/OCHTaxiModelLoopManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/OCHTaxiModelLoopManager.java index f5f38a9bb2..f0bf44761a 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/OCHTaxiModelLoopManager.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/OCHTaxiModelLoopManager.java @@ -38,7 +38,7 @@ public class OCHTaxiModelLoopManager { } Logger.i(TAG, "startInAndWaitOrdersLoop()"); mInAndWaitServiceDisposable = Observable.interval(OCHTaxiConst.LOOP_DELAY, - OCHTaxiConst.LOOP_PERIOD_2S, TimeUnit.MILLISECONDS,Schedulers.trampoline()) + OCHTaxiConst.LOOP_PERIOD_2S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -59,7 +59,7 @@ public class OCHTaxiModelLoopManager { } Logger.i(TAG, "startNewBookingOrderLoop()"); mNewBookingOrderDisposable = Observable.interval(OCHTaxiConst.LOOP_DELAY, - OCHTaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS,Schedulers.trampoline()) + OCHTaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -80,7 +80,7 @@ public class OCHTaxiModelLoopManager { } Logger.i(TAG, "startGrabResultLoop()"); mGrabResultDisposable = Observable.interval(OCHTaxiConst.LOOP_DELAY, - OCHTaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS,Schedulers.trampoline()) + OCHTaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -101,7 +101,7 @@ public class OCHTaxiModelLoopManager { } Logger.i(TAG, "startHeartbeatLoop()"); mHeartbeatDisposable = Observable.interval(OCHTaxiConst.LOOP_DELAY, - OCHTaxiConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS,Schedulers.trampoline()) + OCHTaxiConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) From 14c2128a1e340144c8c03de21add3b3603571bb2 Mon Sep 17 00:00:00 2001 From: renwj Date: Tue, 8 Feb 2022 14:31:39 +0800 Subject: [PATCH 5/7] =?UTF-8?q?[V2X]=E7=A7=BB=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../events/manager/IMoGoV2XMarkerManager.java | 69 ----- .../events/manager/IMoGoV2XStatusManager.java | 84 ------ .../events/manager/V2XStatusDescriptor.java | 12 +- .../manager/impl/MoGoV2XMarkerManager.java | 264 ------------------ .../manager/impl/MoGoV2XStatusManager.java | 93 +----- 5 files changed, 2 insertions(+), 520 deletions(-) diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XMarkerManager.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XMarkerManager.java index 578196df85..5cdcafc116 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XMarkerManager.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XMarkerManager.java @@ -43,75 +43,6 @@ public interface IMoGoV2XMarkerManager extends IProvider { */ void analysisV2XRoadEvent(V2XMarkerCardResult markerCardResult); - /** - * 绘制V2X 地图点事件 - * - * @param markerCardResult 大而全中过滤出来的点事件 - */ - void drawableV2XMarker(MarkerCardResult markerCardResult); - - /** - * 绘制 在线车辆 POI - * - * @param markerOnlineCars - * @param clickListener - */ - void drawableOnlineCarPOI(List markerOnlineCars, IMogoMarkerClickListener clickListener); - - /** - * 清除 在线车辆 POI - */ - void clearOnlineCarPOI(); - - - /** - * 绘制可以直播的在线车辆 - * - * @param markerOnlineCars - * @param clickListener - */ - void drawableLiveCarPOI(List markerOnlineCars, IMogoMarkerClickListener clickListener); - - /** - * 清除 可以直播的在线车辆 POI - */ - void clearLiveCarPOI(); - - /** - * 绘制 探路 - * - * @param exploreWayList - * @param clickListener - */ - void drawableExplorePOI(List exploreWayList, IMogoMarkerClickListener clickListener); - - /** - * 清除 探路 POI - */ - void clearExplorePOI(); - - /** - * 绘制 新鲜事儿 - * - * @param noveltyInfoList - * @param clickListener - */ - void drawableNoveltyPOI(List noveltyInfoList, IMogoMarkerClickListener clickListener); - - /** - * 清除 新鲜事儿 POI - */ - void clearNoveltyPOI(); - - /** - * 绘制Marker,上面调用的都是这个方法 - * - * @param context - * @param markerShowEntity - * @param clickListener - */ - void drawableMarker(Context context, MarkerShowEntity markerShowEntity, IMogoMarkerClickListener clickListener); - /** * 展开气泡 diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XStatusManager.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XStatusManager.java index 87c8afa81a..40961cfad1 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XStatusManager.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XStatusManager.java @@ -25,58 +25,16 @@ public interface IMoGoV2XStatusManager extends IProvider { */ boolean isRoadEventWindowShow(); - /** - * 头部 V2X的道路直播 UI 是否在展示 - */ - boolean isRoadLiveCarWindowShow(); - /** * 头部 他人车辆故障求助 UI 是否在展示 */ boolean isOtherSeekHelpWindowShow(); - /** - * 地图区域 自身的道路求助按钮 是否在展示 - */ - boolean isMeSeekHelpButtonShow(); - /** * 地图区域 他人车辆故障求助POI 是否在展示 */ boolean isOtherSeekHelpPOIShow(); - /** - * 前瞻需求 - * 右侧2/3 V2X 场景动画 UI 是否在展示 - */ - boolean isV2XAnimationShow(); - - /** - * 前瞻需求 - * 右侧2/3 左下角 模拟直播车机 UI 是否在展示 - */ - boolean isLeftLiveVideoShow(); - - /** - * 推送弹窗的状态 - */ - boolean isPushWindowShow(); - - /** - * 推送的 POI 状态 - */ - boolean isPushPOIShow(); - - /** - * 疲劳驾驶 状态 - */ - boolean isFatigueDrivingWindowShow(); - - /** - * 事件面板状态 状态 - */ - boolean isEventPanelWindowShow(); - /** * 设置 V2X道路预警POI 是否在展示 * @@ -117,22 +75,6 @@ public interface IMoGoV2XStatusManager extends IProvider { */ void setOtherSeekHelpWindowShow(String tag, boolean show); - /** - * 地图区域 自身的道路求助按钮 是否在展示 - * - * @param tag - * @param show - */ - void setMeSeekHelpButtonShow(String tag, boolean show); - - /** - * 地图区域 他人车辆故障求助POI 是否在展示 - * - * @param tag - * @param show - */ - void setOtherSeekHelpPOIShow(String tag, boolean show); - /** * 设置 右侧2/3 全屏 V2X 场景动画 是否在展示 * @@ -177,30 +119,4 @@ public interface IMoGoV2XStatusManager extends IProvider { * @param show */ void setFatigueDrivingWindowShow(String tag, boolean show); - - /** - * 事件面板状态 是否在展示 - * - * @param tag - * @param show - */ - void setEventPanelWindowShow(String tag, boolean show); - - /** - * 注册监听 - * - * @param tag 业务类型 - * @param descriptor 监听类型 - * @param listener 监听回调 - */ - void registerStatusChangedListener(String tag, V2XStatusDescriptor descriptor, IMoGoV2XStatusChangedListener listener); - - /** - * 注销 - * - * @param tag 业务类型 - * @param descriptor 注销类型 - * @param listener 注销回调 - */ - void unregisterStatusChangedListener(String tag, V2XStatusDescriptor descriptor, IMoGoV2XStatusChangedListener listener); } diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/V2XStatusDescriptor.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/V2XStatusDescriptor.java index 511f8d27bc..2174ed12c4 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/V2XStatusDescriptor.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/V2XStatusDescriptor.java @@ -38,11 +38,6 @@ public enum V2XStatusDescriptor { */ OtherSeekHelpWindow_UI, - /** - * 头部 自身的道路求助按钮 UI 是否在展示 - */ - MeSeekHelpButton_UI, - /** * 右侧2/3 V2X 场景动画 UI 是否在展示 */ @@ -71,10 +66,5 @@ public enum V2XStatusDescriptor { /** * 疲劳驾驶弹窗 */ - FatigueDrivingWindow_UI, - - /** - * 事件面板状态 - */ - EventPanelWindow_UI, + FatigueDrivingWindow_UI } diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java index 122f3470c2..4937169eab 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java @@ -12,7 +12,6 @@ import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.v2x.events.bridge.BridgeApi; import com.mogo.eagle.core.function.v2x.events.consts.MoGoV2XServicePaths; import com.mogo.eagle.core.function.v2x.events.consts.V2XConst; -import com.mogo.eagle.core.function.v2x.events.listener.V2XMarkerClickListener; import com.mogo.eagle.core.function.v2x.events.manager.IMoGoV2XMarkerManager; import com.mogo.eagle.core.function.v2x.events.manager.IMoGoV2XPolylineManager; import com.mogo.eagle.core.function.v2x.events.manager.IMoGoV2XStatusManager; @@ -31,11 +30,8 @@ import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.module.common.drawer.MarkerDrawer; import com.mogo.module.common.drawer.marker.IMarkerView; import com.mogo.module.common.drawer.marker.MapMarkerAdapter; -import com.mogo.module.common.entity.MarkerCardResult; import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.MarkerLocation; -import com.mogo.module.common.entity.MarkerNoveltyInfo; -import com.mogo.module.common.entity.MarkerOnlineCar; import com.mogo.module.common.entity.MarkerShowEntity; import com.mogo.module.common.entity.V2XRoadEventEntity; import com.mogo.module.common.enums.EventTypeEnum; @@ -173,266 +169,6 @@ public class MoGoV2XMarkerManager implements IMoGoV2XMarkerManager { } } - @Override - public void drawableV2XMarker(MarkerCardResult markerCardResult) { - - boolean isShowEventWindow = false; - boolean isShowEventButton = false; - boolean isOtherSeekHelpWindowShow = false; - IMoGoV2XStatusManager v2xStatus = BridgeApi.INSTANCE.v2xStatus(); - if (v2xStatus != null) { - //预警Window状态 - isShowEventWindow = v2xStatus.isRoadEventWindowShow(); - //预警按钮状态 - isShowEventButton = v2xStatus.isRoadEventButtonShow(); - //道路求助的window - isOtherSeekHelpWindowShow = v2xStatus.isOtherSeekHelpWindowShow(); - } - try { - //当没有预警提示的时候重新绘制地图POI点 - if (!isShowEventWindow && !isShowEventButton && !isOtherSeekHelpWindowShow) { - // 清除上次的道路事件,TODO 这里注意,道路事件的触发和这里是异步操作会触发异常 - //mV2XRoadEventEntityArrayList.clear(); - // 清除原来的大而全的新鲜事儿 - try { - clearALLPOI(); - } catch (Exception e) { - e.printStackTrace(); - } - // 清除连接线 - IMoGoV2XPolylineManager polylineManager = BridgeApi.INSTANCE.v2xPolyline(); - if (polylineManager != null) { - polylineManager.clearLine(); - } - if (markerCardResult != null) { - // 绘制新的地图气泡 - List onlineCarList = markerCardResult.getOnlineCar(); - List exploreWayList = markerCardResult.getExploreWay(); - List noveltyInfoList = markerCardResult.getNoveltyInfo(); - - drawableOnlineCarPOI(onlineCarList, V2XMarkerClickListener.getInstance()); - drawableExplorePOI(exploreWayList, V2XMarkerClickListener.getInstance()); - drawableNoveltyPOI(noveltyInfoList, V2XMarkerClickListener.getInstance()); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void drawableOnlineCarPOI(List markerOnlineCars, IMogoMarkerClickListener clickListener) { - try { - if (markerOnlineCars != null) { - for (MarkerOnlineCar markerOnlineCar : markerOnlineCars) { - MarkerLocation markerLocation = markerOnlineCar.getLocation(); - - MarkerShowEntity markerShowEntity = new MarkerShowEntity(); - markerShowEntity.setBindObj(markerOnlineCar); - markerShowEntity.setMarkerLocation(markerLocation); - markerShowEntity.setMarkerType(markerOnlineCar.getType()); - markerShowEntity.setTextContent(markerOnlineCar.getUserInfo().getSafeLabel()); - markerShowEntity.setIconUrl(markerOnlineCar.getUserInfo().getUserHead()); - - drawableMarker(BridgeApi.INSTANCE.context(), markerShowEntity, clickListener); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void clearOnlineCarPOI() { - IMogoMarkerManager marker = BridgeApi.INSTANCE.marker(); - if (marker != null) { - marker.removeMarkers(V2XConst.V2X_CARD_TYPE_USER_DATA); - } - } - - - @Override - public void drawableLiveCarPOI(List markerOnlineCars, IMogoMarkerClickListener clickListener) { - try { - Logger.w(MODULE_NAME, "V2X===事件周边的直播车机:" + markerOnlineCars); - if (markerOnlineCars != null) { - for (MarkerOnlineCar markerOnlineCar : markerOnlineCars) { - // 设置车类型 - markerOnlineCar.getUserInfo().setSafeLabelType(4); - markerOnlineCar.getCarInfo().setVehicleType(0); - - MarkerLocation markerLocation = markerOnlineCar.getLocation(); - - MarkerShowEntity markerShowEntity = new MarkerShowEntity(); - markerShowEntity.setBindObj(markerOnlineCar); - markerShowEntity.setMarkerLocation(markerLocation); - markerShowEntity.setMarkerType(V2XConst.V2X_MARKER_LIVE_CAR); - markerShowEntity.setTextContent(markerOnlineCar.getUserInfo().getSafeLabel()); - markerShowEntity.setIconUrl(markerOnlineCar.getUserInfo().getUserHead()); - - drawableMarker( - BridgeApi.INSTANCE.context(), - markerShowEntity, - clickListener); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void clearLiveCarPOI() { - IMogoMarkerManager marker = BridgeApi.INSTANCE.marker(); - if (marker != null) { - marker.removeMarkers(V2XConst.V2X_MARKER_LIVE_CAR); - } - } - - @Override - public void drawableExplorePOI(List exploreWayList, IMogoMarkerClickListener clickListener) { - try { - if (exploreWayList != null) { - for (MarkerExploreWay markerExploreWay : exploreWayList) { - // 因为目前探路卡片不支持直播,所以这里做了过滤 @李小鹏 - if (!markerExploreWay.getCanLive()) { - MarkerLocation markerLocation = markerExploreWay.getLocation(); - - MarkerShowEntity markerShowEntity = new MarkerShowEntity(); - markerShowEntity.setBindObj(markerExploreWay); - markerShowEntity.setMarkerLocation(markerLocation); - markerShowEntity.setMarkerType(markerExploreWay.getType()); - markerShowEntity.setTextContent(markerExploreWay.getAddr()); - - drawableMarker( - BridgeApi.INSTANCE.context(), - markerShowEntity, - clickListener); - } - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void clearExplorePOI() { - IMogoMarkerManager marker = BridgeApi.INSTANCE.marker(); - if (marker != null) { - marker.removeMarkers(V2XConst.V2X_CARD_TYPE_ROAD_CONDITION); - } - } - - @Override - public void drawableNoveltyPOI(List noveltyInfoList, IMogoMarkerClickListener clickListener) { - try { - if (noveltyInfoList != null) { - for (MarkerNoveltyInfo noveltyInfo : noveltyInfoList) { - MarkerLocation markerLocation = noveltyInfo.getLocation(); - - MarkerShowEntity markerShowEntity = new MarkerShowEntity(); - markerShowEntity.setBindObj(noveltyInfo); - markerShowEntity.setMarkerLocation(markerLocation); - markerShowEntity.setMarkerType(noveltyInfo.getType()); - markerShowEntity.setTextContent(noveltyInfo.getLocation().getAddress()); - - // 这里只绘制道路事件相关 - if (EventTypeEnum.TRAFFIC_CHECK.getPoiType().equals(noveltyInfo.getPoiType()) - || EventTypeEnum.ROAD_CLOSED.getPoiType().equals(noveltyInfo.getPoiType()) - || EventTypeEnum.FOURS_ROAD_WORK.getPoiType().equals(noveltyInfo.getPoiType()) - || EventTypeEnum.FOURS_BLOCK_UP.getPoiType().equals(noveltyInfo.getPoiType()) - || EventTypeEnum.FOURS_PONDING.getPoiType().equals(noveltyInfo.getPoiType()) - || EventTypeEnum.FOURS_PARKING.getPoiType().equals(noveltyInfo.getPoiType()) - || EventTypeEnum.FOURS_ICE.getPoiType().equals(noveltyInfo.getPoiType()) - || EventTypeEnum.FOURS_FOG.getPoiType().equals(noveltyInfo.getPoiType()) - || EventTypeEnum.FOURS_ACCIDENT.getPoiType().equals(noveltyInfo.getPoiType()) - || EventTypeEnum.FOURS_ACCIDENT_01.getPoiType().equals(noveltyInfo.getPoiType()) - || EventTypeEnum.FOURS_ACCIDENT_02.getPoiType().equals(noveltyInfo.getPoiType()) - || EventTypeEnum.FOURS_ACCIDENT_03.getPoiType().equals(noveltyInfo.getPoiType()) - || EventTypeEnum.FOURS_ACCIDENT_04.getPoiType().equals(noveltyInfo.getPoiType()) - || EventTypeEnum.FOURS_ACCIDENT_05.getPoiType().equals(noveltyInfo.getPoiType())) { - drawableMarker(BridgeApi.INSTANCE.context(), markerShowEntity, clickListener); - } - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void clearNoveltyPOI() { - IMogoMarkerManager marker = BridgeApi.INSTANCE.marker(); - if (marker != null) { - marker.removeMarkers(V2XConst.V2X_CARD_TYPE_NOVELTY); - } - } - - @Override - public void drawableMarker(Context context, MarkerShowEntity markerShowEntity, IMogoMarkerClickListener clickListener) { -// Logger.i(MODULE_NAME, "绘制Marker====drawMapMarker:" + markerShowEntity); - try { - if (markerShowEntity.getMarkerLocation() != null) { - MogoMarkerOptions options = new MogoMarkerOptions() - .data(markerShowEntity) - .latitude(markerShowEntity.getMarkerLocation().getLat()) - .longitude(markerShowEntity.getMarkerLocation().getLon()); - - // 这里对Marker做下持有者转换,与大而全的区分开,由于绘制的时候用到了低层能力所以不去修改markerShowEntity中的type - switch (markerShowEntity.getMarkerType()) { - case ServiceConst.CARD_TYPE_USER_DATA: - options.owner(V2XConst.V2X_CARD_TYPE_USER_DATA); - break; - case ServiceConst.CARD_TYPE_NOVELTY: - options.owner(V2XConst.V2X_CARD_TYPE_NOVELTY); - break; - case ServiceConst.CARD_TYPE_ROAD_CONDITION: - options.owner(V2XConst.V2X_CARD_TYPE_ROAD_CONDITION); - break; - case V2XConst.V2X_MARKER_SPECIAL_CAR: - options.owner(V2XConst.V2X_MARKER_SPECIAL_CAR); - break; - case V2XConst.V2X_MARKER_LIVE_CAR: - options.owner(V2XConst.V2X_MARKER_LIVE_CAR); - break; - default: - options.owner(markerShowEntity.getMarkerType()); - break; - } - - IMogoMarker marker = null; - Bitmap bitmap; - if (markerShowEntity.getMarkerType().equals(ServiceConst.CARD_TYPE_USER_DATA) - || markerShowEntity.getMarkerType().equals(V2XConst.V2X_MARKER_SPECIAL_CAR) - || markerShowEntity.getMarkerType().equals(V2XConst.V2X_MARKER_LIVE_CAR) - || markerShowEntity.getMarkerType().equals(V2XConst.V2X_MARKER_EXPRESS) - ) { - bitmap = V2XMarkerAdapter.getV2XCarMarkerView(context, markerShowEntity); - options.icon(bitmap); - IMogoMarkerManager markerManager = BridgeApi.INSTANCE.marker(); - if (markerManager != null) { - marker = markerManager.addMarker(markerShowEntity.getMarkerType(), options); - } - } else { - IMarkerView iMarkerView = MapMarkerAdapter.getMarkerView(context, markerShowEntity, options); - bitmap = ViewUtils.fromView(iMarkerView.getView()); - options.icon(bitmap); - IMogoMarkerManager markerManager = BridgeApi.INSTANCE.marker(); - if (markerManager != null) { - marker = markerManager.addMarker(markerShowEntity.getMarkerType(), options); - } - - iMarkerView.setMarker(marker); - } - //marker.setOnMarkerClickListener(clickListener); - } else { - Logger.e(MODULE_NAME, "Location 必须进行初始化!!!!!"); - } - } catch (Exception e) { - e.printStackTrace(); - } - } @Override public IMogoMarker openMarker(Context context, IMogoMarker currentMarker) { diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XStatusManager.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XStatusManager.java index 9653d35289..2eefd02d8c 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XStatusManager.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XStatusManager.java @@ -63,56 +63,16 @@ public class MoGoV2XStatusManager implements IMoGoV2XStatusManager { return get_bool_val(V2XStatusDescriptor.RoadEventWindow_UI); } - @Override - public boolean isRoadLiveCarWindowShow() { - return get_bool_val(V2XStatusDescriptor.RoadLiveCarWindow_UI); - } - @Override public boolean isOtherSeekHelpWindowShow() { return get_bool_val(V2XStatusDescriptor.OtherSeekHelpWindow_UI); } - @Override - public boolean isMeSeekHelpButtonShow() { - return get_bool_val(V2XStatusDescriptor.MeSeekHelpButton_UI); - } - @Override public boolean isOtherSeekHelpPOIShow() { return get_bool_val(V2XStatusDescriptor.OtherSeekHelpPOI_UI); } - @Override - public boolean isV2XAnimationShow() { - return get_bool_val(V2XStatusDescriptor.V2XAnimationWindow_UI); - } - - @Override - public boolean isLeftLiveVideoShow() { - return get_bool_val(V2XStatusDescriptor.LiveCarWindow_UI); - } - - @Override - public boolean isPushWindowShow() { - return get_bool_val(V2XStatusDescriptor.PushWindow_UI); - } - - @Override - public boolean isPushPOIShow() { - return get_bool_val(V2XStatusDescriptor.PushWindowPOI_UI); - } - - @Override - public boolean isFatigueDrivingWindowShow() { - return get_bool_val(V2XStatusDescriptor.FatigueDrivingWindow_UI); - } - - @Override - public boolean isEventPanelWindowShow() { - return get_bool_val(V2XStatusDescriptor.EventPanelWindow_UI); - } - @Override public void setRoadEventPOIShow(String tag, boolean show) { IMogoStatusManager statusManager = BridgeApi.INSTANCE.statusManager(); @@ -152,24 +112,6 @@ public class MoGoV2XStatusManager implements IMoGoV2XStatusManager { recordStatusModifier(tag, V2XStatusDescriptor.OtherSeekHelpWindow_UI); } - @Override - public void setMeSeekHelpButtonShow(String tag, boolean show) { - mStatus.put(V2XStatusDescriptor.MeSeekHelpButton_UI, show); - invokeStatusChangedListener(V2XStatusDescriptor.MeSeekHelpButton_UI, show); - recordStatusModifier(tag, V2XStatusDescriptor.MeSeekHelpButton_UI); - } - - @Override - public void setOtherSeekHelpPOIShow(String tag, boolean show) { - IMogoStatusManager statusManager = BridgeApi.INSTANCE.statusManager(); - if (statusManager != null) { - statusManager.setV2XUIShow(V2XConst.MODULE_NAME, show); - } - mStatus.put(V2XStatusDescriptor.OtherSeekHelpPOI_UI, show); - invokeStatusChangedListener(V2XStatusDescriptor.OtherSeekHelpPOI_UI, show); - recordStatusModifier(tag, V2XStatusDescriptor.OtherSeekHelpPOI_UI); - } - @Override public void setV2XAnimationWindowShow(String tag, boolean show) { mStatus.put(V2XStatusDescriptor.V2XAnimationWindow_UI, show); @@ -213,40 +155,7 @@ public class MoGoV2XStatusManager implements IMoGoV2XStatusManager { recordStatusModifier(tag, V2XStatusDescriptor.FatigueDrivingWindow_UI); } - @Override - public void setEventPanelWindowShow(String tag, boolean show) { - mStatus.put(V2XStatusDescriptor.EventPanelWindow_UI, show); - invokeStatusChangedListener(V2XStatusDescriptor.EventPanelWindow_UI, show); - recordStatusModifier(tag, V2XStatusDescriptor.EventPanelWindow_UI); - } - - @Override - public void registerStatusChangedListener(String tag, V2XStatusDescriptor descriptor, IMoGoV2XStatusChangedListener listener) { - if (listener == null || descriptor == null) { - return; - } - if (!mListeners.containsKey(descriptor)) { - mListeners.put(descriptor, new ArrayList<>()); - } - if (mListeners.get(descriptor) == null) { - mListeners.put(descriptor, new ArrayList<>()); - } - List listeners = mListeners.get(descriptor); - if (listeners != null) { - listeners.add(listener); - } - } - - @Override - public void unregisterStatusChangedListener(String tag, V2XStatusDescriptor descriptor, IMoGoV2XStatusChangedListener listener) { - List listeners = mListeners.get(descriptor); - if (listeners != null) { - listeners.remove(listener); - } - } - - - /** + /** * 调用所有存储的监听 * * @param descriptor From 117897d576fa8cb2e7e0d27f397dd88663de1de4 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Tue, 8 Feb 2022 19:07:28 +0800 Subject: [PATCH 6/7] =?UTF-8?q?[Change]=20=E6=95=B4=E7=90=86ADAS=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../mogo-core-function-autopilot/build.gradle | 7 + .../autopilot/MoGoAutopilotProvider.kt | 28 +++- .../adapter/MoGoAdasListenerImpl.java | 20 ++- .../MoGoAdasMsgConnectStatusListenerImpl.kt | 100 ++++++++++++++ .../MoGoAutopilotStatusListenerImpl.java | 38 ----- .../entity/AutonomousDriveStatusBean.java | 2 +- .../autopilot}/entity/ReportSiteBean.java | 2 +- .../autopilot/network}/AdasServiceModel.java | 23 ++-- .../autopilot}/network/IAdasApiService.java | 2 +- .../autopilot/utils/AdasObjectConvertUtils.kt | 94 ++++++++++++- .../autopilot/IMoGoAutopilotStatusListener.kt | 10 +- .../mogo/module/adas/AdasEventManager.java | 130 +----------------- .../com/mogo/module/adas/AdasObjectUtils.kt | 103 -------------- .../com/mogo/module/adas/AdasProvider.java | 30 ---- .../mogo/module/adas/IAdasDataListener.java | 10 -- .../com/mogo/module/service/MogoServices.java | 15 +- .../service/adas/IMogoAdasOCHCallback.java | 45 ------ services/mogo-service/build.gradle | 1 - .../service/impl/adas/MogoADASController.java | 12 -- 19 files changed, 255 insertions(+), 417 deletions(-) rename modules/mogo-module-adas/src/main/java/com/mogo/module/adas/OnAdasListenerAdapter.java => core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.java (94%) create mode 100644 core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt delete mode 100644 core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAutopilotStatusListenerImpl.java rename {modules/mogo-module-adas/src/main/java/com/mogo/module/adas => core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot}/entity/AutonomousDriveStatusBean.java (93%) rename {modules/mogo-module-adas/src/main/java/com/mogo/module/adas => core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot}/entity/ReportSiteBean.java (92%) rename {modules/mogo-module-adas/src/main/java/com/mogo/module/adas/model => core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/network}/AdasServiceModel.java (84%) rename {modules/mogo-module-adas/src/main/java/com/mogo/module/adas => core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot}/network/IAdasApiService.java (93%) delete mode 100644 modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasObjectUtils.kt delete mode 100644 services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasOCHCallback.java diff --git a/core/function-impl/mogo-core-function-autopilot/build.gradle b/core/function-impl/mogo-core-function-autopilot/build.gradle index 0cf2df7226..49e96989a9 100644 --- a/core/function-impl/mogo-core-function-autopilot/build.gradle +++ b/core/function-impl/mogo-core-function-autopilot/build.gradle @@ -52,15 +52,22 @@ dependencies { kapt rootProject.ext.dependencies.aroutercompiler implementation rootProject.ext.dependencies.adasHigh + implementation rootProject.ext.dependencies.mogoami if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { + implementation rootProject.ext.dependencies.modulecommon + implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_utils + implementation rootProject.ext.dependencies.mogo_core_network implementation rootProject.ext.dependencies.mogo_core_function_api implementation rootProject.ext.dependencies.mogo_core_function_call } else { + implementation project(':modules:mogo-module-common') + implementation project(':core:mogo-core-data') implementation project(':core:mogo-core-utils') + implementation project(':core:mogo-core-network') implementation project(':core:mogo-core-function-api') implementation project(':core:mogo-core-function-call') } diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt index 68ac9a4333..b1b7b8ea67 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt @@ -6,13 +6,16 @@ import androidx.annotation.RequiresPermission import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.data.autopilot.AutopilotControlCmdParameter import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.constants.MoGoConfig import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotProvider +import com.mogo.eagle.core.function.autopilot.adapter.MoGoAdasListenerImpl +import com.mogo.eagle.core.function.autopilot.adapter.MoGoAdasMsgConnectStatusListenerImpl import com.mogo.eagle.core.function.autopilot.server.AsyncDataToAutopilotServer +import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.GsonUtils -import com.mogo.eagle.core.utilcode.util.LogUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.zhidao.support.adas.high.AdasManager import com.zhidao.support.adas.high.bean.IPCUpgradeInfo @@ -34,9 +37,26 @@ class MoGoAutopilotProvider : get() = TAG override fun init(context: Context) { + Logger.d(TAG, "初始化工控机连接……") mContext = context // 初始化ADAS 域控制器 - //AdasManager.getInstance().create(context) + CupidLogUtils.setEnableLog(false) + CupidLogUtils.setIsWriteLog(false) + // TODO 临时方案,根据不同的身份标识,连接不同的工控机IP + when (FunctionBuildConfig.appIdentityMode) { + 0 -> // 司机 + AdasManager.getInstance().create(context, "192.168.1.102") + 1 -> // 乘客 + AdasManager.getInstance().create(context, "192.168.1.103") + else -> // 默认采用UDP寻址方式 + AdasManager.getInstance().create(context) + } + //////////////////////////////////注意先后顺序,AdasManager.getInstance().create后才可以设置监听///////////////////////////////////////////// + // 监听 adas 连接状态 + AdasManager.getInstance().setOnAdasConnectStatusListener(MoGoAdasMsgConnectStatusListenerImpl()) + // 监听ADAS-SDK获取到的工控机数据 + AdasManager.getInstance().setOnAdasListener(MoGoAdasListenerImpl()) + // 同步数据给工控机的服务 AsyncDataToAutopilotServer.INSTANCE.initServer() } @@ -72,7 +92,7 @@ class MoGoAutopilotProvider : val parameter = AutopilotControlCmdParameter("aiCloudToStartAutopilot", result) AdasManager.getInstance().aiCloudToAdasData(GsonUtils.toJson(parameter)) } else { - LogUtils.eTag(TAG, "车机与工控机链接失败,无法开启自动驾驶") + Logger.e(TAG, "车机与工控机链接失败,无法开启自动驾驶") } } @@ -84,7 +104,7 @@ class MoGoAutopilotProvider : if (AdasManager.getInstance().isSocketConnect) { AdasManager.getInstance().controlAutopilotCarHead() } else { - LogUtils.eTag(TAG, "车机与工控机链接失败,无法断开自动驾驶") + Logger.e(TAG, "车机与工控机链接失败,无法断开自动驾驶") } } diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/OnAdasListenerAdapter.java b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.java similarity index 94% rename from modules/mogo-module-adas/src/main/java/com/mogo/module/adas/OnAdasListenerAdapter.java rename to core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.java index 799d3d7b05..8ae436afc8 100644 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/OnAdasListenerAdapter.java +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.java @@ -1,4 +1,4 @@ -package com.mogo.module.adas; +package com.mogo.eagle.core.function.autopilot.adapter; import android.util.Log; @@ -12,6 +12,7 @@ import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; import com.mogo.eagle.core.data.autopilot.AutopilotWarnMessage; import com.mogo.eagle.core.data.config.HdMapBuildConfig; import com.mogo.eagle.core.data.traffic.TrafficData; +import com.mogo.eagle.core.function.autopilot.utils.AdasObjectConvertUtils; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager; @@ -45,19 +46,18 @@ import java.util.List; *

* 适配ADAS 回调监听分发 */ -public class OnAdasListenerAdapter implements OnAdasListener { +public class MoGoAdasListenerImpl implements OnAdasListener { private final String TAG = "OnAdasListenerAdapter"; @Override public void onRectData(RectInfo rectInfo) { if (HdMapBuildConfig.isMapLoaded) { - ArrayList recognizedListResults = AdasObjectUtils.INSTANCE.regroupTrafficDataData(rectInfo.getModels()); + ArrayList recognizedListResults = AdasObjectConvertUtils.INSTANCE.regroupTrafficDataData(rectInfo.getModels()); CallerAutopilotIdentifyListenerManager.INSTANCE.invokeAutopilotIdentifyDataUpdate(recognizedListResults); } } - @Override public void onCarStateData(CarStateInfo carStateInfo) { if (HdMapBuildConfig.isMapLoaded) { @@ -65,23 +65,19 @@ public class OnAdasListenerAdapter implements OnAdasListener { //can数据转发 CarStateInfo.ValuesBean bean = carStateInfo.getValues(); // Log.w("DHY-location", bean.getLon() + "," + bean.getLat() + " OnAdasListenerAdapter-onCarStateData:"); - if (bean != null) { int turnLight = bean.getTurnLightOften(); //转向灯状态 0是正常 1是左转 2是右转 AmiClientManager.getInstance().setTurnLightState(turnLight); int brakeLight = bean.getBrake_light(); //TODO // Logger.d(TAG, "onCarStateData ---- turnLight = " + turnLight + "---brakeLight = " + brakeLight); - //设置转向灯 CallerHmiManager.INSTANCE.showTurnLight(turnLight); - //设置刹车信息 CallerHmiManager.INSTANCE.showBrakeLight(brakeLight); } else { Logger.e(TAG, "bean == null "); } - - AutopilotCarStateInfo autopilotCarStateInfo = AdasObjectUtils.INSTANCE.fromAdasCarStateInfoObject(carStateInfo); + AutopilotCarStateInfo autopilotCarStateInfo = AdasObjectConvertUtils.INSTANCE.fromAdasCarStateInfoObject(carStateInfo); CallerAutopilotCarStatusListenerManager.INSTANCE.invokeAutopilotCarStateData(autopilotCarStateInfo); } } @@ -134,7 +130,7 @@ public class OnAdasListenerAdapter implements OnAdasListener { public void onAutopilotRoute(AutopilotRoute route) { if (HdMapBuildConfig.isMapLoaded) { Logger.d(TAG, "onAutopilotRoute : " + route.toString()); - AutopilotRouteInfo autopilotRoute = AdasObjectUtils.INSTANCE.fromAdasAutopilotRoute(route); + AutopilotRouteInfo autopilotRoute = AdasObjectConvertUtils.INSTANCE.fromAdasAutopilotRoute(route); CallerAutopilotPlanningListenerManager.INSTANCE.invokeAutopilotRotting(autopilotRoute); } } @@ -172,7 +168,7 @@ public class OnAdasListenerAdapter implements OnAdasListener { @Override public void onAutopilotGuardian(AutopilotGuardianInfo guardianInfo) { if (HdMapBuildConfig.isMapLoaded) { - AutopilotGuardianStatusInfo autopilotRoute = AdasObjectUtils.INSTANCE.fromAutopilotGuardianInfo(guardianInfo); + AutopilotGuardianStatusInfo autopilotRoute = AdasObjectConvertUtils.INSTANCE.fromAutopilotGuardianInfo(guardianInfo); CallerAutoPilotStatusListenerManager.INSTANCE.invokeAutopilotGuardian(autopilotRoute); } } @@ -214,7 +210,7 @@ public class OnAdasListenerAdapter implements OnAdasListener { @Override public void onWarnMessage(WarnMessageInfo warnMessageInfo) { - final AutopilotWarnMessage warnMessage = AdasObjectUtils.INSTANCE.fromAdasObject(warnMessageInfo); + final AutopilotWarnMessage warnMessage = AdasObjectConvertUtils.INSTANCE.fromAdasObject(warnMessageInfo); CallerAutopilotIdentifyListenerManager.INSTANCE.invokeAutopilotWarnMessage(warnMessage); } diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt new file mode 100644 index 0000000000..233a997ead --- /dev/null +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt @@ -0,0 +1,100 @@ +package com.mogo.eagle.core.function.autopilot.adapter + +import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.eagle.core.data.autopilot.AutopilotStationInfo +import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener +import com.mogo.eagle.core.function.autopilot.network.AdasServiceModel +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.utilcode.mogo.logger.Logger +import com.zhidao.support.adas.high.AdasManager +import com.zhidao.support.adas.high.OnAdasMsgConnectStatusListener +import com.zhidao.support.adas.high.bean.BasicInfo +import io.reactivex.Flowable +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.schedulers.Schedulers +import java.util.concurrent.TimeUnit + +/** + * ADAS-SDK与工控机连接状态回调 + * + * @author donghongyu + */ +class MoGoAdasMsgConnectStatusListenerImpl : OnAdasMsgConnectStatusListener, IMoGoAutopilotStatusListener { + private val TAG = "MoGoAdasMsgConnectStatusListenerImpl" + + //自动驾驶状态 + private var mCurrentAutopilotStatus = -1 + + //自动驾驶车速度 + private var mCurrentAutopilotSpeed = 0f + + override fun onWebSocketConnectSuccess() { + Logger.d(TAG, "webSocket 连接成功") + // 初始化自动驾驶状态信息 + CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectIP = AdasManager.getInstance().adasConfig.address + CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = true + CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus() + + // 同步SN给工控机 + syncBasicInfoToAutopilot() + + // 开启轮训上传自动驾驶状态 + updateDriveStatusTask() + } + + override fun onWebSocketConnectFailed(reason: String) { + Logger.d(TAG, "webSocket 连接失败 reason:$reason") + CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectIP = AdasManager.getInstance().adasConfig.address + CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatus = false + CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus() + } + + /** + * 工控机获取SN + */ + override fun onAutopilotSNRequest() { + syncBasicInfoToAutopilot() + } + + override fun onAutopilotArriveAtStation(autopilotWayArrive: AutopilotStationInfo?) { + if (autopilotWayArrive != null) { + val lon = autopilotWayArrive.lon + val lat = autopilotWayArrive.lat + AdasServiceModel.getInstance().reportSite(lon, lat) + } + } + + override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) { + val state = autoPilotStatusInfo.state + val speed = autoPilotStatusInfo.speed + mCurrentAutopilotStatus = state + mCurrentAutopilotSpeed = speed + } + + /** + * 同步SN信息给工控机 + */ + fun syncBasicInfoToAutopilot() { + Logger.d(TAG, "同步PAD的SN给工控机……") + val info = BasicInfo() + info.setSn(MoGoAiCloudClientConfig.getInstance().sn) + AdasManager.getInstance().setBasicInfo(info) + } + + /** + * 上传自动驾驶状态任务 + */ + fun updateDriveStatusTask() { + Logger.d(TAG, "updateDriveStatusTask") + Flowable.interval(0, 5, TimeUnit.SECONDS) + .subscribeOn(Schedulers.io()) + .unsubscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe { aLong: Long? -> + AdasServiceModel.getInstance().updateDriveStatus(mCurrentAutopilotStatus, mCurrentAutopilotSpeed) + } + } + + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAutopilotStatusListenerImpl.java b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAutopilotStatusListenerImpl.java deleted file mode 100644 index b4ef89d40c..0000000000 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAutopilotStatusListenerImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.mogo.eagle.core.function.autopilot.adapter; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.mogo.eagle.core.data.autopilot.AutopilotGuardianStatusInfo; -import com.mogo.eagle.core.data.autopilot.AutopilotStationInfo; -import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; - -/** - * @author xiaoyuzhou - * @date 2021/10/20 1:02 下午 - * 自动驾驶状态回调用 - */ -public class MoGoAutopilotStatusListenerImpl implements IMoGoAutopilotStatusListener { - @Override - public void onAutopilotStatusResponse(@NonNull AutopilotStatusInfo autoPilotStatusInfo) { - - } - - @Override - public void onAutopilotArriveAtStation(@Nullable AutopilotStationInfo autopilotWayArrive) { - - } - - - @Override - public void onAutopilotSNRequest() { - - } - - @Override - public void onAutopilotGuardian(@Nullable AutopilotGuardianStatusInfo guardianInfo) { - - } - -} diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/entity/AutonomousDriveStatusBean.java b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/entity/AutonomousDriveStatusBean.java similarity index 93% rename from modules/mogo-module-adas/src/main/java/com/mogo/module/adas/entity/AutonomousDriveStatusBean.java rename to core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/entity/AutonomousDriveStatusBean.java index e4bba0a1e2..2557f03e5e 100644 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/entity/AutonomousDriveStatusBean.java +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/entity/AutonomousDriveStatusBean.java @@ -1,4 +1,4 @@ -package com.mogo.module.adas.entity; +package com.mogo.eagle.core.function.autopilot.entity; /** * Created by XuYong on 2021/5/28 16:12 diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/entity/ReportSiteBean.java b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/entity/ReportSiteBean.java similarity index 92% rename from modules/mogo-module-adas/src/main/java/com/mogo/module/adas/entity/ReportSiteBean.java rename to core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/entity/ReportSiteBean.java index ed0f765e2e..9b1f9f4328 100644 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/entity/ReportSiteBean.java +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/entity/ReportSiteBean.java @@ -1,4 +1,4 @@ -package com.mogo.module.adas.entity; +package com.mogo.eagle.core.function.autopilot.entity; /** * Created by XuYong on 2021/5/31 16:24 diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/model/AdasServiceModel.java b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/network/AdasServiceModel.java similarity index 84% rename from modules/mogo-module-adas/src/main/java/com/mogo/module/adas/model/AdasServiceModel.java rename to core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/network/AdasServiceModel.java index 31553c43b3..009c446151 100644 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/model/AdasServiceModel.java +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/network/AdasServiceModel.java @@ -1,24 +1,27 @@ -package com.mogo.module.adas.model; +package com.mogo.eagle.core.function.autopilot.network; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; +import com.mogo.commons.context.ContextHolderUtil; import com.mogo.eagle.core.data.BaseData; +import com.mogo.eagle.core.function.autopilot.entity.AutonomousDriveStatusBean; +import com.mogo.eagle.core.function.autopilot.entity.ReportSiteBean; import com.mogo.eagle.core.network.RequestOptions; import com.mogo.eagle.core.network.SubscribeImpl; import com.mogo.eagle.core.network.utils.GsonUtil; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; -import com.mogo.module.adas.entity.AutonomousDriveStatusBean; -import com.mogo.module.adas.entity.ReportSiteBean; -import com.mogo.module.adas.network.IAdasApiService; import com.mogo.module.common.MogoApisHandler; +import com.mogo.module.common.constants.HostConst; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import okhttp3.MediaType; import okhttp3.RequestBody; -import static com.mogo.commons.context.ContextHolderUtil.getContext; -import static com.mogo.module.common.constants.HostConst.DATA_SERVICE_HOST; - +/** + * 将自动驾驶状态及站点信息上传给云平台,云平台会根据此数据做路线的绘制 + * + * @author dongghongyu + */ public class AdasServiceModel { private static final String TAG = "AdasServiceModel"; @@ -28,7 +31,7 @@ public class AdasServiceModel { private final IAdasApiService mAdasApiService; private AdasServiceModel() { - this.mAdasApiService = MogoApisHandler.getInstance().getApis().getNetworkApi().create(IAdasApiService.class, DATA_SERVICE_HOST); + this.mAdasApiService = MogoApisHandler.getInstance().getApis().getNetworkApi().create(IAdasApiService.class, HostConst.DATA_SERVICE_HOST); } public static AdasServiceModel getInstance() { @@ -48,7 +51,7 @@ public class AdasServiceModel { RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); mAdasApiService.updateAutonomousDriveStatus(requestBody). subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) - .subscribe(new SubscribeImpl(RequestOptions.create(getContext())) { + .subscribe(new SubscribeImpl(RequestOptions.create(ContextHolderUtil.getContext())) { @Override public void onError(String message, int code) { super.onError(message, code); @@ -73,7 +76,7 @@ public class AdasServiceModel { RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(reportSiteBean)); mAdasApiService.updateReportSite(requestBody). subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) - .subscribe(new SubscribeImpl(RequestOptions.create(getContext())) { + .subscribe(new SubscribeImpl(RequestOptions.create(ContextHolderUtil.getContext())) { @Override public void onError(String message, int code) { super.onError(message, code); diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/network/IAdasApiService.java b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/network/IAdasApiService.java similarity index 93% rename from modules/mogo-module-adas/src/main/java/com/mogo/module/adas/network/IAdasApiService.java rename to core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/network/IAdasApiService.java index e3fe324cfb..b9565cf782 100644 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/network/IAdasApiService.java +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/network/IAdasApiService.java @@ -1,4 +1,4 @@ -package com.mogo.module.adas.network; +package com.mogo.eagle.core.function.autopilot.network; import com.mogo.eagle.core.data.BaseData; diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/utils/AdasObjectConvertUtils.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/utils/AdasObjectConvertUtils.kt index d698761766..e729b26521 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/utils/AdasObjectConvertUtils.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/utils/AdasObjectConvertUtils.kt @@ -1,10 +1,102 @@ package com.mogo.eagle.core.function.autopilot.utils +import com.mogo.eagle.core.data.autopilot.AutopilotCarStateInfo +import com.mogo.eagle.core.data.autopilot.AutopilotGuardianStatusInfo +import com.mogo.eagle.core.data.autopilot.AutopilotRouteInfo +import com.mogo.eagle.core.data.autopilot.AutopilotWarnMessage +import com.mogo.eagle.core.data.enums.TrafficTypeEnum +import com.mogo.eagle.core.data.traffic.TrafficData +import com.zhidao.support.adas.high.bean.AutopilotRoute +import com.zhidao.support.adas.high.bean.CarStateInfo +import com.zhidao.support.adas.high.bean.RectInfo +import com.zhidao.support.adas.high.bean.WarnMessageInfo +import com.zhidao.support.adas.high.bean.guardian.AutopilotGuardianInfo +import com.zhidao.utils.common.GsonUtil + /** * @author xiaoyuzhou * @date 2021/10/18 1:32 下午 */ -class AdasObjectConvertUtils { +object AdasObjectConvertUtils { + val TAG = "AdasObjectConvertUtils" + + fun fromAutopilotGuardianInfo(autopilotGuardianInfo: AutopilotGuardianInfo): AutopilotGuardianStatusInfo? { + return GsonUtil.objectFromJson( + GsonUtil.jsonFromObject(autopilotGuardianInfo), + AutopilotGuardianStatusInfo::class.java + ) + } + + fun fromAdasAutopilotRoute(carStateInfo: AutopilotRoute): AutopilotRouteInfo? { + return GsonUtil.objectFromJson( + GsonUtil.jsonFromObject(carStateInfo), + AutopilotRouteInfo::class.java + ) + } + + fun fromAdasCarStateInfoObject(carStateInfo: CarStateInfo): AutopilotCarStateInfo? { + return GsonUtil.objectFromJson( + GsonUtil.jsonFromObject(carStateInfo), + AutopilotCarStateInfo::class.java + ) + } + + fun fromAdasObject(info: WarnMessageInfo?): AutopilotWarnMessage? { + if (info == null) { + return null + } + val warnMessage = AutopilotWarnMessage() + warnMessage.content = info.content + warnMessage.level = info.level + try { + warnMessage.type = info.type.toInt() + } catch (e: NumberFormatException) { + return null + } + warnMessage.value = info.value + return warnMessage + } + + fun regroupTrafficDataData(datums: List?): ArrayList? { + if (datums == null || datums.isEmpty()) { + return null + } + val recognizedListResults: ArrayList = ArrayList() + for (model in datums) { + if (model == null) { + continue + } + val recognizedListResult = fromAdasTrafficDataObject(model) + if (recognizedListResult != null) { + recognizedListResults.add(recognizedListResult) + } + } + return recognizedListResults + } + + fun fromAdasTrafficDataObject(model: RectInfo.RectBean?): TrafficData? { + if (model == null) { + return null + } + val result = TrafficData() + result.uuid = model.uuid + result.lat = model.lat + result.lon = model.lon + result.type = TrafficTypeEnum.getType(model.type.toInt()) + result.heading = model.heading + result.systemTime = model.systemTime.toLong() + result.satelliteTime = model.satelliteTime.toLong() + result.alt = model.alt + result.speed = model.speed + result.carId = model.carId + result.dataAccuracy = model.dataAccuracy + result.distance = model.distance + result.threatLevel = model.drawlevel + + //Log.d(TAG, "TrafficData = $result") + return result + } + } diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatusListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatusListener.kt index 8b09cbb008..aaf8923fd6 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatusListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatusListener.kt @@ -16,16 +16,14 @@ interface IMoGoAutopilotStatusListener { * * @param autoPilotStatusInfo 状态信息 */ - fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) + fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo){} /** * 自动驾驶到站 * * @param autopilotWayArrive 所到车站的简单信息 */ - fun onAutopilotArriveAtStation(autopilotWayArrive: AutopilotStationInfo?){ - - } + fun onAutopilotArriveAtStation(autopilotWayArrive: AutopilotStationInfo?){} /** * 工控机获取SN @@ -35,9 +33,7 @@ interface IMoGoAutopilotStatusListener { /** * 工控机监控节点 */ - fun onAutopilotGuardian(guardianInfo: AutopilotGuardianStatusInfo?){ - - } + fun onAutopilotGuardian(guardianInfo: AutopilotGuardianStatusInfo?){} companion object { diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java index f93a41f096..2401fc18a1 100644 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java +++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java @@ -1,52 +1,28 @@ package com.mogo.module.adas; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.google.gson.Gson; -import com.mogo.cloud.passport.MoGoAiCloudClientConfig; -import com.mogo.eagle.core.data.autopilot.ADASTrajectoryInfo; import com.mogo.eagle.core.data.autopilot.AutoPilotRecordResult; import com.mogo.eagle.core.data.autopilot.AutopilotCarStateInfo; -import com.mogo.eagle.core.data.autopilot.AutopilotGuardianStatusInfo; -import com.mogo.eagle.core.data.autopilot.AutopilotRouteInfo; -import com.mogo.eagle.core.data.autopilot.AutopilotStationInfo; -import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; import com.mogo.eagle.core.data.autopilot.AutopilotWarnMessage; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.traffic.TrafficData; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarStateListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningListener; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager; -import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager; -import com.mogo.eagle.core.network.utils.GsonUtil; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.util.GsonUtils; import com.mogo.eagle.core.utilcode.util.ThreadUtils; -import com.mogo.module.adas.model.AdasServiceModel; import com.mogo.module.common.drawer.IdentifyDataDrawer; -import com.zhidao.support.adas.high.AdasManager; -import com.zhidao.support.adas.high.OnAdasMsgConnectStatusListener; -import com.zhidao.support.adas.high.bean.BasicInfo; import com.zhidao.support.obu.ami.AmiClientManager; import java.util.ArrayList; -import java.util.concurrent.TimeUnit; - -import io.reactivex.Flowable; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.schedulers.Schedulers; /** * Created by XuYong on 2021/4/25 14:43 */ public class AdasEventManager implements - OnAdasMsgConnectStatusListener, - IMoGoAutopilotStatusListener, - IMoGoAutopilotPlanningListener, IMoGoAutopilotIdentifyListener, IMoGoAutopilotCarStateListener { @@ -55,18 +31,9 @@ public class AdasEventManager implements private static volatile AdasEventManager adasEventManager; private static final byte[] obj = new byte[0]; - private final Gson gson; private final ArrayList iAdasEventListeners = new ArrayList<>(); - //自动驾驶状态 - private int mCurrentAutopilotStatus = -1; - //自动驾驶车速度 - private float mCurrentAutopilotSpeed = 0; - private AdasEventManager() { - gson = GsonUtil.getGson(); - CallerAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, this); - CallerAutopilotPlanningListenerManager.INSTANCE.addListener(TAG, this); CallerAutopilotIdentifyListenerManager.INSTANCE.addListener(TAG, this); CallerAutopilotCarStatusListenerManager.INSTANCE.addListener(TAG, this); } @@ -95,89 +62,11 @@ public class AdasEventManager implements iAdasEventListeners.remove(listener); } - /** - * 同步SN信息给工控机 - */ - public void syncBasicInfoToAutopilot() { - Logger.d(TAG, "同步PAD的SN给工控机……"); - BasicInfo info = new BasicInfo(); - info.setSn(MoGoAiCloudClientConfig.getInstance().getSn()); - AdasManager.getInstance().setBasicInfo(info); - } - - @Override - public void onAutopilotSNRequest() { - syncBasicInfoToAutopilot(); - } - - @Override - public void onWebSocketConnectSuccess() { - Logger.d(TAG, "webSocket 连接成功"); - // 初始化自动驾驶状态信息 - CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().setConnectIP(AdasManager.getInstance().getAdasConfig().getAddress()); - CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().setConnectStatus(true); - - CallerAutoPilotStatusListenerManager.INSTANCE.invokeAutoPilotStatus(); - - // 同步SN给工控机 - syncBasicInfoToAutopilot(); - - // 开启轮训上传自动驾驶状态 - updateDriveStatusTask(); - } - - @Override - public void onWebSocketConnectFailed(String reason) { - Logger.d(TAG, "webSocket 连接失败 reason:" + reason); - CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().setConnectIP(AdasManager.getInstance().getAdasConfig().getAddress()); - CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().setConnectStatus(false); - CallerAutoPilotStatusListenerManager.INSTANCE.invokeAutoPilotStatus(); - } - - public void updateDriveStatusTask() { - Logger.d(TAG, "updateDriveStatusTask"); - Flowable.interval(0, 5, TimeUnit.SECONDS) - .subscribeOn(Schedulers.io()) - .unsubscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> updateDriveStatus()); - } - - private void updateDriveStatus() { - AdasServiceModel.getInstance().updateDriveStatus(mCurrentAutopilotStatus, mCurrentAutopilotSpeed); - } - - private void reportSite(double lon, double lat) { - AdasServiceModel.getInstance().reportSite(lon, lat); - } - - @Override - public void onAutopilotStatusResponse(@NonNull AutopilotStatusInfo autoPilotStatusInfo) { - int state = autoPilotStatusInfo.getState(); - float speed = autoPilotStatusInfo.getSpeed(); - mCurrentAutopilotStatus = state; - mCurrentAutopilotSpeed = speed; - for (IAdasDataListener listener : iAdasEventListeners) { - if (listener != null) { - listener.notifyAutopilotState(autoPilotStatusInfo); - } - } - } - - @Override - public void onAutopilotArriveAtStation(AutopilotStationInfo autopilotWayArrive) { - if (autopilotWayArrive != null) { - double lon = autopilotWayArrive.getLon(); - double lat = autopilotWayArrive.getLat(); - reportSite(lon, lat); - } - } - @Override public void onAutopilotCarStateData(@Nullable AutopilotCarStateInfo autoPilotCarStateInfo) { for (IAdasDataListener listener : iAdasEventListeners) { if (listener != null) { - listener.ownerCarStateInfo(gson.toJson(autoPilotCarStateInfo)); + listener.ownerCarStateInfo(GsonUtils.toJson(autoPilotCarStateInfo)); } } @@ -194,11 +83,6 @@ public class AdasEventManager implements } - @Override - public void onAutopilotGuardian(@Nullable AutopilotGuardianStatusInfo guardianInfo) { - - } - @Override public void onAutopilotIdentifyDataUpdate(@Nullable ArrayList trafficData) { try { @@ -217,16 +101,6 @@ public class AdasEventManager implements } - @Override - public void onAutopilotTrajectory(ArrayList trajectoryInfo) { - - } - - - @Override - public void onAutopilotRotting(@Nullable AutopilotRouteInfo autopilotRoute) { - - } @Override public void onAutopilotRecordResult(AutoPilotRecordResult result) { diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasObjectUtils.kt b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasObjectUtils.kt deleted file mode 100644 index 78968f5c9f..0000000000 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasObjectUtils.kt +++ /dev/null @@ -1,103 +0,0 @@ -package com.mogo.module.adas - -import com.mogo.eagle.core.data.autopilot.AutopilotCarStateInfo -import com.mogo.eagle.core.data.autopilot.AutopilotGuardianStatusInfo -import com.mogo.eagle.core.data.autopilot.AutopilotRouteInfo -import com.mogo.eagle.core.data.autopilot.AutopilotWarnMessage -import com.mogo.eagle.core.data.enums.TrafficTypeEnum -import com.mogo.eagle.core.data.traffic.TrafficData -import com.mogo.eagle.core.network.utils.GsonUtil -import com.zhidao.support.adas.high.bean.AutopilotRoute -import com.zhidao.support.adas.high.bean.CarStateInfo -import com.zhidao.support.adas.high.bean.RectInfo.RectBean -import com.zhidao.support.adas.high.bean.WarnMessageInfo -import com.zhidao.support.adas.high.bean.guardian.AutopilotGuardianInfo - -/** - * @author congtaowang - * @since 2020/10/25 - * - * 对象转换类 - */ -object AdasObjectUtils { - val TAG = "AdasObjectUtils" - - fun fromAutopilotGuardianInfo(autopilotGuardianInfo: AutopilotGuardianInfo): AutopilotGuardianStatusInfo? { - return GsonUtil.objectFromJson( - GsonUtil.jsonFromObject(autopilotGuardianInfo), - AutopilotGuardianStatusInfo::class.java - ) - } - - fun fromAdasAutopilotRoute(carStateInfo: AutopilotRoute): AutopilotRouteInfo? { - return GsonUtil.objectFromJson( - GsonUtil.jsonFromObject(carStateInfo), - AutopilotRouteInfo::class.java - ) - } - - fun fromAdasCarStateInfoObject(carStateInfo: CarStateInfo): AutopilotCarStateInfo? { - return GsonUtil.objectFromJson( - GsonUtil.jsonFromObject(carStateInfo), - AutopilotCarStateInfo::class.java - ) - } - - fun fromAdasObject(info: WarnMessageInfo?): AutopilotWarnMessage? { - if (info == null) { - return null - } - val warnMessage = AutopilotWarnMessage() - warnMessage.content = info.content - warnMessage.level = info.level - try { - warnMessage.type = info.type.toInt() - } catch (e: NumberFormatException) { - return null - } - warnMessage.value = info.value - return warnMessage - } - - fun regroupTrafficDataData(datums: List?): ArrayList? { - if (datums == null || datums.isEmpty()) { - return null - } - val recognizedListResults: ArrayList = ArrayList() - for (model in datums) { - if (model == null) { - continue - } - val recognizedListResult = fromAdasTrafficDataObject(model) - if (recognizedListResult != null) { - recognizedListResults.add(recognizedListResult) - } - } - return recognizedListResults - } - - fun fromAdasTrafficDataObject(model: RectBean?): TrafficData? { - if (model == null) { - return null - } - val result = TrafficData() - result.uuid = model.uuid - result.lat = model.lat - result.lon = model.lon - result.type = TrafficTypeEnum.getType(model.type.toInt()) - result.heading = model.heading - result.systemTime = model.systemTime.toLong() - result.satelliteTime = model.satelliteTime.toLong() - result.alt = model.alt - result.speed = model.speed - result.carId = model.carId - result.dataAccuracy = model.dataAccuracy - result.distance = model.distance - result.threatLevel = model.drawlevel - - //Log.d(TAG, "TrafficData = $result") - return result - } - - -} \ No newline at end of file diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java index 7130cdeb32..4065c8aa50 100644 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java +++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java @@ -4,11 +4,8 @@ import android.content.Context; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.template.IProvider; -import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.constants.MogoServicePaths; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; -import com.zhidao.support.adas.high.AdasManager; -import com.zhidao.support.adas.high.common.CupidLogUtils; /** @@ -27,29 +24,6 @@ public class AdasProvider implements IProvider { public void init(Context context) { Logger.d(TAG, "初始化 AdasProvider 模块"); adasEventManager = AdasEventManager.getInstance(); - initAdas(context, adasEventManager); - } - - private void initAdas(Context context, AdasEventManager adasEventManager) { - CupidLogUtils.setEnableLog(false); - CupidLogUtils.setIsWriteLog(false); - // TODO 临时方案,根据不同的身份标识,连接不同的工控机IP - switch (FunctionBuildConfig.appIdentityMode) { - case 0: - // 司机 - AdasManager.getInstance().create(context, "192.168.1.102"); - break; - case 1: - // 乘客 - AdasManager.getInstance().create(context, "192.168.1.103"); - break; - default: - // 默认采用UDP寻址方式 - AdasManager.getInstance().create(context); - break; - } - AdasManager.getInstance().setOnAdasListener(new OnAdasListenerAdapter()); - AdasManager.getInstance().setOnAdasConnectStatusListener(adasEventManager); } public void addAdasEventListener(IAdasDataListener listener) { @@ -60,8 +34,4 @@ public class AdasProvider implements IProvider { adasEventManager.removeEventListener(listener); } - public void sendWsMessage(String msg) { - AdasManager.getInstance().aiCloudToAdasData(msg); - } - } diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasDataListener.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasDataListener.java index 880297c08f..6d9c6319d3 100644 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasDataListener.java +++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasDataListener.java @@ -1,7 +1,5 @@ package com.mogo.module.adas; -import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; - public interface IAdasDataListener { @@ -13,12 +11,4 @@ public interface IAdasDataListener { default void ownerCarStateInfo(String ownerCarStateInfo) { } - /** - * 自动驾驶状态信息 - * - * @param autopilotStatus {@link AutopilotStatusInfo} - */ - default void notifyAutopilotState(AutopilotStatusInfo autopilotStatus) { - } - } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index fbb84ab24e..1e7e5d031f 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -86,7 +86,6 @@ public class MogoServices implements IMogoMapListener, private boolean mInternalUnWakeupRegisterStatus = false; - private Location mLastCarLocation; private MogoServices() { // private constructor @@ -201,7 +200,6 @@ public class MogoServices implements IMogoMapListener, } mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false ); mUiController.changeZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL ); -// mUiController.setLockZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL ); mStatusManager.setUserInteractionStatus( TAG, true, false ); mUiController.recoverLockMode(); notifyRefreshData( mLastAutoRefreshLocation, ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS, mAutoRefreshCallback ); @@ -265,11 +263,6 @@ public class MogoServices implements IMogoMapListener, private Handler mThreadHandler; - /** - * 当前限速 - */ - private int mCurrentLimit = -1; - private final IMogoStatusChangedListener statusChangedListener = new StatusChangedAdapter() { @Override @@ -646,7 +639,6 @@ public class MogoServices implements IMogoMapListener, if ( latLng == null ) { return; } - mLastCarLocation = latLng; // poi 定位无法获取时,使用该定位 if ( mLastAutoRefreshLocation == null ) { MogoLatLng point = new MogoLatLng( latLng.getLatitude(), latLng.getLongitude() ); @@ -834,10 +826,6 @@ public class MogoServices implements IMogoMapListener, MoGoAiCloudRealTime.stopRealTime(); } - public Location getLastCarLocation() { - return mLastCarLocation; - } - private boolean mLastStatusIsVr = false; public boolean isLastStatusIsVr() { @@ -876,7 +864,8 @@ public class MogoServices implements IMogoMapListener, @Override public void onAdasCarDataCallback( AutopilotCarStateInfo stateInfo ) { - if(TimeDelayUploadManager.getInstance().isMock()){ //模拟数据时,不更新由工控机传输的自车位置 + //模拟数据时,不更新由工控机传输的自车位置 + if(TimeDelayUploadManager.getInstance().isMock()){ return; } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasOCHCallback.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasOCHCallback.java deleted file mode 100644 index 5d87b368d2..0000000000 --- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasOCHCallback.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.mogo.service.adas; - -import com.mogo.eagle.core.data.autopilot.AutopilotStationInfo; - -/** - * @author congtaowang - * @since 2021/1/18 - *

- * 自动驾驶到站回调 - */ -public interface IMogoAdasOCHCallback { - - /** - * 不可自动驾驶,目前场景是刚开机,adas还未和工控机连接 - */ - int STATUS_AUTOPILOT_DISABLE = 0; - /** - * 可自动驾驶,工控机连接正常,且处于人工干预状态 - */ - int STATUS_AUTOPILOT_ENABLE = 1; - /** - * 自动驾驶中,可能是停车,可能是行进,但是是机器在处理车的前进后退,不是人 - */ - int STATUS_AUTOPILOT_RUNNING = 2; - - - /** - * 到站 - * - * @param data 所到车站的简单信息 - * @see com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener#onAutopilotArriveAtStation - */ - @Deprecated - void onArriveAt(AutopilotStationInfo data); - - /** - * 自动驾驶状态发生改变 - * - * @param state {@link #STATUS_AUTOPILOT_DISABLE} - * @param reason 不能自动驾驶的原因 - * @see com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener#onAutopilotStatusResponse - */ - @Deprecated - void onStateChanged(int state, String reason); -} diff --git a/services/mogo-service/build.gradle b/services/mogo-service/build.gradle index 27baa7d66d..220180a410 100644 --- a/services/mogo-service/build.gradle +++ b/services/mogo-service/build.gradle @@ -62,7 +62,6 @@ dependencies { implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_function_check } else { - implementation project(':modules:mogo-module-adas') api project(":libraries:mogo-map") implementation project(":libraries:mogo-map-api") implementation project(':core:mogo-core-utils') diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java index 035b2e55c8..04c548c34f 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java @@ -15,7 +15,6 @@ import com.mogo.module.adas.AdasProvider; import com.mogo.module.adas.IAdasDataListener; import com.mogo.service.adas.IMogoADASController; import com.mogo.service.adas.IMogoAdasCarDataCallback; -import com.mogo.service.adas.IMogoAdasOCHCallback; import com.zhidao.autopilot.support.api.AutopilotServiceManage; import java.util.List; @@ -50,8 +49,6 @@ public class MogoADASController implements IMogoADASController { return satelliteTime; } - private final List mAdasOCHCallback = new CopyOnWriteArrayList<>(); - @Override public void init(Context context) { adasProvider = ARouter.getInstance().navigation(AdasProvider.class); @@ -79,15 +76,6 @@ public class MogoADASController implements IMogoADASController { } } - @Override - public void notifyAutopilotState(AutopilotStatusInfo autopilotStatus) { - DebugConfig.setAutoPilotStatus(autopilotStatus.getState() + ""); - if (!mAdasOCHCallback.isEmpty()) { - for (IMogoAdasOCHCallback cb : mAdasOCHCallback) { - cb.onStateChanged(autopilotStatus.getState(), autopilotStatus.getReason()); - } - } - } }; adasProvider.addAdasEventListener(mAdasDataListener); } From 4dc06e581707ee4e69e954d729cf7549ddd9bade Mon Sep 17 00:00:00 2001 From: donghongyu Date: Tue, 8 Feb 2022 20:26:15 +0800 Subject: [PATCH 7/7] =?UTF-8?q?[Change]=20=E5=AE=8C=E6=88=90mogo-module-ad?= =?UTF-8?q?as=E5=90=88=E5=B9=B6=E5=88=B0MoGoEagleEye.core.function-impl.mo?= =?UTF-8?q?go-core-function-autopilot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- ZD_README/README_VersionHistory.md | 1 - config.gradle | 1 - .../mogo-core-function-autopilot/build.gradle | 2 + .../autopilot/MoGoAutopilotProvider.kt | 2 + .../adapter/MoGoAdasListenerImpl.java | 89 ++++++++++++++++--- .../MoGoAdasMsgConnectStatusListenerImpl.kt | 4 +- .../adapter/MoGoHandAdasMsgManager.java | 48 +++------- .../mogo-core-function-main/build.gradle | 2 - .../function/main/MainMoGoApplication.java | 2 - .../core/data/constants/MogoServicePaths.java | 7 -- modules.txt | 1 - modules/mogo-module-adas/.gitignore | 1 - modules/mogo-module-adas/build.gradle | 79 ---------------- modules/mogo-module-adas/consumer-rules.pro | 0 modules/mogo-module-adas/gradle.properties | 3 - modules/mogo-module-adas/proguard-rules.pro | 21 ----- .../src/main/AndroidManifest.xml | 5 -- .../com/mogo/module/adas/AdasProvider.java | 37 -------- .../mogo/module/adas/IAdasDataListener.java | 14 --- .../res/values-xhdpi-2560x1440/dimens.xml | 4 - .../src/main/res/values/colors.xml | 4 - .../src/main/res/values/dimens.xml | 4 - .../src/main/res/values/strings.xml | 4 - .../SnapshotLocationDataCenter.java | 73 +-------------- .../com/mogo/module/main/MainActivity.java | 1 - .../com/mogo/module/service/MogoServices.java | 53 ----------- .../service/adas/IMogoADASController.java | 27 +++--- .../adas/IMogoAdasCarDataCallback.java | 17 ---- services/mogo-service/build.gradle | 2 - .../service/impl/adas/MogoADASController.java | 70 ++++----------- settings.gradle | 1 - 31 files changed, 126 insertions(+), 453 deletions(-) rename modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java => core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java (64%) delete mode 100644 modules/mogo-module-adas/.gitignore delete mode 100644 modules/mogo-module-adas/build.gradle delete mode 100644 modules/mogo-module-adas/consumer-rules.pro delete mode 100644 modules/mogo-module-adas/gradle.properties delete mode 100644 modules/mogo-module-adas/proguard-rules.pro delete mode 100644 modules/mogo-module-adas/src/main/AndroidManifest.xml delete mode 100644 modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java delete mode 100644 modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasDataListener.java delete mode 100644 modules/mogo-module-adas/src/main/res/values-xhdpi-2560x1440/dimens.xml delete mode 100644 modules/mogo-module-adas/src/main/res/values/colors.xml delete mode 100644 modules/mogo-module-adas/src/main/res/values/dimens.xml delete mode 100644 modules/mogo-module-adas/src/main/res/values/strings.xml delete mode 100644 services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasCarDataCallback.java diff --git a/ZD_README/README_VersionHistory.md b/ZD_README/README_VersionHistory.md index 320ac5c41c..116e6ba841 100644 --- a/ZD_README/README_VersionHistory.md +++ b/ZD_README/README_VersionHistory.md @@ -63,7 +63,6 @@ callchatprovider : "com.mogo.module.carchatout:module-carchatting-pr // V2X moduleV2x : "com.mogo.module:module-v2x:${MOGO_COMMONS_VERSION}", -moduleADAS : "com.mogo.module:mogo-module-adas:${MOGO_COMMONS_VERSION}", modulesearch : "com.mogo.module:module-search:${MOGO_COMMONS_VERSION}", // push modulepush : "com.mogo.module:module-push:${MOGO_COMMONS_VERSION}", diff --git a/config.gradle b/config.gradle index 37d9c96ba2..23aec83d49 100644 --- a/config.gradle +++ b/config.gradle @@ -162,7 +162,6 @@ ext { // V2X moduleV2x : "com.mogo.module:module-v2x:${MOGO_MODULE_V2X_VERSION}", - moduleADAS : "com.mogo.module:mogo-module-adas:${MOGO_MODULE_ADAS_VERSION}", modulesearch : "com.mogo.module:module-search:${MOGO_MODULE_SEARCH_VERSION}", // push modulepush : "com.mogo.module:module-push:${MOGO_MODULE_PUSH_VERSION}", diff --git a/core/function-impl/mogo-core-function-autopilot/build.gradle b/core/function-impl/mogo-core-function-autopilot/build.gradle index 49e96989a9..0dd305e15c 100644 --- a/core/function-impl/mogo-core-function-autopilot/build.gradle +++ b/core/function-impl/mogo-core-function-autopilot/build.gradle @@ -56,6 +56,7 @@ dependencies { if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.modulecommon + implementation rootProject.ext.dependencies.moduleservice implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_utils @@ -64,6 +65,7 @@ dependencies { implementation rootProject.ext.dependencies.mogo_core_function_call } else { implementation project(':modules:mogo-module-common') + implementation project(':modules:mogo-module-service') implementation project(':core:mogo-core-data') implementation project(':core:mogo-core-utils') diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt index b1b7b8ea67..50eb04ec6f 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt @@ -12,6 +12,7 @@ import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotProvider import com.mogo.eagle.core.function.autopilot.adapter.MoGoAdasListenerImpl import com.mogo.eagle.core.function.autopilot.adapter.MoGoAdasMsgConnectStatusListenerImpl +import com.mogo.eagle.core.function.autopilot.adapter.MoGoHandAdasMsgManager import com.mogo.eagle.core.function.autopilot.server.AsyncDataToAutopilotServer import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr @@ -37,6 +38,7 @@ class MoGoAutopilotProvider : get() = TAG override fun init(context: Context) { + MoGoHandAdasMsgManager.getInstance(); Logger.d(TAG, "初始化工控机连接……") mContext = context // 初始化ADAS 域控制器 diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.java b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.java index 8ae436afc8..b4e1860e4a 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.java +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.java @@ -2,6 +2,8 @@ package com.mogo.eagle.core.function.autopilot.adapter; import android.util.Log; +import androidx.annotation.Nullable; + import com.mogo.eagle.core.data.autopilot.ADASTrajectoryInfo; import com.mogo.eagle.core.data.autopilot.AutoPilotRecordResult; import com.mogo.eagle.core.data.autopilot.AutopilotCarStateInfo; @@ -19,6 +21,10 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListen import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager; import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.module.common.MogoApisHandler; +import com.mogo.module.common.datacenter.SnapshotLocationDataCenter; +import com.mogo.module.service.MarkerServiceHandler; +import com.mogo.module.service.timedelay.TimeDelayUploadManager; import com.zhidao.support.adas.high.AdasManager; import com.zhidao.support.adas.high.OnAdasListener; import com.zhidao.support.adas.high.bean.AutopilotRoute; @@ -37,6 +43,8 @@ import com.zhidao.support.adas.high.bean.guardian.AutopilotGuardianInfo; import com.zhidao.support.adas.high.bean.record.AutopilotRecordResult; import com.zhidao.support.obu.ami.AmiClientManager; +import org.json.JSONObject; + import java.util.ArrayList; import java.util.List; @@ -78,7 +86,62 @@ public class MoGoAdasListenerImpl implements OnAdasListener { Logger.e(TAG, "bean == null "); } AutopilotCarStateInfo autopilotCarStateInfo = AdasObjectConvertUtils.INSTANCE.fromAdasCarStateInfoObject(carStateInfo); + // 将数据通过数据中心分发出去 CallerAutopilotCarStatusListenerManager.INSTANCE.invokeAutopilotCarStateData(autopilotCarStateInfo); + // 同步给MAP地图 + adasCarDataCallback(autopilotCarStateInfo); + } + } + + + public void adasCarDataCallback(@Nullable AutopilotCarStateInfo stateInfo) { + + //模拟数据时,不更新由工控机传输的自车位置 + if (TimeDelayUploadManager.getInstance().isMock()) { + return; + } + + if (stateInfo != null && stateInfo.getValues() != null) { + //Logger.d(TAG,"同步自车数据给地图……"); + + MogoApisHandler.getInstance().getApis().getAdasControllerApi().setLastLat(stateInfo.getValues().getLat()); + MogoApisHandler.getInstance().getApis().getAdasControllerApi().setLastLon(stateInfo.getValues().getLon()); + MogoApisHandler.getInstance().getApis().getAdasControllerApi().setSatelliteTime(stateInfo.getValues().getSatelliteTime()); + JSONObject data = new JSONObject(); + try { + data.putOpt("lon", stateInfo.getValues().getLon()); + data.putOpt("lat", stateInfo.getValues().getLat()); + data.putOpt("alt", stateInfo.getValues().getAlt()); + data.putOpt("speed", stateInfo.getValues().getGnss_speed()); + data.putOpt("heading", stateInfo.getValues().getHeading()); + data.putOpt("acceleration", stateInfo.getValues().getAcceleration()); + data.putOpt("yawRate", stateInfo.getValues().getYaw_rate()); + data.putOpt("gpsProvider", 1); + try { + data.putOpt("systemTime", Long.parseLong(stateInfo.getValues().getSystemTime())); + } catch (Exception e) { +// e.printStackTrace(); + } + try { + data.putOpt("satelliteTime", Long.parseLong(stateInfo.getValues().getSatelliteTime())); + } catch (Exception e) { + e.printStackTrace(); + } + try { + data.putOpt("receiverDataTime", Long.parseLong(stateInfo.getValues().getReceiverDataTime())); + } catch (Exception e) { +// e.printStackTrace(); + } + try { + data.putOpt("adasSatelliteTime", Long.parseLong(stateInfo.getValues().getAdasSatelliteTime())); + } catch (Exception e) { +// e.printStackTrace(); + } + MarkerServiceHandler.getApis().getMapServiceApi().getMapUIController().syncLocation2Map(data); + SnapshotLocationDataCenter.getInstance().syncAdasLocationInfo(data); + } catch (Exception e) { + e.printStackTrace(); + } } } @@ -221,27 +284,27 @@ public class MoGoAdasListenerImpl implements OnAdasListener { /** * 工控机升级状态 + * * @param info 工控机升级状态 */ @Override public void onUpgradeStateInfo(IPCUpgradeStateInfo info) { - if(info != null){ - Logger.d(TAG,"onUpgradeStateInfo "+ - " upgrade mode="+info.getUpgradeMode()+ - " download status="+info.getDownloadStatus()+ - " download progress current="+info.getProgress().getCurrent()+ - " download progress total="+info.getProgress().getTotal()+ - " download version="+info.getImages()+ - " upgrade status="+info.getUpgradeStatus()); - CallerHmiManager.INSTANCE.showAdUpgradeStatus(info.getUpgradeMode(),info.getDownloadStatus(),info.getProgress().getCurrent(), - info.getProgress().getTotal(),info.getImages(),info.getUpgradeStatus()); - }else{ - Logger.d(TAG,"onUpgradeStateInfo : upgrade state info is null"); + if (info != null) { + Logger.d(TAG, "onUpgradeStateInfo " + + " upgrade mode=" + info.getUpgradeMode() + + " download status=" + info.getDownloadStatus() + + " download progress current=" + info.getProgress().getCurrent() + + " download progress total=" + info.getProgress().getTotal() + + " download version=" + info.getImages() + + " upgrade status=" + info.getUpgradeStatus()); + CallerHmiManager.INSTANCE.showAdUpgradeStatus(info.getUpgradeMode(), info.getDownloadStatus(), info.getProgress().getCurrent(), + info.getProgress().getTotal(), info.getImages(), info.getUpgradeStatus()); + } else { + Logger.d(TAG, "onUpgradeStateInfo : upgrade state info is null"); } } - @Override public void onSSHResult(SSHResult info) { diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt index 233a997ead..c365e23c55 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt @@ -75,7 +75,7 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasMsgConnectStatusListener, IMo /** * 同步SN信息给工控机 */ - fun syncBasicInfoToAutopilot() { + private fun syncBasicInfoToAutopilot() { Logger.d(TAG, "同步PAD的SN给工控机……") val info = BasicInfo() info.setSn(MoGoAiCloudClientConfig.getInstance().sn) @@ -85,7 +85,7 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasMsgConnectStatusListener, IMo /** * 上传自动驾驶状态任务 */ - fun updateDriveStatusTask() { + private fun updateDriveStatusTask() { Logger.d(TAG, "updateDriveStatusTask") Flowable.interval(0, 5, TimeUnit.SECONDS) .subscribeOn(Schedulers.io()) diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java similarity index 64% rename from modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java rename to core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java index 2401fc18a1..f05e957166 100644 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasEventManager.java +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java @@ -1,4 +1,4 @@ -package com.mogo.module.adas; +package com.mogo.eagle.core.function.autopilot.adapter; import androidx.annotation.Nullable; @@ -11,65 +11,39 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarStateListener import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; -import com.mogo.eagle.core.utilcode.util.GsonUtils; import com.mogo.eagle.core.utilcode.util.ThreadUtils; import com.mogo.module.common.drawer.IdentifyDataDrawer; import com.zhidao.support.obu.ami.AmiClientManager; import java.util.ArrayList; -/** - * Created by XuYong on 2021/4/25 14:43 - */ -public class AdasEventManager implements +public class MoGoHandAdasMsgManager implements IMoGoAutopilotIdentifyListener, IMoGoAutopilotCarStateListener { private final String TAG = "AdasEventManager"; - private static volatile AdasEventManager adasEventManager; - private static final byte[] obj = new byte[0]; + private static volatile MoGoHandAdasMsgManager moGoHandAdasMsgManager; - private final ArrayList iAdasEventListeners = new ArrayList<>(); - - private AdasEventManager() { + private MoGoHandAdasMsgManager() { CallerAutopilotIdentifyListenerManager.INSTANCE.addListener(TAG, this); CallerAutopilotCarStatusListenerManager.INSTANCE.addListener(TAG, this); } - public static AdasEventManager getInstance() { - if (adasEventManager == null) { - synchronized (obj) { - if (adasEventManager == null) { - adasEventManager = new AdasEventManager(); + public static MoGoHandAdasMsgManager getInstance() { + if (moGoHandAdasMsgManager == null) { + synchronized (MoGoHandAdasMsgManager.class) { + if (moGoHandAdasMsgManager == null) { + moGoHandAdasMsgManager = new MoGoHandAdasMsgManager(); } } } - return adasEventManager; + return moGoHandAdasMsgManager; } - public void addEventListener(IAdasDataListener listener) { - Logger.d(TAG, "添加adas事件监听"); - if (iAdasEventListeners.contains(listener)) { - return; - } - iAdasEventListeners.add(listener); - } - - public void removeEventListener(IAdasDataListener listener) { - Logger.d(TAG, "注销adas事件监听"); - iAdasEventListeners.remove(listener); - } @Override public void onAutopilotCarStateData(@Nullable AutopilotCarStateInfo autoPilotCarStateInfo) { - for (IAdasDataListener listener : iAdasEventListeners) { - if (listener != null) { - listener.ownerCarStateInfo(GsonUtils.toJson(autoPilotCarStateInfo)); - } - } - // 获取的自动驾驶车辆信息不是空的时候 if (autoPilotCarStateInfo != null) { //can数据转发 @@ -106,4 +80,4 @@ public class AdasEventManager implements public void onAutopilotRecordResult(AutoPilotRecordResult result) { } -} +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-main/build.gradle b/core/function-impl/mogo-core-function-main/build.gradle index 577bdb204c..dfc2b92c2b 100644 --- a/core/function-impl/mogo-core-function-main/build.gradle +++ b/core/function-impl/mogo-core-function-main/build.gradle @@ -70,7 +70,6 @@ dependencies { api rootProject.ext.dependencies.mogoservice api rootProject.ext.dependencies.moduleshare api rootProject.ext.dependencies.moduleextensions - api rootProject.ext.dependencies.moduleADAS api rootProject.ext.dependencies.callchat api rootProject.ext.dependencies.callchatprovider api rootProject.ext.dependencies.mapcustom @@ -98,7 +97,6 @@ dependencies { api project(':modules:mogo-module-common') api project(':modules:mogo-module-service') api project(':modules:mogo-module-extensions') - api project(':modules:mogo-module-adas') api project(':modules:mogo-module-carchatting') api project(':modules:mogo-module-carchattingprovider') api project(':libraries:map-custom') diff --git a/core/function-impl/mogo-core-function-main/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-main/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index 9530e9ed09..5c3941ac6d 100644 --- a/core/function-impl/mogo-core-function-main/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-main/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -328,8 +328,6 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_CHECK, "CheckProvider")); // 推送模块 MogoModulePaths.addModule(new MogoModule(PushUIConstants.PATH, "PUSH_UI")); - // ADAS模块(旧,慢慢被 域控制器模块 替换掉) - MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_ADAS, "AdasProvider")); if (!DebugConfig.isLauncher()) { PersistentManager diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java index 551ff92cfa..aee937489f 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java @@ -208,13 +208,6 @@ public class MogoServicePaths { @Deprecated public static final String PATH_SMALL_MAP = "/small_map/api"; - /** - * ADAS 模块 - */ - @Keep - @Deprecated - public static final String PATH_ADAS = "/adas/api"; - /** * 车辆检测 模块 */ diff --git a/modules.txt b/modules.txt index 7cf07efb7b..a969ffe1d8 100644 --- a/modules.txt +++ b/modules.txt @@ -23,7 +23,6 @@ :test:crashreport-noop :test:crashreport-upgrade :core:function-impl:mogo-core-function-obu-mogo -:modules:mogo-module-adas :modules:mogo-module-service :core:function-impl:mogo-core-function-check :services:mogo-service diff --git a/modules/mogo-module-adas/.gitignore b/modules/mogo-module-adas/.gitignore deleted file mode 100644 index 42afabfd2a..0000000000 --- a/modules/mogo-module-adas/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/modules/mogo-module-adas/build.gradle b/modules/mogo-module-adas/build.gradle deleted file mode 100644 index 28b5c71236..0000000000 --- a/modules/mogo-module-adas/build.gradle +++ /dev/null @@ -1,79 +0,0 @@ -plugins { - id 'com.android.library' - id 'kotlin-android' - id 'kotlin-android-extensions' - id 'kotlin-kapt' - id 'com.alibaba.arouter' -} -android { - compileSdkVersion rootProject.ext.android.compileSdkVersion - // buildToolsVersion rootProject.ext.android.buildToolsVersion - defaultConfig { - minSdkVersion rootProject.ext.android.minSdkVersion - targetSdkVersion rootProject.ext.android.targetSdkVersion - versionCode Integer.valueOf(VERSION_CODE) - versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION") - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles 'consumer-rules.pro' - //ARouter apt 参数 - kapt { - useBuildCache = false - arguments { - arg("AROUTER_MODULE_NAME", project.getName()) - } - } - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } -} - -dependencies { - - implementation rootProject.ext.dependencies.androidxappcompat - implementation rootProject.ext.dependencies.androidxconstraintlayout - implementation rootProject.ext.dependencies.rxandroid - - implementation rootProject.ext.dependencies.arouter - kapt rootProject.ext.dependencies.aroutercompiler - - // 现有的ADAS的通讯SDK,需要将里面的东西融合到我们项目中 - compileOnly rootProject.ext.dependencies.adasapi - - api rootProject.ext.dependencies.adasHigh - implementation rootProject.ext.dependencies.mogoami - - annotationProcessor rootProject.ext.dependencies.aroutercompiler - if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { - api rootProject.ext.dependencies.mogo_core_utils - api rootProject.ext.dependencies.mogocommons - api rootProject.ext.dependencies.mogoserviceapi - implementation rootProject.ext.dependencies.modulecommon - - implementation rootProject.ext.dependencies.mogo_core_data - implementation rootProject.ext.dependencies.mogo_core_utils - implementation rootProject.ext.dependencies.mogo_core_function_api - implementation rootProject.ext.dependencies.mogo_core_function_call - } else { - api project(':core:mogo-core-utils') - api project(":foudations:mogo-commons") - api project(':services:mogo-service-api') - implementation project(':modules:mogo-module-common') - - implementation project(':core:mogo-core-data') - implementation project(':core:mogo-core-utils') - implementation project(':core:mogo-core-function-api') - implementation project(':core:mogo-core-function-call') - } -} -apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString() diff --git a/modules/mogo-module-adas/consumer-rules.pro b/modules/mogo-module-adas/consumer-rules.pro deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/modules/mogo-module-adas/gradle.properties b/modules/mogo-module-adas/gradle.properties deleted file mode 100644 index 1c2efc6a15..0000000000 --- a/modules/mogo-module-adas/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -GROUP=com.mogo.module -POM_ARTIFACT_ID=mogo-module-adas -VERSION_CODE=1 diff --git a/modules/mogo-module-adas/proguard-rules.pro b/modules/mogo-module-adas/proguard-rules.pro deleted file mode 100644 index 481bb43481..0000000000 --- a/modules/mogo-module-adas/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/modules/mogo-module-adas/src/main/AndroidManifest.xml b/modules/mogo-module-adas/src/main/AndroidManifest.xml deleted file mode 100644 index 592a5f5be0..0000000000 --- a/modules/mogo-module-adas/src/main/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java deleted file mode 100644 index 4065c8aa50..0000000000 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/AdasProvider.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.mogo.module.adas; - -import android.content.Context; - -import com.alibaba.android.arouter.facade.annotation.Route; -import com.alibaba.android.arouter.facade.template.IProvider; -import com.mogo.eagle.core.data.constants.MogoServicePaths; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; - - -/** - * ADAS 模块 - * - * @author - * @date 4/21/21 3:39 PM - * wiki:http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=52840459 - */ -@Route(path = MogoServicePaths.PATH_ADAS) -public class AdasProvider implements IProvider { - private static final String TAG = "AdasProvider"; - private AdasEventManager adasEventManager; - - @Override - public void init(Context context) { - Logger.d(TAG, "初始化 AdasProvider 模块"); - adasEventManager = AdasEventManager.getInstance(); - } - - public void addAdasEventListener(IAdasDataListener listener) { - adasEventManager.addEventListener(listener); - } - - public void removeAdasEventListener(IAdasDataListener listener) { - adasEventManager.removeEventListener(listener); - } - -} diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasDataListener.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasDataListener.java deleted file mode 100644 index 6d9c6319d3..0000000000 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/IAdasDataListener.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mogo.module.adas; - -public interface IAdasDataListener { - - - /** - * 自车定位信息 - * - * @param ownerCarStateInfo - */ - default void ownerCarStateInfo(String ownerCarStateInfo) { - } - -} diff --git a/modules/mogo-module-adas/src/main/res/values-xhdpi-2560x1440/dimens.xml b/modules/mogo-module-adas/src/main/res/values-xhdpi-2560x1440/dimens.xml deleted file mode 100644 index 0d2c4cc409..0000000000 --- a/modules/mogo-module-adas/src/main/res/values-xhdpi-2560x1440/dimens.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/modules/mogo-module-adas/src/main/res/values/colors.xml b/modules/mogo-module-adas/src/main/res/values/colors.xml deleted file mode 100644 index 0d2c4cc409..0000000000 --- a/modules/mogo-module-adas/src/main/res/values/colors.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/modules/mogo-module-adas/src/main/res/values/dimens.xml b/modules/mogo-module-adas/src/main/res/values/dimens.xml deleted file mode 100644 index 0d2c4cc409..0000000000 --- a/modules/mogo-module-adas/src/main/res/values/dimens.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/modules/mogo-module-adas/src/main/res/values/strings.xml b/modules/mogo-module-adas/src/main/res/values/strings.xml deleted file mode 100644 index 0d2c4cc409..0000000000 --- a/modules/mogo-module-adas/src/main/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/datacenter/SnapshotLocationDataCenter.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/datacenter/SnapshotLocationDataCenter.java index 4ef5407052..cca8f1a2ce 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/datacenter/SnapshotLocationDataCenter.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/datacenter/SnapshotLocationDataCenter.java @@ -1,8 +1,8 @@ package com.mogo.module.common.datacenter; -import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; +import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.module.common.MogoApisHandler; import com.mogo.service.cloud.location.CloudLocationInfo; @@ -38,36 +38,13 @@ public class SnapshotLocationDataCenter { sInstance = null; } - private CloudLocationInfo mLastLocationInfo = null; - - // GPS(1s1次) RTK(OS侧)缓存数据, - private final List mLocationList = new ArrayList<>(); - // adda 工控机数据缓存 private final List mMachineCacheList = new ArrayList<>(); - private int mDataAccuracy = 0; - private double mCurSpeed; private double mCurLon; private double mCurLat; private long mSatelliteTime = 0; - /** - * 同步从定位来的数据(也可能是rtk) - * - * @param cli {@link CloudLocationInfo} - */ - public void syncLocationInfo(CloudLocationInfo cli) { - if (cli == null) { - return; - } - mLastLocationInfo = cli; - mCurSpeed = cli.getSpeed(); - mCurLon = cli.getLon(); - mCurLat = cli.getLat(); - mLocationList.add(cli); - } - /** * 同步从工控机来的数据 * @@ -113,62 +90,14 @@ public class SnapshotLocationDataCenter { cloudLocationInfo.setSatelliteTime(satelliteTime); cloudLocationInfo.setSystemTime(systemTime); cloudLocationInfo.setTileId(String.valueOf(MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().getTileId(lon, lat))); - mLastLocationInfo = cloudLocationInfo; mMachineCacheList.add(cloudLocationInfo); - mCurSpeed = cloudLocationInfo.getSpeed(); mCurLon = cloudLocationInfo.getLon(); mCurLat = cloudLocationInfo.getLat(); mSatelliteTime = cloudLocationInfo.getSatelliteTime(); } } - /** - * 获取某一段时间内的坐标集合 - * - * @return 坐标合集 - */ - public List getSendLocationData() { - - List list = null; - if (mMachineCacheList != null) { - mDataAccuracy = 1; - list = new ArrayList<>(mMachineCacheList); - mMachineCacheList.clear(); - } - if (list == null || list.isEmpty()) { - mDataAccuracy = 0; - if (mLocationList != null) { - list = new ArrayList<>(mLocationList); - mLocationList.clear(); - } - } - if (list == null || list.isEmpty()) { - if (mLastLocationInfo != null) { - list = new ArrayList(); - list.add(mLastLocationInfo); - mLastLocationInfo = null; - } - } - if (list.size() == 0) { - return null; - } - return list; - } - - /** - * 数据精度类型,目前按照数据来源标志 - * - * @return 精度 - */ - public int getDataAccuracy() { - return mDataAccuracy; - } - - public double getCurSpeed() { - return mCurSpeed; - } - public double getCurLon() { return mCurLon; } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java index d14addc67e..670e5f7676 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java @@ -268,7 +268,6 @@ public class MainActivity extends MvpActivity implement public void hideCoverUpLayout() { getWindow().setBackgroundDrawable(null); mCoverUpLayout.setVisibility(View.GONE); - mServiceApis.getAdasControllerApi().showADAS(); } @Override diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index 1e7e5d031f..1d177c2b28 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -15,7 +15,6 @@ import android.view.MotionEvent; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.voice.AIAssist; import com.mogo.commons.voice.IMogoVoiceCmdCallBack; -import com.mogo.eagle.core.data.autopilot.AutopilotCarStateInfo; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; @@ -31,7 +30,6 @@ import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; -import com.mogo.module.common.datacenter.SnapshotLocationDataCenter; import com.mogo.module.common.entity.MarkerResponse; import com.mogo.module.service.handler.MainLooperHandler; import com.mogo.module.service.handler.RefreshWorkThreadHandler; @@ -46,7 +44,6 @@ import com.mogo.module.service.refresh.RefreshObject; import com.mogo.module.service.timedelay.TimeDelayUploadManager; import com.mogo.realtime.api.MoGoAiCloudRealTime; import com.mogo.service.adas.IMogoADASController; -import com.mogo.service.adas.IMogoAdasCarDataCallback; import com.mogo.service.fragmentmanager.FragmentStackTransactionListener; import com.mogo.service.fragmentmanager.IMogoFragmentManager; import com.mogo.service.intent.IMogoIntentListener; @@ -59,8 +56,6 @@ import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.service.statusmanager.StatusDescriptor; -import org.json.JSONObject; - import java.util.List; /** @@ -81,7 +76,6 @@ public class MogoServices implements IMogoMapListener, IMogoVoiceCmdCallBack, FragmentStackTransactionListener, IMogoCarLocationChangedListener2, - IMogoAdasCarDataCallback, IDestroyable { private boolean mInternalUnWakeupRegisterStatus = false; @@ -332,7 +326,6 @@ public class MogoServices implements IMogoMapListener, mIntentManager.registerIntentListener( ConnectivityManager.CONNECTIVITY_ACTION, this ); mADASController = MarkerServiceHandler.getADASController(); - mADASController.setAdasCarDataCallback( this ); mFragmentManager = MarkerServiceHandler.getFragmentManager(); mFragmentManager.addMainFragmentStackTransactionListener( this ); @@ -861,50 +854,4 @@ public class MogoServices implements IMogoMapListener, } } - @Override - public void onAdasCarDataCallback( AutopilotCarStateInfo stateInfo ) { - - //模拟数据时,不更新由工控机传输的自车位置 - if(TimeDelayUploadManager.getInstance().isMock()){ - return; - } - - if ( stateInfo != null && stateInfo.getValues() != null ) { - JSONObject data = new JSONObject(); - try { - data.putOpt( "lon", stateInfo.getValues().getLon() ); - data.putOpt( "lat", stateInfo.getValues().getLat() ); - data.putOpt( "alt", stateInfo.getValues().getAlt() ); - data.putOpt( "speed", stateInfo.getValues().getGnss_speed() ); - data.putOpt( "heading", stateInfo.getValues().getHeading() ); - data.putOpt( "acceleration", stateInfo.getValues().getAcceleration() ); - data.putOpt( "yawRate", stateInfo.getValues().getYaw_rate() ); - data.putOpt( "gpsProvider", 1 ); - try { - data.putOpt( "systemTime", Long.parseLong( stateInfo.getValues().getSystemTime() ) ); - } catch ( Exception e ) { -// e.printStackTrace(); - } - try { - data.putOpt( "satelliteTime", Long.parseLong( stateInfo.getValues().getSatelliteTime() ) ); - } catch ( Exception e ) { - e.printStackTrace(); - } - try { - data.putOpt( "receiverDataTime", Long.parseLong( stateInfo.getValues().getReceiverDataTime() ) ); - } catch ( Exception e ) { -// e.printStackTrace(); - } - try { - data.putOpt( "adasSatelliteTime", Long.parseLong( stateInfo.getValues().getAdasSatelliteTime() ) ); - } catch ( Exception e ) { -// e.printStackTrace(); - } - MarkerServiceHandler.getApis().getMapServiceApi().getMapUIController().syncLocation2Map( data ); - SnapshotLocationDataCenter.getInstance().syncAdasLocationInfo( data ); - } catch ( Exception e ) { - e.printStackTrace(); - } - } - } } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java index ea47d78cbc..4838429a4f 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java @@ -10,20 +10,8 @@ import com.alibaba.android.arouter.facade.template.IProvider; */ public interface IMogoADASController extends IProvider { - /** - * 显示 - */ - void showADAS(); - void release(); - /** - * 自车定位数据 - * - * @param carDataCallback - */ - void setAdasCarDataCallback(IMogoAdasCarDataCallback carDataCallback); - /** * 获取车身的定位纬度 * @@ -31,6 +19,11 @@ public interface IMogoADASController extends IProvider { */ double getLastLat(); + /** + * 设置自车的定位纬度 + */ + void setLastLat(double lastLat); + /** * 获取车身定位经度 * @@ -38,6 +31,11 @@ public interface IMogoADASController extends IProvider { */ double getLastLon(); + /** + * 设置自车的定位经度 + */ + void setLastLon(double lastLon); + /** * 获取由工控机传回的GPS星历时间 * @@ -45,4 +43,9 @@ public interface IMogoADASController extends IProvider { */ String getSatelliteTime(); + /** + * 设置自车的GPS星历时间 + */ + void setSatelliteTime(String satelliteTime); + } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasCarDataCallback.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasCarDataCallback.java deleted file mode 100644 index 3f5f9a90d2..0000000000 --- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoAdasCarDataCallback.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.mogo.service.adas; - -import com.mogo.eagle.core.data.autopilot.AutopilotCarStateInfo; - -/** - * adas 自车位置数据回调 - * - * @author tongchenfei - */ -public interface IMogoAdasCarDataCallback { - /** - * adas 数据回调 - * - * @param msg 具体数据 - */ - void onAdasCarDataCallback( AutopilotCarStateInfo msg ); -} diff --git a/services/mogo-service/build.gradle b/services/mogo-service/build.gradle index 220180a410..76d36c3203 100644 --- a/services/mogo-service/build.gradle +++ b/services/mogo-service/build.gradle @@ -57,7 +57,6 @@ dependencies { implementation rootProject.ext.dependencies.mogo_core_utils implementation rootProject.ext.dependencies.mogocommons implementation rootProject.ext.dependencies.mogoserviceapi - implementation rootProject.ext.dependencies.moduleADAS implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_function_check @@ -67,7 +66,6 @@ dependencies { implementation project(':core:mogo-core-utils') implementation project(":foudations:mogo-commons") implementation project(":services:mogo-service-api") - implementation project(':modules:mogo-module-adas') implementation project(':core:function-impl:mogo-core-function-check') implementation project(':core:mogo-core-data') diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java index 04c548c34f..73607cfaf3 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java @@ -3,95 +3,59 @@ package com.mogo.service.impl.adas; import android.content.Context; import com.alibaba.android.arouter.facade.annotation.Route; -import com.alibaba.android.arouter.launcher.ARouter; -import com.mogo.commons.AbsMogoApplication; -import com.mogo.commons.debug.DebugConfig; -import com.mogo.eagle.core.data.autopilot.AutopilotCarStateInfo; -import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; import com.mogo.eagle.core.data.constants.MogoServicePaths; -import com.mogo.eagle.core.network.utils.GsonUtil; -import com.mogo.eagle.core.utilcode.mogo.logger.Logger; -import com.mogo.module.adas.AdasProvider; -import com.mogo.module.adas.IAdasDataListener; import com.mogo.service.adas.IMogoADASController; -import com.mogo.service.adas.IMogoAdasCarDataCallback; import com.zhidao.autopilot.support.api.AutopilotServiceManage; -import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; - @Route(path = MogoServicePaths.PATH_ADAS_CONTROLLER) public class MogoADASController implements IMogoADASController { private static final String TAG = "MogoADASController"; - private AdasProvider adasProvider; - private IAdasDataListener mAdasDataListener; - - private IMogoAdasCarDataCallback mMogoAdasCarDataCallback; - private double mLastLon; private double mLastLat; - private String satelliteTime; + private String mSatelliteTime; @Override public double getLastLat() { return mLastLat; } + @Override + public void setLastLat(double lastLat) { + mLastLat = lastLat; + } + @Override public double getLastLon() { return mLastLon; } + @Override + public void setLastLon(double lastLon) { + mLastLon = lastLon; + } + @Override public String getSatelliteTime() { - return satelliteTime; + return mSatelliteTime; + } + + @Override + public void setSatelliteTime(String satelliteTime) { + mSatelliteTime = satelliteTime; } @Override public void init(Context context) { - adasProvider = ARouter.getInstance().navigation(AdasProvider.class); - } - @Override - public void showADAS() { - Logger.d(TAG, "showADAS()"); - init(AbsMogoApplication.getApp()); - if (mAdasDataListener == null) { - mAdasDataListener = new IAdasDataListener() { - - @Override - public void ownerCarStateInfo(String ownerCarStateInfo) { - // 接收 adas 定位数据线程 - AutopilotCarStateInfo stateInfo = GsonUtil.objectFromJson(ownerCarStateInfo, AutopilotCarStateInfo.class); - if (stateInfo == null || stateInfo.getValues() == null) { - return; - } - mLastLon = stateInfo.getValues().getLon(); - mLastLat = stateInfo.getValues().getLat(); - satelliteTime = stateInfo.getValues().getSatelliteTime(); - if (mMogoAdasCarDataCallback != null) { - mMogoAdasCarDataCallback.onAdasCarDataCallback(stateInfo); - } - } - - }; - adasProvider.addAdasEventListener(mAdasDataListener); - } } @Override public void release() { - adasProvider.removeAdasEventListener(mAdasDataListener); AutopilotServiceManage.getInstance().release(); } - @Override - public void setAdasCarDataCallback(IMogoAdasCarDataCallback carDataCallback) { - mMogoAdasCarDataCallback = carDataCallback; - } - } diff --git a/settings.gradle b/settings.gradle index b254e8898d..d06a6c0260 100644 --- a/settings.gradle +++ b/settings.gradle @@ -56,7 +56,6 @@ include ':libraries:mogo-map-api' include ':libraries:mogo-map' // OLD业务模块 -include ':modules:mogo-module-adas' include ':modules:mogo-module-common' include ':modules:mogo-module-main' include ':modules:mogo-module-service'