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");
}
반응형