Commit 5890e4c7493fa303efdf96f1f1a6fb74909cec8f

Authored by 孙向锦
1 parent 68f3ad33

海亮定制

Showing 1 changed file with 339 additions and 351 deletions
海亮定制.md
@@ -346,107 +346,147 @@ ${clinetId} clinetId 是基站编号,为替换字符串。 @@ -346,107 +346,147 @@ ${clinetId} clinetId 是基站编号,为替换字符串。
346 #### 键盘上线 346 #### 键盘上线
347 347
348 由基站发给应用程序,应用需要订阅主题 348 由基站发给应用程序,应用需要订阅主题
  349 +主题: /client/${clientId}/card/online
  350 +指令内容:
  351 +```json
  352 +{
  353 + "i": 14,
  354 + "m": [{
  355 + "c": "12345",
  356 + "el": 0.75,
  357 + "t": 1626016299
  358 + }]
  359 +}
  360 +```
  361 +| 名词 | 备注 |
  362 +| --- | --- |
  363 +| i = 14 |键盘上线 |
  364 +| el |电量信息答题器编号和上线时间及电量信息 |
  365 +|||
349 366
350 -| 主题 | /client/${clientId}/card/online | 备注 |  
351 -| --- | --- | --- |  
352 -| |``` { "i":14, "m":[{ "c":"12345", "el":0.75, "t":1626016299 }]} ``` | i = 14 键盘上线 el 电量信息答题器编号和上线时间及电量信息 |  
353 -  
354 - 367 +
355 #### 键盘下线 368 #### 键盘下线
356 369
357 由基站发给应用程序,应用需要订阅主题 370 由基站发给应用程序,应用需要订阅主题
358 -  
359 -| 主题 | /client/${clientId}/card/offline | 备注 |  
360 -| --- | --- | --- |  
361 -| |``` { "i":15, "m":[{ "c":"12345", "t":1626016299 }]} ```| i = 15 键盘下线<br>答题器编号和下线时间 | 371 +主题: /client/${clientId}/card/offline
  372 +指令内容:
  373 +```json
  374 +{
  375 + "i": 15,
  376 + "m": [{
  377 + "c": "12345",
  378 + "t": 1626016299
  379 + }]
  380 +}
  381 +```
  382 +| 名词 | 备注 |
  383 +| --- | --- |
  384 +| i = 15 |键盘下线 |
  385 +| t |答题器编号和下线时间 |
  386 +|||
362 387
363 388
364 #### 键盘在线检测 389 #### 键盘在线检测
365 -  
366 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
367 -| --- | --- | --- |  
368 -| |``` { "i":16} | i = 16应用主动通知键盘发送在线键盘信息。键盘上线参考"键盘上线3.3.3.1" ```|| 390 +主题: /lesson/class/${clinetId}/receive
  391 +指令内容:
  392 +```json
  393 +{
  394 + "i": 16
  395 +}
  396 +```
  397 +| 名词 | 备注 |
  398 +| --- | --- |
  399 +| i = 16 |应用主动通知键盘发送在线键盘信息 |
  400 +|||
369 401
370 402
371 #### 读取白名单 403 #### 读取白名单
372 404
373 应用程序发送给基站 405 应用程序发送给基站
  406 +主题: /lesson/class/${clinetId}/receive
  407 +指令内容:
  408 +```json
  409 +{
  410 + "i": 30
  411 +}
  412 +```
  413 +| 名词 | 备注 |
  414 +| --- | --- |
  415 +| i = 30 |读取白名单 |
  416 +|||
374 417
375 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
376 -| --- | --- | --- |  
377 -| |``` { "i":30,} ```| i = 30 读取白名单 |  
378 418
379 基站发给应用程序 419 基站发给应用程序
  420 +主题: /lesson/class/${clinetId}/receive
  421 +指令内容:
  422 +```json
  423 +{
  424 + "i": 31,
  425 + "total": 1,
  426 + "current": 1,
  427 + "m": ["2126932551"]
  428 +}
  429 +```
  430 +| 名词 | 备注 |
  431 +| --- | --- |
  432 +| i = 31 |白名单上传 |
  433 +|||
