·、包结构
STX/ETX 包使用如下结构:
[STX][status][type][length][user data...][checksum][ETX]
每个字段固定为一个字节,只有数据区为可变长度(2~255个字节)。
大写的字段为常量字段(STX=0x02, ETX=0x03),小写的为变量字段(除STX, ETX以外的字段)。
length为 user data的长度,范围2~255;
checksum为包的校验和,为所有数据的累加值,但是不包括STX和ETX。
status和length可以为0~255。
STX/ETX 包长度为10~255个字节。包头4个字节,校验和以及包尾各一个字节。
type类型为包类型,即命令标志
其定义如下:
// 包类型
0x10 // 读取状态
0x11 // 设置门限信息
0x12 // 读取门限信息
0x13 // 告警事件
0x14 // 读取时间
0x15 // 设置时间
0x16 // 恢复告警事件信息
0x17 // 读取显示规模
0x18 // 设置显示规模
字段 |
说明 |
值 |
长度 |
取范围值 |
备注 |
STX |
包头 |
0x02 |
1 |
固定值 |
|
status |
包状态 |
0x00 |
1 |
固定值 |
|
type |
包类型 |
0x11 |
1 |
0x10-0xFF |
|
length |
数据区长度 |
20 |
1 |
0-0xFF |
|
数据区 |
控制器地址 |
|
2 |
0-0xFFFF |
|
48V过压值 |
|
3 |
“000”-“999” |
“580”=58.0V | |
48V欠压值 |
|
3 |
“000”-“999” |
“470”=47.0V | |
48V过低压值 |
|
3 |
“000”-“999” |
“435”=43.5V | |
风扇热交换温控 |
|
3 |
“000”-“999” |
035= 35 ℃ 205= -5 ℃ | |
主设备仓制冷 |
|
3 |
“000”-“999” |
000= 0 ℃ 205= -5 ℃ | |
主设备仓制热 |
|
3 |
“000”-“999” |
035= 35 ℃ 205= -5 ℃ | |
checksum |
校验和 |
|
1 |
|
|
ETX |
包尾 |
0x03 |
1 |
固定值 |
|