secs协议根据协议栈我们知道有多层协议,如图。
这里我们不讨论secs i 和HSMS的格式,我们只讨论secsii的协议,因为secs ii的报文内容的格式就是sml格式。
secs ii协议的消息报文分为两部分:消息命令字 + 消息体。其中消息体采用的是SML格式,本文对SML格式进行简单讲解,帮助大家了解SML的格式,方便理解和后续的开发。
sml格式有些像xml,都是属于纯文本格式,但与xml又不同,他定义了它自身的语法。例如下面一段报文:
// 命令字
S1F14:
// 消息体 sml 格式
<L[2]
<B[1] 0x00>
<L[0]>
>
.
SML以 <> 作为开始和结束。有自定义类型和元素个数。类型后面跟[],中括号里表示的元素的个数。多个的情况下,是空格间隔即可。字符类型A 的元素需要使用双引号引起来。
元素类型:
L:List 这个可以组织不同类型的元素在一起。可以嵌套List。
例:<L[3] //表示3个元素,
<B[0] 0x00>
<U1[0]>
<L[2]>
<U4[0]>
<A[2] "ok">
>
B:binary 例:<B[2] 0x00 0x01>
U1: 1个字节的整形 例:<U1[2] 20 10>
U2:2个字节的整形 例 :<U2[2] 20 10>
U4:4个字节的整形例 例:<U4[2] 20 10>
A: ASCII码字符 例: <A[5] "hello">
Boolean:布尔类型 例:<Boolean[1] 0>
常用的就这些了,应该把SML格式讲清楚了,如果有其他问题,可以联系邮箱:yujingjiang86@163.com
最后:点赞是美德,关注是缘分,打赏您随意,你的鼓励是我世界善的一部分!