380 434
381 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
382 -| --- | --- | --- |  
383 -| |``` { "i": 31, "total": 1, "current": 1, "m": ["2126932551"]} ```| i = 31 白名单上传 |  
384 435
385 436
386 #### 添加白名单 437 #### 添加白名单
387 438
388 应用程序发送给基站 439 应用程序发送给基站
  440 +主题: /lesson/class/${clinetId}/receive
  441 +指令内容:
  442 +```json
  443 +{
  444 + "i": 3,
  445 + "m": ["12345", "56789"]
  446 +}
  447 +```
  448 +| 名词 | 备注 |
  449 +| --- | --- |
  450 +| i = 3 |添加白名单m内包含白名单键盘按编号 |
  451 +|||
389 452
390 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
391 -| --- | --- | --- |  
392 -| |``` { "i":3, "m":["12345","56789"]} ```| i = 3 添加白名单m内包含白名单键盘按编号 |  
393 453
394 454
395 #### 删除白名单 455 #### 删除白名单
396 456
397 应用程序发送给基站 457 应用程序发送给基站
  458 +主题: /lesson/class/${clinetId}/receive
  459 +指令内容:
  460 +```json
  461 +{
  462 + "i": 4,
  463 + "m": ["12345", "56789"]
  464 +}
  465 +```
398 466
399 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
400 -| --- | --- | --- |  
401 -| |``` { "i":4, "m":["12345","56789"]} ```| i = 4 删除白名单m内包含白名单键盘按编号 | 467 +| 名词 | 备注 |
  468 +| --- | --- |
  469 +| i = 4 |删除白名单m内包含白名单键盘按编号 |
  470 +|||
402 471
403 472
404 #### 清空白名单 473 #### 清空白名单
405 474
406 应用程序发送给基站 475 应用程序发送给基站
407 -  
408 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
409 -| --- | --- | --- |  
410 -| |{ "i":5} | i = 5 清空白名单 | 476 +主题: /lesson/class/${clinetId}/receive
  477 +指令内容:
  478 +```json
  479 +{
  480 + "i": 5
  481 +}
  482 +```
  483 +| 名词 | 备注 |
  484 +| --- | --- |
  485 +| i = 5 |清空白名单 |
  486 +|||
