Bittly 在通讯连接接收到数据后,可根据配置的结构体规则对数据进行解析,并支持设置结构体匹配条件。同时支持多种数据类型以及大小端字节序解析。

匹配条件说明:
当接收到的数据按照当前结构体规则解析后:

数据类型用于指定结构体属性的解析方式,对应 C 语言的基本数据类型或字节序规则。
| 数据类型 | 描述 |
|---|---|
U8 |
无符号 8 位整数(unsigned char) |
U16 |
无符号 16 位整数(unsigned short) |
U32 |
无符号 32 位整数(unsigned int) |
U64 |
无符号 64 位整数(unsigned long long) |
I8 |
有符号 8 位整数(signed char) |
I16 |
有符号 16 位整数(signed short) |
I32 |
有符号 32 位整数(signed int) |
I64 |
有符号 64 位整数(signed long long) |
float |
32 位浮点数 |
double |
64 位浮点数 |
字节序(Endian)
例如:
U16LE 表示 无符号 16 位整数,小端字节序I32BE 表示 有符号 32 位整数,大端字节序字符串与字节数组
string — 按指定长度解析为字符串bytes — 按指定长度解析为字节数组示例:
string[10] — 解析 10 个字节为字符串bytes[4] — 解析 4 个字节为字节数组在某些情况下,数据按照指定的数据类型解析完成后,其原始值可能仍需要进一步处理。例如设备返回的温度值为 1234,但实际温度需要将该值除以 100 才能得到最终结果。
为此,可以为属性配置 表达式 对解析结果进行二次计算。
表达式为 JavaScript 表达式,表达式的计算结果将作为该属性的最终解析值。
在表达式中:
$value 表示当前字段解析得到的原始值示例
$value / 100
当原始解析值为 1234 时,最终解析结果为:
12.34
匹配条件用于判断当前数据是否符合该结构体的解析规则。
当 Bittly 接收到数据后,会按照已配置的结构体规则对数据进行解析,并将解析结果填充到对应的属性字段中。解析完成后,再根据配置的匹配条件进行判断,以确定该结构体是否匹配成功。
匹配条件为一个 JavaScript 表达式,当表达式计算结果为 true 时,表示该结构体解析匹配成功;否则认为解析失败,并继续尝试下一条解析规则。
在表达式中可以使用以下方式访问解析结果:
$('属性名')
用于获取结构体中指定字段解析后的值。示例
$('type') === 1
checkPacket($('header'), $('length'))