[2.13.0] bus增加乘客核销长链接以及端上逻辑修改
This commit is contained in:
@@ -169,9 +169,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
|
||||
@@ -225,6 +229,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;
|
||||
}
|
||||
@@ -311,7 +332,7 @@ public class BusOrderModel {
|
||||
public void release(){
|
||||
|
||||
startOrStopOrderLoop(false);
|
||||
startOrStopQueryPassengerWriteOff(false);
|
||||
// startOrStopQueryPassengerWriteOff(false);
|
||||
MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getStatusManagerApi()
|
||||
@@ -328,6 +349,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() {
|
||||
@@ -501,7 +527,7 @@ public class BusOrderModel {
|
||||
endOrAbortTaskSuccess();
|
||||
clearBusStationDatas();
|
||||
queryBusRoutes();
|
||||
startOrStopQueryPassengerWriteOff(false);
|
||||
// startOrStopQueryPassengerWriteOff(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -600,58 +626,6 @@ 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();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 到站后重置站点状态
|
||||
*/
|
||||
@@ -678,7 +652,7 @@ public class BusOrderModel {
|
||||
arriveStationSuccess(arrivedStationIndex,departureStopName,arriveStation);
|
||||
|
||||
//5s轮询核销乘客
|
||||
startOrStopQueryPassengerWriteOff(true);
|
||||
// startOrStopQueryPassengerWriteOff(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -736,7 +710,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