31 lines
720 B
Go
31 lines
720 B
Go
|
package axle_device
|
||
|
|
||
|
import (
|
||
|
"joylink.club/bj-rtsts-server/third_party/message"
|
||
|
)
|
||
|
|
||
|
//实现rssp通信流程
|
||
|
|
||
|
// 处理接收到的rssp报文
|
||
|
func handleRsspMsg(pack []byte, config *AxleDeviceConfig) {
|
||
|
//报文头校验
|
||
|
head := &message.RsspHead{}
|
||
|
if !head.Parse(pack) { //解析报文头失败
|
||
|
return
|
||
|
}
|
||
|
if !message.RsspHeadMcCheck(head) { //报文类别检测未通过
|
||
|
return
|
||
|
}
|
||
|
if !message.RsspHeadPicCheck(head) { //协议交互类别检测未通过
|
||
|
return
|
||
|
}
|
||
|
if !config.CheckAddress(head.Sa, head.Da) { //校验报文头中源地址和目的地址是否包含在已配置列表中
|
||
|
return
|
||
|
}
|
||
|
//报文尾校验
|
||
|
if !message.RsspPackCrc16Check(pack) { //整个报文crc16校验未通过
|
||
|
return
|
||
|
}
|
||
|
|
||
|
}
|