[靠边停车逻辑]
This commit is contained in:
yangyakun
2023-03-23 15:46:18 +08:00
parent c7c3782120
commit 6173626ad6
2 changed files with 75 additions and 32 deletions

View File

@@ -39,17 +39,13 @@ class BusPassengerFunctionPresenter(view: M1ContainFragment?) :
VoiceNotice.showNotice(context.getString(R.string.m1_stop_site_zh), AIAssist.LEVEL1)
}
OCHPlanningStopSideStatusManager.Status.DOING -> {
// 正在靠边停车
}
OCHPlanningStopSideStatusManager.Status.Ending -> {
stopSideStatus?.let {
if(it){
ToastUtils.showShort("靠边停车成功")
}else{
ToastUtils.showShort("靠边停车失败")
}
}
OCHPlanningStopSideStatusManager.Status.EndingSuccess -> {
ToastUtils.showShort("靠边停车成功")
}
OCHPlanningStopSideStatusManager.Status.EndingFaile -> {
ToastUtils.showShort("靠边停车失败")
}
}
}

View File

@@ -15,7 +15,7 @@ object OCHPlanningStopSideStatusManager : IMoGoAutopilotPlanningActionsListener
CallerPlanningActionsListenerManager.setListenerHz(TAG,5)
}
var stopSiteStatus = StopSite.NOTHING
var stopSiteStatus = Status.NOTHING
val M_LISTENERS: ConcurrentHashMap<String, OCHPlanningActionsCallback> = ConcurrentHashMap()
@@ -60,31 +60,49 @@ object OCHPlanningStopSideStatusManager : IMoGoAutopilotPlanningActionsListener
when (drivingAction) {
MessagePad.DrivingAction.DRIVING_ACTION_STATE_ONE -> {
// 表示开始靠边停车
CallerLogger.d(SceneConstant.M_BUS+ TAG,"开始靠边停车")
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
listener.onStartAutopilotFailure(Status.START,null,null)
listener.onStartAutopilotFailure(Status.DOING,null,null)
if(stopSiteStatus == Status.START){
// 靠边停车中
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车中")
listener.onStartAutopilotFailure(Status.DOING,null,null)
}else{
// 开始靠边停车
stopSiteStatus = Status.START
CallerLogger.d(SceneConstant.M_BUS+ TAG,"开始靠边停车")
listener.onStartAutopilotFailure(Status.START,null,null)
}
}
}
MessagePad.DrivingAction.DRIVING_ACTION_STATE_TWO -> {
//表示靠边停车成功
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车成功")
stopSiteStatus = StopSite.STOPSITED
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
listener.onStartAutopilotFailure(Status.Ending,true,null)
if(stopSiteStatus == Status.EndingSuccess){
// 只响应第一次
}else{
stopSiteStatus = Status.EndingSuccess
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车成功")
listener.onStartAutopilotFailure(Status.EndingSuccess,true,null)
}
}
}
MessagePad.DrivingAction.DRIVING_ACTION_STATE_THREE -> {
//靠边停车失败
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败")
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
listener.onStartAutopilotFailure(Status.Ending,false,null)
if(stopSiteStatus==Status.EndingFaile){
// 只响应第一次
}else{
stopSiteStatus = Status.EndingFaile
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败")
listener.onStartAutopilotFailure(Status.EndingFaile,false,null)
}
}
}
else -> {}
@@ -94,11 +112,16 @@ object OCHPlanningStopSideStatusManager : IMoGoAutopilotPlanningActionsListener
when (drivingAction) {
MessagePad.DrivingAction.DRIVING_ACTION_STATE_ONE -> {
// 表示距离前方站点100m
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败_原因距离前方站点100m")
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
listener.onStartAutopilotFailure(Status.NOSTART,false,"距离前方站点100m,请稍后再试")
if(stopSiteStatus==Status.NOSTART){
// 只响应第一次
}else{
stopSiteStatus = Status.NOSTART
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败_原因距离前方站点100m")
listener.onStartAutopilotFailure(Status.NOSTART,false,"距离前方站点100m,请稍后再试")
}
}
}
MessagePad.DrivingAction.DRIVING_ACTION_STATE_TWO -> {
@@ -107,41 +130,65 @@ object OCHPlanningStopSideStatusManager : IMoGoAutopilotPlanningActionsListener
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
listener.onStartAutopilotFailure(Status.NOSTART,false,"距离路口100m,请稍后再试")
if(stopSiteStatus==Status.NOSTART){
// 只响应第一次
}else{
stopSiteStatus = Status.NOSTART
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败_原因距离路口100m,请稍后再试")
listener.onStartAutopilotFailure(Status.NOSTART,false,"距离路口100m,请稍后再试")
}
}
}
MessagePad.DrivingAction.DRIVING_ACTION_STATE_THREE -> {
//正在变道
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败_原因正在变道")
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
listener.onStartAutopilotFailure(Status.NOSTART,false,"因车辆正在变道无法靠边停车,请稍后再试")
if(stopSiteStatus==Status.NOSTART){
// 只响应第一次
}else{
stopSiteStatus = Status.NOSTART
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败_原因正在变道")
listener.onStartAutopilotFailure(Status.NOSTART,false,"因车辆正在变道无法靠边停车,请稍后再试")
}
}
}
else -> {
//未知问题
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败_原因未知问题")
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
listener.onStartAutopilotFailure(Status.NOSTART,false,"靠边停车失败,请稍后再试")
if(stopSiteStatus==Status.NOSTART){
// 只响应第一次
}else{
stopSiteStatus = Status.NOSTART
CallerLogger.d(SceneConstant.M_BUS+ TAG,"靠边停车失败_原因未知问题")
listener.onStartAutopilotFailure(Status.NOSTART,false,"靠边停车失败,请稍后再试")
}
}
}
}
}
MessagePad.ParkScenarioDrivingState.PARK_SENARIO_LANKE_KEEP ->{
stopSiteStatus = StopSite.LANKE_KEEP
if(stopSiteStatus==Status.NOTHING){
// 只响应第一次
}else{
stopSiteStatus = Status.NOTHING
CallerLogger.d(SceneConstant.M_BUS+ TAG,"进入正常驾驶")
}
}
else -> {}
}
}
enum class Status(val code: Int){
NOSTART(-1),
START(0),
DOING(1),
Ending(2)
enum class Status(){
START(),// 开始靠边停车
DOING(),// 正在靠边停车
EndingSuccess(),// 靠边停车成功
EndingFaile(),// 靠边停车失败
NOSTART(),// 没有响应靠边停车
NOTHING()// 默认状态
}
enum class StopSite{