[8.2.0]
[ack] [没有收到ack 不统计自驾失败]
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user