诊断到底在诊断啥,一般由三个部分组成,status,snapshot,extended data。
status:
操作周期(ooperation cycle),包含n个测试(test),测试ext状态有三no result,passed,failed,一旦passed或者failed则不进入noresult,实际noresult 与 passed都是0,通过本周期是否有测试结果bit区分。
一次测试的时间不定,由定周期的测试采样(test sample)的结果积分来决定,
每次测试采样结果出来会更新fault detection counter,当fault detection counter满足阈值(-128~127)则记一次测试,出一次测试结果,更新测试状态。
bit 0 testFailed,现在test的状态,1:failed,0:passed
默认0,请求可置0
bit 1 testFailedThisOperationCycle,本次操作周期,test是否有出现failed,1:有,0:没有
默认0,请求可置0,新操作周期置0
bit 2 pendingDTC ,多个连续操作周期,test是否有出现failed,1:有,0:没有
默认0,请求可置0,单个操作周期有test结果且结果只有passed置0
bit 3 confirmedDTC,是否足够条件将dtc存到flash里面
默认0,请求可置0,多个周期都有failed,满足周期数阈值置1,老化后置0,非排放ecu阈值为1.老化连续多个(一般40)操作周期没有fail。
bit 4 testNotCompletedSinceLastClear,上次请求清除后,test是否跑完有结果,1:没有,0:有
默认1,请求置1,test有结果置0
bit 5 testFailedSinceLastClear,上次请求清除后,test是否有failed结果,1:有,0:没有
默认0,请求可置0,test failed置1
bit 6 testNotCompletedThisOperationCycle,本次操作周期,test是否跑完有结果,1:没有,0:有
默认1,请求置1,新周期置1,test有结果置0
bit 7 warningIndicatorRequested,报警灯,0:不需要,1:需要
默认0,请求可置0
bit4 bit5 多个周期,针对用户清除操作,有效性确认(三状态需要两个位来表征)。状态值
bit1 bit6 本周期,状态值
bit2 bit3 failed至少出现并保持多周期,且情况是否有好转,积分值。
snapshot,failed发生时刻,本设备以及上游设备一部分状态上下文,用于定位问题原因。还原一个全局的状态。类似linux的core dump。
extended data 扩展数据,的更加详细的数据记录。