Commit e1c766698b46185f20aec827811aca0f612ee520

Authored by 何征华
1 parent 11420fa5

a,完善了usbjson 基础通信协议;b,增加了固件升级相关协议

通讯协议-教育新版-基站部分usb json.md
1 [TOC] 1 [TOC]
2 -# 一、概述 2 +# 概述
3 ### 通信流程 3 ### 通信流程
4 相对usb 64byte传输,json格式命令数据长度大多都是比较长的。使用常规的一问一答的方式效率较低; 4 相对usb 64byte传输,json格式命令数据长度大多都是比较长的。使用常规的一问一答的方式效率较低;
5 所以设计了如下通信方式: 5 所以设计了如下通信方式:
@@ -10,226 +10,289 @@ @@ -10,226 +10,289 @@
10 - 错误->接收方从step 1开始重发; 10 - 错误->接收方从step 1开始重发;
11 11
12 ### 说明: 12 ### 说明:
13 -为了避免通信失败时重发的代价太大,在step 1中将数据包拆分成N个以1024bytes为单位的小数据包; 13 +- 为了避免通信失败时重发的代价太大,在step 1中将数据包拆分成N个以1024bytes为单位的小数据包;
14 当如上传输出错时,只需重传当前的1024bytes即可; 14 当如上传输出错时,只需重传当前的1024bytes即可;
  15 +- 为了解决通信双方随时都可以主动发起,通信双方在所有数据头上加上明显辨识,用于接收方识别收到的数据是对方主动发送还是ack;
15 16
16 -### 通信机制  
17 -在"通信流程" step 2中传输的是纯数据,接收方会把所有当前收到的数据都当作是纯数据,这样在收发双方通信时就会有如下限制:  
18 - - 发送方必须在完成当前数据传输流程后才可以开始下一个传输流程;  
19 - - 接收方必须在完成当前数据传输流程后才可以主动发起传输。 17 +如下是基站主动发送的数据头
  18 +| **基站发送数据头** | **描述** | **sdk回复数据头** |
  19 +| --- | --- | --- |
  20 +| 0xB1 | 基站主动发送数据信息 | 0xB1 |
  21 +| 0xB2 | 基站主动发送纯数据 | 无需回复 |
  22 +| 0xB3 | 基站主动发送询问 | 0xB3 |
  23 +
  24 +如下是SDK主动发送的数据头
  25 +| **SDK发送数据头** | **描述** | **基站回复数据头** |
  26 +| --- | --- | --- |
  27 +| 0xD1 | SDK主动发送数据信息 | 0xD1 |
  28 +| 0xD2 | SDK主动发送纯数据 | 无需回复 |
  29 +| 0xD3 | SDK主动发送询问 | 0xD3 |
20 30
21 31
22 -# 二,  
23 32
24 -## 1.1 sdk下载多包给基站 33 +# 一, 协议描述
25 34
26 35
27 -### 1.1.1 sdk发送数据信息  
28 -电脑向基站发送: 36 +## 1.1 发送数据信息
  37 +发送方发送数据:(所有非1字节数据都是高字节在前)
29 | **字节** | **标识符** | **描述** | 38 | **字节** | **标识符** | **描述** |
30 | --- | --- | --- | 39 | --- | --- | --- |
31 -| 0-1 | Header | 数据包头:固定0xFF 0x5A |  
32 -| 2-3 | Len | 有效数据长度 |  
33 -| 4 | Direct | 0x01 : sdk主动发起的通信 |  
34 -| 5-6 | com seq | 通信序号 |  
35 -| 7 | BASEID | 指定的基站编号,为0时候不指定 |  
36 -| 8 | type | 1 要下载的数据信息 |  
37 -| 9 | DATA-type | 1:json数据 <br>2:普通数据; |  
38 -| 10-13 | DATA_total| 数据总字节数 高位在前 |  
39 -| 14-17 | total DATA crc32 | 总数据crc32 高位在前|  
40 -| 18 | transfer total | 总传输次数 |  
41 -| 19 | transfer cur | 当前传输次数 |  
42 -| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |  
43 -| 22-25 | This Pack crc32 | 本次要传输的数据crc32 | 40 +| 0 | Header | 数据包头:基站主动发送0xB1;sdk主动发送0xD1 |
  41 +| 1-2 | defualt | |
  42 +| 3-4 | com seq | 通信序号 |
  43 +| 5 | BASEID | 指定的基站编号,为0时候不指定 |
  44 +| 6 | DATA-type | 1:json数据 <br>2:普通数据; |
  45 +| 7-10 | DATA_total| 数据总字节数 |
  46 +| 11-14 | total DATA crc32 | 总数据(DATA_total长度)crc32|
  47 +| 15 | transfer total | 总传输次数 |
  48 +| 16 | transfer cur | 当前传输次数 |
  49 +| 17-18 | This PACK Len |本次要传输的数据包长度 |
  50 +| 19-22 | This Pack crc32 | 本次要传输的数据(This PACK Len长度)crc32 |
