通讯协议-B200W-MQTT协议[外].md 47.3 KB

SunVote B200W MQTT通讯协议

MQTT服务器准备

MQTT服务器要求:

厂家使用EMQX 进行测试

能够正常收发MQTT数据。

服务器的性能参数由业务决定。

域名:

公网域名或ip或者基站所处局域网ip。

MQTT服务器配置结果检查

使用MQTT.FX客户端,配置域名,端口,用户名和密码信息,然后连接,如果提示连接成功,则表示MQTT服务器可用。基站clientid 是基站编号。

功能说明

主题说明

\${baseSN}为指定的基站的SN编码,不能为空,接收基站反馈数据需要订阅对应基站SN的接收主题。

发布的主题

应用程序发布的主题,基站订阅 /client/\${baseSN}/send /client/multiBase/send

订阅的主题

应用程序订阅的主题,基站发布 /basestation/\${baseSN}/receive /basestation/multiBase/receive

指令说明

指令功能标识 说明 约束
get 待机状态下获取参数属性状态及数据 待机状态
set 待机状态下设置参数属性状态及数据 待机状态
start 运行一个单进程业务实例(函数) 待机状态
stop 停止一个单进程业务实例(函数) 待机状态
rtXXX 在线状态下可实时执行方法及函数

事件说明

事件标识 说明 约束
sEvtXXX 系统事件 自动返回
fEvtXXX 指令事件 调用对应指令后返回

