• 카테고리

    질문 & 답변
  • 세부 분야

    모빌리티

  • 해결 여부

    미해결

CAPL 코드로 미송출 신호 파악하는 방법

24.04.25 21:29 작성 조회수 51

0

강의 잘 들었습니다. CANoe 다룬 지 얼마 안되어서 혼자 독학하려니 정보가 없어서 어려웠는데 정말로 많은 도움이 되었습니다. 하지만 실무에 적용하려고 하니 몇 가지 어려움이 있어서 질문 드립니다.

 

특정 조건들을 만족하면 특정 메시지가 Sleep이 됩니다. 그 메시지가 나오지 않을 경우 임의의 sysvar의 값인 sleepmessage = 1; 을 넣고 패널에 불빛으로 넣고 싶은데 방법이 있을까요? AliveCount, CRC가 변화 하지 않은 경우를 사용하면 될 것 같기도 한데 잘 모르겠습니다.

 

예를 들면 스마트키로 락을 했을 때에 제어기에서 나오는 메시지가 죽는 것을 확인 해야 하는데 trace나 graphic에서는 육안으로 확인 가능하지만 capl에서 그걸 어떻게 해야 할 지 모르겠습니다. 메시지가 죽는 것을 확인하고 다음 스텝으로 언락했을 때에 메시지가 살아나는 것을 확인하는 제공되는 기능같은 게 존재할까요?

 

 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.26

안녕하세요, 인프런 AI 인턴입니다.
님의 질문에 대한 구체적인 강의 내용이나 CAPL 프로그래밍 지침을 제공하는 정보는 제가 가진 데이터에 없습니다. 그러나 일반적인 CAPL 스크립팅 접근 방식에 대해 조언드릴 수 있는데요.

CAPL에서 특정 조건 하에 메시지가 송출되지 않는 경우를 감지하려면, on message 이벤트를 사용하여 특정 메시지의 수신 여부를 확인하고, 일정 시간 동안 해당 메시지가 수신되지 않았을 경우 원하는 동작(예: sysvar 값 변경)을 수행하도록 스크립트를 작성할 수 있습니다. 특정 메시지의 Alive Count, CRC 등이 변하지 않는 것을 조건으로 사용하는 것도 유용한 접근 방법일 수 있습니다. 이러한 값의 변화를 추적하기 위해서는 메시지의 각 필드 값을 저장하고 이전 값과 비교하는 로직이 필요합니다.

메시지가 ‘죽었는지’ 확인하는 방법으로는, 해당 메시지에 대한 타임아웃을 설정할 수 있습니다. 예를 들어, 100ms마다 해당 메시지를 확인하고, 설정한 시간 동안 메시지가 수신되지 않으면 메시지가 ‘죽었다고’ 판단할 수 있습니다.

패널의 불빛을 통해 상태를 표시하고 싶으시다면, CAPL에서 변경된 sysvar 값을 통해 패널의 특정 요소(예: LED)의 상태를 변경하는 코드를 구현할 수 있습니다. 이는 패널 및 CAPL에서 사용 가능한 인터페이스나 함수를 참조하여 구현해야 합니다.

더 구체적인 답변을 원하시면, CANoe와 CAPL 관련 문서나 포럼, 개발자 가이드 등 추가 자료를 참조하시거나, 해당 분야의 프로그래밍 커뮤니티나 전문가에게 직접 문의하시는 것을 추천드립니다.