diff --git a/img/点名时序图.png b/img/点名时序图.png new file mode 100644 index 0000000..2ca3b87 --- /dev/null +++ b/img/点名时序图.png diff --git a/语音TDMA协议设计V2.3.docx b/语音TDMA协议设计V2.3.docx new file mode 100644 index 0000000..296ac99 --- /dev/null +++ b/语音TDMA协议设计V2.3.docx diff --git a/语音TDMA原理设计V0.6.docx b/语音TDMA原理设计V0.6.docx new file mode 100644 index 0000000..6b7252d --- /dev/null +++ b/语音TDMA原理设计V0.6.docx diff --git a/通讯协议-教育新版-基站部分.md b/通讯协议-教育新版-基站部分.md index a3d5c4f..b927446 100644 --- a/通讯协议-教育新版-基站部分.md +++ b/通讯协议-教育新版-基站部分.md @@ -503,7 +503,7 @@ id数据包格式定义 | --- | --- | --- | | 1 | ANSCMD | 0x94硬件序列号带编号提交结果 | | 2 | ANSTYPE | 数据包类型11 基站报告状态 | -| 3 | REP\_TYPE | 报告类型
1 键盘快速设置失败
2 键盘快速设置成功
3 基站测试结果反馈,
4 键盘在线状态
5 多包上传状态
6 NFC刷卡消息
(后面格式根据这个类型值解析)
10 基站log文字信息 | +| 3 | REP\_TYPE | 报告类型
1 键盘快速设置失败
2 键盘快速设置成功
3 基站测试结果反馈,
4 键盘在线状态
5 多包上传状态
6 NFC刷卡消息
(后面格式根据这个类型值解析)
10 基站log文字信息
11 基站报告键盘离在线信息| |||| ### 3.3.1 键盘快速设置回报 @@ -592,6 +592,19 @@ id数据包格式定义 |||| | 59-60 ||| + +### 3.3.7 基站主动报告键盘离在线消息 + +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 1 | ANSCMD | 0x94硬件序列号带编号提交结果 | +| 2 | ANSTYPE | 数据包类型
11 基站报告状态 | +| 3 | REP\_TYPE | 报告类型
11 键盘离在线信息 | +| 4-7 | kp_sn | 键盘SN | +| 8 | state | 键盘状态:0-离线;1-在线| +| 9-11 | version | 键盘版本号 | +| 12 | volt | 键盘电量| + # 五、基站管理 ## 5.1概述 @@ -2096,7 +2109,7 @@ S5,电脑通知基站退出下载,基站通知所有(包括失败的)键 | 4 | MODE | 1 进入或退出下载状态
31后台静默升级| | 5 | ID/SN | 1:2字节ID模式;
2:4字节SN;
3:6字节SN模式 | | 6 | ~~NC~~ || -| 7 | DCMD | 模式 1进入下载 0退出下载 | +| 7 | DCMD | 模式 1进入下载 0退出下载
2 基站已有相同文件,无需下载,升级结束| | 8 | HVER | 键盘硬件版本 | | 9-11 | SVER | 键盘软件版本,3字节,10进制数字
一定要和固件内部版本号相同,便于上位机软件好对比版本,知道键盘升级成功 | | 12-13 | CRC-16 | 固件校验字 | @@ -2142,7 +2155,7 @@ S5,电脑通知基站退出下载,基站通知所有(包括失败的)键 | 1 | BASECMD | 0x61 基站管理类指令 | | 2 | BASEID | 指定的基站编号,为0时候不指定 | | 3 | CMDTYPE | 基站管理命令类型
22基站下载多包 | -| 4 | DOWNCMD | 4 下载具体数据--16字节
6 下载具体数据—512字节每片段
7 下载具体数据---64字节(48字节有效,区别于4类型的16字节有效) 10 基站问64字节包(根据代码补充)
11 基站问512字节包(根据代码补充)
31 后台静默升级;sdk向基站发送固件数据(相当于普通模式下7)| +| 4 | DOWNCMD | 4 下载具体数据--16字节
6 下载具体数据—512字节每片段
7 下载具体数据---64字节(48字节有效,区别于4类型的16字节有效) 10 基站问64字节包(根据代码补充)
11 基站问512字节包(根据代码补充)
37 后台静默升级;sdk向基站发送固件数据(相当于普通模式下7)| | 5 | DOWNTYPE | 多包类型
30 短信广播信息(SDK组包模式) | | 6 | DOWNID | 数据包标识码(DOWNTYPE=30时,是总包数)
文件下载模式时候是最高位地址 V4.52
由于非文件下载模式PACKH加上PACKL,只能下载65536字节,文件下载模式为支持大文件,用DOWNID作为高位地址,可以下载16384K字节 | | 7 | PACKH | 数据段编号,0-255 | @@ -2158,7 +2171,7 @@ S5,电脑通知基站退出下载,基站通知所有(包括失败的)键 | 1 | BASECMD | 0xE1 基站管理类指令 | | 2 | BASEID | 指定的基站编号,为0时候不指定 | | 3 | CMDTYPE | 基站管理命令类型
22基站下载多包 | -| 4 | MODE | 4下载具体数据的应答或请求具体数据
6 下载具体数据的应答或请求传输—512字节每片段
7 下载具体数据(48字节有效)
31 后台静默升级; | +| 4 | MODE | 4下载具体数据的应答或请求具体数据
6 下载具体数据的应答或请求传输—512字节每片段
7 下载具体数据(48字节有效)
37 后台静默升级; | | 5 | DOWNTYPE | 多包类型 | | 6 | DOWNID | 数据包标识码
文件下载模式时候是最高位地址 V4.52
由于非文件下载模式PACKH加上PACKL,只能下载65536字节,文件下载模式为支持大文件,用DOWNID作为高位地址,可以下载16384K字节 | | 7 | PACKH | 数据段编号,0-255 | @@ -2202,12 +2215,13 @@ S5,电脑通知基站退出下载,基站通知所有(包括失败的)键 | 1 | BASECMD | 0xE1 基站管理类指令 | | 2 | BASEID | 指定的基站编号,为0时候不指定 | | 3 | CMDTYPE | 基站管理命令类型
22基站下载多包 | -| 4 | MODE | 6 上报状态
9 上报状态,告诉sdk,底层键盘固件升级完成
10 向sdk请求(索要)数据包(数据包以1K为单位)byte6之后的数据无效
32 后台静默升级 上报状态(相当于普通模式下的9)
33 后台静默升级 向sdk请求(索要)数据包(数据包以1K为单位)(相当于普通模式下的10) | +| 4 | MODE | 6 上报状态
9 上报状态,告诉sdk,底层键盘固件升级完成
10 向sdk请求(索要)数据包(数据包以1K为单位)byte6之后的数据无效
39 后台静默升级 上报状态(相当于普通模式下的9)
38 后台静默升级 向sdk请求(索要)数据包(数据包以1K为单位)(相当于普通模式下的10) | | 5 | PACKH | 数据段编号,0-255
申请的数据包号PACK\_H | | 6 | PACKL | 数据片编号, 0-15
申请的数据包号PACK\_L | | 7 | Update status | 2-失败;(包括通知键盘进入下载和数据块下载失败;)
1-全部完成,电脑可以下一个流程(包括本次256字节成功、键盘进入下载、键盘退出下载) | | 8-13 | Keypad ID/SN | ID/SN 号,固定6字节, 高位在前 | -| 14-24 | NC | 参数无意义 | +| 14 | HW |键盘硬件版本 | +| 15-24 | NC | 参数无意义 | 电脑确认: @@ -2746,11 +2760,13 @@ step3:sdk询问 数据是否接收正确;基站回复,如果不正确 sdk重 | 2 | BASEID | 指定的基站编号,为0时候不指定 | | 3 | CMDTYPE | 基站管理命令类型41 sdk下载多包 | | 4 | type | 1 要下载的数据信息 | -| 5 | DATA-type | 1:基站固件升级
2:键盘固件升级;
3:快速下发;
4:广播 | +| 5 | DATA-type | 1:基站固件升级
2:键盘固件升级;
3:快速下发;
4:广播
32:后台静默升级键盘固件;| | 6-9 | DATA_total| 数据总字节数 高位在前 | | 10-11 | DATA crc | 数据crc 高位在前| | 12-13 | byte per PACK |高位在前 每包数据最大字节长度:64... | | other | default | | + + 基站应答: | **字节** | **标识符** | **描述** | | --- | --- | --- | @@ -2773,11 +2789,12 @@ step3:sdk询问 数据是否接收正确;基站回复,如果不正确 sdk重 | 2 | BASEID | 指定的基站编号,为0时候不指定 | | 3 | CMDTYPE | 基站管理命令类型41 sdk下载多包 | | 4 | type | 2 询问基站 | -| 5 | DATA-type | 1:基站固件升级
2:键盘固件升级;
3:快速下发;
4:广播 | +| 5 | DATA-type | 1:基站固件升级
2:键盘固件升级;
3:快速下发;
4:广播
32:后台静默升级键盘固件;| | 6-9 | DATA_total| 数据总字节数 高位在前| | 10-11 | DATA crc | 数据crc 高位在前| | 12-13 | byte per PACK |高位在前 每包数据最大字节长度:64 | | other | default | | + 基站应答: | **字节** | **标识符** | **描述** | | --- | --- | --- | @@ -2793,6 +2810,38 @@ step3:sdk询问 数据是否接收正确;基站回复,如果不正确 sdk重 | other | default | | +## 5.10 sdk获取键盘名单 +电脑向基站发送: +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 1 | BASECMD | 0x61 基站管理类指令 | +| 2 | BASEID | 指定的基站编号,为0时候不指定 | +| 3 | CMDTYPE | 基站管理命令类型42 | +| 4 | seq | 获取序号 从0开始 | +| | | | + + +基站应答: +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 1 | BASECMD | 0xE1 基站管理类指令 | +| 2 | BASEID | 指定的基站编号,为0时候不指定 | +| 3 | CMDTYPE | 基站管理命令类型42 | +| 4 | seq | 获取序号 | +| 5 | count | 本次有效键盘个数 ;小于7个(包括0)表示结束 | +| 6-9 | kp1_SN| 第1个键盘sn | +| 10 | kp1_state | 第1个键盘状态:0-离线;1-在线| +| 11-13 | kp1_ver |第1个键盘版本号| +| 14 | kp1_volt | 第1个键盘电量| +| ... | ... | ... | +| 50-53 | kp6_SN| 第6个键盘sn | +| 54 | kp6_state | 第6个键盘状态:0-离线;1-在线| +| 55-57 | kp6_ver |第6个键盘版本号| +| 58 | kp6_volt | 第6个键盘电量| + + + + # 六、版本历史 diff --git a/通讯协议-教育新版-基站部分usb json.md b/通讯协议-教育新版-基站部分usb json.md new file mode 100644 index 0000000..ff4f3e9 --- /dev/null +++ b/通讯协议-教育新版-基站部分usb json.md @@ -0,0 +1,220 @@ +[TOC] +# 一、概述 + + + + +# 二, + +## 1.1 sdk下载多包给基站 + + +### 1.1.1 sdk发送数据信息 +电脑向基站发送: +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 0-1 | Header | 数据包头:固定0xFF 0x5A | +| 2-3 | Len | 有效数据长度 | +| 4 | Direct | 0x01 : sdk主动发起的通信 | +| 5-6 | com seq | 通信序号 | +| 7 | BASEID | 指定的基站编号,为0时候不指定 | +| 8 | type | 1 要下载的数据信息 | +| 9 | DATA-type | 1:json数据
2:普通数据; | +| 10-13 | DATA_total| 数据总字节数 高位在前 | +| 14-17 | total DATA crc32 | 总数据crc32 高位在前| +| 18 | transfer total | 总传输次数 | +| 19 | transfer cur | 当前传输次数 | +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 | +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 | +|default | | | +|60-63 | crc32 | 此数据包的crc32;从byte0-59共60个字节 | + +举例:sdk要发送(1024X2 +512 bytes)数据给基站 +第一个发送单元: + step1: + 5-6:100 + 10-13 bytes: (1024*2 +512 bytes) + 14-17 :数据总长度的crc + 18 : 3 + 19 : 0 + 20-21 : 1024 + 22-25 :1024数据的crc + 60-63 : crc + step2: 基站ack + step3: sdk发送1024长度数据;64byte*16包; + step4: sdk发送询问信息 + step5: 基站ack + +第二个发送单元: + step1: + 5-6:101 + 10-13 bytes: (1024*2 +512 bytes) + 14-17 :数据总长度的crc + 18 : 3 + 19 : 1 + 20-21 : 1024 + 22-25 :1024数据的crc + 60-63 : crc + step2: 基站ack + step3: sdk发送1024长度数据;64byte*16包; + step4: sdk发送询问信息 + step5: 基站ack + +第三个发送单元: + step1: + 5-6:102 + 10-13 bytes: (1024*2 +512 bytes) + 14-17 :数据总长度的crc + 18 : 3 + 19 : 2 + 20-21 : 512 + 22-25 :512数据的crc + 60-63 : crc + step2: 基站ack + step3: sdk发送512长度数据;64byte*8包; + step4: sdk发送询问信息 + step5: 基站ack + +基站应答: +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 0-1 | Header | 数据包头:固定0xFF 0x5A | +| 2-3 | Len | 有效数据长度 | +| 4 | Direct | 0x01 : sdk主动发起的通信 | +| 5-6 | com seq | 通信序号 | +| 7 | BASEID | 指定的基站编号,为0时候不指定 | +| 8 | type | 1 要下载的数据信息 | +| 9 | DATA-type | 1:json数据
2:普通数据; | +| 10-13 | DATA_total| 数据总字节数 高位在前 | +| 14-17 | total DATA crc32 | 总数据crc32 高位在前| +| 18 | transfer total | 总传输次数 | +| 19 | transfer cur | 当前传输次数 | +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 | +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 | +|default | | | +|60-63 | crc32 | 此数据包的crc32 | + +### 1.1.2 sdk连续发送N包纯数据包,基站无需回复 + +### 1.1.3 sdk发送询问 + +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 0-1 | Header | 数据包头:固定0xFF 0x5A | +| 2-3 | Len | 有效数据长度 | +| 4 | Direct | 0x01 : sdk主动发起的通信 | +| 5-6 | com seq | 通信序号 | +| 7 | BASEID | 指定的基站编号,为0时候不指定 | +| 8 | type | 2 询问基站 | +| 9 | DATA-type | 1:json数据
2:普通数据; | +| 10-13 | DATA_total| 数据总字节数 高位在前 | +| 14-17 | total DATA crc32 | 总数据crc32 高位在前| +| 18 | transfer total | 总传输次数 | +| 19 | transfer cur | 当前传输次数 | +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 | +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 | +|default | | | +|60-63 | crc32 | 此数据包的crc32 | + +基站应答: +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 0-1 | Header | 数据包头:固定0xFF 0x5A | +| 2-3 | Len | 有效数据长度 | +| 4 | Direct | 0x01 : sdk主动发起的通信 | +| 5-6 | com seq | 通信序号 | +| 7 | BASEID | 指定的基站编号,为0时候不指定 | +| 8 | type | 2 询问基站 | +| 9 | DATA-type | 1:json数据
2:普通数据; | +| 10-13 | DATA_total| 数据总字节数 高位在前 | +| 14-17 | total DATA crc32 | 总数据crc32 高位在前| +| 18 | transfer total | 总传输次数 | +| 19 | transfer cur | 当前传输次数 | +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 | +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 | +| 26 | result | 1:成功
2:失败; | +|60-63 | crc32 | 此数据包的crc32 | + + +## 1.2 基站上传多包给SDK + +### 1.2.1 sdk发送数据信息 +基站主动发送: +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 0-1 | Header | 数据包头:固定0xFF 0x5A | +| 2-3 | Len | 有效数据长度 | +| 4 | Direct | 0x81:基站主动发起的通信 | +| 5-6 | com seq | 通信序号 | +| 7 | BASEID | 指定的基站编号,为0时候不指定 | +| 8 | type | 1 要下载的数据信息 | +| 9 | DATA-type | 1:json数据
2:普通数据; | +| 10-13 | DATA_total| 数据总字节数 高位在前 | +| 14-17 | total DATA crc32 | 总数据crc32 高位在前| +| 18 | transfer total | 总传输次数 | +| 19 | transfer cur | 当前传输次数 | +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 | +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 | +|default | | | +|60-63 | crc32 | 此数据包的crc32 | + +SDK应答: +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 0-1 | Header | 数据包头:固定0xFF 0x5A | +| 2-3 | Len | 有效数据长度 | +| 4 | Direct | 0x81:基站主动发起的通信 | +| 5-6 | com seq | 通信序号 | +| 7 | BASEID | 指定的基站编号,为0时候不指定 | +| 8 | type | 1 要下载的数据信息 | +| 9 | DATA-type | 1:json数据
2:普通数据; | +| 10-13 | DATA_total| 数据总字节数 高位在前 | +| 14-17 | total DATA crc32 | 总数据crc32 高位在前| +| 18 | transfer total | 总传输次数 | +| 19 | transfer cur | 当前传输次数 | +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 | +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 | +|default | | | +|60-63 | crc32 | 此数据包的crc32 | + + +### 1.2.2 基站连续发送N包纯数据包,SDK无需回复 + +### 1.2.3 基站发送询问 + +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 0-1 | Header | 数据包头:固定0xFF 0x5A | +| 2-3 | Len | 有效数据长度 | +| 4 | Direct | 0x81:基站主动发起的通信 | +| 5-6 | com seq | 通信序号 | +| 7 | BASEID | 指定的基站编号,为0时候不指定 | +| 8 | type | 2 询问基站 | +| 9 | DATA-type | 1:json数据
2:普通数据; | +| 10-13 | DATA_total| 数据总字节数 高位在前 | +| 14-17 | total DATA crc32 | 总数据crc32 高位在前| +| 18 | transfer total | 总传输次数 | +| 19 | transfer cur | 当前传输次数 | +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 | +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 | +|default | | | +|60-63 | crc32 | 此数据包的crc32 | + +基站应答: +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 0-1 | Header | 数据包头:固定0xFF 0x5A | +| 2-3 | Len | 有效数据长度 | +| 4 | Direct | 0x81:基站主动发起的通信 | +| 5-6 | com seq | 通信序号 | +| 7 | BASEID | 指定的基站编号,为0时候不指定 | +| 8 | type | 2 询问基站 | +| 9 | DATA-type | 1:json数据
2:普通数据; | +| 10-13 | DATA_total| 数据总字节数 高位在前 | +| 14-17 | total DATA crc32 | 总数据crc32 高位在前| +| 18 | transfer total | 总传输次数 | +| 19 | transfer cur | 当前传输次数 | +| 20-21 | This PACK Len |本次要传输的数据包长度 高位在前 | +| 22-25 | This Pack crc32 | 本次要传输的数据crc32 | +| 26 | result | 1:成功
2:失败; | +|60-63 | crc32 | 此数据包的crc32 | diff --git a/通讯协议-教育新版-表决器部分.md b/通讯协议-教育新版-表决器部分.md index 7498f2f..ea852b5 100644 --- a/通讯协议-教育新版-表决器部分.md +++ b/通讯协议-教育新版-表决器部分.md @@ -70,7 +70,7 @@ | 5 | MODE | 投票模式
低6位是表决模式:
1-9是政务应用 10-19商务应用和教育 20-29多项和批次 30-39二维表评测 40-50管理类

