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通用格式如下:
{
"fun":"xxx",
"dataTag":"xxx",
"data":{
//内容
}
}
参数 | 说明 | 约束 |
---|---|---|
fun | 指令或事件名称 | |
dataTag | 数据标签,用于对应收发数据 | 长度不超过4,可为0-9a-zA-Z的组合 |
data | 数据内容 | 对象或者数组,可为空 |
注意:基站接收指令数据单次不超过2K长度,在指定键盘发送指令时,如果指令长度超出限制,建议将指令进行拆分,分次发送,如果是所有键盘执行的指令,可将keySns设为空数组不使用指定键盘的模式
功能速查一览表
基站管理
键盘管理
功能归类 | 功能 | API指令 | 指令事件 |
---|---|---|---|
交互设置 - 用户实时提示信息 | 实时设置提示反馈信息 | rtSetKpUserPrompt | sEvtStateCode fEvtSetKpUserPrompt |
在线状态获取 | 开启扫描在线键盘 | startGetKpOnline | sEvtStateCode fEvtKpOnlineMsg |
停止扫描在线键盘 | stopGetKpOnline | sEvtStateCode | |
维护功能 - 遥控功能 | 遥控键盘休眠 | remoteKpSleep | sEvtStateCode |
绑定
功能归类 | 功能 | API指令 | 指令事件 |
---|---|---|---|
无线绑定 | 设置绑定信息到键盘 | rtSetKpBindingInfo | sEvtStateCode fEvtKpBindingInfo |
清除键盘绑定信息 | clearKpBindingInfo | sEvtStateCode fEvtClearKpBindingInfo |
签到
功能归类 | 功能 | API指令 | 指令事件 |
---|---|---|---|
同步签到 | 启动同步签到 | startKpSignIn | sEvtStateCode fEvtKpSignIn |
停止同步签到 | stopKpSignIn | sEvtStateCode | |
随时签到 | 启动随时签到 | 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 | 否 | 基站固件版本 |
- 示例代码
//连接成功
{
"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 | 是 | 有冲突的信道 |
- 示例代码
{
"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-失败 |
- 示例代码
{
"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 | 是 | 键盘型号 |
- 示例代码
{
"fun":"sEvtBsKpOnlineMsg",
"dataTag":"1",
"data":{
"keySn":"1234567890",
"version":"1.0.0",
"model":67
}
}
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 |
- 示例代码
{
"fun":"sEvtStateCode",
"dataTag":"1",
"data":{
"funName":"startKpRollCall",
"code":"20005"
}
}
基站管理
基站连接
方法
getBsOnlineState
- 主题:/client/multiBase/send
- 功能描述:主动获取所有在线基站信息,在线基站回复
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 固定指令名称 |
dataTag | string | - | 否 | 数据包标识 |
- 示例代码
{
"fun":"getBsOnlineState",
"dataTag":"1"
}
getBsConnectState
- 主题:/client/${baseSN}/send
- 功能描述:主动获取基站连接状态
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 固定指令名称 |
dataTag | string | - | 否 | 数据包标识 |
- 示例代码
{
"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 |
- 示例代码
//连接成功
{
"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 | 否 | 当前时间的时间戳 |
- 示例代码
{
"fun":"timeSync",
"dataTag":"1",
"data":{
"timeStamp":1718247133290
}
}
事件
sEvtStateCode
返回指令的接收状态
识别设置
方法
getBsModel
- 主题:/client/${baseSN}/send
- 功能描述:获取基站型号
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"fun":"getBsModel",
"dataTag":"1"
}
getBsFWVersion
- 主题:/client/${baseSN}/send
- 功能描述:获取基站固件版本
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"fun":"getBsFWVersion",
"dataTag":"1"
}
事件
fEvtBsSN
- 主题: /basestation/${baseSN}/receive
- 功能描述:返回基站的出厂编码
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 事件名称 |
dataTag | string | - | 否 | 数据包标识 |
data | object | - | 是 | 传送参数的对象 |
+value | string | - | 是 | 基站的出厂编码 |
- 示例代码
{
"fun":"fEvtBsSN",
"dataTag":"1",
"data":{
"value":"2024041201"
}
}
fEvtBsModel
- 主题: /basestation/${baseSN}/receive
- 功能描述:返回基站的型号
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 事件名称 |
dataTag | string | - | 否 | 数据包标识 |
data | object | - | 是 | 传送参数的对象 |
+value | string | - | 是 | 基站的型号名称 |
- 示例代码
{
"fun":"fEvtBsModel",
"dataTag":"1",
"data":{
"value":"B200"
}
}
fEvtBsFWVersion
- 主题: /basestation/${baseSN}/receive
- 功能描述:返回基站的固件版本
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 事件名称 |
dataTag | string | - | 否 | 数据包标识 |
data | object | - | 是 | 传送参数的对象 |
+value | string | 是 | 基站的固件版本号 |
- 示例代码
{
"fun":"fEvtBsFWVersion",
"dataTag":"1",
"data":{
"value":"1.0.3"
}
}
组网设置
方法
getBsPairCode
- 主题:/client/${baseSN}/send
- 功能描述:获取基站配对码
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"fun":"getBsPairCode",
"dataTag":"1"
}
getBsNfcLogin
- 主题:/client/${baseSN}/send
- 功能描述:获取刷卡配对状态
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"fun":"getBsNfcLogin",
"dataTag":"1"
}
setBsNfcLogin
- 主题:/client/${baseSN}/send
- 功能描述:设置基站刷卡配对状态
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传送参数的对象 |
+value | string | - | 是 | 设置的基站刷卡配对状态 0-关闭刷卡配对 1-开启刷卡配对 |
- 示例代码
{
"fun":"setBsNfcLogin",
"dataTag":"1",
"data":{
"value":"1"
}
}
getBsChannel
- 主题:/client/${baseSN}/send
- 功能描述:获取基站信道
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"fun":"getBsChannel",
"dataTag":"1"
}
setBsChannel
- 主题:/client/${baseSN}/send
- 功能描述:设置基站信道
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传送参数的对象 |
+value | string | - | 是 | 设置的基站信道,可设范围:1-80 |
- 示例代码
{
"fun":"setBsChannel",
"dataTag":"1",
"data":{
"value":"23"
}
}
事件
fEvtBsPairCode
- 主题: /basestation/${baseSN}/receive
- 功能描述:返回基站配对码
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 事件名称 |
dataTag | string | - | 否 | 数据包标识,可传空字符串 |
data | object | - | 是 | 传送参数的对象 |
+value | string | 是 | 基站的配对码 |
- 示例代码
{
"fun":"fEvtBsPairCode",
"dataTag":"1",
"data":{
"value":"123456"
}
}
fEvtBsChannel
- 主题: /basestation/${baseSN}/receive
- 功能描述:返回基站信道
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 事件名称 |
dataTag | string | - | 否 | 数据包标识,可传空字符串 |
data | object | - | 是 | 传送参数的对象 |
+value | string | 是 | 基站信道 |
- 示例代码
{
"fun":"fEvtBsChannel",
"dataTag":"1",
"data":{
"value":"5"
}
}
fEvtBsNfcLogin
- 主题: /basestation/${baseSN}/receive
- 功能描述:返回基站是否允许NFC刷卡
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 事件名称 |
dataTag | string | - | 否 | 数据包标识,可传空字符串 |
data | object | - | 是 | 传送参数的对象 |
+value | string | 是 | 0-关闭 1-开启 |
- 示例代码
{
"fun":"fEvtBsNfcLogin",
"dataTag":"1",
"data":{
"value":"1"
}
}
登录设置
方法
getBsSSID
获取基站登录名称
- 主题:/client/${baseSN}/send
- 功能描述:获取基站登录名称
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 固定指令名称 |
dataTag | string | - | 否 | 数据包标识 |
- 示例代码
{
"fun":"getBsSSID",
"dataTag":"1"
}
setBsSSID
- 主题:/client/${baseSN}/send
- 功能描述:设置基站登录名称
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传送参数的对象 |
+value | string | 是 | 设置的基站SSID,最长12字符 |
- 示例代码
{
"fun":"setBsSSID",
"dataTag":"1",
"data":{
"value":"1901班"
}
}
事件
fEvtBsSSID
- 主题: /basestation/${baseSN}/receive
- 功能描述:返回基站名称
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 事件名称 |
dataTag | string | - | 否 | 数据包标识,可传空字符串 |
data | object | - | 是 | 传送参数的对象 |
+value | string | 是 | 基站名称 |
- 示例代码
{
"fun":"fEvtBsSSID",
"dataTag":"1",
"data":{
"value":"1901班"
}
}
键盘统一设置
方法
getBsKpLanguage
- 主题:/client/${baseSN}/send
- 功能描述:获取键盘语言
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"fun":"getBsKpLanguage",
"dataTag":"1"
}
setBsKpLanguage
- 主题:/client/${baseSN}/send
- 功能描述:设置键盘语言
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传送参数的对象 |
+value | string | 是 | 设置键盘显示的语言 1-简体中文 2-英文 |
- 示例代码
{
"fun":"setBsKpLanguage",
"dataTag":"1",
"data":{
"value":"1"
}
}
事件
fEvtBsKpLanguage
- 主题: /basestation/${baseSN}/receive
- 功能描述:返回键盘语言
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传送参数的对象 |
+value | string | 是 | 设置键盘显示的语言 1-简体中文 2-英文 |
- 示例代码
{
"fun":"fEvtBsKpLanguage",
"dataTag":"1",
"data":{
"value":"1"
}
}
配对模式
方法
startBsFastPair
- 主题:/client/${baseSN}/send
- 功能描述:启动快速配对,键盘配对成功返回键盘信息 sEvtBsKpOnlineMsg
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"fun":"startBsFastPair",
"dataTag":"1"
}
stopBsFastPair
- 主题:/client/${baseSN}/send
- 功能描述:停止快速配对
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"fun":"stopBsFastPair",
"dataTag":"1"
}
事件
sEvtStateCode
发送指令后返回此事件
sEvtBsKpOnlineMsg
键盘配对成功后在线返回此事件
白名单模式
方法
getBsWhitelist
- 主题:/client/${baseSN}/send
- 功能描述:获取基站白名单列表
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"fun":"getBsWhitelist",
"dataTag":"1"
}
setBsWhitelist
- 主题:/client/${baseSN}/send
- 功能描述:设置基站白名单列表,将基站白名单替换为写入的键盘SN列表
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传送参数的对象 |
+keySns | array | - | 是 | 待写入的键盘SN数组,最多不超过200 键盘SN为10位数字 |
- 示例代码
{
"fun":"setBsWhitelist",
"dataTag":"1",
"data":{
"keySns":["2024021001","2024021002","2024021003","2024021004"]
}
}
clearBsWhitelist
- 主题:/client/${baseSN}/send
- 功能描述:清空基站白名单列表
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"fun":"clearBsWhitelist",
"dataTag":"1"
}
addBsWhitelist
- 主题:/client/${baseSN}/send
- 功能描述:添加键盘至基站白名单列表
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传送参数的对象 |
+keySns | array | - | 是 | 待添加的键盘SN列表 键盘SN为10位数字 |
- 示例代码
{
"fun":"addBsWhitelist",
"dataTag":"1",
"data":{
"keySns":["2024021001"]
}
}
delBsWhitelist
- 主题:/client/${baseSN}/send
- 功能描述:从基站白名单列表中删除键盘
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传送参数的对象 |
+keySns | array | - | 是 | 待删除的键盘SN列表 键盘SN为10位数字 |
- 示例代码
{
"fun":"delBsWhitelist",
"dataTag":"1",
"data":{
"keySns":["2024021001"]
}
}
事件
sEvtStateCode
发送指令后返回此事件
fEvtBsWhitelist
- 主题:/basestation/${baseSN}/receive
- 功能描述:返回基站白名单列表
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传送参数的对象 |
+keySns | array | 是 | 基站当前的白名单列表 |
- 示例代码
{
"fun":"fEvtBsWhitelist",
"dataTag":"1",
"data":{
"keySns":["2024021001","2024021002","2024021003","2024021004"]
}
}
fEvtSetBsWhitelist
- 主题:/basestation/${baseSN}/receive
- 功能描述:返回设置白名单状态
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | array | - | 是 | 传送参数的对象数组 |
++keySns | array | 是 | 键盘SN数组 | |
++state | int | 是 | 键盘SN的写入状态 0-写入成功 1-写入失败 |
- 示例代码
{
"fun":"fEvtSetBsWhitelist",
"dataTag":"1",
"data":[{
"keySns":["2024021001","2024021002"],
"state":0
},{
"keySns":["1211"],
"state":1
}]
}
fEvtAddBsWhitelist
- 主题:/basestation/${baseSN}/receive
- 功能描述:返回增加键盘状态
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | array | - | 是 | 传送参数的对象数组 |
++keySns | array | 是 | 键盘SN数组 | |
++state | int | 是 | 键盘的增加状态 0-增加成功 1-增加失败 |
- 示例代码
{
"fun":"fEvtAddBsWhitelist",
"dataTag":"1",
"data":[{
"keySns":["2024021001","2024021002"],
"state":0
},{
"keySns":["1211"],
"state":1
}]
}
fEvtDelBsWhitelist
- 主题:/basestation/${baseSN}/receive
- 功能描述:返回删除键盘状态
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | array | - | 是 | 传送参数的对象数组 |
++keySns | array | 是 | 键盘SN数组 | |
++state | int | 是 | 键盘的删除状态 0-删除成功 1-删除失败 |
- 示例代码
{
"fun":"fEvtDelBsWhitelist",
"dataTag":"1",
"data":[{
"keySns":["2024021002"],
"state":0
},{
"keySns":["2024021001"],
"state":1
}]
}
网络参数设置
方法
getBsTcpipParams
- 主题:/client/${baseSN}/send
- 功能描述:获取基站TCP/IP参数
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"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获取 |
- 示例代码
{
"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 | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"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 | 否 | 基站连接服务器失败后重连的间隔时长,单位秒 |
- 示例代码
{
"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获取 |
- 示例代码
{
"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 | 否 | 基站连接服务器失败后重连的间隔时长,单位秒 |
- 示例代码
{
"fun":"fEvtBsMqttParams",
"dataTag":"1",
"data":{
"server":"192.168.10.10",
"port":1883,
"userName":"",
"password":"",
"interval":30
}
}
键盘管理
交互设置
方法
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
- 功能描述:开始获取键盘在线信息,键盘在线返回键盘信息
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"fun": "startGetKpOnline",
"dataTag":"1"
}
stopGetKpOnline
- 主题:/client/${baseSN}/send
- 功能描述:停止获取键盘在线信息
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"fun": "stopGetKpOnline",
"dataTag":"1"
}
事件
sEvtStateCode
发送指令后返回此事件
fEvtKpOnlineMsg
- 主题: /basestation/${baseSN}/receive
- 功能描述:主动获取在线键盘时,在线键盘状态报告
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 事件名称 |
dataTag | string | - | 否 | 数据包标识 |
data | object | - | 是 | 传送参数的对象 |
+keySn | string | 是 | 键盘SN | |
+version | string | 是 | 键盘固件版本 | |
+model | int | 是 | 键盘型号 | |
+voltage | double | 是 | 键盘电量 |
- 示例代码
{
"fun":"fEvtKpOnlineMsg",
"dataTag":"1",
"data":{
"keySn":"1234567890",
"version":"1.0.0",
"model":67,
"voltage":2.8
}
}
维护功能
方法
remoteKpSleep
- 主题:/client/${baseSN}/send
- 功能描述:遥控键盘休眠
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传送参数的对象数组 |
+keySns | array | 否 | 需要执行指令的键盘SN数组,空数组表示所有键盘 |
- 示例代码
{
"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"
}
}
签到
同步签到
方法
startKpSignIn
- 主题:/client/${baseSN}/send
- 功能描述:启动同步签到
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传递参数的对象 |
+mode | int | - | 是 | 签到模式 1-按键签到,可指定按键 2-PIN码签到,可指定PIN码长度 |
+allowModify | int | - | 是 | 修改模式 0-不可修改 1-可以修改(默认值) |
+pinLen | int | - | 是 | 可输入pin码的最大长度 1≤N≤14 |
+keyValue | int | - | 是 | 指定按键键值 0: 未指定(OK键签到) 1-9: 按键1-9 10: 按键0 11: 上键 12: 下键 13: OK键 14: ESC键 15: Menu键 |
+tipTitle | string | - | 否 | 提示标题,长度最多不超过16个字节 |
- 示例代码
//按键签到
{
"fun":"startKpSignIn",
"dataTag":"1",
"data":{
"mode":1,
"allowModify":1,
"keyValue":5,
"tip":"请按5键签到"
}
}
//pin签到
{
"fun":"startKpSignIn",
"dataTag":"1",
"data":{
"mode":2,
"allowModify":1,
"pinLen":6,
"tip":"请输入PIN码签到"
}
}
stopKpSignIn
- 主题:/client/${baseSN}/send
- 功能描述:停止同步签到
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
{
"fun":"stopKpSignIn",
"dataTag":"1"
}
事件
sEvtStateCode
发送指令后返回接收状态
fEvtKpSignIn
返回键盘提交的签到数据
随时签到
方法
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 | 是 | 题目数量 |
- 示例代码
常用样例:一级题型 + 显示“Q”开头, 单一题型,全单选题共10题
{
"fun":"startKpExam",
"dataTag":"1",
"data":{
"mode": 1,
"examNo": 1,
"questions": [{
"quesType": 1, //单选题
"startNo": 1, //题号从1开始
"count":10 //连续10题
}]
}
}
指令样例:一级题型 + 不显示开头,总题数6题
{
"fun":"startKpExam",
"dataTag":"1",
"data":{
"mode": 0,
"examNo": 1,
//第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题
}]
}
}
指令样例:二级题型 + 不显示开头,总题数6题
{
"fun":"startKpExam",
"dataTag":"1",
"data":{
"mode": 0,
"examNo": 1,
//第1-1、1-2题单选题,第2-1、2-2题多选题,第3-1题数字,第4-1题判断,共6题
"questions": [{
"symbol": "1-",
"quesType": 1, //单选题
"startNo": 1, //题号从1-1开始
"count":2 //连续2题
},{
"symbol": "2-",
"quesType": 2, //多选题
"startNo": 1, //题号从2-1开始
"count":2, //连续2题
"option":5
},{
"symbol": "3-",
"quesType": 3, //数字题
"startNo": 1, //题号从3-1开始
"count":1 //连续1题
},{
"symbol": "4-",
"quesType": 4, //判断题
"startNo": 1, //题号从4-1开始
"count":1 //连续1题
}]
}
}
指令样例:三级题型 + 不显示开头,总题数6题
{
"fun":"startKpExam",
"dataTag":"1",
"data":{
"mode": 0,
"examNo": 1,
//第1-1-1、1-1-2题单选题,第1-2-1、1-2-2题多选题,第2-1-1题数字,第3-1-1题判断,共6题
"questions": [{
"symbol": "1-1-",
"quesType": 1, //单选题
"startNo": 1, //题号从1-1-1开始
"count":2 //连续2题
},{
"symbol": "1-2-",
"quesType": 2, //多选题
"startNo": 1, //题号从1-2-1开始
"count":2, //连续2题
"option":5
},{
"symbol": "2-1-",
"quesType": 3, //数字题
"startNo": 1, //题号从2-1-1开始
"count":1 //连续1题
},{
"symbol": "3-1-",
"quesType": 4, //判断题
"startNo": 1, //题号从3-1-1开始
"count":1 //连续1题
}]
}
}
指令样例:一级题型 + 显示“Q”开头, 共6题
{
"fun":"startKpExam",
"dataTag":"1",
"data":{
"mode": 1,
"examNo": 1,
"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题
}]
}
}
指令样例:一级题型 + 显示“题”开头, 共6题
{
"fun": "startKpExam",
"dataTag":"1",
"data":{
"mode": 2,
"examNo": 1,
"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题
}]
}
}
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 | array | - | 是 | 传送参数的对象数组 |
++keySn | string | 是 | 键盘SN | |
++keyValue | string | 是 | 0 - 未提交(提交完成后,允许键盘修改答案时上报) 1 - 已交卷 |
|
++keyTime | double | 是 | 提交时间,从启动开始计算,单位秒 |
- 示例代码
{
"fun": "fEvtFinalSubmit",
"dataTag":"1",
"data": [{
"keySn": "1234567890",
"keyValue":"1",
"keyTime":3.2
}]
}