From c2f8f5739fb4128d8fd67288727578657a2e2e5f Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Thu, 28 Jan 2021 21:19:26 +0800 Subject: [PATCH] opt --- .../com/mogo/och/taxi/MogoOCHTaxiModel.java | 5 +++ .../service/adas/IMogoADASController.java | 7 ++- .../service/impl/adas/MogoADASController.java | 43 +++++++++++++------ 3 files changed, 42 insertions(+), 13 deletions(-) diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java index 48d78c9713..818294839d 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java @@ -332,6 +332,11 @@ class MogoOCHTaxiModel { private void judgeStationStation( Location location ) { OCHTaxiOrderResponse.OCHTaxiStation station = mCurrentOCHOrder.drivingRoutes.get( 0 );//起点 double distance = CoordinateUtils.calculateLineDistance( station.lon, station.lat, location.getLongitude(), location.getLatitude() ); + if ( distance > 5 ) { + distance = CoordinateUtils.calculateLineDistance( station.lon, station.lat, + MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon(), + MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLat() ); + } if ( distance <= 5 ) { mIsArriveAtStartStation = true; unregisterCarLocationListener(); diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java index da895cc89c..53a5b72285 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java @@ -144,5 +144,10 @@ public interface IMogoADASController extends IProvider { int getAutopilotStatus(); - void mockOchStatus(int state, String reason); + void mockOchStatus( int state, String reason ); + + + double getLastLat(); + + double getLastLon(); } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java index d295e4d8c9..bfce908d44 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java @@ -12,6 +12,7 @@ import com.mogo.commons.context.ContextHolderUtil; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.network.SubscribeImpl; import com.mogo.commons.network.Utils; +import com.mogo.map.MogoLatLng; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.MogoModule; @@ -32,6 +33,7 @@ import com.mogo.service.adas.entity.ADASRecognizedResult; import com.mogo.service.adas.entity.ADASWarnMessage; import com.mogo.service.adas.entity.AdasOCHData; import com.mogo.service.impl.singleton.SingletonsHolder; +import com.mogo.service.network.IMogoNetwork; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.utils.TipToast; import com.mogo.utils.UiThreadHandler; @@ -347,16 +349,22 @@ public class MogoADASController implements IMogoADASController { } logWriter.write( ownerCarStateInfo ); ADASCarStateInfo stateInfo = GsonUtil.objectFromJson( ownerCarStateInfo, ADASCarStateInfo.class ); + try { + mLastLon = stateInfo.getValues().getLon(); + mLastLat = stateInfo.getValues().getLat(); + } catch ( Exception e ) { + e.printStackTrace(); + } if ( mMogoAdasCarDataCallback != null ) { mMogoAdasCarDataCallback.onAdasCarDataCallback( stateInfo ); } } @Override - public void notifyAutopilotState(AdasAIDLAutopilotStateModel autopilotStateModel) { - Logger.d(TAG, "notifyAutopilotState: " + autopilotStateModel); - if (mAdasOCHCallback != null) { - mAdasOCHCallback.onStateChanged(autopilotStateModel.getState(), autopilotStateModel.getReason()); + public void notifyAutopilotState( AdasAIDLAutopilotStateModel autopilotStateModel ) { + Logger.d( TAG, "notifyAutopilotState: " + autopilotStateModel ); + if ( mAdasOCHCallback != null ) { + mAdasOCHCallback.onStateChanged( autopilotStateModel.getState(), autopilotStateModel.getReason() ); } } }; @@ -364,6 +372,17 @@ public class MogoADASController implements IMogoADASController { } } + private double mLastLon; + private double mLastLat; + + public double getLastLat() { + return mLastLat; + } + + public double getLastLon() { + return mLastLon; + } + private boolean useTestSn = false; private void invokeShowADASOperation() { @@ -671,21 +690,21 @@ public class MogoADASController implements IMogoADASController { int status = IMogoAdasOCHCallback.STATUS_AUTOPILOT_DISABLE; try { status = AutopilotServiceManage.getInstance().autopilotStateCall().getState(); - } catch (Exception e) { + } catch ( Exception e ) { e.printStackTrace(); } return status; } @Override - public void mockOchStatus(int state, String reason) { - if(state == -1){ - if (mAdasOCHCallback != null) { - mAdasOCHCallback.onArriveAt(new AdasOCHData(1, 1d, 1d)); + public void mockOchStatus( int state, String reason ) { + if ( state == -1 ) { + if ( mAdasOCHCallback != null ) { + mAdasOCHCallback.onArriveAt( new AdasOCHData( 1, 1d, 1d ) ); } - }else { - if (mAdasOCHCallback != null) { - mAdasOCHCallback.onStateChanged(state, reason); + } else { + if ( mAdasOCHCallback != null ) { + mAdasOCHCallback.onStateChanged( state, reason ); } } }