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:
yangyakun
2022-11-22 09:57:35 +08:00
3 changed files with 57 additions and 83 deletions

View File

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

View File

@@ -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()) {

View File

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