Commit 18bd33f222ecb0f5bdafd5f2c4b3594f697b118f

Authored by 刘琴
2 parents a8c8ea02 ce9c6721

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

img/点名时序图.png 0 → 100644

84.7 KB

语音TDMA协议设计V2.3.docx 0 → 100644
No preview for this file type
语音TDMA原理设计V0.6.docx 0 → 100644
No preview for this file type
通讯协议-教育新版-基站部分.md
... ... @@ -503,7 +503,7 @@ id数据包格式定义
503 503 | --- | --- | --- |
504 504 | 1 | ANSCMD | 0x94硬件序列号带编号提交结果 |
505 505 | 2 | ANSTYPE | 数据包类型11 基站报告状态 |
506   -| 3 | REP\_TYPE | 报告类型 <br>1 键盘快速设置失败<br>2 键盘快速设置成功<br>3 基站测试结果反馈,<br>4 键盘在线状态<br>5 多包上传状态<br>6 NFC刷卡消息<br>(后面格式根据这个类型值解析)<br>10 基站log文字信息 |
  506 +| 3 | REP\_TYPE | 报告类型 <br>1 键盘快速设置失败<br>2 键盘快速设置成功<br>3 基站测试结果反馈,<br>4 键盘在线状态<br>5 多包上传状态<br>6 NFC刷卡消息<br>(后面格式根据这个类型值解析)<br>10 基站log文字信息 <br>11 基站报告键盘离在线信息|
507 507 ||||
508 508  
509 509 ### 3.3.1 键盘快速设置回报
... ... @@ -592,6 +592,19 @@ id数据包格式定义
592 592 ||||
593 593 | 59-60 |||
594 594  
  595 +
  596 +### 3.3.7 基站主动报告键盘离在线消息
  597 +
  598 +| **字节** | **标识符** | **描述** |
  599 +| --- | --- | --- |
  600 +| 1 | ANSCMD | 0x94硬件序列号带编号提交结果 |
  601 +| 2 | ANSTYPE | 数据包类型<br>11 基站报告状态 |
  602 +| 3 | REP\_TYPE | 报告类型<br> 11 键盘离在线信息 |
  603 +| 4-7 | kp_sn | 键盘SN |
  604 +| 8 | state | 键盘状态:0-离线;1-在线|
  605 +| 9-11 | version | 键盘版本号 |
  606 +| 12 | volt | 键盘电量|
  607 +
595 608 # 五、基站管理
596 609  
597 610 ## 5.1概述
... ... @@ -2096,7 +2109,7 @@ S5,电脑通知基站退出下载,基站通知所有(包括失败的)键
2096 2109 | 4 | MODE | 1 进入或退出下载状态 <br><font color="#FF0000"> 31后台静默升级|
2097 2110 | 5 | ID/SN | 1:2字节ID模式; <br>2:4字节SN; <br>3:6字节SN模式 |
2098 2111 | 6 | ~~NC~~ ||
2099   -| 7 | DCMD | 模式 1进入下载 0退出下载 |
  2112 +| 7 | DCMD | 模式 1进入下载 0退出下载 <br><font color="#FF0000"> 2 基站已有相同文件,无需下载,升级结束|
2100 2113 | 8 | HVER | 键盘硬件版本 |
2101 2114 | 9-11 | SVER | 键盘软件版本,3字节,10进制数字<br>一定要和固件内部版本号相同,便于上位机软件好对比版本,知道键盘升级成功 |
2102 2115 | 12-13 | CRC-16 | 固件校验字 |
... ... @@ -2142,7 +2155,7 @@ S5,电脑通知基站退出下载,基站通知所有(包括失败的)键
2142 2155 | 1 | BASECMD | 0x61 基站管理类指令 |
2143 2156 | 2 | BASEID | 指定的基站编号,为0时候不指定 |
2144 2157 | 3 | CMDTYPE | 基站管理命令类型<br>22基站下载多包 |
2145   -| 4 | DOWNCMD | 4 下载具体数据--16字节 <br>6 下载具体数据—512字节每片段 <br>7 下载具体数据---64字节(48字节有效,区别于4类型的16字节有效) 10 基站问64字节包(根据代码补充)<br>11 基站问512字节包(根据代码补充) <br><font color="#FF0000">31 后台静默升级;sdk向基站发送固件数据(相当于普通模式下7)|
  2158 +| 4 | DOWNCMD | 4 下载具体数据--16字节 <br>6 下载具体数据—512字节每片段 <br>7 下载具体数据---64字节(48字节有效,区别于4类型的16字节有效) 10 基站问64字节包(根据代码补充)<br>11 基站问512字节包(根据代码补充) <br><font color="#FF0000">37 后台静默升级;sdk向基站发送固件数据(相当于普通模式下7)|
