diff --git a/通讯协议-教育新版-表决器部分.md b/通讯协议-教育新版-表决器部分.md index 68fbaa6..02a7c3f 100644 --- a/通讯协议-教育新版-表决器部分.md +++ b/通讯协议-教育新版-表决器部分.md @@ -3060,11 +3060,129 @@ AES加密格式 | 13 | NULL | 预留 | | N | Data | 数据内容 | +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 1 | CMD | 10 数据表内容| +| 2 | LEN | 数据内容[PACK]长度 | +| 2 | Pack_NO | 数据表编号,高位在前 | +| 2 | TOTAL | 题目总数,高位在前 | +| 9 | NULL | | +| N | PACK | 数据内容 | + 以下是Data数据内容解析规则 -待补充 +PACK 由最小单位包 一 一 组成 +表6.6.2.3-1 最小单位包结构 +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 1 | CMD | 指令码| +| 2 | LEN | Data 长度 | +| N | Data | 数据 | + +##### 6.6.2.3.1 数据表内容数据 +CMD 类型 +| **CMD** | **含义** | **描述** | +| --- | --- | --- | +| 0x01 | 通用题型数据 | 适用于非指定的所有题号| +| 0x02 | 通用选项数据| 适用于非指定的所有题号| +| 0x03 | 通用规则数据| 适用于非指定的所有题号| +| 0x04 | 通用控制权限名单| 针对某个或某部分SN的键盘控制权限,如回避表等| +| 0x10 | 单题配置数据| 用于指定某题号的属性配置| + +  数据表采用的是所有属性数据全部是通用属性数据,没有自定义数据,哪怕仅用一次也是放在通用属性里面,SDK按属性集中发送,每条属性数据之间用\0结束,单题配置逐个指定每项属性序号,每道题的配置信息是定长的,所以当查询每道题是不用全局搜索,只要按题号偏移即可定位。 + +  通用题型数据指的是题目UI显示部分,包括题干和可能有的选项内容,每条题型\0结束,单题配置指定本题对应的题型序号。 + +  通用选项数据指的是键值对应具体选项,如按1键表示“满意”,按2键表示“不满意”,0x02表示的通用选项数据,通常会把整套答题可能用到的选项数据都列出来,如:1:1赞成/2反对;2:1赞成/2反对/3弃权;3:1同意/2反对/3弃权;4:1满意/2基本满意/3不满意;5:1满意/2基本满意/3不满意/4不了解;6:1满意/2基本满意/3一般/4不满意;7:1非常满意/2满意/3不了解/4不满意/5非常不满意;8:1非常同意/2同意/3不了解/4不确定/5非常不同意;9:1优秀/2称职/3不称职;10:1优秀/2称职/3基本称职/4不称职;总计10条选项,每条选项用\0结束,单题配置指定本题对应的选项序号。 + +  通用规则数据指的是题目规则,如数字题输入数字范围,最大最小值等等具体规则,也是如通用选项数据一样列除所有通用规则,具体某一道题有需要的话可从中选择一条规则数据使用。每条选项用\0结束,单题配置指定本题对应的规则序号。 + +  控制权限名单,暂时有允许和不允许等情况,后面跟具体的SN名单。每一条权限控制用\0结束,单题配置指定本题对应某条控制名单,也可以不指定,正常答题,如果有指定,键盘需要找到这条控制名单,查询是否有自己的SN在列,如果有则按照权限控制做出对应的动作。 + +  指定单题配置数据指的是针对某一道单题配置前面通用的各项数据的序号,每道题的配置是定长的,查询可以直接偏移定位,不用全局搜索。 + + +##### 6.6.2.3.2 通用题型数据 +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 1 | CMD | 0x01,表示通用题型数据| +| 2 | LEN| 后续数据的总字节长度 ,高位在前 | +| 2 | Len_1 | 本单元的字节长度,高位在前 | +| Len_1 | TitleData | 题目文本字符串数据 | +| ... | ... | ... | +| 2 | Len_n | 本单元的字节长度,高位在前 | +| Len_n | TitleData | 题目文本字符串数据 | + +TitleData 格式:纯文本\n换行 (键盘根据\N换行显示与一行显示完全换行。换行时注意英文半字)每个标题用\0结尾。 +这是一个例题\n +A:选项1\n +B:选项2\n +C:选项3\n +D:选项4\n +E:选项5\n +##### 6.6.2.3.3 通用选项数据 +通用选项数据还是遵循表6.6.2.3-1结构,Data由若干个选项数据单元组成,具体见下表。 +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 1 | CMD | 0x02,表示通用选项数据| +| 2 | LEN| 后续数据的总字节长度 ,高位在前| +| 2 | Len_1 | 本选项单元的字节长度,高位在前 | +| 1 | Number | 本单元选项数量 | +| Len_1-1 | Option | 本单元选项文本字符串,有Number条字符串,每条字符串以\0结尾 | +| ... | ... | ... | +| 2 | Len_n | 本选项单元的字节长度,高位在前 | +| 1 | Number | 本单元选项数量 | +| Len_n-1 | Option | 本单元选项文本字符串,有Number条字符串,每条字符串\0结尾 | + +##### 6.6.2.3.4 通用规则数据 +通用规则数据还是遵循表6.6.2.3-1结构,Data由若干个规则数据单元组成,具体见下表。 +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 1 | CMD | 0x03,表示通用规则数据| +| 2 | LEN | 后续数据的总字节长度 ,高位在前| +| 2 | Len_1 | 自定义规则数据字节长度,如选用通用规则数据则为0 | +| Len_1 | Rule | 自定义规则文本字符串,有Number条字符串,每条字符串以\0结尾 | +| ... | ... | ... | +| 2 | Len_n | 自定义规则数据字节长度,如选用通用规则数据则为0 | +| Len_n | Rule | 自定义规则文本字符串,有Number条字符串,每条字符串以\0结尾 | + +##### 6.6.2.3.6 通用控制权限名单 +控制权限名单还是遵循表6.6.2.3-1结构,Data由若干个控制权限名单数据单元组成,具体见下表。 +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 1 | CMD | 0x04,表示通用控制权限数据 | +| 2 | LEN | 后续数据的总字节长度 ,高位在前 | +| 2 | Len_1 | 通用控制权限数据单元字节长度 | +| 1 | PERMISSION | 许可,1,允许;2,禁止 | +| Len_1-1 | LIST | SN 列表,\0结束 | +| ... | ... | ... | +| 2 | Len_n | 通用控制权限数据单元字节长度 | +| 1 | PERMISSION | 许可,1,允许;2,禁止 | +| Len_n-1 | LIST | SN 列表,\0结束 | + +##### 6.6.2.3.5 单题配置数据 +指定单题数据还是遵循表6.6.2.3-1结构,Data由若干个单题配置数据单元组成,具体见下表。 +| **字节** | **标识符** | **描述** | +| --- | --- | --- | +| 1 | CMD | 0x10,表示指定单题数据| +| 2 | LEN | 后续数据的总字节长度 ,高位在前| +| 1 | QNUM | 题目数量 | +| 1 | PROPNUM | 每题的配置数据包含属性个数,如 4 | +| 1 | 01 | 题型 | +| 1 | 02 | 选项 | +| 1 | 03 | 规则 | +| 1 | 04 | 控制权限名单 | +| 1 | Title | 本题题型 序号 | +| 1 | Option | 本题选项 序号 | +| 1 | Rule | 本题规则 序号 | +| 1 | Permission | 本题控制权限名单 序号 | +| ... | ... | ... | +| 1 | Title | 本题题型 序号 | +| 1 | Option | 本题选项 序号 | +| 1 | Rule | 本题规则 序号 | +| 1 | Permission | 本题控制权限名单 序号 | ---- # 七、组网