• 카테고리

    질문 & 답변
  • 세부 분야

    모빌리티

  • 해결 여부

    해결됨

CAN DBC - DBC 만들어보기 실습에 질문이 있습니다.

22.12.19 20:20 작성 22.12.19 20:23 수정 조회수 1.87k

3

  CAN DBC - DBC 만들어보기 실습에서 약 3분 11초에 CANdb++ Editor에 있는 Basic Template을 사용하라고 하셨으나 저는 Basic Template가 없습니다.

어떤걸 선택해야하나요?

여기서 위의 파일을 받았는데 강사분이 언급하신 CANdb++ 3.1 SP1과 버젼차이가 있는 것 같네요.

강사님의 버젼은 3.1.18, 제가 다운로드한 파일은 3.1.21입니다.

 

답변 1

답변을 작성해보세요.

0

안녕하세요. 벡터 홈페이지에서 저도 SP2를 새로 받아보니 말씀하신 것처럼 Basic Template이 없어졌네요. 일단 실습을 위해서 아주 간략한 버전으로 답을 먼저 드리면
GenSendMessageTemplate.dbc <- 이걸 사용하시면 됩니다.


그리고 좀 부연설명을 드리자면 위에 Template 중에 뭘 골라도 상관 없습니다.
사실 Template 이라는거 자체가
여러 종류의 example 들을 모아 놓은거거든요.

본인의 쓰임새에 맞게 적절한 template을 골라서 dbc를 만들면 되는 것이지 무조건 어떤 Template을 골라야 된다. 그런 개념이 아닙니다.

좀 더 구체적으로 말씀 드리면
dbc에는 attribute 라는 것이 있습니다. attribute 라는건 말하자면 속성 같은 겁니다.
이해하기 쉬운 attribute의 예를 들자면..
메세지의 전송주기, 버스 타입(CAN인지 CAN FD인지 등) , BaudRate, Sampling Point
등등 아주 다양한 여러가지 속성들이 있을 수 있습니다.

이런 attribute는 엄청 다양하게 있고 dbc에 꼭 들어가야하는 attribute,
없어도 되는 attribute 이런 것이 따로 정해져 있는것도 아닙니다.

dbc를 제작하는 사람, 그리고 주고받는 사람 끼리 dbc에 해당 내용을 담고 싶으면 그 attribute를 추가해서 사용하는 것이고. 필요 없으면 안 넣을수도 있는 그런 개념입니다.

 

CanDb++ 에서 상단에 View -> Attribute Definitions 라는 메뉴가 있는데 눌러보면
해당 dbc에 정의된 attribute 목록이 나옵니다. (아래 그림 참고)

image

처음에 Cretae Database를 할 때, 수 많은 template이 있는데 각 template의 차이점이 뭐냐면

미리 정의 해 놓은 Attribute의 종류가 다른 것 뿐입니다.

그러면 Attribute 목록은 처음에 template 만들때만 만들어지는 것이냐? 아닙니다.

얼마든지 유저가 attribute 추가,수정,삭제가 가능합니다.

 

근데 이런 attribute들을 유저가 일일이 다 정의하려면 귀찮으니까..
연관이 있는 attribute들을 나름의 .. 컨셉(?)에 따라서 모아놓은게 dbc template입니다.

 

아무튼 그러면 이 attribute를 어디에 쓰느냐 하면은..

canoe에서 특정한 시뮬레이션 기능을 사용할 때, 특정 attribute 값을 인식해서 어떤 셋팅이 자동으로 되는? 그런식으로 사용할 수도 있고

can dbc파일은 canoe 외에도 여러가지 툴에서 import 해서 쓸 수 있는데
예를 들어 autosar tool 에서 dbc를 import 할 때, 메세지의 전송주기를 attribute에 작성해놓으면
그 attribute 값을 툴이 인식해서 코드를 자동으로 생성해서 메세지가 주기적으로 전송되도록 코드가 만들어집니다. 이것은 예시이고.. 그 외에도 OEM 마다 고유하게 사용하는 attribute들이 있고..

NM( Network Management)를 사용할 때만 쓰는 attribute들이 있고.. 막 그렇습니다.

솔직히 말하면 저도 제가 쓰는 툴, 제가 작업하는 환경에서 사용하는 attribute만 알고
모든 attribute에 대해 세세하게 다 알지는 못합니다.

또한 Dbc를 제가 직접 만드는 경우가 거의 없고 대부분 OEM 에서 만든 dbc를 받아서 거기에 메세지를 추가,삭제,수정 하는 식으로 사용하는 경우가 많기 때문에 attribute의 값을 수정하는 경우는 있지만 attribute 자체를 제가 직접 추가하거나 하는 경우가 없습니다.

아무튼 template이라는건 서로 다른 attribute들을 모아놓은 것 뿐이고.
유저가 일일이 attribute 추가하기 귀찮으니까 예시로 만들어놨을 뿐입니다.
empty template을 만든 후에 유저가 직접 필요한 attribute 추가해서 사용해도 되는 그런 개념입니다.

상세한 답변 감사합니다 강사님. 강의 열심히 듣겠습니다!

행복한 연말 되시길 바랍니다.