Error -1074384610 Using Multiple XNET/ECUMC Sessions on the Same CAN Port

Updated Oct 23, 2023

Reported In

Software

  • ECU Measurement and Calibration Toolkit
  • LabVIEW
  • VeriStand

Driver

  • NI-XNET

Programming Language

  • C

Issue Details

I am running multiple NI-XNET or NI ECU Measurement and Calibration (ECUMC) sessions on the same CAN port and get following error: 
Error -1074384610: You attempted to perform an action on a session or interface that is started, and the action that requires the session/interface to be stopped. Solution: Stop the object before performing this action.


Solution

This error can occur when:

  • You try to run multiple CAN sessions (XNET or ECUMC) with different baud rates on the same port.
  • An XNET Session or ECUMC Session of the opposite type is already started on the interface.


To resolve, check the following:

  • The same baud rates are configured for the NI-XNET and ECUMC sessions. See below these steps.
  • Ensure the Sample Point settings like SJW match also. More information on configuring custom baud rates is here and in the Additional Information section of this knowledgebase article.
  • Consider the dataflow order of code below to prevent the XNET and ECUMC sessions blocking each other
    1. Configure the XNET Session first.
    2. Start the XNET Session(s) with Session Only as the scope for XNET Start.vi or equivalent in the C API
    3. Then create, configure and start the ECUMC session.
 

To set the baud rates:


The baud rates must be the same for all XNET or ECUMC sessions that run on the same CAN port. You can either modify your DBC or A2L database or use the properties above to align the baud rates at runtime.

Additional Information

The values read from XNET or ECUMC might indicate basic baud rates  (e.g. 125k, 250k, etc.) or custom baud rates, which are represented by either hex or decimal code (e.g. 64A004160F, 217432985111, etc). When your are using custom baud rates, you also need to align the sample point value and the bit timing registers. This information is already included in the numeric code of the custom baud rates. You can use the NI-XNET Database Editor to calculate the hex code of your custom baud rate.



A common source that leads to error -1074384610 is, that the A2L file specifies a custom sampling point, which forces the NI ECU Measurement and Calibration Toolkit to use a custom baud rate:

If NI-XNET is used and the A2L file specifies a sampling point for the baud rate which differs from the sampling point used internally in NI-XNET, ECUMC replaces the standard baud rate value by a custom 64-bit baud rate which uses the sampling point as close as possible to the sampling point in A2L database. You can find the documentation for the NI-XNET custom baud rate in NI-XNET Hardware and Software Help under Interface:64bit Baud Rate.

In this case you can reconfigure your XNET session to use the same custom baud rate or simply remove the sampling point specification from your A2L database, which allows ECUMC to use the basic baud rate. Look for the following lines in your A2L file and remove or comment the property SAMPLE_POINT:
 
BAUDRATE 0x7A120
/* SAMPLE_POINT 0x28 [remove or comment this line]*/