CAN/CAPL
CAPL 이벤트 종류
임아톰
2023. 3. 29. 21:57
CAPL (Communication Access Programming Language)이란?
CAPL은 CAN 네트워크를 제어하고 시뮬레이션하는 데 사용되는 스크립트 언어입니다.이를 활용하여 CAN 신호 생성, 버스 노드 시뮬레이션 등을 할 수 있습니다. CAPL은 Event-driven 방식으로 동작하여 주요 이벤트가 발생했을 때 이를 처리하는 방식으로 사용됩니다. CAPL이 제공하는 주요 이벤트는 다음과 같습니다.
CAPL 이벤트 종류
Start of measurement
- 프로그램 시작 시 자동으로 실행되는 이벤트
- 변수 초기화 환경 셋업 등에 많이 사용됨
on start
{
write("Start CANoe\n");
}
Message received
- 대상 메시지가 들어왔을 때
- 아래 예시는 0x123 메시지가 들어왔을 때 실행됨
on message 0x123
{
write("CAN Message 0x123\n");
}
Signal changed
- 대상 시그널이 바뀔 때
- 시그널을 모티터링 혹은 컨트롤 시 사용
- 아래 예시는 sigA 값이 바뀌었을 때 실행됨
on signal sigA
{
write("signal A\n");
}
Time event
- 주기적인 동작을 처리
on timer myTimer
{
write("Timer \n");
}
**CAPL에서 타이머를 사용하면 몇가지 설정을 해야합니다.
먼저, 타이머 변수를 전역변수 공간에 선언합니다.
Variables
{
msTimer myTimer;
}
이후 타이머의 주기를 설정하고 시작하면 됩니다.
on start
{
setTimerCyclic(myTimer, 200); // periodically
}
myTimer는 msTimer로 위와 같이 설정하면 200ms에 한번씩 이벤트가 발생하게 됩니다. on start 이벤트에서 setTimerCyclic()을 하면 초기 프로그램 시 타이머가 설정 및 시작 됩니다. 상황에 따라 타이머를 시작하고 시점에 setTimerCyclic()을 호출하면 됩니다.
Key press
- 특정 키를 눌렀을 때
- 아래 예시는 'a' 키가 눌렸을 때 실행됨
on key 'a'
{
write("a pressed\n");
}
System Variable changed
- 시스템 변수가 변경됐을 때
- 아래 예시는 sysvarB가 변경됐을 때 실행됨
on sysvar sysvarB
{
write("sysvar B changed\n");
}
반응형