44 |default | | | 51 |default | | |
45 |60-63 | crc32 | 此数据包的crc32;从byte0-59共60个字节 | 52 |60-63 | crc32 | 此数据包的crc32;从byte0-59共60个字节 |
46 53
47 -举例:sdk要发送(1024X2 +512 bytes)数据给基站 54 +举例:sdk要发送(1071 * 2 +512 bytes)数据给基站
48 第一个发送单元: 55 第一个发送单元:
49 step1: 56 step1:
50 - 5-6:100  
51 - 10-13 bytes: (1024*2 +512 bytes)  
52 - 14-17 :数据总长度的crc  
53 - 18 : 3  
54 - 19 : 0  
55 - 20-21 : 1024  
56 - 22-25 :1024数据的crc 57 + 3-4:100
  58 + 7-10 bytes: (1071 * 2 +512 bytes)
  59 + 11-14 :数据总长度的crc
  60 + 15 : 3
  61 + 16 : 0
  62 + 17-18 : 1071
  63 + 19-22 :1071数据的crc
57 60-63 : crc 64 60-63 : crc
58 step2: 基站ack 65 step2: 基站ack
59 - step3: sdk发送1024长度数据;64byte*16包; 66 + step3: sdk发送1071长度数据;63byte * 17包;
60 step4: sdk发送询问信息 67 step4: sdk发送询问信息
61 step5: 基站ack 68 step5: 基站ack
62 69
63 第二个发送单元: 70 第二个发送单元:
64 step1: 71 step1:
65 - 5-6:101  
66 - 10-13 bytes: (1024*2 +512 bytes)  
67 - 14-17 :数据总长度的crc  
68 - 18 : 3  
69 - 19 : 1  
70 - 20-21 : 1024  
71 - 22-25 :1024数据的crc 72 + 3-4:100
  73 + 7-10 bytes: (1071 * 2 +512 bytes)
  74 + 11-14 :数据总长度的crc
  75 + 15 : 3
  76 + 16 : 1
  77 + 17-18 : 1071
  78 + 19-22 :1071数据的crc
72 60-63 : crc 79 60-63 : crc
73 step2: 基站ack 80 step2: 基站ack
74 - step3: sdk发送1024长度数据;64byte*16包; 81 + step3: sdk发送1071长度数据;63byte * 17包;
75 step4: sdk发送询问信息 82 step4: sdk发送询问信息
76 step5: 基站ack 83 step5: 基站ack
77 84
78 第三个发送单元: 85 第三个发送单元:
79 step1: 86 step1:
80 - 5-6:102  
81 - 10-13 bytes: (1024*2 +512 bytes)  
82 - 14-17 :数据总长度的crc  
83 - 18 : 3  
84 - 19 : 2  
85 - 20-21 : 512  
86 - 22-25 :512数据的crc  
87 - 60-63 : crc 87 + 3-4:100
  88 + 7-10 bytes: (1071 * 2 +512 bytes)
  89 + 11-14 :数据总长度的crc
  90 + 15 : 3
  91 + 16 : 2
  92 + 17-18 : 512
  93 + 19-22 :512数据的crc
  94 + 60-63 : crc
