# SunVote B200W_MQTT 接口协议 [TOC] # 功能说明 ## 主题说明 \${baseSN}为指定的基站的SN编码,不能为空,接收基站反馈数据需要订阅对应基站SN的接收主题。 ### 发布的主题 应用程序发布的主题,基站订阅 /client/\${baseSN}/send /client/multiBase/send 内部应用发布的主题,基站订阅 /manage/\${baseSN}/send ### 订阅的主题 应用程序订阅的主题,基站发布 /basestation/\\${baseSN}/receive /basestation/multiBase/receive 内部应用订阅的主题,基站发布 /manage/\${baseSN}/receive ## 指令说明 |指令功能标识 |说明 |约束| |---|---|---| |get| 待机状态下获取参数属性状态及数据 |待机状态| |set| 待机状态下设置参数属性状态及数据 |待机状态| |start| 运行一个单进程业务实例(函数) |待机状态| |stop| 停止一个单进程业务实例(函数) |待机状态| |rtXXX| 在线状态下可实时执行方法及函数 || ## 事件说明 |事件标识| 说明| 约束| |---|---|---| |sEvtXXX|系统事件 |自动返回| |fEvtXXX|指令事件 |调用对应指令后返回| ## 数据格式约定 - 数据格式统一为**Json**格式,MQTT发送接收消息编码统一为**UTF-8** - Json通用格式如下: ```json { "fun":"xxx", "dataTag":"xxx", "data":{ //内容 } } ``` |参数 |说明 |约束| |---|---|---| |fun| 指令或事件名称|| |dataTag| 数据标签,用于对应收发数据|长度不超过4,可为0-9a-zA-Z的组合| |data| 数据内容|对象或者数组,可为空| 注意:基站接收指令数据单次不超过2K长度,在指定键盘发送指令时,如果指令长度超出限制,建议将指令进行拆分,分次发送,如果是所有键盘执行的指令,可将keySns设为空数组不使用指定键盘的模式 ## 功能速查一览表 ### 基站管理 |功能归类|功能|API指令|指令/系统事件| |---|---|---|---| |基站连接 - 获取在线基站|主动获取在线基站信息
不确定基站SN时|[getBsOnlineState](#getbsonlinestate)|[fEvtBsOnlineState](#fevtbsonlinestate)|| |基站连接 - 主动获取状态|主动获取基站连接状态|[getBsConnectState](#getbsconnectstate)|[sEvtBsConnectState](#sevtbsconnectstate)|| |基站连接 - 自动获取状态|基站连接变化系统通知|-|[sEvtBsConnectState](#sevtbsconnectstate)|| |基站授时|对基站授时用于校准时间|[timeSync](#timesync)|[sEvtStateCode](#sevtstatecode)|| |键盘上线通知|单个键盘上线系统通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|| |识别设置 - 出厂编码|设置基站出厂编码(内)|[setBsSN](#setbssn)|[fEvtBsSN](#fevtbssn)| |识别设置 - 基站型号|读取基站型号|[getBsModel](#getbsmodel)|[fEvtBsModel](#fevtbsmodel)| |识别设置 - 固件版本|获取基站固件版本|[getBsFWVersion](#getbsfwversion)|[fEvtBsFWVersion](#fevtbsfwversion)| |识别设置 - 品牌识别码|获取基站品牌识别码|[getBsBIC](#getbsbic)|[fEvtBsBIC](#fevtbsbic)| ||设置基站品牌识别码(内)|[setBsBIC](#setbsbic)|[fEvtBsBIC](#fevtbsbic)| |组网设置 - 组网模式|获取基站组网模式|[getBsNetworkMode](#getbsnetworkmode)|[fEvtBsNetworkMode](#fevtbsnetworkmode)| ||设置基站组网模式
(前期不开放,后期需要)|[setBsNetworkMode](#setbsnetworkmode)|[fEvtBsNetworkMode](#fevtbsnetworkmode)| |组网设置 - 配对码|获取基站配对码|[getBsPairCode](#getbspaircode)|[fEvtBsPairCode](#fevtbspaircode)| ||设置基站配对码(内)|[setBsPairCode](#setbspaircode)|[fEvtBsPairCode](#fevtbspaircode)| |组网设置 - 刷卡配对状态|获取刷卡配对状态|[getBsNfcLogin](#getbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)| ||设置刷卡配对状态|[setBsNfcLogin](#setbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)|| |组网设置 - 工作信道|获取基站工作信道|[getBsChannel](#getbschannel)|[fEvtBsChannel](#fevtbschannel)| ||设置基站工作信道|[setBsChannel](#setbschannel)|[fEvtBsChannel](#fevtbschannel)|| |登录设置 - 登录名称|获取基站登录名称|[getBsSSID](#getbsssid)|[fEvtBsSSID](#fevtbsssid)| ||设置基站登录名称|[setBsSSID](#setbsssid)|[fEvtBsSSID](#fevtbsssid)|| |键盘统一设置 - 键盘语言|获取键盘语言|[getBsKpLanguage](#getbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)| ||设置键盘语言|[setBsKpLanguage](#setbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)|| |键盘统一设置 - 键盘休眠|设置键盘休眠等级(内)|[setBsKpSleepLevel](#setbskpsleeplevel)|[fEvtBsKpSleepLevel](#fevtbskpsleeplevel)| ||获取键盘休眠等级(内)|[getBsKpSleepLevel](#getbskpsleeplevel)|[fEvtBsKpSleepLevel](#fevtbskpsleeplevel)| ||设置键盘暂停休眠状态(内)|[setBsKpPauseSleep](#setbskppausesleep)|[fEvtBsKpPauseSleep](#fevtbskppausesleep)| |配对模式 - 快速配对|启动基站快速配对|[startBsFastPair](#startbsfastpair)|[sEvtStateCode](#sevtstatecode)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)| ||停止基站快速配对|[stopBsFastPair](#stopbsfastpair)|[sEvtStateCode](#sevtstatecode)| |白名单模式 - 白名单管理|获取白名单|[getBsWhitelist](#getbswhitelist)|[fEvtBsWhitelist](#fevtbswhitelist)| ||设置白名单|[setBsWhitelist](#setbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtSetBsWhitelist](#fevtsetbswhitelist)| ||清空白名单|[clearBsWhitelist](#clearbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtBsWhitelist](#fevtbswhitelist)| ||增加白名单|[addBsWhitelist](#addbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtAddBsWhitelist](#fevtaddbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)| ||删除白名单|[delBsWhitelist](#delbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtDelBsWhitelist](#fevtdelbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)| |网络设置 - TCP/IP参数|获取TCP/IP参数|[getBsTcpipParams](#getbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)| ||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)|| |网络设置 - MQTT参数|获取MQTT参数|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)| ||设置MQTT参数|[setBsMqttParams](#setbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)|| |基站维护|获取基站日志信息(内)|[getBsLogInfo](#getbsloginfo)|[sEvtStateCode](#sevtstatecode)
[fEvtBsLogInfo](#fevtbsloginfo)| ||基站软复位|[resetBsSystem](#resetbssystem)|[sEvtStateCode](#sevtstatecode)
[sEvtBsConnectState](#sevtbsconnectstate)| ||基站断电复位|[resetBsPower](#resetbspower)|[sEvtStateCode](#sevtstatecode)
[sEvtBsConnectState](#sevtbsconnectstate)| |基站升级|开启基站升级(内)|[startBsUpdate](#startbsupdate)|[sEvtStateCode](#sevtstatecode)
[fEvtBsUpateState](#fevtbsupatestate)
[fEvtBsUpdateProgress](#fevtbsupdateprogress)| ||下载字库(内)|[downloadFontLib](#downloadfontlib)|[sEvtStateCode](#sevtstatecode)
[fEvtBsFontLibState](#fevtbsfontlibstate)
[fEvtBsFontLibProgress](#fevtbsfontlibprogress)| ### 键盘管理 |功能归类|功能|API指令|指令事件| |---|---|---|---| |交互设置 - 用户内置状态语|设置用户内置状态语|[setKpUserStbMsg](#setkpuserstbmsg)|[fEvtKpUserStbMsg](#fevtkpuserstbmsg)| |交互设置 - 用户实时提示信息|实时设置提示反馈信息|[rtSetKpUserPrompt](#rtsetkpuserprompt)|[sEvtStateCode](#sevtstatecode)
[fEvtSetKpUserPrompt](#fevtsetkpuserprompt)| |在线状态获取|开启扫描在线键盘|[startGetKpOnline](#startgetkponline)|[sEvtStateCode](#sevtstatecode)
[fEvtKpOnlineMsg](#fevtkponlinemsg)| ||停止扫描在线键盘|[stopGetKpOnline](#stopgetkponline)|[sEvtStateCode](#sevtstatecode)| |维护功能 - 遥控功能|遥控键盘关机|[remoteKpPowerOff](#remotekppoweroff)|[sEvtStateCode](#sevtstatecode)| ||遥控键盘休眠|[remoteKpSleep](#remotekpsleep)|[sEvtStateCode](#sevtstatecode)| |维护功能 - 键盘升级|启动键盘无线升级(内)|[startKpFWUpdate](#startkpfwupdate)|[sEvtStateCode](#sevtstatecode)
[fEvtKpFWUpdateState](#fevtkpfwupdatestate)
[fEvtKpUpdateProgress](#fevtkpupdateprogress)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)| ||停止键盘无线升级(内)|[stopKpFWUpdate](#stopkpfwupdate)|[sEvtStateCode](#sevtstatecode)
[fEvtKpFWUpdateState](#fevtkpfwupdatestate)| ### 绑定 |功能归类|功能|API指令|指令事件| |---|---|---|---| |无线绑定|设置绑定信息到键盘|[rtSetKpBindingInfo](#rtsetkpbindinginfo)|[sEvtStateCode](#sevtstatecode)
[fEvtKpBindingInfo](#fevtkpbindinginfo)| ||清除键盘绑定信息|[clearKpBindingInfo](#clearkpbindinginfo)|[sEvtStateCode](#sevtstatecode)
[fEvtClearKpBindingInfo](#fevtclearkpbindinginfo)| ### 签到 |功能归类|功能|API指令|指令事件| |---|---|---|---| |同步签到|启动同步签到|[startKpSignIn](#startkpsignin)|[sEvtStateCode](#sevtstatecode)
[fEvtKpSignIn](#fevtkpsignin)| ||停止同步签到|[stopKpSignIn](#stopkpsignin)|[sEvtStateCode](#sevtstatecode)| |随时签到|启动随时签到|[rtStartKpSignIn](#rtstartkpsignin)|[sEvtStateCode](#sevtstatecode)
[fEvtKpSignIn](#fevtkpsignin)| ||停止随时签到|[rtStopKpSignIn](#rtstopkpsignin)|[sEvtStateCode](#sevtstatecode)| ||实时PIN签到授权|[rtSetKpLoginAllowed](#rtsetkploginallowed)|[sEvtStateCode](#sevtstatecode)
[fEvtKpLoginAllowed](#fevtkploginallowed)| ### 按键反馈 |功能归类|功能|API指令|指令事件| |---|---|---|---| |判断题|启动判断题答题|[startQATrueFalse](#startqatruefalse)|[sEvtStateCode](#sevtstatecode)
[fEvtQATrueFalse](#fevtqatruefalse)| ||停止判断题答题|[stopQATrueFalse](#stopqatruefalse)|[sEvtStateCode](#sevtstatecode)| |选择题|启动选择题答题|[startQAChoice](#startqachoice)|[sEvtStateCode](#sevtstatecode)
[fEvtQAChoice](#fevtqachoice)| ||停止选择题答题|[stopQAChoice](#stopqachoice)|[sEvtStateCode](#sevtstatecode)| |数字题|启动数字题答题|[startQANum](#startqanum)|[sEvtStateCode](#sevtstatecode)
[fEvtQANum](#fevtqanum)| ||停止数字题答题|[stopQANum](#stopqanum)|[sEvtStateCode](#sevtstatecode)| |抢答题|启动抢答题答题|[startQAQuicker](#startqaquicker)|[sEvtStateCode](#sevtstatecode)
[fEvtQAQuicker](#fevtqaquicker)| ||停止抢答题答题|[stopQAQuicker](#stopqaquicker)|[sEvtStateCode](#sevtstatecode)| ### 在线测验 |功能归类|功能|API指令|指令事件| |---|---|---|---| |标准测验|启动标准测验|[startKpExam](#startkpexam)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)
[fEvtFinalSubmit](#fevtfinalsubmit)| ||停止标准测验|[stopKpExam](#stopkpexam)|[sEvtStateCode](#sevtstatecode)| ||刷新作答数据|[rtGetKpExamData](#rtgetkpexamdata)|[fEvtKpExam](#fevtkpexam)| ||允许键盘提交后退回修改|[rtAllowEdited](#rtkpallowedited)|[sEvtStateCode](#sevtstatecode)
[fEvtFinalSubmit](#fevtfinalsubmit)| |多科测验|启动多科测验|[startKpMultiExam](#startkpmultiexam)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)
[fEvtFinalSubmit](#fevtfinalsubmit)| ||停止标准测验|[stopKpMultiExam](#stopkpmultiexam)|[sEvtStateCode](#sevtstatecode)| ## 公共事件 ### sEvtBsConnectState - **主题**: /basestation/\${baseSN}/receive - **功能描述**:基站连接成功时返回基站型号和基站SN,基站从已连接状态断开返回连接断开 - **参数说明** |参数名|类型|限制|非空|说明| |-----|-----|-----|-----|-----| |fun|string|-|是|事件类型| |dataTag|string||否|数据包标识,不需要时可传空字符串| |data|object|-|是|传送参数的对象| |+baseModel|int||否|基站的型号码| |+modelName|string||否|基站的型号名称| |+state|int||是|基站的连接状态
1-已连接
2-连接断开| |+version|string||否|基站固件版本| - **示例代码** ```Json //连接成功 { "fun":"sEvtBsConnectState", "dataTag":"1", "data":{ "state":1, "baseModel":218, "modelName":"B200", "version":"1.0.3" } } //连接断开 { "fun":"sEvtBsConnectState", "dataTag":"1", "data":{ "state":2 } } ``` ### sEvtBsChannelConflict - **主题**: /basestation/\${baseSN}/receive - **功能描述**:基站信道冲突时主动上报,应用程序可根据实际业务修改基站信道 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识,不需要时可传空字符串| |data|object|-|是|传送参数的对象| |+value|int||是|有冲突的信道| - **示例代码** ```Json { "fun":"sEvtBsChannelConflict", "dataTag":"1", "data":{ "value":5 //信道5有多个基站使用 } } ``` ### sEvtBsNfcResults - **主题**: /basestation/\${baseSN}/receive - **功能描述**:键盘刷卡时主动上报,如果超出基站容量会上报失败 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识,不需要时可传空字符串| |data|object|-|是|传送参数的对象| |+keySn|string||是|刷卡的键盘SN| |+value|int||是|刷卡的状态
1-成功
2-失败| - **示例代码** ```Json { "fun":"sEvtBsNfcResults", "dataTag":"1", //不需要时可传空字符串 "data":{ "keySn":"1234567890", "value":1 } } ``` ### sEvtBsKpOnlineMsg - **主题**: /basestation/\${baseSN}/receive - **功能描述**:键盘上线通知,主动上报,键盘升级成功后也会上报 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识| |data|object|-|是|传送参数的对象| |+keySn|string||是|键盘SN| |+version|string||是|键盘固件版本| |+model|int||是|键盘型号| - **示例代码** ```Json { "fun":"sEvtBsKpOnlineMsg", "dataTag":"1", "data":{ "keySn":"1234567890", "version":"1.0.0", "model":67 } } ``` ### sEvtStateCode - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站接收指令状态信息 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识| |data|object|-|是|传送参数的对象| |+funName|string||是|指令名称| |+code|string||是|状态码,含义见下表| |状态码|说明| |---|---| |0|指令收取成功| |10001|不能正确解析的JSON数据| |10002|解析JSON错误| |20001|基站未连接| |20002|功能不支持| |20003|基站SN格式不正确| |20004|参数错误| |20005|基站在答题中| |40001|升级功能只能支持一个基站| |50001|此功能必须指定基站| |60001|此功能必须指定键盘SN| - **示例代码** ```Json { "fun":"sEvtStateCode", "dataTag":"1", "data":{ "funName":"startKpRollCall", "code":"20005" } } ``` ## 基站管理 ### 基站连接 #### 方法 ##### getBsOnlineState - **主题**:/client/multiBase/send - **功能描述**:主动获取所有在线基站信息,在线基站回复 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|固定指令名称| |dataTag|string|-|否|数据包标识| - **示例代码** ```Json { "fun":"getBsOnlineState", "dataTag":"1" } ``` ##### getBsConnectState - **主题**:/client/\${baseSN}/send - **功能描述**:主动获取基站连接状态 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|固定指令名称| |dataTag|string|-|否|数据包标识| - **示例代码** ```Json { "fun":"getBsConnectState", "dataTag":"1" } ``` #### 事件 ##### [sEvtBsConnectState](#sevtbsconnectstate) 参见基站连接变化系统通知 ##### fEvtBsOnlineState - **主题**: /basestation/mutilBase/receive - **功能描述**:基站在线返回基站型号和基站SN - **参数说明** |参数名|类型|限制|非空|说明| |-----|-----|-----|-----|-----| |fun|string|-|是|事件类型| |dataTag|string|-|否|数据包标识,不需要时可传空字符串| |data|object|-|是|传送参数的对象| |+baseModel|int||否|基站的型号码| |+modelName|string||否|基站的型号名称| |+version|string||否|基站固件版本| |+baseSN|string||否|基站SN| - **示例代码** ```Json //连接成功 { "fun":"fEvtBsOnlineState", "dataTag":"1", "data":{ "baseModel":218, "modelName":"B200", "version":"1.0.3", "baseSN":"2024041401" } } ``` ### 基站授时 #### 方法 ##### timeSync - **主题**:/client/\${baseSN}/send - **功能描述**:发送当前时间戳给基站进行校时 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|固定指令名称| |dataTag|string|-|否|数据包标识| |data|object|-|是|传送参数的对象| |+timeStamp|long ||否|当前时间的时间戳| - **示例代码** ```Json { "fun":"timeSync", "dataTag":"1", "data":{ "timeStamp":1718247133290 } } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 返回指令的接收状态 ### 识别设置 #### 方法 ##### setBsSN - **主题**:/manage/\${baseSN}/send - **功能描述**:设置基站的SN,需订阅新SN的主题,以获取事件返回 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识| |data|object|-|是|传送参数的对象| |+value|string|数字|是|设置的基站SN,长度为10位数字| - **示例代码** ```Json { "fun":"setBsSN", "dataTag":"1", "data":{ "value":"2024041201" } } ``` ##### getBsModel - **主题**:/client/\${baseSN}/send - **功能描述**:获取基站型号 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"getBsModel", "dataTag":"1" } ``` ##### getBsFWVersion - **主题**:/client/\${baseSN}/send - **功能描述**:获取基站固件版本 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"getBsFWVersion", "dataTag":"1" } ``` ##### getBsBIC - **主题**:/client/\${baseSN}/send - **功能描述**:获取基站品牌识别码 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"getBsBIC", "dataTag":"1" } ``` ##### setBsBIC - **主题**:/manage/\${baseSN}/send - **功能描述**:设置基站品牌识别码 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+value|string||是|设置的基站品牌码| - **示例代码** ```Json { "fun":"setBsBIC", "dataTag":"1", "data":{ "value":"sunvote" } } ``` #### 事件 ##### fEvtBsSN - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站的出厂编码 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识| |data|object|-|是|传送参数的对象| |+value|string|-|是|基站的出厂编码| - **示例代码** ```Json { "fun":"fEvtBsSN", "dataTag":"1", "data":{ "value":"2024041201" } } ``` ##### fEvtBsModel - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站的型号 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识| |data|object|-|是|传送参数的对象| |+value|string|-|是|基站的型号名称| - **示例代码** ```Json { "fun":"fEvtBsModel", "dataTag":"1", "data":{ "value":"B200" } } ``` ##### fEvtBsFWVersion - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站的固件版本 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识| |data|object|-|是|传送参数的对象| |+value|string||是|基站的固件版本号| - **示例代码** ```Json { "fun":"fEvtBsFWVersion", "dataTag":"1", "data":{ "value":"1.0.3" } } ``` ##### fEvtBsBIC - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站的品牌码 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识| |data|object|-|是|传送参数的对象| |+value|string||是|基站的品牌码| - **示例代码** ```Json { "fun":"fEvtBsBIC", "dataTag":"1", "data":{ "value":"sunvote" } } ``` ### 组网设置 #### 方法 ##### getBsNetworkMode - **主题**:/client/\${baseSN}/send - **功能描述**:获取基站组网模式 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"getBsNetworkMode", "dataTag":"1" } ``` ##### setBsNetworkMode - **主题**:/client/\${baseSN}/send - **功能描述**:设置基站组网模式 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+value|string|-|是|设置的基站组网模式
1-配对模式
2-白名单模式| - **示例代码** ```Json { "fun":"setBsNetworkMode", "dataTag":"1", "data":{ "value":"1" } } ``` ##### getBsPairCode - **主题**:/client/\${baseSN}/send - **功能描述**:获取基站配对码 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"getBsPairCode", "dataTag":"1" } ``` ##### setBsPairCode - **主题**:/manage/\${baseSN}/send - **功能描述**:设置基站配对码 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|否|传送参数的对象| |+value|string|-|否|设置的基站配对码,8位数字| - **示例代码** ```Json { "fun":"setBsPairCode", "dataTag":"1", "data":{ "value":"04120101" } } ``` ##### getBsNfcLogin - **主题**:/client/\${baseSN}/send - **功能描述**:获取刷卡配对状态 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"getBsNfcLogin", "dataTag":"1" } ``` ##### setBsNfcLogin - **主题**:/client/\${baseSN}/send - **功能描述**:设置基站刷卡配对状态 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+value|string|-|是|设置的基站刷卡配对状态
0-关闭刷卡配对
1-开启刷卡配对| - **示例代码** ```Json { "fun":"setBsNfcLogin", "dataTag":"1", "data":{ "value":"1" } } ``` ##### getBsChannel - **主题**:/client/\${baseSN}/send - **功能描述**:获取基站信道 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"getBsChannel", "dataTag":"1" } ``` ##### setBsChannel - **主题**:/client/\${baseSN}/send - **功能描述**:设置基站信道 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+value|string|-|是|设置的基站信道,可设范围:1-80| - **示例代码** ```Json { "fun":"setBsChannel", "dataTag":"1", "data":{ "value":"23" } } ``` #### 事件 ##### fEvtBsNetworkMode - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站组网模式 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识,可传空字符串| |data|object|-|是|传送参数的对象| |+value|string||是|基站的组网模式
1-配对模式
2-白名单模式| - **示例代码** ```Json { "fun":"fEvtBsNetworkMode", "dataTag":"1", "data":{ "value":"1" } } ``` ##### fEvtBsPairCode - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站配对码 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识,可传空字符串| |data|object|-|是|传送参数的对象| |+value|string||是|基站的配对码| - **示例代码** ```Json { "fun":"fEvtBsPairCode", "dataTag":"1", "data":{ "value":"123456" } } ``` ##### fEvtBsChannel - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站信道 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识,可传空字符串| |data|object|-|是|传送参数的对象| |+value|string||是|基站信道| - **示例代码** ```Json { "fun":"fEvtBsChannel", "dataTag":"1", "data":{ "value":"5" } } ``` ##### fEvtBsNfcLogin - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站是否允许NFC刷卡 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识,可传空字符串| |data|object|-|是|传送参数的对象| |+value|string||是|0-关闭 1-开启| - **示例代码** ```Json { "fun":"fEvtBsNfcLogin", "dataTag":"1", "data":{ "value":"1" } } ``` ### 登录设置 #### 方法 ##### getBsSSID 获取基站登录名称 - **主题**:/client/\${baseSN}/send - **功能描述**:获取基站登录名称 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|固定指令名称| |dataTag|string|-|否|数据包标识| - **示例代码** ```Json { "fun":"getBsSSID", "dataTag":"1" } ``` ##### setBsSSID - **主题**:/client/\${baseSN}/send - **功能描述**:设置基站登录名称 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+value|string||是|设置的基站SSID,最长12字符| - **示例代码** ```Json { "fun":"setBsSSID", "dataTag":"1", "data":{ "value":"1901班" } } ``` #### 事件 ##### fEvtBsSSID - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站名称 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识,可传空字符串| |data|object|-|是|传送参数的对象| |+value|string||是|基站名称| - **示例代码** ```Json { "fun":"fEvtBsSSID", "dataTag":"1", "data":{ "value":"1901班" } } ``` ### 键盘统一设置 #### 方法 ##### getBsKpLanguage - **主题**:/client/\${baseSN}/send - **功能描述**:获取键盘语言 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"getBsKpLanguage", "dataTag":"1" } ``` ##### setBsKpLanguage - **主题**:/client/\${baseSN}/send - **功能描述**:设置键盘语言 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+value|string||是|设置键盘显示的语言
1-简体中文
2-英文| - **示例代码** ```Json { "fun":"setBsKpLanguage", "dataTag":"1", "data":{ "value":"1" } } ``` ##### getBsKpSleepLevel - **主题**:/manage/\${baseSN}/send - **功能描述**:获取键盘休眠时间等级 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"getBsKpSleepLevel", "dataTag":"1" } ``` ##### setBsKpSleepLevel - **主题**:/manage/\${baseSN}/send - **功能描述**:设置键盘休眠时间等级 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+value|string||是|设置键盘休眠的时间等级
0-30秒
1-2分钟
2-10分钟
3-45分钟| - **示例代码** ```Json { "fun":"setBsKpSleepLevel", "dataTag":"1", "data":{ "value":"1" } } ``` ##### setBsKpPauseSleep - **主题**:/manage/\${baseSN}/send - **功能描述**:设置键盘暂停休眠是否开启
注意:请谨慎使用本功能,务必在相关测试或功能完成后关闭,否则可能会导致键盘异常耗电
设置单次生效,基站拔插后复位成关闭状态
- **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+value|string||是|设置键盘暂停休眠是否开启
0-关闭暂停休眠
1-开启暂停休眠| - **示例代码** ```Json { "fun":"setBsKpPauseSleep", "dataTag":"1", "data":{ "value":"1" } } ``` #### 事件 ##### fEvtBsKpLanguage - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回键盘语言 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+value|string||是|键盘显示的语言
1-简体中文
2-英文| - **示例代码** ```Json { "fun":"fEvtBsKpLanguage", "dataTag":"1", "data":{ "value":"1" } } ``` ##### fEvtBsKpSleepLevel - **主题**: /manage/\${baseSN}/receive - **功能描述**:返回键盘休眠时间等级 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+value|string||是|键盘休眠的时间等级
0-30秒
1-2分钟
2-10分钟
3-45分钟| - **示例代码** ```Json { "fun":"fEvtBsKpSleepLevel", "dataTag":"1", "data":{ "value":"1" } } ``` ##### fEvtBsKpPauseSleep - **主题**: /manage/\${baseSN}/receive - **功能描述**:返回暂停键盘休眠开启状态 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+value|string||是|返回暂停键盘休眠开启状态
0-未开启暂停休眠
1-开启暂停休眠| - **示例代码** ```Json { "fun":"fEvtBsKpPauseSleep", "dataTag":"1", "data":{ "value":"0" } } ``` ### 配对模式 #### 方法 ##### startBsFastPair - **主题**:/client/\${baseSN}/send - **功能描述**:启动快速配对,键盘配对成功返回键盘信息 [sEvtBsKpOnlineMsg](#sevtbskponlinemsg) - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```json { "fun":"startBsFastPair", "dataTag":"1" } ``` ##### stopBsFastPair - **主题**:/client/\${baseSN}/send - **功能描述**:停止快速配对 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```json { "fun":"stopBsFastPair", "dataTag":"1" } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回此事件 ##### [sEvtBsKpOnlineMsg](#sevtbskponlinemsg) 键盘配对成功后在线返回此事件 ### 白名单模式 #### 方法 ##### getBsWhitelist - **主题**:/client/\${baseSN}/send - **功能描述**:获取基站白名单列表 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```json { "fun":"getBsWhitelist", "dataTag":"1" } ``` ##### setBsWhitelist - **主题**:/client/\${baseSN}/send - **功能描述**:设置基站白名单列表,将基站白名单替换为写入的键盘SN列表 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array|-|是|待写入的键盘SN数组,最多不超过200
键盘SN为10位数字| - **示例代码** ```json { "fun":"setBsWhitelist", "dataTag":"1", "data":{ "keySns":["2024021001","2024021002","2024021003","2024021004"] } } ``` ##### clearBsWhitelist - **主题**:/client/\${baseSN}/send - **功能描述**:清空基站白名单列表 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```json { "fun":"clearBsWhitelist", "dataTag":"1" } ``` ##### addBsWhitelist - **主题**:/client/\${baseSN}/send - **功能描述**:添加键盘至基站白名单列表 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array|-|是|待添加的键盘SN列表
键盘SN为10位数字| - **示例代码** ```json { "fun":"addBsWhitelist", "dataTag":"1", "data":{ "keySns":["2024021001"] } } ``` ##### delBsWhitelist - **主题**:/client/\${baseSN}/send - **功能描述**:从基站白名单列表中删除键盘 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array|-|是|待删除的键盘SN列表
键盘SN为10位数字| - **示例代码** ```json { "fun":"delBsWhitelist", "dataTag":"1", "data":{ "keySns":["2024021001"] } } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回此事件 ##### fEvtBsWhitelist - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回基站白名单列表 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array||是|基站当前的白名单列表| - **示例代码** ```Json { "fun":"fEvtBsWhitelist", "dataTag":"1", "data":{ "keySns":["2024021001","2024021002","2024021003","2024021004"] } } ``` ##### fEvtSetBsWhitelist - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回设置白名单状态 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| |++keySns|array||是|键盘SN数组| |++state|int||是|键盘SN的写入状态
0-写入成功
1-写入失败| - **示例代码** ```Json { "fun":"fEvtSetBsWhitelist", "dataTag":"1", "data":[{ "keySns":["2024021001","2024021002"], "state":0 },{ "keySns":["1211"], "state":1 }] } ``` ##### fEvtAddBsWhitelist - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回增加键盘状态 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| |++keySns|array||是|键盘SN数组| |++state|int||是|键盘的增加状态
0-增加成功
1-增加失败| - **示例代码** ```Json { "fun":"fEvtAddBsWhitelist", "dataTag":"1", "data":[{ "keySns":["2024021001","2024021002"], "state":0 },{ "keySns":["1211"], "state":1 }] } ``` ##### fEvtDelBsWhitelist - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回删除键盘状态 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| |++keySns|array||是|键盘SN数组| |++state|int||是|键盘的删除状态
0-删除成功
1-删除失败| - **示例代码** ```Json { "fun":"fEvtDelBsWhitelist", "dataTag":"1", "data":[{ "keySns":["2024021002"], "state":0 },{ "keySns":["2024021001"], "state":1 }] } ``` ### 网络参数设置 #### 方法 ##### getBsTcpipParams - **主题**:/client/\${baseSN}/send - **功能描述**:获取基站TCP/IP参数 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"getBsTcpipParams", "dataTag":"1" } ``` ##### setBsTcpipParams - **主题**:/client/\${baseSN}/send - **功能描述**:设置基站TCP/IP参数 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+ip|string||否|IP地址| |+mask|string||否|子网掩码| |+gateway|string||否|网关地址| |+ipAllocation|int||否|基站IP获取方式
0 - 手动指定
1 - DHCP获取| - **示例代码** ```Json { "fun":"setBsTcpipParams", "dataTag":"1", "data":{ "ip":"192.168.0.10", "mask":"255.255.255.0", "gateway":"192.168.0.1", "ipAllocation":1 } } ``` ##### getBsMqttParams - **主题**:/client/\${baseSN}/send - **功能描述**:获取基站MQTT参数 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"getBsMqttParams", "dataTag":"1" } ``` ##### setBsMqttParams - **主题**:/client/\${baseSN}/send - **功能描述**:设置基站MQTT参数 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+server|string||是|服务器IP地址| |+port|int||是|端口,默认1883| |+userName|string||否|连接服务器的用户名,可不设置| |+password|string||否|连接服务器的密码,可不设置| |+interval|int|>=10|否|基站连接服务器失败后重连的间隔时长,单位秒| - **示例代码** ```Json { "fun":"setBsMqttParams", "dataTag":"1", "data":{ "server":"192.168.10.10", "port":1883, "userName":"", "password":"", "interval":30 } } ``` #### 事件 ##### fEvtBsTcpipParams - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站TCP/IP参数 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+mac|string||是|MAC地址| |+ip|string||是|IP地址| |+mask|string||是|子网掩码| |+gateway|string||是|网关地址| |+ipAllocation|int||否|基站IP获取方式
0 - 手动指定
1 - DHCP获取| - **示例代码** ```Json { "fun":"fEvtBsTcpipParams", "dataTag":"1", "data":{ "mac":"FF:FF:FF:FF:FF:FF", "ip":"192.168.0.10", "mask":"255.255.255.0", "gateway":"192.168.0.1", "ipAllocation":1 } } ``` ##### fEvtBsMqttParams - **主题**: /basestation/\${baseSN}/receive - **功能描述**:返回基站MQTT参数 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+server|string||是|服务器地址,IP| |+port|int||是|端口,默认1883| |+userName|string||否|连接服务器的用户名,可不设置| |+password|string||否|连接服务器的密码,可不设置| |+interval|int|>=10|否|基站连接服务器失败后重连的间隔时长,单位秒| - **示例代码** ```Json { "fun":"fEvtBsMqttParams", "dataTag":"1", "data":{ "server":"192.168.10.10", "port":1883, "userName":"", "password":"", "interval":30 } } ``` ### 基站维护 #### 方法 ##### getBsLogInfo - **主题**:/manage/\${baseSN}/receive - **功能描述**:获取基站日志,用于出现故障需要排查问题时获取基站内部日志记录 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"getBsLogInfo", "dataTag":"1" } ``` ##### resetBsSystem - **主题**:/client/\${baseSN}/send - **功能描述**:软复位基站(公共主题可用,但不体现在外部版本协议中) - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"resetBsSystem", "dataTag":"1" } ``` ##### resetBsPower - **主题**:/client/\${baseSN}/send - **功能描述**:断电复位基站(公共主题可用,但不体现在外部版本协议中) - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"resetBsPower", "dataTag":"1" } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 返回指令的接收状态 注意:内部指令的接收状态需从**主题: /manage/\${baseSN}/receive** 返回 ##### [sEvtBsConnectState](#sevtbsconnectstate) 复位基站后,基站重新连接成功后上报 ##### fEvtBsLogInfo - **主题**: /manage/\${baseSN}/receive - **功能描述**:返回基站存储的日志内容 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+index|int||是|数据包序号,从1开始,传0代表日志已传完| |+info|string||是|日志内容
日志的时间依赖于基站授时,需要加上时区得到具体的时间| - **示例代码** ```Json { "fun":"fEvtBsLogInfo", "dataTag":"1", "data":{ "index":1, "info":"XXXXXXXXXXXXX" } } ``` ### 基站升级 #### 方法 ##### startBsUpdate - **主题**:/manage/\${baseSN}/send - **功能描述**:基站固件升级 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+partition|int||是|存储区域
1-备份区 使用备份区固件的方法:打开基站盖子,按住SW1按钮,然后上电,这时基站固件就会更新成备份区的固件
2-更新区| |+url|string||是|待升级的固件地址,可访问的网络url| |+version|string||是|待升级的基站固件版本| |+crc|uint||是|固件CRC校验码,10进制数字| - **示例代码** ```Json { "fun":"startBsUpdate", "dataTag":"1", "data":{ "partition":2, "url":"http://192.168.10.10/V1.0.3.bin", "version":"1.0.3", "crc":1429319861 } } ``` ##### downloadFontLib - **主题**:/manage/\${baseSN}/send - **功能描述**:下载更新基站字库文件 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+partition|int||是|存储区域
1-备份区
2-更新区| |+url|string||是|待下载的字库地址,可访问的网络url| |+version|string||是|待升级的字库版本| |+crc|int||是|字库CRC校验码,10进制数字| - **示例代码** ```Json { "fun":"downloadFontLib", "dataTag":"1", "data":{ "partition":2, "url":"http://192.168.10.10/V1.0.3.bin", "version":"1.0.3", "crc":1429319861 } } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 返回升级指令的接收状态 注意:升级指令的接收状态需从**主题: /manage/\${baseSN}/receive** 返回 ##### fEvtBsUpateState - **主题**: /manage/\${baseSN}/receive - **功能描述**:返回基站启动升级状态 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+state|int||是|启动升级状态
0 - 准备升级
1 - 升级成功
2 - 升级失败 |+msg|string||否|返回的失败原因 - **示例代码** ```Json { "fun":"fEvtBsUpateState", "dataTag":"1", "data":{ "state":2, "msg":"error msg" } } ``` ##### fEvtBsUpdateProgress - **主题**: /manage/\${baseSN}/receive - **功能描述**:返回基站升级进度 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+progress|int||是|升级进度,百分比| - **示例代码** ```Json { "fun":"fEvtBsUpdateProgress", "dataTag":"1", "data":{ "progress":20 } } ``` ##### fEvtBsFontLibState - **主题**: /manage/\${baseSN}/receive - **功能描述**:返回基站下载字库状态 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+state|int||是|启动升级状态
0 - 准备下载
1 - 下载完成
2 - 下载失败 |+msg|string||否|返回的失败原因 - **示例代码** ```Json { "fun":"fEvtBsFontLibState", "dataTag":"1", "data":{ "state":2, "msg":"error msg" } } ``` ##### fEvtBsFontLibProgress - **主题**: /manage/\${baseSN}/receive - **功能描述**:返回基站下载字库进度 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+progress|int||是|下载进度,百分比| - **示例代码** ```Json { "fun":"fEvtBsFontLibProgress", "dataTag":"1", "data":{ "progress":20 } } ``` ## 键盘管理 ### 交互设置 #### 方法 ##### setKpUserStbMsg - **主题**:/client/\${baseSN}/send - **功能描述**:设置用户内置状态语 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+online|string||是|在线状态显示的待机语
空字符串清除| |+offline|string||是|离线状态显示的待机语
空字符串清除| |+submitting|string||是|提交中状态语
空字符串清除| |+submitted|string||是|已提交状态语
空字符串清除| - **示例代码** ```Json { "fun":"setKpUserStbMsg", "dataTag":"1", "data":{ "online":"请认真听讲", "offline":"离线", "submitting":"提交中", "submitted":"提交成功" } } ``` ##### rtSetKpUserPrompt - **主题**:/client/\${baseSN}/send - **功能描述**:实时设置提示反馈信息 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|否|传送参数的对象数组| |++keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘
注意:不允许空数组和指定SN数组混合使用
包含空数组默认为全部在线键盘,其他指定键盘无效
| |++info|string||否|设置的反馈信息
不同键盘可设置不同反馈信息| - **示例代码** ```json //分别提示 { "fun":"rtSetKpUserPrompt", "dataTag":"1", "data": [ { "keySns": ["1479824643","1479824645"], "info": "答对了" }, { "keySns": ["1479824644"], "info": "答错了" } ] } //统一提示 { "fun":"rtSetKpUserPrompt", "dataTag":"1", "data": [ { "keySns": [], "info": "答题结束" } ] } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回接收状态 ##### fEvtKpUserStbMsg - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回设置状态语的状态 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|否|传送参数的对象| |+state|string||是|设置状态语是否成功
0 - 成功
1 - 失败| - **示例代码** ```Json { "fun":"fEvtKpUserStbMsg", "dataTag":"1", "data":{ "state":"0" } } ``` ##### fEvtSetKpUserPrompt - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回实时设置提示语是否成功 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| |++keySn|string||是|设置提示语信息的键盘SN| |++state|string||是|设置的提示语是否成功
0 - 成功
1 - 失败| - **示例代码** ```json { "fun":"fEvtSetKpUserPrompt", "dataTag":"1", "data": [ { "keySn": "1479824643", "state": "0" }, { "keySn": "1479824645", "state": "0" }, { "keySn": "1479824644", "state": "1" } ] } ``` ### 在线状态 #### 方法 ##### startGetKpOnline - **主题**:/client/\${baseSN}/send - **功能描述**:开始获取键盘在线信息,键盘在线返回键盘信息 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```json { "fun":"startGetKpOnline", "dataTag":"1" } ``` ##### stopGetKpOnline - **主题**:/client/\${baseSN}/send - **功能描述**:停止获取键盘在线信息 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```json { "fun":"stopGetKpOnline", "dataTag":"1" } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回此事件 ##### fEvtKpOnlineMsg - **主题**: /basestation/\${baseSN}/receive - **功能描述**:主动获取在线键盘时,在线键盘状态报告 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|事件名称| |dataTag|string|-|否|数据包标识| |data|object|-|是|传送参数的对象| |+keySn|string||是|键盘SN| |+version|string||是|键盘固件版本| |+model|int||是|键盘型号| |+voltage|double||是|键盘电量(待键盘修改成百分比)| - **示例代码** ```Json { "fun":"fEvtKpOnlineMsg", "dataTag":"1", "data":{ "keySn":"1234567890", "version":"1.0.0", "model":67, "voltage":2.8 } } ``` ### 维护功能 #### 方法 ##### remoteKpPowerOff - **主题**:/client/\${baseSN}/send - **功能描述**:遥控键盘关机 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象数组| |+keySns|array||否|需要执行指令的键盘SN数组,
空数组表示所有键盘| - **示例代码** ```Json { "fun":"remoteKpPowerOff", "dataTag":"1", "data":{ "keySns":["1479824644"] } } ``` ##### remoteKpSleep - **主题**:/client/\${baseSN}/send - **功能描述**:遥控键盘休眠 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象数组| |+keySns|array||否|需要执行指令的键盘SN数组,空数组表示所有键盘| - **示例代码** ```Json { "fun":"remoteKpSleep", "dataTag":"1", "data":{ "keySns":["1479824644"] } } ``` ##### startKpFWUpdate - **主题**:/manage/\${baseSN}/send - **功能描述**:键盘升级 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+partition|int||是|存储区域
1-备份区
2-更新区| |+url|string||是|待升级的固件地址,可访问的网络url| |+version|string||是|待升级的固件版本号| |+crc|uint||是|固件CRC校验码,10进制数字| - **示例代码** ```Json { "fun":"startKpFWUpdate", "dataTag":"1", "data":{ "partition":2, "url":"http://192.168.10.10/V1.0.3.bin", "version":"1.0.3", "crc":1429319861 } } ``` ##### stopKpFWUpdate - **主题**:/manage/\${baseSN}/send - **功能描述**:停止键盘升级 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| - **示例代码** ```Json { "fun":"stopKpFWUpdate", "dataTag":"1" } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 返回升级指令的接收状态 注意:升级指令的接收状态需从**主题: /manage/\${baseSN}/receive** 返回 ##### fEvtKpFWUpdateState - **主题**: /manage/\${baseSN}/receive - **功能描述**:返回键盘升级状态 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+state|int||是|升级状态
0 - 进入升级
1 - 升级成功
2 - 升级失败
3 - 已停止(接收到停止指令) |+msg|string||否|返回的失败原因 - **示例代码** ```Json { "fun":"fEvtKpFWUpdateState", "dataTag":"1", "data":{ "state":0, "msg":"" } } ``` ##### fEvtKpUpdateProgress - **主题**: /manage/\${baseSN}/receive - **功能描述**:返回键盘升级进度 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+progress|int||是|升级进度,百分比| - **示例代码** ```Json { "fun":"fEvtKpUpdateProgress", "dataTag":"1", "data":{ "progress":20 } } ``` ## 绑定 ### 无线绑定 #### 方法 ##### rtSetKpBindingInfo - **主题**:/client/\${baseSN}/send - **功能描述**:实时设置绑定信息到键盘 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组,不可为空| |++keySn|string||是|需要设置绑定信息的键盘SN| |++info|string||是|设置的绑定信息,一般为学生姓名
最长48个字符,显示在键盘左上角| - **示例代码** ```json { "fun":"rtSetKpBindingInfo", "dataTag":"1", "data": [ { "keySn": "1479824643", "info": "张三" }, { "keySn": "1479824644", "info": "李四" } ] } ``` ##### clearKpBindingInfo - **主题**:/client/\${baseSN}/send - **功能描述**:清除键盘绑定信息 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象数组| |+keySns|array||否|需要清除绑定信息键盘SN数组,
空数组表示清空所有键盘| - **示例代码** ```json { "fun":"clearKpBindingInfo", "dataTag":"1", "data": { "keySns":["1479824643","1479824644","1479824645"] } } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回接收状态 ##### fEvtKpBindingInfo - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回键盘实时设置绑定信息的状态是否成功 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|否|传送参数的对象数组| |++keySn|string||是|需要设置绑定信息的键盘SN| |++state|string||是|设置的绑定信息是否成功
0 - 成功
1 - 失败| - **示例代码** ```json { "fun":"fEvtKpBindingInfo", "dataTag":"1", "data": [ { "keySn": "1479824643", "state": "0" }, { "keySn": "1479824644", "state": "1" } ] } ``` ##### fEvtClearKpBindingInfo - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回清空绑定信息的指令状态是否成功 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|否|传送参数的对象| |+state|string||是|设置的绑定信息是否成功
0 - 成功
1 - 失败| - **示例代码** ```json { "fun":"fEvtClearKpBindingInfo", "dataTag":"1", "data": { "state": "0" } } ``` ## 签到 ### 同步签到 #### 方法 ##### startKpSignIn - **主题**:/client/\${baseSN}/send - **功能描述**:启动同步签到 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传递参数的对象| |+mode|int|-|是|签到模式
1-按键签到,可指定按键
2-PIN码签到,可指定PIN码长度
3-指纹签到(暂不支持)| |+allowModify |int|-|是 | 修改模式
0-不可修改
1-可以修改(默认值)| |+pinLen |int|-|是| 可输入pin码的最大长度 1≤N≤14 | |+keyValue |int|-|是 | 指定按键键值
0: 未指定(OK键签到)
1-9: 按键1-9
10: 按键0
11: 上键
12: 下键
13: OK键
14: ESC键
15: Menu键 | |+tipTitle |string|-|否| 提示标题,长度最多不超过16个字节| - **示例代码** ```Json //按键签到 { "fun":"startKpSignIn", "dataTag":"1", "data":{ "mode":1, "allowModify":1, "keyValue":5, "tip":"请按5键签到" } } //pin签到 { "fun":"startKpSignIn", "dataTag":"1", "data":{ "mode":2, "allowModify":1, "pinLen":6, "tip":"请输入PIN码签到" } } ``` ##### stopKpSignIn - **主题**:/client/\${baseSN}/send - **功能描述**:停止同步签到 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```Json { "fun":"stopKpSignIn", "dataTag":"1" } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回接收状态 ##### [fEvtKpSignIn](#fevtkpsignin) 返回键盘提交的签到数据 ### 随时签到 #### 方法 ##### rtStartKpSignIn - **主题**:/client/\${baseSN}/send - **功能描述**:启动随时签到绑定 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传递参数的对象| |+mode|int|-|是|签到模式
1-按键签到,按OK键签到自动授权(暂不支持)
2-PIN码签到,输入pin码后由应用程序决定是否授权| - **示例代码** ```json { "fun":"rtStartKpSignIn", "dataTag":"1", "data":{ "mode":2 } } ``` ##### rtStopKpSignIn - **主题**:/client/\${baseSN}/send - **功能描述**:停止随时签到绑定 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```json { "fun":"rtStopKpSignIn", "dataTag":"1" } ``` ##### rtSetKpLoginAllowed - **主题**:/client/\${baseSN}/send - **功能描述**:实时PIN绑定授权,可取消授权 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传递参数的对象| |+keySn|string|-|是|键盘SN| |+state|int|-|是|1-授权成功
2-授权失败
3-解除已授权| - **示例代码** ```json { "fun":"rtSetKpLoginAllowed", "dataTag":"1", "data":{ "keySn":"1479824643", "state":1 } } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回接收状态 ##### fEvtKpSignIn - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回键盘提交签到信息 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| - **示例代码** ```json { "fun":"fEvtKpSignIn", "dataTag":"1", "data": [{ "keySn": "1234567890", "keyValue":"1004", "keyTime":30.2 }, { "keySn": "1234567891", "keyValue":"1003", "keyTime":32.5 } ] } ``` ##### fEvtKpLoginAllowed - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回键盘授权状态 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySn|string||是|键盘SN| |+state|string||是|0-执行成功
1-执行失败| - **示例代码** ```json { "fun":"fEvtKpLoginAllowed", "dataTag":"1", "data": { "keySn":"1479824643", "state":"1" } } ``` ## 按键反馈 ### 判断题 #### 方法 ##### startQATrueFalse - **主题**:/client/\${baseSN}/send - **功能描述**:启动判断题答题 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| |+count|int||是|题目数量,1-16,>1多题快答| |+mode|int||是|1 - True/False 对/错
2 - Yes/No 是/否
3 - √/×| |+allowModify|int||是|0 - 不允许修改
1 - 允许修改| |+tip|string||否|提示的标题,长度不超过16字符| |+simParams|object||否|内部模拟测试参数设置对象| |++answer|string||是|预设提交的按键值
1-对
2-错| - **示例代码** ```json { "fun":"startQATrueFalse", "dataTag":"1", "data":{ "keySns":[], "count":1, "mode":1, "allowModify":1, "tip":"请判断对错", "simParams":{ "answer":"1" } } } ``` ##### stopQATrueFalse - **主题**:/client/\${baseSN}/send - **功能描述**:停止判断题答题 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```json { "fun":"stopQATrueFalse", "dataTag":"1" } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回接收状态 ##### fEvtQATrueFalse - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回键盘提交答题信息 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值
1-对
2-错| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| - **示例代码** ```json { "fun":"fEvtQATrueFalse", "dataTag":"1", "data": [{ "keySn": "1234567890", "keyValue":"1", "keyTime":30.2 } ] } ``` ### 选择题 #### 方法 ##### startQAChoice - **主题**:/client/\${baseSN}/send - **功能描述**:启动选择题答题 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| |+count|int||是|题目数量,1-16,>1多题快答
optionalN >1时无效| |+mode|int||是|显示模式
1:显示字母(默认值)
2:显示数字 | |+lessMode|int||是|迫选模式
0:可缺选(默认值)
1:不可缺选
2:允许重复输入
3:允许重复输入且不可缺选 | |+options|int||是|选项数量,1≤M≤10(默认值4)| |+optionalN|int||是|可选项个数,1≤N≤M(默认值1)| |+allowModify|int||是|修改模式
0 - 不允许修改
1 - 允许修改| |+tip|string||否|提示的标题,长度不超过16字符| |+simParams|object||否|内部模拟测试参数设置对象| |++answer|string||是|预设提交的按键值| - **示例代码** ```json { "fun":"startQAChoice", "dataTag":"1", "data":{ "keySns":[], "mode": 1, "count":1, "lessMode": 0, "options": 4, "optionalN": 1, "allowModify":1, "tip":"请选择", "simParams":{ "answer":"A" } } } ``` ##### stopQAChoice - **主题**:/client/\${baseSN}/send - **功能描述**:停止选择题答题 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```json { "fun":"stopQAChoice", "dataTag":"1" } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回接收状态 ##### fEvtQAChoice - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回键盘提交答题信息 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| - **示例代码** ```json { "fun":"fEvtQAChoice", "dataTag":"1", "data": [{ "keySn": "1234567890", "keyValue":"A", "keyTime":3.2 }] } ``` ### 数字题 #### 方法 ##### startQANum - **主题**:/client/\${baseSN}/send - **功能描述**:启动数字题答题 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| |+mode|int||是|模式
0:无规则 (S6最多16位,T2最多14位)
1:带小数位上下限(T2不支持)| |+digits|int||是|小数位数,范围0-2,mode=1时有效 |+numMin|int||是|可输入下限,mode=1有效,范围0-100| |+numMax|int||是|可输入上限,mode=1有效,范围0-100| |+allowModify|int||是|修改模式
0 - 不允许修改
1 - 允许修改| |+tip|string||否|提示的标题,长度不超过16字符| |+simParams|object||否|内部模拟测试参数设置对象| |++answer|string||是|预设提交的按键值| - **示例代码** ```json { "fun":"startQANum", "dataTag":"1", "data":{ "keySns":[], "mode": 1, "digits": 1, "numMin": 0, "numMax": 100, "allowModify":1, "tip":"请输入数字", "simParams":{ "answer":"10" } } } ``` ##### stopQANum - **主题**:/client/\${baseSN}/send - **功能描述**:停止数字题答题 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```json { "fun":"stopQANum", "dataTag":"1" } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回接收状态 ##### fEvtQANum - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回键盘提交答题信息 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| - **示例代码** ```json { "fun":"fEvtQANum", "dataTag":"1", "data": [{ "keySn": "1234567890", "keyValue":"10", "keyTime":3.2 }] } ``` ### 抢答题 #### 方法 ##### startQAQuicker - **主题**:/client/\${baseSN}/send - **功能描述**:启动抢答题答题 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| |+mode|int||是|模式
0:普通抢答| |+allowModify|int||是|修改模式
0 - 不允许修改
1 - 允许修改| |+tip|string||否|提示的标题,长度不超过16字符| |+simParams|object||否|内部模拟测试参数设置对象| |++answer|string||是|预设提交的按键值| - **示例代码** ```json { "fun":"startQAQuicker", "dataTag":"1", "data":{ "keySns":[], "mode": 0, "allowModify":1, "tip":"请按键抢答", "simParams":{ "answer":"1" } } } ``` ##### stopQAQuicker - **主题**:/client/\${baseSN}/send - **功能描述**:停止抢答答题 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```json { "fun":"stopQAQuicker", "dataTag":"1" } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回接收状态 ##### fEvtQAQuicker - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回键盘提交答题信息 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| - **示例代码** ```json { "fun":"fEvtQAQuicker", "dataTag":"1", "data": [{ "keySn": "1234567890", "keyValue":"1", "keyTime":3.2 }] } ``` ## 在线测验 ### 标准测验 #### 方法 ##### startKpExam - **主题**:/client/\${baseSN}/send - **功能描述**:启动标准测验 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+examNo|int||是|0-9999
=0,新的测验
>0时,与上次启动卷号一致继续测验,不一致进入新的测验| |+mode|int||是|显示模式
0-不显示开头
1-显示“Q”开头
2-显示“题”开头| |+questions|array||是|题目详情| |++symbol | string||是 | 题号前缀,分级标识为-,可为空,为空表示1级大题
最多为三级题号,即最多可以设为x-x-| |++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断 | |++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。| |++startNo | int||是| 起始题号 | |++count | int||是| 题目数量 | |+simParams|object||否|内部模拟测试参数设置对象| |++answer|array||是|预设提交的按键值
格式为"单选题答案,多选题答案;
数字题答案;判断题答案(1对2错)"
如["A","ABCD","10","1"]| - **示例代码** ```json //自定义题号 { "fun":"startKpExam", "dataTag":"1", "data":{ "mode": 0, "examNo": 1, "questions": [{ //题号1-1-1 到1-1-10 共10题单选 "symbol": "1-1-", "quesType": 1, "startNo": 1, "count":10 }, { //题号2-2和2-3共两题 多选题,5个选项 "symbol": "2-", "quesType": 2, "option": 5, "startNo": 2, "count":2 }, { //题号3-1和3-2共两道数字题 "symbol": "3-", "quesType": 3, "startNo": 1, "count":2 }, { //题号4和5 ,判断题 "symbol": "", "quesType": 4, "startNo": 4, "count":2 }], "simParams":{ "answer":["A","ABCD","10","1"] } } } //显示Q开头 { "fun":"startKpExam", "dataTag":"1", "data":{ "mode": 1, "examNo": 1, "questions": [{ //Q1-Q20,单选题 "symbol": "", "quesType": 1, "startNo": 1, "count":20 }], "simParams":{ "answer":["A","","",""] } } } //显示题开头 { "fun":"startKpExam", "dataTag":"1", "data":{ "mode": 2, "examNo": 1, "questions": [{ //题1-题20,单选题 "symbol": "", "quesType": 1, "startNo": 1, "count":20 }], "simParams":{ "answer":["A","","",""] } } } ``` ##### stopKpExam - **主题**:/client/\${baseSN}/send - **功能描述**:停止标准测验 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```json { "fun":"stopKpExam", "dataTag":"1" } ``` ##### rtGetKpExamData - **主题**:/client/\${baseSN}/send - **功能描述**:刷新作答数据 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| - **示例代码** ```json { "fun":"rtGetKpExamData", "dataTag":"1", "data":{ "keySns":["1234567890","1234567891"] } } ``` ##### rtKpAllowEdited - **主题**:/client/\${baseSN}/send - **功能描述**:键盘提交后,允许键盘修改答案 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| - **示例代码** ```json { "fun":"rtKpAllowEdited", "dataTag":"1", "data":{ "keySns":["1234567890","1234567891"] } } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回接收状态 ##### fEvtKpExam - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回键盘提交答题信息 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B
注意:如启动的是多科测验,键盘提交的题目序号对应启动时下发的题目总序号,不按科目区分| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| - **示例代码** ```json { "fun":"fEvtKpExam", "dataTag":"1", "data": [{ "keySn": "1234567890", "keyValue":"1:A;2:B", "keyTime":3.2 }, { "keySn": "1234567891", "keyValue":"1:B;2:B", "keyTime":3.5 } ] } ``` ##### fEvtFinalSubmit - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回键盘手动交卷标识 - **参数说明** |参数名|类型|限制|非空|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| |++keySn|string||是|键盘SN| |++keyValue|string||是|0 - 未提交(提交完成后,允许键盘修改答案时上报)
1 - 已交卷| |++keyTime|double||是|提交时间,从启动开始计算,单位秒| - **示例代码** ```json { "fun":"fEvtFinalSubmit", "dataTag":"1", "data": [{ "keySn": "1234567890", "keyValue":"1", "keyTime":3.2 }] } ``` ### 多科测验 #### 方法 ##### startKpMultiExam - **主题**:/client/\${baseSN}/send - **功能描述**:启动多科测验 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+examNo|int||是|0-9999
=0,新的测验
>0时,与上次启动卷号一致继续测验,不一致进入新的测验| |+mode|int||是|显示模式
0-不显示开头
1-显示“Q”开头
2-显示“题”开头| |+questions|array||是|题目详情| |++subject | int||是 | 科目序号,1-9,对应键盘中内置的科目1-9
键盘答题时可选择科目切换答题| |++symbol | string||是 | 题号前缀,分级标识为-,可为空,为空表示1级题目
多科测验题目编号最多只能两级(即symbol可设置为空或x-),超出无效| |++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断 | |++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。| |++startNo | int||是| 起始题号 | |++count | int||是| 题目数量 | |+simParams|object||否|内部模拟测试参数设置对象| |++answer|array||是|预设提交的按键值
格式为"单选题答案,多选题答案;
数字题答案;判断题答案(1对2错)"
如["A","ABCD","10","1"]| - **示例代码** ```json //自定义题号 { "fun":"startKpMultiExam", "dataTag":"1", "data":{ "mode": 0, "examNo": 1, "questions": [{ "subject":1, //科目1 //题号1-1 到1-10 共10题单选 "symbol": "1-", "quesType": 1, "startNo": 1, "count":10 }, { "subject":2, //科目2 //题号2-2和2-3共两题 多选题,5个选项 "symbol": "2-", "quesType": 2, "option": 5, "startNo": 2, "count":2 }, { "subject":3, //科目3 //题号3-1和3-2共两道数字题 "symbol": "3-", "quesType": 3, "startNo": 1, "count":2 }, { "subject":1, //科目1 //题号4和5 ,判断题 "symbol": "", "quesType": 4, "startNo": 4, "count":2 }], "simParams":{ "answer":["A","ABCD","10","1"] } } } //显示Q开头 { "fun":"startKpMultiExam", "dataTag":"1", "data":{ "mode": 1, "examNo": 1, "questions": [{ "subject":1, //Q1-Q20,单选题 "symbol": "", "quesType": 1, "startNo": 1, "count":20 }], "simParams":{ "answer":["A","","",""] } } } //显示题开头 { "fun":"startKpMultiExam", "dataTag":"1", "data":{ "mode": 2, "examNo": 1, "questions": [{ "subject":1, //题1-题20,单选题 "symbol": "", "quesType": 1, "startNo": 1, "count":20 }], "simParams":{ "answer":["A","","",""] } } } ``` ##### stopKpMultiExam - **主题**:/client/\${baseSN}/send - **功能描述**:停止多科测验 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| - **示例代码** ```json { "fun":"stopKpMultiExam", "dataTag":"1" } ``` #### 事件 ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回接收状态 ##### [fEvtKpExam](#fevtkpexam) 返回测验中键盘提交答题数据 ##### [fEvtFinalSubmit](#fevtfinalsubmit) 返回键盘手动交卷标识