2146 2159 | 5 | DOWNTYPE | 多包类型<br>30 短信广播信息(SDK组包模式) |
2147 2160 | 6 | DOWNID | 数据包标识码(DOWNTYPE=30时,是总包数)<br>文件下载模式时候是最高位地址 V4.52<br>由于非文件下载模式PACKH加上PACKL,只能下载65536字节,文件下载模式为支持大文件,用DOWNID作为高位地址,可以下载16384K字节 |
2148 2161 | 7 | PACKH | 数据段编号,0-255 |
... ... @@ -2158,7 +2171,7 @@ S5,电脑通知基站退出下载,基站通知所有(包括失败的)键
2158 2171 | 1 | BASECMD | 0xE1 基站管理类指令 |
2159 2172 | 2 | BASEID | 指定的基站编号,为0时候不指定 |
2160 2173 | 3 | CMDTYPE | 基站管理命令类型<br>22基站下载多包 |
2161   -| 4 | MODE | 4下载具体数据的应答或请求具体数据<br>6 下载具体数据的应答或请求传输—512字节每片段<br>7 下载具体数据(48字节有效)<br><font color="#FF0000">31 后台静默升级; |
  2174 +| 4 | MODE | 4下载具体数据的应答或请求具体数据<br>6 下载具体数据的应答或请求传输—512字节每片段<br>7 下载具体数据(48字节有效)<br><font color="#FF0000">37 后台静默升级; |
2162 2175 | 5 | DOWNTYPE | 多包类型 |
2163 2176 | 6 | DOWNID | 数据包标识码<br>文件下载模式时候是最高位地址 V4.52<br>由于非文件下载模式PACKH加上PACKL,只能下载65536字节,文件下载模式为支持大文件,用DOWNID作为高位地址,可以下载16384K字节 |
2164 2177 | 7 | PACKH | 数据段编号,0-255 |
... ... @@ -2202,12 +2215,13 @@ S5,电脑通知基站退出下载,基站通知所有(包括失败的)键
2202 2215 | 1 | BASECMD | 0xE1 基站管理类指令 |
2203 2216 | 2 | BASEID | 指定的基站编号,为0时候不指定 |
2204 2217 | 3 | CMDTYPE | 基站管理命令类型<br>22基站下载多包 |
2205   -| 4 | MODE | 6 上报状态<br>9 上报状态,告诉sdk,底层键盘固件升级完成<br>10 向sdk请求(索要)数据包(数据包以1K为单位)byte6之后的数据无效 <br><font color="#FF0000"> 32 后台静默升级 上报状态(相当于普通模式下的9) <br><font color="#FF0000"> 33 后台静默升级 向sdk请求(索要)数据包(数据包以1K为单位)(相当于普通模式下的10) |
  2218 +| 4 | MODE | 6 上报状态<br>9 上报状态,告诉sdk,底层键盘固件升级完成<br>10 向sdk请求(索要)数据包(数据包以1K为单位)byte6之后的数据无效 <br><font color="#FF0000"> 39 后台静默升级 上报状态(相当于普通模式下的9) <br><font color="#FF0000"> 38 后台静默升级 向sdk请求(索要)数据包(数据包以1K为单位)(相当于普通模式下的10) |
2206 2219 | 5 | PACKH | 数据段编号,0-255<br>申请的数据包号PACK\_H |
2207 2220 | 6 | PACKL | 数据片编号, 0-15<br>申请的数据包号PACK\_L |
2208 2221 | 7 | Update status | 2-失败;(包括通知键盘进入下载和数据块下载失败;)<br>1-全部完成,电脑可以下一个流程(包括本次256字节成功、键盘进入下载、键盘退出下载) |
2209 2222 | 8-13 | Keypad ID/SN | ID/SN 号,固定6字节, 高位在前 |
2210   -| 14-24 | NC | 参数无意义 |
  2223 +| 14 | HW |键盘硬件版本 |
  2224 +| 15-24 | NC | 参数无意义 |
2211 2225  
2212 2226 电脑确认:
2213 2227  
... ... @@ -2746,11 +2760,13 @@ step3:sdk询问 数据是否接收正确;基站回复,如果不正确 sdk重
2746 2760 | 2 | BASEID | 指定的基站编号,为0时候不指定 |
2747 2761 | 3 | CMDTYPE | 基站管理命令类型41 sdk下载多包 |
2748 2762 | 4 | type | 1 要下载的数据信息 |
2749   -| 5 | DATA-type | 1:基站固件升级 <br>2:键盘固件升级; <br>3:快速下发; <br>4:广播 |
  2763 +| 5 | DATA-type | 1:基站固件升级 <br>2:键盘固件升级; <br>3:快速下发; <br>4:广播 <br><font color="#FF0000">32:后台静默升级键盘固件;|
2750 2764 | 6-9 | DATA_total| 数据总字节数 高位在前 |
2751 2765 | 10-11 | DATA crc | 数据crc 高位在前|
2752 2766 | 12-13 | byte per PACK |高位在前 每包数据最大字节长度:64... |
2753 2767 | other | default | |
  2768 +
  2769 +
