diff --git a/通讯协议-教育新版-表决器部分.md b/通讯协议-教育新版-表决器部分.md
index bdd6a9f..a8cd216 100644
--- a/通讯协议-教育新版-表决器部分.md
+++ b/通讯协议-教育新版-表决器部分.md
@@ -909,7 +909,7 @@ Cmd_Data 不足32一包 后面补0
| **字节** | **标识符** | **描述** |
| --- | --- | --- |
| 1 | ANSCMD | 0x93新体系硬件序列号提交结果
0x94硬件序列号带编号提交结果(S6Plus)
0x94开头时候,第7、8字节是键盘编号 |
-| 2 | ANSTYPE | 数据包类型(根据ANSTYPE的不同,第3字节起数据格式有不同定义)
0 状态
1 统一BCD码格式
2 测验中的单选多选排序类型
3 测验中的数字题结果类型(最多12位数)
4 填空和测验中的字符串
6 键盘主动提交,带类型
7 SN+ID,含电量统一BCD格式数据,按字母解码
8 SN+ID,含电量统一BCD格式数据,按数字解码
9 SN+ID的字符串,带电量和效验
11 登录信息
12键盘请求
13 多包申请
14 考勤定位
20 语音数据 |
+| 2 | ANSTYPE | 数据包类型(根据ANSTYPE的不同,第3字节起数据格式有不同定义)
0 状态
1 统一BCD码格式
2 测验中的单选多选排序类型
3 测验中的数字题结果类型(最多12位数)
4 填空和测验中的字符串
6 键盘主动提交,带类型
7 SN+ID,含电量统一BCD格式数据,按字母解码
8 SN+ID,含电量统一BCD格式数据,按数字解码
9 SN+ID的字符串,带电量和效验
11 登录信息
12键盘请求
13 多包申请
14 考勤定位
15 批次表决BCD码格式数据
20 语音数据
32 键盘申请发送透传数据包
99 固件升级结果
|
| 3-6 | KEYSN | 表决器硬件序列号,4字节,高位在前
例如SN号AB120500,那么第1字节值是0xAB,第2字节0x12,依次类推 |
| 7 | DATAPOS/ADDH | 功能等同投票信标中的DATAPOS,正常提交结果必须等同于当前DATAPOS,用于基站判断,是否是当次投票结果。由于新体系键盘出于省电,平常是不监听信标的,就有可能提交结果的时候,投票已经停止或者已经到下一个,这样,基站就能判断结果无效反馈给键盘
启动投票的时候,键盘记录DATAPOS值下来,提交结果带上,不要用信标里面的值。
为0表示不需要,例如遥控器
ANSCMD=0x94时候,本字节是键盘编号高位ADDH字节 |
| 8 | SENDPOS/ ADDL | 键盘提交一次结果就变化一次,用于SDK判断,是否和上次结果一样,这样,对于重复数据,SDK就不弹出消息
这对遥控器操作比较有用
ANSCMD=0x94时候,本字节是键盘编号低位ADDL字节 |
@@ -1181,7 +1181,7 @@ CH-UID模式下,15字节起是3字节的UID
| 7-8 | ID | 表决器编号ID,高字节在前 |
| 9-10 | KEYTIME | 按键时间,离投票开始的时间,2字节,高位在前,平常单位20ms,测验时候单位是100ms,最大约105分钟
值为0表示使用电脑时间 |
| 11 | ITEMNO1 | 测验中的项目序号,1字节,1起
如果是单个投票,这里填00,或者SDK不处理
项目序号>0时候,SDK时间单位按100ms计算
特殊地,题号101表示用户按OK键确认提交(青果),后面的值可以全FF |
-| 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"|
+| 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 |
@@ -1201,6 +1201,23 @@ CH-UID模式下,15字节起是3字节的UID
| 10 | HW | 键盘硬件代码 |
| 11-13 | SW1-SW3 | 键盘软件版本,3字节 |
+### 3.2.13 批次表决BCD码格式数据
+
+M6键盘批次表决,由于题目数量有两字节,原有的ANSTYPE=7的数据格式不能适用,在此基础上增加ANSTYPE=15的数据格式。
+
+| **字节** | **标识符** | **描述** |
+| --- | --- | --- |
+| 1 | ANSCMD | 0x94硬件序列号带编号提交结果 |
+| 2 | ANSTYPE | 数据包类型
15--批次表决BCD码格式数据,按字母ABCD解码
这里带了类型,键盘提交要注意,以前是SDK根据现在的投票模式来处理,那么做带题型测验的时候,SDK还需判断题型数据,不方便,这样修改就比较容易解析数据 |
+| 3-6 | KEYSN | 表决器硬件序列号,4字节,高位在前 |
+| 7-8 | ID | 表决器编号ID,高字节在前 |
+| 9-10 | KEYTIME | 按键时间,离投票开始的时间,2字节,高位在前,平常单位20ms,测验时候单位是100ms,最大约105分钟
值为0表示使用电脑时间 |
+| 11-12 | ITEMNO1 | 批次提交的题号,2字节,1起
如果是单个投票,这里填00,或者SDK不处理
|
+| 13-20 | 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组合表示用户又转回修改;
|
+| 21 | VOLT | 电池电压,单位20mV |
+| 22 | SendPos | 该次结果发送次数 键盘自己计数 |
+| 23-24 || CRC,1到第22字节 |
+
# 四、上传多包类
上传多包类指令主要用于表决器向基站快速传送一批次的数据,因为不需要竞争通讯的时序,效率较片段提交的方式高效得多。