Commit be0abb078f905a430ac32e46582d616aa7007f92

Authored by 刘琴
1 parent 8a741d5a

同步B200W开发进度协议修改部分

通讯协议-B200W-MQTT协议[外].md
@@ -98,6 +98,24 @@ MQTT服务器配置结果检查 @@ -98,6 +98,24 @@ MQTT服务器配置结果检查
98 98
99 99
100 ## 功能速查一览表 100 ## 功能速查一览表
  101 +### 公共方法
  102 +可以在多种业务中调用的通用方法
  103 +|功能归类|功能|API指令|指令/系统事件|
  104 +|---|---|---|---|
  105 +|停止投票|可停止通过调用startXXX启动的答题业务|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)||
  106 +
  107 +### 公共事件
  108 +无需调用指令,自动返回的事件
  109 +|功能归类|功能|API指令|指令/系统事件|
  110 +|---|---|---|---|
  111 +|公共事件|指令接收状态|-|[sEvtStateCode](#sevtstatecode)|
  112 +|公共事件|基站连接状态变化|-|[sEvtBsConnectState](#sevtbsconnectstate)|
  113 +|公共事件|基站信道冲突|-|[sEvtBsChannelConflict](#sevtbschannelconflict)|
  114 +|公共事件|键盘上线通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
  115 +|公共事件|键盘刷卡事件|-|[sEvtBsNfcResults](#sevtbsnfcresults)|
  116 +|公共事件|键盘待机实时按键反馈|-|[sEvtKpRtFeedback](#sevtkprtfeedback)|
  117 +|公共事件|键盘举手键实时按键反馈|-|[sEvtKpHandUp](#sevtkphandup)|
  118 +
101 ### 基站管理 119 ### 基站管理
102 |功能归类|功能|API指令|指令/系统事件| 120 |功能归类|功能|API指令|指令/系统事件|
103 |---|---|---|---| 121 |---|---|---|---|
@@ -108,15 +126,19 @@ MQTT服务器配置结果检查 @@ -108,15 +126,19 @@ MQTT服务器配置结果检查
108 |键盘上线通知|单个键盘上线系统通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|| 126 |键盘上线通知|单个键盘上线系统通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)||
109 |识别设置 - 基站型号|读取基站型号|[getBsModel](#getbsmodel)|[fEvtBsModel](#fevtbsmodel)| 127 |识别设置 - 基站型号|读取基站型号|[getBsModel](#getbsmodel)|[fEvtBsModel](#fevtbsmodel)|
110 |识别设置 - 固件版本|获取基站固件版本|[getBsFWVersion](#getbsfwversion)|[fEvtBsFWVersion](#fevtbsfwversion)| 128 |识别设置 - 固件版本|获取基站固件版本|[getBsFWVersion](#getbsfwversion)|[fEvtBsFWVersion](#fevtbsfwversion)|
  129 +|组网设置 - 组网模式|获取基站组网模式|[getBsNetworkMode](#getbsnetworkmode)|[fEvtBsNetworkMode](#fevtbsnetworkmode)|
111 |组网设置 - 配对码|获取基站配对码|[getBsPairCode](#getbspaircode)|[fEvtBsPairCode](#fevtbspaircode)| 130 |组网设置 - 配对码|获取基站配对码|[getBsPairCode](#getbspaircode)|[fEvtBsPairCode](#fevtbspaircode)|
112 |组网设置 - 刷卡配对状态|获取刷卡配对状态|[getBsNfcLogin](#getbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)| 131 |组网设置 - 刷卡配对状态|获取刷卡配对状态|[getBsNfcLogin](#getbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)|
113 ||设置刷卡配对状态|[setBsNfcLogin](#setbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)|| 132 ||设置刷卡配对状态|[setBsNfcLogin](#setbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)||
114 |组网设置 - 工作信道|获取基站工作信道|[getBsChannel](#getbschannel)|[fEvtBsChannel](#fevtbschannel)| 133 |组网设置 - 工作信道|获取基站工作信道|[getBsChannel](#getbschannel)|[fEvtBsChannel](#fevtbschannel)|
115 ||设置基站工作信道|[setBsChannel](#setbschannel)|[fEvtBsChannel](#fevtbschannel)|| 134 ||设置基站工作信道|[setBsChannel](#setbschannel)|[fEvtBsChannel](#fevtbschannel)||
  135 +||读取已被占用信道|[getBsRFIChannel](#getbsrfichannel)|[fEvtBsRFIChannel](#fevtbsrfichannel)||
116 |登录设置 - 登录名称|获取基站登录名称|[getBsSSID](#getbsssid)|[fEvtBsSSID](#fevtbsssid)| 136 |登录设置 - 登录名称|获取基站登录名称|[getBsSSID](#getbsssid)|[fEvtBsSSID](#fevtbsssid)|
117 ||设置基站登录名称|[setBsSSID](#setbsssid)|[fEvtBsSSID](#fevtbsssid)|| 137 ||设置基站登录名称|[setBsSSID](#setbsssid)|[fEvtBsSSID](#fevtbsssid)||
118 -|键盘统一设置 - 键盘语言|获取键盘语言|[getBsKpLanguage](#getbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)|  
119 -||设置键盘语言|[setBsKpLanguage](#setbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)|| 138 +|登录设置 - 登录密码|获取基站登录密码|[getBsLoginPwd](#getbsloginpwd)|[fEvtBsLoginPwd](#fevtbsloginpwd)|
  139 +||设置基站登录密码|[setBsLoginPwd](#setbsloginpwd)|[fEvtBsLoginPwd](#fevtbsloginpwd)||
  140 +|登录设置 - 基站登录状态|获取基站登录状态|[getBsLoginState](#getbsloginstate)|[fEvtBsLoginState](#fevtbsloginstate)|
  141 +||设置基站登录状态|[setBsLoginState](#setbsloginstate)|[fEvtBsLoginState](#fevtbsloginstate)||
120 |配对模式 - 快速配对|启动基站快速配对|[startBsFastPair](#startbsfastpair)|[sEvtStateCode](#sevtstatecode)<br>[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)| 142 |配对模式 - 快速配对|启动基站快速配对|[startBsFastPair](#startbsfastpair)|[sEvtStateCode](#sevtstatecode)<br>[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
121 ||停止基站快速配对|[stopBsFastPair](#stopbsfastpair)|[sEvtStateCode](#sevtstatecode)| 143 ||停止基站快速配对|[stopBsFastPair](#stopbsfastpair)|[sEvtStateCode](#sevtstatecode)|
122 |白名单模式 - 白名单管理|获取白名单|[getBsWhitelist](#getbswhitelist)|[fEvtBsWhitelist](#fevtbswhitelist)| 144 |白名单模式 - 白名单管理|获取白名单|[getBsWhitelist](#getbswhitelist)|[fEvtBsWhitelist](#fevtbswhitelist)|
@@ -124,6 +146,8 @@ MQTT服务器配置结果检查 @@ -124,6 +146,8 @@ MQTT服务器配置结果检查
124 ||清空白名单|[clearBsWhitelist](#clearbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtBsWhitelist](#fevtbswhitelist)| 146 ||清空白名单|[clearBsWhitelist](#clearbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtBsWhitelist](#fevtbswhitelist)|
125 ||增加白名单|[addBsWhitelist](#addbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtAddBsWhitelist](#fevtaddbswhitelist)<br>[fEvtBsWhitelist](#fevtbswhitelist)| 147 ||增加白名单|[addBsWhitelist](#addbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtAddBsWhitelist](#fevtaddbswhitelist)<br>[fEvtBsWhitelist](#fevtbswhitelist)|
126 ||删除白名单|[delBsWhitelist](#delbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtDelBsWhitelist](#fevtdelbswhitelist)<br>[fEvtBsWhitelist](#fevtbswhitelist)| 148 ||删除白名单|[delBsWhitelist](#delbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtDelBsWhitelist](#fevtdelbswhitelist)<br>[fEvtBsWhitelist](#fevtbswhitelist)|
  149 +|基站加密 - 软件狗|获取基站软件狗|[getBsSoftwareKey](#getbssoftwarekey)|[fEvtBsSoftwareKey](#fevtbssoftwarekey)|
  150 +||设置基站软件狗|[setBsSoftwareKey](#setbssoftwarekey)|[fEvtBsSoftwareKey](#fevtbssoftwarekey)|
127 |网络设置 - TCP/IP参数|获取TCP/IP参数|[getBsTcpipParams](#getbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)| 151 |网络设置 - TCP/IP参数|获取TCP/IP参数|[getBsTcpipParams](#getbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)|
128 ||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)|| 152 ||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)||
129 |网络设置 - MQTT参数|获取MQTT参数|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)| 153 |网络设置 - MQTT参数|获取MQTT参数|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)|
@@ -144,7 +168,7 @@ MQTT服务器配置结果检查 @@ -144,7 +168,7 @@ MQTT服务器配置结果检查
144 |功能归类|功能|API指令|指令事件| 168 |功能归类|功能|API指令|指令事件|
145 |---|---|---|---| 169 |---|---|---|---|
146 |同步签到|启动同步签到|[startKpSignIn](#startkpsignin)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpSignIn](#fevtkpsignin)| 170 |同步签到|启动同步签到|[startKpSignIn](#startkpsignin)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpSignIn](#fevtkpsignin)|
147 -||停止同步签到|[stopKpSignIn](#stopkpsignin)|[sEvtStateCode](#sevtstatecode)| 171 +||停止同步签到|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
148 |随时签到|启动随时签到|[rtStartKpSignIn](#rtstartkpsignin)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpSignIn](#fevtkpsignin)| 172 |随时签到|启动随时签到|[rtStartKpSignIn](#rtstartkpsignin)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpSignIn](#fevtkpsignin)|
149 ||停止随时签到|[rtStopKpSignIn](#rtstopkpsignin)|[sEvtStateCode](#sevtstatecode)| 173 ||停止随时签到|[rtStopKpSignIn](#rtstopkpsignin)|[sEvtStateCode](#sevtstatecode)|
150 ||实时PIN签到授权|[rtSetKpLoginAllowed](#rtsetkploginallowed)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpLoginAllowed](#fevtkploginallowed)| 174 ||实时PIN签到授权|[rtSetKpLoginAllowed](#rtsetkploginallowed)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpLoginAllowed](#fevtkploginallowed)|
@@ -152,19 +176,44 @@ MQTT服务器配置结果检查 @@ -152,19 +176,44 @@ MQTT服务器配置结果检查
152 |功能归类|功能|API指令|指令事件| 176 |功能归类|功能|API指令|指令事件|
153 |---|---|---|---| 177 |---|---|---|---|
154 |判断题|启动判断题答题|[startQATrueFalse](#startqatruefalse)|[sEvtStateCode](#sevtstatecode)<br>[fEvtQATrueFalse](#fevtqatruefalse)| 178 |判断题|启动判断题答题|[startQATrueFalse](#startqatruefalse)|[sEvtStateCode](#sevtstatecode)<br>[fEvtQATrueFalse](#fevtqatruefalse)|
155 -||停止判断题答题|[stopQATrueFalse](#stopqatruefalse)|[sEvtStateCode](#sevtstatecode)| 179 +||停止判断题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
156 |选择题|启动选择题答题|[startQAChoice](#startqachoice)|[sEvtStateCode](#sevtstatecode)<br>[fEvtQAChoice](#fevtqachoice)| 180 |选择题|启动选择题答题|[startQAChoice](#startqachoice)|[sEvtStateCode](#sevtstatecode)<br>[fEvtQAChoice](#fevtqachoice)|
157 -||停止选择题答题|[stopQAChoice](#stopqachoice)|[sEvtStateCode](#sevtstatecode)| 181 +||停止选择题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
158 |数字题|启动数字题答题|[startQANum](#startqanum)|[sEvtStateCode](#sevtstatecode)<br>[fEvtQANum](#fevtqanum)| 182 |数字题|启动数字题答题|[startQANum](#startqanum)|[sEvtStateCode](#sevtstatecode)<br>[fEvtQANum](#fevtqanum)|
159 -||停止数字题答题|[stopQANum](#stopqanum)|[sEvtStateCode](#sevtstatecode)| 183 +||停止数字题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
160 |抢答题|启动抢答题答题|[startQAQuicker](#startqaquicker)|[sEvtStateCode](#sevtstatecode)<br>[fEvtQAQuicker](#fevtqaquicker)| 184 |抢答题|启动抢答题答题|[startQAQuicker](#startqaquicker)|[sEvtStateCode](#sevtstatecode)<br>[fEvtQAQuicker](#fevtqaquicker)|
161 -||停止抢答题答题|[stopQAQuicker](#stopqaquicker)|[sEvtStateCode](#sevtstatecode)| 185 +||停止抢答题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
  186 +|待机实时反馈|设置待机实时反馈状态|[setKpStbResponse](#setkpstbresponse)|[fEvtKpStbResponse](#fevtkpstbresponse)<br>[sEvtKpRtFeedback](#sevtkprtfeedback)<br>[sEvtKpHandUp](#sevtkphandup)|
  187 +||设置待机实时反馈状态|[getKpStbResponse](#getkpstbresponse)|[fEvtKpStbResponse](#fevtkpstbresponse)|
162 ### 在线测验 188 ### 在线测验
163 |功能归类|功能|API指令|指令事件| 189 |功能归类|功能|API指令|指令事件|
164 |---|---|---|---| 190 |---|---|---|---|
165 |标准测验|启动标准测验|[startKpExam](#startkpexam)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpExam](#fevtkpexam)<br>[fEvtFinalSubmit](#fevtfinalsubmit)| 191 |标准测验|启动标准测验|[startKpExam](#startkpexam)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpExam](#fevtkpexam)<br>[fEvtFinalSubmit](#fevtfinalsubmit)|
166 -||停止标准测验|[stopKpExam](#stopkpexam)|[sEvtStateCode](#sevtstatecode)| 192 +||停止标准测验|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
167 ||允许键盘提交后退回修改|[rtAllowEdited](#rtkpallowedited)|[sEvtStateCode](#sevtstatecode)<br>[fEvtFinalSubmit](#fevtfinalsubmit)| 193 ||允许键盘提交后退回修改|[rtAllowEdited](#rtkpallowedited)|[sEvtStateCode](#sevtstatecode)<br>[fEvtFinalSubmit](#fevtfinalsubmit)|
  194 +|多科测验|启动多科测验|[startKpMultiExam](#startkpmultiexam)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpExam](#fevtkpexam)<br>[fEvtFinalSubmit](#fevtfinalsubmit)|
  195 +||停止标准测验|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
  196 +|自主录分|启动自主录分|[startKpScoreInput](#startkpscoreinput)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpScore](#fevtkpscore)<br>[fEvtFinalSubmit](#fevtfinalsubmit)|
  197 +||停止自主录分|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
  198 +
  199 +## 公共方法
  200 +### stopKpVote
  201 +- **主题**: /client/\${baseSN}/send
  202 +- **功能描述**:通用停止键盘答题方法,可以停止如同步签到、按键反馈、在线测验中调用startXXX方法启动的业务
  203 +- **参数说明**
  204 +
  205 +|参数名|类型|限制|非空|说明|
  206 +|-----|-----|-----|-----|-----|
  207 +|fun|string|-|是|事件类型|
  208 +|dataTag|string||否|数据包标识,不需要时可传空字符串|
  209 +
  210 +- **示例代码**
  211 +```json
  212 +{
  213 + "fun":"stopKpVote",
  214 + "dataTag":"1"
  215 +}
  216 +```
168 217
169 ## 公共事件 218 ## 公共事件
170 ### sEvtBsConnectState 219 ### sEvtBsConnectState
@@ -241,6 +290,7 @@ MQTT服务器配置结果检查 @@ -241,6 +290,7 @@ MQTT服务器配置结果检查
241 |dataTag|string|-|否|数据包标识,不需要时可传空字符串| 290 |dataTag|string|-|否|数据包标识,不需要时可传空字符串|
242 |data|object|-|是|传送参数的对象| 291 |data|object|-|是|传送参数的对象|
243 |+keySn|string||是|刷卡的键盘SN| 292 |+keySn|string||是|刷卡的键盘SN|
  293 +|+cardType|int||是|刷卡的键盘类型<br>1-NFC类型<br>2-M1类型|
244 |+value|int||是|刷卡的状态<br>1-成功<br>2-失败| 294 |+value|int||是|刷卡的状态<br>1-成功<br>2-失败|
245 295
246 - **示例代码** 296 - **示例代码**
@@ -250,7 +300,8 @@ MQTT服务器配置结果检查 @@ -250,7 +300,8 @@ MQTT服务器配置结果检查
250 "fun":"sEvtBsNfcResults", 300 "fun":"sEvtBsNfcResults",
251 "dataTag":"1", //不需要时可传空字符串 301 "dataTag":"1", //不需要时可传空字符串
252 "data":{ 302 "data":{
253 - "keySn":"1234567890", 303 + "keySn":"1234567890",
  304 + "cardType":1,
254 "value":1 305 "value":1
255 } 306 }
256 } 307 }
@@ -283,7 +334,56 @@ MQTT服务器配置结果检查 @@ -283,7 +334,56 @@ MQTT服务器配置结果检查
283 } 334 }
284 } 335 }
285 ``` 336 ```
  337 +### sEvtKpRtFeedback
  338 +- **主题**: /basestation/\${baseSN}/receive
  339 +- **功能描述**:开启键盘实时反馈后,键盘按键时上报
  340 +- **参数说明**
286 341
  342 +|参数名|类型|限制|非空|说明|
  343 +|---|---|---|---|---|
  344 +|fun|string|-|是|事件名称|
  345 +|dataTag|string|-|否|数据包标识|
  346 +|data|array|-|是|传送参数的对象数组|
  347 +|++keySn|string||是|键盘SN|
  348 +|++keyValue|string||是|键盘提交的按键值|
  349 +|++voltage|double||是|键盘电量|
  350 +|++retryCount|int||是|键盘提交数据的重发次数|
  351 +
  352 +- **示例代码**
  353 +```json
  354 +{
  355 + "fun":"sEvtKpRtFeedback",
  356 + "dataTag":"1",
  357 + "data":[{
  358 + "keySn":"1234567890",
  359 + "keyValue":"A",
  360 + "voltage":2.6,
  361 + "retryCount":1
  362 + }]
  363 +}
  364 +```
  365 +### sEvtKpHandUp
  366 +- **主题**: /basestation/\${baseSN}/receive
  367 +- **功能描述**:开启键盘举手功能后,键盘按举手键时上报
  368 +- **参数说明**
  369 +
  370 +|参数名|类型|限制|非空|说明|
  371 +|---|---|---|---|---|
  372 +|fun|string|-|是|事件名称|
  373 +|dataTag|string|-|否|数据包标识|
  374 +|data|object|-|是|传送参数的对象|
  375 +|+keySn|string||是|举手的键盘SN|
  376 +
  377 +- **示例代码**
  378 +```json
  379 +{
  380 + "fun":"sEvtKpHandUp",
  381 + "dataTag":"1",
  382 + "data":{
  383 + "keySn":"1234567890"
  384 + }
  385 +}
  386 +```
287 ### sEvtStateCode 387 ### sEvtStateCode
288 - **主题**: /basestation/\${baseSN}/receive 388 - **主题**: /basestation/\${baseSN}/receive
289 - **功能描述**:返回基站接收指令状态信息 389 - **功能描述**:返回基站接收指令状态信息
@@ -302,14 +402,22 @@ MQTT服务器配置结果检查 @@ -302,14 +402,22 @@ MQTT服务器配置结果检查
302 |0|指令收取成功| 402 |0|指令收取成功|
303 |10001|不能正确解析的JSON数据| 403 |10001|不能正确解析的JSON数据|
304 |10002|解析JSON错误| 404 |10002|解析JSON错误|
  405 +|10003|下发数据包超长|
305 |20001|基站未连接| 406 |20001|基站未连接|
306 |20002|功能不支持| 407 |20002|功能不支持|
307 |20003|基站SN格式不正确| 408 |20003|基站SN格式不正确|
308 |20004|参数错误| 409 |20004|参数错误|
309 -|20005|基站在答题中| 410 +|20005|dataTag错误|
  411 +|20006|键盘SN错误|
  412 +|20007|tip参数错误|
  413 +|20008|value参数错误|
  414 +|30001|基站在答题中|
  415 +|30002|基站忙(内存不足)|
  416 +|30003|基站执行失败|
310 |40001|升级功能只能支持一个基站| 417 |40001|升级功能只能支持一个基站|
311 |50001|此功能必须指定基站| 418 |50001|此功能必须指定基站|
312 |60001|此功能必须指定键盘SN| 419 |60001|此功能必须指定键盘SN|
  420 +|70001|没有字库|
313 421
314 - **示例代码** 422 - **示例代码**
315 423
@@ -318,7 +426,7 @@ MQTT服务器配置结果检查 @@ -318,7 +426,7 @@ MQTT服务器配置结果检查
318 "fun":"sEvtStateCode", 426 "fun":"sEvtStateCode",
319 "dataTag":"1", 427 "dataTag":"1",
320 "data":{ 428 "data":{
321 - "funName":"startKpRollCall", 429 + "funName":"startKpSignIn",
322 "code":"20005" 430 "code":"20005"
323 } 431 }
324 } 432 }
@@ -372,7 +480,7 @@ MQTT服务器配置结果检查 @@ -372,7 +480,7 @@ MQTT服务器配置结果检查
372 参见基站连接变化系统通知 480 参见基站连接变化系统通知
373 481
374 ##### fEvtBsOnlineState 482 ##### fEvtBsOnlineState
375 -- **主题**: <span class="yellowFill">/basestation/mutilBase/receive</span> 483 +- **主题**: <span class="yellowFill">/basestation/multiBase/receive</span>
376 - **功能描述**:基站在线返回基站型号和基站SN 484 - **功能描述**:基站在线返回基站型号和基站SN
377 - **参数说明** 485 - **参数说明**
378 486
@@ -547,6 +655,23 @@ MQTT服务器配置结果检查 @@ -547,6 +655,23 @@ MQTT服务器配置结果检查
547 655
548 ### 组网设置 656 ### 组网设置
549 #### 方法 657 #### 方法
  658 +##### getBsNetworkMode
  659 +- **主题**:/client/\${baseSN}/send
  660 +- **功能描述**:获取基站组网模式
  661 +- **参数说明**
  662 +
  663 +|参数名|类型|限制|是否必填|说明|
  664 +|---|---|---|---|---|
  665 +|fun|string|-|是|指令名称|
  666 +|dataTag|string|-|否|数据包标识,可为空字符串|
  667 +
  668 +- **示例代码**
  669 +```json
  670 +{
  671 + "fun":"getBsNetworkMode",
  672 + "dataTag":"1"
  673 +}
  674 +```
550 ##### getBsPairCode 675 ##### getBsPairCode
551 - **主题**:/client/\${baseSN}/send 676 - **主题**:/client/\${baseSN}/send
552 - **功能描述**:获取基站配对码 677 - **功能描述**:获取基站配对码
@@ -652,7 +777,47 @@ MQTT服务器配置结果检查 @@ -652,7 +777,47 @@ MQTT服务器配置结果检查
652 } 777 }
653 ``` 778 ```
654 779
  780 +##### getBsRFIChannel
  781 +- **主题**:/client/\${baseSN}/send
  782 +- **功能描述**:获取已被其他基站占用的信道
  783 +- **参数说明**
  784 +
  785 +|参数名|类型|限制|是否必填|说明|
  786 +|---|---|---|---|---|
  787 +|fun|string|-|是|指令名称|
  788 +|dataTag|string|-|否|数据包标识,可为空字符串|
  789 +
  790 +- **示例代码**
  791 +```json
  792 +{
  793 + "fun":"getBsRFIChannel",
  794 + "dataTag":"1"
  795 +}
  796 +```
  797 +
655 #### 事件 798 #### 事件
  799 +##### fEvtBsNetworkMode
  800 +- **主题**: /basestation/\${baseSN}/receive
  801 +- **功能描述**:返回基站组网模式
  802 +- **参数说明**
  803 +
  804 +|参数名|类型|限制|非空|说明|
  805 +|---|---|---|---|---|
  806 +|fun|string|-|是|事件名称|
  807 +|dataTag|string|-|否|数据包标识,可传空字符串|
  808 +|data|object|-|是|传送参数的对象|
  809 +|+value|string||是|基站的组网模式<br>1-配对模式<br>2-白名单模式|
  810 +
  811 +- **示例代码**
  812 +```json
  813 +{
  814 + "fun":"fEvtBsNetworkMode",
  815 + "dataTag":"1",
  816 + "data":{
  817 + "value":"1"
  818 + }
  819 +}
  820 +```
656 ##### fEvtBsPairCode 821 ##### fEvtBsPairCode
657 - **主题**: /basestation/\${baseSN}/receive 822 - **主题**: /basestation/\${baseSN}/receive
658 - **功能描述**:返回基站配对码 823 - **功能描述**:返回基站配对码
@@ -701,6 +866,38 @@ MQTT服务器配置结果检查 @@ -701,6 +866,38 @@ MQTT服务器配置结果检查
701 } 866 }
702 ``` 867 ```
703 868
  869 +##### fEvtBsRFIChannel
  870 +- **主题**: /basestation/\${baseSN}/receive
  871 +- **功能描述**:返回其他基站已占用的信道,频点冲突时,可以根据返回结果修改基站信道避开干扰
  872 +- **参数说明**
  873 +
  874 +|参数名|类型|限制|非空|说明|
  875 +|---|---|---|---|---|
  876 +|fun|string|-|是|事件名称|
  877 +|dataTag|string|-|否|数据包标识,可传空字符串|
  878 +|data|object|-|是|传送参数的对象|
  879 +|+value|string||是|其他基站已占用的信道,多个信道用英文","分隔,无占用信道返回0|
  880 +
  881 +- **示例代码**
  882 +```json
  883 +//信道1、2、14已被占用
  884 +{
  885 + "fun":"fEvtBsRFIChannel",
  886 + "dataTag":"1",
  887 + "data":{
  888 + "value":"1,2,14"
  889 + }
  890 +}
  891 +//无占用信道
  892 +{
  893 + "fun":"fEvtBsRFIChannel",
  894 + "dataTag":"1",
  895 + "data":{
  896 + "value":"0"
  897 + }
  898 +}
  899 +```
  900 +
704 ##### fEvtBsNfcLogin 901 ##### fEvtBsNfcLogin
705 - **主题**: /basestation/\${baseSN}/receive 902 - **主题**: /basestation/\${baseSN}/receive
706 - **功能描述**:返回基站是否允许NFC刷卡 903 - **功能描述**:返回基站是否允许NFC刷卡
@@ -770,6 +967,85 @@ MQTT服务器配置结果检查 @@ -770,6 +967,85 @@ MQTT服务器配置结果检查
770 } 967 }
771 } 968 }
772 ``` 969 ```
  970 +##### getBsLoginPwd
  971 +- **主题**:/client/\${baseSN}/send
  972 +- **功能描述**:获取基站登录密码
  973 +- **参数说明**
  974 +
  975 +|参数名|类型|限制|是否必填|说明|
  976 +|---|---|---|---|---|
  977 +|fun|string|-|是|固定指令名称|
  978 +|dataTag|string|-|否|数据包标识|
  979 +
  980 +- **示例代码**
  981 +```json
  982 +{
  983 + "fun":"getBsLoginPwd",
  984 + "dataTag":"1"
  985 +}
  986 +```
  987 +##### setBsLoginPwd
  988 +- **主题**:/client/\${baseSN}/send
  989 +- **功能描述**:设置基站登录密码
  990 +- **参数说明**
  991 +
  992 +|参数名|类型|限制|是否必填|说明|
  993 +|---|---|---|---|---|
  994 +|fun|string|-|是|指令名称|
  995 +|dataTag|string|-|否|数据包标识,可为空字符串|
  996 +|data|object|-|是|传送参数的对象|
  997 +|+value|string||是|设置的基站登录密码,数字类型,最长4位,为空或设为0代表无需密码登录|
  998 +
  999 +- **示例代码**
  1000 +```json
  1001 +{
  1002 + "fun":"setBsLoginPwd",
  1003 + "dataTag":"1",
  1004 + "data":{
  1005 + "value":"1234"
  1006 + }
  1007 +}
  1008 +```
  1009 +##### getBsLoginState
  1010 +获取基站登录名称
  1011 +- **主题**:/client/\${baseSN}/send
  1012 +- **功能描述**:获取基站登录状态
  1013 +- **参数说明**
  1014 +
  1015 +|参数名|类型|限制|是否必填|说明|
  1016 +|---|---|---|---|---|
  1017 +|fun|string|-|是|固定指令名称|
  1018 +|dataTag|string|-|否|数据包标识|
  1019 +
  1020 +- **示例代码**
  1021 +```json
  1022 +{
  1023 + "fun":"getBsLoginState",
  1024 + "dataTag":"1"
  1025 +}
  1026 +```
  1027 +##### setBsLoginState
  1028 +- **主题**:/client/\${baseSN}/send
  1029 +- **功能描述**:设置基站登录状态
  1030 +- **参数说明**
  1031 +
  1032 +|参数名|类型|限制|是否必填|说明|
  1033 +|---|---|---|---|---|
  1034 +|fun|string|-|是|指令名称|
  1035 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1036 +|data|object|-|是|传送参数的对象|
  1037 +|+value|string||是|设置是否允许键盘自主登入<br>0 - 不允许键盘登入<br>1 - 允许键盘登入|
  1038 +
  1039 +- **示例代码**
  1040 +```json
  1041 +{
  1042 + "fun":"setBsLoginState",
  1043 + "dataTag":"1",
  1044 + "data":{
  1045 + "value":"1"
  1046 + }
  1047 +}
  1048 +```
773 1049
774 #### 事件 1050 #### 事件
775 ##### fEvtBsSSID 1051 ##### fEvtBsSSID
@@ -795,7 +1071,59 @@ MQTT服务器配置结果检查 @@ -795,7 +1071,59 @@ MQTT服务器配置结果检查
795 } 1071 }
796 } 1072 }
797 ``` 1073 ```
  1074 +##### fEvtBsLoginPwd
  1075 +- **主题**: /basestation/\${baseSN}/receive
  1076 +- **功能描述**:返回基站登录密码
  1077 +- **参数说明**
  1078 +
  1079 +|参数名|类型|限制|非空|说明|
  1080 +|---|---|---|---|---|
  1081 +|fun|string|-|是|事件名称|
  1082 +|dataTag|string|-|否|数据包标识,可传空字符串|
  1083 +|data|object|-|是|传送参数的对象|
  1084 +|+value|string||是|基站登录密码,返回值为0代表无需密码登录|
798 1085
  1086 +- **示例代码**
  1087 +```json
  1088 +{
  1089 + "fun":"fEvtBsLoginPwd",
  1090 + "dataTag":"1",
  1091 + "data":{
  1092 + "value":"1234"
  1093 + }
  1094 +}
  1095 +
  1096 +//无需密码登录
  1097 +{
  1098 + "fun":"fEvtBsLoginPwd",
  1099 + "dataTag":"1",
  1100 + "data":{
  1101 + "value":"0"
  1102 + }
  1103 +}
  1104 +```
  1105 +##### fEvtBsLoginState
  1106 +- **主题**: /basestation/\${baseSN}/receive
  1107 +- **功能描述**:返回基站登录状态
  1108 +- **参数说明**
  1109 +
  1110 +|参数名|类型|限制|非空|说明|
  1111 +|---|---|---|---|---|
  1112 +|fun|string|-|是|事件名称|
  1113 +|dataTag|string|-|否|数据包标识,可传空字符串|
  1114 +|data|object|-|是|传送参数的对象|
  1115 +|+value|string||是|基站登录状态|
  1116 +
  1117 +- **示例代码**
  1118 +```json
  1119 +{
  1120 + "fun":"fEvtBsLoginState",
  1121 + "dataTag":"1",
  1122 + "data":{
  1123 + "value":"1"
  1124 + }
  1125 +}
  1126 +```
799 ### 键盘统一设置 1127 ### 键盘统一设置
800 #### 方法 1128 #### 方法
801 ##### getBsKpLanguage 1129 ##### getBsKpLanguage
@@ -1205,7 +1533,7 @@ MQTT服务器配置结果检查 @@ -1205,7 +1533,7 @@ MQTT服务器配置结果检查
1205 |+port|int||是|端口,默认1883| 1533 |+port|int||是|端口,默认1883|
1206 |+userName|string||否|连接服务器的用户名,可不设置| 1534 |+userName|string||否|连接服务器的用户名,可不设置|
1207 |+password|string||否|连接服务器的密码,可不设置| 1535 |+password|string||否|连接服务器的密码,可不设置|
1208 -|+interval|int|>=10|否|基站连接服务器失败后重连的间隔时长,单位秒| 1536 +|+interval|int|>=60|否|基站连接服务器失败后重连的间隔时长,单位秒|
1209 1537
1210 - **示例代码** 1538 - **示例代码**
1211 1539
@@ -1218,7 +1546,7 @@ MQTT服务器配置结果检查 @@ -1218,7 +1546,7 @@ MQTT服务器配置结果检查
1218 "port":1883, 1546 "port":1883,
1219 "userName":"", 1547 "userName":"",
1220 "password":"", 1548 "password":"",
1221 - "interval":30 1549 + "interval":60
1222 } 1550 }
1223 } 1551 }
1224 ``` 1552 ```
@@ -1287,7 +1615,70 @@ MQTT服务器配置结果检查 @@ -1287,7 +1615,70 @@ MQTT服务器配置结果检查
1287 } 1615 }
1288 } 1616 }
1289 ``` 1617 ```
  1618 +### 基站加密
  1619 +#### 方法
  1620 +##### getBsSoftwareKey
  1621 +- **主题**:/client/\${baseSN}/send
  1622 +- **功能描述**:获取基站软件狗密钥
  1623 +- **参数说明**
  1624 +
  1625 +|参数名|类型|限制|是否必填|说明|
  1626 +|---|---|---|---|---|
  1627 +|fun|string|-|是|指令名称|
  1628 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1629 +
  1630 +- **示例代码**
  1631 +```json
  1632 +{
  1633 + "fun":"getBsSoftwareKey",
  1634 + "dataTag":"1"
  1635 +}
  1636 +```
  1637 +##### setBsSoftwareKey
  1638 +- **主题**:/client/\${baseSN}/send
  1639 +- **功能描述**:设置基站软件狗密钥
  1640 +- **参数说明**
  1641 +
  1642 +|参数名|类型|限制|是否必填|说明|
  1643 +|---|---|---|---|---|
  1644 +|fun|string|-|是|指令名称|
  1645 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1646 +|data|object|-|是|传送参数的对象|
  1647 +|+value|string|-|是|基站软件狗密钥,长度不超过32字节|
  1648 +
  1649 +- **示例代码**
  1650 +```json
  1651 +{
  1652 + "fun":"setBsSoftwareKey",
  1653 + "dataTag":"1",
  1654 + "data":{
  1655 + "value":"sunvote123456"
  1656 + }
  1657 +}
  1658 +```
  1659 +#### 事件
  1660 +##### fEvtBsSoftwareKey
  1661 +- **主题**:/basestation/\${baseSN}/receive
  1662 +- **功能描述**:返回基站的软件狗密钥
  1663 +- **参数说明**
1290 1664
  1665 +|参数名|类型|限制|非空|说明|
  1666 +|---|---|---|---|---|
  1667 +|fun|string|-|是|指令名称|
  1668 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1669 +|data|object|-|是|传送参数的对象|
  1670 +|+value|string||是|返回基站的软件狗密钥|
  1671 +
  1672 +- **示例代码**
  1673 +```json
  1674 +{
  1675 + "fun":"fEvtBsSoftwareKey",
  1676 + "dataTag":"1",
  1677 + "data":{
  1678 + "value":"sunvote123456"
  1679 + }
  1680 +}
  1681 +```
1291 ## 键盘管理 1682 ## 键盘管理
1292 ### 交互设置 1683 ### 交互设置
1293 #### 方法 1684 #### 方法
@@ -1643,8 +2034,7 @@ MQTT服务器配置结果检查 @@ -1643,8 +2034,7 @@ MQTT服务器配置结果检查
1643 } 2034 }
1644 } 2035 }
1645 ``` 2036 ```
1646 -  
1647 -##### stopKpSignIn 2037 +<!-- ##### stopKpSignIn
1648 - **主题**:/client/\${baseSN}/send 2038 - **主题**:/client/\${baseSN}/send
1649 - **功能描述**:停止同步签到 2039 - **功能描述**:停止同步签到
1650 - **参数说明** 2040 - **参数说明**
@@ -1660,7 +2050,10 @@ MQTT服务器配置结果检查 @@ -1660,7 +2050,10 @@ MQTT服务器配置结果检查
1660 "fun":"stopKpSignIn", 2050 "fun":"stopKpSignIn",
1661 "dataTag":"1" 2051 "dataTag":"1"
1662 } 2052 }
1663 -``` 2053 +``` -->
  2054 +##### [stopKpVote](#stopkpvote)
  2055 +停止同步签到
  2056 +
1664 #### 事件 2057 #### 事件
1665 ##### [sEvtStateCode](#sevtstatecode) 2058 ##### [sEvtStateCode](#sevtstatecode)
1666 发送指令后返回接收状态 2059 发送指令后返回接收状态
@@ -1756,6 +2149,8 @@ MQTT服务器配置结果检查 @@ -1756,6 +2149,8 @@ MQTT服务器配置结果检查
1756 |++keySn|string||是|键盘SN| 2149 |++keySn|string||是|键盘SN|
1757 |++keyValue|string||是|键盘提交的按键值| 2150 |++keyValue|string||是|键盘提交的按键值|
1758 |++keyTime|double||是|答题时间,从启动开始计算,单位秒| 2151 |++keyTime|double||是|答题时间,从启动开始计算,单位秒|
  2152 +|++voltage|double||是|键盘电量|
  2153 +|++retryCount|int||是|键盘提交数据的重发次数|
1759 2154
1760 - **示例代码** 2155 - **示例代码**
1761 2156
@@ -1817,6 +2212,7 @@ MQTT服务器配置结果检查 @@ -1817,6 +2212,7 @@ MQTT服务器配置结果检查
1817 |dataTag|string|-|否|数据包标识,可为空字符串| 2212 |dataTag|string|-|否|数据包标识,可为空字符串|
1818 |data|object|-|是|传送参数的对象| 2213 |data|object|-|是|传送参数的对象|
1819 |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| 2214 |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘|
  2215 +|+count|int||是|题目数量,1-16,>1多题快答|
1820 |+mode|int||是|1 - True/False 对/错 <br>2 - Yes/No 是/否<br> 3 - √/×| 2216 |+mode|int||是|1 - True/False 对/错 <br>2 - Yes/No 是/否<br> 3 - √/×|
1821 |+allowModify|int||是|0 - 不允许修改<br>1 - 允许修改| 2217 |+allowModify|int||是|0 - 不允许修改<br>1 - 允许修改|
1822 |+tip|string||否|提示的标题,长度不超过16字符| 2218 |+tip|string||否|提示的标题,长度不超过16字符|
@@ -1829,14 +2225,14 @@ MQTT服务器配置结果检查 @@ -1829,14 +2225,14 @@ MQTT服务器配置结果检查
1829 "dataTag":"1", 2225 "dataTag":"1",
1830 "data":{ 2226 "data":{
1831 "keySns":[], 2227 "keySns":[],
  2228 + "count":1,
1832 "mode":1, 2229 "mode":1,
1833 "allowModify":1, 2230 "allowModify":1,
1834 "tip":"请判断对错" 2231 "tip":"请判断对错"
1835 } 2232 }
1836 } 2233 }
1837 ``` 2234 ```
1838 -  
1839 -##### stopQATrueFalse 2235 +<!-- ##### stopQATrueFalse
1840 - **主题**:/client/\${baseSN}/send 2236 - **主题**:/client/\${baseSN}/send
1841 - **功能描述**:停止判断题答题 2237 - **功能描述**:停止判断题答题
1842 - **参数说明** 2238 - **参数说明**
@@ -1853,7 +2249,10 @@ MQTT服务器配置结果检查 @@ -1853,7 +2249,10 @@ MQTT服务器配置结果检查
1853 "fun": "stopQATrueFalse", 2249 "fun": "stopQATrueFalse",
1854 "dataTag":"1" 2250 "dataTag":"1"
1855 } 2251 }
1856 -``` 2252 +``` -->
  2253 +
  2254 +##### [stopKpVote](#stopkpvote)
  2255 +停止判断题答题
1857 2256
1858 #### 事件 2257 #### 事件
1859 ##### [sEvtStateCode](#sevtstatecode) 2258 ##### [sEvtStateCode](#sevtstatecode)
@@ -1872,6 +2271,8 @@ MQTT服务器配置结果检查 @@ -1872,6 +2271,8 @@ MQTT服务器配置结果检查
1872 |++keySn|string||是|键盘SN| 2271 |++keySn|string||是|键盘SN|
1873 |++keyValue|string||是|键盘提交的按键值<br>1-对<br>2-错| 2272 |++keyValue|string||是|键盘提交的按键值<br>1-对<br>2-错|
1874 |++keyTime|double||是|答题时间,从启动开始计算,单位秒| 2273 |++keyTime|double||是|答题时间,从启动开始计算,单位秒|
  2274 +|++voltage|double||是|键盘电量|
  2275 +|++retryCount|int||是|键盘提交数据的重发次数|
1875 2276
1876 - **示例代码** 2277 - **示例代码**
1877 2278
@@ -1901,6 +2302,7 @@ MQTT服务器配置结果检查 @@ -1901,6 +2302,7 @@ MQTT服务器配置结果检查
1901 |dataTag|string|-|否|数据包标识,可为空字符串| 2302 |dataTag|string|-|否|数据包标识,可为空字符串|
1902 |data|object|-|是|传送参数的对象| 2303 |data|object|-|是|传送参数的对象|
1903 |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| 2304 |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘|
  2305 +|+count|int||是|题目数量,1-16,>1多题快答<br>optionalN >1时无效|
1904 |+mode|int||是|显示模式<br>1:显示字母(默认值) </br>2:显示数字 | 2306 |+mode|int||是|显示模式<br>1:显示字母(默认值) </br>2:显示数字 |
1905 |+lessMode|int||是|迫选模式<br>0:可缺选(默认值) </br>1:不可缺选</br>2:允许重复输入</br>3:允许重复输入且不可缺选 | 2307 |+lessMode|int||是|迫选模式<br>0:可缺选(默认值) </br>1:不可缺选</br>2:允许重复输入</br>3:允许重复输入且不可缺选 |
1906 |+options|int||是|选项数量,1≤M≤10(默认值4)| 2308 |+options|int||是|选项数量,1≤M≤10(默认值4)|
@@ -1917,6 +2319,7 @@ MQTT服务器配置结果检查 @@ -1917,6 +2319,7 @@ MQTT服务器配置结果检查
1917 "data":{ 2319 "data":{
1918 "keySns":[], 2320 "keySns":[],
1919 "mode": 1, 2321 "mode": 1,
  2322 + "count":1,
1920 "lessMode": 0, 2323 "lessMode": 0,
1921 "options": 4, 2324 "options": 4,
1922 "optionalN": 1, 2325 "optionalN": 1,
@@ -1925,8 +2328,7 @@ MQTT服务器配置结果检查 @@ -1925,8 +2328,7 @@ MQTT服务器配置结果检查
1925 } 2328 }
1926 } 2329 }
1927 ``` 2330 ```
1928 -  
1929 -##### stopQAChoice 2331 +<!-- ##### stopQAChoice
1930 - **主题**:/client/\${baseSN}/send 2332 - **主题**:/client/\${baseSN}/send
1931 - **功能描述**:停止选择题答题 2333 - **功能描述**:停止选择题答题
1932 - **参数说明** 2334 - **参数说明**
@@ -1943,7 +2345,9 @@ MQTT服务器配置结果检查 @@ -1943,7 +2345,9 @@ MQTT服务器配置结果检查
1943 "fun": "stopQAChoice", 2345 "fun": "stopQAChoice",
1944 "dataTag":"1" 2346 "dataTag":"1"
1945 } 2347 }
1946 -``` 2348 +``` -->
  2349 +##### [stopKpVote](#stopkpvote)
  2350 +停止选择题答题
1947 2351
1948 #### 事件 2352 #### 事件
1949 ##### [sEvtStateCode](#sevtstatecode) 2353 ##### [sEvtStateCode](#sevtstatecode)
@@ -1962,6 +2366,8 @@ MQTT服务器配置结果检查 @@ -1962,6 +2366,8 @@ MQTT服务器配置结果检查
1962 |++keySn|string||是|键盘SN| 2366 |++keySn|string||是|键盘SN|
1963 |++keyValue|string||是|键盘提交的按键值| 2367 |++keyValue|string||是|键盘提交的按键值|
1964 |++keyTime|double||是|答题时间,从启动开始计算,单位秒| 2368 |++keyTime|double||是|答题时间,从启动开始计算,单位秒|
  2369 +|++voltage|double||是|键盘电量|
  2370 +|++retryCount|int||是|键盘提交数据的重发次数|
1965 2371
1966 - **示例代码** 2372 - **示例代码**
1967 2373
@@ -2014,8 +2420,7 @@ MQTT服务器配置结果检查 @@ -2014,8 +2420,7 @@ MQTT服务器配置结果检查
2014 } 2420 }
2015 } 2421 }
2016 ``` 2422 ```
2017 -  
2018 -##### stopQANum 2423 +<!-- ##### stopQANum
2019 - **主题**:/client/\${baseSN}/send 2424 - **主题**:/client/\${baseSN}/send
2020 - **功能描述**:停止数字题答题 2425 - **功能描述**:停止数字题答题
2021 - **参数说明** 2426 - **参数说明**
@@ -2032,7 +2437,9 @@ MQTT服务器配置结果检查 @@ -2032,7 +2437,9 @@ MQTT服务器配置结果检查
2032 "fun": "stopQANum", 2437 "fun": "stopQANum",
2033 "dataTag":"1" 2438 "dataTag":"1"
2034 } 2439 }
2035 -``` 2440 +``` -->
  2441 +##### [stopKpVote](#stopkpvote)
  2442 +停止数字题答题
