三个子功能
这个功能就是想让被测对象重启,有三种重启方式:
硬重启0x01:相当于长按电脑电源开关来重启,会关闭所有输入和输出。
钥匙开关重启0x02:相当于你在汽车上拧钥匙开点火熄火。
软重启0x03:只是重启操作系统。
钥匙开关重启是硬线检测,一般就是IO口高低电平。软重启和硬重启一般供应商会给对应的接口,因为里面需要干的事情蛮多的,一不留神就会漏掉几个,有什么影响还不知道。
上面3种重启方法只是推荐,可以不用某一个或者另外增加,厂商可以自己设置自己的重启方式。
请求报文格式
请求报文格式就是先发个0x11,告诉被测设备我要的服务是重启服务。接下来一个字节表达子功能,你想以什么样的方式重启。
肯定应答报文格式
应答报文先按照 服务+0x40的格式回复,也就是0x51,然后就是子功能,代表我认可了你的重启方式。
否定应答码
否定应答码就是拒绝回答你的理由,在会话控制服务里面有3个
子功能不支持0x12:譬如人家没有0x05这种重启方法,你发了,那他就会以这个理由拒绝你。
报文长度错误0x13:这个很常见,因为所有诊断都是基于TP协议的,人家的请求格式要求2个字节,你发了3个,他就会以这个理由拒绝你。
条件不满足0x22:这个给厂商的自由度就很高,到底是什么条件不满足呢?是厂商自由发挥的,可以是一个可以是多个,他们之间可以是与可以是或的关系。举个最简单的例子,因为诊断往往是因为车子有问题了才拉到4S店来维修检查、诊断问题,所以查问题的时候要求车子是静止的,车速要为0,而且发动机转速要低于多少转,这些都可以成为条件。