Commit 8581c9c8248e4698103acaa2efc1343735950249
1 parent
7c79e92e
V0.0.14
1、通讯协议-教育新版-表决器部分第 3.2.13 增加批次表决BCD码格式数据;
Showing
1 changed file
with
19 additions
and
2 deletions
通讯协议-教育新版-表决器部分.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>  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>  FFFF0F组合表示用户又转回修改;</font><br />| | |
1217 | +| 21 | VOLT | 电池电压,单位20mV | | |
1218 | +| 22 | SendPos | 该次结果发送次数 键盘自己计数 | | |
1219 | +| 23-24 || CRC,1到第22字节 | | |
1220 | + | |
1204 | 1221 | # 四、上传多包类 |
1205 | 1222 | |
1206 | 1223 |   上传多包类指令主要用于表决器向基站快速传送一批次的数据,因为不需要竞争通讯的时序,效率较片段提交的方式高效得多。 | ... | ... |