[charter]

[3.2.0]
[driver arrived dest ]
This commit is contained in:
yangyakun
2023-05-17 16:48:24 +08:00
parent 3b0d331c59
commit 1dcf28496d
4 changed files with 106 additions and 73 deletions

View File

@@ -844,71 +844,88 @@ object CharterPassengerModel {
@Synchronized
fun arriveDest() {
orderInfo?.let { order->
order.lineId?.let {lineId->
order.siteId?.let { siteId ->
if (order.arriveStatus == OrderInfoResponse.ARRIVING) {
if (broadcastList["${siteId}$endKey"] == null || broadcastList["${siteId}$endKey"] == false) {
val currentTimeStamp = DateTimeUtil.getCurrentTimeStamp()
BusPassengerServiceManager.arriveDest(
mContext,
lindId = lineId,
writtenVersion = currentTimeStamp,
object : OchCommonServiceCallback<BaseData> {
override fun onSuccess(data: BaseData?) {
if (null != data && 0 == data.code) {
VoiceManager.arrivedStation(
order.siteName!!,
order.siteNameKr ?: "",
VoiceFocusManager.getVoiceCmdCallBack()
)
broadcastList["${siteId}$endKey"] = true
// 给司机端
val (order, lineId, siteId) = getOrderInfo()
if(order!=null&&lineId!=null&&siteId!=null){
if (order.arriveStatus == OrderInfoResponse.ARRIVING) {
if (broadcastList["${siteId}$endKey"] == null || broadcastList["${siteId}$endKey"] == false) {
val currentTimeStamp = DateTimeUtil.getCurrentTimeStamp()
BusPassengerServiceManager.arriveDest(
mContext,
lindId = lineId,
writtenVersion = currentTimeStamp,
object : OchCommonServiceCallback<BaseData> {
override fun onSuccess(data: BaseData?) {
if (null != data && 0 == data.code) {
arrivedDeskSuccess(currentTimeStamp,true)
}
}
val msg = ChangeDestMsg(
order.orderNo?:":",
lineId.toInt(),
order.lineName?:"",
order.startSiteId?:0,
order.startSiteName?:"",
siteId.toInt(),
order.siteName,
true,
2,
currentTimeStamp
)
CallerTelematicManager.sendMsgToServer(
OchCommonConst.BUSINESS_STRING,
GsonUtils.toJson(msg).toByteArray()
)
CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "到站发送数据${msg}")
switchLine5minWait?.let {
if (!it.isDisposed) {
it.dispose()
}
}
// 到站结束自驾
CallerAutoPilotControlManager.cancelAutoPilot()
// 结束路距计算
endCalculateDistanceLoop()
// 到站置距离位0
invokeStationDistanceListener(-1,-1)
}
}
override fun onFail(code: Int, msg: String) {
ToastUtils.showShort("$code:$msg")
}
})
}
}
override fun onFail(code: Int, msg: String) {
ToastUtils.showShort("$code:$msg")
}
})
}
}
}
}
fun arrivedDeskSuccess(
currentTimeStamp: Long,
needSendDriver:Boolean
) {
val (order, lineId, siteId) = getOrderInfo()
if(order!=null&&lineId!=null&&siteId!=null){
VoiceManager.arrivedStation(
order.siteName!!,
order.siteNameKr ?: "",
VoiceFocusManager.getVoiceCmdCallBack()
)
broadcastList["${siteId}$endKey"] = true
// 给司机端
if (needSendDriver) {
val msg = ChangeDestMsg(
order.orderNo ?: ":",
lineId.toInt(),
order.lineName ?: "",
order.startSiteId ?: 0,
order.startSiteName ?: "",
siteId.toInt(),
order.siteName,
true,
OrderInfoResponse.ARRIVED,
currentTimeStamp
)
CallerTelematicManager.sendMsgToServer(
OchCommonConst.BUSINESS_STRING,
GsonUtils.toJson(msg).toByteArray()
)
CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "到站发送数据${msg}")
}
switchLine5minWait?.let {
if (!it.isDisposed) {
it.dispose()
}
}
// 到站结束自驾
CallerAutoPilotControlManager.cancelAutoPilot()
// 结束路距计算
endCalculateDistanceLoop()
// 到站置距离位0
invokeStationDistanceListener(-1, -1)
}
}
private fun getOrderInfo():Triple<OrderInfoResponse.OrderInfo?,Long?,Long?>{
this.orderInfo?.let { order->
this.orderInfo?.lineId?.let { lineId ->
this.orderInfo?.siteId?.let { siteId ->
return Triple(order,lineId,siteId)
}
}
}
return Triple(null,null,null)
}
@Synchronized
@@ -961,9 +978,11 @@ object CharterPassengerModel {
}
val parameters = initAutopilotControlParameters()
if (null == parameters) {
ToastUtils.showShort("请选择站点")
CallerLogger.e(SceneConstant.M_BUS + TAG, "行程日志-AutopilotControlParameters is empty.")
return
}
ToastUtils.showShort("启动自动驾驶中")
startAutoPilot(parameters)
CallerLogger.d(
SceneConstant.M_BUS + TAG,

View File

@@ -180,10 +180,14 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
if (type == OchCommonConst.BUSINESS_STRING) {
val msg = GsonUtils.fromJson(
String(byteArray),
ChangeDestMsg::class.java
) as ChangeDestMsg
CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "接受数据:切换站点${msg}")
BaseDPMsg::class.java
) as BaseDPMsg
if (msg.type == DPMsgType.TYPE_CHANGE_DEST.type) {
val msg = GsonUtils.fromJson(
String(byteArray),
ChangeDestMsg::class.java
) as ChangeDestMsg
CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "接受数据:切换站点${msg}")
if (msg.isConfirmed) {
ToastUtils.showShort("站点确定")
mView?.setEnableSiteStatus(true)

View File

@@ -7,12 +7,14 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.bus.passenger.R
import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
import com.mogo.och.common.module.bean.dpmsg.DPCommonOperationMsg
import com.mogo.och.common.module.bean.dpmsg.DPMsgType
import com.mogo.och.bus.passenger.bean.response.OrderInfoResponse
import com.mogo.och.bus.passenger.model.CharterPassengerModel
import com.mogo.och.bus.passenger.net.BusPassengerModelLoopManager
import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionOrderPresenter
import com.mogo.och.common.module.bean.dpmsg.*
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
@@ -20,6 +22,7 @@ import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStat
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.common.module.utils.SoundPoolHelper
import com.mogo.och.common.module.voice.VoiceNotice
object DriverMessage: IReceivedMsgListener {
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {
@@ -60,15 +63,23 @@ object DriverMessage: IReceivedMsgListener {
)
}
if(msg.isPlay){
AIAssist.getInstance(AbsMogoApplication.getApp()).speakTTSVoiceWithLevel(msg.msg, AIAssist.LEVEL1)
VoiceNotice.showNotice(msg.msg, AIAssist.LEVEL1)
if(msg.msg.contains("核销成功")){
RxUtils.createSubscribe(15_000) {
val string = AbsMogoApplication.getApp().getString(R.string.m1_welcome_tts)
AIAssist.getInstance(AbsMogoApplication.getApp()).speakTTSVoiceWithLevel(string, AIAssist.LEVEL1)
}
val string = AbsMogoApplication.getApp().getString(R.string.m1_welcome_tts)
VoiceNotice.showNotice(string, AIAssist.LEVEL1,15_000)
}
}
}
DPMsgType.TYPE_CHANGE_DEST.type -> {
val msg = GsonUtils.fromJson(
String(byteArray),
ChangeDestMsg::class.java
) as ChangeDestMsg
if (msg.isConfirmed&&msg.arriveStatus== OrderInfoResponse.ARRIVED) {
CallerLogger.d(SceneConstant.M_BUS_P + BaseDPMsg.TAG, "接受数据:到站${msg}")
CharterPassengerModel.arrivedDeskSuccess(msg.writtenVersion?:0,false)
}
}
else -> {}
}
}

View File

@@ -82,7 +82,6 @@ class GoViewWithArrive @JvmOverloads constructor(
ToastUtils.showShort("设备未就绪请稍等")
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {//
ToastUtils.showShort("启动自动驾驶中")
CallerAutoPilotControlManager.sendPlanningCmd(2)
CharterPassengerModel.startAutopilot()
onceRegisterAutoStatus()