2754 2770 基站应答:
2755 2771 | **字节** | **标识符** | **描述** |
2756 2772 | --- | --- | --- |
... ... @@ -2773,11 +2789,12 @@ step3:sdk询问 数据是否接收正确;基站回复,如果不正确 sdk重
2773 2789 | 2 | BASEID | 指定的基站编号,为0时候不指定 |
2774 2790 | 3 | CMDTYPE | 基站管理命令类型41 sdk下载多包 |
2775 2791 | 4 | type | 2 询问基站 |
2776   -| 5 | DATA-type | 1:基站固件升级 <br>2:键盘固件升级; <br>3:快速下发; <br>4:广播 |
  2792 +| 5 | DATA-type | 1:基站固件升级 <br>2:键盘固件升级; <br>3:快速下发; <br>4:广播 <br><font color="#FF0000">32:后台静默升级键盘固件;|
2777 2793 | 6-9 | DATA_total| 数据总字节数 高位在前|
2778 2794 | 10-11 | DATA crc | 数据crc 高位在前|
2779 2795 | 12-13 | byte per PACK |高位在前 每包数据最大字节长度:64 |
2780 2796 | other | default | |
  2797 +
2781 2798 基站应答:
2782 2799 | **字节** | **标识符** | **描述** |
2783 2800 | --- | --- | --- |
... ... @@ -2793,6 +2810,38 @@ step3:sdk询问 数据是否接收正确;基站回复,如果不正确 sdk重
2793 2810 | other | default | |
2794 2811  
2795 2812  
  2813 +## 5.10 sdk获取键盘名单
  2814 +电脑向基站发送:
  2815 +| **字节** | **标识符** | **描述** |
  2816 +| --- | --- | --- |
  2817 +| 1 | BASECMD | 0x61 基站管理类指令 |
  2818 +| 2 | BASEID | 指定的基站编号,为0时候不指定 |
  2819 +| 3 | CMDTYPE | 基站管理命令类型42 |
  2820 +| 4 | seq | 获取序号 从0开始 |
  2821 +| | | |
  2822 +
  2823 +
  2824 +基站应答:
  2825 +| **字节** | **标识符** | **描述** |
  2826 +| --- | --- | --- |
  2827 +| 1 | BASECMD | 0xE1 基站管理类指令 |
  2828 +| 2 | BASEID | 指定的基站编号,为0时候不指定 |
  2829 +| 3 | CMDTYPE | 基站管理命令类型42 |
  2830 +| 4 | seq | 获取序号 |
  2831 +| 5 | count | 本次有效键盘个数 ;小于7个(包括0)表示结束 |
  2832 +| 6-9 | kp1_SN| 第1个键盘sn |
  2833 +| 10 | kp1_state | 第1个键盘状态:0-离线;1-在线|
  2834 +| 11-13 | kp1_ver |第1个键盘版本号|
  2835 +| 14 | kp1_volt | 第1个键盘电量|
  2836 +| ... | ... | ... |
  2837 +| 50-53 | kp6_SN| 第6个键盘sn |
  2838 +| 54 | kp6_state | 第6个键盘状态:0-离线;1-在线|
  2839 +| 55-57 | kp6_ver |第6个键盘版本号|
  2840 +| 58 | kp6_volt | 第6个键盘电量|
  2841 +
  2842 +
  2843 +
  2844 +