411 487
412 488
413 -### 签到  
414 -  
415 -  
416 -#### 开启签到  
417 -  
418 -由应用程序发给基站,应用按照主题发送  
419 -  
420 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
421 -| --- | --- | --- |  
422 -| |{ "i": 12, "en": "12340", "qm": 7, "m": { "tp":"pin", "content":"hex: c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" }} | qm= 7 签到 en 序号(事务)ID,每个任务需要变化 Tp 签到模式 pin表示pin签到 Ok 表示按ok键签到,默认按OK键签到 |  
423 489
424 -  
425 -#### 接收签到信息  
426 -  
427 -由基站发给应用程序,应用订阅主题  
428 -  
429 -| 主题 | /lesson/class/${clinetId}/send | 备注 |  
430 -| --- | --- | --- |  
431 -| |{ "i":13, "en":"12340", "qm":7, "m":[{ "c":"12345", "a":"6542", "t":1626016299 }] } | qm = 7 签到 en 发起的序号ID c 键盘sn号 t 表示时间A 签到附带信息 |  
432 -  
433 -  
434 -#### 停止签到  
435 -  
436 -由应用程序发给基站,应用按照主题发送  
437 -  
438 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
439 -| --- | --- | --- |  
440 -| |{ "i": 11, "en": "12340"} | 停止对序号12340的签到 |  
441 -  
442 -  
443 -#### 签到结果下发  
444 -  
445 -由应用程序发给基站,应用按照主题发送  
446 -  
447 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
448 -| --- | --- | --- |  
449 -| |{ "i": 62, "en": "12340" "sn":["1","2"], "m":{ "success":0 "text":"hex:shjdfhkjhkjfd" }} | Pin 签到的签到结果下发 Success 签到状态结果Text 签到信息(例如签到失败) |  
450 490
451 491
452 ### 单题 492 ### 单题
@@ -455,340 +495,288 @@ ${clinetId} clinetId 是基站编号,为替换字符串。 @@ -455,340 +495,288 @@ ${clinetId} clinetId 是基站编号,为替换字符串。
455 #### 开启答题 495 #### 开启答题
456 496
457 由应用程序发给基站,应用按照主题发送 497 由应用程序发给基站,应用按照主题发送
458 -  
459 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
460 -| --- | --- | --- |  
461 -| |{ "i": 12, "en": "12340", "qm": 1, "m": { "qt": 0, "on": 4, "content":"hex: c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" }} | 示例为单题模式的字母单选。<br>题目内容必须要转成GBK 16进制hex进行传输,并且在内容前面标记为hex: <br> qm =1 单题模式 <br>i=12 下发答题/签到指令 <br> qt 字母单选<br> on 选项数<br> content 题目主干内容 |  
462 -  
463 -  
464 -  
465 -#### 接收答题数据  
466 -  
467 -由基站发给应用程序,应用订阅主题  
468 -  
469 -| 主题 | /lesson/class/${clinetId}/send | 备注 |  
470 -| --- | --- | --- |  
471 -| |{ "i":13, "en":"12340", "qm":1, "c":"12345", "m":[{ "qn":1, "a":"A", "t":1626016299 }] } | 按照题号(qn)来上报答题数据,单题题号固定为1, t为提交答案时间文本题:hex: 标记是gbk编码的hex内容 I = 13 上报信息 qm 字母单选题 c 键盘编号 qn 第几题 单选固定是1t 答题时间 |  
472 -  
473 -  
474 -#### 停止答题  
475 -  
476 -由应用程序发给基站,应用按照主题发送  
477 -  
478 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
479 -| --- | --- | --- |  
480 -| |{ "i": 11, "en": "12340"} | 停止对序号12340的测验 |  
481 -  
482 -  
483 -### 多题  
484 -  
485 -  
486 -#### 开启答题  
487 -  
488 -由应用程序发给基站,应用按照主题发送  
489 -  
490 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
491 -| --- | --- | --- |  
492 -| |{"i":12, "en":"12341", "qm":2, "m":{ "qt":0, "on": 4, "qs":20, "content":"hex: c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" }} | 示例为多题模式不带内容的快速20道字母单选。 qm =2 多题模式 Qt 题目模式 qt = 0 字母单选 On 选项数量 Qs 题目数量|  
493 -  
494 -  
495 -#### 接收答题数据  
496 -  
497 -由基站发给应用程序,应用订阅主题  
498 -  
499 -| 主题 | /lesson/class/${clinetId}/send | 备注 |  
500 -| --- | --- | --- |  
501 -| { "i":13, "en":"12341", "qm":2, "c":"12345", "m":[{ "qn":1, "a":"A", "t":1626016299 }] } | 按照题号(qn)来上报答题数据,单题题号固定为1, t为提交答案时间 "a":"hex:",文本题:hex: 标记是gbk编码的hex内容 |  
502 -  
503 -  
504 -#### 停止答题  
505 -  
506 -由应用程序发给基站,应用按照主题发送  
507 -  
508 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
509 -| --- | --- | --- |  
510 -| { "i": 11, "en": "12341"} | 停止对序号12341的测验 |  
511 -  
512 -  
513 -### 套卷  
514 -  
515 -  
516 -#### 开启答题  
517 -  
518 -由应用程序发给基站,应用按照主题发送  
519 -  
520 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
521 -| --- | --- | --- |  
522 -| "i":12, "en":"12341", "qm":3, "qs":4, "m":[{ "qt":0, "qs":1, "on":6 },{ "qt":1, "qs":1, "on":6  
523 - },{ "qt":3, "qs":1, "on":6  
524 - },{ "qt":0, "qs":1, "on":6 }]} | 示例为多题模式不带内容的快速20道字母单选。 qm =3 套卷模式 Qt 题目模式 qt = 0 字母单选 On 选项数量 Qs 题目数量  
525 - | 498 +主题: /lesson/class/${clinetId}/receive
  499 +指令内容:
  500 +```json
  501 +{
  502 + "i": 12,
  503 + "en": "12340",
  504 + "qm": 1,
  505 + "m": {
  506 + "qt": 0,
  507 + "on": 4,
  508 + "content": "hex: c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2"
  509 + }
  510 +}
  511 +```
  512 +| 名词 | 备注 |
  513 +| --- | --- |
  514 +| i = 12 |下发答题/签到指令 |
  515 +| qm = 1 |单题模式 示例为单题模式的字母单选 |
  516 +| qt |字母单选 |
  517 +| on |选项数 |
  518 +| content = 1 |题目主干内容 |
  519 +|||
