通讯协议-B200W-MQTT协议[内部].md 78 KB
table { width: 100%; /* 或者具体的像素值,例如:1200px */ table-layout: fixed; /* 保持列宽固定 */ } th, td { word-wrap: break-word; /* 允许文本换行 */ } .delline{ text-decoration:line-through; } .yellowFill{ background-color: yellow; }

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通用格式如下:
  {
    "fun":"xxx", 
    "dataTag":"xxx", 
    "data":{    
       //内容
    }
  }

注意:基站接收指令数据单次不超过2K长度,在指定键盘发送指令时,如果指令长度超出限制,建议将指令进行拆分,分次发送,如果是所有键盘执行的指令,可将keySns设为空数组不使用指定键盘的模式

参数 说明 约束
fun 指令或事件名称
dataTag 数据标签,用于对应收发数据 长度不超过4,可为0-9a-zA-Z的组合
data 数据内容 对象或者数组,可为空

注意:基站接收指令数据单次不超过2K长度,在指定键盘发送指令时,如果指令长度超出限制,建议将指令进行拆分,分次发送,如果是所有键盘执行的指令,可将keySns设为空数组不使用指定键盘的模式

功能速查一览表

基站管理

功能归类 功能 API指令 指令/系统事件
基站连接 - 获取在线基站 主动获取在线基站信息
不确定基站SN时
getBsOnlineState fEvtBsOnlineState
基站连接 - 主动获取状态 主动获取基站连接状态 getBsConnectState sEvtBsConnectState
基站连接 - 自动获取状态 基站连接变化系统通知 - sEvtBsConnectState
基站授时 对基站授时用于校准时间 timeSync sEvtStateCode
键盘上线通知 单个键盘上线系统通知 - sEvtBsKpOnlineMsg
识别设置 - 出厂编码 设置基站出厂编码(内) setBsSN fEvtBsSN
识别设置 - 基站型号 读取基站型号 getBsModel fEvtBsModel
识别设置 - 固件版本 获取基站固件版本 getBsFWVersion fEvtBsFWVersion
识别设置 - 品牌识别码 获取基站品牌识别码 getBsBIC fEvtBsBIC
设置基站品牌识别码(内) setBsBIC fEvtBsBIC
组网设置 - 组网模式 获取基站组网模式 getBsNetworkMode fEvtBsNetworkMode
设置基站组网模式
(前期不开放,后期需要)
setBsNetworkMode fEvtBsNetworkMode
组网设置 - 配对码 获取基站配对码 getBsPairCode fEvtBsPairCode
设置基站配对码(内) setBsPairCode fEvtBsPairCode
组网设置 - 刷卡配对状态 获取刷卡配对状态 getBsNfcLogin fEvtBsNfcLogin
设置刷卡配对状态 setBsNfcLogin fEvtBsNfcLogin
组网设置 - 工作信道 获取基站工作信道 getBsChannel fEvtBsChannel
设置基站工作信道 setBsChannel fEvtBsChannel
登录设置 - 登录名称 获取基站登录名称 getBsSSID fEvtBsSSID
设置基站登录名称 setBsSSID fEvtBsSSID
键盘统一设置 - 键盘语言 获取键盘语言 getBsKpLanguage fEvtBsKpLanguage
设置键盘语言 setBsKpLanguage fEvtBsKpLanguage
键盘统一设置 - 键盘休眠 设置键盘休眠等级(内) setBsKpSleepLevel fEvtBsKpSleepLevel
获取键盘休眠等级(内) getBsKpSleepLevel fEvtBsKpSleepLevel
设置键盘暂停休眠状态(内) setBsKpPauseSleep fEvtBsKpPauseSleep
配对模式 - 快速配对 启动基站快速配对 startBsFastPair sEvtStateCode
sEvtBsKpOnlineMsg
停止基站快速配对 stopBsFastPair sEvtStateCode
白名单模式 - 白名单管理 获取白名单 getBsWhitelist fEvtBsWhitelist
设置白名单 setBsWhitelist sEvtStateCode
fEvtSetBsWhitelist
清空白名单 clearBsWhitelist sEvtStateCode
fEvtBsWhitelist
增加白名单 addBsWhitelist sEvtStateCode
fEvtAddBsWhitelist
fEvtBsWhitelist
删除白名单 delBsWhitelist sEvtStateCode
fEvtDelBsWhitelist
fEvtBsWhitelist
网络设置 - TCP/IP参数 获取TCP/IP参数 getBsTcpipParams fEvtBsTcpipParams
设置TCP/IP参数 setBsTcpipParams fEvtBsTcpipParams
网络设置 - MQTT参数 获取MQTT参数 getBsMqttParams fEvtBsMqttParams
设置MQTT参数 setBsMqttParams fEvtBsMqttParams
基站维护 获取基站日志信息 getBsLogInfo sEvtStateCode
fEvtBsLogInfo(内)
基站软复位 resetBsSystem sEvtStateCode
sEvtBsConnectState
基站断电复位 resetBsPower sEvtStateCode
sEvtBsConnectState
基站升级 开启基站升级(内) startBsUpdate sEvtStateCode
fEvtBsUpateState
fEvtBsUpdateProgress
下载字库(内) downloadFontLib sEvtStateCode
fEvtBsFontLibState
fEvtBsFontLibProgress

