ASAP2Library Logo
Home of ASAP2Library and ASAP2Demo

Getting started...

Table of contents:

  1. Introduction
  2. Graphical user interface description
  3. Find and select ASAP2 objects
  4. Change ASAP2 objects
  5. Add ECU calibration data
  6. Display, adjust and store calibration data
  7. Export and import calibration data
  8. Updating A2L object addresses from an ELF file
  9. Connect to an ECU with XCP over Ethernet(TCP/UDP)
  10. Activating and connecting to CAN hardware
  11. Connect to an ECU with XCP on CAN or CCP
  12. Configuring DAQ lists for online measuring
  13. The ECUSimulator
  14. Starting the ECUSimulator manually
  15. Force ASAP2Demo to run as a 32Bit process
ASAP2Demo youtube channel or watch demos on the ASAP2Demo Youtube channel


After starting the ASAP2Demo...

  • Open the example from File/Open example file menu
  • Open an existing ASAP2 (*.a2l) file from the File/Open menu
  • Drag&Drop one or more ASAP2 (*.a2l) files onto the ASAP2Demo application

For each specified ASAP2 file a document is created displaying the ASAP2 hierarchy in a tree, the original content and the received ASAP2 parser messages in a data table. After selecting a specific ASAP2 object in the tree, the property grid below the tree displays properties corresponding to the selected ASAP2 object.

Graphical user interface description:

ASAP2 UI overview

How to find and select ASAP2 objects...

  • Use the tree view to select your ASAP2 object.
  • Type in any characters to search for an specific object. The object search window will appear as you type. Select objects within the search window to synchronize tree view and A2L content.
  • Select a position in the A2L content manually.
    Synchronize the tree and property view by a double-click or context menu to the selected position.

How to change ASAP2 object properties

  • You may change properties of selected ASAP2 objects in the ASAP2 object properties window.
  • After changing ASAP2 object properties, ensure to save and reload the A2L file by using the ‘File->Save‘ command to activate the changed properties.
  • I recommend to never override the original A2L file!

How to add ECU calibration data files to the A2L model

  • The ASAP2Demo application tries to load a suitable calibration (HEX/S19) data file anytime a A2L file is opened.
    If a homonymous data file in the same directory is found it will be loaded automatically, otherwise, the first data file found in the directory will be loaded.
    To ensure loading the desired data file automatically, it is recommended to put the A2L and its data file into a standalone directory.
  • You can load a calibration data file by the ‘File->Load data file’ command.
  • You may save a changed calibration data file by using its context menu (‘Save file’ command).

How to display, adjust and store calibration data

After a calibration data file is loaded...

  • Select the tab ‘Calibration data’ to display or adjust calibration data
  • By selecting a specific A2L function or group from the A2L object tree, the list of characteristics gets filtered
  • Depending on the selected A2L characteristic
    • A 2D-Control displays the values for A2L single value types
    • A ComboBox control display A2L single values depending on a dictionary (TAB_VERB and TAB_NOINTP computation types)
    • A TextBox control displays A2L ASCII value types.
    • A 3D-Control displays the values for A2L value block, curve and map characteristic types. Use the mouse and the 3D-control’s context menu to adjust perspective, zoom and view
  • Numeric characteristic values are adjustable by context menu (‘Edit value...’) or just start typing a new value on the keyboard.
  • Numeric characteristic values are adjustable by the ‘+/-’ keys with it’s default increment
  • For characteristic values containing multiple values (value block, curve, map) a cell selection within the displayed data has to be done before adjusting with the ‘+/-’ keys.
  • The minimum increment/decrement value for a characteristic depends on the A2L defined data type and format.

After a calibration data file is changed...

  • Use the context menu of the calibration page to store the adjustments as Intel Hex or Motorola-S file use:
    Store adjusted calibration data

How to export and import calibration data

After a calibration data file is loaded...

  • Use the context menu of the calibration page to export or import calibration data as INCA DCM, CDF or MATLAB-m file format.
    Export and import parameter files

Updating A2L object addresses from an ELF file

  1. Open any A2L file with ASAP2Demo
  2. Open an ELF file containing symbols corresponding to the A2L objects
  3. The ELF File demo window displays a table with known A2L objects, the original A2L address, the symbol's address read from the ELF file and a synchronizer message
  4. If no A2L file is opened before the ELF File demo window displays only the ELF file analysis tabs.

The ASAP2Demo currently does not allow to save the updated content to a new A2L file!
For an example of how to do an A2L address update with the ASAP2Library see the ELF example

How to connect to an ECU over XCP on Ethernet (TCP/UDP)

After an XCP over Ethernet supporting A2L File is loaded...

  • You are asked to connect to the ‘real’ ECU or simulate the ECU using the ECU simulator.
  • ASAP2Demo lets you...
    • Enable/disable the ECU connection
    • Define a Seed&Key DLL to get access to the ECU
    • Change the active calibration page (Flash or RAM)
    • Read a calibration page from the ECU
    • Write a calibration page to the ECU and persist them in the ECU’s flash memory
    • Copy the ECU’s Flash page to the ECU’s RAM page and vice versa
    • Start/stop/configure data acquisition

