diff --git a/通讯协议-平台化-应用部分[内部].md b/通讯协议-平台化-应用部分[内部].md
index 97234bb..d63331a 100644
--- a/通讯协议-平台化-应用部分[内部].md
+++ b/通讯协议-平台化-应用部分[内部].md
@@ -32,7 +32,7 @@ SunVote 二次开发
通讯协议
-Ver 1.0.3
+Ver 1.0.4
@@ -67,8 +67,9 @@ Ver 1.0.3
| 文档版本 | 日期 | 作者 | 版本说明 |
|---|---|---|---|
|1.0.1| 2025年3月24日|刘琴|1. 建立版本|
-|1.0.2| 2025年4月24日|刘琴|1. 修改fEvtKpOnlineMsg返回为数组形式
2. 增加内部指令stopBsUpdate、stopFontLibUpdate,返回状态增加 3 - 收到停止指令|
+|1.0.2| 2025年4月24日|刘琴|1. 修改fEvtKpOnlineMsg返回为数组形式
2. 增加内部指令stopBsUpdate、stopFontLibUpdate,返回状态增加 3: 收到停止指令|
|1.0.3| 2025年5月20日|刘琴|1. 增加内部指令组呼开关读取和设置
2. 增加内置状态语下发可指定键盘|
+|1.0.4| 2025年5月26日|刘琴|1. 增加待机实时反馈的反馈类型
2. 增加待机实时反馈的按键内容自定义和清除
3. 增加键盘离线关机时间等级设置(内部指令)
4. 键盘升级增加静默升级选项,增加退出静默升级指令(内部指令)
5. 增加自定义测验题型名称的主观题录分|
@@ -102,21 +103,8 @@ Ver 1.0.3
## Websocket方式
-WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口发送接收数据即可。应用程序发送至基站约定为发送指令,基站返回数据约定为返回事件。
-通过SDK连接基站时,需先初始化SDK,再与SDK建立WebSocket连接。
-**init() 初始化SDK**
-
-|参数名|类型|限制|非空|说明|
-|-----|-----|-----|-----|-----|
-|ip|string|-|是|连接的服务器ip|
-|port|int|-|是|服务器的端口|
-|authCode|string|-|是|授权码,设置一个厂家通用授权码,客户获取授权码分系列设置ARS\CRS级别,授权码为加密形式,SDK解密后根据授权码类型确定接口授权范围|
-
-- **示例代码**
-```C#
- SunVoteSdk sdk = new SunVoteSdk();
- sdk.init("127.0.0.1", 9004, "1234");
-```
+WebSocket方式应用与SDK建立长连接后,通过WebSocket接口发送接收数据即可。应用程序发送至SDK约定为发送指令,SDK返回数据约定为返回事件。
+通过SDK连接基站时,需先启动SDK,再与SDK建立WebSocket连接。
## 指令说明
|指令功能标识 |说明 |约束|
@@ -141,7 +129,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
{
"fun":"xxx",
"dataTag":"xxx",
- "baseSn":"xxxxxxxxx", //MQTT方式连接时,主题中已有baseSN,此字段可不传
+ "baseSn":"xxxxxxxxx", //MQTT方式连接时,主题中已有baseSN,此参数可不传
"data":{
//内容
}
@@ -153,6 +141,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|fun| 指令或事件名称||
|dataTag| 数据标签,用于对应收发数据|长度不超过128个字符,可以为字母数字下划线"_"的组合,区分大小写|
|data| 数据内容|对象或者数组,可为空|
+|baseSn| 基站SN|基站编码,单基站连接时可为空字符串代表是当前基站
网络基站模式下可以不传此参数,如传入baseSn与当前基站不匹配,基站会返回错误信息|
注意:基站接收指令数据单次不超过2K长度,在指定键盘发送指令时,如果指令长度超出限制,建议将指令进行拆分,分次发送,如果是所有键盘执行的指令,可将keySns设为空数组不使用指定键盘的模式
@@ -228,6 +217,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
||设置键盘长距考勤状态(内)|[setBsKpRFIDState](#setbskprfidstate)|[fEvtBsKpRFIDState](#fevtbskprfidstate)|
|键盘统一设置 - 键盘休眠|设置键盘休眠等级(内)|[setBsKpSleepLevel](#setbskpsleeplevel)|[fEvtBsKpSleepLevel](#fevtbskpsleeplevel)|
||获取键盘休眠等级(内)|[getBsKpSleepLevel](#getbskpsleeplevel)|[fEvtBsKpSleepLevel](#fevtbskpsleeplevel)|
+|键盘统一设置 - 键盘离线关机|设置键盘离线关机等级(内)|[setBsKpPowerOffLevel](#setbskppowerofflevel)|[fEvtBsKpPowerOffLevel](#fevtbskppowerofflevel)|
+||获取键盘离线关机等级(内)|[getBsKpPowerOffLevel](#getbskppowerofflevel)|[fEvtBsKpPowerOffLevel](#fevtbskppowerofflevel)|
||设置键盘暂停休眠状态(内)|[setBsKpPauseSleep](#setbskppausesleep)|[fEvtBsKpPauseSleep](#fevtbskppausesleep)|
||获取键盘暂停休眠状态(内)|[getBsKpPauseSleep](#getbskppausesleep)|[fEvtBsKpPauseSleep](#fevtbskppausesleep)|
|配对模式 - 快速配对|启动基站快速配对|[startBsFastPair](#startbsfastpair)|[sEvtStateCode](#sevtstatecode)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
@@ -267,6 +258,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|维护功能 - 遥控功能|遥控键盘休眠|[remoteKpSleep](#remotekpsleep)|[sEvtStateCode](#sevtstatecode)|
|维护功能 - 键盘升级|启动键盘无线升级(内)|[startKpFWUpdate](#startkpfwupdate)|[sEvtStateCode](#sevtstatecode)
[fEvtKpFWUpdateState](#fevtkpfwupdatestate)
[fEvtKpUpdateProgress](#fevtkpupdateprogress)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
||停止键盘无线升级(内)|[stopKpFWUpdate](#stopkpfwupdate)|[sEvtStateCode](#sevtstatecode)
[fEvtKpFWUpdateState](#fevtkpfwupdatestate)|
+||退出键盘静默升级(内)|[exitKpSilentUpdate](#exitkpsilentupdate)|[sEvtStateCode](#sevtstatecode)|
|维护功能 - 恢复出厂|恢复键盘出厂设置|[resetKpDefault](#resetkpdefault)|[sEvtStateCode](#sevtstatecode)|
### 绑定
|功能归类|功能|API指令|指令事件|
@@ -297,6 +289,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|短消息|发送短消息|[sendKpMsg](#sendkpmsg)|[sEvtStateCode](#sevtstatecode)
[fEvtKpMsg](#fevtkpmsg)|
|待机实时反馈|设置待机实时反馈状态|[setKpStbResponse](#setkpstbresponse)|[fEvtKpStbResponse](#fevtkpstbresponse)
[sEvtKpRtFeedback](#sevtkprtfeedback)
[sEvtKpHandUp](#sevtkphandup)|
||获取待机实时反馈状态|[getKpStbResponse](#getkpstbresponse)|[fEvtKpStbResponse](#fevtkpstbresponse)|
+||自定义反馈按键内容|[setKpStbKeyInfo](#setkpstbkeyinfo)|[sEvtStateCode](#sevtstatecode)
[fEvtKpStbKeyInfo](#fevtkpstbkeyinfo)|
+||清除自定义反馈按键内容|[clearKpStbKeyInfo](#clearkpstbkeyinfo)|[sEvtStateCode](#sevtstatecode)
[fEvtClearKpStbKeyInfo](#fevtclearkpstbkeyinfo)|
### 在线测验
|功能归类|功能|API指令|指令事件|
|---|---|---|---|
@@ -464,9 +458,10 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
+
## 公共事件
### sEvtBsConnectState
-- **主题**: /basestation/{baseSN}/receive (MQTT连接方式)
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:基站连接成功时返回基站型号和基站SN,基站从已连接状态断开返回连接断开
- **参数说明**
@@ -490,8 +485,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"baseSn":"2024061101",
"data":{
"state":1,
- "baseModel":218,
- "modelName":"B200",
+ "baseModel":229,
+ "modelName":"BS200",
"version":"1.0.3"
}
}
@@ -749,7 +744,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|10003|下发数据包超长|
|20001|基站未连接|
|20002|功能不支持|
-|20003|基站SN格式不正确|
+|20003|基站SN格式不正确,或指定基站SN与当前基站SN不符|
|20004|参数错误|
|20005|dataTag错误|
|20006|键盘SN错误|
@@ -803,11 +798,13 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|固定指令名称|
+|baseSn|string||是|基站的出厂编码|
|dataTag|string|-|否|数据包标识|
- **示例代码**
```json
{
"fun":"getBsConnectState",
+ "baseSn":"2024061101",
"dataTag":"1"
}
```
@@ -839,8 +836,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"dataTag":"1",
"baseSn":"2024061101",
"data":{
- "baseModel":218,
- "modelName":"B200",
+ "baseModel":229,
+ "modelName":"BS200",
"version":"1.0.3",
"baseSN":"2024041401"
}
@@ -893,8 +890,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string|数字|是|设置的基站SN,长度为10位数字|
-
+
- **示例代码**
```json
@@ -981,8 +977,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|设置的基站品牌码|
-
+
- **示例代码**
```json
@@ -1180,8 +1175,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|baseSn|string||是|基站的出厂编码|
|data|object|-|否|传送参数的对象|
|+value|string|-|否|设置的基站配对码,8位数字|
-
+
- **示例代码**
```json
@@ -1229,8 +1223,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|baseSn|string||是|基站的出厂编码|
|data|object|-|否|传送参数的对象|
|+value|string|-|否|设置的基站组呼开关状态
0-关闭组呼
1-开启组呼|
-
+
- **示例代码**
```json
@@ -1546,7 +1539,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|否|数据包标识,可为空字符串|
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+value|string||是|设置的基站SSID,最长12字符|
+|+value|string||是|设置的基站SSID,最长12字符
注:自定义了内置在线状态语,则键盘不显示基站名称|
- **示例代码**
```json
@@ -1957,6 +1950,51 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
+##### getBsKpPowerOffLevel
+- **主题**:/manage/{baseSN}/send
+- **功能描述**:获取键盘离线后关机时间等级
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+
+- **示例代码**
+```json
+{
+ "fun":"getBsKpPowerOffLevel",
+ "dataTag":"1",
+ "baseSn":"2024061101"
+}
+```
+
+##### setBsKpPowerOffLevel
+- **主题**:/manage/{baseSN}/send
+- **功能描述**:设置键盘离线后关机时间等级
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|object|-|是|传送参数的对象|
+|+value|string||是|设置键盘离线后关机时间等级
0-30秒
1-1分钟
2-5分钟|
+
+- **示例代码**
+```json
+{
+ "fun":"setBsKpPowerOffLevel",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data":{
+ "value":"1"
+ }
+}
+```
+
##### setBsKpPauseSleep
- **主题**:/manage/{baseSN}/send
- **功能描述**:设置键盘暂停休眠是否开启
注意:请谨慎使用本功能,务必在相关测试或功能完成后关闭,否则可能会导致键盘异常耗电
设置单次生效,基站拔插后复位成关闭状态
@@ -2132,6 +2170,31 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
+##### fEvtBsKpPowerOffLevel
+- **主题**: /manage/{baseSN}/receive
+- **功能描述**:返回键盘离线后关机时间等级
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|object|-|是|传送参数的对象|
+|+value|string||是|键盘休眠的时间等级
0-30秒
1-1分钟
2-5分钟|
+
+- **示例代码**
+```json
+{
+ "fun":"fEvtBsKpPowerOffLevel",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data":{
+ "value":"1"
+ }
+}
+```
+
##### fEvtBsKpPauseSleep
- **主题**: /manage/{baseSN}/receive
- **功能描述**:返回暂停键盘休眠开启状态
@@ -2870,8 +2933,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|+url|string||是|待升级的固件地址,可访问的网络url
直连基站为本地的文件路径|
|+version|string||是|待升级的基站固件版本|
|+crc|uint||是|固件CRC校验码,10进制数字|
-
+
- **示例代码**
```json
@@ -2899,8 +2961,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|否|数据包标识,可为空字符串|
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-
+
- **示例代码**
```json
@@ -2922,12 +2983,11 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|否|数据包标识,可为空字符串|
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+partition|int||是|存储区域
1-备份区
2-更新区|
+|+partition|int||是|存储区域
2-更新区|
|+url|string||是|待下载的字库地址,可访问的网络url
直连基站为本地的文件路径|
|+version|string||是|待升级的字库版本|
|+crc|int||是|字库CRC校验码,10进制数字|
-
+
- **示例代码**
```json
@@ -2954,8 +3014,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|否|数据包标识,可为空字符串|
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-
+
- **示例代码**
```json
@@ -3384,7 +3443,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|baseSn|string||是|基站的出厂编码|
|data|array|-|否|传送参数的对象数组|
|++keySn|string||是|键盘SN,广播下发则返回空字符串|
-|++state|string||是|设置状态语是否成功
0 - 成功
1 - 失败|
+|++state|string||是|设置状态语是否成功
0 - 成功
1 - 失败
2 - 参数错误|
- **示例代码**
```json
@@ -3586,12 +3645,12 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|否|数据包标识,可为空字符串|
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+partition|int||是|存储区域
1-备份区
2-更新区|
+|+partition|int||是|存储区域
2-更新区|
|+url|string||是|待升级的固件地址,可访问的网络url
直连基站为本地的文件路径|
|+version|string||是|待升级的固件版本号|
-|+crc|uint||是|固件CRC校验码,10进制数字|
-
+|+crc|uint||是|固件CRC校验码,10进制数字,直连基站可传0|
+|+mode|int||是|升级模式,不传此字段默认为普通升级
0-普通升级(默认)
1-静默升级|
+
- **示例代码**
```json
@@ -3618,8 +3677,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|否|数据包标识,可为空字符串|
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-
+
- **示例代码**
```json
@@ -3629,6 +3687,28 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"baseSn":"2024061101"
}
```
+
+##### exitKpSilentUpdate
+- **主题**:/manage/{baseSN}/send
+- **功能描述**: 退出键盘静默升级
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+
+
+- **示例代码**
+```json
+{
+ "fun":"exitKpSilentUpdate",
+ "dataTag":"1",
+ "baseSn":"2024061101"
+}
+```
+
##### resetKpDefault
- **主题**:/manage/{baseSN}/send
- **功能描述**:恢复键盘出厂设置
@@ -3638,15 +3718,15 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-
+|baseSn|string||是|基站的出厂编码|
+
- **示例代码**
```json
{
"fun":"resetKpDefault",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
@@ -3655,7 +3735,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
##### [sEvtStateCode](#sevtstatecode)
返回指令的接收状态
-注意:升级指令的接收状态需从**主题: /manage/{baseSN}/receive** 返回
+注意:管理指令的接收状态需从**主题: /manage/{baseSN}/receive** 返回
##### fEvtKpFWUpdateState
- **主题**: /manage/{baseSN}/receive
@@ -3819,7 +3899,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|否|数据包标识,可为空字符串|
|baseSn|string||是|基站的出厂编码|
|data|object|-|否|传送参数的对象|
-|+state|string||是|设置的绑定信息是否成功
0 - 成功
1 - 失败|
+|+state|string||是|设置的绑定信息是否成功
0 - 成功
1 - 失败
2 - 参数错误|
- **示例代码**
@@ -3847,7 +3927,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|否|数据包标识,可为空字符串|
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传递参数的对象|
-|+mode|int|-|是|签到模式
1-按键签到,可指定按键
2-PIN码签到,可指定PIN码长度
3-指纹签到(暂不支持)|
+|+mode|int|-|是|签到模式
1-按键签到,可指定按键
2-PIN码签到,可指定PIN码长度|
|+allowModify |int|-|是 | 修改模式
0-不可修改
1-可以修改(默认值)|
|+pinLen |int|-|是| 可输入pin码的最大长度 1≤N≤14 |
|+keyValue |int|-|是 | 指定按键键值
0: 未指定(OK键签到)
1-9: 按键1-9
10: 按键0
11: 上键
12: 下键
13: OK键
14: ESC键
15: Menu键 |
@@ -3881,23 +3961,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
-
##### [stopKpVote](#stopkpvote)
停止同步签到
@@ -3999,7 +4063,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值|
-|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
+|++keyTime|double||是|答题时间,从启动开始计算,单位毫秒|
|++voltage|double||是|键盘电量|
|++retryCount|int||是|键盘提交数据的重发次数|
@@ -4013,12 +4077,12 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"data": [{
"keySn": "1234567890",
"keyValue":"1004",
- "keyTime":30.2
+ "keyTime":3300
},
{
"keySn": "1234567891",
"keyValue":"1003",
- "keyTime":32.5
+ "keyTime":3320
}
]
}
@@ -4088,24 +4152,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
-
##### [stopKpVote](#stopkpvote)
停止判断题答题
@@ -4127,7 +4174,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值
1-对
2-错|
-|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
+|++keyTime|double||是|答题时间,从启动开始计算,单位毫秒|
|++voltage|double||是|键盘电量|
|++retryCount|int||是|键盘提交数据的重发次数|
@@ -4141,7 +4188,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"data": [{
"keySn": "1234567890",
"keyValue":"1",
- "keyTime":30.2
+ "keyTime":2300
}
]
}
@@ -4189,24 +4236,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
-
##### [stopKpVote](#stopkpvote)
停止选择题答题
@@ -4227,7 +4257,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值|
-|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
+|++keyTime|double||是|答题时间,从启动开始计算,单位毫秒|
|++voltage|double||是|键盘电量|
|++retryCount|int||是|键盘提交数据的重发次数|
@@ -4241,7 +4271,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"data": [{
"keySn": "1234567890",
"keyValue":"A",
- "keyTime":3.2
+ "keyTime":2230
}]
}
```
@@ -4286,24 +4316,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
-
##### [stopKpVote](#stopkpvote)
停止数字题答题
@@ -4324,7 +4337,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值|
-|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
+|++keyTime|double||是|答题时间,从启动开始计算,单位毫秒|
|++voltage|double||是|键盘电量|
|++retryCount|int||是|键盘提交数据的重发次数|
@@ -4338,7 +4351,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"data":[{
"keySn": "1234567890",
"keyValue":"10",
- "keyTime":3.2
+ "keyTime":2230
}]
}
```
@@ -4376,24 +4389,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
-
##### [stopKpVote](#stopkpvote)
停止抢答
@@ -4415,7 +4411,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值|
-|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
+|++keyTime|double||是|答题时间,从启动开始计算,单位毫秒|
|++voltage|double||是|键盘电量|
|++retryCount|int||是|键盘提交数据的重发次数|
@@ -4429,7 +4425,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"data": [{
"keySn": "1234567890",
"keyValue":"1",
- "keyTime":3.2
+ "keyTime":2230
}]
}
```
@@ -4465,23 +4461,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
-
##### [stopKpVote](#stopkpvote)
停止文本题答题
@@ -4503,7 +4483,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值|
-|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
+|++keyTime|double||是|答题时间,从启动开始计算,单位毫秒|
- **示例代码**
```json
@@ -4514,7 +4494,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"data": [{
"keySn": "1234567890",
"keyValue":"hello",
- "keyTime":3.2
+ "keyTime":3260
}]
}
```
@@ -4627,7 +4607,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+state|int||是|启用待机实时反馈
0-不启用
1-启用|
-|+mode|int||是|启动待机反馈类型,state=1时有效
0-举手
1-指定按键反馈|
+|+mode|int||是|启动待机反馈类型,state=1时有效
0- 举手
1- 指定按键反馈
2- 字母模式
3- 数字模式
4- 菜单模式|
|+keys|int||是|有效按键数量,state=1且mode=1时有效, 范围1-10|
- **示例代码**
@@ -4637,6 +4617,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"fun":"setKpStbResponse",
"dataTag":"1",
"baseSn":"2024061101",
+
"data":{
"state":1,
"mode":0
@@ -4685,7 +4666,86 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
+##### setKpStbKeyInfo
+- **主题**:/client/{baseSN}/send
+- **功能描述**:设置自定义按键内容,键盘需在线才能接收成功。
设置完成后实时反馈按键显示自定义的内容。
按键内容无变化时无需重复下发
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|object|-|是|传送参数的对象数组,不可为空|
+|+keySns|array||是|需要设置标题的键盘SN数组,为空代表全部在线键盘
注意:指定键盘下发才有单个键盘下发是否成功的事件,全部在线键盘下发只有统一回复事件|
+|+key|int||是|需设置自定义内容的按键,可设置1-10, 1-9代表键盘1-9键, 10代表 J/0 键|
+|+info|string||是|设置的自定义内容,长度不大于15个字符|
+
+
+- **示例代码**
+```json
+//指定下发
+{
+ "fun":"setKpStbKeyInfo",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data": {
+ "keySns": ["1234567890","1234567891"],
+ "key":1,
+ "info": "听懂了"
+ }
+}
+
+//统一下发
+{
+ "fun":"setKpStbKeyInfo",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data": {
+ "keySns": [],
+ "key":2,
+ "info": "不太懂"
+ }
+}
+```
+
+##### clearKpStbKeyInfo
+- **主题**:/client/{baseSN}/send
+- **功能描述**:清除键盘待机实时反馈中的自定义按键内容
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|object|-|是|传送参数的对象数组|
+|+key|int||是|需清除自定义内容的按键
0 : 所有按键自定义内容
1-10 : 1-9代表键盘1-9键, 10代表 J/0 键|
+|+keySns|array||否|需要清除自定义按键内容的键盘SN数组,
空数组表示清空所有键盘|
+
+- **示例代码**
+```json
+{
+ "fun":"clearKpStbKeyInfo",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data": {
+ "key":0,
+ "keySns":[]
+ }
+}
+```
+
#### 事件
+##### [sEvtKpRtFeedback](#sevtkprtfeedback)
+返回待机时键盘返回的按键值
+
+##### [sEvtKpHandup](#sevtkphandup)
+启动待机按键反馈类型为举手提问时返回此事件
+
+##### [sEvtStateCode](#sevtstatecode)
+发送指令后返回接收状态
+
##### fEvtKpStbResponse
- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回当前待机按键反馈开启状态
@@ -4724,11 +4784,77 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
-##### [sEvtKpRtFeedback](#sevtkprtfeedback)
-返回待机时键盘返回的按键值
+##### fEvtKpStbKeyInfo
+- **主题**:/basestation/{baseSN}/receive
+- **功能描述**:返回键盘设置自定义按键含义是否成功
+- **参数说明**
-##### [sEvtKpHandup](#sevtkphandup)
-启动待机按键反馈类型为举手提问时返回此事件
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|array|-|否|返回的对象数组|
+|++keySn|string||是|设置自定义题型的SN,如果未指定键盘,则keySn为空字符串|
+|++state|string||是|设置的自定义信息是否成功
0 - 成功
1 - 失败
2 - 参数错误|
+
+- **示例代码**
+```json
+//指定下发
+{
+ "fun":"fEvtKpStbKeyInfo",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data": [
+ {
+ "keySn":"1234567890",
+ "state": "0"
+ },
+ {
+ "keySn":"1234567891",
+ "state": "0"
+ }
+ ]
+}
+
+//统一下发
+{
+ "fun":"fEvtKpStbKeyInfo",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data": [
+ {
+ "keySn":"",
+ "state": "0"
+ }
+ ]
+}
+```
+
+##### fEvtClearKpStbKeyInfo
+- **主题**:/basestation/{baseSN}/receive
+- **功能描述**:返回清空自定义按键含义的指令状态是否成功
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|object|-|否|传送参数的对象|
+|+state|string||是|清空自定义按键含义是否成功
0 - 成功
1 - 失败
2 - 参数错误|
+
+- **示例代码**
+```json
+{
+ "fun":"fEvtClearKpStbKeyInfo",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data": {
+ "state": "0"
+ }
+}
+```
## 在线测验
### 标准测验
@@ -4932,24 +5058,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
-
##### [stopKpVote](#stopkpvote)
停止在线测验
@@ -5023,7 +5132,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B
注意:如启动的是多科测验,键盘提交的题目序号对应启动时下发的题目总序号,不按科目区分|
-|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
+|++keyTime|double||是|答题时间,从启动开始计算,单位毫秒|
|++voltage|double||是|键盘电量|
|++retryCount|int||是|键盘提交数据的重发次数|
@@ -5037,12 +5146,12 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"data": [{
"keySn": "1234567890",
"keyValue":"1:A;2:B",
- "keyTime":3.2
+ "keyTime":3200
},
{
"keySn": "1234567891",
"keyValue":"1:B;2:B",
- "keyTime":3.5
+ "keyTime":3500
}
]
}
@@ -5060,7 +5169,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|0 - 未提交(提交完成后,允许键盘修改答案时上报)
1 - 已交卷|
-|++keyTime|double||是|提交时间,从启动开始计算,单位秒|
+|++keyTime|double||是|提交时间,从启动开始计算,单位毫秒|
- **示例代码**
@@ -5072,7 +5181,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"data": [{
"keySn": "1234567890",
"keyValue":"1",
- "keyTime":3.2
+ "keyTime":3200
}]
}
```
@@ -5177,23 +5286,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
-
##### [stopKpVote](#stopkpvote)
停止多科测验
@@ -5253,24 +5346,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
-
##### [stopKpVote](#stopkpvote)
停止自主录分
@@ -5291,7 +5367,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的分值,1:10;2:0表示第1题提交10分,第二题提交0分|
-|++keyTime|double||是|录分时间,从启动录分开始计算,单位秒|
+|++keyTime|double||是|录分时间,从启动录分开始计算,单位毫秒|
|++voltage|double||是|键盘电量|
|++retryCount|int||是|键盘提交数据的重发次数|
@@ -5304,12 +5380,12 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"data": [{
"keySn": "1234567890",
"keyValue":"1:8;2:7.5;3:2;4:3",
- "keyTime":3.2
+ "keyTime":3200
},
{
"keySn": "1234567891",
"keyValue":"1:10;2:0",
- "keyTime":3.5
+ "keyTime":3500
}
]
}
@@ -5329,7 +5405,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象数组,不可为空|
|+keySns|array||是|需要设置标题的键盘SN数组,为空代表全部在线键盘
注意:指定键盘下发才有单个键盘下发是否成功的事件,全部在线键盘下发只有统一回复事件|
-|+type|int||是|需要设置的题目类型
1-单选题
2-多选题
3-数字题
4-判断题
5-自判题|
+|+type|int||是|需要设置的题目类型
1- 单选题
2- 多选题
3- 数字题
4- 判断题
5- 自判题
6- 主观题录分|
|+title|string||是|设置的标题内容,长度不大于15个字符|
@@ -5371,8 +5447,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|否|数据包标识,可为空字符串|
|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象数组|
-|+type|int||是|需要清除自定义标题的题目类型
0-所有题型|
-|+keySns|array||否|需要清除绑定信息键盘SN数组,
空数组表示清空所有键盘|
+|+type|int||是|需要清除自定义标题的题目类型
0-所有题型|
+|+keySns|array||否|需要清除键盘自定义测验题型标题的键盘SN数组,
空数组表示清空所有键盘|
- **示例代码**
```json
@@ -5403,7 +5479,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|baseSn|string||是|基站的出厂编码|
|data|array|-|否|返回的对象数组|
|++keySn|string||是|设置自定义题型的SN,如果未指定键盘,则keySn为空字符串|
-|++state|string||是|设置的自定义信息是否成功
0 - 成功
1 - 失败|
+|++state|string||是|设置的自定义信息是否成功
0 - 成功
1 - 失败
2 - 参数错误|
- **示例代码**
```json
@@ -5448,7 +5524,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|否|数据包标识,可为空字符串|
|baseSn|string||是|基站的出厂编码|
|data|object|-|否|传送参数的对象|
-|+state|string||是|清空自定义标题是否成功
0 - 成功
1 - 失败|
+|+state|string||是|清空自定义标题是否成功
0 - 成功
1 - 失败
2 - 参数错误|
- **示例代码**
```json
@@ -5460,4 +5536,5 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
"state": "0"
}
}
-```
\ No newline at end of file
+```
+