diff --git a/通讯协议-B200W-MQTT协议[外].md b/通讯协议-B200W-MQTT协议[外].md index 4cb87d6..97c0426 100644 --- a/通讯协议-B200W-MQTT协议[外].md +++ b/通讯协议-B200W-MQTT协议[外].md @@ -98,6 +98,24 @@ MQTT服务器配置结果检查 ## 功能速查一览表 +### 公共方法 +可以在多种业务中调用的通用方法 +|功能归类|功能|API指令|指令/系统事件| +|---|---|---|---| +|停止投票|可停止通过调用startXXX启动的答题业务|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|| + +### 公共事件 +无需调用指令,自动返回的事件 +|功能归类|功能|API指令|指令/系统事件| +|---|---|---|---| +|公共事件|指令接收状态|-|[sEvtStateCode](#sevtstatecode)| +|公共事件|基站连接状态变化|-|[sEvtBsConnectState](#sevtbsconnectstate)| +|公共事件|基站信道冲突|-|[sEvtBsChannelConflict](#sevtbschannelconflict)| +|公共事件|键盘上线通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)| +|公共事件|键盘刷卡事件|-|[sEvtBsNfcResults](#sevtbsnfcresults)| +|公共事件|键盘待机实时按键反馈|-|[sEvtKpRtFeedback](#sevtkprtfeedback)| +|公共事件|键盘举手键实时按键反馈|-|[sEvtKpHandUp](#sevtkphandup)| + ### 基站管理 |功能归类|功能|API指令|指令/系统事件| |---|---|---|---| @@ -108,15 +126,19 @@ MQTT服务器配置结果检查 |键盘上线通知|单个键盘上线系统通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|| |识别设置 - 基站型号|读取基站型号|[getBsModel](#getbsmodel)|[fEvtBsModel](#fevtbsmodel)| |识别设置 - 固件版本|获取基站固件版本|[getBsFWVersion](#getbsfwversion)|[fEvtBsFWVersion](#fevtbsfwversion)| +|组网设置 - 组网模式|获取基站组网模式|[getBsNetworkMode](#getbsnetworkmode)|[fEvtBsNetworkMode](#fevtbsnetworkmode)| |组网设置 - 配对码|获取基站配对码|[getBsPairCode](#getbspaircode)|[fEvtBsPairCode](#fevtbspaircode)| |组网设置 - 刷卡配对状态|获取刷卡配对状态|[getBsNfcLogin](#getbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)| ||设置刷卡配对状态|[setBsNfcLogin](#setbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)|| |组网设置 - 工作信道|获取基站工作信道|[getBsChannel](#getbschannel)|[fEvtBsChannel](#fevtbschannel)| ||设置基站工作信道|[setBsChannel](#setbschannel)|[fEvtBsChannel](#fevtbschannel)|| +||读取已被占用信道|[getBsRFIChannel](#getbsrfichannel)|[fEvtBsRFIChannel](#fevtbsrfichannel)|| |登录设置 - 登录名称|获取基站登录名称|[getBsSSID](#getbsssid)|[fEvtBsSSID](#fevtbsssid)| ||设置基站登录名称|[setBsSSID](#setbsssid)|[fEvtBsSSID](#fevtbsssid)|| -|键盘统一设置 - 键盘语言|获取键盘语言|[getBsKpLanguage](#getbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)| -||设置键盘语言|[setBsKpLanguage](#setbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)|| +|登录设置 - 登录密码|获取基站登录密码|[getBsLoginPwd](#getbsloginpwd)|[fEvtBsLoginPwd](#fevtbsloginpwd)| +||设置基站登录密码|[setBsLoginPwd](#setbsloginpwd)|[fEvtBsLoginPwd](#fevtbsloginpwd)|| +|登录设置 - 基站登录状态|获取基站登录状态|[getBsLoginState](#getbsloginstate)|[fEvtBsLoginState](#fevtbsloginstate)| +||设置基站登录状态|[setBsLoginState](#setbsloginstate)|[fEvtBsLoginState](#fevtbsloginstate)|| |配对模式 - 快速配对|启动基站快速配对|[startBsFastPair](#startbsfastpair)|[sEvtStateCode](#sevtstatecode)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)| ||停止基站快速配对|[stopBsFastPair](#stopbsfastpair)|[sEvtStateCode](#sevtstatecode)| |白名单模式 - 白名单管理|获取白名单|[getBsWhitelist](#getbswhitelist)|[fEvtBsWhitelist](#fevtbswhitelist)| @@ -124,6 +146,8 @@ MQTT服务器配置结果检查 ||清空白名单|[clearBsWhitelist](#clearbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtBsWhitelist](#fevtbswhitelist)| ||增加白名单|[addBsWhitelist](#addbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtAddBsWhitelist](#fevtaddbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)| ||删除白名单|[delBsWhitelist](#delbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtDelBsWhitelist](#fevtdelbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)| +|基站加密 - 软件狗|获取基站软件狗|[getBsSoftwareKey](#getbssoftwarekey)|[fEvtBsSoftwareKey](#fevtbssoftwarekey)| +||设置基站软件狗|[setBsSoftwareKey](#setbssoftwarekey)|[fEvtBsSoftwareKey](#fevtbssoftwarekey)| |网络设置 - TCP/IP参数|获取TCP/IP参数|[getBsTcpipParams](#getbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)| ||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)|| |网络设置 - MQTT参数|获取MQTT参数|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)| @@ -144,7 +168,7 @@ MQTT服务器配置结果检查 |功能归类|功能|API指令|指令事件| |---|---|---|---| |同步签到|启动同步签到|[startKpSignIn](#startkpsignin)|[sEvtStateCode](#sevtstatecode)
[fEvtKpSignIn](#fevtkpsignin)| -||停止同步签到|[stopKpSignIn](#stopkpsignin)|[sEvtStateCode](#sevtstatecode)| +||停止同步签到|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)| |随时签到|启动随时签到|[rtStartKpSignIn](#rtstartkpsignin)|[sEvtStateCode](#sevtstatecode)
[fEvtKpSignIn](#fevtkpsignin)| ||停止随时签到|[rtStopKpSignIn](#rtstopkpsignin)|[sEvtStateCode](#sevtstatecode)| ||实时PIN签到授权|[rtSetKpLoginAllowed](#rtsetkploginallowed)|[sEvtStateCode](#sevtstatecode)
[fEvtKpLoginAllowed](#fevtkploginallowed)| @@ -152,19 +176,44 @@ MQTT服务器配置结果检查 |功能归类|功能|API指令|指令事件| |---|---|---|---| |判断题|启动判断题答题|[startQATrueFalse](#startqatruefalse)|[sEvtStateCode](#sevtstatecode)
[fEvtQATrueFalse](#fevtqatruefalse)| -||停止判断题答题|[stopQATrueFalse](#stopqatruefalse)|[sEvtStateCode](#sevtstatecode)| +||停止判断题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)| |选择题|启动选择题答题|[startQAChoice](#startqachoice)|[sEvtStateCode](#sevtstatecode)
[fEvtQAChoice](#fevtqachoice)| -||停止选择题答题|[stopQAChoice](#stopqachoice)|[sEvtStateCode](#sevtstatecode)| +||停止选择题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)| |数字题|启动数字题答题|[startQANum](#startqanum)|[sEvtStateCode](#sevtstatecode)
[fEvtQANum](#fevtqanum)| -||停止数字题答题|[stopQANum](#stopqanum)|[sEvtStateCode](#sevtstatecode)| +||停止数字题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)| |抢答题|启动抢答题答题|[startQAQuicker](#startqaquicker)|[sEvtStateCode](#sevtstatecode)
[fEvtQAQuicker](#fevtqaquicker)| -||停止抢答题答题|[stopQAQuicker](#stopqaquicker)|[sEvtStateCode](#sevtstatecode)| +||停止抢答题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)| +|待机实时反馈|设置待机实时反馈状态|[setKpStbResponse](#setkpstbresponse)|[fEvtKpStbResponse](#fevtkpstbresponse)
[sEvtKpRtFeedback](#sevtkprtfeedback)
[sEvtKpHandUp](#sevtkphandup)| +||设置待机实时反馈状态|[getKpStbResponse](#getkpstbresponse)|[fEvtKpStbResponse](#fevtkpstbresponse)| ### 在线测验 |功能归类|功能|API指令|指令事件| |---|---|---|---| |标准测验|启动标准测验|[startKpExam](#startkpexam)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)
[fEvtFinalSubmit](#fevtfinalsubmit)| -||停止标准测验|[stopKpExam](#stopkpexam)|[sEvtStateCode](#sevtstatecode)| +||停止标准测验|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)| ||允许键盘提交后退回修改|[rtAllowEdited](#rtkpallowedited)|[sEvtStateCode](#sevtstatecode)
[fEvtFinalSubmit](#fevtfinalsubmit)| +|多科测验|启动多科测验|[startKpMultiExam](#startkpmultiexam)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)
[fEvtFinalSubmit](#fevtfinalsubmit)| +||停止标准测验|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)| +|自主录分|启动自主录分|[startKpScoreInput](#startkpscoreinput)|[sEvtStateCode](#sevtstatecode)
[fEvtKpScore](#fevtkpscore)
[fEvtFinalSubmit](#fevtfinalsubmit)| +||停止自主录分|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)| + +## 公共方法 +### stopKpVote +- **主题**: /client/\${baseSN}/send +- **功能描述**:通用停止键盘答题方法,可以停止如同步签到、按键反馈、在线测验中调用startXXX方法启动的业务 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|-----|-----|-----|-----|-----| +|fun|string|-|是|事件类型| +|dataTag|string||否|数据包标识,不需要时可传空字符串| + +- **示例代码** +```json +{ + "fun":"stopKpVote", + "dataTag":"1" +} +``` ## 公共事件 ### sEvtBsConnectState @@ -241,6 +290,7 @@ MQTT服务器配置结果检查 |dataTag|string|-|否|数据包标识,不需要时可传空字符串| |data|object|-|是|传送参数的对象| |+keySn|string||是|刷卡的键盘SN| +|+cardType|int||是|刷卡的键盘类型
1-NFC类型
2-M1类型| |+value|int||是|刷卡的状态
1-成功
2-失败| - **示例代码** @@ -250,7 +300,8 @@ MQTT服务器配置结果检查 "fun":"sEvtBsNfcResults", "dataTag":"1", //不需要时可传空字符串 "data":{ - "keySn":"1234567890", + "keySn":"1234567890", + "cardType":1, "value":1 } } @@ -283,7 +334,56 @@ MQTT服务器配置结果检查 } } ``` +### sEvtKpRtFeedback +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:开启键盘实时反馈后,键盘按键时上报 +- **参数说明** +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++keyValue|string||是|键盘提交的按键值| +|++voltage|double||是|键盘电量| +|++retryCount|int||是|键盘提交数据的重发次数| + +- **示例代码** +```json +{ + "fun":"sEvtKpRtFeedback", + "dataTag":"1", + "data":[{ + "keySn":"1234567890", + "keyValue":"A", + "voltage":2.6, + "retryCount":1 + }] +} +``` +### sEvtKpHandUp +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:开启键盘举手功能后,键盘按举手键时上报 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|举手的键盘SN| + +- **示例代码** +```json +{ + "fun":"sEvtKpHandUp", + "dataTag":"1", + "data":{ + "keySn":"1234567890" + } +} +``` ### sEvtStateCode - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站接收指令状态信息 @@ -302,14 +402,22 @@ MQTT服务器配置结果检查 |0|指令收取成功| |10001|不能正确解析的JSON数据| |10002|解析JSON错误| +|10003|下发数据包超长| |20001|基站未连接| |20002|功能不支持| |20003|基站SN格式不正确| |20004|参数错误| -|20005|基站在答题中| +|20005|dataTag错误| +|20006|键盘SN错误| +|20007|tip参数错误| +|20008|value参数错误| +|30001|基站在答题中| +|30002|基站忙(内存不足)| +|30003|基站执行失败| |40001|升级功能只能支持一个基站| |50001|此功能必须指定基站| |60001|此功能必须指定键盘SN| +|70001|没有字库| - **示例代码** @@ -318,7 +426,7 @@ MQTT服务器配置结果检查 "fun":"sEvtStateCode", "dataTag":"1", "data":{ - "funName":"startKpRollCall", + "funName":"startKpSignIn", "code":"20005" } } @@ -372,7 +480,7 @@ MQTT服务器配置结果检查 参见基站连接变化系统通知 ##### fEvtBsOnlineState -- **主题**: /basestation/mutilBase/receive +- **主题**: /basestation/multiBase/receive - **功能描述**:基站在线返回基站型号和基站SN - **参数说明** @@ -547,6 +655,23 @@ MQTT服务器配置结果检查 ### 组网设置 #### 方法 +##### getBsNetworkMode +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站组网模式 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```json +{ + "fun":"getBsNetworkMode", + "dataTag":"1" +} +``` ##### getBsPairCode - **主题**:/client/\${baseSN}/send - **功能描述**:获取基站配对码 @@ -652,7 +777,47 @@ MQTT服务器配置结果检查 } ``` +##### getBsRFIChannel +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取已被其他基站占用的信道 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```json +{ + "fun":"getBsRFIChannel", + "dataTag":"1" +} +``` + #### 事件 +##### fEvtBsNetworkMode +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站组网模式 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|基站的组网模式
1-配对模式
2-白名单模式| + +- **示例代码** +```json +{ + "fun":"fEvtBsNetworkMode", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` ##### fEvtBsPairCode - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站配对码 @@ -701,6 +866,38 @@ MQTT服务器配置结果检查 } ``` +##### fEvtBsRFIChannel +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回其他基站已占用的信道,频点冲突时,可以根据返回结果修改基站信道避开干扰 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|其他基站已占用的信道,多个信道用英文","分隔,无占用信道返回0| + +- **示例代码** +```json +//信道1、2、14已被占用 +{ + "fun":"fEvtBsRFIChannel", + "dataTag":"1", + "data":{ + "value":"1,2,14" + } +} +//无占用信道 +{ + "fun":"fEvtBsRFIChannel", + "dataTag":"1", + "data":{ + "value":"0" + } +} +``` + ##### fEvtBsNfcLogin - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站是否允许NFC刷卡 @@ -770,6 +967,85 @@ MQTT服务器配置结果检查 } } ``` +##### getBsLoginPwd +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站登录密码 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|固定指令名称| +|dataTag|string|-|否|数据包标识| + +- **示例代码** +```json +{ + "fun":"getBsLoginPwd", + "dataTag":"1" +} +``` +##### setBsLoginPwd +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站登录密码 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置的基站登录密码,数字类型,最长4位,为空或设为0代表无需密码登录| + +- **示例代码** +```json +{ + "fun":"setBsLoginPwd", + "dataTag":"1", + "data":{ + "value":"1234" + } +} +``` +##### getBsLoginState +获取基站登录名称 +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站登录状态 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|固定指令名称| +|dataTag|string|-|否|数据包标识| + +- **示例代码** +```json +{ + "fun":"getBsLoginState", + "dataTag":"1" +} +``` +##### setBsLoginState +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站登录状态 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置是否允许键盘自主登入
0 - 不允许键盘登入
1 - 允许键盘登入| + +- **示例代码** +```json +{ + "fun":"setBsLoginState", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` #### 事件 ##### fEvtBsSSID @@ -795,7 +1071,59 @@ MQTT服务器配置结果检查 } } ``` +##### fEvtBsLoginPwd +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站登录密码 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|基站登录密码,返回值为0代表无需密码登录| +- **示例代码** +```json +{ + "fun":"fEvtBsLoginPwd", + "dataTag":"1", + "data":{ + "value":"1234" + } +} + +//无需密码登录 +{ + "fun":"fEvtBsLoginPwd", + "dataTag":"1", + "data":{ + "value":"0" + } +} +``` +##### fEvtBsLoginState +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站登录状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|基站登录状态| + +- **示例代码** +```json +{ + "fun":"fEvtBsLoginState", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` ### 键盘统一设置 #### 方法 ##### getBsKpLanguage @@ -1205,7 +1533,7 @@ MQTT服务器配置结果检查 |+port|int||是|端口,默认1883| |+userName|string||否|连接服务器的用户名,可不设置| |+password|string||否|连接服务器的密码,可不设置| -|+interval|int|>=10|否|基站连接服务器失败后重连的间隔时长,单位秒| +|+interval|int|>=60|否|基站连接服务器失败后重连的间隔时长,单位秒| - **示例代码** @@ -1218,7 +1546,7 @@ MQTT服务器配置结果检查 "port":1883, "userName":"", "password":"", - "interval":30 + "interval":60 } } ``` @@ -1287,7 +1615,70 @@ MQTT服务器配置结果检查 } } ``` +### 基站加密 +#### 方法 +##### getBsSoftwareKey +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站软件狗密钥 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```json +{ + "fun":"getBsSoftwareKey", + "dataTag":"1" +} +``` +##### setBsSoftwareKey +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站软件狗密钥 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string|-|是|基站软件狗密钥,长度不超过32字节| + +- **示例代码** +```json +{ + "fun":"setBsSoftwareKey", + "dataTag":"1", + "data":{ + "value":"sunvote123456" + } +} +``` +#### 事件 +##### fEvtBsSoftwareKey +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回基站的软件狗密钥 +- **参数说明** +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|返回基站的软件狗密钥| + +- **示例代码** +```json +{ + "fun":"fEvtBsSoftwareKey", + "dataTag":"1", + "data":{ + "value":"sunvote123456" + } +} +``` ## 键盘管理 ### 交互设置 #### 方法 @@ -1643,8 +2034,7 @@ MQTT服务器配置结果检查 } } ``` - -##### stopKpSignIn + +##### [stopKpVote](#stopkpvote) +停止同步签到 + #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回接收状态 @@ -1756,6 +2149,8 @@ MQTT服务器配置结果检查 |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| +|++voltage|double||是|键盘电量| +|++retryCount|int||是|键盘提交数据的重发次数| - **示例代码** @@ -1817,6 +2212,7 @@ MQTT服务器配置结果检查 |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| +|+count|int||是|题目数量,1-16,>1多题快答| |+mode|int||是|1 - True/False 对/错
2 - Yes/No 是/否
3 - √/×| |+allowModify|int||是|0 - 不允许修改
1 - 允许修改| |+tip|string||否|提示的标题,长度不超过16字符| @@ -1829,14 +2225,14 @@ MQTT服务器配置结果检查 "dataTag":"1", "data":{ "keySns":[], + "count":1, "mode":1, "allowModify":1, "tip":"请判断对错" } } ``` - -##### stopQATrueFalse + + +##### [stopKpVote](#stopkpvote) +停止判断题答题 #### 事件 ##### [sEvtStateCode](#sevtstatecode) @@ -1872,6 +2271,8 @@ MQTT服务器配置结果检查 |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值
1-对
2-错| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| +|++voltage|double||是|键盘电量| +|++retryCount|int||是|键盘提交数据的重发次数| - **示例代码** @@ -1901,6 +2302,7 @@ MQTT服务器配置结果检查 |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| +|+count|int||是|题目数量,1-16,>1多题快答
optionalN >1时无效| |+mode|int||是|显示模式
1:显示字母(默认值)
2:显示数字 | |+lessMode|int||是|迫选模式
0:可缺选(默认值)
1:不可缺选
2:允许重复输入
3:允许重复输入且不可缺选 | |+options|int||是|选项数量,1≤M≤10(默认值4)| @@ -1917,6 +2319,7 @@ MQTT服务器配置结果检查 "data":{ "keySns":[], "mode": 1, + "count":1, "lessMode": 0, "options": 4, "optionalN": 1, @@ -1925,8 +2328,7 @@ MQTT服务器配置结果检查 } } ``` - -##### stopQAChoice + +##### [stopKpVote](#stopkpvote) +停止选择题答题 #### 事件 ##### [sEvtStateCode](#sevtstatecode) @@ -1962,6 +2366,8 @@ MQTT服务器配置结果检查 |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| +|++voltage|double||是|键盘电量| +|++retryCount|int||是|键盘提交数据的重发次数| - **示例代码** @@ -2014,8 +2420,7 @@ MQTT服务器配置结果检查 } } ``` - -##### stopQANum + +##### [stopKpVote](#stopkpvote) +停止数字题答题 #### 事件 ##### [sEvtStateCode](#sevtstatecode) @@ -2051,6 +2458,8 @@ MQTT服务器配置结果检查 |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| +|++voltage|double||是|键盘电量| +|++retryCount|int||是|键盘提交数据的重发次数| - **示例代码** @@ -2097,8 +2506,7 @@ MQTT服务器配置结果检查 } } ``` - -##### stopQAQuicker + + +##### [stopKpVote](#stopkpvote) +停止抢答 #### 事件 ##### [sEvtStateCode](#sevtstatecode) @@ -2134,6 +2545,8 @@ MQTT服务器配置结果检查 |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| +|++voltage|double||是|键盘电量| +|++retryCount|int||是|键盘提交数据的重发次数| - **示例代码** @@ -2148,6 +2561,113 @@ MQTT服务器配置结果检查 }] } ``` +### 待机实时反馈 +#### 方法 +##### setKpStbResponse +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动待机实时反馈 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+state|int||是|启用待机实时反馈
0-不启用
1-启用| +|+mode|int||是|启动待机反馈类型,state=1时有效
0-举手
1-指定按键反馈| +|+keys|int||是|有效按键数量,state=1且mode=1时有效, 范围1-10| + +- **示例代码** +```json +//启用举手反馈 +{ + "fun":"setKpStbResponse", + "dataTag":"1", + "data":{ + "state":1, + "mode":0 + } +} +//启用待机按键反馈 +{ + "fun":"setKpStbResponse", + "dataTag":"1", + "data":{ + "state":1, + "mode":1, + "keys":4 + } +} +//关闭待机按键反馈 +{ + "fun":"setKpStbResponse", + "dataTag":"1", + "data":{ + "state":0 + } +} +``` + +##### getKpStbResponse +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取实时反馈是否打开 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```json +//启用举手反馈 +{ + "fun":"getKpStbResponse", + "dataTag":"1" +} +``` + +#### 事件 +##### fEvtKpStbResponse +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回当前待机按键反馈开启状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|+state|int||是|启用待机实时反馈
0-未启用
1-启用| +|+mode|int||是|当前启动待机反馈类型,state=1时返回
0-举手
1-指定按键反馈| + +- **示例代码** +```json +//当前启用待机实时反馈,模式为指定按键反馈 +{ + "fun":"fEvtKpStbResponse", + "dataTag":"1", + "data": { + "state": 1, + "mode": 1 + } +} + +//当前未启用待机反馈 +{ + "fun":"fEvtKpStbResponse", + "dataTag":"1", + "data": { + "state": 0 + } +} +``` + +##### [sEvtKpRtFeedback](#sevtkprtfeedback) +返回待机时键盘返回的按键值 + +##### [sEvtKpHandup](#sevtkphandup) +启动待机按键反馈类型为举手提问时返回此事件 ## 在线测验 ### 标准测验 @@ -2165,11 +2685,12 @@ MQTT服务器配置结果检查 |+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||是| 题目数量 | +|++firstNo | int||否| 一级题号,mode=0 时有效,有效范围1-255,不传此字段或传0表示不生效 | +|++secondNo | int||否| 二级题号,mode=0 时有效,有效范围1-255,不传此字段或传0表示不生效 | +|++startNo | int||是| 最后一级题号起始题号
mode=0 时有效,范围1-255,mode=1或2时按顺序显示题号
说明:
firstNo和secondNo都未赋值时,此字段为一级题号
firstNo赋值,secondNo未赋值时,此字段为二级题号
secondNo赋值时,此字段为三级题号 | +|++count | int||是| 相同参数的连续题目数量, >0 | - **示例代码** @@ -2180,7 +2701,7 @@ MQTT服务器配置结果检查 "dataTag":"1", "data":{ "mode": 1, - "examNo": 1, + "examNo": 0, "questions": [{ "quesType": 1, //单选题 "startNo": 1, //题号从1开始 @@ -2197,7 +2718,7 @@ MQTT服务器配置结果检查 "dataTag":"1", "data":{ "mode": 0, - "examNo": 1, + "examNo": 0, //第1、2题单选题,第3、4题多选题,第5题数字,第6题判断,共6题 "questions": [{ "quesType": 1, //单选题 @@ -2228,26 +2749,26 @@ MQTT服务器配置结果检查 "dataTag":"1", "data":{ "mode": 0, - "examNo": 1, + "examNo": 0, //第1-1、1-2题单选题,第2-1、2-2题多选题,第3-1题数字,第4-1题判断,共6题 "questions": [{ - "symbol": "1-", + "firstNo": 1, "quesType": 1, //单选题 "startNo": 1, //题号从1-1开始 "count":2 //连续2题 },{ - "symbol": "2-", + "firstNo": 2, "quesType": 2, //多选题 "startNo": 1, //题号从2-1开始 "count":2, //连续2题 "option":5 },{ - "symbol": "3-", + "firstNo": 3, "quesType": 3, //数字题 "startNo": 1, //题号从3-1开始 "count":1 //连续1题 },{ - "symbol": "4-", + "firstNo": 4, "quesType": 4, //判断题 "startNo": 1, //题号从4-1开始 "count":1 //连续1题 @@ -2263,26 +2784,30 @@ MQTT服务器配置结果检查 "dataTag":"1", "data":{ "mode": 0, - "examNo": 1, + "examNo": 0, //第1-1-1、1-1-2题单选题,第1-2-1、1-2-2题多选题,第2-1-1题数字,第3-1-1题判断,共6题 "questions": [{ - "symbol": "1-1-", + "firstNo": 1, + "secondNo": 1, "quesType": 1, //单选题 "startNo": 1, //题号从1-1-1开始 "count":2 //连续2题 },{ - "symbol": "1-2-", + "firstNo": 1, + "secondNo": 2, "quesType": 2, //多选题 "startNo": 1, //题号从1-2-1开始 "count":2, //连续2题 "option":5 },{ - "symbol": "2-1-", + "firstNo": 2, + "secondNo": 1, "quesType": 3, //数字题 "startNo": 1, //题号从2-1-1开始 "count":1 //连续1题 },{ - "symbol": "3-1-", + "firstNo": 3, + "secondNo": 1, "quesType": 4, //判断题 "startNo": 1, //题号从3-1-1开始 "count":1 //连续1题 @@ -2298,7 +2823,7 @@ MQTT服务器配置结果检查 "dataTag":"1", "data":{ "mode": 1, - "examNo": 1, + "examNo": 0, "questions": [{ "quesType": 1, //单选题 "startNo": 1, //题号从1开始 @@ -2328,7 +2853,7 @@ MQTT服务器配置结果检查 "dataTag":"1", "data":{ "mode": 2, - "examNo": 1, + "examNo": 0, "questions": [{ "quesType": 1, //单选题 "startNo": 1, //题号从1开始 @@ -2351,7 +2876,7 @@ MQTT服务器配置结果检查 } ``` -##### stopKpExam + +##### [stopKpVote](#stopkpvote) +停止在线测验 ##### rtKpAllowEdited - **主题**:/client/\${baseSN}/send @@ -2409,8 +2936,10 @@ MQTT服务器配置结果检查 |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| |++keySn|string||是|键盘SN| -|++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B| +|++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B
注意:如启动的是多科测验,键盘提交的题目序号对应启动时下发的题目总序号,不按科目区分| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| +|++voltage|double||是|键盘电量| +|++retryCount|int||是|键盘提交数据的重发次数| - **示例代码** @@ -2459,3 +2988,246 @@ MQTT服务器配置结果检查 }] } ``` + +### 多科测验 +#### 方法 +##### startKpMultiExam +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动多科测验 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+examNo|int||是|0-9999
=0,新的测验
>0时,与上次启动卷号一致继续测验,不一致进入新的测验| +|+mode|int||是|显示模式
0-不显示开头
1-显示“Q”开头
2-显示“题”开头| +|+questions|array||是|题目详情| +|++subject | int||是 | 科目序号,1-9,对应键盘中内置的科目1-9
键盘答题时可选择科目切换答题| +|++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断 | +|++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。| +|++firstNo | int||否| 一级题号,mode=0 时有效,有效范围1-255,不传字段或传0表示不生效 | +|++startNo | int||是| 起始题号,mode=0 时有效,范围1-255
firstNo未赋值时,此字段表示一级题号
firstNo赋值时,此字段表示二级题号| +|++count | int||是| 相同参数的连续题目数量, >0 | +|+simParams|object||否|内部模拟测试参数设置对象| +|++answer|array||是|预设提交的按键值
格式为"单选题答案,多选题答案;
数字题答案;判断题答案(1对2错)"
如["A","ABCD","10","1"]| + +- **示例代码** +```json +//自定义题号 +{ + "fun":"startKpMultiExam", + "dataTag":"1", + "data":{ + "mode": 0, + "examNo": 0, + "questions": [{ + "subject":1, //科目1 + //题号1-1 到1-10 共10题单选 + "firstNo": 1, + "quesType": 1, + "startNo": 1, + "count":10 + }, { + "subject":2, //科目2 + //题号2-2和2-3共两题 多选题,5个选项 + "firstNo": 2, + "quesType": 2, + "option": 5, + "startNo": 2, + "count":2 + }, { + "subject":3, //科目3 + //题号3-1和3-2共两道数字题 + "firstNo": 3, + "quesType": 3, + "startNo": 1, + "count":2 + }, { + "subject":1, //科目1 + //题号4和5 ,判断题 + "quesType": 4, + "startNo": 4, + "count":2 + }], + "simParams":{ + "answer":["A","ABCD","10","1"] + } + } +} + +//显示Q开头 +{ + "fun":"startKpMultiExam", + "dataTag":"1", + "data":{ + "mode": 1, + "examNo": 0, + "questions": [{ + "subject":1, + //Q1-Q20,单选题 + "quesType": 1, + "startNo": 1, + "count":20 + }], + "simParams":{ + "answer":["A","","",""] + } + } +} + +//显示题开头 +{ + "fun":"startKpMultiExam", + "dataTag":"1", + "data":{ + "mode": 2, + "examNo": 0, + "questions": [{ + "subject":1, + //题1-题20,单选题 + "quesType": 1, + "startNo": 1, + "count":20 + }], + "simParams":{ + "answer":["A","","",""] + } + } +} +``` + + +##### [stopKpVote](#stopkpvote) +停止多科测验 + +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### [fEvtKpExam](#fevtkpexam) +返回测验中键盘提交答题数据 + +##### [fEvtFinalSubmit](#fevtfinalsubmit) +返回键盘手动交卷标识 + +### 自主录分 +#### 方法 +##### startKpScoreInput +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动标准测验 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+examNo|int||是|0-9999
=0,新的录分
>0时,与上次启动卷号一致继续录分,不一致进入新的录分| +|+mode|int||是|录分模式
0-自主录分
1-交叉录分,需先输入录分的人员标识| +|+questions|array||是|题目详情| +|++max |int||是|可输入的最大值,<=100| +|++digits|int||是|可输入的小数位数,范围0-2| +|++startNo | int||是| 起始题号| +|++count | int||是| 相同参数的题目数量,>0| + +- **示例代码** +```json +{ + "fun":"startKpScoreInput", + "dataTag":"1", + "data":{ + "mode": 0, + "examNo": 0, + "questions": [{ + //题号1 到 2 共2题,单题满分10分 + "max":10, + "digits":1, + "startNo": 1, + "count":2 + }, { + //题号3到6 共4道题,单题满分5 + "max":5, + "digits":0, + "startNo": 3, + "count":4 + }] + } +} +``` + +##### [stopKpVote](#stopkpvote) +停止自主录分 + +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### fEvtKpScore +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘提交录分信息 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++keyValue|string||是|键盘提交的分值,1:10;2:0表示第1题提交10分,第二题提交0分| +|++keyTime|double||是|录分时间,从启动录分开始计算,单位秒| +|++voltage|double||是|键盘电量| +|++retryCount|int||是|键盘提交数据的重发次数| + +- **示例代码** +```json +{ + "fun":"fEvtKpScore", + "dataTag":"1", + "data": [{ + "keySn": "1234567890", + "keyValue":"1:8;2:7.5;3:2;4:3", + "keyTime":3.2 + }, + { + "keySn": "1234567891", + "keyValue":"1:10;2:0", + "keyTime":3.5 + } + ] +} +``` \ No newline at end of file