526 520
527 521
528 #### 接收答题数据 522 #### 接收答题数据
529 523
530 由基站发给应用程序,应用订阅主题 524 由基站发给应用程序,应用订阅主题
531 -  
532 -| 主题 | /lesson/class/${clinetId}/send | 备注 |  
533 -| --- | --- | --- |  
534 -| { "i":13, "en":"12341", "qm":2, "c":"12345", "m":[{ "qn":1, "a":"A", "t":1626016299 }] } | 按照题号(qn)来上报答题数据,单题题号固定为1, t为提交答案时间 "a":"hex:",文本题:hex: 标记是gbk编码的hex内容 |  
535 - 525 +主题: /lesson/class/${clinetId}/send
  526 +指令内容:
  527 +```json
  528 +{
  529 + "i": 13,
  530 + "en": "12340",
  531 + "qm": 1,
  532 + "c": "12345",
  533 + "m": [{
  534 + "qn": 1,
  535 + "a": "A",
  536 + "t": 1626016299
  537 + }]
  538 +}
  539 +```
  540 +| 名词 | 备注 |
  541 +| --- | --- |
  542 +| i = 13 | 答题数据 |
  543 +| qn = 1 |上报答题数据,单题题号固定为1 |
  544 +| t |提交答案时间 |
  545 +| a | 答题数据 |
  546 +|||
536 547
537 #### 停止答题 548 #### 停止答题
538 -  
539 由应用程序发给基站,应用按照主题发送 549 由应用程序发给基站,应用按照主题发送
  550 +主题:/lesson/class/${clinetId}/receive
  551 +指令内容:
  552 +```json
  553 +{
  554 + "i": 11,
  555 + "en": "12340"
  556 +}
  557 +```
  558 +| 名词 | 备注 |
  559 +| --- | --- |
  560 +| i = 11 | 停止答题 |
  561 +| en |停止对序号12340的测验 |
  562 +|||
540 563
541 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
542 -| --- | --- | --- |  
543 -| { "i": 11, "en": "12341"} | 停止对序号12341的测验 |  
544 -  
545 -  
546 -### 抢答  
547 - 564 +### 抢答(待完成-可能修改)
548 565
549 #### 开启答题 566 #### 开启答题
550 567
551 由应用程序发给基站,应用按照主题发送 568 由应用程序发给基站,应用按照主题发送
552 -  
553 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
554 -| --- | --- | --- |  
555 -| { "i":12, "en":"12341", "qm":4} | 示例为多题模式不带内容的快速20道字母单选。 qm =3 套卷模式 Qt 题目模式 qt = 0 字母单选 On 选项数量 Qs 题目数量  
556 - | 569 +主题: /lesson/class/${clinetId}/receive
  570 +指令内容:
  571 +```json
  572 +{
  573 + "i": 12,
  574 + "en": "12341",
  575 + "qm": 4
  576 +}
  577 +```
  578 +| 名词 | 备注 |
  579 +| --- | --- |
  580 +| i = 12 | 开启答题 |
  581 +| en |12341测验 |
  582 +| qm | qm =4 抢答题 |
  583 +|||
557 584
558 585
559 #### 接收答题数据 586 #### 接收答题数据
560 587
561 由基站发给应用程序,应用订阅主题 588 由基站发给应用程序,应用订阅主题
  589 +主题: /lesson/class/${clinetId}/send
  590 +指令内容:
  591 +```json
  592 +{
  593 + "i": 13,
  594 + "en": "12341",
  595 + "qm": 4,
  596 + "c": "12345",
  597 + "m": [{
  598 + "qn": 1,
  599 + "a": "A",
  600 + "t": 1626016299
  601 + }]
  602 +}
  603 +```
