반응형
Dbc에 정의된 모든 메세지에 접근하는건 모르겠고.
특정 노드의 tx, rx 메세지들을 for loop 순회로 접근하는건 가능하다.
예를 들어 프로젝트에 import 된 dbc 파일속에
네트워크이름이 Net_A이고
Node_A 가 정의된 경우 아래와 같이 가능.
이때 네트워크 이름 생략하고 노드이름만 바로 써도 된다.
즉 Net_A::Node_A 가 아니라
그냥 Node_A 라고 써도 됨.
message * m;
int i, mx;
mx=elcount(Net_A::Node_A.Tx);
for (i = 0; i < mx; ++i)
{
m.id=Net_A::Node_A.TX[i];
write(DBLookup(m).Name);
}
한편, Node_A.tx[] 의 결과값은 메세지의 id 이다.
dblookup 함수를 위 예시와 같이 사용해서
dbc에 정의된 메세지들의 attribute에 접근할 수 있다.
반응형
'자동차 임베디드 SW > CAN통신 & LIN통신' 카테고리의 다른 글
차량통신 NM의 개념(Network Management) (3) | 2023.12.04 |
---|---|
uds진단통신 0x27 security access 서비스 개념 (1) | 2023.11.01 |
J1979 개요 및 obd on uds (0) | 2023.08.28 |
진단통신 Snapshot Data, Extended Data (0) | 2023.08.02 |
capl (0) | 2023.02.27 |