From 99763d236d819c9e022c1bcdd9248828e058cece Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Wed, 21 Sep 2022 17:35:42 +0800 Subject: [PATCH 1/9] =?UTF-8?q?[2.11.0/1.6.0]=20bus=E5=8F=B8=E6=9C=BA?= =?UTF-8?q?=E7=AB=AF=20=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/bus/bean/BusCloseTaskRequest.java | 20 ++++++ .../bus/bean/BusQueryLineStationsRequest.java | 3 +- .../bus/bean/BusUpdateSiteStatusRequest.java | 8 +-- .../mogo/och/bus/fragment/BusFragment.java | 4 +- .../com/mogo/och/bus/model/BusOrderModel.java | 68 ++++++++++++------- .../mogo/och/bus/net/BusServiceManager.java | 39 +++++++---- .../com/mogo/och/bus/net/IBusApiService.java | 34 ++++++++-- .../mogo/och/bus/presenter/BusPresenter.java | 4 +- 8 files changed, 128 insertions(+), 52 deletions(-) create mode 100644 OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java new file mode 100644 index 0000000000..02c4e1e8f1 --- /dev/null +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java @@ -0,0 +1,20 @@ +package com.mogo.och.bus.bean; + +import com.mogo.cloud.passport.MoGoAiCloudClientConfig; + +/** + * + */ +public class BusCloseTaskRequest { + + private String sn; + private int taskId; + public BusCloseTaskRequest(int taskId) { + this.sn = MoGoAiCloudClientConfig.getInstance().getSn(); + this.taskId = taskId; + } + + public String getSn() { + return sn; + } +} diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusQueryLineStationsRequest.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusQueryLineStationsRequest.java index 6485027084..87fdd01745 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusQueryLineStationsRequest.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusQueryLineStationsRequest.java @@ -2,14 +2,13 @@ package com.mogo.och.bus.bean; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; -public /** * @author congtaowang * @since 2021/3/22 * * 根据车机行驶线路站点信息 */ -class BusQueryLineStationsRequest { +public class BusQueryLineStationsRequest { private String sn; private double lat; diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java index a9552157ff..c25bccb128 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java @@ -12,16 +12,14 @@ import com.mogo.commons.network.Utils; public class BusUpdateSiteStatusRequest { public String sn; + public int taskId; public int seq;//站点序号 public int siteId;//站点id - public double lon; - public double lat; - public BusUpdateSiteStatusRequest(int seq, int siteId, double lon, double lat) { + public BusUpdateSiteStatusRequest(int taskId,int siteId,int seq) { this.sn = MoGoAiCloudClientConfig.getInstance().getSn(); this.seq = seq; this.siteId = siteId; - this.lon = lon; - this.lat = lat; + this.taskId = taskId; } } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index d21c1eae71..edae3fb2cc 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -505,7 +505,7 @@ public class BusFragment extends BaseBusTabFragment if ((int)mSwitchLine.getTag() == 0){//切换路线 Intent intent = new Intent(getContext(), BusSwitchLineActivity.class); startActivity(intent); - }else {//结束路线 + }else {//结束任务 OCHCommitDialog.Builder builder = new OCHCommitDialog.Builder(); OCHCommitDialog closeLineConfirmDialog = builder .title(getString(R.string.bus_dialog_title)) @@ -516,7 +516,7 @@ public class BusFragment extends BaseBusTabFragment closeLineConfirmDialog.setClickListener(new OCHCommitDialog.ClickListener() { @Override public void confirm() { - mPresenter.resetCurrentLineStatus(); + mPresenter.abortTask(); } @Override 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 9929bafac1..31aa80465e 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 @@ -504,13 +504,13 @@ public class BusOrderModel { /** * 重置路线站点状态--结束路线,当前路线恢复到始发站 */ - public void resetCurrentLineStatus() { - CallerLogger.INSTANCE.d( M_BUS + TAG, "结束当前路线"); - BusServiceManager.getInstance().resetCurrentLineStatus(mContext, currentLineId + public void abortTask() { + CallerLogger.INSTANCE.d( M_BUS + TAG, "结束当前路线abortTask"); + BusServiceManager.getInstance().abortTask(mContext, currentLineId , new IBusServiceCallback() { @Override public void onSuccess(BusRoutesResponse o) { - CallerLogger.INSTANCE.d(M_BUS + TAG, "结束当前路线成功: " + o); + CallerLogger.INSTANCE.d(M_BUS + TAG, "abortTask success: " + o); isGoingToNextStation = false; if (o.code == 0){ // 重置成功 queryBusRoutes(); @@ -528,27 +528,22 @@ public class BusOrderModel { /** * 离站上报 */ - public void leaveStation(boolean isOneWayOver,boolean isRestart){ + public void leaveStation(boolean isRestart){ CallerLogger.INSTANCE.d(M_BUS + TAG,"leaveStation-backgroundCurrentStationIndex = "+backgroundCurrentStationIndex); - BusServiceManager.getInstance().leaveStation(mContext, stationList.get(backgroundCurrentStationIndex).getSeq() - , stationList.get(backgroundCurrentStationIndex).getSiteId(), new IBusServiceCallback() { + BusServiceManager.getInstance().leaveStation(mContext, + stationList.get(backgroundCurrentStationIndex).getSeq(), + stationList.get(backgroundCurrentStationIndex).getSiteId(), + currentLineId, + new IBusServiceCallback() { @Override public void onSuccess(BusRoutesResponse o) { if ( o.getResult() == null || o.getResult().getSites() == null || o.getResult().getSites().isEmpty() ) { return; } isArrivedStation = false; - if (!isOneWayOver){ - CallerLogger.INSTANCE.d( M_BUS + TAG, "自动驾驶开启开往下一站====" ); - //需要更改当前站和下一站的状态 然后渲染 - leaveStationSuccess(o.getResult(),isRestart); - }else { - CallerLogger.INSTANCE.d( M_BUS + TAG, "单程真的结束了====" ); - isGoingToNextStation = false; - backgroundCurrentStationIndex = 0; - CallerAutoPilotManager.INSTANCE.cancelAutoPilot(); - queryBusRoutes(); - } + CallerLogger.INSTANCE.d( M_BUS + TAG, "自动驾驶开启开往下一站====" ); + //需要更改当前站和下一站的状态 然后渲染 + leaveStationSuccess(o.getResult(),isRestart); } @Override public void onFail(String failMsg) { @@ -649,9 +644,11 @@ public class BusOrderModel { } CallerLogger.INSTANCE.d(M_BUS + TAG,"arriveSiteStation-currentStationIndex = "+ arrivedStationIndex); - BusServiceManager.getInstance().arriveSiteStation(mContext - , stationList.get(arrivedStationIndex).getSeq(), stationList.get(arrivedStationIndex).getSiteId() - , new IBusServiceCallback() { + BusServiceManager.getInstance().arriveSiteStation(mContext , + stationList.get(arrivedStationIndex).getSeq(), + stationList.get(arrivedStationIndex).getSiteId(), + currentLineId , + new IBusServiceCallback() { @Override public void onSuccess(BaseData o) { CallerLogger.INSTANCE.d(M_BUS + TAG,"arriveSiteStation success"); @@ -810,7 +807,7 @@ public class BusOrderModel { travelOver(); return; } - leaveStation(false,isRestart); + leaveStation(isRestart); } /** @@ -984,7 +981,32 @@ public class BusOrderModel { CallerLogger.INSTANCE.d( M_BUS + TAG, "单程结束====" ); CallerAutoPilotManager.INSTANCE.cancelAutoPilot(); AIAssist.getInstance( mContext ).speakTTSVoice( "感谢您体验'蘑菇车联'无人驾驶小巴车,请您携带好随身物品,我们下次再见" ); - leaveStation(true,true); +// leaveStation(true,true); + endTask(); + } + + /** + * task正常结束 + */ + private void endTask() { + CallerLogger.INSTANCE.d( M_BUS + TAG, "任务正常走完endTask()"); + BusServiceManager.getInstance().endTask(mContext, currentLineId + , new IBusServiceCallback() { + @Override + public void onSuccess(BusRoutesResponse o) { + CallerLogger.INSTANCE.d(M_BUS + TAG, "endTask success: " + o); + if (o.code == 0){ // 重新获取任务 + isGoingToNextStation = false; + backgroundCurrentStationIndex = 0; + queryBusRoutes(); + } + } + + @Override + public void onFail(String failMsg) { + ToastUtils.showShort(failMsg); + } + }); } public boolean isWorking() { diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/BusServiceManager.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/BusServiceManager.java index 44284cb122..5fbd7f23b2 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/BusServiceManager.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/BusServiceManager.java @@ -10,8 +10,8 @@ import com.mogo.eagle.core.network.MoGoRetrofitFactory; import com.mogo.eagle.core.network.RequestOptions; import com.mogo.eagle.core.network.SubscribeImpl; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.och.bus.bean.BusCloseTaskRequest; import com.mogo.och.bus.bean.BusQueryLinesResponse; -import com.mogo.och.bus.bean.BusResetLineStatusRequest; import com.mogo.och.bus.bean.BusRoutePlanningUpdateReqBean; import com.mogo.och.bus.bean.BusRoutesResponse; import com.mogo.och.bus.bean.CarHeartbeatReqBean; @@ -83,17 +83,31 @@ public class BusServiceManager { } /** - * 结束当前路线,当前路线状态重置到始发站 + * 结束当前任务 * @param context - * @param lineId + * @param taskId * @param callback */ - public void resetCurrentLineStatus(Context context, int lineId, IBusServiceCallback callback){ - mService.resetCurrentLineStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId() + public void abortTask(Context context, int taskId, IBusServiceCallback callback){ + mService.abortTask(MoGoAiCloudClientConfig.getInstance().getServiceAppId() ,MoGoAiCloudClientConfig.getInstance().getToken() - ,new BusResetLineStatusRequest()) + ,new BusCloseTaskRequest(taskId)) .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) - .subscribe(getSubscribeImpl(context,callback,"resetCurrentLineStatus")); + .subscribe(getSubscribeImpl(context,callback,"abortTask")); + } + + /** + * 正常结束任务 + * @param context + * @param taskId + * @param callback + */ + public void endTask(Context context, int taskId, IBusServiceCallback callback){ + mService.endTask(MoGoAiCloudClientConfig.getInstance().getServiceAppId() + ,MoGoAiCloudClientConfig.getInstance().getToken() + ,new BusCloseTaskRequest(taskId)) + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe(getSubscribeImpl(context,callback,"endTask")); } /** @@ -103,11 +117,10 @@ public class BusServiceManager { * @param siteId * @param callback */ - public void leaveStation(Context context, int seq, int siteId, IBusServiceCallback callback){ + public void leaveStation(Context context, int seq, int siteId,int taskId, IBusServiceCallback callback){ mService.leaveStation(MoGoAiCloudClientConfig.getInstance().getServiceAppId() ,MoGoAiCloudClientConfig.getInstance().getToken() - ,new BusUpdateSiteStatusRequest(seq,siteId, BusOrderModel.getInstance().mLongitude - , BusOrderModel.getInstance().mLatitude)) + ,new BusUpdateSiteStatusRequest(taskId,siteId,seq)) .subscribeOn( Schedulers.io() ) .observeOn( AndroidSchedulers.mainThread() ) .subscribe(getSubscribeImpl(context,callback,"leaveStation")); @@ -120,11 +133,11 @@ public class BusServiceManager { * @param siteId * @param callback */ - public void arriveSiteStation(Context context, int seq, int siteId, IBusServiceCallback callback){ + public void arriveSiteStation(Context context, int seq, int siteId,int taskId, + IBusServiceCallback callback){ mService.arriveSiteStation(MoGoAiCloudClientConfig.getInstance().getServiceAppId() ,MoGoAiCloudClientConfig.getInstance().getToken() - ,new BusUpdateSiteStatusRequest(seq,siteId - , BusOrderModel.getInstance().mLongitude, BusOrderModel.getInstance().mLatitude)) + ,new BusUpdateSiteStatusRequest(taskId,siteId,seq)) .subscribeOn( Schedulers.io() ) .observeOn( AndroidSchedulers.mainThread() ) .subscribe(getSubscribeImpl(context,callback,"leaveStation")); diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/IBusApiService.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/IBusApiService.java index 291fb9f67f..799fbd2088 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/IBusApiService.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/IBusApiService.java @@ -1,9 +1,9 @@ package com.mogo.och.bus.net; import com.mogo.eagle.core.data.BaseData; +import com.mogo.och.bus.bean.BusCloseTaskRequest; import com.mogo.och.bus.bean.BusOperationStatusRequest; import com.mogo.och.bus.bean.BusOrdersResponse; import com.mogo.och.bus.bean.BusQueryLinesResponse; -import com.mogo.och.bus.bean.BusResetLineStatusRequest; import com.mogo.och.bus.bean.BusRoutePlanningUpdateReqBean; import com.mogo.och.bus.bean.BusRoutesResponse; import com.mogo.och.bus.bean.CarHeartbeatReqBean; @@ -59,7 +59,8 @@ public interface IBusApiService { */ @Headers({"Content-Type:application/json;charset=UTF-8"}) // @POST("/autopilot-car-hailing/car/v2/bus/driving/away") - @POST("/autopilot-car-hailing/car/v2/driver/bus/driving/away") +// @POST("/autopilot-car-hailing/car/v2/driver/bus/driving/away") + @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/leave") // @POST("/mock/268/autopilot-car-hailing/bus/api/driving/away") Observable leaveStation(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusUpdateSiteStatusRequest request); @@ -70,7 +71,8 @@ public interface IBusApiService { */ @Headers({"Content-type:application/json;charset=UTF-8"}) // @POST("/autopilot-car-hailing/order/v2/bus/driving/attachSite") - @POST("/autopilot-car-hailing/order/v2/driver/bus/driving/attachSite") +// @POST("/autopilot-car-hailing/order/v2/driver/bus/driving/attachSite") + @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/arrive") // @POST("/mock/268/autopilot-car-hailing/bus/api/driving/attachSite") Observable< BaseData > arriveSiteStation(@Header ("appId") String appId,@Header("ticket") String ticket,@Body BusUpdateSiteStatusRequest request); @@ -150,8 +152,30 @@ public interface IBusApiService { @POST( "/autopilot-car-hailing/location/v2/driver/bus/saveLineCoordinate" ) Observable updateOrderRoute(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusRoutePlanningUpdateReqBean data); +// @Headers( {"Content-type:application/json;charset=UTF-8"} ) +// @POST("/autopilot-car-hailing/operation/v1/driver/bus/line/resetStart") +// Observable resetCurrentLineStatus(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusResetLineStatusRequest data); + + /** + * 中止任务 + * @param appId + * @param ticket + * @param data + * @return + */ @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST("/autopilot-car-hailing/operation/v1/driver/bus/line/resetStart") - Observable resetCurrentLineStatus(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusResetLineStatusRequest data); + @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/abortTask") + Observable abortTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data); + + /** + * 任务正常跑完结束 + * @param appId + * @param ticket + * @param data + * @return + */ + @Headers( {"Content-type:application/json;charset=UTF-8"} ) + @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/endTask") + Observable endTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data); } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index 435252fefa..89d48ed70c 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -94,8 +94,8 @@ public class BusPresenter extends Presenter BusOrderModel.getInstance().queryOperationStatus(); } - public void resetCurrentLineStatus() { - BusOrderModel.getInstance().resetCurrentLineStatus(); + public void abortTask() { + BusOrderModel.getInstance().abortTask(); } public void autoDriveToNextStation(boolean isRestart) { From a07432405475c739b5d0d3f72f7094d18564135a Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Wed, 21 Sep 2022 19:14:35 +0800 Subject: [PATCH 2/9] =?UTF-8?q?[2.11.0/1.6.0]=20bus=E5=8F=B8=E6=9C=BA?= =?UTF-8?q?=E7=AB=AF=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../network/BusPassengerModelLoopManager.java | 12 +- .../com/mogo/och/bus/constant/BusConst.kt | 4 + .../com/mogo/och/bus/model/BusOrderModel.java | 150 +++++++++--------- .../mogo/och/bus/net/BusServiceManager.java | 8 +- .../com/mogo/och/bus/net/IBusApiService.java | 6 +- .../bus/presenter/BusModelLoopManager.java | 24 +++ 6 files changed, 114 insertions(+), 90 deletions(-) diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/network/BusPassengerModelLoopManager.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/network/BusPassengerModelLoopManager.java index c37b463947..c0d1db411d 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/network/BusPassengerModelLoopManager.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/network/BusPassengerModelLoopManager.java @@ -36,7 +36,7 @@ public class BusPassengerModelLoopManager { return SingletonHolder.INSTANCE; } - private Disposable mHeartbeatDisposable; //心跳轮询 + private Disposable mQueryLineDisposable; //心跳轮询 private CompositeDisposable mRouteWipeDisposable; private CompositeDisposable mCalculateRouteDisposable; //每隔2s计算一次剩余里程和时间 @@ -78,11 +78,11 @@ public class BusPassengerModelLoopManager { } public void startQueryDriverLineLoop() { - if (mHeartbeatDisposable != null && !mHeartbeatDisposable.isDisposed()) { + if (mQueryLineDisposable != null && !mQueryLineDisposable.isDisposed()) { return; } CallerLogger.INSTANCE.i(M_BUS_P + TAG, "startQueryDriverLineLoop()"); - mHeartbeatDisposable = Observable.interval(LOOP_DELAY, + mQueryLineDisposable = Observable.interval(LOOP_DELAY, LOOP_LINE_2S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) .subscribeOn(Schedulers.io()) @@ -91,10 +91,10 @@ public class BusPassengerModelLoopManager { } public void stopQueryDriverLineLoop() { - if (mHeartbeatDisposable != null) { + if (mQueryLineDisposable != null) { CallerLogger.INSTANCE.i(M_BUS_P + TAG, "stopQueryDriverLineLoop()"); - mHeartbeatDisposable.dispose(); - mHeartbeatDisposable = null; + mQueryLineDisposable.dispose(); + mQueryLineDisposable = null; } } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt index bd1c823a13..867aa2df61 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt @@ -75,5 +75,9 @@ class BusConst { //围栏到站 暂定10米 const val ARRIVE_AT_END_STATION_DISTANCE = 10 + + // 轮询 + const val LOOP_PASSENGER_2S = 2 * 1000L + const val LOOP_PASSENGER_1S = 1 * 1000L } } \ No newline at end of file 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 31aa80465e..30203d9076 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 @@ -340,6 +340,7 @@ public class BusOrderModel { mBusOrdersDisposable.dispose(); } startOrStopOrderLoop(false); + startOrStopQueryPassengerWriteOff(false); MogoApisHandler.getInstance() .getApis() .getStatusManagerApi() @@ -507,9 +508,9 @@ public class BusOrderModel { public void abortTask() { CallerLogger.INSTANCE.d( M_BUS + TAG, "结束当前路线abortTask"); BusServiceManager.getInstance().abortTask(mContext, currentLineId - , new IBusServiceCallback() { + , new IBusServiceCallback() { @Override - public void onSuccess(BusRoutesResponse o) { + public void onSuccess(BaseData o) { CallerLogger.INSTANCE.d(M_BUS + TAG, "abortTask success: " + o); isGoingToNextStation = false; if (o.code == 0){ // 重置成功 @@ -525,37 +526,6 @@ public class BusOrderModel { } - /** - * 离站上报 - */ - public void leaveStation(boolean isRestart){ - CallerLogger.INSTANCE.d(M_BUS + TAG,"leaveStation-backgroundCurrentStationIndex = "+backgroundCurrentStationIndex); - BusServiceManager.getInstance().leaveStation(mContext, - stationList.get(backgroundCurrentStationIndex).getSeq(), - stationList.get(backgroundCurrentStationIndex).getSiteId(), - currentLineId, - new IBusServiceCallback() { - @Override - public void onSuccess(BusRoutesResponse o) { - if ( o.getResult() == null || o.getResult().getSites() == null || o.getResult().getSites().isEmpty() ) { - return; - } - isArrivedStation = false; - CallerLogger.INSTANCE.d( M_BUS + TAG, "自动驾驶开启开往下一站====" ); - //需要更改当前站和下一站的状态 然后渲染 - leaveStationSuccess(o.getResult(),isRestart); - } - @Override - public void onFail(String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else{ - ToastUtils.showShort("离站上报失败:"+failMsg); - } - } - }); - } - /** * 离站上报成功后渲染站点 * 服务端返回的OchBusRoutesResult逻辑, 离开站为当前站, 到达下一站后才会将下一站置为当前站, @@ -569,9 +539,7 @@ public class BusOrderModel { paramIndexes = {0}, clientPkFileName = "sn" ) - private void leaveStationSuccess(BusRoutesResult result, boolean isRestart) { - - updateBusStatus(result); + private void leaveStationSuccess(boolean isRestart) { //开启自动驾驶 2.10.0: 如果自动驾驶状态下开启, 非自动驾驶状态下不开启,需手动点击自动驾驶按钮开启 if (isRestart || CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() @@ -630,6 +598,21 @@ public class BusOrderModel { } } + /** + * 到站查询核销乘客 + */ + public void queryPassengerWriteOff(){ + //todo 查询接口拿到核销乘客波播报 + } + + private void startOrStopQueryPassengerWriteOff(boolean isStart){ + if (isStart){ + BusModelLoopManager.getInstance().startQueryPassengerWriteOffLoop(); + }else { + BusModelLoopManager.getInstance().stopQueryPassengerWriteOffLoop(); + } + } + /** * 到站后重置站点状态 */ @@ -654,17 +637,46 @@ public class BusOrderModel { CallerLogger.INSTANCE.d(M_BUS + TAG,"arriveSiteStation success"); if (!isRestart){ arrivedBusStationSuccess(); + //todo 开始轮询到站核销的乘客 + startOrStopQueryPassengerWriteOff(true); } } @Override public void onFail(String failMsg) { -// if (!NetworkUtils.isConnected(mContext)) { -// ToastUtils.showShort("网络异常,请稍后重试"); -// }else { -// ToastUtils.showShort("离站上报失败:"+failMsg); -// } + if (!NetworkUtils.isConnected(mContext)) { + ToastUtils.showShort("网络异常,请稍后重试"); + } + } + }); + } + /** + * 离站上报 + */ + public void leaveStation(boolean isRestart){ + CallerLogger.INSTANCE.d(M_BUS + TAG,"leaveStation-backgroundCurrentStationIndex = "+backgroundCurrentStationIndex); + BusServiceManager.getInstance().leaveStation(mContext, + stationList.get(backgroundCurrentStationIndex).getSeq(), + stationList.get(backgroundCurrentStationIndex).getSiteId(), + currentLineId, + new IBusServiceCallback() { + @Override + public void onSuccess(BaseData o) { + isArrivedStation = false; + CallerLogger.INSTANCE.d( M_BUS + TAG, "自动驾驶开启开往下一站====" ); + //需要更改当前站和下一站的状态 然后渲染 + leaveStationSuccess(isRestart); + queryBusRoutes(); + startOrStopQueryPassengerWriteOff(false); + } + @Override + public void onFail(String failMsg) { + if (!NetworkUtils.isConnected(mContext)) { + ToastUtils.showShort("网络异常,请稍后重试"); + }else{ + ToastUtils.showShort("离站上报失败:"+failMsg); + } } }); } @@ -801,7 +813,7 @@ public class BusOrderModel { /** * 开启自动驾驶到下一站 */ - public void autoDriveToNextStation( boolean isRestart ) { + public void autoDriveToNextStation(boolean isRestart) { if ( backgroundCurrentStationIndex >= stationList.size() - 1 ) { // 当前站是最后一站,结束当前行程 travelOver(); @@ -880,25 +892,6 @@ public class BusOrderModel { } } - /** - * 根据订单状态、获取下一站靠站的的站点 - * - * @return -1 当前已是最后一个站点 - */ - private int getNextStopStation() { - if ( backgroundCurrentStationIndex >= stationList.size() - 1 ) { - return -1; - } - int nextStationIndex = backgroundCurrentStationIndex + 1; - for ( ; nextStationIndex < stationList.size() - 1; nextStationIndex++ ) { - if ( stationList.get( nextStationIndex ).getIfStop() == 1 ) { - break; - } - break; - } - return nextStationIndex; - } - /** * 延时查询站点信心 */ @@ -911,7 +904,7 @@ public class BusOrderModel { */ public void restartAutopilot() { CallerLogger.INSTANCE.d( M_BUS + TAG, "重启自动驾驶===" + isGoingToNextStation ); - autoDriveToNextStation( true ); + autoDriveToNextStation(true); } /** @@ -981,7 +974,7 @@ public class BusOrderModel { CallerLogger.INSTANCE.d( M_BUS + TAG, "单程结束====" ); CallerAutoPilotManager.INSTANCE.cancelAutoPilot(); AIAssist.getInstance( mContext ).speakTTSVoice( "感谢您体验'蘑菇车联'无人驾驶小巴车,请您携带好随身物品,我们下次再见" ); -// leaveStation(true,true); + endTask(); } @@ -991,14 +984,15 @@ public class BusOrderModel { private void endTask() { CallerLogger.INSTANCE.d( M_BUS + TAG, "任务正常走完endTask()"); BusServiceManager.getInstance().endTask(mContext, currentLineId - , new IBusServiceCallback() { + , new IBusServiceCallback() { @Override - public void onSuccess(BusRoutesResponse o) { + public void onSuccess(BaseData o) { CallerLogger.INSTANCE.d(M_BUS + TAG, "endTask success: " + o); - if (o.code == 0){ // 重新获取任务 + if (o.code == 0){ isGoingToNextStation = false; backgroundCurrentStationIndex = 0; - queryBusRoutes(); + queryBusRoutes();// 重新获取任务 + startOrStopQueryPassengerWriteOff(false); } } @@ -1035,16 +1029,18 @@ public class BusOrderModel { CallerLogger.INSTANCE.d( M_BUS + TAG, "到站====currentStationIndex=" + backgroundCurrentStationIndex); isGoingToNextStation = false; - queryStationLeaveAwayPassengers(); - UiThreadHandler.postDelayed(new Runnable() {// 先查询下车乘客,再上报到站,便于后台筛查下车订单 - @Override - public void run() { - if (!hadQueryLeaveAwayPassager){ - arriveSiteStation(false); - } - hadQueryLeaveAwayPassager = false; - } - },1500); + arriveSiteStation(false); + +// queryStationLeaveAwayPassengers();// 2.11.0不再播报乘客下车 +// UiThreadHandler.postDelayed(new Runnable() {// 先查询下车乘客,再上报到站,便于后台筛查下车订单 +// @Override +// public void run() { +// if (!hadQueryLeaveAwayPassager){ +// arriveSiteStation(false); +// } +// hadQueryLeaveAwayPassager = false; +// } +// },1500); } public boolean isGoingToNextStation() { diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/BusServiceManager.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/BusServiceManager.java index 5fbd7f23b2..edcfe36f6f 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/BusServiceManager.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/BusServiceManager.java @@ -83,12 +83,12 @@ public class BusServiceManager { } /** - * 结束当前任务 + * 中断当前任务 * @param context * @param taskId * @param callback */ - public void abortTask(Context context, int taskId, IBusServiceCallback callback){ + public void abortTask(Context context, int taskId, IBusServiceCallback callback){ mService.abortTask(MoGoAiCloudClientConfig.getInstance().getServiceAppId() ,MoGoAiCloudClientConfig.getInstance().getToken() ,new BusCloseTaskRequest(taskId)) @@ -102,7 +102,7 @@ public class BusServiceManager { * @param taskId * @param callback */ - public void endTask(Context context, int taskId, IBusServiceCallback callback){ + public void endTask(Context context, int taskId, IBusServiceCallback callback){ mService.endTask(MoGoAiCloudClientConfig.getInstance().getServiceAppId() ,MoGoAiCloudClientConfig.getInstance().getToken() ,new BusCloseTaskRequest(taskId)) @@ -117,7 +117,7 @@ public class BusServiceManager { * @param siteId * @param callback */ - public void leaveStation(Context context, int seq, int siteId,int taskId, IBusServiceCallback callback){ + public void leaveStation(Context context, int seq, int siteId,int taskId, IBusServiceCallback callback){ mService.leaveStation(MoGoAiCloudClientConfig.getInstance().getServiceAppId() ,MoGoAiCloudClientConfig.getInstance().getToken() ,new BusUpdateSiteStatusRequest(taskId,siteId,seq)) diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/IBusApiService.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/IBusApiService.java index 799fbd2088..a2fdb90796 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/IBusApiService.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/IBusApiService.java @@ -62,7 +62,7 @@ public interface IBusApiService { // @POST("/autopilot-car-hailing/car/v2/driver/bus/driving/away") @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/leave") // @POST("/mock/268/autopilot-car-hailing/bus/api/driving/away") - Observable leaveStation(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusUpdateSiteStatusRequest request); + Observable leaveStation(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusUpdateSiteStatusRequest request); /** * 到站 更新到站信息 @@ -165,7 +165,7 @@ public interface IBusApiService { */ @Headers( {"Content-type:application/json;charset=UTF-8"} ) @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/abortTask") - Observable abortTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data); + Observable abortTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data); /** * 任务正常跑完结束 @@ -176,6 +176,6 @@ public interface IBusApiService { */ @Headers( {"Content-type:application/json;charset=UTF-8"} ) @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/endTask") - Observable endTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data); + Observable endTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data); } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java index b431946ae0..676aab6775 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java @@ -1,6 +1,8 @@ package com.mogo.och.bus.presenter; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; +import static com.mogo.och.bus.constant.BusConst.LOOP_DELAY; +import static com.mogo.och.bus.constant.BusConst.LOOP_PASSENGER_2S; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.och.bus.constant.BusConst; @@ -31,6 +33,28 @@ public class BusModelLoopManager { } private Disposable mHeartbeatDisposable; //心跳轮询 + private Disposable mQueryPassengerDisposable; //查询核销乘客 + + public void startQueryPassengerWriteOffLoop() { + if (mQueryPassengerDisposable != null && !mQueryPassengerDisposable.isDisposed()) { + return; + } + CallerLogger.INSTANCE.i(M_BUS + TAG, "startQueryPassengerWriteOffLoop()"); + mQueryPassengerDisposable = Observable.interval(LOOP_DELAY, + LOOP_PASSENGER_2S, TimeUnit.MILLISECONDS) + .map((aLong -> aLong + 1)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(aLong -> BusOrderModel.getInstance().queryPassengerWriteOff()); + } + + public void stopQueryPassengerWriteOffLoop() { + if (mQueryPassengerDisposable != null) { + CallerLogger.INSTANCE.i(M_BUS + TAG, "stopQueryPassengerWriteOffLoop()"); + mQueryPassengerDisposable.dispose(); + mQueryPassengerDisposable = null; + } + } public void startHeartbeatLoop() { if (mHeartbeatDisposable != null && !mHeartbeatDisposable.isDisposed()) { From d7f2c3dad139b1c5722ca0090da30db8477eeed7 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 22 Sep 2022 14:29:22 +0800 Subject: [PATCH 3/9] add func of identify obj to filter source and add limit twice , demo mode in take over --- .../core/function/hmi/ui/MoGoHmiFragment.kt | 58 ++++--- .../hmi/ui/setting/DebugSettingView.kt | 50 ++---- .../main/res/layout/view_debug_setting.xml | 14 +- .../map/identify/IdentifyOriginDataDrawer.kt | 122 ++------------- .../function/map/identify/TrackManager.java | 93 +---------- .../map/identify/TrackerSourceHelper.kt | 135 ++++++++++++++++ .../function/map/identify/WarningHelper.kt | 148 ++++++++++++++++++ .../core/data/config/FunctionBuildConfig.kt | 2 +- .../mogo/module/common/enums/EventTypeEnum.kt | 4 +- 9 files changed, 366 insertions(+), 260 deletions(-) create mode 100644 core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackerSourceHelper.kt create mode 100644 core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/WarningHelper.kt diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index 7760451e81..bcc57eb412 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -1374,6 +1374,7 @@ class MoGoHmiFragment : MvpFragment(), HmiBuildConfig.isShowSnBindingView = isOpen } + private var takeOver = false /** * 工控机监控节点上报 @@ -1381,31 +1382,6 @@ class MoGoHmiFragment : MvpFragment(), override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) { ThreadUtils.runOnUiThread { guardianInfo?.let { - when (it.code) { - EXIT_AUTOPILOT_FOR_PLANNING, - EXIT_AUTOPILOT_FOR_LOCATION, - EXIT_AUTOPILOT_FOR_CHASSIS, - EXIT_AUTOPILOT_FOR_DISTANCE -> { - showWarningV2X( - EventTypeEnum.TAKE_OVER_EVENT.poiType, - EventTypeEnum.TAKE_OVER_EVENT.content, - EventTypeEnum.TAKE_OVER_EVENT.tts, - EventTypeEnum.TAKE_OVER_EVENT.poiType, - object : IMoGoWarningStatusListener { - override fun onShow() { - clTakeOverView.visibility = View.VISIBLE - } - - override fun onDismiss() { - clTakeOverView.visibility = View.GONE - } - }, - true, - 6000L - ) - } - } - if (reportList.size > 49) { reportList.removeLast() } @@ -1418,6 +1394,38 @@ class MoGoHmiFragment : MvpFragment(), ) reportListFloatWindow?.refreshData(reportList) + if(FunctionBuildConfig.isDemoMode){ + return@let + } + if(takeOver){ + return@let + } + when (it.code) { + EXIT_AUTOPILOT_FOR_PLANNING, + EXIT_AUTOPILOT_FOR_LOCATION, + EXIT_AUTOPILOT_FOR_CHASSIS, + EXIT_AUTOPILOT_FOR_DISTANCE -> { + showWarningV2X( + EventTypeEnum.TAKE_OVER_EVENT.poiType, + EventTypeEnum.TAKE_OVER_EVENT.content, + EventTypeEnum.TAKE_OVER_EVENT.tts, + EventTypeEnum.TAKE_OVER_EVENT.poiType, + object : IMoGoWarningStatusListener { + override fun onShow() { + takeOver = true + clTakeOverView.visibility = View.VISIBLE + } + + override fun onDismiss() { + takeOver = false + clTakeOverView.visibility = View.GONE + } + }, + true, + 6000L + ) + } + } } } } 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 384af51e4f..adc7747c96 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 @@ -9,6 +9,7 @@ import android.graphics.Color import android.os.Build import android.text.Html import android.util.AttributeSet +import android.util.Log import android.view.LayoutInflater import android.view.View import android.widget.* @@ -21,7 +22,6 @@ import androidx.recyclerview.widget.LinearLayoutManager import chassis.Chassis import com.mogo.cloud.passport.MoGoAiCloudClient import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.commons.AbsMogoApplication import com.mogo.commons.debug.DebugConfig import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.autopilot.* @@ -57,7 +57,6 @@ import com.mogo.eagle.core.function.call.map.CallerSmpManager import com.mogo.eagle.core.function.call.obu.CallerOBUManager import com.mogo.eagle.core.function.call.obu.CallerObuListenerManager import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.logcatch.ILogViewListener import com.mogo.eagle.core.function.hmi.ui.logcatch.LogInfoView @@ -633,33 +632,20 @@ class DebugSettingView @JvmOverloads constructor( } - // 初始化 GSP数据源 数据 rgGpsProvider.check( when (FunctionBuildConfig.gpsProvider) { - 0 -> { - R.id.rbGpsProviderAndroid - } - 1 -> { - R.id.rbGpsProviderRTK - } - 2 -> { - R.id.rbGpsProviderOBU - } + 0 -> R.id.rbGpsProviderAndroid + 1 -> R.id.rbGpsProviderRTK + 2 -> R.id.rbGpsProviderOBU else -> R.id.rbGpsProviderAndroid } ) rgGpsProvider.setOnCheckedChangeListener { _, checkedId -> when (checkedId) { - R.id.rbGpsProviderAndroid -> { - FunctionBuildConfig.gpsProvider = 0 - } - R.id.rbGpsProviderRTK -> { - FunctionBuildConfig.gpsProvider = 1 - } - R.id.rbGpsProviderOBU -> { - FunctionBuildConfig.gpsProvider = 2 - } + R.id.rbGpsProviderAndroid -> FunctionBuildConfig.gpsProvider = 0 + R.id.rbGpsProviderRTK -> FunctionBuildConfig.gpsProvider = 1 + R.id.rbGpsProviderOBU -> FunctionBuildConfig.gpsProvider = 2 } } @@ -690,22 +676,18 @@ class DebugSettingView @JvmOverloads constructor( trackerIPCProvider.check( when (FunctionBuildConfig.trackerIPCProvider) { 0 -> R.id.trackerIPCUnion - 1 -> R.id.trackerIPCObu - 2 -> R.id.trackerIPCV2N + 1 -> R.id.trackerIPC + 2 -> R.id.trackerIPCObu + 3 -> R.id.trackerIPCV2I else -> R.id.trackerIPCUnion } ) - trackerProvider.setOnCheckedChangeListener{ _, checkedId -> - when(checkedId){ - R.id.trackerIPCUnion -> { - FunctionBuildConfig.trackerIPCProvider = 0 - } - R.id.trackerIPCObu -> { - FunctionBuildConfig.trackerIPCProvider = 1 - } - R.id.trackerIPCV2N -> { - FunctionBuildConfig.trackerIPCProvider = 2 - } + trackerIPCProvider.setOnCheckedChangeListener { _, checkedId -> + when (checkedId) { + R.id.trackerIPCUnion -> FunctionBuildConfig.trackerIPCProvider = 0 + R.id.trackerIPC -> FunctionBuildConfig.trackerIPCProvider = 1 + R.id.trackerIPCObu -> FunctionBuildConfig.trackerIPCProvider = 2 + R.id.trackerIPCV2I -> FunctionBuildConfig.trackerIPCProvider = 3 } } 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 13f392ed35..063ec5f432 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 @@ -1796,6 +1796,16 @@ android:layout_height="wrap_content" android:layout_weight="1" android:padding="@dimen/dp_10" + android:text="融合全部感知数据" + android:textColor="#000" + android:textSize="@dimen/dp_24" /> + + @@ -1811,12 +1821,12 @@ android:textSize="@dimen/dp_24" /> diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyOriginDataDrawer.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyOriginDataDrawer.kt index 343bbd8449..d4c3e3d62b 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyOriginDataDrawer.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyOriginDataDrawer.kt @@ -1,21 +1,14 @@ package com.mogo.eagle.core.function.map.identify import android.annotation.SuppressLint -import android.text.TextUtils import androidx.collection.ArraySet import com.mogo.commons.AbsMogoApplication -import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo -import com.mogo.eagle.core.data.config.FunctionBuildConfig -import com.mogo.eagle.core.data.enums.TrafficTypeEnum import com.mogo.eagle.core.data.traffic.TrafficData -import com.mogo.eagle.core.data.traffic.threatLevelColor -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.w import com.mogo.map.MogoMarkerManager import com.mogo.module.common.MogoApisHandler -import mogo.telematics.pad.MessagePad -import mogo.telematics.pad.MessagePad.* +import mogo.telematics.pad.MessagePad.PlanningObject +import mogo.telematics.pad.MessagePad.TrackedObject import java.util.concurrent.ConcurrentHashMap /** @@ -23,20 +16,12 @@ import java.util.concurrent.ConcurrentHashMap * @date 2021/10/19 10:45 上午 * 域控制器识别信息绘制 */ -class IdentifyOriginDataDrawer : Identify, IMoGoAutopilotStatusListener { +class IdentifyOriginDataDrawer : Identify { companion object { private const val TAG = "IdentifyDataDrawer" } - init { - // 添加 ADAS状态 监听 - CallerAutoPilotStatusListenerManager.addListener(TAG, this) - } - - @Volatile - private var mAutopilotStatus: Int = 0 //自动驾驶状态 - /** * 上一帧数据的缓存 */ @@ -54,58 +39,13 @@ class IdentifyOriginDataDrawer : Identify, IMoGoAutopilotStatusListener { @SuppressLint("NewApi") private val mFilterTrafficData = HashMap() - /** - * planning 感知物预警缓存,用于重置color状态 - */ - private val pncWarningTrafficData = ConcurrentHashMap() - - /** - * obu 感知物预警缓存,用于重置color状态 - */ - private val obuWarningTrafficData = ConcurrentHashMap() - @SuppressLint("NewApi") - override fun renderPlanningWarningObj(planningObjects: List?) { - pncWarningTrafficData.clear() - if (FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData || mAutopilotStatus == 2) { - if (planningObjects == null) { - return - } - planningObjects.forEach { planningObj -> - val trackId = planningObj.uuid.toString() - if (mMarkersCaches.containsKey(trackId)) { - val trackObj = mMarkersCaches[trackId] - if (planningObj.type == 0) { - //0是leading障碍物,障碍物车身红色提示 - trackObj?.let { - pncWarningTrafficData[trackId] = PlanningTrack( - "#D65D5AFF", - CallerAutoPilotStatusListenerManager.getCurWgs84SatelliteTime() - ) - } - } else if (planningObj.type == 1) { - //1是避障和择机的障碍物,障碍物车身黄色提示 - trackObj?.let { - pncWarningTrafficData[trackId] = PlanningTrack( - "#E4DD94FF", - CallerAutoPilotStatusListenerManager.getCurWgs84SatelliteTime() - ) - } - } - } - } - } + override fun renderPlanningWarningObj(planningObjects: List?) { + WarningHelper.renderPlanningOriginWarningObj(planningObjects, mMarkersCaches) } override fun renderOBUWarningObj(exist: Boolean, obuTrafficData: TrafficData) { - if (obuTrafficData.uuid.isNullOrEmpty()) { - return - } - if (exist) { - obuWarningTrafficData[obuTrafficData.uuid!!] = obuTrafficData - } else { - obuWarningTrafficData.remove(obuTrafficData.uuid!!) - } + WarningHelper.renderOBUWarningObj(exist, obuTrafficData) } /** @@ -129,7 +69,7 @@ class IdentifyOriginDataDrawer : Identify, IMoGoAutopilotStatusListener { //清除缓存 for (data in resultList) { if (trafficDataUuidList.size > 0 && trafficDataUuidList.contains("" + data.uuid)) { - if (!FunctionBuildConfig.isDrawUnknownIdentifyData && data.type == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.type) { + if (TrackerSourceHelper.filterData(data)) { continue } trafficDataUuidList.remove("" + data.uuid) @@ -165,7 +105,7 @@ class IdentifyOriginDataDrawer : Identify, IMoGoAutopilotStatusListener { trafficDataUuidList.clear() for (data in trafficData) { // 过滤掉未知感知数据 - if (!FunctionBuildConfig.isDrawUnknownIdentifyData && data.type == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.type) { + if (TrackerSourceHelper.filterData(data)) { continue } var temp: TrackedObject = data @@ -173,38 +113,8 @@ class IdentifyOriginDataDrawer : Identify, IMoGoAutopilotStatusListener { //首次过来的数据不添加,首次未添加的感知物在调用完绘制方法后再塞入cache map val cacheData = mMarkersCaches[uuid] if (cacheData != null) { - - //OBU数据颜色标记 - val first = data.trackedSourceList.stream() - .filter { trackedSource: TrackedSource -> trackedSource.source == 4 } - .findFirst() - if (first.isPresent) { - val subFirst = first.get().subSourceList.stream() - .filter { subSource: SubSource -> subSource.source == 1 } - .findFirst() - if (subFirst.isPresent) { - val subID = subFirst.get().id - if (!TextUtils.isEmpty(subID)) { - temp = data.toBuilder().setColor("#36D3FE").build() - if (obuWarningTrafficData.containsKey(subID)) { - temp = data.toBuilder() - .setColor(obuWarningTrafficData[subID]!!.threatLevelColor()) - .build() - } - } - } - } - - //预警颜色变化 - if (pncWarningTrafficData.containsKey(uuid)) { - val planningTrack = pncWarningTrafficData[uuid] - if (!timeOut(planningTrack!!.time)) { - temp = data.toBuilder().setColor(planningTrack.color).build() - } else { - pncWarningTrafficData.remove(uuid) - } - } - + val color = TrackerSourceHelper.getDefaultColor(data) + temp = data.toBuilder().setColor(color).build() mFilterTrafficData[uuid] = temp } mMarkersCaches[uuid] = temp @@ -223,17 +133,7 @@ class IdentifyOriginDataDrawer : Identify, IMoGoAutopilotStatusListener { .removeMarker(uuid) } trafficDataUuidList.clear() - pncWarningTrafficData.clear() - } - - override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) { - mAutopilotStatus = autoPilotStatusInfo.state - } - - private fun timeOut(time: Double): Boolean { - val duration = - (CallerAutoPilotStatusListenerManager.getCurWgs84SatelliteTime() * 1000).toLong() - (time * 1000).toLong() - return duration >= 500 + WarningHelper.clear() } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackManager.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackManager.java index dfccf31eb5..c5b5a301f3 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackManager.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackManager.java @@ -9,8 +9,6 @@ import androidx.annotation.RequiresApi; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; import com.mogo.commons.AbsMogoApplication; -import com.mogo.eagle.core.data.config.FunctionBuildConfig; -import com.mogo.eagle.core.data.enums.TrafficTypeEnum; import com.mogo.eagle.core.data.traffic.TrafficData; import com.mogo.eagle.core.data.traffic.TrafficDataKt; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; @@ -22,7 +20,6 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import mogo.telematics.pad.MessagePad; @@ -64,57 +61,13 @@ public class TrackManager { @SuppressLint("NewApi") private final HashMap mFilterTrafficData = new HashMap<>(); - //感知物预警各自先以帧数更新保持,不做同一个集合的融合处理(以卫星时间做判断先后,可能会出现不同ip节点间的回溯问题) - /** - * planning 感知物预警缓存,用于重置color状态 - */ - private final ConcurrentHashMap pncWarningTrafficData = new ConcurrentHashMap<>(); - - /** - * obu 感知物预警缓存,用于重置color状态 - */ - private final ConcurrentHashMap obuWarningTrafficData = new ConcurrentHashMap<>(); - @SuppressLint("NewApi") public synchronized void renderPlanningWarningObj(List planningObjects) { - pncWarningTrafficData.clear(); - //处于美化模式或者自动驾驶状态下展示 - if (FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData || CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() == 2) { - if (planningObjects == null) { - return; - } - planningObjects.forEach(planningObj -> { - String trackId = "" + planningObj.getUuid(); - if (mMarkersCaches.containsKey(trackId)) { - TrackObj trackObj = mMarkersCaches.get(trackId); - if (trackObj == null) { - return; - } - if (planningObj.getType() == 0) { - pncWarningTrafficData.put(trackId, new PlanningTrack( - "#D65D5AFF", - CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84SatelliteTime() - )); - } else if (planningObj.getType() == 1) { - pncWarningTrafficData.put(trackId, new PlanningTrack( - "#E4DD94FF", - CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84SatelliteTime() - )); - } - } - }); - } + WarningHelper.INSTANCE.renderPlanningWarningObj(planningObjects, mMarkersCaches); } public synchronized void renderOBUWarningObj(boolean exist, TrafficData obuTrafficData) { - if (obuTrafficData.getUuid() == null || obuTrafficData.getUuid().isEmpty()) { - return; - } - if (exist) { - obuWarningTrafficData.put(obuTrafficData.getUuid(), obuTrafficData); - } else { - obuWarningTrafficData.remove(obuTrafficData.getUuid()); - } + WarningHelper.INSTANCE.renderOBUWarningObj(exist, obuTrafficData); } /** @@ -126,39 +79,14 @@ public class TrackManager { mFilterTrafficData.clear(); //进入过滤机制的感知物体,首先从缓存队列中进行查找 uuid for (MessagePad.TrackedObject data : trafficData) { - if (!FunctionBuildConfig.isDrawUnknownIdentifyData && data.getType() == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.getType()) { + if (TrackerSourceHelper.INSTANCE.filterData(data)) { continue; } String uuid = "" + data.getUuid(); TrackObj trackObj = mMarkersCaches.get(uuid); - //OBU数据颜色标记 - Optional first = data.getTrackedSourceList().stream() - .filter(trackedSource -> trackedSource.getSource() == 4).findFirst(); - if (first.isPresent()) { - Optional subFirst = first.get().getSubSourceList().stream().filter(subSource -> subSource.getSource() == 1).findFirst(); - if (subFirst.isPresent()) { - String subID = subFirst.get().getId(); - if (!TextUtils.isEmpty(subID)) { - data = data.toBuilder().setColor("#36D3FE").build(); - if (obuWarningTrafficData.containsKey(subID)) { - data = data.toBuilder() - .setColor(TrafficDataKt.threatLevelColor(obuWarningTrafficData.get(subID))) - .build(); - } - } - } - } - - // 判断物体是否与预警信息 - if (pncWarningTrafficData.containsKey(uuid)) { - PlanningTrack planningTrack = pncWarningTrafficData.get(uuid); - if (planningTrack != null && !timeOut(planningTrack.getTime())) { - data = data.toBuilder().setColor(planningTrack.getColor()).build(); - } else { - pncWarningTrafficData.remove(uuid); - } - } + String color = TrackerSourceHelper.INSTANCE.getDefaultColor(data); + data = data.toBuilder().setColor(color).build(); if (trackObj != null) { trackObj.updateObj(data); @@ -178,7 +106,7 @@ public class TrackManager { if (cache != null) { //相对静止物体并且非obu数据,则不改变,为感知融合同位置物体,使用缓存数据做覆盖 if (cacheTrack.relativeStatic()) { - if(data.getColor()!= null && !data.getColor().isEmpty()){ + if (data.getColor() != null && !data.getColor().isEmpty()) { cache = cache.toBuilder().setColor(data.getColor()).build(); } data = cache; @@ -206,7 +134,7 @@ public class TrackManager { //过滤现有元素 for (MessagePad.TrackedObject data : resultList) { String uuid = "" + data.getUuid(); - if (!FunctionBuildConfig.isDrawUnknownIdentifyData && data.getType() == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.getType()) { + if (TrackerSourceHelper.INSTANCE.filterData(data)) { continue; } if (trafficDataUuid.size() > 0) { @@ -234,13 +162,8 @@ public class TrackManager { @SuppressLint("NewApi") public void clearAll() { trafficDataUuid.clear(); - pncWarningTrafficData.clear(); + WarningHelper.INSTANCE.clear(); mMarkersCaches.forEach((uuid, trackObj) -> removeKey(uuid)); } - private Boolean timeOut(Double time) { - long duration = (long) (CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84SatelliteTime() * 1000) - (long) (time * 1000); - return duration >= 500; - } - } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackerSourceHelper.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackerSourceHelper.kt new file mode 100644 index 0000000000..470b3068b6 --- /dev/null +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackerSourceHelper.kt @@ -0,0 +1,135 @@ +package com.mogo.eagle.core.function.map.identify + +import android.annotation.SuppressLint +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.data.enums.TrafficTypeEnum +import mogo.telematics.pad.MessagePad.* + +object TrackerSourceHelper { + + @SuppressLint("NewApi") + fun filterData(data: TrackedObject): Boolean { + if (!FunctionBuildConfig.isDrawUnknownIdentifyData + && data.type == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.type + ) { + return true + } + var trackIPCFilter = true + when (FunctionBuildConfig.trackerIPCProvider) { + 0 -> trackIPCFilter = false + 1 -> if (isIPC(data)) { + trackIPCFilter = false + } + 2 -> { + if (isObu(data).second) { + trackIPCFilter = false + } + } + 3 -> { + if (isV2I(data).second) { + trackIPCFilter = false + } + } + } + return trackIPCFilter + } + + fun getDefaultColor(data: TrackedObject): String { + var color = "" + if (!FunctionBuildConfig.isDrawUnknownIdentifyData + && data.type == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.type + ) { + return "" + } + + if (isV2I(data).second) { + color = "#00AEFF" + } + + //等级最高 + if (isObu(data).second) { + color = "#36D3FE" + // obu预警 + isObu(data).first?.let { + val obuColor = WarningHelper.getObuColor(it.id) + if (obuColor.isNotBlank()) { + color = obuColor + } + } + } + + // pnc预警 + val pncColor = WarningHelper.getPncColor(data.uuid.toString()) + if (pncColor.isNotBlank()) { + color = pncColor + } + return color + } + + /** + * 过滤所有 工控感知数据 all match + */ + @SuppressLint("NewApi") + fun isIPC(data: TrackedObject): Boolean { + val source = data.trackedSourceList.stream().allMatch { + it.source != 4 + } + return source + } + + /** + * any match 任何一个匹配到OBU,则认为是存在obu数据 + */ + @SuppressLint("NewApi") + fun isObu(data: TrackedObject): Pair { + val source = data.trackedSourceList.stream().anyMatch { + it.source == 4 + } + if (source) { + val first = data.trackedSourceList.stream() + .filter { trackedSource: TrackedSource -> trackedSource.source == 4 }.findFirst() + if (first.isPresent) { + val subObu = first.get().subSourceList.stream().anyMatch { + it.source == 1 + } + if (subObu) { + val subFirst = first.get().subSourceList.stream() + .filter { subSource: SubSource -> subSource.source == 1 } + .findFirst() + if (subFirst.isPresent) { + return Pair(subFirst.get(), true) + } + } + } + } + return Pair(null, false) + } + + /** + * 过滤所有 v2i 感知数据 all match + */ + @SuppressLint("NewApi") + fun isV2I(data: TrackedObject): Pair { + val source = data.trackedSourceList.stream().allMatch { + it.source == 4 + } + if (source) { + val first = data.trackedSourceList.stream() + .filter { trackedSource: TrackedSource -> trackedSource.source == 4 }.findFirst() + if (first.isPresent) { + val subV2I = first.get().subSourceList.stream().allMatch { + it.source == 6 + } + if (subV2I) { + val subFirst = first.get().subSourceList.stream() + .filter { subSource: SubSource -> subSource.source == 6 } + .findFirst() + if (subFirst.isPresent) { + return Pair(subFirst.get(), true) + } + } + } + } + return Pair(null, false) + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/WarningHelper.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/WarningHelper.kt new file mode 100644 index 0000000000..f7f70ccb05 --- /dev/null +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/WarningHelper.kt @@ -0,0 +1,148 @@ +package com.mogo.eagle.core.function.map.identify + +import android.annotation.SuppressLint +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.data.traffic.TrafficData +import com.mogo.eagle.core.data.traffic.threatLevelColor +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getCurWgs84SatelliteTime +import mogo.telematics.pad.MessagePad +import mogo.telematics.pad.MessagePad.PlanningObject +import java.util.concurrent.ConcurrentHashMap +import java.util.function.Consumer + +object WarningHelper { + + //感知物预警各自先以帧数更新保持,不做同一个集合的融合处理(以卫星时间做判断先后,可能会出现不同ip节点间的回溯问题) + /** + * planning 感知物预警缓存,用于重置color状态 + */ + private val pncWarningBeautyTrafficData = ConcurrentHashMap() + + /** + * planning 感知物预警缓存,用于重置color状态 + */ + private val pncWarningOriginTrafficData = ConcurrentHashMap() + + /** + * obu 感知物预警缓存,用于重置color状态 + */ + private val obuWarningTrafficData = ConcurrentHashMap() + + @SuppressLint("NewApi") + fun renderPlanningWarningObj( + planningObjects: List?, + mMarkersCaches: ConcurrentHashMap + ) { + pncWarningBeautyTrafficData.clear() + //处于美化模式或者自动驾驶状态下展示 + if (FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData || getAutoPilotStatusInfo().state == 2) { + if (planningObjects == null) { + return + } + planningObjects.forEach(Consumer { planningObj: PlanningObject -> + val trackId = "" + planningObj.uuid + if (mMarkersCaches.containsKey(trackId)) { + mMarkersCaches[trackId] ?: return@Consumer + if (planningObj.type == 0) { //0是leading障碍物,障碍物车身红色提示 + pncWarningBeautyTrafficData[trackId] = PlanningTrack( + "#D65D5AFF", + getCurWgs84SatelliteTime() + ) + } else if (planningObj.type == 1) { //1是避障和择机的障碍物,障碍物车身黄色提示 + pncWarningBeautyTrafficData[trackId] = PlanningTrack( + "#E4DD94FF", + getCurWgs84SatelliteTime() + ) + } + } + }) + } + } + + @SuppressLint("NewApi") + fun renderPlanningOriginWarningObj( + planningObjects: List?, + mMarkersCaches: ConcurrentHashMap + ) { + pncWarningOriginTrafficData.clear() + //处于美化模式或者自动驾驶状态下展示 + if (FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData || getAutoPilotStatusInfo().state == 2) { + if (planningObjects == null) { + return + } + planningObjects.forEach(Consumer { planningObj: PlanningObject -> + val trackId = "" + planningObj.uuid + if (mMarkersCaches.containsKey(trackId)) { + mMarkersCaches[trackId] ?: return@Consumer + if (planningObj.type == 0) { //0是leading障碍物,障碍物车身红色提示 + pncWarningOriginTrafficData[trackId] = PlanningTrack( + "#D65D5AFF", + getCurWgs84SatelliteTime() + ) + } else if (planningObj.type == 1) { //1是避障和择机的障碍物,障碍物车身黄色提示 + pncWarningOriginTrafficData[trackId] = PlanningTrack( + "#E4DD94FF", + getCurWgs84SatelliteTime() + ) + } + } + }) + } + } + + fun renderOBUWarningObj(exist: Boolean, obuTrafficData: TrafficData) { + if (obuTrafficData.uuid == null || obuTrafficData.uuid!!.isEmpty()) { + return + } + if (exist) { + obuWarningTrafficData[obuTrafficData.uuid!!] = obuTrafficData + } else { + obuWarningTrafficData.remove(obuTrafficData.uuid) + } + } + + fun getObuColor(uuid: String): String { + if (obuWarningTrafficData.containsKey(uuid)) { + return obuWarningTrafficData[uuid]!!.threatLevelColor() + } + return "" + } + + fun getPncColor(uuid: String): String { + if (FunctionBuildConfig.isBeautyMode) { + // 判断物体是否有预警信息 + if (pncWarningBeautyTrafficData.containsKey(uuid)) { + val planningTrack = pncWarningBeautyTrafficData[uuid] + if (planningTrack != null && !timeOut(planningTrack.time)) { + return planningTrack.color + } else { + pncWarningBeautyTrafficData.remove(uuid) + } + } + return "" + } else { + // 判断物体是否有预警信息 + if (pncWarningOriginTrafficData.containsKey(uuid)) { + val planningTrack = pncWarningOriginTrafficData[uuid] + if (planningTrack != null && !timeOut(planningTrack.time)) { + return planningTrack.color + } else { + pncWarningOriginTrafficData.remove(uuid) + } + } + return "" + } + } + + fun clear() { + pncWarningBeautyTrafficData.clear() + pncWarningOriginTrafficData.clear() + obuWarningTrafficData.clear() + } + + private fun timeOut(time: Double): Boolean { + val duration = (getCurWgs84SatelliteTime() * 1000).toLong() - (time * 1000).toLong() + return duration >= 500 + } +} \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt index 4f12272c8f..ed2b6943ae 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt @@ -80,7 +80,7 @@ object FunctionBuildConfig { var debugTrackerProvider = 0 /** - * 感知物识别使用的数据来源 0 = 默认输出 1 = 只显示工控硬件数据感知来源 2 = 只显示V2V数据来源 3 = 只显示V2N数据来源 + * 感知物识别使用的数据来源 0 = 默认输出 1 = 只显示工控硬件数据感知来源 2 = 只显示V2V数据来源 3 = 只显示V2I数据来源 */ @Volatile @JvmField diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/EventTypeEnum.kt b/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/EventTypeEnum.kt index 7521d0ac83..2f9a527d69 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/EventTypeEnum.kt +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/EventTypeEnum.kt @@ -363,8 +363,8 @@ enum class EventTypeEnum( tts = "" ), - TYPE_VIP_IDENTIFICATION("10022", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行", "已为您变灯请优先通行"), - TYPE_VIP_ERROR_IDENTIFICATION("10023", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "请求失败,", "请求失败请稍后重试"), + TYPE_VIP_IDENTIFICATION("10022", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行", "已为您变灯,请优先通行"), + TYPE_VIP_ERROR_IDENTIFICATION("10023", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "请求失败,", "请求失败,请稍后重试"), TYPE_OPTIMAL_ROUTE_RECOMMEND("2000", "", "", R.drawable.icon_warning_v2x_optimal_route, "为您推荐最优路线", "已为您选择最优路线"); From b90530ac2c778dc9849644911c54673599dae6e2 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 22 Sep 2022 15:48:40 +0800 Subject: [PATCH 4/9] =?UTF-8?q?[2.11.0/1.6.0]=20taxi=E5=8F=B8=E6=9C=BA?= =?UTF-8?q?=E7=AB=AF=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=BA=BA=E5=B7=A5/?= =?UTF-8?q?=E8=87=AA=E9=A9=BE=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/taxi/presenter/TaxiPresenter.java | 9 +- .../mogo/och/taxi/ui/BaseTaxiTabFragment.java | 8 +- .../ui/TaxiBeingServerdOrdersFragment.java | 151 ++++++++++++------ .../com/mogo/och/taxi/ui/TaxiFragment.java | 9 +- .../och/taxi/ui/TaxiServerOrdersFragment.java | 4 +- .../order_drive_mode_bg.png | Bin 0 -> 72035 bytes .../order_drive_mode_bg.png | Bin 0 -> 72035 bytes .../drawable-xhdpi/order_drive_mode_bg.png | Bin 0 -> 72035 bytes .../res/layout/auto_or_manual_btn_view.xml | 33 ++++ .../src/main/res/layout/taxi_being_order.xml | 7 + .../src/main/res/values/strings.xml | 2 + 11 files changed, 163 insertions(+), 60 deletions(-) create mode 100644 OCH/mogo-och-taxi/src/main/res/drawable-xhdpi-2560x1440/order_drive_mode_bg.png create mode 100644 OCH/mogo-och-taxi/src/main/res/drawable-xhdpi-2560x1600/order_drive_mode_bg.png create mode 100644 OCH/mogo-och-taxi/src/main/res/drawable-xhdpi/order_drive_mode_bg.png create mode 100644 OCH/mogo-och-taxi/src/main/res/layout/auto_or_manual_btn_view.xml diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java index 5bd2c9cb2f..deaafcc374 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java @@ -100,12 +100,19 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS } /** - * 开启自动驾驶 + * 开启自动驾驶 自驾模式 */ public void startAutoPilot() { TaxiModel.getInstance().startAutoPilot(); } + /** + * 人工模式 + */ + public void startManualDrive(){ + TaxiModel.getInstance().startServicePilotDone(); + } + /** * 跳过乘客验证环节 */ diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java index 32c19748a4..b79bd989b8 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java @@ -21,9 +21,7 @@ import androidx.annotation.Nullable; import androidx.constraintlayout.widget.Group; import androidx.fragment.app.FragmentTransaction; -import com.mogo.cloud.httpdns.util.L; import com.mogo.commons.AbsMogoApplication; -import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.mvp.IView; import com.mogo.commons.mvp.MvpFragment; import com.mogo.commons.mvp.Presenter; @@ -388,13 +386,11 @@ public abstract class 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 literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-taxi/src/main/res/drawable-xhdpi-2560x1600/order_drive_mode_bg.png b/OCH/mogo-och-taxi/src/main/res/drawable-xhdpi-2560x1600/order_drive_mode_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..ec754b829f3d767bc7d488df8301eb457440d33e GIT binary patch literal 72035 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 literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-taxi/src/main/res/drawable-xhdpi/order_drive_mode_bg.png b/OCH/mogo-och-taxi/src/main/res/drawable-xhdpi/order_drive_mode_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..ec754b829f3d767bc7d488df8301eb457440d33e GIT binary patch literal 72035 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 literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-taxi/src/main/res/layout/auto_or_manual_btn_view.xml b/OCH/mogo-och-taxi/src/main/res/layout/auto_or_manual_btn_view.xml new file mode 100644 index 0000000000..4a265074d9 --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/res/layout/auto_or_manual_btn_view.xml @@ -0,0 +1,33 @@ + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-taxi/src/main/res/layout/taxi_being_order.xml b/OCH/mogo-och-taxi/src/main/res/layout/taxi_being_order.xml index 285701fa67..9cb4d3a230 100644 --- a/OCH/mogo-och-taxi/src/main/res/layout/taxi_being_order.xml +++ b/OCH/mogo-och-taxi/src/main/res/layout/taxi_being_order.xml @@ -275,6 +275,13 @@ android:textColor="#4DFFFFFF" android:textSize="24sp" app:layout_constraintBottom_toBottomOf="parent" /> + + + + 出现异常情况时,可选择原因无责取消订单: 确认 开始服务 + 自驾模式 + 人工模式 跳过乘客验证 等待乘客开始行程 请等待乘客启动自动驾驶,或您自行启动 From 1760e03065e55985c9d294d139848a2768247b41 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Thu, 22 Sep 2022 16:48:25 +0800 Subject: [PATCH 5/9] merge --- .../autopilot/MoGoAutopilotProvider.kt | 4 +-- .../autopilot/adapter/MoGoAdasListenerImpl.kt | 2 ++ .../adapter/MoGoHandAdasMsgManager.java | 15 ++++++++++- .../autopilot/telematic/TeleMsgHandler.kt | 1 - .../network/UpgradeAppNetWorkManager.java | 9 +++---- .../bindingcar/BindingcarProvider.java | 3 ++- .../upgrade/UpgradeManager.kt | 1 - .../core/function/hmi/ui/MoGoHmiFragment.kt | 4 +-- .../hmi/ui/bindingcar/UpgradeAppDialog.kt | 17 ++++++------ .../function/main/MainMoGoApplication.java | 17 +++++++++++- .../main/res/layout/dialog_upgrade_app.xml | 27 +++++++++++++++---- .../api/hmi/warning/IMoGoWaringProvider.kt | 2 +- .../call/devatools/CallerDevaToolsManager.kt | 2 ++ .../function/call/hmi/CallerHmiManager.kt | 4 +-- .../breakpoint/services/DownloadService.java | 2 -- .../breakpoint/thread/InitThread.java | 6 +++++ .../zhidao/support/adas/high/AdasChannel.java | 1 + 17 files changed, 84 insertions(+), 33 deletions(-) diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt index 5260ae11df..43536569a6 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt @@ -6,7 +6,6 @@ import android.util.Log import androidx.annotation.RequiresPermission import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters import com.mogo.eagle.core.data.autopilot.toAutoPilotLine import com.mogo.eagle.core.data.autopilot.toRouteInfo @@ -29,6 +28,7 @@ import com.mogo.eagle.core.function.autopilot.adapter.MoGoHandAdasMsgManager import com.mogo.eagle.core.function.autopilot.server.AsyncDataToAutopilotServer import com.mogo.eagle.core.function.autopilot.telematic.IMsgHandler import com.mogo.eagle.core.function.autopilot.telematic.TeleMsgHandler +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager import com.mogo.eagle.core.function.call.map.CallerMapDataCollectorManager @@ -51,9 +51,7 @@ import com.zhidao.support.adas.high.OnMultiDeviceListener import com.zhidao.support.adas.high.common.Constants import com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS import com.zhidao.support.adas.high.common.CupidLogUtils -import com.zhidao.support.adas.high.common.MessageType import com.zhidao.support.adas.high.common.MogoReport -import com.zhidao.support.adas.high.subscribe.SubscribeInterfaceOptions import com.zhjt.service.chain.ChainLog import com.zhjt.service.chain.TracingConstants import io.netty.channel.Channel diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt index 65d1aa08fa..8f37f431fd 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -1,6 +1,7 @@ package com.mogo.eagle.core.function.autopilot.adapter import android.location.Location +import android.util.Log import chassis.VehicleStateOuterClass import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig @@ -310,6 +311,7 @@ class MoGoAdasListenerImpl : OnAdasListener { header: MessagePad.Header, carConfigResp: MessagePad.CarConfigResp? ) { + Log.d("Upgrade", "isMapLoaded = " + HdMapBuildConfig.isMapLoaded + "___carConfigResp = " + carConfigResp) if (HdMapBuildConfig.isMapLoaded && carConfigResp != null) { AppConfigInfo.plateNumber = carConfigResp.plateNumber//车牌号 AppConfigInfo.iPCMacAddress = carConfigResp.macAddress//工控机MAC地址 diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java index ee651b95c2..046ba7c396 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoHandAdasMsgManager.java @@ -5,13 +5,13 @@ import android.text.TextUtils; import android.util.Log; import androidx.annotation.Nullable; - import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.constants.MoGoConfig; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarStateListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotVehicleStateListener; +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotVehicleStateListenerManager; @@ -19,6 +19,8 @@ import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager; import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; +import com.mogo.eagle.core.utilcode.util.UiThreadHandler; +import com.zhidao.support.adas.high.AdasManager; import org.jetbrains.annotations.NotNull; @@ -60,6 +62,15 @@ public class MoGoHandAdasMsgManager implements private int brakeLight = -1; + public void getConfig() { + com.elegant.utils.UiThreadHandler.postDelayed(new Runnable() { + @Override + public void run() { + CallerAutoPilotManager.INSTANCE.getCarConfig(); + } + },0); + } + private int setTurnLightState(int turn_light) { if (turn_light == 0) { if (isOnTurnLight) { @@ -106,6 +117,7 @@ public class MoGoHandAdasMsgManager implements @Override public void onAutopilotCarConfig(@NotNull MessagePad.CarConfigResp carConfigResp) { if (carConfigResp != null && !TextUtils.isEmpty(carConfigResp.getMacAddress())) { + Log.d("Upgrade", "onAutopilotCarConfig carConfigResp.getMacAddress() = " + carConfigResp.getMacAddress()); CallerBindingcarManager.getBindingcarProvider().getBindingcarInfo(carConfigResp.getMacAddress(), MoGoAiCloudClientConfig.getInstance().getSn()); } } @@ -166,4 +178,5 @@ public class MoGoHandAdasMsgManager implements public void onAutopilotBrake(float brake) { } + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/telematic/TeleMsgHandler.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/telematic/TeleMsgHandler.kt index fbf3c04fb7..461b9fd7f4 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/telematic/TeleMsgHandler.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/telematic/TeleMsgHandler.kt @@ -73,7 +73,6 @@ class TeleMsgHandler : IMsgHandler { TextFormat.printer().escapingNonAscii(false).printToString(carConfig) }" ) -// Log.d("liyz", "TeleMsgHandler macAddress = " + carConfig.macAddress) CallerBindingcarManager.getBindingcarProvider().getBindingcarInfo( carConfig.macAddress, MoGoAiCloudClientConfig.getInstance().sn diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/appupgrade/network/UpgradeAppNetWorkManager.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/appupgrade/network/UpgradeAppNetWorkManager.java index 709103a240..164da63439 100644 --- a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/appupgrade/network/UpgradeAppNetWorkManager.java +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/appupgrade/network/UpgradeAppNetWorkManager.java @@ -59,12 +59,11 @@ public class UpgradeAppNetWorkManager { * 获取app升级信息 */ public void getAppUpgradeInfo(Context context, String mac, String screenType) { - String sn = "X20202203105S688HZ"; +// String sn = "X20202203105S688HZ"; // String mac = "48:b0:2d:3a:bc:78"; -// String sn = MoGoAiCloudClientConfig.getInstance().getSn(); + String sn = MoGoAiCloudClientConfig.getInstance().getSn(); int versionCode = AppUtils.getAppVersionCode(); - - //TODO 不能写死 + Log.d("Upgrade", "mac = " + mac + "---type = " + screenType + "---sn = " + sn ); UpgradeAppRequest request = new UpgradeAppRequest(sn, mac, screenType); RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); mUpgradeApiService.getUpgradeInfo(requestBody) @@ -81,7 +80,7 @@ public class UpgradeAppNetWorkManager { CallerLogger.INSTANCE.d(TAG, "UpgradeAppInfo url = " + info.result.getAppUrl() + "----code = " + info.result.getVersionCode()); Log.d(TAG, "UpgradeAppInfo url = " + info.result.getAppUrl() + "----code = " + info.result.getVersionCode() + "--versionCode =" + versionCode + "--info.result = " + info.result); if (info.result.getVersionCode() > versionCode) { - CallerHmiManager.INSTANCE.showUpgradeDialog(info.result.getAppUrl().substring(info.result.getAppUrl().lastIndexOf("/")+1), info.result.getAppUrl()); + CallerHmiManager.INSTANCE.showUpgradeDialog(info.result.getAppUrl().substring(info.result.getAppUrl().lastIndexOf("/")+1), info.result.getAppUrl(), info.result.getInstallTitle(), info.result.getInstallContent()); } } else { Log.e(TAG, "onNext info == null"); diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java index f04f3343c3..f7af0795e6 100644 --- a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java @@ -11,6 +11,7 @@ import com.mogo.eagle.core.function.api.bindingcar.BindingcarCallBack; import com.mogo.eagle.core.function.api.bindingcar.IMoGoBindingcarProvider; import com.mogo.eagle.core.function.appupgrade.network.UpgradeAppNetWorkManager; import com.mogo.eagle.core.function.bindingcar.network.BindingcarNetWorkManager; +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; import com.mogo.eagle.core.function.ipcupgrade.IPCUpgradeManager; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; @@ -57,6 +58,7 @@ public class BindingcarProvider implements IMoGoBindingcarProvider { */ @Override public void getBindingcarInfo(String macAddress, String widevineIDWithMd5) { + Log.d("Upgrade", "getBindingcarInfo mAddress = " + macAddress + "--widevineIDWithMd5 = " + widevineIDWithMd5); mAddress = macAddress; mWidevineIDWithMd5 = widevineIDWithMd5; if (getScreenType() == 1) { //司机屏 @@ -172,7 +174,6 @@ public class BindingcarProvider implements IMoGoBindingcarProvider { */ @Override public void queryAppUpgrade() { - Log.d("Upgrade", "mac = " + mAddress + "---type = " + getCarScreenType() ); UpgradeAppNetWorkManager.getInstance().getAppUpgradeInfo(mContext, mAddress, getCarScreenType()); } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt index d4a9242b9b..d563420be8 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt @@ -77,7 +77,6 @@ class UpgradeManager : IDownload { if (downloadUrl != null) { AppUtils.installApp(Config.downLoadPath + downloadUrl.substring(downloadUrl.lastIndexOf("/") + 1)) } - findKey(downloadUrl) { CallerDevaToolsUpgradeListenerManager.invokeUpgradeFinish(it) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index bcc57eb412..63eb143fe9 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -1306,11 +1306,11 @@ class MoGoHmiFragment : MvpFragment(), /** * 升级app弹框 */ - override fun showUpgradeDialog(name: String, url: String) { + override fun showUpgradeDialog(name: String, url: String, title: String, content: String) { if (upgradeAppDialog == null) { upgradeAppDialog = UpgradeAppDialog(requireContext()) } - upgradeAppDialog!!.showUpgradeAppDialog(name, url) + upgradeAppDialog!!.showUpgradeAppDialog(name, url, title, content) } /** diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/bindingcar/UpgradeAppDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/bindingcar/UpgradeAppDialog.kt index 2a88a92cbe..88a4e13640 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/bindingcar/UpgradeAppDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/bindingcar/UpgradeAppDialog.kt @@ -21,20 +21,17 @@ class UpgradeAppDialog(context: Context) : BaseFloatDialog(context), LifecycleOb private val TAG = "UpgradeAppDialog" private var confirmTv: TextView? = null private var cancleTv: TextView? = null + private var upgradeTitleTv: TextView? = null + private var upgradeContentTv: TextView? = null private var tag: String? = null private var downloarUrl: String? = null - private var mServiceApis: IMogoServiceApis? = null - private val statusChangedListenerForCheckNotice = IMogoStatusChangedListener { descriptor, isTrue -> - if (descriptor == StatusDescriptor.MAIN_PAGE_IS_BACKGROUND) { - dismiss() - } - } - init { setContentView(R.layout.dialog_upgrade_app) setCanceledOnTouchOutside(true) + upgradeTitleTv = findViewById(R.id.tv_upgrade_title) + upgradeContentTv = findViewById(R.id.tv_upgrade_content) confirmTv = findViewById(R.id.tv_upgrade_confirm) cancleTv = findViewById(R.id.tv_upgrade_cancel) @@ -61,12 +58,16 @@ class UpgradeAppDialog(context: Context) : BaseFloatDialog(context), LifecycleOb super.dismiss() } - fun showUpgradeAppDialog(name: String, url: String) { + fun showUpgradeAppDialog(name: String, url: String, title: String, content: String) { if (isShowing) { return } tag = name downloarUrl = url + + upgradeTitleTv?.text = title + upgradeContentTv?.text = content + show() } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index 530b2b9c3f..ef395d3e67 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -4,16 +4,20 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_HMI import android.content.Context; import android.os.Process; +import android.util.Log; import com.bytedance.boost_multidex.BoostMultiDex; import com.elegant.utils.UiThreadHandler; import com.kwai.koom.base.DefaultInitTask; import com.mogo.cloud.socket.SocketBuildConfig; import com.mogo.commons.AbsMogoApplication; +import com.mogo.eagle.core.data.app.AppConfigInfo; 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.chat.biz.ChatConsts; +import com.mogo.eagle.core.function.autopilot.adapter.MoGoHandAdasMsgManager; +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; import com.mogo.eagle.core.function.notice.PushUIConstants; @@ -27,6 +31,7 @@ import com.mogo.map.MapApiPath; import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; import com.mogo.module.service.ServiceConst; +import com.zhidao.support.adas.high.AdasManager; import com.zhidao.support.obu.ami.AmiClientManager; import com.zhjt.mogo_core_function_devatools.monitor.db.CpuInfo; import com.zhjt.mogo_core_function_devatools.monitor.db.MemInfo; @@ -71,12 +76,22 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { } private void queryAppUpgrade() { + UiThreadHandler.postDelayed(new Runnable() { + @Override + public void run() { + Log.e("Upgrade", "queryAppUpgrade isConnectAutopilot = " + AppConfigInfo.INSTANCE.isConnectAutopilot()); + if (AppConfigInfo.INSTANCE.isConnectAutopilot()) { + MoGoHandAdasMsgManager.getInstance(getBaseContext()).getConfig(); + } + } + },8000); + UiThreadHandler.postDelayed(new Runnable() { @Override public void run() { CallerBindingcarManager.getBindingcarProvider().queryAppUpgrade(); } - },5000); + },10000); } private void checkMonitorDb() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_upgrade_app.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_upgrade_app.xml index 0850212f75..7c3e839b9a 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_upgrade_app.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_upgrade_app.xml @@ -2,7 +2,7 @@ @@ -10,7 +10,7 @@ android:id="@+id/tv_upgrade_title" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="50px" + android:layout_marginTop="30px" android:text="@string/application_upgrade" android:textColor="#FFFFFFFF" android:textSize="56px" @@ -22,7 +22,7 @@ android:id="@+id/tv_upgrade_tips" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="50px" + android:layout_marginTop="30px" android:text="@string/application_upgrade_confirm" android:textColor="#FFFFFFFF" android:textSize="43px" @@ -30,15 +30,32 @@ app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@id/tv_upgrade_title" /> + + + app:layout_constraintTop_toBottomOf="@id/tv_upgrade_content" /> queryDriverOperationStatus(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn); + } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index cff599cca5..005b9a08fc 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -90,12 +90,6 @@ public class BusPresenter extends Presenter BusOrderModel.getInstance().queryBusRoutes(); } - public void resetCurrentLineStatus() { - BusOrderModel.getInstance().resetCurrentLineStatus(); - public void queryOperationStatus(){ - BusOrderModel.getInstance().queryOperationStatus(); - } - public void abortTask() { BusOrderModel.getInstance().abortTask(); } From fafe3f914a4424752fcdb3224d5cafa8cbe851f9 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 22 Sep 2022 19:10:47 +0800 Subject: [PATCH 7/9] =?UTF-8?q?[2.11.0/1.6.0]=20bus=E5=8F=B8=E6=9C=BA?= =?UTF-8?q?=E7=AB=AF=E6=B7=BB=E5=8A=A0taskId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/bus/bean/BusRoutesResult.java | 5 +++++ .../java/com/mogo/och/bus/model/BusOrderModel.java | 10 ++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java index 485c68f0ec..4b652d30df 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java @@ -15,6 +15,7 @@ public class BusRoutesResult { private String description; private int status; private long taskTime; //线路时间班次 + private int taskId;// 线路班次id //线路轨迹相关字段 public String csvFileUrl = ""; //轨迹文件下载的cos url,默认“” @@ -33,6 +34,10 @@ public class BusRoutesResult { return lineId; } + public int getTaskId() { + return taskId; + } + public String getName() { return name; } 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 f383ba0917..98284d6d92 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 @@ -85,6 +85,7 @@ import mogo.telematics.pad.MessagePad; public class BusOrderModel { private final String TAG = BusOrderModel.class.getSimpleName(); private int currentLineId = -1; + private int currentTaskId = -1; private int backgroundCurrentStationIndex = 0;//A->B 此处值是A站点索引 private static volatile BusOrderModel sInstance; @@ -503,7 +504,7 @@ public class BusOrderModel { */ public void abortTask() { CallerLogger.INSTANCE.d( M_BUS + TAG, "结束当前路线abortTask"); - BusServiceManager.getInstance().abortTask(mContext, currentLineId + BusServiceManager.getInstance().abortTask(mContext, currentTaskId , new IBusServiceCallback() { @Override public void onSuccess(BaseData o) { @@ -626,7 +627,7 @@ public class BusOrderModel { BusServiceManager.getInstance().arriveSiteStation(mContext , stationList.get(arrivedStationIndex).getSeq(), stationList.get(arrivedStationIndex).getSiteId(), - currentLineId , + currentTaskId , new IBusServiceCallback() { @Override public void onSuccess(BaseData o) { @@ -655,7 +656,7 @@ public class BusOrderModel { BusServiceManager.getInstance().leaveStation(mContext, stationList.get(backgroundCurrentStationIndex).getSeq(), stationList.get(backgroundCurrentStationIndex).getSiteId(), - currentLineId, + currentTaskId, new IBusServiceCallback() { @Override public void onSuccess(BaseData o) { @@ -750,6 +751,7 @@ public class BusOrderModel { if (result == null) return; busRoutesResult = result; List site = result.getSites(); + currentTaskId = result.getTaskId(); currentLineId = result.getLineId(); stationList.clear(); stationList.addAll( site ); @@ -889,7 +891,7 @@ public class BusOrderModel { */ private void endTask() { CallerLogger.INSTANCE.d( M_BUS + TAG, "任务正常走完endTask()"); - BusServiceManager.getInstance().endTask(mContext, currentLineId + BusServiceManager.getInstance().endTask(mContext, currentTaskId , new IBusServiceCallback() { @Override public void onSuccess(BaseData o) { From e117afea9e8f56fef126f640c3f265a57279780c Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 22 Sep 2022 19:16:04 +0800 Subject: [PATCH 8/9] =?UTF-8?q?[2.11.0/1.6.0]=20bus=E5=8F=B8=E6=9C=BA?= =?UTF-8?q?=E7=AB=AF=E5=88=A0=E9=99=A4=E9=87=8D=E5=A4=8D=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mogo/och/bus/net/IBusApiService.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/IBusApiService.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/IBusApiService.java index 2a1a465ebe..7090bc7ae8 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/IBusApiService.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/IBusApiService.java @@ -139,9 +139,6 @@ public interface IBusApiService { * @param data * @return */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/abortTask") - Observable resetCurrentLineStatus(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusResetLineStatusRequest data); @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/abortTask") Observable abortTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data); From 31045baaf9e583a7181de863f92bf2931859f442 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 22 Sep 2022 21:17:25 +0800 Subject: [PATCH 9/9] [2.11.0/1.6.0] och-module compileSdkVersion --- OCH/mogo-och-common-module/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OCH/mogo-och-common-module/build.gradle b/OCH/mogo-och-common-module/build.gradle index 927d871c22..fe23c542d0 100644 --- a/OCH/mogo-och-common-module/build.gradle +++ b/OCH/mogo-och-common-module/build.gradle @@ -5,7 +5,7 @@ apply plugin: 'kotlin-kapt' apply plugin: 'com.alibaba.arouter' android { - compileSdkVersion 31 + compileSdkVersion rootProject.ext.android.compileSdkVersion buildToolsVersion "30.0.2" defaultConfig {