1. 概述
基于事件响应(ResponseOnEvent)服务(0x86)顾名思义就是当ECU发生了某个事件或满足了某个条件的时候发送响应,这和以往我们介绍的一条请求一条响应的诊断通信方式有所不同。
86服务的大体流程如下图所示:
首先诊断仪要先向ECU发送请求,设置一个事件逻辑,之后再向ECU发送指令控制该事件逻辑的启动,指令中附带eventWindowTime参数,即事件有效持续时间。当事件逻辑启动时,如果发生了指定的事件,ECU就会返回一条响应。
2. 执行规则
(1) 86服务可以在任何诊断会话下被执行,包括默认会话,并且不需要诊断仪在线(0x3E)服务来维持状态。
(2) 当指定时间发生时,如果当前有其它诊断指令正在被处理并即将返回一个诊断响应(包括返回0x78的情况),那么86服务的响应应该被推迟发送,在当前诊断响应发送完毕后再发送。注意,这种情况下可能会导致86响应中的数据不是实时的最准确的数据。
(3) 当多个被指定的时间同时发生时&#x