0

I am using Read DTC Information(0x19) protocol, Subfunction: 0x02: Report DTC by Status Mask

But my question is specifically related to 0x1902 logic.

I tried to report DTCs by using different status masks. Fo example, 0x19020D and 0x190201 With 190201 request, I can get only failed DTCs, but I don't know the logic behind that? How can I configure my requests by using status masks? I need main logic of 1902 request. I would appreciate if anyone could help me to understand it. Thanks.

If I would like to filter only failed DTCs, I need to use 190201. I tried and got responses with only active failed DTCs. What if I would like to filter only stored (not active DTCs) anymore?

When requesting the stored DTC(s), we're meaning the old DTC(s), tested ones, so we will not take into consideration bit6 and bit4. So what should the final mask be when asking for DTC ? Is it possible to use 1902AF? I am a little bit confused. I would appreciate if you could reply me.

ECU diag request

bburak00
  • 1
  • 2
  • Not sure what you are asking. The status mask is applied to each DTC's status byte by performing a bitwise logical AND operation. Only those DTCs with `(status byte & mask) == mask` are returned. I.e. all DTCs whose status byte has at least the same bits as the mask set are returned. Is that what you wanted to know? – MSpiller Jan 03 '22 at 14:14
  • Hi @M.Spiller Thank you very much for your clarification comment. Is it possible to use "1902" protocol without using any mask, of course under these conditions: if I don't want to use any filter for DTC's status. Or do I have to use 3rd byte as "FF" like this 1902FF ? All I need is seeing all DTC status without using any mask. – bburak00 Jan 04 '22 at 07:12
  • Wouldn't the report type _reportSupportedDTCs_ be more appropriate than _reportDTCByStatusMask_? Why do you want to use `1902` and not `190A`? – MSpiller Jan 06 '22 at 11:32
  • @M.Spiller thanks again. To be honest, I was not aware of 190A usage. Sorry for boring questions but I am new about this subject. Is it possible to use 190A without any sub feature as "190A" instead of "190AXX"? And I still wonder whether that 1902FF equals to 190A ? – bburak00 Jan 07 '22 at 12:30
  • `0x190A` does not take any other parameters. You should yourself get a copy of the UDS standard (ISO14229) for reference. As stated above `1902FF` will get you a list of all DTCs that have _all_ status bits set. I guest this is not what you want. – MSpiller Jan 07 '22 at 12:35

1 Answers1

1

The comments says the formula to filter DTCs by mask is (status_byte & mask) == mask, but in reality it is (status_byte & mask) != 0, "at least one bit from the mask is set". Therefore 1902FF lists all supported DTCs except of tested and passed ones (DTCs with status == 0 are always omitted).

The command 190A lists all DTCs and therefore might (and should!) show more than 1902FF. The response payload is compatible (3B DTC + 1B status per each DTC).

May be that various vehicle marks implement this differently but they should not.

Tomas
  • 11
  • 1