562 604
563 -| 主题 | /lesson/class/${clinetId}/send | 备注 |  
564 -| --- | --- | --- |  
565 -| { "i":13, "en":"12341", "qm":2, "c":"12345", "m":[{ "qn":1, "a":"A", "t":1626016299 }] } | 按照题号(qn)来上报答题数据,单题题号固定为1, t为提交答案时间 "a":"hex:",文本题:hex: 标记是gbk编码的hex内容 |  
566 -  
567 -  
568 -#### 停止答题  
569 -  
570 -由应用程序发给基站,应用按照主题发送  
571 -  
572 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
573 -| --- | --- | --- |  
574 -| { "i": 11, "en": "12341"} | 停止对序号12341的测验 |  
575 -  
576 -  
577 -### 套卷带题干  
578 -  
579 -  
580 -#### 开启答题(套卷带题干)  
581 -  
582 -由应用程序发给基站,应用按照主题发送  
583 -  
584 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
585 -| --- | --- | --- |  
586 -| { "i":12, "en":"12342", "qm":8, "qs":4, "total":1, "current":1, "m":[{ "qt":0, "on":6, "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" },{ "qt":1, "on":6, "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" },{ "qt":3, "on":6, "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" },{ "qt":0, "on":6, "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" }] } | 示例: 1道字母单选, 1道字母多选, 1道判断题, 1道字母单选。 I = 12 指令 en = 12342该答题序号为12342,应用程序自定义 qm 题型 total 这次数据一共多少包 current 当前第几包。如果套卷内容过大,需要分包传输,一个包的数据量是整个 json数据不能超过4k(4096个字节)。 m 题目详情 qt 题型 qs 题数 on 选项数 content 题目内容 |  
587 -| { "i":12, "en":"12342", "qm":8, "qs":4, "total":1, "current":1, "at":1, "m":[{ "qt":0, "on":6, "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" },{ "qt":1, "on":6, "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" },{ "qt":3, "on":6, "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" },{ "qt":0, "on":6, "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" }] } | 比上一个用例多一个 at= 1表示自动测试键盘固定答案上传 |  
588 -  
589 -  
590 -#### 接收答题信息  
591 -  
592 -由基站发给应用程序,应用需要订阅主题  
593 -  
594 -| 主题 | /lesson/class/${clinetId}/send | 备注 |  
595 -| --- | --- | --- |  
596 -| { "i":13, "en":"12342", "qm":8, "c":"12345", "m":[{ "qn":1, "a":"A", "t":1626016299  
597 - }] } | 按照题号(qn)来上报答题数据,单题题号固定为1, t为提交答案时间示例说明:键盘号为12345的键盘在时间轴1626016299 答的套卷第一题的答案为A "a":"hex:",文本题:hex: 标记是gbk编码的hex内容 | 605 +| 名词 | 备注 |
  606 +| --- | --- |
  607 +| i = 12 | 开启答题 |
  608 +| en |12341测验 |
  609 +| qm | qm =4 抢答题 |
  610 +| c | 键盘编号 |
  611 +| qn |上报答题数据,单题题号固定为1 |
  612 +| t |提交答案时间 |
  613 +| a | 答题数据 |
  614 +|||