0、空闲,表决停止(含答案提示)
1、签到
2、表决
4、评分
5、判断题
9、模拟测试(通讯效果)

10、单选多选
11、排序
12、填空
13、抢答
14、测验
15、提交作业
16、语音答题
17、分组PK

40 对码模式

$\color{red} {高2位bit6 和 bit7 } $
Bit6=1,白名单基站,0是普通配对基站,由基站程序控制不可设置
Bit7=1表示键盘要接收多条的扩展信标(2.2.17节)内容才能启动投票(键盘改无线休眠模式到32.5ms1次以快速接收,并持续到收齐内容后改标准模式减少耗电) | | 6-22 | MODES | 投票参数,具体和MODE有关,不同模式下参数意义不同 | | 23 | STATE | 低七位表示后台签到的Count序号(1-127循环),开启一轮新的后台签到则该序号变一次。Bit7 = 1 表示开启后台签到。 | -| 24 | WCT_Pos | 低四位为当前片在WCT中的位置(0-7)以便键盘统一休眠
$\color{red} {最高位 bit7 } $
bit7=1, 表示有基础扩展信标,通常启动后一直在0x17信标前广播发送,直到收到停止指令,才取消发送,如果在投票模式,键盘需先确认收到过基础扩展信标后才能进入投票,避免反复过程| +| 24 | WCT_Pos | 低四位为当前片在WCT中的位置(0-7)以便键盘统一休眠
$\color{red} {最高位 bit7 } $
bit7=1, 表示有基础扩展信标,通常启动后一直在0x17信标前广播发送,直到收到停止指令,才取消发送,如果在投票模式,键盘需先确认收到过基础扩展信标后才能进入投票,避免反复过程
bit6:Plus模式->
1:基站周期点名;
0:基站不发点名
| | 25 | ATTRIB1 | BIT0 =0表示基站是配对基站(套装),1是自由基站(名单),这个bit位SDK不能直接修改,只能用设置基站模式修改;键盘在配对或自由选基站时候,根据此位选择基站
BIT1=0 键盘不用定时监听投票信标,1启用定时监听(S61键盘有按键后才监听投票模式,这个用于控制回到标准中天模式)
BIT2=1键盘不关机,用于测试和生产
BIT4,3 控制4档键盘自动关机时间,不关机是BIT2控制
00 -30秒 01-2分钟 10-10分钟 11-45分钟
BIT5 =1键盘心跳打开 0关闭(要求基站同步自主控制2.3.1节里面的控制位)
==BIT6—登录菜单显示允许位。1允许登录 0不允许登录==
BIT7—积分显示 1显示 0不显示 | | 26 | ATTRIB2 | 基站特性2,控制考勤
BIT0,1=键盘每秒发送考勤信号次数,0-3,0相当于关闭
BIT2,3=00---其实还可以当他用
高4位是键盘发送考勤信号功率(功率写死可当他用,bit7没用) | | 27 | ATTRIB3 | 基站特性3—基站主频点,用于键盘不跟踪到副频点 | @@ -910,6 +910,40 @@ Cmd_Data 不足32一包 后面补0 | 8 | LOGIN | 登录申请模式(后台签到模式),是否需要IC卡、登录码(用户编号、登录密码等)、用户姓名信息、学号信息,或直接授权
低4位是登录模式:
=0 无申请要求,要等待授权指令授权
=1 按键签到(应答同后面的签到码,用BCD码1FFFFF提交结果)
=2 要输入数字签到码登录(用3.4.3节签到码格式应答)
=3 ~~IC卡登录,要插入IC卡~~ V4.5 输入学号登陆
=4 输入(英文)姓名登录
=5 自动学号登陆(投票器设置好的学号信息)
=6 自动姓名登陆(投票器设置好的学号信息)

