diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/ui/BusPassengerTrafficLightView.kt b/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/ui/BusPassengerTrafficLightView.kt index f6d8d9f47c..67fbc4b554 100644 --- a/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/ui/BusPassengerTrafficLightView.kt +++ b/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/ui/BusPassengerTrafficLightView.kt @@ -6,7 +6,7 @@ import android.view.LayoutInflater import android.widget.LinearLayout import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.bus.passenger.R diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperLimitingVelocityView.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperLimitingVelocityView.kt index afb9ba0c65..17e414c40d 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperLimitingVelocityView.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperLimitingVelocityView.kt @@ -8,9 +8,10 @@ import android.widget.LinearLayout import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.LimitingVelocityView_TAG -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener +import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager +import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.sweeper.R import kotlinx.android.synthetic.main.sweeper_limiting_speed.view.* @@ -34,11 +35,13 @@ class SweeperLimitingVelocityView( } override fun onLimitingVelocityChange(limitingVelocity: Int, sourceType: DataSourceType) { - if (limitingVelocity > 0) { - this.visibility = View.VISIBLE - tvLimitingVelocity.text = "$limitingVelocity" - } else { - this.visibility = View.GONE + ThreadUtils.runOnUiThread { + if (limitingVelocity > 0) { + this.visibility = View.VISIBLE + tvLimitingVelocity.text = "$limitingVelocity" + } else { + this.visibility = View.GONE + } } } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java index 32db9adef0..0fb7be8343 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java @@ -10,16 +10,12 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.ConstraintLayout; -import com.mogo.eagle.core.data.enums.DataSourceType; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisGearStateListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLamplightListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisSteeringStateListener; -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener; import com.mogo.eagle.core.function.call.autopilot.CallerChassisGearStateListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerChassisSteeringStateListenerManager; -import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager; -import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager; import com.mogo.eagle.core.function.hmi.ui.widget.TapPositionView; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.ThreadUtils; @@ -89,7 +85,7 @@ public class SweeperTrafficDataView extends ConstraintLayout */ @Override public void onAutopilotLightSwitchData(@org.jetbrains.annotations.Nullable Chassis.LightSwitch lightSwitch) { - ThreadUtils.runOnUiThread { + ThreadUtils.runOnUiThread(() -> { //转向灯状态 0是正常 1是左转 2是右转 if (lightSwitch != null) { CallerLogger.INSTANCE.d(TAG, "车辆转向灯:" + lightSwitch.toString()); @@ -101,7 +97,7 @@ public class SweeperTrafficDataView extends ConstraintLayout sweeperTurnSignal.showDirection(); } } - } + }); } /** diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficLightView.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficLightView.kt index d56a099ad8..19a7a466bd 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficLightView.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficLightView.kt @@ -6,7 +6,7 @@ import android.view.LayoutInflater import android.widget.LinearLayout import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.sweeper.R diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java index 9a7964d873..8f52315f09 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java @@ -30,8 +30,8 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxBean; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener; -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener; -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener; +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener; +import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager; diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerTrafficLightView.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerTrafficLightView.kt index 6a0c99c711..464e7a67a2 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerTrafficLightView.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerTrafficLightView.kt @@ -6,7 +6,7 @@ import android.view.LayoutInflater import android.widget.LinearLayout import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.taxi.passenger.R diff --git a/app/src/androidTest/java/com/mogo/functions/test/RoadAITest.kt b/app/src/androidTest/java/com/mogo/functions/test/RoadAITest.kt index 72b47ade32..43ec279322 100644 --- a/app/src/androidTest/java/com/mogo/functions/test/RoadAITest.kt +++ b/app/src/androidTest/java/com/mogo/functions/test/RoadAITest.kt @@ -4,12 +4,11 @@ import android.os.* import androidx.test.core.app.* import androidx.test.ext.junit.runners.* import androidx.test.filters.* +import com.mogo.eagle.core.data.v2x.V2XEvent import com.mogo.eagle.core.function.hmi.ui.* import com.mogo.eagle.core.function.main.* import com.mogo.eagle.core.function.v2x.events.* -import com.mogo.eagle.core.function.v2x.internal.data.V2XRoadXData -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent.RoadAI +import com.mogo.eagle.core.data.v2x.V2XRoadXData import com.mogo.eagle.core.utilcode.util.GsonUtils import kotlinx.coroutines.* import org.junit.* @@ -128,7 +127,7 @@ class RoadAITest { .build()) .build()) .build() - val event = RoadAI(data = child) + val event = V2XEvent.RoadAI(data = child) while (true) { delay(1000) V2XEventManager.onAck(event) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/OverViewDataManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/OverViewDataManager.kt index eef88f1602..e022c3d245 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/OverViewDataManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/OverViewDataManager.kt @@ -22,7 +22,7 @@ import java.util.concurrent.TimeUnit object OverViewDataManager { - const val TAG = "OverViewDataManager" + private const val TAG = "OverViewDataManager" private val overviewDao by lazy { OverviewDb.getDb(AbsMogoApplication.getApp()).overviewDao() diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/OverViewServiceApi.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/OverViewServiceApi.kt index 365f5f0d29..ffdf2be1c6 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/OverViewServiceApi.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/OverViewServiceApi.kt @@ -1,5 +1,6 @@ package com.mogo.eagle.function.biz.v2x.overview.remote +import com.mogo.eagle.core.data.v2x.V2XEventResult import io.reactivex.Observable import retrofit2.http.GET import retrofit2.http.Query diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/V2XEventResult.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/V2XEventResult.kt deleted file mode 100644 index 0650d29817..0000000000 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/V2XEventResult.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.mogo.eagle.function.biz.v2x.overview.remote - -import androidx.annotation.Keep - -import com.google.gson.annotations.SerializedName -import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.data.v2x.V2XEvent - - -@Keep -data class V2XEventResult ( - @SerializedName("result") - var result: Result? -): BaseData() - -@Keep -data class Result( - @SerializedName("eventList") - var v2XEventList: List? -) \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/redlightwarning/RedLightWarningManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/redlightwarning/RedLightWarningManager.kt index d84b81416c..72c3b3431d 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/redlightwarning/RedLightWarningManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/redlightwarning/RedLightWarningManager.kt @@ -13,7 +13,7 @@ import com.mogo.eagle.core.data.msgbox.V2XMsg import com.mogo.eagle.core.data.trafficlight.* import com.mogo.eagle.core.data.trafficlight.TrafficLightStatusHelper.getCurrentRoadTrafficLight import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.api.v2x.IMoGoVipSetListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/vip/VipCarManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/vip/VipCarManager.kt index 915a90d83e..39a009b500 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/vip/VipCarManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/vip/VipCarManager.kt @@ -19,7 +19,7 @@ import com.mogo.eagle.core.data.trafficlight.currentRoadTrafficLight import com.mogo.eagle.core.data.trafficlight.isGreen import com.mogo.eagle.core.data.trafficlight.isRed import com.mogo.eagle.core.data.v2x.VipMessage -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/AiCloudSocketBizProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/AiCloudSocketBizProvider.kt new file mode 100644 index 0000000000..8f94b5a59d --- /dev/null +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/AiCloudSocketBizProvider.kt @@ -0,0 +1,28 @@ +package com.mogo.eagle.core.function.datacenter.aicloud + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.cloud.socket.SocketManager +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider + +@Route(path = MogoServicePaths.PATH_AI_CLOUD) +class AiCloudSocketBizProvider : IMoGoFunctionServerProvider { + override val functionName: String + get() = "AiCloudSocketBizProvider" + + override fun init(context: Context?) { + SocketManager.getInstance().init(AbsMogoApplication.getApp(), 0.0, 0.0) + SocketManager.getInstance().registerOnMessageListener(401012, V2XMessageListener401012()) + SocketManager.getInstance().registerOnMessageListener(401018, V2XMessageListener401018()) + SocketManager.getInstance().registerOnMessageListener(402000, V2XMessageListener402000()) + SocketManager.getInstance().registerOnMessageListener(404000, V2XMessageListener404000()) + //SocketManager.getInstance().registerOnMessageListener(503000, V2XMessageListener503000()) + SocketManager.getInstance().registerOnMessageListener(70001, V2XMessageListener70001()) + } + + override fun onDestroy() { + + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/V2XMessageListener.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/V2XMessageListener.kt new file mode 100644 index 0000000000..059f4ce01a --- /dev/null +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/V2XMessageListener.kt @@ -0,0 +1,96 @@ +package com.mogo.eagle.core.function.datacenter.aicloud + +import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener +import com.mogo.eagle.core.data.v2x.* +import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager +import roadwork.Road + +internal class V2XMessageListener70001: IMogoCloudSocketOnMessageListener { + + override fun target(msgType: Int): Class = V2XRoadXData::class.java + + override fun onMsgReceived(msgType: Int, data: V2XRoadXData?) { + if (msgType != 70001) { + return + } + if (data == null) { + return + } + CallerCloudListenerManager.invokeSocketAck(V2XEvent.RoadEventX(data = data)) + } +} + +internal class V2XMessageListener401012: IMogoCloudSocketOnMessageListener { + + override fun target(msgType: Int): Class = V2XMarkerCardResult::class.java + + override fun onMsgReceived(msgType: Int, data: V2XMarkerCardResult?) { + if (msgType != 401012) { + return + } + if (data == null) { + return + } + CallerCloudListenerManager.invokeSocketAck(V2XEvent.Road(data = data)) + } +} + +internal class V2XMessageListener401018: IMogoCloudSocketOnMessageListener { + + override fun target(msgType: Int): Class = V2XWarningTarget::class.java + + override fun onMsgReceived(msgType: Int, data: V2XWarningTarget?) { + if (msgType != 401018) { + return + } + if (data == null) { + return + } + CallerCloudListenerManager.invokeSocketAck(V2XEvent.Warning(data = data)) + } +} + +internal class V2XMessageListener402000: IMogoCloudSocketOnMessageListener { + + override fun target(msgType: Int): Class = V2XOptimalRoute::class.java + + override fun onMsgReceived(msgType: Int, data: V2XOptimalRoute?) { + if (msgType != 402000) { + return + } + if (data == null) { + return + } + CallerCloudListenerManager.invokeSocketAck(V2XEvent.OptimalRoute(data = data)) + } +} + +internal class V2XMessageListener404000: IMogoCloudSocketOnMessageListener { + + override fun target(msgType: Int): Class = V2XAdvanceWarning::class.java + + override fun onMsgReceived(msgType: Int, data: V2XAdvanceWarning?) { + if (msgType != 404000) { + return + } + if (data == null) { + return + } + CallerCloudListenerManager.invokeSocketAck(V2XEvent.ForwardsWarning(data = data)) + } +} + +internal class V2XMessageListener503000: IMogoCloudSocketOnMessageListener { + + override fun target(msgType: Int): Class = Road.RW_PB::class.java + + override fun onMsgReceived(msgType: Int, data: Road.RW_PB?) { + if (msgType != 503000) { + return + } + if (data == null) { + return + } + CallerCloudListenerManager.invokeSocketAck(V2XEvent.RoadAI(data = data)) + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt index 6a19fe588d..f96c1a7bde 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt @@ -1,5 +1,6 @@ package com.mogo.eagle.core.function.datacenter.autopilot.adapter +import android.content.Context import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.debug.DebugConfig.* import com.mogo.eagle.core.data.config.FunctionBuildConfig @@ -27,12 +28,15 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasConnectStatusListener, IMoGoAutopilotStatusListener, IMoGoCloudListener { - private val TAG = "ConnectStatus" + + companion object{ + private const val TAG = "ConnectStatus" + } private var connectStatus = false init { - CallerCloudListenerManager.registerCloudListener(TAG, this) + CallerCloudListenerManager.addListener(TAG, this) } override fun onConnectionIPCStatus(ipcConnectionStatus: Int, reason: String?) { diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt index a5bfe75e4b..6a33aa8008 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt @@ -1,7 +1,7 @@ package com.mogo.eagle.core.function.datacenter.autopilot.server import com.mogo.eagle.core.data.trafficlight.TrafficLightResult -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/SpeedLimitDispatcher.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/SpeedLimitDispatcher.kt index 6742f81aa8..0346113ae1 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/SpeedLimitDispatcher.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/SpeedLimitDispatcher.kt @@ -2,7 +2,7 @@ package com.mogo.eagle.core.function.datacenter.v2x import android.content.Context import com.mogo.eagle.core.data.enums.DataSourceType -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener +import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager /** diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt index da18deaa54..b4f9c1f98a 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt @@ -6,7 +6,7 @@ import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum import com.mogo.eagle.core.data.trafficlight.* import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager import perception.TrafficLightOuterClass diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/MsgBoxProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/MsgBoxProvider.kt index d3c4d49cd4..5c1729cbfd 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/MsgBoxProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/MsgBoxProvider.kt @@ -4,7 +4,7 @@ import android.content.Context import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.data.constants.MogoServicePaths.PATH_MSG_BOX_MODULE import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxProvider +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxProvider import com.mogo.eagle.core.function.msgbox.DataManager.saveAllMessages2Disk @Route(path = PATH_MSG_BOX_MODULE) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt index dca175382b..9daa99f962 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt @@ -152,6 +152,9 @@ class BindingCarNetWorkManager private constructor() { } private fun updateCarVrIconRes(brandId: String?) { + if(!DebugConfig.isCarModelChange()){ + return + } if (brandId == null || brandId.isEmpty()) { return } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt index 95ec88c2af..ccbb9080a5 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt @@ -43,7 +43,7 @@ class TraceManager : IMoGoCloudListener, IMoGoAutopilotCarConfigListener { // 初始化Trace抓取服务 val pkgName = Utils.getApp().packageName ChainTraceStarter.start(pkgName, DeviceUtils.getMacAddress(), false) - CallerCloudListenerManager.registerCloudListener(TAG, this) + CallerCloudListenerManager.addListener(TAG, this) CallerAutopilotCarConfigListenerManager.addListener(TAG, this) // Trace过程中进行日志抓取,对日志进行配置 diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/tts/TtsManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/tts/TtsManager.kt index 2cf11f8d9f..75c46d37ec 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/tts/TtsManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/tts/TtsManager.kt @@ -23,7 +23,7 @@ class TtsManager : IMoGoCloudListener { fun initTts(context: Context) { val sn = SharedPrefsMgr.getInstance(context).getString("sn") if (sn.isNullOrEmpty()) { - CallerCloudListenerManager.registerCloudListener(TraceManager.TAG, this) + CallerCloudListenerManager.addListener(TraceManager.TAG, this) } AIAssist.getInstance(context) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt index db43edc926..93ae969800 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt @@ -9,7 +9,7 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgCategory -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxButtonView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxButtonView.kt index 5fe939bf50..1bda3f2e9b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxButtonView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxButtonView.kt @@ -6,7 +6,7 @@ import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.hmi.R import kotlinx.android.synthetic.main.view_driver_msg_box_button.view.* diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt index c06b07f82b..0a24a50f88 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt @@ -9,8 +9,8 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgCategory -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt index 61fd81fb64..30ff6c7f23 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt @@ -9,7 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.MsgCategory -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager import com.mogo.eagle.core.function.hmi.R diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt index 7625fbec80..0112f09266 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt @@ -6,18 +6,15 @@ import android.util.AttributeSet import android.view.* import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager -import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.MsgCategory -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener -import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.PassengerMsgBoxBubbleAdapter import com.mogo.eagle.core.function.msgbox.MsgBoxConfig -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import kotlinx.android.synthetic.main.layout_passenger_msg_box_bubble.view.* diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxButtonView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxButtonView.kt index 3080907378..606affc6f5 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxButtonView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxButtonView.kt @@ -6,7 +6,7 @@ import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.hmi.R import kotlinx.android.synthetic.main.view_passenger_msg_box_button.view.* diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxListView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxListView.kt index 8abbc15a48..cc8418f8d2 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxListView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxListView.kt @@ -7,18 +7,16 @@ import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager -import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.MsgCategory -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.PassengerMsgBoxListAdapter -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.ResourceUtils.getDrawable import com.mogo.eagle.core.utilcode.util.UiThreadHandler import kotlinx.android.synthetic.main.layout_passenger_msg_box_list.view.* diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt index 66a1a68404..5cf624ff40 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt @@ -4,7 +4,6 @@ import android.content.Context import android.util.AttributeSet import android.util.TypedValue.COMPLEX_UNIT_PX import android.view.LayoutInflater -import android.view.ViewGroup import androidx.appcompat.content.res.AppCompatResources import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo @@ -17,7 +16,7 @@ import com.mogo.eagle.core.data.trafficlight.isRed import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningActionsListener import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener.Companion.STATUS_AUTOPILOT_RUNNING -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerPlanningActionsListenerManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager @@ -25,8 +24,6 @@ import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.zhjt.service_biz.BizConfig import kotlinx.android.synthetic.main.view_pnc_actions.view.* -import me.jessyan.autosize.AutoSize -import me.jessyan.autosize.utils.AutoSizeUtils import mogo.telematics.pad.MessagePad class PncActionsView @JvmOverloads constructor( @@ -52,16 +49,25 @@ class PncActionsView @JvmOverloads constructor( init { LayoutInflater.from(context).inflate(R.layout.view_pnc_actions, this, true) val a = context.obtainStyledAttributes(attrs, R.styleable.PncActionsView, defStyleAttr, 0) - bgResources = a.getResourceId(R.styleable.PncActionsView_background_resource, R.drawable.pnc_actions_bg) - topMargin = a.getResourceId(R.styleable.PncActionsView_pnc_top_margin,resources.getDimension(R.dimen.dp_30).toInt()) - txtSize = a.getResourceId(R.styleable.PncActionsView_pnc_size,resources.getDimension(R.dimen.dp_34).toInt()) + bgResources = a.getResourceId( + R.styleable.PncActionsView_background_resource, + R.drawable.pnc_actions_bg + ) + topMargin = a.getResourceId( + R.styleable.PncActionsView_pnc_top_margin, + resources.getDimension(R.dimen.dp_30).toInt() + ) + txtSize = a.getResourceId( + R.styleable.PncActionsView_pnc_size, + resources.getDimension(R.dimen.dp_34).toInt() + ) a.recycle() } override fun onAttachedToWindow() { super.onAttachedToWindow() (tvHmiPncActions.layoutParams as MarginLayoutParams).topMargin = topMargin - tvHmiPncActions.setTextSize(COMPLEX_UNIT_PX,txtSize.toFloat()) + tvHmiPncActions.setTextSize(COMPLEX_UNIT_PX, txtSize.toFloat()) CallerAutoPilotStatusListenerManager.addListener(TAG, this) CallerPlanningActionsListenerManager.addListener(TAG, this) @@ -124,6 +130,9 @@ class PncActionsView @JvmOverloads constructor( tvHmiPncActions.text = actions } } + } else { + this.background = null + tvHmiPncActions.text = "" } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt index 8746a17300..de83239e19 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt @@ -2,14 +2,13 @@ package com.mogo.eagle.core.function.hmi.ui.widget import android.content.Context import android.util.AttributeSet -import android.util.Log import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.LimitingVelocityView_TAG -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener +import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager import com.mogo.eagle.core.function.hmi.R @@ -43,7 +42,6 @@ class LimitingVelocityView constructor( if (limitingVelocity > 0) { visibility = View.VISIBLE tvLimitingVelocity.text = "$limitingVelocity" - Log.d("emArrow","limit : ${ DataSourceType.getName(sourceType)}") tvLimitingSource.text = DataSourceType.getName(sourceType) } else { visibility = View.GONE diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt index fbd045ab7e..f770db1fbe 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt @@ -13,7 +13,7 @@ import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.TrafficLightView_TAG -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager import com.mogo.eagle.core.function.hmi.R diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt index bd8cdb8807..b7f531c972 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt @@ -8,12 +8,11 @@ import android.widget.FrameLayout import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener +import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import java.util.* class SpeedPanelView @JvmOverloads constructor( context: Context, diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt index f26b486ee8..7470a9932c 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt @@ -22,10 +22,10 @@ import com.amap.api.maps.TextureMapView import com.amap.api.maps.model.* import com.mogo.eagle.core.data.map.Infrastructure import com.mogo.eagle.core.data.map.MogoLocation -import com.mogo.eagle.core.data.v2x.V2XEvent +import com.mogo.eagle.core.data.v2x.V2XEventData import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener -import com.mogo.eagle.core.function.api.v2x.IFuncBizProvider +import com.mogo.eagle.core.function.api.biz.IFuncBizProvider import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.getGlobalPath import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager @@ -300,8 +300,8 @@ class OverMapView @JvmOverloads constructor( geoHashInfMap = map } - override fun onV2XEvents(v2xEvents: List?) { - showV2XEventMarkers(v2xEvents) + override fun onV2XEvents(v2XEventData: List?) { + showV2XEventMarkers(v2XEventData) } }) // 主动查一次全局路径规划的数据 @@ -389,11 +389,11 @@ class OverMapView @JvmOverloads constructor( /** * 显示V2X事件的Marker */ - private fun showV2XEventMarkers(v2XEvents: List?) { - if (v2XEvents == null || v2XEvents.isEmpty()) return + private fun showV2XEventMarkers(v2XEventData: List?) { + if (v2XEventData == null || v2XEventData.isEmpty()) return clearV2XMarkers() val markerOptionsList = ArrayList() - for (v2xEvent in v2XEvents) { + for (v2xEvent in v2XEventData) { val center = v2xEvent.center if (center != null) { val markerOption = MarkerOptions() diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt index 0e66e82922..29acccff70 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt @@ -8,10 +8,7 @@ import com.mogo.eagle.core.function.api.startup.IStartUpProvider import com.mogo.eagle.core.function.startup.stageone.APMStartup import com.mogo.eagle.core.function.startup.stageone.HttpDnsStartUp import com.mogo.eagle.core.function.startup.stageone.ThreadOptStartup -import com.mogo.eagle.core.function.startup.stagetwo.AutopilotStartUp -import com.mogo.eagle.core.function.startup.stagetwo.DataCenterStartUp -import com.mogo.eagle.core.function.startup.stagetwo.ObuStartUp -import com.mogo.eagle.core.function.startup.stagetwo.MapBizStartUp +import com.mogo.eagle.core.function.startup.stagetwo.* import com.rousetime.android_startup.StartupListener import com.rousetime.android_startup.StartupManager import com.rousetime.android_startup.model.CostTimesModel @@ -20,7 +17,7 @@ import com.rousetime.android_startup.model.StartupConfig import org.greenrobot.eventbus.EventBus @Route(path = MogoServicePaths.PATH_STARTUP_PROVIDER) -class MogoStartUpProvider: IStartUpProvider { +class MogoStartUpProvider : IStartUpProvider { private var context: Context? = null @@ -39,8 +36,7 @@ class MogoStartUpProvider: IStartUpProvider { } override fun initStageOne() { - var config: StartupConfig? = null - config = if (DebugConfig.isDebug()) { + val config = if (DebugConfig.isDebug()) { StartupConfig.Builder() .setLoggerLevel(LoggerLevel.DEBUG) .setOpenStatistics(true) @@ -78,6 +74,7 @@ class MogoStartUpProvider: IStartUpProvider { StartupManager.Builder() .addStartup(DataCenterStartUp()) .addStartup(AutopilotStartUp()) + .addStartup(AiCloudBizStartUp()) .addStartup(ObuStartUp()) .addStartup(MapBizStartUp()) .setConfig(config) diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stagetwo/AiCloudBizStartUp.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stagetwo/AiCloudBizStartUp.kt new file mode 100644 index 0000000000..903e705355 --- /dev/null +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stagetwo/AiCloudBizStartUp.kt @@ -0,0 +1,28 @@ +package com.mogo.eagle.core.function.startup.stagetwo + +import android.content.Context +import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.rousetime.android_startup.AndroidStartup + +class AiCloudBizStartUp : AndroidStartup() { + + override fun create(context: Context): Boolean { + ARouter.getInstance().build(MogoServicePaths.PATH_AI_CLOUD).navigation() + return true + } + + override fun callCreateOnMainThread(): Boolean { + return true + } + + override fun waitOnMainThread(): Boolean { + return false + } + + override fun dependenciesByName(): List { + val deps = arrayListOf() + deps.add("com.mogo.eagle.core.function.startup.stagetwo.DataCenterStartUp") + return deps + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/build.gradle b/core/function-impl/mogo-core-function-v2x/build.gradle index 0548690b35..8e6838c280 100644 --- a/core/function-impl/mogo-core-function-v2x/build.gradle +++ b/core/function-impl/mogo-core-function-v2x/build.gradle @@ -4,7 +4,6 @@ plugins { id 'kotlin-android-extensions' id 'kotlin-kapt' id 'com.alibaba.arouter' - id 'com.google.protobuf' } android { compileSdkVersion rootProject.ext.android.compileSdkVersion @@ -36,19 +35,6 @@ android { targetCompatibility JavaVersion.VERSION_1_8 } - protobuf { - protoc { - artifact = rootProject.ext.dependencies.protoc - } - generateProtoTasks { - all().each { task -> - task.builtins { - java {} - } - } - } - } - } dependencies { @@ -63,8 +49,6 @@ dependencies { implementation rootProject.ext.dependencies.arouter implementation rootProject.ext.dependencies.rxandroid kapt rootProject.ext.dependencies.aroutercompiler - implementation rootProject.ext.dependencies.protobuf_java - implementation rootProject.ext.dependencies.protobuf_java_util implementation rootProject.ext.dependencies.mogoaicloudtrafficlive diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt index 920a297268..b1123c6860 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt @@ -7,16 +7,9 @@ import android.os.Handler import android.os.Looper import android.util.Log import androidx.localbroadcastmanager.content.LocalBroadcastManager -import com.mogo.cloud.passport.IMoGoTokenCallback -import com.mogo.cloud.passport.MoGoAiCloudClient -import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.commons.constants.HostConst -import com.mogo.commons.module.ServiceConst.CARD_TYPE_ROAD_CONDITION -import com.mogo.commons.network.ParamsUtil import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_V2N import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CLOUD_V2N -import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.data.enums.EventTypeHelper @@ -28,11 +21,11 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.V2XMsg import com.mogo.eagle.core.data.traffic.TrafficData +import com.mogo.eagle.core.data.v2x.V2XAdvanceWarning import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener import com.mogo.eagle.core.function.api.map.angle.* -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager @@ -47,37 +40,30 @@ import com.mogo.eagle.core.function.v2x.events.consts.V2XConst.BROADCAST_SCENE_H import com.mogo.eagle.core.function.v2x.events.receiver.SceneBroadcastReceiver import com.mogo.eagle.core.function.v2x.events.scenario.impl.V2XScenarioManager import com.mogo.eagle.core.function.v2x.events.utils.toRoadMarker -import com.mogo.eagle.core.function.v2x.events.utils.toV2XRoadEventEntity -import com.mogo.eagle.core.function.v2x.internal.V2XManager import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.config.V2XConfig -import com.mogo.eagle.core.function.v2x.internal.data.* -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.road.V2XEventServiceApi -import com.mogo.eagle.core.network.MoGoRetrofitFactory +import com.mogo.eagle.core.data.v2x.V2XEvent +import com.mogo.eagle.core.data.v2x.V2XMarkerCardResult +import com.mogo.eagle.core.data.v2x.V2XWarningTarget +import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener +import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager +import com.mogo.eagle.core.function.v2x.events.V2XPoiLoader.Companion.v2xPoiLoader +import com.mogo.eagle.core.function.v2x.events.utils.toV2XRoadEventEntity import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_V2X -import com.mogo.eagle.core.utilcode.util.ThreadUtils -import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.eagle.core.utilcode.util.Utils -import com.mogo.map.marker.MogoMarkersHandler.Companion.mogoMarkersHandler import com.zhjt.service.chain.ChainLog import com.zhjt.service.chain.TracingConstants -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.disposables.Disposable -import io.reactivex.schedulers.Schedulers import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.android.asCoroutineDispatcher import kotlinx.coroutines.cancel import kotlinx.coroutines.launch -import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicBoolean import mogo.telematics.pad.MessagePad -object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, IV2XCallback, - IMoGoAutopilotIdentifyListener { +object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IV2XCallback, + IMoGoAutopilotIdentifyListener, IMoGoCloudListener { private const val TAG = "V2XEventManager" @@ -87,57 +73,34 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, private val hasInit by lazy { AtomicBoolean(false) } - - var v2xEventDisposable: Disposable? = null - fun init(context: Context) { BridgeApi.init(context) if (hasInit.compareAndSet(false, true)) { - if (!V2XManager.hasInit()) { - V2XManager.init(V2XConfig.Builder().also { - it.aiCloudConfig(MoGoAiCloudClientConfig.getInstance()) - it.context(context) - it.loggable(false) - it.distanceForTriggerRefresh(200f) //行驶超过200(包含)米,刷新道路周边信息(短链请求) - it.durationForTriggerRefresh( - 60, - TimeUnit.SECONDS - ) // 每隔1分钟,根据自车定位,刷新道路周边信息(短链请求) - it.executor(ThreadUtils.getIoPool()) //用到的线程池(IO类型) - it.staticParams(ParamsUtil.getStaticParams()) - }.build()) - V2XManager.start() - } registerListener() - V2XManager.forceRefresh() - MoGoAiCloudClient.getInstance().addTokenCallbacks(this) + v2xPoiLoader.startLoopPoi() // 注册广播接收场景弹窗使用的 SceneBroadcastReceiver.register(context) } } private fun registerListener() { - V2XManager.addCallback(this) - CallerChassisLocationGCJ02ListenerManager.addListener(TAG, this) + CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 1,this) + v2xPoiLoader.addCallback(this) + CallerCloudListenerManager.addListener(TAG,this) CallerAutopilotIdentifyListenerManager.addListener(TAG, this) } private fun unRegisterListener() { - V2XManager.removeCallback(this) CallerChassisLocationGCJ02ListenerManager.removeListener(TAG) + v2xPoiLoader.removeCallback(this) + CallerCloudListenerManager.removeListener(TAG) CallerAutopilotIdentifyListenerManager.removeListener(TAG) - mogoMarkersHandler.unregisterMarkerClickListener(CARD_TYPE_ROAD_CONDITION) } override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) { BridgeApi.location.set(mogoLocation) mogoLocation?.let { - if (V2XManager.hasInit()) { - V2XManager.onLocationChanged( - longitude = it.longitude, - latitude = mogoLocation.latitude - ) - } + v2xPoiLoader.updateCheck(mogoLocation.longitude,mogoLocation.latitude) refreshCarState(mogoLocation) } } @@ -167,12 +130,6 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, } } - override fun onTokenGot(token: String?, sn: String?) { - if (V2XManager.hasInit()) { - V2XManager.updateSnAndToken(sn, token) - } - } - /** * V2XEvent事件回调 */ @@ -202,12 +159,11 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, handleWarningTargetEvent(event.data) } is V2XEvent.RoadAI -> { - if(FunctionBuildConfig.isV2NFromCar){ + if (FunctionBuildConfig.isV2NFromCar) { return } handleRoadMarkerEvent(event.data.toRoadMarker()) } - is V2XEvent.RoadEventX -> { handleRoadMarkerEvent(event.data.toRoadMarker()) } @@ -220,7 +176,7 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, @SuppressLint("NewApi") override fun onAutopilotIdentifyPlanningObj(planningObjects: List?) { super.onAutopilotIdentifyPlanningObj(planningObjects) - if(!FunctionBuildConfig.isV2NFromCar){ + if (!FunctionBuildConfig.isV2NFromCar) { return } planningObjects?.let { @@ -277,6 +233,7 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, } } + //todo 可优化,与obu解析类似 private fun handleAdvanceWarningEvent(event: V2XEvent.ForwardsWarning) { scope.launch { val message = event.data @@ -422,69 +379,13 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, } fun queryWholeRoadEvents() { - if (v2xEventDisposable != null && !v2xEventDisposable!!.isDisposed) { - v2xEventDisposable!!.dispose() - } - val sn = MoGoAiCloudClientConfig.getInstance().sn - val lineId = getLineId() - if (lineId > 0) { - realQueryV2xEvents(lineId.toString(), sn) - } else { - UiThreadHandler.postDelayed({ - realQueryV2xEvents(getLineId().toString(), sn) - }, 500) - } - } - - private fun realQueryV2xEvents(lineId: String, sn: String) { - v2xEventDisposable = MoGoRetrofitFactory.getInstance(HostConst.getHost()) - .create(V2XEventServiceApi::class.java) - .queryAllV2XEventsByLineId(lineId, sn) - .map { - if (it.code == 200 || it.code == 0) { - CallerLogger.d(M_V2X + TAG, "请求成功,size为:${it.result?.v2XEventList?.size}") - return@map it.result?.v2XEventList - } else { - CallerLogger.d(M_V2X + TAG, "请求失败,code为:${it.code}") - return@map ArrayList() - } - } - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { - val size = it?.size ?: 0 - if (size > 0) { - val msgBoxBean = - MsgBoxBean(MsgBoxType.V2X, V2XMsg("", "查询到当前全程共${size}个事件", "")) - msgBoxBean.sourceType = DataSourceType.SUMMARY - CallerMsgBoxManager.saveMsgBox(msgBoxBean) - } - } - } - - private fun getLineId(): Long { - var lineId: Long = -1 - val parameter = CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo() - .autopilotControlParameters - if (parameter != null) { - if (parameter.autoPilotLine != null) { - lineId = parameter.autoPilotLine!!.lineId - CallerLogger.d(M_V2X + TAG, "lineId为:$lineId") - } else { - CallerLogger.d(M_V2X + TAG, "parameter.autoPilotLine为null") - } - } else { - CallerLogger.d(M_V2X + TAG, "parameter为null") - } - return lineId + v2xPoiLoader.queryWholeRoadEvents() } override fun onFail(msg: String) { CallerLogger.e("$M_V2X$TAG", "Error: $msg") } - override fun onError(code: Int, msg: String?) {} - fun onDestroy() { if (hasInit.compareAndSet(true, false)) { try { @@ -494,6 +395,7 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, } finally { unRegisterListener() } + v2xPoiLoader.stopLoopPoi() } } diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XPoiLoader.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XPoiLoader.kt new file mode 100644 index 0000000000..065dd53827 --- /dev/null +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XPoiLoader.kt @@ -0,0 +1,184 @@ +package com.mogo.eagle.core.function.v2x.events + +import android.os.Handler +import android.os.Looper +import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.eagle.core.data.enums.DataSourceType +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.V2XMsg +import com.mogo.eagle.core.data.v2x.V2XEvent +import com.mogo.eagle.core.data.v2x.V2XMarkerResponse +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager +import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback +import com.mogo.eagle.core.function.v2x.internal.http.V2XRefreshModel +import com.mogo.eagle.core.function.v2x.internal.http.callback.IV2XRefreshCallback +import com.mogo.eagle.core.function.v2x.internal.utils.DistanceUtils +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import java.util.concurrent.CopyOnWriteArrayList +import java.util.concurrent.TimeUnit +import java.util.concurrent.atomic.AtomicReference + +class V2XPoiLoader private constructor() { + + companion object { + + private const val TAG = "V2XPoiLoader" + + val v2xPoiLoader by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { + V2XPoiLoader() + } + } + + private val lastLongitude by lazy { AtomicReference(0.0) } + + private val lastLatitude by lazy { AtomicReference(0.0) } + + private val realLongitude by lazy { AtomicReference(0.0) } + + private val realLatitude by lazy { AtomicReference(0.0) } + + private val handler by lazy { + Handler(Looper.getMainLooper()) + } + + private val cbs by lazy { + CopyOnWriteArrayList() + } + + /** + * 添加相关信息接口回调 + * @param cb 要添加的回调接口 + */ + fun addCallback(cb: IV2XCallback) { + if (cbs.contains(cb)) { + return + } + cbs += cb + } + + /** + * 移除相关信息接口回调 + * @param cb 要移除的回调接口 + */ + fun removeCallback(cb: IV2XCallback) { + if (!cbs.contains(cb)) { + return + } + cbs.remove(cb) + } + + fun updateCheck(longitude: Double, latitude: Double) { + realLongitude.set(longitude) + realLatitude.set(latitude) + val oldLon = lastLongitude.get() + val oldLat = lastLatitude.get() + var update = false + try { + if (oldLon == 0.0 || oldLat == 0.0) { + handler.removeCallbacks(refreshTask) + handler.post(refreshTask) + update = true + return + } + if (DistanceUtils.calculateLineDistance(oldLon, oldLat, longitude, latitude) >= 200f) { + handler.removeCallbacks(refreshTask) + handler.post(refreshTask) + update = true + } + } finally { + if (update) { + lastLatitude.set(latitude) + lastLongitude.set(longitude) + } + } + } + + /** + * 开启loop Poi事件 + */ + fun startLoopPoi() { + handler.removeCallbacks(refreshTask) + handler.post(refreshTask) + } + + private val refreshTask = object : Runnable { + override fun run() { + V2XRefreshModel.querySnapshot( + longitude = realLongitude.get(), latitude = realLatitude.get(), + refreshCallback + ) + handler.postDelayed(this, TimeUnit.SECONDS.toMillis(60)) + } + } + + fun stopLoopPoi() { + handler.removeCallbacks(refreshTask) + lastLatitude.set(0.0) + lastLongitude.set(0.0) + } + + private val refreshCallback = object : IV2XRefreshCallback { + + override fun onSuccess(result: V2XMarkerResponse) { + cbs.forEach { + it.onAck(V2XEvent.Marker(result)) + } + } + + override fun onFail(msg: String?) { + cbs.forEach { + it.onFail(msg ?: "") + } + } + } + + + /** + * 查询全览路径上的事件信息 + */ + fun queryWholeRoadEvents() { + V2XRefreshModel.roadEventDispose() + val sn = MoGoAiCloudClientConfig.getInstance().sn + val lineId = getLineId() + if (lineId > 0) { + realQueryV2xEvents(lineId.toString(), sn) + } else { + UiThreadHandler.postDelayed({ + realQueryV2xEvents(getLineId().toString(), sn) + }, 500) + } + } + + private fun getLineId(): Long { + var lineId: Long = -1 + val parameter = CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo() + .autopilotControlParameters + if (parameter != null) { + if (parameter.autoPilotLine != null) { + lineId = parameter.autoPilotLine!!.lineId + CallerLogger.d(SceneConstant.M_V2X + TAG, "lineId为:$lineId") + } else { + CallerLogger.d(SceneConstant.M_V2X + TAG, "parameter.autoPilotLine为null") + } + } else { + CallerLogger.d(SceneConstant.M_V2X + TAG, "parameter为null") + } + return lineId + } + + private fun realQueryV2xEvents(lineId: String, sn: String) { + V2XRefreshModel.getRoadEvents(lineId, sn) { + val size = it?.size ?: 0 + if (size > 0) { + val msgBoxBean = + MsgBoxBean(MsgBoxType.V2X, V2XMsg("", "查询到当前全程共${size}个事件", "")) + msgBoxBean.sourceType = DataSourceType.SUMMARY + CallerMsgBoxManager.saveMsgBox(msgBoxBean) + } + } + } +} \ No newline at end of file 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 fdfe8dec63..ed87273009 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 @@ -6,7 +6,7 @@ import com.alibaba.android.arouter.facade.template.IProvider; import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerCardResult; +import com.mogo.eagle.core.data.v2x.V2XMarkerCardResult; import java.util.concurrent.CopyOnWriteArrayList; 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 327a28d209..932164de80 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 @@ -19,11 +19,8 @@ import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.function.v2x.events.consts.MoGoV2XServicePaths; import com.mogo.eagle.core.function.v2x.events.manager.IMoGoV2XMarkerManager; import com.mogo.eagle.core.function.v2x.events.marker.V2XMarkerAdapter; -import com.mogo.eagle.core.function.v2x.events.utils.EntityUtilsKt; import com.mogo.eagle.core.function.v2x.events.utils.MapUtils; -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerCardResult; -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerExploreWay; -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerLocation; +import com.mogo.eagle.core.data.v2x.V2XMarkerCardResult; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java index 5ee305f4b3..9350454df4 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java @@ -23,7 +23,7 @@ import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager; import com.mogo.eagle.core.function.v2x.events.scenario.impl.AbsV2XScenario; import com.mogo.eagle.core.function.v2x.events.scenario.view.IV2XMarker; -import com.mogo.eagle.core.function.v2x.internal.data.V2XWarningTarget; +import com.mogo.eagle.core.data.v2x.V2XWarningTarget; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import java.math.BigDecimal; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java index b81750d42c..c0ca15c5cb 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java @@ -18,8 +18,8 @@ import com.mogo.eagle.core.function.v2x.events.manager.IMoGoPersonWarnPolylineMa import com.mogo.eagle.core.function.v2x.events.manager.IMoGoStopPolylineManager; import com.mogo.eagle.core.function.v2x.events.manager.IMoGoWarnPolylineManager; import com.mogo.eagle.core.function.v2x.events.scenario.view.IV2XMarker; -import com.mogo.eagle.core.function.v2x.internal.data.V2XLocation; -import com.mogo.eagle.core.function.v2x.internal.data.V2XWarningTarget; +import com.mogo.eagle.core.data.v2x.V2XLocation; +import com.mogo.eagle.core.data.v2x.V2XWarningTarget; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt index 0b8602e86e..69c1369b52 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt @@ -5,8 +5,9 @@ import com.mogo.eagle.core.data.enums.EventTypeEnumNew.Companion.isRoadEvent import com.mogo.eagle.core.data.map.entity.MarkerExploreWay import com.mogo.eagle.core.data.map.entity.MarkerLocation import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity +import com.mogo.eagle.core.data.v2x.V2XMarkerCardResult +import com.mogo.eagle.core.data.v2x.V2XRoadXData import com.mogo.eagle.core.function.v2x.events.scenario.scene.airoad.AiRoadMarker -import com.mogo.eagle.core.function.v2x.internal.data.* import com.mogo.eagle.core.utilcode.util.CoordinateTransform import mogo.telematics.pad.MessagePad import roadwork.Road diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/V2XManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/V2XManager.kt deleted file mode 100755 index 1245d6244f..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/V2XManager.kt +++ /dev/null @@ -1,257 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal - -import android.os.Handler -import android.os.Looper -import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.cloud.socket.SocketManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.config.V2XConfig -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerResponse -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.http.V2XRefreshModel -import com.mogo.eagle.core.function.v2x.internal.http.callback.IV2XRefreshCallback -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger -import com.mogo.eagle.core.function.v2x.internal.socket.* -import com.mogo.eagle.core.function.v2x.internal.socket.V2XMessageListener_401012 -import com.mogo.eagle.core.function.v2x.internal.socket.V2XMessageListener_401018 -import com.mogo.eagle.core.function.v2x.internal.socket.V2XMessageListener_402000 -import com.mogo.eagle.core.function.v2x.internal.socket.V2XMessageListener_404000 -import com.mogo.eagle.core.function.v2x.internal.utils.DistanceUtils -import java.util.concurrent.CopyOnWriteArrayList -import java.util.concurrent.atomic.AtomicBoolean -import java.util.concurrent.atomic.AtomicReference - -object V2XManager { - - internal const val TAG = "V2XManager" - - private val config: AtomicReference by lazy { - AtomicReference(null) - } - - private val cbs by lazy { - CopyOnWriteArrayList() - } - - private val lastLongitude by lazy { - AtomicReference(0.0) - } - - private val lastLatitude by lazy { - AtomicReference(0.0) - } - - private val realLongitude by lazy { AtomicReference(0.0) } - - private val realLatitude by lazy { AtomicReference(0.0) } - - - - /** - * 标识此参数是否启动 - */ - private val started by lazy { - AtomicBoolean(false) - } - - private val refreshCallback = object : IV2XRefreshCallback { - - override fun onSuccess(result: V2XMarkerResponse) { - cbs.forEach { - it.onAck(V2XEvent.Marker(result)) - } - } - - override fun onFail(msg: String?) { - cbs.forEach { - it.onFail(msg ?: "") - } - } - } - - - private val refreshTask = object : Runnable { - override fun run() { - V2XRefreshModel.querySnapshot(longitude = realLongitude.get(), latitude = realLatitude.get(), refreshCallback) - handler.postDelayed(this, config.get().durationForTriggerRefresh) - } - } - - private val handler by lazy { - Handler(Looper.getMainLooper()) - } - - /** - * 根据所配置的参数,初始化V2X相关功能(注: 此方法不要重复调用,非首次调用会抛异常) - * @param config 相关配置类 - */ - fun init(config: V2XConfig) { - V2XLogger.d(TAG, "-- init --") - if (V2XManager.config.get() != null) { - throw IllegalStateException("V2XManager has been initialized, don't initialize repeatably.") - } - V2XManager.config.set(config) - V2XLogger.loggable = config.loggable - } - - /** - * - 开启V2X功能, 此方法调用前,要确保满足以下两个条件: - * 1.初始化方法[init]已调用 - * 2.确保[MoGoAiCloudClientConfig.sn]和[MoGoAiCloudClientConfig.token]两个值存在,如果其中有一个值不存在,不会启动相关功能 - * - 此函数的功能如下: - * 1.建立长链接[SocketManager.init] - * 2.位置上报服务[LocationManager.init]和[LocationManager.start] - * 3.短链[V2XRefreshModel.querySnapshot]定时轮循,轮循时长取[V2XConfig.durationForTriggerRefresh] - */ - fun start() { - V2XLogger.d(TAG, "-- start --") - val config = config.get() ?: throw IllegalStateException("V2XManager has not been initialized, please invoke V2XManager#init(config: X2XConfig) firstly.") - if (started.get()) { - V2XLogger.d(TAG, "-- has been started --") - return - } - if (config.aiCloudConfig.sn?.isBlank() == true) { - V2XLogger.e(TAG, "sn is null or blank, please ensure sn exists and then invoke V2XManager#start() again.") - cbs.forEach { - it.onFail("sn is null or blank, please ensure sn exists and then invoke V2XManager#start() again.") - } - return - } - if (config.aiCloudConfig.token?.isBlank() == true) { - V2XLogger.e(TAG, "token is null or blank, please ensure token exists and then invoke V2Manager#start() again.") - cbs.forEach { - it.onFail("token is null or blank, please ensure token exists and then invoke V2Manager#start() again.") - } - return - } - if (started.compareAndSet(false, true)) { - V2XLogger.d(TAG, "-- start real --") - SocketManager.getInstance().init(config.context,0.0,0.0) - SocketManager.getInstance().registerOnMessageListener(401012, V2XMessageListener_401012(cbs)) - SocketManager.getInstance().registerOnMessageListener(401018, V2XMessageListener_401018(cbs)) - SocketManager.getInstance().registerOnMessageListener(402000, V2XMessageListener_402000(cbs)) - SocketManager.getInstance().registerOnMessageListener(404000, V2XMessageListener_404000(cbs)) - //SocketManager.getInstance().registerOnMessageListener(503000, V2XMessageListener_503000(cbs)) - SocketManager.getInstance().registerOnMessageListener(70001, V2XMessageListener_70001(cbs)) - handler.post(refreshTask) - } - } - - /** - * @param sn 更新后的sn - * @param token 更新后的token - */ - fun updateSnAndToken(sn: String?, token: String?) { - val config = config.get() ?: throw IllegalStateException("V2XManager has not been initialized, please invoke V2XManager#init(config: X2XConfig) firstly.") - sn ?: return - token ?: return - if (started.get()) { - return - } - config.aiCloudConfig.sn = sn - config.aiCloudConfig.token = token - start() - } - - /** - * 停止V2X功能 - * 1. 断开长链接[SocketManager.release] - * 2. 停止位置上报[LocationManager.stop] - * 3. 取消短链定时轮循任务 - */ - fun stop() { - V2XLogger.d(TAG, "-- stop --") - if (config.get() == null) { - throw IllegalStateException("V2XManager has not been initialized, please invoke V2XManager#init(config: X2XConfig) firstly.") - } - if (started.compareAndSet(true, false)) { - V2XLogger.d(TAG, "-- stop real --") - SocketManager.getInstance().release() - handler.removeCallbacks(refreshTask) - lastLatitude.set(0.0) - lastLongitude.set(0.0) - } - } - - /** - * 添加相关信息接口回调 - * @param cb 要添加的回调接口 - */ - fun addCallback(cb: IV2XCallback) { - V2XLogger.d(TAG, "-- addCallback --") - if (cbs.contains(cb)) { - return - } - cbs += cb - } - - /** - * 移除相关信息接口回调 - * @param cb 要移除的回调接口 - */ - fun removeCallback(cb: IV2XCallback) { - V2XLogger.d(TAG, "-- removeCallback --") - if (!cbs.contains(cb)) { - return - } - cbs.remove(cb) - } - - /** - * 当自车位置变量时调用 - * @param longitude 自车所在精度 - * @param latitude 自车所在纬度 - */ - fun onLocationChanged(longitude: Double, latitude: Double) { - if (config.get() == null) { - throw IllegalStateException("V2XManager has not been initialized, please invoke V2XManager#init(config: X2XConfig) firstly.") - } - if (!started.get()) { - return - } - //V2XLogger.d(TAG, "--- onLocationChanged --[longitude: $longitude, latitude: $latitude]") - realLongitude.set(longitude) - realLatitude.set(latitude) - val oldLon = lastLongitude.get() - val oldLat = lastLatitude.get() - var update = false - try { - if (oldLon == 0.0 || oldLat == 0.0) { - V2XLogger.d(TAG, "--- onLocationChanged -- first --[longitude: $longitude, latitude: $latitude]") - handler.removeCallbacks(refreshTask) - handler.post(refreshTask) - update = true - return - } - if (DistanceUtils.calculateLineDistance(oldLon, oldLat, longitude, latitude) >= config.get().distanceForTriggerRefresh) { - V2XLogger.d(TAG, "--- onLocationChanged -- trigger --[longitude: $longitude, latitude: $latitude]") - handler.removeCallbacks(refreshTask) - handler.post(refreshTask) - update = true - } - } finally { - if (update) { - lastLatitude.set(latitude) - lastLongitude.set(longitude) - } - } - } - - /** - * 是否已经初始化 - * @return true: 已初始化过 false: 未初始化 - */ - fun hasInit() = getConfig() != null - - /** - * 强制刷新道路事件 - */ - fun forceRefresh() { - if (hasInit()) { - handler.removeCallbacks(refreshTask) - handler.post(refreshTask) - } - } - - internal fun getConfig() = config.get() -} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/callback/IV2XCallback.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/callback/IV2XCallback.kt index f755c465e4..4a4d0e2b78 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/callback/IV2XCallback.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/callback/IV2XCallback.kt @@ -1,6 +1,6 @@ package com.mogo.eagle.core.function.v2x.internal.callback -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent +import com.mogo.eagle.core.data.v2x.V2XEvent interface IV2XCallback { diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/config/V2XConfig.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/config/V2XConfig.kt deleted file mode 100755 index 1ab70b67ac..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/config/V2XConfig.kt +++ /dev/null @@ -1,174 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.config - -import android.content.Context -import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.eagle.core.function.v2x.internal.executor.Executors -import java.util.concurrent.Executor -import java.util.concurrent.TimeUnit -import kotlin.IllegalStateException - -/** - * V2X相关配置 - */ -class V2XConfig private constructor(builder: Builder) { - - /** - * - 应用上下文 - * - 必选项 - * - 通过[Builder.context]设置 - */ - val context : Context by lazy { - builder.context?.applicationContext ?: throw IllegalStateException("context must not be null.") - } - - /** - * - 云平台配置参数 - * - 必选项 - * - 通过[Builder.aiCloudConfig]设置 - */ - val aiCloudConfig by lazy { - builder.aiCloudConfig ?: throw IllegalStateException("aiCloudConfig must not be null.") - } - - /** - * - 网络请求使用的线程池,IO类型 - * - 可选项 - * - 通过[Builder.executor]设置 - */ - val executor: Executor by lazy { - builder.executor ?: Executors.IO - } - - /** - * - 是否开启日志 - * - 可选项 - * - 通过[Builder.loggable]设置,开发阶段可以打开,应用发布后记得关闭 - */ - val loggable: Boolean by lazy { - builder.loggable - } - - /** - * - 公共参数, 默认为空 - * - 可选项 - * - 通过[Builder.staticParams]设置 - */ - val staticParams by lazy { - builder.staticParams ?: HashMap() - } - - /** - * - 基础Url, 默认值为`http://dzt-launcherSnapshot.zhidaozhixing.com` - * - 可选项 - * - 通过[Builder.baseUrl]设置 - */ - val baseUrl by lazy { - builder.baseUrl ?: "http://dzt-launcherSnapshot.zhidaozhixing.com" - - } - - /** - * - 多长时间请求一次自车周边信息,单位为毫秒,默认值为`6_000`毫秒 - * - 可选项 - * - 通过[Builder.durationForTriggerRefresh]设置 - */ - val durationForTriggerRefresh by lazy { - val duration = builder.durationForTriggerRefresh - if (duration == null || duration <= 0) TimeUnit.SECONDS.toMillis(60) else duration - } - - /** - * - 自车行驶超过此长度,会刷新自车周边信息,单位为`米` - * - 可选项 - * - 通过[Builder.distanceForTriggerRefresh]设置 - */ - val distanceForTriggerRefresh: Float by lazy { - val distance = builder.distanceForTriggerRefresh - if (distance == null || distance <= 0) 200f else distance - } - - internal fun newBuilder() = Builder(this) - - class Builder { - - internal var context: Context? = null - - internal var executor: Executor? = null - - internal var loggable: Boolean = false - - internal var staticParams: Map? = null - - internal var aiCloudConfig: MoGoAiCloudClientConfig? = null - - internal var durationForTriggerRefresh: Long? = null - - internal var baseUrl: String? = null - - internal var distanceForTriggerRefresh: Float? = null - - constructor() - - internal constructor(config: V2XConfig) { - context = config.context - executor = config.executor - loggable = config.loggable - baseUrl = config.baseUrl - staticParams = config.staticParams - aiCloudConfig = config.aiCloudConfig - durationForTriggerRefresh = config.durationForTriggerRefresh - distanceForTriggerRefresh = config.distanceForTriggerRefresh - } - - /** - * 应用上下文,此参数为必选项,不设置会抛异常 - */ - fun context(context: Context) = apply { this.context = context } - - /** - * 是否开启日志 - */ - fun loggable(loggable: Boolean) = apply { this.loggable = loggable } - - /** - * 公共参数列表 - */ - fun staticParams(params: Map) = apply { this.staticParams = params } - - /** - * 网络请求线程池,如未设置,会使用内置的线程池[Executors.IO] - */ - fun executor(executor: Executor): Builder = apply { - if (this.executor != null) { - throw IllegalArgumentException("io executor has been initialized, don't set repeatedly.") - } - this.executor = executor - } - - /** - * 刷新周边信息的时间间隔 - * @param duration 时长 - * @param unit 时间单位 - */ - fun durationForTriggerRefresh(duration: Long, unit: TimeUnit = TimeUnit.SECONDS) = apply { this.durationForTriggerRefresh = unit.toMillis(duration) } - - /** - * @param distance 超过此距离会触发刷新周边道路信息,单位为米 - */ - fun distanceForTriggerRefresh(distance: Float) = apply { this.distanceForTriggerRefresh = distance } - - /** - * 云平台配置信息,此参数为必选项,不设置会抛异常 - * @param config 云平台配置 - */ - fun aiCloudConfig(config: MoGoAiCloudClientConfig) = apply { this.aiCloudConfig = config } - - /** - * 云平台baseUrl - * @param baseUrl 云平台baseUrl - */ - fun baseUrl(baseUrl: String) = apply { this.baseUrl = baseUrl } - - fun build() : V2XConfig = V2XConfig(this) - } -} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/event/V2XEvent.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/event/V2XEvent.kt deleted file mode 100644 index 40bf0b65c4..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/event/V2XEvent.kt +++ /dev/null @@ -1,75 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.event - -import com.mogo.eagle.core.function.v2x.internal.data.* -import roadwork.Road.RW_PB - -sealed class V2XEvent { - - /** - * 长链-路口碰撞预警、盲区预警等通用Bean - */ - class ForwardsWarning(val type: Int = 404000, val data: V2XAdvanceWarning): V2XEvent() { - override fun toString(): String { - return "ForwardsWarning(type=$type, data=$data)" - } - } - - /** - * 长链-最优推荐线种 - */ - class OptimalRoute(val type: Int = 402000, val data: V2XOptimalRoute): V2XEvent() { - override fun toString(): String { - return "OptimalRoute(type=$type, data=$data)" - } - } - - /** - * 长链-预警目标物 - */ - class Warning(val type: Int = 401018, val data: V2XWarningTarget): V2XEvent() { - override fun toString(): String { - return "Warning(type=$type, data=$data)" - } - } - - /** - * 长链-道路事件 - */ - class Road(val type: Int = 401012, val data: V2XMarkerCardResult): V2XEvent() { - override fun toString(): String { - return "Road(type=$type, data=$data)" - } - } - - /** - * 长链-道路事件云识别 - */ - class RoadAI(val type: Int = 503000, val data: RW_PB): V2XEvent() { - - override fun toString(): String { - return "RoadAI(type=$type, data=$data)" - } - } - - - /** - * 短链-道路标记事件 - */ - class Marker(val data: V2XMarkerResponse): V2XEvent() { - - override fun toString(): String { - return "Marker(data=$data)" - } - } - - - /** - * 长链-道路事件扩展数据结构 - */ - class RoadEventX(val type: Int = 70001, val data: V2XRoadXData): V2XEvent() { - - override fun toString(): String { - return "RoadEventX(type=$type, data=$data)" - } - } -} diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/executor/Executors.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/executor/Executors.kt deleted file mode 100755 index aed7f4549c..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/executor/Executors.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.executor - -import java.util.concurrent.* -import java.util.concurrent.atomic.AtomicLong -import kotlin.math.max -import kotlin.math.min - - -internal object Executors { - - private val group: ThreadGroup by lazy { - ThreadGroup("v2x-group") - } - - private val CPU_CORE_COUNT by lazy { - Runtime.getRuntime().availableProcessors() - } - - private val DEFAULT_CORE_COUNT by lazy { - (max(2, min(CPU_CORE_COUNT - 1, 6)) * 3) + 1 - } - - private const val DEFAULT_MAX_COUNT_4_IO = 128 - - val IO by lazy { - val idGenerator = AtomicLong(0) - ThreadPoolExecutor( - DEFAULT_CORE_COUNT, DEFAULT_MAX_COUNT_4_IO, 30, TimeUnit.SECONDS, LinkedBlockingDeque() - ) { r -> - Thread(group, r).apply { - name = "io-thread-${idGenerator.getAndIncrement()}" - } - } - } -} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/V2XRefreshModel.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/V2XRefreshModel.kt index f3e8a4f56a..d24d8004c9 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/V2XRefreshModel.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/V2XRefreshModel.kt @@ -4,14 +4,25 @@ import com.elegant.network.utils.GsonUtil import com.elegant.network.utils.SignUtil import com.elegant.utils.CommonUtils import com.mogo.cloud.network.RetrofitFactory +import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.commons.AbsMogoApplication import com.mogo.commons.constants.HostConst -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.config.V2XConfig -import com.mogo.eagle.core.function.v2x.internal.data.V2XLocation -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerResponse +import com.mogo.commons.network.ParamsUtil +import com.mogo.eagle.core.data.enums.DataSourceType +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.V2XMsg +import com.mogo.eagle.core.data.v2x.V2XEventData +import com.mogo.eagle.core.data.v2x.V2XLocation +import com.mogo.eagle.core.data.v2x.V2XMarkerResponse +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager +import com.mogo.eagle.core.function.v2x.events.V2XPoiLoader import com.mogo.eagle.core.function.v2x.internal.http.api.V2XApiService import com.mogo.eagle.core.function.v2x.internal.http.body.V2XRefreshEntity import com.mogo.eagle.core.function.v2x.internal.http.callback.IV2XRefreshCallback +import com.mogo.eagle.core.network.MoGoRetrofitFactory +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.DeviceUtils import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable @@ -21,17 +32,18 @@ internal class V2XRefreshModel { companion object { + private const val TAG = "V2XRefreshModel" + fun querySnapshot( longitude: Double, latitude: Double, callback: IV2XRefreshCallback? ): Disposable? { - val config = V2XManager.getConfig() val retrofit = RetrofitFactory.getInstance(HostConst.getEagleHost()) ?: return null return retrofit .create(V2XApiService::class.java) - .querySnapshotSync(buildParams(longitude, latitude, config)) - .subscribeOn(Schedulers.from(config.executor)) + .querySnapshotSync(buildParams(longitude, latitude)) + .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe({ data -> if (data == null) { @@ -51,9 +63,8 @@ internal class V2XRefreshModel { private fun buildParams( longitude: Double, latitude: Double, - config: V2XConfig ): Map = mutableMapOf().apply { - putAll(config.staticParams.let { + putAll(ParamsUtil.getStaticParams().let { val handled = mutableMapOf() it.asIterable().forEach { itx -> val value = itx.value @@ -63,10 +74,10 @@ internal class V2XRefreshModel { } handled }) - this["netType"] = CommonUtils.getNetworkType(config.context) + this["netType"] = CommonUtils.getNetworkType(AbsMogoApplication.getApp()) this["cellId"] = DeviceUtils.getCellId() ?: "" - this["sn"] = config.aiCloudConfig.sn - this["ticket"] = config.aiCloudConfig.token + this["sn"] = MoGoAiCloudClientConfig.getInstance().sn + this["ticket"] = MoGoAiCloudClientConfig.getInstance().token this["sig"] = SignUtil.createSign(this, "JGjZx6") this["data"] = GsonUtil.jsonFromObject(V2XRefreshEntity().apply { limit = 999 @@ -79,6 +90,34 @@ internal class V2XRefreshModel { viewPush = true }) } + + private var v2xEventDisposable: Disposable? = null + + fun roadEventDispose(){ + if (v2xEventDisposable != null && !v2xEventDisposable!!.isDisposed) { + v2xEventDisposable!!.dispose() + } + } + + fun getRoadEvents(lineId: String, sn: String, onSuccess:((List?) -> Unit)){ + v2xEventDisposable = MoGoRetrofitFactory.getInstance(HostConst.getHost()) + .create(V2XApiService::class.java) + .queryAllV2XEventsByLineId(lineId, sn) + .map { + if (it.code == 200 || it.code == 0) { + CallerLogger.d(SceneConstant.M_V2X + TAG, "请求成功,size为:${it.result?.v2XEventList?.size}") + return@map it.result?.v2XEventList + } else { + CallerLogger.d(SceneConstant.M_V2X + TAG, "请求失败,code为:${it.code}") + return@map ArrayList() + } + } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe { + onSuccess.invoke(it) + } + } } diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/api/V2XApiService.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/api/V2XApiService.kt index 1b9bc293db..2ebb219093 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/api/V2XApiService.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/api/V2XApiService.kt @@ -1,14 +1,18 @@ package com.mogo.eagle.core.function.v2x.internal.http.api -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerResponse +import com.mogo.eagle.core.data.v2x.V2XEventResult +import com.mogo.eagle.core.data.v2x.V2XMarkerResponse import io.reactivex.Maybe -import retrofit2.http.FieldMap -import retrofit2.http.FormUrlEncoded -import retrofit2.http.POST +import io.reactivex.Observable +import retrofit2.http.* internal interface V2XApiService { @FormUrlEncoded @POST("eagle-eye-dns/yycp-launcherSnapshot/launcherSnapshot/querySnapshotSync") fun querySnapshotSync(@FieldMap parameters: Map): Maybe + + @GET("/eagleEye-mis/config/queryV2NInformation") + fun queryAllV2XEventsByLineId(@Query("lineId") lineId: String, @Query("sn") sn: String): Observable + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/body/V2XRefreshEntity.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/body/V2XRefreshEntity.kt index 82d5661ab5..d99ce1dac4 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/body/V2XRefreshEntity.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/body/V2XRefreshEntity.kt @@ -1,7 +1,7 @@ package com.mogo.eagle.core.function.v2x.internal.http.body import androidx.annotation.Keep -import com.mogo.eagle.core.function.v2x.internal.data.V2XLocation +import com.mogo.eagle.core.data.v2x.V2XLocation /** * 刷新地图信息接口 diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/logger/V2XLogger.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/logger/V2XLogger.kt deleted file mode 100644 index 58463eb45c..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/logger/V2XLogger.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.logger - -import android.util.Log - -internal object V2XLogger { - - var loggable: Boolean = false - - fun v(tag: String, msg: String) = if (loggable) Log.v(tag, msg) else 0 - - fun d(tag: String, msg: String) = if (loggable) Log.d(tag, msg) else 0 - - fun i(tag: String, msg: String) = if (loggable) Log.i(tag, msg) else 0 - - fun w(tag: String, msg: String) = if (loggable) Log.w(tag, msg) else 0 - - fun e(tag: String, msg: String, t: Throwable? = null) = if (loggable) { - if (t == null) { - Log.e(tag, msg) - } else { - Log.e(tag, msg, t) - } - } else 0 -} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_401012.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_401012.kt deleted file mode 100644 index 23ca38f148..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_401012.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.socket - -import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerCardResult -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger - -internal class V2XMessageListener_401012(val cbs: Iterable?): IMogoCloudSocketOnMessageListener { - - override fun target(msgType: Int): Class = V2XMarkerCardResult::class.java - - override fun onMsgReceived(msgType: Int, data: V2XMarkerCardResult?) { - if (msgType != 401012) { - return - } - if (data == null) { - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_401012:message is null!") - return - } - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_401012:$data") - cbs?.forEach { - it.onAck(V2XEvent.Road(data = data)) - } - } -} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_401018.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_401018.kt deleted file mode 100644 index a7cf8e8933..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_401018.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.socket - -import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.data.V2XWarningTarget -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger - -internal class V2XMessageListener_401018(val cbs: Iterable?): IMogoCloudSocketOnMessageListener { - - override fun target(msgType: Int): Class = V2XWarningTarget::class.java - - override fun onMsgReceived(msgType: Int, data: V2XWarningTarget?) { - if (msgType != 401018) { - return - } - if (data == null) { - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_401018:message is null!") - return - } - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_401018:$data") - cbs?.forEach { - it.onAck(V2XEvent.Warning(data = data)) - } - } -} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_402000.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_402000.kt deleted file mode 100644 index e5b94036de..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_402000.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.socket - -import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.data.V2XOptimalRoute -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger - -internal class V2XMessageListener_402000(val cbs: Iterable?): IMogoCloudSocketOnMessageListener { - - override fun target(msgType: Int): Class = V2XOptimalRoute::class.java - - override fun onMsgReceived(msgType: Int, data: V2XOptimalRoute?) { - if (msgType != 402000) { - return - } - if (data == null) { - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_402000:message is null!") - return - } - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_402000:$data") - cbs?.forEach { - it.onAck(V2XEvent.OptimalRoute(data = data)) - } - } -} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_404000.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_404000.kt deleted file mode 100644 index c8b402cedd..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_404000.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.socket - -import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.data.V2XAdvanceWarning -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger - -internal class V2XMessageListener_404000(val cbs: Iterable?): IMogoCloudSocketOnMessageListener { - - override fun target(msgType: Int): Class = V2XAdvanceWarning::class.java - - override fun onMsgReceived(msgType: Int, data: V2XAdvanceWarning?) { - if (msgType != 404000) { - return - } - if (data == null) { - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_404000:message is null!") - return - } - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_404000:$data") - cbs?.forEach { - it.onAck(V2XEvent.ForwardsWarning(data = data)) - } - } -} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_503000.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_503000.kt deleted file mode 100644 index dbfc7f7ff4..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_503000.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.socket - -import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent.RoadAI -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger -import roadwork.Road.RW_PB - -internal class V2XMessageListener_503000(val cbs: Iterable?): IMogoCloudSocketOnMessageListener { - - override fun target(msgType: Int): Class = RW_PB::class.java - - override fun onMsgReceived(msgType: Int, data: RW_PB?) { - if (msgType != 503000) { - return - } - if (data == null) { - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_503000:message is null!") - return - } - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_503000:$data") - cbs?.forEach { - it.onAck(RoadAI(data = data)) - } - } -} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_70001.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_70001.kt deleted file mode 100644 index 320b6529d4..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_70001.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.socket - -import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.data.V2XRoadXData -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger - -internal class V2XMessageListener_70001(val cbs: Iterable?): IMogoCloudSocketOnMessageListener { - - override fun target(msgType: Int): Class = V2XRoadXData::class.java - - override fun onMsgReceived(msgType: Int, data: V2XRoadXData?) { - if (msgType != 70001) { - return - } - if (data == null) { - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_70001:message is null!") - return - } - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_70001:$data") - cbs?.forEach { - it.onAck(V2XEvent.RoadEventX(data = data)) - } - } -} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/road/V2XEventServiceApi.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/road/V2XEventServiceApi.kt deleted file mode 100644 index 5b73866375..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/road/V2XEventServiceApi.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.mogo.eagle.core.function.v2x.road - -import io.reactivex.Observable -import retrofit2.http.GET -import retrofit2.http.Query - -interface V2XEventServiceApi { - - @GET("/eagleEye-mis/config/queryV2NInformation") - fun queryAllV2XEventsByLineId(@Query("lineId") lineId: String, @Query("sn") sn: String): Observable -} \ No newline at end of file diff --git a/core/mogo-core-data/build.gradle b/core/mogo-core-data/build.gradle index 4bda16c773..6bbadbc935 100644 --- a/core/mogo-core-data/build.gradle +++ b/core/mogo-core-data/build.gradle @@ -4,6 +4,7 @@ plugins { id 'kotlin-android-extensions' id 'kotlin-kapt' id 'com.alibaba.arouter' + id 'com.google.protobuf' } android { compileSdkVersion rootProject.ext.android.compileSdkVersion @@ -46,6 +47,19 @@ android { targetCompatibility JavaVersion.VERSION_1_8 } + protobuf { + protoc { + artifact = rootProject.ext.dependencies.protoc + } + generateProtoTasks { + all().each { task -> + task.builtins { + java {} + } + } + } + } + } dependencies { @@ -61,6 +75,9 @@ dependencies { implementation rootProject.ext.dependencies.androidxroomktx kapt rootProject.ext.dependencies.androidxroomcompiler + implementation rootProject.ext.dependencies.protobuf_java + implementation rootProject.ext.dependencies.protobuf_java_util + if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogo_core_res } else { 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 6e4f6af620..aa83053bf5 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 @@ -60,6 +60,12 @@ public class MogoServicePaths { @Keep public static final String PATH_AUTO_PILOT = "/auto_pilot/api"; + /** + * AiCloud socket 数据透出业务模块 + */ + @Keep + public static final String PATH_AI_CLOUD = "/ai_cloud/api"; + /** * 业务Biz 模块 */ @@ -99,7 +105,6 @@ public class MogoServicePaths { @Keep public static final String PATH_DATA_CENTER_MODULE = "/data_center/api"; - @Keep public static final String PATH_IDENTIFY = "/map/identify"; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XAdvanceWarning.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XAdvanceWarning.kt similarity index 97% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XAdvanceWarning.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XAdvanceWarning.kt index df71ca8175..64c2962c37 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XAdvanceWarning.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XAdvanceWarning.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep import java.io.Serializable diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XBaseData.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XBaseData.kt similarity index 64% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XBaseData.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XBaseData.kt index d7df5b04f0..4f2b36d406 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XBaseData.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XBaseData.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x open class V2XBaseData { diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEvent.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEvent.kt index c9c1bbb61e..322e89b0e1 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEvent.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEvent.kt @@ -1,59 +1,70 @@ package com.mogo.eagle.core.data.v2x -import androidx.annotation.Keep +sealed class V2XEvent { -import com.google.gson.annotations.SerializedName + /** + * 长链-路口碰撞预警、盲区预警等通用Bean + */ + class ForwardsWarning(val type: Int = 404000, val data: V2XAdvanceWarning): V2XEvent() { + override fun toString(): String { + return "ForwardsWarning(type=$type, data=$data)" + } + } -@Keep -data class V2XEvent( - @SerializedName("receiveTime") - var receiveTime: Long, + /** + * 长链-最优推荐线种 + */ + class OptimalRoute(val type: Int = 402000, val data: V2XOptimalRoute): V2XEvent() { + override fun toString(): String { + return "OptimalRoute(type=$type, data=$data)" + } + } - @SerializedName("detectTime") - var detectTime: Long, + /** + * 长链-预警目标物 + */ + class Warning(val type: Int = 401018, val data: V2XWarningTarget): V2XEvent() { + override fun toString(): String { + return "Warning(type=$type, data=$data)" + } + } - @SerializedName("id") - var id: String?, + /** + * 长链-道路事件 + */ + class Road(val type: Int = 401012, val data: V2XMarkerCardResult): V2XEvent() { + override fun toString(): String { + return "Road(type=$type, data=$data)" + } + } - @SerializedName("center") - var center: Center?, + /** + * 长链-道路事件云识别 + */ + class RoadAI(val type: Int = 503000, val data: roadwork.Road.RW_PB): V2XEvent() { - @SerializedName("centerRoad") - var centerRoad: CenterRoad?, + override fun toString(): String { + return "RoadAI(type=$type, data=$data)" + } + } - @SerializedName("radius") - var radius: Double, + /** + * 短链-道路标记事件 + */ + class Marker(val data: V2XMarkerResponse): V2XEvent() { - @SerializedName("poiType") - var poiType: String?, + override fun toString(): String { + return "Marker(data=$data)" + } + } - @SerializedName("coordinateType") - var coordinateType:Int? = null -) + /** + * 长链-道路事件扩展数据结构 + */ + class RoadEventX(val type: Int = 70001, val data: V2XRoadXData): V2XEvent() { -@Keep -data class Center( - @SerializedName("lat") - var lat: Double, - - @SerializedName("lon") - var lon: Double -) - -@Keep -data class CenterRoad( - @SerializedName("bearing") - var bearing: Double, - - @SerializedName("laneNo") - var laneNo: Long, - - @SerializedName("roadId") - var roadId: String?, - - @SerializedName("roadName") - var roadName: String?, - - @SerializedName("tileId") - var tileId: Long -) \ No newline at end of file + override fun toString(): String { + return "RoadEventX(type=$type, data=$data)" + } + } +} diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/road/V2XEventResult.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEventResult.kt similarity index 87% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/road/V2XEventResult.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEventResult.kt index 7a98c26ab4..8d444bedc0 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/road/V2XEventResult.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEventResult.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.road +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep @@ -15,11 +15,11 @@ data class V2XEventResult ( @Keep data class Result( @SerializedName("eventList") - var v2XEventList: List? + var v2XEventList: List? ) @Keep -data class V2XEvent( +data class V2XEventData( @SerializedName("receiveTime") var receiveTime: Long, @@ -33,7 +33,7 @@ data class V2XEvent( var center: Center?, @SerializedName("centerRoad") - var centerRoad: CenterRoad?, + var centerRoad: CenterRoadData?, @SerializedName("radius") var radius: Double, @@ -55,7 +55,7 @@ data class Center( ) @Keep -data class CenterRoad( +data class CenterRoadData( @SerializedName("bearing") var bearing: Double, diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XLocation.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XLocation.kt similarity index 87% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XLocation.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XLocation.kt index 3ce50a38f0..9b09a721c6 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XLocation.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XLocation.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep import java.io.Serializable diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XMarkerCardResult.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XMarkerCardResult.kt similarity index 99% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XMarkerCardResult.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XMarkerCardResult.kt index a486687d10..df4a3c2f5e 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XMarkerCardResult.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XMarkerCardResult.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep import com.mogo.eagle.core.data.map.entity.MarkerExploreWay diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XMarkerResponse.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XMarkerResponse.kt similarity index 80% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XMarkerResponse.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XMarkerResponse.kt index 790bd71b0a..ee36ee0c9b 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XMarkerResponse.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XMarkerResponse.kt @@ -1,8 +1,7 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep import com.elegant.network.BaseResp -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerCardResult import java.io.Serializable @Keep diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XOptimalRoute.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XOptimalRoute.kt similarity index 89% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XOptimalRoute.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XOptimalRoute.kt index dd27d302af..414b29895e 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XOptimalRoute.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XOptimalRoute.kt @@ -1,7 +1,6 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep -import com.mogo.eagle.core.function.v2x.internal.data.V2XLocation import java.io.Serializable /** diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XRoadXEvent.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XRoadXEvent.kt similarity index 95% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XRoadXEvent.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XRoadXEvent.kt index a692c2dfa7..08882f868a 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XRoadXEvent.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XRoadXEvent.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XWarningTarget.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XWarningTarget.kt similarity index 96% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XWarningTarget.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XWarningTarget.kt index 8173032600..0dcecfaa99 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XWarningTarget.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XWarningTarget.kt @@ -1,7 +1,6 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep -import com.mogo.eagle.core.function.v2x.internal.data.V2XLocation import java.io.Serializable /** diff --git a/core/function-impl/mogo-core-function-v2x/src/main/proto/road.proto b/core/mogo-core-data/src/main/proto/road.proto similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/proto/road.proto rename to core/mogo-core-data/src/main/proto/road.proto diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IFuncBizProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IFuncBizProvider.kt similarity index 65% rename from core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IFuncBizProvider.kt rename to core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IFuncBizProvider.kt index d25c01434a..594d2cbfeb 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IFuncBizProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IFuncBizProvider.kt @@ -1,7 +1,7 @@ -package com.mogo.eagle.core.function.api.v2x +package com.mogo.eagle.core.function.api.biz import com.mogo.eagle.core.data.map.Infrastructure -import com.mogo.eagle.core.data.v2x.V2XEvent +import com.mogo.eagle.core.data.v2x.V2XEventData interface IFuncBizProvider { /** @@ -12,5 +12,5 @@ interface IFuncBizProvider { /** * 根据lineId获取整条道路的V2X事件 */ - fun onV2XEvents(v2xEvents: List?) {} + fun onV2XEvents(v2XEventData: List?) {} } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/cloud/IMoGoCloudListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/cloud/IMoGoCloudListener.kt index 89cf1c82cc..ac98d5713f 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/cloud/IMoGoCloudListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/cloud/IMoGoCloudListener.kt @@ -1,6 +1,25 @@ package com.mogo.eagle.core.function.api.cloud -interface IMoGoCloudListener { +import com.mogo.eagle.core.data.v2x.V2XEvent - fun tokenGot(token: String, sn: String) +interface IMoGoCloudListener{ + + fun tokenGot(token: String, sn: String){} + + /** + * 获取到V2X事件成功回调 + * @param event + * - 参数说明:目前此参数支持以下类型 + * - [V2XEvent.ForwardsWarning]: 路口碰撞预警、盲区预警等预警事件, 数据实体取自[V2XEvent.ForwardsWarning.data] + * - [V2XEvent.Road]: 道路事件, 数据实体取自[V2XEvent.Road.data] + * - [V2XEvent.Warning]: 预警目标物事件, 数据实体取自[V2XEvent.Warning.data] + * - [V2XEvent.Marker]: 道路标记事件, 数据实体取自[V2XEvent.Marker.data] + */ + fun onAck(event: V2XEvent){} + + /** + * V2X事件获取过程中,出现的异常信息,用于问题排查 + * @param msg 异常信息 + */ + fun onFail(msg: String){} } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxEventListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxEventListener.kt similarity index 91% rename from core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxEventListener.kt rename to core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxEventListener.kt index 8cd6469ae6..b6568d1187 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxEventListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxEventListener.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.api.msgbox +package com.mogo.eagle.core.function.api.datacenter.msgbox import com.mogo.eagle.core.data.msgbox.MsgBoxBean diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxListener.kt similarity index 82% rename from core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxListener.kt rename to core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxListener.kt index f09b416e68..bcd01a377e 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxListener.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.api.msgbox +package com.mogo.eagle.core.function.api.datacenter.msgbox import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgCategory diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxProvider.kt similarity index 93% rename from core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxProvider.kt rename to core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxProvider.kt index 9dbac58bbd..78007ffe72 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxProvider.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.api.msgbox +package com.mogo.eagle.core.function.api.datacenter.msgbox import android.content.Context import com.mogo.eagle.core.data.msgbox.MsgBoxBean diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/ILimitingVelocityListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/ILimitingVelocityListener.kt similarity index 82% rename from core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/ILimitingVelocityListener.kt rename to core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/ILimitingVelocityListener.kt index c47ab242d8..425d43aa73 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/ILimitingVelocityListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/ILimitingVelocityListener.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.api.v2x +package com.mogo.eagle.core.function.api.datacenter.union import com.mogo.eagle.core.data.enums.DataSourceType diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IMoGoTrafficLightListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/IMoGoTrafficLightListener.kt similarity index 96% rename from core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IMoGoTrafficLightListener.kt rename to core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/IMoGoTrafficLightListener.kt index 216a936e78..195217b4ae 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IMoGoTrafficLightListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/IMoGoTrafficLightListener.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.api.v2x +package com.mogo.eagle.core.function.api.datacenter.union import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt index 7fd0976c7e..1edd553d64 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt @@ -16,7 +16,7 @@ import com.mogo.eagle.core.utilcode.util.TimeUtils */ object CallerChassisLocationGCJ02ListenerManager : CallerBase() { - val TAG = "CallerChassisLocationGCJ20ListenerManager" + private const val TAG = "CallerChassisLocationGCJ20ListenerManager" @Volatile private var mGnssInfo: MogoLocation? = null @@ -36,6 +36,8 @@ object CallerChassisLocationGCJ02ListenerManager : CallerBase() { @@ -24,10 +24,10 @@ object CallerFuncBizListenerManager: CallerBase() { } @MainThread - fun invokeV2XEvents(v2xEvents: List?) { + fun invokeV2XEvents(v2XEventData: List?) { M_LISTENERS.forEach { val listener = it.value - listener.onV2XEvents(v2xEvents) + listener.onV2XEvents(v2XEventData) } } } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/cloud/CallerCloudListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/cloud/CallerCloudListenerManager.kt index ca770c35ca..bed5a7977a 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/cloud/CallerCloudListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/cloud/CallerCloudListenerManager.kt @@ -1,61 +1,26 @@ package com.mogo.eagle.core.function.call.cloud +import com.mogo.eagle.core.data.v2x.V2XEvent import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener -import java.util.concurrent.ConcurrentHashMap +import com.mogo.eagle.core.function.call.base.CallerBase -object CallerCloudListenerManager { - - private val M_CLOUD_LISTENER: ConcurrentHashMap = - ConcurrentHashMap() - - /** - * 添加监听 - * @param tag 标记,用来注销监听使用 - * @param listener 监听回调 - */ - fun registerCloudListener( - tag: String, - listener: IMoGoCloudListener - ) { - if (M_CLOUD_LISTENER.containsKey(tag)) { - return - } - M_CLOUD_LISTENER[tag] = listener - } - - /** - * 删除监听 - * @param tag 标记,用来注销监听使用 - */ - fun unRegisterCloudListener(tag: String) { - if (!M_CLOUD_LISTENER.containsKey(tag)) { - return - } - M_CLOUD_LISTENER.remove(tag) - } - - /** - * 删除监听 - * @param listener 要删除的监听对象 - */ - fun unRegisterCloudListener(listener: IMoGoCloudListener) { - if (!M_CLOUD_LISTENER.containsValue(listener)) { - return - } - M_CLOUD_LISTENER.forEach { - if (it.value == listener) { - M_CLOUD_LISTENER.remove(it.key) - } - } - } +object CallerCloudListenerManager : CallerBase() { /** * 分发获取到的设备sn */ fun invokeCloudTokenGot(token: String, sn: String) { - M_CLOUD_LISTENER.forEach { + M_LISTENERS.forEach { val listener = it.value listener.tokenGot(token, sn) } } + + fun invokeSocketAck(event: V2XEvent) { + M_LISTENERS.forEach { + val listener = it.value + listener.onAck(event) + } + } + } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt index 1b2f35eff9..00b48eddf3 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt @@ -14,9 +14,6 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler * 小地图调用者管理,这里对外及其他模块提供小地图功能的调用,用啥写啥,不要过度设计,不允许直接将Provider暴露出去 */ object CallerSmpManager : CallerBase() { -// private val mogoSmallMapProvider: IMogoSmallMapProvider -// get() = ARouter.getInstance().build(MoGoFragmentPaths.PATH_FRAGMENT_SMP) -// .navigation() as IMogoSmallMapProvider private val v2xProvider: IV2XEventProvider get() = ARouter.getInstance().build(MogoServicePaths.PATH_V2X_MODULE) diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxEventListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxEventListenerManager.kt index 35470b458f..bc761537ec 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxEventListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxEventListenerManager.kt @@ -1,10 +1,8 @@ package com.mogo.eagle.core.function.call.msgbox -import androidx.annotation.Nullable import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener import com.mogo.eagle.core.function.call.base.CallerBase -import java.util.concurrent.ConcurrentHashMap /** * @author XuXinChao diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxListenerManager.kt index 3117b859a5..ba89cc5e6d 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxListenerManager.kt @@ -2,7 +2,7 @@ package com.mogo.eagle.core.function.call.msgbox import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgCategory -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener import com.mogo.eagle.core.function.call.base.CallerBase /** diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt index ba2b039546..0bcd26be6a 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt @@ -3,7 +3,7 @@ package com.mogo.eagle.core.function.call.msgbox import android.content.Context import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxProvider +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxProvider import com.mogo.eagle.core.function.call.base.CallerBase object CallerMsgBoxManager { diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerLimitingVelocityListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerLimitingVelocityListenerManager.kt index a31d075db4..4c8811e2a1 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerLimitingVelocityListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerLimitingVelocityListenerManager.kt @@ -1,7 +1,7 @@ package com.mogo.eagle.core.function.call.v2x import com.mogo.eagle.core.data.enums.DataSourceType -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener +import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener import com.mogo.eagle.core.function.call.base.CallerBase /** diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerTrafficLightListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerTrafficLightListenerManager.kt index 60e4cd4e78..b463b1400c 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerTrafficLightListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerTrafficLightListenerManager.kt @@ -3,7 +3,7 @@ package com.mogo.eagle.core.function.call.v2x import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum import com.mogo.eagle.core.data.trafficlight.TrafficLightResult -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.base.CallerBase object CallerTrafficLightListenerManager : CallerBase() {