598 615
599 616
600 #### 停止答题 617 #### 停止答题
601 -  
602 -由应用程序发给基站,应用按照主题发送  
603 -  
604 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
605 -| --- | --- | --- |  
606 -| { "i": 11, "en": "12342"} | 停止对序号12342的测验 |  
607 -  
608 -  
609 -### 离线套卷带题干下载  
610 -  
611 -  
612 -#### 下载套题(套卷带题干) 键盘只能保存一套套卷试题  
613 -  
614 -由应用程序发给基站,应用按照主题发送  
615 -  
616 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
617 -| --- | --- | --- |  
618 -| { "i":12, "en":"12342", "qm":9, "qs":4, "total":1, "current":1, "m":[{ "qt":0, "on":6, "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" },{ "qt":1, "on":6, "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" },{ "qt":3, "on":6, "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" },{ "qt":0, "on":6, "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" }] } | 示例: 1道字母单选, 1道字母多选, 1道判断题, 1道字母单选。 I = 12 指令 en = 12342该答题序号为12342,应用程序自定义 qm 题型 total 这次数据一共多少包 current 当前第几包。如果套卷内容过大,需要分包传输,一个包的数据量是整个json数据不能超过4k(4096个字节)。 m 题目详情 qt 题型 qs 题数 on 选项数 content 题目内容  
619 -套题最多20题,每题不超过50个汉字 |  
620 -  
621 -  
622 -#### 停止下载  
623 -  
624 -由应用程序发给基站,应用按照主题发送  
625 -  
626 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
627 -| --- | --- | --- |  
628 -| { "i": 11, "en": "12342"} | 停止对序号12342的下载 |  
629 -  
630 -  
631 -#### 收取离线答案(键盘在线)  
632 -  
633 -由应用程序发给基站,应用按照主题发送  
634 -  
635 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
636 -| --- | --- | --- |  
637 -| { "i": 12, "en": "12342", "qm": 10,} | 开始对序号12342的离线答案收取 |  
638 -|  
639 - |  
640 - |  
641 -  
642 -  
643 -#### 接收答题信息  
644 -  
645 -由基站发给应用程序,应用需要订阅主题  
646 -  
647 -| 主题 | /lesson/class/${clinetId}/send | 备注 |  
648 -| --- | --- | --- |  
649 -| { "i":13, "en":"12342", "c":"12345", "qm":"10", "m":[{ "qn":1, "a":"A", "t":1626016299  
650 - }] } | 按照题号(qn)来上报答题数据,单题题号固定为1, t为提交答案时间示例说明:键盘号为12345的键盘在时间轴1626016299 答的套卷第一题的答案为A "a":"hex:",文本题:hex: 标记是gbk编码的hex内容 |  
651 -  
652 -  
653 -#### 停止收取离线答案  
654 -  
655 -由应用程序发给基站,应用按照主题发送  
656 -  
657 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
658 -| --- | --- | --- |  
659 -| { "i": 11, "en": "12342"} | 停止对序号12342的下载 |  
660 -  
661 -  
662 -### 离线下载多题不带题干  
663 -  
664 -  
665 -#### 下载套题  
666 -  
667 -由应用程序发给基站,应用按照主题发送  
668 -  
669 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
670 -| --- | --- | --- |  
671 -| { "i": 12, "en": "12341", "qm": 11, "m": [{ "qn": 1, "qt": 0, "qs": 20, "on": 4, "content":"hex: c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" }, { "qn": 21, "qt": 1, "qs": 20, "on": 4 }]} | qm = 11示例为多题模式不带内容的快速20道字母单选,20题多选。总题数不能超过200题目前只支持客观题 |  
672 -| { "i": 12, "en": "12341", "qm": 11, "at": 1, "m": [{ "qn": 1, "qt": 0, "qs": 20, "on": 4 }, { "qn": 21, "qt": 1, "qs": 20, "on": 4 }]} | "at":1 表示自动测试模式。基站根据各题型自动填充答案。  
673 - |  
674 -  
675 -  
676 -#### 停止下载套题  
677 -  
678 -由应用程序发给基站,应用按照主题发送  
679 -  
680 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
681 -| --- | --- | --- |  
682 -| { "i": 11, "en": "12341"} | 停止对序号12341的测验 |  
683 -  
684 -  
685 -#### 开启收取离线多题答案  
686 -  
687 -由应用程序发给基站,应用按照主题发送  
688 -  
689 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
690 -| --- | --- | --- |  
691 -| { "i": 12, "en": "12342", "qm": 12} | 开始对序号12342的离线答案收取 |  
692 -  
693 -  
694 -#### 离线多题答案收取  
695 -  
696 -基站发给应用程序  
697 -  
698 -| 主题 | /lesson/class/${clinetId}/send | 备注 |  
699 -| --- | --- | --- |  
700 -| { "i":13, "en":"12342", "c":"12345", "qm": 12, "m":[{ "qn":1, "a":"A", "t":1626016299 }] } | 按照题号(qn)来上报答题数据,单题题号固定为1, t为提交答案时间示例说明:键盘号为12345的键盘在时间轴1626016299 答的套卷第一题的答案为A "a":"hex:",文本题:hex: 标记是gbk编码的hex内容 |  
701 -  
702 -  
703 -#### 停止收取离线多题答案  
704 -  
705 -由应用程序发给基站,应用按照主题发送  
706 -  
707 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
708 -| --- | --- | --- |  
709 -| { "i": 11, "en": "12342"} | 停止对序号12342的离线答案收取 |  
710 -  
711 -  
712 -### 收取离线文本  
713 -  
714 -  
715 -#### 开始收取离线文本  
716 -  
717 -由应用程序发给基站,应用按照主题发送  
718 -  
719 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
720 -| --- | --- | --- |  
721 -| { "i": 12, "qm": 13} | 正常收取离线文本 |  
722 -| { "i": 12, "qm": 13, "at": 1} | 自动测试收取离线文本 at = 0 或缺省是正常模式 at = 1 表示自动测试测试  
723 - |  
724 -  
725 -  
726 -#### 离线文本收取  
727 -  
728 -基站发给应用程序  
729 -  
730 -| 主题 | /lesson/class/${clinetId}/send | 备注 |  
731 -| --- | --- | --- |  
732 -| { "i":13, "en":"12342", "c":"12345", "qm": 13, "m":{ "a":"hex:", "t":1626016299 } } | t为提交答案时间示例说明:键盘号为12345的键盘在时间轴1626016299 答的套卷第一题的答案为 "a":"hex:",文本题:hex: 标记是gbk编码的hex内容 |  
733 -  
734 -  
735 -#### 停止收取离线文本  
736 -  
737 由应用程序发给基站,应用按照主题发送 618 由应用程序发给基站,应用按照主题发送
  619 +主题:/lesson/class/${clinetId}/receive
  620 +指令内容:
  621 +```json
  622 +{
  623 + "i": 11,
  624 + "en": "12341"
  625 +}
  626 +```
  627 +| 名词 | 备注 |
  628 +| --- | --- |
  629 +| i = 11 | 停止答题 |
  630 +| en |停止对序号12341的测验 |
  631 +|||
