CAN Script Types

Here is the sequence of CANScript execution for Masters and Plugins:
Please right click on the image and open in new-tab to view in full screen.

Variable Setup Script

  1. Purpose: Defining and initializing diagnostic variables.(based on models)
  2. Input Parameters: None
  3. External Variables: Standard
  4. Script Block: 155

Connection Script

  1. Purpose: setting up connections. Accessing CAN.
  2. Input Parameters: Yes
  3. External Variables: Standard
  4. Script Block:

Network CAN Script

  1. Purpose: To detect ECUs on the connection (channels) and to provide version information about the ECU software.
  2. Input Parameters: None
  3. External Variables: Standard
  4. Script Block:

    Script will execute the ‘Tick Event On Timer’ in a loop with a delay of the specified Script Timer value in milliseconds.

Function Script

  1. Purpose: To execute logic before and after a function is selected.
  2. Input Parameters: Yes
  3. External Variables: Standard
  4. Script Block:

Surface Script

  1. Purpose: To execute logic while a graphical surface is displayed.
  2. Input Parameters: None
  3. External Variables: Standard
  4. Script Block: Dynamic- based on controls that add events.

Pop-up Surface Script

  1. Purpose: To display a pop-up window containing a graphical surface while running the script. This script can be used in any other CANScript.
  2. Input Parameters: Yes
  3. Return Parameters: Yes
  4. External Variables: Standard
  5. Script Block: Dynamic- based on controls that add events.

Run Surface Script

  1. Purpose: To display an area containing a graphical surface while running the script. This is available on Calibrations.
  2. Input Parameters: Yes
  3. Return Parameters: Yes
  4. External Variables: Standard
  5. Script Block: Dynamic- based on controls that add events.

Calibration Script

  1. Purpose: To execute logic for Calibration.
  2. Input Parameters: Yes
  3. External Variables: Standard
  4. Script Block:

Configuration Script

  1. Purpose: To execute logic for a Configuration.
  2. Input Parameters: Yes
  3. External Variables: Standard
  4. Script Block:

Diagnostic Test Script

  1. Purpose: To execute logic for a Diagnostic Test.
  2. Input Parameters: Yes
  3. External Variables: Standard
  4. Script Block:

Flash Script

This script consists of 3 parts:
1. Pre-package Flash Script 2. Flash Script 3. Post-package Flash Script

Pre-package Flash Script

  1. Purpose: To execute logic before the individual flash scripts are executed.
  2. Input Parameters: Yes
  3. External Variables: Standard and
  4. Script Block:

Flash Script

  1. Purpose: To execute logic to flash a specific file to an ECU.
  2. Input Parameters: Yes
  3. External Variables: Standard and
  4. Script Block:

Post-package Flash Script

  1. Purpose: To execute logic after the individual flash scripts are executed.
  2. Input Parameters: Yes
  3. External Variables: Standard and
  4. Script Block:

DTC Script

There are 2 types of DTC Script:

Active Script

  1. Purpose: To retrieve active diagnostic trouble codes on a regular interval.
  2. Input Parameters: Yes
  3. External Variables: Standard
  4. Script Block:

Stored Script

  1. Purpose: To retrieve historical DTCs on request.
  2. Input Parameters: Yes
  3. External Variables: Standard
  4. Script Block:

Extended Info Script

  1. Purpose: To retrieve additional info of a DTC.
  2. Input Parameters: N
  3. External Variables: Standard and
  4. Script Block:

Network Detect Script

This script is created/used in Step:5 of VDW.

  1. Purpose: To execute logic to detect a specific ECU status on the Network Scan page. This script can be run one at a time sequentially using 'Run Script Isolation'.
  2. Input Parameters: Yes
  3. Output Parameters: No
  4. External Variables: Standard
  5. Script Block: Might have external objects.

    Script will execute the ‘Detect Even On’ in a loop with a delay of the specified ‘Loop Wait’ value in milliseconds.

(Hardware/Software) Version Script


  1. Purpose: To execute logic to retrieve hardware/software versions. This script can be run one at a time sequentially using 'Run Script Isolation'.
  2. Input Parameters: Yes
  3. Output Parameters: Yes, requires version variable.
  4. External Variables: Standard
  5. Script Block:
    Version variable value will be used to display the version in EDT UI.

Signal Script

  1. Purpose: To execute logic to retrieve data as a signal.
  2. Input Parameters: Yes
  3. Output Parameters: No, script can return multiple signals.
  4. External Variables: Standard
  5. Script Block:
    Use ‘Define Script Signal’ code snippet to define additional signals, to show up in variables list.

Controller Script

This script is created/used in Step:5 of VDW.

  1. Purpose: To execute logic specific to an ECU like silencing a controller etc.
  2. Input Parameters: Yes
  3. Output Parameters: No
  4. External Variables: Standard
  5. Script Block:

Slider Script

  1. Purpose: Can be used in any Graphical Surface script (Surface, Pop-Up surface and Run Surface). A script that executes during manipulation of the slider in the UI. This scrip is available on 'Slider Script' control a graphical surface in VDW.
  2. Input Parameters: No
  3. Output Parameters: No
  4. External Variables: None
  5. Script Block:

Sub-Function Script

  1. Purpose: To execute logic from a script as a function. A reusable script called from other scripts.
  2. Input Parameters: Yes
  3. Output Parameters: Yes
  4. External Variables: Standard (Input, Output and status variables)
  5. Script Block:


Scripts mentioned so far can be used for both Masters and Plugins. Scripts below are used for Plugins.

Plugin Variable Setup Script

  1. Purpose: Defining and initializing diagnostic variables.(based on plugin parameters)
  2. Input Parameters: No
  3. External Variables: Standard and plugin parameters(dynamic based on step 3).
  4. Script Block:

Plugin Integration Script

Masters --> Step 15: --> Select a plugin --> Options --> Edit Plug-in Settings. This script requires a plugin to be saved and plublished for integration.

  1. Purpose: To execute complex logic for plugin parameters(override the values defined for plugin parameters).
  2. Input Parameters: Yes, dynamic based on parameters defined in Step3 of plugins.
  3. Output Parameters: Yes, dynamic based on parameters defined in Step3 of plugins.
  4. External Variables: Standard
  5. Script Block: