Commit bb7caf40e8134fbae573674ce2f6a80f1044c7a0

Authored by DMchen
1 parent 5f377e7e

1.SDK应用部分临时备份。

Showing 1 changed file with 587 additions and 789 deletions
通讯协议-SDK应用部分.md
... ... @@ -57,62 +57,43 @@ SunVoteWSTrayapp程序中config.ini配置文件中可设置WebSocket的端口,
57 57  
58 58 下发:应用程序 - \> SunVoteWSTrayapp
59 59  
  60 +```json
60 61 {
61   -
62   -  fun:\"\" // 功能定义
63   -
64   -  baseId: 1// 基站id,数字类型
65   -
66   -  params:{} //参数对象/数组
67   -
68   -  packetTag:\"\" //数据包标签字符串
69   -
  62 + fun: "" // 功能定义
  63 + baseId: 1 // 基站id,数字类型
  64 + params: {} //参数对象/数组
  65 + packetTag: "" //数据包标签字符串
70 66 }
  67 +```
71 68  
72   -fun 为功能对应的名称 如:\"readBaseStationID\" 读取基站的id,
73   -\"startChoices\" //开始选择题, \"stopChoices\" //停止选择题
  69 +fun 为功能对应的名称 如:"readBaseStationID" 读取基站的id,"startChoices" //开始选择题, "stopChoices" //停止选择题.
74 70  
75 71 baseId:基站ID,用来区分基站标志,0代表所有基站,1代表1号基站。
76   -
77 72 params:参数,功能相对于的参数,可以是数组或字段。
78   -
79   -packerTag:
80   -这个是扩展字段,内容需要应用程序管理,功能相应的反馈指令packerTag位置会反馈相同字符串,方便应用程序跟踪记录。
  73 +packerTag:这个是扩展字段,内容需要应用程序管理,功能相应的反馈指令packerTag位置会反馈相同字符串,方便应用程序跟踪记录。
81 74  
82 75 反馈:SunVoteWSTrayapp-\> 应用程序
83 76  
  77 +```json
84 78 {
85   -
86   -fun:\"\" //功能定义
87   -
88   -baseId:1 //基站id,数字类型
89   -
90   -infos: {}//信息对象/数组
91   -
92   -packetTag:\"\"// 数据包标签字符串。
93   -
  79 + fun: "" //功能定义
  80 + baseId: 1 //基站id,数字类型
  81 + infos: {} //信息对象/数组
  82 + packetTag: "" // 数据包标签字符串。
94 83 }
  84 +```
95 85  
96   -fun: 功能对应的名称,如:\"BaseStationID\"读取基站id, \" answerChoices
97   -\" //选择题键盘反馈值.
98   -
  86 +fun: 功能对应的名称,如:"BaseStationID"读取基站id, " answerChoices" //选择题键盘反馈值.
99 87 baseId: 基站ID,用来区分基站标志;0特殊代表所有基站,1代表1号基站。
100   -
101 88 infos: SunVoteWSTrayapp反馈给APP层的数据。具体详见具体功能定义。
102   -
103   -packetTag:
104   -这个是扩展字段,内容需要应用程序管理,反馈接收到的字符串。
  89 +packetTag:这个是扩展字段,内容需要应用程序管理,反馈接收到的字符串。
105 90  
106 91 字段值说明:
107   -
108 92 反馈infos中的状态字段state,OK表示成功,FAIL表示失败。
109   -
110 93 反馈infos中的硬件参数字段的值,FAIL表示失败,其他值为成功。
111   -
112 94 X\~Y:范围内的值特指整数。
113 95  
114 96 # 通信方式
115   -
116 97 数据交互采取发送\<\--\>应答的方式。应用程序发送数据到SunVoteWSTrayapp,SunVoteWSTrayapp收到后执行完成后回复。
117 98  
118 99 应用程序没有数据发送给SunVoteWSTrayapp时,需要发送心跳,SunVoteWSTrayapp收到心跳后会回复心跳,用于判断与应用程序的连接状态。(配置文件中,如果启用了心跳检查,应用程序如果未按要求发送心跳,SunVoteWSTrayapp会断开当前连接,重新尝试连接)
... ... @@ -120,7 +101,6 @@ X\~Y:范围内的值特指整数。
120 101 # 编程流程说明
121 102  
122 103 用户使用SunVoteWSTrayapp编程的基本流程如下:
123   -
124 104 配置参数:(可配置、详情见配置文件config.ini)
125 105  
126 106 1、sdk-\>role websocket
... ... @@ -145,17 +125,14 @@ X\~Y:范围内的值特指整数。
145 125  
146 126 下发:应用程序 - \>SunVoteWSTrayapp
147 127  
  128 +```json
148 129 {
149   -
150   -fun:\"\" // 功能定义
151   -
152   -baseId: 1// 基站id,数字类型
153   -
154   -params:{} //参数对象/数组
155   -
156   -packetTag:\"\" //数据包标签字符串
157   -
  130 + fun: "" // 功能定义
  131 + baseId: 1 // 基站id,数字类型
  132 + params: {} //参数对象/数组
  133 + packetTag: "" //数据包标签字符串
158 134 }
  135 +```
159 136  
160 137 fun:为功能定义,下发命令,要下发的命令函数
161 138  
... ... @@ -168,12 +145,14 @@ packerTag:
168 145  
169 146 反馈:SunVoteWSTrayapp -> 应用程序
170 147  
  148 +```json
171 149 {
172   -fun:"" //功能定义
173   -baseId:1 //基站id,数字类型
174   -infos: {}//信息对象/数组
175   -packetTag:""//数据包标签字符串,用于区别当前指令与其他指令。SunVoteWSTrayapp发送给应用程序的用自增数字标记。SunVoteWSTrayapp回复应用程序的,直接回填SunVoteWSTrayapp收到的标签。
  150 + fun: "" //功能定义
  151 + baseId: 1 //基站id,数字类型
  152 + infos: {} //信息对象/数组
  153 + packetTag: "" // 数据包标签字符串,用于区别当前指令与其他指令。SunVoteWSTrayapp发送给应用程序的用自增数字标记。SunVoteWSTrayapp回复应用程序的,直接回填SunVoteWSTrayapp收到的标签。
176 154 }
  155 +```
