From eb3ca141caceea3f0a9d380a211c72c268177d2c Mon Sep 17 00:00:00 2001 From: Elvis Date: Fri, 18 Aug 2023 16:28:30 +0800 Subject: [PATCH] 添加SDK 通讯部分的说明文档 --- img/image1.png | Bin 0 -> 18379 bytes img/image2.png | Bin 0 -> 25155 bytes img/image3.png | Bin 0 -> 21290 bytes img/image4.png | Bin 0 -> 6676 bytes img/image5.png | Bin 0 -> 7658 bytes 通讯协议-SDK应用部分.md | 6415 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 6415 insertions(+), 0 deletions(-) create mode 100644 img/image1.png create mode 100644 img/image2.png create mode 100644 img/image3.png create mode 100644 img/image4.png create mode 100644 img/image5.png create mode 100644 通讯协议-SDK应用部分.md diff --git a/img/image1.png b/img/image1.png new file mode 100644 index 0000000..62625a1 Binary files /dev/null and b/img/image1.png differ diff --git a/img/image2.png b/img/image2.png new file mode 100644 index 0000000..76064ae Binary files /dev/null and b/img/image2.png differ diff --git a/img/image3.png b/img/image3.png new file mode 100644 index 0000000..0225365 Binary files /dev/null and b/img/image3.png differ diff --git a/img/image4.png b/img/image4.png new file mode 100644 index 0000000..edcdef8 Binary files /dev/null and b/img/image4.png differ diff --git a/img/image5.png b/img/image5.png new file mode 100644 index 0000000..d89581d Binary files /dev/null and b/img/image5.png differ diff --git a/通讯协议-SDK应用部分.md b/通讯协议-SDK应用部分.md new file mode 100644 index 0000000..ddedad4 --- /dev/null +++ b/通讯协议-SDK应用部分.md @@ -0,0 +1,6415 @@ +# SunVoteWSTrayapp + +接口说明 + +Ver5.0.1 + +长沙中天电子设计开发有限公司 + +二〇二三年五月 + +文件控制: + +文件名:SunVoteWSTrayapp接口说明 + +起草人:陈定敏 + +最新版本作者: 陈定敏 + + +| 文档版本 | 日期 | 作者 | 版本说明 | +|---|---|---|---| +|5.0.1| 5/23/2023|陈定敏|1. 初始版| + +## 目录 + +- [目录] (#目录) + +- [2 系统概述 (#系统概述)] + +[3 设计目的 [7](#设计目的)](\l) + +[4 通讯接口设计概要 [8](#通讯接口设计概要)](\l) + +[5 通信方式 [8](#通信方式)](\l) + +[6 编程流程说明 [9](#编程流程说明)](\l) + +[7 JSON指令说明 [9](#json指令说明)](\l) + +[7.1 心跳 [10](#心跳)](\l) + +[7.2 基站的连接与断开 [11](#_Toc30268)](\l) + +[7.2.1 连接基站(自动) [11](#_Toc8042)](\l) + +[7.2.2 复位基站 [11](#_Toc25505)](\l) + +[7.3答题 [12](#_Toc23844)](\l) + +[7.3.1 签到设备 [14](#_Toc19924)](\l) + +> [7.3.1.1 开始签到 [14](#开始签到)](\l) +> +> [7.3.1.2 接收签到信息 [16](#接收签到信息)](\l) +> +> [7.3.1.3 停止签到 [16](#停止签到)](\l) +> +> [7.3.1.4 支持设备说明 [17](#支持设备说明)](\l) + +[7.3.2 选择题 [17](#选择题)](\l) + +> [7.3.2.1 开始作答 [17](#开始作答)](\l) +> +> [7.3.2.2 接收作答 [18](#接收作答)](\l) +> +> [7.3.2.3 停止作答 [19](#停止作答)](\l) +> +> [7.3.2.4 支持设备说明 [19](#支持设备说明-1)](\l) + +[7.3.3 判断题 [20](#判断题)](\l) + +> [7.3.3.1 开始作答 [20](#开始作答-1)](\l) +> +> [7.3.3.2 接收作答 [21](#接收作答-1)](\l) +> +> [7.3.3.3 停止作答 [21](#停止作答-1)](\l) +> +> [7.3.3.4 支持设备说明 [22](#支持设备说明-2)](\l) + +[7.3.4 多题快答 [22](#多题快答)](\l) + +> [7.3.4.1 开始作答 [22](#开始作答-2)](\l) +> +> [7.3.4.2 接收作答 [23](#接收作答-2)](\l) +> +> [7.3.4.3 停止作答 [24](#停止作答-2)](\l) +> +> [7.3.4.4 支持设备说明 [24](#支持设备说明-3)](\l) + +[7.3.5 语音题 [25](#语音题)](\l) + +> [7.3.5.1 开始作答 [25](#开始作答-3)](\l) +> +> [7.3.5.2 接收作答 [26](#接收作答-3)](\l) +> +> [7.3.5.3 回传分数 [27](#回传分数)](\l) +> +> [7.3.5.4 停止作答 [27](#停止作答-3)](\l) +> +> [7.3.5.5 丢包信息 [28](#丢包信息)](\l) +> +> [7.3.5.6 支持设备说明 [29](#支持设备说明-4)](\l) + +[7.3.6 抢答题 [29](#抢答题)](\l) + +> [7.3.6.1 开始作答 [29](#开始作答-4)](\l) +> +> [7.3.6.2 接收作答 [30](#接收作答-4)](\l) +> +> [7.3.6.3 停止作答 [31](#停止作答-4)](\l) +> +> [7.3.6.4 支持设备说明 [31](#支持设备说明-5)](\l) + +[7.3.7 数字题 [31](#数字题)](\l) + +> [7.3.7.1 开始作答 [31](#开始作答-5)](\l) +> +> [7.3.7.2 接收作答 [33](#接收作答-5)](\l) +> +> [7.3.7.3 停止作答 [33](#停止作答-5)](\l) +> +> [7.3.7.4 支持设备说明 [34](#支持设备说明-6)](\l) + +[7.3.8 键盘测试 [34](#键盘测试)](\l) + +> [7.3.8.1 开始测试 [34](#开始测试)](\l) +> +> [7.3.8.2 接收作答 [35](#接收作答-6)](\l) +> +> [7.3.8.3 停止作答 [35](#停止作答-6)](\l) +> +> [7.3.8.4 支持设备说明 [36](#支持设备说明-7)](\l) + +[7.3.9 多题题型 [36](#多题题型)](\l) + +> [7.3.9.1 开始测试 [36](#开始测试-1)](\l) +> +> [7.3.9.2 接收作答 [38](#接收作答-7)](\l) +> +> [7.3.9.3 退出作答 [39](#退出作答)](\l) +> +> [7.3.9.4 暂停作答 [39](#暂停作答)](\l) +> +> [7.3.9.5 继续测试 [40](#继续测试)](\l) +> +> [7.3.9.6 指定键盘转移作答内容 [42](#指定键盘转移作答内容)](\l) +> +> [7.3.9.7 向键盘广播正确答案 [43](#向键盘广播正确答案)](\l) +> +> [7.3.9.8 支持设备说明 [44](#支持设备说明-8)](\l) + +[7.3.10 填空题 [44](#填空题)](\l) + +> [7.3.10.1 开始作答 [44](#开始作答-6)](\l) +> +> [7.3.10.2 接收作答 [45](#接收作答-8)](\l) +> +> [7.3.10.3 停止作答 [46](#停止作答-7)](\l) +> +> [7.3.10.4 支持设备说明 [46](#支持设备说明-9)](\l) + +[7.4 NFC刷卡 [46](#nfc刷卡)](\l) + +[7.4.1 写刷卡数据 [47](#写刷卡数据)](\l) + +[7.4.2 刷卡绑定反馈 [47](#刷卡绑定反馈)](\l) + +[7.4.3 NFC数据清除指令 [48](#nfc数据清除指令)](\l) + +[7.4.4 支持设备说明 [48](#支持设备说明-13)](\l) + +[7.5 硬件参数 [48](#硬件参数)](\l) + +[7.5.1 基站 [49](#基站)](\l) + +> [7.5.1.1 基站编号 [49](#基站编号)](\l) +> +> [7.5.1.2 基站频点 [50](#基站频点)](\l) +> +> [7.5.1.3 键盘登录菜单显示 [52](#键盘登录菜单显示)](\l) +> +> [7.5.1.4 基站型号(只读) [53](#基站型号只读)](\l) +> +> [7.5.1.5 基站软件版本(只读) [54](#基站软件版本只读)](\l) +> +> [7.5.1.6 基站序列号(只读) [55](#基站序列号只读)](\l) +> +> [7.5.1.7 基站名称 [56](#基站名称)](\l) +> +> [7.5.1.8 基站配对码 [57](#基站配对码)](\l) +> +> [7.5.1.9 基站频点冲突 [58](#基站频点冲突)](\l) +> +> [7.5.1.10 基站容量 [59](#基站容量)](\l) +> +> [7.5.1.11 快速配对 [60](#快速配对)](\l) +> +> [7.5.1.12 键盘登录密码 [61](#键盘登录密码)](\l) +> +> [7.5.1.13 基站名称隐藏 [63](#基站名称隐藏)](\l) + +[7.5.2 键盘 [64](#键盘)](\l) + +> [7.5.2.1 键盘外设(只写) [64](#键盘外设只写)](\l) +> +> [7.5.2.2 键盘反馈参数 [67](#键盘反馈参数)](\l) +> +> [7.5.2.1 键盘即时反馈\[主动上报\] [68](#键盘即时反馈主动上报)](\l) +> +> [7.5.2.2 键盘心跳反馈\[上报\] [69](#键盘心跳反馈上报)](\l) +> +> [7.5.2.3 遥控键盘关机 [70](#遥控键盘关机)](\l) + +[7.6 键盘显示设置 [71](#键盘显示设置)](\l) + +[7.6.1 空闲标题 [71](#空闲标题)](\l) + +[7.6.2 自定义信息 [72](#自定义信息)](\l) + +[7.6.3 用户姓名 [74](#用户姓名)](\l) + +[7.7 键盘在线信息 [75](#键盘在线信息)](\l) + +[7.7.1 自动返回在线信息 [75](#自动返回在线信息)](\l) + +[7.7.2 主动获取在线信息 [76](#主动获取在线信息)](\l) + +[7.7.3 踢出单只键盘 [78](#踢出单只键盘)](\l) + +[7.7.4 清掉所有键盘 [78](#清掉所有键盘)](\l) + +[7.7.5 锁定键盘 [79](#锁定键盘)](\l) + +[7.7.6 解锁键盘 [80](#解锁键盘)](\l) + +[7.8 系统参数 [81](#系统参数)](\l) + +[7.8.1 退出SunVoteWSTrayapp [81](#退出sunvotewstrayapp)](\l) + +[7.8.2 托盘图标隐藏或显示 [82](#托盘图标隐藏或显示)](\l) + +[7.8.3 支持设备说明 [83](#支持设备说明-15)](\l) + +[7.9 异常处理 [83](#异常处理)](\l) + +[7.9.1 SunVoteWSTrayapp收到数据异常 +[83](#sunvotewstrayapp收到数据异常)](\l) + +# 系统概述 + +SunVote +无线反馈系统是由手持的键盘、通讯基站、SunVoteWSTrayapp(托盘程序)、控制电脑组成的。控制电脑通过USB接口与基站连接。控制指令由控制电脑通过基站发送给键盘。 + +SunVoteWSTrayapp可以让用户开发的应用程序与SunVote无线反馈系统通讯。SunVoteWSTrayapp托盘程序(下文用SunVoteWSTrayapp代替)提供websocket通讯方式,使用JSON通信格式,来实现互动系统的管理及投票指令的发送和接收功能。调用结构图如下:![](img/image1.png) + +如果用户想开发互联网应用,可以参考如下设计: + +![](img/image2.png) + +目前SunVoteWSTrayapp只支持Windows系统。用户只需运行SunVoteWSTrayapp程序即可。 + +SunVoteWSTrayapp程序中config.ini配置文件中可设置WebSocket的端口,见以下位置: + +![](img/image3.png) + +上述配置#号开头行,为注释行,对下面一个配置进行说明。每个配置参考上面说明。 + +# 设计目的 + +1、协议通过Websocket封装后将具有更好的扩展空间和跨应用使用能力,为平台应用开发提供数据通讯基础。 + +2、应用程序(后续基于SunVoteWSTrayapp开发的程序称为应用程序),基于业务发送指令到SunVoteWSTrayapp,SunVoteWSTrayapp收到指令后,完成对基站或键盘的操作后回复应用程序。 + +![](img/image4.png) + +# 通讯接口设计概要 + +应用程序和SunVoteWSTrayapp之间采用Json数据通信,通信的基本格式如下: + +下发:应用程序 - \> SunVoteWSTrayapp + +{ + +  fun:\"\" // 功能定义 + +  baseId: 1// 基站id,数字类型 + +  params:{} //参数对象/数组 + +  packetTag:\"\" //数据包标签字符串 + +} + +fun 为功能对应的名称 如:\"readBaseStationID\" 读取基站的id, +\"startChoices\" //开始选择题, \"stopChoices\" //停止选择题 + +baseId:基站ID,用来区分基站标志,0代表所有基站,1代表1号基站。 + +params:参数,功能相对于的参数,可以是数组或字段。 + +packerTag: +这个是扩展字段,内容需要应用程序管理,功能相应的反馈指令packerTag位置会反馈相同字符串,方便应用程序跟踪记录。 + +反馈:SunVoteWSTrayapp-\> 应用程序 + +{ + +fun:\"\" //功能定义 + +baseId:1 //基站id,数字类型 + +infos: {}//信息对象/数组 + +packetTag:\"\"// 数据包标签字符串。 + +} + +fun: 功能对应的名称,如:\"BaseStationID\"读取基站id, \" answerChoices +\" //选择题键盘反馈值. + +baseId: 基站ID,用来区分基站标志;0特殊代表所有基站,1代表1号基站。 + +infos: SunVoteWSTrayapp反馈给APP层的数据。具体详见具体功能定义。 + +packetTag: +这个是扩展字段,内容需要应用程序管理,反馈接收到的字符串。 + +字段值说明: + +反馈infos中的状态字段state,OK表示成功,FAIL表示失败。 + +反馈infos中的硬件参数字段的值,FAIL表示失败,其他值为成功。 + +X\~Y:范围内的值特指整数。 + +# 通信方式 + +数据交互采取发送\<\--\>应答的方式。应用程序发送数据到SunVoteWSTrayapp,SunVoteWSTrayapp收到后执行完成后回复。 + +应用程序没有数据发送给SunVoteWSTrayapp时,需要发送心跳,SunVoteWSTrayapp收到心跳后会回复心跳,用于判断与应用程序的连接状态。(配置文件中,如果启用了心跳检查,应用程序如果未按要求发送心跳,SunVoteWSTrayapp会断开当前连接,重新尝试连接) + +# 编程流程说明 + +用户使用SunVoteWSTrayapp编程的基本流程如下: + +配置参数:(可配置、详情见配置文件config.ini) + +1、sdk-\>role websocket +的运行模式【client:客户端模式,server:服务端模式】 。 + +2、sdk-\> ip 如果websocket处于客户端模式 +此ip为目标服务器ip;如果websocket处于服务端模式 此ip无效。 + +3、sdk-\> port如果websocket处于客户端模式 +此port为目标服务器port;如果websocket处于服务端模式 +此port为本服务端port。 +编程开发: + +1、使用websocket通讯,IP为IP地址 +2、启动SunVoteApp.exe(SunVoteWSTrayapp)进程 +3、业务软件连接服务器后就可直接通信,通信的数据格式为JSON(UTF-8编码)。具体参数请看JSON指令说明部分。 +4、业务软件发送退出指令,SunVoteApp.exe(SunVoteWSTrayapp)收到指令后退出。 + +# JSON指令说明 + +应用程序和SunVoteWSTrayapp之间采用Json数据通信,通信的基本格式如下: + +下发:应用程序 - \>SunVoteWSTrayapp + +{ + +fun:\"\" // 功能定义 + +baseId: 1// 基站id,数字类型 + +params:{} //参数对象/数组 + +packetTag:\"\" //数据包标签字符串 + +} + +fun:为功能定义,下发命令,要下发的命令函数 + +baseId:基站ID,数字类型,如果不指定具体基站ID,可以传0或者不传该Key值。如果要指定多个基站ID,则需要多次下发该命令,切换不同的基站ID进行发送。 + +params:参数,可以为对象或者数组,用于伴随命令下发的数据附属包,详见具体功能定义。 + +packerTag: +数据标签字符串,用于区别当前指令与其他指令。应用程序发送给SunVoteWSTrayapp的,用户可以自定义数据(如果用户无自定义数据,可以为包序号,这样可以区分回复的数据回复的是哪个数据包)。SunVoteWSTrayapp回复应用程序时,直接回填应用程序收到的标签数据。 + +反馈:SunVoteWSTrayapp -\> 应用程序 + +{ + +fun:\"\" //功能定义 + +baseId:1 //基站id,数字类型 + +infos: {}//信息对象/数组 + +packetTag:\"\"// +数据包标签字符串,用于区别当前指令与其他指令。SunVoteWSTrayapp发送给应用程序的用自增数字标记。SunVoteWSTrayapp回复应用程序的,直接回填SunVoteWSTrayapp收到的标签。 + +} + +fun:同下发描述. + +baseId:同下发描述. + +infos: +SunVoteWSTrayapp反馈给应用程序层的数据。具体详见具体功能定义。 + +packetTag: +数据标签字符串,反馈功能函数的状态为应用程序附带的数据包,如果SunVoteWSTrayapp主动发送数据,是一组自增数据。 + +字段值说明: + +反馈infos中的状态字段state,OK表示成功,FAIL表示失败。 + +反馈infos中的硬件参数字段的值,FAIL表示失败,其他值为成功。 + +X\~Y:范围内的值特指整数。 + +## 心跳 + +应用程序发送心跳,SunVoteWSTrayapp回应,用于判断连接状态。 + +发送: + +fun: \"heartBeat\" //心跳 + +baseId: //无该值 + +params:{}//无该值 + +packetTag:\"1\"//收到的packetTag,可用于分析通信状态 + +指令样例: + +{\ +    \"fun\":\"heartBeat\",\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"heartBeat\" //心跳 + +baseId: //无该值 + +infos:{}//无该值 + +packetTag:\"1\"//数据包标签 + +指令样例: + +{\ +    \"fun\":\"heartBeat\",\ +    \"packetTag\":\"1\"\ +} + +## 基站的连接、断开和复位 + +应用程序与SunVoteWSTrayapp网络连接成功后(收到心跳),可发送连接基站指令。收到基站连接成功后就可以与SunVote无线反馈系统(基站、键盘)通讯。 + +### 连接基站 + +SunVoteWSTrayapp上报信息。 + +接收: + +fun: \"connectBase\" //连接基站 + +baseId:1 //基站ID + +infos: {\"state\":\"OK\"} //OK连接成功 + +packetTag:\"1\" //收到的packetTag + +指令样例: + +{\ +    \"fun\":\"connectBase\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +### 断开基站 + +SunVoteWSTrayapp上报信息。 + +接收: + +fun: \"disconnectBase\" //断开基站 + +baseId:1 //基站ID + +infos: {} //无该值 + +packetTag:\"1 \" + +指令样例: + +{\ +    \"fun\":\"disconnectBase\", + + \"baseId\":1,\ +   \"packetTag\":\"1\"\ +} + +### 复位基站 + +发送: + +fun: \"resetBase\" //复位基站 + +baseId:1, + +params:{} //无该值 + +指令样例: + +{\ +    \"fun\":\"resetBase\", + +\"baseId\":1, + + \"packetTag\":\"1\"\ +} + +注意:B200支持此命令 + +## 7.3答题 + +答题流程: + +![](img/image5.png) + + +在开始作答,各类答题都可指定显示标题和开始作答键盘,也可以为空。 + +顶层对象增加的字段如下: + + +|**Json字段**|**字段含义**|**赋值及含义**| +| --- | --- | --- | +|keySnList|指定键盘列表|keySn数组,为空表示所有键盘都参与。| +|| | | + + +在停止作答时,各类答题都可指定停止作答键盘,也可以为空。 + +顶层对象增加的字段如下: + +|**Json字段**|**字段含义**|**赋值及含义**| +| --- | --- | --- | +|keySnList|指定键盘列表|keySn数组,为空表示所有键盘都参与。| +|||| + + +如果指定了键盘,则会逐个返回指定键盘的接收状态。收到的infos数组对象如下: + +|**Json字段**|**字段含义**|**赋值及含义**| +| --- | --- | --- | +|keySn|键盘Sn|| +|state|状态|OK表示成功| +|||| + + +开始作答 + +指令样例: + +{\ +    \"title\":\"输入账号,OK键提交\",\ +    \"keySnList\":\[\ +        {\ +            \"keySn\":\"1837454011\"\ +        },\ +        {\ +            \"keySn\":\"1837454012\"\ +        }\ +    \]\ +} + +键盘的接收状态返回 + +fun: \"startXXKeypad\" //开始XX作答键盘(XX是开始作答对应具体名称) + +baseId: 1//接收到指令的基站ID + +infos:{}//数组对象 + +指令样例: + +{\ +    \"fun\":\"startBindKeypad\",\ +    \"baseId\":1,\ +    \"infos\":\[\ +        {\ +            \"keySn\":\"1837454011\",\ +            \"state\":\"OK\"\ +        }\ +   \],\ +    \"packetTag\":\"1\"\ +} + +回复键盘的接收状态返回 + +发送: + +fun: \"startXXKeypad\" //开始xx作答键盘 + +baseId:\"1\"//收到的基站ID + +params:{} //为空 + +指令样例: + +{\ +    \"fun\":\"startBindKeypad\",\ +    \"baseId\":1,\ +    \"packetTag\":\"1\"\ +} + +停止作答 + +指令样例: + +{...\ +    \"keySnList\":\[\ +        {\ +            \"keySn\":\"1837454011\"\ +        },\ +        {\ +            \"keySn\":\"1837454012\"\ +        }\ +    \]\ +} + +键盘的接收状态返回 + +fun: \"stopXXKeypad\" //停止XX作答键盘(XX是停止作答对应具体名称) + +baseId: 1//接收到指令的基站ID + +infos:{}//数组对象 + +指令样例: + +{\ +    \"fun\":\"stopBindKeypad\",\ +    \"baseId\":1,\ +    \"infos\":\[\ +        {\ +            \"keySn\":\"1837454011\",\ +            \"state\":\"OK\"\ +        }\ +   \],\ +    \"packetTag\":\"1\"\ +} + +回复键盘的接收状态返回 + +发送: + +fun: \"stopXXKeypad\" //停止xx作答键盘 + +baseId: \"1\"//收到的基站ID + +params:{} //为空 + +指令样例: +~~~ +{ +    "fun":"stopBindKeypad", +    "baseId":1, +    "packetTag":"1" +} +~~~ + + +### 签到设备 + +#### 开始签到 + +发送: + +fun: \"startBind\" //开始签到 + +params:{} + + +|**Json字段**| **字段含义** | **赋值及含义**| +| --- | --- | --- | +|bindMode| 签到模式| 1. 指定键签到
2. PIN码签到(默认值) | +| lessMode | 预留| 0- (默认值)| +| modifyMode | 修改模式 | 0-不可修改 1-可以修改(默认值)| +| limitNumber | 指定位数 | 0-不指定位数(默认值)
1-指定位数 | +| options | 固定值 | 固定值10| +| optionalN | 可选数字 | 1≤N≤10 (指定位数才需要设置, 10为0) | +| keyValue | 指定按键键值 | 0. 未指定\[OK键签到\]
1 . 1
2 . 2
3. 3
4. 4
5. 5
6. 6
7. 7
8. 8
9. 9
10. 0
11. 上键
12. 下键
13. OK
14. ESC
15. Menu | ++----------------+--------------+-------------------------------------+ +| tipTitle | 提示标题 | 16个字节 | ++----------------+--------------+-------------------------------------+ + +指令样例: + +~~~ + +{ +    "fun":"startBind", +   "baseId":0, +    "params":{ +        "bindMode":"1", +        "lessMode":"0", +        "modifyMode":"1", +        "limitNumber":"1", +        "options":"10", +        "optionalN":"10", + "keyValue":"0" +    }, +    "packetTag":"1" +} + +~~~ + +#### 接收签到信息 + +接收: + +fun: \"answerBind\" //签到返回 + +baseId: \"1\"//接收到指令的基站ID + +infos:{} + +| Json字段|字段含义|赋值及含义| +|---|---|---| +|time|答题时间|单位秒| +|keySn|键盘Sn|| +|keyValue|键值|键盘提交的值| + +指令样例: + +~~~ +{ +    "fun":"answerBind", +    "baseId":1, +    "infos":{ +        "time":"2.42", +        "keySn":"1479824643", +        "keyValue":"1234" +    }, +  "packetTag":"1" +} +~~~ + +#### 停止签到 + +发送: + +fun: \"stopBind\" //停止签到 + +params:{} //默认空 + +指令样例: + +~~~ +{ +    "fun":"stopBind", +   "baseId":0, +     "packetTag":"1" +} +~~~ + +接收: + +fun: \"stopBind\" //停止签到 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +~~~ +{ +    "fun":"stopBind", +    "baseId":1, +    "infos":{ +          "state":"OK" +    }, +    "packetTag":"1" +} +~~~ + +#### 支持设备说明 + +|**基站+键盘 **|**支持/不支持**|**备注**| +| --- | --- | --- | +|B100-2.4G+S6|支持|| +|B200-2.4G+S6|支持|| +|B200-5.8G+T2|支持|| +|||| + +### 选择题 + +#### 开始作答 + +发送: + +fun: \"startChoices\" //开始选择题 + +params:{} + +|Json字段|字段含义|赋值及含义| +|---|---|---| +|optionsMode|选项类别|1-显示字母(默认值)
2-显示数字 | +|secrecyMode|保密模式|0-不保密(默认值)
1-保密 | +|modifyMode|修改模式|0-不可修改
1-可以修改(默认值) | +| modifyMode | 修改模式 | 0-不可修改
1-可以修改(默认值)| +| lessMode | 迫选模式 | 0. 可缺选(默认值)
1. 不可缺选
2. 允许重复输入
3. 允许重复输入且不可缺选 | +| options | 选项数目 | 1≤M≤10(默认值4) | +| optionalN | 可选项数 | 1≤N≤M(默认值1) | +| tipTitle | 提示标题 | 16个字节 | +|||| + +指令样例: + +~~~ +{ +    "fun":"startChoices", + "baseId":0, +    "params":{ +        "optionsMode":"1", +        "secrecyMode":"0", +        "modifyMode":"1", +        "lessMode":"0", +        "options":"4", +        "optionalN":"1" + }, + "packetTag":"1" +} + +~~~ + +接收: + +fun: \"startChoices\" //开始选择题 + +baseId: \"1\"//接收到指令的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +~~~ +{ +    "fun":"startChoices", +    "baseId":1, +    "infos":{ +        "state":"OK" +    }, +    "packetTag":"1" +} +~~~ + + +#### 接收作答 + +接收: + +fun: \"answerChoices\" //选择题作答返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + time 答题时间 单位秒 + + keySn 键盘Sn + + keyValue 键值 键盘提交的值 + ----------------- --------------- -------------------------------------- + +指令样例: +~~~ +{ +    "fun":"answerChoices", +    "baseId":1, +    "infos":{ +        "time":"2.42", +        "keySn":"1479824643", +        "keyValue":"A" +    }, +    "packetTag":"1" +} +~~~ + +#### 停止作答 + +发送: + +fun: \"stopChoices\" //停止选择题 + +params:{} //默认空 + +指令样例: + + +~~~ +{ +    "fun":"stopChoices", + "baseId":0, +    "packetTag":"1" +} +~~~ + +接收: + +fun: \"stopChoices\" //停止选择题 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +~~~ +{ +    "fun":"stopChoices", +    "baseId":1, +    "infos":{ +          "state":"OK" +    }, +    "packetTag":"1" +} +~~~ + + +#### 支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +### 判断题 + +#### 开始作答 + +发送: + +fun: \"startTrueFalse\" //开始判断题 + +params:{} + +|**Json字段**|**字段含义**|**赋值及含义**| +|---|---|---| +| optionsMode | 选项类别 | 1 True/False 对/错
2 Yes/No 是/否
3 √/×| +| secrecyMode | 保密模式 | 0-不保密(默认值)
1-保密| +| modifyMode | 修改模式 | 0-不可修改
1-可以修改(默认值)| +| tipTitle | 提示标题 | 16个字节| +|||| + +指令样例: + +~~~ + +{ +    "fun":"startTrueFalse", + "baseId":0, +    "params":{ +        "optionsMode":"1", +        "secrecyMode":"0", +        "modifyMode":"1" +    }, +    "packetTag":"1" +} + +~~~ + +接收: + +fun: \"startTrueFalse\" //开始判断题 + +baseId: \"1\"//接收到指令的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +~~~ + +{ +    "fun":"startTrueFalse", + "baseId":1, +  "infos":{ +       "state":"OK" +    }, + "packetTag":"1" +} + +~~~ + +#### 接收作答 + +接收: + +fun: \"answerTrueFalse\" //判断题作答返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + time 答题时间 单位秒 + + keySn 键盘Sn + + keyValue 键值 键盘提交的值(1对、2错) + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"answerTrueFalse\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"time\":\"2.42\",\ +        \"keySn\":\"1479824643\",\ +        \"keyValue\":\"1\"\ +    }, + + \"packetTag\":\"1\"\ +} + +#### 停止作答 + +发送: + +fun: \"stopTrueFalse\" //停止判断题 + +params:{} //默认空 + +指令样例: + +{\ +    \"fun\":\"stopTrueFalse\", + +  \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"stopTrueFalse\" //停止判断题 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"stopTrueFalse\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +### 多题快答 + +#### 开始作答 + +发送: + +fun: \"startMulQuestions\" //开始多小题 + +params:{} + ++----------------+--------------+-------------------------------------+ +| Json字段 | 字段含义 | 赋值及含义 | ++----------------+--------------+-------------------------------------+ +| questionType | 题型 | 0-单选题(默认值) | +| | | | +| | | 1-判断题 | ++----------------+--------------+-------------------------------------+ +| secrecyMode | 保密模式 | 0-不保密(默认值) | +| | | | +| | | 1-保密 | ++----------------+--------------+-------------------------------------+ +| modifyMode | 修改模式 | 0-不可修改 | +| | | | +| | | 1-可以修改(默认值) | ++----------------+--------------+-------------------------------------+ +| lessMode | 预留 | 0 | ++----------------+--------------+-------------------------------------+ +| questionNumber | 题目个数 | 1\~10 (默认值10) | ++----------------+--------------+-------------------------------------+ +| options | 选项数目 | 1\~10 (单选题有效, 默认值4) | ++----------------+--------------+-------------------------------------+ +| tipTitle | 提示标题 | 16个字节 | ++----------------+--------------+-------------------------------------+ + +指令样例: + +{\ +    \"fun\":\"startMulQuestions\", + +  \"baseId\":0,\ +    \"params\":{\ +        \"questionType\":\"0\",\ +        \"secrecyMode\":\"0\",\ +        \"modifyMode\":\"1\",\ +        \"lessMode\":\"0\",\ +        \"questionNumber\":\"10\",\ +        \"options\":\"4\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"startMulQuestions\" //开始多小题 + +baseId: \"1\"//接收到指令的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"startMulQuestions\", + +\"baseId\":1,\ +  \"infos\":{\ +       \"state\":\"OK\"\ +    }, + +\"packetTag\":\"1\"\ +} + +#### 接收作答 + +接收: + +fun: \"answerMulQuestions\" //多小题作答返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + time 答题时间 单位秒 + + keySn 键盘Sn + + keyValue 键值 对应题型,按位对应题号 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"answerMulQuestions\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"time\":\"2.42\",\ +        \"keySn\":\"1479824643\",\ +        \"keyValue\":\"AACDBDADBD\"\ +    }, + + \"packetTag\":\"1\"\ +} + +#### 停止作答 + +发送: + +fun: \"stopMulQuestions\" //停止多小题 + +params:{} //默认空 + +指令样例: + +{\ +    \"fun\":\"stopMulQuestions\", + +  \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun:\"stopMulQuestions\" //停止多小题 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"stopMulQuestions\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +### 语音题 + +#### 开始作答 + +发送: + +fun: \"startVoice\" //开始语音题 + +params:{} + ++----------------+--------------+-------------------------------------+ +| Json字段 | 字段含义 | 赋值及含义 | ++----------------+--------------+-------------------------------------+ +| recordingMode | 录音模式 | 0-按键录音(默认值) | ++----------------+--------------+-------------------------------------+ +| submitTimes | 提交次数 | 0 (0:不限制, 默认值0) | ++----------------+--------------+-------------------------------------+ +| reco | 预留 | 0 | +| rdingTimeLimit | | | ++----------------+--------------+-------------------------------------+ +| r | 预留 | 0-固定传0 | +| ecordingFormat | | | ++----------------+--------------+-------------------------------------+ +| rec | 音频格式 | 0. mp3 | +| ordAudioFormat | | | +| | | 1. 实时流 (默认值1) | ++----------------+--------------+-------------------------------------+ +| tipTitle | 提示标题 | 16个字节 | ++----------------+--------------+-------------------------------------+ + +指令样例: + +{\ +    \"fun\":\"startVoice\", + +  \"baseId\":0,\ +    \"params\":{\ +        \"recordingMode\":\"0\",\ +        \"submitTimes\":\"0\",\ +        \"recordingTimeLimit\":\"0\",\ +        \"recordingFormat\":\"0\",\ +        \"recordAudioFormat\":\"0\"\ +       },\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"startVoice\" //开始语音题 + +baseId: \"1\"//接收到指令的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"startVoice\", + +\"baseId\":1,\ +  \"infos\":{\ +       \"state\":\"OK\"\ +    }, + +\"packetTag\":\"1\"\ +} + +#### 接收作答 + +按开始作答时设置的录音格式分为录音文件和实时流两种。 + +录音文件 + +接收: + +fun: \"answerVoiceFile\" //录音文件返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + time 答题时间 单位秒(0为答题开始,\>0表示答题结束) + + keySn 键盘Sn + + filePath 文件路径 录音文件路径 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"answerVoiceFile\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"keySn\":\"1479824643\", + +        \"filePath\":\"D:\\voice\\20211102\\voice_1479824643_1635832534000.mp3\"\ +    }, + +\"packetTag\":\"1\"\ +} + +实时流 + +接收: + +fun: \"answerVoiceStream\" //语音实时流返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + + ----------------- --------------- ------------------------------------------------------------------------------------------ + Json字段 字段含义 赋值及含义 + + keySn 键盘Sn + + voiceId 回话ID 答题时间内,可重复提交语音,每段语音流加一个回话ID,用于区分作答 + + sampleRate 音频采样率 + + bits 音频采样精度 + + channel 声道数 + + dataIndex 数据包号 1开始 + + data 数据 将原始数据通过Base64编码后得到json中\"data\"字段。应用可通过Base64解码得到原始语音数据。 + + dataLen 数据长度 Base64编码后的字符串长度。应该将\"data\"通过Base64解码后得到原始的数据长度。 + + endFlag 结束标志 默认为0,为1表示结束 + ----------------- --------------- ------------------------------------------------------------------------------------------ + +指令样例: + +{\ +    \"fun\":\"answerVoiceStream\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"keySn\":1479824643,\ +        \"voiceId\":1,\ +        \"sampleRate\":16000,\ +        \"bits\":16,\ +        \"channel\":1,\ +        \"endFlag\":0, + +\"dataIndex\":1,\ +        \"dataLen\":856,\ +        \"data\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAO7/AAARAAAA7v8AACMAAADK/wAA+gARAI8ANQDoAO7/EQDP/mwD6ADSBBkFgPm+/iH6J/ko/HD8F/8L/u7/rQGU/yMA4f5fAin/MgpDBwADvwRk+yn/fP1e/Jr+DAEAA+gAPAXpBnECgwK5BdEEmwFaA7oF4f63/DX9n/rJ+f75q/tA+5n7fP1q/Y79av1B/nb+Qf70AX0AfQNx/6b8EQBY/Ub9awD0AZUCfgahA4MCBgLV/az+L/5k/o79LwEdAYkBvv5q/X0AHf48BYMCgwKmAgYCdwH0/uL+0P6C/7j/sgApAsr/Kf+U/8T9L/ig+rL3HfVZA6AAsgYSBi8BIwMRABf/pvxB/nH/4v6m/7IAgv9f/7j/3P+gAAsB4gH0AS8BawAAANz/Kf8F/8r/RwAAACMA6ADoAKb/xAC4AgYCLwFBBO4FWQMAA7kFTQUYAnECiQRlASn/4v47/0H+uPxH/UH+L/6O/fn9F//Q/h3+rP5f/zv/8/5N/9z/uP+C/9z/RwBHACMAWQCgAH0ANQA1AEcAEQDK/8r/3P+4/5T/lP+m/5T/gv+C/5T/lP+C/5T/pv+m/w==\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 回传分数 + +收到语音后,可对评测分数回传给键盘,详见[自定义信息](\l) + +#### 停止作答 + +发送: + +fun: \"stopVoice\" //停止语音题 + +params:{} //默认空, + +指令样例: + +{\ +    \"fun\":\"stopVoice\", + +  \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"stopVoice\" //停止语音题 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"stopVoice\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 丢包信息 + +语音结束时SunVoteWSTrayapp会发送该次语言的丢包率。 + +注意:此数据只在语音实时流时有效。 + +接收: + +fun: \"voicePacketLossInfo\" //丢包信息 + +baseId:1 //1\~32,连接基站 + +infos:{} // + + --------------------- --------------- ------------------------------------------------------------------ + Json字段 字段含义 赋值及含义 + + keySn 键盘Sn + + voiceId 回话ID 答题时间内,可重复提交语音,每段语音流加一个回话ID,用于区分作答 + + recordTime 录音延迟时间 + + shouldSendPacketNum 应发数据包数 + + actualSendPacketNum 实发数据包数 + + lossRate 丢包率 百分比 + --------------------- --------------- ------------------------------------------------------------------ + +指令样例: + +{\ +    \"fun\":\"voicePacketLossInfo\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"keySn\":\"1837454011\",\ +        \"voiceId\":\"1\",\ +        \"recordTime\":\"42\",\ +        \"shouldSendPacketNum\":\"56\",\ +        \"actualSendPacketNum\":\"56\",\ +        \"lossRate\":\"0\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 支持 单次录音最长180秒 + ----------------------- ----------------------- ----------------------- + +### 抢答题 + +#### 开始作答 + +发送: + +fun: \"startRushAnswer\" //开始抢答题 + +params:{} + ++----------------+--------------+-------------------------------------+ +| Json字段 | 字段含义 | 赋值及含义 | ++----------------+--------------+-------------------------------------+ +| rushAnswerMode | 抢答模式 | 0-普通抢答(默认值) | ++----------------+--------------+-------------------------------------+ +| modifyMode | 修改模式 | 0-不可修改 | +| | | | +| | | 1-可以修改(默认值) | ++----------------+--------------+-------------------------------------+ + +指令样例: + +{\ +    \"fun\":\"startRushAnswer\", + +  \"baseId\":0,\ +    \"params\":{\ +        \"rushAnswerMode\":\"0\",\ +        \"modifyMode\":\"1\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"startRushAnswer\" //开始抢答题 + +baseId: \"1\"//接收到指令的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"startRushAnswer\", + +\"baseId\":1,\ +  \"infos\":{\ +       \"state\":\"OK\"\ +    }, + +\"packetTag\":\"1\"\ +} + +#### 接收作答 + +接收: + +fun: \"answerRushAnswer\" //抢答题作答返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + time 答题时间 单位秒 + + keySn 键盘Sn + + keyValue 键值 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"answerRushAnswer\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"time\":\"1.42\",\ +        \"keySn\":\"1479824643\",\ +        \"keyValue\":\"A\"\ +    }, + + \"packetTag\":\"1\"\ +} + +#### 停止作答 + +发送: + +fun: \"stopRushAnswer\" //停止抢答题 + +params:{} //默认空 + +指令样例: + +{\ +    \"fun\":\"stopRushAnswer\", + +\"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"stopRushAnswer\" //停止抢答题 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"stopRushAnswer\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +### 数字题 + +#### 开始作答 + +发送: + +fun: \"startNumber\" //开始数字题 + +params:{} + ++----------------+--------------+-------------------------------------+ +| Json字段 | 字段含义 | 赋值及含义 | ++----------------+--------------+-------------------------------------+ +| secrecyMode | 保密模式 | 0-不保密(默认值) | +| | | | +| | | 1-保密 | ++----------------+--------------+-------------------------------------+ +| modifyMode | 修改模式 | 0-不可修改 | +| | | | +| | | 1-可以修改(默认值) | ++----------------+--------------+-------------------------------------+ +| aswOption | 按键模式 | 0-无规则 (S6最多16位,T2最多14位) | +| | | | +| | | 1-预留 | +| | | | +| | | 2-预留 | +| | | | +| | | 3-带小数位上下限(T2不支持) | ++----------------+--------------+-------------------------------------+ +| digits | 小数位数 | 0. 没有小数点 | +| | | | +| | | 1. 一位小数点 | +| | | | +| | | 2. 二位小数点 | ++----------------+--------------+-------------------------------------+ +| numMin | 下限 | 0-655.35 | ++----------------+--------------+-------------------------------------+ +| numMax | 上限 | 0-655.35 | ++----------------+--------------+-------------------------------------+ +| tipTitle | 提示标题 | 16个字节 | ++----------------+--------------+-------------------------------------+ + +指令样例: + +{\ +    \"fun\":\"startNumber\", + + \"baseId\":0,\ +    \"params\":{\ +         \"secrecyMode\":\"0\",\ +         \"modifyMode\":\"1\", + +\"aswOption\":\"0\", + +\"digits\":\"0\", + +\"numMin\":\"0\", + +\"numMax\":\"0\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"startNumber\" //开始数字题 + +baseId: \"1\"//接收到指令的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"startNumber\", + +\"baseId\":1,\ +  \"infos\":{\ +       \"state\":\"OK\"\ +    }, + +\"packetTag\":\"1\"\ +} + +#### 接收作答 + +接收: + +fun: \"answerNumber\" //数字题作答返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + time 答题时间 单位秒 + + keySn 键盘Sn + + keyValue 键值 键盘提交的值 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"answerNumber\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"time\":\"2.42\",\ +        \"keySn\":\"1479824643\",\ +        \"keyValue\":\"12\"\ +    }, + + \"packetTag\":\"1\"\ +} + +#### 停止作答 + +发送: + +fun: \"stopNumber\" //停止数字题 + +params:{} //默认空 + +指令样例: + +{\ +    \"fun\":\"stopNumber\", + + \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"stopNumber\" //停止数字题 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"stopNumber\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 支持设备说明 + ++--------------------+--------------+---------------------------------+ +| 基站+键盘 | 支持/不支持 | 备注 | ++--------------------+--------------+---------------------------------+ +| B100-2.4G+S6 | 支持 | 按键模式(0-无规则 最多16位) | ++--------------------+--------------+---------------------------------+ +| B200-2.4G+S6 | 支持 | 按键模式(0-无规则 最多16位) | ++--------------------+--------------+---------------------------------+ +| B200-5.8G+T2 | 支持 | 按键模式(0-无规则 最多14位) | +| | | | +| | | 按键模 | +| | | 式(3-带小数位上下限)(不支持) | ++--------------------+--------------+---------------------------------+ + +### 键盘测试 + +#### 开始测试 + +发送: + +fun: \"startKeyPadTest\" //开始键盘 + +params:{} + ++----------------+--------------+-------------------------------------+ +| Json字段 | 字段含义 | 赋值及含义 | ++----------------+--------------+-------------------------------------+ +| mode | 测试模式 | 1-报告状态 | +| | | | +| | | 2-按键模拟 | ++----------------+--------------+-------------------------------------+ +| keyTime | 启动时间 | 0-60 单位秒 0马上执行 默认为0 | ++----------------+--------------+-------------------------------------+ +| gapTime | 间隔时间 | 0-60 单位秒 0无效 默认为0 | ++----------------+--------------+-------------------------------------+ + +指令样例: + +{\ +    \"fun\":\"startKeyPadTest\", + +  \"baseId\":0,\ +    \"params\":{\ +        \"mode\":\"1\",\ +        \"keyTime\":\"0\", + +\"gapTime\":\"0\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 接收作答 + +接收: + +fun: \"answerKeyPadTest\" //按键测试返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + Time 答题时间 单位秒 + + keySn 键盘Sn + + hModel 键盘硬件型号 + + keyValue 键值 + + Ver 键盘软件版本 + + Volt 键盘电池电量 T2百分比值,S6无效 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"answerKeyPadTest\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"time\":\"2.42\", + +  \"hModel\":\"67\", + + \"keyValue\":\"0\", + +  \"ver\":\"1.0.0\",\ +        \"keySn\":\"1479824643\",\ +        \"volt\":\"12\"\ +    }, + + \"packetTag\":\"1\"\ +} + +#### 停止作答 + +发送: + +fun: \"stopKeyPadTest\" //停止键盘测试 + +params:{} //默认空 + +指令样例: + +{\ +    \"fun\":\"stopKeyPadTest\", + +\"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"stopKeyPadTest\" //停止键盘测试 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"stopKeyPadTest\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 键盘电池电量参数无效 + + B200-2.4G+S6 支持 键盘电池电量参数无效 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +### 多题题型 + +#### 开始测试 + +发送: + +fun: \"startKeyPadMultipleQuestions\" //开始多题题型 + +params:{} + ++-----------------+-----------+---------------------------------------+ +| Json字段 | 字 | 赋值及含义 | +| | 段含义 | | ++-----------------+-----------+---------------------------------------+ +| examNo | 测验编号 | 1-9999 | ++-----------------+-----------+---------------------------------------+ +| Total | 题目数量 | 1-200 | ++-----------------+-----------+---------------------------------------+ +| optional | 选项数目 | 1-10 默认4 | ++-----------------+-----------+---------------------------------------+ +| displayMode | 题号 | 1: 预留 | +| | 显示模式 | | +| | | 2:预留 | +| | | | +| | | 3:三级编号显示 | +| | | | +| | | 4:预留 | ++-----------------+-----------+---------------------------------------+ +| questions | 题目详情 | 数组 | ++-----------------+-----------+---------------------------------------+ +| .quest | 一级题号 | 1-99 | +| ionLevel1Symbol | | | ++-----------------+-----------+---------------------------------------+ +| .quest | 二级题号 | 1-99 | +| ionLevel2Symbol | | | ++-----------------+-----------+---------------------------------------+ +| .quest | 三级题号 | 1-99 | +| ionLevel3Symbol | | | ++-----------------+-----------+---------------------------------------+ +| .questionType | 题目类型 | 1单选 | +| | | | +| | | 2多选(排序) | +| | | | +| | | 3数字 | +| | | | +| | | 4判断 | ++-----------------+-----------+---------------------------------------+ +| .option | 选项数目 | 默认是0,当questionType = 2 有效 | ++-----------------+-----------+---------------------------------------+ + +指令样例: + +{ + +\"fun\": \"startKeyPadMultipleQuestions\", + +\"baseId\": 0, + +\"params\": { + +\"examNo\": 33, + +\"total\": 4, + +\"optional\": 4, + +\"displayMode\": 3, + +\"questions\": \[{ + +\"questionLevel1Symbol\": \"1\", + +\"questionLevel2Symbol\": \"1\", + +\"questionLevel3Symbol\": \"1\", + +\"questionType\": \"1\" + +}, { + +\"questionLevel1Symbol\": \"1\", + +\"questionLevel2Symbol\": \"2\", + +\"questionLevel3Symbol\": \"3\", + +\"questionType\": \"2\", + +\"option\": \"5\" + +}, { + +\"questionLevel1Symbol\": \"1\", + +\"questionLevel2Symbol\": \"2\", + +\"questionLevel3Symbol\": \"4\", + +\"questionType\": \"3\" + +}, { + +\"questionLevel1Symbol\": \"1\", + +\"questionLevel2Symbol\": \"2\", + +\"questionLevel3Symbol\": \"5\", + +\"questionType\": \"4\" + +}\] + +}, + +\"packetTag\": \"59\" + +} + +接收: + +fun: \"startKeyPadMultipleQuestions\" //开始多题题型 + +baseId: \"1\"//接收到指令的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{ + +\"baseId\": 1, + +\"fun\": \"startKeyPadMultipleQuestions\", + +\"infos\": { + +\"state\": \"OK\" + +}, + +\"packetTag\": \"59\" + +} + +#### 接收作答 + +接收: + +fun: \"answerKeyPadMultipleQuestions\" //多题题型返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + Time 答题时间 \[time/5=实际时间\] + 单位秒,20分钟内有效 + + keySn 键盘Sn + + Seq 题序号 + + keyValue 键值 键盘提交的值 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"answerKeyPadMultipleQuestions\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"time\":\"5.42\",\ +        \"keySn\":\"1479824643\", + +  \"seq\":\"1\",\ +        \"keyValue\":\"12\"\ +    }, + + \"packetTag\":\"1\"\ +} + +#### 退出作答 + +发送: + +fun: \"stopKeyPadMultipleQuestions\" //停止多题题型 + +params:{} //默认空 + +指令样例: + +{\ +    \"fun\":\"stopKeyPadMultipleQuestions\", + +\"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"stopKeyPadMultipleQuestions\" //停止键盘测试 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"stopKeyPadMultipleQuestions\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 暂停作答 + +发送: + +fun: \"pauseKeyPadMultipleQuestions\" //暂停多提题性 + +baseId: \"1\"//收到的基站ID + +params:{} //默认空 + +指令样例: + +{\ +    \"fun\":\"pauseKeyPadMultipleQuestions\", + +  \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"stopKeyPadMultipleQuestions\" //暂停键盘测试 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"pauseKeyPadMultipleQuestions\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 继续测试 + +发送: + +fun: \"continueKeyPadMultipleQuestions\" //继续多题题型 + +params:{} + ++-----------------+-----------+---------------------------------------+ +| Json字段 | 字 | 赋值及含义 | +| | 段含义 | | ++-----------------+-----------+---------------------------------------+ +| examNo | 测验编号 | 1-9999 | ++-----------------+-----------+---------------------------------------+ +| Total | 题目数量 | 1-200 | ++-----------------+-----------+---------------------------------------+ +| optional | 选项数目 | 1-10 默认4 | ++-----------------+-----------+---------------------------------------+ +| displayMode | 题号 | 1: 预留 | +| | 显示模式 | | +| | | 2:预留 | +| | | | +| | | 3:三级编号显示 | +| | | | +| | | 4:预留 | ++-----------------+-----------+---------------------------------------+ +| questions | 题目详情 | 数组 | ++-----------------+-----------+---------------------------------------+ +| .quest | 一级题号 | 1-99 | +| ionLevel1Symbol | | | ++-----------------+-----------+---------------------------------------+ +| .quest | 二级题号 | 1-99 | +| ionLevel2Symbol | | | ++-----------------+-----------+---------------------------------------+ +| .quest | 三级题号 | 1-99 | +| ionLevel3Symbol | | | ++-----------------+-----------+---------------------------------------+ +| .questionType | 题目类型 | 1单选 | +| | | | +| | | 2多选(排序) | +| | | | +| | | 3数字 | +| | | | +| | | 4判断 | ++-----------------+-----------+---------------------------------------+ +| .option | 选项数目 | 默认是0,当questionType = 2 有效 | ++-----------------+-----------+---------------------------------------+ + +指令样例: + +{ + +\"fun\": \"continueKeyPadMultipleQuestions\", + +\"baseId\": 0, + +\"params\": { + +\"examNo\": 33, + +\"total\": 4, + +\"optional\": 4, + +\"displayMode\": 3, + +\"questions\": \[{ + +\"questionLevel1Symbol\": \"1\", + +\"questionLevel2Symbol\": \"1\", + +\"questionLevel3Symbol\": \"1\", + +\"questionType\": \"1\" + +}, { + +\"questionLevel1Symbol\": \"1\", + +\"questionLevel2Symbol\": \"2\", + +\"questionLevel3Symbol\": \"3\", + +\"questionType\": \"2\", + +\"option\": \"5\" + +}, { + +\"questionLevel1Symbol\": \"1\", + +\"questionLevel2Symbol\": \"2\", + +\"questionLevel3Symbol\": \"4\", + +\"questionType\": \"3\" + +}, { + +\"questionLevel1Symbol\": \"1\", + +\"questionLevel2Symbol\": \"2\", + +\"questionLevel3Symbol\": \"5\", + +\"questionType\": \"4\" + +}\] + +}, + +\"packetTag\": \"61\" + +} + +接收: + +fun: \"startKeyPadMultipleQuestions\" //开始多题题型 + +baseId: \"1\"//接收到指令的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{ + +\"fun\": \"startKeyPadMultipleQuestions\", + +\"baseId\": 1, + +\"infos\": { + +\"state\": \"OK\" + +}, + +\"packetTag\": \"61\" + +} + +#### 指定键盘转移作答内容 + +发送: + +fun: \"copyKeyPadMultipleQuestions\" //转移键盘作答内容 + +params:{} //默认空 + ++-----------------+-----------+---------------------------------------+ +| Json字段 | 字 | 赋值及含义 | +| | 段含义 | | ++-----------------+-----------+---------------------------------------+ +| Id | 题目编号 | 1-200 | ++-----------------+-----------+---------------------------------------+ +| * | 题目类型 | 1单选 | +| *questionType | | | +| | | 2多选(排序) | +| | | | +| | | 3数字 | +| | | | +| | | 4判断 | ++-----------------+-----------+---------------------------------------+ +| Value | 题目答案 | 字符串16字节 | ++-----------------+-----------+---------------------------------------+ + +指令样例: + +{ + +\"fun\": \"copyKeyPadMultipleQuestions\", + +\"baseId\": 0, + +\"params\": { + +\"keySn\": \"0007831203\", + +\"questions\": \[{ + +\"id\": \"1\", + +\"questionType\": \"1\", + +\"value\": \"A\" + +}, { + +\"id\": \"2\", + +\"questionType\": \"2\", + +\"value\": \"AB\" + +}\] + +}, + +\"packetTag\": \"19\" + +} + +接收: + +fun: \"copyKeyPadMultipleQuestions\" // + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"copyKeyPadMultipleQuestions\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 向键盘广播正确答案 + +发送: + +fun: \"okKeyPadMultipleQuestions\" //向键盘广播正确答案 + +baseId: \"1\"//收到的基站ID + +params:{} //默认空 + ++-----------------+-----------+---------------------------------------+ +| Json字段 | 字 | 赋值及含义 | +| | 段含义 | | ++-----------------+-----------+---------------------------------------+ +| id | 题目编号 | 1-200 | ++-----------------+-----------+---------------------------------------+ +| * | 题目类型 | 1单选 | +| *questionType | | | +| | | 2多选(排序) | +| | | | +| | | 3数字 | +| | | | +| | | 4判断 | ++-----------------+-----------+---------------------------------------+ +| Value | 题目答案 | 字符串16字节 | ++-----------------+-----------+---------------------------------------+ + +指令样例: + +{ + +\"fun\": \"okKeyPadMultipleQuestions\", + +\"baseId\": 0, + +\"params\": \[{ + +\"id\": \"1\", + +\"questionType\": \"1\", + +\"value\": \"A\" + +}, { + +\"id\": \"2\", + +\"questionType\": \"2\", + +\"value\": \"AB\" + +}\], + +\"packetTag\": \"20\" + +} + +接收: + +fun: \"okKeyPadMultipleQuestions\" // + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"okKeyPadMultipleQuestions\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +### 填空题 + +#### 开始作答 + +发送: + +fun: \"startTextAnswer\" //开始填空题 + +params:{} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + optionsMode 填空类型 1-任意输入(默认值) + + modifyMode 预留 1- (默认值) + + secrecyMode 预留 0- (默认值) + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"startTextAnswer\", + +\"baseId\":0,\ +    \"params\":{\ +        \"optionsMode\":\"1\",\ +        \"modifyMode\":\"1\", + +\"secrecyMode\":\"0\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +接收: + +- fun: \"startTextAnswer \" //开始填空题 + +```{=html} + +``` +- baseId: \"1\"//接收到指令的基站ID + +- infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"startTextAnswer\", + +\"baseId\":1,\ +  \"infos\":{\ +       \"state\":\"OK\"\ +    }, + +\"packetTag\":\"1\"\ +} + +#### 接收作答 + +接收: + +fun: \"answerTextAnswer\" //填空题作答返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + keySn 键盘Sn + + keyValue 键值 ABCD/1234/AA123 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"answerTextAnswer\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"keySn\":\"1479824643\",\ +        \"keyValue\":\"1\"\ +    }, + + \"packetTag\":\"1\"\ +} + +发送: + +fun: \"answerTextAnswer\" //填空题作答返回 + +baseId: \"1\"//接收的基站ID + +params:{} //为空 + +指令样例: + +{\ +    \"fun\":\"answerTextAnswer\",\ +    \"baseId\":1,\ +    \"packetTag\":\"1\"\ +} + +#### 停止作答 + +发送: + +fun: \"stopTextAnswer\" //停止填空题 + +params:{} //默认空 + +指令样例: + +{\ +    \"fun\":\"stopTextAnswer\",\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"stopTextAnswer\" //停止填空题 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"stopTextAnswer\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +### 异步测验模式 + +#### 开始作答 + +发送: + +fun: \"startTestMode\" //开始异步测验模式 + +params:{} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + optionsMode 测验类型 11-自动测验模式(默认值) + + testNum 测验题数量 1 - 100 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"startTestMode\", + +\"baseId\":0,\ +    \"params\":{\ +        \"optionsMode\":\"11\",\ +        \"testNum\":\"5\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +接收: + +- fun: \"startTestMode\" //开始异步测验模式 + +```{=html} + +``` +- baseId: \"1\"//接收到指令的基站ID + +- infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"startTestMode\", + +\"baseId\":1,\ +  \"infos\":{\ +       \"state\":\"OK\"\ +    }, + +\"packetTag\":\"1\"\ +} + +#### 接收作答 + +接收: + +fun: \"answerTestMode\" //异步测验模式返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + +指令样例: + +{\ +    \"fun\":\"answerTestMode\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"time\":\"5.42\",\ +        \"keySn\":\"1479824643\", + +  \"seq\":\"1\",\ +        \"keyValue\":\"A\"\ +    }, + + \"packetTag\":\"1\"\ +} + +#### 停止作答 + +发送: + +fun: \"stopTestMode\" //停止异步测验模式 + +params:{} //默认空 + +指令样例: + +{\ +    \"fun\":\"stopTestMode\",\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"stopTestMode\" //停止异步测验模式 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"stopTestMode\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +### 自定义题型 + +#### 开始测试 + +发送: + +fun: \"startKeyPadCustomQuestions\" //开始 + +params:{} + ++-----------------+------------+--------------------------------------+ +| Json字段 | | 赋值及含义 | +| | 字段含义 | | ++-----------------+------------+--------------------------------------+ +| titleTable | 题目表 | 数组 | +| | | | +| | | 字符串 | ++-----------------+------------+--------------------------------------+ +| optionTable | 选项表 | 数组 | +| | | | +| | | \"A,B,C,D\" \[默认\] | +| | | | +| | | \" 1,2,3,4 \" | +| | | | +| | | \" 对,错 \" | +| | | | +| | | \" √,× \" | +| | | | +| | | \" 同意,反对,弃权 \" | ++-----------------+------------+--------------------------------------+ +| ruleTable | 规则表 | 数组\[内容请参考"规则字段解释"\] | ++-----------------+------------+--------------------------------------+ +| permissionTable | 许可权限表 | 数组 | ++-----------------+------------+--------------------------------------+ +| .permission | 许可权限 | 0:无\[默认\] | +| | | | +| | | 1: 允许 | +| | | | +| | | 2: 禁止 | ++-----------------+------------+--------------------------------------+ +| .KeySnList | 键盘列表 | 1479824 | +| | | 643,1479824644,1479824645,1479824646 | ++-----------------+------------+--------------------------------------+ +| configTable | 配置表 | 数组 | ++-----------------+------------+--------------------------------------+ +| .number | 题编号 | 1-200 | ++-----------------+------------+--------------------------------------+ +| .titleID | 题目表ID | 1-200 | ++-----------------+------------+--------------------------------------+ +| .optionID | 选项表ID | 1-200 | ++-----------------+------------+--------------------------------------+ +| .ruleID | 规则表ID | 1-200 | ++-----------------+------------+--------------------------------------+ +| .permissionID | 许 | 1-200 | +| | 可权限表ID | | ++-----------------+------------+--------------------------------------+ + +规则字段解释: + +规则类型1: + + ------------------ -------------------- --------------------------------------- + Json字段 字段含义 赋值及含义 + + .ruleType 规则类型 1 + + .mode 模式 0 默认(单选选择)\ + 1 纯数字组合 + ,包含(上下键做负号与点号)\ + 2 填空自由组合,键盘自己实现输入方式\ + 3 多小题显示格式\ + 4 批次表决、批次评议\ + 5 批次评分\ + 6 名单选举\ + 7 累计投票、股权投票 + + .modifyMode 修改模式 0-不可修改 1-可修改,默认 1 + + .secrecyMode 保密模式 0-不保密 1-保密,默认 0 + + .lessMode 迫选模式 0 不迫选 1 迫选,默认 0 + + .repeat 重复模式 0 不限制 1 单个选项只能选一次,默认 0 + + .sort 自动排序 0 保留输入顺序,1 选项自动排序,默认 1 + + .max 最大可选人数 + + .min 最小可选人数 + + .maximum 最大可供选择项目数 1-10 + + .maxOptions 可选出数目 最小值是1,最大值不超出maximum + + . topLimit 数字上限 浮点数格式的字符串 + + . lowerLimit 数字下限 浮点数式的字符串 + ------------------ -------------------- --------------------------------------- + +规则类型2: + + ------------------ -------------- --------------------------------------- + Json字段 字段含义 赋值及含义 + + .ruleType 规则类型 2 + + .mode 模式 0 默认(选择) + + .modifyMode 修改模式 0-不可修改 1-可修改,默认 1 + + .secrecyMode 保密模式 0-不保密 1-保密,默认 0 + + .lessMode 迫选模式 0 不迫选 1 迫选,默认 0 + + . repeat 重复模式 0 不限制 1 单个选项只能选一次,默认 0 + + . sort 自动排序 0 保留输入顺序,1 选项自动排序,默认 1 + + .max 最大可选人数 + + .min 最小可选人数 + + .retain 保留数字 数组 范围000-999 + + .range 数字范围 数组 + + ..rangeStart 数字范围开始 + + ..rangeEnd 数字范围结束 + ------------------ -------------- --------------------------------------- + +指令样例: + +{ + +\"fun\": \"startKeyPadCustomQuestions\", + +\"baseId\": 0, + +\"params\": { + +\"titleTable\": \[\"单选题\", \"数字表决\"\], + +\"optionTable\": \[ + +\[\"A\", \"B\", \"C\", \"D\"\], + +\[\"同意\", \"反对\", \"弃权\"\] + +\], + +\"ruleTable\": \[{ + +\"ruleType\": \"1\", + +\"mode\": \"0\", + +\"modifyMode\": \"0\", + +\"secrecyMode\": \"0\", + +\"lessMode\": \"0\", + +\"repeat\": \"0\", + +\"sort\": \"1\", + +\"max\": \"4\", + +\"min\": \"1\", + +\"maximum\": \"4\", + +\"maxOptions\": \"1\", + +\"topLimit\": \"100.0\", + +\"lowerLimit\": \"0.1\" + +}, + +{ + +\"ruleType\": \"2\", + +\"mode\": \"0\", + +\"modifyMode\": \"0\", + +\"secrecyMode\": \"0\", + +\"lessMode\": \"0\", + +\"repeat\": \"0\", + +\"sort\": \"1\", + +\"max\": \"4\", + +\"min\": \"1\", + +\"retain\": \[\"777\", \"999\"\], + +\"range\": \[{ + +\"rangeStart\": \"1\", + +\"rangeEnd\": \"100\" + +}, { + +\"rangeStart\": \"101\", + +\"rangeEnd\": \"200\" + +}, { + +\"rangeStart\": \"201\", + +\"rangeEnd\": \"300\" + +}\] + +} + +\], + +\"permissionTable\": \[{ + +\"permission\": \"2\", + +\"keySnList\": \[\"1479824643\", \"1479824644\", \"1479824645\", +\"1479824646\"\] + +}, + +{ + +\"permission\": \"1\", + +\"keySnList\": \[\"1479824643\", \"1479824644\", \"1479824645\", +\"1479824646\"\] + +} + +\], + +\"configTable\": \[{ + +\"number\": \"1\", + +\"titleID\": \"1\", + +\"optionID\": \"1\", + +\"ruleID\": \"1\", + +\"permissionID\": \"0\" + +}, + +{ + +\"number\": \"2\", + +\"titleID\": \"2\", + +\"optionID\": \"2\", + +\"ruleID\": \"2\", + +\"permissionID\": \"0\" + +} + +\] + +}, + +\"packetTag\": \"59\" + +} + +接收: + +fun: \"startKeyPadMultipleQuestions\" //开始多题题型 + +baseId: \"1\"//接收到指令的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{ + +\"baseId\": 1, + +\"fun\": \"startKeyPadMultipleQuestions\", + +\"infos\": { + +\"state\": \"OK\" + +}, + +\"packetTag\": \"59\" + +} + +#### 接收作答 + +接收: + +fun: \"answerKeyPadCustomQuestions\" //自定义题型返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + Time 答题时间 \[time/5=实际时间\] + 单位秒,20分钟内有效 + + keySn 键盘Sn + + Seq 题序号 + + keyValue 键值 键盘提交的值 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"answerKeyPadCustomQuestions\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"time\":\"5.42\",\ +        \"keySn\":\"1479824643\", + +  \"seq\":\"1\",\ +        \"keyValue\":\"12\"\ +    }, + + \"packetTag\":\"1\"\ +} + +#### 退出作答 + +发送: + +fun: \"stopKeyPadCustomQuestions\" //停止多题题型 + +params:{} //默认空 + +指令样例: + +{\ +    \"fun\":\"stopKeyPadCustomQuestions\", + +\"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"stopKeyPadCustomQuestions\" //停止键盘测试 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"stopKeyPadCustomQuestions\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 不支持 + + B200-2.4G+M6 支持 + ----------------------- ----------------------- ----------------------- + +### 自由题型 + +#### 开始作答 + +发送: + +fun: \"startFreeQuestion\" //开始自由题型 + +params:{} + +指令样例: + +{\ +    \"fun\":\"startFreeQuestion\", + +\"baseId\":0,\ +    \"params\":{}, + +\"packetTag\":\"1\"\ +} + +接收: + +fun: \"startChoices\" //开始自由题型 + +baseId: \"1\"//接收到指令的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"startFreeQuestion\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 接收作答 + +接收: + +接收作答数据有键盘提交决定分为:选择题、判断题和数字题三个类型 + +选择题: + +fun: \"answerChoices\" //自由题型作答返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + ++----------------+--------------+-------------------------------------+ +| Json字段 | 字段含义 | 赋值及含义 | ++----------------+--------------+-------------------------------------+ +| time | 答题时间 | 单位秒 | ++----------------+--------------+-------------------------------------+ +| keySn | 键盘Sn | | ++----------------+--------------+-------------------------------------+ +| keyValue | 键值 | A | +| | | | +| | | ABC | +| | | | +| | | AABB | +| | | | +| | | CBA | ++----------------+--------------+-------------------------------------+ + +指令样例: + +{\ +    \"fun\":\"answerChoices\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"keySn\":\"1479824643\",\ +        \"keyValue\":\"ABC\"\ +    },\ +    \"packetTag\":\"0\"\ +} + +判断题: + +fun: \"answerTrueFalse\" //自由题型作答返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + time 答题时间 单位秒 + + keySn 键盘Sn + + keyValue 键值 1\~2 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\" answerTrueFalse\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"keySn\":\"1479824643\",\ +        \"keyValue\":\"1\"\ +    },\ +    \"packetTag\":\"0\"\ +} + +数字题: + +fun: \"answerNumber\" //自由题型作答返回 + +baseId: \"1\"//接收到指令的基站ID + +infos: {} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + time 答题时间 单位秒 + + keySn 键盘Sn + + keyValue 键值 键盘提交的值 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"answerNumber\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"keySn\":\"1479824643\",\ +        \"keyValue\":\"99.99\"\ +    },\ +    \"packetTag\":\"0\"\ +} + +#### 停止作答 + +发送: + +fun: \"stopFreeQuestion\" //停止自由题型 + +params:{} //默认空 + +指令样例: + +{\ +    \"fun\":\"stopFreeQuestion\", + +\"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"stopFreeQuestion\" //停止自由题型 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\" stopFreeQuestion \",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +#### 支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +## NFC刷卡 + +刷卡流程: + +刷卡后可以将键盘和基站自动完成配对。当需要刷卡绑定时应用软件先给基站发送一个键盘的姓名,键盘靠近基站感应区就会直接绑定当前数据并返回状态给应用。绑定成功后应用再发送下一个键盘的绑定信息,依次循环来绑定多个。 + +### 写刷卡数据 + +发送: + +fun: \"writeNFCInfo\" //写NFC绑定数据 + +baseId: 1//1\~32 (键盘所连基站ID) + +params:{}// + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + userName 姓名 最多24个汉字(48个字符), + 键盘左上角显示 + + matchCode 配对码 四字节 十六进制显示 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"writeNFCInfo\", + + \"baseId\":1,\ +    \"params\":{\ +        \"userName\":\"张三\", + +\"matchCode\":\"22120007\" + +},\ +    \"packetTag\":\"1\"\ +} + +### 刷卡绑定反馈 + +接收: + +fun: \"NFCInfo\" //NFC绑定数据 + +baseId: \"1\"//键盘所连基站ID + +infos:{} + ++----------------+--------------+-------------------------------------+ +| Json字段 | 字段含义 | 赋值及含义 | ++----------------+--------------+-------------------------------------+ +| keySn | 键盘Sn | | ++----------------+--------------+-------------------------------------+ +| state | 状态 | 1 预留 | +| | | | +| | | 2 基站报告正常刷卡的键盘SN | +| | | | +| | | 3 预留 | +| | | | +| | | 4 刷卡写指定配对码消息 | ++----------------+--------------+-------------------------------------+ +| number | 数量 | 预留 | ++----------------+--------------+-------------------------------------+ + +指令样例: + +{\ +    \"fun\":\"NFCInfo\",\ +    \"baseId\":1,\ +    \"infos\": {\ +            \"keySn\":\"1479824643\",\ +            \"state\":\"4\", + +            \"number\":\"0\"\ +        } ,\ +    \"packetTag\":\"1\"\ +} + +### NFC数据清除指令 + +发送: + +fun: \"writeNFCEmpty\" //写NFC绑定数据 + +baseId: 1//1\~32 (键盘所连基站ID) + +params:{}// + +指令样例: + +{\ +    \"fun\":\"writeNFCEmpty\", + +  \"baseId\":1,\ +    \"params\":{},\ +    \"packetTag\":\"1\"\ +} + +### 支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 支持 带NFC键盘有效 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +## 硬件参数 + +硬件的读写操作返回数据都是相同的,具体值参见写指令的value + +### 基站 + +#### 基站编号 + +读 + +发送: + +fun: \"readBaseStationID\" //读基站编号 + +baseId: 0//0\~32 (指令不发送baseID,默认为0表示读取所有在线基站) + +params:{}//可不填 + +指令样例: + +{\ +    \"fun\":\"readBaseStationID\",\ +    \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"baseStationID\" + +baseId: \"2\"//基站ID + +infos:{\"value\":\"OK\"}//返回基站在线 + +指令样例1: + +{ + +\"baseId\": 1, + +\"fun\": \"connectBase\", + +\"infos\": { + +\"value\": \"OK\" + +}, + +\"packetTag\": \"1\" + +} + +指令样例2: + +{ + +\"baseId\": 2, + +\"fun\": \"connectBase\", + +\"infos\": { + +\"value\": \"OK\" + +}, + +\"packetTag\": \"1\" + +} + +指令样例: + +{\ +    \"fun\":\"readBaseStationID\",\ +    \"baseId\":2,\ +    \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"baseStationID\" + +baseId: \"2\"//基站ID + +infos:{\"value\":\"2\"}//返回基站ID + +指令样例: + +{\ +    \"fun\":\"baseStationID\",\ +    \"baseId\":2,\ +     \"infos\":{ + +\"pathAdd\":\"12345\",\ +        \"value\":\"2\"\ +    }, + + \"packetTag\":\"1\"}\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +#### 基站频点 + +读 + +发送: + +fun: \"readBaseStationChannel\" //读基站频点 + +baseId: 0//0\~32 (默认为0表示读取所有基站) + +params:{}//可不填 + +指令样例: + +{\ +    \"fun\":\"readBaseStationChannel\",\ +    \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +写 + +发送: + +fun: \"writeBaseStationChannel\" //写基站频点 + +baseId: 1//1\~32 (必须指定基站) + +params:{\"value\":\"1\"}//1\~12 (频点) + +指令样例: + +{\ +    \"fun\":\"writeBaseStationChannel\",\ +    \"baseId\":1,\ +    \"params\":{\ +        \"value\":\"3\"\ +    }, + + \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"baseStationChannel\" + +baseId: 1//基站ID + +infos:{\"value\":\"3\"}//返回基站频点值 + +指令样例: + +{\ +    \"fun\":\"baseStationChannel\",\ +    \"baseId\":1,\ +     \"infos\":{\ +        \"value\":\"3\"\ +    }, + + \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +#### 键盘登录菜单显示 + +读 + +发送: + +fun: \"readKeyboardLoginMenu\" //读键盘登录菜单显示 + +baseId: 0//0\~32 (默认为0表示读取所有基站) + +params:{}//可不填 + +指令样例: + +{\ +    \"fun\":\"readKeyboardLoginMenu\",\ +    \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +写 + +发送: + +fun: \"writeKeyboardLoginMenu\" //写键盘登录菜单显示 + +baseId: 1 //1\~32 (必须指定基站) + +params:{\"value\":\"1\"}//0\~1 (0不允许登录;1允许登录) + +指令样例: + +{\ +    \"fun\":\"writeKeyboardLoginMenu\",\ +    \"baseId\":1,\ +    \"params\":{\ +        \"value\":\"1\"\ +    }, + + \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"baseStationKeyboardLoginMenu\" + +baseId: 1//基站ID + +infos:{\"value\":\"1\"}//返回键盘登录菜单显示值 + +指令样例: + +{\ +    \"fun\":\"baseStationKeyboardLoginMenu\",\ +    \"baseId\":1,\ +     \"infos\":{\ +        \"value\":\"1\"\ +    }, + + \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +#### 基站型号(只读) + +读 + +发送: + +fun: \"readBaseStationModel\" //读基站基站型号 + +baseId: 0//0\~32 (默认为0表示读取所有基站) + +params:{}//可不填 + +指令样例: + +{\ +    \"fun\":\"readBaseStationModel\",\ +    \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"baseStationModel\" + +baseId: 1//基站ID + +infos:{\"value\":\"218\"}//返回基站基站型号 + +指令样例: + +{\ +    \"fun\":\"baseStationModel\",\ +    \"baseId\":1,\ +     \"infos\":{\ +        \"value\":\"218\"\ +    }, + + \"packetTag\":\"1\"\ +} + +基站型号代码查询表 + + ----------------------------------- ----------------------------------- + 基站型号代码 基站型号 + + 217 B100-2.4G + + 218 B200-2.4G + + 219 B200-5.8G + ----------------------------------- ----------------------------------- + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +#### 基站软件版本(只读) + +读 + +发送: + +fun: \"readBaseStationSVersion\" //读基站软件版本 + +baseId: 0 //0\~32 (默认为0表示读取所有基站) + +params:{}//可不填 + +指令样例: + +{\ +    \"fun\":\"readBaseStationSVersion\",\ +    \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"baseStationSVersion\" + +baseId: 1//基站ID + +infos:{\"value\":\"V2.0.2\"}//返回基站软件版本 + +指令样例: + +{\ +    \"fun\":\"baseStationSVersion\",\ +    \"baseId\":1,\ +     \"infos\":{\ +        \"value\":\"V2.0.2\"\ +    }, + + \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +#### 基站序列号(只读) + +读 + +发送: + +fun: \"readBaseStationSN\" //读基站序列号 + +baseId: 0 //0\~32 (默认为0表示读取所有基站) + +params:{}//可不填 + +指令样例: + +{\ +    \"fun\":\"readBaseStationSN\",\ +    \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"baseStationSN\" + +baseId: 1//基站ID + +infos:{\"value\":\"FFFFFFFFFF\"}//返回基站序列号 + +指令样例: + +{\ +    \"fun\":\"baseStationSN\",\ +    \"baseId\":1,\ +     \"infos\":{\ +        \"value\":\"FFFFFFFFFF\"\ +    }, + + \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +#### 基站名称 + +读 + +发送: + +fun: \"readBaseStationTitle\" //读基站名称 + +baseId: 0 //0\~32 (默认为0表示读取所有基站) + +params:{}//可不填 + +指令样例: + +{\ +    \"fun\":\"readBaseStationTitle\",\ +    \"baseId\":0, + + \"packetTag\":\"1\"\ +} + +写 + +发送: + +fun: \"writeBaseStationTitle\" //写基站名称 + +baseId: 1//1\~32(必须指定基站) + +params:{\"value\":\" A2021\"}//基站名称,最长12字节 + +指令样例: + +{\ +    \"fun\":\"writeBaseStationTitle\",\ +    \"baseId\":1,\ +    \"params\":{\ +        \"value\":\"A2021\"\ +    }, + + \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"baseStationTitle\" + +baseId: 1//基站ID + +infos:{\"value\":\"A2021\"}//返回基站名称 + +指令样例: + +{\ +    \"fun\":\"baseStationTitle\",\ +    \"baseId\":1,\ +     \"infos\":{\ +        \"value\":\"A2021\"\ +    }, + + \"packetTag\":\"1\"}\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +#### 基站配对码 + +读 + +发送: + +fun: \"readBaseStationMatchCode\" //读基站配对码 + +baseId: 0 //0\~32 (默认为0表示读取所有基站) + +params:{}//可不填 + +指令样例: + +{\ +    \"fun\":\"readBaseStationMatchCode\",\ +    \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"baseStationMatchCode\" + +baseId: 1//基站ID + +infos:{\"value\":\"21072333\"}//返回基站配对码 + +指令样例: + +{\ +    \"fun\":\"baseStationMatchCode,\ +    \"baseId\":1,\ +     \"infos\":{\ +        \"value\":\"21072333\"\ +    }, + + \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +#### 基站频点冲突 + +检测到基站频点冲突将会返回给应用程序提示,应用程序可根据情况更改频点。 + +接收: + +fun: \"baseStationChannelInterference\" // 基站频点冲突 + +baseId: // + +infos:{ \"value\":\"5\"}//频点5冲突 + +packetTag:\"0\"//数据包标签 + +指令样例: + +{\ +    \"fun\":\"baseStationChannelInterference\",\ +    \"baseId\":1,\ +     \"infos\":{\ +        \"value\":\"5\"\ +    }, + + \"packetTag\":\"0\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +#### 基站容量 + +读 + +发送: + +fun: \"readBaseStationCapacity\" //读基站容量 + +baseId: 0 //0\~32 (默认为0表示读取所有基站) + +params:{}//可不填 + +指令样例: + +{\ +    \"fun\":\"readBaseStationCapacity\",\ +    \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"baseStationCapacity\" + +baseId: \"1\"//基站ID + +infos:{\"keypadNumber\":\"60\",\"lock\":\"1\"}//返回基站键盘容量值 + +指令样例: + +{\ +    \"fun\":\"baseStationID\",\ +    \"baseId\":2,\ +     \"infos\":{\ +        \"keypadNumber\":\"60\", + +        \"lock\":\"1\"\ +    }, + + \"packetTag\":\"1\"}\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +#### 快速配对 + +##### 开始快速配对 + +发送: + +fun: \"startQuickMatch\" //开始快速配对 + +baseId:1 // 1\~32 (必选参数,范围(1\~32)) + +params:{} + +指令样例: + +{\ +    \"fun\":\"startQuickMatch\", + +> \"baseId\":1,\ +> \"packetTag\":\"1\" +> +> } + +接收: + +fun: \"startQuickMatch\" //开始快速配对 + +baseId: \"1\"//接收到指令的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"startQuickMatch\",\ +    \"baseId\":1,\ +    \"infos\":{\ +        \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +##### 停止快速配对 + +发送: + +fun: \"stopQuickMatch\" //停止快速配对 + +params:{} //默认空 + +指令样例: + +{\ +    \"fun\":\"stopQuickMatch\", + +  \"baseId\":1,\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"stopQuickMatch\" //停止快速配对 + +baseId: \"1\"//收到的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"stopQuickMatch\",\ +    \"baseId\":1,\ +    \"infos\":{\ +          \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +##### 支持设备说明 + + ----------------------- ------------------ ---------------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 键盘需要设置为配对模式 + + B200-2.4G+S6 支持 键盘需要设置为配对模式 + + B200-5.8G+T2 不支持 + ----------------------- ------------------ ---------------------------- + +#### 键盘登录密码 + +读 + +发送: + +fun: \"readKeyboardLoginPW\" //读键盘登录密码 + +baseId: 0// 0\~32 (指令不发送baseID,默认为0表示读取所有基站) + +params:{}//可不填 + +指令样例: + +{\ +    \"fun\":\"readKeyboardLoginPW\",\ +    \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +写 + +发送: + +fun: \"writeKeyboardLoginPW\" //写键盘登录密码 + +baseId: 1 //1\~32 (必须指定基站) + +params:{\"value\":\"0\"}//0\~9999 (0不用核对) + +指令样例: + +{\ +    \"fun\":\"writeKeyboardLoginPW\",\ +    \"baseId\":1,\ +    \"params\":{\ +        \"value\":\"0\"\ +    }, + + \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"baseStationKeyboardLoginPW\" + +baseId: 1//基站ID + +infos:{\"value\":\"1\"}//返回键盘登录密码值 + +指令样例: + +{\ +    \"fun\":\"baseStationKeyboardLoginPW\",\ +    \"baseId\":1,\ +     \"infos\":{\ +        \"value\":\"0\"\ +    }, + + \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +#### 基站名称隐藏 + +读 + +发送: + +fun: \"readBaseStationNameHidden\" //读基站名称隐藏 + +baseId: 0// 0\~32 (指令不发送baseID,默认为0表示读取所有基站) + +params:{}//可不填 + +指令样例: + +{\ +    \"fun\":\"readBaseStationNameHidden\",\ +    \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +写 + +发送: + +fun: \"writeBaseStationNameHidden\" //写基站名称隐藏 + +baseId: 1 //1\~32 (必须指定基站) + +params:{\"value\":\"0\"}//0\~1 (0隐藏,1不隐藏) + +指令样例: + +{\ +    \"fun\":\"writeBaseStationNameHidden\",\ +    \"baseId\":1,\ +    \"params\":{\ +        \"value\":\"0\"\ +    }, + + \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"baseStationNameHidden\" + +baseId: 1//基站ID + +infos:{\"value\":\"1\"}//返回基站名称隐藏值 (0隐藏,1不隐藏) + +指令样例: + +{\ +    \"fun\":\"baseStationNameHidden\",\ +    \"baseId\":1,\ +     \"infos\":{\ +        \"value\":\"0\"\ +    }, + + \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +#### 基站TCP/IP参数 + +读 + +发送: + +fun: \"readBaseStationTcpIp\" //读基站TCP/IP参数 + +baseId: 0// 0\~32 (指令不发送baseID,默认为0表示读取所有基站) + +params:{}//可不填 + +指令样例: + +{\ +    \"fun\":\"readBaseStationTcpIp\",\ +    \"baseId\":0,\ +    \"packetTag\":\"1\"\ +} + +写 + +发送: + +fun: \"writeBaseStationTcpIp\" //写基站TcpIp + +baseId: 1 //1\~32 (必须指定基站) + +params: + +指令样例: + +{\ +    \"fun\":\"writeBaseStationTcpIp\",\ +    \"baseId\":1,\ +    \"params\":{ + +\"mac\":\"FF.FF.FF.FF.FF\",\ +        \"ip\":\"192.168.10.10\", + +\"mask\":\"255.255.255.0\", + + \"gateway\":\"192.168.10.1\"\ +    }, + + \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"baseStationTcpIp\" + +baseId: 1//基站ID + +infos:{\"value\":\"1\"}//返回基站TcpIp + +指令样例: + +{\ +    \"fun\":\"baseStationTcpIp\",\ +    \"baseId\":1,\ +     \"infos\":{\ +         \"ip\":\"192.168.10.10\", + + \"mac\":\"FF.FF.FF.FF.FF\", + +\"mask\":\"255.255.255.0\", + +  \"gateway\":\"192.168.10.1\"\ +    }, + + \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 不支持 + + EA4000T-2.4G+S5 支持 带LAN接口版本 + ----------------------- ----------------------- ----------------------- + +#### 基站键盘白名单管理 + +读 + +发送: + +- fun: \"readWhiteList\" //读白名单列表 + +- baseId: 0// + +指令样例: + +{\ +    \"fun\":\"readWhiteList\",\ +    \"baseId\":0, + +\"params\":{},\ +    \"packetTag\":\"1\"\ +} + +写 + +发送: + +- fun: \"writeWhiteList\" //写白名单列表 + +```{=html} + +``` +- baseId: 1 //1\~32 (必须指定基站) + +```{=html} + +``` +- keySnList:\[\]//键盘SN数组最多200键盘SN + +指令样例: + +{ + +\"fun\": \"writeWhiteList\", + +\"baseId\": 2, + +\"keySnList\": \[ + +{\"keySn\":\"2111120140\"}, + +> {\"keySn\":\"0005243136\"}, +> +> {\"keySn\":\"2111120102\"} \], + +\"packetTag\": \"10\" + +} + +返回 + +接收: + +- fun: \"whiteList\" + +- baseId: 1//基站ID + +- infos:{\"value\":\"1\"}//返回读白名单列表区域 + +指令样例: + +> {\ +>     \"fun\":\"whiteList\",\ +>     \"baseId\":1,\ +>      \"infos\":\[ + +{\"keySn\":\"2111120140\"}, + +> {\"keySn\":\"0005243136\"}, +> +> {\"keySn\":\"2111120102\"} \], + + \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 不支持 + + EA4000T-2.4G+S5 不支持 + + EA3100-2.4G+S62 支持 + ----------------------- ----------------------- ----------------------- + +### 键盘 + +键盘写参数可以不指定键盘SN,则对所有在线键盘进行写操作,但没有键盘状态返回。如需指定键盘信息下发,则需要指定键盘SN,所有键盘状态返回。 + +注:如果一条指定键盘指令中有一个keySN为空,则该指令会按不指定键盘执行。 + +#### 键盘外设(只写) + +写 + +fun: \"writeKeypadDevice\" //写键盘外设,由led灯、蜂鸣器、马达组合 + +params:{} // +数组对象,对象中的默认值为空字符串,各类(led、beep、motor)外设字段都不设置,表示该类不设置 + + --------------- ------------------ ----------------------------------------- + Json字段 字段含义 赋值及含义 + + keySn 键盘SN 空字符串,为所有在线键盘 + + ledTimes Led灯闪烁次数 0\~255 (0是马上灭,255是长亮) + + ledOnTime Led灯每次开时间 0\~255 (单位0.1s) + + ledOffTime Led灯每次关时间 0\~255 (单位0.1s,为0就是连续亮) + + ledColorR Led灯灯颜色,红值 0\~255(现只支持0灭和1亮,,\>1也认为是1) + + ledColorG Led灯灯颜色,绿值 0\~255(现只支持0灭和1亮,,\>1也认为是1) + + ledColorB Led灯灯颜色,蓝值 0\~255(现只支持0灭和1亮,,\>1也认为是1) + + beepTimes 蜂鸣器响次数 0\~255 (0是马上响,255是长响) + + beepOnTime 蜂鸣器每次开时间 0\~255 (单位0.1s) + + beepOffTime 蜂鸣器每次关时间 0\~255 (单位0.1s,为0就是连续响) + + motorTimes 马达震动次数 0\~255 + + motorOnTime 马达每次开时间 0\~255 (单位0.1s) + + motorOffTime 马达每次关时间 0\~255 (单位0.1s,为0就是连续振动) + --------------- ------------------ ----------------------------------------- + +指令样例: + +所有键盘 + +{\ +    \"fun\":\"writeKeypadDevice\", + + \"baseId\":1,\ +    \"params\":\ +        {\ +            \"ledTimes\":\"3\",\ +            \"ledOnTime\":\"1\",\ +            \"ledOffTime\":\"1\",\ +            \"ledColorR\":\"128\", + +            \"ledColorG\":\"128\", + +            \"ledColorB\":\"128\", + +\"beepTimes\":\"3\",\ +            \"beepOnTime\":\"1\",\ +            \"beepOffTime\":\"1\", + +\"motorTimes\":\"3\",\ +            \"motorOnTime\":\"2\",\ +            \"motorOffTime\":\"1\"\ +        }, + + \"packetTag\":\"1\"\ +} + +返回 + +fun: \"writeKeypadDevice\" + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"writeKeypadDevice\",\ +    \"baseId\":0,\ +    \"infos\":{ + +\"keySn\":\"0000000000\"\ +        \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +指定键盘 + +{\ +    \"fun\":\"writeKeypadDevice\", + +\"keySnList\":\[{\"keySn\":\"0007899478\"}\],\ +    \"params\":\ +        {\ +            \"ledTimes\":\"3\",\ +            \"ledOnTime\":\"1\",\ +            \"ledOffTime\":\"1\",\ +            \"ledColorR\":\"128\",\ +            \"ledColorG\":\"128\",\ +            \"ledColorB\":\"128\",\ +            \"beepTimes\":\"3\",\ +            \"beepOnTime\":\"1\",\ +            \"beepOffTime\":\"1\",\ +            \"motorTimes\":\"3\",\ +            \"motorOnTime\":\"2\",\ +            \"motorOffTime\":\"1\"\ +        },\ +    \"packetTag\":\"1\"\ +} + +返回 + +fun: \"writeKeypadDevice\" + +infos:{}//数组对象,同发送的 + +指令样例: + +{ + +\"baseId\": 3, + +\"fun\": \"writeKeypadDevice\", + +\"infos\": { + +\"keySn\": \"0007899478\", + +\"state\": \"OK\" + +}, + +\"packetTag\": \"1\" + +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 支持 蜂鸣器部分参数无效 + ----------------------- ----------------------- ----------------------- + +#### 键盘反馈参数 + +读 + +发送: + +fun: \"readKeypadFeedbackMode\" //读键盘反馈模式参数 + +baseId: 0//0\~32 (指令不发送baseID,默认为0表示读取所有基站) + +params:{}//读取时不需要 + ++----------------+--------------+-------------------------------------+ +| Json字段 | 字段含义 | 赋值及含义 | ++----------------+--------------+-------------------------------------+ +| Mode | 反馈模式 | 0- 不启用(默认0不启用) | +| | | | +| | | 1- 通用键码,不显示 | ++----------------+--------------+-------------------------------------+ +| Value | 反馈 | 1\~10 | +| | 最大有效按键 | | ++----------------+--------------+-------------------------------------+ + +指令样例: + +{\ +    \"fun\":\"readKeypadFeedbackMode\",\ +    \"baseId\":0, + + \"packetTag\":\"1\"\ +} + +写 + +发送: + +fun: \"writeKeypadFeedbackMode\" //写键盘反馈模式参数 + +baseId: 1//1\~32 (必须指定基站) + +params:{\"mode\":\"1\", \"value\":\"4\"}// + +指令样例: + +{ + +\"fun\":\"writeKeypadFeedbackMode\", + +\"baseId\":0, + +\"params\":{ + +\"mode\":\"1\", + +\"value\":\"4\" + +}, + +\"packetTag\":\"1\" + +} + +返回 + +接收: + +fun: \"keypadFeedbackMode\" + +baseId: 1//基站ID + +infos:{ \"mode\":\"1\", \"value\":\"4\"}//返回键盘反馈模式参数值 + +指令样例: + +{\ +    \"fun\":\"keypadFeedbackMode\",\ +    \"baseId\":1,\ +     \"infos\":{ + +\"mode\":\"1\",\ +        \"value\":\"4\"\ +    }, + + \"packetTag\":\"1\"}\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +#### 键盘即时反馈\[主动上报\] + +接收: + +fun: \"immediateFeedback\" + +baseId: 1//基站ID + +infos:{ \"keySn\":\"1\", \"value\":\"A\"}//返回键盘反馈模式参数值 + +指令样例: + +{\ +    \"fun\":\"immediateFeedback\",\ +    \"baseId\":1,\ +     \"infos\":{ + +\"keySn\":\"1479824643\",\ +        \"value\":\"A\"\ +    }, + + \"packetTag\":\"0\"}\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +#### 键盘心跳反馈\[上报\] + +接收: + +fun: \" keyboardHeartbeat\" + +baseId: 1//基站ID + +infos:{ +\"keySn\":\"1479824643\",\"keyValue\":\"0\",\"ver\":\"1.0.0\",\"volt\":\"50\"}//返回键盘反馈模式参数值 + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + hModel 键盘型号 75: T2-5.8G\ + 76: S6-2.4G + + keySn 键盘Sn + + keyVer 键盘版本 + + Volt 键盘电量 T2百分比值,S6无效 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"keyboardHeartbeat\",\ +    \"baseId\":1,\ +     \"infos\":{ + +\"hModel\":\"67\", + +\"keySn\":\"1479824643\",\ +        \"keyValue\":\"0\", + +\"ver\":\"1.0.0\", + +\"volt\":\"50\"\ +    }, + + \"packetTag\":\"0\"}\ +} + +支持设备说明 + + ----------------------- ----------------------- ---------------------------------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 出厂配置有心跳时反馈,出厂配置无心跳时不反馈 + + B200-2.4G+S6 支持 出厂配置有心跳时反馈,出厂配置无心跳时不反馈 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ---------------------------------------------- + +#### 键盘上线通知\[上报\] + +S6键盘上线后上报键盘SN信息。 + +接收: + +fun: \"keyboardOnlineOne\" + +baseId: 1//基站ID + +infos:{ \"keySn\":\"1479824643\"}//返回键盘反馈模式参数值 + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + keySn 键盘Sn + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"keyboardOnlineOne\",\ +    \"baseId\":1,\ +     \"infos\":{ + +\"keySn\":\"1479824643\"       + +    }, + + \"packetTag\":\"0\"}\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +#### 遥控键盘关机 + +写 + +发送: + +fun: \"remoteKeyShutdown\" //遥控键盘关机 + +params:{}// + +指令样例: + +{\ +    \"fun\":\"remoteKeyShutdown\", + + \"baseId\":1, + +\"params\":\[\ +        {\ +            \"keySn\":\"1837454011\"             + +} + +\],\ +      \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"remoteKeyShutdown\" + +baseId: 1//基站ID + +infos:{\"keySn\":\"1837454011\",\"state\":\"OK\"}//遥控键盘关机 + +指令样例: + +{\ +    \"fun\":\"remoteKeyShutdown\",\ +    \"baseId\":1,\ +     \"infos\":{\ +        \"keySn\":\"1837454011\",\ +          \"state\":\"OK\"\ +    }, + + \"packetTag\":\"1\"\ +} + +发送: + +fun: \"remoteKeyShutdown\" //遥控所有键盘关机 + +params:{}// + +指令样例: + +{\ +    \"fun\":\"remoteKeyShutdown\", + + \"baseId\":1, + +\"params\":\[\],\ +      \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"remoteKeyShutdown\" + +baseId: 1//基站ID + +infos:{\"keySn\":\"0000000000\",\"state\":\"OK\"}//遥控所有键盘关机 + +指令样例: + +{\ +    \"fun\":\"remoteKeyShutdown\",\ +    \"baseId\":1,\ +     \"infos\":{\ +        \"keySn\":\"0000000000\",\ +          \"state\":\"OK\"\ +    }, + + \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +#### 键盘暂停休眠 + +写 + +发送: + +fun: \"writeKeyboardPauseSleep\" //键盘暂停休眠 + +params:{\"value\"} // + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + baseId 基站ID 0-32 0:所有基站,默认值 + + value 预留 0 :10秒有效(默认值) + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"writeKeyboardPauseSleep\", + + \"baseId\":0, + +\"params\":\ +        {\ +            \"value\":\"0\"             + +},\ +      \"packetTag\":\"1\"\ +} + +返回 + +接收: + +fun: \"writeKeyboardPauseSleep\" + +baseId: 1//基站ID + +infos:{\"value\":\"0\"}//10秒 + +指令样例: + +{\ +    \"fun\":\"writeKeyboardPauseSleep\",\ +    \"baseId\":1,\ +     \"infos\":{\ +        \"value\":\"0\"\ +    }, + + \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +#### 键盘短消息 + +写 + +fun: \"writeKeyMessage\" //写键盘短消息 + +params:{} // 数组对象,对象中的默认值为空字符串, + + --------------- ----------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + keySn 键盘SN 空字符串,为所有在线键盘 + + txt 短消息内容 字符串最长80字节 + --------------- ----------------- -------------------------------------- + +指令样例: + +所有键盘 + +{\ +    \"fun\":\"writeKeyMessage\", + + \"baseId\":0,\ +    \"params\":\ +        {\ +            \"txt\":\"最新消息\"            + +}, + + \"packetTag\":\"1\"\ +} + +返回 + +fun: \"writeKeyMessage\" + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"writeKeyMessage\",\ +    \"baseId\":0,\ +    \"infos\":{ + +\"keySn\":\"0000000000\"\ +        \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +指定键盘 + +{\ +    \"fun\":\"writeKeyMessage\", + +\"keySnList\":\[{\"keySn\":\"0007899478\"}\],\ +    \"params\":\ +        {\ +           \"txt\":\"最新消息\" + +     },\ +    \"packetTag\":\"1\"\ +} + +返回 + +fun: \"writeKeyMessage\" + +infos:{}//数组对象,同发送的 + +指令样例: + +{ + +\"baseId\": 3, + +\"fun\": \"writeKeyMessage\", + +\"infos\": { + +\"keySn\": \"0007899478\", + +\"state\": \"OK\" + +}, + +\"packetTag\": \"1\" + +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +#### 指定键盘修改FSN\[内部\] + +写 + +fun: \"writeKeyFSN\" //写键盘修改FSN + +params:{} // 数组对象,对象中的默认值为空字符串, + + --------------- ----------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + keySnOld 旧键盘SN + + keySnNew 新键盘 SN + --------------- ----------------- -------------------------------------- + +指令样例: + +指定键盘 + +{\ +    \"fun\":\"writeKeyFSN\", + +    \"params\":\ +        {\ +           \"keySnList\":\[ + +{ + +\"keySnOld\":\"0007899478\", + +\"keySnNew\":\"0007899479\" + +}, + +{ + +\"keySnOld\":\"0007899488\", + +\"keySnNew\":\"0007899489\" + +} \]\ +     },\ +    \"packetTag\":\"1\"\ +} + +返回 + +fun: \"writeKeyFSN\" + +infos:{}//数组对象,同发送的 + +指令样例: + +{ + +\"baseId\": 3, + +\"fun\": \"writeKeyFSN\", + +\"infos\": { + +\"keySn\": \"0007899478\", + +\"state\": \"OK\" + +}, + +\"packetTag\": \"1\" + +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 不支持 + ----------------------- ----------------------- ----------------------- + +## 键盘显示设置 + +> 注:返回指令中的\"baseId\":0, 可忽略不处理 + +### 空闲标题 + +修改参数后设备重启生效。 + +发送: + +fun: \"writeKeypadFreeTitle\" //写键盘空闲标题显示 + +params:{} + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + title 标题 最多8个汉字(16个字符) + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"writeKeypadFreeTitle\", + +  \"baseId\":1,\ +    \"params\":\ +        { + +            \"title\":\"请认真听讲\" + +  }\ + } + +接收: + +fun: \"writeKeypadFreeTitle\" //写键盘空闲标题显示 + +baseId: 1//接收到指令的基站ID + +infos:{}// + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + keySn 键盘SN + + state 返回信息 OK(成功) + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"writeKeypadFreeTitle\", + +\"baseId\":0,\ +    \"infos\":{\ +        \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +### 自定义信息 + +当启动PIN码签到绑定模式,则可对键盘进行绑定操作 + +发送: + +fun: \"writeKeypadCustomInfo\" //写键盘的自定义信息 + +params:{}//数组对象,字段不填则保留上次值。 + ++----------------+--------------+-------------------------------------+ +| Json字段 | 字段含义 | 赋值及含义 | ++----------------+--------------+-------------------------------------+ +| keySn | 键盘Sn | 空则为所有在线键盘,其他数组值无效 | ++----------------+--------------+-------------------------------------+ +| scoreMode | 分数模式 | 1-清除 | +| | | | +| | | 2-字符显示(默认值) | +| | | | +| | | 3-五角星显示 | +| | | | +| | | 4-爱心显示\[S6有效\] | ++----------------+--------------+-------------------------------------+ +| scoreValue | 分数值 | scoreMode==1,此处无效 | +| | | | +| | | scoreMode==2,8个字符长度 | +| | | | +| | | scoreMode==3, | +| | | 0\~6,2个分数表示1个五角星,最多3个 | +| | | | +| | | scoreMode==4 | +| | | ,0\~6,2个分数表示1个爱心,最多3个 | +| | | \[S6有效\] | ++----------------+--------------+-------------------------------------+ +| tipText | 提示文本 | 最多8个汉字(16个字符), | +| | | 键盘第二行显示 | ++----------------+--------------+-------------------------------------+ + +指令样例: + +{\ +    \"fun\":\"writeKeypadCustomInfo\", + +  \"baseId\":1,\ +    \"params\":\[\ +        {\ +            \"keySn\":\"1479824643\", + +            \"scoreMode\":\"2\",\ +            \"scoreValue\":\"99\",\ +            \"tipText\":\"已绑定\"\ +        }\ +    \],\ +    \"packetTag\":\"1\"\ +} + +接收: + +指定键盘 + +fun: \"writeKeypadCustomInfo\" //写键盘的用户信息 + +baseId:0 //接收到指令的基站ID + +infos:{}//数组对象 + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + keySn 键盘Sn + + state 状态 OK表示成功 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"writeKeypadCustomInfo\", + +\"baseId\":0,\ +    \"infos\":\[\ +        {\ +            \"keySn\":\"1479824643\",\ +            \"state\":\"OK\"\ +        }\ +    \],\ +    \"packetTag\":\"1\"\ +} + +所有键盘 + +fun: \"writeKeypadCustomInfo\" //写键盘的用户信息 + +baseId:0 //接收到指令的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"writeKeypadCustomInfo\",\ +    \"baseId\":0,\ +    \"infos\":{\ +        \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +### 用户姓名 + +当启动PIN码签到绑定模式,则可对键盘进行绑定操作 + +发送: + +fun: \"writeKeypadUserName\" //写键盘的用户姓名 + +params:{}//数组对象,字段不填则保留上次值。 + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + keySn 键盘Sn 空则为所有在线键盘,其他数组值无效 + + userName 姓名 最多24个汉字(48个字符), + 键盘左上角显示 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"writeKeypadUserName\", + +  \"baseId\":1,\ +    \"params\":\[\ +        {\ +            \"keySn\":\"1479824643\",\ +            \"userName\":\"张三\" + +        }\ +    \],\ +    \"packetTag\":\"1\"\ +} + +接收: + +指定键盘 + +fun: \"writeKeypadUserName\" //写键盘的用户姓名 + +baseId:0 //接收到指令的基站ID + +infos:{}//数组对象 + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + keySn 键盘Sn + + state 状态 OK表示成功 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"writeKeypadUserName\", + +\"baseId\":0,\ +    \"infos\":\ +        {\ +            \"keySn\":\"1479824643\",\ +            \"state\":\"OK\"\ +        } ,\ +    \"packetTag\":\"1\"\ +} + +所有键盘 + +fun: \"writeKeypadUserName\" //写键盘的用户信息 + +baseId:0 //接收到指令的基站ID + +infos:{\"state\":\"OK\"}//返回状态,成功为OK + +指令样例: + +{\ +    \"fun\":\"writeKeypadUserName\",\ +    \"baseId\":0,\ +    \"infos\":{\ +        \"state\":\"OK\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +### 指定用户姓名\[C100B+S6旧款\] + +当启动PIN码签到绑定模式,则可对键盘进行绑定操作 + +发送: + +fun: \"writeOneKeypadUserName\" //写键盘的用户姓名 + +params:{}//数组对象,字段不填则保留上次值。 + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + keySn 键盘Sn 空则为所有在线键盘,其他数组值无效 + + value 姓名 最多5个汉字(10个字符), + 键盘左上角显示 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"writeOneKeypadUserName\", + +  \"baseId\":0,\ +    \"params\":\[\ +        {\ +            \"keySn\":\"1479824643\",\ +            \"value\":\"张三\" + +        }\ +    \],\ +    \"packetTag\":\"1\"\ +} + +接收: + +指定键盘 + +fun: \"oneKeypadUserName\" //写键盘的用户姓名 + +baseId:1 //接收到指令的基站ID + +infos:{}//数组对象 + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + keySn 键盘Sn + + value 姓名 最多5个汉字(10个字符) + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"oneKeypadUserName\", + +\"baseId\":1,\ +    \"infos\":\ +        {\ +            \"keySn\":\"1479824643\",\ +            \"value\":\"张三\"\ +        } ,\ +    \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ------------------ ---------------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 不支持 + + C100B-2.4G+S6 支持 S6旧款支持,不支持生僻字。 + ----------------------- ------------------ ---------------------------- + +## 键盘在线信息 + +### 自动返回在线信息 + +基站连接成功后,自动返回所有在线的键盘信息。当键盘在线状态改变时,也会统一返回。 + +接收: + +fun: \"keypadOnLine\" //键盘在线状态 + +infos:{} //数组对象 + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + keySn 键盘Sn + + keyVer 键盘版本 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"keypadOnLine\", + +  \"baseId\":0,\ +    \"infos\":\[\ +        {\ +            \"baseId\":1,\ +            \"keySn\":\"1837454011\",\ +            \"keyVer\":\"1.0.6\" + +   },\ +        {\ +            \"baseId\":1,\ +            \"keySn\":\"1837454012\",\ +            \"keyVer\":\"1.0.6\" + +    }\ +    \],\ +    \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +### 主动获取在线信息 + +应用程序在需要时,也可主动获取所有在线键盘信息。 + +发送: + +fun: \"getKeypadOnLine\" //获取键盘在线状态 + +params:{ + +\"times\":1 //基站扫描键盘时长,单位秒 范围1-10秒 + +} // + +指令样例: + +{\ +    \"fun\":\"getKeypadOnLine\", + +\"baseId\":0, + +\"params\":{\ +        \"times\":2 + +},\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"keypadOnLine\" //键盘在线状态 + +infos:{} //数组对象 + + ----------------- --------------- -------------------------------------- + Json字段 字段含义 赋值及含义 + + baseId 基站id keySn键盘所在基站id + + keySn 键盘Sn + + keyVer 键盘版本 + + Volt 键盘电量 T2百分比值,S6无效 + ----------------- --------------- -------------------------------------- + +指令样例: + +{\ +    \"fun\":\"keypadOnLine\", + +\"baseId\":0,\ +    \"infos\":\[\ +         {\ +            \"baseId\":1,\ +            \"keySn\":\"1837454011\",\ +            \"ver\":\"1.0.6\", + +\"hModel\":\"67\", + +\"Volt\":\"100\"\ +        },\ +        {\ +            \"baseId\":1,\ +            \"keySn\":\"1837454012\",\ +            \"ver\":\"1.0.6\", + +\"hModel\":\"67\", + +\"Volt\":\"30\"\ +        }\ +    \],\ +    \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 键盘电量:无效 + + B200-2.4G+S6 支持 键盘电量:无效 + + B200-5.8G+T2 支持 键盘电量:百分比值 + ----------------------- ----------------------- ----------------------- + +### 踢出单只键盘 + +发送: + +fun: \"removeOneKeypadOnLine\" //踢出单只键盘 + +params:{} //键盘sn + +指令样例: + +{\ +    \"fun\":\"removeOneKeypadOnLine\", + +\"baseId\":0,\ +    \"params\":{\ +        \"keySn\":\"1837454012\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +接收: + +{\ +    \"fun\":\"removeOneKeypadOnLine\",\ +    \"baseId\":1,\ +    \"packetTag\":\"1\",\ +    \"infos\":{ + + \" keySn \":\"1837454012\", + +  \"state\":\"OK\"\ +    }\ +} + +清掉成功后会自动返回键盘在线状态,详见4.8.1。 + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +### 清掉所有键盘 + +发送: + +fun: \"clearKeypadOnLine\" //清掉所有键盘 + +params:{} //无 + +指令样例: + +{\ +    \"fun\":\"clearKeypadOnLine\", + +\"packetTag\":\"1\"\ +} + +接收: + +{\ +    \"fun\":\"clearKeypadOnLine\",\ +    \"baseId\":1,\ +    \"packetTag\":\"1\",\ +    \"infos\":{\ +        \"state\":\"OK\"\ +    }\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +### 锁定键盘 + +发送: + +fun: \"lockKeypad\" //锁定键盘 + +params:{} //数组对象,指定键盘需填 + +指令样例: + +锁定指定键盘 + +{\ +    \"fun\":\"lockKeypad\",\ +    \"params\":\[\ +        {\ +            \"keySn\":\"1837454011\"\ +        },\ +        {\ +            \"keySn\":\"1837454012\"\ +        }\ +    \],\ +    \"packetTag\":\"1\"\ +} + +接收: + +{\ +    \"fun\":\"lockKeypad\",\ +    \"baseId\":1,\ +    \"infos\":\[\ +        {\ +            \"keySn\":\"1837454011\",\ +            \"state\":\"OK\"\ +        },\ +        {\ +            \"keySn\":\"1837454012\",\ +            \"state\":\"OK\"\ +        }\ +    \],\ +    \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +### 解锁键盘 + +发送: + +fun: \"unlockKeypad\" //解锁键盘 + +params:{} //数组对象,指定键盘需填 + +指令样例: + +解锁指定键盘 + +{\ +    \"fun\":\"unlockKeypad\",\ +    \"params\":\[\ +        {\ +            \"keySn\":\"1837454011\"\ +        },\ +        {\ +            \"keySn\":\"1837454012\"\ +        }\ +    \],\ +    \"packetTag\":\"1\"\ +} + +接收: + +{\ +    \"fun\":\"unlockKeypad\",\ +    \"baseId\":1,\ +    \"infos\":\[\ +        {\ +            \"keySn\":\"1837454011\",\ +            \"state\":\"OK\"\ +        },\ +        {\ +            \"keySn\":\"1837454012\",\ +            \"state\":\"OK\"\ +        }\ +    \],\ +    \"packetTag\":\"1\"\ +} + +支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 不支持 + + B200-2.4G+S6 不支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +## 系统参数 + +### 退出SunVoteWSTrayapp + +应用程序发送指令给SunVoteWSTrayapp,SunVoteWSTrayapp回应后将结束SunVoteSDK.exe进程。 + +发送: + +fun: \"exit\" //退出SunVoteWSTrayapp + +params:{}//无该值 + +packetTag:\"1\"//收到的packetTag,可用于分析通信状态 + +指令样例: + +{\ +    \"fun\":\"exit\",\ +    \"packetTag\":\"1\"\ +} + +接收: + +fun: \"exit\" //退出SunVoteWSTrayapp + +infos:{}//无该值 + +指令样例: + +{\ +    \"fun\":\"exit\", + +    \"packetTag\":\"1\"\ +} + +注意:配置文件中启用,命令才有效。 + +### 托盘图标隐藏或显示 + +发送: + +fun: \"SDKIcon\" //设置托盘图标隐藏或显示 + +params:{\"value\":\"1\"}//1隐藏;0显示 + +指令样例: + +{\ +    \"fun\":\"SDKIcon\", + +\"baseId\":0, + +\"params\":{\ +        \"value\":\"1\"\ +    }, + + \"packetTag\":\"1\" + +} + +接收: + +fun: \"SDKIcon\" + +infos:{\"value\":\"OK\"} + +指令样例: + +{\ +    \"fun\":\"SDKIcon\",\ +     \"infos\":{ + +        \"value\":\"OK\"\ +    }, + + \"packetTag\":\"1\"}\ +} + +### 支持设备说明 + + ----------------------- ----------------------- ----------------------- + 基站+键盘 支持/不支持 备注 + + B100-2.4G+S6 支持 + + B200-2.4G+S6 支持 + + B200-5.8G+T2 支持 + ----------------------- ----------------------- ----------------------- + +## 异常处理 + +### SunVoteWSTrayapp收到数据异常 + +SunVoteWSTrayapp收到异常数据,会不做处理,并返回以下错误信息描述。 + +接收: + +fun: \"error\" //功能错误 + +baseId: //无该值 + +infos:{ \"funId\":\"F0001\",\"code\":\"10002\"}// + +指令样例: + +{\ +    \"fun\":\"error\",\ +    \"infos\":{\ +        \"funId\":\"F0001\", + +\"code\":\"10002\"\ +    },\ +    \"packetTag\":\"1\"\ +} + +发送: + +fun: \"error\" //功能错误 + +baseId: //无该值 + +infos: //无该值 + +指令样例: + +{\ +    \"fun\":\"error\", + +\"packetTag\":\"1\"\ +} + + ---------------------- ------------------------------------------------ + code 含义 + + 10001 不能正确解析的JSON数据 + + 10002 解析JSON错误 + + 20001 基站未连接 + + 20002 功能不支持 + + 20003 基站ID为负数,应用可以不传ID,默认为0 + + 20004 参数错误 + + 30001 找不到对应的SN + + 40001 升级功能只能支持一个基站在线 + + 50001 此功能必须指定基站ID + + 60001 此功能必须指定键盘SN + ---------------------- ------------------------------------------------ + + ---------------- ------------------------------------------------------ + funId 含义 + + F0001 基站未连接 + + F0002 读基站信道 + + F0003 写基站信道 + + F0004 读基站baseId + + F0005 写基站baseId + + F0006 读基站名称 + + F0007 写基站名称 + + F0008 读键盘关机时间等级 + + F0009 写键盘关机时间等级 + + F0010 读基站配对码 + + F0011 写基站配对码 + + F0012 读基站序列号 + + F0013 写基站序列号 + + F0014 读基站硬件和软件版本 + + F0015 写基站硬件版本 + + F0016 读基站类型 + + F0017 写基站类型 + + F0018 读基站键盘容量和Lock + + F0019 写基站键盘容量和Lock + + F0020 读手动获取返回在线信息 + + F0021 写手动获取返回在线信息 + + F0022 读基站设备RF功率 + + F0023 写基站设备RF功率 + + F0024 读基站设备配对模式或基站名称(自定义) + + F0025 写基站设备配对模式 + + F0026 读基站快速配对低功率模式 + + F0027 写基站快速配对低功率模式 + + F0028 读键盘登录菜单显示允许\[S6适用\] + + F0029 写键盘登录菜单显示允许\[S6适用\] + + F0030 读键盘登录密码\[S6适用\] + + F0031 写键盘登录密码\[S6适用\] + + F0032 读基站名称隐藏开关 + + F0033 写基站名称隐藏开关 + + F0034 读基站和键盘之间的心跳开关 + + F0035 写基站和键盘之间的心跳开关 + + F0036 读基站语言 + + F0037 写基站语言 + + F0038 读基站CRC + + F0039 写基站CRC + + F0040 写广播投票标题 + + F0041 核对投票开启密码 + + F0042 读基站获取投票开启密码 + + F0043 写基站获取投票开启密码 + + F0044 读基站用户自定义字符串 + + F0045 写基站用户自定义字符串 + + F0046 读基站UID + + F0047 写基站UID + + F0048 读键盘反馈模式参数 + + F0049 写键盘反馈模式参数 + + F0050 读基站当前是开启升级状态 + + F0051 写基站当前是开启升级状态 + + F0052 手动停止键盘升级状态 + + F0053 写键盘当前是开启升级状态 + + F0054 写踢出单只键盘 + + F0055 写清掉所有键盘 + + F0056 写锁定键盘 + + F0057 写解锁键盘 + + F0058 写T2键盘第二行文本【空闲模式】 + + F0059 读考勤基站时钟设置 + + F0060 写考勤基站时钟设置 + + F0061 读考勤键盘每秒发送考勤信号次数 + + F0062 写考勤键盘每秒发送考勤信号次数 + + F0063 读考勤键盘发送考勤信号功率 + + F0064 写考勤键盘发送考勤信号功率 + + F0065 写修改键盘配对码 + + F0066 写键盘功能提示预设字符串反馈 + + F0067 写空闲模式 + + F0068 单选多选带计时模式 + + F0069 判断题带计时模式 + + F0070 抢答题带计时模式 + + F0071 数字题带计时模式 + + F0072 绑定带计时模式 + + F0073 基站快速配对 + + F0074 读基站特征数据 + + F0075 遥控关机 + + F0076 读键盘在线SN + + F0077 写基站复位 + + F0078 写键盘外设指令 + + F0079 写键盘配对码 + + F0080 写锁定键盘,解锁键盘 + + F0081 填空题模式 + + F0082 读NFC信息 姓名 + + F0083 写NFC信息 姓名 + + F0084 写NFC配对码 + + F0085 NFC清除指令 + + F0086 多题题型开始 + + F0087 多题题型暂停 + + F0088 多题题型继续上一次 + + F0089 多题题型正确答案下发 + + F0090 多题题型已答题结果转移 + + F0091 写白名单 + + F0092 读白名单 + + F0093 写基站黑名单 + + F0094 读基站黑名单 + + F0095 C100B+S6\[旧款\]写键盘姓名 + + F0096 C100B+S6\[旧款\]读键盘姓名 + + F0097 键盘暂停休眠操作 + + F0098 异步测试模式 + + F0099 Tcp参数读 + + F0100 Tcp参数写 + + F0101 自定义题型参数 + + F0102 写S6短信 + + F0103 写S6键盘FSN + + F0104 自由题模式 + + + ---------------- ------------------------------------------------------ -- libgit2 0.21.4