Commit 45cf67e91e29e6375a63b28de384cd611964f127

Authored by 刘琴
1 parent dde7a0b0

添加B200W网络基站MQTT协议

通讯协议-B200W-MQTT协议[内部].md 0 → 100644
  1 +<style>
  2 + table {
  3 + width: 100%; /* 或者具体的像素值,例如:1200px */
  4 + table-layout: ; /* 保持列宽固定 */
  5 + }
  6 + th, td {
  7 + word-wrap: break-word; /* 允许文本换行 */
  8 + }
  9 + .delline{
  10 + text-decoration:line-through;
  11 + }
  12 + .yellowFill{
  13 + background-color: yellow;
  14 + }
  15 +</style>
  16 +# SunVote B200W_MQTT 接口协议
  17 +
  18 +[TOC]
  19 +
  20 +# 功能说明
  21 +
  22 +## 主题说明
  23 +\${baseSN}为指定的基站的SN编码,不能为空,接收基站反馈数据需要订阅对应基站SN的接收主题。
  24 +### 发布的主题
  25 +应用程序发布的主题,基站订阅
  26 +/client/\${baseSN}/send
  27 +/client/multiBase/send
  28 +
  29 +<span class="yellowFill">内部应用发布的主题,基站订阅
  30 +/manage/\${baseSN}/send</span>
  31 +
  32 +### 订阅的主题
  33 +应用程序订阅的主题,基站发布
  34 +/basestation/\\${baseSN}/recive
  35 +/basestation/multiBase/recive
  36 +
  37 +<span class="yellowFill">内部应用订阅的主题,基站发布
  38 +/manage/\${baseSN}/recive</span>
  39 +
  40 +## 指令说明
  41 +|指令功能标识 |说明 |约束|
  42 +|---|---|---|
  43 +|get| 待机状态下获取参数属性状态及数据 |待机状态|
  44 +|set| 待机状态下设置参数属性状态及数据 |待机状态|
  45 +|start| 运行一个单进程业务实例(函数) |待机状态|
  46 +|stop| 停止一个单进程业务实例(函数) |待机状态|
  47 +|rtXXX| 在线状态下可实时执行方法及函数 ||
  48 +
  49 +## 事件说明
  50 +|事件标识| 说明| 约束|
  51 +|---|---|---|
  52 +|sEvtXXX|系统事件 |自动返回|
  53 +|fEvtXXX|指令事件 |调用对应指令后返回|
  54 +
  55 +## 功能速查一览表
  56 +### 基站管理
  57 +|功能归类|功能|API指令|指令/系统事件|
  58 +|---|---|---|---|
  59 +|基站连接 - 获取在线基站|主动获取在线基站信息<br>不确定基站SN时|[getBsOnlineState](#getbsonlinestate)|[fEvtBsOnlineState](#fevtbsonlinestate)||
  60 +|基站连接 - 主动获取状态|主动获取基站连接状态|[getBsConnectState](#getbsconnectstate)|[sEvtBsConnectState](#sevtbsconnectstate)||
  61 +|基站连接 - 自动获取状态|基站连接变化系统通知|-|[sEvtBsConnectState](#sevtbsconnectstate)||
  62 +|键盘上线通知|单个键盘上线系统通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)||
  63 +|识别设置 - 出厂编码|<font color="red">设置基站出厂编码(内)|[setBsSN](#setbssn)|[fEvtBsSN](#fevtbssn)|
  64 +|识别设置 - 基站型号|读取基站型号|[getBsModel](#getbsmodel)|[fEvtBsModel](#fevtbsmodel)|
  65 +|识别设置 - 固件版本|获取基站固件版本|[getBsFWVersion](#getbsfwversion)|[fEvtBsFWVersion](#fevtbsfwversion)|
  66 +|识别设置 - 品牌识别码|获取基站品牌识别码|[getBsBIC](#getbsbic)|[fEvtBsBIC](#fevtbsbic)|
  67 +||<font color="red">设置基站品牌识别码(内)|[setBsBIC](#setbsbic)|[fEvtBsBIC](#fevtbsbic)|
  68 +|组网设置 - 组网模式|获取基站组网模式|[getBsNetworkMode](#getbsnetworkmode)|[fEvtBsNetworkMode](#fevtbsnetworkmode)|
  69 +||<font color="blue">设置基站组网模式<br>(前期不开放,后期需要)|[setBsNetworkMode](#setbsnetworkmode)|[fEvtBsNetworkMode](#fevtbsnetworkmode)|
  70 +|组网设置 - 配对码|获取基站配对码|[getBsPairCode](#getbspaircode)|[fEvtBsPairCode](#fevtbspaircode)|
  71 +||<font color="red">设置基站配对码(内)</font>|[setBsPairCode](#setbspaircode)|[fEvtBsPairCode](#fevtbspaircode)|
  72 +|组网设置 - 刷卡配对状态|获取刷卡配对状态|[getBsNfcLogin](#getbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)|
  73 +||设置刷卡配对状态|[setBsNfcLogin](#setbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)||
  74 +|组网设置 - 工作信道|获取基站工作信道|[getBsChannel](#getbschannel)|[fEvtBsChannel](#fevtbschannel)|
  75 +||设置基站工作信道|[setBsChannel](#setbschannel)|[fEvtBsChannel](#fevtbschannel)||
  76 +|登录设置 - 登录名称|获取基站登录名称|[getBsSSID](#getbsssid)|[fEvtBsSSID](#fevtbsssid)|
  77 +||设置基站登录名称|[setBsSSID](#setbsssid)|[fEvtBsSSID](#fevtbsssid)||
  78 +|键盘统一设置 - 键盘语言|获取键盘语言|[getBsKpLanguage](#getbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)|
  79 +||设置键盘语言|[setBsKpLanguage](#setbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)||
  80 +|键盘统一设置 - 状态语模式|获取状态语设置状态|[getBsKpStbMsgMode](#getbskpstbmsgmode)|[fEvtBsKpStbMsgMode](#fevtbskpstbmsgmode)|
  81 +||设置状态语工作状态|[setBsKpStbMsgMode](#setbskpstbmsgmode)|[fEvtBsKpStbMsgMode](#fevtbskpstbmsgmode)|||
  82 +|TCP/IP参数|获取TCP/IP参数|[getBsTcpipParams](#getbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)|
  83 +||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)||
  84 +|MQTT参数|获取MQTT参数|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)|
  85 +||设置MQTT参数|[setBsMqttParams](#setbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)||
  86 +|基站升级|<font color="red">开启基站升级(内)|[startBsUpdate](#startbsupdate)|[fEvtStartBsUpate](#fevtstartbsupate)<br>[fEvtBsUpdateProgress](#fevtbsupdateprogress)|
  87 +### 键盘管理
  88 +|功能归类|功能|API指令|指令事件|
  89 +|---|---|---|---|
  90 +|<font color="red">识别设置 - 识别模式(内)|<font color="red">获取键盘识别模式(内)|[getKpIdentityMode](#getkpidentitymode)|[fEvtKpIdentityMode](#fevtkpidentitymode)|
  91 +||<font color="red">设置键盘识别模式(内)|[setKpIdentityMode](#setkpidentitymode)|[fEvtKpIdentityMode](#fevtkpidentitymode)|
  92 +|交互设置 - 用户内置状态语|设置用户内置状态语|[setKpUserStbMsg](#setkpuserstbmsg)|[fEvtKpUserStbMsg]()|
  93 +|交互设置 - 用户实时提示信息|实时设置提示反馈信息|[rtSetKpUserPrompt](#rtsetkpuserprompt)|[fEvtSetKpUserPrompt]()|
  94 +|维护功能 - 遥控功能|遥控键盘关机|[remoteKpPowerOff](#remotekppoweroff)|[fEvtRemoteKpPowerOff](#fevtremotekppoweroff)|
  95 +||遥控键盘休眠|[remoteKpSleep](#remotekpsleep)|[fEvtRemoteKpSleep](#fevtremotekpsleep)|
  96 +|维护功能 - 遥控功能|<font color="red">启动键盘无线升级(内)|[startKpFWUpdate](#startkpfwupdate)|[fEvtStartKpFWUpdate](#fevtstartkpfwupdate)<br>[fEvtKpUpdateProgress](#fevtkpupdateprogress)<br>[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
  97 +### 绑定
  98 +|功能归类|功能|API指令|指令事件|
  99 +|---|---|---|---|
  100 +|无线绑定|设置绑定信息到键盘|[rtSetKpBindingInfo](#rtsetkpbindinginfo)|[fEvtSetKpBindingInfo](#fevtsetkpbindinginfo)|
  101 +||清除键盘绑定信息|[clearKpBindingInfo](#clearkpbindinginfo)|[fEvtClearKpBindingInfo](#fevtclearkpbindinginfo)|
  102 +### 签到
  103 +|功能归类|功能|API指令|指令事件|
  104 +|---|---|---|---|
  105 +|随时签到|启动随时签到|[rtStartKpSignIn](#rtstartkpsignin)|[fEvtStartKpSignIn](#fevtstartkpsignin)<br>[fEvtKpSignIn](#fevtkpsignin)|
  106 +||停止随时签到|[rtStopKpSignIn](#rtstopkpsignin)|[fEvtStopKpSignIn](#fevtstopkpsignin)|
  107 +||实时PIN签到授权|[rtSetKpLoginAllowed](#rtsetkploginallowed)|[fEvtSetKpLoginAllowed](#fevtsetkploginallowed)|
  108 +### 按键反馈
  109 +|功能归类|功能|API指令|指令事件|
  110 +|---|---|---|---|
  111 +|判断题|启动判断题答题|[startQATrueFalse](#startQAtruefalse)|[fEvtStartQATrueFalse](#fevtstartQAtruefalse)<br>[fEvtQATrueFalse](#fevtQAtruefalse)|
  112 +||停止判断题答题|[stopQATrueFalse](#stopQAtruefalse)|[fEvtStopQATrueFalse](#fevtstopQAtruefalse)|
  113 +|选择题|启动选择题答题|[startQAChoice](#startQAchoice)|[fEvtStartQAChoice](#fevtstartQAchoice)<br>[fEvtQAChoice](#fevtQAchoice)|
  114 +||停止选择题答题|[stopQAChoice](#stopQAchoice)|[fEvtStopQAChoice](#fevtstopQAchoice)|
  115 +|数字题|启动数字题答题|[startQANum](#startQAnum)|[fEvtStartQANum](#fevtstartQAnum)<br>[fEvtQANum](#fevtQAnum)|
  116 +||停止数字题答题|[stopQANum](#stopQAnum)|[fEvtStopQANum](#fevtstopQAnum)|
  117 +|抢答题|启动抢答题答题|[startQAQuicker](#startQAquicker)|[fEvtStartQAQuicker](#fevtstartQAquicker)<br>[fEvtQAQuicker](#fevtQAquicker)|
  118 +||停止抢答题答题|[stopQAQuicker](#stopQAquicker)|[fEvtStopQAQuicker](#fevtstopQAquicker)|
  119 +### 在线测验
  120 +|功能归类|功能|API指令|指令事件|
  121 +|---|---|---|---|
  122 +|标准测验|启动标准测验|[startKpExam](#startkpexam)|[fEvtStartKpExam](#fevtstartkpexam)<br>[fEvtKpExam](#fevtkpexam)<br>[fEvtFinalSubmit](#fevtfinalsubmit)|
  123 +||停止标准测验|[stopKpExam](#stopkpexam)|[fEvtStopKpExam](#fevtstopkpexam)|
  124 +||刷新作答数据|[rtGetKpExamData](#rtgetkpexamdata)|[fEvtKpExam](#fevtkpexam)|
  125 +||允许键盘提交后退回修改|[rtAllowEdited](#rtkpallowedited)|[fEvtAllowEdited](#fevtallowedited)|
  126 +
  127 +## 公共事件
  128 +### sEvtBsConnectState
  129 +- **主题**: /basestation/\${baseSN}/recive
  130 +- **功能描述**:基站连接成功时返回基站型号和基站SN,基站从已连接状态断开返回连接断开
  131 +<span class="yellowFill">备注:Last Will and Testament (LWT)。这是MQTT协议提供的一项特性,允许客户端在异常断开连接时向其他订阅了特定主题的客户端发布一条消息。这通常用于通知系统中的其他设备或服务,该客户端已离线或处于不可达状态。当客户端与MQTT服务器(broker)的连接意外中断(如网络问题或客户端崩溃),服务器将自动发布这条预设的消息至指定主题。
  132 +基站需处理LWT</span>
  133 +- **参数说明**
  134 +
  135 +|参数名|类型|限制|非空|说明|
  136 +|-----|-----|-----|-----|-----|
  137 +|fun|string|-|是|事件类型|
  138 +|dataTag|string|-|否|数据包标识,不需要时可传空字符串|
  139 +|data|object|-|是|传送参数的对象|
  140 +|+baseModel|int||否|基站的型号码|
  141 +|+state|int||是|基站的连接状态<br>1-已连接<br>2-连接断开|
  142 +|+version|string||否|基站固件版本|
  143 +
  144 +- **示例代码**
  145 +```Json
  146 +//连接成功
  147 +{
  148 + "fun":"sEvtBsConnectState",
  149 + "dataTag":"1",
  150 + "data":{
  151 + "state":1,
  152 + "baseModel":218,
  153 + "version":"1.0.3"
  154 + }
  155 +}
  156 +//连接断开
  157 +{
  158 + "fun":"sEvtBsConnectState",
  159 + "dataTag":"1",
  160 + "data":{
  161 + "state":2
  162 + }
  163 +}
  164 +```
  165 +### sEvtBsChannelConflict
  166 +- **主题**: /basestation/\${baseSN}/recive
  167 +- **功能描述**:基站信道冲突时主动上报,应用程序可根据实际业务修改基站信道
  168 +- **参数说明**
  169 +
  170 +|参数名|类型|限制|非空|说明|
  171 +|---|---|---|---|---|
  172 +|fun|string|-|是|事件名称|
  173 +|dataTag|string|-|否|数据包标识,不需要时可传空字符串|
  174 +|data|object|-|是|传送参数的对象|
  175 +|+value|int||是|有冲突的信道|
  176 +
  177 +- **示例代码**
  178 +```Json
  179 +{
  180 + "fun":"sEvtBsChannelConflict",
  181 + "dataTag":"1",
  182 + "data":{
  183 + "value":5 //信道5有多个基站使用
  184 + }
  185 +}
  186 +```
  187 +### sEvtBsNfcResults
  188 +- **主题**: /basestation/\${baseSN}/recive
  189 +- **功能描述**:键盘刷卡时主动上报,如果超出基站容量会上报失败
  190 +- **参数说明**
  191 +
  192 +|参数名|类型|限制|非空|说明|
  193 +|---|---|---|---|---|
  194 +|fun|string|-|是|事件名称|
  195 +|dataTag|string|-|否|数据包标识,不需要时可传空字符串|
  196 +|data|object|-|是|传送参数的对象|
  197 +|+keySN|string||是|刷卡的键盘SN|
  198 +|+value|int||是|刷卡的状态<br>1-成功<br>2-失败|
  199 +
  200 +- **示例代码**
  201 +```Json
  202 +{
  203 + "fun":"sEvtBsNfcResults",
  204 + "dataTag":"1", //不需要时可传空字符串
  205 + "data":{
  206 + "keySN":"1234567890",
  207 + "value":1
  208 + }
  209 +}
  210 +```
  211 +
  212 +### sEvtBsKpOnlineMsg
  213 +- **主题**: /basestation/\${baseSN}/recive
  214 +- **功能描述**:键盘上线通知,主动上报,键盘升级成功后也会上报
  215 +- **参数说明**
  216 +
  217 +|参数名|类型|限制|非空|说明|
  218 +|---|---|---|---|---|
  219 +|fun|string|-|是|事件名称|
  220 +|dataTag|string|-|否|数据包标识|
  221 +|data|object|-|是|传送参数的对象|
  222 +|+keySN|string||是|键盘SN|
  223 +|+version|string||是|键盘固件版本|
  224 +|+model|int||是|键盘型号|
  225 +|+voltage|double||是|键盘电压|
  226 +
  227 +- **示例代码**
  228 +```Json
  229 +{
  230 + "fun":"sEvtBsKpOnlineMsg",
  231 + "dataTag":"1",
  232 + "data":{
  233 + "keySN":"1234567890",
  234 + "version":"1.0.0",
  235 + "model":67,
  236 + "voltage":2.8
  237 + }
  238 +}
  239 +```
  240 +### sEvtErrorCode
  241 +- **主题**: /basestation/\${baseSN}/recive
  242 +- **功能描述**:返回错误信息,调用方法后如果出错则返回此事件
  243 +- **参数说明**
  244 +
  245 +|参数名|类型|限制|非空|说明|
  246 +|---|---|---|---|---|
  247 +|fun|string|-|是|事件名称|
  248 +|dataTag|string|-|否|数据包标识|
  249 +|data|object|-|是|传送参数的对象|
  250 +|+funName|string||是|出错的指令名称|
  251 +|+code|string||是|错误码,含义见下表|
  252 +
  253 +|错误码|说明|
  254 +|---|---|
  255 +|10001|不能正确解析的JSON数据|
  256 +|10002|解析JSON错误|
  257 +|20001|基站未连接|
  258 +|20002|功能不支持|
  259 +|20003|基站SN格式不正确|
  260 +|20004|参数错误|
  261 +|20005|基站在答题中|
  262 +|30001|找不到对应的SN|
  263 +|30002|找不到对应的BaseID|
  264 +|30003|基站SN不是对应的BaseID|
  265 +|40001|升级功能只能支持一个基站|
  266 +|50001|此功能必须指定基站|
  267 +|60001|此功能必须指定键盘SN|
  268 +
  269 +- **示例代码**
  270 +```Json
  271 +{
  272 + "fun":"sEvtErrorCode",
  273 + "dataTag":"1",
  274 + "data":{
  275 + "funName":"startKpRollCall",
  276 + "code":"20005"
  277 + }
  278 +}
  279 +```
  280 +
  281 +## 基站管理
  282 +### 基站连接
  283 +#### 方法
  284 +##### getBsOnlineState
  285 +- **主题**:<span class="yellowFill">/client/multiBase/send</span>
  286 +- **功能描述**:主动获取所有在线基站信息,在线基站回复
  287 +- **参数说明**
  288 +
  289 +|参数名|类型|限制|是否必填|说明|
  290 +|---|---|---|---|---|
  291 +|fun|string|-|是|固定指令名称|
  292 +|dataTag|string|-|否|数据包标识|
  293 +- **示例代码**
  294 +```Json
  295 +{
  296 + "fun":"getBsOnlineState",
  297 + "dataTag":"1"
  298 +}
  299 +```
  300 +
  301 +##### getBsConnectState
  302 +- **主题**:/client/\${baseSN}/send
  303 +- **功能描述**:主动获取基站连接状态
  304 +- **参数说明**
  305 +
  306 +|参数名|类型|限制|是否必填|说明|
  307 +|---|---|---|---|---|
  308 +|fun|string|-|是|固定指令名称|
  309 +|dataTag|string|-|否|数据包标识|
  310 +- **示例代码**
  311 +```Json
  312 +{
  313 + "fun":"getBsConnectState",
  314 + "dataTag":"1"
  315 +}
  316 +```
  317 +#### 事件
  318 +##### [sEvtBsConnectState](#sevtbsconnectstate)
  319 +参见基站连接变化系统通知
  320 +
  321 +##### fevtBsOnlineState
  322 +- **主题**: <span color="yellowFill">/basestation/mutilBase/recive</span>
  323 +- **功能描述**:基站在线返回基站型号和基站SN
  324 +- **参数说明**
  325 +
  326 +|参数名|类型|限制|非空|说明|
  327 +|-----|-----|-----|-----|-----|
  328 +|fun|string|-|是|事件类型|
  329 +|dataTag|string|-|否|数据包标识,不需要时可传空字符串|
  330 +|data|object|-|是|传送参数的对象|
  331 +|+baseModel|int||否|基站的型号码|
  332 +|+version|string||否|基站固件版本|
  333 +|+baseSN|string||否|基站SN|
  334 +
  335 +- **示例代码**
  336 +```Json
  337 +//连接成功
  338 +{
  339 + "fun":"fevtBsOnlineState",
  340 + "dataTag":"1",
  341 + "data":{
  342 + "baseModel":218,
  343 + "version":"1.0.3",
  344 + "baseSN":"2024041401"
  345 + }
  346 +}
  347 +```
  348 +
  349 +### 识别设置
  350 +#### 方法
  351 +##### setBsSN
  352 +- **主题**:<sapn class="yellowFill">/manage/\${baseSN}/send</span>
  353 +- **功能描述**:设置基站的SN,<font color="red">需订阅新SN的主题,以获取事件返回</font>
  354 +- **参数说明**
  355 +
  356 +|参数名|类型|限制|是否必填|说明|
  357 +|---|---|---|---|---|
  358 +|fun|string|-|是|指令名称|
  359 +|dataTag|string|-|否|数据包标识|
  360 +|data|object|-|是|传送参数的对象|
  361 +|+value|string|数字|是|设置的基站SN,长度为10位数字|
  362 +|+time|string|数字|是|时间,yyyyMMddHHmmss|
  363 +|+crc|string||是|内部主题校验码,时间+固定key加密|
  364 +
  365 +- **示例代码**
  366 +```Json
  367 +{
  368 + "fun":"setBsSN",
  369 + "dataTag":"1",
  370 + "data":{
  371 + "value":"2024041201"
  372 + }
  373 +}
  374 +```
  375 +##### getBsModel
  376 +- **主题**:/client/\${baseSN}/send
  377 +- **功能描述**:获取基站型号
  378 +- **参数说明**
  379 +
  380 +|参数名|类型|限制|是否必填|说明|
  381 +|---|---|---|---|---|
  382 +|fun|string|-|是|指令名称|
  383 +|dataTag|string|-|否|数据包标识,可为空字符串|
  384 +
  385 +- **示例代码**
  386 +```Json
  387 +{
  388 + "fun":"getBsModel",
  389 + "dataTag":"1"
  390 +}
  391 +```
  392 +##### getBsFWVersion
  393 +- **主题**:/client/\${baseSN}/send
  394 +- **功能描述**:获取基站固件版本
  395 +- **参数说明**
  396 +
  397 +|参数名|类型|限制|是否必填|说明|
  398 +|---|---|---|---|---|
  399 +|fun|string|-|是|指令名称|
  400 +|dataTag|string|-|否|数据包标识,可为空字符串|
  401 +
  402 +- **示例代码**
  403 +```Json
  404 +{
  405 + "fun":"getBsFWVersion",
  406 + "dataTag":"1"
  407 +}
  408 +```
  409 +##### getBsBIC
  410 +- **主题**:/client/\${baseSN}/send
  411 +- **功能描述**:获取基站品牌识别码
  412 +- **参数说明**
  413 +
  414 +|参数名|类型|限制|是否必填|说明|
  415 +|---|---|---|---|---|
  416 +|fun|string|-|是|指令名称|
  417 +|dataTag|string|-|否|数据包标识,可为空字符串|
  418 +
  419 +- **示例代码**
  420 +```Json
  421 +{
  422 + "fun":"getBsBIC",
  423 + "dataTag":"1"
  424 +}
  425 +```
  426 +##### setBsBIC
  427 +- **主题**:<sapn class="yellowFill">/manage/\${baseSN}/send</span>
  428 +- **功能描述**:设置基站品牌识别码
  429 +- **参数说明**
  430 +
  431 +|参数名|类型|限制|是否必填|说明|
  432 +|---|---|---|---|---|
  433 +|fun|string|-|是|指令名称|
  434 +|dataTag|string|-|否|数据包标识,可为空字符串|
  435 +|data|object|-|是|传送参数的对象|
  436 +|+value|string||是|设置的基站品牌码|
  437 +|+time|string|数字|是|时间,yyyyMMddHHmmss|
  438 +|+crc|string||是|内部主题校验码,时间+固定key加密|
  439 +
  440 +- **示例代码**
  441 +```Json
  442 +{
  443 + "fun":"getBsBIC",
  444 + "dataTag":"1",
  445 + "data":{
  446 + "value":"sunvote"
  447 + }
  448 +}
  449 +```
  450 +#### 事件
  451 +##### fEvtBsSN
  452 +- **主题**: /basestation/\${baseSN}/recive
  453 +- **功能描述**:返回基站的出厂编码
  454 +- **参数说明**
  455 +
  456 +|参数名|类型|限制|非空|说明|
  457 +|---|---|---|---|---|
  458 +|fun|string|-|是|事件名称|
  459 +|dataTag|string|-|否|数据包标识|
  460 +|data|object|-|是|传送参数的对象|
  461 +|+value|string|-|是|基站的出厂编码|
  462 +
  463 +- **示例代码**
  464 +```Json
  465 +{
  466 + "fun":"fEvtBsSN",
  467 + "dataTag":"1",
  468 + "data":{
  469 + "value":"2024041201"
  470 + }
  471 +}
  472 +```
  473 +##### fEvtBsModel
  474 +- **主题**: /basestation/\${baseSN}/recive
  475 +- **功能描述**:返回基站的型号
  476 +- **参数说明**
  477 +
  478 +|参数名|类型|限制|是否必填|说明|
  479 +|---|---|---|---|---|
  480 +|fun|string|-|是|事件名称|
  481 +|dataTag|string|-|否|数据包标识|
  482 +|data|object|-|是|传送参数的对象|
  483 +|+value|string|-|是|基站的型号码|
  484 +
  485 +- **示例代码**
  486 +```Json
  487 +{
  488 + "fun":"fEvtBsModel",
  489 + "dataTag":"1",
  490 + "data":{
  491 + "value":"218"
  492 + }
  493 +}
  494 +```
  495 +##### fEvtBsFWVersion
  496 +- **主题**: /basestation/\${baseSN}/recive
  497 +- **功能描述**:返回基站的固件版本
  498 +- **参数说明**
  499 +
  500 +|参数名|类型|限制|是否必填|说明|
  501 +|---|---|---|---|---|
  502 +|fun|string|-|是|事件名称|
  503 +|dataTag|string|-|否|数据包标识|
  504 +|data|object|-|是|传送参数的对象|
  505 +|+value|string||是|基站的固件版本号|
  506 +
  507 +- **示例代码**
  508 +```Json
  509 +{
  510 + "fun":"fEvtBsFWVersion",
  511 + "dataTag":"1",
  512 + "data":{
  513 + "value":"1.0.3"
  514 + }
  515 +}
  516 +```
  517 +##### fEvtBsBIC
  518 +- **主题**: /basestation/\${baseSN}/recive
  519 +- **功能描述**:返回基站的品牌码
  520 +- **参数说明**
  521 +
  522 +|参数名|类型|限制|是否必填|说明|
  523 +|---|---|---|---|---|
  524 +|fun|string|-|是|事件名称|
  525 +|dataTag|string|-|否|数据包标识|
  526 +|data|object|-|是|传送参数的对象|
  527 +|+value|string||是|基站的品牌码|
  528 +
  529 +- **示例代码**
  530 +```Json
  531 +{
  532 + "fun":"fEvtBsBIC",
  533 + "dataTag":"1",
  534 + "data":{
  535 + "value":"sunvote"
  536 + }
  537 +}
  538 +```
  539 +### 组网设置
  540 +#### 方法
  541 +##### getBsNetworkMode
  542 +- **主题**:/client/\${baseSN}/send
  543 +- **功能描述**:获取基站组网模式
  544 +- **参数说明**
  545 +
  546 +|参数名|类型|限制|是否必填|说明|
  547 +|---|---|---|---|---|
  548 +|fun|string|-|是|指令名称|
  549 +|dataTag|string|-|否|数据包标识,可为空字符串|
  550 +
  551 +- **示例代码**
  552 +```Json
  553 +{
  554 + "fun":"getBsNetworkMode",
  555 + "dataTag":"1"
  556 +}
  557 +```
  558 +##### setBsNetworkMode
  559 +- **主题**:/client/\${baseSN}/send
  560 +- **功能描述**:设置基站组网模式
  561 +- **参数说明**
  562 +
  563 +|参数名|类型|限制|是否必填|说明|
  564 +|---|---|---|---|---|
  565 +|fun|string|-|是|指令名称|
  566 +|dataTag|string|-|否|数据包标识,可为空字符串|
  567 +|data|object|-|是|传送参数的对象|
  568 +|+value|string|-|是|设置的基站组网模式<br>1-配对模式<br>2-白名单模式|
  569 +
  570 +- **示例代码**
  571 +```Json
  572 +{
  573 + "fun":"setBsNetworkMode",
  574 + "dataTag":"1",
  575 + "data":{
  576 + "value":"1"
  577 + }
  578 +}
  579 +```
  580 +##### getBsPairCode
  581 +- **主题**:/client/\${baseSN}/send
  582 +- **功能描述**:获取基站配对码
  583 +- **参数说明**
  584 +
  585 +|参数名|类型|限制|是否必填|说明|
  586 +|---|---|---|---|---|
  587 +|fun|string|-|是|指令名称|
  588 +|dataTag|string|-|否|数据包标识,可为空字符串|
  589 +
  590 +- **示例代码**
  591 +```Json
  592 +{
  593 + "fun":"getBsPairCode",
  594 + "dataTag":"1"
  595 +}
  596 +```
  597 +##### setBsPairCode
  598 +- **主题**:<sapn class="yellowFill">/manage/\${baseSN}/send</span>
  599 +- **功能描述**:设置基站配对码
  600 +- **参数说明**
  601 +
  602 +|参数名|类型|限制|是否必填|说明|
  603 +|---|---|---|---|---|
  604 +|fun|string|-|是|指令名称|
  605 +|dataTag|string|-|否|数据包标识,可为空字符串|
  606 +|data|object|-|否|传送参数的对象|
  607 +|+value|string|-|否|设置的基站配对码,6位数字|
  608 +|+time|string|数字|是|时间,yyyyMMddHHmmss|
  609 +|+crc|string||是|内部主题校验码,时间+固定key加密|
  610 +
  611 +- **示例代码**
  612 +```Json
  613 +{
  614 + "fun":"setBsPairCode",
  615 + "dataTag":"1",
  616 + "data":{
  617 + "value":"041201"
  618 + }
  619 +}
  620 +```
  621 +##### getBsNfcLogin
  622 +- **主题**:/client/\${baseSN}/send
  623 +- **功能描述**:获取刷卡配对状态
  624 +- **参数说明**
  625 +
  626 +|参数名|类型|限制|是否必填|说明|
  627 +|---|---|---|---|---|
  628 +|fun|string|-|是|指令名称|
  629 +|dataTag|string|-|否|数据包标识,可为空字符串|
  630 +
  631 +- **示例代码**
  632 +```Json
  633 +{
  634 + "fun":"getBsNfcLogin",
  635 + "dataTag":"1"
  636 +}
  637 +```
  638 +##### setBsNfcLogin
  639 +- **主题**:/client/\${baseSN}/send
  640 +- **功能描述**:设置基站刷卡配对状态
  641 +- **参数说明**
  642 +
  643 +|参数名|类型|限制|是否必填|说明|
  644 +|---|---|---|---|---|
  645 +|fun|string|-|是|指令名称|
  646 +|dataTag|string|-|否|数据包标识,可为空字符串|
  647 +|data|object|-|是|传送参数的对象|
  648 +|+value|string|-|是|设置的基站刷卡配对状态<br>0-关闭刷卡配对<br>1-开启刷卡配对|
  649 +
  650 +- **示例代码**
  651 +```Json
  652 +{
  653 + "fun":"setBsPairCode",
  654 + "dataTag":"1",
  655 + "data":{
  656 + "value":"1"
  657 + }
  658 +}
  659 +```
  660 +##### getBsChannel
  661 +- **主题**:/client/\${baseSN}/send
  662 +- **功能描述**:获取基站信道
  663 +- **参数说明**
  664 +
  665 +|参数名|类型|限制|是否必填|说明|
  666 +|---|---|---|---|---|
  667 +|fun|string|-|是|指令名称|
  668 +|dataTag|string|-|否|数据包标识,可为空字符串|
  669 +
  670 +- **示例代码**
  671 +```Json
  672 +{
  673 + "fun":"getBsChannel",
  674 + "dataTag":"1"
  675 +}
  676 +```
  677 +##### setBsChannel
  678 +- **主题**:/client/\${baseSN}/send
  679 +- **功能描述**:设置基站信道
  680 +- **参数说明**
  681 +
  682 +|参数名|类型|限制|是否必填|说明|
  683 +|---|---|---|---|---|
  684 +|fun|string|-|是|指令名称|
  685 +|dataTag|string|-|否|数据包标识,可为空字符串|
  686 +|data|object|-|是|传送参数的对象|
  687 +|+value|string|-|是|设置的基站信道,可设范围:1-80|
  688 +
  689 +- **示例代码**
  690 +```Json
  691 +{
  692 + "fun":"setBsChannel",
  693 + "dataTag":"1",
  694 + "data":{
  695 + "value":"23"
  696 + }
  697 +}
  698 +```
  699 +#### 事件
  700 +##### fEvtBsNetworkMode
  701 +- **主题**: /basestation/\${baseSN}/recive
  702 +- **功能描述**:返回基站组网模式
  703 +- **参数说明**
  704 +
  705 +|参数名|类型|限制|非空|说明|
  706 +|---|---|---|---|---|
  707 +|fun|string|-|是|事件名称|
  708 +|dataTag|string|-|否|数据包标识,可传空字符串|
  709 +|data|object|-|是|传送参数的对象|
  710 +|+value|string||是|基站的组网模式<br>1-配对模式<br>2-白名单模式|
  711 +
  712 +- **示例代码**
  713 +```Json
  714 +{
  715 + "fun":"fEvtBsNetworkMode",
  716 + "dataTag":"1",
  717 + "data":{
  718 + "value":"1"
  719 + }
  720 +}
  721 +```
  722 +##### fEvtBsPairCode
  723 +- **主题**: /basestation/\${baseSN}/recive
  724 +- **功能描述**:返回基站配对码
  725 +- **参数说明**
  726 +
  727 +|参数名|类型|限制|非空|说明|
  728 +|---|---|---|---|---|
  729 +|fun|string|-|是|事件名称|
  730 +|dataTag|string|-|否|数据包标识,可传空字符串|
  731 +|data|object|-|是|传送参数的对象|
  732 +|+value|string||是|基站的组网模式<br>1-配对模式<br>2-白名单模式|
  733 +
  734 +- **示例代码**
  735 +```Json
  736 +{
  737 + "fun":"fEvtBsNetworkMode",
  738 + "dataTag":"1",
  739 + "data":{
  740 + "value":"1"
  741 + }
  742 +}
  743 +```
  744 +
  745 +##### fEvtBsChannel
  746 +- **主题**: /basestation/\${baseSN}/recive
  747 +- **功能描述**:返回基站信道
  748 +- **参数说明**
  749 +
  750 +|参数名|类型|限制|非空|说明|
  751 +|---|---|---|---|---|
  752 +|fun|string|-|是|事件名称|
  753 +|dataTag|string|-|否|数据包标识,可传空字符串|
  754 +|data|object|-|是|传送参数的对象|
  755 +|+value|string||是|基站信道|
  756 +
  757 +- **示例代码**
  758 +```Json
  759 +{
  760 + "fun":"fEvtBsChannel",
  761 + "dataTag":"1",
  762 + "data":{
  763 + "value":"5"
  764 + }
  765 +}
  766 +```
  767 +### 登录设置
  768 +#### 方法
  769 +##### getBsSSID
  770 +获取基站登录名称
  771 +- **主题**:/client/\${baseSN}/send
  772 +- **功能描述**:获取基站登录名称
  773 +- **参数说明**
  774 +
  775 +|参数名|类型|限制|是否必填|说明|
  776 +|---|---|---|---|---|
  777 +|fun|string|-|是|固定指令名称|
  778 +|dataTag|string|-|否|数据包标识|
  779 +
  780 +- **示例代码**
  781 +```Json
  782 +{
  783 + "fun":"getBsSSID",
  784 + "dataTag":"1"
  785 +}
  786 +```
  787 +##### setBsSSID
  788 +- **主题**:/client/\${baseSN}/send
  789 +- **功能描述**:设置基站登录名称
  790 +- **参数说明**
  791 +
  792 +|参数名|类型|限制|是否必填|说明|
  793 +|---|---|---|---|---|
  794 +|fun|string|-|是|指令名称|
  795 +|dataTag|string|-|否|数据包标识,可为空字符串|
  796 +|data|object|-|是|传送参数的对象|
  797 +|+value|string||是|设置的基站SSID,最长12字符|
  798 +
  799 +- **示例代码**
  800 +```Json
  801 +{
  802 + "fun":"setBsSSID",
  803 + "dataTag":"1",
  804 + "data":{
  805 + "value":"1901班"
  806 + }
  807 +}
  808 +```
  809 +#### 事件
  810 +##### fEvtBsSSID
  811 +- **主题**: /basestation/\${baseSN}/recive
  812 +- **功能描述**:返回基站名称
  813 +- **参数说明**
  814 +
  815 +|参数名|类型|限制|非空|说明|
  816 +|---|---|---|---|---|
  817 +|fun|string|-|是|事件名称|
  818 +|dataTag|string|-|否|数据包标识,可传空字符串|
  819 +|data|object|-|是|传送参数的对象|
  820 +|+value|string||是|基站名称|
  821 +
  822 +- **示例代码**
  823 +```Json
  824 +{
  825 + "fun":"fEvtBsSSID",
  826 + "dataTag":"1",
  827 + "data":{
  828 + "value":"1901班"
  829 + }
  830 +}
  831 +```
  832 +### 键盘统一设置
  833 +#### 方法
  834 +##### getBsKpLanguage
  835 +- **主题**:/client/\${baseSN}/send
  836 +- **功能描述**:获取键盘语言
  837 +- **参数说明**
  838 +
  839 +|参数名|类型|限制|是否必填|说明|
  840 +|---|---|---|---|---|
  841 +|fun|string|-|是|指令名称|
  842 +|dataTag|string|-|否|数据包标识,可为空字符串|
  843 +
  844 +- **示例代码**
  845 +```Json
  846 +{
  847 + "fun":"getBsKpLanguage",
  848 + "dataTag":"1"
  849 +}
  850 +```
  851 +##### setBsKpLanguage
  852 +- **主题**:/client/\${baseSN}/send
  853 +- **功能描述**:设置键盘语言
  854 +- **参数说明**
  855 +
  856 +|参数名|类型|限制|是否必填|说明|
  857 +|---|---|---|---|---|
  858 +|fun|string|-|是|指令名称|
  859 +|dataTag|string|-|否|数据包标识,可为空字符串|
  860 +|data|object|-|是|传送参数的对象|
  861 +|+value|string||是|设置键盘显示的语言<br>1-简体中文<br>2-英文|
  862 +
  863 +- **示例代码**
  864 +```Json
  865 +{
  866 + "fun":"setBsKpLanguage",
  867 + "dataTag":"1",
  868 + "data":{
  869 + "value":"1"
  870 + }
  871 +}
  872 +```
  873 +##### getBsKpStbMsgMode
  874 +- **主题**:/client/\${baseSN}/send
  875 +- **功能描述**:获取状态语设置状态
  876 +- **参数说明**
  877 +
  878 +|参数名|类型|限制|是否必填|说明|
  879 +|---|---|---|---|---|
  880 +|fun|string|-|是|指令名称|
  881 +|dataTag|string|-|否|数据包标识,可为空字符串|
  882 +
  883 +- **示例代码**
  884 +```Json
  885 +{
  886 + "fun":"getBsKpStbMsgMode",
  887 + "dataTag":"1"
  888 +}
  889 +```
  890 +##### setBsKpStbMsgMode
  891 +- **主题**:/client/\${baseSN}/send
  892 +- **功能描述**:设置状态语工作状态
  893 +- **参数说明**
  894 +
  895 +|参数名|类型|限制|是否必填|说明|
  896 +|---|---|---|---|---|
  897 +|fun|string|-|是|指令名称|
  898 +|dataTag|string|-|否|数据包标识,可为空字符串|
  899 +|data|object|-|是|传送参数的对象|
  900 +|+value|string||是|设置状态语工作状态<br>0-系统默认<br>1-用户内置|
  901 +
  902 +- **示例代码**
  903 +```Json
  904 +{
  905 + "fun":"setBsKpStbMsgMode",
  906 + "dataTag":"1",
  907 + "data":{
  908 + "value":"0"
  909 + }
  910 +}
  911 +```
  912 +##### getBsTcpipParams
  913 +- **主题**:/client/\${baseSN}/send
  914 +- **功能描述**:获取基站TCP/IP参数
  915 +- **参数说明**
  916 +
  917 +|参数名|类型|限制|是否必填|说明|
  918 +|---|---|---|---|---|
  919 +|fun|string|-|是|指令名称|
  920 +|dataTag|string|-|否|数据包标识,可为空字符串|
  921 +
  922 +- **示例代码**
  923 +```Json
  924 +{
  925 + "fun":"getBsTcpipParams",
  926 + "dataTag":"1"
  927 +}
  928 +```
  929 +##### setBsTcpipParams
  930 +- **主题**:/client/\${baseSN}/send
  931 +- **功能描述**:设置基站TCP/IP参数
  932 +- **参数说明**
  933 +
  934 +|参数名|类型|限制|是否必填|说明|
  935 +|---|---|---|---|---|
  936 +|fun|string|-|是|指令名称|
  937 +|dataTag|string|-|否|数据包标识,可为空字符串|
  938 +|data|object|-|是|传送参数的对象|
  939 +|+ip|string||否|IP地址|
  940 +|+mask|string||否|子网掩码|
  941 +|+gateway|string||否|网关地址|
  942 +
  943 +- **示例代码**
  944 +```Json
  945 +{
  946 + "fun":"setBsKpStbMsgMode",
  947 + "dataTag":"1",
  948 + "data":{
  949 + "ip":"192.168.0.10",
  950 + "mask":"255.255.255.0",
  951 + "gateway":"192.168.0.1"
  952 + }
  953 +}
  954 +```
  955 +##### getBsMqttParams
  956 +- **主题**:/client/\${baseSN}/send
  957 +- **功能描述**:获取基站MQTT参数
  958 +- **参数说明**
  959 +
  960 +|参数名|类型|限制|是否必填|说明|
  961 +|---|---|---|---|---|
  962 +|fun|string|-|是|指令名称|
  963 +|dataTag|string|-|否|数据包标识,可为空字符串|
  964 +
  965 +- **示例代码**
  966 +```Json
  967 +{
  968 + "fun":"getBsMqttParams",
  969 + "dataTag":"1"
  970 +}
  971 +```
  972 +##### setBsMqttParams
  973 +- **主题**:/client/\${baseSN}/send
  974 +- **功能描述**:设置基站MQTT参数
  975 +- **参数说明**
  976 +
  977 +|参数名|类型|限制|是否必填|说明|
  978 +|---|---|---|---|---|
  979 +|fun|string|-|是|指令名称|
  980 +|dataTag|string|-|否|数据包标识,可为空字符串|
  981 +|data|object|-|是|传送参数的对象|
  982 +|+server|string||是|服务器IP地址|
  983 +|+port|int||是|端口,默认1883|
  984 +|+userName|string||否|连接服务器的用户名,可不设置|
  985 +|+password|string||否|连接服务器的密码,可不设置|
  986 +|+ipAllocation|int||否|基站IP获取方式<br>0 - 手动指定<br>1 - DHCP获取|
  987 +
  988 +- **示例代码**
  989 +```Json
  990 +{
  991 + "fun":"setBsKpStbMsgMode",
  992 + "dataTag":"1",
  993 + "baseSN": "2024041201",
  994 + "data":{
  995 + "server":"192.168.10.10",
  996 + "port":1883,
  997 + "userName":"",
  998 + "password":"",
  999 + "ipAllocation":1
  1000 + }
  1001 +}
  1002 +```
  1003 +#### 事件
  1004 +##### fEvtBsKpLanguage
  1005 +- **主题**: /basestation/\${baseSN}/recive
  1006 +- **功能描述**:返回键盘语言
  1007 +- **参数说明**
  1008 +
  1009 +|参数名|类型|限制|非空|说明|
  1010 +|---|---|---|---|---|
  1011 +|fun|string|-|是|指令名称|
  1012 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1013 +|data|object|-|是|传送参数的对象|
  1014 +|+value|string||是|设置键盘显示的语言<br>1-简体中文<br>2-英文|
  1015 +
  1016 +- **示例代码**
  1017 +```Json
  1018 +{
  1019 + "fun":"fEvtBsKpLanguage",
  1020 + "dataTag":"1",
  1021 + "data":{
  1022 + "value":"1"
  1023 + }
  1024 +}
  1025 +```
  1026 +##### fEvtBsKpStbMsgMode
  1027 +- **主题**: /basestation/\${baseSN}/recive
  1028 +- **功能描述**:返回状态语工作状态
  1029 +- **参数说明**
  1030 +
  1031 +|参数名|类型|限制|非空|说明|
  1032 +|---|---|---|---|---|
  1033 +|fun|string|-|是|指令名称|
  1034 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1035 +|data|object|-|是|传送参数的对象|
  1036 +|+value|string||是|返回状态语工作状态<br>0-系统默认<br>1-用户内置|
  1037 +
  1038 +- **示例代码**
  1039 +```Json
  1040 +{
  1041 + "fun":"fEvtBsKpStbMsgMode",
  1042 + "dataTag":"1",
  1043 + "data":{
  1044 + "value":"0"
  1045 + }
  1046 +}
  1047 +```
  1048 +
  1049 +##### fEvtBsTcpipParams
  1050 +- **主题**: /basestation/\${baseSN}/recive
  1051 +- **功能描述**:返回基站TCP/IP参数
  1052 +- **参数说明**
  1053 +
  1054 +|参数名|类型|限制|非空|说明|
  1055 +|---|---|---|---|---|
  1056 +|fun|string|-|是|指令名称|
  1057 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1058 +|data|object|-|是|传送参数的对象|
  1059 +|+mac|string||是|MAC地址|
  1060 +|+ip|string||是|IP地址|
  1061 +|+mask|string||是|子网掩码|
  1062 +|+gateway|string||是|网关地址|
  1063 +
  1064 +- **示例代码**
  1065 +```Json
  1066 +{
  1067 + "fun":"fEvtBsTcpipParams",
  1068 + "dataTag":"1",
  1069 + "data":{
  1070 + "mac":"FF:FF:FF:FF:FF:FF",
  1071 + "ip":"192.168.0.10",
  1072 + "mask":"255.255.255.0",
  1073 + "gateway":"192.168.0.1"
  1074 + }
  1075 +}
  1076 +```
  1077 +##### fEvtBsMqttParams
  1078 +- **主题**: /basestation/\${baseSN}/recive
  1079 +- **功能描述**:返回基站MQTT参数
  1080 +- **参数说明**
  1081 +
  1082 +|参数名|类型|限制|非空|说明|
  1083 +|---|---|---|---|---|
  1084 +|fun|string|-|是|指令名称|
  1085 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1086 +|data|object|-|是|传送参数的对象|
  1087 +|+server|string||是|服务器地址,IP|
  1088 +|+port|int||是|端口,默认1883|
  1089 +|+userName|string||否|连接服务器的用户名,可不设置|
  1090 +|+password|string||否|连接服务器的密码,可不设置|
  1091 +|+ipAllocation|int||是|基站IP获取方式<br>0 - 手动指定<br>1 - DHCP获取|
  1092 +
  1093 +- **示例代码**
  1094 +```Json
  1095 +{
  1096 + "fun":"fEvtBsMqttParams",
  1097 + "dataTag":"1",
  1098 + "data":{
  1099 + "server":"192.168.10.10",
  1100 + "port":1883,
  1101 + "userName":"",
  1102 + "password":"",
  1103 + "ipAllocation":1
  1104 + }
  1105 +}
  1106 +```
  1107 +### 基站升级
  1108 +#### 方法
  1109 +##### startBsUpdate
  1110 +- **主题**:<sapn class="yellowFill">/manage/\${baseSN}/send</span>
  1111 +- **功能描述**:基站升级
  1112 +- **参数说明**
  1113 +
  1114 +|参数名|类型|限制|是否必填|说明|
  1115 +|---|---|---|---|---|
  1116 +|fun|string|-|是|指令名称|
  1117 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1118 +|data|object|-|是|传送参数的对象|
  1119 +|+url|string||是|待升级的固件地址,可访问的网络url|
  1120 +|+version|string||是|待升级的基站版本|
  1121 +|+time|string|数字|是|时间,yyyyMMddHHmmss|
  1122 +|+crc|string||是|内部主题校验码,时间+固定key加密|
  1123 +
  1124 +- **示例代码**
  1125 +```Json
  1126 +{
  1127 + "fun":"startBsUpdate",
  1128 + "dataTag":"1",
  1129 + "data":{
  1130 + "url":"http://192.168.10.10/V1.0.3.bin",
  1131 + "version":"1.0.3",
  1132 + "crc":""
  1133 + }
  1134 +}
  1135 +```
  1136 +#### 事件
  1137 +##### fEvtStartBsUpate
  1138 +- **主题**: <sapn class="yellowFill">/manage/\${baseSN}/recive</span>
  1139 +- **功能描述**:返回基站启动升级状态
  1140 +- **参数说明**
  1141 +
  1142 +|参数名|类型|限制|非空|说明|
  1143 +|---|---|---|---|---|
  1144 +|fun|string|-|是|指令名称|
  1145 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1146 +|data|object|-|是|传送参数的对象|
  1147 +|+state|int||是|启动升级状态<br>0 - 成功<br>1 - 失败
  1148 +|+msg|string||否|返回的失败原因
  1149 +
  1150 +- **示例代码**
  1151 +```Json
  1152 +{
  1153 + "fun":"fEvtStartBsUpate",
  1154 + "dataTag":"1",
  1155 + "data":{
  1156 + "state":1,
  1157 + "msg":"error msg"
  1158 + }
  1159 +}
  1160 +```
  1161 +
  1162 +##### fEvtBsUpdateProgress
  1163 +- **主题**: <sapn class="yellowFill">/manage/\${baseSN}/recive</span>
  1164 +- **功能描述**:返回基站升级进度
  1165 +- **参数说明**
  1166 +
  1167 +|参数名|类型|限制|非空|说明|
  1168 +|---|---|---|---|---|
  1169 +|fun|string|-|是|指令名称|
  1170 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1171 +|data|object|-|是|传送参数的对象|
  1172 +|+progress|int||是|升级进度,百分比|
  1173 +|+status|int||是|升级状态<br>0 - 未开始<br>1 - 升级中<br>2 - 升级完成|
  1174 +
  1175 +- **示例代码**
  1176 +```Json
  1177 +{
  1178 + "fun":"fEvtBsUpdateProgress",
  1179 + "dataTag":"1",
  1180 + "data":{
  1181 + "progress":20,
  1182 + "status":1
  1183 + }
  1184 +}
  1185 +```
  1186 +## 键盘管理
  1187 +### 识别设置
  1188 +#### 方法
  1189 +##### getKpIdentityMode
  1190 +- **主题**:/client/\${baseSN}/send
  1191 +- **功能描述**:获取键盘识别模式
  1192 +- **参数说明**
  1193 +
  1194 +|参数名|类型|限制|是否必填|说明|
  1195 +|---|---|---|---|---|
  1196 +|fun|string|-|是|指令名称|
  1197 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1198 +
  1199 +- **示例代码**
  1200 +```Json
  1201 +{
  1202 + "fun":"getKpIdentityMode",
  1203 + "dataTag":"1"
  1204 +}
  1205 +```
  1206 +
  1207 +##### setKpIdentityMode
  1208 +- **主题**:<sapn class="yellowFill">/manage/\${baseSN}/send</span>
  1209 +- **功能描述**:设置键盘识别模式
  1210 +- **参数说明**
  1211 +
  1212 +|参数名|类型|限制|是否必填|说明|
  1213 +|---|---|---|---|---|
  1214 +|fun|string|-|是|指令名称|
  1215 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1216 +|data|object|-|是|传送参数的对象|
  1217 +|+value|string||是|设置键盘识别模式<br>0 - SN模式<br>1 - ID+SN模式|
  1218 +|+time|string|数字|是|时间,yyyyMMddHHmmss|
  1219 +|+crc|string||是|内部主题校验码,时间+固定key加密|
  1220 +
  1221 +- **示例代码**
  1222 +```Json
  1223 +{
  1224 + "fun":"setKpIdentityMode",
  1225 + "dataTag":"1",
  1226 + "data":{
  1227 + "value":"0"
  1228 + }
  1229 +}
  1230 +```
  1231 +#### 事件
  1232 +##### fEvtKpIdentityMode
  1233 +- **主题**:/basestation/\${baseSN}/recive
  1234 +- **功能描述**:设置键盘识别模式
  1235 +- **参数说明**
  1236 +
  1237 +|参数名|类型|限制|非空|说明|
  1238 +|---|---|---|---|---|
  1239 +|fun|string|-|是|指令名称|
  1240 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1241 +|data|object|-|是|传送参数的对象|
  1242 +|+value|string||是|设置键盘识别模式<br>0 - SN模式<br>1 - ID+SN模式|
  1243 +
  1244 +- **示例代码**
  1245 +```Json
  1246 +{
  1247 + "fun":"fEvtKpIdentityMode",
  1248 + "dataTag":"1",
  1249 + "data":{
  1250 + "value":"0"
  1251 + }
  1252 +}
  1253 +```
  1254 +### 交互设置
  1255 +#### 方法
  1256 +##### setKpUserStbMsg
  1257 +- **主题**:/client/\${baseSN}/send
  1258 +- **功能描述**:设置用户内置状态语
  1259 +- **参数说明**
  1260 +
  1261 +|参数名|类型|限制|是否必填|说明|
  1262 +|---|---|---|---|---|
  1263 +|fun|string|-|是|指令名称|
  1264 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1265 +|data|object|-|是|传送参数的对象|
  1266 +|+online|string||是|在线状态显示的待机语|
  1267 +|+offline|string||是|离线状态显示的待机语|
  1268 +|+submitting|string||是|提交中状态语|
  1269 +|+submitted|string||是|已提交状态语|
  1270 +
  1271 +- **示例代码**
  1272 +```Json
  1273 +{
  1274 + "fun":"setKpUserStbMsg",
  1275 + "dataTag":"1",
  1276 + "data":{
  1277 + "online":"请认真听讲",
  1278 + "offline":"离线",
  1279 + "submitting":"提交中",
  1280 + "submitted":"提交成功"
  1281 + }
  1282 +}
  1283 +```
  1284 +##### rtSetKpUserPrompt
  1285 +- **主题**:/client/\${baseSN}/send
  1286 +- **功能描述**:实时设置提示反馈信息
  1287 +- **参数说明**
  1288 +
  1289 +|参数名|类型|限制|是否必填|说明|
  1290 +|---|---|---|---|---|
  1291 +|fun|string|-|是|指令名称|
  1292 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1293 +|data|array|-|否|传送参数的对象数组|
  1294 +|++keySN|string||否|需要设置绑定信息的键盘SN,<br>可设置多个SN,用英文字符","分隔|
  1295 +|++info|string||否|设置的反馈信息,<br>不同键盘可设置不同反馈信息|
  1296 +```json
  1297 +{
  1298 + "fun": "rtSetKpBindingInfo",
  1299 + "dataTag":"1",
  1300 + "data": [
  1301 + {
  1302 + "keySn": "1479824643,1479824645",
  1303 + "info": "答对了"
  1304 + },
  1305 + {
  1306 + "keySn": "1479824644",
  1307 + "info": "答错了"
  1308 + }
  1309 + ]
  1310 +}
  1311 +```
  1312 +#### 事件
  1313 +##### fEvtKpUserStbMsg
  1314 +- **主题**:/basestation/\${baseSN}/recive
  1315 +- **功能描述**:返回设置状态语的状态
  1316 +- **参数说明**
  1317 +
  1318 +|参数名|类型|限制|非空|说明|
  1319 +|---|---|---|---|---|
  1320 +|fun|string|-|是|指令名称|
  1321 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1322 +|data|object|-|否|传送参数的对象|
  1323 +|+state|string||是|设置状态语是否成功<br> 0 - 成功<br> 1 - 失败|
  1324 +
  1325 +- **示例代码**
  1326 +```Json
  1327 +{
  1328 + "fun":"fEvtKpUserStbMsg",
  1329 + "dataTag":"1",
  1330 + "data":{
  1331 + "state":"1"
  1332 + }
  1333 +}
  1334 +```
  1335 +##### fEvtSetKpUserPrompt
  1336 +- **主题**:/basestation/\${baseSN}/recive
  1337 +- **功能描述**:返回实时设置提示语是否成功
  1338 +- **参数说明**
  1339 +
  1340 +|参数名|类型|限制|非空|说明|
  1341 +|---|---|---|---|---|
  1342 +|fun|string|-|是|指令名称|
  1343 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1344 +|data|array|-|是|传送参数的对象数组|
  1345 +|++keySN|string||是|设置提示语信息的键盘SN|
  1346 +|++state|string||是|设置的提示语是否成功<br>0 - 成功<br>1 - 失败|
  1347 +```json
  1348 +{
  1349 + "fun": "fEvtSetKpUserPrompt",
  1350 + "dataTag":"1",
  1351 + "data": [
  1352 + {
  1353 + "keySn": "1479824643",
  1354 + "state": "0"
  1355 + },
  1356 + {
  1357 + "keySn": "1479824645",
  1358 + "state": "0"
  1359 + },
  1360 + {
  1361 + "keySn": "1479824644",
  1362 + "state": "1"
  1363 + }
  1364 + ]
  1365 +}
  1366 +```
  1367 +### 维护功能
  1368 +#### 方法
  1369 +##### remoteKpPowerOff
  1370 +- **主题**:/client/\${baseSN}/send
  1371 +- **功能描述**:遥控键盘关机
  1372 +- **参数说明**
  1373 +
  1374 +|参数名|类型|限制|是否必填|说明|
  1375 +|---|---|---|---|---|
  1376 +|fun|string|-|是|指令名称|
  1377 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1378 +|data|object|-|是|传送参数的对象数组|
  1379 +|+keySns|array||否|需要执行指令的键盘SN数组,<br>为空表示所有键盘|
  1380 +
  1381 +- **示例代码**
  1382 +```Json
  1383 +{
  1384 + "fun":"remoteKpPowerOff",
  1385 + "dataTag":"1",
  1386 + "data":{
  1387 + "keySns":["1479824644"]
  1388 + }
  1389 +}
  1390 +```
  1391 +##### remoteKpSleep
  1392 +- **主题**:/client/\${baseSN}/send
  1393 +- **功能描述**:遥控键盘休眠
  1394 +- **参数说明**
  1395 +
  1396 +|参数名|类型|限制|是否必填|说明|
  1397 +|---|---|---|---|---|
  1398 +|fun|string|-|是|指令名称|
  1399 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1400 +|data|object|-|是|传送参数的对象数组|
  1401 +|+keySns|array||否|需要执行指令的键盘SN数组,为空表示所有键盘|
  1402 +
  1403 +- **示例代码**
  1404 +```Json
  1405 +{
  1406 + "fun":"remoteKpSleep",
  1407 + "dataTag":"1",
  1408 + "data":{
  1409 + "keySns":["1479824644"]
  1410 + }
  1411 +}
  1412 +```
  1413 +##### startKpFWUpdate
  1414 +- **主题**:<sapn class="yellowFill">/manage/\${baseSN}/send</span>
  1415 +- **功能描述**:键盘升级
  1416 +- **参数说明**
  1417 +
  1418 +|参数名|类型|限制|是否必填|说明|
  1419 +|---|---|---|---|---|
  1420 +|fun|string|-|是|指令名称|
  1421 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1422 +|data|object|-|是|传送参数的对象|
  1423 +|+url|string||是|待升级的固件地址,可访问的网络url|
  1424 +|+version|string||是|待升级的键盘版本|
  1425 +|+time|string|数字|是|时间,yyyyMMddHHmmss|
  1426 +|+crc|string||是|内部主题校验码,时间+固定key加密|
  1427 +
  1428 +- **示例代码**
  1429 +```Json
  1430 +{
  1431 + "fun":"startKpFWUpdate",
  1432 + "dataTag":"1",
  1433 + "data":{
  1434 + "url":"http://192.168.10.10/V1.0.3.bin",
  1435 + "version":"1.0.3",
  1436 + "crc":""
  1437 + }
  1438 +}
  1439 +```
  1440 +#### 事件
  1441 +##### fEvtRemoteKpPowerOff
  1442 +- **主题**:/basestation/\${baseSN}/recive
  1443 +- **功能描述**:返回设置键盘关机是否成功
  1444 +- **参数说明**
  1445 +
  1446 +|参数名|类型|限制|非空|说明|
  1447 +|---|---|---|---|---|
  1448 +|fun|string|-|是|指令名称|
  1449 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1450 +|data|array|-|否|传送参数的对象数组|
  1451 +|++keySN|string||是|键盘SN|
  1452 +|++state|string||是|设置是否成功<br>0 - 成功<br>1 - 失败|
  1453 +```json
  1454 +{
  1455 + "fun": "fEvtRemoteKpPowerOff",
  1456 + "dataTag":"1",
  1457 + "data": [
  1458 + {
  1459 + "keySn": "1479824644",
  1460 + "state": "0"
  1461 + }
  1462 + ]
  1463 +}
  1464 +```
  1465 +##### fEvtRemoteKpSleep
  1466 +- **主题**:/basestation/\${baseSN}/recive
  1467 +- **功能描述**:返回实时设置键盘休眠是否成功
  1468 +- **参数说明**
  1469 +
  1470 +|参数名|类型|限制|非空|说明|
  1471 +|---|---|---|---|---|
  1472 +|fun|string|-|是|指令名称|
  1473 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1474 +|data|array|-|否|传送参数的对象数组|
  1475 +|++keySN|string||是|键盘SN|
  1476 +|++state|string||是|设置是否成功<br>0 - 成功<br>1 - 失败|
  1477 +```json
  1478 +{
  1479 + "fun": "fEvtRemoteKpPowerOff",
  1480 + "dataTag":"1",
  1481 + "data": [
  1482 + {
  1483 + "keySn": "1479824644",
  1484 + "state": "0"
  1485 + }
  1486 + ]
  1487 +}
  1488 +```
  1489 +##### fEvtStartKpFWUpdate
  1490 +- **主题**: <sapn class="yellowFill">/manage/\${baseSN}/recive</span>
  1491 +- **功能描述**:返回基站启动升级状态
  1492 +- **参数说明**
  1493 +
  1494 +|参数名|类型|限制|非空|说明|
  1495 +|---|---|---|---|---|
  1496 +|fun|string|-|是|指令名称|
  1497 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1498 +|data|object|-|是|传送参数的对象|
  1499 +|+state|int||是|启动升级状态<br>0 - 成功<br>1 - 失败
  1500 +|+msg|string||否|返回的失败原因
  1501 +
  1502 +- **示例代码**
  1503 +```Json
  1504 +{
  1505 + "fun":"fEvtStartKpFWUpdate",
  1506 + "dataTag":"1",
  1507 + "data":{
  1508 + "state":0,
  1509 + "msg":""
  1510 + }
  1511 +}
  1512 +```
  1513 +##### fEvtKpUpdateProgress
  1514 +- **主题**: <sapn class="yellowFill">/manage/\${baseSN}/recive</span>
  1515 +- **功能描述**:返回基站升级进度
  1516 +- **参数说明**
  1517 +
  1518 +|参数名|类型|限制|非空|说明|
  1519 +|---|---|---|---|---|
  1520 +|fun|string|-|是|指令名称|
  1521 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1522 +|data|object|-|是|传送参数的对象|
  1523 +|+progress|int||是|升级进度,百分比|
  1524 +|+status|int||是|升级状态<br>0 - 未开始<br>1 - 升级中<br>2 - 升级完成|
  1525 +
  1526 +- **示例代码**
  1527 +```Json
  1528 +{
  1529 + "fun":"fEvtKpUpdateProgress",
  1530 + "dataTag":"1",
  1531 + "data":{
  1532 + "progress":20,
  1533 + "status":1
  1534 + }
  1535 +}
  1536 +```
  1537 +## 绑定
  1538 +### 无线绑定
  1539 +#### 方法
  1540 +##### rtSetKpBindingInfo
  1541 +- **主题**:/client/\${baseSN}/send
  1542 +- **功能描述**:实时设置绑定信息到键盘
  1543 +- **参数说明**
  1544 +
  1545 +|参数名|类型|限制|是否必填|说明|
  1546 +|---|---|---|---|---|
  1547 +|fun|string|-|是|指令名称|
  1548 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1549 +|data|array|-|是|传送参数的对象数组,不可为空|
  1550 +|++keySN|string||是|需要设置绑定信息的键盘SN|
  1551 +|++info|string||是|设置的绑定信息,一般为学生姓名|
  1552 +```json
  1553 +{
  1554 + "fun": "rtSetKpBindingInfo",
  1555 + "dataTag":"1",
  1556 + "baseSn":"2024041201",
  1557 + "data": [
  1558 + {
  1559 + "keySn": "1479824643",
  1560 + "info": "张三"
  1561 + },
  1562 + {
  1563 + "keySn": "1479824644",
  1564 + "info": "李四"
  1565 + }
  1566 + ]
  1567 +}
  1568 +```
  1569 +
  1570 +##### clearKpBindingInfo
  1571 +- **主题**:/client/\${baseSN}/send
  1572 +- **功能描述**:清除键盘绑定信息
  1573 +- **参数说明**
  1574 +
  1575 +|参数名|类型|限制|是否必填|说明|
  1576 +|---|---|---|---|---|
  1577 +|fun|string|-|是|指令名称|
  1578 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1579 +|data|object|-|是|传送参数的对象数组|
  1580 +|+keySNs|array||否|需要清除绑定信息键盘SN数组,<br>为空表示清空所有键盘|
  1581 +```json
  1582 +{
  1583 + "fun": "clearKpBindingInfo",
  1584 + "dataTag":"1",
  1585 + "data": {
  1586 + "keySns":["1479824643","1479824644","1479824645"]
  1587 + }
  1588 +}
  1589 +```
  1590 +#### 事件
  1591 +##### fEvtSetKpBindingInfo
  1592 +- **主题**:/basestation/\${baseSN}/recive
  1593 +- **功能描述**:返回实时设置绑定信息的状态是否成功
  1594 +- **参数说明**
  1595 +
  1596 +|参数名|类型|限制|非空|说明|
  1597 +|---|---|---|---|---|
  1598 +|fun|string|-|是|指令名称|
  1599 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1600 +|data|array|-|否|传送参数的对象数组|
  1601 +|++keySN|string||是|需要设置绑定信息的键盘SN|
  1602 +|++state|string||是|设置的绑定信息是否成功<br>0 - 成功<br>1 - 失败|
  1603 +```json
  1604 +{
  1605 + "fun": "fEvtSetKpBindingInfo",
  1606 + "dataTag":"1",
  1607 + "data": [
  1608 + {
  1609 + "keySn": "1479824643",
  1610 + "state": "0"
  1611 + },
  1612 + {
  1613 + "keySn": "1479824644",
  1614 + "state": "1"
  1615 + }
  1616 + ]
  1617 +}
  1618 +```
  1619 +##### fEvtClearKpBindingInfo
  1620 +- **主题**:/basestation/\${baseSN}/recive
  1621 +- **功能描述**:返回实时设置绑定信息的状态是否成功
  1622 +- **参数说明**
  1623 +
  1624 +|参数名|类型|限制|非空|说明|
  1625 +|---|---|---|---|---|
  1626 +|fun|string|-|是|指令名称|
  1627 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1628 +|data|array|-|是|传送参数的对象数组|
  1629 +|++keySN|string||是|需要设置绑定信息的键盘SN|
  1630 +|++state|string||是|清空绑定信息是否成功<br>0 - 成功<br>1 - 失败|
  1631 +```json
  1632 +{
  1633 + "fun": "fEvtClearKpBindingInfo",
  1634 + "dataTag":"1",
  1635 + "data": [
  1636 + {
  1637 + "keySn": "1479824643",
  1638 + "state": "0"
  1639 + },
  1640 + {
  1641 + "keySn": "1479824644",
  1642 + "state": "1"
  1643 + }
  1644 + ]
  1645 +}
  1646 +```
  1647 +## 签到
  1648 +### 随时签到
  1649 +#### 方法
  1650 +##### rtStartKpSignIn
  1651 +- **主题**:/client/\${baseSN}/send
  1652 +- **功能描述**:启动随时签到绑定
  1653 +- **参数说明**
  1654 +
  1655 +|参数名|类型|限制|是否必填|说明|
  1656 +|---|---|---|---|---|
  1657 +|fun|string|-|是|指令名称|
  1658 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1659 +|data|object|-|是|传递参数的对象|
  1660 +|+mode|int|-|是|签到模式<br>0-按键签到,按OK键签到自动授权<br>1-PIN码签到,输入pin码后由应用程序决定是否授权|
  1661 +```json
  1662 +{
  1663 + "fun": "rtStartKpSignIn",
  1664 + "dataTag":"1",
  1665 + "data":{
  1666 + "mode":1
  1667 + }
  1668 +}
  1669 +```
  1670 +##### rtStopKpSignIn
  1671 +- **主题**:/client/\${baseSN}/send
  1672 +- **功能描述**:停止签到绑定
  1673 +- **参数说明**
  1674 +
  1675 +|参数名|类型|限制|是否必填|说明|
  1676 +|---|---|---|---|---|
  1677 +|fun|string|-|是|指令名称|
  1678 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1679 +```json
  1680 +{
  1681 + "fun": "rtStopKpSignIn",
  1682 + "dataTag":"1"
  1683 +}
  1684 +```
  1685 +##### rtSetKpLoginAllowed
  1686 +- **主题**:/client/\${baseSN}/send
  1687 +- **功能描述**:实时PIN绑定授权,可取消授权
  1688 +- **参数说明**
  1689 +
  1690 +|参数名|类型|限制|是否必填|说明|
  1691 +|---|---|---|---|---|
  1692 +|fun|string|-|是|指令名称|
  1693 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1694 +|data|object|-|是|传递参数的对象|
  1695 +|+keySn|string|-|是|键盘SN|
  1696 +|+state|int|-|是|1-授权成功<br>2-授权失败<br>3-解除已授权|
  1697 +```json
  1698 +{
  1699 + "fun": "rtSetKpLoginAllowed",
  1700 + "dataTag":"1",
  1701 + "data":{
  1702 + "keySn":"1479824643",
  1703 + "state":1
  1704 + }
  1705 +}
  1706 +```
  1707 +#### 事件
  1708 +##### fEvtStartKpSignIn
  1709 +- **主题**:/basestation/\${baseSN}/recive
  1710 +- **功能描述**:返回启动随时签到绑定状态
  1711 +- **参数说明**
  1712 +
  1713 +|参数名|类型|限制|非空|说明|
  1714 +|---|---|---|---|---|
  1715 +|fun|string|-|是|指令名称|
  1716 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1717 +|data|object|-|是|传送参数的对象|
  1718 +|+state|int||是|启动状态<br>0 - 成功<br>1 - 失败|
  1719 +```json
  1720 +{
  1721 + "fun": "fEvtStartKpSignIn",
  1722 + "dataTag":"1",
  1723 + "data": {
  1724 + "state": 0
  1725 + }
  1726 +}
  1727 +```
  1728 +##### fEvtKpSignIn
  1729 +- **主题**:/basestation/\${baseSN}/recive
  1730 +- **功能描述**:返回键盘提交签到信息
  1731 +- **参数说明**
  1732 +
  1733 +|参数名|类型|限制|非空|说明|
  1734 +|---|---|---|---|---|
  1735 +|fun|string|-|是|指令名称|
  1736 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1737 +|data|array|-|是|传送参数的对象数组|
  1738 +|++keySn|string||是|键盘SN|
  1739 +|++keyValue|string||是|键盘提交的按键值|
  1740 +|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
  1741 +```json
  1742 +{
  1743 + "fun": "fEvtKpSignIn",
  1744 + "dataTag":"1",
  1745 + "data": [{
  1746 + "keySn": "1234567890",
  1747 + "keyValue":"1004",
  1748 + "keyTime":30.2
  1749 + },
  1750 + {
  1751 + "keySn": "1234567891",
  1752 + "keyValue":"1003",
  1753 + "keyTime":32.5
  1754 + }
  1755 + ]
  1756 +}
  1757 +```
  1758 +##### fEvtStopKpSignIn
  1759 +- **主题**:/basestation/\${baseSN}/recive
  1760 +- **功能描述**:返回停止异步绑定状态
  1761 +- **参数说明**
  1762 +
  1763 +|参数名|类型|限制|非空|说明|
  1764 +|---|---|---|---|---|
  1765 +|fun|string|-|是|指令名称|
  1766 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1767 +|data|object|-|是|传送参数的对象|
  1768 +|+state|int||是|启动状态<br>0 - 成功<br>1 - 失败|
  1769 +```json
  1770 +{
  1771 + "fun": "fEvtStopKpSignIn",
  1772 + "dataTag":"1",
  1773 + "data": {
  1774 + "state": 0
  1775 + }
  1776 +}
  1777 +```
  1778 +##### fEvtSetKpLoginAllowed
  1779 +- **主题**:/basestation/\${baseSN}/recive
  1780 +- **功能描述**:返回键盘授权状态
  1781 +- **参数说明**
  1782 +
  1783 +|参数名|类型|限制|非空|说明|
  1784 +|---|---|---|---|---|
  1785 +|fun|string|-|是|指令名称|
  1786 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1787 +|data|object|-|是|传送参数的对象|
  1788 +|+keySn|string||是|键盘SN|
  1789 +|+state|string||是|1-授权成功<br>2-授权失败<br>3-解除已授权|
  1790 +```json
  1791 +{
  1792 + "fun": "fEvtSetKpLoginAllowed",
  1793 + "dataTag":"1",
  1794 + "data": {
  1795 + "keySn":"1479824643",
  1796 + "state":1
  1797 + }
  1798 +}
  1799 +```
  1800 +
  1801 +## 按键反馈
  1802 +### 判断题
  1803 +#### 方法
  1804 +##### startQATrueFalse
  1805 +- **主题**:/client/\${baseSN}/send
  1806 +- **功能描述**:启动判断题答题
  1807 +- **参数说明**
  1808 +
  1809 +|参数名|类型|限制|是否必填|说明|
  1810 +|---|---|---|---|---|
  1811 +|fun|string|-|是|指令名称|
  1812 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1813 +|data|object|-|是|传送参数的对象|
  1814 +|+keySns|string||是|指定的键盘SN,可空表示全部在线键盘,<br>多个SN用英文","分隔|
  1815 +|+count|int||是|题目数量,1-16,>1多题快答|
  1816 +|+mode|int||是|1 - True/False 对/错 <br>2 - Yes/No 是/否<br> 3 - √/×|
  1817 +|+allowModify|int||是|0 - 不允许修改<br>1 - 允许修改|
  1818 +|+tip|string||否|提示的标题,长度不超过16字符|
  1819 +|+simParams|object||否|内部模拟测试参数设置对象|
  1820 +|++answer|string||是|预设提交的按键值|
  1821 +|++delay|int||是|提交延迟,单位ms<br> 0:并发提交<br> >0:范围内随机延迟提交|
  1822 +```json
  1823 +{
  1824 + "fun": "startQATrueFalse",
  1825 + "dataTag":"1",
  1826 + "data":{
  1827 + "keySns":"",
  1828 + "count":1,
  1829 + "mode":0,
  1830 + "allowModify":1,
  1831 + "tip":"请判断对错"
  1832 + }
  1833 +}
  1834 +```
  1835 +##### stopQATrueFalse
  1836 +- **主题**:/client/\${baseSN}/send
  1837 +- **功能描述**:停止判断题答题
  1838 +- **参数说明**
  1839 +
  1840 +|参数名|类型|限制|是否必填|说明|
  1841 +|---|---|---|---|---|
  1842 +|fun|string|-|是|指令名称|
  1843 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1844 +```json
  1845 +{
  1846 + "fun": "stopQATrueFalse",
  1847 + "dataTag":"1"
  1848 +}
  1849 +```
  1850 +#### 事件
  1851 +##### fEvtStartQATrueFalse
  1852 +- **主题**:/basestation/\${baseSN}/recive
  1853 +- **功能描述**:返回启动判断题状态
  1854 +- **参数说明**
  1855 +
  1856 +|参数名|类型|限制|非空|说明|
  1857 +|---|---|---|---|---|
  1858 +|fun|string|-|是|指令名称|
  1859 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1860 +|data|object|-|是|传送参数的对象|
  1861 +|+state|int||是|启动状态<br>0 - 成功<br>1 - 失败|
  1862 +```json
  1863 +{
  1864 + "fun": "fEvtStartQATrueFalse",
  1865 + "dataTag":"1",
  1866 + "data": {
  1867 + "state": 0
  1868 + }
  1869 +}
  1870 +```
  1871 +##### fEvtQATrueFalse
  1872 +- **主题**:/basestation/\${baseSN}/recive
  1873 +- **功能描述**:返回键盘提交答题信息
  1874 +- **参数说明**
  1875 +
  1876 +|参数名|类型|限制|非空|说明|
  1877 +|---|---|---|---|---|
  1878 +|fun|string|-|是|指令名称|
  1879 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1880 +|data|array|-|是|传送参数的对象数组|
  1881 +|++keySn|string||是|键盘SN|
  1882 +|++keyValue|string||是|键盘提交的按键值<br>1-对<br>2-错|
  1883 +|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
  1884 +```json
  1885 +{
  1886 + "fun": "fEvtQATrueFalse",
  1887 + "dataTag":"1",
  1888 + "data": [{
  1889 + "keySn": "1234567890",
  1890 + "keyValue":"1",
  1891 + "keyTime":30.2
  1892 + }
  1893 + ]
  1894 +}
  1895 +```
  1896 +##### fEvtStopQATrueFalse
  1897 +- **主题**:/basestation/\${baseSN}/recive
  1898 +- **功能描述**:返回停止判断题状态
  1899 +- **参数说明**
  1900 +
  1901 +|参数名|类型|限制|非空|说明|
  1902 +|---|---|---|---|---|
  1903 +|fun|string|-|是|指令名称|
  1904 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1905 +|data|object|-|是|传送参数的对象|
  1906 +|+state|int||是|停止状态<br>0 - 成功<br>1 - 失败|
  1907 +```json
  1908 +{
  1909 + "fun": "fEvtStopQATrueFalse",
  1910 + "dataTag":"1",
  1911 + "data": {
  1912 + "state": 0
  1913 + }
  1914 +}
  1915 +```
  1916 +### 选择题
  1917 +#### 方法
  1918 +##### startQAChoice
  1919 +- **主题**:/client/\${baseSN}/send
  1920 +- **功能描述**:启动选择题答题
  1921 +- **参数说明**
  1922 +
  1923 +|参数名|类型|限制|是否必填|说明|
  1924 +|---|---|---|---|---|
  1925 +|fun|string|-|是|指令名称|
  1926 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1927 +|data|object|-|是|传送参数的对象|
  1928 +|+keySns|string||是|指定的键盘SN,可空表示全部在线键盘,<br>多个SN用英文","分隔|
  1929 +|+count|int||是|题目数量,1-16,>1多题快答|
  1930 +|+mode|int||是|显示模式<br>1:显示字母(默认值) </br>2:显示数字 |
  1931 +|+secrecyMode|int||是|保密模式<br>0:不保密(默认值)</br>1:保密 |
  1932 +|+lessMode|int||是|迫选模式<br>0:可缺选(默认值) </br>1:不可缺选</br>2:允许重复输入</br>3:允许重复输入且不可缺选 |
  1933 +|+options|int||是|选项数量,1≤M≤10(默认值4)|
  1934 +|+optionalN|int||是|可选项个数,1≤N≤M(默认值1)|
  1935 +|+allowModify|int||是|修改模式<br>0 - 不允许修改<br>1 - 允许修改|
  1936 +|+tip|string||否|提示的标题,长度不超过16字符|
  1937 +|+simParams|object||否|内部模拟测试参数设置对象|
  1938 +|++answer|string||是|预设提交的按键值|
  1939 +```json
  1940 +{
  1941 + "fun": "startQAChoice",
  1942 + "dataTag":"1",
  1943 + "data":{
  1944 + "keySns":"",
  1945 + "mode": 1,
  1946 + "secrecyMode": 0,
  1947 + "lessMode": 0,
  1948 + "options": 4,
  1949 + "optionalN": 1,
  1950 + "allowModify":1,
  1951 + "tip":"请选择"
  1952 + }
  1953 +}
  1954 +```
  1955 +##### stopQAChoice
  1956 +- **主题**:/client/\${baseSN}/send
  1957 +- **功能描述**:停止选择题答题
  1958 +- **参数说明**
  1959 +
  1960 +|参数名|类型|限制|是否必填|说明|
  1961 +|---|---|---|---|---|
  1962 +|fun|string|-|是|指令名称|
  1963 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1964 +```json
  1965 +{
  1966 + "fun": "stopQAChoice",
  1967 + "dataTag":"1"
  1968 +}
  1969 +```
  1970 +#### 事件
  1971 +##### fEvtStartQAChoice
  1972 +- **主题**:/basestation/\${baseSN}/recive
  1973 +- **功能描述**:返回启动选择题状态
  1974 +- **参数说明**
  1975 +
  1976 +|参数名|类型|限制|非空|说明|
  1977 +|---|---|---|---|---|
  1978 +|fun|string|-|是|指令名称|
  1979 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1980 +|data|object|-|是|传送参数的对象|
  1981 +|+state|int||是|启动状态<br>0 - 成功<br>1 - 失败|
  1982 +```json
  1983 +{
  1984 + "fun": "fEvtStartQAChoice",
  1985 + "dataTag":"1",
  1986 + "data": {
  1987 + "state": 0
  1988 + }
  1989 +}
  1990 +```
  1991 +##### fEvtQAChoice
  1992 +- **主题**:/basestation/\${baseSN}/recive
  1993 +- **功能描述**:返回键盘提交答题信息
  1994 +- **参数说明**
  1995 +
  1996 +|参数名|类型|限制|非空|说明|
  1997 +|---|---|---|---|---|
  1998 +|fun|string|-|是|指令名称|
  1999 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2000 +|data|array|-|是|传送参数的对象数组|
  2001 +|++keySn|string||是|键盘SN|
  2002 +|++keyValue|string||是|键盘提交的按键值|
  2003 +|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
  2004 +```json
  2005 +{
  2006 + "fun": "fEvtQAChoice",
  2007 + "dataTag":"1",
  2008 + "data": [{
  2009 + "keySn": "1234567890",
  2010 + "keyValue":"A",
  2011 + "keyTime":3.2
  2012 + }]
  2013 +}
  2014 +```
  2015 +##### fEvtstopQAChoice
  2016 +- **主题**:/basestation/\${baseSN}/recive
  2017 +- **功能描述**:返回停止选择题状态
  2018 +- **参数说明**
  2019 +
  2020 +|参数名|类型|限制|非空|说明|
  2021 +|---|---|---|---|---|
  2022 +|fun|string|-|是|指令名称|
  2023 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2024 +|data|object|-|是|传送参数的对象|
  2025 +|+state|int||是|停止状态<br>0 - 成功<br>1 - 失败|
  2026 +```json
  2027 +{
  2028 + "fun": "fEvtstopQAChoice",
  2029 + "dataTag":"1",
  2030 + "data": {
  2031 + "state": 0
  2032 + }
  2033 +}
  2034 +```
  2035 +### 数字题
  2036 +#### 方法
  2037 +##### startQANum
  2038 +- **主题**:/client/\${baseSN}/send
  2039 +- **功能描述**:启动数字题答题
  2040 +- **参数说明**
  2041 +
  2042 +|参数名|类型|限制|是否必填|说明|
  2043 +|---|---|---|---|---|
  2044 +|fun|string|-|是|指令名称|
  2045 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2046 +|data|object|-|是|传送参数的对象|
  2047 +|+keySns|string||是|指定的键盘SN,可空表示全部在线键盘,<br>多个SN用英文","分隔|
  2048 +|+mode|int||是|模式<br>0:无规则 (S6最多16位,T2最多14位)<br>1:预留<br>2:预留<br>3:带小数位上下限(T2不支持)|
  2049 +|+secrecyMode|int||是|保密模式<br>0:不保密(默认值)</br>1:保密 |
  2050 +|+digits|int||是|小数位数,0-2
  2051 +|+numMin|int||是|可输入下限,mode=3有效<br> digits=0时 范围:0~65535 <br> digits=1时 范围:0~6553 <br> digits=2时 范围:0~655|
  2052 +|+numMax|int||是|可输入上限,mode=3有效<br>digits=0 范围:0~65535 <br> digits=1 范围:0~6553 <br> digits=2 范围:0~655|
  2053 +|+allowModify|int||是|修改模式<br>0 - 不允许修改<br>1 - 允许修改|
  2054 +|+tip|string||否|提示的标题,长度不超过16字符|
  2055 +|+simParams|object||否|内部模拟测试参数设置对象|
  2056 +|++answer|string||是|预设提交的按键值|
  2057 +```json
  2058 +{
  2059 + "fun": "startQANum",
  2060 + "dataTag":"1",
  2061 + "data":{
  2062 + "keySns":"",
  2063 + "mode": 3,
  2064 + "secrecyMode": 0,
  2065 + "digits": 1,
  2066 + "numMin": 0,
  2067 + "numMax": 100,
  2068 + "allowModify":1,
  2069 + "tip":"请输入数字"
  2070 + }
  2071 +}
  2072 +```
  2073 +##### stopQANum
  2074 +- **主题**:/client/\${baseSN}/send
  2075 +- **功能描述**:停止数字题答题
  2076 +- **参数说明**
  2077 +
  2078 +|参数名|类型|限制|是否必填|说明|
  2079 +|---|---|---|---|---|
  2080 +|fun|string|-|是|指令名称|
  2081 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2082 +```json
  2083 +{
  2084 + "fun": "stopQANum",
  2085 + "dataTag":"1"
  2086 +}
  2087 +```
  2088 +#### 事件
  2089 +##### fEvtStartQANum
  2090 +- **主题**:/basestation/\${baseSN}/recive
  2091 +- **功能描述**:返回启动数字题状态
  2092 +- **参数说明**
  2093 +
  2094 +|参数名|类型|限制|非空|说明|
  2095 +|---|---|---|---|---|
  2096 +|fun|string|-|是|指令名称|
  2097 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2098 +|data|object|-|是|传送参数的对象|
  2099 +|+state|int||是|启动状态<br>0 - 成功<br>1 - 失败|
  2100 +```json
  2101 +{
  2102 + "fun": "fEvtStartQANum",
  2103 + "dataTag":"1",
  2104 + "data": {
  2105 + "state": 0
  2106 + }
  2107 +}
  2108 +```
  2109 +##### fEvtQANum
  2110 +- **主题**:/basestation/\${baseSN}/recive
  2111 +- **功能描述**:返回键盘提交答题信息
  2112 +- **参数说明**
  2113 +
  2114 +|参数名|类型|限制|非空|说明|
  2115 +|---|---|---|---|---|
  2116 +|fun|string|-|是|指令名称|
  2117 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2118 +|data|array|-|是|传送参数的对象数组|
  2119 +|++keySn|string||是|键盘SN|
  2120 +|++keyValue|string||是|键盘提交的按键值|
  2121 +|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
  2122 +```json
  2123 +{
  2124 + "fun": "fEvtQANum",
  2125 + "dataTag":"1",
  2126 + "data": {
  2127 + "keySn": "1234567890",
  2128 + "keyValue":"10",
  2129 + "keyTime":3.2
  2130 + }
  2131 +}
  2132 +```
  2133 +##### fEvtstopQANum
  2134 +- **主题**:/basestation/\${baseSN}/recive
  2135 +- **功能描述**:返回停止数字题状态
  2136 +- **参数说明**
  2137 +
  2138 +|参数名|类型|限制|非空|说明|
  2139 +|---|---|---|---|---|
  2140 +|fun|string|-|是|指令名称|
  2141 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2142 +|data|object|-|是|传送参数的对象|
  2143 +|+state|int||是|停止状态<br>0 - 成功<br>1 - 失败|
  2144 +```json
  2145 +{
  2146 + "fun": "fEvtstopQANum",
  2147 + "dataTag":"1",
  2148 + "data": {
  2149 + "state": 0
  2150 + }
  2151 +}
  2152 +```
  2153 +### 抢答题
  2154 +#### 方法
  2155 +##### startQAQuicker
  2156 +- **主题**:/client/\${baseSN}/send
  2157 +- **功能描述**:启动抢答题答题
  2158 +- **参数说明**
  2159 +
  2160 +|参数名|类型|限制|是否必填|说明|
  2161 +|---|---|---|---|---|
  2162 +|fun|string|-|是|指令名称|
  2163 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2164 +|data|object|-|是|传送参数的对象|
  2165 +|+keySns|string||是|指定的键盘SN,可空表示全部在线键盘,<br>多个SN用英文","分隔|
  2166 +|+mode|int||是|模式<br>0:普通抢答|
  2167 +|+allowModify|int||是|修改模式<br>0 - 不允许修改<br>1 - 允许修改|
  2168 +|+tip|string||否|提示的标题,长度不超过16字符|
  2169 +|+simParams|object||否|内部模拟测试参数设置对象|
  2170 +|++answer|string||是|预设提交的按键值|
  2171 +```json
  2172 +{
  2173 + "fun": "startQAQuicker",
  2174 + "dataTag":"1",
  2175 + "data":{
  2176 + "keySns":"",
  2177 + "mode": 0,
  2178 + "allowModify":1,
  2179 + "tip":"请按键抢答"
  2180 + }
  2181 +}
  2182 +```
  2183 +##### stopQAQuicker
  2184 +- **主题**:/client/\${baseSN}/send
  2185 +- **功能描述**:停止抢答答题
  2186 +- **参数说明**
  2187 +
  2188 +|参数名|类型|限制|是否必填|说明|
  2189 +|---|---|---|---|---|
  2190 +|fun|string|-|是|指令名称|
  2191 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2192 +```json
  2193 +{
  2194 + "fun": "stopQAQuicker",
  2195 + "dataTag":"1"
  2196 +}
  2197 +```
  2198 +#### 事件
  2199 +##### fEvtStartQAQuicker
  2200 +- **主题**:/basestation/\${baseSN}/recive
  2201 +- **功能描述**:返回启动抢答题状态
  2202 +- **参数说明**
  2203 +
  2204 +|参数名|类型|限制|非空|说明|
  2205 +|---|---|---|---|---|
  2206 +|fun|string|-|是|指令名称|
  2207 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2208 +|data|object|-|是|传送参数的对象|
  2209 +|+state|int||是|启动状态<br>0 - 成功<br>1 - 失败|
  2210 +```json
  2211 +{
  2212 + "fun": "fEvtStartQAQuicker",
  2213 + "dataTag":"1",
  2214 + "data": {
  2215 + "state": 0
  2216 + }
  2217 +}
  2218 +```
  2219 +##### fEvtQAQuicker
  2220 +- **主题**:/basestation/\${baseSN}/recive
  2221 +- **功能描述**:返回键盘提交答题信息
  2222 +- **参数说明**
  2223 +
  2224 +|参数名|类型|限制|非空|说明|
  2225 +|---|---|---|---|---|
  2226 +|fun|string|-|是|指令名称|
  2227 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2228 +|data|array|-|是|传送参数的对象数组|
  2229 +|++keySn|string||是|键盘SN|
  2230 +|++keyValue|string||是|键盘提交的按键值|
  2231 +|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
  2232 +```json
  2233 +{
  2234 + "fun": "fEvtQAQuicker",
  2235 + "dataTag":"1",
  2236 + "data": [{
  2237 + "keySn": "1234567890",
  2238 + "keyValue":"1",
  2239 + "keyTime":3.2
  2240 + }]
  2241 +}
  2242 +```
  2243 +##### fEvtstopQAQuicker
  2244 +- **主题**:/basestation/\${baseSN}/recive
  2245 +- **功能描述**:返回停止抢答题状态
  2246 +- **参数说明**
  2247 +
  2248 +|参数名|类型|限制|非空|说明|
  2249 +|---|---|---|---|---|
  2250 +|fun|string|-|是|指令名称|
  2251 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2252 +|data|object|-|是|传送参数的对象|
  2253 +|+state|int||是|停止状态<br>0 - 成功<br>1 - 失败|
  2254 +```json
  2255 +{
  2256 + "fun": "fEvtstopQAQuicker",
  2257 + "dataTag":"1",
  2258 + "data": {
  2259 + "state": 0
  2260 + }
  2261 +}
  2262 +```
  2263 +## 在线测验
  2264 +### 标准测验
  2265 +#### 方法
  2266 +##### startKpExam
  2267 +- **主题**:/client/\${baseSN}/send
  2268 +- **功能描述**:启动标准测验
  2269 +- **参数说明**
  2270 +
  2271 +|参数名|类型|限制|是否必填|说明|
  2272 +|---|---|---|---|---|
  2273 +|fun|string|-|是|指令名称|
  2274 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2275 +|data|object|-|是|传送参数的对象|
  2276 +|+keySns|string||是|指定的键盘SN,可空表示全部在线键盘,<br>多个SN用英文","分隔|
  2277 +|+examNo|int||是|1-9999|
  2278 +|+mode|int||是|显示模式<br>0-不显示开头<br>1-显示“Q”开头<br>2-显示“题”开头|
  2279 +|+questions|array||是|题目详情|
  2280 +|++symbol | string||是 | 题号前缀,可为空 |
  2281 +|++quesType | int||是| 题目类型<br>1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
  2282 +|++option |int||是 |选项数目<br> quesType = 1 有效。<br>quesType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
  2283 +|++startNo | int||是| 起始题号 |
  2284 +|++count | int||是| 题目数量 |
  2285 +|+simParams|object||否|内部模拟测试参数设置对象|
  2286 +|++answer|string||是|预设提交的按键值<br>格式为"单选题答案;多选题答案;<br>数字题答案;判断题答案(1对2错)"<br>如"A;ABCD;10;1"|
  2287 +```json
  2288 +//自定义题号
  2289 +{
  2290 + "fun": "startKpExam",
  2291 + "dataTag":"1",
  2292 + "data":{
  2293 + "keySns":"",
  2294 + "mode": 0,
  2295 + "examNo": 1,
  2296 + "questions": [{
  2297 + //题号1-1-1 到1-1-10 共10题单选
  2298 + "symbol": "1-1-",
  2299 + "quesType": 1,
  2300 + "startNo": 1,
  2301 + "count":10
  2302 + }, {
  2303 + //题号2-2和2-3共两题 多选题,5个选项
  2304 + "symbol": "2-",
  2305 + "questionType": 2,
  2306 + "option": 5,
  2307 + "startNo": 2,
  2308 + "count":2
  2309 + }, {
  2310 + //题号3-1和3-2共两道数字题
  2311 + "symbol": "3-",
  2312 + "questionType": 3,
  2313 + "startNo": 1,
  2314 + "count":2
  2315 + }, {
  2316 + //题号4和5 ,判断题
  2317 + "symbol": "",
  2318 + "questionType": 4,
  2319 + "startNo": 4,
  2320 + "count":2
  2321 + }]
  2322 + }
  2323 +}
  2324 +
  2325 +//显示Q开头
  2326 +{
  2327 + "fun": "startKpExam",
  2328 + "dataTag":"1",
  2329 + "data":{
  2330 + "keySns":"",
  2331 + "mode": 1,
  2332 + "examNo": 1,
  2333 + "questions": [{
  2334 + //Q1-Q20,单选题
  2335 + "symbol": "",
  2336 + "quesType": 1,
  2337 + "startNo": 1,
  2338 + "count":20
  2339 + }]
  2340 + }
  2341 +}
  2342 +
  2343 +//显示题开头
  2344 +{
  2345 + "fun": "startKpExam",
  2346 + "dataTag":"1",
  2347 + "data":{
  2348 + "keySns":"",
  2349 + "mode": 2,
  2350 + "examNo": 1,
  2351 + "questions": [{
  2352 + //题1-题20,单选题
  2353 + "symbol": "",
  2354 + "quesType": 1,
  2355 + "startNo": 1,
  2356 + "count":20
  2357 + }]
  2358 + }
  2359 +}
  2360 +```
  2361 +##### stopKpExam
  2362 +- **主题**:/client/\${baseSN}/send
  2363 +- **功能描述**:停止标准测验
  2364 +- **参数说明**
  2365 +
  2366 +|参数名|类型|限制|是否必填|说明|
  2367 +|---|---|---|---|---|
  2368 +|fun|string|-|是|指令名称|
  2369 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2370 +```json
  2371 +{
  2372 + "fun": "stopKpExam",
  2373 + "dataTag":"1"
  2374 +}
  2375 +```
  2376 +##### rtGetKpExamData
  2377 +- **主题**:/client/\${baseSN}/send
  2378 +- **功能描述**:刷新作答数据
  2379 +- **参数说明**
  2380 +
  2381 +|参数名|类型|限制|是否必填|说明|
  2382 +|---|---|---|---|---|
  2383 +|fun|string|-|是|指令名称|
  2384 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2385 +|data|object|-|是|传送参数的对象|
  2386 +|+keySns|string||是|指定的键盘SN,可空表示全部在线键盘<br>多个SN用英文","分隔|
  2387 +```json
  2388 +{
  2389 + "fun": "rtGetKpExamData",
  2390 + "dataTag":"1",
  2391 + "data":{
  2392 + "keySns":"1234567890,1234567891",
  2393 + }
  2394 +}
  2395 +```
  2396 +##### rtKpAllowEdited
  2397 +- **主题**:/client/\${baseSN}/send
  2398 +- **功能描述**:键盘键盘后,允许键盘修改答案
  2399 +- **参数说明**
  2400 +
  2401 +|参数名|类型|限制|是否必填|说明|
  2402 +|---|---|---|---|---|
  2403 +|fun|string|-|是|指令名称|
  2404 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2405 +|data|object|-|是|传送参数的对象|
  2406 +|+keySns|string||是|指定的键盘SN,可空表示全部在线键盘,多个SN用英文","分隔|
  2407 +```json
  2408 +{
  2409 + "fun": "rtKpAllowEdited",
  2410 + "dataTag":"1",
  2411 + "data":{
  2412 + "keySns":"1234567890,1234567891",
  2413 + }
  2414 +}
  2415 +```
  2416 +#### 事件
  2417 +##### fEvtStartKpExam
  2418 +- **主题**:/basestation/\${baseSN}/recive
  2419 +- **功能描述**:返回启动在线测验状态
  2420 +- **参数说明**
  2421 +
  2422 +|参数名|类型|限制|非空|说明|
  2423 +|---|---|---|---|---|
  2424 +|fun|string|-|是|指令名称|
  2425 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2426 +|data|object|-|是|传送参数的对象|
  2427 +|+state|int||是|启动状态<br>0 - 成功<br>1 - 失败|
  2428 +```json
  2429 +{
  2430 + "fun": "fEvtStartKpExam",
  2431 + "dataTag":"1",
  2432 + "data": {
  2433 + "state": 0
  2434 + }
  2435 +}
  2436 +```
  2437 +##### fEvtKpExam
  2438 +- **主题**:/basestation/\${baseSN}/recive
  2439 +- **功能描述**:返回键盘提交答题信息
  2440 +- **参数说明**
  2441 +
  2442 +|参数名|类型|限制|非空|说明|
  2443 +|---|---|---|---|---|
  2444 +|fun|string|-|是|指令名称|
  2445 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2446 +|data|array|-|是|传送参数的对象数组|
  2447 +|++keySn|string||是|键盘SN|
  2448 +|++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B|
  2449 +|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
  2450 +```json
  2451 +{
  2452 + "fun": "fEvtKpExam",
  2453 + "dataTag":"1",
  2454 + "data": [{
  2455 + "keySn": "1234567890",
  2456 + "keyValue":"1:A;2:B",
  2457 + "keyTime":3.2
  2458 + },
  2459 + {
  2460 + "keySn": "1234567891",
  2461 + "keyValue":"1:B;2:B",
  2462 + "keyTime":3.5
  2463 + }
  2464 + ]
  2465 +}
  2466 +```
  2467 +##### fEvtstopKpExam
  2468 +- **主题**:/basestation/\${baseSN}/recive
  2469 +- **功能描述**:返回停止在线测验状态
  2470 +- **参数说明**
  2471 +
  2472 +|参数名|类型|限制|非空|说明|
  2473 +|---|---|---|---|---|
  2474 +|fun|string|-|是|指令名称|
  2475 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2476 +|data|object|-|是|传送参数的对象|
  2477 +|+state|int||是|停止状态<br>0 - 成功<br>1 - 失败|
  2478 +```json
  2479 +{
  2480 + "fun": "fEvtstopKpExam",
  2481 + "dataTag":"1",
  2482 + "data": {
  2483 + "state": 0
  2484 + }
  2485 +}
  2486 +```
  2487 +##### fEvtFinalSubmit
  2488 +- **主题**:/basestation/\${baseSN}/recive
  2489 +- **功能描述**:返回键盘手动交卷标识
  2490 +- **参数说明**
  2491 +
  2492 +|参数名|类型|限制|非空|说明|
  2493 +|---|---|---|---|---|
  2494 +|fun|string|-|是|指令名称|
  2495 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2496 +|data|object|-|是|传送参数的对象|
  2497 +|+keySn|string||是|键盘SN|
  2498 +|+keyTime|double||是|提交时间,从启动开始计算,单位秒|
  2499 +```json
  2500 +{
  2501 + "fun": "fEvtFinalSubmit",
  2502 + "dataTag":"1",
  2503 + "data": {
  2504 + "keySn": "1234567890",
  2505 + "keyTime":3.2
  2506 + }
  2507 +}
  2508 +```
  2509 +
  2510 +##### fEvtAllowEdited
  2511 +- **主题**:/basestation/\${baseSN}/recive
  2512 +- **功能描述**:返回允许键盘修改答案状态
  2513 +- **参数说明**
  2514 +
  2515 +|参数名|类型|限制|非空|说明|
  2516 +|---|---|---|---|---|
  2517 +|fun|string|-|是|指令名称|
  2518 +|dataTag|string|-|否|数据包标识,可为空字符串|
  2519 +|data|object|-|是|传送参数的对象|
  2520 +|+keySn|string||是|键盘SN|
  2521 +|+state|int||是|0-成功<br>1-失败|
  2522 +```json
  2523 +{
  2524 + "fun": "fEvtAllowEdited",
  2525 + "dataTag":"1",
  2526 + "data": {
  2527 + "keySn": "1234567890",
  2528 + "state":0
  2529 + }
  2530 +}
  2531 +```
0 2532 \ No newline at end of file
... ...