From 48db8d560515c651ed8812216dbc9ccc915ac268 Mon Sep 17 00:00:00 2001 From: liuqin Date: Fri, 30 Aug 2024 15:06:05 +0800 Subject: [PATCH] B200W协议增加多科作业内容,修改获取日志接口为内部接口,同步平台化和外部版本 --- 通讯协议-B200W-MQTT协议[内部].md | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------- 通讯协议-B200W-MQTT协议[外].md | 428 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------- 通讯协议-平台化-应用部分.md | 448 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------- 3 files changed, 893 insertions(+), 147 deletions(-) diff --git a/通讯协议-B200W-MQTT协议[内部].md b/通讯协议-B200W-MQTT协议[内部].md index e0b85fd..6d60579 100644 --- a/通讯协议-B200W-MQTT协议[内部].md +++ b/通讯协议-B200W-MQTT协议[内部].md @@ -66,8 +66,6 @@ } ``` -注意:基站接收指令数据单次不超过2K长度,在指定键盘发送指令时,如果指令长度超出限制,建议将指令进行拆分,分次发送,如果是所有键盘执行的指令,可将keySns设为空数组不使用指定键盘的模式 - |参数 |说明 |约束| |---|---|---| |fun| 指令或事件名称|| @@ -117,7 +115,7 @@ ||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)|| |网络设置 - MQTT参数|获取MQTT参数|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)| ||设置MQTT参数|[setBsMqttParams](#setbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)|| -|基站维护|获取基站日志信息|[getBsLogInfo](#getbsloginfo)|[sEvtStateCode](#sevtstatecode)
[fEvtBsLogInfo](#fevtbsloginfo)(内)| +|基站维护|获取基站日志信息(内)|[getBsLogInfo](#getbsloginfo)|[sEvtStateCode](#sevtstatecode)
[fEvtBsLogInfo](#fevtbsloginfo)| ||基站软复位|[resetBsSystem](#resetbssystem)|[sEvtStateCode](#sevtstatecode)
[sEvtBsConnectState](#sevtbsconnectstate)| ||基站断电复位|[resetBsPower](#resetbspower)|[sEvtStateCode](#sevtstatecode)
[sEvtBsConnectState](#sevtbsconnectstate)| |基站升级|开启基站升级(内)|[startBsUpdate](#startbsupdate)|[sEvtStateCode](#sevtstatecode)
[fEvtBsUpateState](#fevtbsupatestate)
[fEvtBsUpdateProgress](#fevtbsupdateprogress)| @@ -164,6 +162,8 @@ ||停止标准测验|[stopKpExam](#stopkpexam)|[sEvtStateCode](#sevtstatecode)| ||刷新作答数据|[rtGetKpExamData](#rtgetkpexamdata)|[fEvtKpExam](#fevtkpexam)| ||允许键盘提交后退回修改|[rtAllowEdited](#rtkpallowedited)|[sEvtStateCode](#sevtstatecode)
[fEvtFinalSubmit](#fevtfinalsubmit)| +|多科测验|启动多科测验|[startKpMultiExam](#startkpmultiexam)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)
[fEvtFinalSubmit](#fevtfinalsubmit)| +||停止标准测验|[stopKpMultiExam](#stopkpmultiexam)|[sEvtStateCode](#sevtstatecode)| ## 公共事件 ### sEvtBsConnectState @@ -1506,7 +1506,7 @@ ### 基站维护 #### 方法 ##### getBsLogInfo -- **主题**:/client/\${baseSN}/send +- **主题**:/manage/\${baseSN}/receive - **功能描述**:获取基站日志,用于出现故障需要排查问题时获取基站内部日志记录 - **参数说明** @@ -1525,7 +1525,7 @@ ##### resetBsSystem - **主题**:/client/\${baseSN}/send -- **功能描述**:软复位基站(公共主题可用,但不体现在外部版本协议中) +- **功能描述**:软复位基站(公共主题可用,但不体现在外部版本协议中) - **参数说明** |参数名|类型|限制|是否必填|说明| @@ -1543,7 +1543,7 @@ ##### resetBsPower - **主题**:/client/\${baseSN}/send -- **功能描述**:断电复位基站(公共主题可用,但不体现在外部版本协议中) +- **功能描述**:断电复位基站(公共主题可用,但不体现在外部版本协议中) - **参数说明** |参数名|类型|限制|是否必填|说明| @@ -1562,6 +1562,7 @@ #### 事件 ##### [sEvtStateCode](#sevtstatecode) 返回指令的接收状态 +注意:内部指令的接收状态需从**主题: /manage/\${baseSN}/receive** 返回 ##### [sEvtBsConnectState](#sevtbsconnectstate) 复位基站后,基站重新连接成功后上报 @@ -1865,6 +1866,9 @@ |data|array|-|是|传送参数的对象数组| |++keySn|string||是|设置提示语信息的键盘SN| |++state|string||是|设置的提示语是否成功
0 - 成功
1 - 失败| + +- **示例代码** + ```json { "fun":"fEvtSetKpUserPrompt", @@ -2406,7 +2410,7 @@ "dataTag":"1", "data": { "keySn":"1479824643", - "state":1 + "state":"1" } } ``` @@ -2772,7 +2776,7 @@ |+examNo|int||是|0-9999
=0,新的测验
>0时,与上次启动卷号一致继续测验,不一致进入新的测验| |+mode|int||是|显示模式
0-不显示开头
1-显示“Q”开头
2-显示“题”开头| |+questions|array||是|题目详情| -|++symbol | string||是 | 题号前缀,可为空 | +|++symbol | string||是 | 题号前缀,分级标识为-,可为空,为空表示1级大题
最多为三级题号,即最多可以设为x-x-| |++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断 | |++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。| |++startNo | int||是| 起始题号 | @@ -2937,7 +2941,7 @@ |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| |++keySn|string||是|键盘SN| -|++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B| +|++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B
注意:如启动的是多科测验,键盘提交的题目序号对应启动时下发的题目总序号,不按科目区分| |++keyTime|double||是|答题时间,从启动开始计算,单位秒| - **示例代码** @@ -2983,4 +2987,144 @@ "keyTime":3.2 }] } -``` \ No newline at end of file +``` + +### 多科测验 +#### 方法 +##### startKpMultiExam +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动多科测验 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+examNo|int||是|0-9999
=0,新的测验
>0时,与上次启动卷号一致继续测验,不一致进入新的测验| +|+mode|int||是|显示模式
0-不显示开头
1-显示“Q”开头
2-显示“题”开头| +|+questions|array||是|题目详情| +|++subject | int||是 | 科目序号,1-9,对应键盘中内置的科目1-9
键盘答题时可选择科目切换答题| +|++symbol | string||是 | 题号前缀,分级标识为-,可为空,为空表示1级题目
多科测验题目编号最多只能两级(即symbol可设置为空或x-),超出无效| +|++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断 | +|++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。| +|++startNo | int||是| 起始题号 | +|++count | int||是| 题目数量 | +|+simParams|object||否|内部模拟测试参数设置对象| +|++answer|array||是|预设提交的按键值
格式为"单选题答案,多选题答案;
数字题答案;判断题答案(1对2错)"
如["A","ABCD","10","1"]| + +- **示例代码** +```json +//自定义题号 +{ + "fun":"startKpMultiExam", + "dataTag":"1", + "data":{ + "mode": 0, + "examNo": 1, + "questions": [{ + "subject":1, //科目1 + //题号1-1 到1-10 共10题单选 + "symbol": "1-", + "quesType": 1, + "startNo": 1, + "count":10 + }, { + "subject":2, //科目2 + //题号2-2和2-3共两题 多选题,5个选项 + "symbol": "2-", + "quesType": 2, + "option": 5, + "startNo": 2, + "count":2 + }, { + "subject":3, //科目3 + //题号3-1和3-2共两道数字题 + "symbol": "3-", + "quesType": 3, + "startNo": 1, + "count":2 + }, { + "subject":1, //科目1 + //题号4和5 ,判断题 + "symbol": "", + "quesType": 4, + "startNo": 4, + "count":2 + }], + "simParams":{ + "answer":["A","ABCD","10","1"] + } + } +} + +//显示Q开头 +{ + "fun":"startKpMultiExam", + "dataTag":"1", + "data":{ + "mode": 1, + "examNo": 1, + "questions": [{ + "subject":1, + //Q1-Q20,单选题 + "symbol": "", + "quesType": 1, + "startNo": 1, + "count":20 + }], + "simParams":{ + "answer":["A","","",""] + } + } +} + +//显示题开头 +{ + "fun":"startKpMultiExam", + "dataTag":"1", + "data":{ + "mode": 2, + "examNo": 1, + "questions": [{ + "subject":1, + //题1-题20,单选题 + "symbol": "", + "quesType": 1, + "startNo": 1, + "count":20 + }], + "simParams":{ + "answer":["A","","",""] + } + } +} +``` + +##### stopKpMultiExam +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止多科测验 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```json +{ + "fun":"stopKpMultiExam", + "dataTag":"1" +} +``` + +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### [fEvtKpExam](#fevtkpexam) +返回测验中键盘提交答题数据 + +##### [fEvtFinalSubmit](#fevtfinalsubmit) +返回键盘手动交卷标识 \ No newline at end of file diff --git a/通讯协议-B200W-MQTT协议[外].md b/通讯协议-B200W-MQTT协议[外].md index 7c77e5e..fc403fe 100644 --- a/通讯协议-B200W-MQTT协议[外].md +++ b/通讯协议-B200W-MQTT协议[外].md @@ -59,6 +59,8 @@ } ``` +注意:基站接收指令数据单次不超过2K长度,在指定键盘发送指令时,如果指令长度超出限制,建议将指令进行拆分,分次发送,如果是所有键盘执行的指令,可将keySns设为空数组不使用指定键盘的模式 + |参数 |说明 |约束| |---|---|---| |fun| 指令或事件名称|| @@ -88,11 +90,17 @@ ||设置基站登录名称|[setBsSSID](#setbsssid)|[fEvtBsSSID](#fevtbsssid)|| |键盘统一设置 - 键盘语言|获取键盘语言|[getBsKpLanguage](#getbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)| ||设置键盘语言|[setBsKpLanguage](#setbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)|| +|配对模式 - 快速配对|启动基站快速配对|[startBsFastPair](#startbsfastpair)|[sEvtStateCode](#sevtstatecode)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)| +||停止基站快速配对|[stopBsFastPair](#stopbsfastpair)|[sEvtStateCode](#sevtstatecode)| +|白名单模式 - 白名单管理|获取白名单|[getBsWhitelist](#getbswhitelist)|[fEvtBsWhitelist](#fevtbswhitelist)| +||设置白名单|[setBsWhitelist](#setbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtSetBsWhitelist](#fevtsetbswhitelist)| +||清空白名单|[clearBsWhitelist](#clearbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtBsWhitelist](#fevtbswhitelist)| +||增加白名单|[addBsWhitelist](#addbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtAddBsWhitelist](#fevtaddbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)| +||删除白名单|[delBsWhitelist](#delbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtDelBsWhitelist](#fevtdelbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)| |网络设置 - TCP/IP参数|获取TCP/IP参数|[getBsTcpipParams](#getbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)| ||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)|| |网络设置 - MQTT参数|获取MQTT参数|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)| ||设置MQTT参数|[setBsMqttParams](#setbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)|| -|基站维护|获取基站日志信息|[getBsLogInfo](#getbsloginfo)|[sEvtStateCode](#sevtstatecode)| ### 键盘管理 |功能归类|功能|API指令|指令事件| |---|---|---|---| @@ -108,6 +116,8 @@ ### 签到 |功能归类|功能|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)| @@ -773,6 +783,262 @@ } } ``` +### 配对模式 +#### 方法 +##### startBsFastPair +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动快速配对,键盘配对成功返回键盘信息 [sEvtBsKpOnlineMsg](#sevtbskponlinemsg) +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```json +{ + "fun":"startBsFastPair", + "dataTag":"1" +} +``` +##### stopBsFastPair +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止快速配对 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```json +{ + "fun":"stopBsFastPair", + "dataTag":"1" +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回此事件 + +##### [sEvtBsKpOnlineMsg](#sevtbskponlinemsg) +键盘配对成功后在线返回此事件 + +### 白名单模式 +#### 方法 +##### getBsWhitelist +- **主题**:/client/\${baseSN}/send +- **功能描述**:获取基站白名单列表 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```json +{ + "fun":"getBsWhitelist", + "dataTag":"1" +} +``` +##### setBsWhitelist +- **主题**:/client/\${baseSN}/send +- **功能描述**:设置基站白名单列表,将基站白名单替换为写入的键盘SN列表 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array|-|是|待写入的键盘SN数组,最多不超过200
键盘SN为10位数字| + +- **示例代码** +```json +{ + "fun":"setBsWhitelist", + "dataTag":"1", + "data":{ + "keySns":["2024021001","2024021002","2024021003","2024021004"] + } +} +``` +##### clearBsWhitelist +- **主题**:/client/\${baseSN}/send +- **功能描述**:清空基站白名单列表 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```json +{ + "fun":"clearBsWhitelist", + "dataTag":"1" +} +``` +##### addBsWhitelist +- **主题**:/client/\${baseSN}/send +- **功能描述**:添加键盘至基站白名单列表 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array|-|是|待添加的键盘SN列表
键盘SN为10位数字| + +- **示例代码** +```json +{ + "fun":"addBsWhitelist", + "dataTag":"1", + "data":{ + "keySns":["2024021001"] + } +} +``` +##### delBsWhitelist +- **主题**:/client/\${baseSN}/send +- **功能描述**:从基站白名单列表中删除键盘 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array|-|是|待删除的键盘SN列表
键盘SN为10位数字| + +- **示例代码** +```json +{ + "fun":"delBsWhitelist", + "dataTag":"1", + "data":{ + "keySns":["2024021001"] + } +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回此事件 + +##### fEvtBsWhitelist +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回基站白名单列表 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+keySns|array||是|基站当前的白名单列表| + +- **示例代码** +```Json +{ + "fun":"fEvtBsWhitelist", + "dataTag":"1", + "data":{ + "keySns":["2024021001","2024021002","2024021003","2024021004"] + } +} +``` + +##### fEvtSetBsWhitelist +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回设置白名单状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySns|array||是|键盘SN数组| +|++state|int||是|键盘SN的写入状态
0-写入成功
1-写入失败| + +- **示例代码** +```Json +{ + "fun":"fEvtSetBsWhitelist", + "dataTag":"1", + "data":[{ + "keySns":["2024021001","2024021002"], + "state":0 + },{ + "keySns":["1211"], + "state":1 + }] +} +``` + +##### fEvtAddBsWhitelist +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回增加键盘状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySns|array||是|键盘SN数组| +|++state|int||是|键盘的增加状态
0-增加成功
1-增加失败| + +- **示例代码** +```Json +{ + "fun":"fEvtAddBsWhitelist", + "dataTag":"1", + "data":[{ + "keySns":["2024021001","2024021002"], + "state":0 + },{ + "keySns":["1211"], + "state":1 + }] +} +``` + +##### fEvtDelBsWhitelist +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回删除键盘状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySns|array||是|键盘SN数组| +|++state|int||是|键盘的删除状态
0-删除成功
1-删除失败| + +- **示例代码** +```Json +{ + "fun":"fEvtDelBsWhitelist", + "dataTag":"1", + "data":[{ + "keySns":["2024021002"], + "state":0 + },{ + "keySns":["2024021001"], + "state":1 + }] +} +``` + ### 网络参数设置 #### 方法 ##### getBsTcpipParams @@ -928,29 +1194,6 @@ } } ``` -### 基站维护 -#### 方法 -##### getBsLogInfo -- **主题**:/client/\${baseSN}/send -- **功能描述**:获取基站日志,用于出现故障需要排查问题时获取基站内部日志记录 -- **参数说明** - -|参数名|类型|限制|是否必填|说明| -|---|---|---|---|---| -|fun|string|-|是|指令名称| -|dataTag|string|-|否|数据包标识,可为空字符串| - -- **示例代码** -```Json -{ - "fun":"getBsLogInfo", - "dataTag":"1" -} -``` - -#### 事件 -##### [sEvtStateCode](#sevtstatecode) -返回指令的接收状态 ## 键盘管理 ### 交互设置 @@ -973,7 +1216,7 @@ ```json //分别提示 { - "fun": "rtSetKpUserPrompt", + "fun":"rtSetKpUserPrompt", "dataTag":"1", "data": [ { @@ -988,7 +1231,7 @@ } //统一提示 { - "fun": "rtSetKpUserPrompt", + "fun":"rtSetKpUserPrompt", "dataTag":"1", "data": [ { @@ -1019,7 +1262,7 @@ ```json { - "fun": "fEvtSetKpUserPrompt", + "fun":"fEvtSetKpUserPrompt", "dataTag":"1", "data": [ { @@ -1053,7 +1296,7 @@ ```json { - "fun": "startGetKpOnline", + "fun":"startGetKpOnline", "dataTag":"1" } ``` @@ -1072,7 +1315,7 @@ ```json { - "fun": "stopGetKpOnline", + "fun":"stopGetKpOnline", "dataTag":"1" } ``` @@ -1157,7 +1400,7 @@ ```json { - "fun": "rtSetKpBindingInfo", + "fun":"rtSetKpBindingInfo", "dataTag":"1", "data": [ { @@ -1188,7 +1431,7 @@ ```json { - "fun": "clearKpBindingInfo", + "fun":"clearKpBindingInfo", "dataTag":"1", "data": { "keySns":["1479824643","1479824644","1479824645"] @@ -1216,7 +1459,7 @@ ```json { - "fun": "fEvtKpBindingInfo", + "fun":"fEvtKpBindingInfo", "dataTag":"1", "data": [ { @@ -1246,7 +1489,7 @@ ```json { - "fun": "fEvtClearKpBindingInfo", + "fun":"fEvtClearKpBindingInfo", "dataTag":"1", "data": { "state": "0" @@ -1254,6 +1497,75 @@ } ``` ## 签到 +### 同步签到 +#### 方法 +##### startKpSignIn +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动同步签到 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传递参数的对象| +|+mode|int|-|是|签到模式
1-按键签到,可指定按键
2-PIN码签到,可指定PIN码长度| +|+allowModify |int|-|是 | 修改模式
0-不可修改
1-可以修改(默认值)| +|+pinLen |int|-|是| 可输入pin码的最大长度 1≤N≤14 | +|+keyValue |int|-|是 | 指定按键键值
0: 未指定(OK键签到)
1-9: 按键1-9
10: 按键0
11: 上键
12: 下键
13: OK键
14: ESC键
15: Menu键 | +|+tipTitle |string|-|否| 提示标题,长度最多不超过16个字节| + +- **示例代码** +```Json +//按键签到 +{ + "fun":"startKpSignIn", + "dataTag":"1", + "data":{ + "mode":1, + "allowModify":1, + "keyValue":5, + "tip":"请按5键签到" + } +} + +//pin签到 +{ + "fun":"startKpSignIn", + "dataTag":"1", + "data":{ + "mode":2, + "allowModify":1, + "pinLen":6, + "tip":"请输入PIN码签到" + } +} +``` + +##### stopKpSignIn +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止同步签到 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"stopKpSignIn", + "dataTag":"1" +} +``` +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### [fEvtKpSignIn](#fevtkpsignin) +返回键盘提交的签到数据 + ### 随时签到 #### 方法 ##### rtStartKpSignIn @@ -1272,7 +1584,7 @@ ```json { - "fun": "rtStartKpSignIn", + "fun":"rtStartKpSignIn", "dataTag":"1", "data":{ "mode":2 @@ -1281,7 +1593,7 @@ ``` ##### rtStopKpSignIn - **主题**:/client/\${baseSN}/send -- **功能描述**:停止签到绑定 +- **功能描述**:停止随时签到绑定 - **参数说明** |参数名|类型|限制|是否必填|说明| @@ -1293,7 +1605,7 @@ ```json { - "fun": "rtStopKpSignIn", + "fun":"rtStopKpSignIn", "dataTag":"1" } ``` @@ -1314,7 +1626,7 @@ ```json { - "fun": "rtSetKpLoginAllowed", + "fun":"rtSetKpLoginAllowed", "dataTag":"1", "data":{ "keySn":"1479824643", @@ -1344,7 +1656,7 @@ ```json { - "fun": "fEvtKpSignIn", + "fun":"fEvtKpSignIn", "dataTag":"1", "data": [{ "keySn": "1234567890", @@ -1376,7 +1688,7 @@ ```json { - "fun": "fEvtKpLoginAllowed", + "fun":"fEvtKpLoginAllowed", "dataTag":"1", "data": { "keySn":"1479824643", @@ -1406,7 +1718,7 @@ ```json { - "fun": "startQATrueFalse", + "fun":"startQATrueFalse", "dataTag":"1", "data":{ "keySns":[], @@ -1430,7 +1742,7 @@ ```json { - "fun": "stopQATrueFalse", + "fun":"stopQATrueFalse", "dataTag":"1" } ``` @@ -1456,7 +1768,7 @@ ```json { - "fun": "fEvtQATrueFalse", + "fun":"fEvtQATrueFalse", "dataTag":"1", "data": [{ "keySn": "1234567890", @@ -1490,7 +1802,7 @@ ```json { - "fun": "startQAChoice", + "fun":"startQAChoice", "dataTag":"1", "data":{ "keySns":[], @@ -1517,7 +1829,7 @@ ```json { - "fun": "stopQAChoice", + "fun":"stopQAChoice", "dataTag":"1" } ``` @@ -1543,7 +1855,7 @@ ```json { - "fun": "fEvtQAChoice", + "fun":"fEvtQAChoice", "dataTag":"1", "data": [{ "keySn": "1234567890", @@ -1576,7 +1888,7 @@ ```json { - "fun": "startQANum", + "fun":"startQANum", "dataTag":"1", "data":{ "keySns":[], @@ -1603,7 +1915,7 @@ ```json { - "fun": "stopQANum", + "fun":"stopQANum", "dataTag":"1" } ``` @@ -1629,7 +1941,7 @@ ```json { - "fun": "fEvtQANum", + "fun":"fEvtQANum", "dataTag":"1", "data":[{ "keySn": "1234567890", @@ -1659,7 +1971,7 @@ ```json { - "fun": "startQAQuicker", + "fun":"startQAQuicker", "dataTag":"1", "data":{ "keySns":[], @@ -1683,7 +1995,7 @@ ```json { - "fun": "stopQAQuicker", + "fun":"stopQAQuicker", "dataTag":"1" } ``` @@ -1709,7 +2021,7 @@ ```json { - "fun": "fEvtQAQuicker", + "fun":"fEvtQAQuicker", "dataTag":"1", "data": [{ "keySn": "1234567890", @@ -1745,7 +2057,7 @@ ```json //自定义题号 { - "fun": "startKpExam", + "fun":"startKpExam", "dataTag":"1", "data":{ "mode": 0, @@ -1781,7 +2093,7 @@ //显示Q开头 { - "fun": "startKpExam", + "fun":"startKpExam", "dataTag":"1", "data":{ "mode": 1, @@ -1798,7 +2110,7 @@ //显示题开头 { - "fun": "startKpExam", + "fun":"startKpExam", "dataTag":"1", "data":{ "mode": 2, @@ -1827,7 +2139,7 @@ ```json { - "fun": "stopKpExam", + "fun":"stopKpExam", "dataTag":"1" } ``` @@ -1847,7 +2159,7 @@ ```json { - "fun": "rtKpAllowEdited", + "fun":"rtKpAllowEdited", "dataTag":"1", "data":{ "keySns":["1234567890","1234567891"] @@ -1876,7 +2188,7 @@ ```json { - "fun": "fEvtKpExam", + "fun":"fEvtKpExam", "dataTag":"1", "data": [{ "keySn": "1234567890", @@ -1909,7 +2221,7 @@ ```json { - "fun": "fEvtFinalSubmit", + "fun":"fEvtFinalSubmit", "dataTag":"1", "data": [{ "keySn": "1234567890", diff --git a/通讯协议-平台化-应用部分.md b/通讯协议-平台化-应用部分.md index a6a2f02..c14f90e 100644 --- a/通讯协议-平台化-应用部分.md +++ b/通讯协议-平台化-应用部分.md @@ -159,7 +159,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 |配对模式 - 快速配对|启动基站快速配对|[startBsFastPair](#startbsfastpair)|[sEvtStateCode](#sevtstatecode)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)| ||停止基站快速配对|[stopBsFastPair](#stopbsfastpair)|[sEvtStateCode](#sevtstatecode)| |白名单模式 - 白名单管理|获取白名单|[getBsWhitelist](#getbswhitelist)|[fEvtBsWhitelist](#fevtbswhitelist)| -||设置白名单|[setBsWhitelist](#setbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtBsWhitelist](#fevtbswhitelist)| +||设置白名单|[setBsWhitelist](#setbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtSetBsWhitelist](#fevtsetbswhitelist)| ||清空白名单|[clearBsWhitelist](#clearbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtBsWhitelist](#fevtbswhitelist)| ||增加白名单|[addBsWhitelist](#addbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtAddBsWhitelist](#fevtaddbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)| ||删除白名单|[delBsWhitelist](#delbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtDelBsWhitelist](#fevtdelbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)| @@ -173,6 +173,9 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 ||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)| |网络设置 - MQTT参数|获取MQTT参数|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)| ||设置MQTT参数|[setBsMqttParams](#setbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)| +|基站维护|获取基站日志信息(内)|[getBsLogInfo](#getbsloginfo)|[sEvtStateCode](#sevtstatecode)
[fEvtBsLogInfo](#fevtbsloginfo)| +||基站软复位|[resetBsSystem](#resetbssystem)|[sEvtStateCode](#sevtstatecode)
[sEvtBsConnectState](#sevtbsconnectstate)| +||基站断电复位|[resetBsPower](#resetbspower)|[sEvtStateCode](#sevtstatecode)
[sEvtBsConnectState](#sevtbsconnectstate)| |基站升级|开启基站升级(内)|[startBsUpdate](#startbsupdate)|[sEvtStateCode](#sevtstatecode)
[fEvtBsUpateState](#fevtbsupatestate)
[fEvtBsUpdateProgress](#fevtbsupdateprogress)| ||下载字库(内)|[downloadFontLib](#downloadfontlib)|[sEvtStateCode](#sevtstatecode)
[fEvtBsFontLibState](#fevtbsfontlibstate)
[fEvtBsFontLibProgress](#fevtbsfontlibprogress)| ### 键盘管理 @@ -243,6 +246,8 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 ||刷新作答数据|[rtGetKpExamData](#rtgetkpexamdata)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)| ||判卷结果回传|[rtSetKpExamResult](#rtgetkpexamdata)|[sEvtStateCode](#sevtstatecode)
[fEvtSetKpExamResult](#fevtsetkpexamresult)| ||允许键盘提交后退回修改|[rtAllowEdited](#rtkpallowedited)|[sEvtStateCode](#sevtstatecode)
[fEvtFinalSubmit](#fevtfinalsubmit)| +|多科测验|启动多科测验|[startKpMultiExam](#startkpmultiexam)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)
[fEvtFinalSubmit](#fevtfinalsubmit)| +||停止标准测验|[stopKpMultiExam](#stopkpmultiexam)|[sEvtStateCode](#sevtstatecode)| |自主录分|启动自主录分|[startKpScoreInput](#startkpscoreinput)|[sEvtStateCode](#sevtstatecode)
[fEvtKpScore](#fevtkpscore)
[fEvtFinalSubmit](#fevtfinalsubmit)| ||停止自主录分|[stopKpScoreInput](#stopkpscoreinput)|[sEvtStateCode](#sevtstatecode)| @@ -1951,7 +1956,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "startBsFastPair", + "fun":"startBsFastPair", "dataTag":"1" } ``` @@ -1968,7 +1973,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopBsFastPair", + "fun":"stopBsFastPair", "dataTag":"1" } ``` @@ -1994,7 +1999,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "getBsWhitelist", + "fun":"getBsWhitelist", "dataTag":"1" } ``` @@ -2013,7 +2018,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "setBsWhitelist", + "fun":"setBsWhitelist", "dataTag":"1", "data":{ "keySns":["2024021001","2024021002","2024021003","2024021004"] @@ -2033,7 +2038,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "clearBsWhitelist", + "fun":"clearBsWhitelist", "dataTag":"1" } ``` @@ -2052,7 +2057,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "addBsWhitelist", + "fun":"addBsWhitelist", "dataTag":"1", "data":{ "keySns":["2024021001"] @@ -2074,7 +2079,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "delBsWhitelist", + "fun":"delBsWhitelist", "dataTag":"1", "data":{ "keySns":["2024021001"] @@ -2096,7 +2101,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "lockBsWhitelistKp", + "fun":"lockBsWhitelistKp", "dataTag":"1", "data":{ "keySns":["2024021001"] @@ -2118,7 +2123,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "unlockBsWhitelistKp", + "fun":"unlockBsWhitelistKp", "dataTag":"1", "data":{ "keySn":["2024021001"] @@ -2152,6 +2157,34 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 } ``` +##### fEvtSetBsWhitelist +- **主题**:/basestation/\${baseSN}/receive +- **功能描述**:返回设置白名单状态 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|array|-|是|传送参数的对象数组| +|++keySns|array||是|键盘SN数组| +|++state|int||是|键盘SN的写入状态
0-写入成功
1-写入失败| + +- **示例代码** +```Json +{ + "fun":"fEvtSetBsWhitelist", + "dataTag":"1", + "data":[{ + "keySns":["2024021001","2024021002"], + "state":0 + },{ + "keySns":["1211"], + "state":1 + }] +} +``` + ##### fEvtAddBsWhitelist - **主题**:/basestation/\${baseSN}/receive - **功能描述**:返回增加键盘状态 @@ -2162,7 +2195,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| -|++keySn|string||是|键盘SN| +|++keySns|array||是|键盘SN数组| |++state|int||是|键盘的增加状态
0-增加成功
1-增加失败| - **示例代码** @@ -2171,8 +2204,11 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 "fun":"fEvtAddBsWhitelist", "dataTag":"1", "data":[{ - "keySn":"2024021001", + "keySns":["2024021001","2024021002"], "state":0 + },{ + "keySns":["1211"], + "state":1 }] } ``` @@ -2187,7 +2223,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|array|-|是|传送参数的对象数组| -|++keySn|string||是|键盘SN| +|++keySns|array||是|键盘SN数组| |++state|int||是|键盘的删除状态
0-删除成功
1-删除失败| - **示例代码** @@ -2196,8 +2232,11 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 "fun":"fEvtDelBsWhitelist", "dataTag":"1", "data":[{ - "keySn":"2024021001", + "keySns":["2024021002"], "state":0 + },{ + "keySns":["2024021001"], + "state":1 }] } ``` @@ -2241,7 +2280,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "getBsSoftwareKey", + "fun":"getBsSoftwareKey", "dataTag":"1" } ``` @@ -2260,7 +2299,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "setBsSoftwareKey", + "fun":"setBsSoftwareKey", "dataTag":"1", "data":{ "value":"sunvote123456" @@ -2280,7 +2319,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "getBsAES", + "fun":"getBsAES", "dataTag":"1" } ``` @@ -2299,7 +2338,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "setBsAES", + "fun":"setBsAES", "dataTag":"1", "data":{ "value":"0" @@ -2351,6 +2390,96 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 } } ``` + +### 基站维护 +#### 方法 +##### getBsLogInfo +- **主题**:/manage/\${baseSN}/receive +- **功能描述**:获取基站日志,用于出现故障需要排查问题时获取基站内部日志记录 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"getBsLogInfo", + "dataTag":"1" +} +``` + +##### resetBsSystem +- **主题**:/client/\${baseSN}/send +- **功能描述**:软复位基站(公共主题可用,但不体现在外部版本协议中) +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"resetBsSystem", + "dataTag":"1" +} +``` + +##### resetBsPower +- **主题**:/client/\${baseSN}/send +- **功能描述**:断电复位基站(公共主题可用,但不体现在外部版本协议中) +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```Json +{ + "fun":"resetBsPower", + "dataTag":"1" +} +``` + +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +返回指令的接收状态 +注意:内部指令的接收状态需从**主题: /manage/\${baseSN}/receive** 返回 + +##### [sEvtBsConnectState](#sevtbsconnectstate) +复位基站后,基站重新连接成功后上报 + +##### fEvtBsLogInfo +- **主题**: /manage/\${baseSN}/receive +- **功能描述**:返回基站存储的日志内容 +- **参数说明** + +|参数名|类型|限制|非空|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+index|int||是|数据包序号,从1开始,传0代表日志已传完| +|+info|string||是|日志内容
日志的时间依赖于基站授时,需要加上时区得到具体的时间| + +- **示例代码** +```Json +{ + "fun":"fEvtBsLogInfo", + "dataTag":"1", + "data":{ + "index":1, + "info":"XXXXXXXXXXXXX" + } +} +``` + ### 基站升级 #### 方法 ##### startBsUpdate @@ -2841,7 +2970,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 ```Json //分别提示 { - "fun": "rtSetKpUserPrompt", + "fun":"rtSetKpUserPrompt", "dataTag":"1", "data": [ { @@ -2856,7 +2985,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 } //统一提示 { - "fun": "rtSetKpUserPrompt", + "fun":"rtSetKpUserPrompt", "dataTag":"1", "data": [ { @@ -2913,7 +3042,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtSetKpUserPrompt", + "fun":"fEvtSetKpUserPrompt", "dataTag":"1", "data": [ { @@ -2946,7 +3075,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "startGetKpOnline", + "fun":"startGetKpOnline", "dataTag":"1" } ``` @@ -2964,7 +3093,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopGetKpOnline", + "fun":"stopGetKpOnline", "dataTag":"1" } ``` @@ -3172,7 +3301,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "rtSetKpBindingInfo", + "fun":"rtSetKpBindingInfo", "dataTag":"1", "data": [ { @@ -3202,7 +3331,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "clearKpBindingInfo", + "fun":"clearKpBindingInfo", "dataTag":"1", "data": { "keySns":["1479824643","1479824644","1479824645"] @@ -3229,7 +3358,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtKpBindingInfo", + "fun":"fEvtKpBindingInfo", "dataTag":"1", "data": [ { @@ -3258,7 +3387,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtClearKpBindingInfo", + "fun":"fEvtClearKpBindingInfo", "dataTag":"1", "data": { "state": "0" @@ -3278,18 +3407,39 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 |fun|string|-|是|指令名称| |dataTag|string|-|否|数据包标识,可为空字符串| |data|object|-|是|传递参数的对象| -|+mode|int|-|是|签到模式
1-按键签到
2-PIN码签到
3-指纹签到| +|+mode|int|-|是|签到模式
1-按键签到,可指定按键
2-PIN码签到,可指定PIN码长度
3-指纹签到(暂不支持)| +|+allowModify |int|-|是 | 修改模式
0:不可修改
1:可以修改(默认值)| +|+pinLen |int|-|是| 可输入pin码的最大长度 1≤N≤14 | +|+keyValue |int|-|是 | 指定按键键值
0: 未指定(OK键签到)
1-9: 按键1-9
10:按键0
11:上键
12:下键
13:OK键
14:ESC键
15: Menu键 | +|+tipTitle |string|-|否| 提示标题,长度最多不超过16个字节| - **示例代码** ```Json +//按键签到 { - "fun": "startKpSignIn", + "fun":"startKpSignIn", "dataTag":"1", "data":{ - "mode":2 + "mode":1, + "allowModify":1, + "keyValue":5, + "tip":"请按5键签到" + } +} + +//pin签到 +{ + "fun":"startKpSignIn", + "dataTag":"1", + "data":{ + "mode":2, + "allowModify":1, + "pinLen":6, + "tip":"请输入PIN码签到" } } ``` + ##### stopKpSignIn - **主题**:/client/\${baseSN}/send - **功能描述**:停止同步签到 @@ -3303,7 +3453,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopKpSignIn", + "fun":"stopKpSignIn", "dataTag":"1" } ``` @@ -3331,7 +3481,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "rtStartKpSignIn", + "fun":"rtStartKpSignIn", "dataTag":"1", "data":{ "mode":2 @@ -3351,7 +3501,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "rtStopKpSignIn", + "fun":"rtStopKpSignIn", "dataTag":"1" } ``` @@ -3371,7 +3521,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "rtSetKpLoginAllowed", + "fun":"rtSetKpLoginAllowed", "dataTag":"1", "data":{ "keySn":"1479824643", @@ -3400,7 +3550,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtKpSignIn", + "fun":"fEvtKpSignIn", "dataTag":"1", "data": [{ "keySn": "1234567890", @@ -3431,7 +3581,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtKpLoginAllowed", + "fun":"fEvtKpLoginAllowed", "dataTag":"1", "data": { "keySn":"1479824643", @@ -3463,7 +3613,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "startQATrueFalse", + "fun":"startQATrueFalse", "dataTag":"1", "data":{ "keySns":[], @@ -3490,7 +3640,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopQATrueFalse", + "fun":"stopQATrueFalse", "dataTag":"1" } ``` @@ -3515,7 +3665,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtQATrueFalse", + "fun":"fEvtQATrueFalse", "dataTag":"1", "data": [{ "keySn": "1234567890", @@ -3551,7 +3701,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "startQAChoice", + "fun":"startQAChoice", "dataTag":"1", "data":{ "keySns":[], @@ -3581,7 +3731,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopQAChoice", + "fun":"stopQAChoice", "dataTag":"1" } ``` @@ -3606,7 +3756,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtQAChoice", + "fun":"fEvtQAChoice", "dataTag":"1", "data": [{ "keySn": "1234567890", @@ -3640,7 +3790,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "startQANum", + "fun":"startQANum", "dataTag":"1", "data":{ "keySns":[], @@ -3669,7 +3819,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopQANum", + "fun":"stopQANum", "dataTag":"1" } ``` @@ -3694,7 +3844,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtQANum", + "fun":"fEvtQANum", "dataTag":"1", "data": [{ "keySn": "1234567890", @@ -3725,7 +3875,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "startQAQuicker", + "fun":"startQAQuicker", "dataTag":"1", "data":{ "keySns":[], @@ -3751,7 +3901,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopQAQuicker", + "fun":"stopQAQuicker", "dataTag":"1" } ``` @@ -3776,7 +3926,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtQAQuicker", + "fun":"fEvtQAQuicker", "dataTag":"1", "data": [{ "keySn": "1234567890", @@ -3807,7 +3957,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "startQAEText", + "fun":"startQAEText", "dataTag":"1", "data":{ "keySns":[], @@ -3833,7 +3983,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopQAEText", + "fun":"stopQAEText", "dataTag":"1" } ``` @@ -3858,7 +4008,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtQAEText", + "fun":"fEvtQAEText", "dataTag":"1", "data": [{ "keySn": "1234567890", @@ -3889,7 +4039,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 ```Json //指定键盘发送信息 { - "fun": "sendKpMsg", + "fun":"sendKpMsg", "dataTag":"1", "data": [ { @@ -3909,7 +4059,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 //广播信息 { - "fun": "sendKpMsg", + "fun":"sendKpMsg", "dataTag":"1", "data": [ { @@ -3944,7 +4094,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtKpMsg", + "fun":"fEvtKpMsg", "dataTag":"1", "data": [ { @@ -3978,7 +4128,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 ```Json //启用举手反馈 { - "fun": "startKpStbResponse", + "fun":"startKpStbResponse", "dataTag":"1", "data":{ "mode":0 @@ -3986,7 +4136,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 } //待机按键反馈 { - "fun": "startKpStbResponse", + "fun":"startKpStbResponse", "dataTag":"1", "data":{ "mode":1, @@ -4008,7 +4158,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopKpStbResponse", + "fun":"stopKpStbResponse", "dataTag":"1" } ``` @@ -4047,7 +4197,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "startQAVoice", + "fun":"startQAVoice", "dataTag":"1", "data": { "keySns": [], @@ -4073,7 +4223,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopQAVoice", + "fun":"stopQAVoice", "dataTag":"1" } ``` @@ -4098,7 +4248,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "startKpDSpeaker", + "fun":"startKpDSpeaker", "dataTag":"1", "data": { "keySn": "1234567890", @@ -4122,7 +4272,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopKpDSpeaker", + "fun":"stopKpDSpeaker", "dataTag":"1" } ``` @@ -4144,7 +4294,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "startVoiceStbResponse", + "fun":"startVoiceStbResponse", "dataTag":"1", "data":{ "mode":, @@ -4166,7 +4316,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopVoiceStbResponse", + "fun":"stopVoiceStbResponse", "dataTag":"1" } ``` @@ -4192,7 +4342,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtVoiceFile", + "fun":"fEvtVoiceFile", "dataTag":"1", "data": [{ "keySn": "1479824643", @@ -4223,7 +4373,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtQAQuicker", + "fun":"fEvtQAQuicker", "dataTag":"1", "data": { "keySn":"1479824643", @@ -4258,7 +4408,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtQAQuicker", + "fun":"fEvtQAQuicker", "dataTag":"1", "data": { "keySn":"1837454011", @@ -4300,7 +4450,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 ```Json //自定义题号 { - "fun": "startKpExam", + "fun":"startKpExam", "dataTag":"1", "data":{ "mode": 0, @@ -4339,7 +4489,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 //显示Q开头 { - "fun": "startKpExam", + "fun":"startKpExam", "dataTag":"1", "data":{ "mode": 1, @@ -4359,7 +4509,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 //显示题开头 { - "fun": "startKpExam", + "fun":"startKpExam", "dataTag":"1", "data":{ "mode": 2, @@ -4390,7 +4540,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopKpExam", + "fun":"stopKpExam", "dataTag":"1" } ``` @@ -4409,7 +4559,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "rtGetKpExamData", + "fun":"rtGetKpExamData", "dataTag":"1", "data":{ "keySns":["1234567890","1234567891"] @@ -4432,7 +4582,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "rtSetKpExamResult", + "fun":"rtSetKpExamResult", "dataTag":"1", "data":{ "examNo":1, @@ -4456,7 +4606,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "rtKpAllowEdited", + "fun":"rtKpAllowEdited", "dataTag":"1", "data":{ "keySns":["1234567890","1234567891"] @@ -4484,7 +4634,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtKpExam", + "fun":"fEvtKpExam", "dataTag":"1", "data": [{ "keySn": "1234567890", @@ -4516,7 +4666,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtFinalSubmit", + "fun":"fEvtFinalSubmit", "dataTag":"1", "data": [{ "keySn": "1234567890", @@ -4542,7 +4692,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtSetKpExamResult", + "fun":"fEvtSetKpExamResult", "dataTag":"1", "data": { "examNo": 1, @@ -4551,6 +4701,146 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 } ``` +### 多科测验 +#### 方法 +##### startKpMultiExam +- **主题**:/client/\${baseSN}/send +- **功能描述**:启动多科测验 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| +|data|object|-|是|传送参数的对象| +|+examNo|int||是|0-9999
=0,新的测验
>0时,与上次启动卷号一致继续测验,不一致进入新的测验| +|+mode|int||是|显示模式
0-不显示开头
1-显示“Q”开头
2-显示“题”开头| +|+questions|array||是|题目详情| +|++subject | int||是 | 科目序号,1-9,对应键盘中内置的科目1-9
键盘答题时可选择科目切换答题| +|++symbol | string||是 | 题号前缀,分级标识为-,可为空,为空表示1级题目
多科测验题目编号最多只能两级(即symbol可设置为空或x-),超出无效| +|++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断 | +|++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。| +|++startNo | int||是| 起始题号 | +|++count | int||是| 题目数量 | +|+simParams|object||否|内部模拟测试参数设置对象| +|++answer|array||是|预设提交的按键值
格式为"单选题答案,多选题答案;
数字题答案;判断题答案(1对2错)"
如["A","ABCD","10","1"]| + +- **示例代码** +```json +//自定义题号 +{ + "fun":"startKpMultiExam", + "dataTag":"1", + "data":{ + "mode": 0, + "examNo": 1, + "questions": [{ + "subject":1, //科目1 + //题号1-1 到1-10 共10题单选 + "symbol": "1-", + "quesType": 1, + "startNo": 1, + "count":10 + }, { + "subject":2, //科目2 + //题号2-2和2-3共两题 多选题,5个选项 + "symbol": "2-", + "quesType": 2, + "option": 5, + "startNo": 2, + "count":2 + }, { + "subject":3, //科目3 + //题号3-1和3-2共两道数字题 + "symbol": "3-", + "quesType": 3, + "startNo": 1, + "count":2 + }, { + "subject":1, //科目1 + //题号4和5 ,判断题 + "symbol": "", + "quesType": 4, + "startNo": 4, + "count":2 + }], + "simParams":{ + "answer":["A","ABCD","10","1"] + } + } +} + +//显示Q开头 +{ + "fun":"startKpMultiExam", + "dataTag":"1", + "data":{ + "mode": 1, + "examNo": 1, + "questions": [{ + "subject":1, + //Q1-Q20,单选题 + "symbol": "", + "quesType": 1, + "startNo": 1, + "count":20 + }], + "simParams":{ + "answer":["A","","",""] + } + } +} + +//显示题开头 +{ + "fun":"startKpMultiExam", + "dataTag":"1", + "data":{ + "mode": 2, + "examNo": 1, + "questions": [{ + "subject":1, + //题1-题20,单选题 + "symbol": "", + "quesType": 1, + "startNo": 1, + "count":20 + }], + "simParams":{ + "answer":["A","","",""] + } + } +} +``` + +##### stopKpMultiExam +- **主题**:/client/\${baseSN}/send +- **功能描述**:停止多科测验 +- **参数说明** + +|参数名|类型|限制|是否必填|说明| +|---|---|---|---|---| +|fun|string|-|是|指令名称| +|dataTag|string|-|否|数据包标识,可为空字符串| + +- **示例代码** +```json +{ + "fun":"stopKpMultiExam", + "dataTag":"1" +} +``` + +#### 事件 +##### [sEvtStateCode](#sevtstatecode) +发送指令后返回接收状态 + +##### [fEvtKpExam](#fevtkpexam) +返回测验中键盘提交答题数据 + +##### [fEvtFinalSubmit](#fevtfinalsubmit) +返回键盘手动交卷标识 + ### 自主录分 #### 方法 ##### startKpScoreInput @@ -4576,7 +4866,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "startKpScoreInput", + "fun":"startKpScoreInput", "dataTag":"1", "data":{ "mode": 0, @@ -4615,7 +4905,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "stopKpScoreInput", + "fun":"stopKpScoreInput", "dataTag":"1" } ``` @@ -4641,7 +4931,7 @@ WebSocket方式应用与SDK或基站建立长连接后,通过WebSocket接口 - **示例代码** ```Json { - "fun": "fEvtKpScore", + "fun":"fEvtKpScore", "dataTag":"1", "data": [{ "scoreTag":"5", -- libgit2 0.21.4