88 step2: 基站ack 95 step2: 基站ack
89 - step3: sdk发送512长度数据;64byte*8包; 96 + step3: sdk发送512长度数据;63byte * 9包;
90 step4: sdk发送询问信息 97 step4: sdk发送询问信息
91 step5: 基站ack 98 step5: 基站ack
92 99
93 -基站应答: 100 +接收方应答:
94 | **字节** | **标识符** | **描述** | 101 | **字节** | **标识符** | **描述** |
95 | --- | --- | --- | 102 | --- | --- | --- |
96 -| 0-1 | Header | 数据包头:固定0xFF 0x5A |  
97 -| 2-3 | Len | 有效数据长度 |  
98 -| 4 | Direct | 0x01 : sdk主动发起的通信 |  
99 -| 5-6 | com seq | 通信序号 |  
100 -| 7 | BASEID | 指定的基站编号,为0时候不指定 |  
101 -| 8 | type | 1 要下载的数据信息 |  
102 -| 9 | DATA-type | 1:json数据 <br>2:普通数据; |  
103 -| 10-13 | DATA_total| 数据总字节数 高位在前 |  
104 -| 14-17 | total DATA crc32 | 总数据crc32 高位在前|  
105 -| 18 | transfer total | 总传输次数 |  
106 -| 19 | transfer cur | 当前传输次数 |  
107 -| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |  
108 -| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |  
109 -|default | | |  
110 -|60-63 | crc32 | 此数据包的crc32 | 103 +| 0 | Header | 数据包头:sdk应答0xB1;基站应答0xD1 |
  104 +| 1-2 | defualt | |
  105 +| 3-4 | com seq | 通信序号 |
  106 +| 5 | BASEID | 指定的基站编号,为0时候不指定 |
  107 +| 6 | DATA-type | 1:json数据 <br>2:普通数据; |
  108 +| 7-10 | DATA_total| 数据总字节数 |
  109 +| 11-14 | total DATA crc32 | 总数据crc32 |
  110 +| 15 | transfer total | 总传输次数 |
  111 +| 16 | transfer cur | 当前传输次数 |
  112 +| 17-18 | This PACK Len |本次要传输的数据包长度 |
  113 +| 19-22 | This Pack crc32 | 本次要传输的数据crc32 |
111 114
112 -### 1.1.2 sdk连续发送N包纯数据包,基站无需回复  
113 -  
114 -### 1.1.3 sdk发送询问 115 +## 1.2 发送方连续发送N包数据包,接收方无需回复
  116 +每个数据包都带一个字节的数据头:
  117 +- 基站主动发送0xB2;
  118 +- sdk主动发送0xD2
115 119
  120 +## 1.3 发送方发送询问
116 | **字节** | **标识符** | **描述** | 121 | **字节** | **标识符** | **描述** |
117 | --- | --- | --- | 122 | --- | --- | --- |
118 -| 0-1 | Header | 数据包头:固定0xFF 0x5A |  
119 -| 2-3 | Len | 有效数据长度 |  
120 -| 4 | Direct | 0x01 : sdk主动发起的通信 |  
121 -| 5-6 | com seq | 通信序号 |  
122 -| 7 | BASEID | 指定的基站编号,为0时候不指定 |  
123 -| 8 | type | 2 询问基站 |  
124 -| 9 | DATA-type | 1:json数据 <br>2:普通数据; |  
125 -| 10-13 | DATA_total| 数据总字节数 高位在前 |  
126 -| 14-17 | total DATA crc32 | 总数据crc32 高位在前|  
127 -| 18 | transfer total | 总传输次数 |  
128 -| 19 | transfer cur | 当前传输次数 |  
129 -| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |  
130 -| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |  
131 -|default | | |  
132 -|60-63 | crc32 | 此数据包的crc32 | 123 +| 0 | Header | 数据包头:基站主动发送0xB3;sdk主动发送0xD3 |
  124 +| 1-2 | defualt | |
  125 +| 3-4 | com seq | 通信序号 |
  126 +| 5 | BASEID | 指定的基站编号,为0时候不指定 |
  127 +| 6 | DATA-type | 1:json数据 <br>2:普通数据; |
  128 +| 7-10 | DATA_total| 数据总字节数 |
  129 +| 11-14 | total DATA crc32 | 总数据crc32 |
  130 +| 15 | transfer total | 总传输次数 |
  131 +| 16 | transfer cur | 当前传输次数 |
  132 +| 17-18 | This PACK Len |本次要传输的数据包长度 |
  133 +| 19-22 | This Pack crc32 | 本次要传输的数据crc32 |
