diff --git a/通讯协议-B200W-MQTT协议[内部].md b/通讯协议-B200W-MQTT协议[内部].md
index d6bd1bc..ee713a8 100644
--- a/通讯协议-B200W-MQTT协议[内部].md
+++ b/通讯协议-B200W-MQTT协议[内部].md
@@ -13,9 +13,61 @@
background-color: yellow;
}
+
+
+
+
+
+
+SunVote B200W
MQTT通讯协议
+
+
+
+
+
+
+Ver 1.0.1
+
+
+
+
+
+
+
+
+
+长沙中天电子设计开发有限公司
+
+
+
+
+
+二〇二四年十月
+
+
+
+
+
+
+
+文件控制:
+
+文件名:SunVote B200W MQTT通讯协议
+
+起草人:刘琴
+
+最新版本作者: 刘琴
+
+| 文档版本 | 日期 | 作者 | 版本说明 |
+|---|---|---|---|
+|1.0.1| 2024年10月22日|刘琴|1. 初始版|
+
+
+
+
[TOC]
-# SunVote B200W_MQTT 接口协议
+# SunVote B200W MQTT通讯协议
# 功能说明
@@ -53,7 +105,7 @@
|fEvtXXX|指令事件 |调用对应指令后返回|
## 数据格式约定
-- 数据格式统一为**Json**格式,MQTT发送接收消息编码统一为**UTF-8**
+- 数据格式统一为**Json**格式,发送接收消息编码统一为**UTF-8**
- Json通用格式如下:
```json
@@ -115,6 +167,7 @@
||设置刷卡配对状态|[setBsNfcLogin](#setbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)||
|组网设置 - 工作信道|获取基站工作信道|[getBsChannel](#getbschannel)|[fEvtBsChannel](#fevtbschannel)|
||设置基站工作信道|[setBsChannel](#setbschannel)|[fEvtBsChannel](#fevtbschannel)||
+||读取已被占用信道|[getBsRFIChannel](#getbsrfichannel)|[fEvtBsRFIChannel](#fevtbsrfichannel)||
|登录设置 - 登录名称|获取基站登录名称|[getBsSSID](#getbsssid)|[fEvtBsSSID](#fevtbsssid)|
||设置基站登录名称|[setBsSSID](#setbsssid)|[fEvtBsSSID](#fevtbsssid)||
|登录设置 - 登录密码|获取基站登录密码|[getBsLoginPwd](#getbsloginpwd)|[fEvtBsLoginPwd](#fevtbsloginpwd)|
@@ -190,7 +243,7 @@
|抢答题|启动抢答题答题|[startQAQuicker](#startqaquicker)|[sEvtStateCode](#sevtstatecode)
[fEvtQAQuicker](#fevtqaquicker)|
||停止抢答题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
|待机实时反馈|设置待机实时反馈状态|[setKpStbResponse](#setkpstbresponse)|[fEvtKpStbResponse](#fevtkpstbresponse)
[sEvtKpRtFeedback](#sevtkprtfeedback)
[sEvtKpHandUp](#sevtkphandup)|
-||设置待机实时反馈状态|[getKpStbResponse](#getkpstbresponse)|[fEvtKpStbResponse](#fevtkpstbresponse)|
+||获取待机实时反馈状态|[getKpStbResponse](#getkpstbresponse)|[fEvtKpStbResponse](#fevtkpstbresponse)|
### 在线测验
|功能归类|功能|API指令|指令事件|
|---|---|---|---|
@@ -472,7 +525,7 @@
参见基站连接变化系统通知
##### fEvtBsOnlineState
-- **主题**: /basestation/mutilBase/receive
+- **主题**: /basestation/multiBase/receive
- **功能描述**:基站在线返回基站型号和基站SN
- **参数说明**
@@ -878,6 +931,25 @@
}
}
```
+
+##### getBsRFIChannel
+- **主题**:/client/\${baseSN}/send
+- **功能描述**:获取已被其他基站占用的信道
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+
+- **示例代码**
+```json
+{
+ "fun":"getBsRFIChannel",
+ "dataTag":"1"
+}
+```
+
#### 事件
##### fEvtBsNetworkMode
- **主题**: /basestation/\${baseSN}/receive
@@ -946,6 +1018,39 @@
}
}
```
+
+##### fEvtBsRFIChannel
+- **主题**: /basestation/\${baseSN}/receive
+- **功能描述**:返回其他基站已占用的信道,频点冲突时,可以根据返回结果修改基站信道避开干扰
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|事件名称|
+|dataTag|string|-|否|数据包标识,可传空字符串|
+|data|object|-|是|传送参数的对象|
+|+value|string||是|其他基站已占用的信道,多个信道用英文","分隔,无占用信道返回0|
+
+- **示例代码**
+```json
+//信道1、2、14已被占用
+{
+ "fun":"fEvtBsRFIChannel",
+ "dataTag":"1",
+ "data":{
+ "value":"1,2,14"
+ }
+}
+//无占用信道
+{
+ "fun":"fEvtBsRFIChannel",
+ "dataTag":"1",
+ "data":{
+ "value":"0"
+ }
+}
+```
+
##### fEvtBsNfcLogin
- **主题**: /basestation/\${baseSN}/receive
- **功能描述**:返回基站是否允许NFC刷卡
@@ -1037,7 +1142,7 @@
|fun|string|-|是|指令名称|
|dataTag|string|-|否|数据包标识,可为空字符串|
|data|object|-|是|传送参数的对象|
-|+value|string||是|设置的基站登录密码,数字类型,为空代表无需密码登录,最长4位|
+|+value|string||是|设置的基站登录密码,数字类型,最长4位,为空或设为0代表无需密码登录|
- **示例代码**
```json
@@ -1123,7 +1228,7 @@
|fun|string|-|是|事件名称|
|dataTag|string|-|否|数据包标识,可传空字符串|
|data|object|-|是|传送参数的对象|
-|+value|string||是|基站登录密码|
+|+value|string||是|基站登录密码,返回值为0代表无需密码登录|
- **示例代码**
```json
@@ -1134,6 +1239,15 @@
"value":"1234"
}
}
+
+//无需密码登录
+{
+ "fun":"fEvtBsLoginPwd",
+ "dataTag":"1",
+ "data":{
+ "value":"0"
+ }
+}
```
##### fEvtBsLoginState
- **主题**: /basestation/\${baseSN}/receive
@@ -1806,7 +1920,7 @@
|+port|int||是|端口,默认1883|
|+userName|string||否|连接服务器的用户名,可不设置|
|+password|string||否|连接服务器的密码,可不设置|
-|+interval|int|>=60|否|基站连接服务器失败后重连的间隔时长,单位秒|
+|+interval|int|>=30|否|基站连接服务器失败后重连的间隔时长,单位秒|
- **示例代码**
```json
@@ -1818,7 +1932,7 @@
"port":1883,
"userName":"",
"password":"",
- "interval":60
+ "interval":30
}
}
```
@@ -2083,7 +2197,7 @@
|dataTag|string|-|否|数据包标识,可为空字符串|
|data|array|-|是|传送参数的对象数组|
|++name|string||是|检测项名称:MCU、RF、FLASH、EEPROM|
-|++state|int||是|检测结果
0-功能异常
1-功能正常|
+|++state|int||是|检测结果
0-功能正常
1-功能异常|
- **示例代码**
```json
@@ -2093,19 +2207,19 @@
"data":[
{
"name":"MCU",
- "state":1
+ "state":0
},
{
"name":"RF",
- "state":1
+ "state":0
},
{
"name":"FLASH",
- "state":1
+ "state":0
},
{
"name":"EEPROM",
- "state":1
+ "state":0
}
]
}
@@ -2406,7 +2520,7 @@
|dataTag|string|-|否|数据包标识,可为空字符串|
|data|object|-|是|传送参数的对象|
|+keySn|string||是|设置键盘id的键盘SN|
-|+keyId|int||是|键盘编号|
+|+state|string||是|设置是否成功
0-设置成功
1-设置失败|
- **示例代码**
```json
@@ -2415,7 +2529,7 @@
"dataTag":"1",
"data":{
"keySn":"2024021011",
- "keyId":11
+ "state":"0"
}
}
```
@@ -3084,7 +3198,7 @@
"dataTag":"1",
"data": {
"keySn":"1479824643",
- "state":"1"
+ "state":"0"
}
}
```
@@ -3515,7 +3629,7 @@
- **示例代码**
```json
-//启用举手反馈
+//获取实时反馈状态
{
"fun":"getKpStbResponse",
"dataTag":"1"
@@ -3580,11 +3694,10 @@
|+examNo|int||是|0-9999
=0,新的测验
>0时,与上次启动卷号一致继续测验,不一致进入新的测验|
|+mode|int||是|显示模式
0-不显示开头
1-显示“Q”开头
2-显示“题”开头|
|+questions|array||是|题目详情|
-|++symbol | string||是 | 题号前缀,分级标识为-,可为空,为空表示1级大题
最多为三级题号,即最多可以设为x-x-|
|++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断 |
|++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。|
-|++startNo | int||是| 起始题号 |
-|++count | int||是| 题目数量 |
+|++startNo | string||是| 起始题号,可以为数字+“-”,单级的题号数字范围1-255,如“1”,“1-1”,“1-1-1”,最多只能输入三级
mode=0 时有效,mode=1或2时键盘按顺序显示题号|
+|++count | int||是| 相同参数的连续题目数量, >0
注意:总题数最多支持200题 |
|+simParams|object||否|内部模拟测试参数设置对象|
|++answer|array||是|预设提交的按键值
格式为"单选题答案,多选题答案;
数字题答案;判断题答案(1对2错)"
如["A","ABCD","10","1"]|
@@ -3597,10 +3710,10 @@
"dataTag":"1",
"data":{
"mode": 1,
- "examNo": 1,
+ "examNo": 0,
"questions": [{
"quesType": 1, //单选题
- "startNo": 1, //题号从1开始
+ "startNo": "1", //题号从1开始
"count":10 //连续10题
}],
"simParams":{
@@ -3617,24 +3730,24 @@
"dataTag":"1",
"data":{
"mode": 0,
- "examNo": 1,
+ "examNo": 0,
//第1、2题单选题,第3、4题多选题,第5题数字,第6题判断,共6题
"questions": [{
"quesType": 1, //单选题
- "startNo": 1, //题号从1开始
+ "startNo": "1", //题号从1开始
"count":2 //连续2题
},{
"quesType": 2, //多选题
- "startNo": 3, //题号从3开始
+ "startNo": "3", //题号从3开始
"count":2, //连续2题
"option":5
},{
"quesType": 1, //数字题
- "startNo": 5, //题号从5开始
+ "startNo": "5", //题号从5开始
"count":1 //连续1题
},{
"quesType": 4, //判断题
- "startNo": 6, //题号从6开始
+ "startNo": "6", //题号从6开始
"count":1 //连续1题
}],
"simParams":{
@@ -3651,28 +3764,24 @@
"dataTag":"1",
"data":{
"mode": 0,
- "examNo": 1,
+ "examNo": 0,
//第1-1、1-2题单选题,第2-1、2-2题多选题,第3-1题数字,第4-1题判断,共6题
- "questions": [{
- "symbol": "1-",
+ "questions": [{
"quesType": 1, //单选题
- "startNo": 1, //题号从1-1开始
+ "startNo": "1-1", //题号从1-1开始
"count":2 //连续2题
},{
- "symbol": "2-",
"quesType": 2, //多选题
- "startNo": 1, //题号从2-1开始
+ "startNo":"2-1", //题号从2-1开始
"count":2, //连续2题
"option":5
},{
- "symbol": "3-",
"quesType": 3, //数字题
- "startNo": 1, //题号从3-1开始
+ "startNo":"3-1", //题号从3-1开始
"count":1 //连续1题
},{
- "symbol": "4-",
"quesType": 4, //判断题
- "startNo": 1, //题号从4-1开始
+ "startNo": "4-1", //题号从4-1开始
"count":1 //连续1题
}],
"simParams":{
@@ -3689,28 +3798,24 @@
"dataTag":"1",
"data":{
"mode": 0,
- "examNo": 1,
+ "examNo": 0,
//第1-1-1、1-1-2题单选题,第1-2-1、1-2-2题多选题,第2-1-1题数字,第3-1-1题判断,共6题
"questions": [{
- "symbol": "1-1-",
"quesType": 1, //单选题
- "startNo": 1, //题号从1-1-1开始
+ "startNo": "1-1-1", //题号从1-1-1开始
"count":2 //连续2题
},{
- "symbol": "1-2-",
"quesType": 2, //多选题
- "startNo": 1, //题号从1-2-1开始
+ "startNo": "1-2-1", //题号从1-2-1开始
"count":2, //连续2题
"option":5
},{
- "symbol": "2-1-",
"quesType": 3, //数字题
- "startNo": 1, //题号从2-1-1开始
+ "startNo": "2-1-1", //题号从2-1-1开始
"count":1 //连续1题
},{
- "symbol": "3-1-",
"quesType": 4, //判断题
- "startNo": 1, //题号从3-1-1开始
+ "startNo": "3-1-1", //题号从3-1-1开始
"count":1 //连续1题
}],
"simParams":{
@@ -3727,23 +3832,23 @@
"dataTag":"1",
"data":{
"mode": 1,
- "examNo": 1,
+ "examNo": 0,
"questions": [{
"quesType": 1, //单选题
- "startNo": 1, //题号从1开始
+ "startNo": "1", //题号从1开始
"count":2 //连续2题
},{
"quesType": 2, //多选题
- "startNo": 3, //题号从3开始
+ "startNo": "3", //题号从3开始
"count":2, //连续2题
"option":5
},{
"quesType": 1, //数字题
- "startNo": 5, //题号从5开始
+ "startNo": "5", //题号从5开始
"count":1 //连续1题
},{
"quesType": 4, //判断题
- "startNo": 6, //题号从6开始
+ "startNo": "6", //题号从6开始
"count":1 //连续1题
}],
"simParams":{
@@ -3760,23 +3865,23 @@
"dataTag":"1",
"data":{
"mode": 2,
- "examNo": 1,
- "questions": [{
+ "examNo": 0,
+ "questions": [{
"quesType": 1, //单选题
- "startNo": 1, //题号从1开始
+ "startNo": "1", //题号从1开始
"count":2 //连续2题
},{
"quesType": 2, //多选题
- "startNo": 3, //题号从3开始
+ "startNo": "3", //题号从3开始
"count":2, //连续2题
"option":5
},{
"quesType": 1, //数字题
- "startNo": 5, //题号从5开始
+ "startNo": "5", //题号从5开始
"count":1 //连续1题
},{
"quesType": 4, //判断题
- "startNo": 6, //题号从6开始
+ "startNo": "6", //题号从6开始
"count":1 //连续1题
}],
"simParams":{
@@ -3931,11 +4036,10 @@
|+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||是| 题目数量 |
+|++startNo | string||是| 起始题号,可以为数字+“-”,单级的题号数字范围1-255,如“1”,“1-1”,最多支持两级题号
mode=0 时有效,mode=1或2时键盘按顺序显示题号|
+|++count | int||是| 相同参数的连续题目数量, >0
注意:所有科目的总题数最多支持200题|
|+simParams|object||否|内部模拟测试参数设置对象|
|++answer|array||是|预设提交的按键值
格式为"单选题答案,多选题答案;
数字题答案;判断题答案(1对2错)"
如["A","ABCD","10","1"]|
@@ -3951,30 +4055,27 @@
"questions": [{
"subject":1, //科目1
//题号1-1 到1-10 共10题单选
- "symbol": "1-",
"quesType": 1,
- "startNo": 1,
+ "startNo": "1-1",
"count":10
}, {
"subject":2, //科目2
//题号2-2和2-3共两题 多选题,5个选项
- "symbol": "2-",
"quesType": 2,
"option": 5,
- "startNo": 2,
+ "startNo": "2-2",
"count":2
}, {
"subject":3, //科目3
//题号3-1和3-2共两道数字题
- "symbol": "3-",
"quesType": 3,
- "startNo": 1,
+ "startNo": "3-1",
"count":2
}, {
"subject":1, //科目1
//题号4和5 ,判断题
"quesType": 4,
- "startNo": 4,
+ "startNo": "4",
"count":2
}],
"simParams":{
@@ -3994,7 +4095,7 @@
"subject":1,
//Q1-Q20,单选题
"quesType": 1,
- "startNo": 1,
+ "startNo": "1",
"count":20
}],
"simParams":{
@@ -4014,7 +4115,7 @@
"subject":1,
//题1-题20,单选题
"quesType": 1,
- "startNo": 1,
+ "startNo": "1",
"count":20
}],
"simParams":{
@@ -4058,7 +4159,7 @@
#### 方法
##### startKpScoreInput
- **主题**:/client/\${baseSN}/send
-- **功能描述**:启动标准测验
+- **功能描述**:启动自主录分
- **参数说明**
|参数名|类型|限制|是否必填|说明|
@@ -4071,8 +4172,8 @@
|+questions|array||是|题目详情|
|++max |int||是|可输入的最大值,<=100|
|++digits|int||是|可输入的小数位数,范围0-2|
-|++startNo | int||是| 起始题号|
-|++count | int||是| 题目数量|
+|++startNo | string||是| 起始题号,暂只支持一级题号,范围1-255|
+|++count | int||是| 相同参数的题目数量,>0
注意:总题数最多支持200题|
- **示例代码**
```json
@@ -4086,13 +4187,13 @@
//题号1 到 2 共2题,单题满分10分
"max":10,
"digits":1,
- "startNo": 1,
+ "startNo": "1",
"count":2
}, {
//题号3到6 共4道题,单题满分5
"max":5,
"digits":0,
- "startNo": 3,
+ "startNo": "3",
"count":4
}]
}
diff --git a/通讯协议-B200W-MQTT协议[外].md b/通讯协议-B200W-MQTT协议[外].md
index 47c421a..e822d6a 100644
--- a/通讯协议-B200W-MQTT协议[外].md
+++ b/通讯协议-B200W-MQTT协议[外].md
@@ -13,10 +13,61 @@
background-color: yellow;
}
-# SunVote B200W MQTT通讯协议
+
+
+
+
+
+
+SunVote B200W
MQTT通讯协议
+
+
+
+
+
+
+Ver 1.0.1
+
+
+
+
+
+
+
+
+
+长沙中天电子设计开发有限公司
+
+
+
+
+
+二〇二四年十月
+
+
+
+
+
+
+
+文件控制:
+
+文件名:SunVote B200W MQTT通讯协议
+
+起草人:刘琴
+
+最新版本作者: 刘琴
+
+| 文档版本 | 日期 | 作者 | 版本说明 |
+|---|---|---|---|
+|1.0.1| 2024年10月22日|刘琴|1. 初始版|
+
+
+
[TOC]
+# SunVote B200W MQTT通讯协议
# 功能说明
## 主题说明
@@ -47,8 +98,9 @@
|fEvtXXX|指令事件 |调用对应指令后返回|
## 数据格式约定
-- 数据格式统一为**Json**格式,MQTT发送接收消息编码统一为**UTF-8**
+- 数据格式统一为**Json**格式,发送接收消息编码统一为**UTF-8**
- Json通用格式如下:
+
```json
{
"fun":"xxx",
@@ -69,6 +121,23 @@
## 功能速查一览表
+### 公共方法
+可以在多种业务中调用的通用方法
+|功能归类|功能|API指令|指令/系统事件|
+|---|---|---|---|
+|停止投票|可停止通过调用startXXX启动的答题业务|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)||
+
+### 公共事件
+无需调用指令,自动返回的事件
+|功能归类|功能|API指令|指令/系统事件|
+|---|---|---|---|
+|公共事件|指令接收状态|-|[sEvtStateCode](#sevtstatecode)|
+|公共事件|基站连接状态变化|-|[sEvtBsConnectState](#sevtbsconnectstate)|
+|公共事件|基站信道冲突|-|[sEvtBsChannelConflict](#sevtbschannelconflict)|
+|公共事件|键盘上线通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
+|公共事件|键盘刷卡事件|-|[sEvtBsNfcResults](#sevtbsnfcresults)|
+|公共事件|键盘待机实时按键反馈|-|[sEvtKpRtFeedback](#sevtkprtfeedback)|
+
### 基站管理
|功能归类|功能|API指令|指令/系统事件|
|---|---|---|---|
@@ -79,15 +148,19 @@
|键盘上线通知|单个键盘上线系统通知|-|[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)||
|识别设置 - 基站型号|读取基站型号|[getBsModel](#getbsmodel)|[fEvtBsModel](#fevtbsmodel)|
|识别设置 - 固件版本|获取基站固件版本|[getBsFWVersion](#getbsfwversion)|[fEvtBsFWVersion](#fevtbsfwversion)|
+|组网设置 - 组网模式|获取基站组网模式|[getBsNetworkMode](#getbsnetworkmode)|[fEvtBsNetworkMode](#fevtbsnetworkmode)|
|组网设置 - 配对码|获取基站配对码|[getBsPairCode](#getbspaircode)|[fEvtBsPairCode](#fevtbspaircode)|
|组网设置 - 刷卡配对状态|获取刷卡配对状态|[getBsNfcLogin](#getbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)|
||设置刷卡配对状态|[setBsNfcLogin](#setbsnfclogin)|[fEvtBsNfcLogin](#fevtbsnfclogin)||
|组网设置 - 工作信道|获取基站工作信道|[getBsChannel](#getbschannel)|[fEvtBsChannel](#fevtbschannel)|
||设置基站工作信道|[setBsChannel](#setbschannel)|[fEvtBsChannel](#fevtbschannel)||
+||读取已被占用信道|[getBsRFIChannel](#getbsrfichannel)|[fEvtBsRFIChannel](#fevtbsrfichannel)||
|登录设置 - 登录名称|获取基站登录名称|[getBsSSID](#getbsssid)|[fEvtBsSSID](#fevtbsssid)|
||设置基站登录名称|[setBsSSID](#setbsssid)|[fEvtBsSSID](#fevtbsssid)||
-|键盘统一设置 - 键盘语言|获取键盘语言|[getBsKpLanguage](#getbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)|
-||设置键盘语言|[setBsKpLanguage](#setbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)||
+|登录设置 - 登录密码|获取基站登录密码|[getBsLoginPwd](#getbsloginpwd)|[fEvtBsLoginPwd](#fevtbsloginpwd)|
+||设置基站登录密码|[setBsLoginPwd](#setbsloginpwd)|[fEvtBsLoginPwd](#fevtbsloginpwd)||
+|登录设置 - 基站登录状态|获取基站登录状态|[getBsLoginState](#getbsloginstate)|[fEvtBsLoginState](#fevtbsloginstate)|
+||设置基站登录状态|[setBsLoginState](#setbsloginstate)|[fEvtBsLoginState](#fevtbsloginstate)||
|配对模式 - 快速配对|启动基站快速配对|[startBsFastPair](#startbsfastpair)|[sEvtStateCode](#sevtstatecode)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
||停止基站快速配对|[stopBsFastPair](#stopbsfastpair)|[sEvtStateCode](#sevtstatecode)|
|白名单模式 - 白名单管理|获取白名单|[getBsWhitelist](#getbswhitelist)|[fEvtBsWhitelist](#fevtbswhitelist)|
@@ -95,6 +168,8 @@
||清空白名单|[clearBsWhitelist](#clearbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtBsWhitelist](#fevtbswhitelist)|
||增加白名单|[addBsWhitelist](#addbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtAddBsWhitelist](#fevtaddbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)|
||删除白名单|[delBsWhitelist](#delbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtDelBsWhitelist](#fevtdelbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)|
+|基站加密 - 软件狗|获取基站软件狗|[getBsSoftwareKey](#getbssoftwarekey)|[fEvtBsSoftwareKey](#fevtbssoftwarekey)|
+||设置基站软件狗|[setBsSoftwareKey](#setbssoftwarekey)|[fEvtBsSoftwareKey](#fevtbssoftwarekey)|
|网络设置 - TCP/IP参数|获取TCP/IP参数|[getBsTcpipParams](#getbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)|
||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)||
|网络设置 - MQTT参数|获取MQTT参数|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)|
@@ -115,7 +190,7 @@
|功能归类|功能|API指令|指令事件|
|---|---|---|---|
|同步签到|启动同步签到|[startKpSignIn](#startkpsignin)|[sEvtStateCode](#sevtstatecode)
[fEvtKpSignIn](#fevtkpsignin)|
-||停止同步签到|[stopKpSignIn](#stopkpsignin)|[sEvtStateCode](#sevtstatecode)|
+||停止同步签到|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
|随时签到|启动随时签到|[rtStartKpSignIn](#rtstartkpsignin)|[sEvtStateCode](#sevtstatecode)
[fEvtKpSignIn](#fevtkpsignin)|
||停止随时签到|[rtStopKpSignIn](#rtstopkpsignin)|[sEvtStateCode](#sevtstatecode)|
||实时PIN签到授权|[rtSetKpLoginAllowed](#rtsetkploginallowed)|[sEvtStateCode](#sevtstatecode)
[fEvtKpLoginAllowed](#fevtkploginallowed)|
@@ -123,19 +198,44 @@
|功能归类|功能|API指令|指令事件|
|---|---|---|---|
|判断题|启动判断题答题|[startQATrueFalse](#startqatruefalse)|[sEvtStateCode](#sevtstatecode)
[fEvtQATrueFalse](#fevtqatruefalse)|
-||停止判断题答题|[stopQATrueFalse](#stopqatruefalse)|[sEvtStateCode](#sevtstatecode)|
+||停止判断题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
|选择题|启动选择题答题|[startQAChoice](#startqachoice)|[sEvtStateCode](#sevtstatecode)
[fEvtQAChoice](#fevtqachoice)|
-||停止选择题答题|[stopQAChoice](#stopqachoice)|[sEvtStateCode](#sevtstatecode)|
+||停止选择题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
|数字题|启动数字题答题|[startQANum](#startqanum)|[sEvtStateCode](#sevtstatecode)
[fEvtQANum](#fevtqanum)|
-||停止数字题答题|[stopQANum](#stopqanum)|[sEvtStateCode](#sevtstatecode)|
+||停止数字题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
|抢答题|启动抢答题答题|[startQAQuicker](#startqaquicker)|[sEvtStateCode](#sevtstatecode)
[fEvtQAQuicker](#fevtqaquicker)|
-||停止抢答题答题|[stopQAQuicker](#stopqaquicker)|[sEvtStateCode](#sevtstatecode)|
+||停止抢答题答题|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
+|待机实时反馈|设置待机实时反馈状态|[setKpStbResponse](#setkpstbresponse)|[fEvtKpStbResponse](#fevtkpstbresponse)
[sEvtKpRtFeedback](#sevtkprtfeedback)|
+||获取待机实时反馈状态|[getKpStbResponse](#getkpstbresponse)|[fEvtKpStbResponse](#fevtkpstbresponse)|
### 在线测验
|功能归类|功能|API指令|指令事件|
|---|---|---|---|
|标准测验|启动标准测验|[startKpExam](#startkpexam)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)
[fEvtFinalSubmit](#fevtfinalsubmit)|
-||停止标准测验|[stopKpExam](#stopkpexam)|[sEvtStateCode](#sevtstatecode)|
+||停止标准测验|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
||允许键盘提交后退回修改|[rtAllowEdited](#rtkpallowedited)|[sEvtStateCode](#sevtstatecode)
[fEvtFinalSubmit](#fevtfinalsubmit)|
+|多科测验|启动多科测验|[startKpMultiExam](#startkpmultiexam)|[sEvtStateCode](#sevtstatecode)
[fEvtKpExam](#fevtkpexam)
[fEvtFinalSubmit](#fevtfinalsubmit)|
+||停止标准测验|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
+|自主录分|启动自主录分|[startKpScoreInput](#startkpscoreinput)|[sEvtStateCode](#sevtstatecode)
[fEvtKpScore](#fevtkpscore)
[fEvtFinalSubmit](#fevtfinalsubmit)|
+||停止自主录分|[stopKpVote](#stopkpvote)|[sEvtStateCode](#sevtstatecode)|
+
+## 公共方法
+### stopKpVote
+- **主题**: /client/\${baseSN}/send
+- **功能描述**:通用停止键盘答题方法,可以停止如同步签到、按键反馈、在线测验中调用startXXX方法启动的业务
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|-----|-----|-----|-----|-----|
+|fun|string|-|是|事件类型|
+|dataTag|string||否|数据包标识,不需要时可传空字符串|
+
+- **示例代码**
+```json
+{
+ "fun":"stopKpVote",
+ "dataTag":"1"
+}
+```
## 公共事件
### sEvtBsConnectState
@@ -146,7 +246,7 @@
|参数名|类型|限制|非空|说明|
|-----|-----|-----|-----|-----|
|fun|string|-|是|事件类型|
-|dataTag|string|-|否|数据包标识,不需要时可传空字符串|
+|dataTag|string||否|数据包标识,不需要时可传空字符串|
|data|object|-|是|传送参数的对象|
|+baseModel|int||否|基站的型号码|
|+modelName|string||否|基站的型号名称|
@@ -208,6 +308,7 @@
|dataTag|string|-|否|数据包标识,不需要时可传空字符串|
|data|object|-|是|传送参数的对象|
|+keySn|string||是|刷卡的键盘SN|
+|+cardType|int||是|刷卡的键盘类型
1-NFC类型
2-M1类型|
|+value|int||是|刷卡的状态
1-成功
2-失败|
- **示例代码**
@@ -216,7 +317,8 @@
"fun":"sEvtBsNfcResults",
"dataTag":"1", //不需要时可传空字符串
"data":{
- "keySn":"1234567890",
+ "keySn":"1234567890",
+ "cardType":1,
"value":1
}
}
@@ -248,6 +350,34 @@
}
}
```
+### sEvtKpRtFeedback
+- **主题**: /basestation/\${baseSN}/receive
+- **功能描述**:开启键盘实时反馈后,键盘按键时上报
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|事件名称|
+|dataTag|string|-|否|数据包标识|
+|data|array|-|是|传送参数的对象数组|
+|++keySn|string||是|键盘SN|
+|++keyValue|string||是|键盘提交的按键值|
+|++voltage|double||是|键盘电量|
+|++retryCount|int||是|键盘提交数据的重发次数|
+
+- **示例代码**
+```json
+{
+ "fun":"sEvtKpRtFeedback",
+ "dataTag":"1",
+ "data":[{
+ "keySn":"1234567890",
+ "keyValue":"A",
+ "voltage":2.6,
+ "retryCount":1
+ }]
+}
+```
### sEvtStateCode
- **主题**: /basestation/\${baseSN}/receive
- **功能描述**:返回基站接收指令状态信息
@@ -277,6 +407,7 @@
|20008|value参数错误|
|30001|基站在答题中|
|30002|基站忙(内存不足)|
+|30003|基站执行失败|
|40001|升级功能只能支持一个基站|
|50001|此功能必须指定基站|
|60001|此功能必须指定键盘SN|
@@ -334,7 +465,7 @@
参见基站连接变化系统通知
##### fEvtBsOnlineState
-- **主题**: /basestation/mutilBase/receive
+- **主题**: /basestation/multiBase/receive
- **功能描述**:基站在线返回基站型号和基站SN
- **参数说明**
@@ -496,6 +627,23 @@
```
### 组网设置
#### 方法
+##### getBsNetworkMode
+- **主题**:/client/\${baseSN}/send
+- **功能描述**:获取基站组网模式
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+
+- **示例代码**
+```json
+{
+ "fun":"getBsNetworkMode",
+ "dataTag":"1"
+}
+```
##### getBsPairCode
- **主题**:/client/\${baseSN}/send
- **功能描述**:获取基站配对码
@@ -591,7 +739,48 @@
}
}
```
+
+##### getBsRFIChannel
+- **主题**:/client/\${baseSN}/send
+- **功能描述**:获取已被其他基站占用的信道
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+
+- **示例代码**
+```json
+{
+ "fun":"getBsRFIChannel",
+ "dataTag":"1"
+}
+```
+
#### 事件
+##### 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
- **功能描述**:返回基站配对码
@@ -637,6 +826,39 @@
}
}
```
+
+##### fEvtBsRFIChannel
+- **主题**: /basestation/\${baseSN}/receive
+- **功能描述**:返回其他基站已占用的信道,频点冲突时,可以根据返回结果修改基站信道避开干扰
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|事件名称|
+|dataTag|string|-|否|数据包标识,可传空字符串|
+|data|object|-|是|传送参数的对象|
+|+value|string||是|其他基站已占用的信道,多个信道用英文","分隔,无占用信道返回0|
+
+- **示例代码**
+```json
+//信道1、2、14已被占用
+{
+ "fun":"fEvtBsRFIChannel",
+ "dataTag":"1",
+ "data":{
+ "value":"1,2,14"
+ }
+}
+//无占用信道
+{
+ "fun":"fEvtBsRFIChannel",
+ "dataTag":"1",
+ "data":{
+ "value":"0"
+ }
+}
+```
+
##### fEvtBsNfcLogin
- **主题**: /basestation/\${baseSN}/receive
- **功能描述**:返回基站是否允许NFC刷卡
@@ -701,6 +923,86 @@
}
}
```
+##### 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||是|设置的基站登录密码,数字类型,最长4位,为空或设为0代表无需密码登录|
+
+- **示例代码**
+```json
+{
+ "fun":"setBsLoginPwd",
+ "dataTag":"1",
+ "data":{
+ "value":"1234"
+ }
+}
+```
+##### 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
@@ -724,6 +1026,59 @@
}
}
```
+##### fEvtBsLoginPwd
+- **主题**: /basestation/\${baseSN}/receive
+- **功能描述**:返回基站登录密码
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|事件名称|
+|dataTag|string|-|否|数据包标识,可传空字符串|
+|data|object|-|是|传送参数的对象|
+|+value|string||是|基站登录密码,返回值为0代表无需密码登录|
+
+- **示例代码**
+```json
+{
+ "fun":"fEvtBsLoginPwd",
+ "dataTag":"1",
+ "data":{
+ "value":"1234"
+ }
+}
+
+//无需密码登录
+{
+ "fun":"fEvtBsLoginPwd",
+ "dataTag":"1",
+ "data":{
+ "value":"0"
+ }
+}
+```
+##### fEvtBsLoginState
+- **主题**: /basestation/\${baseSN}/receive
+- **功能描述**:返回基站登录状态
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|事件名称|
+|dataTag|string|-|否|数据包标识,可传空字符串|
+|data|object|-|是|传送参数的对象|
+|+value|string||是|基站登录状态|
+
+- **示例代码**
+```json
+{
+ "fun":"fEvtBsLoginState",
+ "dataTag":"1",
+ "data":{
+ "value":"1"
+ }
+}
+```
### 键盘统一设置
#### 方法
##### getBsKpLanguage
@@ -1122,7 +1477,7 @@
|+port|int||是|端口,默认1883|
|+userName|string||否|连接服务器的用户名,可不设置|
|+password|string||否|连接服务器的密码,可不设置|
-|+interval|int|>=10|否|基站连接服务器失败后重连的间隔时长,单位秒|
+|+interval|int|>=30|否|基站连接服务器失败后重连的间隔时长,单位秒|
- **示例代码**
```json
@@ -1199,7 +1554,70 @@
}
}
```
+### 基站加密
+#### 方法
+##### 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"
+ }
+}
+```
+#### 事件
+##### fEvtBsSoftwareKey
+- **主题**:/basestation/\${baseSN}/receive
+- **功能描述**:返回基站的软件狗密钥
+- **参数说明**
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|data|object|-|是|传送参数的对象|
+|+value|string||是|返回基站的软件狗密钥|
+
+- **示例代码**
+```json
+{
+ "fun":"fEvtBsSoftwareKey",
+ "dataTag":"1",
+ "data":{
+ "value":"sunvote123456"
+ }
+}
+```
## 键盘管理
### 交互设置
#### 方法
@@ -1546,8 +1964,7 @@
}
}
```
-
-##### stopKpSignIn
+
+##### [stopKpVote](#stopkpvote)
+停止同步签到
+
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
@@ -1717,6 +2137,7 @@
|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字符|
@@ -1729,13 +2150,14 @@
"dataTag":"1",
"data":{
"keySns":[],
+ "count":1,
"mode":1,
"allowModify":1,
"tip":"请判断对错"
}
}
```
-##### stopQATrueFalse
+
+
+##### [stopKpVote](#stopkpvote)
+停止判断题答题
+
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
@@ -1800,6 +2226,7 @@
|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)|
@@ -1816,6 +2243,7 @@
"data":{
"keySns":[],
"mode": 1,
+ "count":1,
"lessMode": 0,
"options": 4,
"optionalN": 1,
@@ -1824,7 +2252,7 @@
}
}
```
-##### stopQAChoice
+
+##### [stopKpVote](#stopkpvote)
+停止选择题答题
+
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
@@ -1889,7 +2320,7 @@
|data|object|-|是|传送参数的对象|
|+keySns|array||是|指定的键盘SN数组,空数组表示全部在线键盘|
|+mode|int||是|模式
0:无规则 (S6最多16位,T2最多14位)
1:带小数位上下限(T2不支持)|
-|+digits|int||是|小数位数,范围0-2,mode=1时有效
+|+digits|int||是|小数位数,范围0-2,mode=1时有效
|+numMin|int||是|可输入下限,mode=1有效,范围0-100|
|+numMax|int||是|可输入上限,mode=1有效,范围0-100|
|+allowModify|int||是|修改模式
0 - 不允许修改
1 - 允许修改|
@@ -1912,7 +2343,7 @@
}
}
```
-##### stopQANum
+
+##### [stopKpVote](#stopkpvote)
+停止数字题答题
+
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
@@ -1947,7 +2381,7 @@
|++keySn|string||是|键盘SN|
|++keyValue|string||是|键盘提交的按键值|
|++keyTime|double||是|答题时间,从启动开始计算,单位秒|
-|++voltage|double||是|键盘电量|
+|++voltage|double||是|键盘电量|
|++retryCount|int||是|键盘提交数据的重发次数|
- **示例代码**
@@ -1994,7 +2428,7 @@
}
}
```
-##### stopQAQuicker
+
+
+##### [stopKpVote](#stopkpvote)
+停止抢答
+
#### 事件
##### [sEvtStateCode](#sevtstatecode)
发送指令后返回接收状态
@@ -2045,6 +2483,105 @@
}]
}
```
+### 待机实时反馈
+#### 方法
+##### setKpStbResponse
+- **主题**:/client/\${baseSN}/send
+- **功能描述**:启动待机实时反馈
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|data|object|-|是|传送参数的对象|
+|+state|int||是|启用待机实时反馈
0-不启用
1-启用|
+|+mode|int||是|启动待机反馈类型,state=1时有效
1 - 指定按键反馈|
+|+keys|int||是|有效按键数量,state=1且mode=1时有效, 范围1-10|
+
+- **示例代码**
+```json
+//启用待机按键反馈
+{
+ "fun":"setKpStbResponse",
+ "dataTag":"1",
+ "data":{
+ "state":1,
+ "mode":1,
+ "keys":4
+ }
+}
+//关闭待机按键反馈
+{
+ "fun":"setKpStbResponse",
+ "dataTag":"1",
+ "data":{
+ "state":0
+ }
+}
+```
+
+##### getKpStbResponse
+- **主题**:/client/\${baseSN}/send
+- **功能描述**:获取实时反馈是否打开
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+
+- **示例代码**
+```json
+//获取实时反馈状态
+{
+ "fun":"getKpStbResponse",
+ "dataTag":"1"
+}
+```
+
+#### 事件
+##### fEvtKpStbResponse
+- **主题**:/basestation/\${baseSN}/receive
+- **功能描述**:返回当前待机按键反馈开启状态
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|data|array|-|是|传送参数的对象数组|
+|+state|int||是|启用待机实时反馈
0-未启用
1-启用|
+|+mode|int||是|当前启动待机反馈类型,state=1时返回
0-举手
1-指定按键反馈|
+
+- **示例代码**
+```json
+//当前启用待机实时反馈,模式为指定按键反馈
+{
+ "fun":"fEvtKpStbResponse",
+ "dataTag":"1",
+ "data": {
+ "state": 1,
+ "mode": 1
+ }
+}
+
+//当前未启用待机反馈
+{
+ "fun":"fEvtKpStbResponse",
+ "dataTag":"1",
+ "data": {
+ "state": 0
+ }
+}
+```
+
+##### [sEvtKpRtFeedback](#sevtkprtfeedback)
+返回待机时键盘返回的按键值
+
+##### [sEvtKpHandup](#sevtkphandup)
+启动待机按键反馈类型为举手提问时返回此事件
+
## 在线测验
### 标准测验
#### 方法
@@ -2061,11 +2598,10 @@
|+examNo|int||是|0-9999
=0,新的测验
>0时,与上次启动卷号一致继续测验,不一致进入新的测验|
|+mode|int||是|显示模式
0-不显示开头
1-显示“Q”开头
2-显示“题”开头|
|+questions|array||是|题目详情|
-|++symbol | string||是 | 题号前缀,分级标识为-,可为空,为空表示1级大题
最多为三级题号,即最多可以设为x-x-|
|++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断 |
|++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。|
-|++startNo | int||是| 起始题号 |
-|++count | int||是| 题目数量 |
+|++startNo | string||是| 起始题号,可以为数字+“-”,单级的题号数字范围1-255,如“1”,“1-1”,“1-1-1”,最多只能输入三级
mode=0 时有效,mode=1或2时键盘按顺序显示题号|
+|++count | int||是| 相同参数的连续题目数量, >0
注意:总题数最多支持200题 |
- **示例代码**
@@ -2076,10 +2612,10 @@
"dataTag":"1",
"data":{
"mode": 1,
- "examNo": 1,
+ "examNo": 0,
"questions": [{
"quesType": 1, //单选题
- "startNo": 1, //题号从1开始
+ "startNo": "1", //题号从1开始
"count":10 //连续10题
}]
}
@@ -2093,24 +2629,24 @@
"dataTag":"1",
"data":{
"mode": 0,
- "examNo": 1,
+ "examNo": 0,
//第1、2题单选题,第3、4题多选题,第5题数字,第6题判断,共6题
"questions": [{
"quesType": 1, //单选题
- "startNo": 1, //题号从1开始
+ "startNo": "1", //题号从1开始
"count":2 //连续2题
},{
"quesType": 2, //多选题
- "startNo": 3, //题号从3开始
+ "startNo": "3", //题号从3开始
"count":2, //连续2题
"option":5
},{
"quesType": 1, //数字题
- "startNo": 5, //题号从5开始
+ "startNo": "5", //题号从5开始
"count":1 //连续1题
},{
"quesType": 4, //判断题
- "startNo": 6, //题号从6开始
+ "startNo": "6", //题号从6开始
"count":1 //连续1题
}]
}
@@ -2124,28 +2660,24 @@
"dataTag":"1",
"data":{
"mode": 0,
- "examNo": 1,
+ "examNo": 0,
//第1-1、1-2题单选题,第2-1、2-2题多选题,第3-1题数字,第4-1题判断,共6题
- "questions": [{
- "symbol": "1-",
+ "questions": [{
"quesType": 1, //单选题
- "startNo": 1, //题号从1-1开始
+ "startNo": "1-1", //题号从1-1开始
"count":2 //连续2题
},{
- "symbol": "2-",
"quesType": 2, //多选题
- "startNo": 1, //题号从2-1开始
+ "startNo":"2-1", //题号从2-1开始
"count":2, //连续2题
"option":5
},{
- "symbol": "3-",
"quesType": 3, //数字题
- "startNo": 1, //题号从3-1开始
+ "startNo":"3-1", //题号从3-1开始
"count":1 //连续1题
},{
- "symbol": "4-",
"quesType": 4, //判断题
- "startNo": 1, //题号从4-1开始
+ "startNo": "4-1", //题号从4-1开始
"count":1 //连续1题
}]
}
@@ -2159,28 +2691,24 @@
"dataTag":"1",
"data":{
"mode": 0,
- "examNo": 1,
+ "examNo": 0,
//第1-1-1、1-1-2题单选题,第1-2-1、1-2-2题多选题,第2-1-1题数字,第3-1-1题判断,共6题
"questions": [{
- "symbol": "1-1-",
"quesType": 1, //单选题
- "startNo": 1, //题号从1-1-1开始
+ "startNo": "1-1-1", //题号从1-1-1开始
"count":2 //连续2题
},{
- "symbol": "1-2-",
"quesType": 2, //多选题
- "startNo": 1, //题号从1-2-1开始
+ "startNo": "1-2-1", //题号从1-2-1开始
"count":2, //连续2题
"option":5
},{
- "symbol": "2-1-",
"quesType": 3, //数字题
- "startNo": 1, //题号从2-1-1开始
+ "startNo": "2-1-1", //题号从2-1-1开始
"count":1 //连续1题
},{
- "symbol": "3-1-",
"quesType": 4, //判断题
- "startNo": 1, //题号从3-1-1开始
+ "startNo": "3-1-1", //题号从3-1-1开始
"count":1 //连续1题
}]
}
@@ -2194,23 +2722,23 @@
"dataTag":"1",
"data":{
"mode": 1,
- "examNo": 1,
+ "examNo": 0,
"questions": [{
"quesType": 1, //单选题
- "startNo": 1, //题号从1开始
+ "startNo": "1", //题号从1开始
"count":2 //连续2题
},{
"quesType": 2, //多选题
- "startNo": 3, //题号从3开始
+ "startNo": "3", //题号从3开始
"count":2, //连续2题
"option":5
},{
"quesType": 1, //数字题
- "startNo": 5, //题号从5开始
+ "startNo": "5", //题号从5开始
"count":1 //连续1题
},{
"quesType": 4, //判断题
- "startNo": 6, //题号从6开始
+ "startNo": "6", //题号从6开始
"count":1 //连续1题
}]
}
@@ -2224,29 +2752,30 @@
"dataTag":"1",
"data":{
"mode": 2,
- "examNo": 1,
- "questions": [{
+ "examNo": 0,
+ "questions": [{
"quesType": 1, //单选题
- "startNo": 1, //题号从1开始
+ "startNo": "1", //题号从1开始
"count":2 //连续2题
},{
"quesType": 2, //多选题
- "startNo": 3, //题号从3开始
+ "startNo": "3", //题号从3开始
"count":2, //连续2题
"option":5
},{
"quesType": 1, //数字题
- "startNo": 5, //题号从5开始
+ "startNo": "5", //题号从5开始
"count":1 //连续1题
},{
"quesType": 4, //判断题
- "startNo": 6, //题号从6开始
+ "startNo": "6", //题号从6开始
"count":1 //连续1题
}]
}
}
```
-##### stopKpExam
+
+
+##### [stopKpVote](#stopkpvote)
+停止在线测验
+
##### rtKpAllowEdited
- **主题**:/client/\${baseSN}/send
- **功能描述**:键盘提交后,允许键盘修改答案
@@ -2302,8 +2834,10 @@
|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||是|答题时间,从启动开始计算,单位秒|
+|++voltage|double||是|键盘电量|
+|++retryCount|int||是|键盘提交数据的重发次数|
- **示例代码**
@@ -2350,4 +2884,234 @@
"keyTime":3.2
}]
}
+```
+
+### 多科测验
+#### 方法
+##### startKpMultiExam
+- **主题**:/client/\${baseSN}/send
+- **功能描述**:启动多科测验
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|data|object|-|是|传送参数的对象|
+|+examNo|int||是|0-9999
=0,新的测验
>0时,与上次启动卷号一致继续测验,不一致进入新的测验|
+|+mode|int||是|显示模式
0-不显示开头
1-显示“Q”开头
2-显示“题”开头|
+|+questions|array||是|题目详情|
+|++subject | int||是 | 科目序号,1-9,对应键盘中内置的科目1-9
键盘答题时可选择科目切换答题|
+|++quesType | int||是| 题目类型
1:单选
2:多选(排序)
3:数字
4:判断 |
+|++option |int||是 |选项数目
quesType = 1 有效。
quesType = 2 有效。
此项缺省时 默认4;
范围:1-10。|
+|++startNo | string||是| 起始题号,可以为数字+“-”,单级的题号数字范围1-255,如“1”,“1-1”,最多支持两级题号
mode=0 时有效,mode=1或2时键盘按顺序显示题号|
+|++count | int||是| 相同参数的连续题目数量, >0
注意:所有科目的总题数最多支持200题|
+|+simParams|object||否|内部模拟测试参数设置对象|
+|++answer|array||是|预设提交的按键值
格式为"单选题答案,多选题答案;
数字题答案;判断题答案(1对2错)"
如["A","ABCD","10","1"]|
+
+- **示例代码**
+```json
+//自定义题号
+{
+ "fun":"startKpMultiExam",
+ "dataTag":"1",
+ "data":{
+ "mode": 0,
+ "examNo": 0,
+ "questions": [{
+ "subject":1, //科目1
+ //题号1-1 到1-10 共10题单选
+ "quesType": 1,
+ "startNo": "1-1",
+ "count":10
+ }, {
+ "subject":2, //科目2
+ //题号2-2和2-3共两题 多选题,5个选项
+ "quesType": 2,
+ "option": 5,
+ "startNo": "2-2",
+ "count":2
+ }, {
+ "subject":3, //科目3
+ //题号3-1和3-2共两道数字题
+ "quesType": 3,
+ "startNo": "3-1",
+ "count":2
+ }, {
+ "subject":1, //科目1
+ //题号4和5 ,判断题
+ "quesType": 4,
+ "startNo": "4",
+ "count":2
+ }]
+ }
+}
+
+//显示Q开头
+{
+ "fun":"startKpMultiExam",
+ "dataTag":"1",
+ "data":{
+ "mode": 1,
+ "examNo": 0,
+ "questions": [{
+ "subject":1,
+ //Q1-Q20,单选题
+ "quesType": 1,
+ "startNo": "1",
+ "count":20
+ }]
+ }
+}
+
+//显示题开头
+{
+ "fun":"startKpMultiExam",
+ "dataTag":"1",
+ "data":{
+ "mode": 2,
+ "examNo": 0,
+ "questions": [{
+ "subject":1,
+ //题1-题20,单选题
+ "quesType": 1,
+ "startNo": "1",
+ "count":20
+ }]
+ }
+}
+```
+
+
+##### [stopKpVote](#stopkpvote)
+停止多科测验
+
+#### 事件
+##### [sEvtStateCode](#sevtstatecode)
+发送指令后返回接收状态
+
+##### [fEvtKpExam](#fevtkpexam)
+返回测验中键盘提交答题数据
+
+##### [fEvtFinalSubmit](#fevtfinalsubmit)
+返回键盘手动交卷标识
+
+### 自主录分
+#### 方法
+##### startKpScoreInput
+- **主题**:/client/\${baseSN}/send
+- **功能描述**:启动自主录分
+- **参数说明**
+
+|参数名|类型|限制|是否必填|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|data|object|-|是|传送参数的对象|
+|+examNo|int||是|0-9999
=0,新的录分
>0时,与上次启动卷号一致继续录分,不一致进入新的录分|
+|+mode|int||是|录分模式
0-自主录分
1-交叉录分,需先输入录分的人员标识|
+|+questions|array||是|题目详情|
+|++max |int||是|可输入的最大值,<=100|
+|++digits|int||是|可输入的小数位数,范围0-2|
+|++startNo | string||是| 起始题号,暂只支持一级题号,范围1-255|
+|++count | int||是| 相同参数的题目数量,>0
注意:总题数最多支持200题|
+
+- **示例代码**
+```json
+{
+ "fun":"startKpScoreInput",
+ "dataTag":"1",
+ "data":{
+ "mode": 0,
+ "examNo": 0,
+ "questions": [{
+ //题号1 到 2 共2题,单题满分10分
+ "max":10,
+ "digits":1,
+ "startNo": "1",
+ "count":2
+ }, {
+ //题号3到6 共4道题,单题满分5
+ "max":5,
+ "digits":0,
+ "startNo": "3",
+ "count":4
+ }]
+ }
+}
+```
+
+##### [stopKpVote](#stopkpvote)
+停止自主录分
+
+#### 事件
+##### [sEvtStateCode](#sevtstatecode)
+发送指令后返回接收状态
+
+##### fEvtKpScore
+- **主题**:/basestation/\${baseSN}/receive
+- **功能描述**:返回键盘提交录分信息
+- **参数说明**
+
+|参数名|类型|限制|非空|说明|
+|---|---|---|---|---|
+|fun|string|-|是|指令名称|
+|dataTag|string|-|否|数据包标识,可为空字符串|
+|data|array|-|是|传送参数的对象数组|
+|++keySn|string||是|键盘SN|
+|++keyValue|string||是|键盘提交的分值,1:10;2:0表示第1题提交10分,第二题提交0分|
+|++keyTime|double||是|录分时间,从启动录分开始计算,单位秒|
+|++voltage|double||是|键盘电量|
+|++retryCount|int||是|键盘提交数据的重发次数|
+
+- **示例代码**
+```json
+{
+ "fun":"fEvtKpScore",
+ "dataTag":"1",
+ "data": [{
+ "keySn": "1234567890",
+ "keyValue":"1:8;2:7.5;3:2;4:3",
+ "keyTime":3.2
+ },
+ {
+ "keySn": "1234567891",
+ "keyValue":"1:10;2:0",
+ "keyTime":3.5
+ }
+ ]
+}
```
\ No newline at end of file
diff --git a/通讯协议-SDK应用部分.md b/通讯协议-SDK应用部分.md
index 828b192..c7cc114 100644
--- a/通讯协议-SDK应用部分.md
+++ b/通讯协议-SDK应用部分.md
@@ -8,7 +8,7 @@ WSCmdApp协议接口说明
-Ver5.1.10
+Ver5.1.11
@@ -24,7 +24,7 @@ Ver5.1.10
-二〇二四年九月
+二〇二四年十月
@@ -38,7 +38,7 @@ Ver5.1.10
起草人:陈定敏
-最新版本作者: 陈定敏
+最新版本作者: 刘琴
| 文档版本 | 日期 | 作者 | 版本说明 |
@@ -52,6 +52,8 @@ Ver5.1.10
|5.1.8| 2024年07月01日|陈定敏|1. 投票反馈数据增加电池状态|
|5.1.9| 2024年07月19日|陈定敏|1. 增加获取SDK版本接口|
|5.1.10| 2024年09月03日|陈定敏|1. 移去主动获取在线信息接口|
+|5.1.11| 2024年10月17日|刘琴|1. 增加设置基站容量的接口|
+|5.1.12| 2024年11月01日|刘琴|1. 修改writeKeyMessage接口中keySnList说明|
@@ -706,6 +708,7 @@ infos:{}
fun: "keyPadAuthorize" //
baseId: "1"//收到的基站ID
+keySnList:[{"keySn": "0112540402"}] //指定键盘SN,不可为空
params:{} //默认空
| **Json字段** | **字段含义** | **赋值及含义** |
@@ -3985,6 +3988,34 @@ params:{}//可不填
}
```
+写
+
+发送:
+
+fun: "writeBaseStationCapacity" //写基站容量
+baseId: 1//1~32 (必须指定基站)
+params:{"keypadNumber":"60","lock":"1"}//
+
+| **Json字段** | **字段含义** | **赋值及含义** |
+| --- | --- | --- |
+|keypadNumber|基站容量|基站键盘容量|
+|lock|是否锁定|现只支持设置1-锁定|
+
+
+指令样例:
+```json
+{
+ "fun": "writeBaseStationPairMode",
+ "baseId": 1,
+ "baseSn":"2023031402",
+ "params": {
+ "keypadNumber": "60",
+ "lock": "1"
+ },
+ "packetTag": "1"
+}
+```
+
返回
接收:
@@ -4601,7 +4632,7 @@ params:{} //数组对象,指定键盘需填
发送:
fun: "addWhiteList" //追加键盘
params:{} //键盘sn
-keySnList:[ "keySn":"2111120140"] //列表不能为空
+keySnList:[ {"keySn":"2111120140"} ] //列表不能为空
指令样例:
@@ -4650,8 +4681,7 @@ infos:{}//
发送:
fun: "delWhiteList" //踢出键盘,删除键盘
params:{} //键盘sn
-keySnList:[ "keySn":"2111120140"] //列表不能为空
-
+keySnList:[ {"keySn":"2111120140"} ] //列表不能为空
指令样例:
@@ -4889,13 +4919,13 @@ infos:{ }//返回基站
写
fun: "writeKeypadDevice" //写键盘外设,由led灯、蜂鸣器、马达组合
+keySnList:[{"keySn":"0007899478"}] //指定键盘SN列表,为空表示所有在线键盘
params:{} //
数组对象,对象中的默认值为空字符串,各类(led、beep、motor)外设字段都不设置,表示该类不设置
| **Json字段** | **字段含义** | **赋值及含义** |
| --- | --- | --- |
-| keySn | 键盘SN |空字符串,为所有在线键盘|
| ledTimes | Led灯闪烁次数 | 0~255 (0是马上灭,255是长亮)|
| ledOnTime | Led灯每次开时间 |0~255 (单位0.1s)|
| ledOffTime | Led灯每次关时间 |0~255 (单位0.1s,为0就是连续亮)|
@@ -5398,11 +5428,11 @@ infos:{"keySn":"1837454011","state":"OK"}//遥控键盘关机
写
fun: "writeKeyMessage" //写键盘短消息
+keySnList:[{"keySn":"0007899478"}] //指定键盘SN列表,为空表示所有在线键盘
params:{} // 数组对象,对象中的默认值为空字符串
| **Json字段** | **字段含义** | **赋值及含义** |
| --- | --- | --- |
-|keySn|键盘SN|空字符串,为所有在线键盘|
|txt|短消息内容|字符串最长40字节[20汉字]|
@@ -5523,7 +5553,6 @@ infos:{}//
| **Json字段** | **字段含义** | **赋值及含义** |
| --- | --- | --- |
-|keySn|键盘SN||
|state|返回信息|OK(成功)|
diff --git a/通讯协议-SDK应用部分[内部].md b/通讯协议-SDK应用部分[内部].md
index 3375210..a205f5f 100644
--- a/通讯协议-SDK应用部分[内部].md
+++ b/通讯协议-SDK应用部分[内部].md
@@ -8,7 +8,7 @@ WSCmdApp协议接口说明
-Ver5.1.9
+Ver5.1.11
@@ -24,7 +24,7 @@ Ver5.1.9
-二〇二三年十月
+二〇二四年十月
@@ -38,7 +38,7 @@ Ver5.1.9
起草人:陈定敏
-最新版本作者: 陈定敏
+最新版本作者: 刘琴
| 文档版本 | 日期 | 作者 | 版本说明 |
@@ -51,6 +51,9 @@ Ver5.1.9
|5.1.7| 2024年04月22日|陈定敏|1. 增加后台签到接口
2. 增加键盘最终提交状态接口|
|5.1.8| 2024年07月01日|陈定敏|1. 投票反馈数据增加电池状态|
|5.1.9| 2024年07月19日|陈定敏|1. 增加获取SDK版本接口|
+|5.1.10| 2024年09月03日|陈定敏|1. 外部版移去主动获取在线信息接口,版本号更新|
+|5.1.11| 2024年10月17日|刘琴|1. 增加设置基站容量的接口|
+|5.1.12| 2024年11月01日|刘琴|1. 修改writeKeyMessage接口中keySnList说明|
@@ -705,6 +708,7 @@ infos:{}
fun: "keyPadAuthorize" //
baseId: "1"//收到的基站ID
+keySnList:[{"keySn": "0112540402"}] //指定键盘SN,不可为空
params:{} //默认空
| **Json字段** | **字段含义** | **赋值及含义** |
@@ -4920,6 +4924,34 @@ params:{}//可不填
}
```
+写
+
+发送:
+
+fun: "writeBaseStationCapacity" //写基站容量
+baseId: 1//1~32 (必须指定基站)
+params:{"keypadNumber":"60","lock":"1"}//
+
+| **Json字段** | **字段含义** | **赋值及含义** |
+| --- | --- | --- |
+|keypadNumber|基站容量|基站键盘容量|
+|lock|是否锁定|现只支持设置1-锁定|
+
+
+指令样例:
+```json
+{
+ "fun": "writeBaseStationPairMode",
+ "baseId": 1,
+ "baseSn":"2023031402",
+ "params": {
+ "keypadNumber": "60",
+ "lock": "1"
+ },
+ "packetTag": "1"
+}
+```
+
返回
接收:
@@ -5536,7 +5568,7 @@ params:{} //数组对象,指定键盘需填
发送:
fun: "addWhiteList" //追加键盘
params:{} //键盘sn
-keySnList:[ "keySn":"2111120140"] //列表不能为空
+keySnList:[ {"keySn":"2111120140"} ] //列表不能为空
指令样例:
@@ -5585,8 +5617,7 @@ infos:{}//
发送:
fun: "delWhiteList" //踢出键盘,删除键盘
params:{} //键盘sn
-keySnList:[ "keySn":"2111120140"] //列表不能为空
-
+keySnList:[ {"keySn":"2111120140"} ] //列表不能为空
指令样例:
@@ -6062,13 +6093,13 @@ infos:{"bic":"A455", "pid": "EA10"}//
写
fun: "writeKeypadDevice" //写键盘外设,由led灯、蜂鸣器、马达组合
+keySnList:[{"keySn":"0007899478"}] //指定键盘SN列表,为空表示所有在线键盘
params:{} //
数组对象,对象中的默认值为空字符串,各类(led、beep、motor)外设字段都不设置,表示该类不设置
| **Json字段** | **字段含义** | **赋值及含义** |
| --- | --- | --- |
-| keySn | 键盘SN |空字符串,为所有在线键盘|
| ledTimes | Led灯闪烁次数 | 0~255 (0是马上灭,255是长亮)|
| ledOnTime | Led灯每次开时间 |0~255 (单位0.1s)|
| ledOffTime | Led灯每次关时间 |0~255 (单位0.1s,为0就是连续亮)|
@@ -6627,11 +6658,11 @@ infos:{"value":"0"}//10秒
写
fun: "writeKeyMessage" //写键盘短消息
+keySnList:[{"keySn":"0007899478"}] //指定键盘SN列表,为空表示所有在线键盘
params:{} // 数组对象,对象中的默认值为空字符串
| **Json字段** | **字段含义** | **赋值及含义** |
| --- | --- | --- |
-|keySn|键盘SN|空字符串,为所有在线键盘|
|txt|短消息内容|字符串最长40字节[20汉字]|
@@ -6887,7 +6918,6 @@ infos:{}//
| **Json字段** | **字段含义** | **赋值及含义** |
| --- | --- | --- |
-|keySn|键盘SN||
|state|返回信息|OK(成功)|
diff --git a/通讯协议-教育新版-基站部分.md b/通讯协议-教育新版-基站部分.md
index 26cd10b..adcfcd5 100644
--- a/通讯协议-教育新版-基站部分.md
+++ b/通讯协议-教育新版-基站部分.md
@@ -2093,7 +2093,7 @@ S5,电脑通知基站退出下载,基站通知所有(包括失败的)键
| 1 | BASECMD | 0xE1 基站管理类指令 |
| 2 | BASEID | 指定的基站编号,为0时候不指定 |
| 3 | CMDTYPE | 基站管理命令类型
22 基站下载多包 |
-| 4 | MODE | 1 进入或退出下载状态 |
+| 4 | MODE | 1 进入或退出下载状态
31后台静默升级|
| 5 | ID/SN | 1:2字节ID模式;
2:4字节SN;
3:6字节SN模式 |
| 6 | ~~NC~~ ||
| 7 | DCMD | 模式 1进入下载 0退出下载 |
@@ -2142,7 +2142,7 @@ S5,电脑通知基站退出下载,基站通知所有(包括失败的)键
| 1 | BASECMD | 0x61 基站管理类指令 |
| 2 | BASEID | 指定的基站编号,为0时候不指定 |
| 3 | CMDTYPE | 基站管理命令类型
22基站下载多包 |
-| 4 | DOWNCMD | 4 下载具体数据--16字节
6 下载具体数据—512字节每片段
7 下载具体数据---64字节(48字节有效,区别于4类型的16字节有效) 10 基站问64字节包(根据代码补充)
11 基站问512字节包(根据代码补充)
32 后台静默升级基站问64字节包(根据代码补充)等于普通模式的10
33 后台静默升级 载具体数据---64字节 等于普通模式7|
+| 4 | DOWNCMD | 4 下载具体数据--16字节
6 下载具体数据—512字节每片段
7 下载具体数据---64字节(48字节有效,区别于4类型的16字节有效) 10 基站问64字节包(根据代码补充)
11 基站问512字节包(根据代码补充)
37 后台静默升级;sdk向基站发送固件数据(相当于普通模式下7)|
| 5 | DOWNTYPE | 多包类型
30 短信广播信息(SDK组包模式) |
| 6 | DOWNID | 数据包标识码(DOWNTYPE=30时,是总包数)
文件下载模式时候是最高位地址 V4.52
由于非文件下载模式PACKH加上PACKL,只能下载65536字节,文件下载模式为支持大文件,用DOWNID作为高位地址,可以下载16384K字节 |
| 7 | PACKH | 数据段编号,0-255 |
@@ -2158,7 +2158,7 @@ S5,电脑通知基站退出下载,基站通知所有(包括失败的)键
| 1 | BASECMD | 0xE1 基站管理类指令 |
| 2 | BASEID | 指定的基站编号,为0时候不指定 |
| 3 | CMDTYPE | 基站管理命令类型
22基站下载多包 |
-| 4 | MODE | 4下载具体数据的应答或请求具体数据
6 下载具体数据的应答或请求传输—512字节每片段
7 下载具体数据(48字节有效) |
+| 4 | MODE | 4下载具体数据的应答或请求具体数据
6 下载具体数据的应答或请求传输—512字节每片段
7 下载具体数据(48字节有效)
37 后台静默升级; |
| 5 | DOWNTYPE | 多包类型 |
| 6 | DOWNID | 数据包标识码
文件下载模式时候是最高位地址 V4.52
由于非文件下载模式PACKH加上PACKL,只能下载65536字节,文件下载模式为支持大文件,用DOWNID作为高位地址,可以下载16384K字节 |
| 7 | PACKH | 数据段编号,0-255 |
@@ -2202,12 +2202,13 @@ S5,电脑通知基站退出下载,基站通知所有(包括失败的)键
| 1 | BASECMD | 0xE1 基站管理类指令 |
| 2 | BASEID | 指定的基站编号,为0时候不指定 |
| 3 | CMDTYPE | 基站管理命令类型
22基站下载多包 |
-| 4 | MODE | 6 上报状态
9 上报状态,告诉sdk,底层键盘固件升级完成
10 向sdk请求(索要)数据包(数据包以1K为单位)byte6之后的数据无效 |
+| 4 | MODE | 6 上报状态
9 上报状态,告诉sdk,底层键盘固件升级完成
10 向sdk请求(索要)数据包(数据包以1K为单位)byte6之后的数据无效
39 后台静默升级 上报状态(相当于普通模式下的9)
38 后台静默升级 向sdk请求(索要)数据包(数据包以1K为单位)(相当于普通模式下的10) |
| 5 | PACKH | 数据段编号,0-255
申请的数据包号PACK\_H |
| 6 | PACKL | 数据片编号, 0-15
申请的数据包号PACK\_L |
| 7 | Update status | 2-失败;(包括通知键盘进入下载和数据块下载失败;)
1-全部完成,电脑可以下一个流程(包括本次256字节成功、键盘进入下载、键盘退出下载) |
| 8-13 | Keypad ID/SN | ID/SN 号,固定6字节, 高位在前 |
-| 14-24 | NC | 参数无意义 |
+| 14 | HW |键盘硬件版本 |
+| 15-24 | NC | 参数无意义 |
电脑确认:
@@ -2746,11 +2747,13 @@ step3:sdk询问 数据是否接收正确;基站回复,如果不正确 sdk重
| 2 | BASEID | 指定的基站编号,为0时候不指定 |
| 3 | CMDTYPE | 基站管理命令类型41 sdk下载多包 |
| 4 | type | 1 要下载的数据信息 |
-| 5 | DATA-type | 1:基站固件升级
2:键盘固件升级;
3:快速下发;
4:广播 |
+| 5 | DATA-type | 1:基站固件升级
2:键盘固件升级;
3:快速下发;
4:广播
32:后台静默升级键盘固件;|
| 6-9 | DATA_total| 数据总字节数 高位在前 |
| 10-11 | DATA crc | 数据crc 高位在前|
| 12-13 | byte per PACK |高位在前 每包数据最大字节长度:64... |
| other | default | |
+
+
基站应答:
| **字节** | **标识符** | **描述** |
| --- | --- | --- |
@@ -2773,11 +2776,12 @@ step3:sdk询问 数据是否接收正确;基站回复,如果不正确 sdk重
| 2 | BASEID | 指定的基站编号,为0时候不指定 |
| 3 | CMDTYPE | 基站管理命令类型41 sdk下载多包 |
| 4 | type | 2 询问基站 |
-| 5 | DATA-type | 1:基站固件升级
2:键盘固件升级;
3:快速下发;
4:广播 |
+| 5 | DATA-type | 1:基站固件升级
2:键盘固件升级;
3:快速下发;
4:广播
32:后台静默升级键盘固件;|
| 6-9 | DATA_total| 数据总字节数 高位在前|
| 10-11 | DATA crc | 数据crc 高位在前|
| 12-13 | byte per PACK |高位在前 每包数据最大字节长度:64 |
| other | default | |
+
基站应答:
| **字节** | **标识符** | **描述** |
| --- | --- | --- |