Commit 8581c9c8248e4698103acaa2efc1343735950249

Authored by 李外
1 parent 7c79e92e

V0.0.14

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