Merge branch 'dev_robotaxi-d-app-module_2130_221116_2.13.0' into dev_robouiadapter_20221118_yyk
# Conflicts: # OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java
This commit is contained in:
@@ -167,9 +167,13 @@ public class BusOrderModel {
|
||||
//开启自驾后 异常信息返回
|
||||
OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener);
|
||||
|
||||
OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(
|
||||
OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(//监听运营消息
|
||||
OCHSocketMessageManager.INSTANCE.getMsgMonitorType(),
|
||||
mMogoOnMessageListener);
|
||||
|
||||
OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(//监听核销乘客
|
||||
OCHSocketMessageManager.INSTANCE.getMsgWriteOffPassengerType(),
|
||||
mWriteOffPassengeOnMessageListener);
|
||||
}
|
||||
|
||||
//2022.1.28
|
||||
@@ -223,6 +227,23 @@ public class BusOrderModel {
|
||||
}
|
||||
};
|
||||
|
||||
private final IMogoOnMessageListener<WriteOffPassenger> mWriteOffPassengeOnMessageListener =
|
||||
new IMogoOnMessageListener<WriteOffPassenger>() {
|
||||
@Override
|
||||
public Class<WriteOffPassenger> target() {
|
||||
return WriteOffPassenger.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMsgReceived(WriteOffPassenger passenger) {
|
||||
//进行播报
|
||||
if (passenger != null && passenger.passengerSize == 0) return;
|
||||
if (mPassengerCallback != null){
|
||||
mPassengerCallback.playPassenger(passenger);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public void setAdasStatusCallback(IBusADASStatusCallback callback){
|
||||
this.mADASStatusCallback = callback;
|
||||
}
|
||||
@@ -309,7 +330,7 @@ public class BusOrderModel {
|
||||
public void release() {
|
||||
|
||||
startOrStopOrderLoop(false);
|
||||
startOrStopQueryPassengerWriteOff(false);
|
||||
//startOrStopQueryPassengerWriteOff(false);
|
||||
MogoStatusManager.getInstance().unregisterStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener);
|
||||
|
||||
// 注销到达起始站围栏监听
|
||||
@@ -323,6 +344,11 @@ public class BusOrderModel {
|
||||
loginService = null;
|
||||
|
||||
OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null);
|
||||
|
||||
OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener(
|
||||
OCHSocketMessageManager.INSTANCE.getMsgMonitorType());
|
||||
OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener(
|
||||
OCHSocketMessageManager.INSTANCE.getMsgWriteOffPassengerType());
|
||||
}
|
||||
|
||||
private Object readResolve() {
|
||||
@@ -498,7 +524,7 @@ public class BusOrderModel {
|
||||
endOrAbortTaskSuccess();
|
||||
clearBusStationDatas();
|
||||
queryBusRoutes();
|
||||
startOrStopQueryPassengerWriteOff(false);
|
||||
// startOrStopQueryPassengerWriteOff(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -598,64 +624,12 @@ public class BusOrderModel {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 到站查询核销乘客
|
||||
*/
|
||||
public void queryPassengerWriteOff() {
|
||||
if (backgroundCurrentStationIndex > stationList.size() - 1) { //到站短时间内调用多次
|
||||
CallerLogger.INSTANCE.e(M_BUS + TAG, "数组越界");
|
||||
return;
|
||||
}
|
||||
BusServiceManager.queryStationWriteOffPassengers(mContext,
|
||||
currentTaskId,
|
||||
stationList.get(backgroundCurrentStationIndex).getSiteId(),
|
||||
prePassengerWriteOffTime,
|
||||
new OchCommonServiceCallback<BusQueryWriteOffPassengersResponse>() {
|
||||
|
||||
@Override
|
||||
public void onSuccess(BusQueryWriteOffPassengersResponse o) {
|
||||
if (o.code != 0 || o.data == null || o.data.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
List<WriteOffPassenger> passengers = o.data;
|
||||
playWriteOffPassengersMsg(passengers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String failMsg) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void playWriteOffPassengersMsg(List<WriteOffPassenger> passengers) {
|
||||
for (int i = 0; i < passengers.size(); i++) {
|
||||
WriteOffPassenger passenger = passengers.get(i);
|
||||
CallerLogger.INSTANCE.e(M_BUS + TAG, "size = " + passenger.passengerSize +
|
||||
" time = " + passenger.writeOffTime);
|
||||
prePassengerWriteOffTime = passenger.writeOffTime;
|
||||
if (mPassengerCallback != null) {
|
||||
mPassengerCallback.playPassenger(passenger);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void startOrStopQueryPassengerWriteOff(boolean isStart) {
|
||||
if (isStart) {
|
||||
BusModelLoopManager.getInstance().startQueryPassengerWriteOffLoop();
|
||||
} else {
|
||||
prePassengerWriteOffTime = 0;
|
||||
SoundPoolHelper.getSoundPoolHelper().releaseSoundPool();
|
||||
BusModelLoopManager.getInstance().stopQueryPassengerWriteOffLoop();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 到站后重置站点状态
|
||||
*/
|
||||
private void arriveSiteStation() {
|
||||
if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) { //到站短时间内调用多次
|
||||
CallerLogger.INSTANCE.e(M_BUS + TAG, "数组越界");
|
||||
if ( backgroundCurrentStationIndex +1 > stationList.size() - 1 ) { //到站短时间内调用多次
|
||||
CallerLogger.INSTANCE.e( M_BUS + TAG, "数组越界" );
|
||||
return;
|
||||
}
|
||||
int arrivedStationIndex = backgroundCurrentStationIndex + 1;
|
||||
@@ -676,7 +650,7 @@ public class BusOrderModel {
|
||||
arriveStationSuccess(arrivedStationIndex, departureStopName, arriveStation);
|
||||
|
||||
//5s轮询核销乘客
|
||||
startOrStopQueryPassengerWriteOff(true);
|
||||
// startOrStopQueryPassengerWriteOff(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -734,7 +708,7 @@ public class BusOrderModel {
|
||||
isArrivedStation = false;
|
||||
CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-离站成功开往下一站====");
|
||||
//需要更改当前站和下一站的状态 然后渲染
|
||||
startOrStopQueryPassengerWriteOff(false);
|
||||
//startOrStopQueryPassengerWriteOff(false);
|
||||
queryBusRoutes();
|
||||
leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, finalNextStationName);
|
||||
}
|
||||
@@ -821,7 +795,7 @@ public class BusOrderModel {
|
||||
BusSendTripInfoManager.INSTANCE.sendBusTripInfo(BusSendTripInfoManager.START_TRIP
|
||||
, busRoutesResult.getName(), "", "", false);
|
||||
}
|
||||
startOrStopQueryPassengerWriteOff(true);
|
||||
// startOrStopQueryPassengerWriteOff(true);
|
||||
}
|
||||
|
||||
BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex);
|
||||
@@ -925,7 +899,7 @@ public class BusOrderModel {
|
||||
endOrAbortTaskSuccess();
|
||||
clearBusStationDatas();
|
||||
queryBusRoutes();// 重新获取任务
|
||||
startOrStopQueryPassengerWriteOff(false);
|
||||
// startOrStopQueryPassengerWriteOff(false);
|
||||
VoiceNotice.showNotice(mContext.getString(R.string.bus_end_task_tip));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,28 +33,28 @@ public class BusModelLoopManager {
|
||||
}
|
||||
|
||||
private Disposable mHeartbeatDisposable; //心跳轮询
|
||||
private Disposable mQueryPassengerDisposable; //查询核销乘客
|
||||
// private Disposable mQueryPassengerDisposable; //查询核销乘客
|
||||
|
||||
public void startQueryPassengerWriteOffLoop() {
|
||||
if (mQueryPassengerDisposable != null && !mQueryPassengerDisposable.isDisposed()) {
|
||||
return;
|
||||
}
|
||||
CallerLogger.INSTANCE.i(M_BUS + TAG, "startQueryPassengerWriteOffLoop()");
|
||||
mQueryPassengerDisposable = Observable.interval(LOOP_DELAY_500,
|
||||
LOOP_PASSENGER_5S, TimeUnit.MILLISECONDS)
|
||||
.map((aLong -> aLong + 1))
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(aLong -> BusOrderModel.getInstance().queryPassengerWriteOff());
|
||||
}
|
||||
// public void startQueryPassengerWriteOffLoop() {
|
||||
// if (mQueryPassengerDisposable != null && !mQueryPassengerDisposable.isDisposed()) {
|
||||
// return;
|
||||
// }
|
||||
// CallerLogger.INSTANCE.i(M_BUS + TAG, "startQueryPassengerWriteOffLoop()");
|
||||
// mQueryPassengerDisposable = Observable.interval(LOOP_DELAY_500,
|
||||
// LOOP_PASSENGER_5S, 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 stopQueryPassengerWriteOffLoop() {
|
||||
// if (mQueryPassengerDisposable != null) {
|
||||
// CallerLogger.INSTANCE.i(M_BUS + TAG, "stopQueryPassengerWriteOffLoop()");
|
||||
// mQueryPassengerDisposable.dispose();
|
||||
// mQueryPassengerDisposable = null;
|
||||
// }
|
||||
// }
|
||||
|
||||
public void startHeartbeatLoop() {
|
||||
if (mHeartbeatDisposable != null && !mHeartbeatDisposable.isDisposed()) {
|
||||
|
||||
@@ -13,8 +13,8 @@ object OCHSocketMessageManager {
|
||||
public val msgMonitorType:Int = 0X0601001
|
||||
public val msgWriteOffPassengerType:Int = 0X0601002
|
||||
|
||||
fun registerSocketMessageListener(msgType:Int,
|
||||
mogoOnMessageListener : IMogoOnMessageListener<OCHOperationalMessage>){
|
||||
fun <T> registerSocketMessageListener(msgType:Int,
|
||||
mogoOnMessageListener :IMogoOnMessageListener<T>){
|
||||
MogoAiCloudSocketManager.getInstance(AbsMogoApplication.getApp().applicationContext)
|
||||
.registerOnMessageListener(msgType,mogoOnMessageListener)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user