133 134
134 -基站应答: 135 +接收方应答:
135 | **字节** | **标识符** | **描述** | 136 | **字节** | **标识符** | **描述** |
136 | --- | --- | --- | 137 | --- | --- | --- |
137 -| 0-1 | Header | 数据包头:固定0xFF 0x5A |  
138 -| 2-3 | Len | 有效数据长度 |  
139 -| 4 | Direct | 0x01 : sdk主动发起的通信 |  
140 -| 5-6 | com seq | 通信序号 |  
141 -| 7 | BASEID | 指定的基站编号,为0时候不指定 |  
142 -| 8 | type | 2 询问基站 |  
143 -| 9 | DATA-type | 1:json数据 <br>2:普通数据; |  
144 -| 10-13 | DATA_total| 数据总字节数 高位在前 |  
145 -| 14-17 | total DATA crc32 | 总数据crc32 高位在前|  
146 -| 18 | transfer total | 总传输次数 |  
147 -| 19 | transfer cur | 当前传输次数 |  
148 -| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |  
149 -| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |  
150 -| 26 | result | 1:成功 <br>2:失败; |  
151 -|60-63 | crc32 | 此数据包的crc32 |  
152 -  
153 -  
154 -## 1.2 基站上传多包给SDK  
155 -  
156 -### 1.2.1 sdk发送数据信息  
157 -基站主动发送:  
158 -| **字节** | **标识符** | **描述** |  
159 -| --- | --- | --- |  
160 -| 0-1 | Header | 数据包头:固定0xFF 0x5A |  
161 -| 2-3 | Len | 有效数据长度 |  
162 -| 4 | Direct | 0x81:基站主动发起的通信 |  
163 -| 5-6 | com seq | 通信序号 |  
164 -| 7 | BASEID | 指定的基站编号,为0时候不指定 |  
165 -| 8 | type | 1 要下载的数据信息 |  
166 -| 9 | DATA-type | 1:json数据 <br>2:普通数据; |  
167 -| 10-13 | DATA_total| 数据总字节数 高位在前 |  
168 -| 14-17 | total DATA crc32 | 总数据crc32 高位在前|  
169 -| 18 | transfer total | 总传输次数 |  
170 -| 19 | transfer cur | 当前传输次数 |  
171 -| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |  
172 -| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |  
173 -|default | | |  
174 -|60-63 | crc32 | 此数据包的crc32 | 138 +| 0 | Header | 数据包头:基站主动发送0xB3;sdk主动发送0xD3 |
  139 +| 1-2 | defualt | |
  140 +| 3-4 | com seq | 通信序号 |
  141 +| 5 | BASEID | 指定的基站编号,为0时候不指定 |
  142 +| 6 | DATA-type | 1:json数据 <br>2:普通数据; |
  143 +| 7-10 | DATA_total| 数据总字节数 |
  144 +| 11-14 | total DATA crc32 | 总数据crc32 |
  145 +| 15 | transfer total | 总传输次数 |
  146 +| 16 | transfer cur | 当前传输次数 |
  147 +| 17-18 | This PACK Len |本次要传输的数据包长度 |
  148 +| 19-22 | This Pack crc32 | 本次要传输的数据crc32 |
  149 +| 23 | result | 接收方验证后回复结果:1-成功;2-失败 |
  150 +
  151 +
  152 +# 二, 功能协议
  153 +
  154 +## 2.1 固件升级类协议
  155 +### 2.1.0 固件升级类的流程:
  156 +- step1: 上层软件发送固件升级指令信息:
  157 + - 升级对象(基站,键盘,字库...)
  158 + - 固件字节数
  159 + - 固件crc32
  160 + - 其他
  161 +- step2: 基站回复表示收到命令,开始为固件升级做准备
  162 +- step3: 基站发送数据申请信息:
  163 + - 固件起始位置
  164 + - 固件数据长度
  165 +- step4: 上层软件根据基站申请读取对应数据发送给基站;
  166 + - 固件起始地址
  167 + - 固件数据长度
  168 + - 数据数据
  169 +- 重复step3,step4直到基站获取到全部固件数据
  170 +- step5: 基站发送固件升级完成信息,通知上层可以退出固件升级模式
  171 + - 升级对象
  172 +
  173 +
  174 +### 2.1.1 固件升级协议
  175 +#### 2.1.1.1 setFwUpdateState
  176 +
  177 +- **功能描述**:固件升级
  178 +- **参数说明**
  179 +
  180 +|参数名|类型|限制|是否必填|说明|
  181 +|---|---|---|---|---|
  182 +|fun|string|-|是|指令名称|
  183 +|dataTag|string|-|否|数据包标识,可为空字符串|
  184 +|baseSn|string||是|基站的出厂编码|
  185 +|data|object|-|是|传送参数的对象|
  186 +|+state|string||是|状态<br>"start"-开始升级<br>"stop"-停止升级
  187 +|+partition|string||是|"base_fw" 基站固件 <br> "base_fw_bk" 基站备份固件 <br> "keypad_fw" 键盘固件<br> "front" 字库文件|
  188 +|+file len|uint||是|升级固件文件的大小(字节数),10进制数字|
  189 +|+version|string||是|待升级的基站固件版本|
  190 +|+crc|uint||是|固件CRC校验码,10进制数字|
  191 +<!-- |+time|string||是|时间,yyyyMMddHHmmss|
  192 +|+verCode|string||是|内部主题校验码,时间+固定key加密| -->
  193 +
  194 +- **示例代码**
  195 +```json
  196 +{
  197 + "fun":"setFwUpdateState",
  198 + "dataTag":"1",
  199 + "baseSn":"2024061101",
  200 + "data":{
  201 + "state":"start",
  202 + "partition":"base_fw",
  203 + "file_len":12000,
  204 + "version":"1.0.3",
  205 + "crc":1429319861
  206 + }
  207 +}
  208 +```
  209 +
  210 +#### 2.1.1.2 fEvtFwUpateState
  211 +- **功能描述**:返回升级状态
  212 +- **参数说明**
  213 +
  214 +|参数名|类型|限制|非空|说明|
  215 +|---|---|---|---|---|
  216 +|fun|string|-|是|指令名称|
  217 +|dataTag|string|-|否|数据包标识,可为空字符串|
  218 +|baseSn|string||是|基站的出厂编码|
  219 +|data|object|-|是|传送参数的对象|
  220 +|+state|string||是|状态<br>"start"-开始升级<br>"stop"-停止升级 <br>"complete"-完成升级
  221 +|+msg|string||否|返回的失败原因
  222 +
  223 +- **示例代码**
  224 +```json
  225 +{
  226 + "fun":"fEvtFwUpateState",
  227 + "dataTag":"1",
  228 + "baseSn":"2024061101",
  229 + "data":{
  230 + "state":"start",
  231 + "msg":"error msg"
  232 + }
  233 +}
  234 +```
  235 +
  236 +#### 2.1.1.3 sEvtReqeustFwData
  237 +- **功能描述**:返回升级状态
  238 +- **参数说明**
  239 +
  240 +|参数名|类型|限制|非空|说明|
  241 +|---|---|---|---|---|
  242 +|fun|string|-|是|指令名称|
  243 +|dataTag|string|-|否|数据包标识,可为空字符串|
  244 +|baseSn|string||是|基站的出厂编码|
  245 +|data|object|-|是|传送参数的对象|
  246 +|+offset|uint||是|数据段的起始地址
  247 +|+len|uint||是|数据段长度
  248 +
  249 +- **示例代码**
  250 +```json
  251 +{
  252 + "fun":"sEvtReqeustFwData",
  253 + "dataTag":"1",
  254 + "baseSn":"2024061101",
  255 + "data":{
  256 + "offset":0,
  257 + "len":5
  258 + }
  259 +}
  260 +```
  261 +
  262 +
  263 +#### 2.1.1.4 fwDataInfo
  264 +- **功能描述**:返回升级状态
  265 +- **参数说明**
  266 +
  267 +|参数名|类型|限制|非空|说明|
  268 +|---|---|---|---|---|
  269 +|fun|string|-|是|指令名称|
  270 +|dataTag|string|-|否|数据包标识,可为空字符串|
  271 +|baseSn|string||是|基站的出厂编码|
  272 +|data|object|-|是|传送参数的对象|
  273 +|+offset|uint||是|数据段的起始地址
  274 +|+len|uint||是|数据段长度,指十六进制字节个数
  275 +|+data|string||是|数据段,十六进制字符串
  276 +- **示例代码**
  277 +```json
  278 +{
  279 + "fun":"fwDataInfo",
  280 + "dataTag":"1",
  281 + "baseSn":"2024061101",
  282 + "data":{
  283 + "offset":0,
  284 + "len":5,
  285 + "data": "bc1234ffff"
  286 + }
  287 +}
  288 +```
  289 +
  290 +
  291 +
  292 +