第7位=1的时候,表示是动态编号模式,表决器需要先用硬件序列号登陆,重新分配键盘编号(例如教育应用大学模式)| | 9-12 | FREQ1-FREQ4 | 主频点,副频点2,副频点3,副频点4,0的话不启用 | | 13-28 | ... | 保留 | + +## 2.7点名信标 +投票信标与广播信标需要置位plus模式位 +点名信标为连续2个标、0x12点名1-5号 0x13点名6-10号。 +时序如下图: +![点名时序图](img/点名时序图.png) +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 1 | CMD | 0x12/0x13 标识 | +| 2 | SEQ| 序号1-255 新的一轮点名 ,控制键盘上传间隔| +| 3 | TickCount| 序号1-255 基站发送一轮信标该值加1 12/13标内该值相同,用于键盘判断是否在连续点名周期| +| 4 | ACK |上个周期收到键盘SN的ACK
12回12 13回13
按bit位设置 bit = 1表示收到该位置SN的数据
位控制(直接位域控制)
1:SN1ACK
2:SN2ACK
3:SN3ACK
4:SN4ACK
5:SN5ACK| +| 5-8 | SN1 | 键盘的SN号,4字节,高位前,全00表示空| +| 9-12 | SN2 | 键盘的SN号,4字节,高位前,全00表示空| +| 13-16 | SN2 | 键盘的SN号,4字节,高位前,全00表示空| +| 17-20 | SN2 | 键盘的SN号,4字节,高位前,全00表示空| +| 21-24 | SN2 | 键盘的SN号,4字节,高位前,全00表示空| +| 25-27 | NULL |预留 | +| 28| CRC | 空中数据最后1字节是CRC| + +键盘被点名上传信息格式如下: +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 1 | ANSCMD | 0x94硬件序列号带编号提交结果 | +| 2 | ANSTYPE | 数据包类型
22 点名上传| +| 3-6 | KEYSN | 表决器硬件序列号,4字节,高位在前 | +| 7-8 | KEYID | 表决器ID | +| 9 | HMODEL | 键盘的型号代码| +| 10 | HVER | 键盘硬件版本 | +| 11-13 | SVER | 键盘软件版本,3字节,10进制数字 | +| 14 | VOLT | 电池电压,Bit7为1表示在充电,低7位x0.04V就是电池当前电压 | +| 15 | SEQ | 键盘该轮次值 对应0x12/0x13 | +| 16 | TickCount | 键盘该轮次值 对应0x12/0x13 | + # 三、上传单包类 ## 3.1概述 @@ -1201,7 +1235,7 @@ CH-UID模式下,15字节起是3字节的UID | **字节** | **标识符** | **描述** | | --- | --- | --- | | 1 | ANSCMD | 0x94硬件序列号带编号提交结果 | -| 2 | ANSTYPE | 数据包类型
7 SN+ID,含电量统一BCD格式数据,按字母ABCD解码
8 SN+ID,含电量统一BCD格式数据,按数字解码
这里带了类型,键盘提交要注意,以前是SDK根据现在的投票模式来处理,那么做带题型测验的时候,SDK还需判断题型数据,不方便,这样修改就比较容易解析数据 | +| 2 | ANSTYPE | 数据包类型
7 SN+ID,含电量统一BCD格式数据,按字母ABCD解码
8 SN+ID,含电量统一BCD格式数据,按数字解码
这里带了类型,键盘提交要注意,以前是SDK根据现在的投票模式来处理,那么做带题型测验的时候,SDK还需判断题型数据,不方便,这样修改就比较容易解析数据
17 18 等于原始7 8 类型 但22位置填写校验和1-22字节| | 3-6 | KEYSN | 表决器硬件序列号,4字节,高位在前 | | 7-8 | ID | 表决器编号ID,高字节在前 | | 9-10 | KEYTIME | 按键时间,离投票开始的时间,2字节,高位在前,平常单位20ms,测验时候单位是100ms,最大约105分钟
值为0表示使用电脑时间 | @@ -1209,8 +1243,8 @@ CH-UID模式下,15字节起是3字节的UID | 12-19 | BCDVALUE1 | 结果值,8字节BCD码表示的值,高位在前,F表示结束字符,最多16位数,E是小数点,D是空格,C是负号
2、单值结果一般就第一个BCD值有效,例如1FFFFFFF表示1,SDK用"1"表示
3、表示数字时候, E表示小数点,例如 1234E5FFFF 表示"1234.5"
4、表示单选多选排序的时候,0表示第10个选项,例如 01 32 FF FF 就是"JACB"

5、特殊的,FFFF1F组合表示确认提交,
  FFFF0F组合表示用户又转回修改;

| | 20 | VOLT | 电池电压,单位20mV | | 21 | SendPos | 该次结果发送次数 键盘自己计数 | -| 22 || 空,先填00 | -| 23-24 || CRC,1到第22字节 | +| 22 |SUM| 空,先填00
17/18类型:22位置填写校验和1-21字节| +| 23-24 |CRC| CRC,1到第22字节 | ### 3.2.12固件升级结果 @@ -3404,7 +3438,7 @@ Rule: | 2 | CRC16 | LostBuf 的校验和 | | 1 | DOWNPOS | 透传序号 不能为0 1-255基站自增(新的一轮升级) | | 1 | DOWNCount | 当前包序号 0开始 | -| 1 | NULL | NULL | +| 1 | CountMax | 本轮次传输包最大序号 | | 1 | NULL | NULL | | 1 | CountMax | 本轮次传输包最大序号 | | 1 | SpaceTime | 0默认不休眠 (每帧 帧间距离)可用于键盘休眠 也可不休,原则上 SpaceTime= PACKMAX*1MS,基站填写 | @@ -3413,7 +3447,8 @@ Rule: | 1 | HW | 硬件版本 -> (区分硬件,键盘自己识别) | | 3 | SW | 固件版本 | | 1| BR |硬件分支 同硬件信号下匹配的不同分支| -| 4 | 预留 | NULL ,实际物理包头32不含数据 为包头信息| +| 2 | SUM | 后面1K数据的2字节累加和与CRC一起辨别| +| 1 | CRC | 头包的CRC从ATC开始到SUM结束的CRC校验信息取低位| | N | DownData| 透传数据 暂定 1024B | ---- @@ -3433,7 +3468,7 @@ Rule: | 7 | NETMODE | 基站组网模式,1配对 2白名单 | | 8-11 | FREQ1-FREQ4 | 主频点,副频点2,副频点3,副频点4,0的话不启用 | | 12 | HOP | 0没跳频,1-4表示当前模块跳频频点编号,1表示在主频点 | -| 13 | ST-Bit | 位控制(直接位域控制)
1:基站信息公开位
 0表示可公开,键盘能扫描到基站信息并显示
 1不公开,键盘不显示,但已配对的键盘可正常连接。
