REXGEN 1REXGEN 2REXGEN 2 IMU GNSSREXGEN AirREXGEN ProDeveloper
REXGEN XML reference: diagnostics (UDS, XCP, seed and key, J1939 DM)
Configure REXGEN diagnostic blocks in XML: UDS request sequences, XCP measurement with seed and key access, DAQ lists and J1939 DM1 fault recording.
About this guide
The schema, ReXConfig.xsd revision 1.1, defines the diagnostic blocks in this guide.
REXDESK builds the same setups through its interface. See REXDESK: filter CAN IDs, J1939 PGNs and UDS requests.
These Learn articles explain the protocols:
Each block takes a UID attribute (required and unique in the file) and the optional Version, X and Y. It sits inside BLOCKS in a list named after it, for example UDS_LIST.
How the diagnostic blocks use CAN messages
A diagnostic block does not send frames itself. It points at CANMESSAGE blocks: the request the logger sends, the response it expects from the ECU and, optionally, a tester present message. For the CAN message fields, see REXGEN XML reference: CAN messages and signals. These fields set up the request and response:
-
Protocol_Type:NO,UDSorXCP. -
ResponseUID: the response the request waits for. -
ResponseTimeout: the time in milliseconds after which the logger sends a request again if no response arrives. -
ResponseObligatory: withtrue, the sequence waits for the response. Withfalse, it moves on after the timeout. -
NextOutputMessageID: the next request in a sequence.
UDS (UDS_LIST)
UDS
<UDS UID="60">
<Name>Read data by identifier</Name>
<FirstUDSMessageUID>61</FirstUDSMessageUID>
<ModuleMessageUID>62</ModuleMessageUID>
<TesterMessageUID>63</TesterMessageUID>
<TesterPresentTime>2000</TesterPresentTime>
<NoResponseTimeout>1000</NoResponseTimeout>
</UDS>
Name- A name for the sequence. Required. String.
FirstUDSMessageUID- UID of the first request message in the sequence. Required. Unsigned short.
ModuleMessageUID- UID of the message the ECU answers on. Required. Unsigned short.
TesterMessageUID- UID of the tester present message that keeps the diagnostic session open. Optional. Unsigned short.
TesterPresentTime- Interval between tester present messages, in milliseconds. Optional. Unsigned short. Default
0. NoResponseTimeout- Time to wait for the ECU before giving up, in milliseconds. Required. Unsigned short.
XCP (XCP_LIST)
XCP
<XCP UID="70">
<Name>Engine ECU</Name>
<FirstMessageUID>71</FirstMessageUID>
<ModuleMessageUID>72</ModuleMessageUID>
<TesterMessageUID>73</TesterMessageUID>
<TesterPresentTime>1000</TesterPresentTime>
<NoResponseTimeout>1000</NoResponseTimeout>
<DAQMessageUID_LIST>
<DAQMessageUID>74</DAQMessageUID>
</DAQMessageUID_LIST>
<SEED_KEY_LIST>
<SEED_KEY>
<SeedMessageUID>75</SeedMessageUID>
<KeyMessageUID>76</KeyMessageUID>
<UnlockFileName>SeedKey.dll</UnlockFileName>
</SEED_KEY>
</SEED_KEY_LIST>
</XCP>
Name- A name for the XCP slave. Required. String.
FirstMessageUID- UID of the first command message. Required. Unsigned short.
ModuleMessageUID- UID of the message the ECU answers on. Required. Unsigned short.
TesterMessageUID- UID of the tester present message, which keeps the XCP connection open. Required for XCP. Unsigned short.
TesterPresentTime- Interval between tester present messages. Optional. Unsigned short.
NoResponseTimeout- Time to wait for the ECU. Required. Unsigned short.
DAQMessageUID_LIST- The messages that carry DAQ data, each a
DAQMessageUID. Optional. SEED_KEY_LIST- Seed and key access. Each
SEED_KEYnames the seed message, the key message andUnlockFileName, the file that computes the key from the seed. Optional.
The product pages list XCP on CAN for REXGEN Pro.
DAQ lists (DAQ_LIST, DAQITEM_LIST, DAQFILE_LIST)
Three blocks describe a measurement list. DAQ sets the list and its rate. Each DAQITEM adds a value to it. DAQFILE writes the values out as JSON or XML at an upload rate. DAQFILE is what REXDESK calls a snapshot file. See REXDESK: send decoded snapshot files to S3.
<DAQ UID="80">
<Number>0</Number>
<SamplingRate>100</SamplingRate>
</DAQ>
<DAQITEM UID="81">
<DAQID>80</DAQID>
<InputUID>30</InputUID>
<Name>Engine speed</Name>
</DAQITEM>
<DAQFILE UID="82">
<FileType>JSON</FileType>
<InputTypeID>0</InputTypeID>
<InputUID>81</InputUID>
<Name>snapshot</Name>
<UploadRate>60000</UploadRate>
</DAQFILE>
-
Number,SamplingRate(DAQ) - The DAQ list number and its rate. Required. Unsigned short and unsigned int.
-
DAQID,InputUID,Name(DAQITEM) - The DAQ list the item belongs to, the value it carries and its name. Required.
-
FileType(DAQFILE) -
JSONorXML. Required. -
InputTypeID,InputUID,Name,UploadRate(DAQFILE) - What the file takes its values from, its name and how often the logger writes or uploads it. Required.
J1939 diagnostic messages (J1939DM_LIST)
J1939DM
Records J1939 DM1 active fault messages from one source address. The product pages list J1939 DM1 as a trigger source on every REXGEN.
<J1939DM UID="90">
<DMType>DM1</DMType>
<InputUID>3</InputUID>
<Source>0</Source>
</J1939DM>
DMType- The diagnostic message.
DM1is the only value. Required. InputUID- UID of the input
CANMESSAGEthat receives the J1939 traffic. Required. Unsigned short. Source- J1939 source address of the ECU to watch. Required. Unsigned byte.
Next steps
- To start recording on a diagnostic result, see REXGEN XML reference: triggers, conditions and logic blocks.
- To log OBD-II values without XML, see REXGEN: log OBD2 Mode 1 PIDs.
Products in this guide
Still stuck?
Our engineers answer support questions on every Influx Technology product.