From ae3714c97e7e23136407cfb4bce2084cd0ad4159 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 23 Oct 2024 17:18:39 +0800 Subject: [PATCH] =?UTF-8?q?[6.7.2]=20[fix]=20[=E8=AE=BE=E7=BD=AE=E8=87=AA?= =?UTF-8?q?=E9=A9=BE=E4=BF=A1=E6=81=AF]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/model/BusPassengerModel.java | 54 ++++++++++++++++ .../passenger/model/BusPassengerModel.kt | 63 +++++++++++++++++++ 2 files changed, 117 insertions(+) diff --git a/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/model/BusPassengerModel.java b/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/model/BusPassengerModel.java index 418ebab629..06aa506cc0 100644 --- a/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/model/BusPassengerModel.java +++ b/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/model/BusPassengerModel.java @@ -17,7 +17,9 @@ import androidx.annotation.Nullable; import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager; import com.mogo.commons.module.intent.IMogoIntentListener; import com.mogo.commons.module.intent.IntentManager; +import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener; +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant; @@ -31,6 +33,7 @@ import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager; import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; import com.mogo.och.common.module.manager.socket.lan.LanSocketManager; import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType; +import com.mogo.och.common.module.utils.PinYinUtil; import com.mogo.och.common.module.voice.VoiceNotice; import com.mogo.och.shuttle.passenger.R; import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg; @@ -260,6 +263,7 @@ public class BusPassengerModel { BusStationBean startStation = mStations.get(i); BusStationBean endStation = mStations.get(i+1); setTrajectoryStation(startStation, endStation, result.getLineId()); + updateAutopilotControlParameters(result,i); return; }else if (station.getDrivingStatus() == STATION_STATUS_STOPPED && !station.isLeaving()){ if (i == stations.size() - 1) { @@ -269,6 +273,7 @@ public class BusPassengerModel { isGoingToNextStation = false; CallerLogger.d(M_BUS_P + TAG, "order = station= arrive"); mRouteLineInfoCallback.updateStationsInfo(stations,i,true); + clearAutopilotControlParameters(); return; } } @@ -277,6 +282,55 @@ public class BusPassengerModel { } + private void clearAutopilotControlParameters() { + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "AutopilotControlParameters is clear."); + CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(null); + } + + + private void updateAutopilotControlParameters(BusRoutesResult busRoutesResult , int leaveIndex) { + AutopilotControlParameters parameters = initAutopilotControlParameters(busRoutesResult, leaveIndex); + if (null == parameters) { + CallerLogger.e(SceneConstant.M_BUS_P + TAG, "AutopilotControlParameters is empty."); + return; + } + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "AutopilotControlParameters is update."); + CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(parameters); + } + + private AutopilotControlParameters initAutopilotControlParameters(BusRoutesResult busRoutesResult , int leaveIndex ) { + if (busRoutesResult.getSites() == null) { + return null; + } + List stations = busRoutesResult.getSites(); + if (leaveIndex + 1 > stations.size() - 1) { + CallerLogger.e(SceneConstant.M_BUS_P + TAG, "行程日志-mismatch condition1."); + return null; + } + BusStationBean currentStation = stations.get(leaveIndex); + BusStationBean nextStation = stations.get(leaveIndex + 1); + AutopilotControlParameters parameters = new AutopilotControlParameters(); + parameters.routeID = busRoutesResult.getLineId(); + parameters.routeName = busRoutesResult.getName(); + parameters.startName = currentStation.getName(); + parameters.endName = nextStation.getName(); + parameters.startLatLon = new AutopilotControlParameters.AutoPilotLonLat(currentStation.getLat(), currentStation.getLon()); + parameters.endLatLon = new AutopilotControlParameters.AutoPilotLonLat(nextStation.getLat(), nextStation.getLon()); + parameters.vehicleType = 10; + if (parameters.autoPilotLine == null) { + parameters.autoPilotLine =new AutopilotControlParameters.AutoPilotLine( + busRoutesResult.getLineId(), busRoutesResult.getName(), + busRoutesResult.csvFileUrl, busRoutesResult.csvFileMd5, + busRoutesResult.txtFileUrl, busRoutesResult.txtFileMd5, + busRoutesResult.contrailSaveTime, busRoutesResult.carModel, + busRoutesResult.csvFileUrlDPQP, busRoutesResult.csvFileMd5DPQP, + busRoutesResult.txtFileUrlDPQP, busRoutesResult.txtFileMd5DPQP, + busRoutesResult.contrailSaveTimeDPQP + ); + } + return parameters; + } + public void release() { releaseListeners(); cleanStation("release"); diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/jinlv/com/mogo/och/shuttle/weaknet/passenger/model/BusPassengerModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/jinlv/com/mogo/och/shuttle/weaknet/passenger/model/BusPassengerModel.kt index cd696ee235..018cfda723 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/jinlv/com/mogo/och/shuttle/weaknet/passenger/model/BusPassengerModel.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/jinlv/com/mogo/och/shuttle/weaknet/passenger/model/BusPassengerModel.kt @@ -3,10 +3,13 @@ package com.mogo.och.shuttle.weaknet.passenger.model import android.annotation.SuppressLint import android.content.Context import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager +import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +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.Logger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant @@ -28,6 +31,7 @@ import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.common.module.utils.PinYinUtil import com.mogo.och.common.module.voice.VoiceNotice.showNotice import com.mogo.och.data.bean.BusRoutesResult import com.mogo.och.data.bean.BusStationBean @@ -139,6 +143,7 @@ object BusPassengerModel { val startStation = mStations[i] val endStation = mStations[i + 1] setTrajectoryStation(startStation, endStation, result.lineId) + updateAutopilotControlParameters(result,i) return } else if (station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED && !station.isLeaving) { if (i == stations.size - 1) { @@ -148,6 +153,7 @@ object BusPassengerModel { isGoingToNextStation = false Logger.d(SceneConstant.M_BUS_P + TAG, "order = station= arrive") mRouteLineInfoCallback!!.updateStationsInfo(stations, i, true) + clearAutopilotControlParameters() return } } @@ -322,4 +328,61 @@ object BusPassengerModel { TrajectoryAndDistanceManager.setStationPoint(null, null, -1L) } + private fun updateAutopilotControlParameters( + busRoutesResult: BusRoutesResult, + leaveIndex: Int + ) { + val parameters = initAutopilotControlParameters(busRoutesResult, leaveIndex) + if (null == parameters) { + CallerLogger.e(SceneConstant.M_BUS_P + TAG, "AutopilotControlParameters is empty.") + return + } + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "AutopilotControlParameters is update.") + CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(parameters) + } + + private fun initAutopilotControlParameters( + busRoutesResult: BusRoutesResult, + leaveIndex: Int + ): AutopilotControlParameters? { + if (busRoutesResult.sites == null) { + return null + } + val stations = busRoutesResult.sites + if (leaveIndex + 1 > stations.size - 1) { + CallerLogger.e(SceneConstant.M_BUS_P + TAG, "行程日志-mismatch condition1.") + return null + } + val currentStation = stations[leaveIndex] + val nextStation = stations[leaveIndex + 1] + val parameters = AutopilotControlParameters() + parameters.routeID = busRoutesResult.lineId + parameters.routeName = busRoutesResult.name + parameters.startName = PinYinUtil.getPinYinHeadChar(currentStation.name) + parameters.endName = PinYinUtil.getPinYinHeadChar(nextStation.name) + parameters.startLatLon = + AutopilotControlParameters.AutoPilotLonLat(currentStation.lat, currentStation.lon) + parameters.endLatLon = + AutopilotControlParameters.AutoPilotLonLat(nextStation.lat, nextStation.lon) + parameters.vehicleType = 10 + if (parameters.autoPilotLine == null) { + parameters.autoPilotLine = AutopilotControlParameters.AutoPilotLine( + busRoutesResult.lineId.toLong(), busRoutesResult.name, + busRoutesResult.csvFileUrl, busRoutesResult.csvFileMd5, + busRoutesResult.txtFileUrl, busRoutesResult.txtFileMd5, + busRoutesResult.contrailSaveTime, busRoutesResult.carModel, + busRoutesResult.csvFileUrlDPQP, busRoutesResult.csvFileMd5DPQP, + busRoutesResult.txtFileUrlDPQP, busRoutesResult.txtFileMd5DPQP, + busRoutesResult.contrailSaveTimeDPQP + ) + } + return parameters + } + + + private fun clearAutopilotControlParameters() { + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "AutopilotControlParameters is clear.") + CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null) + } + }