Commit 78ac8727e2a5bd7a59459effa29f570bb1dc6bb1

Authored by 刘琴
2 parents 56c9c89e 86ac6b45

Merge branch 'master' of http://120.78.57.84/lee/Protocol

通讯协议-教育新版-基站部分usb json.md
@@ -155,89 +155,28 @@ @@ -155,89 +155,28 @@
155 # 二, 功能协议 155 # 二, 功能协议
156 156
157 ## 2.1 固件升级类协议 157 ## 2.1 固件升级类协议
  158 +
158 ### 2.1.0 固件升级类的流程: 159 ### 2.1.0 固件升级类的流程:
159 -- step1: 上层软件发送固件升级指令信息: 160 +usbjson协议 固件升级类流程:完全沿用现有mqtt模式下的固件升级流程:
  161 +- step1:上层软件发送固件升级指令
160 - 升级对象(基站,键盘,字库...) 162 - 升级对象(基站,键盘,字库...)
161 - - 固件字节数 163 + - 固件的url地址
162 - 固件crc32 164 - 固件crc32
163 - - 其他  
164 -- step2: 基站回复表示收到命令,开始为固件升级做准备  
165 -- step3: 基站发送数据申请信息:  
166 - - 固件起始位置  
167 - - 固件数据长度  
168 -- step4: 上层软件根据基站申请读取对应数据发送给基站;  
169 - - 固件起始地址  
170 - - 固件数据长度  
171 - - 数据数据  
172 -- 重复step3,step4直到基站获取到全部固件数据  
173 -- step5: 基站发送固件升级完成信息,通知上层可以退出固件升级模式  
174 - - 升级对象  
175 -  
176 -  
177 -### 2.1.1 固件升级协议  
178 -#### 2.1.1.1 setFwUpdateState  
179 -  
180 -- **功能描述**:固件升级  
181 -- **参数说明** 165 +usbjson模式下,此处的url 无任何用处;
  166 +- step2: 基站获取文件长度
  167 + - usbjson 模式下需要补充协议
  168 +- 基站按需获取固件数据段
  169 + - usbjson模式下需要补充协议
  170 +- 基站报告升级完成
182 171
183 -|参数名|类型|限制|是否必填|说明|  
184 -|---|---|---|---|---|  
185 -|fun|string|-|是|指令名称|  
186 -|dataTag|string|-|否|数据包标识,可为空字符串|  
187 -|baseSn|string||是|基站的出厂编码|  
188 -|data|object|-|是|传送参数的对象|  
189 -|+state|string||是|状态<br>"start"-开始升级<br>"stop"-停止升级  
190 -|+partition|string||是|"base_fw" 基站固件 <br> "base_fw_bk" 基站备份固件 <br> "keypad_fw" 键盘固件<br> "front" 字库文件|  
191 -|+file len|uint||是|升级固件文件的大小(字节数),10进制数字|  
192 -|+version|string||是|待升级的基站固件版本|  
193 -|+crc|uint||是|固件CRC校验码,10进制数字|  
194 -<!-- |+time|string||是|时间,yyyyMMddHHmmss|  
195 -|+verCode|string||是|内部主题校验码,时间+固定key加密| -->  
196 172
197 -- **示例代码**  
198 -```json  
199 -{  
200 - "fun":"setFwUpdateState",  
201 - "dataTag":"1",  
202 - "baseSn":"2024061101",  
203 - "data":{  
204 - "state":"start",  
205 - "partition":"base_fw",  
206 - "file_len":12000,  
207 - "version":"1.0.3",  
208 - "crc":1429319861  
209 - }  
210 -}  
211 -```  
212 -  
213 -#### 2.1.1.2 fEvtFwUpateState  
214 -- **功能描述**:返回升级状态  
215 -- **参数说明** 173 +
216 174
217 -|参数名|类型|限制|非空|说明|  
218 -|---|---|---|---|---|  
219 -|fun|string|-|是|指令名称|  
220 -|dataTag|string|-|否|数据包标识,可为空字符串|  
221 -|baseSn|string||是|基站的出厂编码|  
222 -|data|object|-|是|传送参数的对象|  
223 -|+state|string||是|状态<br>"start"-开始升级<br>"stop"-停止升级 <br>"complete"-完成升级  
224 -|+msg|string||否|返回的失败原因 175 +### 2.1.1 usbjson固件升级补充协议
225 176
226 -- **示例代码**  
227 -```json  
228 -{  
229 - "fun":"fEvtFwUpateState",  
230 - "dataTag":"1",  
231 - "baseSn":"2024061101",  
232 - "data":{  
233 - "state":"start",  
234 - "msg":"error msg"  
235 - }  
236 -}  
237 -```  
238 177
239 -#### 2.1.1.3 sEvtReqeustFwData  
240 -- **功能描述**:返回升级状态 178 +#### 2.1.1.1 sEvtReqeustFwData
  179 +- **功能描述**:申请固件文件数据段信息