738 632
739 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
740 -| --- | --- | --- |  
741 -| { "i": 11} | 停止收取离线文本 |  
742 633
743 -  
744 ### 多题题号多题 634 ### 多题题号多题
745 635
746 -  
747 #### 开启答题 636 #### 开启答题
748 637
749 由应用程序发给基站,应用按照主题发送 638 由应用程序发给基站,应用按照主题发送
  639 +主题: /lesson/class/${clinetId}/receive
  640 +指令内容:
  641 +```json
  642 +{
  643 + "i": 12,
  644 + "en": "12341",
  645 + "qm": 14,
  646 + "qs": 3,
  647 + "m": [{
  648 + "qt": 0,
  649 + "on": 4,
  650 + "qn": "1-1-1"
  651 + }, {
  652 + "qt": 0,
  653 + "on": 4,
  654 + "qn": "2-1"
  655 + }, {
  656 + "qt": 0,
  657 + "on": 4,
  658 + "qn": "3"
  659 + }]
  660 +}
  661 +```
750 662
751 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
752 -| --- | --- | --- |  
753 -| {"i":12, "en":"12341", "qm":14, "qs":3, "m":[{ "qt":0, "on": 4, "qn":"1-1-1", "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" },{ "qt":0, "on": 4, "qn":"2-1" "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" },{ "qt":0, "on": 4, "qn":"3" "content":"hex:c7ebbbd8b4f0cfc2c3e633b5c0cad4cce2" }]} | 示例为多题模式 qm =14 多题多级编号模式 Qt 题目模式 qt = 0 字母单选 On 选项数量 Qn 题目多级编号 多级编号必须用"-"隔开。其他必须是数字 content 题目内容  
754 - |  
755 - 663 +| 名词 | 备注 |
  664 +| --- | --- |
  665 +| i = 12 | 开启答题 |
  666 +| qm = 14 | 多题多级编号模式 |
  667 +| qt = 0 | 字母单选 |
  668 +| on | 选项数量 |
  669 +| qn | 题目多级编号 |
  670 +|||
756 671
757 #### 接收答题数据 672 #### 接收答题数据
758 673
759 由基站发给应用程序,应用订阅主题 674 由基站发给应用程序,应用订阅主题
  675 +主题: /lesson/class/${clinetId}/send
  676 +指令内容:
  677 +```json
  678 +{
  679 + "i": 13,
  680 + "en": "12341",
  681 + "qm": 14,
  682 + "c": "12345",
  683 + "m": [{
  684 + "qn": "1",
  685 + "a": "A",
  686 + "t": 1626016299
  687 + }]
  688 +}
  689 +```
