传送门 ==>> AutoSAR实战系列300讲「糖果Autosar」总目录
关于ReadDataByIdentifier ($22)协议部分的解释请参考我的文章【UDS02-根据标识符读取数据服务【ServiceID = 0x22】】
该服务提供对 ECU 内数据结构的读取访问,这个内部的数据结构由标识符 (DID) 标记。测试人员可以使用诊断仪【比如Canoe工具】在一个请求中同时访问多个 DID。
如果启用 SilentBSW并且禁用分页读取,当读取具有可变长度的 DID 时,DCM 会验证所配置的 DID的读取字节的最大长度不超过DCM的内部缓冲区。因此,只有在读取了可变长度 DID 之前的所有 DID 后,缓冲区中的剩余空间至少大于或等于可变长度 DID 的最大长度,才能读取可变长度 DID。
那么怎么获取获取 DID 长度呢?在接收到 UDS 服务