2796 2845  
2797 2846  
2798 2847 # 六、版本历史
... ...
通讯协议-教育新版-基站部分usb json.md 0 → 100644
  1 +[TOC]
  2 +# 一、概述
  3 +
  4 +
  5 +
  6 +
  7 +# 二,
  8 +
  9 +## 1.1 sdk下载多包给基站
  10 +
  11 +
  12 +### 1.1.1 sdk发送数据信息
  13 +电脑向基站发送:
  14 +| **字节** | **标识符** | **描述** |
  15 +| --- | --- | --- |
  16 +| 0-1 | Header | 数据包头:固定0xFF 0x5A |
  17 +| 2-3 | Len | 有效数据长度 |
  18 +| 4 | Direct | 0x01 : sdk主动发起的通信 |
  19 +| 5-6 | com seq | 通信序号 |
  20 +| 7 | BASEID | 指定的基站编号,为0时候不指定 |
  21 +| 8 | type | 1 要下载的数据信息 |
  22 +| 9 | DATA-type | 1:json数据 <br>2:普通数据; |
  23 +| 10-13 | DATA_total| 数据总字节数 高位在前 |
  24 +| 14-17 | total DATA crc32 | 总数据crc32 高位在前|
  25 +| 18 | transfer total | 总传输次数 |
  26 +| 19 | transfer cur | 当前传输次数 |
  27 +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |
  28 +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |
  29 +|default | | |
  30 +|60-63 | crc32 | 此数据包的crc32;从byte0-59共60个字节 |
  31 +
  32 +举例:sdk要发送(1024X2 +512 bytes)数据给基站
  33 +第一个发送单元:
  34 + step1:
  35 + 5-6:100
  36 + 10-13 bytes: (1024*2 +512 bytes)
  37 + 14-17 :数据总长度的crc
  38 + 18 : 3
  39 + 19 : 0
  40 + 20-21 : 1024
  41 + 22-25 :1024数据的crc
  42 + 60-63 : crc
  43 + step2: 基站ack
  44 + step3: sdk发送1024长度数据;64byte*16包;
  45 + step4: sdk发送询问信息
  46 + step5: 基站ack
  47 +
  48 +第二个发送单元:
  49 + step1:
  50 + 5-6:101
  51 + 10-13 bytes: (1024*2 +512 bytes)
  52 + 14-17 :数据总长度的crc
  53 + 18 : 3
  54 + 19 : 1
  55 + 20-21 : 1024
  56 + 22-25 :1024数据的crc
  57 + 60-63 : crc
  58 + step2: 基站ack
  59 + step3: sdk发送1024长度数据;64byte*16包;
  60 + step4: sdk发送询问信息
  61 + step5: 基站ack
  62 +
  63 +第三个发送单元:
  64 + step1:
  65 + 5-6:102
  66 + 10-13 bytes: (1024*2 +512 bytes)
  67 + 14-17 :数据总长度的crc
  68 + 18 : 3
  69 + 19 : 2
  70 + 20-21 : 512
  71 + 22-25 :512数据的crc
  72 + 60-63 : crc
  73 + step2: 基站ack
  74 + step3: sdk发送512长度数据;64byte*8包;
  75 + step4: sdk发送询问信息
  76 + step5: 基站ack
  77 +
  78 +基站应答:
  79 +| **字节** | **标识符** | **描述** |
  80 +| --- | --- | --- |
  81 +| 0-1 | Header | 数据包头:固定0xFF 0x5A |
  82 +| 2-3 | Len | 有效数据长度 |
  83 +| 4 | Direct | 0x01 : sdk主动发起的通信 |
  84 +| 5-6 | com seq | 通信序号 |
  85 +| 7 | BASEID | 指定的基站编号,为0时候不指定 |
  86 +| 8 | type | 1 要下载的数据信息 |
  87 +| 9 | DATA-type | 1:json数据 <br>2:普通数据; |
  88 +| 10-13 | DATA_total| 数据总字节数 高位在前 |
  89 +| 14-17 | total DATA crc32 | 总数据crc32 高位在前|
  90 +| 18 | transfer total | 总传输次数 |
  91 +| 19 | transfer cur | 当前传输次数 |
  92 +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |
  93 +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |
  94 +|default | | |
  95 +|60-63 | crc32 | 此数据包的crc32 |
  96 +
  97 +### 1.1.2 sdk连续发送N包纯数据包,基站无需回复
  98 +
  99 +### 1.1.3 sdk发送询问
  100 +
  101 +| **字节** | **标识符** | **描述** |
  102 +| --- | --- | --- |
  103 +| 0-1 | Header | 数据包头:固定0xFF 0x5A |
  104 +| 2-3 | Len | 有效数据长度 |
  105 +| 4 | Direct | 0x01 : sdk主动发起的通信 |
  106 +| 5-6 | com seq | 通信序号 |
  107 +| 7 | BASEID | 指定的基站编号,为0时候不指定 |
  108 +| 8 | type | 2 询问基站 |
  109 +| 9 | DATA-type | 1:json数据 <br>2:普通数据; |
  110 +| 10-13 | DATA_total| 数据总字节数 高位在前 |
  111 +| 14-17 | total DATA crc32 | 总数据crc32 高位在前|
  112 +| 18 | transfer total | 总传输次数 |
  113 +| 19 | transfer cur | 当前传输次数 |
  114 +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |
  115 +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |
  116 +|default | | |
  117 +|60-63 | crc32 | 此数据包的crc32 |
  118 +
  119 +基站应答:
  120 +| **字节** | **标识符** | **描述** |
  121 +| --- | --- | --- |
  122 +| 0-1 | Header | 数据包头:固定0xFF 0x5A |
  123 +| 2-3 | Len | 有效数据长度 |
  124 +| 4 | Direct | 0x01 : sdk主动发起的通信 |
  125 +| 5-6 | com seq | 通信序号 |
  126 +| 7 | BASEID | 指定的基站编号,为0时候不指定 |
  127 +| 8 | type | 2 询问基站 |
  128 +| 9 | DATA-type | 1:json数据 <br>2:普通数据; |
  129 +| 10-13 | DATA_total| 数据总字节数 高位在前 |
  130 +| 14-17 | total DATA crc32 | 总数据crc32 高位在前|
  131 +| 18 | transfer total | 总传输次数 |
  132 +| 19 | transfer cur | 当前传输次数 |
  133 +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |
  134 +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |
  135 +| 26 | result | 1:成功 <br>2:失败; |
  136 +|60-63 | crc32 | 此数据包的crc32 |
  137 +
  138 +
  139 +## 1.2 基站上传多包给SDK
  140 +
  141 +### 1.2.1 sdk发送数据信息
  142 +基站主动发送:
  143 +| **字节** | **标识符** | **描述** |
  144 +| --- | --- | --- |
  145 +| 0-1 | Header | 数据包头:固定0xFF 0x5A |
  146 +| 2-3 | Len | 有效数据长度 |
  147 +| 4 | Direct | 0x81:基站主动发起的通信 |
  148 +| 5-6 | com seq | 通信序号 |
  149 +| 7 | BASEID | 指定的基站编号,为0时候不指定 |
  150 +| 8 | type | 1 要下载的数据信息 |
  151 +| 9 | DATA-type | 1:json数据 <br>2:普通数据; |
  152 +| 10-13 | DATA_total| 数据总字节数 高位在前 |
  153 +| 14-17 | total DATA crc32 | 总数据crc32 高位在前|
  154 +| 18 | transfer total | 总传输次数 |
  155 +| 19 | transfer cur | 当前传输次数 |
  156 +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |
  157 +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |
  158 +|default | | |
  159 +|60-63 | crc32 | 此数据包的crc32 |
  160 +
  161 +SDK应答:
  162 +| **字节** | **标识符** | **描述** |
  163 +| --- | --- | --- |
  164 +| 0-1 | Header | 数据包头:固定0xFF 0x5A |
  165 +| 2-3 | Len | 有效数据长度 |
  166 +| 4 | Direct | 0x81:基站主动发起的通信 |
  167 +| 5-6 | com seq | 通信序号 |
  168 +| 7 | BASEID | 指定的基站编号,为0时候不指定 |
  169 +| 8 | type | 1 要下载的数据信息 |
  170 +| 9 | DATA-type | 1:json数据 <br>2:普通数据; |
  171 +| 10-13 | DATA_total| 数据总字节数 高位在前 |
  172 +| 14-17 | total DATA crc32 | 总数据crc32 高位在前|
  173 +| 18 | transfer total | 总传输次数 |
  174 +| 19 | transfer cur | 当前传输次数 |
  175 +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |
  176 +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |
  177 +|default | | |
  178 +|60-63 | crc32 | 此数据包的crc32 |
  179 +
  180 +
  181 +### 1.2.2 基站连续发送N包纯数据包,SDK无需回复
  182 +
  183 +### 1.2.3 基站发送询问
  184 +
  185 +| **字节** | **标识符** | **描述** |
  186 +| --- | --- | --- |
  187 +| 0-1 | Header | 数据包头:固定0xFF 0x5A |
  188 +| 2-3 | Len | 有效数据长度 |
  189 +| 4 | Direct | 0x81:基站主动发起的通信 |
  190 +| 5-6 | com seq | 通信序号 |
  191 +| 7 | BASEID | 指定的基站编号,为0时候不指定 |
  192 +| 8 | type | 2 询问基站 |
  193 +| 9 | DATA-type | 1:json数据 <br>2:普通数据; |
  194 +| 10-13 | DATA_total| 数据总字节数 高位在前 |
  195 +| 14-17 | total DATA crc32 | 总数据crc32 高位在前|
  196 +| 18 | transfer total | 总传输次数 |
  197 +| 19 | transfer cur | 当前传输次数 |
  198 +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |
  199 +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |
  200 +|default | | |
  201 +|60-63 | crc32 | 此数据包的crc32 |
  202 +
  203 +基站应答:
  204 +| **字节** | **标识符** | **描述** |
  205 +| --- | --- | --- |
  206 +| 0-1 | Header | 数据包头:固定0xFF 0x5A |
  207 +| 2-3 | Len | 有效数据长度 |
  208 +| 4 | Direct | 0x81:基站主动发起的通信 |
  209 +| 5-6 | com seq | 通信序号 |
  210 +| 7 | BASEID | 指定的基站编号,为0时候不指定 |
  211 +| 8 | type | 2 询问基站 |
  212 +| 9 | DATA-type | 1:json数据 <br>2:普通数据; |
  213 +| 10-13 | DATA_total| 数据总字节数 高位在前 |
  214 +| 14-17 | total DATA crc32 | 总数据crc32 高位在前|
  215 +| 18 | transfer total | 总传输次数 |
  216 +| 19 | transfer cur | 当前传输次数 |
  217 +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 |
  218 +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 |
  219 +| 26 | result | 1:成功 <br>2:失败; |
  220 +|60-63 | crc32 | 此数据包的crc32 |
