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 指定答题 正常单体的指定答题