Commit 74a79e8df9de116672e4e51753f6d873d0e0f9c9

Authored by 肖翔
2 parents 6a3db4c4 ee565be4

Merge branch 'master' of http://120.78.57.84/lee/Protocol

通讯协议-B200W-MQTT协议[内部].md
... ... @@ -66,8 +66,6 @@
66 66 }
67 67 ```
68 68  
69   -<font color="red">注意:基站接收指令数据单次不超过2K长度,在指定键盘发送指令时,如果指令长度超出限制,建议将指令进行拆分,分次发送,如果是所有键盘执行的指令,可将keySns设为空数组不使用指定键盘的模式</font>
70   -
71 69 |参数 |说明 |约束|
72 70 |---|---|---|
73 71 |fun| 指令或事件名称||
... ... @@ -117,7 +115,7 @@
117 115 ||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)||
118 116 |网络设置 - MQTT参数|获取MQTT参数|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)|
119 117 ||设置MQTT参数|[setBsMqttParams](#setbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)||
120   -|基站维护|获取基站日志信息|[getBsLogInfo](#getbsloginfo)|[sEvtStateCode](#sevtstatecode)<br>[fEvtBsLogInfo](#fevtbsloginfo)<font color="red">(内)</font>|
  118 +|基站维护|<font color="red">获取基站日志信息(内)</font>|[getBsLogInfo](#getbsloginfo)|[sEvtStateCode](#sevtstatecode)<br>[fEvtBsLogInfo](#fevtbsloginfo)|
121 119 ||基站软复位|[resetBsSystem](#resetbssystem)|[sEvtStateCode](#sevtstatecode)<br>[sEvtBsConnectState](#sevtbsconnectstate)|
122 120 ||基站断电复位|[resetBsPower](#resetbspower)|[sEvtStateCode](#sevtstatecode)<br>[sEvtBsConnectState](#sevtbsconnectstate)|
123 121 |基站升级|<font color="red">开启基站升级(内)|[startBsUpdate](#startbsupdate)|[sEvtStateCode](#sevtstatecode)<br>[fEvtBsUpateState](#fevtbsupatestate)<br>[fEvtBsUpdateProgress](#fevtbsupdateprogress)|
... ... @@ -164,6 +162,8 @@
164 162 ||停止标准测验|[stopKpExam](#stopkpexam)|[sEvtStateCode](#sevtstatecode)|
165 163 ||刷新作答数据|[rtGetKpExamData](#rtgetkpexamdata)|[fEvtKpExam](#fevtkpexam)|
166 164 ||允许键盘提交后退回修改|[rtAllowEdited](#rtkpallowedited)|[sEvtStateCode](#sevtstatecode)<br>[fEvtFinalSubmit](#fevtfinalsubmit)|
  165 +|多科测验|启动多科测验|[startKpMultiExam](#startkpmultiexam)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpExam](#fevtkpexam)<br>[fEvtFinalSubmit](#fevtfinalsubmit)|
  166 +||停止标准测验|[stopKpMultiExam](#stopkpmultiexam)|[sEvtStateCode](#sevtstatecode)|
167 167  
168 168 ## 公共事件
169 169 ### sEvtBsConnectState
... ... @@ -1506,7 +1506,7 @@
1506 1506 ### 基站维护
1507 1507 #### 方法
1508 1508 ##### getBsLogInfo
1509   -- **主题**:/client/\${baseSN}/send
  1509 +- **主题**:<sapn class="yellowFill">/manage/\${baseSN}/receive</span>
1510 1510 - **功能描述**:获取基站日志,用于出现故障需要排查问题时获取基站内部日志记录
1511 1511 - **参数说明**
1512 1512  
... ... @@ -1525,7 +1525,7 @@
1525 1525  
1526 1526 ##### resetBsSystem
1527 1527 - **主题**:/client/\${baseSN}/send
1528   -- **功能描述**:软复位基站(公共主题可用,但不体现在外部版本协议中
  1528 +- **功能描述**:软复位基站<sapn class="yellowFill">(公共主题可用,但不体现在外部版本协议中</span>
1529 1529 - **参数说明**
1530 1530  
1531 1531 |参数名|类型|限制|是否必填|说明|
... ... @@ -1543,7 +1543,7 @@
1543 1543  
1544 1544 ##### resetBsPower
1545 1545 - **主题**:/client/\${baseSN}/send
1546   -- **功能描述**:断电复位基站(公共主题可用,但不体现在外部版本协议中)
  1546 +- **功能描述**:断电复位基站<sapn class="yellowFill">(公共主题可用,但不体现在外部版本协议中)</span>
1547 1547 - **参数说明**
1548 1548  
1549 1549 |参数名|类型|限制|是否必填|说明|
... ... @@ -1562,6 +1562,7 @@
1562 1562 #### 事件
1563 1563 ##### [sEvtStateCode](#sevtstatecode)
1564 1564 返回指令的接收状态
  1565 +注意:内部指令的接收状态需从**主题: <sapn class="yellowFill">/manage/\${baseSN}/receive</span>** 返回
1565 1566  
1566 1567 ##### [sEvtBsConnectState](#sevtbsconnectstate)
1567 1568 复位基站后,基站重新连接成功后上报
... ... @@ -1865,6 +1866,9 @@
1865 1866 |data|array|-|是|传送参数的对象数组|
1866 1867 |++keySn|string||是|设置提示语信息的键盘SN|
1867 1868 |++state|string||是|设置的提示语是否成功<br>0 - 成功<br>1 - 失败|
  1869 +
  1870 +- **示例代码**
  1871 +
1868 1872 ```json
1869 1873 {
1870 1874 "fun":"fEvtSetKpUserPrompt",
... ... @@ -2406,7 +2410,7 @@
2406 2410 "dataTag":"1",
2407 2411 "data": {
2408 2412 "keySn":"1479824643",
2409   - "state":1
  2413 + "state":"1"
2410 2414 }
2411 2415 }
2412 2416 ```
... ... @@ -2772,7 +2776,7 @@
2772 2776 |+examNo|int||是|0-9999<br>=0,新的测验<br>>0时,与上次启动卷号一致继续测验,不一致进入新的测验|
2773 2777 |+mode|int||是|显示模式<br>0-不显示开头<br>1-显示“Q”开头<br>2-显示“题”开头|
2774 2778 |+questions|array||是|题目详情|
2775   -|++symbol | string||是 | 题号前缀,可为空 |
  2779 +|++symbol | string||是 | 题号前缀,分级标识为-,可为空,为空表示1级大题<br><font color="red">最多为三级题号,即最多可以设为x-x-</font>|
2776 2780 |++quesType | int||是| 题目类型<br>1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
2777 2781 |++option |int||是 |选项数目<br> quesType = 1 有效。<br>quesType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
2778 2782 |++startNo | int||是| 起始题号 |
... ... @@ -2937,7 +2941,7 @@
2937 2941 |dataTag|string|-|否|数据包标识,可为空字符串|
2938 2942 |data|array|-|是|传送参数的对象数组|
2939 2943 |++keySn|string||是|键盘SN|
2940   -|++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B|
  2944 +|++keyValue|string||是|键盘提交的按键值,1:A;2:B表示第1题提交A,第二题提交B<br><font color="red">注意:如启动的是多科测验,键盘提交的题目序号对应启动时下发的题目总序号,不按科目区分</font>|
2941 2945 |++keyTime|double||是|答题时间,从启动开始计算,单位秒|
2942 2946  
2943 2947 - **示例代码**
... ... @@ -2983,4 +2987,144 @@
2983 2987 "keyTime":3.2
2984 2988 }]
2985 2989 }
2986   -```
2987 2990 \ No newline at end of file
  2991 +```
  2992 +
  2993 +### 多科测验
  2994 +#### 方法
  2995 +##### startKpMultiExam
  2996 +- **主题**:/client/\${baseSN}/send
  2997 +- **功能描述**:启动多科测验
  2998 +- **参数说明**
  2999 +
  3000 +|参数名|类型|限制|是否必填|说明|
  3001 +|---|---|---|---|---|
  3002 +|fun|string|-|是|指令名称|
  3003 +|dataTag|string|-|否|数据包标识,可为空字符串|
  3004 +|data|object|-|是|传送参数的对象|
  3005 +|+examNo|int||是|0-9999<br>=0,新的测验<br>>0时,与上次启动卷号一致继续测验,不一致进入新的测验|
  3006 +|+mode|int||是|显示模式<br>0-不显示开头<br>1-显示“Q”开头<br>2-显示“题”开头|
  3007 +|+questions|array||是|题目详情|
  3008 +|++subject | int||是 | 科目序号,1-9,对应键盘中内置的科目1-9<br>键盘答题时可选择科目切换答题|
  3009 +|++symbol | string||是 | 题号前缀,分级标识为-,可为空,为空表示1级题目<br><font color="red">多科测验题目编号最多只能两级(即symbol可设置为空或x-),超出无效</font>|
  3010 +|++quesType | int||是| 题目类型<br>1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
  3011 +|++option |int||是 |选项数目<br> quesType = 1 有效。<br>quesType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
  3012 +|++startNo | int||是| 起始题号 |
  3013 +|++count | int||是| 题目数量 |
  3014 +|+simParams|object||否|内部模拟测试参数设置对象|
  3015 +|++answer|array||是|预设提交的按键值<br>格式为"单选题答案,多选题答案;<br>数字题答案;判断题答案(1对2错)"<br>如["A","ABCD","10","1"]|
  3016 +
  3017 +- **示例代码**
  3018 +```json
  3019 +//自定义题号
  3020 +{
  3021 + "fun":"startKpMultiExam",
  3022 + "dataTag":"1",
  3023 + "data":{
  3024 + "mode": 0,
  3025 + "examNo": 1,
  3026 + "questions": [{
  3027 + "subject":1, //科目1
  3028 + //题号1-1 到1-10 共10题单选
  3029 + "symbol": "1-",
  3030 + "quesType": 1,
  3031 + "startNo": 1,
  3032 + "count":10
  3033 + }, {
  3034 + "subject":2, //科目2
  3035 + //题号2-2和2-3共两题 多选题,5个选项
  3036 + "symbol": "2-",
  3037 + "quesType": 2,
  3038 + "option": 5,
  3039 + "startNo": 2,
  3040 + "count":2
  3041 + }, {
  3042 + "subject":3, //科目3
  3043 + //题号3-1和3-2共两道数字题
  3044 + "symbol": "3-",
  3045 + "quesType": 3,
  3046 + "startNo": 1,
  3047 + "count":2
  3048 + }, {
  3049 + "subject":1, //科目1
  3050 + //题号4和5 ,判断题
  3051 + "symbol": "",
  3052 + "quesType": 4,
  3053 + "startNo": 4,
  3054 + "count":2
  3055 + }],
  3056 + "simParams":{
  3057 + "answer":["A","ABCD","10","1"]
  3058 + }
  3059 + }
  3060 +}
  3061 +
  3062 +//显示Q开头
  3063 +{
  3064 + "fun":"startKpMultiExam",
  3065 + "dataTag":"1",
  3066 + "data":{
  3067 + "mode": 1,
  3068 + "examNo": 1,
  3069 + "questions": [{
  3070 + "subject":1,
  3071 + //Q1-Q20,单选题
  3072 + "symbol": "",
  3073 + "quesType": 1,
  3074 + "startNo": 1,
  3075 + "count":20
  3076 + }],
  3077 + "simParams":{
  3078 + "answer":["A","","",""]
  3079 + }
  3080 + }
  3081 +}
  3082 +
  3083 +//显示题开头
  3084 +{
  3085 + "fun":"startKpMultiExam",
  3086 + "dataTag":"1",
  3087 + "data":{
  3088 + "mode": 2,
  3089 + "examNo": 1,
  3090 + "questions": [{
  3091 + "subject":1,
  3092 + //题1-题20,单选题
  3093 + "symbol": "",
  3094 + "quesType": 1,
  3095 + "startNo": 1,
  3096 + "count":20
  3097 + }],
  3098 + "simParams":{
  3099 + "answer":["A","","",""]
  3100 + }
  3101 + }
  3102 +}
  3103 +```
  3104 +
  3105 +##### stopKpMultiExam
  3106 +- **主题**:/client/\${baseSN}/send
  3107 +- **功能描述**:停止多科测验
  3108 +- **参数说明**
  3109 +
  3110 +|参数名|类型|限制|是否必填|说明|
  3111 +|---|---|---|---|---|
  3112 +|fun|string|-|是|指令名称|
  3113 +|dataTag|string|-|否|数据包标识,可为空字符串|
  3114 +
  3115 +- **示例代码**
  3116 +```json
  3117 +{
  3118 + "fun":"stopKpMultiExam",
  3119 + "dataTag":"1"
  3120 +}
  3121 +```
  3122 +
  3123 +#### 事件
  3124 +##### [sEvtStateCode](#sevtstatecode)
  3125 +发送指令后返回接收状态
  3126 +
  3127 +##### [fEvtKpExam](#fevtkpexam)
  3128 +返回测验中键盘提交答题数据
  3129 +
  3130 +##### [fEvtFinalSubmit](#fevtfinalsubmit)
  3131 +返回键盘手动交卷标识
2988 3132 \ No newline at end of file
... ...
通讯协议-B200W-MQTT协议[外].md
... ... @@ -59,6 +59,8 @@
59 59 }
60 60 ```
61 61  
  62 +<font color="red">注意:基站接收指令数据单次不超过2K长度,在指定键盘发送指令时,如果指令长度超出限制,建议将指令进行拆分,分次发送,如果是所有键盘执行的指令,可将keySns设为空数组不使用指定键盘的模式</font>
  63 +
