Blame view

通讯协议-SDK_DLL部分[内部].md 32.1 KB
3d97a70c   DMchen   1.首次上传 通讯协议-SDK_D...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
  <br>
  <br>
  <br>
  
  <div  style="text-align: center;font-size: 70px;">
  SunVote Dll协议接口说明
  </div>
  
  
  <div  style="text-align: center;font-size: 30px;">
  Ver5.1.1
  </div>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  
  <div  style="text-align: center;font-size: 30px;">
  长沙中天电子设计开发有限公司
  </div>
  
  <br>
  
  <div  style="text-align: center;font-size: 30px;">
  二〇二三年十月
  </div>
  
  <br>
  <br>
  <br>
  <br>
  
  文件控制:
  
  文件名:SunVote Dll接口说明
  
  起草人:陈定敏
  
  最新版本作者: 陈定敏
  <br>
  <br>
  | 文档版本 | 日期 | 作者 | 版本说明 |
  |---|---|---|---|
  |5.1.1| 2023年10月09日|陈定敏|1.  初始版|
  
  <br>
  
  [TOC]
  
  # 系统概述
  
  
  
  # 设计目的
  
  
  
  # 通讯接口设计概要
  
  
  
  # 通信方式
  数据交互采取发送<-->应答的方式。应用程序发送数据到WSCmdApp,WSCmdApp收到后执行完成后回复。
  
  应用程序没有数据发送给WSCmdApp时,需要发送心跳,WSCmdApp收到心跳后会回复心跳,用于判断与应用程序的连接状态。(配置文件中,如果启用了心跳检查,应用程序如果未按要求发送心跳,WSCmdApp会断开当前连接,重新尝试连接)
  
  # 编程流程说明
  