... ...
通讯协议-教育新版-表决器部分.md
... ... @@ -70,7 +70,7 @@
70 70 | 5 | MODE | 投票模式<br>低6位是表决模式:<br>1-9是政务应用 10-19商务应用和教育 20-29多项和批次 30-39二维表评测 40-50管理类<br><br>0、空闲,表决停止(含答案提示)<br> 1、签到<br> 2、表决 <br>4、评分 <br>5、判断题<br> 9、模拟测试(通讯效果)<br><br>10、单选多选<br> 11、排序 <br>12、填空 <br>13、抢答 <br>14、测验 <br>15、提交作业<br>16、语音答题<br>17、分组PK<br><br>40 对码模式<br><br> $\color{red} {高2位bit6 和 bit7 } $<br> Bit6=1,白名单基站,0是普通配对基站,由基站程序控制不可设置<br> Bit7=1表示键盘要接收多条的扩展信标(2.2.17节)内容才能启动投票(键盘改无线休眠模式到32.5ms1次以快速接收,并持续到收齐内容后改标准模式减少耗电) |
71 71 | 6-22 | MODES | 投票参数,具体和MODE有关,不同模式下参数意义不同 |
72 72 | 23 | STATE | 低七位表示后台签到的Count序号(1-127循环),开启一轮新的后台签到则该序号变一次。Bit7 = 1 表示开启后台签到。 |
73   -| 24 | WCT_Pos | 低四位为当前片在WCT中的位置(0-7)以便键盘统一休眠 <br>$\color{red} {最高位 bit7 } $ <br> bit7=1, 表示有基础扩展信标,通常启动后一直在0x17信标前广播发送,直到收到停止指令,才取消发送,如果在投票模式,键盘需先确认收到过基础扩展信标后才能进入投票,避免反复过程|
  73 +| 24 | WCT_Pos | 低四位为当前片在WCT中的位置(0-7)以便键盘统一休眠 <br>$\color{red} {最高位 bit7 } $ <br> bit7=1, 表示有基础扩展信标,通常启动后一直在0x17信标前广播发送,直到收到停止指令,才取消发送,如果在投票模式,键盘需先确认收到过基础扩展信标后才能进入投票,避免反复过程<br>bit6:Plus模式-><br>1:基站周期点名;<br>0:基站不发点名<br>|
