Commit 18bd33f222ecb0f5bdafd5f2c4b3594f697b118f
Merge branch 'master' of http://120.78.57.84/lee/Protocol
Showing
6 changed files
with
319 additions
and
15 deletions
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 | + | |
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>  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> 0表示可公开,键盘能扫描到基站信息并显示<br> 1不公开,键盘不显示,但已配对的键盘可正常连接。<br>2:配对模式,1表示当前基站处于配对模式下可供键盘配对。0无<br>3:白名单模式,1表示当前基站处于白名单模式。0:无<br>4:Plus模式->1: 基站周期组呼点名心跳/键盘上线时发送入网包<font color="#dd0000"> 暂不使用</font><br> 0:基站不发点名心跳/键盘上线时不发送入网包(键盘竞争方式)<br>5:名单锁定:键盘只在Plus模式下生效<br> 1:开启名单锁定(键盘自控无法配对,无法登录,基站名单只能有上层接口与刷卡接口添加)<br> 0:关闭名单锁定(键盘可配对,可登录,基站自动加入到名单中,基站不踢人)<br>6:键盘开启话费识别:1键盘开启话费识别 0:不开启 | | |
3471 | +| 13 | ST-Bit | 位控制(直接位域控制)<br>1:基站信息公开位<br> 0表示可公开,键盘能扫描到基站信息并显示<br> 1不公开,键盘不显示,但已配对的键盘可正常连接。<br>2:配对模式,1表示当前基站处于配对模式下可供键盘配对。0无<br>3:白名单模式,1表示当前基站处于白名单模式。0:无<br>4:Plus模式-><br>1:基站周期点名;<br>0:基站不发点名<br>5:名单锁定:键盘只在Plus模式下生效<br> 1:开启名单锁定(键盘自控无法配对,无法登录,基站名单只能有上层接口与刷卡接口添加)<br> 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个汉字) | | ... | ... |