Activating and connecting to CAN hardware

The philosophy of ASAP2Demo/ASAP2Library to communicate with CAN Hardware is:

  • The ASAP2Demo installer does not deliver anything belonging to a specific CAN hardware.
  • It only uses installed CAN hardware drivers.

Depending on the CAN Hardware driver, ASAP2Demo searches the %SYSTEMROOT%\system32 directory for a driver DLL. See the list below of supported CAN hardware and it’s corresponding driver DLLs.

CAN provider 32 Bit driver 64 Bit driver Supports
8devices usb2can.dll not available
Advantech not needed not needed
ESD ntcan.dll ntcan.dll
Ebersp├Ącher electronics fcbase.dll fcbase.dll
IXXAT vcinpl.dll vcinpl.dll
Kvaser canLib32.dll canLib32.dll
MHS Elektronik Tiny-CAN mhstcan.dll mhstcan.dll
Lawicel canusbdrv.dll canusbdrv64.dll
National Instruments nican.dll not available
Peak pcanbasic.dll pcanbasic.dl
Softing canl2.dll canl2.dll
Vector vxlapi.dll vxlapi64.dll

How to connect to an ECU over XCP on CAN or CCP

Prerequisites (for a Vector CAN enabled product, for any other type of CAN hardware, the same kind of configuration applies):


  • Open the options menu, chapter CAN
  • Press the configure button for 'Vector CAN'
  • Select hardware and the desired configuration


Vector driver CAN configuration

After this, enable the checkbox to use the Vector CAN device in the options dialog. ASAP2Demo should now be able to access the CAN device. If the configuration is successful, the ASAP2Demo shows an accessible CAN device in it's status bar:

Active Vector CAN Configuration

Using the ECUSimulator on the same machine, the hardware type must be set to 'Virtual'.

Configuring DAQ lists for online measuring

The XCP and CCP DAQ selection pages displays available DAQ lists and connected DAQ events. The page allows to enable or disable each single DAQ List to be used in online measuring.

The ECU Simulator

  • The ECUSimulator is implemented as a standalone console application (ECUSimulator.exe in the ASAP2Demo installation directory).
  • The ECUSimulator may be started on any machine supporting the .NET Framework.
  • Multiple instances of the ECUSimulator may be started on different IP ports on the same machine.
  • Instances of the ECUSimulator on the local machine are connected, started and stopped automatically by ASAP2Demo.
  • Never ever run more than one instance of ASAP2Demo with the same A2L in simulating mode! This leads to multiple XCP/CCP Master access on a single Slave. The behavior is not predictable in this case.

Starting the ECU Simulator manually

  1. Open a console window in the ASAP2Demo installation folder.
  2. The following command line is required to start the ECUSimulator process:
    ECUSimulator [-debug] TCP:Port|UDP:Port|CAN:Driver:Port|CCP:Driver:Port|UDS:Driver:Port A2LFile [DataFile]
    XCP on TCP Simulator on port 1800:
    ECUSimulator TCP:1800 ASAP2Example.a2l ASAP2Example.hex
    XCP on CAN Simulator using the Vector CAN driver on Port 2:
    ECUSimulator CAN:vector:1 ASAP2Example.a2l ASAP2Example.hex
    CCP Simulator using the Kvaser CAN driver on Port 1:
    ECUSimulator CCP:kvaser ASAP2Example.a2l ASAP2Example.hex
    UDS Simulator using the Kvaser CAN driver on Port 3:
    ECUSimulator UDS:kvaser:2 ODXExample.odx

The result is an ECUSimulator process supporting the specified protocol. The process simulates an ECU defined in the ASAP2Example.a2l with calibration data from ASAP2Example.hex.

Force ASAP2Demo to run as a 32 Bit process

This paragraph is only of interest if ASAP2Demo is installed on a 64 Bit OS, but usually this is the default in these days.
As the ASAP2Demo/ECUSimulator starts in this case in 64 Bit mode, using 32 Bit CAN drivers (the National Instruments CAN driver only supports 32 Bit applications) or using a 32 Bit Seed&Key DLL to get CCP/XCP/UDS access on ECUs will fail.

ASAP2Demo provides a workaround in this case:
The shortcut 'Force to run as 32Bit Process' in the ASAP2Demo folder forces an ASAP2Demo/ECUSimulator process to start always in 32 Bit mode.
This has only to be done once after ASAP2Demo is installed or updated to a newer version.

Execute the shortcut by a right-click and click 'Run as administrator'



  • Executing the shortcut requires administrator privileges.
  • Before executing the shortcut, an open ASAP2Demo/ECUSimulator process must be closed.