62 64 |参数 |说明 |约束|
63 65 |---|---|---|
64 66 |fun| 指令或事件名称||
... ... @@ -88,11 +90,17 @@
88 90 ||设置基站登录名称|[setBsSSID](#setbsssid)|[fEvtBsSSID](#fevtbsssid)||
89 91 |键盘统一设置 - 键盘语言|获取键盘语言|[getBsKpLanguage](#getbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)|
90 92 ||设置键盘语言|[setBsKpLanguage](#setbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)||
  93 +|配对模式 - 快速配对|启动基站快速配对|[startBsFastPair](#startbsfastpair)|[sEvtStateCode](#sevtstatecode)<br>[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
  94 +||停止基站快速配对|[stopBsFastPair](#stopbsfastpair)|[sEvtStateCode](#sevtstatecode)|
  95 +|白名单模式 - 白名单管理|获取白名单|[getBsWhitelist](#getbswhitelist)|[fEvtBsWhitelist](#fevtbswhitelist)|
  96 +||设置白名单|[setBsWhitelist](#setbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtSetBsWhitelist](#fevtsetbswhitelist)|
  97 +||清空白名单|[clearBsWhitelist](#clearbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtBsWhitelist](#fevtbswhitelist)|
  98 +||增加白名单|[addBsWhitelist](#addbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtAddBsWhitelist](#fevtaddbswhitelist)<br>[fEvtBsWhitelist](#fevtbswhitelist)|
  99 +||删除白名单|[delBsWhitelist](#delbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtDelBsWhitelist](#fevtdelbswhitelist)<br>[fEvtBsWhitelist](#fevtbswhitelist)|
91 100 |网络设置 - TCP/IP参数|获取TCP/IP参数|[getBsTcpipParams](#getbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)|
92 101 ||设置TCP/IP参数|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)||
93 102 |网络设置 - MQTT参数|获取MQTT参数|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)|
94 103 ||设置MQTT参数|[setBsMqttParams](#setbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)||
95   -|基站维护|获取基站日志信息|[getBsLogInfo](#getbsloginfo)|[sEvtStateCode](#sevtstatecode)|
96 104 ### 键盘管理
97 105 |功能归类|功能|API指令|指令事件|
98 106 |---|---|---|---|
... ... @@ -108,6 +116,8 @@
108 116 ### 签到
109 117 |功能归类|功能|API指令|指令事件|
110 118 |---|---|---|---|
  119 +|同步签到|启动同步签到|[startKpSignIn](#startkpsignin)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpSignIn](#fevtkpsignin)|
  120 +||停止同步签到|[stopKpSignIn](#stopkpsignin)|[sEvtStateCode](#sevtstatecode)|
111 121 |随时签到|启动随时签到|[rtStartKpSignIn](#rtstartkpsignin)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpSignIn](#fevtkpsignin)|
112 122 ||停止随时签到|[rtStopKpSignIn](#rtstopkpsignin)|[sEvtStateCode](#sevtstatecode)|
113 123 ||实时PIN签到授权|[rtSetKpLoginAllowed](#rtsetkploginallowed)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpLoginAllowed](#fevtkploginallowed)|
... ... @@ -773,6 +783,262 @@
773 783 }
774 784 }
775 785 ```
  786 +### 配对模式
  787 +#### 方法
  788 +##### startBsFastPair
  789 +- **主题**:/client/\${baseSN}/send
  790 +- **功能描述**:启动快速配对,键盘配对成功返回键盘信息 [sEvtBsKpOnlineMsg](#sevtbskponlinemsg)
  791 +- **参数说明**
  792 +
  793 +|参数名|类型|限制|是否必填|说明|
  794 +|---|---|---|---|---|
  795 +|fun|string|-|是|指令名称|
  796 +|dataTag|string|-|否|数据包标识,可为空字符串|
  797 +
  798 +- **示例代码**
  799 +```json
  800 +{
  801 + "fun":"startBsFastPair",
  802 + "dataTag":"1"
  803 +}
  804 +```
  805 +##### stopBsFastPair
  806 +- **主题**:/client/\${baseSN}/send
  807 +- **功能描述**:停止快速配对
  808 +- **参数说明**
  809 +
  810 +|参数名|类型|限制|是否必填|说明|
  811 +|---|---|---|---|---|
  812 +|fun|string|-|是|指令名称|
  813 +|dataTag|string|-|否|数据包标识,可为空字符串|
  814 +
  815 +- **示例代码**
  816 +```json
  817 +{
  818 + "fun":"stopBsFastPair",
  819 + "dataTag":"1"
  820 +}
  821 +```
  822 +#### 事件
  823 +##### [sEvtStateCode](#sevtstatecode)
  824 +发送指令后返回此事件
  825 +
  826 +##### [sEvtBsKpOnlineMsg](#sevtbskponlinemsg)
  827 +键盘配对成功后在线返回此事件
  828 +
  829 +### 白名单模式
  830 +#### 方法
  831 +##### getBsWhitelist
  832 +- **主题**:/client/\${baseSN}/send
  833 +- **功能描述**:获取基站白名单列表
  834 +- **参数说明**
  835 +
  836 +|参数名|类型|限制|是否必填|说明|
  837 +|---|---|---|---|---|
  838 +|fun|string|-|是|指令名称|
  839 +|dataTag|string|-|否|数据包标识,可为空字符串|
  840 +
  841 +- **示例代码**
  842 +```json
  843 +{
  844 + "fun":"getBsWhitelist",
  845 + "dataTag":"1"
  846 +}
  847 +```
  848 +##### setBsWhitelist
  849 +- **主题**:/client/\${baseSN}/send
  850 +- **功能描述**:设置基站白名单列表,将基站白名单替换为写入的键盘SN列表
  851 +- **参数说明**
  852 +
  853 +|参数名|类型|限制|是否必填|说明|
  854 +|---|---|---|---|---|
  855 +|fun|string|-|是|指令名称|
  856 +|dataTag|string|-|否|数据包标识,可为空字符串|
  857 +|data|object|-|是|传送参数的对象|
  858 +|+keySns|array|-|是|待写入的键盘SN数组,最多不超过200<br>键盘SN为10位数字|
  859 +
  860 +- **示例代码**
  861 +```json
  862 +{
  863 + "fun":"setBsWhitelist",
  864 + "dataTag":"1",
  865 + "data":{
  866 + "keySns":["2024021001","2024021002","2024021003","2024021004"]
  867 + }
  868 +}
  869 +```
  870 +##### clearBsWhitelist
  871 +- **主题**:/client/\${baseSN}/send
  872 +- **功能描述**:清空基站白名单列表
  873 +- **参数说明**
  874 +
  875 +|参数名|类型|限制|是否必填|说明|
  876 +|---|---|---|---|---|
  877 +|fun|string|-|是|指令名称|
  878 +|dataTag|string|-|否|数据包标识,可为空字符串|
  879 +
  880 +- **示例代码**
  881 +```json
  882 +{
  883 + "fun":"clearBsWhitelist",
  884 + "dataTag":"1"
  885 +}
  886 +```
  887 +##### addBsWhitelist
  888 +- **主题**:/client/\${baseSN}/send
  889 +- **功能描述**:添加键盘至基站白名单列表
  890 +- **参数说明**
  891 +
  892 +|参数名|类型|限制|是否必填|说明|
  893 +|---|---|---|---|---|
  894 +|fun|string|-|是|指令名称|
  895 +|dataTag|string|-|否|数据包标识,可为空字符串|
  896 +|data|object|-|是|传送参数的对象|
  897 +|+keySns|array|-|是|待添加的键盘SN列表<br>键盘SN为10位数字|
  898 +
  899 +- **示例代码**
  900 +```json
  901 +{
  902 + "fun":"addBsWhitelist",
  903 + "dataTag":"1",
  904 + "data":{
  905 + "keySns":["2024021001"]
  906 + }
  907 +}
  908 +```
  909 +##### delBsWhitelist
  910 +- **主题**:/client/\${baseSN}/send
  911 +- **功能描述**:从基站白名单列表中删除键盘
  912 +- **参数说明**
  913 +
  914 +|参数名|类型|限制|是否必填|说明|
  915 +|---|---|---|---|---|
  916 +|fun|string|-|是|指令名称|
  917 +|dataTag|string|-|否|数据包标识,可为空字符串|
  918 +|data|object|-|是|传送参数的对象|
  919 +|+keySns|array|-|是|待删除的键盘SN列表<br>键盘SN为10位数字|
  920 +
  921 +- **示例代码**
  922 +```json
  923 +{
  924 + "fun":"delBsWhitelist",
  925 + "dataTag":"1",
  926 + "data":{
  927 + "keySns":["2024021001"]
  928 + }
  929 +}
  930 +```
  931 +#### 事件
  932 +##### [sEvtStateCode](#sevtstatecode)
  933 +发送指令后返回此事件
  934 +
  935 +##### fEvtBsWhitelist
  936 +- **主题**:/basestation/\${baseSN}/receive
  937 +- **功能描述**:返回基站白名单列表
  938 +- **参数说明**
  939 +
  940 +|参数名|类型|限制|非空|说明|
  941 +|---|---|---|---|---|
  942 +|fun|string|-|是|指令名称|
  943 +|dataTag|string|-|否|数据包标识,可为空字符串|
  944 +|data|object|-|是|传送参数的对象|
  945 +|+keySns|array||是|基站当前的白名单列表|
  946 +
  947 +- **示例代码**
  948 +```Json
  949 +{
  950 + "fun":"fEvtBsWhitelist",
  951 + "dataTag":"1",
  952 + "data":{
  953 + "keySns":["2024021001","2024021002","2024021003","2024021004"]
  954 + }
  955 +}
  956 +```
  957 +
  958 +##### fEvtSetBsWhitelist
  959 +- **主题**:/basestation/\${baseSN}/receive
  960 +- **功能描述**:返回设置白名单状态
  961 +- **参数说明**
  962 +
  963 +|参数名|类型|限制|非空|说明|
  964 +|---|---|---|---|---|
  965 +|fun|string|-|是|指令名称|
  966 +|dataTag|string|-|否|数据包标识,可为空字符串|
  967 +|data|array|-|是|传送参数的对象数组|
  968 +|++keySns|array||是|键盘SN数组|
  969 +|++state|int||是|键盘SN的写入状态 <br>0-写入成功<br> 1-写入失败|
  970 +
  971 +- **示例代码**
  972 +```Json
  973 +{
  974 + "fun":"fEvtSetBsWhitelist",
  975 + "dataTag":"1",
  976 + "data":[{
  977 + "keySns":["2024021001","2024021002"],
  978 + "state":0
  979 + },{
  980 + "keySns":["1211"],
  981 + "state":1
  982 + }]
  983 +}
  984 +```
  985 +
  986 +##### fEvtAddBsWhitelist
  987 +- **主题**:/basestation/\${baseSN}/receive
  988 +- **功能描述**:返回增加键盘状态
  989 +- **参数说明**
  990 +
  991 +|参数名|类型|限制|非空|说明|
  992 +|---|---|---|---|---|
  993 +|fun|string|-|是|指令名称|
  994 +|dataTag|string|-|否|数据包标识,可为空字符串|
  995 +|data|array|-|是|传送参数的对象数组|
  996 +|++keySns|array||是|键盘SN数组|
  997 +|++state|int||是|键盘的增加状态 <br>0-增加成功<br> 1-增加失败|
  998 +
  999 +- **示例代码**
  1000 +```Json
  1001 +{
  1002 + "fun":"fEvtAddBsWhitelist",
  1003 + "dataTag":"1",
  1004 + "data":[{
  1005 + "keySns":["2024021001","2024021002"],
  1006 + "state":0
  1007 + },{
  1008 + "keySns":["1211"],
  1009 + "state":1
  1010 + }]
  1011 +}
  1012 +```
  1013 +
  1014 +##### fEvtDelBsWhitelist
  1015 +- **主题**:/basestation/\${baseSN}/receive
  1016 +- **功能描述**:返回删除键盘状态
  1017 +- **参数说明**
  1018 +
  1019 +|参数名|类型|限制|非空|说明|
  1020 +|---|---|---|---|---|
  1021 +|fun|string|-|是|指令名称|
  1022 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1023 +|data|array|-|是|传送参数的对象数组|
  1024 +|++keySns|array||是|键盘SN数组|
  1025 +|++state|int||是|键盘的删除状态 <br>0-删除成功<br> 1-删除失败|
  1026 +
  1027 +- **示例代码**
  1028 +```Json
  1029 +{
  1030 + "fun":"fEvtDelBsWhitelist",
  1031 + "dataTag":"1",
  1032 + "data":[{
  1033 + "keySns":["2024021002"],
  1034 + "state":0
  1035 + },{
  1036 + "keySns":["2024021001"],
  1037 + "state":1
  1038 + }]
  1039 +}
  1040 +```
  1041 +
776 1042 ### 网络参数设置
777 1043 #### 方法
778 1044 ##### getBsTcpipParams
... ... @@ -928,29 +1194,6 @@
928 1194 }
929 1195 }
930 1196 ```
931   -### 基站维护
932   -#### 方法
933   -##### getBsLogInfo
934   -- **主题**:/client/\${baseSN}/send
935   -- **功能描述**:获取基站日志,用于出现故障需要排查问题时获取基站内部日志记录
936   -- **参数说明**
937   -
938   -|参数名|类型|限制|是否必填|说明|
939   -|---|---|---|---|---|
940   -|fun|string|-|是|指令名称|
941   -|dataTag|string|-|否|数据包标识,可为空字符串|
942   -
943   -- **示例代码**
944   -```Json
945   -{
946   - "fun":"getBsLogInfo",
947   - "dataTag":"1"
948   -}
949   -```
950   -
951   -#### 事件
952   -##### [sEvtStateCode](#sevtstatecode)
953   -返回指令的接收状态
954 1197  
955 1198 ## 键盘管理
956 1199 ### 交互设置
... ... @@ -973,7 +1216,7 @@
973 1216 ```json
974 1217 //分别提示
975 1218 {
976   - "fun": "rtSetKpUserPrompt",
  1219 + "fun":"rtSetKpUserPrompt",
977 1220 "dataTag":"1",
978 1221 "data": [
979 1222 {
... ... @@ -988,7 +1231,7 @@
988 1231 }
989 1232 //统一提示
990 1233 {
991   - "fun": "rtSetKpUserPrompt",
  1234 + "fun":"rtSetKpUserPrompt",
992 1235 "dataTag":"1",
993 1236 "data": [
994 1237 {
... ... @@ -1019,7 +1262,7 @@
1019 1262  
1020 1263 ```json
1021 1264 {
1022   - "fun": "fEvtSetKpUserPrompt",
  1265 + "fun":"fEvtSetKpUserPrompt",
1023 1266 "dataTag":"1",
1024 1267 "data": [
1025 1268 {
... ... @@ -1053,7 +1296,7 @@
1053 1296  
1054 1297 ```json
1055 1298 {
1056   - "fun": "startGetKpOnline",
  1299 + "fun":"startGetKpOnline",
1057 1300 "dataTag":"1"
1058 1301 }
1059 1302 ```
... ... @@ -1072,7 +1315,7 @@
1072 1315  
1073 1316 ```json
1074 1317 {
1075   - "fun": "stopGetKpOnline",
  1318 + "fun":"stopGetKpOnline",
1076 1319 "dataTag":"1"
1077 1320 }
1078 1321 ```
... ... @@ -1157,7 +1400,7 @@
1157 1400  
1158 1401 ```json
1159 1402 {
1160   - "fun": "rtSetKpBindingInfo",
  1403 + "fun":"rtSetKpBindingInfo",
1161 1404 "dataTag":"1",
1162 1405 "data": [
1163 1406 {
... ... @@ -1188,7 +1431,7 @@
1188 1431  
1189 1432 ```json
1190 1433 {
1191   - "fun": "clearKpBindingInfo",
  1434 + "fun":"clearKpBindingInfo",
1192 1435 "dataTag":"1",
1193 1436 "data": {
1194 1437 "keySns":["1479824643","1479824644","1479824645"]
... ... @@ -1216,7 +1459,7 @@
1216 1459  
1217 1460 ```json
1218 1461 {
1219   - "fun": "fEvtKpBindingInfo",
  1462 + "fun":"fEvtKpBindingInfo",
1220 1463 "dataTag":"1",
1221 1464 "data": [
1222 1465 {
... ... @@ -1246,7 +1489,7 @@
1246 1489  
1247 1490 ```json
1248 1491 {
1249   - "fun": "fEvtClearKpBindingInfo",
  1492 + "fun":"fEvtClearKpBindingInfo",
1250 1493 "dataTag":"1",
1251 1494 "data": {
1252 1495 "state": "0"
... ... @@ -1254,6 +1497,75 @@
1254 1497 }
1255 1498 ```
1256 1499 ## 签到
  1500 +### 同步签到
  1501 +#### 方法
  1502 +##### startKpSignIn
  1503 +- **主题**:/client/\${baseSN}/send
  1504 +- **功能描述**:启动同步签到
  1505 +- **参数说明**
  1506 +
  1507 +|参数名|类型|限制|是否必填|说明|
  1508 +|---|---|---|---|---|
  1509 +|fun|string|-|是|指令名称|
  1510 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1511 +|data|object|-|是|传递参数的对象|
  1512 +|+mode|int|-|是|签到模式<br>1-按键签到,可指定按键<br>2-PIN码签到,可指定PIN码长度|
  1513 +|+allowModify |int|-|是 | 修改模式 <br> 0-不可修改 <br>1-可以修改(默认值)|
  1514 +|+pinLen |int|-|是| 可输入pin码的最大长度 1≤N≤14 |
  1515 +|+keyValue |int|-|是 | 指定按键键值 <br> 0: 未指定(OK键签到) <br>1-9: 按键1-9 <br> 10: 按键0 <br> 11: 上键 <br> 12: 下键 <br> 13: OK键 <br> 14: ESC键 <br> 15: Menu键 |
  1516 +|+tipTitle |string|-|否| 提示标题,长度最多不超过16个字节|
  1517 +
  1518 +- **示例代码**
  1519 +```Json
  1520 +//按键签到
  1521 +{
  1522 + "fun":"startKpSignIn",
  1523 + "dataTag":"1",
  1524 + "data":{
  1525 + "mode":1,
  1526 + "allowModify":1,
  1527 + "keyValue":5,
  1528 + "tip":"请按5键签到"
  1529 + }
  1530 +}
  1531 +
  1532 +//pin签到
  1533 +{
  1534 + "fun":"startKpSignIn",
  1535 + "dataTag":"1",
  1536 + "data":{
  1537 + "mode":2,
  1538 + "allowModify":1,
  1539 + "pinLen":6,
  1540 + "tip":"请输入PIN码签到"
  1541 + }
  1542 +}
  1543 +```
  1544 +
  1545 +##### stopKpSignIn
  1546 +- **主题**:/client/\${baseSN}/send
  1547 +- **功能描述**:停止同步签到
  1548 +- **参数说明**
  1549 +
  1550 +|参数名|类型|限制|是否必填|说明|
  1551 +|---|---|---|---|---|
  1552 +|fun|string|-|是|指令名称|
  1553 +|dataTag|string|-|否|数据包标识,可为空字符串|
  1554 +
  1555 +- **示例代码**
  1556 +```Json
  1557 +{
  1558 + "fun":"stopKpSignIn",
  1559 + "dataTag":"1"
  1560 +}
  1561 +```
  1562 +#### 事件
  1563 +##### [sEvtStateCode](#sevtstatecode)
  1564 +发送指令后返回接收状态
  1565 +
  1566 +##### [fEvtKpSignIn](#fevtkpsignin)
  1567 +返回键盘提交的签到数据
  1568 +
1257 1569 ### 随时签到
1258 1570 #### 方法
1259 1571 ##### rtStartKpSignIn
... ... @@ -1272,7 +1584,7 @@
1272 1584  
1273 1585 ```json
1274 1586 {
1275   - "fun": "rtStartKpSignIn",
  1587 + "fun":"rtStartKpSignIn",
1276 1588 "dataTag":"1",
1277 1589 "data":{
1278 1590 "mode":2
... ... @@ -1281,7 +1593,7 @@
1281 1593 ```
1282 1594 ##### rtStopKpSignIn
1283 1595 - **主题**:/client/\${baseSN}/send
1284   -- **功能描述**:停止签到绑定
  1596 +- **功能描述**:停止随时签到绑定
1285 1597 - **参数说明**
1286 1598  
1287 1599 |参数名|类型|限制|是否必填|说明|
... ... @@ -1293,7 +1605,7 @@
1293 1605  
1294 1606 ```json
1295 1607 {
1296   - "fun": "rtStopKpSignIn",
  1608 + "fun":"rtStopKpSignIn",
1297 1609 "dataTag":"1"
1298 1610 }
1299 1611 ```
... ... @@ -1314,7 +1626,7 @@
1314 1626  
1315 1627 ```json
1316 1628 {
1317   - "fun": "rtSetKpLoginAllowed",
  1629 + "fun":"rtSetKpLoginAllowed",
1318 1630 "dataTag":"1",
1319 1631 "data":{
1320 1632 "keySn":"1479824643",
... ... @@ -1344,7 +1656,7 @@
1344 1656  
1345 1657 ```json
1346 1658 {
1347   - "fun": "fEvtKpSignIn",
  1659 + "fun":"fEvtKpSignIn",
1348 1660 "dataTag":"1",
1349 1661 "data": [{
1350 1662 "keySn": "1234567890",
... ... @@ -1376,7 +1688,7 @@
1376 1688  
1377 1689 ```json
1378 1690 {
1379   - "fun": "fEvtKpLoginAllowed",
  1691 + "fun":"fEvtKpLoginAllowed",
1380 1692 "dataTag":"1",
1381 1693 "data": {
1382 1694 "keySn":"1479824643",
... ... @@ -1406,7 +1718,7 @@
1406 1718  
1407 1719 ```json
1408 1720 {
1409   - "fun": "startQATrueFalse",
  1721 + "fun":"startQATrueFalse",
1410 1722 "dataTag":"1",
1411 1723 "data":{
1412 1724 "keySns":[],
... ... @@ -1430,7 +1742,7 @@
1430 1742  
1431 1743 ```json
1432 1744 {
1433   - "fun": "stopQATrueFalse",
  1745 + "fun":"stopQATrueFalse",
1434 1746 "dataTag":"1"
1435 1747 }
1436 1748 ```
... ... @@ -1456,7 +1768,7 @@
1456 1768  
1457 1769 ```json
1458 1770 {
1459   - "fun": "fEvtQATrueFalse",
  1771 + "fun":"fEvtQATrueFalse",
1460 1772 "dataTag":"1",
1461 1773 "data": [{
1462 1774 "keySn": "1234567890",
... ... @@ -1490,7 +1802,7 @@
1490 1802  
1491 1803 ```json
1492 1804 {
1493   - "fun": "startQAChoice",
  1805 + "fun":"startQAChoice",
1494 1806 "dataTag":"1",
1495 1807 "data":{
1496 1808 "keySns":[],
... ... @@ -1517,7 +1829,7 @@
1517 1829  
1518 1830 ```json
1519 1831 {
1520   - "fun": "stopQAChoice",
  1832 + "fun":"stopQAChoice",
1521 1833 "dataTag":"1"
1522 1834 }
1523 1835 ```
... ... @@ -1543,7 +1855,7 @@
1543 1855  
1544 1856 ```json
1545 1857 {
1546   - "fun": "fEvtQAChoice",
  1858 + "fun":"fEvtQAChoice",
1547 1859 "dataTag":"1",
1548 1860 "data": [{
1549 1861 "keySn": "1234567890",
... ... @@ -1576,7 +1888,7 @@
1576 1888  
1577 1889 ```json
1578 1890 {
1579   - "fun": "startQANum",
  1891 + "fun":"startQANum",
1580 1892 "dataTag":"1",
1581 1893 "data":{
1582 1894 "keySns":[],
... ... @@ -1603,7 +1915,7 @@
1603 1915  
1604 1916 ```json
1605 1917 {
1606   - "fun": "stopQANum",
  1918 + "fun":"stopQANum",
1607 1919 "dataTag":"1"
1608 1920 }
1609 1921 ```
... ... @@ -1629,7 +1941,7 @@
1629 1941  
1630 1942 ```json
1631 1943 {
1632   - "fun": "fEvtQANum",
  1944 + "fun":"fEvtQANum",
1633 1945 "dataTag":"1",
1634 1946 "data":[{
1635 1947 "keySn": "1234567890",
... ... @@ -1659,7 +1971,7 @@
1659 1971  
1660 1972 ```json
1661 1973 {
1662   - "fun": "startQAQuicker",
  1974 + "fun":"startQAQuicker",
1663 1975 "dataTag":"1",
1664 1976 "data":{
1665 1977 "keySns":[],
... ... @@ -1683,7 +1995,7 @@
1683 1995  
1684 1996 ```json
1685 1997 {
1686   - "fun": "stopQAQuicker",
  1998 + "fun":"stopQAQuicker",
1687 1999 "dataTag":"1"
1688 2000 }
1689 2001 ```
... ... @@ -1709,7 +2021,7 @@
1709 2021  
1710 2022 ```json
1711 2023 {
1712   - "fun": "fEvtQAQuicker",
  2024 + "fun":"fEvtQAQuicker",
1713 2025 "dataTag":"1",
1714 2026 "data": [{
1715 2027 "keySn": "1234567890",
... ... @@ -1745,7 +2057,7 @@
1745 2057 ```json
1746 2058 //自定义题号
1747 2059 {
1748   - "fun": "startKpExam",
  2060 + "fun":"startKpExam",
1749 2061 "dataTag":"1",
1750 2062 "data":{
1751 2063 "mode": 0,
... ... @@ -1781,7 +2093,7 @@
1781 2093  
1782 2094 //显示Q开头
1783 2095 {
1784   - "fun": "startKpExam",
  2096 + "fun":"startKpExam",
1785 2097 "dataTag":"1",
1786 2098 "data":{
1787 2099 "mode": 1,
... ... @@ -1798,7 +2110,7 @@
1798 2110  
1799 2111 //显示题开头
1800 2112 {
1801   - "fun": "startKpExam",
  2113 + "fun":"startKpExam",
1802 2114 "dataTag":"1",
1803 2115 "data":{
1804 2116 "mode": 2,
... ... @@ -1827,7 +2139,7 @@
1827 2139  
1828 2140 ```json
1829 2141 {
1830   - "fun": "stopKpExam",
  2142 + "fun":"stopKpExam",
1831 2143 "dataTag":"1"
1832 2144 }
1833 2145 ```
... ... @@ -1847,7 +2159,7 @@
1847 2159  
1848 2160 ```json
1849 2161 {
1850   - "fun": "rtKpAllowEdited",
  2162 + "fun":"rtKpAllowEdited",
1851 2163 "dataTag":"1",
1852 2164 "data":{
1853 2165 "keySns":["1234567890","1234567891"]
... ... @@ -1876,7 +2188,7 @@
1876 2188  
1877 2189 ```json
1878 2190 {
1879   - "fun": "fEvtKpExam",
  2191 + "fun":"fEvtKpExam",
1880 2192 "dataTag":"1",
1881 2193 "data": [{
1882 2194 "keySn": "1234567890",
... ... @@ -1909,7 +2221,7 @@
1909 2221  
1910 2222 ```json
1911 2223 {
1912   - "fun": "fEvtFinalSubmit",
  2224 + "fun":"fEvtFinalSubmit",
1913 2225 "dataTag":"1",
1914 2226 "data": [{
1915 2227 "keySn": "1234567890",
... ...
通讯协议-平台化-应用部分.md
... ... @@ -159,7 +159,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
159 159 |笆璅∪ - 敹恍笆|蝡翰笆|[startBsFastPair](#startbsfastpair)|[sEvtStateCode](#sevtstatecode)<br>[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
160 160 ||迫蝡翰笆|[stopBsFastPair](#stopbsfastpair)|[sEvtStateCode](#sevtstatecode)|
161 161 |芋撘 - 恣[getBsWhitelist](#getbswhitelist)|[fEvtBsWhitelist](#fevtbswhitelist)|
162   -||霈曄蔭[setBsWhitelist](#setbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtBsWhitelist](#fevtbswhitelist)|
  162 +||霈曄蔭[setBsWhitelist](#setbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtSetBsWhitelist](#fevtsetbswhitelist)|
163 163 ||皜征[clearBsWhitelist](#clearbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtBsWhitelist](#fevtbswhitelist)|
164 164 ||憓[addBsWhitelist](#addbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtAddBsWhitelist](#fevtaddbswhitelist)<br>[fEvtBsWhitelist](#fevtbswhitelist)|
165 165 ||[delBsWhitelist](#delbswhitelist)|[sEvtStateCode](#sevtstatecode)<br>[fEvtDelBsWhitelist](#fevtdelbswhitelist)<br>[fEvtBsWhitelist](#fevtbswhitelist)|
... ... @@ -173,6 +173,9 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
173 173 ||霈曄蔭TCP/IP|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)|
174 174 |蝵挽蝵 - MQTT|QTT|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)|
175 175 ||霈曄蔭MQTT|[setBsMqttParams](#setbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)|
  176 +|蝡輕|<font color="red">蝡敹縑()</font>|[getBsLogInfo](#getbsloginfo)|[sEvtStateCode](#sevtstatecode)<br>[fEvtBsLogInfo](#fevtbsloginfo)|
  177 +||蝡蔓憭[resetBsSystem](#resetbssystem)|[sEvtStateCode](#sevtstatecode)<br>[sEvtBsConnectState](#sevtbsconnectstate)|
  178 +||蝡憭[resetBsPower](#resetbspower)|[sEvtStateCode](#sevtstatecode)<br>[sEvtBsConnectState](#sevtbsconnectstate)|
176 179 |蝡漣|<font color="red">撘蝡漣()|[startBsUpdate](#startbsupdate)|[sEvtStateCode](#sevtstatecode)<br>[fEvtBsUpateState](#fevtbsupatestate)<br>[fEvtBsUpdateProgress](#fevtbsupdateprogress)|
177 180 ||<font color="red">銝蝸摮()|[downloadFontLib](#downloadfontlib)|[sEvtStateCode](#sevtstatecode)<br>[fEvtBsFontLibState](#fevtbsfontlibstate)<br>[fEvtBsFontLibProgress](#fevtbsfontlibprogress)|
178 181 ### 恣
... ... @@ -243,6 +246,8 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
243 246 ||雿|[rtGetKpExamData](#rtgetkpexamdata)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpExam](#fevtkpexam)|
244 247 ||蝏[rtSetKpExamResult](#rtgetkpexamdata)|[sEvtStateCode](#sevtstatecode)<br>[fEvtSetKpExamResult](#fevtsetkpexamresult)|
245 248 ||捂漱耨|[rtAllowEdited](#rtkpallowedited)|[sEvtStateCode](#sevtstatecode)<br>[fEvtFinalSubmit](#fevtfinalsubmit)|
  249 +|憭憭[startKpMultiExam](#startkpmultiexam)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpExam](#fevtkpexam)<br>[fEvtFinalSubmit](#fevtfinalsubmit)|
  250 +||迫[stopKpMultiExam](#stopkpmultiexam)|[sEvtStateCode](#sevtstatecode)|
246 251 |銝餃銝餃[startKpScoreInput](#startkpscoreinput)|[sEvtStateCode](#sevtstatecode)<br>[fEvtKpScore](#fevtkpscore)<br>[fEvtFinalSubmit](#fevtfinalsubmit)|
247 252 ||迫銝餃[stopKpScoreInput](#stopkpscoreinput)|[sEvtStateCode](#sevtstatecode)|
248 253  
... ... @@ -1951,7 +1956,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
1951 1956 - **蝷箔誨**
1952 1957 ```Json
1953 1958 {
1954   - "fun": "startBsFastPair",
  1959 + "fun":"startBsFastPair",
1955 1960 "dataTag":"1"
1956 1961 }
1957 1962 ```
... ... @@ -1968,7 +1973,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
1968 1973 - **蝷箔誨**
1969 1974 ```Json
1970 1975 {
1971   - "fun": "stopBsFastPair",
  1976 + "fun":"stopBsFastPair",
1972 1977 "dataTag":"1"
1973 1978 }
1974 1979 ```
... ... @@ -1994,7 +1999,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
1994 1999 - **蝷箔誨**
1995 2000 ```Json
1996 2001 {
1997   - "fun": "getBsWhitelist",
  2002 + "fun":"getBsWhitelist",
1998 2003 "dataTag":"1"
1999 2004 }
2000 2005 ```
... ... @@ -2013,7 +2018,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2013 2018 - **蝷箔誨**
2014 2019 ```Json
2015 2020 {
2016   - "fun": "setBsWhitelist",
  2021 + "fun":"setBsWhitelist",
2017 2022 "dataTag":"1",
2018 2023 "data":{
2019 2024 "keySns":["2024021001","2024021002","2024021003","2024021004"]
... ... @@ -2033,7 +2038,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2033 2038 - **蝷箔誨**
2034 2039 ```Json
2035 2040 {
2036   - "fun": "clearBsWhitelist",
  2041 + "fun":"clearBsWhitelist",
2037 2042 "dataTag":"1"
2038 2043 }
2039 2044 ```
... ... @@ -2052,7 +2057,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2052 2057 - **蝷箔誨**
2053 2058 ```Json
2054 2059 {
2055   - "fun": "addBsWhitelist",
  2060 + "fun":"addBsWhitelist",
2056 2061 "dataTag":"1",
2057 2062 "data":{
2058 2063 "keySns":["2024021001"]
... ... @@ -2074,7 +2079,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2074 2079 - **蝷箔誨**
2075 2080 ```Json
2076 2081 {
2077   - "fun": "delBsWhitelist",
  2082 + "fun":"delBsWhitelist",
2078 2083 "dataTag":"1",
2079 2084 "data":{
2080 2085 "keySns":["2024021001"]
... ... @@ -2096,7 +2101,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2096 2101 - **蝷箔誨**
2097 2102 ```Json
2098 2103 {
2099   - "fun": "lockBsWhitelistKp",
  2104 + "fun":"lockBsWhitelistKp",
2100 2105 "dataTag":"1",
2101 2106 "data":{
2102 2107 "keySns":["2024021001"]
... ... @@ -2118,7 +2123,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2118 2123 - **蝷箔誨**
2119 2124 ```Json
2120 2125 {
2121   - "fun": "unlockBsWhitelistKp",
  2126 + "fun":"unlockBsWhitelistKp",
2122 2127 "dataTag":"1",
2123 2128 "data":{
2124 2129 "keySn":["2024021001"]
... ... @@ -2152,6 +2157,34 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2152 2157 }
2153 2158 ```
2154 2159  
  2160 +##### fEvtSetBsWhitelist
  2161 +- **銝駁**嚗/basestation/\${baseSN}/receive
  2162 +- **膩**嚗挽蝵桃
  2163 +- **霂湔**
  2164 +
  2165 +|蝐餃|征|霂湔
  2166 +|---|---|---|---|---|
  2167 +|fun|string|-||誘妍|
  2168 +|dataTag|string|-||,銝箇征摮泵銝琍
  2169 +|data|array|-||隡笆鞊⊥蝏
  2170 +|++keySns|array|||N蝏
  2171 +|++state|int|||N <br>0-<br> 1-憭梯揖|
  2172 +
  2173 +- **蝷箔誨**
  2174 +```Json
  2175 +{
  2176 + "fun":"fEvtSetBsWhitelist",
  2177 + "dataTag":"1",
  2178 + "data":[{
  2179 + "keySns":["2024021001","2024021002"],
  2180 + "state":0
  2181 + },{
  2182 + "keySns":["1211"],
  2183 + "state":1
  2184 + }]
  2185 +}
  2186 +```
  2187 +
2155 2188 ##### fEvtAddBsWhitelist
2156 2189 - **銝駁**嚗/basestation/\${baseSN}/receive
2157 2190 - **膩**嚗
... ... @@ -2162,7 +2195,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2162 2195 |fun|string|-||誘妍|
2163 2196 |dataTag|string|-||,銝箇征摮泵銝琍
2164 2197 |data|array|-||隡笆鞊⊥蝏
2165   -|++keySn|string|||N|
  2198 +|++keySns|array|||N蝏
2166 2199 |++state|int||| <br>0-憓<br> 1-憓仃韐四
2167 2200  
2168 2201 - **蝷箔誨**
... ... @@ -2171,8 +2204,11 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2171 2204 "fun":"fEvtAddBsWhitelist",
2172 2205 "dataTag":"1",
2173 2206 "data":[{
2174   - "keySn":"2024021001",
  2207 + "keySns":["2024021001","2024021002"],
2175 2208 "state":0
  2209 + },{
  2210 + "keySns":["1211"],
  2211 + "state":1
2176 2212 }]
2177 2213 }
2178 2214 ```
... ... @@ -2187,7 +2223,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2187 2223 |fun|string|-||誘妍|
2188 2224 |dataTag|string|-||,銝箇征摮泵銝琍
2189 2225 |data|array|-||隡笆鞊⊥蝏
2190   -|++keySn|string|||N|
  2226 +|++keySns|array|||N蝏
2191 2227 |++state|int||| <br>0-<br> 1-憭梯揖|
2192 2228  
2193 2229 - **蝷箔誨**
... ... @@ -2196,8 +2232,11 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2196 2232 "fun":"fEvtDelBsWhitelist",
2197 2233 "dataTag":"1",
2198 2234 "data":[{
2199   - "keySn":"2024021001",
  2235 + "keySns":["2024021002"],
2200 2236 "state":0
  2237 + },{
  2238 + "keySns":["2024021001"],
  2239 + "state":1
2201 2240 }]
2202 2241 }
2203 2242 ```
... ... @@ -2241,7 +2280,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2241 2280 - **蝷箔誨**
2242 2281 ```Json
2243 2282 {
2244   - "fun": "getBsSoftwareKey",
  2283 + "fun":"getBsSoftwareKey",
2245 2284 "dataTag":"1"
2246 2285 }
2247 2286 ```
... ... @@ -2260,7 +2299,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2260 2299 - **蝷箔誨**
2261 2300 ```Json
2262 2301 {
2263   - "fun": "setBsSoftwareKey",
  2302 + "fun":"setBsSoftwareKey",
2264 2303 "dataTag":"1",
2265 2304 "data":{
2266 2305 "value":"sunvote123456"
... ... @@ -2280,7 +2319,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2280 2319 - **蝷箔誨**
2281 2320 ```Json
2282 2321 {
2283   - "fun": "getBsAES",
  2322 + "fun":"getBsAES",
2284 2323 "dataTag":"1"
2285 2324 }
2286 2325 ```
... ... @@ -2299,7 +2338,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2299 2338 - **蝷箔誨**
2300 2339 ```Json
2301 2340 {
2302   - "fun": "setBsAES",
  2341 + "fun":"setBsAES",
2303 2342 "dataTag":"1",
2304 2343 "data":{
2305 2344 "value":"0"
... ... @@ -2351,6 +2390,96 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2351 2390 }
2352 2391 }
2353 2392 ```
  2393 +
  2394 +### 蝡輕
  2395 +#### 瘜
  2396 +##### getBsLogInfo
  2397 +- **銝駁**嚗<sapn class="yellowFill">/manage/\${baseSN}/receive</span>
  2398 +- **膩**嚗蝡敹,鈭閬憸蝡敹扇敶
  2399 +- **霂湔**
  2400 +
  2401 +|蝐餃|敹‵|霂湔
  2402 +|---|---|---|---|---|
  2403 +|fun|string|-||誘妍|
  2404 +|dataTag|string|-||,銝箇征摮泵銝琍
  2405 +
  2406 +- **蝷箔誨**
  2407 +```Json
  2408 +{
  2409 + "fun":"getBsLogInfo",
  2410 + "dataTag":"1"
  2411 +}
  2412 +```
  2413 +
  2414 +##### resetBsSystem
  2415 +- **銝駁**嚗/client/\${baseSN}/send
  2416 +- **膩**嚗蔓憭蝡<sapn class="yellowFill">嚗銝駁嚗憭悅銝</span>嚗
  2417 +- **霂湔**
  2418 +
  2419 +|蝐餃|敹‵|霂湔
  2420 +|---|---|---|---|---|
  2421 +|fun|string|-||誘妍|
  2422 +|dataTag|string|-||,銝箇征摮泵銝琍
  2423 +
  2424 +- **蝷箔誨**
  2425 +```Json
  2426 +{
  2427 + "fun":"resetBsSystem",
  2428 + "dataTag":"1"
  2429 +}
  2430 +```
  2431 +
  2432 +##### resetBsPower
  2433 +- **銝駁**嚗/client/\${baseSN}/send
  2434 +- **膩**嚗憭蝡<sapn class="yellowFill">嚗銝駁嚗憭悅銝哨</span>
  2435 +- **霂湔**
  2436 +
  2437 +|蝐餃|敹‵|霂湔
  2438 +|---|---|---|---|---|
  2439 +|fun|string|-||誘妍|
  2440 +|dataTag|string|-||,銝箇征摮泵銝琍
  2441 +
  2442 +- **蝷箔誨**
  2443 +```Json
  2444 +{
  2445 + "fun":"resetBsPower",
  2446 + "dataTag":"1"
  2447 +}
  2448 +```
  2449 +
  2450 +#### 鈭辣
  2451 +##### [sEvtStateCode](#sevtstatecode)
  2452 +餈誘
  2453 +瘜冽誘隞**銝駁: <sapn class="yellowFill">/manage/\${baseSN}/receive</span>** 餈
  2454 +
  2455 +##### [sEvtBsConnectState](#sevtbsconnectstate)
  2456 +憭蝡蝡餈
  2457 +
  2458 +##### fEvtBsLogInfo
  2459 +- **銝駁**: <sapn class="yellowFill">/manage/\${baseSN}/receive</span>
  2460 +- **膩**嚗蝡敹捆
  2461 +- **霂湔**
  2462 +
  2463 +|蝐餃|征|霂湔
  2464 +|---|---|---|---|---|
  2465 +|fun|string|-||誘妍|
  2466 +|dataTag|string|-||,銝箇征摮泵銝琍
  2467 +|data|object|-||隡笆鞊﹄
  2468 +|+index|int|||嚗1撘憪0隞”敹歇隡
  2469 +|+info|string|||敹捆<br><font color="red">敹靘蝡嚗閬敺雿</font>|
  2470 +
  2471 +- **蝷箔誨**
  2472 +```Json
  2473 +{
  2474 + "fun":"fEvtBsLogInfo",
  2475 + "dataTag":"1",
  2476 + "data":{
  2477 + "index":1,
  2478 + "info":"XXXXXXXXXXXXX"
  2479 + }
  2480 +}
  2481 +```
  2482 +
2354 2483 ### 蝡漣
2355 2484 #### 瘜
2356 2485 ##### startBsUpdate
... ... @@ -2841,7 +2970,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2841 2970 ```Json
2842 2971 //內
2843 2972 {
2844   - "fun": "rtSetKpUserPrompt",
  2973 + "fun":"rtSetKpUserPrompt",
2845 2974 "dataTag":"1",
2846 2975 "data": [
2847 2976 {
... ... @@ -2856,7 +2985,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2856 2985 }
2857 2986 //蝏內
2858 2987 {
2859   - "fun": "rtSetKpUserPrompt",
  2988 + "fun":"rtSetKpUserPrompt",
2860 2989 "dataTag":"1",
2861 2990 "data": [
2862 2991 {
... ... @@ -2913,7 +3042,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2913 3042 - **蝷箔誨**
2914 3043 ```Json
2915 3044 {
2916   - "fun": "fEvtSetKpUserPrompt",
  3045 + "fun":"fEvtSetKpUserPrompt",
2917 3046 "dataTag":"1",
2918 3047 "data": [
2919 3048 {
... ... @@ -2946,7 +3075,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2946 3075 - **蝷箔誨**
2947 3076 ```Json
2948 3077 {
2949   - "fun": "startGetKpOnline",
  3078 + "fun":"startGetKpOnline",
2950 3079 "dataTag":"1"
2951 3080 }
2952 3081 ```
... ... @@ -2964,7 +3093,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
2964 3093 - **蝷箔誨**
2965 3094 ```Json
2966 3095 {
2967   - "fun": "stopGetKpOnline",
  3096 + "fun":"stopGetKpOnline",
2968 3097 "dataTag":"1"
2969 3098 }
2970 3099 ```
... ... @@ -3172,7 +3301,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3172 3301 - **蝷箔誨**
3173 3302 ```Json
3174 3303 {
3175   - "fun": "rtSetKpBindingInfo",
  3304 + "fun":"rtSetKpBindingInfo",
3176 3305 "dataTag":"1",
3177 3306 "data": [
3178 3307 {
... ... @@ -3202,7 +3331,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3202 3331 - **蝷箔誨**
3203 3332 ```Json
3204 3333 {
3205   - "fun": "clearKpBindingInfo",
  3334 + "fun":"clearKpBindingInfo",
3206 3335 "dataTag":"1",
3207 3336 "data": {
3208 3337 "keySns":["1479824643","1479824644","1479824645"]
... ... @@ -3229,7 +3358,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3229 3358 - **蝷箔誨**
3230 3359 ```Json
3231 3360 {
3232   - "fun": "fEvtKpBindingInfo",
  3361 + "fun":"fEvtKpBindingInfo",
3233 3362 "dataTag":"1",
3234 3363 "data": [
3235 3364 {
... ... @@ -3258,7 +3387,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3258 3387 - **蝷箔誨**
3259 3388 ```Json
3260 3389 {
3261   - "fun": "fEvtClearKpBindingInfo",
  3390 + "fun":"fEvtClearKpBindingInfo",
3262 3391 "dataTag":"1",
3263 3392 "data": {
3264 3393 "state": "0"
... ... @@ -3278,18 +3407,39 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3278 3407 |fun|string|-||誘妍|
3279 3408 |dataTag|string|-||,銝箇征摮泵銝琍
3280 3409 |data|object|-||隡笆鞊﹄
3281   -|+mode|int|-||蝑曉璅∪<br>1-蝑曉<br>2-PIN倌<br>3-犒蝑曉|
  3410 +|+mode|int|-||蝑曉璅∪<br>1-蝑曉嚗<br>2-PIN倌嚗IN摨<br>3-犒蝑曉(<font color="red"></font>)|
  3411 +|+allowModify |int|-| | 靽格璅∪ <br> 0:銝靽格 <br>1:隞乩耨(暺恕)|
  3412 +|+pinLen |int|-|| 颲pin憭折摨 1N14 |
  3413 +|+keyValue |int|-| | <br> 0: (OK蝑曉) <br>1-9: 1-9 <br> 10:0 <br> 11:銝 <br> 12:銝 <br> 13:OK <br> 14:ESC <br> 15: Menu |
  3414 +|+tipTitle |string|-|| 內,摨行憭16銝芸
3282 3415  
3283 3416 - **蝷箔誨**
3284 3417 ```Json
  3418 +//蝑曉
3285 3419 {
3286   - "fun": "startKpSignIn",
  3420 + "fun":"startKpSignIn",
3287 3421 "dataTag":"1",
3288 3422 "data":{
3289   - "mode":2
  3423 + "mode":1,
  3424 + "allowModify":1,
  3425 + "keyValue":5,
  3426 + "tip":"霂瑟5蝑曉"
  3427 + }
  3428 +}
  3429 +
  3430 +//pin蝑曉
  3431 +{
  3432 + "fun":"startKpSignIn",
  3433 + "dataTag":"1",
  3434 + "data":{
  3435 + "mode":2,
  3436 + "allowModify":1,
  3437 + "pinLen":6,
  3438 + "tip":"霂瑁PIN倌"
3290 3439 }
3291 3440 }
3292 3441 ```
  3442 +
3293 3443 ##### stopKpSignIn
3294 3444 - **銝駁**嚗/client/\${baseSN}/send
3295 3445 - **膩**嚗迫郊蝑曉
... ... @@ -3303,7 +3453,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3303 3453 - **蝷箔誨**
3304 3454 ```Json
3305 3455 {
3306   - "fun": "stopKpSignIn",
  3456 + "fun":"stopKpSignIn",
3307 3457 "dataTag":"1"
3308 3458 }
3309 3459 ```
... ... @@ -3331,7 +3481,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3331 3481 - **蝷箔誨**
3332 3482 ```Json
3333 3483 {
3334   - "fun": "rtStartKpSignIn",
  3484 + "fun":"rtStartKpSignIn",
3335 3485 "dataTag":"1",
3336 3486 "data":{
3337 3487 "mode":2
... ... @@ -3351,7 +3501,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3351 3501 - **蝷箔誨**
3352 3502 ```Json
3353 3503 {
3354   - "fun": "rtStopKpSignIn",
  3504 + "fun":"rtStopKpSignIn",
3355 3505 "dataTag":"1"
3356 3506 }
3357 3507 ```
... ... @@ -3371,7 +3521,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3371 3521 - **蝷箔誨**
3372 3522 ```Json
3373 3523 {
3374   - "fun": "rtSetKpLoginAllowed",
  3524 + "fun":"rtSetKpLoginAllowed",
3375 3525 "dataTag":"1",
3376 3526 "data":{
3377 3527 "keySn":"1479824643",
... ... @@ -3400,7 +3550,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3400 3550 - **蝷箔誨**
3401 3551 ```Json
3402 3552 {
3403   - "fun": "fEvtKpSignIn",
  3553 + "fun":"fEvtKpSignIn",
3404 3554 "dataTag":"1",
3405 3555 "data": [{
3406 3556 "keySn": "1234567890",
... ... @@ -3431,7 +3581,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3431 3581 - **蝷箔誨**
3432 3582 ```Json
3433 3583 {
3434   - "fun": "fEvtKpLoginAllowed",
  3584 + "fun":"fEvtKpLoginAllowed",
3435 3585 "dataTag":"1",
3436 3586 "data": {
3437 3587 "keySn":"1479824643",
... ... @@ -3463,7 +3613,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3463 3613 - **蝷箔誨**
3464 3614 ```Json
3465 3615 {
3466   - "fun": "startQATrueFalse",
  3616 + "fun":"startQATrueFalse",
3467 3617 "dataTag":"1",
3468 3618 "data":{
3469 3619 "keySns":[],
... ... @@ -3490,7 +3640,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3490 3640 - **蝷箔誨**
3491 3641 ```Json
3492 3642 {
3493   - "fun": "stopQATrueFalse",
  3643 + "fun":"stopQATrueFalse",
3494 3644 "dataTag":"1"
3495 3645 }
3496 3646 ```
... ... @@ -3515,7 +3665,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3515 3665 - **蝷箔誨**
3516 3666 ```Json
3517 3667 {
3518   - "fun": "fEvtQATrueFalse",
  3668 + "fun":"fEvtQATrueFalse",
3519 3669 "dataTag":"1",
3520 3670 "data": [{
3521 3671 "keySn": "1234567890",
... ... @@ -3551,7 +3701,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3551 3701 - **蝷箔誨**
3552 3702 ```Json
3553 3703 {
3554   - "fun": "startQAChoice",
  3704 + "fun":"startQAChoice",
3555 3705 "dataTag":"1",
3556 3706 "data":{
3557 3707 "keySns":[],
... ... @@ -3581,7 +3731,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3581 3731 - **蝷箔誨**
3582 3732 ```Json
3583 3733 {
3584   - "fun": "stopQAChoice",
  3734 + "fun":"stopQAChoice",
3585 3735 "dataTag":"1"
3586 3736 }
3587 3737 ```
... ... @@ -3606,7 +3756,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3606 3756 - **蝷箔誨**
3607 3757 ```Json
3608 3758 {
3609   - "fun": "fEvtQAChoice",
  3759 + "fun":"fEvtQAChoice",
3610 3760 "dataTag":"1",
3611 3761 "data": [{
3612 3762 "keySn": "1234567890",
... ... @@ -3640,7 +3790,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3640 3790 - **蝷箔誨**
3641 3791 ```Json
3642 3792 {
3643   - "fun": "startQANum",
  3793 + "fun":"startQANum",
3644 3794 "dataTag":"1",
3645 3795 "data":{
3646 3796 "keySns":[],
... ... @@ -3669,7 +3819,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3669 3819 - **蝷箔誨**
3670 3820 ```Json
3671 3821 {
3672   - "fun": "stopQANum",
  3822 + "fun":"stopQANum",
3673 3823 "dataTag":"1"
3674 3824 }
3675 3825 ```
... ... @@ -3694,7 +3844,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3694 3844 - **蝷箔誨**
3695 3845 ```Json
3696 3846 {
3697   - "fun": "fEvtQANum",
  3847 + "fun":"fEvtQANum",
3698 3848 "dataTag":"1",
3699 3849 "data": [{
3700 3850 "keySn": "1234567890",
... ... @@ -3725,7 +3875,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3725 3875 - **蝷箔誨**
3726 3876 ```Json
3727 3877 {
3728   - "fun": "startQAQuicker",
  3878 + "fun":"startQAQuicker",
3729 3879 "dataTag":"1",
3730 3880 "data":{
3731 3881 "keySns":[],
... ... @@ -3751,7 +3901,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3751 3901 - **蝷箔誨**
3752 3902 ```Json
3753 3903 {
3754   - "fun": "stopQAQuicker",
  3904 + "fun":"stopQAQuicker",
3755 3905 "dataTag":"1"
3756 3906 }
3757 3907 ```
... ... @@ -3776,7 +3926,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3776 3926 - **蝷箔誨**
3777 3927 ```Json
3778 3928 {
3779   - "fun": "fEvtQAQuicker",
  3929 + "fun":"fEvtQAQuicker",
3780 3930 "dataTag":"1",
3781 3931 "data": [{
3782 3932 "keySn": "1234567890",
... ... @@ -3807,7 +3957,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3807 3957 - **蝷箔誨**
3808 3958 ```Json
3809 3959 {
3810   - "fun": "startQAEText",
  3960 + "fun":"startQAEText",
3811 3961 "dataTag":"1",
3812 3962 "data":{
3813 3963 "keySns":[],
... ... @@ -3833,7 +3983,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3833 3983 - **蝷箔誨**
3834 3984 ```Json
3835 3985 {
3836   - "fun": "stopQAEText",
  3986 + "fun":"stopQAEText",
3837 3987 "dataTag":"1"
3838 3988 }
3839 3989 ```
... ... @@ -3858,7 +4008,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3858 4008 - **蝷箔誨**
3859 4009 ```Json
3860 4010 {
3861   - "fun": "fEvtQAEText",
  4011 + "fun":"fEvtQAEText",
3862 4012 "dataTag":"1",
3863 4013 "data": [{
3864 4014 "keySn": "1234567890",
... ... @@ -3889,7 +4039,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3889 4039 ```Json
3890 4040 //縑
3891 4041 {
3892   - "fun": "sendKpMsg",
  4042 + "fun":"sendKpMsg",
3893 4043 "dataTag":"1",
3894 4044 "data": [
3895 4045 {
... ... @@ -3909,7 +4059,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3909 4059  
3910 4060 //撟踵靽⊥
3911 4061 {
3912   - "fun": "sendKpMsg",
  4062 + "fun":"sendKpMsg",
3913 4063 "dataTag":"1",
3914 4064 "data": [
3915 4065 {
... ... @@ -3944,7 +4094,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3944 4094 - **蝷箔誨**
3945 4095 ```Json
3946 4096 {
3947   - "fun": "fEvtKpMsg",
  4097 + "fun":"fEvtKpMsg",
3948 4098 "dataTag":"1",
3949 4099 "data": [
3950 4100 {
... ... @@ -3978,7 +4128,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3978 4128 ```Json
3979 4129 //銝暹
3980 4130 {
3981   - "fun": "startKpStbResponse",
  4131 + "fun":"startKpStbResponse",
3982 4132 "dataTag":"1",
3983 4133 "data":{
3984 4134 "mode":0
... ... @@ -3986,7 +4136,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
3986 4136 }
3987 4137 //敺
3988 4138 {
3989   - "fun": "startKpStbResponse",
  4139 + "fun":"startKpStbResponse",
3990 4140 "dataTag":"1",
3991 4141 "data":{
3992 4142 "mode":1,
... ... @@ -4008,7 +4158,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4008 4158 - **蝷箔誨**
4009 4159 ```Json
4010 4160 {
4011   - "fun": "stopKpStbResponse",
  4161 + "fun":"stopKpStbResponse",
4012 4162 "dataTag":"1"
4013 4163 }
4014 4164 ```
... ... @@ -4047,7 +4197,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4047 4197 - **蝷箔誨**
4048 4198 ```Json
4049 4199 {
4050   - "fun": "startQAVoice",
  4200 + "fun":"startQAVoice",
4051 4201 "dataTag":"1",
4052 4202 "data": {
4053 4203 "keySns": [],
... ... @@ -4073,7 +4223,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4073 4223 - **蝷箔誨**
4074 4224 ```Json
4075 4225 {
4076   - "fun": "stopQAVoice",
  4226 + "fun":"stopQAVoice",
4077 4227 "dataTag":"1"
4078 4228 }
4079 4229 ```
... ... @@ -4098,7 +4248,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4098 4248 - **蝷箔誨**
4099 4249 ```Json
4100 4250 {
4101   - "fun": "startKpDSpeaker",
  4251 + "fun":"startKpDSpeaker",
4102 4252 "dataTag":"1",
4103 4253 "data": {
4104 4254 "keySn": "1234567890",
... ... @@ -4122,7 +4272,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4122 4272 - **蝷箔誨**
4123 4273 ```Json
4124 4274 {
4125   - "fun": "stopKpDSpeaker",
  4275 + "fun":"stopKpDSpeaker",
4126 4276 "dataTag":"1"
4127 4277 }
4128 4278 ```
... ... @@ -4144,7 +4294,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4144 4294 - **蝷箔誨**
4145 4295 ```Json
4146 4296 {
4147   - "fun": "startVoiceStbResponse",
  4297 + "fun":"startVoiceStbResponse",
4148 4298 "dataTag":"1",
4149 4299 "data":{
4150 4300 "mode":,
... ... @@ -4166,7 +4316,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4166 4316 - **蝷箔誨**
4167 4317 ```Json
4168 4318 {
4169   - "fun": "stopVoiceStbResponse",
  4319 + "fun":"stopVoiceStbResponse",
4170 4320 "dataTag":"1"
4171 4321 }
4172 4322 ```
... ... @@ -4192,7 +4342,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4192 4342 - **蝷箔誨**
4193 4343 ```Json
4194 4344 {
4195   - "fun": "fEvtVoiceFile",
  4345 + "fun":"fEvtVoiceFile",
4196 4346 "dataTag":"1",
4197 4347 "data": [{
4198 4348 "keySn": "1479824643",
... ... @@ -4223,7 +4373,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4223 4373 - **蝷箔誨**
4224 4374 ```Json
4225 4375 {
4226   - "fun": "fEvtQAQuicker",
  4376 + "fun":"fEvtQAQuicker",
4227 4377 "dataTag":"1",
4228 4378 "data": {
4229 4379 "keySn":"1479824643",
... ... @@ -4258,7 +4408,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4258 4408 - **蝷箔誨**
4259 4409 ```Json
4260 4410 {
4261   - "fun": "fEvtQAQuicker",
  4411 + "fun":"fEvtQAQuicker",
4262 4412 "dataTag":"1",
4263 4413 "data": {
4264 4414 "keySn":"1837454011",
... ... @@ -4300,7 +4450,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4300 4450 ```Json
4301 4451 //摰
4302 4452 {
4303   - "fun": "startKpExam",
  4453 + "fun":"startKpExam",
4304 4454 "dataTag":"1",
4305 4455 "data":{
4306 4456 "mode": 0,
... ... @@ -4339,7 +4489,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4339 4489  
4340 4490 //蝷摑撘憭
4341 4491 {
4342   - "fun": "startKpExam",
  4492 + "fun":"startKpExam",
4343 4493 "dataTag":"1",
4344 4494 "data":{
4345 4495 "mode": 1,
... ... @@ -4359,7 +4509,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4359 4509  
4360 4510 //蝷粹憭
4361 4511 {
4362   - "fun": "startKpExam",
  4512 + "fun":"startKpExam",
4363 4513 "dataTag":"1",
4364 4514 "data":{
4365 4515 "mode": 2,
... ... @@ -4390,7 +4540,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4390 4540 - **蝷箔誨**
4391 4541 ```Json
4392 4542 {
4393   - "fun": "stopKpExam",
  4543 + "fun":"stopKpExam",
4394 4544 "dataTag":"1"
4395 4545 }
4396 4546 ```
... ... @@ -4409,7 +4559,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4409 4559 - **蝷箔誨**
4410 4560 ```Json
4411 4561 {
4412   - "fun": "rtGetKpExamData",
  4562 + "fun":"rtGetKpExamData",
4413 4563 "dataTag":"1",
4414 4564 "data":{
4415 4565 "keySns":["1234567890","1234567891"]
... ... @@ -4432,7 +4582,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4432 4582 - **蝷箔誨**
4433 4583 ```Json
4434 4584 {
4435   - "fun": "rtSetKpExamResult",
  4585 + "fun":"rtSetKpExamResult",
4436 4586 "dataTag":"1",
4437 4587 "data":{
4438 4588 "examNo":1,
... ... @@ -4456,7 +4606,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4456 4606 - **蝷箔誨**
4457 4607 ```Json
4458 4608 {
4459   - "fun": "rtKpAllowEdited",
  4609 + "fun":"rtKpAllowEdited",
4460 4610 "dataTag":"1",
4461 4611 "data":{
4462 4612 "keySns":["1234567890","1234567891"]
... ... @@ -4484,7 +4634,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4484 4634 - **蝷箔誨**
4485 4635 ```Json
4486 4636 {
4487   - "fun": "fEvtKpExam",
  4637 + "fun":"fEvtKpExam",
4488 4638 "dataTag":"1",
4489 4639 "data": [{
4490 4640 "keySn": "1234567890",
... ... @@ -4516,7 +4666,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4516 4666 - **蝷箔誨**
4517 4667 ```Json
4518 4668 {
4519   - "fun": "fEvtFinalSubmit",
  4669 + "fun":"fEvtFinalSubmit",
4520 4670 "dataTag":"1",
4521 4671 "data": [{
4522 4672 "keySn": "1234567890",
... ... @@ -4542,7 +4692,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4542 4692 - **蝷箔誨**
4543 4693 ```Json
4544 4694 {
4545   - "fun": "fEvtSetKpExamResult",
  4695 + "fun":"fEvtSetKpExamResult",
4546 4696 "dataTag":"1",
4547 4697 "data": {
4548 4698 "examNo": 1,
... ... @@ -4551,6 +4701,146 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4551 4701 }
4552 4702 ```
4553 4703  
  4704 +### 憭
  4705 +#### 瘜
  4706 +##### startKpMultiExam
  4707 +- **銝駁**嚗/client/\${baseSN}/send
  4708 +- **膩**嚗憭
  4709 +- **霂湔**
  4710 +
  4711 +|蝐餃|敹‵|霂湔
  4712 +|---|---|---|---|---|
  4713 +|fun|string|-||誘妍|
  4714 +|dataTag|string|-||,銝箇征摮泵銝琍
  4715 +|data|object|-||隡笆鞊﹄
  4716 +|+examNo|int|||0-9999<br>=0嚗<br>>0,銝活銝蝏抒賒瘚餈
  4717 +|+mode|int|||蝷箸芋撘<br>0-銝蝷箏憭<br>1-蝷算憭<br>2-蝷算憭揉
  4718 +|+questions|array|||憸霂行
  4719 +|++subject | int|| | 蝘摨,1-9,撖孵葉蔭1-9<br>蝘蝑
  4720 +|++symbol | string|| | 憸,漣蛹-,銝箇征,銝箇征銵函內1蝥折<br><font color="red">憭蝻憭銝斤漣嚗symbol霈曄蔭銝箇征-嚗,頞</font>|
  4721 +|++quesType | int||| 憸蝐餃<br>1:<br>2:憭<br>3:摮<br>4: |
  4722 +|++option |int|| |★<br> quesType = 1 <br>quesType = 2 <br>甇日★蝻箇 暺恕4;<br>嚗1-10
  4723 +|++startNo | int||| 韏瑕 |
  4724 +|++count | int||| 憸 |
  4725 +|+simParams|object|||璅⊥霈曄蔭撖寡情|
  4726 +|++answer|array|||憸挽漱<br>撘蛹",憭;<br>摮;憸(1撖2)"<br>憒"A","ABCD","10","1"]|
  4727 +
  4728 +- **蝷箔誨**
  4729 +```json
  4730 +//摰
  4731 +{
  4732 + "fun":"startKpMultiExam",
  4733 + "dataTag":"1",
  4734 + "data":{
  4735 + "mode": 0,
  4736 + "examNo": 1,
  4737 + "questions": [{
  4738 + "subject":1, //蝘1
  4739 + //憸1-1 1-10 10憸
  4740 + "symbol": "1-",
  4741 + "quesType": 1,
  4742 + "startNo": 1,
  4743 + "count":10
  4744 + }, {
  4745 + "subject":2, //蝘2
  4746 + //憸2-22-3銝日 憭5銝芷★
  4747 + "symbol": "2-",
  4748 + "quesType": 2,
  4749 + "option": 5,
  4750 + "startNo": 2,
  4751 + "count":2
  4752 + }, {
  4753 + "subject":3, //蝘3
  4754 + //憸3-13-2銝日摮
  4755 + "symbol": "3-",
  4756 + "quesType": 3,
  4757 + "startNo": 1,
  4758 + "count":2
  4759 + }, {
  4760 + "subject":1, //蝘1
  4761 + //憸45 嚗憸
  4762 + "symbol": "",
  4763 + "quesType": 4,
  4764 + "startNo": 4,
  4765 + "count":2
  4766 + }],
  4767 + "simParams":{
  4768 + "answer":["A","ABCD","10","1"]
  4769 + }
  4770 + }
  4771 +}
  4772 +
  4773 +//蝷摑撘憭
  4774 +{
  4775 + "fun":"startKpMultiExam",
  4776 + "dataTag":"1",
  4777 + "data":{
  4778 + "mode": 1,
  4779 + "examNo": 1,
  4780 + "questions": [{
  4781 + "subject":1,
  4782 + //Q1-Q20,
  4783 + "symbol": "",
  4784 + "quesType": 1,
  4785 + "startNo": 1,
  4786 + "count":20
  4787 + }],
  4788 + "simParams":{
  4789 + "answer":["A","","",""]
  4790 + }
  4791 + }
  4792 +}
  4793 +
  4794 +//蝷粹憭
  4795 +{
  4796 + "fun":"startKpMultiExam",
  4797 + "dataTag":"1",
  4798 + "data":{
  4799 + "mode": 2,
  4800 + "examNo": 1,
  4801 + "questions": [{
  4802 + "subject":1,
  4803 + //憸1-憸20,
  4804 + "symbol": "",
  4805 + "quesType": 1,
  4806 + "startNo": 1,
  4807 + "count":20
  4808 + }],
  4809 + "simParams":{
  4810 + "answer":["A","","",""]
  4811 + }
  4812 + }
  4813 +}
  4814 +```
  4815 +
  4816 +##### stopKpMultiExam
  4817 +- **銝駁**嚗/client/\${baseSN}/send
  4818 +- **膩**嚗迫憭
  4819 +- **霂湔**
  4820 +
  4821 +|蝐餃|敹‵|霂湔
  4822 +|---|---|---|---|---|
  4823 +|fun|string|-||誘妍|
  4824 +|dataTag|string|-||,銝箇征摮泵銝琍
  4825 +
  4826 +- **蝷箔誨**
  4827 +```json
  4828 +{
  4829 + "fun":"stopKpMultiExam",
  4830 + "dataTag":"1"
  4831 +}
  4832 +```
  4833 +
  4834 +#### 鈭辣
  4835 +##### [sEvtStateCode](#sevtstatecode)
  4836 +誘
  4837 +
  4838 +##### [fEvtKpExam](#fevtkpexam)
  4839 +餈葉漱蝑
  4840 +
  4841 +##### [fEvtFinalSubmit](#fevtfinalsubmit)
  4842 +餈鈭文
  4843 +
4554 4844 ### 銝餃
4555 4845 #### 瘜
4556 4846 ##### startKpScoreInput
... ... @@ -4576,7 +4866,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4576 4866 - **蝷箔誨**
4577 4867 ```Json
4578 4868 {
4579   - "fun": "startKpScoreInput",
  4869 + "fun":"startKpScoreInput",
4580 4870 "dataTag":"1",
4581 4871 "data":{
4582 4872 "mode": 0,
... ... @@ -4615,7 +4905,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4615 4905 - **蝷箔誨**
4616 4906 ```Json
4617 4907 {
4618   - "fun": "stopKpScoreInput",
  4908 + "fun":"stopKpScoreInput",
4619 4909 "dataTag":"1"
4620 4910 }
4621 4911 ```
... ... @@ -4641,7 +4931,7 @@ WebSocket撘銝DK蝡遣蝡餈ebSocket
4641 4931 - **蝷箔誨**
4642 4932 ```Json
4643 4933 {
4644   - "fun": "fEvtKpScore",
  4934 + "fun":"fEvtKpScore",
4645 4935 "dataTag":"1",
4646 4936 "data": [{
4647 4937 "scoreTag":"5",
... ...
通讯协议-教育新版-表决器部分.md
... ... @@ -3361,7 +3361,7 @@ Rule:
3361 3361 | 7 | NETMODE | 基站组网模式,1配对 2白名单 |
3362 3362 | 8-11 | FREQ1-FREQ4 | 主频点,副频点2,副频点3,副频点4,0的话不启用 |
3363 3363 | 12 | HOP | 0没跳频,1-4表示当前模块跳频频点编号,1表示在主频点 |
3364   -| 13 | ST-Bit | 位控制(直接位域控制)<br>1:基站信息公开位<br>&emsp;0表示可公开,键盘能扫描到基站信息并显示<br>&emsp;1不公开,键盘不显示,但已配对的键盘可正常连接。<br>2:配对模式,1表示当前基站处于配对模式下可供键盘配对。0无<br>3:白名单模式,1表示当前基站处于白名单模式。0:无<br>4:Plus模式->1: 基站周期组呼点名心跳/键盘上线时发送入网包<font color="#dd0000"> 暂不使用</font><br>&emsp;0:基站不发点名心跳/键盘上线时不发送入网包(键盘竞争方式)<br>5:名单锁定:键盘只在Plus模式下生效<br>&emsp;1:开启名单锁定(键盘自控无法配对,无法登录,基站名单只能有上层接口与刷卡接口添加)<br>&emsp;0:关闭名单锁定(键盘可配对,可登录,基站自动加入到名单中,基站不踢人) |
  3364 +| 13 | ST-Bit | 位控制(直接位域控制)<br>1:基站信息公开位<br>&emsp;0表示可公开,键盘能扫描到基站信息并显示<br>&emsp;1不公开,键盘不显示,但已配对的键盘可正常连接。<br>2:配对模式,1表示当前基站处于配对模式下可供键盘配对。0无<br>3:白名单模式,1表示当前基站处于白名单模式。0:无<br>4:Plus模式->1: 基站周期组呼点名心跳/键盘上线时发送入网包<font color="#dd0000"> 暂不使用</font><br>&emsp;0:基站不发点名心跳/键盘上线时不发送入网包(键盘竞争方式)<br>5:名单锁定:键盘只在Plus模式下生效<br>&emsp;1:开启名单锁定(键盘自控无法配对,无法登录,基站名单只能有上层接口与刷卡接口添加)<br>&emsp;0:关闭名单锁定(键盘可配对,可登录,基站自动加入到名单中,基站不踢人)<br>6:键盘开启话费识别:1键盘开启话费识别 0:不开启 |
3365 3365 | 14-15 | PSW | 密码(0表示没密码) |
3366 3366 | 16-17 | 2 Byte| 基站配对码前两个字节(原因:B200配合M6 AES加密,协议占用了配对码前两个字节,但是键盘需要完整的4字节配对码,所有在此带下去给键盘) |
3367 3367 | 18-30| Name | 基站名称(6个汉字) |
... ...