From 874f09755d67e6e2c209d03bf1f439257ce7f084 Mon Sep 17 00:00:00 2001 From: liuqin Date: Mon, 3 Mar 2025 09:12:28 +0800 Subject: [PATCH] 平台化通讯协议初始版 --- 通讯协议-平台化-应用部分.md | 3031 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 1 file changed, 1675 insertions(+), 1356 deletions(-) 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 -- libgit2 0.21.4