[fix]
[设置自驾信息]
This commit is contained in:
yangyakun
2024-10-23 17:18:39 +08:00
parent cf9e9e4071
commit ae3714c97e
2 changed files with 117 additions and 0 deletions

View File

@@ -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<BusStationBean> 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");

View File

@@ -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)
}
}