From 06df5b98ddc0fe57ed2c3cd6c371bc551f6dd4f3 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Mon, 20 Feb 2023 22:14:08 +0800 Subject: [PATCH 01/30] [2.13.0-arch-opt] update aiCloudsdk version --- .../passenger/model/BusPassengerModel.java | 2 +- .../com/mogo/och/bus/model/BusOrderModel.java | 2 +- .../utils/CoordinateCalculateRouteUtil.java | 2 +- .../och/sweeper/model/SweeperOrderModel.java | 2 +- .../passenger/model/TaxiPassengerModel.java | 2 +- .../com/mogo/och/taxi/model/TaxiModel.java | 2 +- .../biz/dispatch/DispatchAutoPilotManager.kt | 2 +- .../notice/network/NoticeNetWorkManager.java | 1 - .../manager/impl/MoGoV2XMarkerManager.java | 2 +- .../biz/v2x/v2n/remove/MarkerRemoveManager.kt | 2 +- .../v2n/scenario/scene/airoad/AiRoadMarker.kt | 2 +- .../scene/warning/V2XWarningMarker.java | 2 +- .../ui/notice/traffic/NoticeTrafficDialog.kt | 2 +- .../function/business/identify/TrackObj.java | 2 +- .../impl/marker/drawer/MarkerDrawer.java | 2 +- .../core/function/smp/MarkerDrawerManager.kt | 2 +- .../core/function/smp/view/SmallMapView.kt | 2 +- .../core/utilcode/util/CoordinateUtils.java | 132 ++++++++++++++++++ gradle.properties | 18 +-- .../mogo/map/utils/PointInterpolatorUtil.java | 2 +- 20 files changed, 158 insertions(+), 27 deletions(-) create mode 100644 core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/CoordinateUtils.java diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index 1d1af8189c..3167458fd6 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -15,7 +15,6 @@ import androidx.annotation.Nullable; import com.amap.api.maps.model.LatLng; import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.module.intent.IMogoIntentListener; import com.mogo.commons.module.intent.IntentManager; @@ -35,6 +34,7 @@ import com.mogo.eagle.core.network.utils.GsonUtil; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.och.bus.passenger.R; diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java index 041657e1a7..2e21bd4ea7 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java @@ -16,7 +16,6 @@ import com.alibaba.android.arouter.launcher.ARouter; import com.amap.api.maps.model.LatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.IMogoOnMessageListener; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; @@ -33,6 +32,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java index b09a1dbc29..9ba9f943fd 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java @@ -5,9 +5,9 @@ import android.location.Location; import com.amap.api.maps.CoordinateConverter; import com.amap.api.maps.model.LatLng; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import java.util.ArrayList; import java.util.HashMap; diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperOrderModel.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperOrderModel.java index fc5b4c548e..2754b324a4 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperOrderModel.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperOrderModel.java @@ -10,7 +10,6 @@ import androidx.annotation.Nullable; import com.amap.api.maps.model.LatLng; import com.elegant.network.utils.GsonUtil; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; @@ -28,6 +27,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84Lis import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; 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 8f52315f09..bfef8a0271 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 @@ -14,7 +14,6 @@ import com.amap.api.maps.model.LatLng; import com.amap.api.navi.model.NaviLatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.module.intent.IMogoIntentListener; import com.mogo.commons.module.intent.IntentManager; @@ -41,6 +40,7 @@ import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManag import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index 188faf6027..8fd06b5aa6 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -16,7 +16,6 @@ import com.alibaba.android.arouter.launcher.ARouter; import com.amap.api.maps.model.LatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.IMogoOnMessageListener; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.module.intent.IMogoIntentListener; import com.mogo.commons.module.intent.IntentManager; import com.mogo.commons.module.status.IMogoStatusChangedListener; @@ -36,6 +35,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02Lis import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt index 78070b1ec4..c7c48c012e 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt @@ -5,7 +5,6 @@ import android.os.Handler import android.os.Message import com.mogo.aicloud.services.socket.IMogoOnMessageListener import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager -import com.mogo.cloud.commons.utils.CoordinateUtils import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters import com.mogo.eagle.core.data.autopilot.AutopilotRouteInfo import com.mogo.eagle.core.data.dispatch.DispatchAdasAutoPilotLocReceiverBean @@ -21,6 +20,7 @@ import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager 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.CoordinateUtils import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Companion.DISPATCH_RESULT_AFFIRM import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Companion.DISPATCH_RESULT_MANUAL_CANCEL import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Companion.DISPATCH_RESULT_TIMER_CANCEL diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/notice/network/NoticeNetWorkManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/notice/network/NoticeNetWorkManager.java index 7234f941ad..9ea866b68c 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/notice/network/NoticeNetWorkManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/notice/network/NoticeNetWorkManager.java @@ -2,7 +2,6 @@ package com.mogo.eagle.function.biz.notice.network; import android.util.ArrayMap; -import com.mogo.cloud.network.NetConstants; import com.mogo.cloud.network.RetrofitFactory; import com.mogo.cloud.passport.MoGoAiCloudClient; import com.mogo.commons.constants.HostConst; diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoV2XMarkerManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoV2XMarkerManager.java index b8d394e893..006662d122 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoV2XMarkerManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoV2XMarkerManager.java @@ -6,7 +6,6 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_V2X import android.content.Context; import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.eagle.core.data.enums.EventTypeEnumNew; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.data.map.MogoLocation; @@ -22,6 +21,7 @@ import com.mogo.eagle.function.biz.v2x.v2n.marker.V2XMarkerAdapter; import com.mogo.eagle.function.biz.v2x.v2n.utils.MapUtils; import com.mogo.eagle.core.data.v2x.V2XMarkerCardResult; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.marker.MogoMarkerOptions; diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt index cc40d5d4ff..ee8a0c7372 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt @@ -3,10 +3,10 @@ package com.mogo.eagle.function.biz.v2x.v2n.remove import android.os.Handler import android.os.HandlerThread import android.util.Log -import com.mogo.cloud.commons.utils.CoordinateUtils import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager +import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils import com.mogo.map.marker.IMogoMarker import com.mogo.map.overlay.IMogoPolyline diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt index 91f0bbbf7a..279ec76a4e 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt @@ -6,7 +6,6 @@ import android.os.Handler import android.os.Looper import android.view.animation.DecelerateInterpolator import androidx.core.util.Pair -import com.mogo.cloud.commons.utils.* import com.mogo.eagle.core.data.map.MogoLatLng import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity import com.mogo.eagle.core.function.call.autopilot.* @@ -22,6 +21,7 @@ import java.util.concurrent.atomic.AtomicReference import java.util.concurrent.ConcurrentHashMap import com.mogo.eagle.function.biz.v2x.v2n.remove.MarkerRemoveManager import com.mogo.eagle.function.biz.v2x.v2n.remove.MarkerWrapper +import com.mogo.eagle.core.utilcode.util.CoordinateUtils /** * Ai云道路施工事件,道路颜色标记类 diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XWarningMarker.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XWarningMarker.java index 8ad6643354..1fcf53c350 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XWarningMarker.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XWarningMarker.java @@ -4,7 +4,6 @@ import static com.mogo.eagle.core.data.constants.DataTypes.TYPE_MARKER_CLOUD_STO import static com.mogo.eagle.core.data.constants.DataTypes.TYPE_MARKER_CLOUD_WARN_DATA; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_V2X; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.module.status.MogoStatusManager; import com.mogo.commons.utils.Trigonometric; @@ -22,6 +21,7 @@ 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.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.overlay.IMogoPolyline; diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/NoticeTrafficDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/NoticeTrafficDialog.kt index 0b1490ef68..732f534784 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/NoticeTrafficDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/NoticeTrafficDialog.kt @@ -8,7 +8,6 @@ import android.widget.TextView import androidx.lifecycle.LifecycleObserver import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.StaggeredGridLayoutManager -import com.mogo.cloud.commons.utils.CoordinateUtils import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.module.status.IMogoStatusChangedListener import com.mogo.commons.module.status.MogoStatusManager @@ -31,6 +30,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.BitmapHelper +import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.DateTimeUtils import com.mogo.eagle.core.widget.media.video.NoticeSimpleSmallVideoPlayer import com.shuyu.gsyvideoplayer.GSYVideoManager diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java index 512ef7bc19..0a1d3829b7 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java @@ -4,12 +4,12 @@ import static com.mogo.eagle.core.function.business.identify.TrackManager.LIMIT_ import android.annotation.SuppressLint; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.eagle.core.data.enums.TrafficTypeEnum; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.geometry.S2CellId; import com.mogo.eagle.core.utilcode.geometry.S2LatLng; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import java.util.Arrays; import java.util.Comparator; diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/marker/drawer/MarkerDrawer.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/marker/drawer/MarkerDrawer.java index 7195182391..30e4103320 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/marker/drawer/MarkerDrawer.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/marker/drawer/MarkerDrawer.java @@ -2,7 +2,6 @@ package com.mogo.eagle.core.function.impl.marker.drawer; import android.text.TextUtils; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.module.status.MogoStatusManager; import com.mogo.eagle.core.data.enums.EventTypeEnumNew; @@ -16,6 +15,7 @@ import com.mogo.eagle.core.function.impl.marker.view.EmptyMarkerView; import com.mogo.eagle.core.function.impl.marker.view.IMarkerView; import com.mogo.eagle.core.function.impl.marker.view.MapMarkerAdapter; import com.mogo.eagle.core.function.impl.marker.view.OnlineCarMarkerView; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.map.MogoMarkerManager; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt index 9ce14cf8ba..f78a2c274e 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt @@ -4,7 +4,7 @@ import android.content.Context import android.util.Log import com.amap.api.maps.CoordinateConverter import com.amap.api.maps.model.LatLng -import com.mogo.cloud.commons.utils.CoordinateUtils +import com.mogo.eagle.core.utilcode.util.CoordinateUtils import io.reactivex.Observable import io.reactivex.ObservableOnSubscribe import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/SmallMapView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/SmallMapView.kt index a452a17994..3578eb3ce4 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/SmallMapView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/SmallMapView.kt @@ -10,7 +10,6 @@ import android.widget.RelativeLayout import androidx.annotation.UiThread import com.amap.api.maps.* import com.amap.api.maps.model.* -import com.mogo.cloud.commons.utils.CoordinateUtils import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.map.MogoLatLng @@ -27,6 +26,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.MapAssetStyleUtils 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.CoordinateUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import mogo.telematics.pad.MessagePad import kotlin.math.floor diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/CoordinateUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/CoordinateUtils.java new file mode 100644 index 0000000000..ffe4576d6d --- /dev/null +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/CoordinateUtils.java @@ -0,0 +1,132 @@ +package com.mogo.eagle.core.utilcode.util; + +import org.jetbrains.annotations.NotNull; + +import java.math.BigDecimal; + +/** + * @author donghongyu + */ +public class CoordinateUtils { + + /** + * @param lon1 + * @param lat1 + * @param lon2 + * @param lat2 + * @return 两坐标的距离 单位:米(M) + */ + public static float calculateLineDistance( double lon1, double lat1, double lon2, double lat2 ) { + try { + double var2 = lon1; + double var4 = lat1; + double var6 = lon2; + double var8 = lat2; + var2 *= 0.01745329251994329D; + var4 *= 0.01745329251994329D; + var6 *= 0.01745329251994329D; + var8 *= 0.01745329251994329D; + double var10 = Math.sin( var2 ); + double var12 = Math.sin( var4 ); + double var14 = Math.cos( var2 ); + double var16 = Math.cos( var4 ); + double var18 = Math.sin( var6 ); + double var20 = Math.sin( var8 ); + double var22 = Math.cos( var6 ); + double var24 = Math.cos( var8 ); + double[] var28 = new double[3]; + double[] var29 = new double[3]; + var28[0] = var16 * var14; + var28[1] = var16 * var10; + var28[2] = var12; + var29[0] = var24 * var22; + var29[1] = var24 * var18; + var29[2] = var20; + return ( float ) ( Math.asin( Math.sqrt( ( var28[0] - var29[0] ) * ( var28[0] - var29[0] ) + ( var28[1] - var29[1] ) * ( var28[1] - var29[1] ) + ( var28[2] - var29[2] ) * ( var28[2] - var29[2] ) ) / 2.0D ) * 1.27420015798544E7D ); + } catch ( Throwable var26 ) { + var26.printStackTrace(); + return 0.0F; + } + } + + + // ------ + private static final double x_PI = 52.35987755982988D; + private static final double PI = 3.141592653589793D; + private static final double a = 6378245.0D; + private static final double ee = 0.006693421622965943D; + + public static final boolean outOfChina( double lat, double lng ) { + return lng <= 73.66D || lng >= 135.05D || lat <= 3.86D || lat >= 53.55D; + } + + private static final double transformLat( double lng, double lat ) { + double ret = -100.0D + 2.0D * lng + 3.0D * lat + 0.2D * lat * lat + 0.1D * lng * lat + 0.2D * Math.sqrt( Math.abs( lng ) ); + ret += ( 20.0D * Math.sin( 6.0D * lng * 3.141592653589793D ) + 20.0D * Math.sin( 2.0D * lng * 3.141592653589793D ) ) * 2.0D / 3.0D; + ret += ( 20.0D * Math.sin( lat * 3.141592653589793D ) + 40.0D * Math.sin( lat / 3.0D * 3.141592653589793D ) ) * 2.0D / 3.0D; + ret += ( 160.0D * Math.sin( lat / 12.0D * 3.141592653589793D ) + ( double ) 320 * Math.sin( lat * 3.141592653589793D / 30.0D ) ) * 2.0D / 3.0D; + return ret; + } + + private static final double transformLon( double lng, double lat ) { + double ret = 300.0D + lng + 2.0D * lat + 0.1D * lng * lng + 0.1D * lng * lat + 0.1D * Math.sqrt( Math.abs( lng ) ); + ret += ( 20.0D * Math.sin( 6.0D * lng * 3.141592653589793D ) + 20.0D * Math.sin( 2.0D * lng * 3.141592653589793D ) ) * 2.0D / 3.0D; + ret += ( 20.0D * Math.sin( lng * 3.141592653589793D ) + 40.0D * Math.sin( lng / 3.0D * 3.141592653589793D ) ) * 2.0D / 3.0D; + ret += ( 150.0D * Math.sin( lng / 12.0D * 3.141592653589793D ) + 300.0D * Math.sin( lng / 30.0D * 3.141592653589793D ) ) * 2.0D / 3.0D; + return ret; + } + + @NotNull + // World Geodetic System ==> Mars Geodetic System + public static final double[] transformWgsToGcj( double wgLat, double wgLon ) { + double[] point = new double[2]; + if ( outOfChina( wgLat, wgLon ) ) { + point[0] = wgLon; + point[1] = wgLat; + return point; + } else { + double dLat = transformLat( wgLon - 105.0D, wgLat - 35.0D ); + double dLon = transformLon( wgLon - 105.0D, wgLat - 35.0D ); + double radLat = wgLat / 180.0D * 3.141592653589793D; + double magic = Math.sin( radLat ); + magic = ( double ) 1 - 0.006693421622965943D * magic * magic; + double sqrtMagic = Math.sqrt( magic ); + dLat = dLat * 180.0D / ( 6335552.717000426D / ( magic * sqrtMagic ) * 3.141592653589793D ); + dLon = dLon * 180.0D / ( 6378245.0D / sqrtMagic * Math.cos( radLat ) * 3.141592653589793D ); + double mgLat = wgLat + dLat; + double mgLon = wgLon + dLon; + point[0] = dealRound( mgLon ); + point[1] = dealRound( mgLat ); + return point; + } + } + + @NotNull + public static final double[] transformGcj02toWgs84( double lat, double lng ) { + double[] var10000; + if ( outOfChina( lat, lng ) ) { + var10000 = new double[]{lng, lat}; + } else { + double dlat = transformLat( lng - 105.0D, lat - 35.0D ); + double dlng = transformLon( lng - 105.0D, lat - 35.0D ); + double radlat = lat / 180.0D * 3.141592653589793D; + double magic = Math.sin( radlat ); + magic = ( double ) 1 - 0.006693421622965943D * magic * magic; + double sqrtmagic = Math.sqrt( magic ); + dlat = dlat * 180.0D / ( 6335552.717000426D / ( magic * sqrtmagic ) * 3.141592653589793D ); + dlng = dlng * 180.0D / ( 6378245.0D / sqrtmagic * Math.cos( radlat ) * 3.141592653589793D ); + double mglat = lat + dlat; + double mglng = lng + dlng; + var10000 = new double[]{dealRound( lng * ( double ) 2 - mglng ), dealRound( lat * ( double ) 2 - mglat )}; + } + + return var10000; + } + + private static final double dealRound( double value ) { + BigDecimal bg = new BigDecimal( value ); + double result = bg.setScale( 6, 4 ).doubleValue(); + return result; + } + +} diff --git a/gradle.properties b/gradle.properties index dd72d41281..d9fedbc60f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -66,23 +66,23 @@ SERVICE_BIZ_VERSION=1.2.4 LOGLIB_VERSION=1.5.10 ######## MogoAiCloudSDK Version ######## # 网络请求LOGLIB_VERSION -MOGO_NETWORK_VERSION=1.4.4.2 +MOGO_NETWORK_VERSION=1.4.4.4 # 鉴权 -MOGO_PASSPORT_VERSION=1.4.4.2 +MOGO_PASSPORT_VERSION=1.4.4.4 # 常链接 -MOGO_SOCKET_VERSION=1.4.4.2 +MOGO_SOCKET_VERSION=1.4.4.4 # 数据采集 -MOGO_REALTIME_VERSION=1.4.4.2 +MOGO_REALTIME_VERSION=1.4.4.4 # 探路,道路事件发布,获取 -MOGO_TANLU_VERSION=1.4.4.2 +MOGO_TANLU_VERSION=1.4.4.4 # 直播推流 -MOGO_LIVE_VERSION=1.4.4.2 +MOGO_LIVE_VERSION=1.4.4.4 # 直播拉流 -MOGO_TRAFFICLIVE_VERSION=1.4.4.2 +MOGO_TRAFFICLIVE_VERSION=1.4.4.4 # 定位服务 -MOGO_LOCATION_VERSION=1.4.4.2 +MOGO_LOCATION_VERSION=1.4.4.4 # 远程通讯模块 -MOGO_TELEMATIC_VERSION=1.4.4.2 +MOGO_TELEMATIC_VERSION=1.4.4.4 ######## MogoAiCloudSDK Version ######## # 自研地图 MAP_SDK_VERSION=2.10.0.2_test_01 diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/utils/PointInterpolatorUtil.java b/libraries/mogo-map/src/main/java/com/mogo/map/utils/PointInterpolatorUtil.java index 063da4fb7c..a985d9b90c 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/utils/PointInterpolatorUtil.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/utils/PointInterpolatorUtil.java @@ -1,9 +1,9 @@ package com.mogo.map.utils; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.eagle.core.data.map.LonLatPoint; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import java.util.ArrayList; import java.util.List; From 82b8a08320130b95d21e092603e1511bfe04b6ca Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Tue, 21 Feb 2023 10:30:53 +0800 Subject: [PATCH 02/30] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96obu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/v2x/obu/V2xObuEventManager.kt | 5 +- .../datacenter/obu/MogoObuDcCombineManager.kt | 112 ++++++++---------- .../obu/MogoPrivateObuNewManager.kt | 31 ++--- .../api/obu/IMoGoObuSaveMessageListener.kt | 6 +- .../CallerObuSaveMessageListenerManager.kt | 5 +- 5 files changed, 69 insertions(+), 90 deletions(-) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt index 7677124647..85f54b0207 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt @@ -13,7 +13,6 @@ import com.mogo.eagle.core.function.call.obu.CallerObuSaveMessageListenerManager * 处理obu分发出来,在消息盒子展示的消息 */ object V2xObuEventManager : IMoGoObuSaveMessageListener { - private const val TAG = "V2xObuEventManager" fun init(context: Context) { @@ -33,7 +32,7 @@ object V2xObuEventManager : IMoGoObuSaveMessageListener { * @param content 事件内容 * @param tts 事件语音播报 */ - override fun onMoGoObuSaveMessage(type: String, content: String, tts: String) { + override fun onMoGoObuSaveMessage(type: String, content: String, tts: String, source: DataSourceType) { CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.V2X, @@ -43,7 +42,7 @@ object V2xObuEventManager : IMoGoObuSaveMessageListener { tts ) ).apply { - sourceType = DataSourceType.OBU + sourceType = source } ) } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt index f76929ab06..4eb626a00a 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt @@ -16,19 +16,16 @@ import com.mogo.eagle.core.function.api.obu.IMoGoObuWarningSpatListener import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager -import com.mogo.eagle.core.function.call.obu.CallerObuMapMathListenerManager -import com.mogo.eagle.core.function.call.obu.CallerObuWarningRsiListenerManager -import com.mogo.eagle.core.function.call.obu.CallerObuWarningRsmListenerManager -import com.mogo.eagle.core.function.call.obu.CallerObuWarningSpatListenerManager +import com.mogo.eagle.core.function.call.obu.* import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager +import com.mogo.eagle.core.function.datacenter.obu.utils.TrafficDataConvertUtilsNew import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU import com.mogo.support.obu.ObuScene import com.mogo.support.obu.constants.MogoObuConstants import kotlin.math.roundToInt - /** * * @author lixiaopeng @@ -78,7 +75,6 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener onMogoObuMapMath(mapMatchData) } - /** * RSI预警信息 CvxRtiThreatIndInfo(交通标志预警(前方限速、前方学校等等),交通事件预警(前方拥堵、前方积水等等)) */ @@ -140,9 +136,6 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener //车内标牌 MogoObuConstants.RSI_SCENE_TYPE.IVS.toString() -> { when (rsiWarningData.warningMsgList[0].signSerialNum) { -// MogoObuConstants.RTS.RTI_TYPE_INTERSECTION -> { //十字路口 -// appId = V2iEventTypeEnum.TYPE_ID_NTERSECTION.poiType -// } MogoObuConstants.RTS.RTI_TYPE_SHAPR_TURNS -> { //急转弯 appId = EventTypeEnumNew.TYPE_ID_SHAPR_TURNS.poiType } @@ -191,10 +184,6 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener MogoObuConstants.RTS.RTI_TYPE_SPEED_LIMIT -> { //限速 appId = EventTypeEnumNew.TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType } -// MogoObuConstants.RTS.RTI_TYPE_GO_STRAIGHT_TURN_RIGHT -> { //直行或右转 -// appId = -// EventTypeEnumNew.TYPE_USECASE_ID_GO_STRAIGHT_TURN_RIGHT.poiType -// } MogoObuConstants.RTS.RTI_TYPE_BUS_WARNING -> { //公交提醒 appId = EventTypeEnumNew.TYPE_USECASE_ID_BUS_WARNING.poiType } @@ -296,25 +285,50 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener ) // 交通参与者类型 0x0:未知 UNKNOWN | 1机动车 2:非机动车 NON_MOTOR | 3:行人 PEDESTRIAN 4:obu if (rsmWarningData != null && rsmWarningData.participant != null) { - var v2xType = "" - if (rsmWarningData.participant.ptcType == 1) { //机动车 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType + var v2xType = if (rsmWarningData.participant.ptcType == 1) { //机动车 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType } else if (rsmWarningData.participant.ptcType == 2) { //非机动车 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType } else if (rsmWarningData.participant.ptcType == 3) { //行人 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType } else { //未知 - v2xType = EventTypeEnumNew.TYPE_ERROR.poiType + EventTypeEnumNew.TYPE_ERROR.poiType } val ttsContent = EventTypeEnumNew.getWarningTts(v2xType) val alertContent = EventTypeEnumNew.getWarningContent(v2xType) var level = -1 - val direction = - getMessageDirection(rsmWarningData.participant.targetPosition) //TODO 只有一个 + val direction = getMessageDirection(rsmWarningData.participant.targetPosition) + //模型的显示 + when (rsmWarningData.status) { + MogoObuConstants.STATUS.ADD -> { // 添加 + // 更新数据,模型变色的时候是不是update,如果不是更新,可能导致模型不变色,(add的时候,是否有level高的) TODO + TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(rsmWarningData) + ?.let { + CallerMapUIServiceManager.getMarkerService() + ?.updateITrafficThreatLevelInfo(it) + } + } + + MogoObuConstants.STATUS.UPDATE -> { // 更新 + } + + MogoObuConstants.STATUS.DELETE -> { // 删除 + // 更新数据 TODO 删除原来的,改变颜色,删除marker。不影响别的模型添加 + TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(rsmWarningData) + ?.let { + // 事件结束,还原交通参与者颜色 + it.threatLevel = 0x01 + CallerMapUIServiceManager.getMarkerService() + ?.updateITrafficThreatLevelInfo(it) + } + + //删除弱势交通元素 + CallerMapUIServiceManager.getMarkerService() + ?.removeCvxRvInfoIndInfo(rsmWarningData.participant.ptcId.toString()) + } + } + if (rsmWarningData.warningMsg != null && rsmWarningData.warningMsg.warningDataList != null && rsmWarningData.warningMsg.warningDataList.size > 0) { level = rsmWarningData.warningMsg.warningDataList[0].warningLevel CallerLogger.d( @@ -323,45 +337,36 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener rsmWarningData.warningMsg.warningDataList[0].status } --v2xType--- $v2xType ---alertContent = $alertContent ---ttsContent= $ttsContent" ) - when (rsmWarningData.warningMsg.warningDataList[0].status) { MogoObuConstants.STATUS.ADD -> { // 添加 + //更新模型的颜色 + TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(rsmWarningData) + ?.let { + CallerMapUIServiceManager.getMarkerService() + ?.updateITrafficThreatLevelInfo(it) + } + + if (alertContent.isEmpty() || ttsContent.isEmpty()) { + return + } saveObuToDcData(v2xType, alertContent, ttsContent) showWarning(v2xType, alertContent, ttsContent, direction) - - // 更新数据 TODO -// TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(rsmWarningData)?.let { -//// TrafficMarkerDrawer.updateITrafficThreatLevelInfo(it) -// CallerMapUIServiceManager.getMarkerService() -// ?.updateITrafficThreatLevelInfo(it) -// } } MogoObuConstants.STATUS.UPDATE -> {// 更新 } - // 删除 - MogoObuConstants.STATUS.DELETE -> { + MogoObuConstants.STATUS.DELETE -> { // 删除 // 关闭警告红边 CallerHmiManager.dismissWarning(WarningDirectionEnum.ALERT_WARNING_ALL) - // 更新数据 TODO 由于obu通过域控需要转换单位,这里临时转换,后面3.0不需要转换 -// TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(rsmWarningData)?.let { -// // 事件结束,还原交通参与者颜色 -// it.threatLevel = 0x01 -//// TrafficMarkerDrawer.updateITrafficThreatLevelInfo(it) -// CallerMapUIServiceManager.getMarkerService() -// ?.updateITrafficThreatLevelInfo(it) -// } //删除弱势交通元素 CallerMapUIServiceManager.getMarkerService() ?.removeCvxRvInfoIndInfo(rsmWarningData.participant.ptcId.toString()) -// TrafficMarkerDrawer.removeCvxRvInfoIndInfo(rsmWarningData.participantOfOne.ptcID.toString()) } } } } } - } /** @@ -383,10 +388,6 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener * 地图匹配 是OBU算法输出地图匹配结果,主车匹配道路哪条路或者哪条车道 */ fun onMogoObuMapMath(data: ObuScene.MapMatchData?) { - CallerLogger.d( - "${M_OBU}${TAG}", - "MogoObuDcCombineManager onMogoObuMapMath HmiBuildConfig.isShowObuLimitSpeedView = " + HmiBuildConfig.isShowObuLimitSpeedView - ) if (HmiBuildConfig.isShowObuLimitSpeedView) { if (data != null) { CallerLogger.d( @@ -398,7 +399,7 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener } --- data.speedMaxLimit = ${data.speedMaxLimit}" ) when (data.status) { - MogoObuConstants.STATUS.ADD -> { // 添加 TODO + MogoObuConstants.STATUS.ADD -> { // 添加 CallerLimitingVelocityListenerManager.invokeUnion( (data.speedMaxLimit * 0.02 * 3.6).roundToInt().toInt(), DataSourceType.OBU @@ -598,18 +599,7 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener * 保存obu通过工控机传输的数据到消息盒子 */ private fun saveObuToDcData(type: String, content: String, tts: String) { - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - type, - content, - tts - ) - ).apply { - sourceType = DataSourceType.TELEMATIC - } - ) + CallerObuSaveMessageListenerManager.invokeObuSaveMessage(type, content, tts, DataSourceType.TELEMATIC) } /** diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index fcba382bc8..9c814152eb 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -107,7 +107,7 @@ class MogoPrivateObuNewManager private constructor() { fun setObuLog(isChecked: Boolean) { ObuManager.getInstance().setEnableLog(isChecked) - val builder: com.mogo.support.obu.option.MogoObuLog.Builder = + val builder: MogoObuLog.Builder = MogoObuLog.newBuilder().setEnableStdio(isChecked) if (isChecked) { builder.setStdioLevel(MogoObuLogLevel.DBG) @@ -437,27 +437,19 @@ class MogoPrivateObuNewManager private constructor() { if (HmiBuildConfig.isShowObuWeaknessTrafficView) { // 交通参与者类型 0x0:未知 UNKNOWN | 1机动车 2:非机动车 NON_MOTOR | 3:行人 PEDESTRIAN 4:obu if (data != null && data.participant != null) { - var v2xType = "" - if (data.participant.ptcType == 1) { //机动车 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType + var v2xType = if (data.participant.ptcType == 1) { //机动车 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType } else if (data.participant.ptcType == 2) { //非机动车 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType } else if (data.participant.ptcType == 3) { //行人 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType } else { //未知 - v2xType = EventTypeEnumNew.TYPE_ERROR.poiType + EventTypeEnumNew.TYPE_ERROR.poiType } - val ttsContent = EventTypeEnumNew.getWarningTts(v2xType) - val alertContent = - EventTypeEnumNew.getWarningContent(v2xType) + val alertContent = EventTypeEnumNew.getWarningContent(v2xType) var level = -1 val direction = getMessageDirection(data.participant.targetPosition) - - //物体数据绘制 CallerLogger.d( "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onMogoObuRsmWarning ---- data.status = ${data.status} ---data.participant.ptcId = ${data.participant.ptcId} ---data.participant.ptcType = ${data.participant.ptcType} ---data.warningMsg = ${data.warningMsg} -----data = ${data.toString()}" @@ -745,11 +737,6 @@ class MogoPrivateObuNewManager private constructor() { v2xType = EventTypeEnumNew.TYPE_USECASE_ID_EVW.poiType } - // 这里处理固定的提示信息,包括了<紧急车辆提醒> - else -> { - // ttsContent = EventTypeEnumNew.getWarningTts(appId.toString()) - // alertContent = EventTypeEnumNew.getWarningContent(appId.toString()) - } } when (status) { @@ -830,9 +817,9 @@ class MogoPrivateObuNewManager private constructor() { MogoObuConstants.STATUS.DELETE -> { // 移除顶部弹窗 CallerTrafficLightListenerManager.disableTrafficLight() + CallerTrafficLightListenerManager.invokeTrafficLightDisapper() isShowGreenWave = false isShowRunRedLight = false - CallerTrafficLightListenerManager.invokeTrafficLightDisapper() } } } @@ -969,7 +956,7 @@ class MogoPrivateObuNewManager private constructor() { * 保存obu直连数据到消息盒子 */ private fun saveObuData(type: String, content: String, tts: String) { - CallerObuSaveMessageListenerManager.invokeObuSaveMessage(type, content, tts) + CallerObuSaveMessageListenerManager.invokeObuSaveMessage(type, content, tts, DataSourceType.OBU) } /** diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuSaveMessageListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuSaveMessageListener.kt index ec5e0531fd..03b914b51c 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuSaveMessageListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuSaveMessageListener.kt @@ -1,5 +1,7 @@ package com.mogo.eagle.core.function.api.obu +import com.mogo.eagle.core.data.enums.DataSourceType + /** * OBU 数据保存 * @author lixiaopeng @@ -11,8 +13,8 @@ interface IMoGoObuSaveMessageListener { * @param type 事件id,类似与uuid * @param content 事件内容 * @param tts 事件语音播报 - * + * @param sourceType 来源 */ - fun onMoGoObuSaveMessage(type: String, content: String, tts: String) + fun onMoGoObuSaveMessage(type: String, content: String, tts: String, sourceType: DataSourceType) } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuSaveMessageListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuSaveMessageListenerManager.kt index 3865080049..95b48fdfc7 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuSaveMessageListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuSaveMessageListenerManager.kt @@ -1,5 +1,6 @@ package com.mogo.eagle.core.function.call.obu +import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.function.api.obu.IMoGoObuSaveMessageListener import com.mogo.eagle.core.function.api.obu.IMoGoObuWarningRsiListener import com.mogo.eagle.core.function.call.base.CallerBase @@ -11,11 +12,11 @@ import com.mogo.support.obu.ObuScene */ object CallerObuSaveMessageListenerManager : CallerBase() { - fun invokeObuSaveMessage(type: String, content: String, tts: String) { + fun invokeObuSaveMessage(type: String, content: String, tts: String, sourceType: DataSourceType) { M_LISTENERS.forEach { val tag = it.key val listener = it.value - listener.onMoGoObuSaveMessage(type, content, tts) + listener.onMoGoObuSaveMessage(type, content, tts, sourceType) } } From 82c740d67d9ec1035a141ec9bc53fd7782b0e2bf Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Tue, 21 Feb 2023 10:38:40 +0800 Subject: [PATCH 03/30] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0obu=E9=80=9A=E8=BF=87=E5=B7=A5=E6=8E=A7=E6=9C=BA?= =?UTF-8?q?=E9=80=9A=E9=81=93=EF=BC=8C=E7=BA=A2=E7=BB=BF=E7=81=AF=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E7=9A=84=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datacenter/obu/MogoObuDcCombineManager.kt | 35 ++++++++----------- .../obu/MogoPrivateObuNewManager.kt | 21 ++++++----- 2 files changed, 27 insertions(+), 29 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt index 4eb626a00a..d97e5a1c5d 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt @@ -247,11 +247,6 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener MogoObuConstants.STATUS.ADD -> { saveObuToDcData(appId, alertContent, ttsContent) showWarning(appId, alertContent, ttsContent, direction) - // 更新数据,是否需要 -// TrafficDataConvertUtilsNew.cvxRtiThreatIndInfo2TrafficData(rsiWarningData)?.let { -// CallerMapUIServiceManager.getMarkerService() -// ?.updateITrafficThreatLevelInfo(it) -// } } MogoObuConstants.STATUS.UPDATE -> { // 更新 @@ -261,14 +256,6 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener MogoObuConstants.STATUS.DELETE -> { // 关闭警告红边 CallerHmiManager.dismissWarning(WarningDirectionEnum.ALERT_WARNING_NON) - // 更新数据,删除标牌? -// TrafficDataConvertUtilsNew.cvxRtiThreatIndInfo2TrafficData(rsiWarningData) -// ?.let { -// // 事件结束,还原车辆颜色 -// it.threatLevel = 0x01 -// CallerMapUIServiceManager.getMarkerService() -// ?.updateITrafficInfo(it) -// } } } } @@ -285,14 +272,19 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener ) // 交通参与者类型 0x0:未知 UNKNOWN | 1机动车 2:非机动车 NON_MOTOR | 3:行人 PEDESTRIAN 4:obu if (rsmWarningData != null && rsmWarningData.participant != null) { - var v2xType = if (rsmWarningData.participant.ptcType == 1) { //机动车 - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType - } else if (rsmWarningData.participant.ptcType == 2) { //非机动车 - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType - } else if (rsmWarningData.participant.ptcType == 3) { //行人 - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType - } else { //未知 - EventTypeEnumNew.TYPE_ERROR.poiType + var v2xType = when (rsmWarningData.participant.ptcType) { + 1 -> { //机动车 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType + } + 2 -> { //非机动车 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType + } + 3 -> { //行人 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType + } + else -> { //未知 + EventTypeEnumNew.TYPE_ERROR.poiType + } } val ttsContent = EventTypeEnumNew.getWarningTts(v2xType) val alertContent = @@ -470,6 +462,7 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener MogoObuConstants.STATUS.DELETE -> { // 移除顶部弹窗,当收不到信号的时候触发一次 CallerTrafficLightListenerManager.disableTrafficLight() + CallerTrafficLightListenerManager.invokeTrafficLightDisapper() isShowGreenWave = false isShowRunRedLight = false } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index 9c814152eb..3dcdaea07f 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -437,14 +437,19 @@ class MogoPrivateObuNewManager private constructor() { if (HmiBuildConfig.isShowObuWeaknessTrafficView) { // 交通参与者类型 0x0:未知 UNKNOWN | 1机动车 2:非机动车 NON_MOTOR | 3:行人 PEDESTRIAN 4:obu if (data != null && data.participant != null) { - var v2xType = if (data.participant.ptcType == 1) { //机动车 - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType - } else if (data.participant.ptcType == 2) { //非机动车 - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType - } else if (data.participant.ptcType == 3) { //行人 - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType - } else { //未知 - EventTypeEnumNew.TYPE_ERROR.poiType + var v2xType = when (data.participant.ptcType) { + 1 -> { //机动车 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType + } + 2 -> { //非机动车 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType + } + 3 -> { //行人 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType + } + else -> { //未知 + EventTypeEnumNew.TYPE_ERROR.poiType + } } val ttsContent = EventTypeEnumNew.getWarningTts(v2xType) val alertContent = EventTypeEnumNew.getWarningContent(v2xType) From f85af70148032c6bc74789ddb62900cde32f7e50 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 21 Feb 2023 10:40:10 +0800 Subject: [PATCH 04/30] =?UTF-8?q?[m1]=20[1.0.2]=20[=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/bus/passenger/model/BusPassengerModel.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/model/BusPassengerModel.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/model/BusPassengerModel.kt index ffd5e88188..dd9f7e6169 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/model/BusPassengerModel.kt +++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/model/BusPassengerModel.kt @@ -5,7 +5,6 @@ import android.content.Context import android.net.ConnectivityManager import android.os.Handler import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager -import com.mogo.cloud.commons.utils.CoordinateUtils import com.mogo.commons.AbsMogoApplication import com.mogo.commons.debug.DebugConfig import com.mogo.commons.module.intent.IMogoIntentListener @@ -29,6 +28,7 @@ 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.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr +import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.passenger.R From e8c7327ff07782d22e8e6c41e8924decb66c36c9 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 21 Feb 2023 11:40:06 +0800 Subject: [PATCH 05/30] =?UTF-8?q?[=E5=BC=95=E7=94=A8=E4=BF=AE=E6=94=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt | 2 +- .../src/shuttle/java/com/mogo/och/bus/model/OrderModel.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index de12ddee99..a5bf32a3f2 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -2,7 +2,6 @@ package com.mogo.och.bus.passenger.model import android.content.Context import android.os.Handler -import com.mogo.cloud.commons.utils.CoordinateUtils import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.map.MogoLocation @@ -19,6 +18,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr +import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.ToastUtils diff --git a/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/model/OrderModel.java b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/model/OrderModel.java index e08a42244d..d31235eec1 100644 --- a/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/model/OrderModel.java @@ -16,7 +16,7 @@ import com.alibaba.android.arouter.launcher.ARouter; import com.amap.api.maps.model.LatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.IMogoOnMessageListener; -import com.mogo.cloud.commons.utils.CoordinateUtils; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; From 822bbabcc6e94042bd613fd82f270a08f59d9639 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Tue, 21 Feb 2023 11:47:41 +0800 Subject: [PATCH 06/30] =?UTF-8?q?[opt3.0][adas=20lib]=20M1=E9=A1=B6?= =?UTF-8?q?=E7=81=AF=E6=8E=A7=E5=88=B6=E6=8B=86=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhidao/support/adas/high/AdasChannel.java | 23 +++++++++++++----- .../zhidao/support/adas/high/AdasManager.java | 24 +++++++++++++------ .../support/adas/high/IAdasNetCommApi.java | 15 ++++++++---- 3 files changed, 45 insertions(+), 17 deletions(-) diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index 9ef9c6deb1..2ebc54828d 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -1285,17 +1285,28 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec } /** - * 金旅M1顶灯控制 + * 金旅M1顶灯1控制 * - * @param switch1Cmd //0: default, 1: 开启顶灯1, 2: 关闭顶灯1 - * @param switch2Cmd //0: default, 1: 开启顶灯2, 2: 关闭顶灯2 + * @param switchCmd //0: default, 1: 开启顶灯, 2: 关闭顶灯 * @return boolean */ @Override - public boolean sendRoboBusJinlvM1MainLampCmd(int switch1Cmd, int switch2Cmd) { + public boolean sendRoboBusJinlvM1MainLamp1Cmd(int switchCmd) { return sendRoboBusJinlvM1TaskCmd(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.newBuilder() - .setMainLamp1Cmd(switch1Cmd) - .setMainLamp2Cmd(switch2Cmd) + .setMainLamp1Cmd(switchCmd) + .build()); + } + + /** + * 金旅M1顶灯2控制 + * + * @param switchCmd //0: default, 1: 开启顶灯, 2: 关闭顶灯 + * @return boolean + */ + @Override + public boolean sendRoboBusJinlvM1MainLamp2Cmd(int switchCmd) { + return sendRoboBusJinlvM1TaskCmd(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.newBuilder() + .setMainLamp2Cmd(switchCmd) .build()); } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java index 463223afc8..74bb199b85 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java @@ -663,21 +663,31 @@ public class AdasManager implements IAdasNetCommApi { } /** - * 金旅M1顶灯控制 + * 金旅M1顶灯1控制 * - * @param switch1Cmd //0: default, 1: 开启顶灯1, 2: 关闭顶灯1 - * @param switch2Cmd //0: default, 1: 开启顶灯2, 2: 关闭顶灯2 + * @param switchCmd //0: default, 1: 开启顶灯, 2: 关闭顶灯 * @return boolean */ @Override - public boolean sendRoboBusJinlvM1MainLampCmd(int switch1Cmd, int switch2Cmd) { - return mChannel != null && mChannel.sendRoboBusJinlvM1MainLampCmd(switch1Cmd, switch2Cmd); + public boolean sendRoboBusJinlvM1MainLamp1Cmd(int switchCmd) { + return mChannel != null && mChannel.sendRoboBusJinlvM1MainLamp1Cmd(switchCmd); } /** - * 金旅M1车门控制 + * 金旅M1顶灯2控制 * - * @param switchCmd //0: default, 1: 开启车门, 2: 关闭车门 + * @param switchCmd //0: default, 1: 开启顶灯, 2: 关闭顶灯 + * @return boolean + */ + @Override + public boolean sendRoboBusJinlvM1MainLamp2Cmd(int switchCmd) { + return mChannel != null && mChannel.sendRoboBusJinlvM1MainLamp2Cmd(switchCmd); + } + + /** + * 金旅M1小灯(氛围灯)控制 + * + * @param switchCmd //0: default, 1: 开启小灯(氛围灯), 2: 关闭小灯(氛围灯) * @return boolean */ @Override diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java index 74fc34769a..2eddd3c226 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java @@ -366,13 +366,20 @@ public interface IAdasNetCommApi { boolean sendRoboBusJinlvM1HeaderCmd(int switchCmd, int windSpeedCmd); /** - * 金旅M1顶灯控制 + * 金旅M1顶灯1控制 * - * @param switch1Cmd //0: default, 1: 开启顶灯1, 2: 关闭顶灯1 - * @param switch2Cmd //0: default, 1: 开启顶灯2, 2: 关闭顶灯2 + * @param switchCmd //0: default, 1: 开启顶灯, 2: 关闭顶灯 * @return boolean */ - boolean sendRoboBusJinlvM1MainLampCmd(int switch1Cmd, int switch2Cmd); + boolean sendRoboBusJinlvM1MainLamp1Cmd(int switchCmd); + + /** + * 金旅M1顶灯2控制 + * + * @param switchCmd //0: default, 1: 开启顶灯, 2: 关闭顶灯 + * @return boolean + */ + boolean sendRoboBusJinlvM1MainLamp2Cmd(int switchCmd); /** * 金旅M1小灯(氛围灯)控制 From 7f96b416c817d3969fc8610eba030b0bc3861c5a Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 10:53:10 +0800 Subject: [PATCH 07/30] [2.13.0-arch-opt] update socket reconnect and fix httpdns reconnect logic --- .../startup/stageone/HttpDnsStartUp.kt | 128 ++++++++++-------- .../core/data/deva/chain/ChainConstant.kt | 1 + .../services/socket/IMogoSocketManager.java | 5 + .../socket/MogoAiCloudSocketManager.java | 5 + gradle.properties | 18 +-- 5 files changed, 93 insertions(+), 64 deletions(-) diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt index 8f4b6de3f7..9728f6827a 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt @@ -11,15 +11,16 @@ import com.mogo.cloud.passport.IMoGoTokenCallback import com.mogo.cloud.passport.MoGoAiCloudClient import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.AbsMogoApplication -import com.mogo.commons.utils.MogoAnalyticUtils import com.mogo.commons.constants.SharedPrefsConstants import com.mogo.commons.debug.DebugConfig import com.mogo.commons.module.status.MogoStatusManager import com.mogo.commons.network.NetConfigUtils +import com.mogo.commons.utils.MogoAnalyticUtils import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS +import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_RECONNECT 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_CONNECT_STATUS import com.mogo.eagle.core.data.map.MogoLocation @@ -30,28 +31,35 @@ import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager 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.mogo.logger.scene.SceneConstant.Companion.M_MAIN import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.* import com.rousetime.android_startup.AndroidStartup import com.zhjt.service.chain.ChainLog import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD +import kotlin.properties.Delegates class HttpDnsStartUp : AndroidStartup() { - private val TAG = "MogoApplication" + companion object { + private const val TAG = "HttpDnsStartUp" + } // 配置云服务API private val clientConfig by lazy { MoGoAiCloudClientConfig.getInstance() } - // 缓存IP地址 - private var cacheIp: String? = null - private var context: Context? = null private var gotToken = false + private var httpDnsSimpleLocation by Delegates.observable(getDefaultSimpleLocation()) { _, oldValue, newValue -> + if (oldValue.cityCode != newValue.cityCode) { + reConnectSocket(oldValue.cityCode, newValue.cityCode) + } + } + override fun callCreateOnMainThread() = true override fun waitOnMainThread() = false @@ -121,7 +129,10 @@ class HttpDnsStartUp : AndroidStartup() { override fun getCurrentLocation(): HttpDnsSimpleLocation { val envConfig = CallerDevaToolsManager.getEnvConfig() if (envConfig != null) { - return HttpDnsSimpleLocation(envConfig.cityCode, envConfig.lat, envConfig.lon) + // 更新 + httpDnsSimpleLocation = + HttpDnsSimpleLocation(envConfig.cityCode, envConfig.lat, envConfig.lon) + return httpDnsSimpleLocation } var mogoLocation: MogoLocation? = null val locationClient = @@ -129,49 +140,25 @@ class HttpDnsStartUp : AndroidStartup() { if (locationClient != null) { mogoLocation = locationClient } - val httpDnsSimpleLocation = - if (mogoLocation != null && mogoLocation.latitude != 0.0 && mogoLocation.longitude != 0.0) { - if (mogoLocation.cityCode.isNullOrEmpty() - && !CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode.isNullOrEmpty() - ) { - HttpDnsSimpleLocation( - CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode - ?: "010", - mogoLocation.latitude, - mogoLocation.longitude - ) - } else { - HttpDnsSimpleLocation( - mogoLocation.cityCode, - mogoLocation.latitude, - mogoLocation.longitude - ) - } + if (mogoLocation != null && mogoLocation.latitude != 0.0 && mogoLocation.longitude != 0.0) { + // 更新 + httpDnsSimpleLocation = if (mogoLocation.cityCode.isNullOrEmpty() + && !CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode.isNullOrEmpty() + ) { + HttpDnsSimpleLocation( + CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode + ?: "010", + mogoLocation.latitude, + mogoLocation.longitude + ) } else { - val ciyCode = - SharedPrefsMgr.getInstance( - AbsMogoApplication.getApp() - ) - .getString(SharedPrefsConstants.LOCATION_CITY_CODE) - val latitude = - SharedPrefsMgr.getInstance( - AbsMogoApplication.getApp() - ) - .getString(SharedPrefsConstants.LOCATION_LATITUDE) - val longitude = - SharedPrefsMgr.getInstance( - AbsMogoApplication.getApp() - ) - .getString(SharedPrefsConstants.LOCATION_LONGITUDE) - try { - HttpDnsSimpleLocation( - ciyCode, latitude.toDouble(), longitude.toDouble() - ) - } catch (e: NumberFormatException) { - // e.printStackTrace(); - HttpDnsSimpleLocation("010", 1.0, 1.0) - } + HttpDnsSimpleLocation( + mogoLocation.cityCode, + mogoLocation.latitude, + mogoLocation.longitude + ) } + } return httpDnsSimpleLocation } } @@ -186,10 +173,7 @@ class HttpDnsStartUp : AndroidStartup() { clientConfig.token = token // 由于存在token过期问题,在更新后会回调至此处,增加二次判定 if (!gotToken) { - CallerLogger.d( - SceneConstant.M_MAIN + TAG, - "onTokenGot token : $token , sn :$sn" - ) + CallerLogger.d("$M_MAIN$TAG", "onTokenGot token : $token , sn :$sn") CallerCloudListenerManager.invokeCloudTokenGot(token, sn) // 异步初始化NetConfig asyncInit() @@ -202,7 +186,7 @@ class HttpDnsStartUp : AndroidStartup() { override fun onError(code: Int, msg: String) { CallerLogger.d( - SceneConstant.M_MAIN + TAG, + "$M_MAIN$TAG", "初始化MogoAiCloudSdk failed ,reason : $msg , 未能开启长链服务和初始化Modules服务" ) } @@ -252,11 +236,8 @@ class HttpDnsStartUp : AndroidStartup() { private fun startSocketService() { CallerLogger.d(SceneConstant.M_MAIN + TAG, "startSocketService") val location = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() - // 关闭长链服务 - MogoAiCloudSocketManager.getInstance(context).destroy() MogoAiCloudSocketManager.getInstance(context) .registerLifecycleListener(10020, object : IMogoLifecycleListener { - @ChainLog( linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS, linkCode = CHAIN_LINK_CLOUD, @@ -319,4 +300,41 @@ class HttpDnsStartUp : AndroidStartup() { MogoAiCloudSocketManager.getInstance(context) .init(context, DebugConfig.getSocketAppId(), lat, lon) } + + @ChainLog( + linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS, + linkCode = CHAIN_LINK_CLOUD, + endpoint = PAD, + nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_RECONNECT, + paramIndexes = [0, 1], + clientPkFileName = "sn" + ) + private fun reConnectSocket(oldCityCode: String, newCityCode: String) { + MogoAiCloudSocketManager.getInstance(context).reConnect() + } + + private fun getDefaultSimpleLocation(): HttpDnsSimpleLocation { + val ciyCode = + SharedPrefsMgr.getInstance( + AbsMogoApplication.getApp() + ) + .getString(SharedPrefsConstants.LOCATION_CITY_CODE) + val latitude = + SharedPrefsMgr.getInstance( + AbsMogoApplication.getApp() + ) + .getString(SharedPrefsConstants.LOCATION_LATITUDE) + val longitude = + SharedPrefsMgr.getInstance( + AbsMogoApplication.getApp() + ) + .getString(SharedPrefsConstants.LOCATION_LONGITUDE) + try { + return HttpDnsSimpleLocation( + ciyCode, latitude.toDouble(), longitude.toDouble() + ) + } catch (e: NumberFormatException) { + return HttpDnsSimpleLocation("010", 1.0, 1.0) + } + } } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt index da65a90d98..b3b4418ca4 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt @@ -58,6 +58,7 @@ class ChainConstant { const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL" const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS" + const val CHAIN_ALIAS_CODE_CLOUD_RECONNECT = "CHAIN_ALIAS_CODE_CLOUD_RECONNECT" const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST" const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_ERROR = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_ERROR" const val CHAIN_ALIAS_CODE_HTTP_DNS_CHANGED = "CHAIN_ALIAS_CODE_HTTP_DNS_CHANGED" diff --git a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/IMogoSocketManager.java b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/IMogoSocketManager.java index 158b60f36c..54f1b65fd8 100644 --- a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/IMogoSocketManager.java +++ b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/IMogoSocketManager.java @@ -21,6 +21,11 @@ public interface IMogoSocketManager extends IProvider { */ void init( Context context, String appId , double lat, double lon); + /** + * 重新连接 + */ + void reConnect(); + /** * 注册消息监听 * diff --git a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java index 5285ac617c..568bc72725 100644 --- a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java +++ b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java @@ -74,6 +74,11 @@ public class MogoAiCloudSocketManager extends ConnectionLifecycleListener implem SocketManager.getInstance().init(context, lat, lon); } + @Override + public void reConnect() { + SocketManager.getInstance().reConnect(); + } + @Override public void registerOnMessageListener(int msgType, IMogoOnMessageListener listener) { if (mListeners.containsKey(msgType)) { diff --git a/gradle.properties b/gradle.properties index d9fedbc60f..1459737491 100644 --- a/gradle.properties +++ b/gradle.properties @@ -66,23 +66,23 @@ SERVICE_BIZ_VERSION=1.2.4 LOGLIB_VERSION=1.5.10 ######## MogoAiCloudSDK Version ######## # 网络请求LOGLIB_VERSION -MOGO_NETWORK_VERSION=1.4.4.4 +MOGO_NETWORK_VERSION=1.4.4.5 # 鉴权 -MOGO_PASSPORT_VERSION=1.4.4.4 +MOGO_PASSPORT_VERSION=1.4.4.5 # 常链接 -MOGO_SOCKET_VERSION=1.4.4.4 +MOGO_SOCKET_VERSION=1.4.4.5 # 数据采集 -MOGO_REALTIME_VERSION=1.4.4.4 +MOGO_REALTIME_VERSION=1.4.4.5 # 探路,道路事件发布,获取 -MOGO_TANLU_VERSION=1.4.4.4 +MOGO_TANLU_VERSION=1.4.4.5 # 直播推流 -MOGO_LIVE_VERSION=1.4.4.4 +MOGO_LIVE_VERSION=1.4.4.5 # 直播拉流 -MOGO_TRAFFICLIVE_VERSION=1.4.4.4 +MOGO_TRAFFICLIVE_VERSION=1.4.4.5 # 定位服务 -MOGO_LOCATION_VERSION=1.4.4.4 +MOGO_LOCATION_VERSION=1.4.4.5 # 远程通讯模块 -MOGO_TELEMATIC_VERSION=1.4.4.4 +MOGO_TELEMATIC_VERSION=1.4.4.5 ######## MogoAiCloudSDK Version ######## # 自研地图 MAP_SDK_VERSION=2.10.0.2_test_01 From 1a3080fe84cd5eadcdfa8eb9f9cd1d5849d40133 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 10:59:05 +0800 Subject: [PATCH 08/30] [2.13.0-arch-opt] add point log --- .../function/startup/stageone/HttpDnsStartUp.kt | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt index 9728f6827a..84e3b6a9c4 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt @@ -30,7 +30,6 @@ import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager 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.mogo.logger.scene.SceneConstant.Companion.M_MAIN import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.* @@ -98,7 +97,7 @@ class HttpDnsStartUp : AndroidStartup() { clientConfig.isUseOriginSocket = true // 设置是否输出网络日志 clientConfig.isShowNetDebugLog = false -// clientConfig.passportUrl //todo yakun +// clientConfig.passportUrl //todo 亚坤 // clientConfig.socketBaseUrl // clientConfig.socketTechUrl // 设置是否是直播推流的主播 @@ -234,7 +233,7 @@ class HttpDnsStartUp : AndroidStartup() { } private fun startSocketService() { - CallerLogger.d(SceneConstant.M_MAIN + TAG, "startSocketService") + CallerLogger.d("$M_MAIN$TAG","startSocketService") val location = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() MogoAiCloudSocketManager.getInstance(context) .registerLifecycleListener(10020, object : IMogoLifecycleListener { @@ -247,7 +246,7 @@ class HttpDnsStartUp : AndroidStartup() { clientPkFileName = "sn" ) override fun onConnectFailure() { - CallerLogger.d(SceneConstant.M_MAIN + TAG, "socket-onConnectFailure") + CallerLogger.d("$M_MAIN$TAG", "socket-onConnectFailure") MogoStatusManager.getInstance().setCloudSocketMode(TAG, false) } @@ -260,7 +259,7 @@ class HttpDnsStartUp : AndroidStartup() { clientPkFileName = "sn" ) override fun onConnectSuccess() { - CallerLogger.d(SceneConstant.M_MAIN + TAG, "socket-onConnectSuccess") + CallerLogger.d("$M_MAIN$TAG", "socket-onConnectSuccess") MogoStatusManager.getInstance().setCloudSocketMode(TAG, true) } @@ -273,7 +272,7 @@ class HttpDnsStartUp : AndroidStartup() { clientPkFileName = "sn" ) override fun onConnectLost() { - CallerLogger.d(SceneConstant.M_MAIN + TAG, "socket-onConnectLost") + CallerLogger.d("$M_MAIN$TAG", "socket-onConnectLost") MogoStatusManager.getInstance().setCloudSocketMode(TAG, false) } @@ -286,10 +285,7 @@ class HttpDnsStartUp : AndroidStartup() { clientPkFileName = "sn" ) override fun onError(code: String, msg: String?) { - CallerLogger.d( - SceneConstant.M_MAIN + TAG, - "socket-onError code : $code , msg : $msg" - ) + CallerLogger.d("$M_MAIN$TAG", "socket-onError code : $code , msg : $msg") } }) // 开启Socket长链服务 @@ -310,6 +306,7 @@ class HttpDnsStartUp : AndroidStartup() { clientPkFileName = "sn" ) private fun reConnectSocket(oldCityCode: String, newCityCode: String) { + CallerLogger.d("$M_MAIN$TAG", "reConnectSocket oldCityCode : $oldCityCode , newCityCode : $newCityCode") MogoAiCloudSocketManager.getInstance(context).reConnect() } From 497573e1d0d4c0caeebd10623c034dc47f003982 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 11:01:50 +0800 Subject: [PATCH 09/30] [2.13.0-arch-opt] renote the versionCodeView to fix bug --- .../mogo/eagle/core/function/hmi/ui/widget/VersionNameView.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/VersionNameView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/VersionNameView.kt index 28f464b10f..cbfbab04bf 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/VersionNameView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/VersionNameView.kt @@ -60,7 +60,7 @@ class VersionNameView @JvmOverloads constructor( @SuppressLint("SetTextI18n") private fun showCurrentPadVersion() { tvAppVersionName?.let { -// it.text = "APP:${AppUtils.getAppVersionName()}" + it.text = "APP:${AppUtils.getAppVersionName()}" } } From eb569532828fc7221bd86a83c6f2b2838206027f Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 11:55:52 +0800 Subject: [PATCH 10/30] [2.13.0-arch-opt] update ai cloud sdk version --- .../startup/stageone/HttpDnsStartUp.kt | 6 +++--- gradle.properties | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt index 84e3b6a9c4..a5ad0ae66e 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt @@ -326,12 +326,12 @@ class HttpDnsStartUp : AndroidStartup() { AbsMogoApplication.getApp() ) .getString(SharedPrefsConstants.LOCATION_LONGITUDE) - try { - return HttpDnsSimpleLocation( + return try { + HttpDnsSimpleLocation( ciyCode, latitude.toDouble(), longitude.toDouble() ) } catch (e: NumberFormatException) { - return HttpDnsSimpleLocation("010", 1.0, 1.0) + HttpDnsSimpleLocation("010", 1.0, 1.0) } } } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 1459737491..84fbc00de8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -66,23 +66,23 @@ SERVICE_BIZ_VERSION=1.2.4 LOGLIB_VERSION=1.5.10 ######## MogoAiCloudSDK Version ######## # 网络请求LOGLIB_VERSION -MOGO_NETWORK_VERSION=1.4.4.5 +MOGO_NETWORK_VERSION=1.4.4.7 # 鉴权 -MOGO_PASSPORT_VERSION=1.4.4.5 +MOGO_PASSPORT_VERSION=1.4.4.7 # 常链接 -MOGO_SOCKET_VERSION=1.4.4.5 +MOGO_SOCKET_VERSION=1.4.4.7 # 数据采集 -MOGO_REALTIME_VERSION=1.4.4.5 +MOGO_REALTIME_VERSION=1.4.4.7 # 探路,道路事件发布,获取 -MOGO_TANLU_VERSION=1.4.4.5 +MOGO_TANLU_VERSION=1.4.4.7 # 直播推流 -MOGO_LIVE_VERSION=1.4.4.5 +MOGO_LIVE_VERSION=1.4.4.7 # 直播拉流 -MOGO_TRAFFICLIVE_VERSION=1.4.4.5 +MOGO_TRAFFICLIVE_VERSION=1.4.4.7 # 定位服务 -MOGO_LOCATION_VERSION=1.4.4.5 +MOGO_LOCATION_VERSION=1.4.4.7 # 远程通讯模块 -MOGO_TELEMATIC_VERSION=1.4.4.5 +MOGO_TELEMATIC_VERSION=1.4.4.7 ######## MogoAiCloudSDK Version ######## # 自研地图 MAP_SDK_VERSION=2.10.0.2_test_01 From 76f3470d7410c0380bb365162c46833c3991c031 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 21 Feb 2023 12:14:42 +0800 Subject: [PATCH 11/30] =?UTF-8?q?[Opt3.0]=E6=9A=B4=E9=9C=B2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=BB=99=E4=B8=8A=E5=B1=82=E4=B8=9A=E5=8A=A1=E4=BD=BF?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/MoGoAutopilotControlProvider.kt | 34 +++++++++++++++++- .../IMoGoAutopilotControlProvider.kt | 22 ++++++++++++ .../CallerAutoPilotControlManager.kt | 35 +++++++++++++++++++ 3 files changed, 90 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt index f460537065..fa5f14ed05 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt @@ -2,7 +2,6 @@ package com.mogo.eagle.core.function.datacenter.autopilot import android.Manifest.permission import android.content.Context -import android.util.Log import androidx.annotation.RequiresPermission import chassis.SpecialVehicleTaskCmdOuterClass import com.alibaba.android.arouter.facade.annotation.Route @@ -737,4 +736,37 @@ class MoGoAutopilotControlProvider : MessageType.TYPE_RECEIVE_POINT_CLOUD) } } + + override fun sendRoboBusJinlvM1FrontDoorCmd(switchCmd: Int): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1FrontDoorCmd(switchCmd) + } + + override fun sendRoboBusJinlvM1AirConditionerCmd( + switchCmd: Int, + modeCmd: Int, + windSpeedCmd: Int, + temperatureCmd: Int + ): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1AirConditionerCmd(switchCmd, modeCmd, windSpeedCmd, temperatureCmd) + } + + override fun sendRoboBusJinlvM1HeaderCmd(switchCmd: Int, windSpeedCmd: Int): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1HeaderCmd(switchCmd, windSpeedCmd) + } + + override fun sendRoboBusJinlvM1MainLamp1Cmd(switchCmd: Int): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1MainLamp1Cmd(switchCmd) + } + + override fun sendRoboBusJinlvM1MainLamp2Cmd(switchCmd: Int): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1MainLamp2Cmd(switchCmd) + } + + override fun sendRoboBusJinlvM1SmallLampCmd(switchCmd: Int): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1SmallLampCmd(switchCmd) + } + + override fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd) + } } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt index 559928123e..5559e67b9f 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt @@ -290,4 +290,26 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider { * @param isDrawPointCloud 是否绘制点云 */ fun setIsDrawPointCloud(isDrawPointCloud: Boolean) + + fun sendRoboBusJinlvM1FrontDoorCmd(switchCmd: Int): Boolean + + fun sendRoboBusJinlvM1AirConditionerCmd( + switchCmd: Int, + modeCmd: Int, + windSpeedCmd: Int, + temperatureCmd: Int + ): Boolean + + fun sendRoboBusJinlvM1HeaderCmd(switchCmd: Int, windSpeedCmd: Int): Boolean + + fun sendRoboBusJinlvM1MainLamp1Cmd(switchCmd: Int): Boolean + + fun sendRoboBusJinlvM1MainLamp2Cmd(switchCmd: Int): Boolean + + /** + * 车门控制 + */ + fun sendRoboBusJinlvM1SmallLampCmd(switchCmd: Int): Boolean + + fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt index e6089e167b..1980bf91db 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt @@ -415,4 +415,39 @@ object CallerAutoPilotControlManager { providerApi?.setIsDrawPointCloud(isDrawPointCloud) } + fun sendRoboBusJinlvM1FrontDoorCmd(switchCmd: Int): Boolean { + return providerApi?.sendRoboBusJinlvM1FrontDoorCmd(switchCmd) ?: false + } + + fun sendRoboBusJinlvM1AirConditionerCmd( + switchCmd: Int, + modeCmd: Int, + windSpeedCmd: Int, + temperatureCmd: Int + ): Boolean { + return providerApi?.sendRoboBusJinlvM1AirConditionerCmd(switchCmd, modeCmd, windSpeedCmd, temperatureCmd) ?: false + } + + fun sendRoboBusJinlvM1HeaderCmd(switchCmd: Int, windSpeedCmd: Int): Boolean { + return providerApi?.sendRoboBusJinlvM1HeaderCmd(switchCmd, windSpeedCmd) ?: false + } + + fun sendRoboBusJinlvM1MainLamp1Cmd(switchCmd: Int): Boolean { + return providerApi?.sendRoboBusJinlvM1MainLamp1Cmd(switchCmd) ?: false + } + + fun sendRoboBusJinlvM1MainLamp2Cmd(switchCmd: Int): Boolean { + return providerApi?.sendRoboBusJinlvM1MainLamp2Cmd(switchCmd) ?: false + } + + /** + * 车门控制 + */ + fun sendRoboBusJinlvM1SmallLampCmd(switchCmd: Int): Boolean { + return providerApi?.sendRoboBusJinlvM1SmallLampCmd(switchCmd) ?: false + } + + fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean { + return providerApi?.sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd) ?: false + } } \ No newline at end of file From 719220cb6a60b5ed6eaf81137d57a84bce5e994e Mon Sep 17 00:00:00 2001 From: donghongyu Date: Tue, 21 Feb 2023 12:15:32 +0800 Subject: [PATCH 12/30] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[?= =?UTF-8?q?=201=E3=80=81=E5=A2=9E=E5=8A=A0=E5=B7=B2=E5=87=BA=E7=9B=91?= =?UTF-8?q?=E5=90=AC=E7=9A=84=E6=97=B6=E5=80=99=E5=B0=86Hz=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E7=9A=84=E8=AE=B0=E5=BD=95=E7=A7=BB=E9=99=A4=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- ...llerChassisLocationGCJ02ListenerManager.kt | 2 -- .../core/function/call/base/CallerBase.kt | 20 +++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) 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 671a05f57a..0c20a62a84 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 @@ -35,8 +35,6 @@ object CallerChassisLocationGCJ02ListenerManager : CallerBase { return } M_LISTENERS.remove(tag) + + if (!M_LISTENERS_HZ.containsKey(tag)) { + return + } + M_LISTENERS_HZ.remove(tag) + + if (!M_LISTENERS_HZ_LAST_SEND_TIME.containsKey(tag)) { + return + } + M_LISTENERS_HZ_LAST_SEND_TIME.remove(tag) } /** @@ -83,6 +93,16 @@ open class CallerBase { M_LISTENERS.forEach { if (it.value == listener) { M_LISTENERS.remove(it.key) + + if (!M_LISTENERS_HZ.containsKey(it.key)) { + return + } + M_LISTENERS_HZ.remove(it.key) + + if (!M_LISTENERS_HZ_LAST_SEND_TIME.containsKey(it.key)) { + return + } + M_LISTENERS_HZ_LAST_SEND_TIME.remove(it.key) } } } From b3b53d478f841f534cb674f6b37c282ee85db881 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 14:02:10 +0800 Subject: [PATCH 13/30] [2.13.0-arch-opt] add apm tag of car type --- .../utilcode/mogo/AppIdentityModeUtils.kt | 19 +++++++++++++------ .../apm/ApmCrashReportProvider.java | 3 +++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt index b4dd06db5a..7037828edf 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt @@ -25,7 +25,6 @@ object AppIdentityModeUtils { private const val SWEEPER = "Sweeper" - private fun getInfo(appIdentityMode: String): Array { val split = appIdentityMode.split("_") if (split.size == 3) { @@ -34,6 +33,14 @@ object AppIdentityModeUtils { return arrayOf("", "", "") } + fun getBuildCarType(appIdentityMode: String): String { + val (_, _, carType) = getInfo(appIdentityMode) + if(carType.isNotEmpty()){ + return carType + } + return "" + } + /** * 是否是 司机端(这里不细分具体是:小巴、出租车等类型) * @@ -43,7 +50,7 @@ object AppIdentityModeUtils { @JvmStatic fun isDriver(appIdentityMode: String): Boolean { val (_, identity, _) = getInfo(appIdentityMode) - if (!identity.isEmpty()) { + if (identity.isNotEmpty()) { return identity == DRIVER } return false @@ -58,7 +65,7 @@ object AppIdentityModeUtils { @JvmStatic fun isPassenger(appIdentityMode: String): Boolean { val (_, identity, _) = getInfo(appIdentityMode) - if (!identity.isEmpty()) { + if (identity.isNotEmpty()) { return identity == PASSENGER } return false @@ -73,7 +80,7 @@ object AppIdentityModeUtils { @JvmStatic fun isBus(appIdentityMode: String): Boolean { val (bussness, _, _) = getInfo(appIdentityMode) - if (!bussness.isEmpty()) { + if (bussness.isNotEmpty()) { return bussness == BUS } return false @@ -88,7 +95,7 @@ object AppIdentityModeUtils { @JvmStatic fun isSweeper(appIdentityMode: String): Boolean { val (bussness, _, _) = getInfo(appIdentityMode) - if (!bussness.isEmpty()) { + if (bussness.isNotEmpty()) { return bussness == SWEEPER } return false @@ -103,7 +110,7 @@ object AppIdentityModeUtils { @JvmStatic fun isTaxi(appIdentityMode: String): Boolean { val (bussness, _, _) = getInfo(appIdentityMode) - if (!bussness.isEmpty()) { + if (bussness.isNotEmpty()) { return bussness == TAXI } return false diff --git a/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java b/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java index ac22671363..ac143c2920 100644 --- a/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java +++ b/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java @@ -13,6 +13,8 @@ import com.bytedance.apm.insight.ApmInsightInitConfig; import com.mogo.commons.constants.SharedPrefsConstants; import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.data.bindingcar.CarInfo; +import com.mogo.eagle.core.data.config.FunctionBuildConfig; +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.CommonUtils; @@ -96,6 +98,7 @@ public class ApmCrashReportProvider implements ITestCrashReportProvider { crash.addTags("CITYCODE", mCityCode); crash.addTags("LATITUDE", mLat); crash.addTags("LONGITUTE", mLogt); + crash.addTags("CAR_TYPE", AppIdentityModeUtils.INSTANCE.getBuildCarType(FunctionBuildConfig.appIdentityMode)); // crash.setReportUrl("www.xxx.com"); // 私有化部署:私有化部署才配置上报地址 // crash.addTags("key", "value"); // 自定义筛选tag, 按需添加、可多次覆盖 From b192238894a490268fea33385e189540e75a07a0 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Tue, 21 Feb 2023 15:35:52 +0800 Subject: [PATCH 14/30] =?UTF-8?q?[opt3.0][adas=20lib]=201.=E8=83=BD?= =?UTF-8?q?=E5=90=A6=E5=90=AF=E5=8A=A8=E8=87=AA=E9=A9=BE=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=85=BC=E5=AE=B9MAP250=E4=BB=A5=E4=B8=8B?= =?UTF-8?q?=E7=89=88=E6=9C=AC=EF=BC=9B2.=E8=8E=B7=E5=8F=96=E8=BD=A6?= =?UTF-8?q?=E6=9C=BA=E5=9F=BA=E7=A1=80=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=9A=E6=AC=A1=E8=8E=B7=E5=8F=96=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E7=9B=AE=E5=89=8D=E4=BC=9A=E5=B0=9D=E8=AF=95?= =?UTF-8?q?3=E6=AC=A1=E8=8E=B7=E5=8F=96=EF=BC=9B3.=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=94=99=E5=88=AB=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/adapter/MoGoAdasListenerImpl.kt | 4 +- .../hmi/ui/setting/DebugSettingView.kt | 4 +- .../main/res/layout/view_debug_setting.xml | 2 +- .../IMoGoChassisGearStateListener.kt | 4 +- .../CallerChassisBrakeStateListenerManager.kt | 2 +- .../CallerChassisGearStateListenerManager.kt | 4 +- .../zhidao/support/adas/high/AdasChannel.java | 40 ++- .../zhidao/support/adas/high/AdasOptions.java | 2 +- .../ability/AutopilotAbility230.java | 118 ++++++++ .../ability/AutopilotAbility250.java} | 143 ++------- .../ability/AutopilotAbilityManager.java | 274 ++++++++++++++++++ .../adas/high/msg/CarConfigRespMessage.java | 2 + .../adas/high/msg/ChassisStatesMessage.java | 2 +- .../adas/high/msg/StatusQueryRespMessage.java | 2 +- .../adas/high/msg/VehicleStateMessage.java | 4 +- 15 files changed, 479 insertions(+), 128 deletions(-) create mode 100644 libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java rename libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/{AutopilotAbilityManager.java => autopilot/ability/AutopilotAbility250.java} (61%) create mode 100644 libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt index e2703257ff..6374bb350c 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -173,7 +173,7 @@ class MoGoAdasListenerImpl : OnAdasListener { CallerChassisLamplightListenerManager.invokeAutopilotBrakeLightData(vehicleState.brakeLightStatus) //方向盘转向角数据 CallerChassisSteeringStateListenerManager.invokeAutopilotSteeringData(vehicleState.steering) - //挂挡档位数据 + //挂档档位数据 CallerChassisGearStateListenerManager.invokeAutopilotGearData(vehicleState.gear) //加速度 CallerChassisAccStateListenerManager.invokeAutopilotAcc(vehicleState.accel) @@ -237,7 +237,7 @@ class MoGoAdasListenerImpl : OnAdasListener { } chassisStates.gearSystemStates?.let { gearSystemStates -> gearSystemStates.gearPosition?.let { - //挂挡档位数据 + //挂档档位数据 CallerChassisGearStateListenerManager.invokeAutopilotGearData(it) } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index 0c0f7961b4..3c7341be2d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -1921,12 +1921,12 @@ internal class DebugSettingView @JvmOverloads constructor( } /** - * 车辆挂挡档位 + * 车辆挂档档位 * @param gear 档位 */ override fun onAutopilotGearData(gear: Chassis.GearPosition) { ThreadUtils.runOnUiThread { - tvGearInfo.text = "挂挡档位:${gear}" + tvGearInfo.text = "挂档档位:${gear}" } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml index 5bfa8302c6..e8ac4d98e0 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml @@ -1008,7 +1008,7 @@ style="@style/DebugSettingText" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="挂挡档位:" /> + android:text="挂档档位:" /> () { diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisGearStateListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisGearStateListenerManager.kt index 907e4b0553..30d52e1a72 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisGearStateListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisGearStateListenerManager.kt @@ -5,12 +5,12 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisGearStateListener import com.mogo.eagle.core.function.call.base.CallerBase /** - * 车辆挂挡档位 回调监听 + * 车辆挂档档位 回调监听 */ object CallerChassisGearStateListenerManager : CallerBase() { /** - * 车辆挂挡档位 + * 车辆挂档档位 * @param gear 档位 */ fun invokeAutopilotGearData(gear: Chassis.GearPosition) { diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index 2ebc54828d..298d893a2c 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -23,7 +23,6 @@ import androidx.annotation.Nullable; import com.google.protobuf.InvalidProtocolBufferException; import com.zhidao.support.adas.high.bean.AutopilotStatistics; import com.zhidao.support.adas.high.bean.VersionCompatibility; -import com.zhidao.support.adas.high.common.AutopilotAbilityManager; import com.zhidao.support.adas.high.common.AutopilotReview; import com.zhidao.support.adas.high.common.ByteUtil; import com.zhidao.support.adas.high.common.Constants; @@ -34,6 +33,7 @@ import com.zhidao.support.adas.high.common.MessageType; import com.zhidao.support.adas.high.common.ProtocolStatus; import com.zhidao.support.adas.high.common.ReceiveTimeoutManager; import com.zhidao.support.adas.high.common.RegexUtils; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import com.zhidao.support.adas.high.msg.IMsg; import com.zhidao.support.adas.high.msg.MyMessageFactory; import com.zhidao.support.adas.high.protocol.RawData; @@ -129,6 +129,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec * 乘客屏无法进行注册或取消注册,因为乘客屏无法感知司机屏与工控机连接状态。无法重置已注册或未注册接口列表 */ private SubscribeInterface subscribeInterface; + private Timer carConfigReqTimer;//车辆基础信息请求 多次请求防止无法收到基础信息情况出现 public void setOnMultiDeviceListener(OnMultiDeviceListener onMultiDeviceListener) { this.onMultiDeviceListener = onMultiDeviceListener; @@ -535,7 +536,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec @Override public void onWebSocketConnectSuccess(String ipAddress, int port) { - sendCarConfigReq(); + startCarConfigReq(); ipcConnectedIp = ipAddress; ipcConnectedPort = port; subscribeInterface = new SubscribeInterface(this); @@ -662,6 +663,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec if (status == Constants.IPC_CONNECTION_STATUS.DISCONNECTED) { AdasManager.getInstance().setCarConfig(null); stopDispatchHandler(); + stopCarConfigReq(); } if (adasConnectStatusListener != null) { adasConnectStatusListener.onConnectionIPCStatus(ipcConnectionStatus.get(), reason); @@ -775,6 +777,40 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec CupidLogUtils.setEnableLog(isEnableLog); } + //车辆基础信息请求 + private void startCarConfigReq() { + if (carConfigReqTimer == null) { + carConfigReqTimer = new Timer(); + carConfigReqTimer.schedule(new TimerTask() { + int num = 0; + + @Override + public void run() { + if (getIpcConnectionStatus() == Constants.IPC_CONNECTION_STATUS.CONNECTED) { + if (AdasManager.getInstance().getCarConfig() == null) { + num++; + if (num > 3) { + CupidLogUtils.i(TAG, "最后一次也未获取到车机基础信息"); + stopCarConfigReq(); + } else { + CupidLogUtils.i(TAG, "第" + num + "次获取车机基础信息"); + sendCarConfigReq(); + } + } else { + stopCarConfigReq(); + } + } + } + }, 10, 2000L); + } + } + + private synchronized void stopCarConfigReq() { + if (carConfigReqTimer != null) { + carConfigReqTimer.cancel(); + carConfigReqTimer = null; + } + } /**************************************************************************************************************************/ /** diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java index 9caee97d94..3c38a18599 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java @@ -1,6 +1,6 @@ package com.zhidao.support.adas.high; -import com.zhidao.support.adas.high.common.AutopilotAbilityManager; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import com.zhidao.support.adas.high.subscribe.SubscribeInterfaceOptions; import java.util.HashSet; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java new file mode 100644 index 0000000000..9c6ce3ea4c --- /dev/null +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java @@ -0,0 +1,118 @@ +package com.zhidao.support.adas.high.common.autopilot.ability; + +import com.zhidao.support.adas.high.OnAdasListener; + +import java.util.Timer; +import java.util.TimerTask; +import java.util.regex.Pattern; + +import chassis.Chassis; +import chassis.ChassisStatesOuterClass; + +/** + * 是否可以启动自动驾驶能力检测 工控机版本>=230&& <250 使用此类 + * 目前监控了底盘的一些状态和查询节点状态应答的数据 + * 没有使用监控事件报告的原因是因为,部分异常没进行正常恢复通知,例如收到了异常监控数据,但是异常恢复之后没有恢复的通知 + *

+ * 此定时器不能停止 鹰眼中存在UI更新依赖循环查询系统状态 + */ +public class AutopilotAbility230 { + private static final String TAG = AutopilotAbility230.class.getSimpleName(); + private static final long DEFAULT_DETECTION_TIME = 3 * 1000L;//默认检测时间 + private volatile Timer timer; + private ChassisStatesOuterClass.ChassisStates chassisStates; + + public AutopilotAbility230() { + } + + + public void setChassisStates(ChassisStatesOuterClass.ChassisStates chassisStates) { + this.chassisStates = chassisStates; + } + + private void onCallback() { + //金旅、开沃小巴乘客端 不能启动自动驾驶 + if (AutopilotAbilityManager.getInstance().isBusPassenger()) { + return; + } + boolean isAutopilotAbility = true;//是否能启动自动驾驶 + String unableAutopilotReason = null;//不能启动自动驾驶原因 + //检测底盘相关 + if (chassisStates != null) { + if (chassisStates.hasBrakeSystemStates()) { + float brake = chassisStates.getBrakeSystemStates().getBrakePedalResponsePosition(); + if (brake > 0) { + isAutopilotAbility = false; + unableAutopilotReason = "制动踏板被踩下"; + } + } + if (isAutopilotAbility) { + /** + * 档位状态判断 目前判断的车型包括 东风Taxi 红旗Taxi 金旅Bus 金旅M1 金旅M1 福田清扫车 开沃 + * TODO 如果 identityMode 未赋值以及目前已知其他车型判断逻辑跟东风Taxi和红旗 走 + */ + //开沃任何档位都能启动自驾 + if (!AutopilotAbilityManager.getInstance().isBusDriverVan()) { + if (chassisStates.hasGearSystemStates()) { + Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); + //金旅Bus和清扫车 档位不正常 + if (AutopilotAbilityManager.getInstance().isBusDriver()) { + if (gear == Chassis.GearPosition.GEAR_N || gear == Chassis.GearPosition.GEAR_R) { + isAutopilotAbility = false; + unableAutopilotReason = "档位不正常"; + } + } else if (AutopilotAbilityManager.getInstance().isSweeperDriverFutian()) { + if (gear == Chassis.GearPosition.GEAR_N) { + isAutopilotAbility = false; + unableAutopilotReason = "档位不正常"; + } + } else { + //东风Taxi和红旗 司机端和乘客端 档位不正常 + if (gear == Chassis.GearPosition.GEAR_P || gear == Chassis.GearPosition.GEAR_R) { + isAutopilotAbility = false; + unableAutopilotReason = "档位不正常"; + } + } + } + } + } + + //TODO 关于手刹:不同车型的实现不同所以目前没法使用此字段 +// if (isAutopilotAbility) { +// //电子驻车制动系统 +// if (chassisStates.hasEpbSystemStates()) { +// ChassisStatesOuterClass.EPBSystemStates epb = chassisStates.getEpbSystemStates(); +// if (epb.hasEpbEnableState()){ +// epb.getEpbWorkState(); +// } +// } +// } + } + if (AutopilotAbilityManager.getInstance().getListener() != null) { + AutopilotAbilityManager.getInstance().getListener().onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); + } + } + + public synchronized void start() { + if (timer == null) { + timer = new Timer(); + timer.schedule(new TimerTask() { + @Override + public void run() { + onCallback(); + } + }, 2000L, DEFAULT_DETECTION_TIME);//延迟执行,避免刚连接成功后底盘信息无法及时同步 + } + } + + public synchronized void stop() { + if (timer != null) { + timer.cancel(); + timer = null; + } + this.chassisStates = null; + } + + + +} diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java similarity index 61% rename from libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java rename to libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java index 03ec76b745..01bf359101 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java @@ -1,106 +1,41 @@ -package com.zhidao.support.adas.high.common; +package com.zhidao.support.adas.high.common.autopilot.ability; -import android.os.Handler; import android.os.Message; -import android.text.TextUtils; import com.zhidao.support.adas.high.AdasManager; -import com.zhidao.support.adas.high.OnAdasListener; import java.util.List; import java.util.Timer; import java.util.TimerTask; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import chassis.Chassis; import chassis.ChassisStatesOuterClass; import system_master.SystemStatusInfo; /** - * 是否可以启动自动驾驶能力检测 + * 是否可以启动自动驾驶能力检测 工控机版本>=250使用此类 * 目前监控了底盘的一些状态和查询节点状态应答的数据 * 没有使用监控事件报告的原因是因为,部分异常没进行正常恢复通知,例如收到了异常监控数据,但是异常恢复之后没有恢复的通知 *

* 此定时器不能停止 鹰眼中存在UI更新依赖循环查询系统状态 */ -public class AutopilotAbilityManager { - private static final String TAG = AutopilotAbilityManager.class.getSimpleName(); +public class AutopilotAbility250 { + private static final String TAG = AutopilotAbility250.class.getSimpleName(); private static final int WHAT_TIMEOUT = 0; private static final int DEFAULT_TIMEOUT = 1500; private static final long DEFAULT_DETECTION_TIME = 3 * 1000L;//默认检测时间 private static final String[] NODE_INFO_STATE = {"未知状态 ", "依赖未就绪 ", "启动中 ", "运行 ", "停止 ", "无法启动状态 ", "人为启动状态 ", "人为关闭状态 "}; - private static volatile AutopilotAbilityManager INSTANCE; - private OnAdasListener listener; private volatile Timer timer; - private final Pattern pattern = Pattern.compile("\\d+.\\d+.\\d+"); private ChassisStatesOuterClass.ChassisStates chassisStates; - private Handler handler; - private OnAutopilotAbilityListener onAutopilotAbilityListener; - /** - * 身份/车型 - */ - private String identityMode; - public interface OnAutopilotAbilityListener { - void onStatusQuery();//查询是被调用 + public AutopilotAbility250() { } - /** - * 身份规则定义根据app/productFlavors/README.md - * * taxi司机屏 Taxi_Driver_Base (东风、红旗司机端) - * * taxi乘客屏 Taxi_Passenger_Base (东风、红旗乘客端) - * * bus司机屏 Bus_Driver_Base (金旅小巴司机端) - * * Bus_Driver_Van (开沃小巴司机端) - * * bus乘客屏 Bus_Passenger_Base (金旅、开沃小巴乘客端) - * * Bus_Passenger_M1 (M1小巴乘客端) - * * Bus_Passenger_M2 (M2小巴乘客端) - * * 清扫车 Sweeper_Driver_FT (福田清扫车司机端) - *

- * 此定义不区分角色,只区分业务线和车型 - */ - private interface IDENTITY_MODE { - String TAXI_DRIVER_BASE = "Taxi_Driver_Base";//(东风、红旗司机端) - String TAXI_PASSENGER_BASE = "Taxi_Passenger_Base";//(东风、红旗乘客端) - String BUS_DRIVER_BASE = "Bus_Driver_Base";//(金旅小巴司机端) - String BUS_DRIVER_VAN = "Bus_Driver_Van";//(开沃小巴司机端) - String BUS_PASSENGER_BASE = "Bus_Passenger_Base";//(金旅、开沃小巴乘客端) - String BUS_PASSENGER_M1 = "Bus_Passenger_M1";//(M1小巴乘客端) - String BUS_PASSENGER_M2 = "Bus_Passenger_M2";//(M2小巴乘客端) - String SWEEPER_DRIVER_FT = "Sweeper_Driver_FT";//(福田清扫车司机端) - } - - - public void setIdentityMode(String identityMode) { - this.identityMode = identityMode; - } - - public void setOnAdasListener(OnAdasListener listener) { - this.listener = listener; - } - - public void setOnAutopilotAbilityListener(OnAutopilotAbilityListener onAutopilotAbilityListener) { - this.onAutopilotAbilityListener = onAutopilotAbilityListener; - } - - private AutopilotAbilityManager() { - } - - public static AutopilotAbilityManager getInstance() { - if (INSTANCE == null) { - synchronized (AutopilotAbilityManager.class) { - if (INSTANCE == null) { - INSTANCE = new AutopilotAbilityManager(); - } - } - } - return INSTANCE; - } public void setStatusInfo(SystemStatusInfo.StatusInfo statusInfo) { - if (handler != null) { - if (handler.hasMessages(WHAT_TIMEOUT)) - handler.removeMessages(WHAT_TIMEOUT); + if (AutopilotAbilityManager.getInstance().getHandler() != null) { + if (AutopilotAbilityManager.getInstance().getHandler().hasMessages(WHAT_TIMEOUT)) + AutopilotAbilityManager.getInstance().getHandler().removeMessages(WHAT_TIMEOUT); } onCallback(statusInfo); } @@ -111,7 +46,7 @@ public class AutopilotAbilityManager { private void onCallback(SystemStatusInfo.StatusInfo statusInfo) { //金旅、开沃小巴乘客端 不能启动自动驾驶 - if (IDENTITY_MODE.BUS_PASSENGER_BASE.equalsIgnoreCase(identityMode)) { + if (AutopilotAbilityManager.getInstance().isBusPassenger()) { return; } boolean isAutopilotAbility = true;//是否能启动自动驾驶 @@ -122,20 +57,7 @@ public class AutopilotAbilityManager { if (statusInfo.hasMasterVersion()) { //截取Master Version String masterVersion = statusInfo.getMasterVersion(); - if (!TextUtils.isEmpty(masterVersion)) { - try { - Matcher matcher = pattern.matcher(masterVersion); - if (matcher.find()) { - String group = matcher.group(); - if (!TextUtils.isEmpty(group)) { - String v = group.split("\\.")[0]; - version = Integer.parseInt(v); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } + version = AutopilotAbilityManager.getInstance().parseVersion(false, masterVersion); } //如果 maser version 大于1,还需要判断AutoPilotReady字段是否存在,以确保MAP版本和SSM Maser版本不陪配情况逻辑能正常执行 if (version > 1 && statusInfo.hasAutoPilotReady()) { @@ -204,24 +126,26 @@ public class AutopilotAbilityManager { * 档位状态判断 目前判断的车型包括 东风Taxi 红旗Taxi 金旅Bus 金旅M1 金旅M1 福田清扫车 开沃 * TODO 如果 identityMode 未赋值以及目前已知其他车型判断逻辑跟东风Taxi和红旗 走 */ - if (chassisStates.hasGearSystemStates()) { - Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); - if (TextUtils.isEmpty(identityMode)) { - identityMode = ""; - } - //开沃任何档位都能启动自驾 - if (!IDENTITY_MODE.BUS_DRIVER_VAN.equalsIgnoreCase(identityMode)) { + //开沃任何档位都能启动自驾 + if (!AutopilotAbilityManager.getInstance().isBusDriverVan()) { + if (chassisStates.hasGearSystemStates()) { + Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); //金旅Bus和清扫车 档位不正常 - if (IDENTITY_MODE.BUS_DRIVER_BASE.equalsIgnoreCase(identityMode) || IDENTITY_MODE.SWEEPER_DRIVER_FT.equalsIgnoreCase(identityMode)) { + if (AutopilotAbilityManager.getInstance().isBusDriver()) { if (gear == Chassis.GearPosition.GEAR_N || gear == Chassis.GearPosition.GEAR_R) { isAutopilotAbility = false; - unableAutopilotReason = "挡位不正常"; + unableAutopilotReason = "档位不正常"; + } + } else if (AutopilotAbilityManager.getInstance().isSweeperDriverFutian()) { + if (gear == Chassis.GearPosition.GEAR_N) { + isAutopilotAbility = false; + unableAutopilotReason = "档位不正常"; } } else { //东风Taxi和红旗 司机端和乘客端 档位不正常 if (gear == Chassis.GearPosition.GEAR_P || gear == Chassis.GearPosition.GEAR_R) { isAutopilotAbility = false; - unableAutopilotReason = "挡位不正常"; + unableAutopilotReason = "档位不正常"; } } } @@ -239,8 +163,8 @@ public class AutopilotAbilityManager { // } // } } - if (listener != null) { - listener.onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); + if (AutopilotAbilityManager.getInstance().getListener() != null) { + AutopilotAbilityManager.getInstance().getListener().onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); } } @@ -250,14 +174,14 @@ public class AutopilotAbilityManager { timer.schedule(new TimerTask() { @Override public void run() { - if (onAutopilotAbilityListener != null) { - onAutopilotAbilityListener.onStatusQuery(); + if (AutopilotAbilityManager.getInstance().getOnAutopilotAbilityListener() != null) { + AutopilotAbilityManager.getInstance().getOnAutopilotAbilityListener().onStatusQuery(); } AdasManager.getInstance().sendStatusQueryReq(); - if (handler != null) { - if (handler.hasMessages(WHAT_TIMEOUT)) - handler.removeMessages(WHAT_TIMEOUT); - handler.sendEmptyMessageDelayed(WHAT_TIMEOUT, DEFAULT_TIMEOUT); + if (AutopilotAbilityManager.getInstance().getHandler() != null) { + if (AutopilotAbilityManager.getInstance().getHandler().hasMessages(WHAT_TIMEOUT)) + AutopilotAbilityManager.getInstance().getHandler().removeMessages(WHAT_TIMEOUT); + AutopilotAbilityManager.getInstance().getHandler().sendEmptyMessageDelayed(WHAT_TIMEOUT, DEFAULT_TIMEOUT); } } }, 2000L, DEFAULT_DETECTION_TIME);//延迟执行,避免刚连接成功后底盘信息无法及时同步 @@ -269,18 +193,15 @@ public class AutopilotAbilityManager { timer.cancel(); timer = null; } - handler = null; this.chassisStates = null; } - public void setHandler(Handler handler) { - this.handler = handler; - } - public void onHandleMessage(Message msg) { if (msg.what == WHAT_TIMEOUT) { onCallback(null); } } + + } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java new file mode 100644 index 0000000000..1e80fe6805 --- /dev/null +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java @@ -0,0 +1,274 @@ +package com.zhidao.support.adas.high.common.autopilot.ability; + +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; + +import com.zhidao.support.adas.high.AdasManager; +import com.zhidao.support.adas.high.OnAdasListener; +import com.zhidao.support.adas.high.common.Constants; +import com.zhidao.support.adas.high.common.CupidLogUtils; + +import java.util.Timer; +import java.util.TimerTask; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import chassis.ChassisStatesOuterClass; +import mogo.telematics.pad.MessagePad; +import system_master.SystemStatusInfo; + +/** + * 是否可以启动自动驾驶能力检测 + * 目前监控了底盘的一些状态和查询节点状态应答的数据 + * 没有使用监控事件报告的原因是因为,部分异常没进行正常恢复通知,例如收到了异常监控数据,但是异常恢复之后没有恢复的通知 + *

+ * 此定时器不能停止 鹰眼中存在UI更新依赖循环查询系统状态 + */ +public class AutopilotAbilityManager { + private static final String TAG = AutopilotAbilityManager.class.getSimpleName(); + private static volatile AutopilotAbilityManager INSTANCE; + private OnAdasListener listener; + private final Pattern pattern = Pattern.compile("\\d+\\.\\d+\\.\\d+"); + private Handler handler; + private OnAutopilotAbilityListener onAutopilotAbilityListener; + private int dockerVersion = -1;//工控机版本 + private AutopilotAbility230 autopilotAbility230; + private AutopilotAbility250 autopilotAbility250; + private Timer startTimer; + /** + * 身份/车型 + */ + private String identityMode; + + public interface OnAutopilotAbilityListener { + void onStatusQuery();//查询是被调用 + } + + /** + * 身份规则定义根据app/productFlavors/README.md + * * taxi司机屏 Taxi_Driver_Base (东风、红旗司机端) + * * taxi乘客屏 Taxi_Passenger_Base (东风、红旗乘客端) + * * bus司机屏 Bus_Driver_Base (金旅小巴司机端) + * * Bus_Driver_Van (开沃小巴司机端) + * * bus乘客屏 Bus_Passenger_Base (金旅、开沃小巴乘客端) + * * Bus_Passenger_M1 (M1小巴乘客端) + * * Bus_Passenger_M2 (M2小巴乘客端) + * * 清扫车 Sweeper_Driver_FT (福田清扫车司机端) + *

+ * 此定义不区分角色,只区分业务线和车型 + */ + private interface IDENTITY_MODE { + String TAXI_DRIVER_BASE = "Taxi_Driver_Base";//(东风、红旗司机端) + String TAXI_PASSENGER_BASE = "Taxi_Passenger_Base";//(东风、红旗乘客端) + String BUS_DRIVER_BASE = "Bus_Driver_Base";//(金旅小巴司机端) + String BUS_DRIVER_VAN = "Bus_Driver_Van";//(开沃小巴司机端) + String BUS_PASSENGER_BASE = "Bus_Passenger_Base";//(金旅、开沃小巴乘客端) + String BUS_PASSENGER_M1 = "Bus_Passenger_M1";//(M1小巴乘客端) + String BUS_PASSENGER_M2 = "Bus_Passenger_M2";//(M2小巴乘客端) + String SWEEPER_DRIVER_FT = "Sweeper_Driver_FT";//(福田清扫车司机端) + } + + private AutopilotAbilityManager() { + } + + public static AutopilotAbilityManager getInstance() { + if (INSTANCE == null) { + synchronized (AutopilotAbilityManager.class) { + if (INSTANCE == null) { + INSTANCE = new AutopilotAbilityManager(); + } + } + } + return INSTANCE; + } + + public void setIdentityMode(String identityMode) { + this.identityMode = identityMode; + } + + public void setCarConfig(MessagePad.CarConfigResp carConfig) { + if (dockerVersion == -1) { + String v = carConfig.getDockVersion(); + int version = parseVersion(true, v); + if (version != -1) { + stopTimer(); + dockerVersion = version; + Log.i("dddd", "工控机版本=" + dockerVersion); + initAutopilotAbility(); + } + } + } + + public void setOnAdasListener(OnAdasListener listener) { + this.listener = listener; + } + + public OnAdasListener getListener() { + return listener; + } + + public void setHandler(Handler handler) { + this.handler = handler; + } + + public Handler getHandler() { + return handler; + } + + public void setOnAutopilotAbilityListener(OnAutopilotAbilityListener onAutopilotAbilityListener) { + this.onAutopilotAbilityListener = onAutopilotAbilityListener; + } + + public OnAutopilotAbilityListener getOnAutopilotAbilityListener() { + return onAutopilotAbilityListener; + } + + + public void setStatusInfo(SystemStatusInfo.StatusInfo statusInfo) { + if (autopilotAbility250 != null) { + autopilotAbility250.setStatusInfo(statusInfo); + } + } + + public void setChassisStates(ChassisStatesOuterClass.ChassisStates chassisStates) { + if (autopilotAbility230 != null) { + autopilotAbility230.setChassisStates(chassisStates); + } + if (autopilotAbility250 != null) { + autopilotAbility250.setChassisStates(chassisStates); + } + } + + public void onHandleMessage(Message msg) { + if (autopilotAbility250 != null) { + autopilotAbility250.onHandleMessage(msg); + } + } + + private void initAutopilotAbility() { + if (dockerVersion >= 250) { + stop230(); + if (autopilotAbility250 == null) { + autopilotAbility250 = new AutopilotAbility250(); + autopilotAbility250.start(); + } + } else { + stop250(); + if (autopilotAbility230 == null) { + autopilotAbility230 = new AutopilotAbility230(); + autopilotAbility230.start(); + } + + } + } + + private void stop230() { + if (autopilotAbility230 != null) { + autopilotAbility230.stop(); + autopilotAbility230 = null; + } + } + + private void stop250() { + if (autopilotAbility250 != null) { + autopilotAbility250.stop(); + autopilotAbility250 = null; + } + } + + private void stopTimer() { + if (startTimer != null) { + startTimer.cancel(); + startTimer = null; + } + } + + /** + * 连接工控机成功调用此函数,如果dockerVersion还未获取到将启动最低版本的启动自动驾驶能力检测 + * 此函数为保险措施 以防无法获取工控机版本时 也能 正常执行逻辑 + */ + public synchronized void start() { + if (startTimer == null) { + startTimer = new Timer(); + startTimer.schedule(new TimerTask() { + @Override + public void run() { + if (dockerVersion == -1 && AdasManager.getInstance().getIpcConnectionStatus() == Constants.IPC_CONNECTION_STATUS.CONNECTED) { + dockerVersion = 230; + initAutopilotAbility(); + } + } + }, 8000L);//延迟执行,避免刚连接成功后底盘信息无法及时同步 + } + + } + + public synchronized void stop() { + stopTimer(); + stop230(); + stop250(); + handler = null; + dockerVersion = -1; + } + + + /** + * 解析版本 格式 xxx.xxx.xxx(x的数量不固定) + * + * @param isUserAll 是否使用全部截取数据 true:表示 12.34.56 截取之后 123456 false:表示12.34.56 截取之后 12 + * @param ver 版本字符串 + * @return -1表示解析失败 + */ + public int parseVersion(boolean isUserAll, String ver) { + int version = -1; + if (!TextUtils.isEmpty(ver)) { + try { + Matcher matcher = pattern.matcher(ver); + if (matcher.find()) { + String group = matcher.group(); + if (!TextUtils.isEmpty(group)) { + if (isUserAll) { + group = group.replace(".", ""); + } else { + group = group.split("\\.")[0]; + } + version = Integer.parseInt(group); + } + } + } catch (Exception e) { + CupidLogUtils.e(TAG, "版本解析失败=" + ver, e); + } + } + return version; + } + + /** + * 金旅、开沃小巴乘客端 + */ + public boolean isBusPassenger() { + return IDENTITY_MODE.BUS_PASSENGER_BASE.equalsIgnoreCase(identityMode); + } + + /** + * 开沃小巴司机端 + */ + public boolean isBusDriverVan() { + return IDENTITY_MODE.BUS_DRIVER_VAN.equalsIgnoreCase(identityMode); + } + + /** + * 金旅小巴司机端 + */ + public boolean isBusDriver() { + return IDENTITY_MODE.BUS_DRIVER_BASE.equalsIgnoreCase(identityMode); + } + + /** + * 福田清扫车司机端 + */ + public boolean isSweeperDriverFutian() { + return IDENTITY_MODE.SWEEPER_DRIVER_FT.equalsIgnoreCase(identityMode); + } +} diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/CarConfigRespMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/CarConfigRespMessage.java index 61c6d1b9f4..7a63aed0b6 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/CarConfigRespMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/CarConfigRespMessage.java @@ -7,6 +7,7 @@ import com.zhidao.support.adas.high.AdasChannel; import com.zhidao.support.adas.high.AdasManager; import com.zhidao.support.adas.high.OnAdasListener; import com.zhidao.support.adas.high.common.CupidLogUtils; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import com.zhidao.support.adas.high.protocol.RawData; import mogo.telematics.pad.MessagePad; @@ -20,6 +21,7 @@ public class CarConfigRespMessage extends MyAbstractMessageHandler { public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException { MessagePad.CarConfigResp carConfigResp = MessagePad.CarConfigResp.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue()); AdasChannel.calculateTimeConsumingOnDispatchRaw("车机基础信息应答", raw.receiveTime); + AutopilotAbilityManager.getInstance().setCarConfig(carConfigResp); AdasManager.getInstance().setCarConfig(carConfigResp); long nowTime = 0; if (CupidLogUtils.isEnableLog()) diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/ChassisStatesMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/ChassisStatesMessage.java index 081a1a9a58..edb7d6f1a0 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/ChassisStatesMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/ChassisStatesMessage.java @@ -2,7 +2,7 @@ package com.zhidao.support.adas.high.msg; import com.google.protobuf.InvalidProtocolBufferException; import com.zhidao.support.adas.high.OnAdasListener; -import com.zhidao.support.adas.high.common.AutopilotAbilityManager; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import com.zhidao.support.adas.high.protocol.RawData; import chassis.ChassisStatesOuterClass; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/StatusQueryRespMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/StatusQueryRespMessage.java index be81f42258..2d37f3ced7 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/StatusQueryRespMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/StatusQueryRespMessage.java @@ -5,7 +5,7 @@ import android.os.SystemClock; import com.google.protobuf.InvalidProtocolBufferException; import com.zhidao.support.adas.high.AdasChannel; import com.zhidao.support.adas.high.OnAdasListener; -import com.zhidao.support.adas.high.common.AutopilotAbilityManager; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import com.zhidao.support.adas.high.common.CupidLogUtils; import com.zhidao.support.adas.high.protocol.RawData; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java index 0b3575b12a..567249f372 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java @@ -5,7 +5,7 @@ import android.os.SystemClock; import com.google.protobuf.InvalidProtocolBufferException; import com.zhidao.support.adas.high.AdasChannel; import com.zhidao.support.adas.high.OnAdasListener; -import com.zhidao.support.adas.high.common.AutopilotAbilityManager; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import com.zhidao.support.adas.high.common.CupidLogUtils; import com.zhidao.support.adas.high.protocol.RawData; @@ -141,7 +141,7 @@ public class VehicleStateMessage extends MyAbstractMessageHandler { ChassisStatesOuterClass.GearSystemStates.Builder gearSystemStates = null; if (vehicleState.hasGear()) { gearSystemStates = ChassisStatesOuterClass.GearSystemStates.newBuilder(); - //挂挡档位数据 + //档位数据 gearSystemStates.setGearPosition(vehicleState.getGear());//鹰眼已用 } if (vehicleState.hasGearSwitchInference()) { From 961e1eb102ad965a4f5c4656f2ea9e5f1d692983 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Tue, 21 Feb 2023 16:58:06 +0800 Subject: [PATCH 15/30] =?UTF-8?q?[opt3.0][adas=20lib]=20=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E9=A9=BE=E9=A9=B6=E5=90=AF=E5=8A=A8=E7=BB=9F=E8=AE=A1=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E4=B8=8B=E6=B2=89=E5=88=B0adas-data=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/manager/OCHAdasAbilityManager.java | 2 +- .../zhidao/adas/client/ui/MainActivity.java | 2 +- .../zhidao/adas/magic/ui/MainActivity.java | 2 +- .../autopilot/adapter/MoGoAdasListenerImpl.kt | 2 +- .../IMoGoAutopilotStatisticsListener.kt | 2 +- ...allerAutopilotStatisticsListenerManager.kt | 2 +- .../adas/data}/bean/AutopilotStatistics.java | 27 ++++++++++++++----- .../zhidao/support/adas/high/AdasChannel.java | 2 +- .../support/adas/high/OnAdasListener.java | 2 +- .../adas/high/common/AutopilotReview.java | 9 ++++--- .../support/adas/high/common/Constants.java | 17 ------------ .../support/adas/high/common/Define.java | 7 ++--- 12 files changed, 38 insertions(+), 38 deletions(-) rename libraries/{mogo-adas/src/main/java/com/zhidao/support/adas/high => mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data}/bean/AutopilotStatistics.java (55%) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java index 83332d1bb8..e97c0b6b34 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java @@ -10,7 +10,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotActionsListene import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotStatisticsListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; -import com.zhidao.support.adas.high.bean.AutopilotStatistics; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; /** * Created on 2022/10/9 diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index 50ddaa22bc..08ae38336b 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -100,7 +100,7 @@ import com.zhidao.support.adas.high.AdasOptions; import com.zhidao.support.adas.high.OnAdasConnectStatusListener; import com.zhidao.support.adas.high.OnAdasListener; import com.zhidao.support.adas.high.OnMultiDeviceListener; -import com.zhidao.support.adas.high.bean.AutopilotStatistics; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import com.zhidao.support.adas.high.bean.VersionCompatibility; import com.zhidao.support.adas.high.common.ByteUtil; import com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS; diff --git a/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/ui/MainActivity.java b/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/ui/MainActivity.java index 685f84610c..3c1ea13ce0 100644 --- a/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/ui/MainActivity.java +++ b/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/ui/MainActivity.java @@ -45,7 +45,7 @@ import com.zhidao.support.adas.high.AdasManager; import com.zhidao.support.adas.high.AdasOptions; import com.zhidao.support.adas.high.OnAdasConnectStatusListener; import com.zhidao.support.adas.high.OnAdasListener; -import com.zhidao.support.adas.high.bean.AutopilotStatistics; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import com.zhidao.support.adas.high.bean.VersionCompatibility; import com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS; import com.zhidao.support.adas.high.common.CupidLogUtils; diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt index 6374bb350c..8247a0ea90 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -59,7 +59,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.support.obu.ObuScene import com.zhidao.support.adas.high.AdasManager import com.zhidao.support.adas.high.OnAdasListener -import com.zhidao.support.adas.high.bean.AutopilotStatistics +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics import com.zhidao.support.adas.high.common.ProtocolStatus import com.zhjt.service.chain.ChainLog import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatisticsListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatisticsListener.kt index 8bb5d83d75..f084eeeb5c 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatisticsListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatisticsListener.kt @@ -1,6 +1,6 @@ package com.mogo.eagle.core.function.api.autopilot -import com.zhidao.support.adas.high.bean.AutopilotStatistics +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics /** * 启动自动驾驶状态统计监听 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotStatisticsListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotStatisticsListenerManager.kt index ef6b958436..f4940f5b4f 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotStatisticsListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotStatisticsListenerManager.kt @@ -2,7 +2,7 @@ package com.mogo.eagle.core.function.call.autopilot import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatisticsListener import com.mogo.eagle.core.function.call.base.CallerBase -import com.zhidao.support.adas.high.bean.AutopilotStatistics +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics object CallerAutopilotStatisticsListenerManager : CallerBase() { diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/bean/AutopilotStatistics.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AutopilotStatistics.java similarity index 55% rename from libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/bean/AutopilotStatistics.java rename to libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AutopilotStatistics.java index c7aff7feee..487e386140 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/bean/AutopilotStatistics.java +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AutopilotStatistics.java @@ -1,23 +1,38 @@ -package com.zhidao.support.adas.high.bean; +package com.zhjt.mogo.adas.data.bean; -import com.zhidao.support.adas.high.common.Define; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; /** - * 自动驾驶启动统计 todo 凤坤,后续封装成pb,或者放入adas-data + * 自动驾驶启动统计 */ public class AutopilotStatistics { + /** + * 启动自动驾驶后的状态 + */ + public interface AUTOPILOT_START_STATUS { + /** + * 成功 + */ + int SUCCESSFUL = 0; + /** + * 失败 + */ + int FAILED = 1; + /** + * 取消 + */ + int CANCEL = 2; + } /** * 启动自动驾驶后状态 * 0 成功 * 1 失败 * 2 取消 - * {@link com.zhidao.support.adas.high.common.Constants.AUTOPILOT_START_STATUS} + * {@link AUTOPILOT_START_STATUS} */ - @Define.AutopilotStartStatus public final int status; /** @@ -36,7 +51,7 @@ public class AutopilotStatistics { */ public final MogoReportMsg.MogoReportMessage failedMessage; - public AutopilotStatistics(@Define.AutopilotStartStatus int status, long usedTime, MessagePad.SetAutopilotModeReq req, MogoReportMsg.MogoReportMessage failedMessage) { + public AutopilotStatistics(int status, long usedTime, MessagePad.SetAutopilotModeReq req, MogoReportMsg.MogoReportMessage failedMessage) { this.status = status; this.usedTime = usedTime; this.req = req; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index 298d893a2c..b174d75da2 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -21,7 +21,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.google.protobuf.InvalidProtocolBufferException; -import com.zhidao.support.adas.high.bean.AutopilotStatistics; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import com.zhidao.support.adas.high.bean.VersionCompatibility; import com.zhidao.support.adas.high.common.AutopilotReview; import com.zhidao.support.adas.high.common.ByteUtil; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java index ff3d6b8b67..8a5318bf1e 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java @@ -1,7 +1,7 @@ package com.zhidao.support.adas.high; import com.mogo.support.obu.ObuScene; -import com.zhidao.support.adas.high.bean.AutopilotStatistics; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import com.zhidao.support.adas.high.common.ProtocolStatus; import bag_manager.BagManagerOuterClass; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotReview.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotReview.java index 16f62686fd..3ad3ca761b 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotReview.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotReview.java @@ -4,7 +4,8 @@ import android.os.SystemClock; import androidx.annotation.NonNull; -import com.zhidao.support.adas.high.bean.AutopilotStatistics; + +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import java.util.Timer; import java.util.TimerTask; @@ -60,7 +61,7 @@ public class AutopilotReview { startReq = req; startTime = SystemClock.elapsedRealtime(); } else { - onCallback(Constants.AUTOPILOT_START_STATUS.CANCEL); + onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.CANCEL); } } @@ -72,7 +73,7 @@ public class AutopilotReview { public void onReportResult(MogoReportMsg.MogoReportMessage message) { if (startReq != null && message != null) { failedMessage = message; - onCallback(Constants.AUTOPILOT_START_STATUS.FAILED); + onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.FAILED); } } @@ -83,7 +84,7 @@ public class AutopilotReview { */ public void onAutopilotResult(MessagePad.AutopilotState state) { if (startReq != null && state != null && state.getState() == 2) { - onCallback(Constants.AUTOPILOT_START_STATUS.SUCCESSFUL); + onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.SUCCESSFUL); } } } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java index 2591484ac9..503d7f8eb2 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java @@ -110,23 +110,6 @@ public class Constants { } - /** - * 启动自动驾驶后的状态 - */ - public interface AUTOPILOT_START_STATUS { - /** - * 成功 - */ - int SUCCESSFUL = 0; - /** - * 失败 - */ - int FAILED = 1; - /** - * 取消 - */ - int CANCEL = 2; - } /** * 使用底盘数据类型 diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java index 4ef4b6830c..598ccc3f8c 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java @@ -3,6 +3,7 @@ package com.zhidao.support.adas.high.common; import androidx.annotation.IntDef; import com.zhidao.support.adas.high.bean.VersionCompatibility; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -47,9 +48,9 @@ public final class Define { public @interface SubscribeType { } - @IntDef(flag = true, value = {Constants.AUTOPILOT_START_STATUS.SUCCESSFUL, - Constants.AUTOPILOT_START_STATUS.FAILED, - Constants.AUTOPILOT_START_STATUS.CANCEL}) + @IntDef(flag = true, value = {AutopilotStatistics.AUTOPILOT_START_STATUS.SUCCESSFUL, + AutopilotStatistics.AUTOPILOT_START_STATUS.FAILED, + AutopilotStatistics.AUTOPILOT_START_STATUS.CANCEL}) @Retention(RetentionPolicy.SOURCE) public @interface AutopilotStartStatus { } From 36f49d3a51ce6a6eccf609227bf8c151f6d2a0fb Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Thu, 12 Jan 2023 16:15:49 +0800 Subject: [PATCH 16/30] =?UTF-8?q?[2.13.2][fix]=E8=A7=A3=E5=86=B3=E6=B1=87?= =?UTF-8?q?=E6=80=BB=E6=B6=88=E6=81=AF=E5=9B=BE=E6=A0=87=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit f04d790c7389af33d4efa2e24a1b90f30e7594cd) --- .../mogo/eagle/core/function/msgbox/DataManager.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt index 4e0cb392df..e17b432a38 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt @@ -87,7 +87,16 @@ object DataManager { msg.timestamp = System.currentTimeMillis() msg.bean2Json = GsonUtils.toJson(msg.bean) when (type) { - MsgBoxType.V2X, MsgBoxType.OBU, MsgBoxType.NOTICE, MsgBoxType.OPERATION -> { + MsgBoxType.V2X -> { + // 汇总消息不存数据库 + if (msg.sourceType != DataSourceType.SUMMARY) { + synchronized(this) { + notifyList.add(msg) + } + } + CallerMsgBoxListenerManager.invokeListener(MsgCategory.NOTICE, msg) + } + MsgBoxType.OBU, MsgBoxType.NOTICE, MsgBoxType.OPERATION -> { synchronized(this) { notifyList.add(msg) } From 0f17b2185f7ea074bb44b9dc95f81e6ded273e4c Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 20 Feb 2023 12:02:44 +0800 Subject: [PATCH 17/30] =?UTF-8?q?[2.14.0][Opt]=E5=8D=87=E7=BA=A7=E9=AB=98?= =?UTF-8?q?=E5=BE=B7=E5=9C=B0=E5=9B=BE=E7=89=88=E6=9C=AC=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/map/OfflineMapDialog.kt | 10 +++++ .../mogo-core-function-map/build.gradle | 1 - .../call/map/CallerMapUIServiceManager.kt | 4 ++ .../com/mogo/map/hdcache/IHdCacheListener.kt | 2 + .../uicontroller/IMogoMapUIController.java | 2 + .../java/com/mogo/map/AMapViewWrapper.java | 42 +++++++++++++++---- .../com/mogo/map/MogoMapUIController.java | 7 ++++ .../map/uicontroller/AMapUIController.java | 7 ++++ 8 files changed, 66 insertions(+), 9 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt index 0adbe08c49..b1db9d6a14 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt @@ -81,6 +81,9 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { } okView?.setOnClickListener { + if (isLoading) { + CallerMapUIServiceManager.cancelDownloadCacheData() + } dismiss() } } @@ -90,6 +93,12 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { override fun onMapHdCacheProgress(cityId: Int, progress: Double) { updateProgress(progress.toInt()) } + + override fun onMapHdCacheResult(cityId: Int, state: Int) { + if (state == 0) {// 失败 + showNewContent(isLoading = false, false) + } + } }) } @@ -131,6 +140,7 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { @SuppressLint("UseCompatLoadingForDrawables") private fun showNewContent(isLoading: Boolean, isSuccess: Boolean) { + this.isLoading = isLoading change2NewStyle() when { isLoading -> { diff --git a/core/function-impl/mogo-core-function-map/build.gradle b/core/function-impl/mogo-core-function-map/build.gradle index 0cf7bfaf30..87b0a3c14a 100644 --- a/core/function-impl/mogo-core-function-map/build.gradle +++ b/core/function-impl/mogo-core-function-map/build.gradle @@ -60,7 +60,6 @@ dependencies { implementation rootProject.ext.dependencies.mogocustommap implementation rootProject.ext.dependencies.amapnavi3dmap -// implementation rootProject.ext.dependencies.amaplocation implementation rootProject.ext.dependencies.androidxroomruntime kapt rootProject.ext.dependencies.androidxroomcompiler diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt index 1c5104a623..bf7f44b92b 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt @@ -46,4 +46,8 @@ object CallerMapUIServiceManager { fun getGDLocationServer(context: Context): IMogoGDLocationClient?{ return serviceProvider?.getGDLocationServer(context) } + + fun cancelDownloadCacheData() { + serviceProvider?.mapUIController?.cancelDownloadCacheData() + } } \ No newline at end of file diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/hdcache/IHdCacheListener.kt b/libraries/mogo-map-api/src/main/java/com/mogo/map/hdcache/IHdCacheListener.kt index 4761e40fff..9492c60ba7 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/hdcache/IHdCacheListener.kt +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/hdcache/IHdCacheListener.kt @@ -2,4 +2,6 @@ package com.mogo.map.hdcache interface IHdCacheListener { fun onMapHdCacheProgress(cityId: Int, progress: Double) + + fun onMapHdCacheResult(cityId: Int, state: Int)// 0失败,1成功 } \ No newline at end of file diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index 8235fe8a36..93093c74f7 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -358,4 +358,6 @@ public interface IMogoMapUIController { * @return */ boolean isCityDataCached(); + + void cancelDownloadCacheData(); } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 68c15404f3..0becb4a9c9 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -58,6 +58,7 @@ import com.mogo.map.utils.ResIdCache; import com.zhidaoauto.map.sdk.open.MapAutoApi; import com.zhidaoauto.map.sdk.open.abs.MapStatusListener; import com.zhidaoauto.map.sdk.open.abs.OnCameraChangeListener; +import com.zhidaoauto.map.sdk.open.abs.OnHdDataDownByCityListener; import com.zhidaoauto.map.sdk.open.abs.OnMapClickListener; import com.zhidaoauto.map.sdk.open.abs.OnMapLoadedListener; import com.zhidaoauto.map.sdk.open.abs.OnMapStyleListener; @@ -1051,17 +1052,35 @@ public class AMapViewWrapper implements IMogoMapView, Integer id = HDMapUtils.getHDCityCode(gdCityCode); if (id != null) { hdCacheListener = listener; - mMapView.getMapAutoViewHelper().cacheHDDataByCity(id, (cityId, progress) -> { - if (Thread.currentThread() == Looper.getMainLooper().getThread()) { - if (hdCacheListener != null) { - hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); - } - } else { - UiThreadHandler.post(() -> { + mMapView.getMapAutoViewHelper().cacheHDDataByCity(id, new OnHdDataDownByCityListener() { + @Override + public void onMapHDDataCacheProgressByCity(int cityId, double progress) { + if (Thread.currentThread() == Looper.getMainLooper().getThread()) { if (hdCacheListener != null) { hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); } - }); + } else { + UiThreadHandler.post(() -> { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); + } + }); + } + } + + @Override + public void onMapHDDataCacheStateByCity(int i, int state) {// 0失败,1成功 + if (Thread.currentThread() == Looper.getMainLooper().getThread()) { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheResult(i, state); + } + } else { + UiThreadHandler.post(() -> { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheResult(i, state); + } + }); + } } }); } @@ -1086,4 +1105,11 @@ public class AMapViewWrapper implements IMogoMapView, } return true; } + + @Override + public void cancelDownloadCacheData() { + if (mMapView.getMapAutoViewHelper() != null) { + mMapView.getMapAutoViewHelper().cancelCacheHDData(); + } + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index fbbb4ab578..4dca845c89 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -466,4 +466,11 @@ public class MogoMapUIController implements IMogoMapUIController { } return true; } + + @Override + public void cancelDownloadCacheData() { + if (mDelegate != null) { + mDelegate.cancelDownloadCacheData(); + } + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java index f48f36cc66..98bc405067 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java @@ -405,4 +405,11 @@ public class AMapUIController implements IMogoMapUIController { } return true; } + + @Override + public void cancelDownloadCacheData() { + if (mClient != null) { + mClient.cancelDownloadCacheData(); + } + } } From eb12c0d4bcbdd6e936b9ada1a50bc62e772e1b10 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 20 Feb 2023 13:31:49 +0800 Subject: [PATCH 18/30] =?UTF-8?q?[2.14.0][Fix]=E8=A7=A3=E5=86=B3Taxi?= =?UTF-8?q?=E4=B9=98=E5=AE=A2=E5=B1=8F=E6=89=93=E5=8C=85=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java index 213ab2d358..c43702af78 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java @@ -55,10 +55,10 @@ public class TaxiPassengerGeocodeSearchModel implements GeocodeSearch.OnGeocodeS //通过经纬度逆地理编码得到位置 try { mGeocodeSearch = new GeocodeSearch(mContext); + mGeocodeSearch.setOnGeocodeSearchListener(this); } catch (AMapException e) { e.printStackTrace(); } - mGeocodeSearch.setOnGeocodeSearchListener(this); timer = new Timer(); timerTask = new TimerTask() { @Override From 24bb64cf3f9e21fc7466abd8302df0a1a6ce6e38 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 20 Feb 2023 18:52:03 +0800 Subject: [PATCH 19/30] =?UTF-8?q?[2.14.0][Fix]=E8=A7=A3=E5=86=B3=E9=AB=98?= =?UTF-8?q?=E7=B2=BE=E5=9C=B0=E5=9B=BE=E7=BC=93=E5=AD=98=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E7=8A=B6=E6=80=81=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/core/function/call/map/CallerMapUIServiceManager.kt | 2 +- .../mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java | 2 +- .../src/main/java/com/mogo/map/MogoMapUIController.java | 2 +- .../main/java/com/mogo/map/uicontroller/AMapUIController.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt index bf7f44b92b..6db8e65512 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt @@ -36,7 +36,7 @@ object CallerMapUIServiceManager { } fun isCityDataCached(): Boolean { - return serviceProvider?.mapUIController?.isCityDataCached ?: true + return serviceProvider?.mapUIController?.isCityDataCached ?: false } fun getOverlayManager(): IMogoOverlayManager?{ diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 0becb4a9c9..09aea37182 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -1103,7 +1103,7 @@ public class AMapViewWrapper implements IMogoMapView, } } } - return true; + return false; } @Override diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index 4dca845c89..9554442fea 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -464,7 +464,7 @@ public class MogoMapUIController implements IMogoMapUIController { if (mDelegate != null) { return mDelegate.isCityDataCached(); } - return true; + return false; } @Override diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java index 98bc405067..090f1ccbd4 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java @@ -403,7 +403,7 @@ public class AMapUIController implements IMogoMapUIController { if (mClient != null) { return mClient.isCityDataCached(); } - return true; + return false; } @Override From c37d2b162df9ca825e42dd13e0c4edf11d460b30 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 21 Feb 2023 16:20:49 +0800 Subject: [PATCH 20/30] =?UTF-8?q?[2.14.0][Fix]=E8=A7=A3=E5=86=B3=E9=AB=98?= =?UTF-8?q?=E7=B2=BE=E5=9C=B0=E5=9B=BE=E7=BC=93=E5=AD=98=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt index b1db9d6a14..e7c083b27e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt @@ -60,8 +60,8 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { leftView?.setOnClickListener { when { isConfirm -> { - cacheHDOfflineData() showNewContent(isLoading = true, false) + cacheHDOfflineData() } else -> { dismiss() @@ -72,6 +72,7 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { rightView?.setOnClickListener { when { isRetry -> { + showNewContent(isLoading = true, false) cacheHDOfflineData() } else -> { @@ -160,11 +161,14 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { downloadResultImg?.background = ContextCompat.getDrawable(context, R.drawable.download_success_icon) } else -> { + isRetry = true + isConfirm = false offlineTitleView?.text = context.resources.getString(R.string.offline_download_failure) okView?.visibility = View.GONE progressBar?.visibility = View.GONE downloadPercentView?.visibility = View.GONE leftView?.visibility = View.VISIBLE + leftView?.text = context.resources.getString(R.string.ok_tip) rightView?.visibility = View.VISIBLE vertLineView?.visibility = View.VISIBLE rightView?.text = context.resources.getString(R.string.retry) From 189521c508ebaabd12db4af264e9a0d3b24028a0 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 21 Feb 2023 16:21:18 +0800 Subject: [PATCH 21/30] =?UTF-8?q?[2.14.0][Fix]=E8=A7=A3=E5=86=B3=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E6=97=B6=E5=B0=91=E5=AF=BC=E5=8C=85=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt index e17b432a38..9dc9637ff1 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt @@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.msgbox import android.content.Context import android.os.Looper +import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.msgbox.* import com.mogo.eagle.core.data.report.ReportEntity import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager From 6fa458a31fd91118396d0fe898449b57b79df959 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 21 Feb 2023 17:12:28 +0800 Subject: [PATCH 22/30] =?UTF-8?q?[Opt3.0][Update]=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E6=B4=B1=E6=B5=B7=E5=9C=B0=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 84fbc00de8..0af01e8d99 100644 --- a/gradle.properties +++ b/gradle.properties @@ -85,7 +85,7 @@ MOGO_LOCATION_VERSION=1.4.4.7 MOGO_TELEMATIC_VERSION=1.4.4.7 ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=2.10.0.2_test_01 +MAP_SDK_VERSION=2.10.0.9 MAP_SDK_OPERATION_VERSION=1.1.4.1 # websocket WEBSOCKET_VERSION=1.1.7 From b976791e0ebf3d2f993b714298d53d2a2268cbfe Mon Sep 17 00:00:00 2001 From: donghongyu Date: Tue, 21 Feb 2023 18:17:01 +0800 Subject: [PATCH 23/30] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[?= =?UTF-8?q?=201=E3=80=81=E8=A7=A3=E9=99=A4=E6=95=B0=E6=8D=AE=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E5=AF=B9=E9=AB=98=E5=BE=B7=E5=9C=B0=E5=9B=BE=E7=9A=84?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../build.gradle | 1 - .../location/MoGoLocationDispatcher.kt | 105 +++---------- .../map/listener/IGaoDeMapLocationListener.kt | 2 +- .../CallerGaoDeMapLocationListenerManager.kt | 24 +++ .../mogo/map/location/GDLocationClient.java | 101 ------------ .../com/mogo/map/location/GDLocationClient.kt | 147 ++++++++++++++++++ 6 files changed, 192 insertions(+), 188 deletions(-) create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerGaoDeMapLocationListenerManager.kt delete mode 100644 libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.java create mode 100644 libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.kt diff --git a/core/function-impl/mogo-core-function-datacenter/build.gradle b/core/function-impl/mogo-core-function-datacenter/build.gradle index 70e7c4ac08..fab4051ccf 100644 --- a/core/function-impl/mogo-core-function-datacenter/build.gradle +++ b/core/function-impl/mogo-core-function-datacenter/build.gradle @@ -55,7 +55,6 @@ dependencies { implementation rootProject.ext.dependencies.androidxroomktx implementation rootProject.ext.dependencies.mogoaicloudtelematic - implementation rootProject.ext.dependencies.amapnavi3dmap implementation project(':libraries:mogo-obu') implementation project(':libraries:mogo-adas') diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt index dc052cf491..945490bfd2 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt @@ -1,26 +1,21 @@ package com.mogo.eagle.core.function.datacenter.location -import com.amap.api.location.AMapLocation -import com.amap.api.location.AMapLocationClient -import com.amap.api.location.AMapLocationClientOption -import com.amap.api.location.AMapLocationListener import com.mogo.commons.AbsMogoApplication import com.mogo.commons.constants.SharedPrefsConstants import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisGnssListener +import com.mogo.eagle.core.function.api.map.listener.IGaoDeMapLocationListener import com.mogo.eagle.core.function.api.obu.IMoGoObuLocationWGS84Listener import com.mogo.eagle.core.function.call.autopilot.CallerChassisGnssListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager +import com.mogo.eagle.core.function.call.map.CallerGaoDeMapLocationListenerManager import com.mogo.eagle.core.function.call.obu.CallerObuLocationWGS84ListenerManager import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr -import com.mogo.eagle.core.utilcode.util.CoordinateTransform import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils import com.mogo.eagle.core.utilcode.util.TimeUtils -import com.mogo.eagle.core.utilcode.util.Utils -import com.mogo.support.obu.model.MogoObuHvBasicsData import mogo.telematics.pad.MessagePad /** @@ -31,12 +26,11 @@ import mogo.telematics.pad.MessagePad object MoGoLocationDispatcher : IMoGoChassisGnssListener, IMoGoObuLocationWGS84Listener, - AMapLocationListener { + IGaoDeMapLocationListener { private const val TAG = "MoGoLocationManager" private var mCityCode: String? = null - private var mapLocation: AMapLocation? = null /** * 最后一次工控机GNSS返回更新的位置 @@ -54,33 +48,10 @@ object MoGoLocationDispatcher : private var lastGaoDeLocation: MogoLocation = MogoLocation() fun initListener() { - // 高德SDK隐私政策 - AMapLocationClient.updatePrivacyShow(Utils.getApp(), true, true) - AMapLocationClient.updatePrivacyAgree(Utils.getApp(), true) - - try { - val mLocationClient = AMapLocationClient(Utils.getApp()) - - //初始化定位参数 - //声明mLocationOption对象 - val mLocationOption = AMapLocationClientOption() - //设置定位监听 - mLocationClient.setLocationListener(this) - //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式 - mLocationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy - //设置定位间隔,单位毫秒,默认为2000ms - mLocationOption.interval = 1000 - //设置定位参数 - mLocationClient.setLocationOption(mLocationOption) - // 启动定位监听 - mLocationClient.startLocation() - } catch (e: Exception) { - e.printStackTrace() - } - // 初始化监听订阅工控机位置信息 CallerChassisGnssListenerManager.addListener(TAG, this) CallerObuLocationWGS84ListenerManager.addListener(TAG, this) + CallerGaoDeMapLocationListenerManager.addListener(TAG, this) } override fun onChassisGnss(gnssInfo: MessagePad.GnssInfo) { @@ -88,13 +59,13 @@ object MoGoLocationDispatcher : lastGnssLocation.gnssInfo = gnssInfo lastGnssLocation.lastReceiveTime = TimeUtils.getNowMills() // 将高德中的一些用于业务的数据进行融合,例如:CityCode、address等 - mapLocation?.let { + lastGaoDeLocation.let { //agps 高德 //agps_rtk 高德-高精 lastGnssLocation.locType = 1000 // 定位类型为WGS84进行转译的坐标 lastGnssLocation.satellite = 4 - lastGnssLocation.cityName = it.city + lastGnssLocation.cityName = it.cityName lastGnssLocation.cityCode = it.cityCode lastGnssLocation.provider = it.provider lastGnssLocation.address = it.address @@ -128,79 +99,42 @@ object MoGoLocationDispatcher : MultiDisplayUtils.getOtherDisplay() } + /** * 高德地图位置改变回调 - * @param aMapLocation 位置信息 + * @param mogoLocation 位置信息 */ - override fun onLocationChanged(aMapLocation: AMapLocation) { - mapLocation = aMapLocation - // 更新GNSS 信息 - lastGaoDeLocation.lastReceiveTime = TimeUtils.getNowMills() - - // 将高德中的一些用于业务的数据进行融合,例如:CityCode、address等 - mapLocation?.let { - // 转换 GCJ02-->WGS84 坐标 - val wgs84Location = - CoordinateTransform.GCJ02ToWGS84(it.longitude, it.latitude) - - lastGaoDeLocation.longitude = wgs84Location[0] - lastGaoDeLocation.latitude = wgs84Location[1] - lastGaoDeLocation.heading = it.bearing.toDouble() - lastGaoDeLocation.gnssSpeed = it.speed - lastGaoDeLocation.altitude = it.altitude - lastGaoDeLocation.satelliteTime = it.time - lastGaoDeLocation.lastReceiveTime = TimeUtils.getNowMills() - - lastGaoDeLocation.locType = 1 // 定位类型为高德坐标(网路或者硬件定位) - lastGaoDeLocation.satellite = 4 - - lastGaoDeLocation.cityName = it.city - lastGaoDeLocation.cityCode = it.cityCode - lastGaoDeLocation.provider = it.provider - lastGaoDeLocation.address = it.address - lastGaoDeLocation.district = it.district - lastGaoDeLocation.province = it.province - lastGaoDeLocation.adCode = it.adCode - lastGaoDeLocation.locationDetail = it.locationDetail - lastGaoDeLocation.poiName = it.poiName - lastGaoDeLocation.aoiName = it.aoiName - lastGaoDeLocation.street = it.street - lastGaoDeLocation.streetNum = it.streetNum - lastGaoDeLocation.description = it.description - lastGaoDeLocation.buildingId = it.buildingId - lastGaoDeLocation.floor = it.floor - lastGaoDeLocation.errorCode = it.errorCode - lastGaoDeLocation.errorInfo = it.errorInfo - } + override fun onMoGoLocationChanged(mogoLocation: MogoLocation) { + // 更新GaoDe 信息 + lastGaoDeLocation = mogoLocation // 计算最后一次工控机同步的定位是否超时,如果超时则切换为高德地图定位,暂定超过30秒需要切换 if (1 == FunctionBuildConfig.gpsProvider) { - if (TimeUtils.getNowMills() - lastGnssLocation.lastReceiveTime > 30000) { + if (TimeUtils.getNowMills() - lastGnssLocation.lastReceiveTime > 10000) { syncGaoDeLocation() } } else if (2 == FunctionBuildConfig.gpsProvider) { - if (TimeUtils.getNowMills() - lastOBULocation.lastReceiveTime > 30000) { + if (TimeUtils.getNowMills() - lastOBULocation.lastReceiveTime > 10000) { syncGaoDeLocation() } } - // 本地SP缓存城市Code - val cityCode = aMapLocation.cityCode + val cityCode = mogoLocation.cityCode if (cityCode != null && cityCode.isNotEmpty()) { - mCityCode = aMapLocation.cityCode + mCityCode = mogoLocation.cityCode SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()) .putString(SharedPrefsConstants.LOCATION_CITY_CODE, cityCode) SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()) .putString( SharedPrefsConstants.LOCATION_LATITUDE, - aMapLocation.latitude.toString() + mogoLocation.latitude.toString() ) SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()) .putString( SharedPrefsConstants.LOCATION_LONGITUDE, - aMapLocation.longitude.toString() + mogoLocation.longitude.toString() ) } @@ -236,13 +170,13 @@ object MoGoLocationDispatcher : lastOBULocation.lastReceiveTime = TimeUtils.getNowMills() // 将高德中的一些用于业务的数据进行融合,例如:CityCode、address等 - mapLocation?.let { + lastGaoDeLocation.let { //agps 高德 //agps_rtk 高德-高精 lastOBULocation.locType = 1000 // 定位类型为WGS84进行转译的坐标 lastOBULocation.satellite = 4 - lastOBULocation.cityName = it.city + lastOBULocation.cityName = it.cityName lastOBULocation.cityCode = it.cityCode lastOBULocation.provider = it.provider lastOBULocation.address = it.address @@ -274,4 +208,5 @@ object MoGoLocationDispatcher : ) } } + } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/listener/IGaoDeMapLocationListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/listener/IGaoDeMapLocationListener.kt index 872df234ce..e45c2b085d 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/listener/IGaoDeMapLocationListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/listener/IGaoDeMapLocationListener.kt @@ -14,5 +14,5 @@ interface IGaoDeMapLocationListener { * * @param location 新定位点 */ - fun onLocationChanged(location: MogoLocation, from: Int, isGps: Boolean) + fun onMoGoLocationChanged(location: MogoLocation) } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerGaoDeMapLocationListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerGaoDeMapLocationListenerManager.kt new file mode 100644 index 0000000000..5c0f09e2dd --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerGaoDeMapLocationListenerManager.kt @@ -0,0 +1,24 @@ +package com.mogo.eagle.core.function.call.map + +import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.function.api.map.listener.IGaoDeMapLocationListener +import com.mogo.eagle.core.function.call.base.CallerBase + +/** + * 高德地图定位监听 + */ +object CallerGaoDeMapLocationListenerManager : CallerBase() { + + /** + * 高德位置改变监听 + */ + @Synchronized + fun invokeMoGoLocationChanged(location: MogoLocation) { + M_LISTENERS.forEach { + val tag = it.key + val listener = it.value + listener.onMoGoLocationChanged(location) + } + } + +} \ No newline at end of file diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.java b/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.java deleted file mode 100644 index 2dfa892d3d..0000000000 --- a/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.mogo.map.location; - -import android.content.Context; - -import com.amap.api.location.AMapLocation; -import com.amap.api.location.AMapLocationClient; -import com.amap.api.location.AMapLocationClientOption; -import com.amap.api.location.AMapLocationListener; -import com.mogo.commons.AbsMogoApplication; -import com.mogo.commons.constants.SharedPrefsConstants; -import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; - -/** - * 封装高德地图通过设备GPS获取到的位置信息,频率1s一次,坐标系为CJC20 - * 这里的数据仅用于非高精度业务 - */ -public class GDLocationClient implements AMapLocationListener, IMogoGDLocationClient { - - private volatile static GDLocationClient gdLocationClient; - private static final byte[] obj = new byte[0]; - - public static GDLocationClient getInstance(Context context) { - if (gdLocationClient == null) { - synchronized (obj) { - if (gdLocationClient == null) { - gdLocationClient = new GDLocationClient(context); - } - } - } - return gdLocationClient; - } - - //声明LocationClient对象 - private AMapLocationClient mLocationClient; - private String mCityCode; - private AMapLocation mapLocation; - - private GDLocationClient(Context context) { - AMapLocationClient.updatePrivacyShow(context, true, true); - AMapLocationClient.updatePrivacyAgree(context, true); - try { - mLocationClient = new AMapLocationClient(context); - - //初始化定位参数 - //声明mLocationOption对象 - AMapLocationClientOption mLocationOption = new AMapLocationClientOption(); - //设置定位监听 - mLocationClient.setLocationListener(this); - //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式 - mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); - //设置定位间隔,单位毫秒,默认为2000ms - mLocationOption.setInterval(1000); - //设置定位参数 - mLocationClient.setLocationOption(mLocationOption); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void start() { - if (mLocationClient != null) { - mLocationClient.startLocation(); - } - } - - @Override - public void stop() { - if (mLocationClient != null) { - mLocationClient.stopLocation(); - } - } - - @Override - public void onLocationChanged(AMapLocation aMapLocation) { - if (aMapLocation != null) { - mapLocation = aMapLocation; - String cityCode = aMapLocation.getCityCode(); - if (cityCode != null && !cityCode.isEmpty()) { - mCityCode = aMapLocation.getCityCode(); - SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()) - .putString(SharedPrefsConstants.LOCATION_CITY_CODE, cityCode); - } - } - } - - @Override - public String getLastCityCode() { - return mCityCode; - } - - @Override - public double getLastLat() { - return mapLocation != null ? mapLocation.getLatitude() : 0.0; - } - - @Override - public double getLastLon() { - return mapLocation != null ? mapLocation.getLongitude() : 0.0; - } -} diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.kt b/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.kt new file mode 100644 index 0000000000..8945ded1cf --- /dev/null +++ b/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.kt @@ -0,0 +1,147 @@ +package com.mogo.map.location + +import android.content.Context +import com.amap.api.location.AMapLocation +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption +import com.amap.api.location.AMapLocationListener +import com.mogo.commons.AbsMogoApplication +import com.mogo.commons.constants.SharedPrefsConstants +import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.function.call.map.CallerGaoDeMapLocationListenerManager +import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr +import com.mogo.eagle.core.utilcode.util.CoordinateTransform +import com.mogo.eagle.core.utilcode.util.TimeUtils + +/** + * 封装高德地图通过设备GPS获取到的位置信息,频率1s一次,坐标系为CJC20 + * 这里的数据仅用于非高精度业务 + */ +class GDLocationClient private constructor(context: Context) : AMapLocationListener, + IMogoGDLocationClient { + //声明LocationClient对象 + private lateinit var mLocationClient: AMapLocationClient + private var mCityCode: String = "" + private var mapLocation: AMapLocation? = null + + /** + * 最后一次高德定位返回的位置信息 + */ + private var lastGaoDeLocation: MogoLocation = MogoLocation() + + init { + AMapLocationClient.updatePrivacyShow(context, true, true) + AMapLocationClient.updatePrivacyAgree(context, true) + try { + mLocationClient = AMapLocationClient(context) + + //初始化定位参数 + //声明mLocationOption对象 + val mLocationOption = AMapLocationClientOption() + //设置定位监听 + mLocationClient.setLocationListener(this) + //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式 + mLocationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + //设置定位间隔,单位毫秒,默认为2000ms + mLocationOption.interval = 1000 + //设置定位参数 + mLocationClient.setLocationOption(mLocationOption) + } catch (e: Exception) { + e.printStackTrace() + } + } + + override fun start() { + if (mLocationClient != null) { + mLocationClient.startLocation() + } + } + + override fun stop() { + if (mLocationClient != null) { + mLocationClient.stopLocation() + } + } + + override fun onLocationChanged(aMapLocation: AMapLocation) { + // 更新GNSS 信息 + lastGaoDeLocation.lastReceiveTime = TimeUtils.getNowMills() + + // 将高德中的一些用于业务的数据进行融合,例如:CityCode、address等 + mapLocation?.let { + // 转换 GCJ02-->WGS84 坐标 + val wgs84Location = + CoordinateTransform.GCJ02ToWGS84(it.longitude, it.latitude) + + lastGaoDeLocation.longitude = wgs84Location[0] + lastGaoDeLocation.latitude = wgs84Location[1] + lastGaoDeLocation.heading = it.bearing.toDouble() + lastGaoDeLocation.gnssSpeed = it.speed + lastGaoDeLocation.altitude = it.altitude + lastGaoDeLocation.satelliteTime = it.time + lastGaoDeLocation.lastReceiveTime = TimeUtils.getNowMills() + + lastGaoDeLocation.locType = 1 // 定位类型为高德坐标(网路或者硬件定位) + lastGaoDeLocation.satellite = 4 + + lastGaoDeLocation.cityName = it.city + lastGaoDeLocation.cityCode = it.cityCode + lastGaoDeLocation.provider = it.provider + lastGaoDeLocation.address = it.address + lastGaoDeLocation.district = it.district + lastGaoDeLocation.province = it.province + lastGaoDeLocation.adCode = it.adCode + lastGaoDeLocation.locationDetail = it.locationDetail + lastGaoDeLocation.poiName = it.poiName + lastGaoDeLocation.aoiName = it.aoiName + lastGaoDeLocation.street = it.street + lastGaoDeLocation.streetNum = it.streetNum + lastGaoDeLocation.description = it.description + lastGaoDeLocation.buildingId = it.buildingId + lastGaoDeLocation.floor = it.floor + lastGaoDeLocation.errorCode = it.errorCode + lastGaoDeLocation.errorInfo = it.errorInfo + } + + // 回掉给监听者 + CallerGaoDeMapLocationListenerManager.invokeMoGoLocationChanged(lastGaoDeLocation) + + mapLocation = aMapLocation + val cityCode = aMapLocation.cityCode + if (cityCode != null && !cityCode.isEmpty()) { + mCityCode = aMapLocation.cityCode + SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()) + .putString(SharedPrefsConstants.LOCATION_CITY_CODE, cityCode) + } + } + + override fun getLastCityCode(): String { + return mCityCode + } + + override fun getLastLat(): Double { + return if (mapLocation != null) mapLocation!!.latitude else 0.0 + } + + override fun getLastLon(): Double { + return if (mapLocation != null) mapLocation!!.longitude else 0.0 + } + + companion object { + @Volatile + private var gdLocationClient: GDLocationClient? = null + private val obj = ByteArray(0) + + @JvmStatic + fun getInstance(context: Context): GDLocationClient? { + if (gdLocationClient == null) { + synchronized(obj) { + if (gdLocationClient == null) { + gdLocationClient = GDLocationClient(context) + } + } + } + return gdLocationClient + } + } +} \ No newline at end of file From d99ee9ba6feeca3ee56ff7bd96240e1f92308f69 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Tue, 21 Feb 2023 18:17:06 +0800 Subject: [PATCH 24/30] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[?= =?UTF-8?q?=201=E3=80=81=E8=A7=A3=E9=99=A4=E6=95=B0=E6=8D=AE=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E5=AF=B9=E9=AB=98=E5=BE=B7=E5=9C=B0=E5=9B=BE=E7=9A=84?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../core/function/startup/stageone/HttpDnsStartUp.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt index a5ad0ae66e..34b96faae4 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt @@ -141,8 +141,9 @@ class HttpDnsStartUp : AndroidStartup() { } if (mogoLocation != null && mogoLocation.latitude != 0.0 && mogoLocation.longitude != 0.0) { // 更新 - httpDnsSimpleLocation = if (mogoLocation.cityCode.isNullOrEmpty() - && !CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode.isNullOrEmpty() + httpDnsSimpleLocation = if ( + mogoLocation.cityCode.isNullOrEmpty() && + !CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode.isNullOrEmpty() ) { HttpDnsSimpleLocation( CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode @@ -233,7 +234,7 @@ class HttpDnsStartUp : AndroidStartup() { } private fun startSocketService() { - CallerLogger.d("$M_MAIN$TAG","startSocketService") + CallerLogger.d("$M_MAIN$TAG", "startSocketService") val location = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() MogoAiCloudSocketManager.getInstance(context) .registerLifecycleListener(10020, object : IMogoLifecycleListener { @@ -306,7 +307,10 @@ class HttpDnsStartUp : AndroidStartup() { clientPkFileName = "sn" ) private fun reConnectSocket(oldCityCode: String, newCityCode: String) { - CallerLogger.d("$M_MAIN$TAG", "reConnectSocket oldCityCode : $oldCityCode , newCityCode : $newCityCode") + CallerLogger.d( + "$M_MAIN$TAG", + "reConnectSocket oldCityCode : $oldCityCode , newCityCode : $newCityCode" + ) MogoAiCloudSocketManager.getInstance(context).reConnect() } From 1b1724668c9cbbe90ecfdcdc46c0810e1d3518f4 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Tue, 21 Feb 2023 18:33:27 +0800 Subject: [PATCH 25/30] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=AD=94=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/biz/v2x/v2n/consts/V2XConst.java | 2 +- .../mofang/MoFangManager.kt | 233 +++++++++++++++++- .../function/hmi/ui/setting/SOPSettingView.kt | 1 - .../function/main/MainLauncherActivity.java | 228 +---------------- .../api/mofang/IMoGoMoFangListener.kt | 17 ++ .../mofang/CallerMofangListenerManager.kt | 21 ++ 6 files changed, 275 insertions(+), 227 deletions(-) create mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/mofang/IMoGoMoFangListener.kt create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/mofang/CallerMofangListenerManager.kt diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/V2XConst.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/V2XConst.java index c2f4fd35d5..049d25ada1 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/V2XConst.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/V2XConst.java @@ -20,6 +20,6 @@ public class V2XConst { /** * V2X预警日志tag */ - public static final String LOG_NAME_WARN = "liyz"; + public static final String LOG_NAME_WARN = "PersonWarn"; } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangManager.kt index 23a07755f4..2d2f43601e 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangManager.kt @@ -7,18 +7,33 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter +import android.view.KeyEvent +import com.mogo.commons.context.ContextHolderUtil import com.mogo.eagle.core.data.mofang.MfConstants +import com.mogo.eagle.core.function.api.mofang.IMoGoMoFangListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.sendOperatorChangeLaneLeft +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.sendOperatorChangeLaneRight +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.sendOperatorSetAcceleratedSpeed +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.sendOperatorSetHorn +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.startAutoPilot +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager.invokeMoFangStatus +import com.mogo.eagle.core.function.call.mofang.CallerMofangListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_F import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import java.util.* /** * 魔方连接状态和设备管理 */ @SuppressLint("StaticFieldLeak") -class MoFangManager private constructor() { +class MoFangManager private constructor() : IMoGoMoFangListener{ companion object { val moFangManager: MoFangManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { @@ -31,6 +46,29 @@ class MoFangManager private constructor() { private lateinit var mBluetoothAdapter: BluetoothAdapter private var isMfConnect: Boolean = false //添加状态判断 + private val isShowToast = false //toast 控制,自测使用 + private var startPressTime: Long = 0 //开始按键时间 + private var isPressEnd = false //按键是否结束 + @Volatile + private var isCombinationKey = 0 //是否是组合按键 1单击,2长按,3组合 + private var pressADownTime: Long = 0 + private var pressAUpTime: Long = 0 + private var pressBDownTime: Long = 0 + private var pressBUpTime: Long = 0 + private var pressCDownTime: Long = 0 + private var pressCUpTime: Long = 0 + private var pressDDownTime: Long = 0 + private var pressDUpTime: Long = 0 + private var pressEDownTime: Long = 0 + private var pressEUpTime: Long = 0 + + private val clickTime = 300 //单击 + private val clickTimeInterval = 330 + private val longPressTime = 670 + private val longPressTimeInterval = 700 + private var timerHorn: Timer? = null + private var timerAcc: Timer? = null + fun init(context: Context) { mContext = context @@ -41,6 +79,12 @@ class MoFangManager private constructor() { } mBluetoothAdapter.startDiscovery() showBondedDevice(mBluetoothAdapter) + + CallerMofangListenerManager.addListener(TAG, this) + } + + fun release() { + CallerMofangListenerManager.removeListener(TAG) } /** @@ -89,7 +133,7 @@ class MoFangManager private constructor() { private val bluetoothMonitorReceiver: BroadcastReceiver = object : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { when (intent.action) { - BluetoothAdapter.ACTION_STATE_CHANGED -> { //中间状态 TODO + BluetoothAdapter.ACTION_STATE_CHANGED -> { //中间状态 CallerLogger.d("$M_F${TAG}","bluetoothMonitorReceiver ACTION_STATE_CHANGED action = ${intent.action}") } @@ -115,5 +159,190 @@ class MoFangManager private constructor() { } } + /** + * 魔方按键处理 + */ + override fun onMofangHandle(keyCode: Int, action: Int): Boolean { + val bluetoothName = SharedPrefsMgr.getInstance(ContextHolderUtil.getContext()).getString(MfConstants.BLUETOOTH_NAME) + if (bluetoothName == "MINI_KEYBOARD") { + if (!isPressEnd) { + isPressEnd = true + startPressTime = System.currentTimeMillis() + } + e(M_F + "MoFangManager", + "dispatchKeyEvent ------ bluetoothName = $bluetoothName ---code = $keyCode -----action = $action ") + if (keyCode == KeyEvent.KEYCODE_A) { //单击 -1,长按无操作,AB组合-2 + if (action == KeyEvent.ACTION_DOWN) { + pressADownTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent A down pressADownTime = " + pressADownTime + "---" + (pressADownTime - startPressTime) + "----isCombinationKey = " + isCombinationKey + "--pressBDownTime = " + pressBDownTime) + if (pressADownTime - startPressTime in (clickTimeInterval + 1) until longPressTime && pressBDownTime > 0) { + if (isShowToast) { + ToastUtils.showShort("方块 A 按AB组合 +1 ") + } + sendAcc(true, +1.0) + isCombinationKey = 3 + } + if (isCombinationKey != 3 && isCombinationKey != 1) { + if (pressADownTime - startPressTime > longPressTimeInterval) { + if (isShowToast) { + ToastUtils.showShort("方块 长按A -2 ") + } + sendAcc(true, -2.0) + isCombinationKey = 2 + } + } + } else if (action == KeyEvent.ACTION_UP) { + pressAUpTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent A up pressAUpTime = " + pressAUpTime + "---" + (pressAUpTime - startPressTime) + "--pressBDownTime = " + pressBDownTime + "---isCombinationKey = $isCombinationKey") + if (pressAUpTime - startPressTime < clickTime && isCombinationKey != 3) { + isCombinationKey = 1 + if (isShowToast) { + ToastUtils.showShort("方块 单击A -1 ") + } + sendAcc(true, -1.0) + } + pressADownTime = 0 + isPressEnd = false + UiThreadHandler.postDelayed({ isCombinationKey = 0 }, 300) + } + } else if (keyCode == KeyEvent.KEYCODE_B) { //单击复原,长按+1,AB组合-2 + if (action == KeyEvent.ACTION_DOWN) { + pressBDownTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent B down pressBDownTime = " + pressBDownTime + "--差-" + (pressBDownTime - startPressTime) + "---isCombinationKey = " + isCombinationKey + "--pressADownTime = " + pressADownTime + ) + if (pressBDownTime - startPressTime > clickTimeInterval && pressBDownTime - startPressTime < longPressTime && pressADownTime > 0) { + if (isShowToast) { + ToastUtils.showShort("方块 B 按AB组合 +1 ") + } + sendAcc(true, +1.0) + isCombinationKey = 3 + } + if (isCombinationKey != 3 && isCombinationKey != 1) { + if (pressBDownTime - startPressTime > longPressTimeInterval) { + if (isShowToast) { + ToastUtils.showShort("方块 长按B 无操作 ") + } + isCombinationKey = 2 + } + } + } else if (action == KeyEvent.ACTION_UP) { + pressBUpTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent B up pressBUpTime = " + pressBUpTime + "--差-" + (pressBUpTime - startPressTime) + "--pressADownTime = " + pressADownTime + "----isCombinationKey = $isCombinationKey") + if (pressBUpTime - startPressTime < clickTime && isCombinationKey != 3) { + if (isShowToast) { + ToastUtils.showShort("方块 单击B 0 ") + } + sendAcc(false, 0.0) + isCombinationKey = 1 + } + pressBDownTime = 0 + isPressEnd = false + UiThreadHandler.postDelayed({ isCombinationKey = 0 }, 300) + } + } else if (keyCode == KeyEvent.KEYCODE_C) { //单击左变道,长按无操作 + if (action == KeyEvent.ACTION_DOWN) { + pressCDownTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent 方块 长按C 无操作 time dif = " + (pressCDownTime - startPressTime)) + if (pressCDownTime - startPressTime > longPressTimeInterval) { + if (isShowToast) { + ToastUtils.showShort("方块 长按C 无操作 ") + } + } + } else if (action == KeyEvent.ACTION_UP) { + pressCUpTime = System.currentTimeMillis() + isPressEnd = false + d(M_F + "MoFangManager", + "dispatchKeyEvent 方块 单击C ← 向左变道 time dif = " + (pressCUpTime - startPressTime)) + if (pressCUpTime - startPressTime < clickTime) { + if (isShowToast) { + ToastUtils.showShort("方块 单击C ← 向左变道 ") + } + sendOperatorChangeLaneLeft() + } + } + } else if (keyCode == KeyEvent.KEYCODE_D) { //单击向右变道,双击无操作 + if (action == KeyEvent.ACTION_DOWN) { + pressDDownTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent 方块 长按D 无操作 time dif = " + (pressDDownTime - startPressTime)) + if (pressDDownTime - startPressTime > longPressTimeInterval) { + if (isShowToast) { + ToastUtils.showShort("方块 长按D 无操作 ") + } + } + } else if (action == KeyEvent.ACTION_UP) { + pressDUpTime = System.currentTimeMillis() + isPressEnd = false + d(M_F + "MoFangManager", + "dispatchKeyEvent 方块 单击D → 向右变道 time dif = " + (pressDUpTime - startPressTime)) + if (pressDUpTime - startPressTime < clickTime) { + if (isShowToast) { + ToastUtils.showShort("方块 单击D → 向右变道 ") + } + sendOperatorChangeLaneRight() + } + } + } else if (keyCode == KeyEvent.KEYCODE_E) { //单击启动自驾,长按鸣笛 + if (action == KeyEvent.ACTION_DOWN) { + pressEDownTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent 方块 长按E 鸣笛 time dif = " + (pressEDownTime - startPressTime)) + if (pressEDownTime - startPressTime > longPressTimeInterval) { + if (isShowToast) { + ToastUtils.showShort("方块 长按E 鸣笛 ") + } + sendOperatorSetHorn(1.0) + if (timerHorn == null) { + timerHorn = Timer() + } + timerHorn!!.schedule(object : TimerTask() { + override fun run() { + sendOperatorSetHorn(2.0) + timerHorn = null + } + }, 500) + } + } else if (action == KeyEvent.ACTION_UP) { + pressEUpTime = System.currentTimeMillis() + isPressEnd = false + d(M_F + "MoFangManager", + "方块 单击E 开启自动驾驶 time dif = " + (pressEUpTime - startPressTime)) + if (pressEUpTime - startPressTime < clickTime) { + if (isShowToast) { + ToastUtils.showShort("方块 单击E 开启自动驾驶 ") + } + startAutoPilot(getAutoPilotStatusInfo().autopilotControlParameters) + } + } + } + } + return true + } + + @Synchronized + private fun sendAcc(isSend: Boolean, acc: Double) { + if (isSend) { + if (timerAcc == null) { + timerAcc = Timer() + timerAcc!!.schedule(object : TimerTask() { + override fun run() { + sendOperatorSetAcceleratedSpeed(acc) + } + }, 0, 500) + } + } else { + if (timerAcc != null) { + timerAcc!!.cancel() + timerAcc = null + } + sendOperatorSetAcceleratedSpeed(acc) + } + } + } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt index 2b6dadfb77..d7f34d5901 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt @@ -117,7 +117,6 @@ internal class SOPSettingView @JvmOverloads constructor( tbObuToDcView.setOnCheckedChangeListener { _, isChecked -> // 默认开启 HmiBuildConfig.isShowObuToDcV2iView = !isChecked -// Log.d("liyz", "HmiBuildConfig.isShowObuToDcV2iView = " + HmiBuildConfig.isShowObuToDcV2iView) } //红绿灯标识 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java index a80465d6a3..7049008ae7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java @@ -3,7 +3,6 @@ package com.mogo.eagle.core.function.main; import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_START_UP; import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_INIT; import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_F; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_HMI; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_MAIN; @@ -21,20 +20,15 @@ import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.module.intent.IMogoIntentListener; import com.mogo.commons.module.intent.IntentManager; import com.mogo.eagle.core.data.config.FunctionBuildConfig; -import com.mogo.eagle.core.data.mofang.MfConstants; import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider; import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener; -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.mofang.CallerMofangListenerManager; import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager; import com.mogo.eagle.core.function.hmi.R; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.ActivityUtils; import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.rousetime.android_startup.model.CostTimesModel; import com.zhjt.service.chain.ChainLog; import com.zhjt.service.chain.TracingConstants; @@ -43,8 +37,6 @@ import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import java.util.List; -import java.util.Timer; -import java.util.TimerTask; /** * 针对作为Launcher的情况,做个性化操作 @@ -57,31 +49,6 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis private final static Handler handlerV2XEvent = new Handler(); private static Runnable runnableV2XEvent; - private volatile double accelerated;//加速度 - private Timer timerHorn; - private Timer timerAcc; - - private boolean isShowToast = false; //toast 控制 - private long startPressTime = 0; //开始按减时间 - private boolean isPressEnd = false; //按键是否结束 - private volatile int isCombinationKey = 0; //是否是组合按键 1单击,2长按,3组合 - private long pressADownTime = 0; - private long pressAUpTime = 0; - private long pressBDownTime = 0; - private long pressBUpTime = 0; - private long pressCDownTime = 0; - private long pressCUpTime = 0; - private long pressDDownTime = 0; - private long pressDUpTime = 0; - private long pressEDownTime = 0; - private long pressEUpTime = 0; - - private int clickTime = 300; //单击 - private int clickTimeInterval = 330; - private int longPressTime = 670; - private int longPressTimeInterval = 700; - - @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -240,200 +207,15 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis */ @Override public boolean dispatchKeyEvent(KeyEvent event) { - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent code = " + event.getKeyCode() + "--action = " + event.getAction() + "----" + event); - String bluetoothName = SharedPrefsMgr.getInstance(getContext()).getString(MfConstants.BLUETOOTH_NAME); - if (!isPressEnd) { - CallerLogger.INSTANCE.d(M_F + "MoFangManager","dispatchKeyEvent ---1--- bluetoothName = " + bluetoothName); + if(CallerMofangListenerManager.INSTANCE.invokeMofangHandle(event.getKeyCode(), event.getAction())) { + return true; + } else { + return super.dispatchKeyEvent(event); } - if (bluetoothName.equals("MINI_KEYBOARD")) { - if (!isPressEnd) { - isPressEnd = true; - startPressTime = System.currentTimeMillis(); - } - CallerLogger.INSTANCE.d(M_F + "MoFangManager","dispatchKeyEvent ---2--- bluetoothName = " + bluetoothName + "--- code = " + event.getKeyCode() + "--action = " + event.getAction()); - if (event.getKeyCode() == KeyEvent.KEYCODE_A) { //单击 -1,长按无操作,AB组合-2 - if (event.getAction() == KeyEvent.ACTION_DOWN) { - pressADownTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent A down pressADownTime = " + pressADownTime + "---" + (pressADownTime - startPressTime) + "----isCombinationKey = " + isCombinationKey + "--pressBDownTime = " + pressBDownTime); - if ((pressADownTime - startPressTime) > clickTimeInterval && (pressADownTime - startPressTime) < longPressTime && pressBDownTime > 0) { - if (isShowToast) { - ToastUtils.showShort("方块 A 按AB组合 +1 "); - } - sendAcc(true, +1); - isCombinationKey = 3; - } - - if (isCombinationKey != 3 && isCombinationKey != 1) { - if ((pressADownTime - startPressTime) > longPressTimeInterval) { - if (isShowToast) { - ToastUtils.showShort("方块 长按A -2 "); - } - sendAcc(true, -2); - isCombinationKey = 2; - } - } - } else if (event.getAction() == KeyEvent.ACTION_UP) { - pressAUpTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent A up pressAUpTime = " + pressAUpTime + "---" + (pressAUpTime - startPressTime) + "--pressBDownTime = " + pressBDownTime); - if ((pressAUpTime - startPressTime) < clickTime && isCombinationKey != 3) { - isCombinationKey = 1; - if (isShowToast) { - ToastUtils.showShort("方块 单击A -1 "); - } - sendAcc(true, -1); - } - pressADownTime = 0; - isPressEnd = false; - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { - isCombinationKey = 0; - } - }, 300); - } - return true; - } else if (event.getKeyCode() == KeyEvent.KEYCODE_B) { //单击复原,长按+1,AB组合-2 - if (event.getAction() == KeyEvent.ACTION_DOWN) { - pressBDownTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent B down pressBDownTime = " + pressBDownTime + "--差-" + (pressBDownTime - startPressTime) + "---isCombinationKey = " + isCombinationKey + "--pressADownTime = " + pressADownTime); - if ((pressBDownTime - startPressTime) > clickTimeInterval && (pressBDownTime - startPressTime) < longPressTime && pressADownTime > 0) { - if (isShowToast) { - ToastUtils.showShort("方块 B 按AB组合 +1 "); - } - sendAcc(true, +1); - isCombinationKey = 3; - } - if (isCombinationKey != 3 && isCombinationKey != 1) { - if ((pressBDownTime - startPressTime) > longPressTimeInterval) { - if (isShowToast) { - ToastUtils.showShort("方块 长按B 无操作 "); - } - isCombinationKey = 2; - } - } - } else if (event.getAction() == KeyEvent.ACTION_UP) { - pressBUpTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent B up pressBUpTime = " + pressBUpTime + "--差-" + (pressBUpTime - startPressTime) + "--pressADownTime = " + pressADownTime); - if ((pressBUpTime - startPressTime) < clickTime && isCombinationKey != 3) { - if (isShowToast) { - ToastUtils.showShort("方块 单击B 0 "); - } - sendAcc(false, 0.0); - isCombinationKey = 1; - } - pressBDownTime = 0; - isPressEnd = false; - - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { - isCombinationKey = 0; - } - }, 300); - } - return true; - } else if (event.getKeyCode() == KeyEvent.KEYCODE_C) { //单击左变道,长按无操作 - if (event.getAction() == KeyEvent.ACTION_DOWN) { - pressCDownTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 长按C 无操作 time dif = " + (pressCDownTime - startPressTime)); - if ((pressCDownTime - startPressTime) > longPressTimeInterval) { - if (isShowToast) { - ToastUtils.showShort("方块 长按C 无操作 "); - } - } - } else if (event.getAction() == KeyEvent.ACTION_UP) { - pressCUpTime = System.currentTimeMillis(); - isPressEnd = false; - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 单击C ← 向左变道 time dif = " + (pressCUpTime - startPressTime)); - if ((pressCUpTime - startPressTime) < clickTime) { - if (isShowToast) { - ToastUtils.showShort("方块 单击C ← 向左变道 "); - } - CallerAutoPilotControlManager.INSTANCE.sendOperatorChangeLaneLeft(); - } - } - return true; - } else if (event.getKeyCode() == KeyEvent.KEYCODE_D) { //单击向右变道,双击无操作 - if (event.getAction() == KeyEvent.ACTION_DOWN) { - pressDDownTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 长按D 无操作 time dif = " + (pressDDownTime - startPressTime)); - if ((pressDDownTime - startPressTime) > longPressTimeInterval) { - if (isShowToast) { - ToastUtils.showShort("方块 长按D 无操作 "); - } - } - } else if (event.getAction() == KeyEvent.ACTION_UP) { - pressDUpTime = System.currentTimeMillis(); - isPressEnd = false; - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 单击D → 向右变道 time dif = " + (pressDUpTime - startPressTime)); - if ((pressDUpTime - startPressTime) < clickTime) { - if (isShowToast) { - ToastUtils.showShort("方块 单击D → 向右变道 "); - } - CallerAutoPilotControlManager.INSTANCE.sendOperatorChangeLaneRight(); - } - } - return true; - } else if (event.getKeyCode() == KeyEvent.KEYCODE_E) { //单击启动自驾,长按鸣笛 - if (event.getAction() == KeyEvent.ACTION_DOWN) { - pressEDownTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 长按E 鸣笛 time dif = " + (pressEDownTime - startPressTime)); - if ((pressEDownTime - startPressTime) > longPressTimeInterval) { - if (isShowToast) { - ToastUtils.showShort("方块 长按E 鸣笛 "); - } - CallerAutoPilotControlManager.INSTANCE.sendOperatorSetHorn(1); - if (timerHorn == null) { - timerHorn = new Timer(); - } - timerHorn.schedule(new TimerTask() { - @Override - public void run() { - CallerAutoPilotControlManager.INSTANCE.sendOperatorSetHorn(2); - timerHorn = null; - } - }, 500); - } - } else if (event.getAction() == KeyEvent.ACTION_UP) { - pressEUpTime = System.currentTimeMillis(); - isPressEnd = false; - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "方块 单击E 开启自动驾驶 time dif = " + (pressEUpTime - startPressTime)); - if ((pressEUpTime - startPressTime) < clickTime) { - if (isShowToast) { - ToastUtils.showShort("方块 单击E 开启自动驾驶 "); - } - CallerAutoPilotControlManager.INSTANCE.startAutoPilot(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getAutopilotControlParameters()); - } - } - return true; - } - } - return super.dispatchKeyEvent(event); } @Override public void onSkinModeChange(int skinMode) { } - private synchronized void sendAcc(boolean isSend, double acc) { - if (isSend) { - accelerated = acc; - if (timerAcc == null) { - timerAcc = new Timer(); - timerAcc.schedule(new TimerTask() { - @Override - public void run() { - CallerAutoPilotControlManager.INSTANCE.sendOperatorSetAcceleratedSpeed(accelerated); - } - }, 0, 500); - } - } else { - if (timerAcc != null) { - timerAcc.cancel(); - timerAcc = null; - } - CallerAutoPilotControlManager.INSTANCE.sendOperatorSetAcceleratedSpeed(acc); - } - } - } diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/mofang/IMoGoMoFangListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/mofang/IMoGoMoFangListener.kt new file mode 100644 index 0000000000..802113f5dc --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/mofang/IMoGoMoFangListener.kt @@ -0,0 +1,17 @@ +package com.mogo.eagle.core.function.api.mofang + + +/** + * 魔方数据的数据处理 + * @author lixiaopeng + * @date 2023-02-20 + */ +interface IMoGoMoFangListener { + /** + * 魔方数据的数据处理 + * @param keyCode 按键类型 + * @param action 按键状态 + */ + fun onMofangHandle(keyCode: Int, action: Int): Boolean + +} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/mofang/CallerMofangListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/mofang/CallerMofangListenerManager.kt new file mode 100644 index 0000000000..0464d323e1 --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/mofang/CallerMofangListenerManager.kt @@ -0,0 +1,21 @@ +package com.mogo.eagle.core.function.call.mofang + +import com.mogo.eagle.core.function.api.mofang.IMoGoMoFangListener +import com.mogo.eagle.core.function.call.base.CallerBase + +/** + * 魔方按键的处理 + */ +object CallerMofangListenerManager : CallerBase() { + fun invokeMofangHandle(keyCode: Int, action: Int): Boolean { + var isConsume = false + M_LISTENERS.forEach { + val tag = it.key + val listener = it.value + if (listener.onMofangHandle(keyCode, action)) + isConsume = true + } + return isConsume + } + +} \ No newline at end of file From daf12ce529aff0b7227d3e93d100fc162d808ba4 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Tue, 21 Feb 2023 18:45:50 +0800 Subject: [PATCH 26/30] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=A4=9A=E4=BD=99=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/datacenter/obu/MoGoObuProvider.kt | 3 --- .../function/datacenter/obu/MogoObuDcCombineManager.kt | 4 ---- .../function/datacenter/obu/MogoPrivateObuNewManager.kt | 9 --------- 3 files changed, 16 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MoGoObuProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MoGoObuProvider.kt index 0e6f1f200d..3e55c6a63f 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MoGoObuProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MoGoObuProvider.kt @@ -2,16 +2,13 @@ package com.mogo.eagle.core.function.datacenter.obu import android.content.Context import com.alibaba.android.arouter.facade.annotation.Route -import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.constants.MoGoConfig import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.function.api.obu.IMoGoObuProvider -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.CommonUtils -import com.mogo.support.obu.MogoObuManager /** * @author xiaoyuzhou diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt index d97e5a1c5d..c5e9c8b345 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt @@ -6,16 +6,12 @@ import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.data.enums.TrafficLightEnum import com.mogo.eagle.core.data.enums.WarningDirectionEnum -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.function.api.obu.IMoGoObuWarningMapListener import com.mogo.eagle.core.function.api.obu.IMoGoObuWarningRsiListener import com.mogo.eagle.core.function.api.obu.IMoGoObuWarningRsmListener import com.mogo.eagle.core.function.api.obu.IMoGoObuWarningSpatListener import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager -import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.obu.* import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager 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/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index 3dcdaea07f..ec299f6d9c 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -4,18 +4,13 @@ import android.content.Context import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig import com.mogo.eagle.core.data.enums.* -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.function.api.hmi.warning.IMoGoWarningStatusListener import com.mogo.eagle.core.function.api.map.angle.Default import com.mogo.eagle.core.function.api.map.angle.TooClose 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.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager -import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.obu.CallerObuConnectListenerManager import com.mogo.eagle.core.function.call.obu.CallerObuLocationWGS84ListenerManager import com.mogo.eagle.core.function.call.obu.CallerObuSaveMessageListenerManager @@ -856,10 +851,6 @@ class MogoPrivateObuNewManager private constructor() { 1 -> {//闯红灯 V2I_RLVW_VIOLATION_TYPE_RUNNING_RED_LIGHT 一个红灯周期只显示一次 if (!isShowRunRedLight) { isShowRunRedLight = true - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "changeTrafficLightStatus 闯红灯 --------> " - ) ttsContent = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType) alertContent = From dbffff0e07d6feafbd6e2902790fe6aa36b71a5e Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Tue, 21 Feb 2023 18:47:48 +0800 Subject: [PATCH 27/30] =?UTF-8?q?[M2]M2-p=20=E8=A7=86=E9=A2=91=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E4=BC=98=E5=8C=96=EF=BC=8C=20=E5=85=88=E5=AE=8C?= =?UTF-8?q?=E5=85=A8=E4=B8=8B=E8=BD=BD=E5=86=8D=E6=92=AD=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/ui/video/PM2VideoFragment.kt | 2 +- .../ui/widget/video/AdvanceGSYVideoPlayer.kt | 13 +- .../ui/widget/video/AdvancePagerAdapter.kt | 57 ++++---- .../ui/widget/video/AdvanceVideoView.kt | 134 ++++++++++++++---- .../ui/widget/video/AdvanceViewPager.kt | 24 ++++ .../ui/widget/video/ImageAndVideoRotation.kt | 10 +- 6 files changed, 182 insertions(+), 58 deletions(-) create mode 100644 OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceViewPager.kt diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/video/PM2VideoFragment.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/video/PM2VideoFragment.kt index 722370ee9e..51ecb3f221 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/video/PM2VideoFragment.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/video/PM2VideoFragment.kt @@ -100,7 +100,7 @@ class PM2VideoFragment : arrayListOf.add( RotationItem( "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676360154589/7.jpg", - 1, + 0, "", "7" ) diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt index d6dd2227b8..7af0ea8fb7 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt @@ -59,12 +59,21 @@ class AdvanceGSYVideoPlayer: StandardGSYVideoPlayer { setViewShowState(mTopContainer, GONE) setViewShowState(mLoadingProgressBar, GONE) - setViewShowState(mThumbImageViewLayout, GONE) - setViewShowState(mThumbImageView, GONE) setViewShowState( mLockScreen, GONE ) setIsTouchWiget(false) + isFocusableInTouchMode = false + } + + fun setCacheImageViewVisible() { + setViewShowState(mThumbImageViewLayout, VISIBLE) + setViewShowState(mThumbImageView, VISIBLE) + } + + fun setCacheImageViewGone() { + setViewShowState(mThumbImageViewLayout, GONE) + setViewShowState(mThumbImageView, GONE) } } \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt index 4164f09e74..d800e4c770 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt @@ -6,7 +6,6 @@ import android.view.ViewGroup import androidx.viewpager.widget.PagerAdapter import androidx.viewpager.widget.ViewPager import com.mogo.eagle.core.utilcode.mogo.logger.Logger -import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack /** @@ -47,12 +46,12 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter if (viewList.size > 0) { if (viewList[mViewPager.currentItem] is AdvanceVideoView) {//有人反应第一个是视频不播放这边优化了一下 - Logger.d("onPageScrollStateChanged", "第一个是视频") + Logger.d(ImageAndVideoRotation.TAG, "第一个是视频") val video = viewList[mViewPager.currentItem] as AdvanceVideoView - video.setVideo(gsySampleCallBack,mViewPager.currentItem) + video.setVideo(gsySampleCallBack) } else if (viewList[mViewPager.currentItem] is AdvanceImageView) { - Logger.d("onPageScrollStateChanged", "startTimer()_1") + Logger.d(ImageAndVideoRotation.TAG, "startTimer()_1") current = 0//换页重新计算时间 startTimer() } @@ -120,7 +119,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter // 由于viewpager的预加载机制onPageSelected这里面加载videoview 放的跟玩一样 等操作完成后再播放videoview就香了 很丝滑 if (state == 0) { //静止,什么都没做 val currentItem = mViewPager.currentItem - Logger.d("onPageScrollStateChanged", + Logger.d(ImageAndVideoRotation.TAG, "state = $state currentItem = $currentItem lastPosition = $lastPosition") if (viewList.size > 1) { //多于1,才会循环跳转 @@ -128,11 +127,11 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter if (viewList[mViewPager.currentItem] is AdvanceVideoView) { val videoView = (viewList[mViewPager.currentItem] as AdvanceVideoView) - videoView.setCacheImageView() - videoView.setVideo(gsySampleCallBack,mViewPager.currentItem) + videoView.setCacheImageViewVisible() + videoView.setVideo(gsySampleCallBack) } else if (viewList[mViewPager.currentItem] is AdvanceImageView) { - Logger.d("onPageScrollStateChanged", "startTimer()") + Logger.d(ImageAndVideoRotation.TAG, "startTimer()") current = 0//换页重新计算时间 startTimer() } @@ -144,51 +143,55 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter private var gsySampleCallBack = object : GSYSampleCallBack() { override fun onPrepared(url: String?, vararg objects: Any?) { - Logger.d("onPageScrollStateChanged", "onPrepared") - val videoView = (viewList[mViewPager.currentItem] as AdvanceVideoView) - UiThreadHandler.postDelayed({ - Logger.d("onPageScrollStateChanged", "cacheImg gone") + Logger.d(ImageAndVideoRotation.TAG, "onPrepared") + if (viewList[mViewPager.currentItem] is AdvanceVideoView){ + val videoView = (viewList[mViewPager.currentItem] as AdvanceVideoView) videoView.setCacheImageViewGone() - },1000) + } } override fun onAutoComplete(url: String?, vararg objects: Any?) { - Logger.d("onPageScrollStateChanged", "onAutoComplete()") - val videoView = (viewList[mViewPager.currentItem] as AdvanceVideoView) - videoView.onVideoReset() - videoView.setCacheImageView() - goNextItemView() + Logger.d(ImageAndVideoRotation.TAG, "onAutoComplete()") + if (viewList[mViewPager.currentItem] is AdvanceVideoView){ + val videoView = (viewList[mViewPager.currentItem] as AdvanceVideoView) + videoView.onVideoReset() + videoView.setCacheImageViewVisible() + goNextItemView() + } } override fun onPlayError(url: String?, vararg objects: Any?) { super.onPlayError(url, *objects) - Logger.d("onPageScrollStateChanged", "onPlayError()") - val videoView = (viewList[mViewPager.currentItem] as AdvanceVideoView) - videoView.onVideoReset() - videoView.setCacheImageView() - goNextItemView() + Logger.d(ImageAndVideoRotation.TAG, "onPlayError()-${objects}") + if (viewList[mViewPager.currentItem] is AdvanceVideoView){ + val videoView = (viewList[mViewPager.currentItem] as AdvanceVideoView) + videoView.onVideoReset() + videoView.setCacheImageViewVisible() + videoView.clearLocalErrorVideo() + goNextItemView() + } } } private fun startTimer() { if (null != thread && !thread?.isInterrupted!!) { - Logger.d("onPageScrollStateChanged", "thread.interrupt()") + Logger.d(ImageAndVideoRotation.TAG, "thread.interrupt()") thread?.interrupt() thread = null } thread = Thread { while (null != thread && !thread?.isInterrupted!!) { try { - Logger.d("onPageScrollStateChanged", "sleep") + Logger.d(ImageAndVideoRotation.TAG, "sleep") Thread.sleep(1000) if (viewList[mViewPager.currentItem] is AdvanceImageView) { - Logger.d("onPageScrollStateChanged", "增加1s") + Logger.d(ImageAndVideoRotation.TAG, "增加1s") current += 1000 }else{ break } if (current >= time) { - Logger.d("onPageScrollStateChanged", "5s到,跳转") + Logger.d(ImageAndVideoRotation.TAG, "5s到,跳转") goNextItemView() current = 0 break diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt index 842764ef4e..2bd2f9d761 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt @@ -7,12 +7,18 @@ import android.widget.ImageView import android.widget.RelativeLayout import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions +import com.mogo.eagle.core.utilcode.breakpoint.Config +import com.mogo.eagle.core.utilcode.breakpoint.bean.ThreadBean +import com.mogo.eagle.core.utilcode.breakpoint.callback.IDownload +import com.mogo.eagle.core.utilcode.breakpoint.utils.DownloadUtils import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.util.BitmapHelper +import com.mogo.eagle.core.utilcode.util.FileUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.bus.passenger.R import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack +import java.lang.Exception /** * @author: wangmingjun @@ -26,7 +32,9 @@ class AdvanceVideoView @JvmOverloads constructor( private var cacheImage: ImageView? = null private var videoViewPlayer: AdvanceGSYVideoPlayer? = null private var gsyVideoOptionBuilder: GSYVideoOptionBuilder? = null - private var path: String? = null + private var mOnCompletionListener: GSYSampleCallBack? = null + private var downloadVideoName = "" + private var fileNetPath: String? = "" init { initView() @@ -40,7 +48,6 @@ class AdvanceVideoView @JvmOverloads constructor( private fun initCacheImgView() { cacheImage = ImageView(context) cacheImage?.scaleType = ImageView.ScaleType.FIT_XY - addView(cacheImage, LayoutParams(-1, -1)) } private fun initVideoView() { @@ -63,14 +70,25 @@ class AdvanceVideoView @JvmOverloads constructor( } fun setVideoPath(path: String) { - this.path = path -// BitmapHelper.getVideoThumbnail(path) /*获取第一帧图*/ - cacheImage?.visibility = VISIBLE + // https://img.zhidaohulian.com/fileServer/online_car_hailing/1676357834634/5.m4v + // https://img.zhidaohulian.com/fileServer/online_car_hailing/1676360274126/10.mp4 + this.fileNetPath = path + val pathList = path.split("/") + if (pathList.isNotEmpty()){ + this.downloadVideoName = pathList[pathList.size - 1] + } + + loadCacheImg() + } + + private fun loadCacheImg() { + // BitmapHelper.getVideoThumbnail(path) /*获取第一帧图*/ + setCacheImageViewVisible() Thread{ - var bitmap = BitmapHelper.getVideoThumbnail(path) - Logger.d("onPageScrollStateChanged", "setVideoPath") + var bitmap = BitmapHelper.getVideoThumbnail(fileNetPath) + Logger.d(ImageAndVideoRotation.TAG, "setVideoPath") ThreadUtils.runOnUiThread { - Logger.d("onPageScrollStateChanged", "bitmap加载") + Logger.d(ImageAndVideoRotation.TAG, "bitmap加载") cacheImage?.let { Glide.with(context).load(bitmap) .apply( @@ -78,35 +96,67 @@ class AdvanceVideoView @JvmOverloads constructor( ) .into(it) } + videoViewPlayer?.thumbImageView = cacheImage } }.start() } - @SuppressLint("CheckResult") - fun setCacheImageView() { - cacheImage?.visibility = VISIBLE + fun clearLocalErrorVideo(){ + if (downloadVideoName.isNotEmpty() + && FileUtils.isFileExists(Config.downLoadPath + downloadVideoName)){ + FileUtils.delete(Config.downLoadPath + downloadVideoName) + } } - fun setVideo(onCompletionListener: GSYSampleCallBack,position: Int) { - Logger.d("onPageScrollStateChanged", "setVideoPlay") - gsyVideoOptionBuilder = GSYVideoOptionBuilder() - gsyVideoOptionBuilder?.setUrl(path) - ?.setPlayTag(path + position) - ?.setCacheWithPlay(false) - ?.setThumbPlay(false) - ?.build(videoViewPlayer) + @SuppressLint("CheckResult") + fun setCacheImageViewVisible() { + videoViewPlayer?.setCacheImageViewVisible() + } - videoViewPlayer?.isFocusableInTouchMode = false - videoViewPlayer?.setVideoAllCallBack(onCompletionListener) - videoViewPlayer?.startPlayLogic() + fun setCacheImageViewGone() { + videoViewPlayer?.setCacheImageViewGone() + } + + fun setVideo(onCompletionListener: GSYSampleCallBack) { + Logger.d(ImageAndVideoRotation.TAG, "setVideo") + mOnCompletionListener = onCompletionListener + //判断是否已经下载 + if (downloadVideoName.isNotEmpty()){ + if (FileUtils.isFileExists(Config.downLoadPath + downloadVideoName)){ + startPlay() + return + } + startDownLoadVideo() + } + } + + private fun startDownLoadVideo(){ + //下载视频, 下载成功后再播放 + DownloadUtils.downLoad(context,fileNetPath, Config.downLoadPath + ,downloadVideoName,5,downListener) + } + + private fun startPlay(){ + try { + Logger.d(ImageAndVideoRotation.TAG, "startPlay") + gsyVideoOptionBuilder = GSYVideoOptionBuilder() + gsyVideoOptionBuilder?.setUrl("file:///mnt/sdcard/downloads/$downloadVideoName") + ?.setPlayTag(downloadVideoName) + ?.setCacheWithPlay(false) + ?.setThumbPlay(false) + ?.build(videoViewPlayer) + + videoViewPlayer?.isFocusableInTouchMode = false + videoViewPlayer?.setVideoAllCallBack(mOnCompletionListener) + videoViewPlayer?.startPlayLogic() + }catch (e: Exception){ + Logger.d(ImageAndVideoRotation.TAG, "startPlay e = ${e.message}") + } } fun onVideoReset(){ videoViewPlayer?.onVideoReset() - } - - fun setCacheImageViewGone() { - cacheImage?.visibility = INVISIBLE + mOnCompletionListener = null } fun setPause() { @@ -120,4 +170,36 @@ class AdvanceVideoView @JvmOverloads constructor( videoViewPlayer?.startPlayLogic() } } + + private val downListener = object : IDownload{ + override fun onStart(url: String?) { + Logger.d(ImageAndVideoRotation.TAG, "download-onStart") + } + + override fun onPause(url: String?, threadBean: ThreadBean?) { + Logger.d(ImageAndVideoRotation.TAG, "download-onPause") + } + + override fun onProgress(url: String?, length: Int) { + Logger.d(ImageAndVideoRotation.TAG, "download-onProgress") + } + + override fun onFinished(url: String?, threadBean: ThreadBean?) { + Logger.d(ImageAndVideoRotation.TAG, "download-onFinished") + //下载完成 + ThreadUtils.runOnUiThread { + startPlay() + } + } + + override fun onError(url: String?, errorMsg: String?) { + Logger.d(ImageAndVideoRotation.TAG, "download-onError-$errorMsg") + //出错再次下载 + if (errorMsg != null) { + if (errorMsg.startsWith("initFailed")){ + startDownLoadVideo() + } + } + } + } } \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceViewPager.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceViewPager.kt new file mode 100644 index 0000000000..1ec09195c3 --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceViewPager.kt @@ -0,0 +1,24 @@ +package com.mogo.och.bus.passenger.ui.widget.video + +import android.content.Context +import android.util.AttributeSet +import android.view.MotionEvent +import androidx.viewpager.widget.ViewPager + +/** + * @author: wangmingjun + * @date: 2023/2/21 + */ +class AdvanceViewPager: ViewPager{ + + constructor(context: Context) : super(context) + constructor(context: Context,attrs: AttributeSet?) : super(context,attrs) + + override fun onTouchEvent(ev: MotionEvent?): Boolean { + return false + } + + override fun onInterceptTouchEvent(ev: MotionEvent?): Boolean { + return false + } +} \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/ImageAndVideoRotation.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/ImageAndVideoRotation.kt index 0afd21993d..92d3b3dbda 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/ImageAndVideoRotation.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/ImageAndVideoRotation.kt @@ -1,5 +1,6 @@ package com.mogo.och.bus.passenger.ui.widget.video +import android.annotation.SuppressLint import android.content.Context import android.util.AttributeSet import android.widget.RelativeLayout @@ -12,15 +13,20 @@ class ImageAndVideoRotation @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null ) : RelativeLayout(context, attrs) { - private var viewPager: ViewPager? = null + private var viewPager: AdvanceViewPager? = null private var pagerAdapter: AdvancePagerAdapter? = null + companion object { + const val TAG = "ImageAndVideoRotation" + } + init { initView() } + @SuppressLint("ClickableViewAccessibility") private fun initView() { - viewPager = ViewPager(context) + viewPager = AdvanceViewPager(context) pagerAdapter = AdvancePagerAdapter(context, viewPager!!) viewPager?.adapter = pagerAdapter From 70630f2d5a55cbf8dece225868210250466da5a4 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 14:26:20 +0800 Subject: [PATCH 28/30] [2.13.0-arch-opt] update socket ai cloud sdk version --- README.md | 1 - app/build.gradle | 1 - config.gradle | 6 ---- .../mogo-core-function-map/consumer-rules.pro | 1 - gradle.properties | 28 ++++++------------- 5 files changed, 9 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 34b016a07e..699ee30b1b 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,6 @@ repositories { mogo-och 使用到的依赖 implementation "com.mogo.commons:mogo-utils:2.0.63" implementation "com.mogo.commons:mogo-commons:2.0.63" -implementation "com.mogo.module:module-common:2.0.63" implementation "com.mogo.eagle.core:data:0.0.6" implementation "com.mogo.eagle.core.function:call:0.0.6" diff --git a/app/build.gradle b/app/build.gradle index f9c79c925d..38eaa76d91 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -356,7 +356,6 @@ dependencies { implementation rootProject.ext.dependencies.mogocommons implementation rootProject.ext.dependencies.mogo_core_utils implementation rootProject.ext.dependencies.mogo_core_function_map - implementation rootProject.ext.dependencies.mogo_core_function_v2x implementation rootProject.ext.dependencies.mogo_core_function_datacenter implementation rootProject.ext.dependencies.mogo_core_function_devatools implementation rootProject.ext.dependencies.mogo_core_function_chat diff --git a/config.gradle b/config.gradle index fab8cfd576..fd51e09b27 100644 --- a/config.gradle +++ b/config.gradle @@ -125,10 +125,6 @@ ext { mogocustommap : "com.zhidaoauto.machine:map:${MAP_SDK_VERSION}", mogocustommapoperational : "com.zhidaoauto.map:operational:${MAP_SDK_OPERATION_VERSION}", - modulemap : "com.mogo.module:module-map:${MOGO_MODULE_MAP_VERSION}", - - // V2X - moduleV2x : "com.mogo.module:module-v2x:${MOGO_MODULE_V2X_VERSION}", // 基础服务实现 mogowebsocket : "com.mogo.module.carchatting:module-carchatt-socket:${WEBSOCKET_VERSION}", mogologlib : "com.mogo.module:module-loglib:${LOGLIB_VERSION}", @@ -169,8 +165,6 @@ ext { mogo_core_function_devatools : "com.mogo.eagle.core.function.impl:devatools:${MOGO_CORE_FUNCTION_DEVATOOLS_VERSION}", mogo_core_function_hmi : "com.mogo.eagle.core.function.impl:hmi:${MOGO_CORE_FUNCTION_HMI_VERSION}", mogo_core_function_map : "com.mogo.eagle.core.function.impl:map:${MOGO_CORE_FUNCTION_MAP_VERSION}", - mogo_core_function_obu_mogo : "com.mogo.eagle.core.function.impl:obu-mogo:${MOGO_CORE_FUNCTION_OBU_MOGO_VERSION}", - mogo_core_function_v2x : "com.mogo.eagle.core.function.impl:v2x:${MOGO_CORE_FUNCTION_V2X_VERSION}", mogo_core_function_api : "com.mogo.eagle.core.function:api:${MOGO_CORE_FUNCTION_API_VERSION}", mogo_core_function_call : "com.mogo.eagle.core.function:call:${MOGO_CORE_FUNCTION_CALL_VERSION}", mogo_core_data : "com.mogo.eagle.core:data:${MOGO_CORE_DATA_VERSION}", diff --git a/core/function-impl/mogo-core-function-map/consumer-rules.pro b/core/function-impl/mogo-core-function-map/consumer-rules.pro index b294e7f5c4..77b92e3614 100644 --- a/core/function-impl/mogo-core-function-map/consumer-rules.pro +++ b/core/function-impl/mogo-core-function-map/consumer-rules.pro @@ -1,4 +1,3 @@ --keep class com.mogo.module.small.map.*{*;} -keep class com.android.internal.policy.MyPhoneLayoutInflater{*;} -keep class com.amap.api.col.n3.*{*;} diff --git a/gradle.properties b/gradle.properties index 0af01e8d99..89a64966b2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -66,23 +66,23 @@ SERVICE_BIZ_VERSION=1.2.4 LOGLIB_VERSION=1.5.10 ######## MogoAiCloudSDK Version ######## # 网络请求LOGLIB_VERSION -MOGO_NETWORK_VERSION=1.4.4.7 +MOGO_NETWORK_VERSION=1.4.4.8 # 鉴权 -MOGO_PASSPORT_VERSION=1.4.4.7 +MOGO_PASSPORT_VERSION=1.4.4.8 # 常链接 -MOGO_SOCKET_VERSION=1.4.4.7 +MOGO_SOCKET_VERSION=1.4.4.8 # 数据采集 -MOGO_REALTIME_VERSION=1.4.4.7 +MOGO_REALTIME_VERSION=1.4.4.8 # 探路,道路事件发布,获取 -MOGO_TANLU_VERSION=1.4.4.7 +MOGO_TANLU_VERSION=1.4.4.8 # 直播推流 -MOGO_LIVE_VERSION=1.4.4.7 +MOGO_LIVE_VERSION=1.4.4.8 # 直播拉流 -MOGO_TRAFFICLIVE_VERSION=1.4.4.7 +MOGO_TRAFFICLIVE_VERSION=1.4.4.8 # 定位服务 -MOGO_LOCATION_VERSION=1.4.4.7 +MOGO_LOCATION_VERSION=1.4.4.8 # 远程通讯模块 -MOGO_TELEMATIC_VERSION=1.4.4.7 +MOGO_TELEMATIC_VERSION=1.4.4.8 ######## MogoAiCloudSDK Version ######## # 自研地图 MAP_SDK_VERSION=2.10.0.9 @@ -99,8 +99,6 @@ versionName=3.0.0 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_HMI_VERSION=0.0.58.10 MOGO_CORE_FUNCTION_MAP_VERSION=0.0.58.10 -MOGO_CORE_FUNCTION_OBU_MOGO_VERSION=0.0.58.10 -MOGO_CORE_FUNCTION_V2X_VERSION=0.0.58.10 MOGO_CORE_DATA_VERSION=0.0.58.10 MOGO_CORE_FUNCTION_API_VERSION=0.0.58.10 MOGO_CORE_FUNCTION_CALL_VERSION=0.0.58.10 @@ -113,8 +111,6 @@ MOGO_CORE_NETWORK_VERSION=0.0.58.10 MOGO_COMMONS_VERSION=2.1.16.10 MOGO_MAP_VERSION=2.1.16.10 MOGO_MAP_API_VERSION=2.1.16.10 -MOGO_MODULE_MAP_VERSION=2.1.16.10 -MOGO_MODULE_V2X_VERSION=2.1.16.10 # obu MOGO_MODULE_OBU_MOGO_VERSION=2.1.16.10 # bugly @@ -138,11 +134,6 @@ MOGO_OCH_TAXI_VERSION=2.0.66 # mogoAiCloud sdk services MOGO_AICLOUD_SERVICES_SDK_VERSION=2.1.16.10 -################# 旧版本架构模块版本 ################# - - - - # ADAS LIB Maven配置(用于地图部门测试使用,鹰眼项目中使用本地依赖) # ADAS_LIB_GROUP=com.zhidao.support.adas ADAS_LIB_POM_ARTIFACT_ID=high @@ -152,6 +143,5 @@ ADAS_DATA_LIB_GROUP=com.zhjt.mogo.adas.data ADAS_DATA_LIB_POM_ARTIFACT_ID=adas-data ADAS_DATA_LIB_CHILD_VERSION=.0 - # 线程优化版本 THREAD_OPT_VERSION=4.0.0 From db8bb54efacc0dc24fdbf58dd20b950e6163f1ac Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 17:59:49 +0800 Subject: [PATCH 29/30] [2.13.0-arch-opt] .. --- .../com/mogo/launcher/startup/ConfigStartUp.kt | 2 +- .../hmi/ui/setting/DebugSettingView.kt | 5 ----- .../smp/view/ISmallMapDirectionView.java | 18 ------------------ .../res/layout/module_small_map_fragment.xml | 17 ----------------- 4 files changed, 1 insertion(+), 41 deletions(-) delete mode 100644 core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/ISmallMapDirectionView.java delete mode 100644 core/function-impl/mogo-core-function-map/src/main/res/layout/module_small_map_fragment.xml diff --git a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt index 1335dc0e52..a149317547 100644 --- a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt @@ -101,7 +101,7 @@ object ConfigStartUp { } val mapParams = MapParams.init() - mapParams.setDebugMode(false) //todo 1-使用本地地图数据,0-使用在线地图数据 + mapParams.setDebugMode(false) // 1-使用本地地图数据,0-使用在线地图数据 //.setDataFileSource(1) .setDebugMode(false) .setCoordinateType(MapParams.COORDINATETYPE_GCJ02) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index 3c7341be2d..05606d4bba 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -662,11 +662,6 @@ internal class DebugSettingView @JvmOverloads constructor( FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = isChecked } - //TODO - tbIsDrawPath.setOnCheckedChangeListener { _, isChecked -> - - } - // 初始化 GSP数据源 数据 rgGpsProvider.check( when (FunctionBuildConfig.gpsProvider) { diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/ISmallMapDirectionView.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/ISmallMapDirectionView.java deleted file mode 100644 index 7f2fb52fc9..0000000000 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/ISmallMapDirectionView.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.mogo.eagle.core.function.smp.view; - -/** - * @author xiaoyuzhou - * @date 2021/6/24 11:33 上午 - */ -public interface ISmallMapDirectionView { - - /** - * 绘制路径线 - */ - void drawablePolyline(); - - /** - * 清除路径线 - */ - void clearPolyline(); -} diff --git a/core/function-impl/mogo-core-function-map/src/main/res/layout/module_small_map_fragment.xml b/core/function-impl/mogo-core-function-map/src/main/res/layout/module_small_map_fragment.xml deleted file mode 100644 index 39ed764704..0000000000 --- a/core/function-impl/mogo-core-function-map/src/main/res/layout/module_small_map_fragment.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - \ No newline at end of file From 68bf70246740e024d892b463c24ab0f20b76fcc4 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 20:11:09 +0800 Subject: [PATCH 30/30] [2.13.0-arch-opt] remove brake and turn --- .../src/main/res/layout/bus_p_base_fragment.xml | 9 --------- .../src/main/res/layout/bus_base_fragment.xml | 8 -------- .../src/main/res/layout/sweeper_base_fragment.xml | 8 -------- .../src/main/res/layout/taxi_p_base_fragment.xml | 9 --------- .../src/main/res/layout/taxi_base_fragment.xml | 8 -------- 5 files changed, 42 deletions(-) diff --git a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml index 96b90db2b4..608ac59429 100644 --- a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml @@ -47,15 +47,6 @@ android:layout_width="match_parent" android:layout_height="match_parent"/> - - - - - - - - - - - - - - -