2:配对模式,1表示当前基站处于配对模式下可供键盘配对。0无
3:白名单模式,1表示当前基站处于白名单模式。0:无
4:Plus模式->1: 基站周期组呼点名心跳/键盘上线时发送入网包 暂不使用
 0:基站不发点名心跳/键盘上线时不发送入网包(键盘竞争方式)
5:名单锁定:键盘只在Plus模式下生效
 1:开启名单锁定(键盘自控无法配对,无法登录,基站名单只能有上层接口与刷卡接口添加)
 0:关闭名单锁定(键盘可配对,可登录,基站自动加入到名单中,基站不踢人)
6:键盘开启话费识别:1键盘开启话费识别 0:不开启 | +| 13 | ST-Bit | 位控制(直接位域控制)
1:基站信息公开位
 0表示可公开,键盘能扫描到基站信息并显示
 1不公开,键盘不显示,但已配对的键盘可正常连接。
2:配对模式,1表示当前基站处于配对模式下可供键盘配对。0无
3:白名单模式,1表示当前基站处于白名单模式。0:无
4:Plus模式->
1:基站周期点名;
0:基站不发点名
5:名单锁定:键盘只在Plus模式下生效
 1:开启名单锁定(键盘自控无法配对,无法登录,基站名单只能有上层接口与刷卡接口添加)
 0:关闭名单锁定(键盘可配对,可登录,基站自动加入到名单中,基站不踢人)
6:键盘开启话费识别:1键盘开启话费识别 0:不开启 | | 14-15 | PSW | 密码(0表示没密码) | | 16-17 | 2 Byte| 基站配对码前两个字节(原因:B200配合M6 AES加密,协议占用了配对码前两个字节,但是键盘需要完整的4字节配对码,所有在此带下去给键盘) | | 18-30| Name | 基站名称(6个汉字) |