diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeProvider.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeProvider.kt index ce800bffe6..87d3fa02d8 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeProvider.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeProvider.kt @@ -10,6 +10,8 @@ import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.och.bridge.autopilot.location.OchLocationManager import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager import com.mogo.och.bridge.bridge.OchBridgeManager +import com.mogo.och.bridge.bridge.OchCollisionRiskManager +import com.mogo.och.bridge.bridge.OchPncManager import com.mogo.och.bridge.bridge.OchVlmManager import com.mogo.och.bridge.trajectory.TrajectoryManager import com.mogo.och.common.module.biz.birdge.BridgeService @@ -35,10 +37,9 @@ class BridgeProvider : BridgeService, CallerBase() { // 车前引导线+预测数据 OchBridgeManager.load() - -// if(EnvManager.isT1T2Passenger()){ - OchVlmManager.load() -// } + OchVlmManager.load() + OchPncManager.load() + OchCollisionRiskManager.load() TrajectoryManager.load() } @@ -114,5 +115,17 @@ class BridgeProvider : BridgeService, CallerBase() { } } + fun invokePncData(pncAction:String){ + M_LISTENERS.forEach { + it.value.onPncInfoListener(pncAction) + } + } + + fun invokeCollisionRisk(){ + M_LISTENERS.forEach { + it.value.onCollisionRisk() + } + } + } \ No newline at end of file diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeServiceManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeServiceManager.kt index 048b82028f..90042f2721 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeServiceManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeServiceManager.kt @@ -46,4 +46,12 @@ object BridgeServiceManager { this.bridgeService?.inVokeNdeData(title,desc,sortedList) } + fun invokePncData(pncAction:String){ + this.bridgeService?.invokePncData(pncAction) + } + + fun collisionRisk() { + this.bridgeService?.invokeCollisionRisk() + } + } \ No newline at end of file diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/bridge/OchCollisionRiskManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/bridge/OchCollisionRiskManager.kt new file mode 100644 index 0000000000..a5a14f58ad --- /dev/null +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/bridge/OchCollisionRiskManager.kt @@ -0,0 +1,22 @@ +package com.mogo.och.bridge.bridge + +import com.mogo.eagle.core.function.api.devatools.ICollisionRiskListener +import com.mogo.eagle.core.function.call.devatools.CallerCollisionRiskManager +import com.mogo.och.bridge.BridgeServiceManager + +object OchCollisionRiskManager : ICollisionRiskListener { + + private const val TAG = "OchCollisionRiskManager" + fun load() { + CallerCollisionRiskManager.addListener(TAG, this) + } + + fun release() { + CallerCollisionRiskManager.removeListener(TAG) + } + + override fun onCollisionRisk() { + BridgeServiceManager.collisionRisk() + } + +} \ No newline at end of file diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/bridge/OchPncManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/bridge/OchPncManager.kt new file mode 100644 index 0000000000..a2c306d28d --- /dev/null +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/bridge/OchPncManager.kt @@ -0,0 +1,50 @@ +package com.mogo.och.bridge.bridge + +import com.mogo.eagle.core.data.autopilot.pnc.PncActionsHelper +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningActionsListener +import com.mogo.eagle.core.function.call.autopilot.CallerPlanningActionsListenerManager +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON +import com.mogo.och.bridge.BridgeServiceManager +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import kotlin.properties.Delegates +import mogo.telematics.pad.MessagePad + +object OchPncManager : IMoGoAutopilotPlanningActionsListener { + + private val TAG = "${M_OCHCOMMON}OchPncManager" + + private var pncAction: String by Delegates.observable("") { _, oldValue, newValue -> + if (oldValue != newValue) { + OchChainLogManager.writeCHainLogBridge("pnc消息","oldPnc:$oldValue newPnc:$newValue") + BridgeServiceManager.invokePncData(newValue) + } + } + + fun load(){ + CallerPlanningActionsListenerManager.addListener(TAG, this) + } + + fun release(){ + CallerPlanningActionsListenerManager.removeListener(TAG) + } + + override fun pncActions(planningActionMsg: MessagePad.PlanningActionMsg) { + planningActionMsg.actionMsg?.let { + try { + pncAction = PncActionsHelper.getAction( + it.drivingState.number, + it.drivingAction.number + ) + } catch (e: Exception) { + e.printStackTrace() + } + } + planningActionMsg.v2NActionMsgList?.forEach { v2nAction -> + pncAction = PncActionsHelper.getAction( + v2nAction.drivingState.number, + v2nAction.drivingAction.number + ) + } + } + +} \ No newline at end of file diff --git a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt index 054d5e574e..c0663fc87c 100644 --- a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt +++ b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt @@ -28,6 +28,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisStatesListenerMa import com.mogo.eagle.core.function.call.autopilot.CallerPlanningActionsListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerVlmManager +import com.mogo.eagle.core.function.call.devatools.CallerCollisionRiskManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapRomaListener @@ -80,8 +81,12 @@ object DebugDataDispatch { const val mediaMusic = "mediaAndMusic" const val vlmMessage = "vlmMessage" const val vlmImage = "vlmImage" + const val pncAction = "pncAction" + const val collisionRisk = "CollisionRisk" // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "location" --es path "1111/11111" +// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "pncAction" +// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "CollisionRisk" // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "globalPath" --es path "sy73.json" // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "carDoor" --ei doorPostion 1 --ei doorStatus 1 // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "trunAroud" --es code "IMAP_TRA_LOADED" @@ -112,6 +117,18 @@ object DebugDataDispatch { } when (type) { + collisionRisk -> { + CallerCollisionRiskManager.invokeCollisionRisk() + } + pncAction -> { + val time = intent.getFloatExtra("action",0f) + val newBuilder = MessagePad.PlanningActionMsg.newBuilder() + val actionMsg = MessagePad.DrivingActionMsg.newBuilder() + actionMsg.drivingAction = MessagePad.DrivingAction.DRIVING_ACTION_STATE_ONE + actionMsg.drivingState = MessagePad.DrivingState.PULL_OVER + newBuilder.actionMsg = actionMsg.build() + CallerPlanningActionsListenerManager.invokePNCActions(newBuilder.build()) + } vlmMessage -> { val time = intent.getFloatExtra("time",0f) val id = intent.getIntExtra("id",0) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeListener.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeListener.kt index 8d378f1ce0..a3abae5e5d 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeListener.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeListener.kt @@ -22,4 +22,8 @@ interface BridgeListener { fun onVlmDataListener(vlmData: VlmData){} fun onNdeDataListener(title: String, desc: String, sortedList: List) {} + + fun onPncInfoListener(pncAction: String) {} + + fun onCollisionRisk() {} } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/constant/OchCommonConst.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/constant/OchCommonConst.kt index 6a76f7839a..5c27e231f9 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/constant/OchCommonConst.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/constant/OchCommonConst.kt @@ -80,5 +80,7 @@ class OchCommonConst { const val Charter_AVERAGE_SPEED = 15 //T1T2的平均里程:38km/h const val TAXI_AVERAGE_SPEED = 38 + + const val PNC_ACTION_ENTERSTATION = "正在进站" } } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt index d9a9e0bc82..5939d765b4 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt @@ -66,6 +66,13 @@ object OchChainLogManager { const val EVENT_KEY_INFO_VLM = "analytics_event_och_vlm" + const val EVENT_KEY_INFO_BRIDGE = "analytics_event_och_bridge" + + + fun writeCHainLogBridge(title: String,info: String) { + writeChainLog(title, info, false, EVENT_KEY_INFO_BRIDGE) + } + fun writeChainLogEye(title: String, info: String) { writeChainLog(title, info, true, EVENT_KEY_INFO_CALL_EYE) } diff --git a/OCH/offline/driver/src/main/res/values/strings.xml b/OCH/offline/driver/src/main/res/values/strings.xml index c0cfeb72b5..eb08f5e16d 100644 --- a/OCH/offline/driver/src/main/res/values/strings.xml +++ b/OCH/offline/driver/src/main/res/values/strings.xml @@ -19,7 +19,7 @@ 您确认要结束任务吗? - 蘑菇小巴正在进站 + 欢迎乘坐蘑菇小巴 蘑菇小巴出发咯 当前网络良好(%1$s) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt index eee80c62d5..971929a27a 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt @@ -21,6 +21,9 @@ import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation import com.mogo.och.bridge.autopilot.line.ILineCallback import com.mogo.och.bridge.autopilot.line.LineManager import com.mogo.och.bridge.autopilot.location.OchLocationManager +import com.mogo.och.common.module.biz.birdge.BridgeListener +import com.mogo.och.common.module.biz.birdge.BridgeManager +import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.manager.loop.LoopInfo @@ -78,6 +81,8 @@ object OrderModel { OchAutoPilotStatusListenerManager.addListener(TAG, ochAutopilotStatusListener) + BridgeManager.addBridgeListener(TAG,bridgeListener) + LineManager.addListener(TAG,arriveStationBySearch) OchTransform.addListener(TAG,ochTransform) @@ -96,11 +101,23 @@ object OrderModel { TicketModel.release() OchAutoPilotStatusListenerManager.removeListener(TAG) + BridgeManager.removeBridgeListener(LineModel.TAG) LineManager.removeListener(TAG) OchTransform.removeListener(TAG) } + private val bridgeListener = object : BridgeListener{ + override fun onPncInfoListener(pncAction: String) { + when (pncAction) { + OchCommonConst.PNC_ACTION_ENTERSTATION -> { + ShuttleVoiceManager.arrivedStationOut(ResourcesUtils.getString(R.string.m2_voice_out_arriving_station)) + } + else -> {} + } + } + } + private val ochAutopilotStatusListener = object : IOchAutopilotStatusListener{ override fun onAutopilotArriveAtStation(arrivedStation: ArrivedStation?) { e(TAG, "行程日志-onAutopilotArriveAtStation arrive") diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt index c446c75c33..7bf6c6ea50 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt @@ -4,9 +4,14 @@ import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.eagle.core.utilcode.util.GsonUtils +import com.mogo.eagle.core.utilcode.util.StringUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.bridge.autopilot.line.LineManager +import com.mogo.och.bridge.distance.IDistanceListener +import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager +import com.mogo.och.common.module.biz.birdge.BridgeListener +import com.mogo.och.common.module.biz.birdge.BridgeManager import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager import com.mogo.och.common.module.manager.socket.cloud.action.OperateAction @@ -17,6 +22,7 @@ import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg import com.mogo.och.common.module.utils.ResourcesUtils +import com.mogo.och.common.module.voice.VoiceNotice.showNotice import com.mogo.och.data.bean.BusRoutesResult import com.mogo.och.data.bean.BusTransferData import com.mogo.och.shuttle.weaknet.R @@ -31,6 +37,32 @@ object ThirdDeviceData { @JvmStatic val busRoutesResult: BusRoutesResult = BusRoutesResult() + private val bridgeListener: BridgeListener = object : BridgeListener { + override fun onCollisionRisk() { + ShuttleVoiceManager.collisionRisk() + } + } + private val trajectoryListener: IDistanceListener = object : IDistanceListener { + override fun distanceCallback(distance: Float) { + // 小于200m 播报站点介绍 + if (distance < 200) { + LineManager.getStations { start, end -> + if (!end.isPlayTts) { + end.isPlayTts = true + if (StringUtils.isEmpty(end.introduction)) { + if(!StringUtils.isEmpty(end.name)){ + val message = "前方到站:${end.name},请下车的乘客做好准备" + ShuttleVoiceManager.leave200Distance(message) + } + }else{ + ShuttleVoiceManager.leave200Distance(end.introduction) + } + } + } + } + } + } + fun init() { //监听运营消息 OCHSocketMessageManager.registerSocketMessageListener( @@ -51,6 +83,8 @@ object ThirdDeviceData { DPMsgType.TYPE_TASK_DETAILS.type, taskDetailsMsgListener ) + TrajectoryAndDistanceManager.addDistanceListener(TAG,trajectoryListener) + BridgeManager.addBridgeListener(TAG,bridgeListener) } fun release() { @@ -61,6 +95,10 @@ object ThirdDeviceData { AbnormalFactorsLoopManager.stopLoopAbnormalFactors() + TrajectoryAndDistanceManager.removeListener(TAG) + + BridgeManager.removeBridgeListener(TAG) + //监听乘客屏发来的消息 LanSocketManager.unRegisterSocketMessageListener( DPMsgType.TYPE_TASK_DETAILS.type, diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/ShuttleVoiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/ShuttleVoiceManager.kt index 6c5113d6f4..d88a2ab997 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/ShuttleVoiceManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/ShuttleVoiceManager.kt @@ -47,20 +47,11 @@ object ShuttleVoiceManager { VoiceNotice.showNotice(list, AIAssist.LEVEL1,null) } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { siteNameCN?.let { - sendArrivedStationToClient(it) + sendPassengerPlay( ResourcesUtils.getString(R.string.bus_arrived_station_tip,it)) } } } - private fun sendArrivedStationToClient(arriveStation: String) { - val arrivedMsg = AppConnectMsg( - isViewShow = false, - isPlay = true, - msg = ResourcesUtils.getString(R.string.bus_arrived_station_tip,arriveStation), - ) - LanSocketManager.sendMsgToClient(arrivedMsg) - } - fun leaveStationBus(siteNameCN: String?, siteNameKR: String?) { val list: MutableList = ArrayList() val context = AbsMogoApplication.getApp() @@ -88,20 +79,11 @@ object ShuttleVoiceManager { VoiceNotice.showNotice(list, AIAssist.LEVEL1,null) } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { siteNameCN?.let { - sendStartStationToClient(it) + sendPassengerPlay(ResourcesUtils.getString(R.string.bus_leave_station_tip,it)) } } } - private fun sendStartStationToClient(nextStation: String) { - val startMsg = AppConnectMsg( - isViewShow = false, - isPlay = true, - msg = ResourcesUtils.getString(R.string.bus_leave_station_tip,nextStation), - ) - LanSocketManager.sendMsgToClient(startMsg) - } - fun endOrderBus() { val context = AbsMogoApplication.getApp() val list: MutableList = ArrayList() @@ -115,40 +97,20 @@ object ShuttleVoiceManager { if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { VoiceNotice.showNotice(list, AIAssist.LEVEL0,null) } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { - sendEndTaskToClient() + sendPassengerPlay(SkinResources.getInstance().getString(R.string.bus_end_task_tip)) } } - private fun sendEndTaskToClient() { - val endMsg = AppConnectMsg( - isViewShow = false, - isPlay = true, - msg = SkinResources.getInstance().getString(R.string.bus_end_task_tip), - ) - LanSocketManager.sendMsgToClient(endMsg) - } - fun writeOffCount(successNum:Int){ if(successNum<=1){ VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3) - //sendWriteOffNumToClient("核验通过") }else{ VoiceNotice.showNotice("$successNum 人核验通过", AIAssist.LEVEL3) - //sendWriteOffNumToClient("$successNum 人核验通过") } } - private fun sendWriteOffNumToClient(msg: String?) { - val passengerMsg = AppConnectMsg( - isViewShow = false, - isPlay = true, - msg = msg!!, - ) - LanSocketManager.sendMsgToClient(passengerMsg) - } - // 距离发车还有1分钟 fun showLeafTime(tips: String) { @@ -160,4 +122,33 @@ object ShuttleVoiceManager { VoiceNotice.showNotice(reaseon, AIAssist.LEVEL3) } + fun leave200Distance(message:String){ + if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + VoiceNotice.showNotice(message, AIAssist.LEVEL0) + } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + sendPassengerPlay(message) + } + } + + + fun collisionRisk() { + val message = ResourcesUtils.getString(R.string.m2_voice_collision_risk) + if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + VoiceNotice.showNotice(message, AIAssist.LEVEL0) + } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + sendPassengerPlay(message) + arrivedStationOut("车辆遇到紧急情况,正在安全处理") + } + } + + private fun sendPassengerPlay(msg:String){ + val passengerMsg = AppConnectMsg( + isViewShow = false, + isPlay = true, + msg = msg, + ) + LanSocketManager.sendMsgToClient(passengerMsg) + } + + } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/res/values/strings.xml b/OCH/shuttle/driver_weaknet/src/main/res/values/strings.xml index 86c49dadfc..7b61aa283b 100644 --- a/OCH/shuttle/driver_weaknet/src/main/res/values/strings.xml +++ b/OCH/shuttle/driver_weaknet/src/main/res/values/strings.xml @@ -46,8 +46,10 @@ 确认 取消 - 蘑菇小巴正在进站 + 欢迎乘坐蘑菇小巴 + 蘑菇小巴正在进站 蘑菇小巴出发咯 + 尊敬的乘客,车辆遇到紧急情况,正在安全处理,请坐稳扶好,听从指引,感谢配合 diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt index d8f10eab4d..cc8890c85e 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt @@ -174,16 +174,6 @@ object CommonModel { } } } - // 小于200m 播报站点介绍 - if (distance < 200) { - val stationNext = mStations[mNextStationIndex] - if (!stationNext.isPlayTts) { - if (!StringUtils.isEmpty(stationNext.introduction)) { - showNotice(stationNext.introduction) - stationNext.isPlayTts = true - } - } - } mCommonCallbackList.forEach { it.value.updateRemainMT( distance.toLong(), diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentView.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentView.kt index c6d6bde595..4bfbdc62f6 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentView.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentView.kt @@ -52,6 +52,7 @@ import com.mogo.och.unmanned.taxi.ui.task.TaxiTaskModel import com.mogo.och.unmanned.taxi.ui.task.cancleorder.CancleOrderView import com.mogo.och.unmanned.taxi.ui.task.itinerayswitch.ItinerarySwitchModel import com.mogo.och.unmanned.taxi.utils.TaskUtils +import com.mogo.och.unmanned.taxi.utils.TaxiTrajectoryManager //演练单标识 import kotlinx.android.synthetic.main.unmanned_itinerary_current.view.aciv_task_type_exercise // 距离目的地距离和剩余时间 @@ -149,6 +150,9 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi } private fun initViewModelObserver() { + include_empty.onClick { + TaxiTrajectoryManager.syncTrajectoryInfo() + } viewModel?.sendUiIntent(TaskUiIntent.StartTaskWithOrderLooper) //监听返回的数据状态 diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/report/IPCReportManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/report/IPCReportManager.kt index 787daf3446..96c439e93d 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/report/IPCReportManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/report/IPCReportManager.kt @@ -7,6 +7,7 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.deva.report.ReportEntity import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.function.call.devatools.CallerCollisionRiskManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler @@ -84,6 +85,11 @@ class IPCReportManager : IMoGoAutopilotStatusListener { */ override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) { guardianInfo?.let{ + //8.1.4版本异常声光电提醒 + if(it.code == MogoReport.Code.Info.IMAP.CONTROLLER_START_FM_COMMAND){ + CallerCollisionRiskManager.invokeCollisionRisk() + } + if(it.resultList.contains(RESULT_AUTOPILOT_DISABLE) || it.resultList.contains(RESULT_AUTOPILOT_SYSTEM_UNSTARTED) || it.resultList.contains(RESULT_REMOTEPILOT_DISABLE) @@ -96,7 +102,7 @@ class IPCReportManager : IMoGoAutopilotStatusListener { || it.code == MogoReport.Code.Info.IMAP.EXIT_AUTOPILOT || it.code == MogoReport.Code.Info.IMAP.ENTRY_REMOTEPILOT || it.code == MogoReport.Code.Info.IMAP.EXIT_REMOTEPILOT - || it.code == MogoReport.Code.Info.IMAP.CONTROLLER_START_FM_COMMAND +// || it.code == MogoReport.Code.Info.IMAP.CONTROLLER_START_FM_COMMAND || it.code == MogoReport.Code.Info.IMAP.CONTROLLER_FINISH_FM_COMMAND || it.code == MogoReport.Code.Info.IMAP.CONTROLLER_ABORT_FM_COMMAND || it.code == MogoReport.Code.Info.IMAP.PLANNING_START_FM_COMMAND diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/ICollisionRiskListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/ICollisionRiskListener.kt new file mode 100644 index 0000000000..b2f2d90978 --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/ICollisionRiskListener.kt @@ -0,0 +1,13 @@ +package com.mogo.eagle.core.function.api.devatools + +/** + * 814异常声光电上报提醒 + */ +interface ICollisionRiskListener { + + /** + * 声光电异常提醒 + */ + fun onCollisionRisk(){} + +} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerCollisionRiskManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerCollisionRiskManager.kt new file mode 100644 index 0000000000..db244a3068 --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerCollisionRiskManager.kt @@ -0,0 +1,21 @@ +package com.mogo.eagle.core.function.call.devatools + +import com.mogo.eagle.core.function.api.devatools.ICollisionRiskListener +import com.mogo.eagle.core.function.call.base.CallerBase + +/** + * 814异常声光电上报提醒 + */ +object CallerCollisionRiskManager: CallerBase() { + + /** + * 声光电异常提醒 + */ + fun invokeCollisionRisk(){ + M_LISTENERS.forEach{ + val listener = it.value + listener.onCollisionRisk() + } + } + +} \ No newline at end of file