数据格式约定

  • 数据格式统一为Json格式,MQTT发送接收消息编码统一为UTF-8
  • Json通用格式如下: json { "fun":"xxx", "dataTag":"xxx", "data":{ //内容 } } |参数 |说明 |约束| |---|---|---| |fun| 指令或事件名称|| |dataTag| 数据标签,用于对应收发数据|长度不超过4,可为0-9a-zA-Z的组合| |data| 数据内容|对象或者数组,可为空|

功能速查一览表

基站管理

功能归类 功能 API指令 指令/系统事件
基站连接 - 获取在线基站 主动获取在线基站信息
不确定基站SN时
getBsOnlineState fEvtBsOnlineState
基站连接 - 主动获取状态 主动获取基站连接状态 getBsConnectState sEvtBsConnectState
基站连接 - 自动获取状态 基站连接变化系统通知 - sEvtBsConnectState
基站授时 对基站授时用于校准时间 timeSync sEvtStateCode
键盘上线通知 单个键盘上线系统通知 - sEvtBsKpOnlineMsg
识别设置 - 基站型号 读取基站型号 getBsModel fEvtBsModel
识别设置 - 固件版本 获取基站固件版本 getBsFWVersion fEvtBsFWVersion
组网设置 - 配对码 获取基站配对码 getBsPairCode fEvtBsPairCode
组网设置 - 刷卡配对状态 获取刷卡配对状态 getBsNfcLogin fEvtBsNfcLogin
设置刷卡配对状态 setBsNfcLogin fEvtBsNfcLogin
组网设置 - 工作信道 获取基站工作信道 getBsChannel fEvtBsChannel
设置基站工作信道 setBsChannel fEvtBsChannel
登录设置 - 登录名称 获取基站登录名称 getBsSSID fEvtBsSSID
设置基站登录名称 setBsSSID fEvtBsSSID
键盘统一设置 - 键盘语言 获取键盘语言 getBsKpLanguage fEvtBsKpLanguage
设置键盘语言 setBsKpLanguage fEvtBsKpLanguage
网络设置 - TCP/IP参数 获取TCP/IP参数 getBsTcpipParams fEvtBsTcpipParams
设置TCP/IP参数 setBsTcpipParams fEvtBsTcpipParams
网络设置 - MQTT参数 获取MQTT参数 getBsMqttParams fEvtBsMqttParams
设置MQTT参数 setBsMqttParams fEvtBsMqttParams
基站维护 获取基站日志信息 getBsLogInfo sEvtStateCode

键盘管理

功能归类 功能 API指令 指令事件
交互设置 - 用户实时提示信息 实时设置提示反馈信息 rtSetKpUserPrompt sEvtStateCode
fEvtSetKpUserPrompt
在线状态获取 开启扫描在线键盘 startGetKpOnline sEvtStateCode
sEvtBsKpOnlineMsg
停止扫描在线键盘 stopGetKpOnline sEvtStateCode
维护功能 - 遥控功能 遥控键盘休眠 remoteKpSleep sEvtStateCode

绑定

功能归类 功能 API指令 指令事件
无线绑定 设置绑定信息到键盘 rtSetKpBindingInfo sEvtStateCode
fEvtKpBindingInfo
清除键盘绑定信息 clearKpBindingInfo sEvtStateCode
fEvtClearKpBindingInfo

签到

功能归类 功能 API指令 指令事件
随时签到 启动随时签到 rtStartKpSignIn sEvtStateCode
fEvtKpSignIn
停止随时签到 rtStopKpSignIn sEvtStateCode
实时PIN签到授权 rtSetKpLoginAllowed sEvtStateCode
fEvtKpLoginAllowed

按键反馈

功能归类 功能 API指令 指令事件
判断题 启动判断题答题 startQATrueFalse sEvtStateCode
fEvtQATrueFalse
停止判断题答题 stopQATrueFalse sEvtStateCode
选择题 启动选择题答题 startQAChoice sEvtStateCode
fEvtQAChoice
停止选择题答题 stopQAChoice sEvtStateCode
数字题 启动数字题答题 startQANum sEvtStateCode
fEvtQANum
停止数字题答题 stopQANum sEvtStateCode
抢答题 启动抢答题答题 startQAQuicker sEvtStateCode
fEvtQAQuicker
停止抢答题答题 stopQAQuicker sEvtStateCode

在线测验

功能归类 功能 API指令 指令事件
标准测验 启动标准测验 startKpExam sEvtStateCode
fEvtKpExam
fEvtFinalSubmit
停止标准测验 stopKpExam sEvtStateCode
允许键盘提交后退回修改 rtAllowEdited sEvtStateCode
fEvtFinalSubmit

公共事件

sEvtBsConnectState

  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:基站连接成功时返回基站型号和基站SN,基站从已连接状态断开返回连接断开
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件类型
dataTag string - 数据包标识,不需要时可传空字符串
data object - 传送参数的对象
+baseModel int 基站的型号码
+modelName string 基站的型号名称
+state int 基站的连接状态
1-已连接
2-连接断开
+version string 基站固件版本
  • 示例代码 Json //连接成功 { "fun":"sEvtBsConnectState", "dataTag":"1", "data":{ "state":1, "baseModel":218, "modelName":"B200", "version":"1.0.3" } } //连接断开 { "fun":"sEvtBsConnectState", "dataTag":"1", "data":{ "state":2 } } ### sEvtBsChannelConflict
  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:基站信道冲突时主动上报,应用程序可根据实际业务修改基站信道
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件名称
dataTag string - 数据包标识,不需要时可传空字符串
data object - 传送参数的对象
+value int 有冲突的信道
  • 示例代码 Json { "fun":"sEvtBsChannelConflict", "dataTag":"1", "data":{ "value":5 //信道5有多个基站使用 } } ### sEvtBsNfcResults
  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:键盘刷卡时主动上报,如果超出基站容量会上报失败
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件名称
dataTag string - 数据包标识,不需要时可传空字符串
data object - 传送参数的对象
+keySn string 刷卡的键盘SN
+value int 刷卡的状态
1-成功
2-失败
  • 示例代码 Json { "fun":"sEvtBsNfcResults", "dataTag":"1", //不需要时可传空字符串 "data":{ "keySn":"1234567890", "value":1 } }

sEvtBsKpOnlineMsg

  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:键盘上线通知,主动上报,键盘升级成功后也会上报
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件名称
dataTag string - 数据包标识
data object - 传送参数的对象
+keySn string 键盘SN
+version string 键盘固件版本
+model int 键盘型号
+voltage double 键盘电压
  • 示例代码 Json { "fun":"sEvtBsKpOnlineMsg", "dataTag":"1", "data":{ "keySn":"1234567890", "version":"1.0.0", "model":67, "voltage":2.8 } } ### sEvtStateCode
  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:返回基站接收指令状态信息
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件名称
dataTag string - 数据包标识
data object - 传送参数的对象
+funName string 指令名称
+code string 状态码,含义见下表
状态码 说明
0 指令收取成功
10001 不能正确解析的JSON数据
10002 解析JSON错误
20001 基站未连接
20002 功能不支持
20003 基站SN格式不正确
20004 参数错误
20005 基站在答题中
40001 升级功能只能支持一个基站
50001 此功能必须指定基站
60001 此功能必须指定键盘SN
  • 示例代码 Json { "fun":"sEvtStateCode", "dataTag":"1", "data":{ "funName":"startKpRollCall", "code":"20005" } } ## 基站管理 ### 基站连接 #### 方法 ##### getBsOnlineState
  • 主题/client/multiBase/send
  • 功能描述:主动获取所有在线基站信息,在线基站回复
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 固定指令名称
dataTag string - 数据包标识
  • 示例代码 Json { "fun":"getBsOnlineState", "dataTag":"1" }
getBsConnectState
  • 主题:/client/\${baseSN}/send
  • 功能描述:主动获取基站连接状态
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 固定指令名称
dataTag string - 数据包标识
  • 示例代码 Json { "fun":"getBsConnectState", "dataTag":"1" } #### 事件 ##### sEvtBsConnectState 参见基站连接变化系统通知
fEvtBsOnlineState
  • 主题: /basestation/mutilBase/receive
  • 功能描述:基站在线返回基站型号和基站SN
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件类型
dataTag string - 数据包标识,不需要时可传空字符串
data object - 传送参数的对象
+baseModel int 基站的型号码
+modelName string 基站的型号名称
+version string 基站固件版本
+baseSN string 基站SN
  • 示例代码 Json //连接成功 { "fun":"fEvtBsOnlineState", "dataTag":"1", "data":{ "baseModel":218, "modelName":"B200", "version":"1.0.3", "baseSN":"2024041401" } }

基站授时

方法

timeSync
  • 主题:/client/\${baseSN}/send
  • 功能描述:发送当前时间戳给基站进行校时
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 固定指令名称
dataTag string - 数据包标识
data object - 传送参数的对象
+timeStamp long 当前时间的时间戳
  • 示例代码 Json { "fun":"timeSync", "dataTag":"1", "data":{ "timeStamp":1718247133290 } } #### 事件 ##### sEvtStateCode 返回指令的接收状态

识别设置

方法

getBsModel
  • 主题:/client/\${baseSN}/send
  • 功能描述:获取基站型号
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
  • 示例代码 Json { "fun":"getBsModel", "dataTag":"1" } ##### getBsFWVersion
  • 主题:/client/\${baseSN}/send
  • 功能描述:获取基站固件版本
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
  • 示例代码 Json { "fun":"getBsFWVersion", "dataTag":"1" } #### 事件 ##### fEvtBsSN
  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:返回基站的出厂编码
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件名称
dataTag string - 数据包标识
data object - 传送参数的对象
+value string - 基站的出厂编码
  • 示例代码 Json { "fun":"fEvtBsSN", "dataTag":"1", "data":{ "value":"2024041201" } } ##### fEvtBsModel
  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:返回基站的型号
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 事件名称
dataTag string - 数据包标识
data object - 传送参数的对象
+value string - 基站的型号名称
  • 示例代码 Json { "fun":"fEvtBsModel", "dataTag":"1", "data":{ "value":"B200" } } ##### fEvtBsFWVersion
  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:返回基站的固件版本
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 事件名称
dataTag string - 数据包标识
data object - 传送参数的对象
+value string 基站的固件版本号
  • 示例代码 Json { "fun":"fEvtBsFWVersion", "dataTag":"1", "data":{ "value":"1.0.3" } } ### 组网设置 #### 方法 ##### getBsPairCode
  • 主题:/client/\${baseSN}/send
  • 功能描述:获取基站配对码
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
  • 示例代码 Json { "fun":"getBsPairCode", "dataTag":"1" } ##### getBsNfcLogin
  • 主题:/client/\${baseSN}/send
  • 功能描述:获取刷卡配对状态
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
  • 示例代码 Json { "fun":"getBsNfcLogin", "dataTag":"1" } ##### setBsNfcLogin
  • 主题:/client/\${baseSN}/send
  • 功能描述:设置基站刷卡配对状态
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象
+value string - 设置的基站刷卡配对状态
0-关闭刷卡配对
1-开启刷卡配对
  • 示例代码 Json { "fun":"setBsNfcLogin", "dataTag":"1", "data":{ "value":"1" } } ##### getBsChannel
  • 主题:/client/\${baseSN}/send
  • 功能描述:获取基站信道
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
  • 示例代码 Json { "fun":"getBsChannel", "dataTag":"1" } ##### setBsChannel
  • 主题:/client/\${baseSN}/send
  • 功能描述:设置基站信道
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象
+value string - 设置的基站信道,可设范围:1-80
  • 示例代码 Json { "fun":"setBsChannel", "dataTag":"1", "data":{ "value":"23" } } #### 事件 ##### fEvtBsPairCode
  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:返回基站配对码
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件名称
dataTag string - 数据包标识,可传空字符串
data object - 传送参数的对象
+value string 基站的配对码
  • 示例代码 Json { "fun":"fEvtBsPairCode", "dataTag":"1", "data":{ "value":"123456" } }
fEvtBsChannel
  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:返回基站信道
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件名称
dataTag string - 数据包标识,可传空字符串
data object - 传送参数的对象
+value string 基站信道
  • 示例代码 Json { "fun":"fEvtBsChannel", "dataTag":"1", "data":{ "value":"5" } } ##### fEvtBsNfcLogin
  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:返回基站是否允许NFC刷卡
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件名称
dataTag string - 数据包标识,可传空字符串
data object - 传送参数的对象
+value string 0-关闭 1-开启
  • 示例代码 Json { "fun":"fEvtBsNfcLogin", "dataTag":"1", "data":{ "value":"1" } } ### 登录设置 #### 方法 ##### getBsSSID 获取基站登录名称
  • 主题:/client/\${baseSN}/send
  • 功能描述:获取基站登录名称
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 固定指令名称
dataTag string - 数据包标识
  • 示例代码 Json { "fun":"getBsSSID", "dataTag":"1" } ##### setBsSSID
  • 主题:/client/\${baseSN}/send
  • 功能描述:设置基站登录名称
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象
+value string 设置的基站SSID,最长12字符
  • 示例代码 Json { "fun":"setBsSSID", "dataTag":"1", "data":{ "value":"1901班" } } #### 事件 ##### fEvtBsSSID
  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:返回基站名称
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件名称
dataTag string - 数据包标识,可传空字符串
data object - 传送参数的对象
+value string 基站名称
  • 示例代码 Json { "fun":"fEvtBsSSID", "dataTag":"1", "data":{ "value":"1901班" } } ### 键盘统一设置 #### 方法 ##### getBsKpLanguage
  • 主题:/client/\${baseSN}/send
  • 功能描述:获取键盘语言
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
  • 示例代码 Json { "fun":"getBsKpLanguage", "dataTag":"1" } ##### setBsKpLanguage
  • 主题:/client/\${baseSN}/send
  • 功能描述:设置键盘语言
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象
+value string 设置键盘显示的语言
1-简体中文
2-英文
  • 示例代码 Json { "fun":"setBsKpLanguage", "dataTag":"1", "data":{ "value":"1" } } #### 事件 ##### fEvtBsKpLanguage
  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:返回键盘语言
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象
+value string 设置键盘显示的语言
1-简体中文
2-英文
  • 示例代码 Json { "fun":"fEvtBsKpLanguage", "dataTag":"1", "data":{ "value":"1" } } ### 网络参数设置 #### 方法 ##### 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 } } ### 基站维护 #### 方法 ##### getBsLogInfo
  • 主题:/client/\${baseSN}/send
  • 功能描述:获取基站日志,用于出现故障需要排查问题时获取基站内部日志记录
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
  • 示例代码 Json { "fun":"getBsLogInfo", "dataTag":"1" }

事件

sEvtStateCode

返回指令的接收状态

键盘管理

交互设置

方法

rtSetKpUserPrompt
  • 主题:/client/\${baseSN}/send
  • 功能描述:实时设置提示反馈信息
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data array - 传送参数的对象数组
++keySns array 指定的键盘SN数组,空数组表示全部在线键盘
注意:不允许空数组和指定SN数组混合使用
包含空数组默认为全部在线键盘,其他指定键盘无效
++info string 设置的反馈信息
不同键盘可设置不同反馈信息
//分别提示
{
  "fun": "rtSetKpUserPrompt",
  "dataTag":"1",
  "data": [
    {
      "keySns": ["1479824643","1479824645"],
      "info": "答对了"
    },
    {
      "keySns": ["1479824644"],
      "info": "答错了"
    }
  ]
}
//统一提示
{
  "fun": "rtSetKpUserPrompt",
  "dataTag":"1",
  "data": [
    {
      "keySns": [],
      "info": "答题结束"
    }
  ]
}

事件

sEvtStateCode

发送指令后返回接收状态

fEvtSetKpUserPrompt
  • 主题:/basestation/\${baseSN}/receive
  • 功能描述:返回实时设置提示语是否成功
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data array - 传送参数的对象数组
++keySn string 设置提示语信息的键盘SN
++state string 设置的提示语是否成功
0 - 成功
1 - 失败
{
  "fun": "fEvtSetKpUserPrompt",
  "dataTag":"1",
  "data": [
    {
      "keySn": "1479824643",
      "state": "0"
    },
    {
      "keySn": "1479824645",
      "state": "0"
    },
    {
      "keySn": "1479824644",
      "state": "1"
    }
  ]
}

在线状态

方法

startGetKpOnline
  • 主题:/client/\${baseSN}/send
  • 功能描述:开始获取键盘在线信息,键盘在线返回键盘信息 sEvtBsKpOnlineMsg
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
{
  "fun": "startGetKpOnline",
  "dataTag":"1"
}
stopGetKpOnline
  • 主题:/client/\${baseSN}/send
  • 功能描述:停止获取键盘在线信息
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
{
  "fun": "stopGetKpOnline",
  "dataTag":"1"
}

事件

sEvtStateCode

发送指令后返回此事件

sEvtBsKpOnlineMsg

键盘在线返回此事件

维护功能

方法

remoteKpSleep
  • 主题:/client/\${baseSN}/send
  • 功能描述:遥控键盘休眠
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象数组
+keySns array 需要执行指令的键盘SN数组,空数组表示所有键盘
  • 示例代码 Json { "fun":"remoteKpSleep", "dataTag":"1", "data":{ "keySns":["1479824644"] } } #### 事件 ##### sEvtStateCode 返回指令的接收状态

绑定

无线绑定

方法

rtSetKpBindingInfo
  • 主题:/client/\${baseSN}/send
  • 功能描述:实时设置绑定信息到键盘
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data array - 传送参数的对象数组,不可为空
++keySn string 需要设置绑定信息的键盘SN
++info string 设置的绑定信息,一般为学生姓名
最长48个字符,显示在键盘左上角
{
  "fun": "rtSetKpBindingInfo",
  "dataTag":"1",
  "data": [
    {
      "keySn": "1479824643",
      "info": "张三"
    },
    {
      "keySn": "1479824644",
      "info": "李四"
    }
  ]
}
clearKpBindingInfo
  • 主题:/client/\${baseSN}/send
  • 功能描述:清除键盘绑定信息
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象数组
+keySns array 需要清除绑定信息键盘SN数组,
空数组表示清空所有键盘
{
  "fun": "clearKpBindingInfo",
  "dataTag":"1",
  "data": {
    "keySns":["1479824643","1479824644","1479824645"]
  }
}

事件

sEvtStateCode

发送指令后返回接收状态

fEvtKpBindingInfo
  • 主题:/basestation/\${baseSN}/receive
  • 功能描述:返回键盘实时设置绑定信息的状态是否成功
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data array - 传送参数的对象数组
++keySn string 需要设置绑定信息的键盘SN
++state string 设置的绑定信息是否成功
0 - 成功
1 - 失败
{
  "fun": "fEvtKpBindingInfo",
  "dataTag":"1",
  "data": [
    {
      "keySn": "1479824643",
      "state": "0"
    },
    {
      "keySn": "1479824644",
      "state": "1"
    }
  ]
}
fEvtClearKpBindingInfo
  • 主题:/basestation/\${baseSN}/receive
  • 功能描述:返回清空绑定信息的指令状态是否成功
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象
+state string 设置的绑定信息是否成功
0 - 成功
1 - 失败
{
  "fun": "fEvtClearKpBindingInfo",
  "dataTag":"1",
  "data": {
    "state": "0"
  }
}

签到

随时签到

方法

rtStartKpSignIn
  • 主题:/client/\${baseSN}/send
  • 功能描述:启动随时签到绑定
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传递参数的对象
+mode int - 签到模式
2-PIN码签到,输入pin码后由应用程序决定是否授权
{
  "fun": "rtStartKpSignIn",
  "dataTag":"1",
  "data":{
    "mode":2
  }
}
rtStopKpSignIn
  • 主题:/client/\${baseSN}/send
  • 功能描述:停止签到绑定
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
{
  "fun": "rtStopKpSignIn",
  "dataTag":"1"
}
rtSetKpLoginAllowed
  • 主题:/client/\${baseSN}/send
  • 功能描述:实时PIN绑定授权,可取消授权
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传递参数的对象
+keySn string - 键盘SN
+state int - 1-授权成功
2-授权失败
3-解除已授权
{
  "fun": "rtSetKpLoginAllowed",
  "dataTag":"1",
  "data":{
    "keySn":"1479824643",
    "state":1
  }
}

事件

sEvtStateCode

发送指令后返回接收状态

fEvtKpSignIn
  • 主题:/basestation/\${baseSN}/receive
  • 功能描述:返回键盘提交签到信息
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data array - 传送参数的对象数组
++keySn string 键盘SN
++keyValue string 键盘提交的按键值
++keyTime double 答题时间,从启动开始计算,单位秒
{
  "fun": "fEvtKpSignIn",
  "dataTag":"1",
  "data": [{
      "keySn": "1234567890",
      "keyValue":"1004",
      "keyTime":30.2
    },
    {
      "keySn": "1234567891",
      "keyValue":"1003",
      "keyTime":32.5
    }
  ]
}
fEvtKpLoginAllowed
  • 主题:/basestation/\${baseSN}/receive
  • 功能描述:返回键盘授权状态
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象
+keySn string 键盘SN
+state string 0-执行成功
1-执行失败
{
  "fun": "fEvtKpLoginAllowed",
  "dataTag":"1",
  "data": {
      "keySn":"1479824643",
      "state":"0"
    }
}

按键反馈

判断题

方法

startQATrueFalse
  • 主题:/client/\${baseSN}/send
  • 功能描述:启动判断题答题
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象
+keySns array 指定的键盘SN数组,空数组表示全部在线键盘
+mode int 1 - True/False 对/错
2 - Yes/No 是/否
3 - √/×
+allowModify int 0 - 不允许修改
1 - 允许修改
+tip string 提示的标题,长度不超过16字符
{
  "fun": "startQATrueFalse",
  "dataTag":"1",
  "data":{
    "keySns":[],
    "mode":1,
    "allowModify":1,
    "tip":"请判断对错"
  }
}
stopQATrueFalse
  • 主题:/client/\${baseSN}/send
  • 功能描述:停止判断题答题
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
{
  "fun": "stopQATrueFalse",
  "dataTag":"1"
}

事件

sEvtStateCode

发送指令后返回接收状态

fEvtQATrueFalse
  • 主题:/basestation/\${baseSN}/receive
  • 功能描述:返回键盘提交答题信息
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data array - 传送参数的对象数组
++keySn string 键盘SN
++keyValue string 键盘提交的按键值
1-对
2-错
++keyTime double 答题时间,从启动开始计算,单位秒
{
  "fun": "fEvtQATrueFalse",
  "dataTag":"1",
  "data": [{
      "keySn": "1234567890",
      "keyValue":"1",
      "keyTime":30.2
    }
  ]
}

选择题

方法

startQAChoice
  • 主题:/client/\${baseSN}/send
  • 功能描述:启动选择题答题
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象
+keySns array 指定的键盘SN数组,空数组表示全部在线键盘
+mode int 显示模式
1:显示字母(默认值) 2:显示数字
+lessMode int 迫选模式
0:可缺选(默认值) 1:不可缺选2:允许重复输入3:允许重复输入且不可缺选
+options int 选项数量,1≤M≤10(默认值4)
+optionalN int 可选项个数,1≤N≤M(默认值1)
+allowModify int 修改模式
0 - 不允许修改
1 - 允许修改
+tip string 提示的标题,长度不超过16字符
{
  "fun": "startQAChoice",
  "dataTag":"1",
  "data":{
    "keySns":[],
    "mode": 1,
    "lessMode": 0,
    "options": 4,
    "optionalN": 1,
    "allowModify":1,
    "tip":"请选择"
  }
}
stopQAChoice
  • 主题:/client/\${baseSN}/send
  • 功能描述:停止选择题答题
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
{
  "fun": "stopQAChoice",
  "dataTag":"1"
}

事件

sEvtStateCode

发送指令后返回接收状态

fEvtQAChoice
  • 主题:/basestation/\${baseSN}/receive
  • 功能描述:返回键盘提交答题信息
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data array - 传送参数的对象数组
++keySn string 键盘SN
++keyValue string 键盘提交的按键值
++keyTime double 答题时间,从启动开始计算,单位秒
{
  "fun": "fEvtQAChoice",
  "dataTag":"1",
  "data": [{
      "keySn": "1234567890",
      "keyValue":"A",
      "keyTime":3.2
    }]
}

数字题

方法

startQANum
  • 主题:/client/\${baseSN}/send
  • 功能描述:启动数字题答题
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag 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有效,范围0-100
+numMax int 可输入上限,mode=1有效,范围0-100
+allowModify int 修改模式
0 - 不允许修改
1 - 允许修改
+tip string 提示的标题,长度不超过16字符
{
  "fun": "startQANum",
  "dataTag":"1",
  "data":{
    "keySns":[],
    "mode": 1,
    "digits": 1,
    "numMin": 0,
    "numMax": 100,
    "allowModify":1,
    "tip":"请输入数字"
  }
}
stopQANum
  • 主题:/client/\${baseSN}/send
  • 功能描述:停止数字题答题
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
{
  "fun": "stopQANum",
  "dataTag":"1"
}

事件

sEvtStateCode

发送指令后返回接收状态

fEvtQANum
  • 主题:/basestation/\${baseSN}/receive
  • 功能描述:返回键盘提交答题信息
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data array - 传送参数的对象数组
++keySn string 键盘SN
++keyValue string 键盘提交的按键值
++keyTime double 答题时间,从启动开始计算,单位秒
{
  "fun": "fEvtQANum",
  "dataTag":"1",
  "data": {
      "keySn": "1234567890",
      "keyValue":"10",
      "keyTime":3.2
    }
}

抢答题

方法

startQAQuicker
  • 主题:/client/\${baseSN}/send
  • 功能描述:启动抢答题答题
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象
+keySns array 指定的键盘SN数组,空数组表示全部在线键盘
+mode int 模式
0:普通抢答
+allowModify int 修改模式
0 - 不允许修改
1 - 允许修改
+tip string 提示的标题,长度不超过16字符
{
  "fun": "startQAQuicker",
  "dataTag":"1",
  "data":{
    "keySns":[],
    "mode": 0,
    "allowModify":1,
    "tip":"请按键抢答"
  }
}
stopQAQuicker
  • 主题:/client/\${baseSN}/send
  • 功能描述:停止抢答答题
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
{
  "fun": "stopQAQuicker",
  "dataTag":"1"
}

事件

sEvtStateCode

发送指令后返回接收状态

fEvtQAQuicker
  • 主题:/basestation/\${baseSN}/receive
  • 功能描述:返回键盘提交答题信息
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data array - 传送参数的对象数组
++keySn string 键盘SN
++keyValue string 键盘提交的按键值
++keyTime double 答题时间,从启动开始计算,单位秒
{
  "fun": "fEvtQAQuicker",
  "dataTag":"1",
  "data": [{
      "keySn": "1234567890",
      "keyValue":"1",
      "keyTime":3.2
    }]
}

在线测验

标准测验

方法

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 题目数量
//自定义题号
{
  "fun": "startKpExam",
  "dataTag":"1",
  "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
      }]
  }
}

//显示Q开头
{
  "fun": "startKpExam",
  "dataTag":"1",
  "data":{
    "mode": 1,
    "examNo": 1,
    "questions": [{
        //Q1-Q20,单选题
        "symbol": "",
        "quesType": 1,
        "startNo": 1,
        "count":20
      }]
  }
}

//显示题开头
{
  "fun": "startKpExam",
  "dataTag":"1",
  "data":{
    "mode": 2,
    "examNo": 1,
    "questions": [{
        //题1-题20,单选题
        "symbol": "",
        "quesType": 1,
        "startNo": 1,
        "count":20
      }]
  }
}
stopKpExam
  • 主题:/client/\${baseSN}/send
  • 功能描述:停止标准测验
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
{
  "fun": "stopKpExam",
  "dataTag":"1"
}
rtKpAllowEdited
  • 主题:/client/\${baseSN}/send
  • 功能描述:键盘键盘后,允许键盘修改答案
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象
+keySns array 指定的键盘SN数组,空数组表示全部在线键盘
{
  "fun": "rtKpAllowEdited",
  "dataTag":"1",
  "data":{
    "keySns":["1234567890","1234567891"]
  }
}

事件

sEvtStateCode

发送指令后返回接收状态

fEvtKpExam
  • 主题:/basestation/\${baseSN}/receive
  • 功能描述:返回键盘提交答题信息
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data array - 传送参数的对象数组
++keySn string 键盘SN
++keyValue string 键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B
++keyTime double 答题时间,从启动开始计算,单位秒
{
  "fun": "fEvtKpExam",
  "dataTag":"1",
  "data": [{
      "keySn": "1234567890",
      "keyValue":"1:A;2:B",
      "keyTime":3.2
    },
    {
      "keySn": "1234567891",
      "keyValue":"1:B;2:B",
      "keyTime":3.5
    }
  ]
}
fEvtFinalSubmit
  • 主题:/basestation/\${baseSN}/receive
  • 功能描述:返回键盘手动交卷标识
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 指令名称
dataTag string - 数据包标识,可为空字符串
data object - 传送参数的对象数组
++keySn string 键盘SN
++keyValue string 0 - 未提交(修改键盘运行提交时上报)
1 - 已交卷
++keyTime double 提交时间,从启动开始计算,单位秒
{
  "fun": "fEvtFinalSubmit",
  "dataTag":"1",
  "data": [{
      "keySn": "1234567890",
      "keyValue":"1",
      "keyTime":3.2
    }]
}