UDP自定义协议说明

UDP自定义协议

连接地址

       每一种协议的连接服务器地址和端口号都不一样,请转到协议接口参考界面。

序列号

       在平台创建设备时需要一个序列号,该序列号由塔石提供,和TCP协议不同的是,UDP协议的序列号发送方式是和设备数据一起发送,并且处于数据前面。

协议标签

数据头标签

       [H:数据]:“字符型”数据,数据包的包头。

       [HE:数据]:“16进制”数据,不能用字符表示时使用16进制表示。

分隔符标签

       [S:数据]:“字符型”数据,一般为两个数据之间的特殊符号。

       [SE:数据]:“16进制”数据,不能用字符表示时使用16进制表示。

       [SN[长度]:固定长度的分隔符,只解析长度,不解析内容

数据标签

       [D?]:“字符型”的十进制数,长度不固定。需与分隔符配合使用。

       [STR?]:字符串,长度不固定。需与分隔符配合使用。

       [D[长度]]:“字符型”的十进制数,固定字节长度。

       [DE[长度]|ABCD]:“16进制整形”数据,ABCD表示字节顺序,最大4个字节。

       [DEC[长度]|ABCD]:“16进制整形字符串”数据,ABCD表示字节顺序。

       [DF[长度]|ABCD]:“16进制浮点型”数据,ABCD表示字节顺序。

       [GPS]:GPS定位数据,格式(度分):2236.70368,N,11350.37840,E。

结束符标签

       [T:数据]:“字符型”数据,数据包的结尾字符。

       [TE:数据]:“16进制”数据,不能用字符表示时使用16进制表示。

       [CRC16]:CRC16位校验值,“16进制”数据,低位在前,高位在后。

       [CRC8]:CRC8位校验,“16进制”数据

协议举例

“字符型”的十进制数

       协议标签:[H:#]  [D?]  [S:,]  [D?]  [S:,]  [D?]  [T:#]

       上行数据:9K4K40Z0I8J0M85T#55.1,25.2,15.3#

       说明:9K4K40Z0I8J0M85T是序列号,下文雷同。

字符串

       协议标签:[H:@]  [STR?]  [S:,]  [STR?]  [T:@]  

       上行数据:9K4K40Z0I8J0M85T@Holle,world@

“16进制整形”数据

       协议标签:[HE:010306]  [DE[2]|AB]  [DE[2]|AB]  [DE[2]|AB]  [CRC16]  

       上行数据(hex):

       394B344B34305A3049384A304D383554010306000100020003FD74

       说明:394B344B34305A3049384A304D383554是序列号

GPS定位数据

       协议标签: [H:GPS]  [S:,]  [GPS]  [S:,]  [T:$]  

       上行数据:9K4K40Z0I8J0M85TGPS,2236.70368,N,11350.37840,E,$

注意事项:

必须包含数据头标签,并且数据头标签结束符标签必须得在协议的开始和结束位置。

不确定长度的标签(比如[D?])不可以和确定长度的标签(比如[D[长度]])共用,不确定长度的标签必须使用指定内容标签(比如[S:数据])进行分隔。