This commit is contained in:
weizhihong 2023-11-30 10:59:40 +08:00
commit a13f759c10

View File

@ -37,6 +37,9 @@ type btmCanetClient struct {
remoteIp string remoteIp string
//最近一次车载ATP系统查询帧序号 //最近一次车载ATP系统查询帧序号
atpReqSn byte atpReqSn byte
//btm最近一次接收到atp查询请求的时间
//当BTM超过150ms即3个周期没有收到atq下发的查询帧则清空报文缓冲区
atpReqTime *time.Time
//最近一次车载ATP系统查询帧CRC16校验结果,true-校验通过 //最近一次车载ATP系统查询帧CRC16校验结果,true-校验通过
atpReqCrc16Check bool atpReqCrc16Check bool
//btm系统时间,每次接收到ATP查询请求帧时同步一次时间 //btm系统时间,每次接收到ATP查询请求帧时同步一次时间
@ -160,6 +163,7 @@ func (s *btmCanetClient) handleCanetFrames(cfs []byte) {
// 处理接收的ATP查询请求帧 // 处理接收的ATP查询请求帧
func (s *btmCanetClient) dealWithAptReq(f *message.CanetFrame) { func (s *btmCanetClient) dealWithAptReq(f *message.CanetFrame) {
now := time.Now()
atpReq := &message.AtpRequestFrame{} atpReq := &message.AtpRequestFrame{}
if !atpReq.Decode(f) { if !atpReq.Decode(f) {
slog.Warn("CanetFrame解码成AtpRequestFrame失败", "CanetFrame", f.String()) slog.Warn("CanetFrame解码成AtpRequestFrame失败", "CanetFrame", f.String())
@ -179,6 +183,8 @@ func (s *btmCanetClient) dealWithAptReq(f *message.CanetFrame) {
//ATP 是否要求BTM 重发上一应答器报文 //ATP 是否要求BTM 重发上一应答器报文
isResendRequest := atpReq.ResendRequest == 2 //0b10 isResendRequest := atpReq.ResendRequest == 2 //0b10
s.rspToAtp(isResendRequest) s.rspToAtp(isResendRequest)
//记录atp查询时间
s.atpReqTime = &now
} }
// BTM发送响应给ATP // BTM发送响应给ATP