Commit 2d277fecc2af49c7cbdb88754ba5aa1df8b83d14
1 parent
b0429b70
更新了usbjson 固件升级读写固件数据协议
Showing
1 changed file
with
28 additions
and
87 deletions
通讯协议-教育新版-基站部分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 | ``` |