PDUs的元数据是由通信栈中的大量模块支持的。
它的作用是在层之间传输信息,层是由分层的体系结构抽象出来的。
第一个受支持的元数据是与CanIf相关的PDUs的CAN ID。
元数据由PduInfoType结构通过一个单独的指针来传输,该指针指向一个字节数组,旁边还有一个长度和一个指向PDU有效载荷的指针。
元数据的内容由EcuC定义描述全局PDU (配置位置:/ EcuC / EcucConfigSet / EcucPduCollection / PDU),使类型(MetaDataItemType),长度(MetaDataItemLength)和元数据项的排序(MetaDataItem)包含在一个特定的PDU的元数据。
元数据项的顺序和位置:
元数据由EcuC中的元数据项及其长度(MetaDataItemLength)的配置给出。
按长度排序(MetaDataItemLength)可以确保在元数据中不需要填充,从而允许元数据项在元数据数组中被密集地打包。
一个PDU总是有一个始发(产生)模块和一个最终(消耗)模块,可能还有一些中间(转发)模块。
元数据的布局在PDU中是固定的。因此,对于所有元数据模块来说,原始模块为完整的元数据分配空间,但是访问相同PDU的模块链中的每个模块只访问它们所知道的元数据项。
元数据的分配:
第一个按一定方向引用全局PDU (/EcuC/EcucConfigSet/EcucPduCollection/ PDU)的模块(生产模块)组装PDU的数据。它应该为为PDU定义的整个元数据分配空间