数据帧协议定义
# 数据帧协议定义
通讯流程 通讯流程/有效通讯
| 上位机 | 播放盒 |
|---|---|
| 1.发送请求消息 | 1.返回指令发送成功状态码 2.返回响应消息 |
通讯流程/无效通讯(如LRC错误)
| 上位机 | 播放盒 |
|---|---|
| 1.发送请求消息 | 1.返回失败状态码 |
数据帧协议格式
协议格式采用面向字节的连接帧,每一帧数据需根据后面的协议定义进行数据封装才能被中控识别。整体封装格式如下:
上位机发送:
<STX><FLAG><DataInfo><ETX><LRC>
设备回应:
<STX><FLAG><ACK><ETX><LRC> 或者<STX><FLAG><NAK><ETX><LRC>
| 字段 | 描述 | 十六进制编码 |
|---|---|---|
| STX | 起始符 | 0x02 |
| FLAG | 标志位 | 串口:0x10、TCP:0x11、UDP:0x12 |
| DataInfo | 数据--- | (中控用以执行的数据) |
| ETX | 结束符 | 0x03 |
| LRC | 纵向冗余校验 | --- |
| ACK | 发送成功 | 0x06 |
| NAK | 发送失败 | 0x15 |
LRC纵向冗余校验
目前发送指令帧盒子没有进行校验,上位机发送可固定为32,盒子回复的帧采用LRC求和校验。
计算规则为对标志位到结束符进行按位异或操作(^),
例如 02 10 34 39 39 30 31 30 03 16
求和校验计算方式为:10^34^39^39^30^31^30^03 = 16
java求和检验代码如下:其中byte数组byteData为回复的数据信息。
