SECS ii的报文内容的格式就是sml格式
不讨论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>
欢迎讨论,相互学习。
cdtxw@foxmail.com