241 - **参数说明** 180 - **参数说明**
242 181
243 |参数名|类型|限制|非空|说明| 182 |参数名|类型|限制|非空|说明|
@@ -246,8 +185,8 @@ @@ -246,8 +185,8 @@
246 |dataTag|string|-|否|数据包标识,可为空字符串| 185 |dataTag|string|-|否|数据包标识,可为空字符串|
247 |baseSn|string||是|基站的出厂编码| 186 |baseSn|string||是|基站的出厂编码|
248 |data|object|-|是|传送参数的对象| 187 |data|object|-|是|传送参数的对象|
249 -|+offset|uint||是|数据段的起始地址  
250 -|+len|uint||是|数据段长度 188 +|+range_start|uint||是|数据段的起始
  189 +|+range_end|uint||是|数据段结束
251 190
252 - **示例代码** 191 - **示例代码**
253 ```json 192 ```json
@@ -256,15 +195,15 @@ @@ -256,15 +195,15 @@
256 "dataTag":"1", 195 "dataTag":"1",
257 "baseSn":"2024061101", 196 "baseSn":"2024061101",
258 "data":{ 197 "data":{
259 - "offset":0,  
260 - "len":5 198 + "range_start":0,
  199 + "range_end":5
261 } 200 }
262 } 201 }
263 ``` 202 ```
264 203
265 204
266 -#### 2.1.1.4 fwDataInfo  
267 -- **功能描述**:返回升级状态 205 +#### 2.1.1.2 fwDataInfo
  206 +- **功能描述**:发送指定数据段信息
268 - **参数说明** 207 - **参数说明**
269 208
270 |参数名|类型|限制|非空|说明| 209 |参数名|类型|限制|非空|说明|
@@ -273,9 +212,10 @@ @@ -273,9 +212,10 @@
273 |dataTag|string|-|否|数据包标识,可为空字符串| 212 |dataTag|string|-|否|数据包标识,可为空字符串|
274 |baseSn|string||是|基站的出厂编码| 213 |baseSn|string||是|基站的出厂编码|
275 |data|object|-|是|传送参数的对象| 214 |data|object|-|是|传送参数的对象|
276 -|+offset|uint||是|数据段的起始地址  
277 -|+len|uint||是|数据段长度,指十六进制字节个数  
278 -|+data|string||是|数据段,十六进制字符串 215 +|+file_len|uint||是|固件文件总长度,指十进制字节个数
  216 +|+range_start|uint||是|数据段的起始
  217 +|+range_end|uint||是|数据段结束
  218 +|+fw_data|string||是|数据段,base64编码,减少数据长度
279 - **示例代码** 219 - **示例代码**
280 ```json 220 ```json
281 { 221 {
@@ -283,9 +223,10 @@ @@ -283,9 +223,10 @@
283 "dataTag":"1", 223 "dataTag":"1",
284 "baseSn":"2024061101", 224 "baseSn":"2024061101",
285 "data":{ 225 "data":{
286 - "offset":0,  
287 - "len":5,  
288 - "data": "bc1234ffff" 226 + "file_len":15647,
  227 + "range_start":0,
  228 + "range_end":5,
  229 + "fw_data": "bc1234ffff"
289 } 230 }
290 } 231 }
291 ``` 232 ```
通讯协议-教育新版-表决器部分.md
@@ -2694,6 +2694,14 @@ ACK格式: @@ -2694,6 +2694,14 @@ ACK格式:
2694 | 1 | CMD | 类型<br> 46:键盘授权 踢出授权| 2694 | 1 | CMD | 类型<br> 46:键盘授权 踢出授权|
2695 | 1 | LEN | 长度 1 | 2695 | 1 | LEN | 长度 1 |
2696 | 1 | | 2696 | 1 | |
  2697 +#### 5.5.2.12 设置键盘离线关机时间
  2698 +
  2699 +| **字节** | **标识符** | **描述** |
  2700 +| --- | --- | --- |
  2701 +| 1 | CMD | 类型<br> 47:离线关机时间|
  2702 +| 1 | LEN | 长度 2 |
  2703 +| 2 | TIME | 关机时间单位 1S <br>键盘内置最小10S 防止设错|
  2704 +
2697 #### 5.5.2.13 指定答题 2705 #### 5.5.2.13 指定答题
2698 2706
2699 正常单体的指定答题 2707 正常单体的指定答题