[ack]
[没有收到ack 不统计自驾失败]
This commit is contained in:
yangyakun
2025-08-12 08:35:12 +08:00
parent a1448ae33e
commit 833f9dcaea
4 changed files with 22 additions and 5 deletions

View File

@@ -96,7 +96,7 @@ object OchAutoPilotManager {
@JvmStatic
fun startAutoPilot(controlParameters: AutopilotControlParameters?): Long {
val sessionId = CallerAutoPilotControlManager.startAutoPilot(controlParameters)
globalSessionId.set(SessionWithTime(sessionId,System.currentTimeMillis()))
globalSessionId.set(SessionWithTime(sessionId,System.currentTimeMillis(),-1L))
OchAutoPilotStatusListenerManager.fsmBackSessionId.set(-1L)
OchAutopilotAnalytics.triggerStartAutopilotParameters(controlParameters, sessionId)
return sessionId
@@ -116,4 +116,15 @@ object OchAutoPilotManager {
}
}
}
fun setAckTimeWithSessionId(msgId: Long, receiveTime: Long) {
if(msgId == globalSessionId.get().sessionId){
globalSessionId.get().ackTime = receiveTime
}
}
fun getSessionidAndAcktime():Pair<Long,Long>{
val sessionInfo = globalSessionId.get() ?: return Pair(-1L,-1L)
return Pair(sessionInfo.sessionId, sessionInfo.ackTime)
}
}

View File

@@ -280,8 +280,8 @@ object OchAutoPilotStatusListenerManager : CallerBase<IOchAutopilotStatusListene
receivedAck.toString(),
receivedAck.status == Status.NORMAL
)
if(receivedAck.status==Status.NORMAL){
// 底盘接受成功
if(receivedAck.status==Status.NORMAL){ // 底盘接受成功
OchAutoPilotManager.setAckTimeWithSessionId(receivedAck.msgId, receivedAck.receiveTime,)
LineManager.invokeStartAutopilotAckSuccess(receivedAck)
}
}

View File

@@ -215,7 +215,13 @@ object OchAutopilotAnalytics {
mStartAutopilotParams[EVENT_PARAM_ORDER_NUMBER] = orderId?:""
RxUtils.disposeSubscribe(timeOutDisposable)
timeOutDisposable = RxUtils.createSubscribe(LOOP_PERIOD_15S) {
triggerStartAutopilotFailureEvent("", "15s后app等待超时", System.currentTimeMillis())
val (sessionId, ackTime) = OchAutoPilotManager.getSessionidAndAcktime()
if(sessionId==-1L||ackTime==-1L){
OchAutoPilotManager.clearGlobalSessionId("sessionId:${sessionId}, ackTime:${ackTime}")
clearStartAutopilotParams() //清空参数数据,防止误传
}else{
triggerStartAutopilotFailureEvent("", "15s后app等待超时", System.currentTimeMillis())
}
LineManager.invokeStartAutopilotTimeOut()
}
}

View File

@@ -1,3 +1,3 @@
package com.mogo.och.bridge.autopilot.autopilot.bean
data class SessionWithTime(val sessionId:Long,val setTime:Long)
data class SessionWithTime(val sessionId:Long,val setTime:Long,var ackTime:Long)