diff --git a/通讯协议-B200W-MQTT协议[内部].md b/通讯协议-B200W-MQTT协议[内部].md index 6f7f6e8..21521e4 100644 --- a/通讯协议-B200W-MQTT协议[内部].md +++ b/通讯协议-B200W-MQTT协议[内部].md @@ -120,7 +120,7 @@ |---|---|---|---| |交互设置 - 用户内置状态语|设置用户内置状态语|[setKpUserStbMsg](#setkpuserstbmsg)|[fEvtKpUserStbMsg](#fevtkpuserstbmsg)| |交互设置 - 用户实时提示信息|实时设置提示反馈信息|[rtSetKpUserPrompt](#rtsetkpuserprompt)|[sEvtStateCode](#sevtstatecode)
[fEvtSetKpUserPrompt](#fevtsetkpuserprompt)| -|在线状态获取|开启扫描在线键盘|[startGetKpOnline](#startgetkponline)|[sEvtStateCode](#sevtstatecode)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)| +|在线状态获取|开启扫描在线键盘|[startGetKpOnline](#startgetkponline)|[sEvtStateCode](#sevtstatecode)
[fEvtKpOnlineMsg](#fevtkponlinemsg)| ||停止扫描在线键盘|[stopGetKpOnline](#stopgetkponline)|[sEvtStateCode](#sevtstatecode)| |维护功能 - 遥控功能|遥控键盘关机|[remoteKpPowerOff](#remotekppoweroff)|[sEvtStateCode](#sevtstatecode)| ||遥控键盘休眠|[remoteKpSleep](#remotekpsleep)|[sEvtStateCode](#sevtstatecode)| @@ -254,7 +254,6 @@ |+keySn|string||是|键盘SN| |+version|string||是|键盘固件版本| |+model|int||是|键盘型号| -|+voltage|double||是|键盘电压| - **示例代码** ```Json @@ -264,8 +263,7 @@ "data":{ "keySn":"1234567890", "version":"1.0.0", - "model":67, - "voltage":2.8 + "model":67 } } ``` @@ -1032,6 +1030,8 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** ```json { "fun": "startBsFastPair", @@ -1047,6 +1047,8 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** ```json { "fun": "stopBsFastPair", @@ -1071,6 +1073,8 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** ```json { "fun": "getBsWhitelist", @@ -1088,6 +1092,8 @@ |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array|-|是|待写入的键盘SN数组| + +- **示例代码** ```json { "fun": "setBsWhitelist", @@ -1106,6 +1112,8 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** ```json { "fun": "clearBsWhitelist", @@ -1123,6 +1131,8 @@ |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array|-|是|待添加的键盘SN列表| + +- **示例代码** ```json { "fun": "addBsWhitelist", @@ -1143,6 +1153,8 @@ |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array|-|是|待删除的键盘SN列表| + +- **示例代码** ```json { "fun": "delBsWhitelist", @@ -1638,6 +1650,8 @@ |data|array|-|否|传送参数的对象数组| |++keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘
注意:不允许空数组和指定SN数组混合使用
包含空数组默认为全部在线键盘,其他指定键盘无效
| |++info|string||否|设置的反馈信息
不同键盘可设置不同反馈信息| + +- **示例代码** ```json //分别提示 { @@ -1728,13 +1742,15 @@ #### 方法 ##### startGetKpOnline - **主题**:/client/\${baseSN}/send -- **功能描述**:开始获取键盘在线信息,键盘在线返回键盘信息 [sEvtBsKpOnlineMsg](#sevtbskponlinemsg) +- **功能描述**:开始获取键盘在线信息,键盘在线返回键盘信息 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** ```json { "fun": "startGetKpOnline", @@ -1751,6 +1767,8 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** ```json { "fun": "stopGetKpOnline", @@ -1761,8 +1779,36 @@ ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回此事件 -##### [sEvtBsKpOnlineMsg](#sevtbskponlinemsg) -键盘在线返回此事件 +##### fEvtKpOnlineMsg +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:主动获取在线键盘时,在线键盘状态报告 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|键盘SN| +|+version|string||是|键盘固件版本| +|+model|int||是|键盘型号| +|+voltage|double||是|键盘电量(待键盘修改成百分比)| +|+isWeak|int||是|是否弱电, 0-正常,1-弱电(待键盘修改上报弱电状态)| + +- **示例代码** +```Json +{ + "fun":"fEvtKpOnlineMsg", + "dataTag":"1", + "data":{ + "keySn":"1234567890", + "version":"1.0.0", + "model":67, + "voltage":2.8, + "isWeak":0 + } +} +``` ### 维护功能 #### 方法 @@ -1931,6 +1977,8 @@ |data|array|-|是|传送参数的对象数组,不可为空| |++keySn|string||是|需要设置绑定信息的键盘SN| |++info|string||是|设置的绑定信息,一般为学生姓名
最长48个字符,显示在键盘左上角| + +- **示例代码** ```json { "fun": "rtSetKpBindingInfo", @@ -1959,6 +2007,8 @@ |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象数组| |+keySns|array||否|需要清除绑定信息键盘SN数组,
空数组表示清空所有键盘| + +- **示例代码** ```json { "fun": "clearKpBindingInfo", @@ -1984,6 +2034,8 @@ |data|array|-|否|传送参数的对象数组| |++keySn|string||是|需要设置绑定信息的键盘SN| |++state|string||是|设置的绑定信息是否成功
0 - 成功
1 - 失败| + +- **示例代码** ```json { "fun": "fEvtKpBindingInfo", @@ -2011,6 +2063,8 @@ |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|否|传送参数的对象| |+state|string||是|设置的绑定信息是否成功
0 - 成功
1 - 失败| + +- **示例代码** ```json { "fun": "fEvtClearKpBindingInfo", @@ -2034,6 +2088,8 @@ |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传递参数的对象| |+mode|int|-|是|签到模式
1-按键签到,按OK键签到自动授权(暂不支持)
2-PIN码签到,输入pin码后由应用程序决定是否授权| + +- **示例代码** ```json { "fun": "rtStartKpSignIn", @@ -2052,6 +2108,8 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** ```json { "fun": "rtStopKpSignIn", @@ -2070,6 +2128,8 @@ |data|object|-|是|传递参数的对象| |+keySn|string|-|是|键盘SN| |+state|int|-|是|1-授权成功
2-授权失败
3-解除已授权| + +- **示例代码** ```json { "fun": "rtSetKpLoginAllowed", @@ -2097,6 +2157,8 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** ```json { "fun": "fEvtKpSignIn", @@ -2126,6 +2188,8 @@ |data|object|-|是|传送参数的对象| |+keySn|string||是|键盘SN| |+state|string||是|0-执行成功
1-执行失败| + +- **示例代码** ```json { "fun": "fEvtKpLoginAllowed", @@ -2156,6 +2220,8 @@ |+tip|string||否|提示的标题,长度不超过16字符| |+simParams|object||否|内部模拟测试参数设置对象| |++answer|string||是|预设提交的按键值
1-对
2-错| + +- **示例代码** ```json { "fun": "startQATrueFalse", @@ -2181,6 +2247,8 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** ```json { "fun": "stopQATrueFalse", @@ -2204,6 +2272,8 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值
1-对
2-错| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** ```json { "fun": "fEvtQATrueFalse", @@ -2238,6 +2308,8 @@ |+tip|string||否|提示的标题,长度不超过16字符| |+simParams|object||否|内部模拟测试参数设置对象| |++answer|string||是|预设提交的按键值| + +- **示例代码** ```json { "fun": "startQAChoice", @@ -2266,6 +2338,8 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** ```json { "fun": "stopQAChoice", @@ -2289,6 +2363,8 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** ```json { "fun": "fEvtQAChoice", @@ -2321,6 +2397,8 @@ |+tip|string||否|提示的标题,长度不超过16字符| |+simParams|object||否|内部模拟测试参数设置对象| |++answer|string||是|预设提交的按键值| + +- **示例代码** ```json { "fun": "startQANum", @@ -2348,6 +2426,8 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** ```json { "fun": "stopQANum", @@ -2371,6 +2451,8 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** ```json { "fun": "fEvtQANum", @@ -2400,6 +2482,8 @@ |+tip|string||否|提示的标题,长度不超过16字符| |+simParams|object||否|内部模拟测试参数设置对象| |++answer|string||是|预设提交的按键值| + +- **示例代码** ```json { "fun": "startQAQuicker", @@ -2424,6 +2508,8 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** ```json { "fun": "stopQAQuicker", @@ -2447,6 +2533,8 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** ```json { "fun": "fEvtQAQuicker", @@ -2481,6 +2569,8 @@ |++count | int||是| 题目数量 | |+simParams|object||否|内部模拟测试参数设置对象| |++answer|array||是|预设提交的按键值
格式为"单选题答案,多选题答案;
数字题答案;判断题答案(1对2错)"
如["A","ABCD","10","1"]| + +- **示例代码** ```json //自定义题号 { @@ -2570,6 +2660,8 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** ```json { "fun": "stopKpExam", @@ -2587,6 +2679,8 @@ |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| + +- **示例代码** ```json { "fun": "rtGetKpExamData", @@ -2607,6 +2701,8 @@ |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| + +- **示例代码** ```json { "fun": "rtKpAllowEdited", @@ -2633,6 +2729,8 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** ```json { "fun": "fEvtKpExam", @@ -2663,6 +2761,8 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|0 - 未提交(提交完成后,允许键盘修改答案时上报)
1 - 已交卷| |++keyTime|double||是|提交时间,从启动开始计算,单位秒| + +- **示例代码** ```json { "fun": "fEvtFinalSubmit", diff --git a/通讯协议-B200W-MQTT协议[外].md b/通讯协议-B200W-MQTT协议[外].md index 01800aa..7c77e5e 100644 --- a/通讯协议-B200W-MQTT协议[外].md +++ b/通讯协议-B200W-MQTT协议[外].md @@ -97,7 +97,7 @@ |功能归类|功能|API指令|指令事件| |---|---|---|---| |交互设置 - 用户实时提示信息|实时设置提示反馈信息|[rtSetKpUserPrompt](#rtsetkpuserprompt)|[sEvtStateCode](#sevtstatecode)
[fEvtSetKpUserPrompt](#fevtsetkpuserprompt)| -|在线状态获取|开启扫描在线键盘|[startGetKpOnline](#startgetkponline)|[sEvtStateCode](#sevtstatecode)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)| +|在线状态获取|开启扫描在线键盘|[startGetKpOnline](#startgetkponline)|[sEvtStateCode](#sevtstatecode)
[fEvtKpOnlineMsg](#fevtkponlinemsg)| ||停止扫描在线键盘|[stopGetKpOnline](#stopgetkponline)|[sEvtStateCode](#sevtstatecode)| |维护功能 - 遥控功能|遥控键盘休眠|[remoteKpSleep](#remotekpsleep)|[sEvtStateCode](#sevtstatecode)| ### 绑定 @@ -227,7 +227,6 @@ |+keySn|string||是|键盘SN| |+version|string||是|键盘固件版本| |+model|int||是|键盘型号| -|+voltage|double||是|键盘电压| - **示例代码** ```Json @@ -237,8 +236,7 @@ "data":{ "keySn":"1234567890", "version":"1.0.0", - "model":67, - "voltage":2.8 + "model":67 } } ``` @@ -969,6 +967,9 @@ |data|array|-|否|传送参数的对象数组| |++keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘
注意:不允许空数组和指定SN数组混合使用
包含空数组默认为全部在线键盘,其他指定键盘无效
| |++info|string||否|设置的反馈信息
不同键盘可设置不同反馈信息| + +- **示例代码** + ```json //分别提示 { @@ -1013,6 +1014,9 @@ |data|array|-|是|传送参数的对象数组| |++keySn|string||是|设置提示语信息的键盘SN| |++state|string||是|设置的提示语是否成功
0 - 成功
1 - 失败| + +- **示例代码** + ```json { "fun": "fEvtSetKpUserPrompt", @@ -1037,13 +1041,16 @@ #### 方法 ##### startGetKpOnline - **主题**:/client/\${baseSN}/send -- **功能描述**:开始获取键盘在线信息,键盘在线返回键盘信息 [sEvtBsKpOnlineMsg](#sevtbskponlinemsg) +- **功能描述**:开始获取键盘在线信息,键盘在线返回键盘信息 - **参数说明** |参数名|类型|限制|是否必填|说明| |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** + ```json { "fun": "startGetKpOnline", @@ -1060,6 +1067,9 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** + ```json { "fun": "stopGetKpOnline", @@ -1070,8 +1080,34 @@ ##### [sEvtStateCode](#sevtstatecode) 发送指令后返回此事件 -##### [sEvtBsKpOnlineMsg](#sevtbskponlinemsg) -键盘在线返回此事件 +##### fEvtKpOnlineMsg +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:主动获取在线键盘时,在线键盘状态报告 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|键盘SN| +|+version|string||是|键盘固件版本| +|+model|int||是|键盘型号| +|+voltage|double||是|键盘电量| + +- **示例代码** +```Json +{ + "fun":"fEvtKpOnlineMsg", + "dataTag":"1", + "data":{ + "keySn":"1234567890", + "version":"1.0.0", + "model":67, + "voltage":2.8 + } +} +``` ### 维护功能 #### 方法 @@ -1116,6 +1152,9 @@ |data|array|-|是|传送参数的对象数组,不可为空| |++keySn|string||是|需要设置绑定信息的键盘SN| |++info|string||是|设置的绑定信息,一般为学生姓名
最长48个字符,显示在键盘左上角| + +- **示例代码** + ```json { "fun": "rtSetKpBindingInfo", @@ -1144,6 +1183,9 @@ |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象数组| |+keySns|array||否|需要清除绑定信息键盘SN数组,
空数组表示清空所有键盘| + +- **示例代码** + ```json { "fun": "clearKpBindingInfo", @@ -1169,6 +1211,9 @@ |data|array|-|否|传送参数的对象数组| |++keySn|string||是|需要设置绑定信息的键盘SN| |++state|string||是|设置的绑定信息是否成功
0 - 成功
1 - 失败| + +- **示例代码** + ```json { "fun": "fEvtKpBindingInfo", @@ -1196,6 +1241,9 @@ |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|否|传送参数的对象| |+state|string||是|设置的绑定信息是否成功
0 - 成功
1 - 失败| + +- **示例代码** + ```json { "fun": "fEvtClearKpBindingInfo", @@ -1219,6 +1267,9 @@ |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传递参数的对象| |+mode|int|-|是|签到模式
2-PIN码签到,输入pin码后由应用程序决定是否授权| + +- **示例代码** + ```json { "fun": "rtStartKpSignIn", @@ -1237,6 +1288,9 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** + ```json { "fun": "rtStopKpSignIn", @@ -1255,6 +1309,9 @@ |data|object|-|是|传递参数的对象| |+keySn|string|-|是|键盘SN| |+state|int|-|是|1-授权成功
2-授权失败
3-解除已授权| + +- **示例代码** + ```json { "fun": "rtSetKpLoginAllowed", @@ -1282,6 +1339,9 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** + ```json { "fun": "fEvtKpSignIn", @@ -1311,6 +1371,9 @@ |data|object|-|是|传送参数的对象| |+keySn|string||是|键盘SN| |+state|string||是|0-执行成功
1-执行失败| + +- **示例代码** + ```json { "fun": "fEvtKpLoginAllowed", @@ -1338,6 +1401,9 @@ |+mode|int||是|1 - True/False 对/错
2 - Yes/No 是/否
3 - √/×| |+allowModify|int||是|0 - 不允许修改
1 - 允许修改| |+tip|string||否|提示的标题,长度不超过16字符| + +- **示例代码** + ```json { "fun": "startQATrueFalse", @@ -1359,6 +1425,9 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** + ```json { "fun": "stopQATrueFalse", @@ -1382,6 +1451,9 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值
1-对
2-错| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** + ```json { "fun": "fEvtQATrueFalse", @@ -1413,6 +1485,9 @@ |+optionalN|int||是|可选项个数,1≤N≤M(默认值1)| |+allowModify|int||是|修改模式
0 - 不允许修改
1 - 允许修改| |+tip|string||否|提示的标题,长度不超过16字符| + +- **示例代码** + ```json { "fun": "startQAChoice", @@ -1437,6 +1512,9 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** + ```json { "fun": "stopQAChoice", @@ -1460,6 +1538,9 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** + ```json { "fun": "fEvtQAChoice", @@ -1490,6 +1571,9 @@ |+numMax|int||是|可输入上限,mode=1有效,范围0-100| |+allowModify|int||是|修改模式
0 - 不允许修改
1 - 允许修改| |+tip|string||否|提示的标题,长度不超过16字符| + +- **示例代码** + ```json { "fun": "startQANum", @@ -1514,6 +1598,9 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** + ```json { "fun": "stopQANum", @@ -1537,11 +1624,14 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** + ```json { "fun": "fEvtQANum", "dataTag":"1", - "data": [{ + "data":[{ "keySn": "1234567890", "keyValue":"10", "keyTime":3.2 @@ -1564,6 +1654,9 @@ |+mode|int||是|模式
0:普通抢答| |+allowModify|int||是|修改模式
0 - 不允许修改
1 - 允许修改| |+tip|string||否|提示的标题,长度不超过16字符| + +- **示例代码** + ```json { "fun": "startQAQuicker", @@ -1585,6 +1678,9 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** + ```json { "fun": "stopQAQuicker", @@ -1608,6 +1704,9 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** + ```json { "fun": "fEvtQAQuicker", @@ -1640,6 +1739,9 @@ |++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。| |++startNo | int||是| 起始题号 | |++count | int||是| 题目数量 | + +- **示例代码** + ```json //自定义题号 { @@ -1720,6 +1822,9 @@ |---|---|---|---|---| |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** + ```json { "fun": "stopKpExam", @@ -1737,6 +1842,9 @@ |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传送参数的对象| |+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| + +- **示例代码** + ```json { "fun": "rtKpAllowEdited", @@ -1763,6 +1871,9 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** + ```json { "fun": "fEvtKpExam", @@ -1793,6 +1904,9 @@ |++keySn|string||是|键盘SN| |++keyValue|string||是|0 - 未提交(提交完成后,允许键盘修改答案时上报)
1 - 已交卷| |++keyTime|double||是|提交时间,从启动开始计算,单位秒| + +- **示例代码** + ```json { "fun": "fEvtFinalSubmit", diff --git a/通讯协议-平台化-应用部分.md b/通讯协议-平台化-应用部分.md new file mode 100644 index 0000000..557d0ad --- /dev/null +++ b/通讯协议-平台化-应用部分.md @@ -0,0 +1,4593 @@ + +# SunVote 应用通讯协议 + +[TOC] + +# 功能说明 +应用与基站通讯可分为两种:一是直连基站,基站直接插在电脑的USB接口,应用程序通过WebSocket方式调用SDK与基站进行通讯,另一种是网连基站,基站直接连接网络,应用程序通过MQTT服务器发布和订阅相关的主题与基站进行通讯。两种连接方式通讯的数据格式统一为Json数据格式,内容一致,仅在连接方式和数据的发送形式有所不同。 +本文档约定了应用程序和基站之间进行通讯的数据格式和内容,供开发人员查阅。 + +## MQTT方式主题说明 +\${baseSN}为指定的基站的SN编码,不能为空,接收基站反馈数据需要订阅对应基站SN的接收主题。 +### 发布的主题 +应用程序发布的主题,基站订阅 +/client/\${baseSN}/send +/client/multiBase/send + +内部应用发布的主题,基站订阅 +/manage/\${baseSN}/send + +### 订阅的主题 +应用程序订阅的主题,基站发布 +/basestation/\\${baseSN}/receive +/basestation/multiBase/receive + +内部应用订阅的主题,基站发布 +/manage/\${baseSN}/receive + +## Websocket方式 +WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口发送接收数据即可。应用程序发送至基站约定为发送指令,基站返回数据约定为返回事件。 +通过SDK连接基站时,需先初始化SDK,再与SDK建立WebSocket连接。 +**init() 初始化SDK** + +|参数名|类型|限制|非空|说明| +|-----|-----|-----|-----|-----| +|ip|string|-|是|连接的服务器ip| +|port|int|-|是|服务器的端口| + +- **示例代码** +```C# + SunVoteSdk sdk = new SunVoteSdk(); + sdk.init("127.0.0.1",9004); +``` + +## 指令说明 +|指令功能标识 |说明 |约束| +|---|---|---| +|get| 待机状态下获取参数属性状态及数据 |待机状态| +|set| 待机状态下设置参数属性状态及数据 |待机状态| +|start| 运行一个单进程业务实例(函数) |待机状态| +|stop| 停止一个单进程业务实例(函数) |待机状态| +|rtXXX| 在线状态下可实时执行方法及函数 || + +## 事件说明 +|事件标识| 说明| 约束| +|---|---|---| +|sEvtXXX|系统事件 |自动返回| +|fEvtXXX|指令事件 |调用对应指令后返回| + +## 数据格式约定 +- 数据格式统一为**Json**格式,发送接收消息编码统一为**UTF-8** +- Json通用格式如下: + +```json + { + "fun":"xxx", + "dataTag":"xxx", + "baseSn":"xxxxxxxxx", //MQTT方式连接时,主题中已有baseSN,此字段可不传 + "data":{ + //内容 + } + } +``` + +注意:基站接收指令数据单次不超过2K长度,在指定键盘发送指令时,如果指令长度超出限制,建议将指令进行拆分,分次发送,如果是所有键盘执行的指令,可将keySns设为空数组不使用指定键盘的模式 + +## 功能速查一览表 +### SDK管理 +通过SDK直连基站时有效 +|功能归类|功能|API指令|指令/系统事件| +|---|---|---|---| +|SDK连接 - 保持连接|发送心跳信号|[heartbeat](#heartbeat)|[heartbeat](#heartbeat)| +|SDK连接 - 保持连接|设置心跳间隔|[setHeartbeatInterval](#setheartbeatinterval)|[fEvtHeartbeatInterval](#fevtheartbeatinterval)| +|SDK识别 - SDK版本|获取SDK版本|[getSdkVersion](#getsdkversion)|[fEvtSdkVersion](#fevtsdkversion)| +|SDK连接 - 终止连接|关闭SDK连接|[closeSdk](#closesdk)|-| + +### 公共事件 +无需调用指令,自动返回的事件 +|功能归类|功能|API指令|指令/系统事件| +|---|---|---|---| +|公共事件|指令接收状态|-|[sEvtStateCode](#sevtstatecode)| +|公共事件|基站连接状态变化|-|[sEvtBsConnectState](#sevtbsconnectstate)| +|公共事件|基站信道冲突|-|[sEvtBsChannelConflict](#sevtbschannelconflict)| +|公共事件|键盘上线通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)| +|公共事件|键盘刷卡事件|-|[sEvtBsNfcResults](#sevtbsnfcresults)| +|公共事件|在线键盘列表|-|[sEvtBsKpOnlineList](#sevtbskponlinelist)| +|公共事件|键盘待机实时按键反馈|-|[sEvtKpRtFeedback](#sevtkprtfeedback)| +|公共事件|键盘待机实时语音反馈|-|[sEvtKpRtVoice](#sevtkprtvoice)| +|公共事件|键盘举手键实时按键反馈|-|[sEvtKpHandUp](#sevtkphandup)| +|公共事件|遥控器实时按键反馈|-|[sEvtKpRemoteControl](#sevtkpremotecontrol)| + +### 基站管理 +|功能归类|功能|API指令|指令/系统事件| +|---|---|---|---| +|基站连接 - 获取在线基站|主动获取在线基站信息
不确定基站SN时|[getBsOnlineState](#getbsonlinestate)|[fEvtBsOnlineState](#fevtbsonlinestate)| +|基站连接 - 主动获取状态|主动获取基站连接状态|[getBsConnectState](#getbsconnectstate)|[sEvtBsConnectState](#sevtbsconnectstate)| +|基站连接 - 自动获取状态|基站连接变化系统通知|-|[sEvtBsConnectState](#sevtbsconnectstate)| +|键盘上线通知|单个键盘上线系统通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)| +|识别设置 - 出厂编码|获取基站出厂编码|[getBsSN](#getbssn)|[fEvtBsSN](#fevtbssn)| +||设置基站出厂编码(内)|[setBsSN](#setbssn)|[fEvtBsSN](#fevtbssn)| +|识别设置 - 基站型号|读取基站型号|[getBsModel](#getbsmodel)|[fEvtBsModel](#fevtbsmodel)| +|识别设置 - 固件版本|获取基站固件版本|[getBsFWVersion](#getbsfwversion)|[fEvtBsFWVersion](#fevtbsfwversion)| +|识别设置 - 品牌识别码|获取基站品牌识别码|[getBsBIC](#getbsbic)|[fEvtBsBIC](#fevtbsbic)| +||设置基站品牌识别码(内)|[setBsBIC](#setbsbic)|[fEvtBsBIC](#fevtbsbic)| +|组网设置 - 组网模式|获取基站组网模式|[getBsNetworkMode](#getbsnetworkmode)|[fEvtBsNetworkMode](#fevtbsnetworkmode)| +||设置基站组网模式|[setBsNetworkMode](#setbsnetworkmode)|[fEvtBsNetworkMode](#fevtbsnetworkmode)| +|组网设置 - 配对码|获取基站配对码|[getBsPairCode](#getbspaircode)|[fEvtBsPairCode](#fevtbspaircode)| +||设置基站配对码(内)|[setBsPairCode](#setbspaircode)|[fEvtBsPairCode](#fevtbspaircode)| +|组网设置 - 刷卡配对状态|获取刷卡配对状态|[getBsNfcLogin](#getbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)| +||设置刷卡配对状态|[setBsNfcLogin](#setbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)|| +|组网设置 - 组网容量|获取基站容量|[getBsCapacity](#getbscapacity)|[fEvtBsCapacity](#fevtbscapacity)| +||设置基站连接容量|[setBsCapacity](#setbscapacity)|[fEvtBsCapacity](#fevtbscapacity)|| +|组网设置 - 工作信道|获取基站工作信道|[getBsChannel](#getbschannel)|[fEvtBsChannel](#fevtbschannel)| +||设置基站工作信道|[setBsChannel](#setbschannel)|[fEvtBsChannel](#fevtbschannel)|| +|登录设置 - 登录名称|获取基站登录名称|[getBsSSID](#getbsssid)|[fEvtBsSSID](#fevtbsssid)| +||设置基站登录名称|[setBsSSID](#setbsssid)|[fEvtBsSSID](#fevtbsssid)|| +|登录设置 - 登录密码|获取基站登录密码|[getBsLoginPwd](#getbsloginpwd)|[fEvtBsLoginPwd](#fevtbsloginpwd)| +||设置基站登录密码|[setBsLoginPwd](#setbsloginpwd)|[fEvtBsLoginPwd](#fevtbsloginpwd)|| +|登录设置 - 基站登录状态|获取基站登录状态|[getBsLoginState](#getbsloginstate)|[fEvtBsLoginState](#fevtbsloginstate)| +||设置基站登录状态|[setBsLoginState](#setbsloginstate)|[fEvtBsLoginState](#fevtbsloginstate)|| +|键盘统一设置 - 键盘语言|获取键盘语言|[getBsKpLanguage](#getbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)| +||设置键盘语言|[setBsKpLanguage](#setbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)|| +|键盘统一设置 - 状态语模式|获取状态语设置状态|[getBsKpStbMsgMode](#getbskpstbmsgmode)|[fEvtBsKpStbMsgMode](#fevtbskpstbmsgmode)| +||设置状态语工作状态|[setBsKpStbMsgMode](#setbskpstbmsgmode)|[fEvtBsKpStbMsgMode](#fevtbskpstbmsgmode)||| +|键盘统一设置 - 登录菜单|获取键盘登录菜单状态|[getBsKpLoginMenu](#getbskploginmenu)|[fEvtBsKpLoginMenu](#fevtbskploginmenu)| +||设置键盘登录菜单状态|[setBsKpLoginMenu](#setbskploginmenu)|[fEvtBsKpLoginMenu](#fevtbskploginmenu)||| +|键盘统一设置 - LED模式|获取LED设置状态|[getBsKpLedMode](#getbskpledmode)|[fEvtBsKpLedMode](#fevtbskpledmode)| +||设置LED工作状态|[setBsKpLedMode](#setbskpledmode)|[fEvtBsKpLedMode](#fevtbskpledmode)| +|键盘统一设置 - Beep模式|获取Beep设置状态|[getBsKpBeepMode](#getbskpbeepmode)|[fEvtBsKpBeepMode](#fevtbskpbeepmode)| +||设置Beep工作状态|[setBsKpBeepMode](#setbskpbeepmode)|[fEvtBsKpBeepMode](#fevtbskpbeepmode)| +|键盘统一设置 - 长距考勤|获取键盘长距考勤状态|[getBsKpRFIDState](#getbskprfidstate)|[fEvtBsKpRFIDState](#fevtbskprfidstate)| +||设置键盘长距考勤状态|[setBsKpRFIDState](#setbskprfidstate)|[fEvtBsKpRFIDState](#fevtbskprfidstate)| +|键盘统一设置 - 暂停休眠|设置键盘暂停休眠状态|[setBsKpPauseSleep](#setbskppausesleep)|[fEvtBsKpPauseSleep](#fevtbskppausesleep)| +|配对模式 - 快速配对|启动基站快速配对|[startBsFastPair](#startbsfastpair)|[sEvtStateCode](#sevtstatecode)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)| +||停止基站快速配对|[stopBsFastPair](#stopbsfastpair)|[sEvtStateCode](#sevtstatecode)| +|白名单模式 - 白名单管理|获取白名单|[getBsWhitelist](#getbswhitelist)|[fEvtBsWhitelist](#fevtbswhitelist)| +||设置白名单|[setBsWhitelist](#setbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtBsWhitelist](#fevtbswhitelist)| +||清空白名单|[clearBsWhitelist](#clearbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtBsWhitelist](#fevtbswhitelist)| +||增加白名单|[addBsWhitelist](#addbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtAddBsWhitelist](#fevtaddbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)| +||删除白名单|[delBsWhitelist](#delbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtDelBsWhitelist](#fevtdelbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)| +||锁定白名单|[lockBsWhitelistKp](#lockbswhitelistkp)|[fEvtLockBsWhitelistKp](#fevtlockbswhitelistkp)| +||解锁白名单|[unlockBsWhitelistKp](#unlockbswhitelistkp)|[fEvtLockBsWhitelistKp](#fevtlockbswhitelistkp)| +|基站加密 - 软件狗|获取基站软件狗|[getBsSoftwareKey](#getbssoftwarekey)|[fEvtBsSoftwareKey](#fevtbssoftwarekey)| +||设置基站软件狗|[setBsSoftwareKey](#setbssoftwarekey)|[fEvtBsSoftwareKey](#fevtbssoftwarekey)| +|基站加密 - AES加密|获取基站AES加密状态|[getBsAES](#getbsaes)|[fEvtBsAES](#fevtbsaes)| +||设置基站AES加密状态|[setBsAES](#setbsaes)|[fEvtBsAES](#fevtbsaes)| +|网络设置 - TCP/IP参数|获取TCP/IP参数|[getBsTcpipParams](#getbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)| +||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)| +|网络设置 - MQTT参数|获取MQTT参数|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)| +||设置MQTT参数|[setBsMqttParams](#setbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)| +|基站升级|开启基站升级(内)|[startBsUpdate](#startbsupdate)|[sEvtStateCode](#sevtstatecode)
[fEvtBsUpateState](#fevtbsupatestate)
[fEvtBsUpdateProgress](#fevtbsupdateprogress)| +||下载字库(内)|[downloadFontLib](#downloadfontlib)|[sEvtStateCode](#sevtstatecode)
[fEvtBsFontLibState](#fevtbsfontlibstate)
[fEvtBsFontLibProgress](#fevtbsfontlibprogress)| +### 键盘管理 +|功能归类|功能|API指令|指令事件| +|---|---|---|---| +|识别设置 - 出厂编码(内)|设置键盘出厂编码(内)|[setKpSN](#setkpsn)|[fEvtKpSN](#fevtkpsn)| +|识别设置 - 键盘编号|获取键盘编号|[getKpID](#getkpid)|[fEvtKpID](#fevtkpid)| +|识别设置 - 键盘编号(内)|设置键盘编号(内)|[setKpID](#setkpid)|[fEvtKpID](#fevtkpid)| +|识别设置 - 键盘型号|获取键盘型号|[getKpModel](#getkpmodel)|[fEvtKpModel](#fevtkpmodel)| +|识别设置 - 键盘固件版本|获取键盘固件版本|[getKpFWVersion](#getKpfwversion)|[fEvtKpFWVersion](#fevtkpfwversion)| +|识别设置 - 识别模式(内)|获取键盘识别模式(内)|[getKpIdentityMode](#getkpidentitymode)|[fEvtKpIdentityMode](#fevtkpidentitymode)| +||设置键盘识别模式(内)|[setKpIdentityMode](#setkpidentitymode)|[fEvtKpIdentityMode](#fevtkpidentitymode)| +|交互设置 - 用户内置状态语|设置用户内置状态语|[setKpUserStbMsg](#setkpuserstbmsg)|[fEvtKpUserStbMsg](#fevtkpuserstbmsg)| +|交互设置 - 用户实时提示反馈信息|实时设置提示反馈信息|[rtSetKpUserPrompt](#rtsetkpuserprompt)|[sEvtStateCode](#sevtstatecode)
[fEvtSetKpUserPrompt](#fevtsetkpuserprompt)| +||实时设置LED效果|[rtSetKpUserLedEffects](#rtsetkpuserledeffects)|[sEvtStateCode](#sevtstatecode)| +||实时设置振动效果|[rtSetKpUserVibEffects](#rtsetkpuservibeffects)|[sEvtStateCode](#sevtstatecode)| +||实时设置Beep效果|[rtSetKpUserBeepEffects](#rtsetkpuserbeepeffects)|[sEvtStateCode](#sevtstatecode)| +|在线状态获取|开启扫描在线键盘|[startGetKpOnline](#startgetkponline)|[sEvtStateCode](#sevtstatecode)
[fEvtKpOnlineMsg](#fevtkponlinemsg)| +||停止扫描在线键盘|[stopGetKpOnline](#stopgetkponline)|[sEvtStateCode](#sevtstatecode)| +|维护功能 - 遥控功能|遥控键盘关机|[remoteKpPowerOff](#remotekppoweroff)|[sEvtStateCode](#sevtstatecode)| +||遥控键盘休眠|[remoteKpSleep](#remotekpsleep)|[sEvtStateCode](#sevtstatecode)| +|维护功能 - 键盘升级|启动键盘无线升级(内)|[startKpFWUpdate](#startkpfwupdate)|[sEvtStateCode](#sevtstatecode)
[fEvtKpFWUpdateState](#fevtkpfwupdatestate)
[fEvtKpUpdateProgress](#fevtkpupdateprogress)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)| +||停止键盘无线升级(内)|[stopKpFWUpdate](#stopkpfwupdate)|[sEvtStateCode](#sevtstatecode)
[fEvtKpFWUpdateState](#fevtkpfwupdatestate)| +### 绑定 +|功能归类|功能|API指令|指令事件| +|---|---|---|---| +|无线绑定|设置绑定信息到键盘|[rtSetKpBindingInfo](#rtsetkpbindinginfo)|[sEvtStateCode](#sevtstatecode)
[fEvtKpBindingInfo](#fevtkpbindinginfo)| +||清除键盘绑定信息|[clearKpBindingInfo](#clearkpbindinginfo)|[sEvtStateCode](#sevtstatecode)
[fEvtClearKpBindingInfo](#fevtclearkpbindinginfo)| +### 签到 +|功能归类|功能|API指令|指令事件| +|---|---|---|---| +|同步签到|启动同步签到|[startKpSignIn](#startkpsignin)|[sEvtStateCode](#sevtstatecode)
[fEvtKpSignIn](#fevtkpsignin)| +||停止同步签到|[stopKpSignIn](#stopkpsignin)|[sEvtStateCode](#sevtstatecode)| +|随时签到|启动随时签到|[rtStartKpSignIn](#rtstartkpsignin)|[sEvtStateCode](#sevtstatecode)
[fEvtKpSignIn](#fevtkpsignin)| +||停止随时签到|[rtStopKpSignIn](#rtstopkpsignin)|[sEvtStateCode](#sevtstatecode)| +||实时PIN签到授权|[rtSetKpLoginAllowed](#rtsetkploginallowed)|[sEvtStateCode](#sevtstatecode)
[fEvtKpLoginAllowed](#fevtkploginallowed)| +### 按键反馈 +|功能归类|功能|API指令|指令事件| +|---|---|---|---| +|判断题|启动判断题答题|[startQATrueFalse](#startqatruefalse)|[sEvtStateCode](#sevtstatecode)
[fEvtQATrueFalse](#fevtqatruefalse)| +||停止判断题答题|[stopQATrueFalse](#stopqatruefalse)|[sEvtStateCode](#sevtstatecode)| +|选择题|启动选择题答题|[startQAChoice](#startqachoice)|[sEvtStateCode](#sevtstatecode)
[fEvtQAChoice](#fevtqachoice)| +||停止选择题答题|[stopQAChoice](#stopqachoice)|[sEvtStateCode](#sevtstatecode)| +|数字题|启动数字题答题|[startQANum](#startqanum)|[sEvtStateCode](#sevtstatecode)
[fEvtQANum](#fevtqanum)| +||停止数字题答题|[stopQANum](#stopqanum)|[sEvtStateCode](#sevtstatecode)| +|抢答题|启动抢答题答题|[startQAQuicker](#startqaquicker)|[sEvtStateCode](#sevtstatecode)
[fEvtQAQuicker](#fevtqaquicker)| +||停止抢答题答题|[stopQAQuicker](#stopqaquicker)|[sEvtStateCode](#sevtstatecode)| +|英文题|启动英文题答题|[startQAEText](#startqaetext)|[sEvtStateCode](#sevtstatecode)
[fEvtQAEText](#fevtqaetext)| +||停止英文题答题|[stopQAEText](#stopqaetext)|[sEvtStateCode](#sevtstatecode)| +|短信息|发送标准短信|[sendKpMsg](#sendkpmsg)|[sEvtStateCode](#sevtstatecode)
[fEvtKpMsg](#fevtkpmsg)| +||实时发送弹窗提醒|[rtSendKpNotice](#rtsendkpnotice)|[sEvtStateCode](#sevtstatecode)| +|待机实时反馈|启动待机实时反馈|[startKpStbResponse](#startkpstbresponse)|[sEvtStateCode](#sevtstatecode)
[sEvtKpRtFeedback](#sevtkprtfeedback)
[sEvtKpHandUp](#sevtkphandup)| +||停止待机实时反馈|[stopKpStbResponse](#stopkpstbresponse)|[sEvtStateCode](#sevtstatecode)| +### 语音反馈 +|功能归类|功能|API指令|指令事件| +|---|---|---|---| +|语音反馈-单题语音评测|启动单题语音评测|[startQAVoice](#startqavoice)|[sEvtStateCode](#sevtstatecode)
[fEvtVoiceFile](#fevtvoicefile)
[fEvtVoiceStream](#fevtvoicestream)
[fEvtVoicePacketLossInfo](#fevtvoicepacketlossinfo)| +||停止单题语音评测|[stopQAVoice](#stopqavoice)|[sEvtStateCode](#sevtstatecode)| +|语音反馈-选定键盘发言|启动选定键盘发言|[startKpDSpeaker](#startkpdspeaker)|[sEvtStateCode](#sevtstatecode)
[fEvtVoiceStream](#fevtvoicestream)| +||停止选定键盘发言|[stopKpDSpeaker](#stopkpdspeaker)|[sEvtStateCode](#sevtstatecode)| +|语音反馈-待机实时反馈|启动待机实时反馈|[startVoiceStbResponse](#startvoicestbresponse)|[sEvtStateCode](#sevtstatecode)
[sEvtKpRtVoice](#sevtkprtvoice)| +||停止待机实时反馈|[stopVoiceStbResponse](#stopvoicestbresponse)|[sEvtStateCode](#sevtstatecode)| +### 在线测验 +|功能归类|功能|API指令|指令事件| +|---|---|---|---| +|标准测验|启动标准测验|[startKpExam](#startkpexam)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)
[fEvtFinalSubmit](#fevtfinalsubmit)| +||停止标准测验|[stopKpExam](#stopkpexam)|[sEvtStateCode](#sevtstatecode)| +||刷新作答数据|[rtGetKpExamData](#rtgetkpexamdata)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)| +||判卷结果回传|[rtSetKpExamResult](#rtgetkpexamdata)|[sEvtStateCode](#sevtstatecode)
[fEvtSetKpExamResult](#fevtsetkpexamresult)| +||允许键盘提交后退回修改|[rtAllowEdited](#rtkpallowedited)|[sEvtStateCode](#sevtstatecode)
[fEvtFinalSubmit](#fevtfinalsubmit)| +|自主录分|启动自主录分|[startKpScoreInput](#startkpscoreinput)|[sEvtStateCode](#sevtstatecode)
[fEvtKpScore](#fevtkpscore)
[fEvtFinalSubmit](#fevtfinalsubmit)| +||停止自主录分|[stopKpScoreInput](#stopkpscoreinput)|[sEvtStateCode](#sevtstatecode)| + +## SDK管理 +### 方法 +#### heartbeat +- **功能描述**: 应用和SDK之间发送心跳,用于维持WebSocket连接,可在初始化SDK时指定是否由SDK主动发起,收到heartbeat包后返回相同dataTag的heartbeat包 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|-----|-----|-----|-----|-----| +|fun|string|-|是|指令名称| +|dataTag|string|-|是|数据包标识,不需要时可传空字符串| + +- **示例代码** +```Json +{ + "fun":"heartbeat", + "dataTag":"1" +} +``` +#### setHeartbeatInterval +- **功能描述**: 设置心跳间隔时间,SDK为WebSocket的客户端时,如果超时未收到心跳包,自动重连服务器 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|-----|-----|-----|-----|-----| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,不需要时可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|int||是|心跳间隔,单位秒,建议设置时长>10秒
设为0时不主动发送心跳包,只被动回复心跳包
>0时,主动在间隔时长发送心跳包(无消息通讯时)| + +- **示例代码** +```Json +{ + "fun":"setHeartbeatInterval", + "dataTag":"1", + "data":{ + "value":30 + } +} +``` +#### getSdkVersion +- **功能描述**: 获取SDK版本信息 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|-----|-----|-----|-----|-----| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,不需要时可传空字符串| + +- **示例代码** +```Json +{ + "fun":"getSdkVersion", + "dataTag":"1" +} +``` +#### closeSdk +- **功能描述**: 关闭SDK +- **参数说明** + +|参数名|类型|限制|非空|说明| +|-----|-----|-----|-----|-----| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,不需要时可传空字符串| + +- **示例代码** +```Json +{ + "fun":"closeSdk", + "dataTag":"1" +} +``` +### 事件 +#### heartbeat +- **功能描述**:收到心跳包时返回的事件 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,返回收到的数据包dataTag| + +- **示例代码** +```Json +{ + "fun":"heartbeat", + "dataTag":"1" +} +``` +#### fEvtHeartbeatInterval +- **功能描述**:返回设置的心跳间隔时长 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,不需要时可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|int||是|心跳间隔时长,单位秒| + +- **示例代码** +```Json +{ + "fun":"fEvtHeartbeatInterval", + "dataTag":"1", + "data":{ + "value":30 + } +} +``` +#### fEvtSdkVersion +- **功能描述**:返回SDK版本信息 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,不需要时可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|返回SDK的版本信息| + +- **示例代码** +```Json +{ + "fun":"fEvtSdkVersion", + "dataTag":"1", + "data":{ + "value":"1.0.0.0" + } +} +``` +## 公共事件 +### sEvtBsConnectState +- **主题**: /basestation/\${baseSN}/receive (MQTT连接方式) +- **功能描述**:基站连接成功时返回基站型号和基站SN,基站从已连接状态断开返回连接断开 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|-----|-----|-----|-----|-----| +|fun|string|-|是|事件类型| +|dataTag|string|-|否|数据包标识,不需要时可传空字符串| +|data|object|-|是|传送参数的对象| +|+baseSn|string||是|基站的出厂编码| +|+baseModel|int||否|基站的型号码| +|+modelName|string||否|基站的型号名称| +|+state|int||是|基站的连接状态
1-已连接
2-连接断开| +|+version|string||否|基站固件版本| + +- **示例代码** +```Json +//连接成功 +{ + "fun":"sEvtBsConnectState", + "dataTag":"1", + "data":{ + "baseSn":"2024061101", + "state":1, + "baseModel":218, + "modelName":"B200", + "version":"1.0.3" + } +} +//连接断开 +{ + "fun":"sEvtBsConnectState", + "dataTag":"1", + "data":{ + "baseSn":"2024061101", + "state":2 + } +} +``` +### sEvtBsChannelConflict +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:基站信道冲突时主动上报,应用程序可根据实际业务修改基站信道 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,不需要时可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|int||是|有冲突的信道| + +- **示例代码** +```Json +{ + "fun":"sEvtBsChannelConflict", + "dataTag":"1", + "data":{ + "value":5 //信道5有多个基站使用 + } +} +``` +### sEvtBsNfcResults +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:键盘刷卡时主动上报,如果超出基站容量会上报失败 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,不需要时可传空字符串| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|刷卡的键盘SN| +|+value|int||是|刷卡的状态
1-成功
2-失败| + +- **示例代码** +```Json +{ + "fun":"sEvtBsNfcResults", + "dataTag":"1", //不需要时可传空字符串 + "data":{ + "keySn":"1234567890", + "value":1 + } +} +``` + +### sEvtBsKpOnlineMsg +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:键盘上线通知,主动上报,键盘升级成功后也会上报 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|键盘SN| +|+version|string||是|键盘固件版本| +|+model|int||是|键盘型号| +|+voltage|double||是|键盘电压| + +- **示例代码** +```Json +{ + "fun":"sEvtBsKpOnlineMsg", + "dataTag":"1", + "data":{ + "keySn":"1234567890", + "version":"1.0.0", + "model":67 + } +} +``` +### sEvtBsKpOnlineList +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:键盘在线列表发生变化时主动上报(T2专属) +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++version|string||是|键盘固件版本| +|++model|int||是|键盘型号| +|++voltage|double||是|键盘电压| + +- **示例代码** +```Json +{ + "fun":"sEvtBsKpOnlineList", + "dataTag":"1", + "data":[{ + "keySn":"1234567890", + "version":"1.0.0", + "model":67, + "voltage":2.8 + }] +} +``` +### sEvtKpRtFeedback +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:开启键盘实时反馈后,键盘按键时上报 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|键盘SN| +|+keyValue|string||是|键盘提交的按键值| + +- **示例代码** +```Json +{ + "fun":"sEvtKpRtFeedback", + "dataTag":"1", + "data":{ + "keySn":"1234567890", + "keyValue":"A" + } +} +``` +### sEvtKpRtVoice +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:开启键盘语音实时反馈后,键盘发送语音时上报 +- **参数说明**(待定) + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|键盘SN| +|+keyValue|string||是|键盘提交的按键值| + +- **示例代码** +```Json +{ + "fun":"sEvtKpRtVoice", + "dataTag":"1", + "data":{ + "keySn":"1234567890", + "keyValue":"A" + } +} +``` +### sEvtKpHandUp +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:开启键盘举手功能后,键盘按举手键时上报 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|举手的键盘SN| + +- **示例代码** +```Json +{ + "fun":"sEvtKpHandUp", + "dataTag":"1", + "data":{ + "keySn":"1234567890" + } +} +``` +### sEvtKpRemoteControl +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:遥控器按键实时上报 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|遥控器SN| +|+keyValue|string||是|遥控器提交的按键值,按键值含义参见遥控器说明| + +- **示例代码** +```Json +{ + "fun":"sEvtKpRtFeedback", + "dataTag":"1", + "data":{ + "keySn":"1234567890", + "keyValue":"1" + } +} +``` +### sEvtStateCode +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站接收指令状态信息 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+funName|string||是|指令名称| +|+code|string||是|状态码,含义见下表| + +|错误码|说明| +|---|---| +|0|指令收取成功| +|10001|不能正确解析的JSON数据| +|10002|解析JSON错误| +|20001|基站未连接| +|20002|功能不支持| +|20003|基站SN格式不正确| +|20004|参数错误| +|20005|基站在答题中| +|40001|升级功能只能支持一个基站| +|50001|此功能必须指定基站| +|60001|此功能必须指定键盘SN| + +- **示例代码** +```Json +{ + "fun":"sEvtStateCode", + "dataTag":"1", + "data":{ + "funName":"startKpSignIn", + "code":"20005" + } +} +``` +## 基站管理 +### 基站连接 +#### 方法 +##### getBsOnlineState +- **主题**:/client/multiBase/send +- **功能描述**:主动获取所有在线基站信息,在线基站回复 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|固定指令名称| +|dataTag|string|-|否|数据包标识| +- **示例代码** +```Json +{ + "fun":"getBsOnlineState", + "dataTag":"1" +} +``` + +##### getBsConnectState +- **主题**:/client/\${baseSN}/send +- **功能描述**:主动获取基站连接状态 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|固定指令名称| +|dataTag|string|-|否|数据包标识| +- **示例代码** +```Json +{ + "fun":"getBsConnectState", + "dataTag":"1" +} +``` +#### 事件 +##### [sEvtBsConnectState](#sevtbsconnectstate) +参见基站连接变化系统通知 + +##### fEvtBsOnlineState +- **主题**: /basestation/mutilBase/receive +- **功能描述**:基站在线返回基站型号和基站SN +- **参数说明** + +|参数名|类型|限制|非空|说明| +|-----|-----|-----|-----|-----| +|fun|string|-|是|事件类型| +|dataTag|string|-|否|数据包标识,不需要时可传空字符串| +|data|object|-|是|传送参数的对象| +|+baseModel|int||否|基站的型号码| +|+modelName|string||否|基站的型号名称| +|+version|string||否|基站固件版本| +|+baseSN|string||否|基站SN| + +- **示例代码** +```Json +//连接成功 +{ + "fun":"fEvtBsOnlineState", + "dataTag":"1", + "data":{ + "baseModel":218, + "modelName":"B200", + "version":"1.0.3", + "baseSN":"2024041401" + } +} +``` + +### 识别设置 +#### 方法 +##### setBsSN +- **主题**:/manage/\${baseSN}/send +- **功能描述**:设置基站的SN,需预先订阅新SN的主题,以获取事件返回 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+value|string|数字|是|设置的基站SN,长度为10位数字| +|+time|string|数字|是|时间,yyyyMMddHHmmss| +|+verCode|string||是|内部主题校验码,时间+固定key加密| + +- **示例代码** +```Json +{ + "fun":"setBsSN", + "dataTag":"1", + "data":{ + "value":"2024041201" + } +} +``` +##### getBsModel +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站型号 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsModel", + "dataTag":"1" +} +``` +##### getBsFWVersion +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站固件版本 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsFWVersion", + "dataTag":"1" +} +``` +##### getBsBIC +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站品牌识别码 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsBIC", + "dataTag":"1" +} +``` +##### setBsBIC +- **主题**:/manage/\${baseSN}/send +- **功能描述**:设置基站品牌识别码 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置的基站品牌码| +|+time|string|数字|是|时间,yyyyMMddHHmmss| +|+verCode|string||是|内部主题校验码,时间+固定key加密| + +- **示例代码** +```Json +{ + "fun":"setBsBIC", + "dataTag":"1", + "data":{ + "value":"sunvote" + } +} +``` +#### 事件 +##### fEvtBsSN +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站的出厂编码 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+value|string|-|是|基站的出厂编码| + +- **示例代码** +```Json +{ + "fun":"fEvtBsSN", + "dataTag":"1", + "data":{ + "value":"2024041201" + } +} +``` +##### fEvtBsModel +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站的型号 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+value|string|-|是|基站的型号名称| + +- **示例代码** +```Json +{ + "fun":"fEvtBsModel", + "dataTag":"1", + "data":{ + "value":"B200" + } +} +``` +##### fEvtBsFWVersion +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站的固件版本 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+value|string||是|基站的固件版本号| + +- **示例代码** +```Json +{ + "fun":"fEvtBsFWVersion", + "dataTag":"1", + "data":{ + "value":"1.0.3" + } +} +``` +##### fEvtBsBIC +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站的品牌码 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+value|string||是|基站的品牌码| + +- **示例代码** +```Json +{ + "fun":"fEvtBsBIC", + "dataTag":"1", + "data":{ + "value":"sunvote" + } +} +``` +### 组网设置 +#### 方法 +##### getBsNetworkMode +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站组网模式 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsNetworkMode", + "dataTag":"1" +} +``` +##### setBsNetworkMode +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站组网模式 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string|-|是|设置的基站组网模式
1-配对模式
2-白名单模式| + +- **示例代码** +```Json +{ + "fun":"setBsNetworkMode", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` +##### getBsPairCode +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站配对码 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsPairCode", + "dataTag":"1" +} +``` +##### setBsPairCode +- **主题**:/manage/\${baseSN}/send +- **功能描述**:设置基站配对码 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|否|传送参数的对象| +|+value|string|-|否|设置的基站配对码,8位数字| +|+time|string|数字|是|时间,yyyyMMddHHmmss| +|+verCode|string||是|内部主题校验码,时间+固定key加密| + +- **示例代码** +```Json +{ + "fun":"setBsPairCode", + "dataTag":"1", + "data":{ + "value":"04120101" + } +} +``` +##### getBsNfcLogin +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取刷卡配对状态 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsNfcLogin", + "dataTag":"1" +} +``` +##### setBsNfcLogin +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站刷卡配对状态 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string|-|是|设置的基站刷卡配对状态
0-关闭刷卡配对
1-开启刷卡配对| + +- **示例代码** +```Json +{ + "fun":"setBsNfcLogin", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` + +##### getBsCapacity +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站容量参数 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| + +- **示例代码** +```Json +{ + "fun":"getBsCapacity", + "dataTag":"1" +} +``` +##### setBsCapacity +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站容量 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string|-|是|设置基站的键盘容量,<=200| + +- **示例代码** +```Json +{ + "fun":"setBsCapacity", + "dataTag":"1", + "data":{ + "value":"60" + } +} +``` + +##### getBsChannel +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站信道 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsChannel", + "dataTag":"1" +} +``` +##### setBsChannel +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站信道 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string|-|是|设置的基站信道,可设范围:1-80| + +- **示例代码** +```Json +{ + "fun":"setBsChannel", + "dataTag":"1", + "data":{ + "value":"23" + } +} +``` +#### 事件 +##### fEvtBsNetworkMode +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站组网模式 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|基站的组网模式
1-配对模式
2-白名单模式| + +- **示例代码** +```Json +{ + "fun":"fEvtBsNetworkMode", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` +##### fEvtBsPairCode +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站配对码 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|基站的配对码| + +- **示例代码** +```Json +{ + "fun":"fEvtBsPairCode", + "dataTag":"1", + "data":{ + "value":"123456" + } +} +``` +##### fEvtBsCapacity +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站容量 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|基站容量| + +- **示例代码** +```Json +{ + "fun":"fEvtBsCapacity", + "dataTag":"1", + "data":{ + "value":"60" + } +} +``` +##### fEvtBsChannel +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站信道 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|基站信道| + +- **示例代码** +```Json +{ + "fun":"fEvtBsChannel", + "dataTag":"1", + "data":{ + "value":"5" + } +} +``` +##### fEvtBsNfcLogin +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站是否允许NFC刷卡 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|0-关闭 1-开启| + +- **示例代码** +```Json +{ + "fun":"fEvtBsNfcLogin", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` +### 登录设置 +#### 方法 +##### getBsSSID +获取基站登录名称 +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站登录名称 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|固定指令名称| +|dataTag|string|-|否|数据包标识| + +- **示例代码** +```Json +{ + "fun":"getBsSSID", + "dataTag":"1" +} +``` +##### setBsSSID +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站登录名称 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置的基站SSID,最长12字符| + +- **示例代码** +```Json +{ + "fun":"setBsSSID", + "dataTag":"1", + "data":{ + "value":"1901班" + } +} +``` +##### getBsLoginPwd +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站登录密码 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|固定指令名称| +|dataTag|string|-|否|数据包标识| + +- **示例代码** +```Json +{ + "fun":"getBsLoginPwd", + "dataTag":"1" +} +``` +##### setBsLoginPwd +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站登录密码 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置的基站登录密码,数字类型,为空代表无需密码登录| + +- **示例代码** +```Json +{ + "fun":"setBsLoginPwd", + "dataTag":"1", + "data":{ + "value":"123456" + } +} +``` +##### getBsLoginState +获取基站登录名称 +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站登录状态 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|固定指令名称| +|dataTag|string|-|否|数据包标识| + +- **示例代码** +```Json +{ + "fun":"getBsLoginState", + "dataTag":"1" +} +``` +##### setBsLoginState +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站登录状态 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置是否允许键盘自主登入
0 - 不允许键盘登入
1 - 允许键盘登入| + +- **示例代码** +```Json +{ + "fun":"setBsLoginState", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` + +#### 事件 +##### fEvtBsSSID +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站名称 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|基站名称| + +- **示例代码** +```Json +{ + "fun":"fEvtBsSSID", + "dataTag":"1", + "data":{ + "value":"1901班" + } +} +``` +##### fEvtBsLoginPwd +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站登录密码 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|基站登录密码| + +- **示例代码** +```Json +{ + "fun":"fEvtBsLoginPwd", + "dataTag":"1", + "data":{ + "value":"123456" + } +} +``` +##### fEvtBsLoginState +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站登录状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识,可传空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|基站登录状态| + +- **示例代码** +```Json +{ + "fun":"fEvtBsLoginState", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` +### 键盘统一设置 +#### 方法 +##### getBsKpLanguage +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取键盘语言 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsKpLanguage", + "dataTag":"1" +} +``` +##### setBsKpLanguage +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置键盘语言 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置键盘显示的语言
1-简体中文
2-英文| + +- **示例代码** +```Json +{ + "fun":"setBsKpLanguage", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` +##### getBsKpStbMsgMode +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取状态语设置状态 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsKpStbMsgMode", + "dataTag":"1" +} +``` +##### setBsKpStbMsgMode +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置状态语工作状态 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置状态语工作状态
0-系统默认
1-用户内置| + +- **示例代码** +```Json +{ + "fun":"setBsKpStbMsgMode", + "dataTag":"1", + "data":{ + "value":"0" + } +} +``` +##### getBsKpLoginMenu +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取键盘登录菜单显示状态 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsKpLoginMenu", + "dataTag":"1" +} +``` + +##### setBsKpLoginMenu +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置键盘登录菜单显示状态 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置键盘登录菜单显示状态
0-不显示
1-显示| + +- **示例代码** +```Json +{ + "fun":"setBsKpLoginMenu", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` +##### getBsKpLedMode +##### setBsKpLedMode +##### getBsKpBeepMode +##### setBsKpBeepMode + +##### getBsKpRFIDState +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取键盘长距离考勤开启状态 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsKpRFIDState", + "dataTag":"1" +} +``` +##### setBsKpRFIDState +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置键盘长距离考勤开启状态 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置键盘长距离考勤开启状态
0-不开启
1-开启| + +- **示例代码** +```Json +{ + "fun":"setBsKpRFIDState", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` +##### setBsKpPauseSleep +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置键盘暂停休眠是否开启
注意:请谨慎使用本功能,务必在相关测试或功能完成后关闭,否则可能会导致键盘异常耗电 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置键盘暂停休眠是否开启
0-关闭暂停休眠
1-开启暂停休眠| + +- **示例代码** +```Json +{ + "fun":"setBsKpPauseSleep", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` + +#### 事件 +##### fEvtBsKpLanguage +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回键盘语言 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置键盘显示的语言
1-简体中文
2-英文| + +- **示例代码** +```Json +{ + "fun":"fEvtBsKpLanguage", + "dataTag":"1", + "data":{ + "value":"1" + } +} +``` +##### fEvtBsKpStbMsgMode +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回状态语工作状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|返回状态语工作状态
0-系统默认
1-用户内置| + +- **示例代码** +```Json +{ + "fun":"fEvtBsKpStbMsgMode", + "dataTag":"1", + "data":{ + "value":"0" + } +} +``` +##### fEvtBsKpLoginMenu +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回键盘登录菜单显示状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|返回键盘登录菜单显示状态
0-不显示
1-显示| + +- **示例代码** +```Json +{ + "fun":"fEvtBsKpLoginMenu", + "dataTag":"1", + "data":{ + "value":"0" + } +} +``` +##### fEvtBsKpLedMode +##### fEvtBsKpBeepMode + +##### fEvtBsKpRFIDState +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回键盘长距离考勤开启状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|返回键盘长距离考勤开启状态
0-不开启
1-开启| + +- **示例代码** +```Json +{ + "fun":"fEvtBsKpRFIDState", + "dataTag":"1", + "data":{ + "value":"0" + } +} +``` +##### fEvtBsKpPauseSleep +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回暂停键盘休眠开启状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|返回暂停键盘休眠开启状态
0-未开启暂停休眠
1-开启暂停休眠| + +- **示例代码** +```Json +{ + "fun":"fEvtBsKpPauseSleep", + "dataTag":"1", + "data":{ + "value":"0" + } +} +``` +### 网络设置 +#### 方法 +##### getBsTcpipParams +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站TCP/IP参数 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsTcpipParams", + "dataTag":"1" +} +``` +##### setBsTcpipParams +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站TCP/IP参数 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+ip|string||否|IP地址| +|+mask|string||否|子网掩码| +|+gateway|string||否|网关地址| +|+ipAllocation|int||否|基站IP获取方式
0 - 手动指定
1 - DHCP获取| + +- **示例代码** +```Json +{ + "fun":"setBsTcpipParams", + "dataTag":"1", + "data":{ + "ip":"192.168.0.10", + "mask":"255.255.255.0", + "gateway":"192.168.0.1", + "ipAllocation":1 + } +} +``` +##### getBsMqttParams +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站MQTT参数 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsMqttParams", + "dataTag":"1" +} +``` +##### setBsMqttParams +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站MQTT参数 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+server|string||是|服务器IP地址| +|+port|int||是|端口,默认1883| +|+userName|string||否|连接服务器的用户名,可不设置| +|+password|string||否|连接服务器的密码,可不设置| +|+interval|int|>=10|否|基站连接服务器失败后重连的间隔时长,单位秒| + +- **示例代码** +```Json +{ + "fun":"setBsMqttParams", + "dataTag":"1", + "data":{ + "server":"192.168.10.10", + "port":1883, + "userName":"", + "password":"", + "interval":30 + } +} +``` +#### 事件 +##### fEvtBsTcpipParams +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站TCP/IP参数 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+mac|string||是|MAC地址| +|+ip|string||是|IP地址| +|+mask|string||是|子网掩码| +|+gateway|string||是|网关地址| +|+ipAllocation|int||否|基站IP获取方式
0 - 手动指定
1 - DHCP获取| + +- **示例代码** +```Json +{ + "fun":"fEvtBsTcpipParams", + "dataTag":"1", + "data":{ + "mac":"FF:FF:FF:FF:FF:FF", + "ip":"192.168.0.10", + "mask":"255.255.255.0", + "gateway":"192.168.0.1", + "ipAllocation":1 + } +} +``` +##### fEvtBsMqttParams +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:返回基站MQTT参数 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+server|string||是|服务器地址,IP| +|+port|int||是|端口,默认1883| +|+userName|string||否|连接服务器的用户名,可不设置| +|+password|string||否|连接服务器的密码,可不设置| +|+interval|int|>=10|否|基站连接服务器失败后重连的间隔时长,单位秒| + +- **示例代码** +```Json +{ + "fun":"fEvtBsMqttParams", + "dataTag":"1", + "data":{ + "server":"192.168.10.10", + "port":1883, + "userName":"", + "password":"", + "interval":30 + } +} +``` +### 配对模式 +#### 方法 +##### startBsFastPair +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动快速配对,键盘配对成功返回键盘信息 [sEvtBsKpOnlineMsg](#sevtbskponlinemsg) +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "startBsFastPair", + "dataTag":"1" +} +``` +##### stopBsFastPair +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止快速配对 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopBsFastPair", + "dataTag":"1" +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回此事件 + +##### [sEvtBsKpOnlineMsg](#sevtbskponlinemsg) +键盘配对成功后在线返回此事件 + +### 白名单模式 +#### 方法 +##### getBsWhitelist +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站白名单列表 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "getBsWhitelist", + "dataTag":"1" +} +``` +##### setBsWhitelist +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站白名单列表,将基站白名单替换为写入的键盘SN列表 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array|-|是|待写入的键盘SN数组| + +- **示例代码** +```Json +{ + "fun": "setBsWhitelist", + "dataTag":"1", + "data":{ + "keySns":["2024021001","2024021002","2024021003","2024021004"] + } +} +``` +##### clearBsWhitelist +- **主题**:/client/\${baseSN}/send +- **功能描述**:清空基站白名单列表 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "clearBsWhitelist", + "dataTag":"1" +} +``` +##### addBsWhitelist +- **主题**:/client/\${baseSN}/send +- **功能描述**:添加键盘至基站白名单列表 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array|-|是|待添加的键盘SN列表| + +- **示例代码** +```Json +{ + "fun": "addBsWhitelist", + "dataTag":"1", + "data":{ + "keySns":["2024021001"] + } +} +``` +##### delBsWhitelist +- **主题**:/client/\${baseSN}/send +- **功能描述**:从基站白名单列表中删除键盘 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array|-|是|待删除的键盘SN列表| + +- **示例代码** +```Json +{ + "fun": "delBsWhitelist", + "dataTag":"1", + "data":{ + "keySns":["2024021001"] + } +} +``` +##### lockBsWhitelistKp +- **主题**:/client/\${baseSN}/send +- **功能描述**:锁定指定的键盘SN,基站限制容量时,被锁定键盘SN不会被新刷卡加入的键盘挤出 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array|-|是|待锁定的键盘SN列表,空数组代表锁定所有键盘| + +- **示例代码** +```Json +{ + "fun": "lockBsWhitelistKp", + "dataTag":"1", + "data":{ + "keySns":["2024021001"] + } +} +``` +##### unlockBsWhitelistKp +- **主题**:/client/\${baseSN}/send +- **功能描述**:解锁键盘SN +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array|-|是|待解锁的键盘SN列表,空数组代表解锁所有键盘| + +- **示例代码** +```Json +{ + "fun": "unlockBsWhitelistKp", + "dataTag":"1", + "data":{ + "keySn":["2024021001"] + } +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回此事件 + +##### fEvtBsWhitelist +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回基站白名单列表 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array||是|基站当前的白名单列表| + +- **示例代码** +```Json +{ + "fun":"fEvtBsWhitelist", + "dataTag":"1", + "data":{ + "keySns":["2024021001","2024021002","2024021003","2024021004"] + } +} +``` + +##### fEvtAddBsWhitelist +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回增加键盘状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++state|int||是|键盘的增加状态
0-增加成功
1-增加失败| + +- **示例代码** +```Json +{ + "fun":"fEvtAddBsWhitelist", + "dataTag":"1", + "data":[{ + "keySn":"2024021001", + "state":0 + }] +} +``` + +##### fEvtDelBsWhitelist +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回删除键盘状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++state|int||是|键盘的删除状态
0-删除成功
1-删除失败| + +- **示例代码** +```Json +{ + "fun":"fEvtDelBsWhitelist", + "dataTag":"1", + "data":[{ + "keySn":"2024021001", + "state":0 + }] +} +``` + +##### fEvtLockBsWhitelistKp +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘锁定状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|解锁或锁定的键盘SN| +|++state|int||是|键盘的锁定状态
0-未锁定
1-锁定| + +- **示例代码** +```Json +{ + "fun":"fEvtLockBsWhitelistKp", + "dataTag":"1", + "data":[{ + "keySn":"2024021001", + "state":1 + }] +} +``` +### 基站加密 +#### 方法 +##### getBsSoftwareKey +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站软件狗密钥 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "getBsSoftwareKey", + "dataTag":"1" +} +``` +##### setBsSoftwareKey +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站软件狗密钥 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string|-|是|基站软件狗密钥,长度不超过32字节| + +- **示例代码** +```Json +{ + "fun": "setBsSoftwareKey", + "dataTag":"1", + "data":{ + "value":"sunvote123456" + } +} +``` +##### getBsAES +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站加密方式 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "getBsAES", + "dataTag":"1" +} +``` +##### setBsAES +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站加密方式 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string|-|是|无线加密方式
0:不加密
1:AES128加密
2:AES256加密 | + +- **示例代码** +```Json +{ + "fun": "setBsAES", + "dataTag":"1", + "data":{ + "value":"0" + } +} +``` +#### 事件 +##### fEvtBsSoftwareKey +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回基站的软件狗密钥 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|返回基站的软件狗密钥| + +- **示例代码** +```Json +{ + "fun":"fEvtBsSoftwareKey", + "dataTag":"1", + "data":{ + "value":"sunvote123456" + } +} +``` +##### fEvtBsAES +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回基站的无线加密模式 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|返回基站的无线加密模式
0:不加密
1:AES128加密
2:AES256加密| + +- **示例代码** +```Json +{ + "fun":"fEvtBsAES", + "dataTag":"1", + "data":{ + "value":"0" + } +} +``` +### 基站升级 +#### 方法 +##### startBsUpdate +- **主题**:/manage/\${baseSN}/send +- **功能描述**:基站固件升级 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+partition|int||是|存储区域
1-备份区 使用备份区固件的方法:打开基站盖子,按住SW1按钮,然后上电,这时基站固件就会更新成备份区的固件
2-更新区,实时升级基站固件| +|+url|string||是|待升级的固件地址,可访问的网络url
直连基站为本地的文件路径| +|+version|string||是|待升级的基站固件版本| +|+crc|uint||是|固件CRC校验码,10进制数字| +|+time|string||是|时间,yyyyMMddHHmmss| +|+verCode|string||是|内部主题校验码,时间+固定key加密| + +- **示例代码** +```Json +{ + "fun":"startBsUpdate", + "dataTag":"1", + "data":{ + "partition":2, + "url":"http://192.168.10.10/V1.0.3.bin", + "version":"1.0.3", + "crc":1429319861 + } +} +``` +##### downloadFontLib +- **主题**:/manage/\${baseSN}/send +- **功能描述**:下载更新基站字库文件 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+url|string||是|待下载的字库地址,可访问的网络url
直连基站为本地的文件路径| +|+version|string||是|待升级的字库版本| +|+crc|int||是|字库CRC校验码,10进制数字| +|+time|string||是|时间,yyyyMMddHHmmss| +|+verCode|string||是|内部主题校验码,时间+固定key加密| + +- **示例代码** +```Json +{ + "fun":"downloadFontLib", + "dataTag":"1", + "data":{ + "url":"http://192.168.10.10/V1.0.3.bin", + "version":"1.0.3", + "crc":1429319861 + } +} +``` + +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +返回升级指令的接收状态 +注意:升级指令的接收状态需从**主题: /manage/\${baseSN}/receive** 返回 + +##### fEvtBsUpateState +- **主题**: /manage/\${baseSN}/receive +- **功能描述**:返回基站启动升级状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+state|int||是|启动升级状态
0 - 准备升级
1 - 升级成功
2 - 升级失败 +|+msg|string||否|返回的失败原因 + +- **示例代码** +```Json +{ + "fun":"fEvtBsUpateState", + "dataTag":"1", + "data":{ + "state":2, + "msg":"error msg" + } +} +``` + +##### fEvtBsUpdateProgress +- **主题**: /manage/\${baseSN}/receive +- **功能描述**:返回基站升级进度 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+progress|int||是|升级进度,百分比| + +- **示例代码** +```Json +{ + "fun":"fEvtBsUpdateProgress", + "dataTag":"1", + "data":{ + "progress":20 + } +} +``` +##### fEvtBsFontLibState +- **主题**: /manage/\${baseSN}/receive +- **功能描述**:返回基站下载字库状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+state|int||是|启动升级状态
0 - 准备下载
1 - 下载完成
2 - 下载失败 +|+msg|string||否|返回的失败原因 + +- **示例代码** +```Json +{ + "fun":"fEvtBsFontLibState", + "dataTag":"1", + "data":{ + "state":2, + "msg":"error msg" + } +} +``` + +##### fEvtBsFontLibProgress +- **主题**: /manage/\${baseSN}/receive +- **功能描述**:返回基站下载字库进度 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+progress|int||是|下载进度,百分比| + +- **示例代码** +```Json +{ + "fun":"fEvtBsFontLibProgress", + "dataTag":"1", + "data":{ + "progress":20 + } +} +``` + +## 键盘管理 +### 识别设置 +#### 方法 +##### setKpSN +- **主题**:/manage/\${baseSN}/send +- **功能描述**:设置指定键盘的出厂编码 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+oldKeySn|string||是|键盘原SN| +|+newKeySn|string||是|待设置的新SN| +|+time|string|数字|是|时间,yyyyMMddHHmmss| +|+verCode|string||是|内部主题校验码,时间+固定key加密| + +- **示例代码** +```Json +{ + "fun":"setKpIdentityMode", + "dataTag":"1", + "data":{ + "oldKeySn":"1234567890", + "newKeySn":"2024021011" + } +} +``` +##### getKpID +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取键盘编号 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|需读取编号的键盘SN| + +- **示例代码** +```Json +{ + "fun":"getKpID", + "dataTag":"1", + "data":{ + "keySn":"2024021011" + } +} +``` +##### setKpID +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置键盘编号 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|需设置编号的键盘SN| +|+keyId|int||是|键盘编号,不超过65535| +- **示例代码** +```Json +{ + "fun":"setKpID", + "dataTag":"1", + "data":{ + "keySn":"2024021011", + "keyId":1 + } +} +``` +##### getKpModel +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取键盘型号 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|需读取型号的键盘SN| + +- **示例代码** +```Json +{ + "fun":"getKpModel", + "dataTag":"1", + "data":{ + "keySn":"2024021011" + } +} +``` + +##### getKpFWVersion +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取键盘型号 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|需读取版本的键盘SN| + +- **示例代码** +```Json +{ + "fun":"getKpFWVersion", + "dataTag":"1", + "data":{ + "keySn":"2024021011" + } +} +``` + +##### getKpIdentityMode +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取键盘识别模式 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getKpIdentityMode", + "dataTag":"1" +} +``` +##### setKpIdentityMode +- **主题**:/manage/\${baseSN}/send +- **功能描述**:设置键盘识别模式 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置键盘识别模式
0 - SN模式
1 - ID+SN模式| +|+time|string|数字|是|时间,yyyyMMddHHmmss| +|+verCode|string||是|内部主题校验码,时间+固定key加密| + +- **示例代码** +```Json +{ + "fun":"setKpIdentityMode", + "dataTag":"1", + "data":{ + "value":"0" + } +} +``` +#### 事件 +##### fEvtKpIdentityMode +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘识别模式 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+value|string||是|设置键盘识别模式
0 - SN模式
1 - ID+SN模式| + +- **示例代码** +```Json +{ + "fun":"fEvtKpIdentityMode", + "dataTag":"1", + "data":{ + "value":"0" + } +} +``` +##### fEvtKpSN +- **主题**:/manage/\${baseSN}/receive +- **功能描述**:返回写键盘SN状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|设置键盘SN的原SN| +|+state|string||是|设置是否成功
0-设置成功
1-设置失败| + +- **示例代码** +```Json +{ + "fun":"fEvtKpSN", + "dataTag":"1", + "data":{ + "keySn":"1234567890", + "state":"0" + } +} +``` +##### fEvtKpID +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘编号 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|设置键盘SN的原SN| +|+keyId|int||是|键盘编号| + +- **示例代码** +```Json +{ + "fun":"fEvtKpID", + "dataTag":"1", + "data":{ + "keySn":"2024021011", + "keyId":11 + } +} +``` +##### fEvtKpModel +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘型号 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|设置键盘SN的原SN| +|+model|int||是|键盘型号代码| + +- **示例代码** +```Json +{ + "fun":"fEvtKpModel", + "dataTag":"1", + "data":{ + "keySn":"2024021011", + "model":67 + } +} +``` + +##### fEvtKpFWVersion +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘型号 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|设置键盘SN的原SN| +|+version|string||是|键盘固件版本| + +- **示例代码** +```Json +{ + "fun":"fEvtKpFWVersion", + "dataTag":"1", + "data":{ + "keySn":"2024021011", + "version":"1.0.0" + } +} +``` + +### 交互设置 +#### 方法 +##### setKpUserStbMsg +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置用户内置状态语 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+online|string||是|在线状态显示的待机语
空字符串清除| +|+offline|string||是|离线状态显示的待机语
空字符串清除| +|+submitting|string||是|提交中状态语
空字符串清除| +|+submitted|string||是|已提交状态语
空字符串清除| + +- **示例代码** +```Json +{ + "fun":"setKpUserStbMsg", + "dataTag":"1", + "data":{ + "online":"请认真听讲", + "offline":"离线", + "submitting":"提交中", + "submitted":"提交成功" + } +} +``` +##### rtSetKpUserPrompt +- **主题**:/client/\${baseSN}/send +- **功能描述**:实时设置提示反馈信息 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|否|传送参数的对象数组| +|++keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘
注意:不允许空数组和指定SN数组混合使用
包含空数组默认为全部在线键盘,其他指定键盘无效
| +|++info|string||否|设置的反馈信息
不同键盘可设置不同反馈信息| + +- **示例代码** +```Json +//分别提示 +{ + "fun": "rtSetKpUserPrompt", + "dataTag":"1", + "data": [ + { + "keySns": ["1479824643","1479824645"], + "info": "答对了" + }, + { + "keySns": ["1479824644"], + "info": "答错了" + } + ] +} +//统一提示 +{ + "fun": "rtSetKpUserPrompt", + "dataTag":"1", + "data": [ + { + "keySns": [], + "info": "答题结束" + } + ] +} +``` + +##### rtSetKpUserLedEffects +##### rtSetKpUserVibEffects +##### rtSetKpUserBeepEffects + +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### fEvtKpUserStbMsg +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回设置状态语的状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|否|传送参数的对象| +|+state|string||是|设置状态语是否成功
0 - 成功
1 - 失败| + +- **示例代码** +```Json +{ + "fun":"fEvtKpUserStbMsg", + "dataTag":"1", + "data":{ + "state":"0" + } +} +``` +##### fEvtSetKpUserPrompt +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回实时设置提示语是否成功 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|设置提示语信息的键盘SN| +|++state|string||是|设置的提示语是否成功
0 - 成功
1 - 失败| + +- **示例代码** +```Json +{ + "fun": "fEvtSetKpUserPrompt", + "dataTag":"1", + "data": [ + { + "keySn": "1479824643", + "state": "0" + }, + { + "keySn": "1479824645", + "state": "0" + }, + { + "keySn": "1479824644", + "state": "1" + } + ] +} +``` +### 在线状态 +#### 方法 +##### startGetKpOnline +- **主题**:/client/\${baseSN}/send +- **功能描述**:开始获取键盘在线信息,键盘在线返回键盘信息 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "startGetKpOnline", + "dataTag":"1" +} +``` + +##### stopGetKpOnline +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止获取键盘在线信息 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopGetKpOnline", + "dataTag":"1" +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回此事件 + +##### fEvtKpOnlineMsg +- **主题**: /basestation/\${baseSN}/receive +- **功能描述**:主动获取在线键盘时,在线键盘状态报告 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|事件名称| +|dataTag|string|-|否|数据包标识| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|键盘SN| +|+version|string||是|键盘固件版本| +|+model|int||是|键盘型号| +|+voltage|double||是|键盘电量(待键盘修改成百分比)| +|+isWeak|int||是|是否弱电, 0-正常,1-弱电(待键盘修改上报弱电状态)| + +- **示例代码** +```Json +{ + "fun":"fEvtKpOnlineMsg", + "dataTag":"1", + "data":{ + "keySn":"1234567890", + "version":"1.0.0", + "model":67, + "voltage":2.8, + "isWeak":0 + } +} +``` + +### 维护功能 +#### 方法 +##### remoteKpPowerOff +- **主题**:/client/\${baseSN}/send +- **功能描述**:遥控键盘关机 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象数组| +|+keySns|array||否|需要执行指令的键盘SN数组,
空数组表示所有键盘| + +- **示例代码** +```Json +{ + "fun":"remoteKpPowerOff", + "dataTag":"1", + "data":{ + "keySns":["1479824644"] + } +} +``` +##### remoteKpSleep +- **主题**:/client/\${baseSN}/send +- **功能描述**:遥控键盘休眠 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象数组| +|+keySns|array||否|需要执行指令的键盘SN数组,空数组表示所有键盘| + +- **示例代码** +```Json +{ + "fun":"remoteKpSleep", + "dataTag":"1", + "data":{ + "keySns":["1479824644"] + } +} +``` +##### startKpFWUpdate +- **主题**:/manage/\${baseSN}/send +- **功能描述**:键盘升级 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+partition|int||是|存储区域
1-备份区
2-更新区| +|+url|string||是|待升级的固件地址,可访问的网络url
直连基站可为本地的文件路径| +|+version|string||是|待升级的固件版本号| +|+crc|uint||是|固件CRC校验码,10进制数字| +|+time|string|数字|是|时间,yyyyMMddHHmmss| +|+verCode|string||是|内部主题校验码,时间+固定key加密| + +- **示例代码** +```Json +{ + "fun":"startKpFWUpdate", + "dataTag":"1", + "data":{ + "partition":1, + "url":"http://192.168.10.10/V1.0.3.bin", + "version":"1.0.3", + "crc":1429319861 + } +} +``` +##### stopKpFWUpdate +- **主题**:/manage/\${baseSN}/send +- **功能描述**:停止键盘升级 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+time|string|数字|是|时间,yyyyMMddHHmmss| +|+verCode|string||是|内部主题校验码,时间+固定key加密| + +- **示例代码** +```Json +{ + "fun":"stopKpFWUpdate", + "dataTag":"1", + "data":{ + "time":"", + "verCode":"" + } +} +``` + +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +返回升级指令的接收状态 +注意:升级指令的接收状态需从**主题: /manage/\${baseSN}/receive** 返回 + +##### fEvtKpFWUpdateState +- **主题**: /manage/\${baseSN}/receive +- **功能描述**:返回键盘升级状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+state|int||是|升级状态
0 - 进入升级
1 - 升级成功
2 - 升级失败
3 - 已停止(接收到停止指令) +|+msg|string||否|返回的失败原因 + +- **示例代码** +```Json +{ + "fun":"fEvtKpFWUpdateState", + "dataTag":"1", + "data":{ + "state":0, + "msg":"" + } +} +``` +##### fEvtKpUpdateProgress +- **主题**: /manage/\${baseSN}/receive +- **功能描述**:返回键盘升级进度 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+progress|int||是|升级进度,百分比| + +- **示例代码** +```Json +{ + "fun":"fEvtKpUpdateProgress", + "dataTag":"1", + "data":{ + "progress":20 + } +} +``` +## 绑定 +### 无线绑定 +#### 方法 +##### rtSetKpBindingInfo +- **主题**:/client/\${baseSN}/send +- **功能描述**:实时设置绑定信息到键盘 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组,不可为空| +|++keySn|string||是|需要设置绑定信息的键盘SN| +|++info|string||是|设置的绑定信息,一般为学生姓名
最长48个字符,显示在键盘左上角| + +- **示例代码** +```Json +{ + "fun": "rtSetKpBindingInfo", + "dataTag":"1", + "data": [ + { + "keySn": "1479824643", + "info": "张三" + }, + { + "keySn": "1479824644", + "info": "李四" + } + ] +} +``` + +##### clearKpBindingInfo +- **主题**:/client/\${baseSN}/send +- **功能描述**:清除键盘绑定信息 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象数组| +|+keySns|array||否|需要清除绑定信息键盘SN数组,
空数组表示清空所有键盘| + +- **示例代码** +```Json +{ + "fun": "clearKpBindingInfo", + "dataTag":"1", + "data": { + "keySns":["1479824643","1479824644","1479824645"] + } +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### fEvtKpBindingInfo +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘实时设置绑定信息的状态是否成功 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|否|传送参数的对象数组| +|++keySn|string||是|需要设置绑定信息的键盘SN| +|++state|string||是|设置的绑定信息是否成功
0 - 成功
1 - 失败| + +- **示例代码** +```Json +{ + "fun": "fEvtKpBindingInfo", + "dataTag":"1", + "data": [ + { + "keySn": "1479824643", + "state": "0" + }, + { + "keySn": "1479824644", + "state": "1" + } + ] +} +``` +##### fEvtClearKpBindingInfo +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回清空绑定信息的指令状态是否成功 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|否|传送参数的对象| +|+state|string||是|设置的绑定信息是否成功
0 - 成功
1 - 失败| + +- **示例代码** +```Json +{ + "fun": "fEvtClearKpBindingInfo", + "dataTag":"1", + "data": { + "state": "0" + } +} +``` +## 签到 +### 同步签到 +#### 方法 +##### startKpSignIn +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动同步签到 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传递参数的对象| +|+mode|int|-|是|签到模式
1-按键签到
2-PIN码签到
3-指纹签到| + +- **示例代码** +```Json +{ + "fun": "startKpSignIn", + "dataTag":"1", + "data":{ + "mode":2 + } +} +``` +##### stopKpSignIn +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止同步签到 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopKpSignIn", + "dataTag":"1" +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### [fEvtKpSignIn](#fevtkpsignin) +返回键盘提交的签到数据 + +### 随时签到 +#### 方法 +##### rtStartKpSignIn +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动随时签到绑定 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传递参数的对象| +|+mode|int|-|是|签到模式
1-按键签到,按OK键签到自动授权(暂不支持)
2-PIN码签到,输入pin码后由应用程序决定是否授权
3-指纹签到(暂不支持)| + +- **示例代码** +```Json +{ + "fun": "rtStartKpSignIn", + "dataTag":"1", + "data":{ + "mode":2 + } +} +``` +##### rtStopKpSignIn +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止签到绑定 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "rtStopKpSignIn", + "dataTag":"1" +} +``` +##### rtSetKpLoginAllowed +- **主题**:/client/\${baseSN}/send +- **功能描述**:实时PIN绑定授权,可取消授权 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传递参数的对象| +|+keySn|string|-|是|键盘SN| +|+state|int|-|是|1-授权成功
2-授权失败
3-解除已授权| + +- **示例代码** +```Json +{ + "fun": "rtSetKpLoginAllowed", + "dataTag":"1", + "data":{ + "keySn":"1479824643", + "state":1 + } +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### fEvtKpSignIn +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘提交签到信息 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++keyValue|string||是|键盘提交的按键值| +|++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** +```Json +{ + "fun": "fEvtKpSignIn", + "dataTag":"1", + "data": [{ + "keySn": "1234567890", + "keyValue":"1004", + "keyTime":30.2 + }, + { + "keySn": "1234567891", + "keyValue":"1003", + "keyTime":32.5 + } + ] +} +``` +##### fEvtKpLoginAllowed +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘授权状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|键盘SN| +|+state|string||是|0-执行成功
1-执行失败| + +- **示例代码** +```Json +{ + "fun": "fEvtKpLoginAllowed", + "dataTag":"1", + "data": { + "keySn":"1479824643", + "state":"0" + } +} +``` +## 按键反馈 +### 判断题 +#### 方法 +##### startQATrueFalse +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动判断题答题 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| +|+count|int||是|题目数量,1-16,>1多题快答| +|+mode|int||是|1 - True/False 对/错
2 - Yes/No 是/否
3 - √/×| +|+allowModify|int||是|0 - 不允许修改
1 - 允许修改| +|+tip|string||否|提示的标题,长度不超过16字符| +|+simParams|object||否|内部模拟测试参数设置对象| +|++answer|string||是|预设提交的按键值
1-对
2-错| + +- **示例代码** +```Json +{ + "fun": "startQATrueFalse", + "dataTag":"1", + "data":{ + "keySns":[], + "count":1, + "mode":1, + "allowModify":1, + "tip":"请判断对错", + "simParams":{ + "answer":"1" + } + } +} +``` +##### stopQATrueFalse +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止判断题答题 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopQATrueFalse", + "dataTag":"1" +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### fEvtQATrueFalse +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘提交答题信息 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++keyValue|string||是|键盘提交的按键值
1-对
2-错| +|++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** +```Json +{ + "fun": "fEvtQATrueFalse", + "dataTag":"1", + "data": [{ + "keySn": "1234567890", + "keyValue":"1", + "keyTime":30.2 + } + ] +} +``` +### 选择题 +#### 方法 +##### startQAChoice +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动选择题答题 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| +|+count|int||是|题目数量,1-16,>1多题快答
optionalN >1时无效| +|+mode|int||是|显示模式
1:显示字母(默认值)
2:显示数字 | +|+lessMode|int||是|迫选模式
0:可缺选(默认值)
1:不可缺选
2:允许重复输入
3:允许重复输入且不可缺选 | +|+options|int||是|选项数量,1≤M≤10(默认值4)| +|+optionalN|int||是|可选项个数,1≤N≤M(默认值1)| +|+allowModify|int||是|修改模式
0 - 不允许修改
1 - 允许修改| +|+tip|string||否|提示的标题,长度不超过16字符| +|+simParams|object||否|内部模拟测试参数设置对象| +|++answer|string||是|预设提交的按键值| + +- **示例代码** +```Json +{ + "fun": "startQAChoice", + "dataTag":"1", + "data":{ + "keySns":[], + "mode": 1, + "count":1, + "lessMode": 0, + "options": 4, + "optionalN": 1, + "allowModify":1, + "tip":"请选择", + "simParams":{ + "answer":"A" + } + } +} +``` +##### stopQAChoice +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止选择题答题 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopQAChoice", + "dataTag":"1" +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### fEvtQAChoice +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘提交答题信息 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++keyValue|string||是|键盘提交的按键值| +|++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** +```Json +{ + "fun": "fEvtQAChoice", + "dataTag":"1", + "data": [{ + "keySn": "1234567890", + "keyValue":"A", + "keyTime":3.2 + }] +} +``` +### 数字题 +#### 方法 +##### startQANum +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动数字题答题 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| +|+mode|int||是|模式
0:无规则 (S6最多16位,T2最多14位)
1:带小数位上下限(T2不支持)| +|+digits|int||是|小数位数,范围0-2,mode=1时有效 +|+numMin|int||是|可输入下限,mode=1有效
digits=0时 范围:0~65535
digits=1时 范围:0~6553
digits=2时 范围:0~655| +|+numMax|int||是|可输入上限,mode=1有效
digits=0 范围:0~65535
digits=1 范围:0~6553
digits=2 范围:0~655| +|+allowModify|int||是|修改模式
0 - 不允许修改
1 - 允许修改| +|+tip|string||否|提示的标题,长度不超过16字符| +|+simParams|object||否|内部模拟测试参数设置对象| +|++answer|string||是|预设提交的按键值| + +- **示例代码** +```Json +{ + "fun": "startQANum", + "dataTag":"1", + "data":{ + "keySns":[], + "mode": 1, + "digits": 1, + "numMin": 0, + "numMax": 100, + "allowModify":1, + "tip":"请输入数字", + "simParams":{ + "answer":"10" + } + } +} +``` +##### stopQANum +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止数字题答题 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopQANum", + "dataTag":"1" +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### fEvtQANum +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘提交答题信息 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++keyValue|string||是|键盘提交的按键值| +|++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** +```Json +{ + "fun": "fEvtQANum", + "dataTag":"1", + "data": [{ + "keySn": "1234567890", + "keyValue":"10", + "keyTime":3.2 + }] +} +``` +### 抢答题 +#### 方法 +##### startQAQuicker +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动抢答题答题 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| +|+mode|int||是|模式
0:普通抢答| +|+allowModify|int||是|修改模式
0 - 不允许修改
1 - 允许修改| +|+tip|string||否|提示的标题,长度不超过16字符| +|+simParams|object||否|内部模拟测试参数设置对象| +|++answer|string||是|预设提交的按键值| + +- **示例代码** +```Json +{ + "fun": "startQAQuicker", + "dataTag":"1", + "data":{ + "keySns":[], + "mode": 0, + "allowModify":1, + "tip":"请按键抢答", + "simParams":{ + "answer":"1" + } + } +} +``` +##### stopQAQuicker +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止抢答答题 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopQAQuicker", + "dataTag":"1" +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### fEvtQAQuicker +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘提交答题信息 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++keyValue|string||是|键盘提交的按键值| +|++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** +```Json +{ + "fun": "fEvtQAQuicker", + "dataTag":"1", + "data": [{ + "keySn": "1234567890", + "keyValue":"1", + "keyTime":3.2 + }] +} +``` +### 英文题 +#### 方法 +##### startQAEText +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动英文题答题 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| +|+mode|int||是|模式
0:自由输入| +|+allowModify|int||是|修改模式
0 - 不允许修改
1 - 允许修改| +|+tip|string||否|提示的标题,长度不超过16字符| +|+simParams|object||否|内部模拟测试参数设置对象| +|++answer|string||是|预设提交的按键值| + +- **示例代码** +```Json +{ + "fun": "startQAEText", + "dataTag":"1", + "data":{ + "keySns":[], + "mode": 0, + "allowModify":1, + "tip":"请输入英文文本", + "simParams":{ + "answer":"AAAAAAA" + } + } +} +``` +##### stopQAEText +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止英文题答题 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopQAEText", + "dataTag":"1" +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### fEvtQAEText +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘提交答题信息 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++keyValue|string||是|键盘提交的按键值| +|++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** +```Json +{ + "fun": "fEvtQAEText", + "dataTag":"1", + "data": [{ + "keySn": "1234567890", + "keyValue":"hello", + "keyTime":3.2 + }] +} +``` + +### 短信息 +#### 方法 +##### sendKpMsg +- **主题**:/client/\${baseSN}/send +- **功能描述**:指定键盘发送短信息 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组,不可为空| +|++keySn|string||是|需要设置绑定信息的键盘SN
空字符串且只有一条信息时代表群发所有在线键盘| +|++month|int||是|月份,范围1-12| +|++day|int||是|日期,范围1-31| +|++info|string||是|信息内容| + +- **示例代码** +```Json +//指定键盘发送信息 +{ + "fun": "sendKpMsg", + "dataTag":"1", + "data": [ + { + "keySn": "1479824643", + "month":6, + "day":10, + "info": "短信息1" + }, + { + "keySn": "1479824644", + "month":6, + "day":10, + "info": "短信息2" + } + ] +} + +//广播信息 +{ + "fun": "sendKpMsg", + "dataTag":"1", + "data": [ + { + "keySn": "", + "month":6, + "day":10, + "info": "广播信息" + } + ] +} +``` +##### rtSendKpNotice +(待定) + +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### fEvtKpMsg +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回短信息是否成功发送至键盘 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|否|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++state|string||是|短信息是否成功发送
0 - 成功
1 - 失败| + +- **示例代码** +```Json +{ + "fun": "fEvtKpMsg", + "dataTag":"1", + "data": [ + { + "keySn": "1479824643", + "state": "0" + }, + { + "keySn": "1479824644", + "state": "1" + } + ] +} +``` + +### 待机实时反馈 +#### 方法 +##### startKpStbResponse +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动待机实时反馈 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+mode|int||是|启动待机反馈类型
0-举手
1-指定按键反馈| +|+keys|int||是|有效按键数量,mode=1时有效, 范围1-10| + +- **示例代码** +```Json +//启用举手反馈 +{ + "fun": "startKpStbResponse", + "dataTag":"1", + "data":{ + "mode":0 + } +} +//待机按键反馈 +{ + "fun": "startKpStbResponse", + "dataTag":"1", + "data":{ + "mode":1, + "keys":4 + } +} +``` + +##### stopKpStbResponse +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止待机实时反馈 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopKpStbResponse", + "dataTag":"1" +} +``` + +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### [sEvtKpRtFeedback](#sevtkprtfeedback) +返回待机时键盘返回的按键值 + +##### [sEvtKpHandup](#sevtkphandup) +启动待机按键反馈类型为举手提问时返回此事件 + +## 语音反馈 +### 方法 +#### 单题语音评测 +##### startQAVoice +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动单题语音评测 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| +|+mode|int||是|录音模式
0-按键录音(默认值)
1-自动录音
2-语音红包
3-数据信道传输测试| +|+submitTimes|int||是|允许提交次数,0-255, 0 - 不限次数| +|+timeLimit|int||否|限制的录音时长,0-255, 0-不限时长| +|+format|int||否|录音格式
0-录音文件(SDK直连基站支持)
1-实时流| +|+audioFormat|int||否|音频格式
0-pcm
1-mp3(默认值1)
2-wav
3-speex| +|+tip|string||否|提示的标题,长度不超过16字符| + +- **示例代码** +```Json +{ + "fun": "startQAVoice", + "dataTag":"1", + "data": { + "keySns": [], + "mode":0, + "submitTimes":0, + "timeLimit":30, + "format":0, + "audioFormat":1, + "tip":"请按键录音" + } +} +``` +##### stopQAVoice +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止单题语音评测 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopQAVoice", + "dataTag":"1" +} +``` + +#### 选定键盘发言 +##### startKpDSpeaker +- **主题**:/client/\${baseSN}/send +- **功能描述**:选定键盘发言,返回实时流语音 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|指定的键盘SN| +|+mode|int||是|录音模式
0-按键录音(默认值)
1-自动录音
| +|+timeLimit|int||否|限制的录音时长,0-255, 0-不限时长| +|+audioFormat|int||否|音频格式
0-pcm
1-mp3(默认值1)
2-wav
3-speex| +|+tip|string||否|提示的标题,长度不超过16字符| + +- **示例代码** +```Json +{ + "fun": "startKpDSpeaker", + "dataTag":"1", + "data": { + "keySn": "1234567890", + "mode":0, + "timeLimit":30, + "audioFormat":1, + "tip":"请按键发言" + } +} +``` +##### stopKpDSpeaker +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止键盘发言 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopKpDSpeaker", + "dataTag":"1" +} +``` + +#### 语音实时反馈 +##### startVoiceStbResponse +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动待机实时反馈 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+mode|int||是|启动待机反馈类型
0-语音待机反馈| +|+timeLimit|int||否|限制的录音时长,0-255秒, 0-不限时长| + +- **示例代码** +```Json +{ + "fun": "startVoiceStbResponse", + "dataTag":"1", + "data":{ + "mode":, + "timeLimit":30 + } +} +``` + +##### stopVoiceStbResponse +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止待机实时反馈 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopVoiceStbResponse", + "dataTag":"1" +} +``` + +### 事件 +#### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +#### fEvtVoiceFile +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:开启录音格式为录音文件方式时返回此事件 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++filePath|string||是|键盘提交语音文件的路径| +|++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** +```Json +{ + "fun": "fEvtVoiceFile", + "dataTag":"1", + "data": [{ + "keySn": "1479824643", + "filePath":"D:\\SunARSSDK\\voice\\20240502\\voice_1479824643_1635832534000.mp3", + "keyTime":3.2 + }] +} +``` +#### fEvtVoiceStream +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:开启录音格式为实时流方式时返回此事件 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|键盘SN| +|+voiceId|int||是|语音id,答题时间内,可重复提交语音,每段语音流加一个id,用于区分作答| +|+sampleRate|int||是|音频采样率| +|+bits|int||是|音频采样精度| +|+channel|int||是|声道数| +|+voiceData|string||是|音频数据,将原始数据通过Base64编码后得出
应用可通过Base64解码得到原始语音数据| +|+dataLen|int||是|Base64编码后的数据字符串长度| +|+endFlag|int||是|语音流结束标识
0-未结束
1-结束包| + +- **示例代码** +```Json +{ + "fun": "fEvtQAQuicker", + "dataTag":"1", + "data": { + "keySn":"1479824643", + "voiceId":"1", + "sampleRate":16000, + "bits":16, + "channel":1, + "endFlag":0, + "dataLen":856, + "voiceData":"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==" + } +} +``` +#### fEvtVoicePacketLossInfo +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:开启录音格式为实时流方式,录音结束时返回此次录音的丢包率信息 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySn|string||是|键盘SN| +|+voiceId|string||是|语音id| +|+receive|double||是|收到语言流包数| +|+shouldSend|string||是|应发数据包数| +|+actualSend|string||是|实发数据包数| +|+lossRate|double||是|丢包率,百分比| +|+delay|double||是|延时,单位毫秒| + +- **示例代码** +```Json +{ + "fun": "fEvtQAQuicker", + "dataTag":"1", + "data": { + "keySn":"1837454011", + "voiceId":"1", + "receive":"42", + "shouldSend":"56", + "actualSend":"56", + "lossRate":"0", + "delay":"20" + } +} +``` + +## 在线测验 +### 标准测验 +#### 方法 +##### startKpExam +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动标准测验 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+examNo|int||是|0-9999
=0,新的测验
>0时,与上次启动卷号一致继续测验,不一致进入新的测验| +|+mode|int||是|显示模式
0-不显示开头
1-显示“Q”开头
2-显示“题”开头| +|+questions|array||是|题目详情| +|++symbol | string||是 | 题号前缀,可为空 | +|++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断 | +|++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。| +|++startNo | int||是| 起始题号 | +|++count | int||是| 题目数量 | +|+simParams|object||否|内部模拟测试参数设置对象| +|++answer|array||是|预设提交的按键值
格式为"单选题答案,多选题答案;
数字题答案;判断题答案(1对2错)"
如["A","ABCD","10","1"]| + +- **示例代码** +```Json +//自定义题号 +{ + "fun": "startKpExam", + "dataTag":"1", + "data":{ + "mode": 0, + "examNo": 1, + "questions": [{ + //题号1-1-1 到1-1-10 共10题单选 + "symbol": "1-1-", + "quesType": 1, + "startNo": 1, + "count":10 + }, { + //题号2-2和2-3共两题 多选题,5个选项 + "symbol": "2-", + "quesType": 2, + "option": 5, + "startNo": 2, + "count":2 + }, { + //题号3-1和3-2共两道数字题 + "symbol": "3-", + "quesType": 3, + "startNo": 1, + "count":2 + }, { + //题号4和5 ,判断题 + "symbol": "", + "quesType": 4, + "startNo": 4, + "count":2 + }], + "simParams":{ + "answer":["A","ABCD","10","1"] + } + } +} + +//显示Q开头 +{ + "fun": "startKpExam", + "dataTag":"1", + "data":{ + "mode": 1, + "examNo": 1, + "questions": [{ + //Q1-Q20,单选题 + "symbol": "", + "quesType": 1, + "startNo": 1, + "count":20 + }], + "simParams":{ + "answer":["A","","",""] + } + } +} + +//显示题开头 +{ + "fun": "startKpExam", + "dataTag":"1", + "data":{ + "mode": 2, + "examNo": 1, + "questions": [{ + //题1-题20,单选题 + "symbol": "", + "quesType": 1, + "startNo": 1, + "count":20 + }], + "simParams":{ + "answer":["A","","",""] + } + } +} +``` +##### stopKpExam +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止标准测验 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopKpExam", + "dataTag":"1" +} +``` +##### rtGetKpExamData +- **主题**:/client/\${baseSN}/send +- **功能描述**:刷新作答数据 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| + +- **示例代码** +```Json +{ + "fun": "rtGetKpExamData", + "dataTag":"1", + "data":{ + "keySns":["1234567890","1234567891"] + } +} +``` +##### rtSetKpExamResult +- **主题**:/client/\${baseSN}/send +- **功能描述**:考试结果回传键盘 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+examNo|string||是|回传答案的测验卷号| +|+answer|string||是|回传题目的正确答案,用于客观题判卷,A,AB,1表示正确答案依次为A、AB、1| + +- **示例代码** +```Json +{ + "fun": "rtSetKpExamResult", + "dataTag":"1", + "data":{ + "examNo":1, + "answer":"A,AB,1" + } +} +``` + +##### rtKpAllowEdited +- **主题**:/client/\${baseSN}/send +- **功能描述**:键盘提交后,允许键盘修改答案 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘| + +- **示例代码** +```Json +{ + "fun": "rtKpAllowEdited", + "dataTag":"1", + "data":{ + "keySns":["1234567890","1234567891"] + } +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### fEvtKpExam +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘提交答题信息 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B| +|++keyTime|double||是|答题时间,从启动开始计算,单位秒| + +- **示例代码** +```Json +{ + "fun": "fEvtKpExam", + "dataTag":"1", + "data": [{ + "keySn": "1234567890", + "keyValue":"1:A;2:B", + "keyTime":3.2 + }, + { + "keySn": "1234567891", + "keyValue":"1:B;2:B", + "keyTime":3.5 + } + ] +} +``` +##### fEvtFinalSubmit +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘手动交卷标识 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySn|string||是|键盘SN| +|++keyValue|string||是|0 - 未提交(提交完成后,允许键盘修改答案时上报)
1 - 已交卷| +|++keyTime|double||是|提交时间,从启动开始计算,单位秒| + +- **示例代码** +```Json +{ + "fun": "fEvtFinalSubmit", + "dataTag":"1", + "data": [{ + "keySn": "1234567890", + "keyValue":"1", + "keyTime":3.2 + }] +} +``` + +##### fEvtSetKpExamResult +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回回传键盘判卷结果状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+examNo|int||是|测验卷号| +|+state|string||是|0 - 回传成功
1 - 回传失败| + +- **示例代码** +```Json +{ + "fun": "fEvtSetKpExamResult", + "dataTag":"1", + "data": { + "examNo": 1, + "state":0 + } +} +``` + +### 自主录分 +#### 方法 +##### startKpScoreInput +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动标准测验 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+examNo|int||是|0-9999
=0,新的录分
>0时,与上次启动卷号一致继续录分,不一致进入新的录分| +|+mode|int||是|录分模式
0-自主录分
1-交叉录分,需先输入录分的人员标识| +|+questions|array||是|题目详情| +|++symbol | string||是 | 题号前缀,可为空 | +|++min |int||是|可输入的最小值,默认为0| +|++max |int||是|可输入的最大值,<=100| +|++digits|int||是|可输入的小数位数,范围0-2| +|++startNo | int||是| 起始题号| +|++count | int||是| 题目数量| + +- **示例代码** +```Json +{ + "fun": "startKpScoreInput", + "dataTag":"1", + "data":{ + "mode": 0, + "examNo": 0, + "questions": [{ + //题号1-1-1 到1-1-2 共2题,单题满分10分 + "symbol": "1-", + "min": 0, + "max":10, + "digits":1, + "startNo": 1, + "count":2 + }, { + //题号3到6 共4道题,单题满分5 + "symbol": "", + "min": 0, + "max":5, + "digits":0, + "startNo": 3, + "count":4 + }] + } +} +``` + +##### stopKpScoreInput +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止自主录分 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun": "stopKpScoreInput", + "dataTag":"1" +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### fEvtKpScore +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回键盘提交录分信息 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++scoreTag|string||是|录分标识,自主录分为空,交叉录分为键盘录分前输入的标识| +|++keySn|string||是|键盘SN| +|++keyValue|string||是|键盘提交的分值,1:10;2:0表示第1题提交10分,第二题提交0分| +|++keyTime|double||是|录分时间,从启动录分开始计算,单位秒| + +- **示例代码** +```Json +{ + "fun": "fEvtKpScore", + "dataTag":"1", + "data": [{ + "scoreTag":"5", + "keySn": "1234567890", + "keyValue":"1:8;2:7.5;3:2;4:3", + "keyTime":3.2 + }, + { + "scoreTag":"3", + "keySn": "1234567891", + "keyValue":"1:10;2:0", + "keyTime":3.5 + } + ] +} +``` \ No newline at end of file