2036 2443
2037 #### 事件 2444 #### 事件
2038 ##### [sEvtStateCode](#sevtstatecode) 2445 ##### [sEvtStateCode](#sevtstatecode)
@@ -2051,6 +2458,8 @@ MQTT服务器配置结果检查 @@ -2051,6 +2458,8 @@ MQTT服务器配置结果检查
2051 |++keySn|string||是|键盘SN| 2458 |++keySn|string||是|键盘SN|
2052 |++keyValue|string||是|键盘提交的按键值| 2459 |++keyValue|string||是|键盘提交的按键值|
2053 |++keyTime|double||是|答题时间,从启动开始计算,单位秒| 2460 |++keyTime|double||是|答题时间,从启动开始计算,单位秒|
  2461 +|++voltage|double||是|键盘电量|
  2462 +|++retryCount|int||是|键盘提交数据的重发次数|
2054 2463
2055 - **示例代码** 2464 - **示例代码**
2056 2465
@@ -2097,8 +2506,7 @@ MQTT服务器配置结果检查 @@ -2097,8 +2506,7 @@ MQTT服务器配置结果检查
2097 } 2506 }
2098 } 2507 }
2099 ``` 2508 ```
2100 -  
2101 -##### stopQAQuicker 2509 +<!-- ##### stopQAQuicker
2102 - **主题**:/client/\${baseSN}/send 2510 - **主题**:/client/\${baseSN}/send
2103 - **功能描述**:停止抢答答题 2511 - **功能描述**:停止抢答答题
2104 - **参数说明** 2512 - **参数说明**
@@ -2115,7 +2523,10 @@ MQTT服务器配置结果检查 @@ -2115,7 +2523,10 @@ MQTT服务器配置结果检查
2115 "fun": "stopQAQuicker", 2523 "fun": "stopQAQuicker",
2116 "dataTag":"1" 2524 "dataTag":"1"
2117 } 2525 }
2118 -``` 2526 +``` -->
  2527 +
  2528 +##### [stopKpVote](#stopkpvote)
  2529 +停止抢答