键盘管理

功能归类 功能 API指令 指令事件
交互设置 - 用户内置状态语 设置用户内置状态语 setKpUserStbMsg fEvtKpUserStbMsg
交互设置 - 用户实时提示信息 实时设置提示反馈信息 rtSetKpUserPrompt sEvtStateCode
fEvtSetKpUserPrompt
在线状态获取 开启扫描在线键盘 startGetKpOnline sEvtStateCode
fEvtKpOnlineMsg
停止扫描在线键盘 stopGetKpOnline sEvtStateCode
维护功能 - 遥控功能 遥控键盘关机 remoteKpPowerOff sEvtStateCode
遥控键盘休眠 remoteKpSleep sEvtStateCode
维护功能 - 键盘升级 启动键盘无线升级(内) startKpFWUpdate sEvtStateCode
fEvtKpFWUpdateState
fEvtKpUpdateProgress
sEvtBsKpOnlineMsg
停止键盘无线升级(内) stopKpFWUpdate sEvtStateCode
fEvtKpFWUpdateState

绑定

功能归类 功能 API指令 指令事件
无线绑定 设置绑定信息到键盘 rtSetKpBindingInfo sEvtStateCode
fEvtKpBindingInfo
清除键盘绑定信息 clearKpBindingInfo sEvtStateCode
fEvtClearKpBindingInfo

签到

功能归类 功能 API指令 指令事件
随时签到 启动随时签到 rtStartKpSignIn sEvtStateCode
fEvtKpSignIn
停止随时签到 rtStopKpSignIn sEvtStateCode
实时PIN签到授权 rtSetKpLoginAllowed sEvtStateCode
fEvtKpLoginAllowed

按键反馈

功能归类 功能 API指令 指令事件
判断题 启动判断题答题 startQATrueFalse sEvtStateCode
fEvtQATrueFalse
停止判断题答题 stopQATrueFalse sEvtStateCode
选择题 启动选择题答题 startQAChoice sEvtStateCode
fEvtQAChoice
停止选择题答题 stopQAChoice sEvtStateCode
数字题 启动数字题答题 startQANum sEvtStateCode
fEvtQANum
停止数字题答题 stopQANum sEvtStateCode
抢答题 启动抢答题答题 startQAQuicker sEvtStateCode
fEvtQAQuicker
停止抢答题答题 stopQAQuicker sEvtStateCode

在线测验

功能归类 功能 API指令 指令事件
标准测验 启动标准测验 startKpExam sEvtStateCode
fEvtKpExam
fEvtFinalSubmit
停止标准测验 stopKpExam sEvtStateCode
刷新作答数据 rtGetKpExamData fEvtKpExam
允许键盘提交后退回修改 rtAllowEdited sEvtStateCode
fEvtFinalSubmit

公共事件

sEvtBsConnectState

  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:基站连接成功时返回基站型号和基站SN,基站从已连接状态断开返回连接断开
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件类型
dataTag string 数据包标识,不需要时可传空字符串
data object - 传送参数的对象
+baseModel int 基站的型号码
+modelName string 基站的型号名称
+state int 基站的连接状态
1-已连接
2-连接断开
+version string 基站固件版本
  • 示例代码 Json //连接成功 { "fun":"sEvtBsConnectState", "dataTag":"1", "data":{ "state":1, "baseModel":218, "modelName":"B200", "version":"1.0.3" } } //连接断开 { "fun":"sEvtBsConnectState", "dataTag":"1", "data":{ "state":2 } } ### sEvtBsChannelConflict
  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:基站信道冲突时主动上报,应用程序可根据实际业务修改基站信道
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件名称
dataTag string - 数据包标识,不需要时可传空字符串
data object - 传送参数的对象
+value int 有冲突的信道
  • 示例代码 Json { "fun":"sEvtBsChannelConflict", "dataTag":"1", "data":{ "value":5 //信道5有多个基站使用 } } ### sEvtBsNfcResults
  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:键盘刷卡时主动上报,如果超出基站容量会上报失败
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件名称
dataTag string - 数据包标识,不需要时可传空字符串
data object - 传送参数的对象
+keySn string 刷卡的键盘SN
+value int 刷卡的状态
1-成功
2-失败
  • 示例代码 Json { "fun":"sEvtBsNfcResults", "dataTag":"1", //不需要时可传空字符串 "data":{ "keySn":"1234567890", "value":1 } }

sEvtBsKpOnlineMsg

  • 主题: /basestation/\${baseSN}/receive
  • 功能描述:键盘上线通知,主动上报,键盘升级成功后也会上报
  • 参数说明
参数名 类型 限制 非空 说明
fun string - 事件名称
dataTag string - 数据包标识
data object - 传送参数的对象
+keySn string 键盘SN
+version string 键盘固件版本
+model int 键盘型号
  • 示例代码 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 参见基站连接变化系统通知
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 返回指令的接收状态

识别设置

方法

setBsSN
  • 主题:/manage/\${baseSN}/send
  • 功能描述:设置基站的SN,需订阅新SN的主题,以获取事件返回
  • 参数说明
参数名 类型 限制 是否必填 说明
fun string - 指令名称
dataTag string - 数据包标识
data object - 传送参数的对象
+value string 数字 设置的基站SN,长度为10位数字