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 | 数据内容 | 对象或者数组,可为空 |
注意:基站接收指令数据单次不超过2K长度,在指定键盘发送指令时,如果指令长度超出限制,建议将指令进行拆分,分次发送,如果是所有键盘执行的指令,可将keySns设为空数组不使用指定键盘的模式
功能速查一览表
基站管理
键盘管理
功能归类 | 功能 | 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 | - | 是 | 基站的型号名称 |
- 示例代码
{
"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 | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
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 | 否 | 设置的反馈信息 不同键盘可设置不同反馈信息 |
- 示例代码
json //分别提示 { "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 - 失败 |
- 示例代码
json { "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 | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
json { "fun": "startGetKpOnline", "dataTag":"1" }
stopGetKpOnline
- 主题:/client/\${baseSN}/send
- 功能描述:停止获取键盘在线信息
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
json { "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个字符,显示在键盘左上角 |
- 示例代码
json { "fun": "rtSetKpBindingInfo", "dataTag":"1", "data": [ { "keySn": "1479824643", "info": "张三" }, { "keySn": "1479824644", "info": "李四" } ] }
clearKpBindingInfo
- 主题:/client/\${baseSN}/send
- 功能描述:清除键盘绑定信息
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传送参数的对象数组 |
+keySns | array | 否 | 需要清除绑定信息键盘SN数组, 空数组表示清空所有键盘 |
- 示例代码
json { "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 - 失败 |
- 示例代码
json { "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 - 失败 |
- 示例代码
json { "fun": "fEvtClearKpBindingInfo", "dataTag":"1", "data": { "state": "0" } }
签到
随时签到
方法
rtStartKpSignIn
- 主题:/client/\${baseSN}/send
- 功能描述:启动随时签到绑定
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传递参数的对象 |
+mode | int | - | 是 | 签到模式 2-PIN码签到,输入pin码后由应用程序决定是否授权 |
- 示例代码
json { "fun": "rtStartKpSignIn", "dataTag":"1", "data":{ "mode":2 } }
rtStopKpSignIn
- 主题:/client/\${baseSN}/send
- 功能描述:停止签到绑定
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
json { "fun": "rtStopKpSignIn", "dataTag":"1" }
rtSetKpLoginAllowed
- 主题:/client/\${baseSN}/send
- 功能描述:实时PIN绑定授权,可取消授权
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传递参数的对象 |
+keySn | string | - | 是 | 键盘SN |
+state | int | - | 是 | 1-授权成功 2-授权失败 3-解除已授权 |
- 示例代码
json { "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 | 是 | 答题时间,从启动开始计算,单位秒 |
- 示例代码
json { "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-执行失败 |
- 示例代码
json { "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字符 |
- 示例代码
json { "fun": "startQATrueFalse", "dataTag":"1", "data":{ "keySns":[], "mode":1, "allowModify":1, "tip":"请判断对错" } }
stopQATrueFalse
- 主题:/client/\${baseSN}/send
- 功能描述:停止判断题答题
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
json { "fun": "stopQATrueFalse", "dataTag":"1" }
事件
sEvtStateCode
发送指令后返回接收状态
fEvtQATrueFalse
- 主题:/basestation/\${baseSN}/receive
- 功能描述:返回键盘提交答题信息
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | array | - | 是 | 传送参数的对象数组 |
++keySn | string | 是 | 键盘SN | |
++keyValue | string | 是 | 键盘提交的按键值 1-对 2-错 |
|
++keyTime | double | 是 | 答题时间,从启动开始计算,单位秒 |
- 示例代码
json { "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字符 |
- 示例代码
json { "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 | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
json { "fun": "stopQAChoice", "dataTag":"1" }
事件
sEvtStateCode
发送指令后返回接收状态
fEvtQAChoice
- 主题:/basestation/\${baseSN}/receive
- 功能描述:返回键盘提交答题信息
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | array | - | 是 | 传送参数的对象数组 |
++keySn | string | 是 | 键盘SN | |
++keyValue | string | 是 | 键盘提交的按键值 | |
++keyTime | double | 是 | 答题时间,从启动开始计算,单位秒 |
- 示例代码
json { "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字符 |
- 示例代码
json { "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 | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
json { "fun": "stopQANum", "dataTag":"1" }
事件
sEvtStateCode
发送指令后返回接收状态
fEvtQANum
- 主题:/basestation/\${baseSN}/receive
- 功能描述:返回键盘提交答题信息
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | array | - | 是 | 传送参数的对象数组 |
++keySn | string | 是 | 键盘SN | |
++keyValue | string | 是 | 键盘提交的按键值 | |
++keyTime | double | 是 | 答题时间,从启动开始计算,单位秒 |
- 示例代码
json { "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字符 |
- 示例代码
json { "fun": "startQAQuicker", "dataTag":"1", "data":{ "keySns":[], "mode": 0, "allowModify":1, "tip":"请按键抢答" } }
stopQAQuicker
- 主题:/client/\${baseSN}/send
- 功能描述:停止抢答答题
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
- 示例代码
json { "fun": "stopQAQuicker", "dataTag":"1" }
事件
sEvtStateCode
发送指令后返回接收状态
fEvtQAQuicker
- 主题:/basestation/\${baseSN}/receive
- 功能描述:返回键盘提交答题信息
- 参数说明
参数名 | 类型 | 限制 | 非空 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | array | - | 是 | 传送参数的对象数组 |
++keySn | string | 是 | 键盘SN | |
++keyValue | string | 是 | 键盘提交的按键值 | |
++keyTime | double | 是 | 答题时间,从启动开始计算,单位秒 |
- 示例代码
json { "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 | 是 | 题目数量 |
- 示例代码 ```json //自定义题号 { "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|-|否|数据包标识,可为空字符串|
- **示例代码**
```json
{
"fun": "stopKpExam",
"dataTag":"1"
}
rtKpAllowEdited
- 主题:/client/\${baseSN}/send
- 功能描述:键盘键盘后,允许键盘修改答案
- 参数说明
参数名 | 类型 | 限制 | 是否必填 | 说明 |
---|---|---|---|---|
fun | string | - | 是 | 指令名称 |
dataTag | string | - | 否 | 数据包标识,可为空字符串 |
data | object | - | 是 | 传送参数的对象 |
+keySns | array | 是 | 指定的键盘SN数组,空数组表示全部在线键盘 |
- 示例代码
json { "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 | 是 | 答题时间,从启动开始计算,单位秒 |
- 示例代码
json { "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 | 是 | 提交时间,从启动开始计算,单位秒 |
- 示例代码
json { "fun": "fEvtFinalSubmit", "dataTag":"1", "data": [{ "keySn": "1234567890", "keyValue":"1", "keyTime":3.2 }] }