0% found this document useful (0 votes)
337 views31 pages

CAPLQuickstart 2019

CAPL (Communication Access Programming Language) allows creating functional blocks to program network node modules and applications. It is an event-based, C-like language. Important event handlers in CAPL for CAN include ones for messages received, signals changed, timers, and key presses. CAPL supports various data types including integers, floats, characters, and message variables for CAN messages. CAPL programs are compiled and executed in Vector's CANoe and CANalyzer tools.

Uploaded by

mahamd saied
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
337 views31 pages

CAPLQuickstart 2019

CAPL (Communication Access Programming Language) allows creating functional blocks to program network node modules and applications. It is an event-based, C-like language. Important event handlers in CAPL for CAN include ones for messages received, signals changed, timers, and key presses. CAPL supports various data types including integers, floats, characters, and message variables for CAN messages. CAPL programs are compiled and executed in Vector's CANoe and CANalyzer tools.

Uploaded by

mahamd saied
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

CAPL Scripting Quickstart

CAPL (Communciation Access Programming Language)


For CANalyzer and CANoe

V0.1 | 2019-04-17
Agenda

u Before Getting Started


Visual Sequencer (GUI Based Programming)
Brief Introduction to CAPL
Panel Creation and CAPL
Additional Information
Contact Information

2
Before Getting Started
Difference between CANalyzer and CANoe

u CANoe offers significant additional


capability beyond CANalyzer to: CANoe
> Stimulate the network(s) with
Interaction Layer knowledge
> Run automated tests and generate test Simulation Test
reports
> Implement automated diagnostic tests

Diagnostics CANalyzer
Analysis

Ethernet
MOST
FlexRay
LIN
CAN

3
Before Getting Started
CANoe Interaction Layer

u The CANoe Interaction Layer (in short


CANoeIL):
> Provides a signal-oriented means of
accessing the bus
> Map signals to their appropriate send
messages
> Controls the sending of these
messages as a function of the (OEM)
Send Model
u Transmission of messages and signals is
described based on attributes in the database
u CANoeIL models the transmission behavior
at run-time using those attributes

4
Before Getting Started
CAPL Support

CAPL is available in CANalyzer PRO and all versions of CANoe

CANalyzer is available in three different variants:


u PRO: Professional variant: full functionality

u EXP: Expert variant: supports all applications up to


complex analysis of heterogeneous systems; does not support CAPL programs

u FUN: Fundamental variant: simple applications, does not


support CAPL, diagnostic tester and panels

Detailed information about the variants of CANalyzer is available at our website:


http://www.vector.com/vi_canalyzer_variants_en.html

5
Agenda

Before Getting Started


u Visual Sequencer (GUI Based Programming)
Brief Introduction to CAPL
Panel Creation and CAPL
Additional Information
Contact Information

6
Visual Sequencer (GUI Based Programming)
General

u Available in both CANalyzer PRO and EXP as well as CANoe


> Intended to allow some automation within the EXP variant

u The Visual Sequencer allows you to create automated command sequences with the purpose of
> Stimulating the network
> Controlling applications

u In order to structure the individual steps, loops and conditional command blocks can be used, such as
> if, else if, end if

u Each sequence is shown in a separate window, and can be edited at any time, even while a
measurement is running.

7
Visual Sequencer (GUI Based Programming)
Features

u Send messages (cyclically)


u Set signals/variables
u If, else, else if and
repeat commands
u Wait commands
u Start/stop replay
u Write text or values
to write window or file
u Graphical debug
u Auto complete for names

8
Visual Sequencer (GUI Based Programming)
See Sample Configuration: CAN System Demo (CANsystemdemo.cfg)

9
Agenda

Before Getting Started


Visual Sequencer (GUI Based Programming)
u Brief Introduction to CAPL
Panel Creation and CAPL
Additional Information
Contact Information

10
Brief Introduction to CAPL
General

Functional blocks based on CAPL (Communication Access Programming Language) can be created to
program
u Network node modules
u Special evaluation programs for individual applications

Some CAPL characteristics:


u C-like programming language
u Event based, not interrupt driven
u CAPL programs are created using an integrated development environment called the CAPL Browser
u Direct access to signals, system variables and diagnostic parameters
u Able to link user created DLLs

11
Brief Introduction to CAPL
CANoe

u Creating and extending simulations


u Implementing functions for analysis in the measurement setup

Simulation Setup Measurement Setup

12
Brief Introduction to CAPL
CANalyzer

u Creating simulations or reactive scripts


u Implementing functions for analysis in the measurement setup

Send Loop of the Measurement Setup Analysis Branches

13
Brief Introduction to CAPL
CAPL Browser

Editor

Symbols and
Browser Tree Functions
(List of Events)

Compiler Messages

14
Brief Introduction to CAPL
Compiling

u In order to generate an executable program file from a CAPL program, the program must be compiled
with the CAPL compiler:

u Error messages are shown in the lower Message Window:

When you double-click the error description, the cursor in the Text Editor automatically jumps to the
point in the source code, where the error originated.

15
Brief Introduction to CAPL
Examining a CAPL Program

u Additional CAPL files that contain generic code


that can be reused in other programs

u Variables defined here are accessible throughout


the CAPL program

u Multiple pre-defined event handlers exist for


