[charter]
[还车成功后重置靠边停车]
This commit is contained in:
yangyakun
2023-10-11 15:41:29 +08:00
parent 977774c1b5
commit 4e275879ed
9 changed files with 89 additions and 68 deletions

View File

@@ -58,6 +58,7 @@ import com.mogo.och.common.module.manager.CharterSendTripInfoManager.START_TRIP
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.utils.*
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.data.bean.*
@@ -505,7 +506,7 @@ class DriverM1Model {
*/
fun restartAutopilot() {
d(SceneConstant.M_CHARTER_D + TAG, "司机端-启动自动驾驶===")
CallerAutoPilotControlManager.sendPlanningCmd(2)
StopSideManager.resetStopSide()
//只去启动自动驾驶
startAutopilot()
}

View File

@@ -23,7 +23,9 @@ import com.mogo.och.common.module.biz.callback.ILoginCallback
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.OPERATION_ROAD_SIDE_TYPE
import com.mogo.och.common.module.biz.constant.LoginStatusManager.isLogin
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.StopSideStatusManager
import com.mogo.och.common.module.manager.stopsidemanager.OCHPlanningActionsCallback
import com.mogo.och.common.module.manager.stopsidemanager.StopSideStatus
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.utils.DateTimeUtil
import mogo.telematics.pad.MessagePad
import mogo_msg.MogoReportMsg
@@ -34,7 +36,7 @@ import mogo_msg.MogoReportMsg
*/
class DriverM1Presenter(view: DriverM1Fragment?) :
Presenter<DriverM1Fragment?>(view),ILoginCallback, DriverM1OrderCallback, ChangeDestCallback,
IMoGoAutopilotStatusListener, StopSideStatusManager.OCHPlanningActionsCallback,
IMoGoAutopilotStatusListener, OCHPlanningActionsCallback,
IDriverM1ControllerStatusCallback {
companion object{
@@ -50,14 +52,14 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
private fun registerListener() {
//2021.11.1 鹰眼架构整合由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
StopSideStatusManager.addListener(TAG,this)
StopSideManager.addListener(TAG,this)
DriverM1Model.get().setDriverM1OrderCallback(this)
DriverM1Model.get().setChangeDestCallback(this)
DriverM1Model.get().setControllerStatusCallback(this)
}
private fun releaseListener() {
StopSideStatusManager.removeListener(TAG)
StopSideManager.removeListener(TAG)
CallerAutoPilotStatusListenerManager.removeListener(TAG)
DriverM1Model.get().setDriverM1OrderCallback(null)
DriverM1Model.get().setChangeDestCallback(null)
@@ -161,27 +163,27 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
}
override fun onStartAutopilotFailure(
actionStatus: StopSideStatusManager.Status,
actionStatus: StopSideStatus,
stopSideStatus: Boolean?,
errorInfo: String?
) {
when (actionStatus) {
StopSideStatusManager.Status.NOSTART -> {
StopSideStatus.NOSTART -> {
DriverM1Model.get().pushOperationalToMsgBox(
DateTimeUtil.getCurrentTimeStamp(),
"靠边停车无响应,注意随时接管",
OPERATION_ROAD_SIDE_TYPE
)
}
StopSideStatusManager.Status.START -> { // 靠边停车 to 消息盒子
StopSideStatus.START -> { // 靠边停车 to 消息盒子
DriverM1Model.get().pushOperationalToMsgBox(
DateTimeUtil.getCurrentTimeStamp(),
"开始靠边停车",
OPERATION_ROAD_SIDE_TYPE
)
}
StopSideStatusManager.Status.EndingFaile,
StopSideStatusManager.Status.NOSTART-> {
StopSideStatus.EndingFaile,
StopSideStatus.NOSTART-> {
DriverM1Model.get().pushOperationalToMsgBox(
DateTimeUtil.getCurrentTimeStamp(),
"靠边停车失败,注意随时接管",

View File

@@ -34,8 +34,10 @@ import com.mogo.och.charter.passenger.ui.overmapview.MakerWithSiteName
import com.mogo.och.charter.passenger.ui.overmapview.MakerWithSiteNamewithCheck
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.StopSideStatusManager
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.manager.devicemanage.callback.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.stopsidemanager.OCHPlanningActionsCallback
import com.mogo.och.common.module.manager.stopsidemanager.StopSideStatus
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
@@ -45,7 +47,7 @@ import java.util.concurrent.ConcurrentHashMap
class BusPassengerPresenter(view: MainFragment?) :
BusBasePassengerFunctionDevicePresenter<MainFragment?>(view),
IOrderChangeCallback, IOrderStatusChangeListener,
StopSideStatusManager.OCHPlanningActionsCallback, LightAirconditionDoorCallback {
OCHPlanningActionsCallback, LightAirconditionDoorCallback {
private val lindIdAndView = ConcurrentHashMap<Long, MakerWithSiteNamewithCheck?>()
@@ -66,7 +68,7 @@ class BusPassengerPresenter(view: MainFragment?) :
CharterPassengerModel.setCarTypeChangeListener(this)
CharterPassengerModel.setStatusChangeListener(TAG, this)
CallerTelematicListenerManager.addListener(TAG, DriverMessage)
StopSideStatusManager.addListener(TAG, this)
StopSideManager.addListener(TAG, this)
setCarChangeListener(R.raw.m1)
}
@@ -74,7 +76,7 @@ class BusPassengerPresenter(view: MainFragment?) :
super.onDestroy(owner)
CharterPassengerModel.setCarTypeChangeListener(null)
CallerTelematicListenerManager.removeListener(TAG)
StopSideStatusManager.removeListener(TAG)
StopSideManager.removeListener(TAG)
}
override fun setCarChangeListener(productType: Int?) {
@@ -109,6 +111,7 @@ class BusPassengerPresenter(view: MainFragment?) :
mView?.closeOpenAndCloseDoor()
clearShowNoviceGuidanceSharedPrefs()
}
StopSideManager.resetStopSide()
}
OrderStatusEnum.OrderNoLine -> {
@@ -129,7 +132,7 @@ class BusPassengerPresenter(view: MainFragment?) :
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
// 靠边停车 订单结束 靠边停车
CallerAutoPilotControlManager.sendPlanningCmd(1)
StopSideManager.stopSide()
}
IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> {
@@ -183,28 +186,28 @@ class BusPassengerPresenter(view: MainFragment?) :
}
override fun onStartAutopilotFailure(
actionStatus: StopSideStatusManager.Status,
actionStatus: StopSideStatus,
stopSideStatus: Boolean?,
errorInfo: String?
) {
UiThreadHandler.post {
when (actionStatus) {
StopSideStatusManager.Status.NOSTART -> {
StopSideStatus.NOSTART -> {
ToastCharterUtils.showToastShort(errorInfo ?: "")
}
StopSideStatusManager.Status.START -> {
StopSideStatus.START -> {
VoiceNotice.showNotice(
context.getString(R.string.charter_p_stop_site_zh),
AIAssist.LEVEL0
)
}
StopSideStatusManager.Status.DOING -> {
StopSideStatus.DOING -> {
// 正在靠边停车
}
StopSideStatusManager.Status.EndingSuccess -> {
StopSideStatus.EndingSuccess -> {
ToastCharterUtils.showToastShort("靠边停车成功")
VoiceNotice.showNotice(
context.getString(R.string.charter_p_stop_site_success),
@@ -212,7 +215,7 @@ class BusPassengerPresenter(view: MainFragment?) :
)
}
StopSideStatusManager.Status.EndingFaile -> {
StopSideStatus.EndingFaile -> {
ToastCharterUtils.showToastShort("车辆系统繁忙,请稍后再试")
}

View File

@@ -21,6 +21,7 @@ import com.mogo.och.charter.passenger.callback.ICharterPassengerAutoStatusChange
import com.mogo.och.charter.passenger.model.CharterPassengerModel
import com.mogo.och.charter.passenger.ui.bottom.BottomClickView
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.common.module.utils.SoundPoolHelper
import io.reactivex.disposables.Disposable
@@ -89,7 +90,7 @@ class GoViewWithArrive @JvmOverloads constructor(
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
// 重新起步
CallerAutoPilotControlManager.sendPlanningCmd(2)
StopSideManager.resetStopSide()
CharterPassengerModel.leaveStation()
}
IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> {
@@ -106,7 +107,7 @@ class GoViewWithArrive @JvmOverloads constructor(
}
private fun onceRegisterAutoStatus() {
CallerAutoPilotControlManager.sendPlanningCmd(2)
StopSideManager.resetStopSide()
CharterPassengerModel.startAutopilot()
CharterPassengerModel.sendTripInfo()
CharterPassengerModel.setAutoStatusCallback(TAG,null)

View File

@@ -9,6 +9,7 @@ import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.ui.bottom.BottomClickView
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.utils.SoundPoolHelper
class StopSiteView @JvmOverloads constructor(
@@ -38,7 +39,7 @@ class StopSiteView @JvmOverloads constructor(
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
// 靠边停车
CallerAutoPilotControlManager.sendPlanningCmd(1)
StopSideManager.stopSide()
}
IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> {
ToastCharterUtils.showToastShort("远程守护卫士操作中,稍后再试试吧~")

View File

@@ -1,6 +1,5 @@
package com.mogo.och.charter.passenger.ui.selectline
import android.view.View
import androidx.lifecycle.ViewModel
import com.elegant.utils.UiThreadHandler
import com.mogo.commons.AbsMogoApplication
@@ -28,9 +27,10 @@ import com.mogo.och.common.module.bean.dpmsg.DPMsgType
import com.mogo.och.common.module.bean.dpmsg.LineSite
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.StopSideStatusManager
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.manager.loopmanager.BizLoopManager
import com.mogo.och.common.module.manager.loopmanager.LoopInfo
import com.mogo.och.common.module.manager.stopsidemanager.StopSideStatus
import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.disposables.Disposable
import org.greenrobot.eventbus.EventBus
@@ -382,8 +382,8 @@ class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener {
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
// 自动驾驶中
return when (StopSideStatusManager.stopSiteStatus) {
StopSideStatusManager.Status.EndingSuccess -> {
return when (StopSideManager.stopSiteStatus) {
StopSideStatus.EndingSuccess -> {
true
}

View File

@@ -0,0 +1,5 @@
package com.mogo.och.common.module.manager.stopsidemanager
interface OCHPlanningActionsCallback {
fun onStartAutopilotFailure(actionStatus: StopSideStatus, stopSideStatus : Boolean?, errorInfo : String?)
}

View File

@@ -1,13 +1,14 @@
package com.mogo.och.common.module.manager
package com.mogo.och.common.module.manager.stopsidemanager
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningActionsListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerPlanningActionsListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import mogo.telematics.pad.MessagePad
import java.util.concurrent.ConcurrentHashMap
object StopSideStatusManager : IMoGoAutopilotPlanningActionsListener {
object StopSideManager : IMoGoAutopilotPlanningActionsListener {
private const val TAG = "OCHPlanningActionsManager"
init {
@@ -15,7 +16,7 @@ object StopSideStatusManager : IMoGoAutopilotPlanningActionsListener {
CallerPlanningActionsListenerManager.setListenerHz(TAG,5)
}
var stopSiteStatus = Status.NOTHING
var stopSiteStatus = StopSideStatus.NOTHING
val M_LISTENERS: ConcurrentHashMap<String, OCHPlanningActionsCallback> = ConcurrentHashMap()
@@ -50,6 +51,16 @@ object StopSideStatusManager : IMoGoAutopilotPlanningActionsListener {
}
}
fun stopSide(){
// 靠边停车
CallerAutoPilotControlManager.sendPlanningCmd(1)
}
fun resetStopSide(){
// 重新起步
CallerAutoPilotControlManager.sendPlanningCmd(2)
}
override fun pncActions(planningActionMsg: MessagePad.PlanningActionMsg) {
@@ -63,15 +74,15 @@ object StopSideStatusManager : IMoGoAutopilotPlanningActionsListener {
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
if(stopSiteStatus == Status.START){
if(stopSiteStatus == StopSideStatus.START){
// 靠边停车中
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车中")
listener.onStartAutopilotFailure(Status.DOING,null,null)
listener.onStartAutopilotFailure(StopSideStatus.DOING,null,null)
}else{
// 开始靠边停车
stopSiteStatus = Status.START
stopSiteStatus = StopSideStatus.START
CallerLogger.d(SceneConstant.M_BUS+ TAG,"开始靠边停车")
listener.onStartAutopilotFailure(Status.START,null,null)
listener.onStartAutopilotFailure(StopSideStatus.START,null,null)
}
}
}
@@ -80,12 +91,12 @@ object StopSideStatusManager : IMoGoAutopilotPlanningActionsListener {
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
if(stopSiteStatus == Status.EndingSuccess){
if(stopSiteStatus == StopSideStatus.EndingSuccess){
// 只响应第一次
}else{
stopSiteStatus = Status.EndingSuccess
stopSiteStatus = StopSideStatus.EndingSuccess
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车成功")
listener.onStartAutopilotFailure(Status.EndingSuccess,true,null)
listener.onStartAutopilotFailure(StopSideStatus.EndingSuccess,true,null)
}
}
@@ -95,12 +106,12 @@ object StopSideStatusManager : IMoGoAutopilotPlanningActionsListener {
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
if(stopSiteStatus==Status.EndingFaile){
if(stopSiteStatus == StopSideStatus.EndingFaile){
// 只响应第一次
}else{
stopSiteStatus = Status.EndingFaile
stopSiteStatus = StopSideStatus.EndingFaile
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败")
listener.onStartAutopilotFailure(Status.EndingFaile,false,null)
listener.onStartAutopilotFailure(StopSideStatus.EndingFaile,false,null)
}
}
@@ -115,12 +126,12 @@ object StopSideStatusManager : IMoGoAutopilotPlanningActionsListener {
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
if(stopSiteStatus==Status.NOSTART){
if(stopSiteStatus == StopSideStatus.NOSTART){
// 只响应第一次
}else{
stopSiteStatus = Status.NOSTART
stopSiteStatus = StopSideStatus.NOSTART
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败_原因距离前方站点100m")
listener.onStartAutopilotFailure(Status.NOSTART,false,"距离前方站点100m,请稍后再试")
listener.onStartAutopilotFailure(StopSideStatus.NOSTART,false,"距离前方站点100m,请稍后再试")
}
}
}
@@ -130,12 +141,12 @@ object StopSideStatusManager : IMoGoAutopilotPlanningActionsListener {
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
if(stopSiteStatus==Status.NOSTART){
if(stopSiteStatus == StopSideStatus.NOSTART){
// 只响应第一次
}else{
stopSiteStatus = Status.NOSTART
stopSiteStatus = StopSideStatus.NOSTART
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败_原因距离路口100m,请稍后再试")
listener.onStartAutopilotFailure(Status.NOSTART,false,"距离路口100m,请稍后再试")
listener.onStartAutopilotFailure(StopSideStatus.NOSTART,false,"距离路口100m,请稍后再试")
}
}
}
@@ -144,12 +155,12 @@ object StopSideStatusManager : IMoGoAutopilotPlanningActionsListener {
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
if(stopSiteStatus==Status.NOSTART){
if(stopSiteStatus == StopSideStatus.NOSTART){
// 只响应第一次
}else{
stopSiteStatus = Status.NOSTART
stopSiteStatus = StopSideStatus.NOSTART
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败_原因正在变道")
listener.onStartAutopilotFailure(Status.NOSTART,false,"因车辆正在变道无法靠边停车,请稍后再试")
listener.onStartAutopilotFailure(StopSideStatus.NOSTART,false,"因车辆正在变道无法靠边停车,请稍后再试")
}
}
}
@@ -159,39 +170,26 @@ object StopSideStatusManager : IMoGoAutopilotPlanningActionsListener {
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
if(stopSiteStatus==Status.NOSTART){
if(stopSiteStatus == StopSideStatus.NOSTART){
// 只响应第一次
}else{
stopSiteStatus = Status.NOSTART
stopSiteStatus = StopSideStatus.NOSTART
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败_原因未知问题")
listener.onStartAutopilotFailure(Status.NOSTART,false,"靠边停车失败,请稍后再试")
listener.onStartAutopilotFailure(StopSideStatus.NOSTART,false,"靠边停车失败,请稍后再试")
}
}
}
}
}
MessagePad.ParkScenarioDrivingState.PARK_SENARIO_LANKE_KEEP ->{
if(stopSiteStatus==Status.NOTHING){
if(stopSiteStatus == StopSideStatus.NOTHING){
// 只响应第一次
}else{
stopSiteStatus = Status.NOTHING
stopSiteStatus = StopSideStatus.NOTHING
CallerLogger.d(SceneConstant.M_BUS+ TAG,"进入正常驾驶")
}
}
else -> {}
}
}
enum class Status(){
START(),// 开始靠边停车
DOING(),// 正在靠边停车
EndingSuccess(),// 靠边停车成功
EndingFaile(),// 靠边停车失败
NOSTART(),// 没有响应靠边停车
NOTHING()// 默认状态
}
interface OCHPlanningActionsCallback {
fun onStartAutopilotFailure(actionStatus:Status,stopSideStatus : Boolean?, errorInfo : String?)
}
}

View File

@@ -0,0 +1,10 @@
package com.mogo.och.common.module.manager.stopsidemanager
enum class StopSideStatus {
START(),// 开始靠边停车
DOING(),// 正在靠边停车
EndingSuccess(),// 靠边停车成功
EndingFaile(),// 靠边停车失败
NOSTART(),// 没有响应靠边停车
NOTHING()// 默认状态
}