一、服务描述
ReadDataByIdentifier服务允许客户端从由一个或多个dataidentifier标识的服务器请求数据记录值。
客户端请求消息包含一个或多个两个字节的dataIdentifier,dataIdentifier由服务器维护的数据记录。数据记录的格式和定义应特定于车辆制造商或系统供应商,并可包括模拟输入和输出信号,数字输入和输出信号,内部数据,以及服务器支持的系统状态信息。
服务器可以根据车辆制造商和系统供应商的协议,限制可以同时请求的数据标识符的数量。
在接收到一个ReadDataByIdentifier请求时,服务器应该访问由dataIdentifier参数指定的记录的数据元素,并在一个单独的ReadDataByIdentifier积极响应中传输它们的值,该响应包含相关的dataRecord参数。请求消息可能多次包含相同的dataIdentifier。服务器应该将每个dataIdentifier视为一个单独的参数,并根据请求经常为每个dataIdentifier响应数据。
二、请求信息
dataIdentifier
:此参数标识客户机正在请求的服务器数据记录
三、积极响应消息
dataIdentifier
:此参数跟请求数据中的值一致
dataRecord
:使用此参数向客户端提供所请求的数据记录值。该数值是特定于车辆制造商的。
四、负响应代码–NRC
13:incorrectMessageLengthOrInvalidFormat:请求消息的长度无效或客户端超过允许一次请求的最大数据标识符数量
14:responseTooLong:响应消息的总长度超过了基础传输协议的限制
22:conditionsNotCorrect:服务器的运行条件不满足,无法执行此操作
31:requestOutOfRange:设备不支持所请求的dataIdentifier值、当前会话不支持请求的dataidentifier、请求的dynamicDefinedDataIdentifier还没有被分配
33:securityAccessDenied:至少一个dataIdentifiers是安全的,且服务器没有处于解锁状态。
五、示例1
读取单个两个字节的dataIdentifier,其中包含单个信息片段(其中dataIdentifier F19016包含VIN号)。
client请求
server 回复
六、示例2
演示用一个请求请求多个数据标识符(其中数据标识符010A16包含发动机冷却剂温度、油门位置、发动机转速、流管绝对压力、质量空气流量、车辆速度传感器、气压、计算负载值、空闲空气控制和油门踏板位置,数据标识符011016包含电池正电压)。
client请求
server回复