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 +``` +