760 690
761 -| 主题 | /lesson/class/${clinetId}/send | 备注 |  
762 -| --- | --- | --- |  
763 -| { "i":13, "en":"12341", "qm":14, "c":"12345", "m":[{ "qn":"1-1-1", "a":"A", "t":1626016299 }] } | 按照题号(qn)来上报答题数据,t为提交答案时间 | 691 +| 名词 | 备注 |
  692 +| --- | --- |
  693 +| i = 13 | 接收答题数据 |
  694 +| qm = 14 | 多题多级编号模式 |
  695 +| c | 键盘编号 |
  696 +| qn |上报答题数据 |
  697 +| t |提交答案时间 |
  698 +| a | 答题数据 |
  699 +|||
764 700
765 701
766 #### 停止答题 702 #### 停止答题
767 -  
768 由应用程序发给基站,应用按照主题发送 703 由应用程序发给基站,应用按照主题发送
769 -  
770 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
771 -| --- | --- | --- |  
772 -| { "i": 11, "en": "12341"} | 停止对序号12341的测验 | 704 +主题:/lesson/class/${clinetId}/receive
  705 +指令内容:
  706 +```json
  707 +{
  708 + "i": 11,
  709 + "en": "12341"
  710 +}
  711 +```
  712 +| 名词 | 备注 |
  713 +| --- | --- |
  714 +| i = 11 | 停止答题 |
  715 +| en |停止对序号12341的测验 |
  716 +|||
773 717
774 718
775 ### 下发姓名 719 ### 下发姓名
776 -  
777 720
778 #### 姓名下发 721 #### 姓名下发
779 -  
780 -| 主题 | /lesson/class/${clinetId}/receive | 备注 |  
781 -| --- | --- | --- |  
782 -| { "i":60, "total":1, "current":1, "en":"12342", "qs":2, "m":[{ "sn":"202308093214", "name":"张三", },{ "sn":"202308093215", "name":"李四",}]} | Qs 总下发姓名数量 I=60 姓名下发指令 total 这次数据一共多少包 current 当前第几包。 Sn 键盘编号name 姓名 | 722 +主题: /lesson/class/${clinetId}/receive
  723 +指令内容:
  724 +```json
  725 +{
  726 + "i": 60,
  727 + "total": 1,
  728 + "current": 1,
  729 + "en": "12342",
  730 + "qs": 2,
  731 + "m": [{
  732 + "sn": "202308093214",
  733 + "name": "张三"
  734 + }, {
  735 + "sn": "202308093215",
  736 + "name": "李四"
  737 + }]
  738 +}
  739 +```
  740 +| 名词 | 备注 |
  741 +| --- | --- |
  742 +| i = 60 | 姓名下发 |
  743 +| en |序号12342的测验 |
  744 +| current |当前第几包数据 |
  745 +| total |一共几包数据 |
  746 +| qs |总数 |
  747 +| sn |键盘sn号 |
  748 +| name |姓名 |
  749 +|||
783 750
784 751
785 -#### 成功失败返回 752 +#### 姓名下发成功失败返回
  753 +主题:/lesson/class/${clinetId}/send
  754 +指令内容:
  755 +```json
  756 +{
  757 + "i": 60,
  758 + "total": 1,
  759 + "current": 1,
  760 + "m": [{
  761 + "sn": "202308093214",
  762 + "success": 0
  763 + }, {
  764 + "sn": "202308093215",
  765 + "success": 0
  766 + }]
  767 +}
  768 +```
  769 +| 名词 | 备注 |
  770 +| --- | --- |
  771 +| i = 60 | 姓名下发 |
  772 +| en |序号12342的测验 |
  773 +| current |当前第几包数据 |
  774 +| total |一共几包数据 |
  775 +| qs |总数 |
  776 +| sn |键盘sn号 |
  777 +| name |姓名 |
  778 +|||
786 779
787 -| 主题 | /lesson/class/${clinetId}/send | 备注 |  
788 -| --- | --- | --- |  
789 -| { "i":60, "total":1, "current":1, "m":[{ "sn":"202308093214", "success":0 },{ "sn":"202308093215", "success":0}]} |  
790 - Sn 姓名写成功键盘编号  
791 - |  
792 780
793 781
794 ### 基站升级 782 ### 基站升级