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字节 | + # 四、上传多包类   上传多包类指令主要用于表决器向基站快速传送一批次的数据,因为不需要竞争通讯的时序,效率较片段提交的方式高效得多。