2119 2530
2120 #### 事件 2531 #### 事件
2121 ##### [sEvtStateCode](#sevtstatecode) 2532 ##### [sEvtStateCode](#sevtstatecode)
@@ -2134,6 +2545,8 @@ MQTT服务器配置结果检查 @@ -2134,6 +2545,8 @@ MQTT服务器配置结果检查
2134 |++keySn|string||是|键盘SN| 2545 |++keySn|string||是|键盘SN|
2135 |++keyValue|string||是|键盘提交的按键值| 2546 |++keyValue|string||是|键盘提交的按键值|
2136 |++keyTime|double||是|答题时间,从启动开始计算,单位秒| 2547 |++keyTime|double||是|答题时间,从启动开始计算,单位秒|
  2548 +|++voltage|double||是|键盘电量|
  2549 +|++retryCount|int||是|键盘提交数据的重发次数|
2137 2550
2138 - **示例代码** 2551 - **示例代码**
2139 2552
@@ -2148,6 +2561,113 @@ MQTT服务器配置结果检查 @@ -2148,6 +2561,113 @@ MQTT服务器配置结果检查
2148 }] 2561 }]
2149 } 2562 }
2150 ``` 2563 ```
  2564 +### 待机实时反馈
  2565 +#### 方法
  2566 +##### setKpStbResponse
  2567 +- **主题**:/client/\${baseSN}/send
  2568 +- **功能描述**:启动待机实时反馈
  2569 +- **参数说明**
  2570 +
  2571 +|参数名|类型|限制|是否必填|说明|
  2572 +|---|---|---|---|---|
  2573 +|fun|string|-|是|指令名称|
  2574 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2575 +|data|object|-|是|传送参数的对象|
  2576 +|+state|int||是|启用待机实时反馈<br>0-不启用<br>1-启用|
  2577 +|+mode|int||是|启动待机反馈类型,state=1时有效<br>0-举手<br>1-指定按键反馈|
  2578 +|+keys|int||是|有效按键数量,state=1且mode=1时有效, 范围1-10|
  2579 +
  2580 +- **示例代码**
  2581 +```json
  2582 +//启用举手反馈
  2583 +{
  2584 + "fun":"setKpStbResponse",
  2585 + "dataTag":"1",
  2586 + "data":{
  2587 + "state":1,
  2588 + "mode":0
  2589 + }
  2590 +}
  2591 +//启用待机按键反馈
  2592 +{
  2593 + "fun":"setKpStbResponse",
  2594 + "dataTag":"1",
  2595 + "data":{
  2596 + "state":1,
  2597 + "mode":1,
  2598 + "keys":4
  2599 + }
  2600 +}
  2601 +//关闭待机按键反馈
  2602 +{
  2603 + "fun":"setKpStbResponse",
  2604 + "dataTag":"1",
  2605 + "data":{
  2606 + "state":0
  2607 + }
  2608 +}
  2609 +```
  2610 +
  2611 +##### getKpStbResponse
  2612 +- **主题**:/client/\${baseSN}/send
  2613 +- **功能描述**:获取实时反馈是否打开
  2614 +- **参数说明**
  2615 +
  2616 +|参数名|类型|限制|是否必填|说明|
  2617 +|---|---|---|---|---|
  2618 +|fun|string|-|是|指令名称|
  2619 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2620 +
  2621 +- **示例代码**
  2622 +```json
  2623 +//启用举手反馈
  2624 +{
  2625 + "fun":"getKpStbResponse",
  2626 + "dataTag":"1"
  2627 +}
  2628 +```
  2629 +
  2630 +#### 事件
  2631 +##### fEvtKpStbResponse
  2632 +- **主题**:/basestation/\${baseSN}/receive
  2633 +- **功能描述**:返回当前待机按键反馈开启状态
  2634 +- **参数说明**
  2635 +
  2636 +|参数名|类型|限制|非空|说明|
  2637 +|---|---|---|---|---|
  2638 +|fun|string|-|是|指令名称|
  2639 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2640 +|data|array|-|是|传送参数的对象数组|
  2641 +|+state|int||是|启用待机实时反馈<br>0-未启用<br>1-启用|
  2642 +|+mode|int||是|当前启动待机反馈类型,state=1时返回<br>0-举手<br>1-指定按键反馈|
  2643 +
  2644 +- **示例代码**
  2645 +```json
  2646 +//当前启用待机实时反馈,模式为指定按键反馈
  2647 +{
  2648 + "fun":"fEvtKpStbResponse",
  2649 + "dataTag":"1",
  2650 + "data": {
  2651 + "state": 1,
  2652 + "mode": 1
  2653 + }
  2654 +}
  2655 +
  2656 +//当前未启用待机反馈
  2657 +{
  2658 + "fun":"fEvtKpStbResponse",
  2659 + "dataTag":"1",
  2660 + "data": {
  2661 + "state": 0
  2662 + }
  2663 +}
  2664 +```
  2665 +
  2666 +##### [sEvtKpRtFeedback](#sevtkprtfeedback)
  2667 +返回待机时键盘返回的按键值
  2668 +
  2669 +##### [sEvtKpHandup](#sevtkphandup)
  2670 +启动待机按键反馈类型为举手提问时返回此事件