74 74 | 25 | ATTRIB1 | BIT0 =0表示基站是配对基站(套装),1是自由基站(名单),这个bit位SDK不能直接修改,只能用设置基站模式修改;键盘在配对或自由选基站时候,根据此位选择基站 <br>BIT1=0 键盘不用定时监听投票信标,1启用定时监听(S61键盘有按键后才监听投票模式,这个用于控制回到标准中天模式)<br> BIT2=1键盘不关机,用于测试和生产<br> BIT4,3 控制4档键盘自动关机时间,不关机是BIT2控制<br> 00 -30秒 01-2分钟 10-10分钟 11-45分钟 <br>BIT5 =1键盘心跳打开 0关闭(要求基站同步自主控制2.3.1节里面的控制位)<br> ==BIT6—登录菜单显示允许位。1允许登录 0不允许登录== <br>BIT7—积分显示 1显示 0不显示 |
75 75 | 26 | ATTRIB2 | 基站特性2,控制考勤 <br>BIT0,1=键盘每秒发送考勤信号次数,0-3,0相当于关闭 <br>BIT2,3=00---其实还可以当他用<br>高4位是键盘发送考勤信号功率(功率写死可当他用,bit7没用) |
76 76 | 27 | ATTRIB3 | 基站特性3—基站主频点,用于键盘不跟踪到副频点 |
... ... @@ -910,6 +910,40 @@ Cmd_Data 不足32一包 后面补0
910 910 | 8 | LOGIN | 登录申请模式(后台签到模式),是否需要IC卡、登录码(用户编号、登录密码等)、用户姓名信息、学号信息,或直接授权<br>低4位是登录模式:<br>=0 无申请要求,要等待授权指令授权<br> =1 按键签到(应答同后面的签到码,用BCD码1FFFFF提交结果)<br> =2 要输入数字签到码登录(用3.4.3节签到码格式应答)<br> =3 ~~IC卡登录,要插入IC卡~~ V4.5 输入学号登陆<br> =4 输入(英文)姓名登录<br> =5 自动学号登陆(投票器设置好的学号信息)<br> =6 自动姓名登陆(投票器设置好的学号信息)<br><br>第7位=1的时候,表示是动态编号模式,表决器需要先用硬件序列号登陆,重新分配键盘编号(例如教育应用大学模式)|
911 911 | 9-12 | FREQ1-FREQ4 | 主频点,副频点2,副频点3,副频点4,0的话不启用 |
912 912 | 13-28 | ... | 保留 |
  913 +
  914 +## 2.7点名信标
  915 +投票信标与广播信标需要置位plus模式位
  916 +点名信标为连续2个标、0x12点名1-5号 0x13点名6-10号。
  917 +时序如下图:
  918 +![点名时序图](img/点名时序图.png)
  919 +| **字节** | **标识符** | **描述** |
  920 +| --- | --- | --- |
  921 +| 1 | CMD | 0x12/0x13 标识 |
  922 +| 2 | SEQ| 序号1-255 新的一轮点名 ,控制键盘上传间隔|
  923 +| 3 | TickCount| 序号1-255 基站发送一轮信标该值加1 12/13标内该值相同,用于键盘判断是否在连续点名周期|
  924 +| 4 | ACK |上个周期收到键盘SN的ACK<br> 12回12 13回13<br> 按bit位设置 bit = 1表示收到该位置SN的数据 <br>位控制(直接位域控制)<br>1:SN1ACK<br>2:SN2ACK<br>3:SN3ACK<br>4:SN4ACK<br>5:SN5ACK|
  925 +| 5-8 | SN1 | 键盘的SN号,4字节,高位前,全00表示空|
  926 +| 9-12 | SN2 | 键盘的SN号,4字节,高位前,全00表示空|
  927 +| 13-16 | SN2 | 键盘的SN号,4字节,高位前,全00表示空|
  928 +| 17-20 | SN2 | 键盘的SN号,4字节,高位前,全00表示空|
  929 +| 21-24 | SN2 | 键盘的SN号,4字节,高位前,全00表示空|
  930 +| 25-27 | NULL |预留 |
  931 +| 28| CRC | 空中数据最后1字节是CRC|
  932 +
  933 +键盘被点名上传信息格式如下:
  934 +| **字节** | **标识符** | **描述** |
  935 +| --- | --- | --- |
  936 +| 1 | ANSCMD | 0x94硬件序列号带编号提交结果 |
  937 +| 2 | ANSTYPE | 数据包类型<br>22 点名上传|
  938 +| 3-6 | KEYSN | 表决器硬件序列号,4字节,高位在前 |
  939 +| 7-8 | KEYID | 表决器ID |
  940 +| 9 | HMODEL | 键盘的型号代码|
  941 +| 10 | HVER | 键盘硬件版本 |
  942 +| 11-13 | SVER | 键盘软件版本,3字节,10进制数字 |
  943 +| 14 | VOLT | 电池电压,Bit7为1表示在充电,低7位x0.04V就是电池当前电压 |
  944 +| 15 | SEQ | 键盘该轮次值 对应0x12/0x13 |
  945 +| 16 | TickCount | 键盘该轮次值 对应0x12/0x13 |
  946 +