your use within CAPL. The code in this handler
will only be executed when the event occurs.

u You can create your own functions (special


handler) that contain related code to be
executed frequently
16
Brief Introduction to CAPL
Adding Event Handlers

CAPL is a procedural language in which the execution of program blocks is controlled by events. These
program blocks are referred to as event procedures.

17
Brief Introduction to CAPL
Important Event Handlers (CAN)

on Start
{
u Start of measurement write ("Start of CANoe");
}

on message 0x123
{
u Message received write ("CAN Message 123");
}

on signal sigTemp
u Signal change {
write ("Signal Temperature");
}

on timer tmrCycle
u Time event {
write ("within cycle");
}

on key 'a'
u Key press {
write ("Key >a< pressed");
}

18
Brief Introduction to CAPL
On Key Procedures

on key 'a' // React to press of ‘a’ key

on key ' ' // React to press of spacebar

on key 0x20 // React to press of spacebar

on key F1 // React to press of F1 key

on key ctrlF12 // React to press of Ctrl-F12

on key PageUp // React to press of Page Up key

on key Home // React to press of Home key

on key * // React to any key press except…

19
Brief Introduction to CAPL
Data Types for CAN

Type Name Bit Note


Integers Signed int 16
long 32
int64 64
Unsigned byte 8
word 16
dword 32
qword 64
Floating point float 64 Per IEEE
double 64 Per IEEE
Single character char 8
Message variable for CAN message for CAN messages
Time variables for seconds timer for Timer in s
for milliseconds mstimer for Timer in ms

20
Brief Introduction to CAPL
Variables in CAPL

u CAPL code:
int i = 100; // Declaration and initialization of an integer STATIC VARIABLES!!
char ch = 'a'; // Declaration and initialization of a character
float x; // Declaration of a floating point number

write ("Hundred as decimal number: %d", i);


write ("Hundred as hexadecimal number: %x", i);
write ("Pi as floating point number: %f", pi);
write ("The decimal ASCII code of %c is %d", ch, ch);
write ("The value of x is %f", x);

u Results:

21
Brief Introduction to CAPL
String Format Specifiers

Specifier Description
"%ld","%d" decimal display
"%lx","%x" hexadecimal display
"%lX","%X" hexadecimal display (upper case)
"%lu","%u" unsigned display
"%lo","%o" octal display
"%s" display a string
"%g","%f" floating point display. e.g. %5.3f means, 5 digits in total (decimal point inclusive)
and 3 digits after the decimal point. 5 is the minimum of digits in this case.
"%c" display a character
"%%" display %-character
"%I64d","%lld" decimal display of a 64 bit value
"%I64x","%llx” hexadecimal display of a 64 bit value
"%I64X","%llX hexadecimal display of a 64 bit value (upper case)
"
"%I64u","%llu" unsigned display of a 64 bit value
"%I64o","%llo" octal display of a 64 bit value

22
Brief Introduction to CAPL
Operators

Operator Description Example


+ - Addition, subtraction -

* / Multiplication, division -

++ -- Increment or decrement by 1 a++; // increments a by 1

% Modulo division (returns integer a = 4 % 3; // a is 1


remainder of a division)
< <= Less than; less than or equal to returns TRUE or FALSE

> >= Greater than; greater than or equal to returns TRUE or FALSE

== != Compare for equality or inequality returns TRUE or FALSE

&& Logic AND returns TRUE or FALSE

|| Logic OR returns TRUE or FALSE

! Logic NOT changes TRUE to FALSE and vice versa

& Bitwise AND 1 & 7 // yields 1 (0001 & 0111 →


0001)
| Bitwise OR 1 | 7 // yields 7 (0001 | 0111 →
0111)
~ Bitwise complement ~1 // yields 14 (0001 → 1110)

^ Bitwise exclusive OR (XOR) 01^11 // ergibt 10

>> << Bit shift to right or left 1 << 3 // yields 8 (0001 → 1000)

23
Agenda

Before Getting Started


Visual Sequencer (GUI Based Programming)
Brief Introduction to CAPL
u Panel Creation and CAPL
Additional Information
Contact Information

24
Panel Creation and CAPL
Creating a Panel

u A signal can be mapped to each display or control as simple as drag and drop
u CANalyzer display only controls for signals

Drag & Drop

25
Panel Creation and CAPL
Creating System Variables

u System Variables can be


system defined or user
defined.
u The variables can be created,
saved, imported and
exported.

26
Agenda

Before Getting Started


Visual Sequencer (GUI Based Programming)
Brief Introduction to CAPL
Panel Creation and CAPL
u Additional Information
Contact Information

27
Additional Information
Online Help File

28
Agenda

Before Getting Started


Visual Sequencer (GUI Based Programming)
Brief Introduction to CAPL
Panel Creation and CAPL
Additional Information
u Contact Information

29
Contact Information
Looking for more information?

Visit our website:


> http://www.vector.com

Sign in for a Vector training class:


> http://www.vector.com/vi_training_en.html

Need help with Vector tools?

Contact our support team:


> (248) 449 – 9290 Option 2
> support@us.vector.com

My contact info:
> Shawn.Kaschner@vector.com

30
Your questions are welcome!

Author:
Kaschner, Shawn
Vector North America

© 2019. Vector North America Inc. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V0.1 | 2019-04-17

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy