Equipment-and-Tool-Institute / j1939-84

J1939-84 implementation for etools.org
MIT License
7 stars 6 forks source link

V3.1.11 not issuing DM11 Code Clear #1214

Closed anthonyhbest closed 1 month ago

anthonyhbest commented 1 year ago

Tool is not issuing code clear during part 9 of the test.

End Test 9.8 - DM11: Diagnostic data clear/reset for active DTCs

Start Test 9.9 - DM21: Diagnostic readiness 2 13:52:41.5663 Destination Specific DM21 Request to Engine #1 (0) 13:52:41.5705 18EA00F9 [3] 00 C1 00 (TX) 13:52:41.5733 18C1F900 [8] 00 00 00 00 01 00 09 00 DM21 from Engine #1 (0): [ Distance Traveled While MIL is Activated: 0 km (0 mi) Time Run by Engine While MIL is Activated: 1 minutes Distance Since DTCs Cleared: 0 km (0 mi) Time Since DTCs Cleared: 9 minutes ] FAIL: 6.9.9.2.a - Engine #1 (0) reported time SCC is > 0 minutes FAIL: 6.9.9.2.b - Engine #1 (0) reported time with MIL on > 0 minutes

battjt commented 1 year ago

The bug is that the tool is checking for existence of a DM12 from 6.9.2.1, instead of a MIL off condition in the DM12 from 6.9.2.1. The developers misunderstood "without DM12 active MIL on DTC" to mean without a DM12 response, instead of "a DM12 response without a MIL on"

.filter(a -> getDTCs(DM12MILOnEmissionDTCPacket.class, a, 9).isEmpty())

Should be

.filter(a -> !get(DM12MILOnEmissionDTCPacket.class, a, 9).getMalfunctionIndicatorLampStatus().isActive())

Active MIL is not defined. I assume that is that the on/off bits are 01b. 00b and 11b will be considered not active.

The bug is also present in 6.9.8.3.a and we should check for similar errors throughout the rest of the tool.

The requirement 6.9.8.1:

Actions a. DS DM11 [send Request (PG 59904) for PG 65235] to each OBD ECU without DM12 active MIL on DTC, based on the list created in step 6.9.2.1.
b. Wait 5 seconds before checking for erased data.

A log:

...
Start Test 9.2 - DM12: Emissions related active DTCs
13:20:22.9790 Global DM12 Request
13:20:22.9819 18EAFFF9 [3] D4 FE 00 (TX)
13:20:22.9843 18FED417 [8] 00 FF 00 00 00 00 FF FF
DM12 from Instrument Cluster #1 (23): MIL: off, RSL: off, AWL: off, PL: off, No DTCs
13:20:22.9897
...
Start Test 9.8 - DM11: Diagnostic data clear/reset for active DTCs

6.9.8.2.a - Checking for erased diagnostic information
13:20:36.9802 Destination Specific DM6 Request to Engine #1 (0)
13:20:36.9826 18EA00F9 [3] CF FE 00 (TX)
13:20:36.9892 18FECF00 [8] 40 FF 00 00 00 00 FF FF
...
battjt commented 1 year ago

Additional:

ericthomasswenson commented 1 year ago

Analysis provided believed to be correct.

ericthomasswenson commented 1 year ago

See also #1076

anthonyhbest commented 1 year ago

The missing DM11 code clear from V3.1.11 is still missing in V3.1.12. I have scanned the log of the test and there is no code clear being issued by the tool in part 9.8 which results in numerous failures throughout parts 9, 10, 11 and 12.

End Test 9.8 - DM11: Diagnostic data clear/reset for active DTCs

Start Test 9.9 - DM21: Diagnostic readiness 2 13:03:58.7013 Destination Specific DM21 Request to Engine https://github.com/Equipment-and-Tool-Institute/j1939-84/pull/1 (0) 13:03:58.7059 18EA00F9 [3] 00 C1 00 (TX) 13:03:58.7153 18C1F900 [8] 00 00 00 00 01 00 08 00 DM21 from Engine https://github.com/Equipment-and-Tool-Institute/j1939-84/pull/1 (0): [ Distance Traveled While MIL is Activated: 0 km (0 mi) Time Run by Engine While MIL is Activated: 1 minutes Distance Since DTCs Cleared: 0 km (0 mi) Time Since DTCs Cleared: 8 minutes ] FAIL: 6.9.9.2.a - Engine https://github.com/Equipment-and-Tool-Institute/j1939-84/pull/1 (0) reported time SCC is > 0 minutes FAIL: 6.9.9.2.b - Engine https://github.com/Equipment-and-Tool-Institute/j1939-84/pull/1 (0) reported time with MIL on > 0 minutes