diff --git a/通讯协议-平台化-应用部分.md b/通讯协议-平台化-应用部分.md
index c14f90e..593cf13 100644
--- a/通讯协议-平台化-应用部分.md
+++ b/通讯协议-平台化-应用部分.md
@@ -1,3 +1,8 @@
+---
+html:
+ toc: true //侧边目录
+ embed_local_images: true //图片嵌入为base64格式
+---
-# SunVote 应用通讯协议
[TOC]
+
+
+
+
+
+SunVote 二次开发
通讯协议
+
+
+
+
+
+
+Ver 1.0.1
+
+
+
+
+
+
+
+
+
+长沙中天电子设计开发有限公司
+
+
+
+
+
+二〇二五年二月
+
+
+
+
+
+
+
+文件控制:
+
+文件名:SunVote二次开发通讯协议
+
+起草人:刘琴
+
+最新版本作者: 刘琴
+
+| 文档版本 | 日期 | 作者 | 版本说明 |
+|---|---|---|---|
+|1.0.1| 2025年2月19日|刘琴|1. 初始版|
+
+
+
+
+# SunVote二次开发通讯协议
# 功能说明
应用与基站通讯可分为两种:一是直连基站,基站直接插在电脑的USB接口,应用程序通过WebSocket方式调用SDK与基站进行通讯,另一种是网连基站,基站直接连接网络,应用程序通过MQTT服务器发布和订阅相关的主题与基站进行通讯。两种连接方式通讯的数据格式统一为Json数据格式,内容一致,仅在连接方式和数据的发送形式有所不同。
本文档约定了应用程序和基站之间进行通讯的数据格式和内容,供开发人员查阅。
## MQTT方式主题说明
-\${baseSN}为指定的基站的SN编码,不能为空,接收基站反馈数据需要订阅对应基站SN的接收主题。
+{baseSN}为指定的基站的SN编码,不能为空,接收基站反馈数据需要订阅对应基站SN的接收主题。
### 发布的主题
应用程序发布的主题,基站订阅
-/client/\${baseSN}/send
+/client/{baseSN}/send
/client/multiBase/send
内部应用发布的主题,基站订阅
-/manage/\${baseSN}/send
+/manage/{baseSN}/send
### 订阅的主题
应用程序订阅的主题,基站发布
-/basestation/\\${baseSN}/receive
+/basestation/\{baseSN}/receive
/basestation/multiBase/receive
内部应用订阅的主题,基站发布
-/manage/\${baseSN}/receive
+/manage/{baseSN}/receive
## Websocket方式
WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口发送接收数据即可。应用程序发送至基站约定为发送指令,基站返回数据约定为返回事件。
@@ -48,11 +104,12 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|-----|-----|-----|-----|-----|
|ip|string|-|是|连接的服务器ip|
|port|int|-|是|服务器的端口|
+|authCode|string|-|是|授权码,设置一个厂家通用授权码,客户获取授权码分系列设置ARS\CRS级别,授权码为加密形式,SDK解密后根据授权码类型确定接口授权范围|
- **示例代码**
```C#
SunVoteSdk sdk = new SunVoteSdk();
- sdk.init("127.0.0.1",9004);
+ sdk.init("127.0.0.1", 9004, "1234");
```
## 指令说明
@@ -85,8 +142,15 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
+|参数 |说明 |约束|
+|---|---|---|
+|fun| 指令或事件名称||
+|dataTag| 数据标签,用于对应收发数据|长度不超过128个字符,可以为字母数字下划线"_"的组合,区分大小写|
+|data| 数据内容|对象或者数组,可为空|
+
注意:基站接收指令数据单次不超过2K长度,在指定键盘发送指令时,如果指令长度超出限制,建议将指令进行拆分,分次发送,如果是所有键盘执行的指令,可将keySns设为空数组不使用指定键盘的模式
+
## 功能速查一览表
### SDK管理
通过SDK直连基站时有效
@@ -97,6 +161,12 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|SDK识别 - SDK版本|获取SDK版本|[getSdkVersion](#getsdkversion)|[fEvtSdkVersion](#fevtsdkversion)|
|SDK连接 - 终止连接|关闭SDK连接|[closeSdk](#closesdk)|-|
+### 公共方法
+可以在多种业务中调用的通用方法
+|功能归类|功能|API指令|指令/系统事件|
+|---|---|---|---|
+|停止投票|可停止通过调用startXXX启动的答题业务|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)||
+
### 公共事件
无需调用指令,自动返回的事件
|功能归类|功能|API指令|指令/系统事件|
@@ -105,36 +175,35 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|公共事件|基站连接状态变化|-|[sEvtBsConnectState](#sevtbsconnectstate)|
|公共事件|基站信道冲突|-|[sEvtBsChannelConflict](#sevtbschannelconflict)|
|公共事件|键盘上线通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
+|公共事件|键盘离线通知|-|[sEvtBsKpOfflineMsg](#sevtbskpofflinemsg)|
|公共事件|键盘刷卡事件|-|[sEvtBsNfcResults](#sevtbsnfcresults)|
|公共事件|在线键盘列表|-|[sEvtBsKpOnlineList](#sevtbskponlinelist)|
|公共事件|键盘待机实时按键反馈|-|[sEvtKpRtFeedback](#sevtkprtfeedback)|
-|公共事件|键盘待机实时语音反馈|-|[sEvtKpRtVoice](#sevtkprtvoice)|
|公共事件|键盘举手键实时按键反馈|-|[sEvtKpHandUp](#sevtkphandup)|
|公共事件|遥控器实时按键反馈|-|[sEvtKpRemoteControl](#sevtkpremotecontrol)|
### 基站管理
|功能归类|功能|API指令|指令/系统事件|
|---|---|---|---|
-|基站连接 - 获取在线基站|主动获取在线基站信息
不确定基站SN时|[getBsOnlineState](#getbsonlinestate)|[fEvtBsOnlineState](#fevtbsonlinestate)|
-|基站连接 - 主动获取状态|主动获取基站连接状态|[getBsConnectState](#getbsconnectstate)|[sEvtBsConnectState](#sevtbsconnectstate)|
-|基站连接 - 自动获取状态|基站连接变化系统通知|-|[sEvtBsConnectState](#sevtbsconnectstate)|
-|键盘上线通知|单个键盘上线系统通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
-|识别设置 - 出厂编码|获取基站出厂编码|[getBsSN](#getbssn)|[fEvtBsSN](#fevtbssn)|
-||设置基站出厂编码(内)|[setBsSN](#setbssn)|[fEvtBsSN](#fevtbssn)|
+|基站连接 - 获取在线基站|主动获取在线基站信息
不确定基站SN时|[getBsOnlineState](#getbsonlinestate)|[fEvtBsOnlineState](#fevtbsonlinestate)||
+|基站连接 - 主动获取状态|主动获取基站连接状态|[getBsConnectState](#getbsconnectstate)|[sEvtBsConnectState](#sevtbsconnectstate)||
+|基站连接 - 自动获取状态|基站连接变化系统通知|-|[sEvtBsConnectState](#sevtbsconnectstate)||
+|基站授时|对基站授时用于校准时间|[timeSync](#timesync)|[sEvtStateCode](#sevtstatecode)||
+|键盘上线通知|单个键盘上线系统通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)||
+|识别设置 - 出厂编码|设置基站出厂编码(内)|[setBsSN](#setbssn)|[fEvtBsSN](#fevtbssn)|
|识别设置 - 基站型号|读取基站型号|[getBsModel](#getbsmodel)|[fEvtBsModel](#fevtbsmodel)|
|识别设置 - 固件版本|获取基站固件版本|[getBsFWVersion](#getbsfwversion)|[fEvtBsFWVersion](#fevtbsfwversion)|
-|识别设置 - 品牌识别码|获取基站品牌识别码|[getBsBIC](#getbsbic)|[fEvtBsBIC](#fevtbsbic)|
+|识别设置 - 品牌识别码|获取基站品牌识别码(内)|[getBsBIC](#getbsbic)|[fEvtBsBIC](#fevtbsbic)|
||设置基站品牌识别码(内)|[setBsBIC](#setbsbic)|[fEvtBsBIC](#fevtbsbic)|
|组网设置 - 组网模式|获取基站组网模式|[getBsNetworkMode](#getbsnetworkmode)|[fEvtBsNetworkMode](#fevtbsnetworkmode)|
-||设置基站组网模式|[setBsNetworkMode](#setbsnetworkmode)|[fEvtBsNetworkMode](#fevtbsnetworkmode)|
+||设置基站组网模式
(前期不开放,后期需要)|[setBsNetworkMode](#setbsnetworkmode)|[fEvtBsNetworkMode](#fevtbsnetworkmode)|
|组网设置 - 配对码|获取基站配对码|[getBsPairCode](#getbspaircode)|[fEvtBsPairCode](#fevtbspaircode)|
||设置基站配对码(内)|[setBsPairCode](#setbspaircode)|[fEvtBsPairCode](#fevtbspaircode)|
|组网设置 - 刷卡配对状态|获取刷卡配对状态|[getBsNfcLogin](#getbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)|
||设置刷卡配对状态|[setBsNfcLogin](#setbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)||
-|组网设置 - 组网容量|获取基站容量|[getBsCapacity](#getbscapacity)|[fEvtBsCapacity](#fevtbscapacity)|
-||设置基站连接容量|[setBsCapacity](#setbscapacity)|[fEvtBsCapacity](#fevtbscapacity)||
|组网设置 - 工作信道|获取基站工作信道|[getBsChannel](#getbschannel)|[fEvtBsChannel](#fevtbschannel)|
||设置基站工作信道|[setBsChannel](#setbschannel)|[fEvtBsChannel](#fevtbschannel)||
+||读取已被占用信道|[getBsRFIChannel](#getbsrfichannel)|[fEvtBsRFIChannel](#fevtbsrfichannel)||
|登录设置 - 登录名称|获取基站登录名称|[getBsSSID](#getbsssid)|[fEvtBsSSID](#fevtbsssid)|
||设置基站登录名称|[setBsSSID](#setbsssid)|[fEvtBsSSID](#fevtbsssid)||
|登录设置 - 登录密码|获取基站登录密码|[getBsLoginPwd](#getbsloginpwd)|[fEvtBsLoginPwd](#fevtbsloginpwd)|
@@ -147,15 +216,12 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
||设置状态语工作状态|[setBsKpStbMsgMode](#setbskpstbmsgmode)|[fEvtBsKpStbMsgMode](#fevtbskpstbmsgmode)|||
|键盘统一设置 - 登录菜单|获取键盘登录菜单状态|[getBsKpLoginMenu](#getbskploginmenu)|[fEvtBsKpLoginMenu](#fevtbskploginmenu)|
||设置键盘登录菜单状态|[setBsKpLoginMenu](#setbskploginmenu)|[fEvtBsKpLoginMenu](#fevtbskploginmenu)|||
-|键盘统一设置 - LED模式|获取LED设置状态|[getBsKpLedMode](#getbskpledmode)|[fEvtBsKpLedMode](#fevtbskpledmode)|
-||设置LED工作状态|[setBsKpLedMode](#setbskpledmode)|[fEvtBsKpLedMode](#fevtbskpledmode)|
-|键盘统一设置 - Beep模式|获取Beep设置状态|[getBsKpBeepMode](#getbskpbeepmode)|[fEvtBsKpBeepMode](#fevtbskpbeepmode)|
-||设置Beep工作状态|[setBsKpBeepMode](#setbskpbeepmode)|[fEvtBsKpBeepMode](#fevtbskpbeepmode)|
|键盘统一设置 - 长距考勤|获取键盘长距考勤状态|[getBsKpRFIDState](#getbskprfidstate)|[fEvtBsKpRFIDState](#fevtbskprfidstate)|
||设置键盘长距考勤状态|[setBsKpRFIDState](#setbskprfidstate)|[fEvtBsKpRFIDState](#fevtbskprfidstate)|
-|键盘统一设置 - 键盘休眠|设置键盘休眠等级|[setBsKpSleepLevel](#setbskpsleeplevel)|[fEvtBsKpSleepLevel](#fevtbskpsleeplevel)|
-||获取键盘休眠等级|[getBsKpSleepLevel](#getbskpsleeplevel)|[fEvtBsKpSleepLevel](#fevtbskpsleeplevel)|
+|键盘统一设置 - 键盘休眠|设置键盘休眠等级(内)|[setBsKpSleepLevel](#setbskpsleeplevel)|[fEvtBsKpSleepLevel](#fevtbskpsleeplevel)|
+||获取键盘休眠等级(内)|[getBsKpSleepLevel](#getbskpsleeplevel)|[fEvtBsKpSleepLevel](#fevtbskpsleeplevel)|
||设置键盘暂停休眠状态(内)|[setBsKpPauseSleep](#setbskppausesleep)|[fEvtBsKpPauseSleep](#fevtbskppausesleep)|
+||获取键盘暂停休眠状态(内)|[getBsKpPauseSleep](#getbskppausesleep)|[fEvtBsKpPauseSleep](#fevtbskppausesleep)|
|配对模式 - 快速配对|启动基站快速配对|[startBsFastPair](#startbsfastpair)|[sEvtStateCode](#sevtstatecode)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
||停止基站快速配对|[stopBsFastPair](#stopbsfastpair)|[sEvtStateCode](#sevtstatecode)|
|白名单模式 - 白名单管理|获取白名单|[getBsWhitelist](#getbswhitelist)|[fEvtBsWhitelist](#fevtbswhitelist)|
@@ -163,40 +229,32 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
||清空白名单|[clearBsWhitelist](#clearbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtBsWhitelist](#fevtbswhitelist)|
||增加白名单|[addBsWhitelist](#addbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtAddBsWhitelist](#fevtaddbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)|
||删除白名单|[delBsWhitelist](#delbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtDelBsWhitelist](#fevtdelbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)|
-||锁定白名单|[lockBsWhitelistKp](#lockbswhitelistkp)|[fEvtLockBsWhitelistKp](#fevtlockbswhitelistkp)|
-||解锁白名单|[unlockBsWhitelistKp](#unlockbswhitelistkp)|[fEvtLockBsWhitelistKp](#fevtlockbswhitelistkp)|
|基站加密 - 软件狗|获取基站软件狗|[getBsSoftwareKey](#getbssoftwarekey)|[fEvtBsSoftwareKey](#fevtbssoftwarekey)|
||设置基站软件狗|[setBsSoftwareKey](#setbssoftwarekey)|[fEvtBsSoftwareKey](#fevtbssoftwarekey)|
-|基站加密 - AES加密|获取基站AES加密状态|[getBsAES](#getbsaes)|[fEvtBsAES](#fevtbsaes)|
-||设置基站AES加密状态|[setBsAES](#setbsaes)|[fEvtBsAES](#fevtbsaes)|
|网络设置 - TCP/IP参数|获取TCP/IP参数|[getBsTcpipParams](#getbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)|
-||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)|
+||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)||
|网络设置 - MQTT参数|获取MQTT参数|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)|
-||设置MQTT参数|[setBsMqttParams](#setbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)|
+||设置MQTT参数|[setBsMqttParams](#setbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)||
|基站维护|获取基站日志信息(内)|[getBsLogInfo](#getbsloginfo)|[sEvtStateCode](#sevtstatecode)
[fEvtBsLogInfo](#fevtbsloginfo)|
+||清空基站日志(内)|[clearBsLogInfo](#clearbsloginfo)|[sEvtStateCode](#sevtstatecode)|
||基站软复位|[resetBsSystem](#resetbssystem)|[sEvtStateCode](#sevtstatecode)
[sEvtBsConnectState](#sevtbsconnectstate)|
||基站断电复位|[resetBsPower](#resetbspower)|[sEvtStateCode](#sevtstatecode)
[sEvtBsConnectState](#sevtbsconnectstate)|
+||基站自检(内)|[startBsSelfCheck](#startbsselfcheck)|[sEvtStateCode](#sevtstatecode)
[fEvtBsSelfCheck](#fevtbsselfcheck)|
|基站升级|开启基站升级(内)|[startBsUpdate](#startbsupdate)|[sEvtStateCode](#sevtstatecode)
[fEvtBsUpateState](#fevtbsupatestate)
[fEvtBsUpdateProgress](#fevtbsupdateprogress)|
||下载字库(内)|[downloadFontLib](#downloadfontlib)|[sEvtStateCode](#sevtstatecode)
[fEvtBsFontLibState](#fevtbsfontlibstate)
[fEvtBsFontLibProgress](#fevtbsfontlibprogress)|
### 键盘管理
|功能归类|功能|API指令|指令事件|
|---|---|---|---|
-|识别设置 - 出厂编码(内)|设置键盘出厂编码(内)|[setKpSN](#setkpsn)|[fEvtKpSN](#fevtkpsn)|
-|识别设置 - 键盘编号|获取键盘编号|[getKpID](#getkpid)|[fEvtKpID](#fevtkpid)|
-|识别设置 - 键盘编号(内)|设置键盘编号(内)|[setKpID](#setkpid)|[fEvtKpID](#fevtkpid)|
-|识别设置 - 键盘型号|获取键盘型号|[getKpModel](#getkpmodel)|[fEvtKpModel](#fevtkpmodel)|
-|识别设置 - 键盘固件版本|获取键盘固件版本|[getKpFWVersion](#getKpfwversion)|[fEvtKpFWVersion](#fevtkpfwversion)|
-|识别设置 - 识别模式(内)|获取键盘识别模式(内)|[getKpIdentityMode](#getkpidentitymode)|[fEvtKpIdentityMode](#fevtkpidentitymode)|
-||设置键盘识别模式(内)|[setKpIdentityMode](#setkpidentitymode)|[fEvtKpIdentityMode](#fevtkpidentitymode)|
+|识别设置 - 出厂编码(内)|设置键盘出厂编码(内)|[setKpSN](#setkpsn)|[fEvtSetKpSN](#fevtsetkpsn)
|
+|识别设置 - 键盘编号(内)|设置键盘编号(内)|[setKpID](#setkpid)|[fEvtSetKpID](#fevtsetkpid)|
+|识别设置 - 键盘信息(内)|开始获取键盘信息(内)|[startGetKpInfo](#setkpid)|[sEvtStateCode](#sevtstatecode)
[fEvtKpInfo](#fevtkpinfo)|
+||停止获取键盘信息(内)|[stopGetKpInfo](#setkpid)|[sEvtStateCode](#sevtstatecode)|
|交互设置 - 用户内置状态语|设置用户内置状态语|[setKpUserStbMsg](#setkpuserstbmsg)|[fEvtKpUserStbMsg](#fevtkpuserstbmsg)|
|交互设置 - 用户实时提示反馈信息|实时设置提示反馈信息|[rtSetKpUserPrompt](#rtsetkpuserprompt)|[sEvtStateCode](#sevtstatecode)
[fEvtSetKpUserPrompt](#fevtsetkpuserprompt)|
-||实时设置LED效果|[rtSetKpUserLedEffects](#rtsetkpuserledeffects)|[sEvtStateCode](#sevtstatecode)|
-||实时设置振动效果|[rtSetKpUserVibEffects](#rtsetkpuservibeffects)|[sEvtStateCode](#sevtstatecode)|
-||实时设置Beep效果|[rtSetKpUserBeepEffects](#rtsetkpuserbeepeffects)|[sEvtStateCode](#sevtstatecode)|
|在线状态获取|开启扫描在线键盘|[startGetKpOnline](#startgetkponline)|[sEvtStateCode](#sevtstatecode)
[fEvtKpOnlineMsg](#fevtkponlinemsg)|
||停止扫描在线键盘|[stopGetKpOnline](#stopgetkponline)|[sEvtStateCode](#sevtstatecode)|
-|维护功能 - 遥控功能|遥控键盘关机|[remoteKpPowerOff](#remotekppoweroff)|[sEvtStateCode](#sevtstatecode)|
-||遥控键盘休眠|[remoteKpSleep](#remotekpsleep)|[sEvtStateCode](#sevtstatecode)|
+||实时获取在线键盘列表|[rtGetKpOnlineList](#rtgetkponlinelist)|[sEvtBsKpOnlineList](#sevtbskponlinelist)|
+|维护功能 - 遥控功能|遥控键盘休眠|[remoteKpSleep](#remotekpsleep)|[sEvtStateCode](#sevtstatecode)|
|维护功能 - 键盘升级|启动键盘无线升级(内)|[startKpFWUpdate](#startkpfwupdate)|[sEvtStateCode](#sevtstatecode)
[fEvtKpFWUpdateState](#fevtkpfwupdatestate)
[fEvtKpUpdateProgress](#fevtkpupdateprogress)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
||停止键盘无线升级(内)|[stopKpFWUpdate](#stopkpfwupdate)|[sEvtStateCode](#sevtstatecode)
[fEvtKpFWUpdateState](#fevtkpfwupdatestate)|
### 绑定
@@ -208,7 +266,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|功能归类|功能|API指令|指令事件|
|---|---|---|---|
|同步签到|启动同步签到|[startKpSignIn](#startkpsignin)|[sEvtStateCode](#sevtstatecode)
[fEvtKpSignIn](#fevtkpsignin)|
-||停止同步签到|[stopKpSignIn](#stopkpsignin)|[sEvtStateCode](#sevtstatecode)|
+||停止同步签到|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
|随时签到|启动随时签到|[rtStartKpSignIn](#rtstartkpsignin)|[sEvtStateCode](#sevtstatecode)
[fEvtKpSignIn](#fevtkpsignin)|
||停止随时签到|[rtStopKpSignIn](#rtstopkpsignin)|[sEvtStateCode](#sevtstatecode)|
||实时PIN签到授权|[rtSetKpLoginAllowed](#rtsetkploginallowed)|[sEvtStateCode](#sevtstatecode)
[fEvtKpLoginAllowed](#fevtkploginallowed)|
@@ -216,40 +274,31 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|功能归类|功能|API指令|指令事件|
|---|---|---|---|
|判断题|启动判断题答题|[startQATrueFalse](#startqatruefalse)|[sEvtStateCode](#sevtstatecode)
[fEvtQATrueFalse](#fevtqatruefalse)|
-||停止判断题答题|[stopQATrueFalse](#stopqatruefalse)|[sEvtStateCode](#sevtstatecode)|
+||停止判断题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
|选择题|启动选择题答题|[startQAChoice](#startqachoice)|[sEvtStateCode](#sevtstatecode)
[fEvtQAChoice](#fevtqachoice)|
-||停止选择题答题|[stopQAChoice](#stopqachoice)|[sEvtStateCode](#sevtstatecode)|
+||停止选择题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
|数字题|启动数字题答题|[startQANum](#startqanum)|[sEvtStateCode](#sevtstatecode)
[fEvtQANum](#fevtqanum)|
-||停止数字题答题|[stopQANum](#stopqanum)|[sEvtStateCode](#sevtstatecode)|
+||停止数字题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
|抢答题|启动抢答题答题|[startQAQuicker](#startqaquicker)|[sEvtStateCode](#sevtstatecode)
[fEvtQAQuicker](#fevtqaquicker)|
-||停止抢答题答题|[stopQAQuicker](#stopqaquicker)|[sEvtStateCode](#sevtstatecode)|
+||停止抢答题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
|英文题|启动英文题答题|[startQAEText](#startqaetext)|[sEvtStateCode](#sevtstatecode)
[fEvtQAEText](#fevtqaetext)|
-||停止英文题答题|[stopQAEText](#stopqaetext)|[sEvtStateCode](#sevtstatecode)|
-|短信息|发送标准短信|[sendKpMsg](#sendkpmsg)|[sEvtStateCode](#sevtstatecode)
[fEvtKpMsg](#fevtkpmsg)|
-||实时发送弹窗提醒|[rtSendKpNotice](#rtsendkpnotice)|[sEvtStateCode](#sevtstatecode)|
-|待机实时反馈|启动待机实时反馈|[startKpStbResponse](#startkpstbresponse)|[sEvtStateCode](#sevtstatecode)
[sEvtKpRtFeedback](#sevtkprtfeedback)
[sEvtKpHandUp](#sevtkphandup)|
-||停止待机实时反馈|[stopKpStbResponse](#stopkpstbresponse)|[sEvtStateCode](#sevtstatecode)|
-### 语音反馈
-|功能归类|功能|API指令|指令事件|
-|---|---|---|---|
-|语音反馈-单题语音评测|启动单题语音评测|[startQAVoice](#startqavoice)|[sEvtStateCode](#sevtstatecode)
[fEvtVoiceFile](#fevtvoicefile)
[fEvtVoiceStream](#fevtvoicestream)
[fEvtVoicePacketLossInfo](#fevtvoicepacketlossinfo)|
-||停止单题语音评测|[stopQAVoice](#stopqavoice)|[sEvtStateCode](#sevtstatecode)|
-|语音反馈-选定键盘发言|启动选定键盘发言|[startKpDSpeaker](#startkpdspeaker)|[sEvtStateCode](#sevtstatecode)
[fEvtVoiceStream](#fevtvoicestream)|
-||停止选定键盘发言|[stopKpDSpeaker](#stopkpdspeaker)|[sEvtStateCode](#sevtstatecode)|
-|语音反馈-待机实时反馈|启动待机实时反馈|[startVoiceStbResponse](#startvoicestbresponse)|[sEvtStateCode](#sevtstatecode)
[sEvtKpRtVoice](#sevtkprtvoice)|
-||停止待机实时反馈|[stopVoiceStbResponse](#stopvoicestbresponse)|[sEvtStateCode](#sevtstatecode)|
+||停止英文题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
+|短消息|发送短消息|[sendKpMsg](#sendkpmsg)|[sEvtStateCode](#sevtstatecode)
[fEvtKpMsg](#fevtkpmsg)|
+|待机实时反馈|设置待机实时反馈状态|[setKpStbResponse](#setkpstbresponse)|[fEvtKpStbResponse](#fevtkpstbresponse)
[sEvtKpRtFeedback](#sevtkprtfeedback)
[sEvtKpHandUp](#sevtkphandup)|
+||获取待机实时反馈状态|[getKpStbResponse](#getkpstbresponse)|[fEvtKpStbResponse](#fevtkpstbresponse)|
### 在线测验
|功能归类|功能|API指令|指令事件|
|---|---|---|---|
|标准测验|启动标准测验|[startKpExam](#startkpexam)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)
[fEvtFinalSubmit](#fevtfinalsubmit)|
-||停止标准测验|[stopKpExam](#stopkpexam)|[sEvtStateCode](#sevtstatecode)|
+||停止标准测验|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
||刷新作答数据|[rtGetKpExamData](#rtgetkpexamdata)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)|
-||判卷结果回传|[rtSetKpExamResult](#rtgetkpexamdata)|[sEvtStateCode](#sevtstatecode)
[fEvtSetKpExamResult](#fevtsetkpexamresult)|
||允许键盘提交后退回修改|[rtAllowEdited](#rtkpallowedited)|[sEvtStateCode](#sevtstatecode)
[fEvtFinalSubmit](#fevtfinalsubmit)|
|多科测验|启动多科测验|[startKpMultiExam](#startkpmultiexam)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)
[fEvtFinalSubmit](#fevtfinalsubmit)|
-||停止标准测验|[stopKpMultiExam](#stopkpmultiexam)|[sEvtStateCode](#sevtstatecode)|
+||停止标准测验|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
|自主录分|启动自主录分|[startKpScoreInput](#startkpscoreinput)|[sEvtStateCode](#sevtstatecode)
[fEvtKpScore](#fevtkpscore)
[fEvtFinalSubmit](#fevtfinalsubmit)|
-||停止自主录分|[stopKpScoreInput](#stopkpscoreinput)|[sEvtStateCode](#sevtstatecode)|
+||停止自主录分|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
+|自定义测验题型标题|自定义测验题型标题内容|[setKpExamQuesTitle](#setKpexamquestitle)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExamQuesTitle](#fevtkpexamquestitle)|
+||清除自定义测验题型标题内容|[clearKpExamQuesTitle](#clearkpexamquestitle)|[sEvtStateCode](#sevtstatecode)
[fEvtClearKpExamQuesTitle](#fevtclearkpexamquestitle)|
## SDK管理
### 方法
@@ -263,7 +312,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|是|数据包标识,不需要时可传空字符串|
- **示例代码**
-```Json
+```json
{
"fun":"heartbeat",
"dataTag":"1"
@@ -281,10 +330,11 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|+value|int||是|心跳间隔,单位秒,建议设置时长>10秒
设为0时不主动发送心跳包,只被动回复心跳包
>0时,主动在间隔时长发送心跳包(无消息通讯时)|
- **示例代码**
-```Json
+```json
{
"fun":"setHeartbeatInterval",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":30
}
@@ -300,7 +350,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|否|数据包标识,不需要时可传空字符串|
- **示例代码**
-```Json
+```json
{
"fun":"getSdkVersion",
"dataTag":"1"
@@ -316,7 +366,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|否|数据包标识,不需要时可传空字符串|
- **示例代码**
-```Json
+```json
{
"fun":"closeSdk",
"dataTag":"1"
@@ -333,7 +383,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|dataTag|string|-|否|数据包标识,返回收到的数据包dataTag|
- **示例代码**
-```Json
+```json
{
"fun":"heartbeat",
"dataTag":"1"
@@ -351,10 +401,11 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|+value|int||是|心跳间隔时长,单位秒|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtHeartbeatInterval",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":30
}
@@ -372,18 +423,39 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|+value|string||是|返回SDK的版本信息|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtSdkVersion",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1.0.0.0"
}
}
```
+
+## 公共方法
+### stopKpVote
+- **主题**: /client/{baseSN}/send
+- **功能描述**:通用停止键盘答题方法,可以停止如同步签到、按键反馈、在线测验中调用startXXX方法启动的业务
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|-----|-----|-----|-----|-----|
+|fun|string|-|是|事件类型|
+|dataTag|string||否|数据包标识,不需要时可传空字符串|
+
+- **示例代码**
+```json
+{
+ "fun":"stopKpVote",
+ "dataTag":"1"
+}
+```
+
## 公共事件
### sEvtBsConnectState
-- **主题**: /basestation/\${baseSN}/receive (MQTT连接方式)
+- **主题**: /basestation/{baseSN}/receive (MQTT连接方式)
- **功能描述**:基站连接成功时返回基站型号和基站SN,基站从已连接状态断开返回连接断开
- **参数说明**
@@ -391,21 +463,21 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|-----|-----|-----|-----|-----|
|fun|string|-|是|事件类型|
|dataTag|string|-|否|数据包标识,不需要时可传空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+baseSn|string||是|基站的出厂编码|
|+baseModel|int||否|基站的型号码|
|+modelName|string||否|基站的型号名称|
|+state|int||是|基站的连接状态
1-已连接
2-连接断开|
|+version|string||否|基站固件版本|
- **示例代码**
-```Json
+```json
//连接成功
{
"fun":"sEvtBsConnectState",
"dataTag":"1",
- "data":{
- "baseSn":"2024061101",
+ "baseSn":"2024061101",
+ "data":{
"state":1,
"baseModel":218,
"modelName":"B200",
@@ -416,14 +488,14 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
{
"fun":"sEvtBsConnectState",
"dataTag":"1",
- "data":{
- "baseSn":"2024061101",
+ "baseSn":"2024061101",
+ "data":{
"state":2
}
}
```
### sEvtBsChannelConflict
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:基站信道冲突时主动上报,应用程序可根据实际业务修改基站信道
- **参数说明**
@@ -431,21 +503,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识,不需要时可传空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|int||是|有冲突的信道|
- **示例代码**
-```Json
+```json
{
"fun":"sEvtBsChannelConflict",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":5 //信道5有多个基站使用
}
}
```
### sEvtBsNfcResults
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:键盘刷卡时主动上报,如果超出基站容量会上报失败
- **参数说明**
@@ -453,42 +527,47 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识,不需要时可传空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySn|string||是|刷卡的键盘SN|
+|+cardType|int||是|刷卡的键盘类型
1-NFC类型
2-M1类型|
|+value|int||是|刷卡的状态
1-成功
2-失败|
- **示例代码**
-```Json
+```json
{
"fun":"sEvtBsNfcResults",
- "dataTag":"1", //不需要时可传空字符串
+ "dataTag":"1", //不需要时可传空字符串
+ "baseSn":"2024061101",
"data":{
- "keySn":"1234567890",
+ "keySn":"1234567890",
+ "cardType":1,
"value":1
}
}
```
### sEvtBsKpOnlineMsg
-- **主题**: /basestation/\${baseSN}/receive
-- **功能描述**:键盘上线通知,主动上报,键盘升级成功后也会上报
+- **主题**: /basestation/{baseSN}/receive
+- **功能描述**:键盘上线通知,主动上报,键盘升级成功后也会上报
- **参数说明**
|参数名|类型|限制|非空|说明|
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySn|string||是|键盘SN|
|+version|string||是|键盘固件版本|
|+model|int||是|键盘型号|
-|+voltage|double||是|键盘电压|
- **示例代码**
-```Json
+```json
{
"fun":"sEvtBsKpOnlineMsg",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySn":"1234567890",
"version":"1.0.0",
@@ -496,15 +575,42 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
+
+### sEvtBsKpOfflineMsg
+- **主题**: /basestation/{baseSN}/receive
+- **功能描述**:单个键盘离线通知,主动上报
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|事件名称|
+|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
+|data|object|-|是|传送参数的对象|
+|+keySn|string||是|键盘SN|
+
+- **示例代码**
+```json
+{
+ "fun":"sEvtBsKpOfflineMsg",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data":{
+ "keySn":"1234567890"
+ }
+}
+```
+
### sEvtBsKpOnlineList
-- **主题**: /basestation/\${baseSN}/receive
-- **功能描述**:键盘在线列表发生变化时主动上报(T2专属)
+- **主题**: /basestation/{baseSN}/receive
+- **功能描述**:键盘在线列表发生变化时主动上报
- **参数说明**
|参数名|类型|限制|非空|说明|
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++version|string||是|键盘固件版本|
@@ -512,20 +618,26 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|++voltage|double||是|键盘电压|
- **示例代码**
-```Json
+```json
{
"fun":"sEvtBsKpOnlineList",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":[{
"keySn":"1234567890",
"version":"1.0.0",
"model":67,
"voltage":2.8
+ },{
+ "keySn":"1234567891",
+ "version":"1.0.0",
+ "model":67,
+ "voltage":2.8
}]
}
```
### sEvtKpRtFeedback
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:开启键盘实时反馈后,键盘按键时上报
- **参数说明**
@@ -533,47 +645,29 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识|
-|data|object|-|是|传送参数的对象|
-|+keySn|string||是|键盘SN|
-|+keyValue|string||是|键盘提交的按键值|
+|baseSn|string||是|基站的出厂编码|
+|data|array|-|是|传送参数的对象数组|
+|++keySn|string||是|键盘SN|
+|++keyValue|string||是|键盘提交的按键值|
+|++voltage|double||是|键盘电量|
+|++retryCount|int||是|键盘提交数据的重发次数|
- **示例代码**
-```Json
+```json
{
"fun":"sEvtKpRtFeedback",
"dataTag":"1",
- "data":{
- "keySn":"1234567890",
- "keyValue":"A"
- }
-}
-```
-### sEvtKpRtVoice
-- **主题**: /basestation/\${baseSN}/receive
-- **功能描述**:开启键盘语音实时反馈后,键盘发送语音时上报
-- **参数说明**(待定)
-
-|参数名|类型|限制|非空|说明|
-|---|---|---|---|---|
-|fun|string|-|是|事件名称|
-|dataTag|string|-|否|数据包标识|
-|data|object|-|是|传送参数的对象|
-|+keySn|string||是|键盘SN|
-|+keyValue|string||是|键盘提交的按键值|
-
-- **示例代码**
-```Json
-{
- "fun":"sEvtKpRtVoice",
- "dataTag":"1",
- "data":{
+ "baseSn":"2024061101",
+ "data":[{
"keySn":"1234567890",
- "keyValue":"A"
- }
+ "keyValue":"A",
+ "voltage":2.6,
+ "retryCount":1
+ }]
}
```
### sEvtKpHandUp
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:开启键盘举手功能后,键盘按举手键时上报
- **参数说明**
@@ -581,21 +675,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySn|string||是|举手的键盘SN|
- **示例代码**
-```Json
+```json
{
"fun":"sEvtKpHandUp",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySn":"1234567890"
}
}
```
### sEvtKpRemoteControl
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:遥控器按键实时上报
- **参数说明**
@@ -603,15 +699,17 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySn|string||是|遥控器SN|
|+keyValue|string||是|遥控器提交的按键值,按键值含义参见遥控器说明|
- **示例代码**
-```Json
+```json
{
- "fun":"sEvtKpRtFeedback",
+ "fun":"sEvtKpRemoteControl",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySn":"1234567890",
"keyValue":"1"
@@ -619,7 +717,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
### sEvtStateCode
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回基站接收指令状态信息
- **参数说明**
@@ -627,29 +725,39 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+funName|string||是|指令名称|
|+code|string||是|状态码,含义见下表|
-|错误码|说明|
+|状态码|说明|
|---|---|
|0|指令收取成功|
|10001|不能正确解析的JSON数据|
|10002|解析JSON错误|
+|10003|下发数据包超长|
|20001|基站未连接|
|20002|功能不支持|
|20003|基站SN格式不正确|
|20004|参数错误|
-|20005|基站在答题中|
+|20005|dataTag错误|
+|20006|键盘SN错误|
+|20007|tip参数错误|
+|20008|value参数错误|
+|30001|基站在答题中|
+|30002|基站忙(内存不足)|
+|30003|基站执行失败|
|40001|升级功能只能支持一个基站|
|50001|此功能必须指定基站|
|60001|此功能必须指定键盘SN|
+|70001|没有字库|
- **示例代码**
-```Json
+```json
{
"fun":"sEvtStateCode",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"funName":"startKpSignIn",
"code":"20005"
@@ -669,7 +777,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|fun|string|-|是|固定指令名称|
|dataTag|string|-|否|数据包标识|
- **示例代码**
-```Json
+```json
{
"fun":"getBsOnlineState",
"dataTag":"1"
@@ -677,7 +785,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
```
##### getBsConnectState
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:主动获取基站连接状态
- **参数说明**
@@ -686,7 +794,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|fun|string|-|是|固定指令名称|
|dataTag|string|-|否|数据包标识|
- **示例代码**
-```Json
+```json
{
"fun":"getBsConnectState",
"dataTag":"1"
@@ -697,7 +805,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
参见基站连接变化系统通知
##### fEvtBsOnlineState
-- **主题**: /basestation/mutilBase/receive
+- **主题**: /basestation/multiBase/receive
- **功能描述**:基站在线返回基站型号和基站SN
- **参数说明**
@@ -705,6 +813,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|-----|-----|-----|-----|-----|
|fun|string|-|是|事件类型|
|dataTag|string|-|否|数据包标识,不需要时可传空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+baseModel|int||否|基站的型号码|
|+modelName|string||否|基站的型号名称|
@@ -712,11 +821,12 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|+baseSN|string||否|基站SN|
- **示例代码**
-```Json
+```json
//连接成功
{
"fun":"fEvtBsOnlineState",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"baseModel":218,
"modelName":"B200",
@@ -726,10 +836,40 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
+### 基站授时
+#### 方法
+##### timeSync
+- **主题**:/client/{baseSN}/send
+- **功能描述**:发送当前时间戳给基站进行校时
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|固定指令名称|
+|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
+|data|object|-|是|传送参数的对象|
+|+timeStamp|long ||否|当前时间的时间戳|
+
+- **示例代码**
+```json
+{
+ "fun":"timeSync",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data":{
+ "timeStamp":1718247133290
+ }
+}
+```
+#### 事件
+##### [sEvtStateCode](#sevtstatecode)
+返回指令的接收状态
+
### 识别设置
#### 方法
##### setBsSN
-- **主题**:/manage/\${baseSN}/send
+- **主题**:/manage/{baseSN}/send
- **功能描述**:设置基站的SN,需预先订阅新SN的主题,以获取事件返回
- **参数说明**
@@ -737,23 +877,25 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string|数字|是|设置的基站SN,长度为10位数字|
-|+time|string|数字|是|时间,yyyyMMddHHmmss|
-|+verCode|string||是|内部主题校验码,时间+固定key加密|
+
- **示例代码**
-```Json
+```json
{
"fun":"setBsSN",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"2024041201"
}
}
```
##### getBsModel
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:获取基站型号
- **参数说明**
@@ -761,16 +903,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsModel",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### getBsFWVersion
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:获取基站固件版本
- **参数说明**
@@ -778,16 +922,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsFWVersion",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### getBsBIC
-- **主题**:/client/\${baseSN}/send
+- **主题**:/manage/{baseSN}/send
- **功能描述**:获取基站品牌识别码
- **参数说明**
@@ -795,16 +941,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsBIC",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101
}
```
##### setBsBIC
-- **主题**:/manage/\${baseSN}/send
+- **主题**:/manage/{baseSN}/send
- **功能描述**:设置基站品牌识别码
- **参数说明**
@@ -812,24 +960,26 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|设置的基站品牌码|
-|+time|string|数字|是|时间,yyyyMMddHHmmss|
-|+verCode|string||是|内部主题校验码,时间+固定key加密|
+
- **示例代码**
-```Json
+```json
{
"fun":"setBsBIC",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "value":"sunvote"
+ "value":"EA10"
}
}
```
#### 事件
##### fEvtBsSN
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回基站的出厂编码
- **参数说明**
@@ -837,21 +987,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string|-|是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsSN",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"2024041201"
}
}
```
##### fEvtBsModel
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回基站的型号
- **参数说明**
@@ -859,21 +1011,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string|-|是|基站的型号名称|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsModel",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"B200"
}
}
```
##### fEvtBsFWVersion
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回基站的固件版本
- **参数说明**
@@ -881,21 +1035,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|基站的固件版本号|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsFWVersion",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1.0.3"
}
}
```
##### fEvtBsBIC
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /manage/{baseSN}/receive
- **功能描述**:返回基站的品牌码
- **参数说明**
@@ -903,23 +1059,25 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+value|string||是|基站的品牌码|
+|+value|string||是|基站的品牌码
EA10: 中天电子
B001: 科大讯飞
B002: 台湾网奕
B003: 德国Infowhyse
B004: 印度K12 Techno
B005: 印度UOLO |
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsBIC",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "value":"sunvote"
+ "value":"EA10"
}
}
```
### 组网设置
#### 方法
##### getBsNetworkMode
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:获取基站组网模式
- **参数说明**
@@ -927,16 +1085,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsNetworkMode",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101",
}
```
##### setBsNetworkMode
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:设置基站组网模式
- **参数说明**
@@ -944,21 +1104,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string|-|是|设置的基站组网模式
1-配对模式
2-白名单模式|
- **示例代码**
-```Json
+```json
{
"fun":"setBsNetworkMode",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1"
}
}
```
##### getBsPairCode
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:获取基站配对码
- **参数说明**
@@ -966,16 +1128,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsPairCode",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### setBsPairCode
-- **主题**:/manage/\${baseSN}/send
+- **主题**:/manage/{baseSN}/send
- **功能描述**:设置基站配对码
- **参数说明**
@@ -983,23 +1147,25 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|否|传送参数的对象|
|+value|string|-|否|设置的基站配对码,8位数字|
-|+time|string|数字|是|时间,yyyyMMddHHmmss|
-|+verCode|string||是|内部主题校验码,时间+固定key加密|
+
- **示例代码**
-```Json
+```json
{
"fun":"setBsPairCode",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"04120101"
}
}
```
##### getBsNfcLogin
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:获取刷卡配对状态
- **参数说明**
@@ -1007,16 +1173,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsNfcLogin",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### setBsNfcLogin
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:设置基站刷卡配对状态
- **参数说明**
@@ -1024,103 +1192,88 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string|-|是|设置的基站刷卡配对状态
0-关闭刷卡配对
1-开启刷卡配对|
- **示例代码**
-```Json
+```json
{
"fun":"setBsNfcLogin",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1"
}
}
```
-
-##### getBsCapacity
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:获取基站容量参数
+##### getBsChannel
+- **主题**:/client/{baseSN}/send
+- **功能描述**:获取基站信道
- **参数说明**
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
- "fun":"getBsCapacity",
- "dataTag":"1"
+ "fun":"getBsChannel",
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
-##### setBsCapacity
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:设置基站容量
+##### setBsChannel
+- **主题**:/client/{baseSN}/send
+- **功能描述**:设置基站信道
- **参数说明**
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+value|string|-|是|设置基站的键盘容量,<=200|
+|+value|string|-|是|设置的基站信道,可设范围:1-80|
- **示例代码**
-```Json
+```json
{
- "fun":"setBsCapacity",
+ "fun":"setBsChannel",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "value":"60"
+ "value":"23"
}
}
```
-##### getBsChannel
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:获取基站信道
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-
-- **示例代码**
-```Json
-{
- "fun":"getBsChannel",
- "dataTag":"1"
-}
-```
-##### setBsChannel
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:设置基站信道
+##### getBsRFIChannel
+- **主题**:/client/{baseSN}/send
+- **功能描述**:获取已被其他基站占用的信道
- **参数说明**
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+value|string|-|是|设置的基站信道,可设范围:1-80|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
- "fun":"setBsChannel",
+ "fun":"getBsRFIChannel",
"dataTag":"1",
- "data":{
- "value":"23"
- }
+ "baseSn":"2024061101"
}
```
+
#### 事件
##### fEvtBsNetworkMode
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回基站组网模式
- **参数说明**
@@ -1128,21 +1281,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识,可传空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|基站的组网模式
1-配对模式
2-白名单模式|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsNetworkMode",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1"
}
}
```
##### fEvtBsPairCode
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回基站配对码
- **参数说明**
@@ -1150,65 +1305,84 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识,可传空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|基站的配对码|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsPairCode",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "value":"123456"
+ "value":"12345678"
}
}
```
-##### fEvtBsCapacity
-- **主题**: /basestation/\${baseSN}/receive
-- **功能描述**:返回基站容量
+
+##### fEvtBsChannel
+- **主题**: /basestation/{baseSN}/receive
+- **功能描述**:返回基站信道
- **参数说明**
|参数名|类型|限制|非空|说明|
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识,可传空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+value|string||是|基站容量|
+|+value|string||是|基站信道|
- **示例代码**
-```Json
+```json
{
- "fun":"fEvtBsCapacity",
+ "fun":"fEvtBsChannel",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "value":"60"
+ "value":"5"
}
}
```
-##### fEvtBsChannel
-- **主题**: /basestation/\${baseSN}/receive
-- **功能描述**:返回基站信道
+
+##### fEvtBsRFIChannel
+- **主题**: /basestation/{baseSN}/receive
+- **功能描述**:返回其他基站已占用的信道,频点冲突时,可以根据返回结果修改基站信道避开干扰
- **参数说明**
|参数名|类型|限制|非空|说明|
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识,可传空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+value|string||是|基站信道|
+|+value|string||是|其他基站已占用的信道,多个信道用英文","分隔,无占用信道返回0|
- **示例代码**
-```Json
+```json
+//信道1、2、14已被占用
{
- "fun":"fEvtBsChannel",
+ "fun":"fEvtBsRFIChannel",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "value":"5"
+ "value":"1,2,14"
+ }
+}
+//无占用信道
+{
+ "fun":"fEvtBsRFIChannel",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data":{
+ "value":"0"
}
}
```
+
##### fEvtBsNfcLogin
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回基站是否允许NFC刷卡
- **参数说明**
@@ -1216,14 +1390,16 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识,可传空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|0-关闭 1-开启|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsNfcLogin",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1"
}
@@ -1233,7 +1409,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
#### 方法
##### getBsSSID
获取基站登录名称
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:获取基站登录名称
- **参数说明**
@@ -1241,16 +1417,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|固定指令名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsSSID",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### setBsSSID
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:设置基站登录名称
- **参数说明**
@@ -1258,21 +1436,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|设置的基站SSID,最长12字符|
- **示例代码**
-```Json
+```json
{
"fun":"setBsSSID",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1901班"
}
}
```
##### getBsLoginPwd
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:获取基站登录密码
- **参数说明**
@@ -1280,16 +1460,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|固定指令名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsLoginPwd",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### setBsLoginPwd
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:设置基站登录密码
- **参数说明**
@@ -1297,22 +1479,24 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+value|string||是|设置的基站登录密码,数字类型,为空代表无需密码登录|
+|+value|string||是|设置的基站登录密码,数字类型,最长4位,为空或设为0代表无需密码登录|
- **示例代码**
-```Json
+```json
{
"fun":"setBsLoginPwd",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "value":"123456"
+ "value":"1234"
}
}
```
##### getBsLoginState
获取基站登录名称
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:获取基站登录状态
- **参数说明**
@@ -1320,16 +1504,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|固定指令名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsLoginState",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### setBsLoginState
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:设置基站登录状态
- **参数说明**
@@ -1337,14 +1523,16 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|设置是否允许键盘自主登入
0 - 不允许键盘登入
1 - 允许键盘登入|
- **示例代码**
-```Json
+```json
{
"fun":"setBsLoginState",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1"
}
@@ -1353,7 +1541,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
#### 事件
##### fEvtBsSSID
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回基站名称
- **参数说明**
@@ -1361,21 +1549,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识,可传空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|基站名称|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsSSID",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1901班"
}
}
```
##### fEvtBsLoginPwd
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回基站登录密码
- **参数说明**
@@ -1383,21 +1573,33 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识,可传空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+value|string||是|基站登录密码|
+|+value|string||是|基站登录密码,返回值为0代表无需密码登录|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsLoginPwd",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "value":"123456"
+ "value":"1234"
+ }
+}
+
+//无需密码登录
+{
+ "fun":"fEvtBsLoginPwd",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data":{
+ "value":"0"
}
}
```
##### fEvtBsLoginState
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回基站登录状态
- **参数说明**
@@ -1405,14 +1607,16 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识,可传空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|基站登录状态|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsLoginState",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1"
}
@@ -1421,7 +1625,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 键盘统一设置
#### 方法
##### getBsKpLanguage
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:获取键盘语言
- **参数说明**
@@ -1429,16 +1633,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsKpLanguage",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### setBsKpLanguage
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:设置键盘语言
- **参数说明**
@@ -1446,21 +1652,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|设置键盘显示的语言
1-简体中文
2-英文|
- **示例代码**
-```Json
+```json
{
"fun":"setBsKpLanguage",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1"
}
}
```
##### getBsKpStbMsgMode
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:获取状态语设置状态
- **参数说明**
@@ -1468,16 +1676,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsKpStbMsgMode",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### setBsKpStbMsgMode
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:设置状态语工作状态
- **参数说明**
@@ -1485,21 +1695,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|设置状态语工作状态
0-系统默认
1-用户内置|
- **示例代码**
-```Json
+```json
{
"fun":"setBsKpStbMsgMode",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"0"
}
}
```
##### getBsKpLoginMenu
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:获取键盘登录菜单显示状态
- **参数说明**
@@ -1507,17 +1719,19 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsKpLoginMenu",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### setBsKpLoginMenu
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:设置键盘登录菜单显示状态
- **参数说明**
@@ -1525,26 +1739,24 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|设置键盘登录菜单显示状态
0-不显示
1-显示|
- **示例代码**
-```Json
+```json
{
"fun":"setBsKpLoginMenu",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1"
}
}
```
-##### getBsKpLedMode
-##### setBsKpLedMode
-##### getBsKpBeepMode
-##### setBsKpBeepMode
##### getBsKpRFIDState
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:获取键盘长距离考勤开启状态
- **参数说明**
@@ -1552,16 +1764,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsKpRFIDState",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### setBsKpRFIDState
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:设置键盘长距离考勤开启状态
- **参数说明**
@@ -1569,23 +1783,24 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|设置键盘长距离考勤开启状态
0-不开启
1-开启|
- **示例代码**
-```Json
+```json
{
"fun":"setBsKpRFIDState",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1"
}
}
```
-
##### getBsKpSleepLevel
-- **主题**:/client/\${baseSN}/send
+- **主题**:/manage/{baseSN}/send
- **功能描述**:获取键盘休眠时间等级
- **参数说明**
@@ -1593,17 +1808,19 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsKpSleepLevel",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### setBsKpSleepLevel
-- **主题**:/client/\${baseSN}/send
+- **主题**:/manage/{baseSN}/send
- **功能描述**:设置键盘休眠时间等级
- **参数说明**
@@ -1611,14 +1828,16 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|设置键盘休眠的时间等级
0-30秒
1-2分钟
2-10分钟
3-45分钟|
- **示例代码**
-```Json
+```json
{
"fun":"setBsKpSleepLevel",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1"
}
@@ -1626,31 +1845,53 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
```
##### setBsKpPauseSleep
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:设置键盘暂停休眠是否开启
注意:请谨慎使用本功能,务必在相关测试或功能完成后关闭,否则可能会导致键盘异常耗电
+- **主题**:/manage/{baseSN}/send
+- **功能描述**:设置键盘暂停休眠是否开启
注意:请谨慎使用本功能,务必在相关测试或功能完成后关闭,否则可能会导致键盘异常耗电
设置单次生效,基站拔插后复位成关闭状态
- **参数说明**
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|设置键盘暂停休眠是否开启
0-关闭暂停休眠
1-开启暂停休眠|
- **示例代码**
-```Json
+```json
{
"fun":"setBsKpPauseSleep",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1"
}
}
```
-#### 事件
-##### fEvtBsKpLanguage
-- **主题**: /basestation/\${baseSN}/receive
+##### getBsKpPauseSleep
+- **主题**:/manage/{baseSN}/send
+- **功能描述**:获取键盘暂停休眠是否开启
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+
+- **示例代码**
+```json
+{
+ "fun":"getBsKpPauseSleep",
+ "dataTag":"1",
+ "baseSn":"2024061101"
+}
+```
+
+#### 事件
+##### fEvtBsKpLanguage
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回键盘语言
- **参数说明**
@@ -1658,21 +1899,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+value|string||是|设置键盘显示的语言
1-简体中文
2-英文|
+|+value|string||是|键盘显示的语言
1-简体中文
2-英文|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsKpLanguage",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1"
}
}
```
##### fEvtBsKpStbMsgMode
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回状态语工作状态
- **参数说明**
@@ -1680,21 +1923,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|返回状态语工作状态
0-系统默认
1-用户内置|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsKpStbMsgMode",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"0"
}
}
```
##### fEvtBsKpLoginMenu
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回键盘登录菜单显示状态
- **参数说明**
@@ -1702,24 +1947,24 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|返回键盘登录菜单显示状态
0-不显示
1-显示|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsKpLoginMenu",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"0"
}
}
```
-##### fEvtBsKpLedMode
-##### fEvtBsKpBeepMode
##### fEvtBsKpRFIDState
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:返回键盘长距离考勤开启状态
- **参数说明**
@@ -1727,14 +1972,16 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|返回键盘长距离考勤开启状态
0-不开启
1-开启|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsKpRFIDState",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"0"
}
@@ -1742,7 +1989,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
```
##### fEvtBsKpSleepLevel
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /manage/{baseSN}/receive
- **功能描述**:返回键盘休眠时间等级
- **参数说明**
@@ -1750,14 +1997,16 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|键盘休眠的时间等级
0-30秒
1-2分钟
2-10分钟
3-45分钟|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsKpSleepLevel",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"1"
}
@@ -1765,7 +2014,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
```
##### fEvtBsKpPauseSleep
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /manage/{baseSN}/receive
- **功能描述**:返回暂停键盘休眠开启状态
- **参数说明**
@@ -1773,178 +2022,26 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+value|string||是|返回暂停键盘休眠开启状态
0-未开启暂停休眠
1-开启暂停休眠|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsKpPauseSleep",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"0"
}
}
```
-### 网络设置
-#### 方法
-##### getBsTcpipParams
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:获取基站TCP/IP参数
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-
-- **示例代码**
-```Json
-{
- "fun":"getBsTcpipParams",
- "dataTag":"1"
-}
-```
-##### setBsTcpipParams
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:设置基站TCP/IP参数
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+ip|string||否|IP地址|
-|+mask|string||否|子网掩码|
-|+gateway|string||否|网关地址|
-|+ipAllocation|int||否|基站IP获取方式
0 - 手动指定
1 - DHCP获取|
-
-- **示例代码**
-```Json
-{
- "fun":"setBsTcpipParams",
- "dataTag":"1",
- "data":{
- "ip":"192.168.0.10",
- "mask":"255.255.255.0",
- "gateway":"192.168.0.1",
- "ipAllocation":1
- }
-}
-```
-##### getBsMqttParams
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:获取基站MQTT参数
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-
-- **示例代码**
-```Json
-{
- "fun":"getBsMqttParams",
- "dataTag":"1"
-}
-```
-##### setBsMqttParams
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:设置基站MQTT参数
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+server|string||是|服务器IP地址|
-|+port|int||是|端口,默认1883|
-|+userName|string||否|连接服务器的用户名,可不设置|
-|+password|string||否|连接服务器的密码,可不设置|
-|+interval|int|>=10|否|基站连接服务器失败后重连的间隔时长,单位秒|
-
-- **示例代码**
-```Json
-{
- "fun":"setBsMqttParams",
- "dataTag":"1",
- "data":{
- "server":"192.168.10.10",
- "port":1883,
- "userName":"",
- "password":"",
- "interval":30
- }
-}
-```
-#### 事件
-##### fEvtBsTcpipParams
-- **主题**: /basestation/\${baseSN}/receive
-- **功能描述**:返回基站TCP/IP参数
-- **参数说明**
-
-|参数名|类型|限制|非空|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+mac|string||是|MAC地址|
-|+ip|string||是|IP地址|
-|+mask|string||是|子网掩码|
-|+gateway|string||是|网关地址|
-|+ipAllocation|int||否|基站IP获取方式
0 - 手动指定
1 - DHCP获取|
-
-- **示例代码**
-```Json
-{
- "fun":"fEvtBsTcpipParams",
- "dataTag":"1",
- "data":{
- "mac":"FF:FF:FF:FF:FF:FF",
- "ip":"192.168.0.10",
- "mask":"255.255.255.0",
- "gateway":"192.168.0.1",
- "ipAllocation":1
- }
-}
-```
-##### fEvtBsMqttParams
-- **主题**: /basestation/\${baseSN}/receive
-- **功能描述**:返回基站MQTT参数
-- **参数说明**
-
-|参数名|类型|限制|非空|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+server|string||是|服务器地址,IP|
-|+port|int||是|端口,默认1883|
-|+userName|string||否|连接服务器的用户名,可不设置|
-|+password|string||否|连接服务器的密码,可不设置|
-|+interval|int|>=10|否|基站连接服务器失败后重连的间隔时长,单位秒|
-- **示例代码**
-```Json
-{
- "fun":"fEvtBsMqttParams",
- "dataTag":"1",
- "data":{
- "server":"192.168.10.10",
- "port":1883,
- "userName":"",
- "password":"",
- "interval":30
- }
-}
-```
### 配对模式
#### 方法
##### startBsFastPair
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:启动快速配对,键盘配对成功返回键盘信息 [sEvtBsKpOnlineMsg](#sevtbskponlinemsg)
- **参数说明**
@@ -1952,16 +2049,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"startBsFastPair",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### stopBsFastPair
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:停止快速配对
- **参数说明**
@@ -1969,12 +2068,14 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"stopBsFastPair",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
#### 事件
@@ -1987,7 +2088,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 白名单模式
#### 方法
##### getBsWhitelist
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:获取基站白名单列表
- **参数说明**
@@ -1995,16 +2096,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsWhitelist",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### setBsWhitelist
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:设置基站白名单列表,将基站白名单替换为写入的键盘SN列表
- **参数说明**
@@ -2012,21 +2115,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+keySns|array|-|是|待写入的键盘SN数组|
+|+keySns|array|-|是|待写入的键盘SN数组,最多不超过200
键盘SN为10位数字|
- **示例代码**
-```Json
+```json
{
"fun":"setBsWhitelist",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySns":["2024021001","2024021002","2024021003","2024021004"]
}
}
```
##### clearBsWhitelist
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:清空基站白名单列表
- **参数说明**
@@ -2034,16 +2139,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"clearBsWhitelist",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### addBsWhitelist
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:添加键盘至基站白名单列表
- **参数说明**
@@ -2051,21 +2158,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+keySns|array|-|是|待添加的键盘SN列表|
+|+keySns|array|-|是|待添加的键盘SN列表
键盘SN为10位数字|
- **示例代码**
-```Json
+```json
{
"fun":"addBsWhitelist",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySns":["2024021001"]
}
}
```
##### delBsWhitelist
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:从基站白名单列表中删除键盘
- **参数说明**
@@ -2073,69 +2182,27 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+keySns|array|-|是|待删除的键盘SN列表|
+|+keySns|array|-|是|待删除的键盘SN列表
键盘SN为10位数字|
- **示例代码**
-```Json
+```json
{
"fun":"delBsWhitelist",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySns":["2024021001"]
}
}
```
-##### lockBsWhitelistKp
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:锁定指定的键盘SN,基站限制容量时,被锁定键盘SN不会被新刷卡加入的键盘挤出
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+keySns|array|-|是|待锁定的键盘SN列表,空数组代表锁定所有键盘|
-
-- **示例代码**
-```Json
-{
- "fun":"lockBsWhitelistKp",
- "dataTag":"1",
- "data":{
- "keySns":["2024021001"]
- }
-}
-```
-##### unlockBsWhitelistKp
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:解锁键盘SN
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+keySns|array|-|是|待解锁的键盘SN列表,空数组代表解锁所有键盘|
-
-- **示例代码**
-```Json
-{
- "fun":"unlockBsWhitelistKp",
- "dataTag":"1",
- "data":{
- "keySn":["2024021001"]
- }
-}
-```
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回此事件
##### fEvtBsWhitelist
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回基站白名单列表
- **参数说明**
@@ -2143,14 +2210,16 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySns|array||是|基站当前的白名单列表|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsWhitelist",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySns":["2024021001","2024021002","2024021003","2024021004"]
}
@@ -2158,7 +2227,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
```
##### fEvtSetBsWhitelist
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回设置白名单状态
- **参数说明**
@@ -2166,15 +2235,17 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
|++keySns|array||是|键盘SN数组|
|++state|int||是|键盘SN的写入状态
0-写入成功
1-写入失败|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtSetBsWhitelist",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":[{
"keySns":["2024021001","2024021002"],
"state":0
@@ -2186,7 +2257,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
```
##### fEvtAddBsWhitelist
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回增加键盘状态
- **参数说明**
@@ -2194,15 +2265,17 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
|++keySns|array||是|键盘SN数组|
|++state|int||是|键盘的增加状态
0-增加成功
1-增加失败|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtAddBsWhitelist",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":[{
"keySns":["2024021001","2024021002"],
"state":0
@@ -2214,7 +2287,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
```
##### fEvtDelBsWhitelist
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回删除键盘状态
- **参数说明**
@@ -2222,15 +2295,17 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
|++keySns|array||是|键盘SN数组|
|++state|int||是|键盘的删除状态
0-删除成功
1-删除失败|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtDelBsWhitelist",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":[{
"keySns":["2024021002"],
"state":0
@@ -2241,160 +2316,247 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
-##### fEvtLockBsWhitelistKp
-- **主题**:/basestation/\${baseSN}/receive
-- **功能描述**:返回键盘锁定状态
+### 网络参数设置
+#### 方法
+##### getBsTcpipParams
+- **主题**:/client/{baseSN}/send
+- **功能描述**:获取基站TCP/IP参数
- **参数说明**
-|参数名|类型|限制|非空|说明|
+|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|array|-|是|传送参数的对象数组|
-|++keySn|string||是|解锁或锁定的键盘SN|
-|++state|int||是|键盘的锁定状态
0-未锁定
1-锁定|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
- "fun":"fEvtLockBsWhitelistKp",
+ "fun":"getBsTcpipParams",
"dataTag":"1",
- "data":[{
- "keySn":"2024021001",
- "state":1
- }]
+ "baseSn":"2024061101"
}
```
-### 基站加密
-#### 方法
-##### getBsSoftwareKey
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:获取基站软件狗密钥
+##### setBsTcpipParams
+- **主题**:/client/{baseSN}/send
+- **功能描述**:设置基站TCP/IP参数
- **参数说明**
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|object|-|是|传送参数的对象|
+|+ip|string||否|IP地址|
+|+mask|string||否|子网掩码|
+|+gateway|string||否|网关地址|
+|+ipAllocation|int||否|基站IP获取方式
0 - 手动指定
1 - DHCP获取|
- **示例代码**
-```Json
+```json
{
- "fun":"getBsSoftwareKey",
- "dataTag":"1"
+ "fun":"setBsTcpipParams",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data":{
+ "ip":"192.168.0.10",
+ "mask":"255.255.255.0",
+ "gateway":"192.168.0.1",
+ "ipAllocation":1
+ }
}
```
-##### setBsSoftwareKey
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:设置基站软件狗密钥
+##### getBsMqttParams
+- **主题**:/client/{baseSN}/send
+- **功能描述**:获取基站MQTT参数
- **参数说明**
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+value|string|-|是|基站软件狗密钥,长度不超过32字节|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
- "fun":"setBsSoftwareKey",
+ "fun":"getBsMqttParams",
"dataTag":"1",
- "data":{
- "value":"sunvote123456"
- }
+ "baseSn":"2024061101"
}
```
-##### getBsAES
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:获取基站加密方式
+##### setBsMqttParams
+- **主题**:/client/{baseSN}/send
+- **功能描述**:设置基站MQTT参数
- **参数说明**
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|object|-|是|传送参数的对象|
+|+server|string||是|服务器IP地址|
+|+port|int||是|端口,默认1883|
+|+userName|string||否|连接服务器的用户名,可不设置|
+|+password|string||否|连接服务器的密码,可不设置|
+|+interval|int|>=30|否|基站连接服务器失败后重连的间隔时长,单位秒|
- **示例代码**
-```Json
+```json
{
- "fun":"getBsAES",
- "dataTag":"1"
+ "fun":"setBsMqttParams",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data":{
+ "server":"192.168.10.10",
+ "port":1883,
+ "userName":"",
+ "password":"",
+ "interval":30
+ }
}
```
-##### setBsAES
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:设置基站加密方式
+#### 事件
+##### fEvtBsTcpipParams
+- **主题**: /basestation/{baseSN}/receive
+- **功能描述**:返回基站TCP/IP参数
- **参数说明**
-|参数名|类型|限制|是否必填|说明|
+|参数名|类型|限制|非空|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+value|string|-|是|无线加密方式
0:不加密
1:AES128加密
2:AES256加密 |
+|+mac|string||是|MAC地址|
+|+ip|string||是|IP地址|
+|+mask|string||是|子网掩码|
+|+gateway|string||是|网关地址|
+|+ipAllocation|int||否|基站IP获取方式
0 - 手动指定
1 - DHCP获取|
- **示例代码**
-```Json
+```json
{
- "fun":"setBsAES",
+ "fun":"fEvtBsTcpipParams",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "value":"0"
+ "mac":"FF:FF:FF:FF:FF:FF",
+ "ip":"192.168.0.10",
+ "mask":"255.255.255.0",
+ "gateway":"192.168.0.1",
+ "ipAllocation":1
}
}
```
-#### 事件
-##### fEvtBsSoftwareKey
-- **主题**:/basestation/\${baseSN}/receive
-- **功能描述**:返回基站的软件狗密钥
+##### fEvtBsMqttParams
+- **主题**: /basestation/{baseSN}/receive
+- **功能描述**:返回基站MQTT参数
- **参数说明**
|参数名|类型|限制|非空|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+value|string||是|返回基站的软件狗密钥|
+|+server|string||是|服务器地址,IP|
+|+port|int||是|端口,默认1883|
+|+userName|string||否|连接服务器的用户名,可不设置|
+|+password|string||否|连接服务器的密码,可不设置|
+|+interval|int|>=10|否|基站连接服务器失败后重连的间隔时长,单位秒|
- **示例代码**
-```Json
+```json
{
- "fun":"fEvtBsSoftwareKey",
+ "fun":"fEvtBsMqttParams",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data":{
+ "server":"192.168.10.10",
+ "port":1883,
+ "userName":"",
+ "password":"",
+ "interval":30
+ }
+}
+```
+### 基站加密
+#### 方法
+##### getBsSoftwareKey
+- **主题**:/client/{baseSN}/send
+- **功能描述**:获取基站软件狗密钥
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+
+- **示例代码**
+```json
+{
+ "fun":"getBsSoftwareKey",
+ "dataTag":"1",
+ "baseSn":"2024061101"
+}
+```
+##### setBsSoftwareKey
+- **主题**:/client/{baseSN}/send
+- **功能描述**:设置基站软件狗密钥
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|object|-|是|传送参数的对象|
+|+value|string|-|是|基站软件狗密钥,长度不超过32字节|
+
+- **示例代码**
+```json
+{
+ "fun":"setBsSoftwareKey",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"value":"sunvote123456"
}
}
```
-##### fEvtBsAES
-- **主题**:/basestation/\${baseSN}/receive
-- **功能描述**:返回基站的无线加密模式
+#### 事件
+##### fEvtBsSoftwareKey
+- **主题**:/basestation/{baseSN}/receive
+- **功能描述**:返回基站的软件狗密钥
- **参数说明**
|参数名|类型|限制|非空|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+value|string||是|返回基站的无线加密模式
0:不加密
1:AES128加密
2:AES256加密|
+|+value|string||是|返回基站的软件狗密钥|
- **示例代码**
-```Json
+```json
{
- "fun":"fEvtBsAES",
+ "fun":"fEvtBsSoftwareKey",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "value":"0"
+ "value":"sunvote123456"
}
}
```
-
### 基站维护
#### 方法
##### getBsLogInfo
-- **主题**:/manage/\${baseSN}/receive
+- **主题**:/manage/{baseSN}/send
- **功能描述**:获取基站日志,用于出现故障需要排查问题时获取基站内部日志记录
- **参数说明**
@@ -2402,17 +2564,39 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"getBsLogInfo",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
+}
+```
+
+##### clearBsLogInfo
+- **主题**:/manage/{baseSN}/send
+- **功能描述**:清空基站内部日志记录
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+
+- **示例代码**
+```json
+{
+ "fun":"clearBsLogInfo",
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### resetBsSystem
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:软复位基站(公共主题可用,但不体现在外部版本协议中)
- **参数说明**
@@ -2420,17 +2604,19 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"resetBsSystem",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### resetBsPower
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:断电复位基站(公共主题可用,但不体现在外部版本协议中)
- **参数说明**
@@ -2438,25 +2624,47 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
{
"fun":"resetBsPower",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
+}
+```
+
+##### startBsSelfCheck
+- **主题**:/manage/{baseSN}/send
+- **功能描述**:开始基站自检,基站自检状态中不接收其他指令,空闲状态中才进入自检
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+
+- **示例代码**
+```json
+{
+ "fun":"startBsSelfCheck",
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
#### 事件
##### [sEvtStateCode](#sevtstatecode)
返回指令的接收状态
-注意:内部指令的接收状态需从**主题: /manage/\${baseSN}/receive** 返回
+注意:内部指令的接收状态需从**主题: /manage/{baseSN}/receive** 返回
##### [sEvtBsConnectState](#sevtbsconnectstate)
复位基站后,基站重新连接成功后上报
##### fEvtBsLogInfo
-- **主题**: /manage/\${baseSN}/receive
+- **主题**: /manage/{baseSN}/receive
- **功能描述**:返回基站存储的日志内容
- **参数说明**
@@ -2464,15 +2672,17 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+index|int||是|数据包序号,从1开始,传0代表日志已传完|
|+info|string||是|日志内容
日志的时间依赖于基站授时,需要加上时区得到具体的时间|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsLogInfo",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"index":1,
"info":"XXXXXXXXXXXXX"
@@ -2480,10 +2690,51 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
+##### fEvtBsSelfCheck
+- **主题**: /manage/{baseSN}/receive
+- **功能描述**:返回基站自检的结果
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|array|-|是|传送参数的对象数组|
+|++name|string||是|检测项名称:MCU、RF、FLASH、EEPROM|
+|++state|int||是|检测结果
0-功能正常
1-功能异常|
+
+- **示例代码**
+```json
+{
+ "fun":"fEvtBsSelfCheck",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data":[
+ {
+ "name":"MCU",
+ "state":0
+ },
+ {
+ "name":"RF",
+ "state":0
+ },
+ {
+ "name":"FLASH",
+ "state":0
+ },
+ {
+ "name":"EEPROM",
+ "state":0
+ }
+ ]
+}
+```
+
### 基站升级
#### 方法
##### startBsUpdate
-- **主题**:/manage/\${baseSN}/send
+- **主题**:/manage/{baseSN}/send
- **功能描述**:基站固件升级
- **参数说明**
@@ -2491,19 +2742,21 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+partition|int||是|存储区域
1-备份区 使用备份区固件的方法:打开基站盖子,按住SW1按钮,然后上电,这时基站固件就会更新成备份区的固件
2-更新区,实时升级基站固件|
-|+url|string||是|待升级的固件地址,可访问的网络url
直连基站为本地的文件路径|
+|+partition|int||是|存储区域
1-备份区 使用备份区固件的方法:打开基站盖子,按住SW1按钮,上电后松开按钮,这时基站固件就会更新成备份区的固件
2-更新区,实时升级基站固件|
+|+url|string||是|待升级的固件地址,可访问的网络url|
|+version|string||是|待升级的基站固件版本|
|+crc|uint||是|固件CRC校验码,10进制数字|
-|+time|string||是|时间,yyyyMMddHHmmss|
-|+verCode|string||是|内部主题校验码,时间+固定key加密|
+
- **示例代码**
-```Json
+```json
{
"fun":"startBsUpdate",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"partition":2,
"url":"http://192.168.10.10/V1.0.3.bin",
@@ -2513,7 +2766,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
##### downloadFontLib
-- **主题**:/manage/\${baseSN}/send
+- **主题**:/manage/{baseSN}/send
- **功能描述**:下载更新基站字库文件
- **参数说明**
@@ -2521,19 +2774,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
+|+partition|int||是|存储区域
1-备份区
2-更新区|
|+url|string||是|待下载的字库地址,可访问的网络url
直连基站为本地的文件路径|
|+version|string||是|待升级的字库版本|
|+crc|int||是|字库CRC校验码,10进制数字|
-|+time|string||是|时间,yyyyMMddHHmmss|
-|+verCode|string||是|内部主题校验码,时间+固定key加密|
+
- **示例代码**
-```Json
+```json
{
"fun":"downloadFontLib",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
+ "partition":2,
"url":"http://192.168.10.10/V1.0.3.bin",
"version":"1.0.3",
"crc":1429319861
@@ -2544,10 +2801,10 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
#### 事件
##### [sEvtStateCode](#sevtstatecode)
返回升级指令的接收状态
-注意:升级指令的接收状态需从**主题: /manage/\${baseSN}/receive** 返回
+注意:升级指令的接收状态需从**主题: /manage/{baseSN}/receive** 返回
##### fEvtBsUpateState
-- **主题**: /manage/\${baseSN}/receive
+- **主题**: /manage/{baseSN}/receive
- **功能描述**:返回基站启动升级状态
- **参数说明**
@@ -2555,15 +2812,17 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+state|int||是|启动升级状态
0 - 准备升级
1 - 升级成功
2 - 升级失败
|+msg|string||否|返回的失败原因
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsUpateState",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"state":2,
"msg":"error msg"
@@ -2572,7 +2831,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
```
##### fEvtBsUpdateProgress
-- **主题**: /manage/\${baseSN}/receive
+- **主题**: /manage/{baseSN}/receive
- **功能描述**:返回基站升级进度
- **参数说明**
@@ -2580,21 +2839,24 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+progress|int||是|升级进度,百分比|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsUpdateProgress",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"progress":20
}
}
```
+
##### fEvtBsFontLibState
-- **主题**: /manage/\${baseSN}/receive
+- **主题**: /manage/{baseSN}/receive
- **功能描述**:返回基站下载字库状态
- **参数说明**
@@ -2602,15 +2864,17 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+state|int||是|启动升级状态
0 - 准备下载
1 - 下载完成
2 - 下载失败
|+msg|string||否|返回的失败原因
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsFontLibState",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"state":2,
"msg":"error msg"
@@ -2619,7 +2883,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
```
##### fEvtBsFontLibProgress
-- **主题**: /manage/\${baseSN}/receive
+- **主题**: /manage/{baseSN}/receive
- **功能描述**:返回基站下载字库进度
- **参数说明**
@@ -2627,14 +2891,16 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+progress|int||是|下载进度,百分比|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtBsFontLibProgress",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"progress":20
}
@@ -2645,7 +2911,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 识别设置
#### 方法
##### setKpSN
-- **主题**:/manage/\${baseSN}/send
+- **主题**:/manage/{baseSN}/send
- **功能描述**:设置指定键盘的出厂编码
- **参数说明**
@@ -2653,6 +2919,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+oldKeySn|string||是|键盘原SN|
|+newKeySn|string||是|待设置的新SN|
@@ -2660,40 +2927,20 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|+verCode|string||是|内部主题校验码,时间+固定key加密|
- **示例代码**
-```Json
+```json
{
- "fun":"setKpIdentityMode",
+ "fun":"setKpSN",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"oldKeySn":"1234567890",
"newKeySn":"2024021011"
}
}
```
-##### getKpID
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:获取键盘编号
-- **参数说明**
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+keySn|string||是|需读取编号的键盘SN|
-
-- **示例代码**
-```Json
-{
- "fun":"getKpID",
- "dataTag":"1",
- "data":{
- "keySn":"2024021011"
- }
-}
-```
##### setKpID
-- **主题**:/client/\${baseSN}/send
+- **主题**:/manage/{baseSN}/send
- **功能描述**:设置键盘编号
- **参数说明**
@@ -2701,239 +2948,164 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySn|string||是|需设置编号的键盘SN|
|+keyId|int||是|键盘编号,不超过65535|
- **示例代码**
-```Json
+```json
{
"fun":"setKpID",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySn":"2024021011",
"keyId":1
}
}
```
-##### getKpModel
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:获取键盘型号
+
+##### startGetKpInfo
+- **主题**:/manage/{baseSN}/send
+- **功能描述**:开始获取键盘信息
- **参数说明**
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+keySn|string||是|需读取型号的键盘SN|
- **示例代码**
-```Json
+```json
{
- "fun":"getKpModel",
+ "fun":"startGetKpInfo",
"dataTag":"1",
- "data":{
- "keySn":"2024021011"
- }
+ "baseSn":"2024061101"
}
```
-##### getKpFWVersion
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:获取键盘型号
+##### stopGetKpInfo
+- **主题**:/manage/{baseSN}/send
+- **功能描述**:停止获取键盘信息
- **参数说明**
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+keySn|string||是|需读取版本的键盘SN|
- **示例代码**
-```Json
+```json
{
- "fun":"getKpFWVersion",
+ "fun":"stopGetKpInfo",
"dataTag":"1",
- "data":{
- "keySn":"2024021011"
- }
+ "baseSn":"2024061101"
}
```
-##### getKpIdentityMode
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:获取键盘识别模式
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
+#### 事件
+##### [sEvtStateCode](#sevtstatecode)
+发送指令后返回接收状态
-- **示例代码**
-```Json
-{
- "fun":"getKpIdentityMode",
- "dataTag":"1"
-}
-```
-##### setKpIdentityMode
-- **主题**:/manage/\${baseSN}/send
-- **功能描述**:设置键盘识别模式
+##### fEvtSetKpSN
+- **主题**:/manage/{baseSN}/receive
+- **功能描述**:返回写键盘SN状态
- **参数说明**
-|参数名|类型|限制|是否必填|说明|
+|参数名|类型|限制|非空|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+value|string||是|设置键盘识别模式
0 - SN模式
1 - ID+SN模式|
-|+time|string|数字|是|时间,yyyyMMddHHmmss|
-|+verCode|string||是|内部主题校验码,时间+固定key加密|
+|+keySn|string||是|设置键盘SN的原SN|
+|+state|string||是|设置是否成功
0-设置成功
1-设置失败|
- **示例代码**
-```Json
+```json
{
- "fun":"setKpIdentityMode",
+ "fun":"fEvtSetKpSN",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "value":"0"
+ "keySn":"1234567890",
+ "state":"0"
}
}
```
-#### 事件
-##### fEvtKpIdentityMode
-- **主题**:/basestation/\${baseSN}/receive
-- **功能描述**:返回键盘识别模式
+##### fEvtSetKpID
+- **主题**:/manage/{baseSN}/receive
+- **功能描述**:返回键盘编号
- **参数说明**
|参数名|类型|限制|非空|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+value|string||是|设置键盘识别模式
0 - SN模式
1 - ID+SN模式|
+|+keySn|string||是|设置键盘id的键盘SN|
+|+state|string||是|设置是否成功
0-设置成功
1-设置失败|
- **示例代码**
-```Json
+```json
{
- "fun":"fEvtKpIdentityMode",
+ "fun":"fEvtSetKpID",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "value":"0"
+ "keySn":"2024021011",
+ "state":"0"
}
}
```
-##### fEvtKpSN
-- **主题**:/manage/\${baseSN}/receive
-- **功能描述**:返回写键盘SN状态
+##### fEvtKpInfo
+- **主题**:/manage/{baseSN}/receive
+- **功能描述**:返回键盘信息
- **参数说明**
|参数名|类型|限制|非空|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+keySn|string||是|设置键盘SN的原SN|
-|+state|string||是|设置是否成功
0-设置成功
1-设置失败|
+|+keySn|string||是|键盘SN|
+|+keyId|int||是|键盘Id|
+|+model|int||是|键盘型号代码|
+|+version|string||是|键盘固件版本|
- **示例代码**
-```Json
+```json
{
- "fun":"fEvtKpSN",
+ "fun":"fEvtKpInfo",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "keySn":"1234567890",
- "state":"0"
+ "keySn":"2024021011",
+ "keyId":1,
+ "model":67,
+ "version":"1.0.0"
}
}
```
-##### fEvtKpID
-- **主题**:/basestation/\${baseSN}/receive
-- **功能描述**:返回键盘编号
+
+### 交互设置
+#### 方法
+##### setKpUserStbMsg
+- **主题**:/client/{baseSN}/send
+- **功能描述**:设置用户内置状态语
- **参数说明**
-|参数名|类型|限制|非空|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+keySn|string||是|设置键盘SN的原SN|
-|+keyId|int||是|键盘编号|
-
-- **示例代码**
-```Json
-{
- "fun":"fEvtKpID",
- "dataTag":"1",
- "data":{
- "keySn":"2024021011",
- "keyId":11
- }
-}
-```
-##### fEvtKpModel
-- **主题**:/basestation/\${baseSN}/receive
-- **功能描述**:返回键盘型号
-- **参数说明**
-
-|参数名|类型|限制|非空|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+keySn|string||是|设置键盘SN的原SN|
-|+model|int||是|键盘型号代码|
-
-- **示例代码**
-```Json
-{
- "fun":"fEvtKpModel",
- "dataTag":"1",
- "data":{
- "keySn":"2024021011",
- "model":67
- }
-}
-```
-
-##### fEvtKpFWVersion
-- **主题**:/basestation/\${baseSN}/receive
-- **功能描述**:返回键盘型号
-- **参数说明**
-
-|参数名|类型|限制|非空|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+keySn|string||是|设置键盘SN的原SN|
-|+version|string||是|键盘固件版本|
-
-- **示例代码**
-```Json
-{
- "fun":"fEvtKpFWVersion",
- "dataTag":"1",
- "data":{
- "keySn":"2024021011",
- "version":"1.0.0"
- }
-}
-```
-
-### 交互设置
-#### 方法
-##### setKpUserStbMsg
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:设置用户内置状态语
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
+|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+online|string||是|在线状态显示的待机语
空字符串清除|
|+offline|string||是|离线状态显示的待机语
空字符串清除|
@@ -2941,10 +3113,11 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|+submitted|string||是|已提交状态语
空字符串清除|
- **示例代码**
-```Json
+```json
{
"fun":"setKpUserStbMsg",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"online":"请认真听讲",
"offline":"离线",
@@ -2954,7 +3127,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
##### rtSetKpUserPrompt
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:实时设置提示反馈信息
- **参数说明**
@@ -2962,16 +3135,19 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|否|传送参数的对象数组|
|++keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘
注意:不允许空数组和指定SN数组混合使用
包含空数组默认为全部在线键盘,其他指定键盘无效|
|++info|string||否|设置的反馈信息
不同键盘可设置不同反馈信息|
- **示例代码**
-```Json
+
+```json
//分别提示
{
"fun":"rtSetKpUserPrompt",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [
{
"keySns": ["1479824643","1479824645"],
@@ -2987,6 +3163,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
{
"fun":"rtSetKpUserPrompt",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [
{
"keySns": [],
@@ -2995,17 +3172,12 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
]
}
```
-
-##### rtSetKpUserLedEffects
-##### rtSetKpUserVibEffects
-##### rtSetKpUserBeepEffects
-
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
##### fEvtKpUserStbMsg
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回设置状态语的状态
- **参数说明**
@@ -3013,21 +3185,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|否|传送参数的对象|
|+state|string||是|设置状态语是否成功
0 - 成功
1 - 失败|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtKpUserStbMsg",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"state":"0"
}
}
```
##### fEvtSetKpUserPrompt
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回实时设置提示语是否成功
- **参数说明**
@@ -3035,15 +3209,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|设置提示语信息的键盘SN|
|++state|string||是|设置的提示语是否成功
0 - 成功
1 - 失败|
- **示例代码**
-```Json
+
+```json
{
"fun":"fEvtSetKpUserPrompt",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [
{
"keySn": "1479824643",
@@ -3063,7 +3240,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 在线状态
#### 方法
##### startGetKpOnline
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:开始获取键盘在线信息,键盘在线返回键盘信息
- **参数说明**
@@ -3071,17 +3248,20 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+
+```json
{
"fun":"startGetKpOnline",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### stopGetKpOnline
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:停止获取键盘在线信息
- **参数说明**
@@ -3089,20 +3269,47 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+
+```json
{
"fun":"stopGetKpOnline",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
+}
+```
+##### rtGetKpOnlineList
+- **主题**:/client/{baseSN}/send
+- **功能描述**:实时获取基站存储的键盘在线列表
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+
+- **示例代码**
+
+```json
+{
+ "fun":"rtGetKpOnlineList",
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
+
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回此事件
+##### [sEvtBsKpOnlineList](#sevtbskponlinelist)
+实时获取基站存储的键盘在线列表时返回此事件
+
##### fEvtKpOnlineMsg
-- **主题**: /basestation/\${baseSN}/receive
+- **主题**: /basestation/{baseSN}/receive
- **功能描述**:主动获取在线键盘时,在线键盘状态报告
- **参数说明**
@@ -3110,6 +3317,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySn|string||是|键盘SN|
|+version|string||是|键盘固件版本|
@@ -3117,10 +3325,11 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|+voltage|double||是|键盘电量(待键盘修改成百分比)|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtKpOnlineMsg",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySn":"1234567890",
"version":"1.0.0",
@@ -3132,30 +3341,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 维护功能
#### 方法
-##### remoteKpPowerOff
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:遥控键盘关机
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象数组|
-|+keySns|array||否|需要执行指令的键盘SN数组,
空数组表示所有键盘|
-
-- **示例代码**
-```Json
-{
- "fun":"remoteKpPowerOff",
- "dataTag":"1",
- "data":{
- "keySns":["1479824644"]
- }
-}
-```
##### remoteKpSleep
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:遥控键盘休眠
- **参数说明**
@@ -3163,21 +3350,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象数组|
|+keySns|array||否|需要执行指令的键盘SN数组,空数组表示所有键盘|
- **示例代码**
-```Json
+```json
{
"fun":"remoteKpSleep",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySns":["1479824644"]
}
}
```
##### startKpFWUpdate
-- **主题**:/manage/\${baseSN}/send
+- **主题**:/manage/{baseSN}/send
- **功能描述**:键盘升级
- **参数说明**
@@ -3185,21 +3374,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+partition|int||是|存储区域
1-备份区
2-更新区|
|+url|string||是|待升级的固件地址,可访问的网络url
直连基站可为本地的文件路径|
|+version|string||是|待升级的固件版本号|
|+crc|uint||是|固件CRC校验码,10进制数字|
-|+time|string|数字|是|时间,yyyyMMddHHmmss|
-|+verCode|string||是|内部主题校验码,时间+固定key加密|
+
- **示例代码**
-```Json
+```json
{
"fun":"startKpFWUpdate",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "partition":1,
+ "partition":2,
"url":"http://192.168.10.10/V1.0.3.bin",
"version":"1.0.3",
"crc":1429319861
@@ -3207,7 +3398,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
##### stopKpFWUpdate
-- **主题**:/manage/\${baseSN}/send
+- **主题**:/manage/{baseSN}/send
- **功能描述**:停止键盘升级
- **参数说明**
@@ -3215,29 +3406,27 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+time|string|数字|是|时间,yyyyMMddHHmmss|
-|+verCode|string||是|内部主题校验码,时间+固定key加密|
+
- **示例代码**
-```Json
+```json
{
"fun":"stopKpFWUpdate",
"dataTag":"1",
- "data":{
- "time":"",
- "verCode":""
- }
+ "baseSn":"2024061101"
}
```
#### 事件
##### [sEvtStateCode](#sevtstatecode)
返回升级指令的接收状态
-注意:升级指令的接收状态需从**主题: /manage/\${baseSN}/receive** 返回
+注意:升级指令的接收状态需从**主题: /manage/{baseSN}/receive** 返回
##### fEvtKpFWUpdateState
-- **主题**: /manage/\${baseSN}/receive
+- **主题**: /manage/{baseSN}/receive
- **功能描述**:返回键盘升级状态
- **参数说明**
@@ -3245,15 +3434,17 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+state|int||是|升级状态
0 - 进入升级
1 - 升级成功
2 - 升级失败
3 - 已停止(接收到停止指令)
|+msg|string||否|返回的失败原因
- **示例代码**
-```Json
+```json
{
"fun":"fEvtKpFWUpdateState",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"state":0,
"msg":""
@@ -3261,7 +3452,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
##### fEvtKpUpdateProgress
-- **主题**: /manage/\${baseSN}/receive
+- **主题**: /manage/{baseSN}/receive
- **功能描述**:返回键盘升级进度
- **参数说明**
@@ -3269,14 +3460,16 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+progress|int||是|升级进度,百分比|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtKpUpdateProgress",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"progress":20
}
@@ -3286,7 +3479,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 无线绑定
#### 方法
##### rtSetKpBindingInfo
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:实时设置绑定信息到键盘
- **参数说明**
@@ -3294,15 +3487,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组,不可为空|
|++keySn|string||是|需要设置绑定信息的键盘SN|
|++info|string||是|设置的绑定信息,一般为学生姓名
最长48个字符,显示在键盘左上角|
- **示例代码**
-```Json
+
+```json
{
"fun":"rtSetKpBindingInfo",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [
{
"keySn": "1479824643",
@@ -3317,7 +3513,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
```
##### clearKpBindingInfo
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:清除键盘绑定信息
- **参数说明**
@@ -3325,14 +3521,17 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象数组|
|+keySns|array||否|需要清除绑定信息键盘SN数组,
空数组表示清空所有键盘|
- **示例代码**
-```Json
+
+```json
{
"fun":"clearKpBindingInfo",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": {
"keySns":["1479824643","1479824644","1479824645"]
}
@@ -3343,7 +3542,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
发送指令后返回接收状态
##### fEvtKpBindingInfo
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回键盘实时设置绑定信息的状态是否成功
- **参数说明**
@@ -3351,15 +3550,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|否|传送参数的对象数组|
|++keySn|string||是|需要设置绑定信息的键盘SN|
|++state|string||是|设置的绑定信息是否成功
0 - 成功
1 - 失败|
- **示例代码**
-```Json
+
+```json
{
"fun":"fEvtKpBindingInfo",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [
{
"keySn": "1479824643",
@@ -3373,7 +3575,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
##### fEvtClearKpBindingInfo
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回清空绑定信息的指令状态是否成功
- **参数说明**
@@ -3381,14 +3583,17 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|否|传送参数的对象|
|+state|string||是|设置的绑定信息是否成功
0 - 成功
1 - 失败|
- **示例代码**
-```Json
+
+```json
{
"fun":"fEvtClearKpBindingInfo",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": {
"state": "0"
}
@@ -3398,7 +3603,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 同步签到
#### 方法
##### startKpSignIn
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:启动同步签到
- **参数说明**
@@ -3406,19 +3611,21 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传递参数的对象|
|+mode|int|-|是|签到模式
1-按键签到,可指定按键
2-PIN码签到,可指定PIN码长度
3-指纹签到(暂不支持)|
-|+allowModify |int|-|是 | 修改模式
0:不可修改
1:可以修改(默认值)|
+|+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键 |
+|+keyValue |int|-|是 | 指定按键键值
0: 未指定(OK键签到)
1-9: 按键1-9
10: 按键0
11: 上键
12: 下键
13: OK键
14: ESC键
15: Menu键 |
|+tipTitle |string|-|否| 提示标题,长度最多不超过16个字节|
- **示例代码**
-```Json
+```json
//按键签到
{
"fun":"startKpSignIn",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"mode":1,
"allowModify":1,
@@ -3431,6 +3638,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
{
"fun":"startKpSignIn",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"mode":2,
"allowModify":1,
@@ -3439,9 +3647,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
-
-##### stopKpSignIn
-- **主题**:/client/\${baseSN}/send
+
+##### [stopKpVote](#stopkpvote)
+停止同步签到
+
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
@@ -3467,7 +3677,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 随时签到
#### 方法
##### rtStartKpSignIn
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:启动随时签到绑定
- **参数说明**
@@ -3475,38 +3685,44 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传递参数的对象|
|+mode|int|-|是|签到模式
1-按键签到,按OK键签到自动授权(暂不支持)
2-PIN码签到,输入pin码后由应用程序决定是否授权
3-指纹签到(暂不支持)|
- **示例代码**
-```Json
+
+```json
{
"fun":"rtStartKpSignIn",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"mode":2
}
}
```
##### rtStopKpSignIn
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:停止签到绑定
+- **主题**:/client/{baseSN}/send
+- **功能描述**:停止随时签到绑定
- **参数说明**
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+
+```json
{
"fun":"rtStopKpSignIn",
- "dataTag":"1"
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
##### rtSetKpLoginAllowed
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:实时PIN绑定授权,可取消授权
- **参数说明**
@@ -3514,15 +3730,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传递参数的对象|
|+keySn|string|-|是|键盘SN|
|+state|int|-|是|1-授权成功
2-授权失败
3-解除已授权|
- **示例代码**
-```Json
+
+```json
{
"fun":"rtSetKpLoginAllowed",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySn":"1479824643",
"state":1
@@ -3534,7 +3753,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
发送指令后返回接收状态
##### fEvtKpSignIn
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回键盘提交签到信息
- **参数说明**
@@ -3542,16 +3761,21 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值|
|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
+|++voltage|double||是|键盘电量|
+|++retryCount|int||是|键盘提交数据的重发次数|
- **示例代码**
-```Json
+
+```json
{
"fun":"fEvtKpSignIn",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [{
"keySn": "1234567890",
"keyValue":"1004",
@@ -3566,7 +3790,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
##### fEvtKpLoginAllowed
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回键盘授权状态
- **参数说明**
@@ -3574,15 +3798,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySn|string||是|键盘SN|
|+state|string||是|0-执行成功
1-执行失败|
- **示例代码**
-```Json
+
+```json
{
"fun":"fEvtKpLoginAllowed",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": {
"keySn":"1479824643",
"state":"0"
@@ -3593,7 +3820,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 判断题
#### 方法
##### startQATrueFalse
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:启动判断题答题
- **参数说明**
@@ -3601,6 +3828,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘|
|+count|int||是|题目数量,1-16,>1多题快答|
@@ -3611,10 +3839,12 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|++answer|string||是|预设提交的按键值
1-对
2-错|
- **示例代码**
-```Json
+
+```json
{
"fun":"startQATrueFalse",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySns":[],
"count":1,
@@ -3627,8 +3857,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
-##### stopQATrueFalse
-- **主题**:/client/\${baseSN}/send
+
+
+##### [stopKpVote](#stopkpvote)
+停止判断题答题
+
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
##### fEvtQATrueFalse
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回键盘提交答题信息
- **参数说明**
@@ -3657,16 +3892,21 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值
1-对
2-错|
|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
+|++voltage|double||是|键盘电量|
+|++retryCount|int||是|键盘提交数据的重发次数|
- **示例代码**
-```Json
+
+```json
{
"fun":"fEvtQATrueFalse",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [{
"keySn": "1234567890",
"keyValue":"1",
@@ -3678,7 +3918,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 选择题
#### 方法
##### startQAChoice
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:启动选择题答题
- **参数说明**
@@ -3686,9 +3926,10 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘|
-|+count|int||是|题目数量,1-16,>1多题快答
optionalN >1时无效|
+|+count|int||是|题目数量,1-16,>1多题快答
注意:多题快答只适用于单选题,count>1时optionalN 默认为1,且options需 >1,显示模式mode默认为1|
|+mode|int||是|显示模式
1:显示字母(默认值) 2:显示数字 |
|+lessMode|int||是|迫选模式
0:可缺选(默认值) 1:不可缺选2:允许重复输入3:允许重复输入且不可缺选 |
|+options|int||是|选项数量,1≤M≤10(默认值4)|
@@ -3699,10 +3940,12 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|++answer|string||是|预设提交的按键值|
- **示例代码**
-```Json
+
+```json
{
"fun":"startQAChoice",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySns":[],
"mode": 1,
@@ -3718,8 +3961,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
-##### stopQAChoice
-- **主题**:/client/\${baseSN}/send
+
+##### [stopKpVote](#stopkpvote)
+停止选择题答题
+
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
##### fEvtQAChoice
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回键盘提交答题信息
- **参数说明**
@@ -3748,16 +3995,21 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值|
|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
+|++voltage|double||是|键盘电量|
+|++retryCount|int||是|键盘提交数据的重发次数|
- **示例代码**
-```Json
+
+```json
{
"fun":"fEvtQAChoice",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [{
"keySn": "1234567890",
"keyValue":"A",
@@ -3768,7 +4020,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 数字题
#### 方法
##### startQANum
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:启动数字题答题
- **参数说明**
@@ -3776,22 +4028,25 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘|
|+mode|int||是|模式
0:无规则 (S6最多16位,T2最多14位)
1:带小数位上下限(T2不支持)|
|+digits|int||是|小数位数,范围0-2,mode=1时有效
-|+numMin|int||是|可输入下限,mode=1有效
digits=0时 范围:0~65535
digits=1时 范围:0~6553
digits=2时 范围:0~655|
-|+numMax|int||是|可输入上限,mode=1有效
digits=0 范围:0~65535
digits=1 范围:0~6553
digits=2 范围:0~655|
+|+numMin|int||是|可输入下限,mode=1有效,范围0-100|
+|+numMax|int||是|可输入上限,mode=1有效,范围0-100|
|+allowModify|int||是|修改模式
0 - 不允许修改
1 - 允许修改|
|+tip|string||否|提示的标题,长度不超过16字符|
|+simParams|object||否|内部模拟测试参数设置对象|
|++answer|string||是|预设提交的按键值|
- **示例代码**
-```Json
+
+```json
{
"fun":"startQANum",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySns":[],
"mode": 1,
@@ -3806,8 +4061,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
-##### stopQANum
-- **主题**:/client/\${baseSN}/send
+
+##### [stopKpVote](#stopkpvote)
+停止数字题答题
+
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
##### fEvtQANum
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回键盘提交答题信息
- **参数说明**
@@ -3836,17 +4095,22 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值|
|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
+|++voltage|double||是|键盘电量|
+|++retryCount|int||是|键盘提交数据的重发次数|
- **示例代码**
-```Json
+
+```json
{
"fun":"fEvtQANum",
"dataTag":"1",
- "data": [{
+ "baseSn":"2024061101",
+ "data":[{
"keySn": "1234567890",
"keyValue":"10",
"keyTime":3.2
@@ -3856,7 +4120,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 抢答题
#### 方法
##### startQAQuicker
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:启动抢答题答题
- **参数说明**
@@ -3864,6 +4128,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘|
|+mode|int||是|模式
0:普通抢答|
@@ -3873,10 +4138,11 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|++answer|string||是|预设提交的按键值|
- **示例代码**
-```Json
+```json
{
"fun":"startQAQuicker",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySns":[],
"mode": 0,
@@ -3888,8 +4154,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
-##### stopQAQuicker
-- **主题**:/client/\${baseSN}/send
+
+
+##### [stopKpVote](#stopkpvote)
+停止抢答
+
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
##### fEvtQAQuicker
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回键盘提交答题信息
- **参数说明**
@@ -3918,16 +4189,21 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值|
|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
+|++voltage|double||是|键盘电量|
+|++retryCount|int||是|键盘提交数据的重发次数|
- **示例代码**
-```Json
+
+```json
{
"fun":"fEvtQAQuicker",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [{
"keySn": "1234567890",
"keyValue":"1",
@@ -3938,7 +4214,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 英文题
#### 方法
##### startQAEText
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:启动英文题答题
- **参数说明**
@@ -3946,6 +4222,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘|
|+mode|int||是|模式
0:自由输入|
@@ -3955,10 +4232,11 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|++answer|string||是|预设提交的按键值|
- **示例代码**
-```Json
+```json
{
"fun":"startQAEText",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySns":[],
"mode": 0,
@@ -3970,8 +4248,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
}
```
-##### stopQAEText
-- **主题**:/client/\${baseSN}/send
+
+
+##### [stopKpVote](#stopkpvote)
+停止英文题答题
+
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
##### fEvtQAEText
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回键盘提交答题信息
- **参数说明**
@@ -4000,16 +4282,18 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值|
|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtQAEText",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [{
"keySn": "1234567890",
"keyValue":"hello",
@@ -4021,7 +4305,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 短信息
#### 方法
##### sendKpMsg
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:指定键盘发送短信息
- **参数说明**
@@ -4029,6 +4313,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组,不可为空|
|++keySn|string||是|需要设置绑定信息的键盘SN
空字符串且只有一条信息时代表群发所有在线键盘|
|++month|int||是|月份,范围1-12|
@@ -4036,11 +4321,12 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|++info|string||是|信息内容|
- **示例代码**
-```Json
+```json
//指定键盘发送信息
{
"fun":"sendKpMsg",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [
{
"keySn": "1479824643",
@@ -4061,6 +4347,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
{
"fun":"sendKpMsg",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [
{
"keySn": "",
@@ -4071,15 +4358,13 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
]
}
```
-##### rtSendKpNotice
-(待定)
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
##### fEvtKpMsg
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回短信息是否成功发送至键盘
- **参数说明**
@@ -4087,15 +4372,17 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|否|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++state|string||是|短信息是否成功发送
0 - 成功
1 - 失败|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtKpMsg",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [
{
"keySn": "1479824643",
@@ -4111,8 +4398,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 待机实时反馈
#### 方法
-##### startKpStbResponse
-- **主题**:/client/\${baseSN}/send
+##### setKpStbResponse
+- **主题**:/client/{baseSN}/send
- **功能描述**:启动待机实时反馈
- **参数说明**
@@ -4120,415 +4407,334 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+mode|int||是|启动待机反馈类型
0-举手
1-指定按键反馈|
-|+keys|int||是|有效按键数量,mode=1时有效, 范围1-10|
+|+state|int||是|启用待机实时反馈
0-不启用
1-启用|
+|+mode|int||是|启动待机反馈类型,state=1时有效
0-举手
1-指定按键反馈|
+|+keys|int||是|有效按键数量,state=1且mode=1时有效, 范围1-10|
- **示例代码**
-```Json
+```json
//启用举手反馈
{
- "fun":"startKpStbResponse",
+ "fun":"setKpStbResponse",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
+ "state":1,
"mode":0
}
}
-//待机按键反馈
+//启用待机按键反馈
{
- "fun":"startKpStbResponse",
+ "fun":"setKpStbResponse",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
+ "state":1,
"mode":1,
"keys":4
}
}
+//关闭待机按键反馈
+{
+ "fun":"setKpStbResponse",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data":{
+ "state":0
+ }
+}
```
-##### stopKpStbResponse
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:停止待机实时反馈
+##### getKpStbResponse
+- **主题**:/client/{baseSN}/send
+- **功能描述**:获取实时反馈是否打开
- **参数说明**
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
- **示例代码**
-```Json
+```json
+//获取实时反馈状态
{
- "fun":"stopKpStbResponse",
- "dataTag":"1"
+ "fun":"getKpStbResponse",
+ "dataTag":"1",
+ "baseSn":"2024061101"
}
```
#### 事件
-##### [sEvtStateCode](#sevtstatecode)
-发送指令后返回接收状态
-
-##### [sEvtKpRtFeedback](#sevtkprtfeedback)
-返回待机时键盘返回的按键值
-
-##### [sEvtKpHandup](#sevtkphandup)
-启动待机按键反馈类型为举手提问时返回此事件
-
-## 语音反馈
-### 方法
-#### 单题语音评测
-##### startQAVoice
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:启动单题语音评测
+##### fEvtKpStbResponse
+- **主题**:/basestation/{baseSN}/receive
+- **功能描述**:返回当前待机按键反馈开启状态
- **参数说明**
-|参数名|类型|限制|是否必填|说明|
+|参数名|类型|限制|非空|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘|
-|+mode|int||是|录音模式
0-按键录音(默认值)
1-自动录音
2-语音红包
3-数据信道传输测试|
-|+submitTimes|int||是|允许提交次数,0-255, 0 - 不限次数|
-|+timeLimit|int||否|限制的录音时长,0-255, 0-不限时长|
-|+format|int||否|录音格式
0-录音文件(SDK直连基站支持)
1-实时流|
-|+audioFormat|int||否|音频格式
0-pcm
1-mp3(默认值1)
2-wav
3-speex|
-|+tip|string||否|提示的标题,长度不超过16字符|
+|baseSn|string||是|基站的出厂编码|
+|data|array|-|是|传送参数的对象数组|
+|+state|int||是|启用待机实时反馈
0-未启用
1-启用|
+|+mode|int||是|当前启动待机反馈类型,state=1时返回
0-举手
1-指定按键反馈|
- **示例代码**
-```Json
+```json
+//当前启用待机实时反馈,模式为指定按键反馈
{
- "fun":"startQAVoice",
+ "fun":"fEvtKpStbResponse",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": {
- "keySns": [],
- "mode":0,
- "submitTimes":0,
- "timeLimit":30,
- "format":0,
- "audioFormat":1,
- "tip":"请按键录音"
- }
+ "state": 1,
+ "mode": 1
+ }
}
-```
-##### stopQAVoice
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:停止单题语音评测
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-- **示例代码**
-```Json
+//当前未启用待机反馈
{
- "fun":"stopQAVoice",
- "dataTag":"1"
+ "fun":"fEvtKpStbResponse",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data": {
+ "state": 0
+ }
}
```
-#### 选定键盘发言
-##### startKpDSpeaker
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:选定键盘发言,返回实时流语音
+##### [sEvtKpRtFeedback](#sevtkprtfeedback)
+返回待机时键盘返回的按键值
+
+##### [sEvtKpHandup](#sevtkphandup)
+启动待机按键反馈类型为举手提问时返回此事件
+
+## 在线测验
+### 标准测验
+#### 方法
+##### startKpExam
+- **主题**:/client/{baseSN}/send
+- **功能描述**:启动标准测验
- **参数说明**
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
-|+keySn|string||是|指定的键盘SN|
-|+mode|int||是|录音模式
0-按键录音(默认值)
1-自动录音
|
-|+timeLimit|int||否|限制的录音时长,0-255, 0-不限时长|
-|+audioFormat|int||否|音频格式
0-pcm
1-mp3(默认值1)
2-wav
3-speex|
-|+tip|string||否|提示的标题,长度不超过16字符|
+|+examNo|int||是|0-9999
=0,新的测验
>0时,与上次启动卷号一致继续测验,不一致进入新的测验|
+|+mode|int||是|显示模式
0-不显示开头
1-显示“Q”开头
2-显示“题”开头|
+|+questions|array||是|题目详情|
+|++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断
5:自判题|
+|++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。|
+|++startNo | string||是| 起始题号,可以为数字+“-”,单级的题号数字范围1-255,如“1”,“1-1”,“1-1-1”,最多只能输入三级
mode=0 时有效,mode=1或2时键盘按顺序显示题号|
+|++count | int||是| 相同参数的连续题目数量, >0
注意:总题数最多支持200题 |
+|+simParams|object||否|内部模拟测试参数设置对象|
+|++answer|array||是|预设提交的按键值
格式为"单选题答案,多选题答案;
数字题答案;判断题答案(1对2错)"
如["A","ABCD","10","1"]|
- **示例代码**
-```Json
+
+**常用样例**:一级题型 + 显示“Q”开头, 单一题型,全单选题共10题
+```json
{
- "fun":"startKpDSpeaker",
- "dataTag":"1",
- "data": {
- "keySn": "1234567890",
- "mode":0,
- "timeLimit":30,
- "audioFormat":1,
- "tip":"请按键发言"
- }
-}
-```
-##### stopKpDSpeaker
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:停止键盘发言
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-
-- **示例代码**
-```Json
-{
- "fun":"stopKpDSpeaker",
- "dataTag":"1"
-}
-```
-
-#### 语音实时反馈
-##### startVoiceStbResponse
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:启动待机实时反馈
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+mode|int||是|启动待机反馈类型
0-语音待机反馈|
-|+timeLimit|int||否|限制的录音时长,0-255秒, 0-不限时长|
-
-- **示例代码**
-```Json
-{
- "fun":"startVoiceStbResponse",
+ "fun":"startKpExam",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
- "mode":,
- "timeLimit":30
+ "mode": 1,
+ "examNo": 0,
+ "questions": [{
+ "quesType": 1, //单选题
+ "startNo": "1", //题号从1开始
+ "count":10 //连续10题
+ }],
+ "simParams":{
+ "answer":["A","ABCD","10","1"]
+ }
}
}
```
-##### stopVoiceStbResponse
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:停止待机实时反馈
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-
-- **示例代码**
-```Json
-{
- "fun":"stopVoiceStbResponse",
- "dataTag":"1"
-}
-```
-
-### 事件
-#### [sEvtStateCode](#sevtstatecode)
-发送指令后返回接收状态
-
-#### fEvtVoiceFile
-- **主题**:/basestation/\${baseSN}/receive
-- **功能描述**:开启录音格式为录音文件方式时返回此事件
-- **参数说明**
-
-|参数名|类型|限制|非空|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|array|-|是|传送参数的对象数组|
-|++keySn|string||是|键盘SN|
-|++filePath|string||是|键盘提交语音文件的路径|
-|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
-
-- **示例代码**
-```Json
-{
- "fun":"fEvtVoiceFile",
- "dataTag":"1",
- "data": [{
- "keySn": "1479824643",
- "filePath":"D:\\SunARSSDK\\voice\\20240502\\voice_1479824643_1635832534000.mp3",
- "keyTime":3.2
- }]
-}
-```
-#### fEvtVoiceStream
-- **主题**:/basestation/\${baseSN}/receive
-- **功能描述**:开启录音格式为实时流方式时返回此事件
-- **参数说明**
-
-|参数名|类型|限制|非空|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+keySn|string||是|键盘SN|
-|+voiceId|int||是|语音id,答题时间内,可重复提交语音,每段语音流加一个id,用于区分作答|
-|+sampleRate|int||是|音频采样率|
-|+bits|int||是|音频采样精度|
-|+channel|int||是|声道数|
-|+voiceData|string||是|音频数据,将原始数据通过Base64编码后得出
应用可通过Base64解码得到原始语音数据|
-|+dataLen|int||是|Base64编码后的数据字符串长度|
-|+endFlag|int||是|语音流结束标识
0-未结束
1-结束包|
-
-- **示例代码**
-```Json
+指令样例:一级题型 + 不显示开头,总题数6题
+```json
{
- "fun":"fEvtQAQuicker",
+ "fun":"startKpExam",
"dataTag":"1",
- "data": {
- "keySn":"1479824643",
- "voiceId":"1",
- "sampleRate":16000,
- "bits":16,
- "channel":1,
- "endFlag":0,
- "dataLen":856,
- "voiceData":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAO7/AAARAAAA7v8AACMAAADK/wAA+gARAI8ANQDoAO7/EQDP/mwD6ADSBBkFgPm+/iH6J/ko/HD8F/8L/u7/rQGU/yMA4f5fAin/MgpDBwADvwRk+yn/fP1e/Jr+DAEAA+gAPAXpBnECgwK5BdEEmwFaA7oF4f63/DX9n/rJ+f75q/tA+5n7fP1q/Y79av1B/nb+Qf70AX0AfQNx/6b8EQBY/Ub9awD0AZUCfgahA4MCBgLV/az+L/5k/o79LwEdAYkBvv5q/X0AHf48BYMCgwKmAgYCdwH0/uL+0P6C/7j/sgApAsr/Kf+U/8T9L/ig+rL3HfVZA6AAsgYSBi8BIwMRABf/pvxB/nH/4v6m/7IAgv9f/7j/3P+gAAsB4gH0AS8BawAAANz/Kf8F/8r/RwAAACMA6ADoAKb/xAC4AgYCLwFBBO4FWQMAA7kFTQUYAnECiQRlASn/4v47/0H+uPxH/UH+L/6O/fn9F//Q/h3+rP5f/zv/8/5N/9z/uP+C/9z/RwBHACMAWQCgAH0ANQA1AEcAEQDK/8r/3P+4/5T/lP+m/5T/gv+C/5T/lP+C/5T/pv+m/w=="
+ "baseSn":"2024061101",
+ "data":{
+ "mode": 0,
+ "examNo": 0,
+ //第1、2题单选题,第3、4题多选题,第5题数字,第6题判断,共6题
+ "questions": [{
+ "quesType": 1, //单选题
+ "startNo": "1", //题号从1开始
+ "count":2 //连续2题
+ },{
+ "quesType": 2, //多选题
+ "startNo": "3", //题号从3开始
+ "count":2, //连续2题
+ "option":5
+ },{
+ "quesType": 1, //数字题
+ "startNo": "5", //题号从5开始
+ "count":1 //连续1题
+ },{
+ "quesType": 4, //判断题
+ "startNo": "6", //题号从6开始
+ "count":1 //连续1题
+ }],
+ "simParams":{
+ "answer":["A","ABCD","10","1"]
+ }
}
}
```
-#### fEvtVoicePacketLossInfo
-- **主题**:/basestation/\${baseSN}/receive
-- **功能描述**:开启录音格式为实时流方式,录音结束时返回此次录音的丢包率信息
-- **参数说明**
-|参数名|类型|限制|非空|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+keySn|string||是|键盘SN|
-|+voiceId|string||是|语音id|
-|+receive|double||是|收到语言流包数|
-|+shouldSend|string||是|应发数据包数|
-|+actualSend|string||是|实发数据包数|
-|+lossRate|double||是|丢包率,百分比|
-|+delay|double||是|延时,单位毫秒|
-
-- **示例代码**
-```Json
+指令样例:二级题型 + 不显示开头,总题数6题
+```json
{
- "fun":"fEvtQAQuicker",
+ "fun":"startKpExam",
"dataTag":"1",
- "data": {
- "keySn":"1837454011",
- "voiceId":"1",
- "receive":"42",
- "shouldSend":"56",
- "actualSend":"56",
- "lossRate":"0",
- "delay":"20"
+ "baseSn":"2024061101",
+ "data":{
+ "mode": 0,
+ "examNo": 0,
+ //第1-1、1-2题单选题,第2-1、2-2题多选题,第3-1题数字,第4-1题判断,共6题
+ "questions": [{
+ "quesType": 1, //单选题
+ "startNo": "1-1", //题号从1-1开始
+ "count":2 //连续2题
+ },{
+ "quesType": 2, //多选题
+ "startNo":"2-1", //题号从2-1开始
+ "count":2, //连续2题
+ "option":5
+ },{
+ "quesType": 3, //数字题
+ "startNo":"3-1", //题号从3-1开始
+ "count":1 //连续1题
+ },{
+ "quesType": 4, //判断题
+ "startNo": "4-1", //题号从4-1开始
+ "count":1 //连续1题
+ }],
+ "simParams":{
+ "answer":["A","ABCD","10","1"]
+ }
}
}
```
-## 在线测验
-### 标准测验
-#### 方法
-##### startKpExam
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:启动标准测验
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+examNo|int||是|0-9999
=0,新的测验
>0时,与上次启动卷号一致继续测验,不一致进入新的测验|
-|+mode|int||是|显示模式
0-不显示开头
1-显示“Q”开头
2-显示“题”开头|
-|+questions|array||是|题目详情|
-|++symbol | string||是 | 题号前缀,可为空 |
-|++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断 |
-|++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。|
-|++startNo | int||是| 起始题号 |
-|++count | int||是| 题目数量 |
-|+simParams|object||否|内部模拟测试参数设置对象|
-|++answer|array||是|预设提交的按键值
格式为"单选题答案,多选题答案;
数字题答案;判断题答案(1对2错)"
如["A","ABCD","10","1"]|
-
-- **示例代码**
-```Json
-//自定义题号
+指令样例:三级题型 + 不显示开头,总题数6题
+```json
{
"fun":"startKpExam",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"mode": 0,
- "examNo": 1,
- "questions": [{
- //题号1-1-1 到1-1-10 共10题单选
- "symbol": "1-1-",
- "quesType": 1,
- "startNo": 1,
- "count":10
- }, {
- //题号2-2和2-3共两题 多选题,5个选项
- "symbol": "2-",
- "quesType": 2,
- "option": 5,
- "startNo": 2,
- "count":2
- }, {
- //题号3-1和3-2共两道数字题
- "symbol": "3-",
- "quesType": 3,
- "startNo": 1,
- "count":2
- }, {
- //题号4和5 ,判断题
- "symbol": "",
- "quesType": 4,
- "startNo": 4,
- "count":2
+ "examNo": 0,
+ //第1-1-1、1-1-2题单选题,第1-2-1、1-2-2题多选题,第2-1-1题数字,第3-1-1题判断,共6题
+ "questions": [{
+ "quesType": 1, //单选题
+ "startNo": "1-1-1", //题号从1-1-1开始
+ "count":2 //连续2题
+ },{
+ "quesType": 2, //多选题
+ "startNo": "1-2-1", //题号从1-2-1开始
+ "count":2, //连续2题
+ "option":5
+ },{
+ "quesType": 3, //数字题
+ "startNo": "2-1-1", //题号从2-1-1开始
+ "count":1 //连续1题
+ },{
+ "quesType": 4, //判断题
+ "startNo": "3-1-1", //题号从3-1-1开始
+ "count":1 //连续1题
}],
"simParams":{
"answer":["A","ABCD","10","1"]
}
}
}
+```
-//显示Q开头
+指令样例:一级题型 + 显示“Q”开头, 共6题
+```json
{
"fun":"startKpExam",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"mode": 1,
- "examNo": 1,
- "questions": [{
- //Q1-Q20,单选题
- "symbol": "",
- "quesType": 1,
- "startNo": 1,
- "count":20
+ "examNo": 0,
+ "questions": [{
+ "quesType": 1, //单选题
+ "startNo": "1", //题号从1开始
+ "count":2 //连续2题
+ },{
+ "quesType": 2, //多选题
+ "startNo": "3", //题号从3开始
+ "count":2, //连续2题
+ "option":5
+ },{
+ "quesType": 1, //数字题
+ "startNo": "5", //题号从5开始
+ "count":1 //连续1题
+ },{
+ "quesType": 4, //判断题
+ "startNo": "6", //题号从6开始
+ "count":1 //连续1题
}],
"simParams":{
- "answer":["A","","",""]
+ "answer":["A","ABCD","10","1"]
}
}
}
+```
-//显示题开头
+指令样例:一级题型 + 显示“题”开头, 共6题
+```json
{
"fun":"startKpExam",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"mode": 2,
- "examNo": 1,
- "questions": [{
- //题1-题20,单选题
- "symbol": "",
- "quesType": 1,
- "startNo": 1,
- "count":20
+ "examNo": 0,
+ "questions": [{
+ "quesType": 1, //单选题
+ "startNo": "1", //题号从1开始
+ "count":2 //连续2题
+ },{
+ "quesType": 2, //多选题
+ "startNo": "3", //题号从3开始
+ "count":2, //连续2题
+ "option":5
+ },{
+ "quesType": 1, //数字题
+ "startNo": "5", //题号从5开始
+ "count":1 //连续1题
+ },{
+ "quesType": 4, //判断题
+ "startNo": "6", //题号从6开始
+ "count":1 //连续1题
}],
"simParams":{
- "answer":["A","","",""]
+ "answer":["A","ABCD","10","1"]
}
}
}
```
-##### stopKpExam
-- **主题**:/client/\${baseSN}/send
+
+
+##### [stopKpVote](#stopkpvote)
+停止在线测验
+
##### rtGetKpExamData
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:刷新作答数据
- **参数说明**
@@ -4553,46 +4763,23 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘|
- **示例代码**
-```Json
+```json
{
"fun":"rtGetKpExamData",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySns":["1234567890","1234567891"]
}
}
```
-##### rtSetKpExamResult
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:考试结果回传键盘
-- **参数说明**
-
-|参数名|类型|限制|是否必填|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+examNo|string||是|回传答案的测验卷号|
-|+answer|string||是|回传题目的正确答案,用于客观题判卷,A,AB,1表示正确答案依次为A、AB、1|
-
-- **示例代码**
-```Json
-{
- "fun":"rtSetKpExamResult",
- "dataTag":"1",
- "data":{
- "examNo":1,
- "answer":"A,AB,1"
- }
-}
-```
-
##### rtKpAllowEdited
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:键盘提交后,允许键盘修改答案
- **参数说明**
@@ -4600,14 +4787,17 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘|
- **示例代码**
-```Json
+
+```json
{
"fun":"rtKpAllowEdited",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"keySns":["1234567890","1234567891"]
}
@@ -4618,7 +4808,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
发送指令后返回接收状态
##### fEvtKpExam
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回键盘提交答题信息
- **参数说明**
@@ -4626,16 +4816,21 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
-|++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B|
+|++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B
注意:如启动的是多科测验,键盘提交的题目序号对应启动时下发的题目总序号,不按科目区分|
|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
+|++voltage|double||是|键盘电量|
+|++retryCount|int||是|键盘提交数据的重发次数|
- **示例代码**
-```Json
+
+```json
{
"fun":"fEvtKpExam",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [{
"keySn": "1234567890",
"keyValue":"1:A;2:B",
@@ -4650,7 +4845,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
##### fEvtFinalSubmit
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回键盘手动交卷标识
- **参数说明**
@@ -4658,16 +4853,19 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|0 - 未提交(提交完成后,允许键盘修改答案时上报)
1 - 已交卷|
|++keyTime|double||是|提交时间,从启动开始计算,单位秒|
- **示例代码**
-```Json
+
+```json
{
"fun":"fEvtFinalSubmit",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [{
"keySn": "1234567890",
"keyValue":"1",
@@ -4676,35 +4874,10 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
-##### fEvtSetKpExamResult
-- **主题**:/basestation/\${baseSN}/receive
-- **功能描述**:返回回传键盘判卷结果状态
-- **参数说明**
-
-|参数名|类型|限制|非空|说明|
-|---|---|---|---|---|
-|fun|string|-|是|指令名称|
-|dataTag|string|-|否|数据包标识,可为空字符串|
-|data|object|-|是|传送参数的对象|
-|+examNo|int||是|测验卷号|
-|+state|string||是|0 - 回传成功
1 - 回传失败|
-
-- **示例代码**
-```Json
-{
- "fun":"fEvtSetKpExamResult",
- "dataTag":"1",
- "data": {
- "examNo": 1,
- "state":0
- }
-}
-```
-
### 多科测验
#### 方法
##### startKpMultiExam
-- **主题**:/client/\${baseSN}/send
+- **主题**:/client/{baseSN}/send
- **功能描述**:启动多科测验
- **参数说明**
@@ -4712,16 +4885,16 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+examNo|int||是|0-9999
=0,新的测验
>0时,与上次启动卷号一致继续测验,不一致进入新的测验|
|+mode|int||是|显示模式
0-不显示开头
1-显示“Q”开头
2-显示“题”开头|
|+questions|array||是|题目详情|
-|++subject | int||是 | 科目序号,1-9,对应键盘中内置的科目1-9
键盘答题时可选择科目切换答题|
-|++symbol | string||是 | 题号前缀,分级标识为-,可为空,为空表示1级题目
多科测验题目编号最多只能两级(即symbol可设置为空或x-),超出无效|
-|++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断 |
+|++subject | int||是 | 科目序号,1-11,对应键盘中内置的科目1-11
键盘答题时可选择科目切换答题|
+|++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断
5:自判题|
|++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。|
-|++startNo | int||是| 起始题号 |
-|++count | int||是| 题目数量 |
+|++startNo | string||是| 起始题号,可以为数字+“-”,单级的题号数字范围1-255,如“1”,“1-1”,最多支持两级题号
mode=0 时有效,mode=1或2时键盘按顺序显示题号|
+|++count | int||是| 相同参数的连续题目数量, >0
注意:所有科目的总题数最多支持200题|
|+simParams|object||否|内部模拟测试参数设置对象|
|++answer|array||是|预设提交的按键值
格式为"单选题答案,多选题答案;
数字题答案;判断题答案(1对2错)"
如["A","ABCD","10","1"]|
@@ -4731,37 +4904,34 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
{
"fun":"startKpMultiExam",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"mode": 0,
- "examNo": 1,
+ "examNo": 0,
"questions": [{
"subject":1, //科目1
//题号1-1 到1-10 共10题单选
- "symbol": "1-",
"quesType": 1,
- "startNo": 1,
+ "startNo": "1-1",
"count":10
}, {
"subject":2, //科目2
//题号2-2和2-3共两题 多选题,5个选项
- "symbol": "2-",
"quesType": 2,
"option": 5,
- "startNo": 2,
+ "startNo": "2-2",
"count":2
}, {
"subject":3, //科目3
//题号3-1和3-2共两道数字题
- "symbol": "3-",
"quesType": 3,
- "startNo": 1,
+ "startNo": "3-1",
"count":2
}, {
"subject":1, //科目1
//题号4和5 ,判断题
- "symbol": "",
"quesType": 4,
- "startNo": 4,
+ "startNo": "4",
"count":2
}],
"simParams":{
@@ -4774,15 +4944,15 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
{
"fun":"startKpMultiExam",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"mode": 1,
- "examNo": 1,
+ "examNo": 0,
"questions": [{
"subject":1,
//Q1-Q20,单选题
- "symbol": "",
"quesType": 1,
- "startNo": 1,
+ "startNo": "1",
"count":20
}],
"simParams":{
@@ -4795,15 +4965,15 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
{
"fun":"startKpMultiExam",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"mode": 2,
- "examNo": 1,
+ "examNo": 0,
"questions": [{
"subject":1,
//题1-题20,单选题
- "symbol": "",
"quesType": 1,
- "startNo": 1,
+ "startNo": "1",
"count":20
}],
"simParams":{
@@ -4813,8 +4983,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
}
```
-##### stopKpMultiExam
-- **主题**:/client/\${baseSN}/send
+
+##### [stopKpVote](#stopkpvote)
+停止多科测验
#### 事件
##### [sEvtStateCode](#sevtstatecode)
@@ -4844,56 +5016,52 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
### 自主录分
#### 方法
##### startKpScoreInput
-- **主题**:/client/\${baseSN}/send
-- **功能描述**:启动标准测验
+- **主题**:/client/{baseSN}/send
+- **功能描述**:启动自主录分
- **参数说明**
|参数名|类型|限制|是否必填|说明|
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|object|-|是|传送参数的对象|
|+examNo|int||是|0-9999
=0,新的录分
>0时,与上次启动卷号一致继续录分,不一致进入新的录分|
|+mode|int||是|录分模式
0-自主录分
1-交叉录分,需先输入录分的人员标识|
|+questions|array||是|题目详情|
-|++symbol | string||是 | 题号前缀,可为空 |
-|++min |int||是|可输入的最小值,默认为0|
|++max |int||是|可输入的最大值,<=100|
|++digits|int||是|可输入的小数位数,范围0-2|
-|++startNo | int||是| 起始题号|
-|++count | int||是| 题目数量|
+|++startNo | string||是| 起始题号,暂只支持一级题号,范围1-255|
+|++count | int||是| 相同参数的题目数量,>0
注意:总题数最多支持200题|
- **示例代码**
-```Json
+```json
{
"fun":"startKpScoreInput",
"dataTag":"1",
+ "baseSn":"2024061101",
"data":{
"mode": 0,
"examNo": 0,
"questions": [{
- //题号1-1-1 到1-1-2 共2题,单题满分10分
- "symbol": "1-",
- "min": 0,
+ //题号1 到 2 共2题,单题满分10分
"max":10,
"digits":1,
- "startNo": 1,
+ "startNo": "1",
"count":2
}, {
//题号3到6 共4道题,单题满分5
- "symbol": "",
- "min": 0,
"max":5,
"digits":0,
- "startNo": 3,
+ "startNo": "3",
"count":4
}]
}
}
```
-
+
+##### [stopKpVote](#stopkpvote)
+停止自主录分
+
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
##### fEvtKpScore
-- **主题**:/basestation/\${baseSN}/receive
+- **主题**:/basestation/{baseSN}/receive
- **功能描述**:返回键盘提交录分信息
- **参数说明**
@@ -4922,29 +5093,177 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口
|---|---|---|---|---|
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
|data|array|-|是|传送参数的对象数组|
-|++scoreTag|string||是|录分标识,自主录分为空,交叉录分为键盘录分前输入的标识|
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的分值,1:10;2:0表示第1题提交10分,第二题提交0分|
|++keyTime|double||是|录分时间,从启动录分开始计算,单位秒|
+|++voltage|double||是|键盘电量|
+|++retryCount|int||是|键盘提交数据的重发次数|
- **示例代码**
-```Json
+```json
{
"fun":"fEvtKpScore",
"dataTag":"1",
+ "baseSn":"2024061101",
"data": [{
- "scoreTag":"5",
"keySn": "1234567890",
"keyValue":"1:8;2:7.5;3:2;4:3",
"keyTime":3.2
},
{
- "scoreTag":"3",
"keySn": "1234567891",
"keyValue":"1:10;2:0",
"keyTime":3.5
}
]
}
+```
+
+### 自定义测验题型标题
+#### 方法
+##### setKpExamQuesTitle
+- **主题**:/client/{baseSN}/send
+- **功能描述**:设置自定义测验题题型标题,键盘需在线才能接收成功。
设置完成后启动测验,对应的题型显示为设置的自定义标题。
题型标题相对固定,下发成功后键盘会保存标题,标题无变化时无需重复下发
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|object|-|是|传送参数的对象数组,不可为空|
+|+keySns|array||是|需要设置标题的键盘SN数组,为空代表全部在线键盘
注意:指定键盘下发才有单个键盘下发是否成功的事件,全部在线键盘下发只有统一回复事件|
+|+type|int||是|需要设置的题目类型
1-单选题
2-多选题
3-数字题
4-判断题
5-自判题|
+|+title|string||是|设置的标题内容,长度不大于15个字符|
+
+
+- **示例代码**
+```json
+//指定下发
+{
+ "fun":"setKpExamQuesTitle",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data": {
+ "keySns": ["1234567890","1234567891"],
+ "type":1,
+ "title": "请选择"
+ }
+}
+
+//统一下发
+{
+ "fun":"setKpExamQuesTitle",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data": {
+ "keySns": [],
+ "type":1,
+ "title": "请选择"
+ }
+}
+```
+
+##### clearKpExamQuesTitle
+- **主题**:/client/{baseSN}/send
+- **功能描述**:清除键盘自定义测验题型标题
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|object|-|是|传送参数的对象数组|
+|+type|int||是|需要清除自定义标题的题目类型
0-所有题型|
+|+keySns|array||否|需要清除绑定信息键盘SN数组,
空数组表示清空所有键盘|
+
+- **示例代码**
+```json
+{
+ "fun":"clearKpExamQuesTitle",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data": {
+ "type":0,
+ "keySns":[]
+ }
+}
+```
+
+#### 事件
+##### [sEvtStateCode](#sevtstatecode)
+发送指令后返回接收状态
+
+##### fEvtKpExamQuesTitle
+- **主题**:/basestation/{baseSN}/receive
+- **功能描述**:返回键盘设置自定义题型标题的状态是否成功
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|array|-|否|返回的对象数组|
+|++keySn|string||是|设置自定义题型的SN,如果未指定键盘,则keySn为空字符串|
+|++state|string||是|设置的自定义信息是否成功
0 - 成功
1 - 失败|
+
+- **示例代码**
+```json
+//指定下发
+{
+ "fun":"fEvtKpExamQuesTitle",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data": [
+ {
+ "keySn":"1234567890",
+ "state": "0"
+ },
+ {
+ "keySn":"1234567891",
+ "state": "0"
+ }
+ ]
+}
+
+//统一下发
+{
+ "fun":"fEvtKpExamQuesTitle",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data": [
+ {
+ "keySn":"",
+ "state": "0"
+ }
+ ]
+}
+```
+##### fEvtClearKpExamQuesTitle
+- **主题**:/basestation/{baseSN}/receive
+- **功能描述**:返回清空自定义题型标题的指令状态是否成功
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|baseSn|string||是|基站的出厂编码|
+|data|object|-|否|传送参数的对象|
+|+state|string||是|清空自定义标题是否成功
0 - 成功
1 - 失败|
+
+- **示例代码**
+```json
+{
+ "fun":"fEvtClearKpExamQuesTitle",
+ "dataTag":"1",
+ "baseSn":"2024061101",
+ "data": {
+ "state": "0"
+ }
+}
```
\ No newline at end of file