일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Android
- 완속충전기
- OCPP
- 전기차충전
- 서버리스
- homeassistant
- 에버온
- STM32
- 플라스크
- lambda
- 충전기
- YMODEM
- AWS
- flask
- dynamodb
- everon
- 파이썬
- 펌웨어
- 안드로이드
- IOT Core
- 디자인패턴
- 홈어시스턴트
- thread
- 보안
- raspberry
- 전기차
- 급속충전기
- esp8266
- 라즈베리파이
- 전기차충전기
- Today
- Total
Louie NRT Story
[CAN Analyzer] CAPL(Communication Access Programming Language) 사용법 본문
[CAN Analyzer] CAPL(Communication Access Programming Language) 사용법
hyeok0724.kim@gmail.com 2023. 3. 23. 18:53작성일: 23년 3월 23일
Contents
1. CAPL 프로그래밍 작성
2. Program Node 추가하기
3. 실행결과
1. CAPL 프로그래밍 작성
- 메뉴의 "Tools" 선택하여 "CAPL Browser" 버튼을 클릭함
- CAN 데이터 전송을 위한 예제코드
- 작성후 저장함
includes
{
}
//사용할 변수 선언하는 공간
variables {
//변수 선언
int cntTest_CH01 = 0;
//보내는 데이터 변수 생성
//앞에 0x101은 필자가 랜덤으로 적은 숫자임(안쓰면 컴파일 안됨, 용도는 잘 모르겠음)
message 0x101 msgData;
//타이머 생성함
msTimer testTimer;
}
//타이머 동작에 따른 코드 작성
on timer testTimer
{
//printf 역할을 함
write("cntTest_CH01 %d", cntTest_CH01);
//데이터 전송할 CAN 채널 설정함
msgData.can = 1;
//데이터의 개수
msgData.dlc = 8;
//보낼 CAN 데이터의 ID 설정
msgData.id = 0x151;
//보낼 데이터
msgData.byte(0) = cntTest_CH01;
//데이터 전송함
output(msgData);
//타이머 다시 시작
setTimer(testTimer, 1000);
}
on start
{
write("start:");
//타이머 다시 시작
setTimer(testTimer, 1000);
}
//키보드 'a' 눌렀을때 이벤트
on key 'a'
{
write("press a button:");
}
//키보드 's' 눌렀을때 이벤트
on key 's'
{
write("press s button:");
}
- CAPL에서 지원하는 이벤트들을 알 수 있음
2. Program Node 추가하기
- "Analysis & Stimulation" 탭에서 "Measurement Setup" 버튼을 클릭함
- 화살표 네모박스 위에서 우클릭하여 "Insert Program Node" 클릭
- "P" 네모박스가 생성되면 우클릭하여 "Edit"을 클릭함
- 위에서 생성한 코드 파일을 선택함
- CAPL Browser가 뜨면 상단의 "Compile" 버튼을 클릭함
- 다시 돌아와서 상단의 "Start" 버튼을 누르면 실행되는 것을 알 수 있음
3. 실행결과
- Trace를 통하여 데이터가 출력되는 것을 알 수 있음
- Write 패널에서 cntTest_CH01 변수의 값이 증가하는 것을 알 수 있음
- 키보드 이벤트에 의해 "a" 또는 "s"의 버튼이 눌렸다는 것을 알 수 있음
Referece:
CAPL 사용 방법 및 예제
원본 링크(저자 본인): https://blog.naver.com/jsh_pa_/221310828796 Canoe 9.0.86 CAPL을 실행하는 방법은 두가지가 있다. 하나는 리본 메뉴에 CAPL Browser를 통해 CAPL을 생성하고 추후에 노드에 적용하는 방법 두번
suho413.tistory.com
https://cheonee.tistory.com/entry/CAPL-CAN-Channel-%EC%84%A4%EC%A0%95
CAPL CAN Channel 설정
CAPL Test Environments for Test Moudles 통해서 작성 시 CANoe 상에 CAN1, 2, 3 등 여러가지가 있는데 CAPL 코드에서 메시지를 원하는 CAN에 날려줘야 함 EX) your_mesage_name.CAN = 1;your_mesage_name.CAN = 2; 설정 뒤 output(you
cheonee.tistory.com
https://stackoverflow.com/questions/45369254/send-message-inject-a-message-with-capl
Send Message/ Inject a message with CAPL
I am new in CANoe, and also CAPL language. But I want to ask you: How can I send a message with CAPL on the network of ECU's. For example: I want to send an Hex number( it is a question for an ECU)...
stackoverflow.com
'전기차충전기' 카테고리의 다른 글
[NACS] 테슬라 충전기 (0) | 2023.07.16 |
---|---|
[CAN Analyzer] Logging 사용 방법 (1) | 2023.03.24 |
[TI-CCS] 초기 설치 방법 (0) | 2023.02.28 |
[파이썬 강의] REST APIs with Flask - Many Relationship SQL - Todo (0) | 2023.02.12 |
[파이썬 강의] REST APIs with Flask - SQL database (0) | 2023.02.10 |