175 293
176 -SDK应答:  
177 -| **字节** | **标识符** | **描述** |  
178 -| --- | --- | --- |  
179 -| 0-1 | Header | 数据包头:固定0xFF 0x5A |  
180 -| 2-3 | Len | 有效数据长度 |  
181 -| 4 | Direct | 0x81:基站主动发起的通信 |  
182 -| 5-6 | com seq | 通信序号 |  
183 -| 7 | BASEID | 指定的基站编号,为0时候不指定 |  
184 -| 8 | type | 1 要下载的数据信息 |  
185 -| 9 | DATA-type | 1:json数据 <br>2:普通数据; |  
186 -| 10-13 | DATA_total| 数据总字节数 高位在前 |  
187 -| 14-17 | total DATA crc32 | 总数据crc32 高位在前|  
188 -| 18 | transfer total | 总传输次数 |  
189 -| 19 | transfer cur | 当前传输次数 |  
190 -| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |  
191 -| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |  
192 -|default | | |  
193 -|60-63 | crc32 | 此数据包的crc32 |  
194 294
195 295
196 -### 1.2.2 基站连续发送N包纯数据包,SDK无需回复  
197 296
198 -### 1.2.3 基站发送询问  
199 297
200 -| **字节** | **标识符** | **描述** |  
201 -| --- | --- | --- |  
202 -| 0-1 | Header | 数据包头:固定0xFF 0x5A |  
203 -| 2-3 | Len | 有效数据长度 |  
204 -| 4 | Direct | 0x81:基站主动发起的通信 |  
205 -| 5-6 | com seq | 通信序号 |  
206 -| 7 | BASEID | 指定的基站编号,为0时候不指定 |  
207 -| 8 | type | 2 询问基站 |  
208 -| 9 | DATA-type | 1:json数据 <br>2:普通数据; |  
209 -| 10-13 | DATA_total| 数据总字节数 高位在前 |  
210 -| 14-17 | total DATA crc32 | 总数据crc32 高位在前|  
211 -| 18 | transfer total | 总传输次数 |  
212 -| 19 | transfer cur | 当前传输次数 |  
213 -| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |  
214 -| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |  
215 -|default | | |  
216 -|60-63 | crc32 | 此数据包的crc32 |  
217 298
218 -基站应答:  
219 -| **字节** | **标识符** | **描述** |  
220 -| --- | --- | --- |  
221 -| 0-1 | Header | 数据包头:固定0xFF 0x5A |  
222 -| 2-3 | Len | 有效数据长度 |  
223 -| 4 | Direct | 0x81:基站主动发起的通信 |  
224 -| 5-6 | com seq | 通信序号 |  
225 -| 7 | BASEID | 指定的基站编号,为0时候不指定 |  
226 -| 8 | type | 2 询问基站 |  
227 -| 9 | DATA-type | 1:json数据 <br>2:普通数据; |  
228 -| 10-13 | DATA_total| 数据总字节数 高位在前 |  
229 -| 14-17 | total DATA crc32 | 总数据crc32 高位在前|  
230 -| 18 | transfer total | 总传输次数 |  
231 -| 19 | transfer cur | 当前传输次数 |  
232 -| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |  
233 -| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |  
234 -| 26 | result | 1:成功 <br>2:失败; |  
235 -|60-63 | crc32 | 此数据包的crc32 |