diff --git a/通讯协议-教育新版-基站部分usb json.md b/通讯协议-教育新版-基站部分usb json.md
index b73efe1..7ac48a6 100644
--- a/通讯协议-教育新版-基站部分usb json.md
+++ b/通讯协议-教育新版-基站部分usb json.md
@@ -155,89 +155,28 @@
# 二, 功能协议
## 2.1 固件升级类协议
+
### 2.1.0 固件升级类的流程:
-- step1: 上层软件发送固件升级指令信息:
+usbjson协议 固件升级类流程:完全沿用现有mqtt模式下的固件升级流程:
+- step1:上层软件发送固件升级指令
- 升级对象(基站,键盘,字库...)
- - 固件字节数
+ - 固件的url地址
- 固件crc32
- - 其他
-- step2: 基站回复表示收到命令,开始为固件升级做准备
-- step3: 基站发送数据申请信息:
- - 固件起始位置
- - 固件数据长度
-- step4: 上层软件根据基站申请读取对应数据发送给基站;
- - 固件起始地址
- - 固件数据长度
- - 数据数据
-- 重复step3,step4直到基站获取到全部固件数据
-- step5: 基站发送固件升级完成信息,通知上层可以退出固件升级模式
- - 升级对象
-
-
-### 2.1.1 固件升级协议
-#### 2.1.1.1 setFwUpdateState
-
-- **功能描述**:固件升级
-- **参数说明**
+usbjson模式下,此处的url 无任何用处;
+- step2: 基站获取文件长度
+ - usbjson 模式下需要补充协议
+- 基站按需获取固件数据段
+ - usbjson模式下需要补充协议
+- 基站报告升级完成
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|baseSn|string||是|基站的出厂编码|
-|data|object|-|是|传送参数的对象|
-|+state|string||是|状态
"start"-开始升级
"stop"-停止升级
-|+partition|string||是|"base_fw" 基站固件
"base_fw_bk" 基站备份固件
"keypad_fw" 键盘固件
"front" 字库文件|
-|+file len|uint||是|升级固件文件的大小(字节数),10进制数字|
-|+version|string||是|待升级的基站固件版本|
-|+crc|uint||是|固件CRC校验码,10进制数字|
-
-- **示例代码**
-```json
-{
- "fun":"setFwUpdateState",
- "dataTag":"1",
- "baseSn":"2024061101",
- "data":{
- "state":"start",
- "partition":"base_fw",
- "file_len":12000,
- "version":"1.0.3",
- "crc":1429319861
- }
-}
-```
-
-#### 2.1.1.2 fEvtFwUpateState
-- **功能描述**:返回升级状态
-- **参数说明**
+
-|参数名|类型|限制|非空|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|baseSn|string||是|基站的出厂编码|
-|data|object|-|是|传送参数的对象|
-|+state|string||是|状态
"start"-开始升级
"stop"-停止升级
"complete"-完成升级
-|+msg|string||否|返回的失败原因
+### 2.1.1 usbjson固件升级补充协议
-- **示例代码**
-```json
-{
- "fun":"fEvtFwUpateState",
- "dataTag":"1",
- "baseSn":"2024061101",
- "data":{
- "state":"start",
- "msg":"error msg"
- }
-}
-```
-#### 2.1.1.3 sEvtReqeustFwData
-- **功能描述**:返回升级状态
+#### 2.1.1.1 sEvtReqeustFwData
+- **功能描述**:申请固件文件数据段信息
- **参数说明**
|参数名|类型|限制|非空|说明|
@@ -246,8 +185,8 @@
|dataTag|string|-|否|数据包标识,可为空字符串|
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+offset|uint||是|数据段的起始地址
-|+len|uint||是|数据段长度
+|+range_start|uint||是|数据段的起始
+|+range_end|uint||是|数据段结束
- **示例代码**
```json
@@ -256,15 +195,15 @@
"dataTag":"1",
"baseSn":"2024061101",
"data":{
- "offset":0,
- "len":5
+ "range_start":0,
+ "range_end":5
}
}
```
-#### 2.1.1.4 fwDataInfo
-- **功能描述**:返回升级状态
+#### 2.1.1.2 fwDataInfo
+- **功能描述**:发送指定数据段信息
- **参数说明**
|参数名|类型|限制|非空|说明|
@@ -273,9 +212,10 @@
|dataTag|string|-|否|数据包标识,可为空字符串|
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+offset|uint||是|数据段的起始地址
-|+len|uint||是|数据段长度,指十六进制字节个数
-|+data|string||是|数据段,十六进制字符串
+|+file_len|uint||是|固件文件总长度,指十进制字节个数
+|+range_start|uint||是|数据段的起始
+|+range_end|uint||是|数据段结束
+|+fw_data|string||是|数据段,base64编码,减少数据长度
- **示例代码**
```json
{
@@ -283,9 +223,10 @@
"dataTag":"1",
"baseSn":"2024061101",
"data":{
- "offset":0,
- "len":5,
- "data": "bc1234ffff"
+ "file_len":15647,
+ "range_start":0,
+ "range_end":5,
+ "fw_data": "bc1234ffff"
}
}
```
diff --git a/通讯协议-教育新版-表决器部分.md b/通讯协议-教育新版-表决器部分.md
index d0d42f4..b76e1c5 100644
--- a/通讯协议-教育新版-表决器部分.md
+++ b/通讯协议-教育新版-表决器部分.md
@@ -2694,6 +2694,14 @@ ACK格式:
| 1 | CMD | 类型
46:键盘授权 踢出授权|
| 1 | LEN | 长度 1 |
| 1 | |
+#### 5.5.2.12 设置键盘离线关机时间
+
+| **字节** | **标识符** | **描述** |
+| --- | --- | --- |
+| 1 | CMD | 类型
47:离线关机时间|
+| 1 | LEN | 长度 2 |
+| 2 | TIME | 关机时间单位 1S
键盘内置最小10S 防止设错|
+
#### 5.5.2.13 指定答题
正常单体的指定答题