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,62 +57,43 @@ SunVoteWSTrayapp程序中config.ini配置文件中可设置WebSocket的端口,
57 57
58 下发:应用程序 - \> SunVoteWSTrayapp 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 baseId:基站ID,用来区分基站标志,0代表所有基站,1代表1号基站。 71 baseId:基站ID,用来区分基站标志,0代表所有基站,1代表1号基站。
76 -  
77 params:参数,功能相对于的参数,可以是数组或字段。 72 params:参数,功能相对于的参数,可以是数组或字段。
78 -  
79 -packerTag:  
80 -这个是扩展字段,内容需要应用程序管理,功能相应的反馈指令packerTag位置会反馈相同字符串,方便应用程序跟踪记录。 73 +packerTag:这个是扩展字段,内容需要应用程序管理,功能相应的反馈指令packerTag位置会反馈相同字符串,方便应用程序跟踪记录。
81 74
82 反馈:SunVoteWSTrayapp-\> 应用程序 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 baseId: 基站ID,用来区分基站标志;0特殊代表所有基站,1代表1号基站。 87 baseId: 基站ID,用来区分基站标志;0特殊代表所有基站,1代表1号基站。
100 -  
101 infos: SunVoteWSTrayapp反馈给APP层的数据。具体详见具体功能定义。 88 infos: SunVoteWSTrayapp反馈给APP层的数据。具体详见具体功能定义。
102 -  
103 -packetTag:  
104 -这个是扩展字段,内容需要应用程序管理,反馈接收到的字符串。 89 +packetTag:这个是扩展字段,内容需要应用程序管理,反馈接收到的字符串。
105 90
106 字段值说明: 91 字段值说明:
107 -  
108 反馈infos中的状态字段state,OK表示成功,FAIL表示失败。 92 反馈infos中的状态字段state,OK表示成功,FAIL表示失败。
109 -  
110 反馈infos中的硬件参数字段的值,FAIL表示失败,其他值为成功。 93 反馈infos中的硬件参数字段的值,FAIL表示失败,其他值为成功。
111 -  
112 X\~Y:范围内的值特指整数。 94 X\~Y:范围内的值特指整数。
113 95
114 # 通信方式 96 # 通信方式
115 -  
116 数据交互采取发送\<\--\>应答的方式。应用程序发送数据到SunVoteWSTrayapp,SunVoteWSTrayapp收到后执行完成后回复。 97 数据交互采取发送\<\--\>应答的方式。应用程序发送数据到SunVoteWSTrayapp,SunVoteWSTrayapp收到后执行完成后回复。
117 98
118 应用程序没有数据发送给SunVoteWSTrayapp时,需要发送心跳,SunVoteWSTrayapp收到心跳后会回复心跳,用于判断与应用程序的连接状态。(配置文件中,如果启用了心跳检查,应用程序如果未按要求发送心跳,SunVoteWSTrayapp会断开当前连接,重新尝试连接) 99 应用程序没有数据发送给SunVoteWSTrayapp时,需要发送心跳,SunVoteWSTrayapp收到心跳后会回复心跳,用于判断与应用程序的连接状态。(配置文件中,如果启用了心跳检查,应用程序如果未按要求发送心跳,SunVoteWSTrayapp会断开当前连接,重新尝试连接)
@@ -120,7 +101,6 @@ X\~Y:范围内的值特指整数。 @@ -120,7 +101,6 @@ X\~Y:范围内的值特指整数。
120 # 编程流程说明 101 # 编程流程说明
121 102
122 用户使用SunVoteWSTrayapp编程的基本流程如下: 103 用户使用SunVoteWSTrayapp编程的基本流程如下:
123 -  
124 配置参数:(可配置、详情见配置文件config.ini) 104 配置参数:(可配置、详情见配置文件config.ini)
125 105
126 1、sdk-\>role websocket 106 1、sdk-\>role websocket
@@ -145,17 +125,14 @@ X\~Y:范围内的值特指整数。 @@ -145,17 +125,14 @@ X\~Y:范围内的值特指整数。
145 125
146 下发:应用程序 - \>SunVoteWSTrayapp 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 fun:为功能定义,下发命令,要下发的命令函数 137 fun:为功能定义,下发命令,要下发的命令函数
161 138
@@ -168,12 +145,14 @@ packerTag: @@ -168,12 +145,14 @@ packerTag:
168 145
169 反馈:SunVoteWSTrayapp -> 应用程序 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 fun:同下发描述. 157 fun:同下发描述.
179 baseId:同下发描述. 158 baseId:同下发描述.
@@ -296,7 +275,7 @@ packetTag:&quot;1&quot; @@ -296,7 +275,7 @@ packetTag:&quot;1&quot;
296 指令样例: 275 指令样例:
297 ```json 276 ```json
298 { 277 {
299 - "fun": "connectBase", 278 + "fun": "disconnectBase",
300 "baseId": 1, 279 "baseId": 1,
301 "infos": { 280 "infos": {
302 "state": "OK" 281 "state": "OK"
@@ -305,32 +284,26 @@ packetTag:&quot;1&quot; @@ -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 baseId:1, 293 baseId:1,
322 -  
323 params:{} //无该值 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 注意:B200支持此命令 308 注意:B200支持此命令
336 309
@@ -349,7 +322,7 @@ params:{} //无该值 @@ -349,7 +322,7 @@ params:{} //无该值
349 |**Json字段**|**字段含义**|**赋值及含义**| 322 |**Json字段**|**字段含义**|**赋值及含义**|
350 | --- | --- | --- | 323 | --- | --- | --- |
351 |keySnList|指定键盘列表|keySn数组,为空表示所有键盘都参与。| 324 |keySnList|指定键盘列表|keySn数组,为空表示所有键盘都参与。|
352 -|| | | 325 +
353 326
354 327
355 在停止作答时,各类答题都可指定停止作答键盘,也可以为空。 328 在停止作答时,各类答题都可指定停止作答键盘,也可以为空。
@@ -359,7 +332,7 @@ params:{} //无该值 @@ -359,7 +332,7 @@ params:{} //无该值
359 |**Json字段**|**字段含义**|**赋值及含义**| 332 |**Json字段**|**字段含义**|**赋值及含义**|
360 | --- | --- | --- | 333 | --- | --- | --- |
361 |keySnList|指定键盘列表|keySn数组,为空表示所有键盘都参与。| 334 |keySnList|指定键盘列表|keySn数组,为空表示所有键盘都参与。|
362 -|||| 335 +
363 336
364 337
365 如果指定了键盘,则会逐个返回指定键盘的接收状态。收到的infos数组对象如下: 338 如果指定了键盘,则会逐个返回指定键盘的接收状态。收到的infos数组对象如下:
@@ -368,120 +341,114 @@ params:{} //无该值 @@ -368,120 +341,114 @@ params:{} //无该值
368 | --- | --- | --- | 341 | --- | --- | --- |
369 |keySn|键盘Sn|| 342 |keySn|键盘Sn||
370 |state|状态|OK表示成功| 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 infos:{}//数组对象 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 params:{} //为空 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 baseId: 1//接收到指令的基站ID 419 baseId: 1//接收到指令的基站ID
450 -  
451 infos:{}//数组对象 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 params:{} //为空 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,8 +457,7 @@ params:{} //为空
490 457
491 发送: 458 发送:
492 459
493 -fun: \"startBind\" //开始签到  
494 - 460 +fun: "startBind" //开始签到
495 params:{} 461 params:{}
496 462
497 463
@@ -503,40 +469,35 @@ params:{} @@ -503,40 +469,35 @@ params:{}
503 | limitNumber | 指定位数 | 0-不指定位数(默认值) </br> 1-指定位数 | 469 | limitNumber | 指定位数 | 0-不指定位数(默认值) </br> 1-指定位数 |
504 | options | 固定值 | 固定值10| 470 | options | 固定值 | 固定值10|
505 | optionalN | 可选数字 | 1≤N≤10 (指定位数才需要设置, 10为0) | 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 | tipTitle | 提示标题 | 16个字节 | 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 infos:{} 501 infos:{}
541 502
542 | Json字段|字段含义|赋值及含义| 503 | Json字段|字段含义|赋值及含义|
@@ -547,57 +508,54 @@ infos:{} @@ -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 params:{} //默认空 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,7 +564,6 @@ infos:{\&quot;state\&quot;:\&quot;OK\&quot;}//返回状态,成功为OK
606 |B100-2.4G+S6|支持|| 564 |B100-2.4G+S6|支持||
607 |B200-2.4G+S6|支持|| 565 |B200-2.4G+S6|支持||
608 |B200-5.8G+T2|支持|| 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,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 params:{} 575 params:{}
620 576
621 |Json字段|字段含义|赋值及含义| 577 |Json字段|字段含义|赋值及含义|
@@ -628,135 +584,118 @@ params:{} @@ -628,135 +584,118 @@ params:{}
628 | options | 选项数目 | 1≤M≤10(默认值4) | 584 | options | 选项数目 | 1≤M≤10(默认值4) |
629 | optionalN | 可选项数 | 1≤N≤M(默认值1) | 585 | optionalN | 可选项数 | 1≤N≤M(默认值1) |
630 | tipTitle | 提示标题 | 16个字节 | 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 infos: {} 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 params:{} //默认空 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,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 params:{} 707 params:{}
770 708
771 |**Json字段**|**字段含义**|**赋值及含义**| 709 |**Json字段**|**字段含义**|**赋值及含义**|
@@ -774,129 +712,114 @@ params:{} @@ -774,129 +712,114 @@ params:{}
774 | secrecyMode | 保密模式 | 0-不保密(默认值) </br> 1-保密| 712 | secrecyMode | 保密模式 | 0-不保密(默认值) </br> 1-保密|
775 | modifyMode | 修改模式 | 0-不可修改</br>1-可以修改(默认值)| 713 | modifyMode | 修改模式 | 0-不可修改</br>1-可以修改(默认值)|
776 | tipTitle | 提示标题 | 16个字节| 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 infos: {} 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 params:{} //默认空 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,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 params:{} 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 infos: {} 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 params:{} //默认空 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,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 params:{} 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,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 infos: {} 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 infos: {} 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,37 +1084,37 @@ infos: {}
1217 1084
1218 发送: 1085 发送:
1219 1086
1220 -fun: \"stopVoice\" //停止语音题  
1221 - 1087 +fun: "stopVoice" //停止语音题
1222 params:{} //默认空, 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,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 baseId:1 //1\~32,连接基站 1128 baseId:1 //1\~32,连接基站
1263 -  
1264 infos:{} // 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 params:{} 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 infos: {} 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 params:{} //默认空 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,8 +1673,7 @@ params:{}
1835 1673
1836 | **Json字段** | **字段含义** | **赋值及含义** | 1674 | **Json字段** | **字段含义** | **赋值及含义** |
1837 | --- | --- | --- | 1675 | --- | --- | --- |
1838 -| questionLevel1Symbol | 一级题号 | 0 |  
1839 -| questionLevel2Symbol | 二级题号 | 1-200 | 1676 +| questionLevel2Symbol | 一级题号 | 1-200 |
1840 | course | 科目 | 1:语文<br>2:数学<br>3:英语<br>4:政治<br>5:历史<br>6:地理<br>7:生物<br>8:物理<br>9化学 | 1677 | course | 科目 | 1:语文<br>2:数学<br>3:英语<br>4:政治<br>5:历史<br>6:地理<br>7:生物<br>8:物理<br>9化学 |
1841 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 | 1678 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
1842 | option | 选项数目 | 当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。| 1679 | option | 选项数目 | 当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
@@ -1848,26 +1685,22 @@ params:{} @@ -1848,26 +1685,22 @@ params:{}
1848 "params": { 1685 "params": {
1849 "examNo": 1, 1686 "examNo": 1,
1850 "questions": [{ 1687 "questions": [{
1851 - "questionLevel1Symbol": "0",  
1852 - "questionLevel2Symbol": "1", 1688 + "questionLevel1Symbol": "1",
1853 "course": "1", 1689 "course": "1",
1854 "questionType": "1", 1690 "questionType": "1",
1855 "option": "4" 1691 "option": "4"
1856 }, { 1692 }, {
1857 - "questionLevel1Symbol": "0",  
1858 - "questionLevel2Symbol": "2", 1693 + "questionLevel1Symbol": "2",
1859 "course": "2", 1694 "course": "2",
1860 "questionType": "2", 1695 "questionType": "2",
1861 "option": "4" 1696 "option": "4"
1862 }, { 1697 }, {
1863 - "questionLevel1Symbol": "0",  
1864 - "questionLevel2Symbol": "3", 1698 + "questionLevel1Symbol": "3",
1865 "course": "3", 1699 "course": "3",
1866 "questionType": "3", 1700 "questionType": "3",
1867 "option": "4" 1701 "option": "4"
1868 }, { 1702 }, {
1869 - "questionLevel1Symbol": "0",  
1870 - "questionLevel2Symbol": "4", 1703 + "questionLevel1Symbol": "4",
1871 "course": "4", 1704 "course": "4",
1872 "questionType": "4", 1705 "questionType": "4",
1873 "option": "4" 1706 "option": "4"
@@ -2056,9 +1889,7 @@ params:{} @@ -2056,9 +1889,7 @@ params:{}
2056 1889
2057 | **Json字段** | **字段含义** | **赋值及含义** | 1890 | **Json字段** | **字段含义** | **赋值及含义** |
2058 | --- | --- | --- | 1891 | --- | --- | --- |
2059 -| questionLevel1Symbol | 一级题号 | 0 |  
2060 -| questionLevel2Symbol | 二级题号 | 0 |  
2061 -| questionLevel3Symbol | 三级题号 | 1-99 | 1892 +| questionLevel1Symbol | 一级题号 | 1-200 |
2062 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 | 1893 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
2063 | option | 选项数目 |当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。| 1894 | option | 选项数目 |当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
2064 1895
@@ -2069,25 +1900,17 @@ params:{} @@ -2069,25 +1900,17 @@ params:{}
2069 "params": { 1900 "params": {
2070 "examNo": 1, 1901 "examNo": 1,
2071 "questions": [{ 1902 "questions": [{
2072 - "questionLevel1Symbol": "0",  
2073 - "questionLevel2Symbol": "0",  
2074 - "questionLevel3Symbol": "1", 1903 + "questionLevel1Symbol": "1",
2075 "questionType": "1" 1904 "questionType": "1"
2076 }, { 1905 }, {
2077 - "questionLevel1Symbol": "0",  
2078 - "questionLevel2Symbol": "0",  
2079 - "questionLevel3Symbol": "3", 1906 + "questionLevel1Symbol": "3",
2080 "questionType": "2", 1907 "questionType": "2",
2081 "option": "5" 1908 "option": "5"
2082 }, { 1909 }, {
2083 - "questionLevel1Symbol": "0",  
2084 - "questionLevel2Symbol": "0",  
2085 - "questionLevel3Symbol": "4", 1910 + "questionLevel1Symbol": "4",
2086 "questionType": "3" 1911 "questionType": "3"
2087 }, { 1912 }, {
2088 - "questionLevel1Symbol": "0",  
2089 - "questionLevel2Symbol": "0",  
2090 - "questionLevel3Symbol": "5", 1913 + "questionLevel1Symbol": "5",
2091 "questionType": "4" 1914 "questionType": "4"
2092 }] 1915 }]
2093 }, 1916 },
@@ -2130,9 +1953,8 @@ params:{} @@ -2130,9 +1953,8 @@ params:{}
2130 1953
2131 | **Json字段** | **字段含义** | **赋值及含义** | 1954 | **Json字段** | **字段含义** | **赋值及含义** |
2132 | --- | --- | --- | 1955 | --- | --- | --- |
2133 -| questionLevel1Symbol | 一级题号 | 0 | 1956 +| questionLevel1Symbol | 一级题号 | 1-99 |
2134 | questionLevel2Symbol | 二级题号 | 1-99 | 1957 | questionLevel2Symbol | 二级题号 | 1-99 |
2135 -| questionLevel3Symbol | 三级题号 | 1-99 |  
2136 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 | 1958 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
2137 | option | 选项数目 |当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。| 1959 | option | 选项数目 |当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
2138 1960
@@ -2143,25 +1965,21 @@ params:{} @@ -2143,25 +1965,21 @@ params:{}
2143 "params": { 1965 "params": {
2144 "examNo": 1, 1966 "examNo": 1,
2145 "questions": [{ 1967 "questions": [{
2146 - "questionLevel1Symbol": "0", 1968 + "questionLevel1Symbol": "1",
2147 "questionLevel2Symbol": "1", 1969 "questionLevel2Symbol": "1",
2148 - "questionLevel3Symbol": "1",  
2149 "questionType": "1" 1970 "questionType": "1"
2150 }, { 1971 }, {
2151 - "questionLevel1Symbol": "0",  
2152 - "questionLevel2Symbol": "2",  
2153 - "questionLevel3Symbol": "3", 1972 + "questionLevel1Symbol": "2",
  1973 + "questionLevel2Symbol": "3",
2154 "questionType": "2", 1974 "questionType": "2",
2155 "option": "5" 1975 "option": "5"
2156 }, { 1976 }, {
2157 - "questionLevel1Symbol": "0",  
2158 - "questionLevel2Symbol": "2",  
2159 - "questionLevel3Symbol": "4", 1977 + "questionLevel1Symbol": "2",
  1978 + "questionLevel2Symbol": "4",
2160 "questionType": "3" 1979 "questionType": "3"
2161 }, { 1980 }, {
2162 - "questionLevel1Symbol": "0",  
2163 - "questionLevel2Symbol": "2",  
2164 - "questionLevel3Symbol": "5", 1981 + "questionLevel1Symbol": "2",
  1982 + "questionLevel2Symbol": "5",
2165 "questionType": "4" 1983 "questionType": "4"
2166 }] 1984 }]
2167 }, 1985 },
@@ -2280,7 +2098,7 @@ params:{} @@ -2280,7 +2098,7 @@ params:{}
2280 | --- | --- | --- | 2098 | --- | --- | --- |
2281 | questionLevel1Symbol | 一级题号 | 1-200 | 2099 | questionLevel1Symbol | 一级题号 | 1-200 |
2282 | toplimit | 数字上限 | 1-100 | 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 ```json 2103 ```json
2286 { 2104 {
@@ -2539,7 +2357,6 @@ params:{} @@ -2539,7 +2357,6 @@ params:{}
2539 2357
2540 | **Json字段** | **字段含义** | **赋值及含义** | 2358 | **Json字段** | **字段含义** | **赋值及含义** |
2541 | --- | --- | --- | 2359 | --- | --- | --- |
2542 -| questionLevel1Symbol | 一级题号 | 0 |  
2543 | questionLevel2Symbol | 二级题号 | 1-99 | 2360 | questionLevel2Symbol | 二级题号 | 1-99 |
2544 | course | 科目 | 1:语文<br>2:数学<br>3:英语<br>4:政治<br>5:历史<br>6:地理<br>7:生物<br>8:物理<br>9化学 | 2361 | course | 科目 | 1:语文<br>2:数学<br>3:英语<br>4:政治<br>5:历史<br>6:地理<br>7:生物<br>8:物理<br>9化学 |
2545 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 | 2362 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
@@ -2552,26 +2369,22 @@ params:{} @@ -2552,26 +2369,22 @@ params:{}
2552 "params": { 2369 "params": {
2553 "examNo": 1, 2370 "examNo": 1,
2554 "questions": [{ 2371 "questions": [{
2555 - "questionLevel1Symbol": "0",  
2556 - "questionLevel2Symbol": "1", 2372 + "questionLevel1Symbol": "1",
2557 "course": "1", 2373 "course": "1",
2558 "questionType": "1", 2374 "questionType": "1",
2559 "option": "4" 2375 "option": "4"
2560 }, { 2376 }, {
2561 - "questionLevel1Symbol": "0",  
2562 - "questionLevel2Symbol": "2", 2377 + "questionLevel1Symbol": "2",
2563 "course": "2", 2378 "course": "2",
2564 "questionType": "2", 2379 "questionType": "2",
2565 "option": "4" 2380 "option": "4"
2566 }, { 2381 }, {
2567 - "questionLevel1Symbol": "0",  
2568 - "questionLevel2Symbol": "3", 2382 + "questionLevel1Symbol": "3",
2569 "course": "3", 2383 "course": "3",
2570 "questionType": "3", 2384 "questionType": "3",
2571 "option": "4" 2385 "option": "4"
2572 }, { 2386 }, {
2573 - "questionLevel1Symbol": "0",  
2574 - "questionLevel2Symbol": "4", 2387 + "questionLevel1Symbol": "4",
2575 "course": "4", 2388 "course": "4",
2576 "questionType": "4", 2389 "questionType": "4",
2577 "option": "4" 2390 "option": "4"
@@ -2760,9 +2573,7 @@ params:{} @@ -2760,9 +2573,7 @@ params:{}
2760 2573
2761 | **Json字段** | **字段含义** | **赋值及含义** | 2574 | **Json字段** | **字段含义** | **赋值及含义** |
2762 | --- | --- | --- | 2575 | --- | --- | --- |
2763 -| questionLevel1Symbol | 一级题号 | 0 |  
2764 -| questionLevel2Symbol | 二级题号 | 0 |  
2765 -| questionLevel3Symbol | 三级题号 | 1-99 | 2576 +| questionLevel1Symbol | 三级题号 | 1-200 |
2766 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 | 2577 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
2767 | option | 选项数目 | 当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。| 2578 | option | 选项数目 | 当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
2768 2579
@@ -2773,25 +2584,17 @@ params:{} @@ -2773,25 +2584,17 @@ params:{}
2773 "params": { 2584 "params": {
2774 "examNo": 1, 2585 "examNo": 1,
2775 "questions": [{ 2586 "questions": [{
2776 - "questionLevel1Symbol": "0",  
2777 - "questionLevel2Symbol": "0",  
2778 - "questionLevel3Symbol": "1", 2587 + "questionLevel1Symbol": "1",
2779 "questionType": "1" 2588 "questionType": "1"
2780 }, { 2589 }, {
2781 - "questionLevel1Symbol": "0",  
2782 - "questionLevel2Symbol": "0",  
2783 - "questionLevel3Symbol": "3", 2590 + "questionLevel1Symbol": "3",
2784 "questionType": "2", 2591 "questionType": "2",
2785 "option": "5" 2592 "option": "5"
2786 }, { 2593 }, {
2787 - "questionLevel1Symbol": "0",  
2788 - "questionLevel2Symbol": "0",  
2789 - "questionLevel3Symbol": "4", 2594 + "questionLevel1Symbol": "4",
2790 "questionType": "3" 2595 "questionType": "3"
2791 }, { 2596 }, {
2792 - "questionLevel1Symbol": "0",  
2793 - "questionLevel2Symbol": "0",  
2794 - "questionLevel3Symbol": "5", 2597 + "questionLevel1Symbol": "5",
2795 "questionType": "4" 2598 "questionType": "4"
2796 }] 2599 }]
2797 }, 2600 },
@@ -2834,9 +2637,8 @@ params:{} @@ -2834,9 +2637,8 @@ params:{}
2834 2637
2835 | **Json字段** | **字段含义** | **赋值及含义** | 2638 | **Json字段** | **字段含义** | **赋值及含义** |
2836 | --- | --- | --- | 2639 | --- | --- | --- |
2837 -| questionLevel1Symbol | 一级题号 | 0 |  
2838 -| questionLevel2Symbol | 二级题号 | 1-99 |  
2839 -| questionLevel3Symbol | 三级题号 | 1-99 | 2640 +| questionLevel1Symbol | 二级题号 | 1-99 |
  2641 +| questionLevel2Symbol | 三级题号 | 1-99 |
2840 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 | 2642 | questionType | 题目类型 | 1:单选<br>2:多选(排序)<br>3:数字<br>4:判断 |
2841 | option | 选项数目 | 当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。| 2643 | option | 选项数目 | 当questionType = 1 有效。<br>当questionType = 2 有效。<br>此项缺省时 默认4;<br>范围:1-10。|
2842 2644
@@ -2847,25 +2649,21 @@ params:{} @@ -2847,25 +2649,21 @@ params:{}
2847 "params": { 2649 "params": {
2848 "examNo": 1, 2650 "examNo": 1,
2849 "questions": [{ 2651 "questions": [{
2850 - "questionLevel1Symbol": "0", 2652 + "questionLevel1Symbol": "1",
2851 "questionLevel2Symbol": "1", 2653 "questionLevel2Symbol": "1",
2852 - "questionLevel3Symbol": "1",  
2853 "questionType": "1" 2654 "questionType": "1"
2854 }, { 2655 }, {
2855 - "questionLevel1Symbol": "0",  
2856 - "questionLevel2Symbol": "2",  
2857 - "questionLevel3Symbol": "3", 2656 + "questionLevel1Symbol": "2",
  2657 + "questionLevel2Symbol": "3",
2858 "questionType": "2", 2658 "questionType": "2",
2859 "option": "5" 2659 "option": "5"
2860 }, { 2660 }, {
2861 - "questionLevel1Symbol": "0",  
2862 - "questionLevel2Symbol": "2",  
2863 - "questionLevel3Symbol": "4", 2661 + "questionLevel1Symbol": "2",
  2662 + "questionLevel2Symbol": "4",
2864 "questionType": "3" 2663 "questionType": "3"
2865 }, { 2664 }, {
2866 - "questionLevel1Symbol": "0",  
2867 - "questionLevel2Symbol": "2",  
2868 - "questionLevel3Symbol": "5", 2665 + "questionLevel1Symbol": "2",
  2666 + "questionLevel2Symbol": "5",
2869 "questionType": "4" 2667 "questionType": "4"
2870 }] 2668 }]
2871 }, 2669 },
@@ -2983,7 +2781,7 @@ params:{} @@ -2983,7 +2781,7 @@ params:{}
2983 | --- | --- | --- | 2781 | --- | --- | --- |
2984 | questionLevel1Symbol | 一级题号 | 1-200 | 2782 | questionLevel1Symbol | 一级题号 | 1-200 |
2985 | toplimit | 数字上限 | 1-100 | 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 ```json 2786 ```json
2989 { 2787 {