177 156  
178 157 fun:同下发描述.
179 158 baseId:同下发描述.
... ... @@ -296,7 +275,7 @@ packetTag:&quot;1&quot;
296 275 指令样例:
297 276 ```json
298 277 {
299   - "fun": "connectBase",
  278 + "fun": "disconnectBase",
300 279 "baseId": 1,
301 280 "infos": {
302 281 "state": "OK"
... ... @@ -305,32 +284,26 @@ packetTag:&quot;1&quot;
305 284 }
306 285 ```
307 286  
308   -{\
309   -    \"fun\":\"disconnectBase\",
310   -
311   - \"baseId\":1,\
312   -   \"packetTag\":\"1\"\
313   -}
314 287  
315 288 ### 复位基站
316 289  
317 290 发送:
318 291  
319   -fun: \"resetBase\" //复位基站
320   -
  292 +fun: "resetBase" //复位基站
321 293 baseId:1,
322   -
323 294 params:{} //无该值
324 295  
325 296 指令样例:
326 297  
327   -{\
328   -    \"fun\":\"resetBase\",
  298 +```json
  299 +{
  300 + "fun": "resetBase",
  301 + "baseId": 1,
  302 + "packetTag": "1"
  303 +}
  304 +```
329 305  
330   -\"baseId\":1,
331 306  
332   - \"packetTag\":\"1\"\
333   -}
334 307  
335 308 注意:B200支持此命令
336 309  
... ... @@ -349,7 +322,7 @@ params:{} //无该值
349 322 |**Json字段**|**字段含义**|**赋值及含义**|
350 323 | --- | --- | --- |
351 324 |keySnList|指定键盘列表|keySn数组,为空表示所有键盘都参与。|
352   -|| | |
  325 +
353 326  
354 327  
355 328 在停止作答时,各类答题都可指定停止作答键盘,也可以为空。
... ... @@ -359,7 +332,7 @@ params:{} //无该值
359 332 |**Json字段**|**字段含义**|**赋值及含义**|
360 333 | --- | --- | --- |
361 334 |keySnList|指定键盘列表|keySn数组,为空表示所有键盘都参与。|
362   -||||
  335 +
363 336  
364 337  
365 338 如果指定了键盘,则会逐个返回指定键盘的接收状态。收到的infos数组对象如下:
... ... @@ -368,120 +341,114 @@ params:{} //无该值
368 341 | --- | --- | --- |
369 342 |keySn|键盘Sn||
370 343 |state|状态|OK表示成功|
371   -||||
  344 +
372 345  
373 346  
374 347 开始作答
375 348  
376 349 指令样例:
377 350  
378   -{\
379   -    \"title\":\"输入账号,OK键提交\",\
380   -    \"keySnList\":\[\
381   -        {\
382   -            \"keySn\":\"1837454011\"\
383   -        },\
384   -        {\
385   -            \"keySn\":\"1837454012\"\
386   -        }\
387   -    \]\
  351 +```json
  352 +{...        
  353 + "keySnList": [{            
  354 + "keySn": "1837454011"        
  355 + }, {            
  356 + "keySn": "1837454012"        
  357 + }]
388 358 }
  359 +```
389 360  
390   -键盘的接收状态返回
391 361  
392   -fun: \"startXXKeypad\" //开始XX作答键盘(XX是开始作答对应具体名称)
393 362  
394   -baseId: 1//接收到指令的基站ID
  363 +键盘的接收状态返回
395 364  
  365 +fun: "startXXKeypad" //开始XX作答键盘(XX是开始作答对应具体名称)
  366 +baseId: 1//接收到指令的基站ID
396 367 infos:{}//数组对象
397   -
398 368 指令样例:
399 369  
400   -{\
401   -    \"fun\":\"startBindKeypad\",\
402   -    \"baseId\":1,\
403   -    \"infos\":\[\
404   -        {\
405   -            \"keySn\":\"1837454011\",\
406   -            \"state\":\"OK\"\
407   -        }\
408   -   \],\
409   -    \"packetTag\":\"1\"\
  370 +```json
  371 +{    
  372 + "fun": "startBindKeypad",
  373 + "baseId": 1,
  374 + "infos": [{            
  375 + "keySn": "1837454011",
  376 + "state": "OK"        
  377 + }],
  378 + "packetTag": "1"
410 379 }
  380 +```
411 381  
412   -回复键盘的接收状态返回
413 382  
414   -发送:
415 383  
416   -fun: \"startXXKeypad\" //开始xx作答键盘
  384 +回复键盘的接收状态返回
417 385  
418   -baseId:\"1\"//收到的基站ID
  386 +发送:
419 387  
  388 +fun: "startXXKeypad" //开始xx作答键盘
  389 +baseId:"1"//收到的基站ID
420 390 params:{} //为空
421 391  
422 392 指令样例:
423 393  
424   -{\
425   -    \"fun\":\"startBindKeypad\",\
426   -    \"baseId\":1,\
427   -    \"packetTag\":\"1\"\
  394 +```json
  395 +{    
  396 + "fun": "startBindKeypad",
  397 + "baseId": 1,
  398 + "packetTag": "1"
428 399 }
  400 +```
429 401  
430 402 停止作答
431 403  
432 404 指令样例:
433 405  
434   -{...\
435   -    \"keySnList\":\[\
436   -        {\
437   -            \"keySn\":\"1837454011\"\
438   -        },\
439   -        {\
440   -            \"keySn\":\"1837454012\"\
441   -        }\
442   -    \]\
  406 +```json
  407 +{...        
  408 + "keySnList": [{            
  409 + "keySn": "1837454011"        
  410 + }, {            
  411 + "keySn": "1837454012"        
  412 + }]
443 413 }
  414 +```
444 415  
445 416 键盘的接收状态返回
446 417  
447   -fun: \"stopXXKeypad\" //停止XX作答键盘(XX是停止作答对应具体名称)
448   -
  418 +fun: "stopXXKeypad" //停止XX作答键盘(XX是停止作答对应具体名称)
449 419 baseId: 1//接收到指令的基站ID
450   -
451 420 infos:{}//数组对象
452 421  
453 422 指令样例:
454 423  
455   -{\
456   -    \"fun\":\"stopBindKeypad\",\
457   -    \"baseId\":1,\
458   -    \"infos\":\[\
459   -        {\
460   -            \"keySn\":\"1837454011\",\
461   -            \"state\":\"OK\"\
462   -        }\
463   -   \],\
464   -    \"packetTag\":\"1\"\
  424 +```json
  425 +{
  426 + "fun": "stopBindKeypad",
  427 + "baseId": 1,
  428 + "infos": [{
  429 + "keySn": "1837454011",
  430 + "state": "OK"
  431 + }],
  432 + "packetTag": "1"
465 433 }
  434 +```
466 435  
467 436 回复键盘的接收状态返回
468 437  
469 438 发送:
470 439  
471   -fun: \"stopXXKeypad\" //停止xx作答键盘
472   -
473   -baseId: \"1\"//收到的基站ID
474   -
  440 +fun: "stopXXKeypad" //停止xx作答键盘
  441 +baseId: "1"//收到的基站ID
475 442 params:{} //为空
476 443  
477 444 指令样例:
478   -~~~
  445 +```json
479 446 {
480   -    "fun":"stopBindKeypad",
481   -    "baseId":1,
482   -    "packetTag":"1"
  447 + "fun": "stopBindKeypad",
  448 + "baseId": 1,
  449 + "packetTag": "1"
483 450 }
484   -~~~
  451 +```
485 452  
486 453  
487 454 ### 签到设备
... ... @@ -490,8 +457,7 @@ params:{} //为空
490 457  
491 458 发送:
492 459  
493   -fun: \"startBind\" //开始签到
494   -
  460 +fun: "startBind" //开始签到
495 461 params:{}
496 462  
497 463  
... ... @@ -503,40 +469,35 @@ params:{}
503 469 | limitNumber | 指定位数 | 0-不指定位数(默认值) </br> 1-指定位数 |
504 470 | options | 固定值 | 固定值10|
505 471 | optionalN | 可选数字 | 1≤N≤10 (指定位数才需要设置, 10为0) |
506   -| 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 |
507   -+----------------+--------------+-------------------------------------+
  472 +| 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 |
508 473 | tipTitle | 提示标题 | 16个字节 |
509   -+----------------+--------------+-------------------------------------+
510 474  
511   -指令样例:
512 475  
513   -~~~
  476 +指令样例:
514 477  
  478 +```json
515 479 {
516   -    "fun":"startBind",
517   -   "baseId":0,
518   -    "params":{
519   -        "bindMode":"1",
520   -        "lessMode":"0",
521   -        "modifyMode":"1",
522   -        "limitNumber":"1",
523   -        "options":"10",
524   -        "optionalN":"10",
525   - "keyValue":"0"
526   -    },
527   -    "packetTag":"1"
  480 + "fun": "startBind",
  481 + "baseId": 0,
  482 + "params": {
  483 + "bindMode": "1",
  484 + "lessMode": "0",
  485 + "modifyMode": "1",
  486 + "limitNumber": "1",
  487 + "options": "10",
  488 + "optionalN": "10",
  489 + "keyValue": "0"
  490 + },
  491 + "packetTag": "1"
528 492 }
529   -
530   -~~~
  493 +```
531 494  
532 495 #### 接收签到信息
533 496  
534 497 接收:
535 498  
536   -fun: \"answerBind\" //签到返回
537   -
538   -baseId: \"1\"//接收到指令的基站ID
539   -
  499 +fun: "answerBind" //签到返回
  500 +baseId: "1"//接收到指令的基站ID
540 501 infos:{}
541 502  
542 503 | Json字段|字段含义|赋值及含义|
... ... @@ -547,57 +508,54 @@ infos:{}
547 508  
548 509 指令样例:
549 510  
550   -~~~
  511 +```json
551 512 {
552   -    "fun":"answerBind",
553   -    "baseId":1,
554   -    "infos":{
555   -        "time":"2.42",
556   -        "keySn":"1479824643",
557   -        "keyValue":"1234"
558   -    },
559   -  "packetTag":"1"
  513 + "fun": "answerBind",
  514 + "baseId": 1,
  515 + "infos": {
  516 + "time": "2.42",
  517 + "keySn": "1479824643",
  518 + "keyValue": "1234"
  519 + },
  520 + "packetTag": "1"
560 521 }
561   -~~~
  522 +```
562 523  
563 524 #### 停止签到
564 525  
565 526 发送:
566 527  
567   -fun: \"stopBind\" //停止签到
568   -
  528 +fun: "stopBind" //停止签到
569 529 params:{} //默认空
570 530  
571 531 指令样例:
572 532  
573   -~~~
  533 +```json
574 534 {
575   -    "fun":"stopBind",
576   -   "baseId":0,
577   -     "packetTag":"1"
  535 + "fun": "stopBind",
  536 + "baseId": 0,
  537 + "packetTag": "1"
578 538 }
579   -~~~
  539 +```
580 540  
581 541 接收:
582 542  
583   -fun: \"stopBind\" //停止签到
584   -
585   -baseId: \"1\"//收到的基站ID
586   -
587   -infos:{\"state\":\"OK\"}//返回状态,成功为OK
  543 +fun: "stopBind" //停止签到
  544 +baseId: "1"//收到的基站ID
  545 +infos:{"state":"OK"}//返回状态,成功为OK
588 546  
589 547 指令样例:
590 548  
591   -~~~
  549 +```json
592 550 {
593   -    "fun":"stopBind",
594   -    "baseId":1,
595   -    "infos":{
596   -          "state":"OK"
597   -    },
598   -    "packetTag":"1"
  551 + "fun": "stopBind",
  552 + "baseId": 1,
  553 + "infos": {
  554 + "state": "OK"
  555 + },
  556 + "packetTag": "1"
599 557 }
600   -~~~
  558 +```
601 559  
602 560 #### 支持设备说明
603 561  
... ... @@ -606,7 +564,6 @@ infos:{\&quot;state\&quot;:\&quot;OK\&quot;}//返回状态,成功为OK
606 564 |B100-2.4G+S6|支持||
607 565 |B200-2.4G+S6|支持||
608 566 |B200-5.8G+T2|支持||
609   -||||
610 567  
611 568 ### 选择题
612 569  
... ... @@ -614,8 +571,7 @@ infos:{\&quot;state\&quot;:\&quot;OK\&quot;}//返回状态,成功为OK
614 571  
615 572 发送:
616 573  
617   -fun: \"startChoices\" //开始选择题
618   -
  574 +fun: "startChoices" //开始选择题
619 575 params:{}
620 576  
621 577 |Json字段|字段含义|赋值及含义|
... ... @@ -628,135 +584,118 @@ params:{}
628 584 | options | 选项数目 | 1≤M≤10(默认值4) |
629 585 | optionalN | 可选项数 | 1≤N≤M(默认值1) |
630 586 | tipTitle | 提示标题 | 16个字节 |
631   -||||
  587 +
632 588  
633 589 指令样例:
634 590  
635   -~~~
  591 +```json
636 592 {
637   -    "fun":"startChoices",
638   - "baseId":0,
639   -    "params":{
640   -        "optionsMode":"1",
641   -        "secrecyMode":"0",
642   -        "modifyMode":"1",
643   -        "lessMode":"0",
644   -        "options":"4",
645   -        "optionalN":"1"
646   - },
647   - "packetTag":"1"
  593 + "fun": "startChoices",
  594 + "baseId": 0,
  595 + "params": {
  596 + "optionsMode": "1",
  597 + "secrecyMode": "0",
  598 + "modifyMode": "1",
  599 + "lessMode": "0",
  600 + "options": "4",
  601 + "optionalN": "1"
  602 + },
  603 + "packetTag": "1"
648 604 }
649   -
650   -~~~
  605 +```
651 606  
652 607 接收:
653 608  
654   -fun: \"startChoices\" //开始选择题
655   -
656   -baseId: \"1\"//接收到指令的基站ID
657   -
658   -infos:{\"state\":\"OK\"}//返回状态,成功为OK
  609 +fun: "startChoices" //开始选择题
  610 +baseId: "1"//接收到指令的基站ID
  611 +infos:{"state":"OK"}//返回状态,成功为OK
659 612  
660 613 指令样例:
661 614  
662   -~~~
  615 +```json
663 616 {
664   -    "fun":"startChoices",
665   -    "baseId":1,
666   -    "infos":{
667   -        "state":"OK"
668   -    },
669   -    "packetTag":"1"
  617 + "fun": "startChoices",
  618 + "baseId": 1,
  619 + "infos": {
  620 + "state": "OK"
  621 + },
  622 + "packetTag": "1"
670 623 }
671   -~~~
  624 +```
672 625  
673 626  
674 627 #### 接收作答
675 628  
676 629 接收:
677 630  
678   -fun: \"answerChoices\" //选择题作答返回
679   -
680   -baseId: \"1\"//接收到指令的基站ID
681   -
  631 +fun: "answerChoices" //选择题作答返回
  632 +baseId: "1"//接收到指令的基站ID
682 633 infos: {}
683 634  
684   - ----------------- --------------- --------------------------------------
685   - Json字段 字段含义 赋值及含义
686   -
687   - time 答题时间 单位秒
688   -
689   - keySn 键盘Sn
  635 +|Json字段|字段含义|赋值及含义|
  636 +|---|---|---|
  637 +| time|答题时间|单位秒|
  638 +|keySn|键盘Sn||
  639 +|keyValue|键值|键盘提交的值|
690 640  
691   - keyValue 键值 键盘提交的值
692   - ----------------- --------------- --------------------------------------
693 641  
694 642 指令样例:
695   -~~~
  643 +```json
696 644 {
697   -    "fun":"answerChoices",
698   -    "baseId":1,
699   -    "infos":{
700   -        "time":"2.42",
701   -        "keySn":"1479824643",
702   -        "keyValue":"A"
703   -    },
704   -    "packetTag":"1"
  645 + "fun": "answerChoices",
  646 + "baseId": 1,
  647 + "infos": {
  648 + "time": "2.42",
  649 + "keySn": "1479824643",
  650 + "keyValue": "A"
  651 + },
  652 + "packetTag": "1"
705 653 }
706   -~~~
  654 +```
707 655  
708 656 #### 停止作答
709 657  
710 658 发送:
711 659  
712   -fun: \"stopChoices\" //停止选择题
713   -
  660 +fun: "stopChoices" //停止选择题
714 661 params:{} //默认空
715   -
716 662 指令样例:
717 663  
718   -
719   -~~~
  664 +```json
720 665 {
721   -    "fun":"stopChoices",
722   - "baseId":0,
723   -    "packetTag":"1"
  666 + "fun": "stopChoices",
  667 + "baseId": 0,
  668 + "packetTag": "1"
724 669 }
725   -~~~
  670 +```
726 671  
727 672 接收:
728 673  
729   -fun: \"stopChoices\" //停止选择题
730   -
731   -baseId: \"1\"//收到的基站ID
732   -
733   -infos:{\"state\":\"OK\"}//返回状态,成功为OK
  674 +fun: "stopChoices" //停止选择题
  675 +baseId: "1"//收到的基站ID
  676 +infos:{"state":"OK"}//返回状态,成功为OK
734 677  
735 678 指令样例:
736 679  
737   -~~~
  680 +```json
738 681 {
739   -    "fun":"stopChoices",
740   -    "baseId":1,
741   -    "infos":{
742   -          "state":"OK"
743   -    },
744   -    "packetTag":"1"
  682 + "fun": "stopChoices",
  683 + "baseId": 1,
  684 + "infos": {
  685 + "state": "OK"
  686 + },
  687 + "packetTag": "1"
745 688 }
746   -~~~
  689 +```
747 690  
748 691  
749 692 #### 支持设备说明
  693 +|基站+键盘|支持/不支持|备注|
  694 +|---|---|---|
  695 +|B100-2.4G+S6|支持||
  696 +|B200-2.4G+S6|支持||
  697 +|B200-5.8G+T2|支持||
750 698  
751   - ----------------------- ----------------------- -----------------------
752   - 基站+键盘 支持/不支持 备注
753   -
754   - B100-2.4G+S6 支持
755   -
756   - B200-2.4G+S6 支持
757   -
758   - B200-5.8G+T2 支持
759   - ----------------------- ----------------------- -----------------------
760 699  
761 700 ### 判断题
762 701  
... ... @@ -764,8 +703,7 @@ infos:{\&quot;state\&quot;:\&quot;OK\&quot;}//返回状态,成功为OK
764 703  
765 704 发送:
766 705  
767   -fun: \"startTrueFalse\" //开始判断题
768   -
  706 +fun: "startTrueFalse" //开始判断题
769 707 params:{}
770 708  
771 709 |**Json字段**|**字段含义**|**赋值及含义**|
... ... @@ -774,129 +712,114 @@ params:{}
774 712 | secrecyMode | 保密模式 | 0-不保密(默认值) </br> 1-保密|
775 713 | modifyMode | 修改模式 | 0-不可修改</br>1-可以修改(默认值)|
776 714 | tipTitle | 提示标题 | 16个字节|
777   -||||
778   -
779   -指令样例:
780 715  
781   -~~~
782 716  
  717 +指令样例:
  718 +```json
783 719 {
784   -    "fun":"startTrueFalse",
785   - "baseId":0,
786   -    "params":{
787   -        "optionsMode":"1",
788   -        "secrecyMode":"0",
789   -        "modifyMode":"1"
790   -    },
791   -    "packetTag":"1"
792   -}
793   -
794   -~~~
795   -
796   -接收:
797   -
798   -fun: \"startTrueFalse\" //开始判断题
  720 + "fun": "startTrueFalse",
  721 + "baseId": 0,
  722 + "params": {
  723 + "optionsMode": "1",
  724 + "secrecyMode": "0",
  725 + "modifyMode": "1"
  726 + },
  727 + "packetTag": "1"
  728 +}
  729 +```
799 730  
800   -baseId: \"1\"//接收到指令的基站ID
  731 +接收:
801 732  
802   -infos:{\"state\":\"OK\"}//返回状态,成功为OK
  733 +fun: "startTrueFalse" //开始判断题
  734 +baseId: "1"//接收到指令的基站ID
  735 +infos:{"state":"OK"}//返回状态,成功为OK
803 736  
804 737 指令样例:
805 738  
806   -~~~
807   -
  739 +```json
808 740 {
809   -    "fun":"startTrueFalse",
810   - "baseId":1,
811   -  "infos":{
812   -       "state":"OK"
813   -    },
814   - "packetTag":"1"
  741 + "fun": "startTrueFalse",
  742 + "baseId": 1,
  743 + "infos": {
  744 + "state": "OK"
  745 + },
  746 + "packetTag": "1"
815 747 }
816   -
817   -~~~
  748 +```
818 749  
819 750 #### 接收作答
820 751  
821 752 接收:
822 753  
823   -fun: \"answerTrueFalse\" //判断题作答返回
824   -
825   -baseId: \"1\"//接收到指令的基站ID
826   -
  754 +fun: "answerTrueFalse" //判断题作答返回
  755 +baseId: "1"//接收到指令的基站ID
827 756 infos: {}
828 757  
829   - ----------------- --------------- --------------------------------------
830   - Json字段 字段含义 赋值及含义
831   -
832   - time 答题时间 单位秒
833   -
834   - keySn 键盘Sn
  758 +|Json字段|字段含义|赋值及含义|
  759 +|---|---|---|
  760 +| time|答题时间|单位秒|
  761 +|keySn|键盘Sn||
  762 +|keyValue|键值|键盘提交的值(1对、2错)|
835 763  
836   - keyValue 键值 键盘提交的值(1对、2错)
837   - ----------------- --------------- --------------------------------------
838 764  
839 765 指令样例:
840 766  
841   -{\
842   -    \"fun\":\"answerTrueFalse\",\
843   -    \"baseId\":1,\
844   -    \"infos\":{\
845   -        \"time\":\"2.42\",\
846   -        \"keySn\":\"1479824643\",\
847   -        \"keyValue\":\"1\"\
848   -    },
849   -
850   - \"packetTag\":\"1\"\
  767 +```json
  768 +{
  769 + "fun": "answerTrueFalse",
  770 + "baseId": 1,
  771 + "infos": {
  772 + "time": "2.42",
  773 + "keySn": "1479824643",
  774 + "keyValue": "1"
  775 + },
  776 + "packetTag": "1"
851 777 }
  778 +```
852 779  
853 780 #### 停止作答
854 781  
855 782 发送:
856 783  
857   -fun: \"stopTrueFalse\" //停止判断题
858   -
  784 +fun: "stopTrueFalse" //停止判断题
859 785 params:{} //默认空
860 786  
861 787 指令样例:
862 788  
863   -{\
864   -    \"fun\":\"stopTrueFalse\",
865   -
866   -  \"baseId\":0,\
867   -    \"packetTag\":\"1\"\
  789 +```json
  790 +{
  791 + "fun": "stopTrueFalse",
  792 + "baseId": 0,
  793 + "packetTag": "1"
868 794 }
  795 +```
869 796  
870 797 接收:
871 798  
872   -fun: \"stopTrueFalse\" //停止判断题
873   -
874   -baseId: \"1\"//收到的基站ID
875   -
876   -infos:{\"state\":\"OK\"}//返回状态,成功为OK
  799 +fun: "stopTrueFalse" //停止判断题
  800 +baseId: "1"//收到的基站ID
  801 +infos:{"state":"OK"}//返回状态,成功为OK
877 802  
878 803 指令样例:
879 804  
880   -{\
881   -    \"fun\":\"stopTrueFalse\",\
882   -    \"baseId\":1,\
883   -    \"infos\":{\
884   -          \"state\":\"OK\"\
885   -    },\
886   -    \"packetTag\":\"1\"\
  805 +```json
  806 +{
  807 + "fun": "stopTrueFalse",
  808 + "baseId": 1,
  809 + "infos": {
  810 + "state": "OK"
  811 + },
  812 + "packetTag": "1"
887 813 }
  814 +```
888 815  
889 816 #### 支持设备说明
890 817  
891   - ----------------------- ----------------------- -----------------------
892   - 基站+键盘 支持/不支持 备注
893   -
894   - B100-2.4G+S6 支持
895   -
896   - B200-2.4G+S6 支持
897   -
898   - B200-5.8G+T2 支持
899   - ----------------------- ----------------------- -----------------------
  818 +|基站+键盘|支持/不支持|备注|
  819 +|---|---|---|
  820 +|B100-2.4G+S6|支持||
  821 +|B200-2.4G+S6|支持||
  822 +|B200-5.8G+T2|支持||
900 823  
901 824 ### 多题快答
902 825  
... ... @@ -904,153 +827,126 @@ infos:{\&quot;state\&quot;:\&quot;OK\&quot;}//返回状态,成功为OK
904 827  
905 828 发送:
906 829  
907   -fun: \"startMulQuestions\" //开始多小题
908   -
  830 +fun: "startMulQuestions" //开始多小题
909 831 params:{}
910 832  
911   -+----------------+--------------+-------------------------------------+
912   -| Json字段 | 字段含义 | 赋值及含义 |
913   -+----------------+--------------+-------------------------------------+
914   -| questionType | 题型 | 0-单选题(默认值) |
915   -| | | |
916   -| | | 1-判断题 |
917   -+----------------+--------------+-------------------------------------+
918   -| secrecyMode | 保密模式 | 0-不保密(默认值) |
919   -| | | |
920   -| | | 1-保密 |
921   -+----------------+--------------+-------------------------------------+
922   -| modifyMode | 修改模式 | 0-不可修改 |
923   -| | | |
924   -| | | 1-可以修改(默认值) |
925   -+----------------+--------------+-------------------------------------+
926   -| lessMode | 预留 | 0 |
927   -+----------------+--------------+-------------------------------------+
928   -| questionNumber | 题目个数 | 1\~10 (默认值10) |
929   -+----------------+--------------+-------------------------------------+
930   -| options | 选项数目 | 1\~10 (单选题有效, 默认值4) |
931   -+----------------+--------------+-------------------------------------+
932   -| tipTitle | 提示标题 | 16个字节 |
933   -+----------------+--------------+-------------------------------------+
934   -
935   -指令样例:
936 833  
937   -{\
938   -    \"fun\":\"startMulQuestions\",
  834 +|Json字段|字段含义|赋值及含义|
  835 +|---|---|---|
  836 +|questionType|题型|0-单选题(默认值)<br>1-判断题|
  837 +|secrecyMode| 保密模式| 0-不保密(默认值)<br>1-保密|
  838 +|modifyMode| 修改模式| 0-不可修改<br>1-可以修改(默认值)|
  839 +|lessMode| 预留|0|
  840 +|questionNumber|题目个数|1\~10 (默认值10)|
  841 +|options|选项数目|1~10 (单选题有效, 默认值4)|
  842 +|tipTitle|提示标题|16个字节|
939 843  
940   -  \"baseId\":0,\
941   -    \"params\":{\
942   -        \"questionType\":\"0\",\
943   -        \"secrecyMode\":\"0\",\
944   -        \"modifyMode\":\"1\",\
945   -        \"lessMode\":\"0\",\
946   -        \"questionNumber\":\"10\",\
947   -        \"options\":\"4\"\
948   -    },\
949   -    \"packetTag\":\"1\"\
  844 +指令样例:
  845 +```json
  846 +{
  847 + "fun": "startMulQuestions",
  848 + "baseId": 0,
  849 + "params": {
  850 + "questionType": "0",
  851 + "secrecyMode": "0",
  852 + "modifyMode": "1",
  853 + "lessMode": "0",
  854 + "questionNumber": "10",
  855 + "options": "4"
  856 + },
  857 + "packetTag": "1"
950 858 }
  859 +```
951 860  
952 861 接收:
953 862  
954   -fun: \"startMulQuestions\" //开始多小题
955   -
956   -baseId: \"1\"//接收到指令的基站ID
957   -
958   -infos:{\"state\":\"OK\"}//返回状态,成功为OK
  863 +fun: "startMulQuestions" //开始多小题
  864 +baseId: "1"//接收到指令的基站ID
  865 +infos:{"state":"OK"}//返回状态,成功为OK
959 866  
960 867 指令样例:
961 868  
962   -{\
963   -    \"fun\":\"startMulQuestions\",
964   -
965   -\"baseId\":1,\
966   -  \"infos\":{\
967   -       \"state\":\"OK\"\
968   -    },
969   -
970   -\"packetTag\":\"1\"\
  869 +```json
  870 +{
  871 + "fun": "startMulQuestions",
  872 + "baseId": 1,
  873 + "infos": {
  874 + "state": "OK"
  875 + },
  876 + "packetTag": "1"
971 877 }
  878 +```
972 879  
973 880 #### 接收作答
974 881  
975 882 接收:
976 883  
977   -fun: \"answerMulQuestions\" //多小题作答返回
978   -
979   -baseId: \"1\"//接收到指令的基站ID
980   -
  884 +fun: "answerMulQuestions" //多小题作答返回
  885 +baseId: "1"//接收到指令的基站ID
981 886 infos: {}
982 887  
983   - ----------------- --------------- --------------------------------------
984   - Json字段 字段含义 赋值及含义
985   -
986   - time 答题时间 单位秒
987   -
988   - keySn 键盘Sn
989   -
990   - keyValue 键值 对应题型,按位对应题号
991   - ----------------- --------------- --------------------------------------
  888 +|Json字段|字段含义|赋值及含义|
  889 +|---|---|---|
  890 +|time|答题时间|单位秒|
  891 +|keySn|键盘Sn||
  892 +|keyValue|键值|键盘提交的值|
992 893  
993 894 指令样例:
994 895  
995   -{\
996   -    \"fun\":\"answerMulQuestions\",\
997   -    \"baseId\":1,\
998   -    \"infos\":{\
999   -        \"time\":\"2.42\",\
1000   -        \"keySn\":\"1479824643\",\
1001   -        \"keyValue\":\"AACDBDADBD\"\
1002   -    },
1003   -
1004   - \"packetTag\":\"1\"\
  896 +```json
  897 +{
  898 + "fun": "answerMulQuestions",
  899 + "baseId": 1,
  900 + "infos": {
  901 + "time": "2.42",
  902 + "keySn": "1479824643",
  903 + "keyValue": "AACDBDADBD"
  904 + },
  905 + "packetTag": "1"
1005 906 }
  907 +```
1006 908  
1007 909 #### 停止作答
1008 910  
1009 911 发送:
1010 912  
1011   -fun: \"stopMulQuestions\" //停止多小题
1012   -
  913 +fun: "stopMulQuestions" //停止多小题
1013 914 params:{} //默认空
1014 915  
1015 916 指令样例:
1016 917  
1017   -{\
1018   -    \"fun\":\"stopMulQuestions\",
1019   -
1020   -  \"baseId\":0,\
1021   -    \"packetTag\":\"1\"\
  918 +```json
  919 +{
  920 + "fun": "stopMulQuestions",
  921 + "baseId": 0,
  922 + "packetTag": "1"
1022 923 }
  924 +```
1023 925  
1024 926 接收:
1025 927  
1026   -fun:\"stopMulQuestions\" //停止多小题
1027   -
1028   -baseId: \"1\"//收到的基站ID
1029   -
1030   -infos:{\"state\":\"OK\"}//返回状态,成功为OK
  928 +fun:"stopMulQuestions" //停止多小题
  929 +baseId: "1" //收到的基站ID
  930 +infos:{"state":"OK"} //返回状态,成功为OK
1031 931  
1032 932 指令样例:
1033 933  
1034   -{\
1035   -    \"fun\":\"stopMulQuestions\",\
1036   -    \"baseId\":1,\
1037   -    \"infos\":{\
1038   -          \"state\":\"OK\"\
1039   -    },\
1040   -    \"packetTag\":\"1\"\
  934 +```json
  935 +{
  936 + "fun": "stopMulQuestions",
  937 + "baseId": 1,
  938 + "infos": {
  939 + "state": "OK"
  940 + },
  941 + "packetTag": "1"
1041 942 }
  943 +```
1042 944  
1043 945 #### 支持设备说明
1044 946  
1045   - ----------------------- ----------------------- -----------------------
1046   - 基站+键盘 支持/不支持 备注
1047   -
1048   - B100-2.4G+S6 不支持
1049   -
1050   - B200-2.4G+S6 不支持
1051   -
1052   - B200-5.8G+T2 支持
1053   - ----------------------- ----------------------- -----------------------
  947 +|基站+键盘|支持/不支持|备注|
  948 +|---|---|---|
  949 +|B200-5.8G+T2|支持||
1054 950  
1055 951 ### 语音题
1056 952  
... ... @@ -1058,66 +954,54 @@ infos:{\&quot;state\&quot;:\&quot;OK\&quot;}//返回状态,成功为OK
1058 954  
1059 955 发送:
1060 956  
1061   -fun: \"startVoice\" //开始语音题
1062   -
  957 +fun: "startVoice" //开始语音题
1063 958 params:{}
1064 959  
1065   -+----------------+--------------+-------------------------------------+
1066   -| Json字段 | 字段含义 | 赋值及含义 |
1067   -+----------------+--------------+-------------------------------------+
1068   -| recordingMode | 录音模式 | 0-按键录音(默认值) |
1069   -+----------------+--------------+-------------------------------------+
1070   -| submitTimes | 提交次数 | 0 (0:不限制, 默认值0) |
1071   -+----------------+--------------+-------------------------------------+
1072   -| reco | 预留 | 0 |
1073   -| rdingTimeLimit | | |
1074   -+----------------+--------------+-------------------------------------+
1075   -| r | 预留 | 0-固定传0 |
1076   -| ecordingFormat | | |
1077   -+----------------+--------------+-------------------------------------+
1078   -| rec | 音频格式 | 0. mp3 |
1079   -| ordAudioFormat | | |
1080   -| | | 1. 实时流 (默认值1) |
1081   -+----------------+--------------+-------------------------------------+
1082   -| tipTitle | 提示标题 | 16个字节 |
1083   -+----------------+--------------+-------------------------------------+
  960 +|Json字段|字段含义|赋值及含义|
  961 +|---|---|---|
  962 +|recordingMode|录音模式|0-按键录音(默认值)|
  963 +|submitTimes|提交次数|0 (0:不限制, 默认值0)|
  964 +|recordingTimeLimit|预留|0|
  965 +|recordingFormat|预留|0-固定传0|
  966 +|recordAudioFormat|音频格式|0.mp3<br>1.实时流(默认值1)|
  967 +|tipTitle|提示标题|16个字节|
1084 968  
1085   -指令样例:
1086 969  
1087   -{\
1088   -    \"fun\":\"startVoice\",
  970 +指令样例:
1089 971  
1090   -  \"baseId\":0,\
1091   -    \"params\":{\
1092   -        \"recordingMode\":\"0\",\
1093   -        \"submitTimes\":\"0\",\
1094   -        \"recordingTimeLimit\":\"0\",\
1095   -        \"recordingFormat\":\"0\",\
1096   -        \"recordAudioFormat\":\"0\"\
1097   -       },\
1098   -    \"packetTag\":\"1\"\
  972 +```json
  973 +{
  974 + "fun": "startVoice",
  975 + "baseId": 0,
  976 + "params": {
  977 + "recordingMode": "0",
  978 + "submitTimes": "0",
  979 + "recordingTimeLimit": "0",
  980 + "recordingFormat": "0",
  981 + "recordAudioFormat": "0"
  982 + },
  983 + "packetTag": "1"
1099 984 }
  985 +```
1100 986  
1101 987 接收:
1102 988  
1103   -fun: \"startVoice\" //开始语音题
1104   -
1105   -baseId: \"1\"//接收到指令的基站ID
1106   -
1107   -infos:{\"state\":\"OK\"}//返回状态,成功为OK
  989 +fun: "startVoice" //开始语音题
  990 +baseId: "1"//接收到指令的基站ID
  991 +infos:{"state":"OK"}//返回状态,成功为OK
1108 992  
1109 993 指令样例:
1110 994  
1111   -{\
1112   -    \"fun\":\"startVoice\",
1113   -
1114   -\"baseId\":1,\
1115   -  \"infos\":{\
1116   -       \"state\":\"OK\"\
1117   -    },
1118   -
1119   -\"packetTag\":\"1\"\
  995 +```json
  996 +{
  997 + "fun": "startVoice",
  998 + "baseId": 1,
  999 + "infos": {
  1000 + "state": "OK"
  1001 + },
  1002 + "packetTag": "1"
1120 1003 }
  1004 +```
1121 1005  
1122 1006 #### 接收作答
1123 1007  
... ... @@ -1127,87 +1011,70 @@ infos:{\&quot;state\&quot;:\&quot;OK\&quot;}//返回状态,成功为OK
1127 1011  
1128 1012 接收:
1129 1013  
1130   -fun: \"answerVoiceFile\" //录音文件返回
1131   -
1132   -baseId: \"1\"//接收到指令的基站ID
1133   -
  1014 +fun: "answerVoiceFile" //录音文件返回
  1015 +baseId: "1"//接收到指令的基站ID
1134 1016 infos: {}
1135 1017  
1136   - ----------------- --------------- --------------------------------------
1137   - Json字段 字段含义 赋值及含义
1138   -
1139   - time 答题时间 单位秒(0为答题开始,\>0表示答题结束)
1140   -
1141   - keySn 键盘Sn
1142   -
1143   - filePath 文件路径 录音文件路径
1144   - ----------------- --------------- --------------------------------------
  1018 +|Json字段|字段含义|赋值及含义|
  1019 +|---|---|---|
  1020 +|keySn|键盘Sn||
  1021 +|filePath|文件路径|录音文件路径|
1145 1022  
1146 1023 指令样例:
1147 1024  
1148   -{\
1149   -    \"fun\":\"answerVoiceFile\",\
1150   -    \"baseId\":1,\
1151   -    \"infos\":{\
1152   -        \"keySn\":\"1479824643\",
1153   -
1154   -        \"filePath\":\"D:\\voice\\20211102\\voice_1479824643_1635832534000.mp3\"\
1155   -    },
1156   -
1157   -\"packetTag\":\"1\"\
  1025 +```json
  1026 +{
  1027 + "fun": "answerVoiceFile",
  1028 + "baseId": 1,
  1029 + "infos": {
  1030 + "keySn": "1479749926",
  1031 + "filePath": "D:\voice\3_1479749926_196_2023-08-21 16-09-02 530.Mp3"
  1032 + },
  1033 + "packetTag": "1"
1158 1034 }
  1035 +```
1159 1036  
1160 1037 实时流
1161 1038  
1162 1039 接收:
1163 1040  
1164   -fun: \"answerVoiceStream\" //语音实时流返回
1165   -
1166   -baseId: \"1\"//接收到指令的基站ID
1167   -
  1041 +fun: "answerVoiceStream" //语音实时流返回
  1042 +baseId: "1"//接收到指令的基站ID
1168 1043 infos: {}
1169 1044  
1170   - ----------------- --------------- ------------------------------------------------------------------------------------------
1171   - Json字段 字段含义 赋值及含义
1172   -
1173   - keySn 键盘Sn
1174   -
1175   - voiceId 回话ID 答题时间内,可重复提交语音,每段语音流加一个回话ID,用于区分作答
1176   -
1177   - sampleRate 音频采样率
1178   -
1179   - bits 音频采样精度
1180   -
1181   - channel 声道数
1182   -
1183   - dataIndex 数据包号 1开始
1184   -
1185   - data 数据 将原始数据通过Base64编码后得到json中\"data\"字段。应用可通过Base64解码得到原始语音数据。
1186   -
1187   - dataLen 数据长度 Base64编码后的字符串长度。应该将\"data\"通过Base64解码后得到原始的数据长度。
1188   -
1189   - endFlag 结束标志 默认为0,为1表示结束
1190   - ----------------- --------------- ------------------------------------------------------------------------------------------
  1045 +|Json字段|字段含义|赋值及含义|
  1046 +|---|---|---|
  1047 +|keySn|键盘Sn||
  1048 +|voiceId|回话ID|答题时间内,可重复提交语音,每段语音流加一个回话ID,用于区分作答|
  1049 +|sampleRate|音频采样率||
  1050 +|bits|音频采样精度||
  1051 +|channel|声道数||
  1052 +|dataIndex|数据包号|1开始|
  1053 +|data|数据|将原始数据通过Base64编码后得到json中 "data" 字段。应用可通过Base64解码得到原始语音数据。|
  1054 +|dataLen|数据长度|Base64编码后的字符串长度。应该将 "data" 通过Base64解码后得到原始的数据长度。|
  1055 +|endFlag|结束标志|默认为0,为1表示结束|
1191 1056  
1192 1057 指令样例:
1193 1058  
1194   -{\
1195   -    \"fun\":\"answerVoiceStream\",\
1196   -    \"baseId\":1,\
1197   -    \"infos\":{\
1198   -        \"keySn\":1479824643,\
1199   -        \"voiceId\":1,\
1200   -        \"sampleRate\":16000,\
1201   -        \"bits\":16,\
1202   -        \"channel\":1,\
1203   -        \"endFlag\":0,
1204   -
1205   -\"dataIndex\":1,\
1206   -        \"dataLen\":856,\
1207   -        \"data\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAO7/AAARAAAA7v8AACMAAADK/wAA+gARAI8ANQDoAO7/EQDP/mwD6ADSBBkFgPm+/iH6J/ko/HD8F/8L/u7/rQGU/yMA4f5fAin/MgpDBwADvwRk+yn/fP1e/Jr+DAEAA+gAPAXpBnECgwK5BdEEmwFaA7oF4f63/DX9n/rJ+f75q/tA+5n7fP1q/Y79av1B/nb+Qf70AX0AfQNx/6b8EQBY/Ub9awD0AZUCfgahA4MCBgLV/az+L/5k/o79LwEdAYkBvv5q/X0AHf48BYMCgwKmAgYCdwH0/uL+0P6C/7j/sgApAsr/Kf+U/8T9L/ig+rL3HfVZA6AAsgYSBi8BIwMRABf/pvxB/nH/4v6m/7IAgv9f/7j/3P+gAAsB4gH0AS8BawAAANz/Kf8F/8r/RwAAACMA6ADoAKb/xAC4AgYCLwFBBO4FWQMAA7kFTQUYAnECiQRlASn/4v47/0H+uPxH/UH+L/6O/fn9F//Q/h3+rP5f/zv/8/5N/9z/uP+C/9z/RwBHACMAWQCgAH0ANQA1AEcAEQDK/8r/3P+4/5T/lP+m/5T/gv+C/5T/lP+C/5T/pv+m/w==\"\
1208   -    },\
1209   -    \"packetTag\":\"1\"\
  1059 +
  1060 +```json
  1061 +{
  1062 + "fun": "answerVoiceStream",
  1063 + "baseId": 1,
  1064 + "infos": {
  1065 + "keySn": "1479824643",
  1066 + "voiceId": "1",
  1067 + "sampleRate": 16000,
  1068 + "bits": 16,
  1069 + "channel": 1,
  1070 + "endFlag": 0,
  1071 + "dataIndex": 1,
  1072 + "dataLen": 856,
  1073 + "data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAO7/AAARAAAA7v8AACMAAADK/wAA+gARAI8ANQDoAO7/EQDP/mwD6ADSBBkFgPm+/iH6J/ko/HD8F/8L/u7/rQGU/yMA4f5fAin/MgpDBwADvwRk+yn/fP1e/Jr+DAEAA+gAPAXpBnECgwK5BdEEmwFaA7oF4f63/DX9n/rJ+f75q/tA+5n7fP1q/Y79av1B/nb+Qf70AX0AfQNx/6b8EQBY/Ub9awD0AZUCfgahA4MCBgLV/az+L/5k/o79LwEdAYkBvv5q/X0AHf48BYMCgwKmAgYCdwH0/uL+0P6C/7j/sgApAsr/Kf+U/8T9L/ig+rL3HfVZA6AAsgYSBi8BIwMRABf/pvxB/nH/4v6m/7IAgv9f/7j/3P+gAAsB4gH0AS8BawAAANz/Kf8F/8r/RwAAACMA6ADoAKb/xAC4AgYCLwFBBO4FWQMAA7kFTQUYAnECiQRlASn/4v47/0H+uPxH/UH+L/6O/fn9F//Q/h3+rP5f/zv/8/5N/9z/uP+C/9z/RwBHACMAWQCgAH0ANQA1AEcAEQDK/8r/3P+4/5T/lP+m/5T/gv+C/5T/lP+C/5T/pv+m/w=="
  1074 + },
  1075 + "packetTag": "1"
1210 1076 }
  1077 +```
1211 1078  
1212 1079 #### 回传分数
1213 1080  
... ... @@ -1217,37 +1084,37 @@ infos: {}
1217 1084  
1218 1085 发送:
1219 1086  
1220   -fun: \"stopVoice\" //停止语音题
1221   -
  1087 +fun: "stopVoice" //停止语音题
1222 1088 params:{} //默认空,
1223 1089  
1224 1090 指令样例:
1225 1091  
1226   -{\
1227   -    \"fun\":\"stopVoice\",
1228   -
1229   -  \"baseId\":0,\
1230   -    \"packetTag\":\"1\"\
  1092 +```json
  1093 +{
  1094 + "fun": "stopVoice",
  1095 + "baseId": 0,
  1096 + "packetTag": "1"
1231 1097 }
  1098 +```
1232 1099  
1233 1100 接收:
1234 1101  
1235   -fun: \"stopVoice\" //停止语音题
1236   -
1237   -baseId: \"1\"//收到的基站ID
1238   -
1239   -infos:{\"state\":\"OK\"}//返回状态,成功为OK
  1102 +fun: "stopVoice" //停止语音题
  1103 +baseId: "1"//收到的基站ID
  1104 +infos:{"state":"OK"}//返回状态,成功为OK
1240 1105  
1241 1106 指令样例:
1242 1107  
1243   -{\
1244   -    \"fun\":\"stopVoice\",\
1245   -    \"baseId\":1,\
1246   -    \"infos\":{\
1247   -          \"state\":\"OK\"\
1248   -    },\
1249   -    \"packetTag\":\"1\"\
  1108 +```json
  1109 +{
  1110 + "fun": "stopVoice",
  1111 + "baseId": 1,
  1112 + "infos": {
  1113 + "state": "OK"
  1114 + },
  1115 + "packetTag": "1"
1250 1116 }
  1117 +```
1251 1118  
1252 1119 #### 丢包信息
1253 1120  
... ... @@ -1257,191 +1124,162 @@ infos:{\&quot;state\&quot;:\&quot;OK\&quot;}//返回状态,成功为OK
1257 1124  
1258 1125 接收:
1259 1126  
1260   -fun: \"voicePacketLossInfo\" //丢包信息
1261   -
  1127 +fun: "voicePacketLossInfo" //丢包信息
1262 1128 baseId:1 //1\~32,连接基站
1263   -
1264 1129 infos:{} //
1265 1130  
1266   - --------------------- --------------- ------------------------------------------------------------------
1267   - Json字段 字段含义 赋值及含义
1268   -
1269   - keySn 键盘Sn
1270   -
1271   - voiceId 回话ID 答题时间内,可重复提交语音,每段语音流加一个回话ID,用于区分作答
1272   -
1273   - recordTime 录音延迟时间
1274   -
1275   - shouldSendPacketNum 应发数据包数
1276   -
1277   - actualSendPacketNum 实发数据包数
  1131 +|Json字段|字段含义|赋值及含义|
  1132 +|---|---|---|
  1133 +|keySn|键盘Sn||
  1134 +|voiceId|回话ID|答题时间内,可重复提交语音,每段语音流加一个回话ID,用于区分作答|
  1135 +|recordTime|录音延迟时间||
  1136 +|shouldSendPacketNum|应发数据包数||
  1137 +|actualSendPacketNum|实发数据包数||
  1138 +|lossRate|丢包率|百分比|
1278 1139  
1279   - lossRate 丢包率 百分比
1280   - --------------------- --------------- ------------------------------------------------------------------
1281 1140  
1282 1141 指令样例:
1283 1142  
1284   -{\
1285   -    \"fun\":\"voicePacketLossInfo\",\
1286   -    \"baseId\":1,\
1287   -    \"infos\":{\
1288   -        \"keySn\":\"1837454011\",\
1289   -        \"voiceId\":\"1\",\
1290   -        \"recordTime\":\"42\",\
1291   -        \"shouldSendPacketNum\":\"56\",\
1292   -        \"actualSendPacketNum\":\"56\",\
1293   -        \"lossRate\":\"0\"\
1294   -    },\
1295   -    \"packetTag\":\"1\"\
  1143 +```json
  1144 +{
  1145 + "fun": "voicePacketLossInfo",
  1146 + "baseId": 1,
  1147 + "infos": {
  1148 + "keySn": "1837454011",
  1149 + "voiceId": "1",
  1150 + "recordTime": "42",
  1151 + "shouldSendPacketNum": "56",
  1152 + "actualSendPacketNum": "56",
  1153 + "lossRate": "0"
  1154 + },
  1155 + "packetTag": "1"
1296 1156 }
  1157 +```
1297 1158  
1298 1159 #### 支持设备说明
1299 1160  
1300   - ----------------------- ----------------------- -----------------------
1301   - 基站+键盘 支持/不支持 备注
1302   -
1303   - B100-2.4G+S6 不支持
1304   -
1305   - B200-2.4G+S6 不支持
1306   -
1307   - B200-5.8G+T2 支持 单次录音最长180秒
1308   - ----------------------- ----------------------- -----------------------
  1161 +|基站+键盘|支持/不支持|备注|
  1162 +|---|---|---|
  1163 +|B200-5.8G+T2|支持|单次录音最长180秒|
1309 1164  
1310 1165 ### 抢答题
1311   -
1312 1166 #### 开始作答
1313 1167  
1314 1168 发送:
1315 1169  
1316   -fun: \"startRushAnswer\" //开始抢答题
1317   -
  1170 +fun: "startRushAnswer" //开始抢答题
1318 1171 params:{}
1319 1172  
1320   -+----------------+--------------+-------------------------------------+
1321   -| Json字段 | 字段含义 | 赋值及含义 |
1322   -+----------------+--------------+-------------------------------------+
1323   -| rushAnswerMode | 抢答模式 | 0-普通抢答(默认值) |
1324   -+----------------+--------------+-------------------------------------+
1325   -| modifyMode | 修改模式 | 0-不可修改 |
1326   -| | | |
1327   -| | | 1-可以修改(默认值) |
1328   -+----------------+--------------+-------------------------------------+
  1173 +|Json字段|字段含义|赋值及含义|
  1174 +|---|---|---|
  1175 +|rushAnswerMode| 抢答模式|0-普通抢答(默认值)|
  1176 +|modifyMode|修改模式|0-不可修改<br>1-可以修改(默认值)|
1329 1177  
1330   -指令样例:
1331 1178  
1332   -{\
1333   -    \"fun\":\"startRushAnswer\",
1334 1179  
1335   -  \"baseId\":0,\
1336   -    \"params\":{\
1337   -        \"rushAnswerMode\":\"0\",\
1338   -        \"modifyMode\":\"1\"\
1339   -    },\
1340   -    \"packetTag\":\"1\"\
  1180 +指令样例:
  1181 +```json
  1182 +{
  1183 + "fun": "startRushAnswer",
  1184 + "baseId": 0,
  1185 + "params": {
  1186 + "rushAnswerMode": "0",
  1187 + "modifyMode": "1"
  1188 + },
  1189 + "packetTag": "1"
1341 1190 }
  1191 +```
1342 1192  
1343 1193 接收:
1344 1194  
1345   -fun: \"startRushAnswer\" //开始抢答题
1346   -
1347   -baseId: \"1\"//接收到指令的基站ID
1348   -
1349   -infos:{\"state\":\"OK\"}//返回状态,成功为OK
  1195 +fun: "startRushAnswer" //开始抢答题
  1196 +baseId: "1"//接收到指令的基站ID
  1197 +infos:{"state":"OK"}//返回状态,成功为OK
1350 1198  
1351 1199 指令样例:
1352 1200  
1353   -{\
1354   -    \"fun\":\"startRushAnswer\",
1355   -
1356   -\"baseId\":1,\
1357   -  \"infos\":{\
1358   -       \"state\":\"OK\"\
1359   -    },
1360   -
1361   -\"packetTag\":\"1\"\
  1201 +```json
  1202 +{
  1203 + "fun": "startRushAnswer",
  1204 + "baseId": 1,
  1205 + "infos": {
  1206 + "state": "OK"
  1207 + },
  1208 + "packetTag": "1"
1362 1209 }
  1210 +```
1363 1211  
1364 1212 #### 接收作答
1365 1213  
1366 1214 接收:
1367 1215  
1368   -fun: \"answerRushAnswer\" //抢答题作答返回
1369   -
1370   -baseId: \"1\"//接收到指令的基站ID
1371   -
  1216 +fun: "answerRushAnswer" //抢答题作答返回
  1217 +baseId: "1"//接收到指令的基站ID
1372 1218 infos: {}
1373 1219  
1374   - ----------------- --------------- --------------------------------------
1375   - Json字段 字段含义 赋值及含义
1376   -
1377   - time 答题时间 单位秒
1378   -
1379   - keySn 键盘Sn
1380   -
1381   - keyValue 键值
1382   - ----------------- --------------- --------------------------------------
  1220 +|Json字段|字段含义|赋值及含义|
  1221 +|---|---|---|
  1222 +|time|答题时间|单位秒|
  1223 +|keySn|键盘Sn||
  1224 +|keyValue|键值|键盘提交的值|
1383 1225  
1384 1226 指令样例:
1385 1227  
1386   -{\
1387   -    \"fun\":\"answerRushAnswer\",\
1388   -    \"baseId\":1,\
1389   -    \"infos\":{\
1390   -        \"time\":\"1.42\",\
1391   -        \"keySn\":\"1479824643\",\
1392   -        \"keyValue\":\"A\"\
1393   -    },
1394   -
1395   - \"packetTag\":\"1\"\
  1228 +```json
  1229 +{
  1230 + "fun": "answerRushAnswer",
  1231 + "baseId": 1,
  1232 + "infos": {
  1233 + "time": "1.42",
  1234 + "keySn": "1479824643",
  1235 + "keyValue": "A"
  1236 + },
  1237 + "packetTag": "1"
1396 1238 }
1397   -
  1239 +```
1398 1240 #### 停止作答
1399 1241  
1400 1242 发送:
1401 1243  
1402   -fun: \"stopRushAnswer\" //停止抢答题
1403   -
  1244 +fun: "stopRushAnswer" //停止抢答题
1404 1245 params:{} //默认空
1405 1246  
1406 1247 指令样例:
1407 1248  
1408   -{\
1409   -    \"fun\":\"stopRushAnswer\",
1410   -
1411   -\"baseId\":0,\
1412   -    \"packetTag\":\"1\"\
  1249 +```json
  1250 +{
  1251 + "fun": "stopRushAnswer",
  1252 + "baseId": 0,
  1253 + "packetTag": "1"
1413 1254 }
  1255 +```
1414 1256  
1415 1257 接收:
1416 1258  
1417   -fun: \"stopRushAnswer\" //停止抢答题
1418   -
1419   -baseId: \"1\"//收到的基站ID
1420   -
1421   -infos:{\"state\":\"OK\"}//返回状态,成功为OK
  1259 +fun: "stopRushAnswer" //停止抢答题
  1260 +baseId: "1"//收到的基站ID
  1261 +infos:{"state":"OK"}//返回状态,成功为OK
1422 1262  
1423 1263 指令样例:
1424 1264  
1425   -{\
1426   -    \"fun\":\"stopRushAnswer\",\
1427   -    \"baseId\":1,\
1428   -    \"infos\":{\
1429   -          \"state\":\"OK\"\
1430   -    },\
1431   -    \"packetTag\":\"1\"\
  1265 +```json
  1266 +{
  1267 + "fun": "stopRushAnswer",
  1268 + "baseId": 1,
  1269 + "infos": {
  1270 + "state": "OK"
  1271 + },
  1272 + "packetTag": "1"
1432 1273 }
  1274 +```
1433 1275  
1434 1276 #### 支持设备说明
1435 1277  
1436   - ----------------------- ----------------------- -----------------------
1437   - 基站+键盘 支持/不支持 备注
1438   -
1439   - B100-2.4G+S6 支持
1440   -
1441   - B200-2.4G+S6 支持
1442   -
1443   - B200-5.8G+T2 支持
1444   - ----------------------- ----------------------- -----------------------
  1278 +|基站+键盘|支持/不支持|备注|
  1279 +|---|---|---|
  1280 +|B100-2.4G+S6|支持||
  1281 +|B200-2.4G+S6|支持||
  1282 +|B200-5.8G+T2|支持||
1445 1283  
1446 1284 ### 数字题
1447 1285  
... ... @@ -1835,8 +1673,7 @@ params:{}
1835 1673  
1836 1674 | **Json字段** | **字段含义** | **赋值及含义** |
1837 1675 | --- | --- | --- |
1838   -| questionLevel1Symbol | 一级题号 | 0 |
1839   -| questionLevel2Symbol | 二级题号 | 1-200 |
  1676 +| questionLevel2Symbol | 一级题号 | 1-200 |
1840 1677 | course | 科目 | 1:语文<br>2:数学<br>3:英语<br>4:政治<br>5:历史<br>6:地理<br>7:生物<br>8:物理<br>9化学 |
1841 1678 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
1842 1679 | option | 选项数目 | 当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
... ... @@ -1848,26 +1685,22 @@ params:{}
1848 1685 "params": {
1849 1686 "examNo": 1,
1850 1687 "questions": [{
1851   - "questionLevel1Symbol": "0",
1852   - "questionLevel2Symbol": "1",
  1688 + "questionLevel1Symbol": "1",
1853 1689 "course": "1",
1854 1690 "questionType": "1",
1855 1691 "option": "4"
1856 1692 }, {
1857   - "questionLevel1Symbol": "0",
1858   - "questionLevel2Symbol": "2",
  1693 + "questionLevel1Symbol": "2",
1859 1694 "course": "2",
1860 1695 "questionType": "2",
1861 1696 "option": "4"
1862 1697 }, {
1863   - "questionLevel1Symbol": "0",
1864   - "questionLevel2Symbol": "3",
  1698 + "questionLevel1Symbol": "3",
1865 1699 "course": "3",
1866 1700 "questionType": "3",
1867 1701 "option": "4"
1868 1702 }, {
1869   - "questionLevel1Symbol": "0",
1870   - "questionLevel2Symbol": "4",
  1703 + "questionLevel1Symbol": "4",
1871 1704 "course": "4",
1872 1705 "questionType": "4",
1873 1706 "option": "4"
... ... @@ -2056,9 +1889,7 @@ params:{}
2056 1889  
2057 1890 | **Json字段** | **字段含义** | **赋值及含义** |
2058 1891 | --- | --- | --- |
2059   -| questionLevel1Symbol | 一级题号 | 0 |
2060   -| questionLevel2Symbol | 二级题号 | 0 |
2061   -| questionLevel3Symbol | 三级题号 | 1-99 |
  1892 +| questionLevel1Symbol | 一级题号 | 1-200 |
2062 1893 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
2063 1894 | option | 选项数目 |当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
2064 1895  
... ... @@ -2069,25 +1900,17 @@ params:{}
2069 1900 "params": {
2070 1901 "examNo": 1,
2071 1902 "questions": [{
2072   - "questionLevel1Symbol": "0",
2073   - "questionLevel2Symbol": "0",
2074   - "questionLevel3Symbol": "1",
  1903 + "questionLevel1Symbol": "1",
2075 1904 "questionType": "1"
2076 1905 }, {
2077   - "questionLevel1Symbol": "0",
2078   - "questionLevel2Symbol": "0",
2079   - "questionLevel3Symbol": "3",
  1906 + "questionLevel1Symbol": "3",
2080 1907 "questionType": "2",
2081 1908 "option": "5"
2082 1909 }, {
2083   - "questionLevel1Symbol": "0",
2084   - "questionLevel2Symbol": "0",
2085   - "questionLevel3Symbol": "4",
  1910 + "questionLevel1Symbol": "4",
2086 1911 "questionType": "3"
2087 1912 }, {
2088   - "questionLevel1Symbol": "0",
2089   - "questionLevel2Symbol": "0",
2090   - "questionLevel3Symbol": "5",
  1913 + "questionLevel1Symbol": "5",
2091 1914 "questionType": "4"
2092 1915 }]
2093 1916 },
... ... @@ -2130,9 +1953,8 @@ params:{}
2130 1953  
2131 1954 | **Json字段** | **字段含义** | **赋值及含义** |
2132 1955 | --- | --- | --- |
2133   -| questionLevel1Symbol | 一级题号 | 0 |
  1956 +| questionLevel1Symbol | 一级题号 | 1-99 |
2134 1957 | questionLevel2Symbol | 二级题号 | 1-99 |
2135   -| questionLevel3Symbol | 三级题号 | 1-99 |
2136 1958 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
2137 1959 | option | 选项数目 |当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
2138 1960  
... ... @@ -2143,25 +1965,21 @@ params:{}
2143 1965 "params": {
2144 1966 "examNo": 1,
2145 1967 "questions": [{
2146   - "questionLevel1Symbol": "0",
  1968 + "questionLevel1Symbol": "1",
2147 1969 "questionLevel2Symbol": "1",
2148   - "questionLevel3Symbol": "1",
2149 1970 "questionType": "1"
2150 1971 }, {
2151   - "questionLevel1Symbol": "0",
2152   - "questionLevel2Symbol": "2",
2153   - "questionLevel3Symbol": "3",
  1972 + "questionLevel1Symbol": "2",
  1973 + "questionLevel2Symbol": "3",
2154 1974 "questionType": "2",
2155 1975 "option": "5"
2156 1976 }, {
2157   - "questionLevel1Symbol": "0",
2158   - "questionLevel2Symbol": "2",
2159   - "questionLevel3Symbol": "4",
  1977 + "questionLevel1Symbol": "2",
  1978 + "questionLevel2Symbol": "4",
2160 1979 "questionType": "3"
2161 1980 }, {
2162   - "questionLevel1Symbol": "0",
2163   - "questionLevel2Symbol": "2",
2164   - "questionLevel3Symbol": "5",
  1981 + "questionLevel1Symbol": "2",
  1982 + "questionLevel2Symbol": "5",
2165 1983 "questionType": "4"
2166 1984 }]
2167 1985 },
... ... @@ -2280,7 +2098,7 @@ params:{}
2280 2098 | --- | --- | --- |
2281 2099 | questionLevel1Symbol | 一级题号 | 1-200 |
2282 2100 | toplimit | 数字上限 | 1-100 |
2283   -| decimal | 小数位数 | 0:无效小数<br>1:一位小数<br>2:二位小数 [默认是2]<br>此项缺省时默认是0。|
  2101 +| decimal | 小数位数 | 0:无效小数<br>1:一位小数<br>2:二位小数 <br>此项缺省时默认是0。|
2284 2102  
2285 2103 ```json
2286 2104 {
... ... @@ -2539,7 +2357,6 @@ params:{}
2539 2357  
2540 2358 | **Json字段** | **字段含义** | **赋值及含义** |
2541 2359 | --- | --- | --- |
2542   -| questionLevel1Symbol | 一级题号 | 0 |
2543 2360 | questionLevel2Symbol | 二级题号 | 1-99 |
2544 2361 | course | 科目 | 1:语文<br>2:数学<br>3:英语<br>4:政治<br>5:历史<br>6:地理<br>7:生物<br>8:物理<br>9化学 |
2545 2362 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
... ... @@ -2552,26 +2369,22 @@ params:{}
2552 2369 "params": {
2553 2370 "examNo": 1,
2554 2371 "questions": [{
2555   - "questionLevel1Symbol": "0",
2556   - "questionLevel2Symbol": "1",
  2372 + "questionLevel1Symbol": "1",
2557 2373 "course": "1",
2558 2374 "questionType": "1",
2559 2375 "option": "4"
2560 2376 }, {
2561   - "questionLevel1Symbol": "0",
2562   - "questionLevel2Symbol": "2",
  2377 + "questionLevel1Symbol": "2",
2563 2378 "course": "2",
2564 2379 "questionType": "2",
2565 2380 "option": "4"
2566 2381 }, {
2567   - "questionLevel1Symbol": "0",
2568   - "questionLevel2Symbol": "3",
  2382 + "questionLevel1Symbol": "3",
2569 2383 "course": "3",
2570 2384 "questionType": "3",
2571 2385 "option": "4"
2572 2386 }, {
2573   - "questionLevel1Symbol": "0",
2574   - "questionLevel2Symbol": "4",
  2387 + "questionLevel1Symbol": "4",
2575 2388 "course": "4",
2576 2389 "questionType": "4",
2577 2390 "option": "4"
... ... @@ -2760,9 +2573,7 @@ params:{}
2760 2573  
2761 2574 | **Json字段** | **字段含义** | **赋值及含义** |
2762 2575 | --- | --- | --- |
2763   -| questionLevel1Symbol | 一级题号 | 0 |
2764   -| questionLevel2Symbol | 二级题号 | 0 |
2765   -| questionLevel3Symbol | 三级题号 | 1-99 |
  2576 +| questionLevel1Symbol | 三级题号 | 1-200 |
2766 2577 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
2767 2578 | option | 选项数目 | 当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
2768 2579  
... ... @@ -2773,25 +2584,17 @@ params:{}
2773 2584 "params": {
2774 2585 "examNo": 1,
2775 2586 "questions": [{
2776   - "questionLevel1Symbol": "0",
2777   - "questionLevel2Symbol": "0",
2778   - "questionLevel3Symbol": "1",
  2587 + "questionLevel1Symbol": "1",
2779 2588 "questionType": "1"
2780 2589 }, {
2781   - "questionLevel1Symbol": "0",
2782   - "questionLevel2Symbol": "0",
2783   - "questionLevel3Symbol": "3",
  2590 + "questionLevel1Symbol": "3",
2784 2591 "questionType": "2",
2785 2592 "option": "5"
2786 2593 }, {
2787   - "questionLevel1Symbol": "0",
2788   - "questionLevel2Symbol": "0",
2789   - "questionLevel3Symbol": "4",
  2594 + "questionLevel1Symbol": "4",
2790 2595 "questionType": "3"
2791 2596 }, {
2792   - "questionLevel1Symbol": "0",
2793   - "questionLevel2Symbol": "0",
2794   - "questionLevel3Symbol": "5",
  2597 + "questionLevel1Symbol": "5",
2795 2598 "questionType": "4"
2796 2599 }]
2797 2600 },
... ... @@ -2834,9 +2637,8 @@ params:{}
2834 2637  
2835 2638 | **Json字段** | **字段含义** | **赋值及含义** |
2836 2639 | --- | --- | --- |
2837   -| questionLevel1Symbol | 一级题号 | 0 |
2838   -| questionLevel2Symbol | 二级题号 | 1-99 |
2839   -| questionLevel3Symbol | 三级题号 | 1-99 |
  2640 +| questionLevel1Symbol | 二级题号 | 1-99 |
  2641 +| questionLevel2Symbol | 三级题号 | 1-99 |
2840 2642 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
2841 2643 | option | 选项数目 | 当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
2842 2644  
... ... @@ -2847,25 +2649,21 @@ params:{}
2847 2649 "params": {
2848 2650 "examNo": 1,
2849 2651 "questions": [{
2850   - "questionLevel1Symbol": "0",
  2652 + "questionLevel1Symbol": "1",
2851 2653 "questionLevel2Symbol": "1",
2852   - "questionLevel3Symbol": "1",
2853 2654 "questionType": "1"
2854 2655 }, {
2855   - "questionLevel1Symbol": "0",
2856   - "questionLevel2Symbol": "2",
2857   - "questionLevel3Symbol": "3",
  2656 + "questionLevel1Symbol": "2",
  2657 + "questionLevel2Symbol": "3",
2858 2658 "questionType": "2",
2859 2659 "option": "5"
2860 2660 }, {
2861   - "questionLevel1Symbol": "0",
2862   - "questionLevel2Symbol": "2",
2863   - "questionLevel3Symbol": "4",
  2661 + "questionLevel1Symbol": "2",
  2662 + "questionLevel2Symbol": "4",
2864 2663 "questionType": "3"
2865 2664 }, {
2866   - "questionLevel1Symbol": "0",
2867   - "questionLevel2Symbol": "2",
2868   - "questionLevel3Symbol": "5",
  2665 + "questionLevel1Symbol": "2",
  2666 + "questionLevel2Symbol": "5",
2869 2667 "questionType": "4"
2870 2668 }]
2871 2669 },
... ... @@ -2983,7 +2781,7 @@ params:{}
2983 2781 | --- | --- | --- |
2984 2782 | questionLevel1Symbol | 一级题号 | 1-200 |
2985 2783 | toplimit | 数字上限 | 1-100 |
2986   -| decimal | 小数位数 | 0:无效小数<br>1:一位小数<br>2:二位小数 [默认是2]<br>此项缺省时默认是0。|
  2784 +| decimal | 小数位数 | 0:无效小数<br>1:一位小数<br>2:二位小数 <br>此项缺省时默认是0。|
2987 2785  
2988 2786 ```json
2989 2787 {
... ...