회사/CAPL
섹션 5_CANoe - CAPL과 Panel 기본 (섹션 5)
응가1414
2024. 10. 19. 21:18
# Write 함수 소개 ( C언어의 Printf)
write 함수는 C 언어의 printf 함수와 완전히 같은 기능을 하는 함수입니다.
- 화면상에 사용자가 원하는 문장을 출력해주는 함수입니다.
- 이때 문장이 출력되는 위치를 write window라고 부릅니다.
- Write Window는 CANoe 화면에서 볼 수 있는데요.
- 실제 CANoe 화면을 보면 여기 하단에 Write라고 적혀있는 이게 Write Window이고요.
- 그리고 이 Right 창을 사용해서 우리가 문장을 출력하면 바로 이 공간에 문장이 출력이 됩니다.
- 그리고 이 Right Window를 만약에 끄고 싶으면 오른쪽 위 Close X 버튼을 누르면 꺼지고 다시 키고 싶으면 CANoe 상단의 Home 탭의 Write 버튼을 누르면 클릭하면 이렇게 다시 Write Window가 나타납니다.
그래서 다시 설명으로 돌아와서 다음으로 write 함수의 사용 방법인데요.
- write 함수의 경우 C 언어의 printf와 사용 방법이 완전히 동일합니다.
- 그래서 write 함수에 대해서 제가 직접 설명을 할까 하다가 인터넷에도 C 언어의 printf 설명하는 좋은 자료들이 워낙 많기 때문에 굳이 중복해서 설명할 필요는 없다고 생각이 들어서 사용 방법을 제가 설명하지는 않겠습니다.
- printf 함수를 사용할 줄 아시는 분은 printf처럼 write 함수를 사용하시면 되고 혹시 모르시는 분은 인터넷에서 printf 함수에 대해서 찾아보시고 사용하면 될 것 같습니다.
- 대신에 이 write 함수에 대해서 좀 심화된 내용이 있는 데 그거는 제가 별도로 강의로 보충 설명을 하겠습니다.
▢ write 함수 기본적인 사용방법
함수 사용방법
- C 언어의 printf와 완전히 동일함
(자세한 설명은 본 강의에서는 생략)
Example)
capl
코드 복사
write("Hello world"); write("출력하고 싶은 문장 적으세요."); write("첫째줄입니다. \n둘째줄입니다. \n셋째줄입니다.");
- Write Window 출력 예시:
코드 복사Program ... Hello world Program ... 출력하고 싶은 문장 적으세요. Program ... 첫째줄입니다. Program ... 둘째줄입니다. Program ... 셋째줄입니다.
※ write 함수 관련 심화 내용은 다음 강의에 별도로 제작
추가 설명:
- printf처럼 변수를 출력할 때는 %d, %f 등의 서식 문자를 사용하면 됩니다.
- 예를 들어:
-
c코드 복사int data = 12345; write("데이터: %d", data);
- 출력 결과: 데이터: 12345
- printf와 동일한 방식으로 서식 문자와 변수를 사용하여 데이터를 출력할 수 있습니다.
- printf에서 지원되는 기능은 write 함수에서도 동일하게 지원됩니다.
다음으로 Write 윈도우의 페이지 개념에 대해서 소개하겠습니다.
- Write 윈도우를 보면 아래쪽에 이렇게 4개의 탭이 있습니다.
- 이 탭 하나하나를 페이지라고 부릅니다.
- 그래서 이 각각의 페이지에 대해서 소개를 드리면 우선 시스템 페이지는 CANoe 소프트웨어가 출력하는 기본적인 알림들을 담고 있습니다.
- 예를 들면 매개가 시작됐다, 매개가 종료됐다, 메시지 로깅이 시작됐다, 메시지 로깅이 종료됐다, 아니면 어떤 에러가 발생했다는 등의 정보들이 출력됩니다.
- 시스템 페이지는 write 함수와는 무관하며, CANoe 자체에서 시스템 이벤트나 로그를 출력하는 페이지입니다.
- 두 번째로 모델 페이지는 바로 write 함수를 사용하여 출력되는 문장이 나타나는 페이지입니다.
- write 함수로 작성한 모든 출력이 이 페이지에서 확인됩니다.
- 세 번째로 테스트 페이지는 테스트 기능과 관련된 메시지들이 출력됩니다. 주로 테스트 기능이 활성화될 때 여기에 메시지가 나타납니다.
- 네 번째로 오버뷰 페이지는 모든 페이지에 출력되는 문장들이 한눈에 모여서 표시되는 페이지입니다.
- 프로그램 모델 페이지에 나타난 문장뿐만 아니라, 시스템 페이지나 테스트 페이지의 메시지들도 모두 오버뷰 페이지에서 확인할 수 있습니다.
- Fuzz:
- 일시정지 기능입니다.
- 일시정지를 해 놓으면 Write 윈도우 외에 어떤 메시지가 출력이 되더라도 해당 내용이 고정되어 더 이상 업데이트되지 않습니다.
- 일시정지된 상태에서 출력된 메시지들은 삭제되지 않고 나중에 다시 일시정지를 해제하면 그동안 업데이트되지 않았던 내용이 한 번에 업데이트되어 추후에 확인할 수 있습니다.
- Clear Active Page:
- 현재 보고 있는 페이지의 메시지를 삭제하는 기능입니다.
- 시스템 페이지에 있는 메시지를 지우고 싶다면, Clear Active Page 버튼을 누르면 됩니다.
- 프로그램 메시지 등 다른 페이지의 메시지도 해당 페이지에 있을 때 이 버튼으로 삭제할 수 있습니다.
- Clear All:
- Write 윈도우에 출력된 모든 메시지를 한 번에 삭제합니다.
- Export:
- 현재 Write 윈도우에 출력된 메시지를 텍스트 파일로 내보내기 위한 기능입니다.
- Configuration:
- 폰트 크기와 같은 설정을 조정하는 메뉴입니다.
- 예를 들어, Configuration 메뉴에서 **"Change the font"**를 클릭하면 폰트 크기를 변경할 수 있습니다.
- Light Window:
- 텍스트의 사이즈를 조정할 수 있습니다. 사이즈를 키우면 글자도 커지게 됩니다.
writeClear 함수에 대해서 소개하겠습니다.
- writeClear 함수는 WriteWindow에 출력된 문장들을 지우는 함수입니다.
- 이 함수는 뒤에 파라미터가 하나 들어가는 방식으로 사용됩니다.
파라미터의 의미:
- 0을 입력하면 시스템 페이지에 출력된 문장을 지웁니다.
- 1을 입력하면 프로그램 페이지에 출력된 문장을 지웁니다.
- -1을 입력하면 모든 페이지에 출력된 모든 내용이 삭제됩니다.
- 단순히 헷갈리지 않도록:
- writeClear(1)은 프로그램 페이지의 출력만 지우고,
- 오버뷰 페이지에 있는 출력은 그대로 남아있게 됩니다.
예시:
- 만약 writeClear(-1)을 실행하면 모든 페이지의 내용이 지워지고, 시스템 페이지를 눌러보면 모든 메시지가 사라진 상태가 됩니다.
- 프로그램 페이지를 눌러보면 두 개의 문장은 지워지지만, 오버뷰 페이지에 남아있는 내용은 여전히 볼 수 있습니다.