2151 2671
2152 ## 在线测验 2672 ## 在线测验
2153 ### 标准测验 2673 ### 标准测验
@@ -2165,11 +2685,12 @@ MQTT服务器配置结果检查 @@ -2165,11 +2685,12 @@ MQTT服务器配置结果检查
2165 |+examNo|int||是|0-9999<br>=0,新的测验<br>>0时,与上次启动卷号一致继续测验,不一致进入新的测验| 2685 |+examNo|int||是|0-9999<br>=0,新的测验<br>>0时,与上次启动卷号一致继续测验,不一致进入新的测验|
2166 |+mode|int||是|显示模式<br>0-不显示开头<br>1-显示“Q”开头<br>2-显示“题”开头| 2686 |+mode|int||是|显示模式<br>0-不显示开头<br>1-显示“Q”开头<br>2-显示“题”开头|
2167 |+questions|array||是|题目详情| 2687 |+questions|array||是|题目详情|
2168 -|++symbol | string||是 | 题号前缀,可为空 |  
2169 |++quesType | int||是| 题目类型<br>1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 | 2688 |++quesType | int||是| 题目类型<br>1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
2170 |++option |int||是 |选项数目<br> quesType = 1 有效。<br>quesType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。| 2689 |++option |int||是 |选项数目<br> quesType = 1 有效。<br>quesType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
2171 -|++startNo | int||是| 起始题号 |  
2172 -|++count | int||是| 题目数量 | 2690 +|++firstNo | int||否| 一级题号,mode=0 时有效,有效范围1-255,不传此字段或传0表示不生效 |
  2691 +|++secondNo | int||否| 二级题号,mode=0 时有效,有效范围1-255,不传此字段或传0表示不生效 |
  2692 +|++startNo | int||是| 最后一级题号起始题号<br>mode=0 时有效,范围1-255,mode=1或2时按顺序显示题号<br>说明:<br>firstNo和secondNo都未赋值时,此字段为一级题号<br>firstNo赋值,secondNo未赋值时,此字段为二级题号<br>secondNo赋值时,此字段为三级题号 |
  2693 +|++count | int||是| 相同参数的连续题目数量, >0 |
