CAPL là viết tắt của Communication Access Protocol Language, một ngôn ngữ được sử dụng trong các công cụ CANoe và CANalyzer của công ty Vector. Dưới đây là 7 sự kiện cơ bản trong cú pháp CAPL. Trang này sẽ giúp chúng ta tìm hiểu về những sự kiện này.
• on start()
• on pre-start()
• on stop()
• on key ‘key-name'()
• on envvar “Envvar name”()
• on message messagename()
• on timer()
on start()
Khi nhấp vào biểu tượng hình tia sét “Measurement start” trong CANoe (hoặc CANalyzer) để bắt đầu mô phỏng, một phần mã trong hàm start() sẽ được thực thi.

On pre-start()
Hàm pre-start() được thực thi trước sự kiện start() và rất hữu ích cho việc khởi tạo biến, thiết lập độ trễ, và các tác vụ tương tự. setStartDelay là một chức năng độc đáo của pre-start(), có thể được sử dụng để kiểm tra các tham số thời gian.

on stop()
Sự kiện on stop() xảy ra khi nhấn nút dừng (stop) trong cửa sổ CANoe hoặc CANalyzer.

on key ‘key-name'()
Sự kiện on key ‘key-name'() xảy ra khi nhấn phím được chỉ định trong ‘key-name’.


on envvar “Envvar name”()
Trong CANoe, có một đối tượng gọi là biến môi trường (Env-var, Environment variable) tương tác với người dùng. Những biến môi trường này cần được tạo và định nghĩa trong tệp cơ sở dữ liệu (“.dbc” file) được liên kết với mô phỏng. Khi Env-var được liên kết thay đổi, sự kiện này sẽ được gọi.
getvalue và putvalue là các hàm đặc biệt để lấy và xác định giá trị của biến môi trường. Con trỏ “this” biểu thị env_var tại vị trí hiện tại.

on message messagename()
Sự kiện on message messagename() xảy ra khi nhận được CAN message được chỉ định trong messagename. messagename có thể được khai báo bên trong variables { } và sử dụng tại vị trí đó hoặc có thể cung cấp địa chỉ ở dạng thập lục phân.

on timer()
Timer là một biến đặc biệt được kích hoạt bằng cách gọi settimer() và có thể dừng lại bằng cách gọi canceltimer(). Timer có thể thực hiện công việc song song hoặc tuần tự và đóng vai trò quan trọng trong các tác vụ tự động hóa.
Timer phải được khai báo trong phần variables { }. Có hai loại biến cho timer: mstimer và timer. Khi thiết lập mstimer, giá trị được lấy theo đơn vị mili giây, và khi giá trị này hoàn tất, sự kiện on timer sẽ được thực thi. Khi thiết lập timer, sự kiện on timer xảy ra sau số giây được chỉ định trong lệnh gọi settimer.
variables
{
timer t1;
mstimer t2;
int t1delay=1;
int t2delay=1000;
}
on start()
{
settimer(t1,t1delay); // 1 sec
settimer(t2,t2delay); // 1 sec
}
on timer t1
{
write(“One second has elapsed.”);
settimer(t1,t1delay);
}
on timer t2
{
write(“1000 Milliseconds have elapsed.”);
settimer(t2,t2delay);
}
on key ‘a’
{
canceltimer(t1);
canceltimer(t2);
}



