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:数据])进行分隔。