913 947 # 三、上传单包类
914 948  
915 949 ## 3.1概述
... ... @@ -1201,7 +1235,7 @@ CH-UID模式下,15字节起是3字节的UID
1201 1235 | **字节** | **标识符** | **描述** |
1202 1236 | --- | --- | --- |
1203 1237 | 1 | ANSCMD | 0x94硬件序列号带编号提交结果 |
1204   -| 2 | ANSTYPE | 数据包类型<br>7 SN+ID,含电量统一BCD格式数据,按字母ABCD解码<br>8 SN+ID,含电量统一BCD格式数据,按数字解码<br>这里带了类型,键盘提交要注意,以前是SDK根据现在的投票模式来处理,那么做带题型测验的时候,SDK还需判断题型数据,不方便,这样修改就比较容易解析数据 |
  1238 +| 2 | ANSTYPE | 数据包类型<br>7 SN+ID,含电量统一BCD格式数据,按字母ABCD解码<br>8 SN+ID,含电量统一BCD格式数据,按数字解码<br>这里带了类型,键盘提交要注意,以前是SDK根据现在的投票模式来处理,那么做带题型测验的时候,SDK还需判断题型数据,不方便,这样修改就比较容易解析数据 <br>17 18 等于原始7 8 类型 但22位置填写校验和1-22字节|
1205 1239 | 3-6 | KEYSN | 表决器硬件序列号,4字节,高位在前 |
1206 1240 | 7-8 | ID | 表决器编号ID,高字节在前 |
1207 1241 | 9-10 | KEYTIME | 按键时间,离投票开始的时间,2字节,高位在前,平常单位20ms,测验时候单位是100ms,最大约105分钟<br>值为0表示使用电脑时间 |
... ... @@ -1209,8 +1243,8 @@ CH-UID模式下,15字节起是3字节的UID
1209 1243 | 12-19 | BCDVALUE1 | 结果值,8字节BCD码表示的值,高位在前,F表示结束字符,最多16位数,E是小数点,D是空格,C是负号<br> 2、单值结果一般就第一个BCD值有效,例如1FFFFFFF表示1,SDK用"1"表示<br>3、表示数字时候, E表示小数点,例如 1234E5FFFF 表示"1234.5" <br>4、表示单选多选排序的时候,0表示第10个选项,例如 01 32 FF FF 就是"JACB"<br><br><font color="#dd0000">5、特殊的,FFFF1F组合表示确认提交,<br>&emsp;&emsp;FFFF0F组合表示用户又转回修改;</font><br />|
1210 1244 | 20 | VOLT | 电池电压,单位20mV |
1211 1245 | 21 | SendPos | 该次结果发送次数 键盘自己计数 |
1212   -| 22 || 空,先填00 |
1213   -| 23-24 || CRC,1到第22字节 |
  1246 +| 22 |SUM| 空,先填00 <br>17/18类型:22位置填写校验和1-21字节|
  1247 +| 23-24 |CRC| CRC,1到第22字节 |