2173 2694
2174 - **示例代码** 2695 - **示例代码**
2175 2696
@@ -2180,7 +2701,7 @@ MQTT服务器配置结果检查 @@ -2180,7 +2701,7 @@ MQTT服务器配置结果检查
2180 "dataTag":"1", 2701 "dataTag":"1",
2181 "data":{ 2702 "data":{
2182 "mode": 1, 2703 "mode": 1,
2183 - "examNo": 1, 2704 + "examNo": 0,
2184 "questions": [{ 2705 "questions": [{
2185 "quesType": 1, //单选题 2706 "quesType": 1, //单选题
2186 "startNo": 1, //题号从1开始 2707 "startNo": 1, //题号从1开始
@@ -2197,7 +2718,7 @@ MQTT服务器配置结果检查 @@ -2197,7 +2718,7 @@ MQTT服务器配置结果检查
2197 "dataTag":"1", 2718 "dataTag":"1",
2198 "data":{ 2719 "data":{
2199 "mode": 0, 2720 "mode": 0,
2200 - "examNo": 1, 2721 + "examNo": 0,
2201 //第1、2题单选题,第3、4题多选题,第5题数字,第6题判断,共6题 2722 //第1、2题单选题,第3、4题多选题,第5题数字,第6题判断,共6题
2202 "questions": [{ 2723 "questions": [{
2203 "quesType": 1, //单选题 2724 "quesType": 1, //单选题
@@ -2228,26 +2749,26 @@ MQTT服务器配置结果检查 @@ -2228,26 +2749,26 @@ MQTT服务器配置结果检查
2228 "dataTag":"1", 2749 "dataTag":"1",
2229 "data":{ 2750 "data":{
2230 "mode": 0, 2751 "mode": 0,
2231 - "examNo": 1, 2752 + "examNo": 0,
2232 //第1-1、1-2题单选题,第2-1、2-2题多选题,第3-1题数字,第4-1题判断,共6题 2753 //第1-1、1-2题单选题,第2-1、2-2题多选题,第3-1题数字,第4-1题判断,共6题
2233 "questions": [{ 2754 "questions": [{
2234 - "symbol": "1-", 2755 + "firstNo": 1,
2235 "quesType": 1, //单选题 2756 "quesType": 1, //单选题
2236 "startNo": 1, //题号从1-1开始 2757 "startNo": 1, //题号从1-1开始
2237 "count":2 //连续2题 2758 "count":2 //连续2题
2238 },{ 2759 },{
2239 - "symbol": "2-", 2760 + "firstNo": 2,
2240 "quesType": 2, //多选题 2761 "quesType": 2, //多选题
2241 "startNo": 1, //题号从2-1开始 2762 "startNo": 1, //题号从2-1开始
2242 "count":2, //连续2题 2763 "count":2, //连续2题
2243 "option":5 2764 "option":5
2244 },{ 2765 },{
2245 - "symbol": "3-", 2766 + "firstNo": 3,
2246 "quesType": 3, //数字题 2767 "quesType": 3, //数字题
2247 "startNo": 1, //题号从3-1开始 2768 "startNo": 1, //题号从3-1开始
2248 "count":1 //连续1题 2769 "count":1 //连续1题
2249 },{ 2770 },{
2250 - "symbol": "4-", 2771 + "firstNo": 4,
2251 "quesType": 4, //判断题 2772 "quesType": 4, //判断题
2252 "startNo": 1, //题号从4-1开始 2773 "startNo": 1, //题号从4-1开始
2253 "count":1 //连续1题 2774 "count":1 //连续1题
@@ -2263,26 +2784,30 @@ MQTT服务器配置结果检查 @@ -2263,26 +2784,30 @@ MQTT服务器配置结果检查
2263 "dataTag":"1", 2784 "dataTag":"1",
2264 "data":{ 2785 "data":{
2265 "mode": 0, 2786 "mode": 0,
2266 - "examNo": 1, 2787 + "examNo": 0,
2267 //第1-1-1、1-1-2题单选题,第1-2-1、1-2-2题多选题,第2-1-1题数字,第3-1-1题判断,共6题 2788 //第1-1-1、1-1-2题单选题,第1-2-1、1-2-2题多选题,第2-1-1题数字,第3-1-1题判断,共6题
2268 "questions": [{ 2789 "questions": [{
2269 - "symbol": "1-1-", 2790 + "firstNo": 1,
  2791 + "secondNo": 1,
2270 "quesType": 1, //单选题 2792 "quesType": 1, //单选题
2271 "startNo": 1, //题号从1-1-1开始 2793 "startNo": 1, //题号从1-1-1开始
2272 "count":2 //连续2题 2794 "count":2 //连续2题
2273 },{ 2795 },{
2274 - "symbol": "1-2-", 2796 + "firstNo": 1,
  2797 + "secondNo": 2,
2275 "quesType": 2, //多选题 2798 "quesType": 2, //多选题
2276 "startNo": 1, //题号从1-2-1开始 2799 "startNo": 1, //题号从1-2-1开始
2277 "count":2, //连续2题 2800 "count":2, //连续2题
2278 "option":5 2801 "option":5
2279 },{ 2802 },{
2280 - "symbol": "2-1-", 2803 + "firstNo": 2,
  2804 + "secondNo": 1,
2281 "quesType": 3, //数字题 2805 "quesType": 3, //数字题
2282 "startNo": 1, //题号从2-1-1开始 2806 "startNo": 1, //题号从2-1-1开始
2283 "count":1 //连续1题 2807 "count":1 //连续1题
2284 },{ 2808 },{
2285 - "symbol": "3-1-", 2809 + "firstNo": 3,
  2810 + "secondNo": 1,
2286 "quesType": 4, //判断题 2811 "quesType": 4, //判断题
2287 "startNo": 1, //题号从3-1-1开始 2812 "startNo": 1, //题号从3-1-1开始
2288 "count":1 //连续1题 2813 "count":1 //连续1题
@@ -2298,7 +2823,7 @@ MQTT服务器配置结果检查 @@ -2298,7 +2823,7 @@ MQTT服务器配置结果检查
2298 "dataTag":"1", 2823 "dataTag":"1",
2299 "data":{ 2824 "data":{
2300 "mode": 1, 2825 "mode": 1,
2301 - "examNo": 1, 2826 + "examNo": 0,
2302 "questions": [{ 2827 "questions": [{
2303 "quesType": 1, //单选题 2828 "quesType": 1, //单选题
2304 "startNo": 1, //题号从1开始 2829 "startNo": 1, //题号从1开始
@@ -2328,7 +2853,7 @@ MQTT服务器配置结果检查 @@ -2328,7 +2853,7 @@ MQTT服务器配置结果检查
2328 "dataTag":"1", 2853 "dataTag":"1",
2329 "data":{ 2854 "data":{
2330 "mode": 2, 2855 "mode": 2,
2331 - "examNo": 1, 2856 + "examNo": 0,
2332 "questions": [{ 2857 "questions": [{
2333 "quesType": 1, //单选题 2858 "quesType": 1, //单选题
2334 "startNo": 1, //题号从1开始 2859 "startNo": 1, //题号从1开始
@@ -2351,7 +2876,7 @@ MQTT服务器配置结果检查 @@ -2351,7 +2876,7 @@ MQTT服务器配置结果检查
2351 } 2876 }
2352 ``` 2877 ```
2353 2878
2354 -##### stopKpExam 2879 +<!-- ##### stopKpExam
2355 - **主题**:/client/\${baseSN}/send 2880 - **主题**:/client/\${baseSN}/send
2356 - **功能描述**:停止标准测验 2881 - **功能描述**:停止标准测验
2357 - **参数说明** 2882 - **参数说明**
@@ -2368,7 +2893,9 @@ MQTT服务器配置结果检查 @@ -2368,7 +2893,9 @@ MQTT服务器配置结果检查
2368 "fun": "stopKpExam", 2893 "fun": "stopKpExam",
2369 "dataTag":"1" 2894 "dataTag":"1"
2370 } 2895 }
2371 -``` 2896 +``` -->
  2897 +##### [stopKpVote](#stopkpvote)
  2898 +停止在线测验
2372 2899
2373 ##### rtKpAllowEdited 2900 ##### rtKpAllowEdited
2374 - **主题**:/client/\${baseSN}/send 2901 - **主题**:/client/\${baseSN}/send
@@ -2409,8 +2936,10 @@ MQTT服务器配置结果检查 @@ -2409,8 +2936,10 @@ MQTT服务器配置结果检查
2409 |dataTag|string|-|否|数据包标识,可为空字符串| 2936 |dataTag|string|-|否|数据包标识,可为空字符串|
2410 |data|array|-|是|传送参数的对象数组| 2937 |data|array|-|是|传送参数的对象数组|
2411 |++keySn|string||是|键盘SN| 2938 |++keySn|string||是|键盘SN|
2412 -|++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B| 2939 +|++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B<br><font color="red">注意:如启动的是多科测验,键盘提交的题目序号对应启动时下发的题目总序号,不按科目区分</font>|
2413 |++keyTime|double||是|答题时间,从启动开始计算,单位秒| 2940 |++keyTime|double||是|答题时间,从启动开始计算,单位秒|
  2941 +|++voltage|double||是|键盘电量|
  2942 +|++retryCount|int||是|键盘提交数据的重发次数|
2414 2943
2415 - **示例代码** 2944 - **示例代码**
2416 2945
@@ -2459,3 +2988,246 @@ MQTT服务器配置结果检查 @@ -2459,3 +2988,246 @@ MQTT服务器配置结果检查
2459 }] 2988 }]
2460 } 2989 }
2461 ``` 2990 ```
  2991 +
  2992 +### 多科测验
  2993 +#### 方法
  2994 +##### startKpMultiExam
  2995 +- **主题**:/client/\${baseSN}/send
  2996 +- **功能描述**:启动多科测验
  2997 +- **参数说明**
  2998 +
  2999 +|参数名|类型|限制|是否必填|说明|
  3000 +|---|---|---|---|---|
  3001 +|fun|string|-|是|指令名称|
  3002 +|dataTag|string|-|否|数据包标识,可为空字符串|
  3003 +|data|object|-|是|传送参数的对象|
  3004 +|+examNo|int||是|0-9999<br>=0,新的测验<br>>0时,与上次启动卷号一致继续测验,不一致进入新的测验|
  3005 +|+mode|int||是|显示模式<br>0-不显示开头<br>1-显示“Q”开头<br>2-显示“题”开头|
  3006 +|+questions|array||是|题目详情|
  3007 +|++subject | int||是 | 科目序号,1-9,对应键盘中内置的科目1-9<br>键盘答题时可选择科目切换答题|
  3008 +|++quesType | int||是| 题目类型<br>1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
  3009 +|++option |int||是 |选项数目<br> quesType = 1 有效。<br>quesType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
  3010 +|++firstNo | int||否| 一级题号,mode=0 时有效,有效范围1-255,不传字段或传0表示不生效 |
  3011 +|++startNo | int||是| 起始题号,mode=0 时有效,范围1-255 <br>firstNo未赋值时,此字段表示一级题号<br>firstNo赋值时,此字段表示二级题号|
  3012 +|++count | int||是| 相同参数的连续题目数量, >0 |
  3013 +|+simParams|object||否|内部模拟测试参数设置对象|
  3014 +|++answer|array||是|预设提交的按键值<br>格式为"单选题答案,多选题答案;<br>数字题答案;判断题答案(1对2错)"<br>如["A","ABCD","10","1"]|
  3015 +
  3016 +- **示例代码**
  3017 +```json
  3018 +//自定义题号
  3019 +{
  3020 + "fun":"startKpMultiExam",
  3021 + "dataTag":"1",
  3022 + "data":{
  3023 + "mode": 0,
  3024 + "examNo": 0,
  3025 + "questions": [{
  3026 + "subject":1, //科目1
  3027 + //题号1-1 到1-10 共10题单选
  3028 + "firstNo": 1,
  3029 + "quesType": 1,
  3030 + "startNo": 1,
  3031 + "count":10
  3032 + }, {
  3033 + "subject":2, //科目2
  3034 + //题号2-2和2-3共两题 多选题,5个选项
  3035 + "firstNo": 2,
  3036 + "quesType": 2,
  3037 + "option": 5,
  3038 + "startNo": 2,
  3039 + "count":2
  3040 + }, {
  3041 + "subject":3, //科目3
  3042 + //题号3-1和3-2共两道数字题
  3043 + "firstNo": 3,
  3044 + "quesType": 3,
  3045 + "startNo": 1,
  3046 + "count":2
  3047 + }, {
  3048 + "subject":1, //科目1
  3049 + //题号4和5 ,判断题
  3050 + "quesType": 4,
  3051 + "startNo": 4,
  3052 + "count":2
  3053 + }],
  3054 + "simParams":{
  3055 + "answer":["A","ABCD","10","1"]
  3056 + }
  3057 + }
  3058 +}
  3059 +
  3060 +//显示Q开头
  3061 +{
  3062 + "fun":"startKpMultiExam",
  3063 + "dataTag":"1",
  3064 + "data":{
  3065 + "mode": 1,
  3066 + "examNo": 0,
  3067 + "questions": [{
  3068 + "subject":1,
  3069 + //Q1-Q20,单选题
  3070 + "quesType": 1,
  3071 + "startNo": 1,
  3072 + "count":20
  3073 + }],
  3074 + "simParams":{
  3075 + "answer":["A","","",""]
  3076 + }
  3077 + }
  3078 +}
  3079 +
  3080 +//显示题开头
  3081 +{
  3082 + "fun":"startKpMultiExam",
  3083 + "dataTag":"1",
  3084 + "data":{
  3085 + "mode": 2,
  3086 + "examNo": 0,
  3087 + "questions": [{
  3088 + "subject":1,
  3089 + //题1-题20,单选题
  3090 + "quesType": 1,
  3091 + "startNo": 1,
  3092 + "count":20
  3093 + }],
  3094 + "simParams":{
  3095 + "answer":["A","","",""]
  3096 + }
  3097 + }
  3098 +}
  3099 +```
  3100 +
  3101 +<!-- ##### stopKpMultiExam
  3102 +- **主题**:/client/\${baseSN}/send
  3103 +- **功能描述**:停止多科测验
  3104 +- **参数说明**
  3105 +
  3106 +|参数名|类型|限制|是否必填|说明|
  3107 +|---|---|---|---|---|
  3108 +|fun|string|-|是|指令名称|
  3109 +|dataTag|string|-|否|数据包标识,可为空字符串|
  3110 +
  3111 +- **示例代码**
  3112 +```json
  3113 +{
  3114 + "fun":"stopKpMultiExam",
  3115 + "dataTag":"1"
  3116 +}
  3117 +``` -->
  3118 +##### [stopKpVote](#stopkpvote)
  3119 +停止多科测验
  3120 +
  3121 +#### 事件
  3122 +##### [sEvtStateCode](#sevtstatecode)
  3123 +发送指令后返回接收状态
  3124 +
  3125 +##### [fEvtKpExam](#fevtkpexam)
  3126 +返回测验中键盘提交答题数据
  3127 +
  3128 +##### [fEvtFinalSubmit](#fevtfinalsubmit)
  3129 +返回键盘手动交卷标识
  3130 +
  3131 +### 自主录分
  3132 +#### 方法
  3133 +##### startKpScoreInput
  3134 +- **主题**:/client/\${baseSN}/send
  3135 +- **功能描述**:启动标准测验
  3136 +- **参数说明**
  3137 +
  3138 +|参数名|类型|限制|是否必填|说明|
  3139 +|---|---|---|---|---|
  3140 +|fun|string|-|是|指令名称|
  3141 +|dataTag|string|-|否|数据包标识,可为空字符串|
  3142 +|data|object|-|是|传送参数的对象|
  3143 +|+examNo|int||是|0-9999<br>=0,新的录分<br>>0时,与上次启动卷号一致继续录分,不一致进入新的录分|
  3144 +|+mode|int||是|录分模式<br>0-自主录分<br>1-交叉录分,需先输入录分的人员标识|
  3145 +|+questions|array||是|题目详情|
  3146 +|++max |int||是|可输入的最大值,<=100|
  3147 +|++digits|int||是|可输入的小数位数,范围0-2|
  3148 +|++startNo | int||是| 起始题号|
  3149 +|++count | int||是| 相同参数的题目数量,>0|
  3150 +
  3151 +- **示例代码**
  3152 +```json
  3153 +{
  3154 + "fun":"startKpScoreInput",
  3155 + "dataTag":"1",
  3156 + "data":{
  3157 + "mode": 0,
  3158 + "examNo": 0,
  3159 + "questions": [{
  3160 + //题号1 到 2 共2题,单题满分10分
  3161 + "max":10,
  3162 + "digits":1,
  3163 + "startNo": 1,
  3164 + "count":2
  3165 + }, {
  3166 + //题号3到6 共4道题,单题满分5
  3167 + "max":5,
  3168 + "digits":0,
  3169 + "startNo": 3,
  3170 + "count":4
  3171 + }]
  3172 + }
  3173 +}
  3174 +```
  3175 +<!--
  3176 +##### stopKpScoreInput
  3177 +- **主题**:/client/\${baseSN}/send
  3178 +- **功能描述**:停止自主录分
  3179 +- **参数说明**
  3180 +
  3181 +|参数名|类型|限制|是否必填|说明|
  3182 +|---|---|---|---|---|
  3183 +|fun|string|-|是|指令名称|
  3184 +|dataTag|string|-|否|数据包标识,可为空字符串|
  3185 +
  3186 +- **示例代码**
  3187 +```json
  3188 +{
  3189 + "fun":"stopKpScoreInput",
  3190 + "dataTag":"1"
  3191 +}
  3192 +``` -->
  3193 +##### [stopKpVote](#stopkpvote)
  3194 +停止自主录分
  3195 +
  3196 +#### 事件
  3197 +##### [sEvtStateCode](#sevtstatecode)
  3198 +发送指令后返回接收状态
  3199 +
  3200 +##### fEvtKpScore
  3201 +- **主题**:/basestation/\${baseSN}/receive
  3202 +- **功能描述**:返回键盘提交录分信息
  3203 +- **参数说明**
  3204 +
  3205 +|参数名|类型|限制|非空|说明|
  3206 +|---|---|---|---|---|
  3207 +|fun|string|-|是|指令名称|
  3208 +|dataTag|string|-|否|数据包标识,可为空字符串|
  3209 +|data|array|-|是|传送参数的对象数组|
  3210 +|++keySn|string||是|键盘SN|
  3211 +|++keyValue|string||是|键盘提交的分值,1:10;2:0表示第1题提交10分,第二题提交0分|
  3212 +|++keyTime|double||是|录分时间,从启动录分开始计算,单位秒|
  3213 +|++voltage|double||是|键盘电量|
  3214 +|++retryCount|int||是|键盘提交数据的重发次数|
  3215 +
  3216 +- **示例代码**
  3217 +```json
  3218 +{
  3219 + "fun":"fEvtKpScore",
  3220 + "dataTag":"1",
  3221 + "data": [{
  3222 + "keySn": "1234567890",
  3223 + "keyValue":"1:8;2:7.5;3:2;4:3",
  3224 + "keyTime":3.2
  3225 + },
  3226 + {
  3227 + "keySn": "1234567891",
  3228 + "keyValue":"1:10;2:0",
  3229 + "keyTime":3.5
  3230 + }
  3231 + ]
  3232 +}
  3233 +```
2462 \ No newline at end of file 3234 \ No newline at end of file