diff --git a/海亮定制.md b/海亮定制.md
index 51382ac..7bba08b 100644
--- a/海亮定制.md
+++ b/海亮定制.md
@@ -781,116 +781,158 @@ ${clinetId} clinetId 是基站编号,为替换字符串。
### 基站升级
-
#### 开始升级
-
-| 主题 | /client/${client}/operate | 备注 |
-| --- | --- | --- |
-| { "i":17, "m":{ "url":"", "version":"", "CRC":"" }} | url:升级包地址 version:版本号CRC:CRC-32校验码 |
+主题: /client/${client}/operate
+指令内容:
+```json
+{
+ "i": 17,
+ "en": "12342",
+ "m": {
+ "url": "",
+ "version": "",
+ "CRC": ""
+ }
+}
+```
+| 名词 | 备注 |
+| --- | --- |
+| i = 17 | 基站升级 |
+| en |序号 |
+| url |固件包地址,基站能访问到的路径 |
+| version |新固件的版本 |
+| CRC |新关键计算的CRC |
+|||
#### 升级进度报告
-
-| 主题 | /client/${client}/report | 备注 |
-| --- | --- | --- |
-| { "i":18, "m":{ "cId":"123456", "percent":0, "status":0 }} | cId:客户端设备ID percent:升级进度,0-100status:升级状态信息,0:未开始;1:升级中;2:升级成功;4固件版本号错误;5:不在升级名单内;6:升级指令错误;\>127:升级中的错误码。 |
-
+主题: /client/${client}/report
+指令内容:
+```json
+{
+ "i": 18,
+ "m": {
+ "cId": "123456",
+ "percent": 0,
+ "status": 0
+ }
+}
+```
+| 名词 | 备注 |
+| --- | --- |
+| i = 18 | 升级进度报告 |
+| cId |基站编号 |
+| percent |升级百分比 |
+| status |升级状态信息。
0:未开始
1:升级中
2:升级成功
4固件版本号错误
5:不在升级名单内
6:升级指令错误
\>127:升级中的错误码。 |
+|||
### 键盘升级
-
#### 开始升级
-
-| 主题 | /client/${client}/operate | 备注 |
-| --- | --- | --- |
-| { "i":28, "m":{ "url":"", "version":"", "CRC":"" }} | url:升级包地址 version:版本号CRC:CRC-32校验码 |
-
+主题: /client/${client}/operate
+指令内容:
+```json
+{
+ "i": 28,
+ "m": {
+ "url": "",
+ "version": "",
+ "CRC": ""
+ }
+}
+```
+| 名词 | 备注 |
+| --- | --- |
+| i = 28 | 键盘升级 |
+| url |固件包地址,基站能访问到的路径 |
+| version |新固件的版本号 |
+| CRC |新关键计算的CRC |
+|||
#### 升级进度报告
+主题: /client/${client}/report
+指令内容:
+```json
+{
+ "i": 29,
+ "m": {
+ "cId": "123456",
+ "percent": 0,
+ "status": 0
+ }
+}
+```
+| 名词 | 备注 |
+| --- | --- |
+| i = 18 | 升级进度报告 |
+| cId |基站编号 |
+| percent |升级百分比 |
+| status |升级状态信息。
0:未开始
1:升级中
2:升级成功
4固件版本号错误
5:不在升级名单内
6:升级指令错误
\>127:升级中的错误码。 |
+|||
-| 主题 | /client/${client}/report | 备注 |
-| --- | --- | --- |
-| { "i":29, "m":{ "cId":"123456", "percent":0, "status":0 }} | cId:客户端设备ID percent:升级进度,0-100 status:升级状态信息, 0:未开始; 1:升级中; 2:升级成功; 4固件版本号错误; 5:不在升级名单内;6:升级指令错误;\>127:升级中的错误码。 |
-
-
-### 刷卡事件
-
-由基站发给应用程序,应用需要订阅主题
-
-| 主题 | /client/${clientId}/card/swipe | 备注 |
-| --- | --- | --- |
-| { "i":50, "m":[{ "c":"12345", "el":0.75, "t":1626016299 }]} | i = 50 刷卡事件答题器编号和刷卡时间 |
-
-
-### 指纹事件
-
-由基站发给应用程序,应用需要订阅主题
-
-| 主题 | /client/${clientId}/card/fingerprint | 备注 |
-| --- | --- | --- |
-| { "i":51, "m":[{ "c":"12345", "el":0.75, "t":1626016299 }]} | i = 51指纹事件答题器编号和刷卡时间 |
-
-
-### 考勤
-
-
-#### 打开考勤功能
-
-应用程序发送给基站
-
-| 主题 | /lesson/class/${clinetId}/receive | 备注 |
-| --- | --- | --- |
-| { "i":6} | i = 6 开启考勤功能 |
-
-
-#### 关闭考勤功能
-
-应用程序发送给基站
-
-| 主题 | /lesson/class/${clinetId}/receive | 备注 |
-| --- | --- | --- |
-| { "i":7} | i = 7 关闭考勤功能 |
-
-
-#### 设置考勤上传频率
-
-应用程序发送给基站
-
-| 主题 | /lesson/class/${clinetId}/receive | 备注 |
-| --- | --- | --- |
-| { "i":8, "m":30} | i = 8 设置考勤频率m = 30 表示频率率为30秒采集一次 |
-
-
-#### 上报考勤数据
-
-| 主题 | /lesson/class/${clientId}/attend | 备注 |
-| --- | --- | --- |
-| { "i":9, "m":[{ "c":"12345", "t":1626016299 }], "total":4, "current":1} | 内容为答题器序号和时间戳, total为本次上报的总的传输包数,current为当前传输包序号。 |
-
-
### 文本预设
-
#### 文本设置
+主题: /client/${client}/operate
+指令内容:
+```json
+{
+ "i": 61,
+ "en": "123552",
+ "sn": ["12345", "56789"],
+ "m": [{
+ "cmd": 81,
+ "text": "hex:"
+ }]
+}
+```
+| 名词 | 备注 |
+| --- | --- |
+| i = 18 | 升级进度报告 |
+| sn |键盘列表 |
+| cmd |下发的命令
4 第二行文本
81 单选
82 多选
83 数字
84 判断
85 自判题判断
87 清除 |
+| text |标题信息,以hex:开头添加的内容 内容为GBK的hex编码 |
+|||
+
+```java
+ public static String bytesToHexString(byte[] src) {
+ StringBuilder stringBuilder = new StringBuilder("");
+ if (src == null || src.length <= 0) {
+ return null;
+ }
+ for (int i = 0; i < src.length; i++) {
+ int v = src[i] & 0xFF;
+ String hv = Integer.toHexString(v);
+ if (hv.length() < 2) {
+ stringBuilder.append(0);
+ }
+ stringBuilder.append(hv);
+ stringBuilder.append("");
+ }
+ return stringBuilder.toString();
+}
+```
-| 主题 | /client/${client}/operate | 备注 |
-| --- | --- | --- |
-| { "i":61, "en":"123552", "sn":["12345","56789"], "m":[{ "cmd":81, "text":"",}]} | Cmd:对应测验题显示 1 姓名 2 积分 3 81 单选 82 多选 83 数字 84 判断 85 自判题判断 86 自判题数字 87 清除 Text:文本预设内容,最长不超过8个汉字。 sn 键盘列表
- |
#### 设置返回
-
-| 主题 | /client/${client}/report | 备注 |
-| --- | --- | --- |
-| { "i":61, "en":"123552", "m":[{ "cmd":81, "success":0, "sn":["12345","56789"]}]} | Cmd:对应测验题显示 81单选 82 多选 83 数字 84 判断 85 自判题判断 86 自判题数字 87 清除Text:文本预设内容,最长不超过8个汉字。 |
-
-
-### 学生卡信息上报
-
-主题:/client/${client}/report
-
-| 主题 | /client/${client}/report | 备注 |
-| --- | --- | --- |
-| { "i":32, "m":[{ "c":"1873373905", "cv":"0.2.2", "hw":"67.0", "t":1638865040 }] }
- | 消息格式:卡初始化组网的时候会上报一次 c 键盘编号 t 时间 hw 硬件版本号cv 软件版本号 |
\ No newline at end of file
+主题: /client/${client}/report
+指令内容:
+```json
+{
+ "i": 61,
+ "en": "123552",
+ "sn": ["12345", "56789"],
+ "m": [{
+ "cmd": 81,
+ "success": 0
+ }]
+}
+```
+| 名词 | 备注 |
+| --- | --- |
+| i = 61 | 升级进度报告 |
+| sn |键盘列表 |
+| cmd |下发的命令
4 第二行文本
81 单选
82 多选
83 数字
84 判断
85 自判题判断
87 清除 |
+| success | 是否成功。
0 表示成功
非0 表示失败 -1失败 |
+|||