62d2ef20   DMchen   1.整理部分SDK_DLL部分[内...
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
  # 回调函数部分
  ## 基站事件的回调
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |int mode|回调反馈数据模式|||
  |const char* sInfo|回调反馈数据|根据模式解析数据||
  
  回调接口代码:
  ```C++
  typedef void(*HDParamCallBack)(int iBaseID, int mode, const char* sInfo);// 基站事件回调
  ```
  设置回调代码:
  ```C++
  extern"C" __declspec(dllexport) void SetHDParamCallBack(HDParamCallBack cb);	//设置基站事件回调
  ```
  
  ## 投票事件回调
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |int mode|回调反馈数据模式|||
  |const char* sInfo|回调反馈数据|根据模式解析数据||
  
  回调接口代码:
  ```C++
  typedef void(*VoteEventCallBack)(int iBaseID, int mode, const char* sInfo);// 投票事件回调
  ```
  设置回调代码:
  ```C++
  extern"C" __declspec(dllexport) void SetVoteEventCallBack(VoteEventCallBack cb);	//设置投票事件回调
  ```
  
  ## 键盘事件回调
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |unsigned long long keySn|键盘SN|||
  |float Time|反馈时间|||
  |int mode|回调反馈数据模式|||
  |int RxMode|预留|||
  |const char* sInfo|回调反馈数据|根据模式解析数据||
  
  回调接口代码:
  ```C++
  typedef void(*KeyEventCallBack)(int iBaseID, unsigned long long keySn, float Time, int mode, int RxMode, const char* sInfo);// 键盘事件回调
  ```
  设置回调代码:
  ```C++
  extern"C" __declspec(dllexport) void SetKeyEventCallBack(KeyEventCallBack cb);	//设置键盘事件回调回调
  ```
  
  ## 语音事件回调
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |unsigned long long keySn|键盘SN|||
  |float Time|反馈时间|||
  |int mode|回调反馈数据模式|||
  |USHORT voiceId|语音按键ID|||
  |USHORT dataIndex|语音数据包ID|||
  |const char* data|回调反馈数据|根据模式解析数据||
  |USHORT dataIndex|语音数据包ID|||
  |int len|语音数据长度|||
  |int sampleRate| |||
  |int bitsPerSample| |||
  |int channel| |||
  |int recFlag| |||
  
  回调接口代码:
  ```C++
  typedef void(*VoiceStreamEventCallBack)(int iBaseID, ULONG keySn, int mode, USHORT voiceId, USHORT dataIndex, const char* data, int len, int sampleRate, int bitsPerSample, int channel, int recFlag);//
  ```
  设置回调代码:
  ```C++
  extern"C" __declspec(dllexport) void SetVoiceStreamEventCallBack(VoiceStreamEventCallBack); //设置语音数据回调函数
  ```
  
3d97a70c   DMchen   1.首次上传 通讯协议-SDK_D...
153
  # 基站参数部分
62d2ef20   DMchen   1.整理部分SDK_DLL部分[内...
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
  ## 复位基站
  函数名称:resetBase
  参数说明:
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool resetBase(UCHAR iBaseID);
  ```
  
  ## 获取SDK Ver
  函数名称:GetSDKVer
  返回参数:字符串
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) char* GetSDKVer();
  ```
  
  ## 退出线程释放资源
  函数名称:SetThread_Exit
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) void SetThread_Exit(void);	//退出线程释放资源
  ```
  # 投票业务部分
  ## 设置空闲模式功能[广播]
  函数名称:EndFreeEvent
  功能:设置空闲模式功能[广播]
  说明:把SDK管理的所有基站的在线键盘设置为空闲模式
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool EndFreeEvent(void);		//空闲模式功能
  ```
  
  ## 带参数进入空闲模式
  函数名称:ExitEvent
  功能:退出当前模式功能[广播]
  说明:把SDK管理的所有基站的在线键盘设置为空闲模式,并在回调 函数中说明是什么模式切换到空闲模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |int mode_ID|用户提供的当前需要的模式||websocket情况下使用|
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool ExitEvent(int mode_ID);		//带参数进入空闲模式功能
  ```
  ## 签到功能[广播]
  函数名称:Start_Sign_in_Event
  功能:签到功能[广播]
  说明:把SDK管理的所有基站的在线键盘设置为签到功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |int Moed1|签到模式| 1:指定键签到 <br> 2:PIN码签到(默认值)||
  |int Moed2|修改模式|0:不可修改 <br>1:可以修改(默认值)||
  |int Moed3|迫选模式|0:(默认值)||
  |int Moed4|选项数目|10:(默认值)||
  |int Moed5|可选项数|1≤N≤14 (指定位数才需要设置)||
  |int KeyValue|指定按键键值|0:未指定[OK键签到] <br>1:1 <br>2:2 <br> 3:3 <br> 4:4 <br> 5:5 <br> 6:6 <br> 7:7 <br> 8:8 <br> 9:9 <br> 10:0 <br> 11:上键  <br> 12:下键 <br> 13:OK  <br> 14:ESC  <br> 15: Menu ||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_Sign_in_Event(
  	int Moed1 = 1, 
  	int Moed2 = 0, 
  	int Moed3 = 0, 
  	int Moed4 = 0, 
  	int Moed5 = 0, 
  	int KeyValue=0);	//开始签到功能
  ```
  
  ## 签到功能[指定键盘SN]
  函数名称:Start_Sign_in_Event_SN
  功能:签到功能[指定键盘SN]
  说明:把SDK管理的指定在线键盘设置为签到功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|指定键盘SN|||
  |int Moed1|签到模式| 1:指定键签到 <br> 2:PIN码签到(默认值)||
  |int Moed2|修改模式|0:不可修改 <br>1:可以修改(默认值)||
  |int Moed3|迫选模式|0:(默认值)||
  |int Moed4|选项数目|10:(默认值)||
  |int Moed5|可选项数|1≤N≤14 (指定位数才需要设置)||
  |int KeyValue|指定按键键值|0:未指定[OK键签到] <br>1:1 <br>2:2 <br> 3:3 <br> 4:4 <br> 5:5 <br> 6:6 <br> 7:7 <br> 8:8 <br> 9:9 <br> 10:0 <br> 11:上键  <br> 12:下键 <br> 13:OK  <br> 14:ESC  <br> 15: Menu ||
  |UCHAR Txt_Len|提示标题长度|1~16字节||
  |const char* Txt|提示标题|字符串||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_Sign_in_Event_SN(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	int Moed1, 
  	int Moed2, 
  	int Moed3, 
  	int Moed4, 
  	int Moed5, 
  	int KeyValue, 
  	UCHAR Txt_Len, 
  	const char* Txt);	//开始签到功能
  ```
  
  ## 数字题功能[广播]
  函数名称:Start_Number_Event
  功能:数字题功能[广播]
  说明:把SDK管理的所有基站的在线键盘设置为数字功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  |---|---|---|---|
  |secrecyMode|保密模式|0:不保密(默认值)<br>1:保密||
  |modifyMode|修改模式|0:不可修改<br>1:可以修改(默认值)|
  |aswOption|按键模式|0:无规则 (S6最多16位,T2最多14位)<br>1:预留<br>2:预留<br>3:带小数位上下限(T2不支持)|
  |digits|小数位数|0:没有小数点<br>1:一位小数点<br>2:二位小数点|
  |numMin|下限|aswOption=3<br>digits=0 范围:0~65535 <br> digits=1 范围:0~6553 <br> digits=2 范围:0~655|
  |numMax|上限|aswOption=3<br>digits=0 范围:0~65535 <br> digits=1 范围:0~6553 <br> digits=2 范围:0~655|
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_Number_Event(
  	int Moed1 = 1, 
  	int Moed2 = 0, 
  	int Moed3 = 0, 
  	int digits = 0, 
  	USHORT numMax = 0, 
  	USHORT numMin = 0);	//
  ```
  
  ## 数字题功能[指定键盘SN]
  函数名称:Start_Number_Event_SN
  功能:数字题功能[指定键盘SN]
  说明:把SDK管理的指定在线键盘设置为数字题功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|指定键盘SN|||
  |secrecyMode|保密模式|0:不保密(默认值)<br>1:保密||
  |modifyMode|修改模式|0:不可修改<br>1:可以修改(默认值)|
  |aswOption|按键模式|0:无规则 (S6最多16位,T2最多14位)<br>1:预留<br>2:预留<br>3:带小数位上下限(T2不支持)|
  |digits|小数位数|0:没有小数点<br>1:一位小数点<br>2:二位小数点|
  |numMin|下限|aswOption=3<br>digits=0 范围:0~65535 <br> digits=1 范围:0~6553 <br> digits=2 范围:0~655|
  |numMax|上限|aswOption=3<br>digits=0 范围:0~65535 <br> digits=1 范围:0~6553 <br> digits=2 范围:0~655|
  |UCHAR Txt_Len|提示标题长度|1~16字节||
  |Txt|提示标题|字符串,长度最多不超过16个字节|
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_Number_Event_SN(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	int Moed1, 
  	int Moed2, 
  	int Moed3, 
  	int digits, 
  	USHORT numMax, 
  	USHORT numMin, 
  	UCHAR Txt_Len, 
  	const char* Txt);	//
  ```
  
  ## 判断题功能[广播]
  函数名称:Start_TrueFalse_Event
  功能:判断题功能[广播]
  说明:把SDK管理的所有基站的在线键盘设置为判断题功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  |---|---|---|---|
  | optionsMode    | 选项类别     | 1:True/False 对/错 </br>2:Yes/No 是/否</br> 3:√/×|
  | secrecyMode    | 保密模式     | 0:不保密(默认值) </br> 1:保密|
  | modifyMode     | 修改模式     | 0:不可修改</br>1:可以修改(默认值)|
  
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_TrueFalse_Event(
  	int Moed1 = 1, 
  	int Moed2 = 0, 
  	int Moed3 = 0);
  ```
  
  ## 判断题功能[指定键盘SN]
  函数名称:Start_TrueFalse_Event_SN
  功能:判断题功能[指定键盘SN]
  说明:把SDK管理的指定在线键盘设置为判断题功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|指定键盘SN|||
  | optionsMode    | 选项类别     | 1:True/False 对/错 </br>2:Yes/No 是/否</br> 3:√/×|
  | secrecyMode    | 保密模式     | 0:不保密(默认值) </br> 1:保密|
  | modifyMode     | 修改模式     | 0:不可修改</br>1:可以修改(默认值)|
  |UCHAR Txt_Len|提示标题长度|1~16字节||
  |Txt|提示标题|字符串,长度最多不超过16个字节|
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool T2_Start_TrueFalse_Event(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	int Moed1, 
  	int Moed2, 
  	int Moed3, 
  	UCHAR Txt_Len, 
  	const char* Txt);	//
  ```
  
  ## 选择题功能[广播]
  函数名称:Start_TrueFalse_Event
  功能:选择题功能[广播]
  说明:把SDK管理的所有基站的在线键盘设置为选择题功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  |---|---|---|---|
  |optionsMode|选项类别|1:显示字母(默认值) </br>2:显示数字 |
  |secrecyMode|保密模式|0:不保密(默认值)</br>1:保密 |
  |modifyMode|修改模式|0:不可修改  </br>1:可以修改(默认值) |
  |lessMode|迫选模式| 0:可缺选(默认值) </br>1:不可缺选</br>2:允许重复输入</br>3:允许重复输入且不可缺选 |
  | options|选项数目|1≤M≤10(默认值4)|
  | optionalN|可选项数|1≤N≤M(默认值1)|
  
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_Choice_Event(
  	int Moed1 = 1, 
  	int Moed2 = 0, 
  	int Moed3 = 0, 
  	int Moed4 = 0, 
  	int Moed5 = 0, 
  	int Moed6 = 0);
  ```
  
  ## 选择题功能[指定键盘SN]
  函数名称:Start_Choice_Event_SN
  功能:选择题功能[指定键盘SN]
  说明:把SDK管理的指定在线键盘设置为选择题功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|指定键盘SN|||
  |optionsMode|选项类别|1:显示字母(默认值) </br>2:显示数字 |
  |secrecyMode|保密模式|0:不保密(默认值)</br>1:保密 |
  |modifyMode|修改模式|0:不可修改  </br>1:可以修改(默认值) |
  |lessMode|迫选模式| 0:可缺选(默认值) </br>1:不可缺选</br>2:允许重复输入</br>3:允许重复输入且不可缺选 |
  | options|选项数目|1≤M≤10(默认值4)|
  | optionalN|可选项数|1≤N≤M(默认值1)|
  |UCHAR Txt_Len|提示标题长度|1~16字节||
  |Txt|提示标题|字符串,长度最多不超过16个字节|
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_Choice_Event_SN(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	int Moed1, 
  	int Moed2, 
  	int Moed3, 
  	int Moed4, 
  	int Moed5, 
  	int Moed6, 
  	UCHAR Txt_Len, 
  	const char* Txt);
  ```
  
  ## 语音题功能[广播]
  函数名称:Start_Voice_Event
  功能:语音题功能[广播]
  说明:把SDK管理的所有基站的在线键盘设置为语音题功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  |---|---|---|---|
  |recordingMode|录音模式|0:按键录音(默认值)|
  |submitTimes|提交次数|0 (0:不限制, 默认值0)|
  |recordingTimeLimit|预留|0|
  |recordingFormat|预留|0(默认值0)|
  |recordAudioFormat|音频格式|0:mp3(默认值)<br>1:实时流|
  
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_Voice_Event(
  	int Moed1, 
  	int Time, 
  	int Num, 
  	int Alert, 
  	int OutMode);
  ```
  
  ## 语音题功能[指定键盘SN]
  函数名称:Start_Voice_Event_SN
  功能:语音题功能[指定键盘SN]
  说明:把SDK管理的指定在线键盘设置为语音题功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|指定键盘SN|||
  |recordingMode|录音模式|0:按键录音(默认值)|
  |submitTimes|提交次数|0 (0:不限制, 默认值0)|
  |recordingTimeLimit|预留|0|
  |recordingFormat|预留|0(默认值0)|
  |recordAudioFormat|音频格式|0:mp3(默认值)<br>1:实时流|
  |UCHAR Txt_Len|提示标题长度|1~16字节||
  |Txt|提示标题|字符串,长度最多不超过16个字节|
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_Voice_Event_SN(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	int Moed1, 
  	int Time, 
  	int Num, 
  	int Alert, 
  	int OutMode, 
  	UCHAR Txt_Len, 
  	const char* Txt);//
  ```
  
  ## 自由题功能
  函数名称:Start_Free_Question_Event
  功能:自由题功能
  说明:把SDK管理的所有基站的在线键盘设置为自由题功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  |---|---|---|---|
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|指定键盘SN|||
  
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_Free_Question_Event(
  	UCHAR iBaseID, 
  	ULONG KeySN);
  ```
  
  ## 抢答题功能
  
  函数名称:Start_Rush_Answer_Event
  功能:抢答题功能
  说明:把SDK管理的所有基站的在线键盘设置为抢答题功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  |---|---|---|---|
  |rushAnswerMode| 抢答模式|0:普通抢答(默认值)|
  |Moed2| 预留|0:(默认值)|
  |modifyMode|修改模式|0:不可修改<br>1:可以修改(默认值)|
  
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_Rush_Answer_Event(
  	int Moed1 = 1, 
  	int Moed2 = 0, 
  	int Moed3 = 0);	//抢答
  ```
  
  ## 抢答题功能[指定键盘SN]
  函数名称:Start_Rush_Answer_Event_SN
  功能:抢答题功能[指定键盘SN]
  说明:把SDK管理的指定在线键盘设置为抢答题功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|指定键盘SN|||
  |rushAnswerMode| 抢答模式|0:普通抢答(默认值)|
  |Moed2| 预留|0:(默认值)|
  |modifyMode|修改模式|0:不可修改<br>1:可以修改(默认值)|
  |UCHAR Txt_Len|提示标题长度|1~16字节||
  |Txt|提示标题|字符串,长度最多不超过16个字节|
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_Rush_Answer_Event_SN(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	int Moed1 = 1, 
  	int Moed2 = 0, 
  	int Moed3 = 0); //抢答模式
  ```
  
  ## 填空题功能
  
  函数名称:Start_Rush_Answer_Event
  功能:填空题功能
  说明:把SDK管理的所有基站的在线键盘设置为填空题功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  |---|---|---|---|
  | optionsMode | 填空类型 | 1:任意输入(默认值) |
  | modifyMode | 预留 | 1: (默认值) |
  | secrecyMode | 预留 | 0: (默认值) |
  
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_TextAnswer_Event(
  	int Moed1 = 1, 
  	int Moed2 = 0, 
  	int Moed3 = 0);
  ```
  
  ## 填空题功能[指定键盘SN]
  函数名称:Start_Rush_Answer_Event_SN
  功能:填空题功能[指定键盘SN]
  说明:把SDK管理的指定在线键盘设置为填空题功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|指定键盘SN|||
  | optionsMode | 填空类型 | 1:任意输入(默认值) |
  | modifyMode | 预留 | 1: (默认值) |
  | secrecyMode | 预留 | 0: (默认值) |
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Start_TextAnswer_Event_SN(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	int Moed1 = 1, 
  	int Moed2 = 0, 
  	int Moed3 = 0); //抢答模式
  ```
  
  ## 模拟测试功能[广播]
  函数名称:MockTest_Event
  功能:模拟测试功能[广播]
  说明:把SDK管理的所有基站的在线键盘设置为自由题功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  |---|---|---|---|
  |UCHAR iBaseID|基站ID|0~32||
  |int Moed1|模式|||
  |UCHAR KeyTime|按键开启时间|||
  |UCHAR GapTime|按键间隔时间|||
  
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool MockTest_Event(
  	UCHAR iBaseID, 
  	int Moed1 = 1, 
  	UCHAR KeyTime = 1,
  	UCHAR GapTime = 1);	//模拟测试[1 报告状态]
  ```
  
  ## 异步测验功能[广播]
  函数名称:TestMode_Event
  功能:异步测验功能[广播]
  说明:把SDK管理的所有基站的在线键盘设置为异步测验功能模式
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  |---|---|---|---|
  |UCHAR iBaseID|基站ID|0~32||
  |int Moed|模式|||
  |USHORT TestNum||||
  
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool TestMode_Event(
  	UCHAR iBaseID, 
  	int Moed, 
  	USHORT TestNum);
  ```
  
  # 键盘设置
  ## 键盘自定义姓名
  ### 设置键盘自定义姓名
  函数名称:SetKeyNameTxt_C100B_S6
  功能:设置键盘自定义姓名,C100B+S6键盘自定义姓名
  参数说明:
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|键盘SN| ||
  |UCHAR Cont|操作类型|0:不操作<br>1:清除<br>2:写入||
  |UCHAR Name_Len|姓名字符串长度| ||
  |const char* Name|姓名字符串| ||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool SetKeyNameTxt(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	UCHAR Cont, 
  	UCHAR Name_Len, 
  	const char *Name);
  ```
  
  ## 键盘自定义姓名[C100B+S6]
  ### 设置C100B+S6键盘自定义姓名
  函数名称:SetKeyNameTxt_C100B_S6
  功能:设置键盘自定义姓名,C100B+S6键盘自定义姓名
  参数说明:
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|键盘SN| ||
  |UCHAR Name_Len|姓名字符串长度| ||
  |const char* Name|姓名字符串| ||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool SetKeyNameTxt_C100B_S6(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	UCHAR Name_Len, 
  	const char* Name);
  ```
  
  ### 获取C100B+S6键盘自定义姓名
  函数名称:GetKeyNameTxt_C100B_S6
  功能:获取键盘自定义姓名,C100B+S6键盘自定义姓名
  参数说明:
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|键盘SN| ||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool GetKeyNameTxt_C100B_S6(
  	UCHAR iBaseID, 
  	ULONG KeySN);
  ```
  
  ### 设置键盘评分[积分]
  函数名称:SetKeyScore
  功能:设置键盘评分[积分]
  参数说明:
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|键盘SN| ||
  |UCHAR Cont|操作类型|0:不操作<br>1:清除<br>2:字符串模式<br>3:五角星模式<br>4:爱心[S6有效]<br>5:写测验题分数[S6有效]||
  |UCHAR Score_Len|积分字符串长度| ||
  |char* Score|积分字符串| ||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool SetKeyScore(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	UCHAR Cont, 
  	UCHAR Score_Len, 
  	char* Score);
  ```
  
  ### 键盘自定义标题字符串[第二行]
  函数名称:SetKeyTitleTxt2
  功能:设置键盘自定义标题字符串[第二行]
  参数说明:
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|键盘SN| ||
  |UCHAR Cont|操作类型|0:不操作<br>1:清除<br>2:写入||
  |UCHAR Mode|操作类型|0:空闲模式[仅T2有效]<br>1:工作模式||
  |UCHAR Txt_Len|字符串长度| ||
  |const char* Txt|字符串| ||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool SetKeyTitleTxt2(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	UCHAR Cont, 
  	UCHAR Mode, 
  	UCHAR Txt_Len, 
  	const char* Txt);
  ```
  
  ### 键盘自定义标题字符串[第三行]
  函数名称:SetKeyTitleTxt3
  功能:设置键盘自定义标题字符串[第三行]
  参数说明:
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|键盘SN| ||
  |UCHAR Cont|操作类型|0:不操作<br>1:清除<br>2:写入||
  |UCHAR Txt_Len|字符串长度| ||
  |const char* Txt|字符串| ||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool SetKeyTitleTxt3(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	UCHAR Cont, 
  	UCHAR Txt_Len, 
  	const char* Txt);
  ```
  
  ### 键盘自定义评分[积分]和标题字符串[第二行]
  函数名称:SetKeyScreTxt2
  功能:设置键盘自定义评分[积分]和标题字符串[第二行]
  参数说明:
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|键盘SN| ||
  |UCHAR Score_Type|操作类型|0:不操作<br>1:清除<br>2:字符串模式<br>3:五角星模式<br>4:爱心[S6有效]<br>5:写测验题分数[S6有效]||
  |UCHAR Score_Len|字符串长度| ||
  |char* Score|字符串| ||
  |UCHAR Txt_Cont|操作类型|0:不操作<br>1:清除<br>2:写入||
  |UCHAR Txt_Len|字符串长度| ||
  |const char* Txt|字符串| ||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool SetKeyScreTxt2(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	UCHAR Score_Type, 
  	UCHAR Score_Len, 
  	char* Score, 
  	UCHAR Txt_Cont, 
  	UCHAR Txt_Len, 
  	const char* Txt);
  ```
  
  ### 键盘自定义短信
  函数名称:SetKeyMessage
  功能:设置键盘自定义短信
  参数说明:
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |ULONG KeySN|键盘SN| ||
  |const char* Txt|字符串| ||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool SetKeyMessage(
  	UCHAR iBaseID, 
  	ULONG KeySN, 
  	const char* Txt);
  ```
  
  ## 键盘暂停休眠时间
  
  设置键盘暂停休眠时间
  函数名称:Key_Pause_Sleep
  参数说明:
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |UCHAR Time|休眠时间| 0:10秒[默认]||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool Key_Pause_Sleep(UCHAR iBaseID, UCHAR Time);// 
  ```
  
  ## 键盘关机设置
3d97a70c   DMchen   1.首次上传 通讯协议-SDK_D...
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
  
  获取键盘关机时间等级
  函数名称:GetKeyboardAutoPowerOffLevel
  参数说明:
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool GetKeyboardAutoPowerOffLevel(UCHAR iBaseID);
  ```
  
  设置键盘关机时间等级
  函数名称:SetKeyboardAutoPowerOffLevel
  参数说明:
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |UCHAR Level|关机时间等级|0:30秒<br>1:2分钟<br>2:15分钟<br>3:45分钟<br>255:不自动关机||
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool SetKeyboardAutoPowerOffLevel(UCHAR iBaseID, UCHAR Level);
  ```
  
62d2ef20   DMchen   1.整理部分SDK_DLL部分[内...
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
  ## 键盘外设操作[仅T2有效]
  
  设置键盘外设操作[仅T2有效]
  函数名称:SetKeyPeripheral
  参数说明:写键盘外设,由led灯、蜂鸣器、马达组合
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  | keySn | 键盘SN |空字符串,为所有在线键盘|
  | ledTimes | Led灯闪烁次数 | 0~255 (0是马上灭,255是长亮)|
  | ledOnTime | Led灯每次开时间 |0~255 (单位0.1s)|
  | ledOffTime | Led灯每次关时间 |0~255 (单位0.1s,为0就是连续亮)|
  | ledColorR | Led灯灯颜色,红值 |0~255(现只支持0灭和1亮,,>1也认为是1)|
  | ledColorG | Led灯灯颜色,绿值 |0~255(现只支持0灭和1亮,,>1也认为是1)|
  | ledColorB | Led灯灯颜色,蓝值 |0~255(现只支持0灭和1亮,,>1也认为是1)|
  | beepTimes | 蜂鸣器响次数 | 0~255 (0是马上响,255是长响) |
  | beepOnTime | 蜂鸣器每次开时间 |0~255 (单位0.1s)|
  | beepOffTime | 蜂鸣器每次关时间 |0~255 (单位0.1s,为0就是连续响)|
  | motorTimes |马达震动次数|0~255|
  | motorOnTime | 马达每次开时间 |0~255 (单位0.1s)|
  | motorOffTime | 马达每次关时间 |0~255 (单位0.1s,为0就是连续振动)|
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool SetKeyPeripheral(
  	UCHAR iBaseID, 
  	ULONG KeySN,
  	UCHAR LED_CTRL, 
  	UCHAR LED_TIMES, 
  	UCHAR LED_TON, 
  	UCHAR LED_TOFF, 
  	UCHAR R, 
  	UCHAR G, 
  	UCHAR B,
  	UCHAR BEEP_CTRL, 
  	UCHAR BEEP_TIMES, 
  	UCHAR BEEP_TON, 
  	UCHAR BEEP_TOFF,
  	UCHAR MOTO_CTRL, 
  	UCHAR MOTO_TIMES, 
  	UCHAR MOTO_TON, 
  	UCHAR MOTO_TOFF);
  ```
  
  ## 键盘遥控关机
  
  遥控关机
  函数名称:SetKeyRemoteShutdown
  参数说明:键盘遥控关机
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  | keySn | 键盘SN |空字符串,为所有在线键盘|
  
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool SetKeyRemoteShutdown(
  	UCHAR iBaseID, 
  	ULONG KeySN);
  ```
  
  ## 键盘ID遥控关机生产模式
  
  键盘ID遥控关机生产模式
  函数名称:SetKeyRemoteShutdown_Pro
  参数说明:键盘遥控关机
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  |UCHAR Mode| 模式 |0~255;0:正常关机 255:一直遥控开机|
  |USHORT KeyIdMin| 开始编号 |1~9999;指定键盘编号范围时候的开始值|
  |USHORT KeyIdMax| 结束编号 |1~9999;指定键盘编号范围时候的结束值|
  
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool SetKeyRemoteShutdown_Pro(
  	UCHAR iBaseID, 
  	UCHAR Mode, 
  	USHORT KeyIdMin, 
  	USHORT KeyIdMax);
  ```
  
  ## 键盘恢复出厂设置
  
  设置键盘恢复出厂设置
  函数名称:SetKeyFactory
  参数说明:
  
  | **参数名称** | **参数说明** | **范围** | **备注** |
  | --- | --- | --- | --- | 
  |UCHAR iBaseID|基站ID|0~32||
  | keySn | 键盘SN |空字符串,为所有在线键盘|
  
  
  接口代码:
  ```C++
  extern"C" __declspec(dllexport) bool SetKeyFactory(
  	UCHAR iBaseID, 
  	ULONG KeySN);
  ```
3d97a70c   DMchen   1.首次上传 通讯协议-SDK_D...
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
  
  ## 异常处理
  
  ### WSCmdApp收到数据异常
  
  WSCmdApp收到异常数据,会不做处理,并返回以下错误信息描述。
  
  接收:
  fun: "error" //功能错误
  baseId: //无该值
  infos:{ "funId":"F0001","code":"10002"}// 
  
  
  指令样例:
  ```json
  {
  	"fun": "error",
  	"infos": {
  		"funId": "F0001",
  		"code": "10002"
  	},
  	"packetTag": "1"
  }
  ```
  
  | **code** | **含义** |
  | --- | --- | 
  |10001|不能正确解析的JSON数据|
  |10002|解析JSON错误|
  |20001|基站未连接|
  |20002|功能不支持|
  |20003|基站ID为负数,应用可以不传ID,默认为0|
  |20004|参数错误|
  |30001|找不到对应的SN|
  |40001|升级功能只能支持一个基站在线|
  |50001|此功能必须指定基站ID|
  |60001|此功能必须指定键盘SN|
  
  | **funId** | **含义** |
  | --- | --- | 
  |F0001|基站未连接|
  |F0002|读基站信道|
  |F0003|写基站信道|
  |F0004|读取基站baseId 、信道、RF功率等级|
  |F0005|写基站baseId|
  |F0006|读基站名称|
  |F0007|写基站名称|
  |F0008|读键盘关机时间等级|
  |F0009|写键盘关机时间等级|
  |F0010|读基站配对码|
  |F0011|写基站配对码|
  |F0012|读基站序列号|
  |F0013|写基站序列号|
  |F0014|读取基站的型号、硬件版本、软件版本、设备SN号|
  |F0015|写基站硬件版本|
  |F0016|读基站类型|
  |F0017|写基站类型|
  |F0018|读基站键盘容量和Lock|
  |F0019|写基站键盘容量和Lock|
  |F0020|读手动获取返回在线信息|
  |F0021|写手动获取返回在线信息|
  |F0022|读基站设备RF功率|
  |F0023|写基站设备RF功率|
  |F0024|基站设备配对模式或基站名称(自定义)|
  |F0025|预留|
  |F0026|读基站快速配对低功率模式|
  |F0027|写基站快速配对低功率模式|
  |F0028|读键盘登录菜单显示允许[S6适用]|
  |F0029|写键盘登录菜单显示允许[S6适用]|
  |F0030|读键盘登录密码[S6适用]|
  |F0031|写键盘登录密码[S6适用]|
  |F0032|读基站名称隐藏开关|
  |F0033|写基站名称隐藏开关|
  |F0034|读基站和键盘之间的心跳开关|
  |F0035|写基站和键盘之间的心跳开关|
  |F0036|读基站语言|
  |F0037|写基站语言|
  |F0038|读基站CRC|
  |F0039|写基站CRC|
  |F0040|写广播投票标题|
  |F0041|核对投票开启密码|
  |F0042|读基站获取投票开启密码|
  |F0043|写基站获取投票开启密码|
  |F0044|读基站用户自定义字符串|
  |F0045|写基站用户自定义字符串|
  |F0046|读基站UID|
  |F0047|写基站UID|
  |F0048|读键盘反馈模式参数|
  |F0049|写键盘反馈模式参数|
  |F0050|读基站当前是开启升级状态|
  |F0051|写基站当前是开启升级状态|
  |F0052|手动停止键盘升级状态|
  |F0053|写键盘当前是开启升级状态|
  |F0054|写踢出单只键盘|
  |F0055|写清掉所有键盘|
  |F0056|写锁定键盘|
  |F0057|写解锁键盘|
  |F0058|写T2键盘第二行文本【空闲模式】|
  |F0059|读考勤基站时钟设置|
  |F0060|写考勤基站时钟设置|
  |F0061|读考勤键盘每秒发送考勤信号次数|
  |F0062|写考勤键盘每秒发送考勤信号次数|
  |F0063|读考勤键盘发送考勤信号功率|
  |F0064|写考勤键盘发送考勤信号功率|
  |F0065|写修改键盘配对码|
  |F0066|写键盘功能提示预设字符串反馈|
  |F0067|写空闲模式|
  |F0068|单选多选带计时模式|
  |F0069|判断题带计时模式|
  |F0070|抢答题带计时模式|
  |F0071|数字题带计时模式|
  |F0072|绑定带计时模式|
  |F0073|基站快速配对|
  |F0074|读基站特征数据|
  |F0075|遥控关机|
  |F0076|读键盘在线SN|
  |F0077|写基站复位|
  |F0078|写键盘外设指令|
  |F0079|写键盘配对码|
  |F0080|写锁定键盘,解锁键盘|
  |F0081|填空题模式|
  |F0082|读NFC信息 姓名|
  |F0083|写NFC信息 姓名|
  |F0084|写NFC配对码|
  |F0085|NFC清除指令|
  |F0086|多题题型开始|
  |F0087|多题题型暂停|
  |F0088|多题题型继续上一次|
  |F0089|多题题型正确答案下发|
  |F0090|多题题型已答题结果转移|
  |F0091|写白名单|
  |F0092|读白名单|
  |F0093|写基站黑名单|
  |F0094|读基站黑名单|
  |F0095|C100B+S6[旧款]写键盘姓名|
  |F0096|C100B+S6[旧款]读键盘姓名|
  |F0097|键盘暂停休眠操作|
  |F0098|异步测试模式|
  |F0099|Tcp参数读|
  |F0100|Tcp参数写|
  |F0101|自定义题型参数|
  |F0102|写S6短信|
  |F0103|写S6键盘FSN|
  |F0104|自由题模式|
  |F0105|基站AES|
  |F0106|基站AES 克隆|
  |F0107|基础参数配置|
  |F0108|删除指定白名单SN|
  |F0109|追加指定SN 到白名单|
  |F0110|语音题模式|
  |F0111|多题快答模式|
  |F0112|快速配对模式|
  |F0113|键盘测试模式|
  |F0114|写入积分和第二行文本|
  |F0115|写入键盘姓名|
  |F0116|键盘关机时间等级|