1214 1248  
1215 1249 ### 3.2.12固件升级结果
1216 1250  
... ... @@ -3404,7 +3438,7 @@ Rule:
3404 3438 | 2 | CRC16 | LostBuf 的校验和 |
3405 3439 | 1 | DOWNPOS | 透传序号 不能为0 1-255基站自增(新的一轮升级) |
3406 3440 | 1 | DOWNCount | 当前包序号 0开始 |
3407   -| 1 | NULL | NULL |
  3441 +| 1 | CountMax | 本轮次传输包最大序号 |
3408 3442 | 1 | NULL | NULL |
3409 3443 | 1 | CountMax | 本轮次传输包最大序号 |
3410 3444 | 1 | SpaceTime | 0默认不休眠 (每帧 帧间距离)可用于键盘休眠 也可不休,原则上 SpaceTime= PACKMAX*1MS,基站填写 |
... ... @@ -3413,7 +3447,8 @@ Rule:
3413 3447 | 1 | HW | 硬件版本 -> (区分硬件,键盘自己识别) |
3414 3448 | 3 | SW | 固件版本 |
3415 3449 | <font color="#00dd00">1</font>| <font color="#00dd00">BR</font> |<font color="#00dd00">硬件分支 同硬件信号下匹配的不同分支</font>|
3416   -| 4 | 预留 | NULL ,实际物理包头32不含数据 为包头信息|
  3450 +| 2 | SUM | 后面1K数据的2字节累加和与CRC一起辨别|
  3451 +| 1 | CRC | 头包的CRC从ATC开始到SUM结束的CRC校验信息取低位|
3417 3452 | N | DownData| 透传数据 暂定 1024B |
3418 3453 ----
3419 3454  
... ... @@ -3433,7 +3468,7 @@ Rule:
3433 3468 | 7 | NETMODE | 基站组网模式,1配对 2白名单 |
3434 3469 | 8-11 | FREQ1-FREQ4 | 主频点,副频点2,副频点3,副频点4,0的话不启用 |
3435 3470 | 12 | HOP | 0没跳频,1-4表示当前模块跳频频点编号,1表示在主频点 |
3436   -| 13 | ST-Bit | 位控制(直接位域控制)<br>1:基站信息公开位<br>&emsp;0表示可公开,键盘能扫描到基站信息并显示<br>&emsp;1不公开,键盘不显示,但已配对的键盘可正常连接。<br>2:配对模式,1表示当前基站处于配对模式下可供键盘配对。0无<br>3:白名单模式,1表示当前基站处于白名单模式。0:无<br>4:Plus模式->1: 基站周期组呼点名心跳/键盘上线时发送入网包<font color="#dd0000"> 暂不使用</font><br>&emsp;0:基站不发点名心跳/键盘上线时不发送入网包(键盘竞争方式)<br>5:名单锁定:键盘只在Plus模式下生效<br>&emsp;1:开启名单锁定(键盘自控无法配对,无法登录,基站名单只能有上层接口与刷卡接口添加)<br>&emsp;0:关闭名单锁定(键盘可配对,可登录,基站自动加入到名单中,基站不踢人)<br>6:键盘开启话费识别:1键盘开启话费识别 0:不开启 |
  3471 +| 13 | ST-Bit | 位控制(直接位域控制)<br>1:基站信息公开位<br>&emsp;0表示可公开,键盘能扫描到基站信息并显示<br>&emsp;1不公开,键盘不显示,但已配对的键盘可正常连接。<br>2:配对模式,1表示当前基站处于配对模式下可供键盘配对。0无<br>3:白名单模式,1表示当前基站处于白名单模式。0:无<br>4:Plus模式-><br>1:基站周期点名;<br>0:基站不发点名<br>5:名单锁定:键盘只在Plus模式下生效<br>&emsp;1:开启名单锁定(键盘自控无法配对,无法登录,基站名单只能有上层接口与刷卡接口添加)<br>&emsp;0:关闭名单锁定(键盘可配对,可登录,基站自动加入到名单中,基站不踢人)<br>6:键盘开启话费识别:1键盘开启话费识别 0:不开启 |
3437 3472 | 14-15 | PSW | 密码(0表示没密码) |
3438 3473 | 16-17 | 2 Byte| 基站配对码前两个字节(原因:B200配合M6 AES加密,协议占用了配对码前两个字节,但是键盘需要完整的4字节配对码,所有在此带下去给键盘) |
3439 3474 | 18-30| Name | 基站名称(6个汉字) |
... ...