RDTAPIs 帧定义
RDTAPIs 协议的文件传输帧分为三部分:数据头 + 二进制数据 + 数据尾,帧结构固定,需严格按格式填充。
图 1:RDTAPIs 文件传输帧结构示意图
各字段详细定义
-
frmBegin:4字节,起始标识,固定为字符串 "IOTC"(ASCII码:0x49 0x4F 0x54 0x43); -
fileName:64字节,文件名(含扩展名),不足64字节的部分需用0填充,最大支持63字节有效文件名; -
fileSize:4字节,文件总大小(单位:字节),采用大端序存储; -
dataLength:4字节,当前数据包的二进制数据长度(单位:字节),需与实际数据部分长度一致; -
endFlag:1字节,结束标志:1=当前通道最后一个文件的最后一包,其余=非结束包; -
binary data:变长数据,长度为dataLength字节,存储文件二进制数据; -
frmEnd:2字节,帧结束标识,固定为字符串 "GC"(ASCII码:0x47 0x43)。
关键注意事项
1. 字段长度限制:所有文件名相关字段(fileName)最大长度为64字节(含结束符),实际文件名需控制在63字节内,避免溢出;
2. 时间格式:stDateTime 采用 UTC 时间,需确保客户端与设备端时间同步,避免查询时间范围偏差;
3. 多包传输:文件列表数量较多时,需通过 stFileListResp 的 index 和 endflag 拼接完整列表,避免遗漏文件;
4. 结束标志:AVAPIs 和 RDTAPIs 的 endFlag 规则一致,多文件传输时需严格遵守"仅最后一个文件的最后一包置1"的规则;
5. 字段拼写:stChannelInfo 中的iotcChanelId为 SDK 固定定义,实际开发时需直接引用,不可自行修改字段名。
