Response -------- suppose you send a request for information over the canbus, you want to listen for a certain respons as well. How is this done ? In the request message, there the "type of operation" is defined : for example: - A1 No Operation Performed (keep alive) - A3 Security Access Mode - A5 Read Current Data By Offset - A6 Read Current Data By Identifier - A7 Read Current Data By Address - A8 Set Data Transmission - A9 Stop Data Transmission In the vida msql database (T111 service table) these values are defined. In this table is a field (definition) that describes how this value should "behave". example for code B9 (Read Data Block By Offset) ----------------------------------------------- .. code-block:: xml This XML snippet describes a structure for a request and a response. In the request section: - There are three items: - "Service" with a length of 8 units. - "Identifier" length of 8 units. In the response section: - BLOFF (T142 blocktype) this refers to metaTable 146 (is not in database, but guess it is constructed out of XML file data depending on volvo model) - ID2_1 (cannot find any reference in database ...) - PARAM (T142 blocktype) refers to metaTable 148 (T148_metaPara) which gives all the parameters for an ECUvariant VIDA diagnostic logs -------------------- When using VIDA diagnostic tools, at first it tries to get vehicle data. As it happens, this might give some insight. (extract) In the Response Message I can see some of the request *30670330202041* similar to ”30670330 A” *0008621154202041* similar to ”0008621154 A” apply this to real life example ------------------------------- .. code-block:: none CAN_HS ---> ID=000ffffe data=cb 50 b9 f0 00 00 00 00 CAN_HS <--- ID=01000003 data=8f 50 f9 f0 00 08 68 85 CAN_HS <--- ID=01000003 data=09 13 20 20 41 30 65 70 CAN_HS <--- ID=01000003 data=4c 24 20 20 41 00 00 00 - First byte in reply is a technical field (8F) - Second byte is CEM ID (50) - Third (F9) is like reply to B9 - Fourth (F0) - Fifth 00 - PARTNUMBER 08688513 (08688513 A) - SPACES 20 20 - ASCII A - DIAGNOSTICPARTNUMBER (30657024 A) - SPACES 20 20 - ASCII A - PARTNUMBER cannot be found in the database *maybe something like a serialnumber* - in (T100_ecuvariant) the DIAGNOSTICPARTNUMBER is found and refers to CEM 372302 using the DHA (diagnostic host application) to get a clue --------------------------------------------------------- this was easier to understand, and performs likely the same action .. code-block:: none DIAG_ITEM [NAME=ECU: HW partnumber and DIA diagnostic number][SEND_ABLE=TRUE][NOTE=] [FORMAT=OTHER:2] [BASE=HEX] [VALUE=F0] [TYPE=BLOFF][INPUT=FALSE] BEGIN RESPONSE_ITEM [NAME=ECU Complete Part Number .][SEND_ABLE=FALSE][NOTE=ECU Complete Part Number] [NO_OF_BYTES=8] [OFFSET=2] [MASK=] [UNIT=.] [PRECISION=2] [SIGNED=U] [BASE=5 BCD 3 ASCII] [FORMULA=x] [COMP_VALUE=] [DEP_RESPITEM=CHECKOK] [DEP_RESPITEM_CHECK=TRUE] RESPONSE_ITEM [NAME=ECU Diagnostic Software number .][SEND_ABLE=FALSE][NOTE=ECU Diagnostic Software number] [NO_OF_BYTES=7] [OFFSET=10] [MASK=] [UNIT=.] [PRECISION=2] [SIGNED=U] [BASE=4 BCD 3 ASCII] [FORMULA=x] [COMP_VALUE=] [DEP_RESPITEM=CHECKOK] [DEP_RESPITEM_CHECK=TRUE] END the response is defined : - offset 2 and 8 databytes - offset 10 and 7 databytes according to this the PARTNUMBER would be *00*08688513