2016-09-23 15 views
0

저는 candump와 cansend를 사용하여 rtr 프레임을 가지고 있으며 문제가 있습니다.J1939 RTR 호

브로드 캐스트 된 데이터를 덤프하는 것은 문제가되지 않습니다.

아키텍처 - J1939 시뮬레이터에서 데이터를 읽는 삐칸 방패가있는 라즈베리 파이.

나는 버스에서 모든 메시지를 수신하기 위해 덤프를 실행합니다. 그런 다음 pgn feec에 대해 cansend를 실행할 때 시뮬레이터에서 ack 프레임을 반환하십시오. 임이 미리 프로그래밍 된 VIN을 요청했지만 나는 아무것도 얻지 못했습니다. 다음은 캔프에서 보는 것입니다.

can0 18FEF500 [8] 7D FF FF 40 25 4B FF FF '}[email protected]%K..' 
can0 18FEE900 [8] D1 4B 03 00 D1 4B 03 00 '.K...K..' 
can0 18FEF700 [8] FF FF FF FF E0 01 FF FF '........' 
can0 18FECA00 [8] 03 FF 00 00 00 00 00 00 '........' 
can0 00FEEC00 [0] remote request 
can0 18E80000 [8] 01 FF FF FF FF EC FE 00 '........' 
can0 0CF00300 [8] FF 7D 7D FF FF FF FF FF '.}}.....' 
can0 18FE6C00 [8] FF FF FF FF FF FF 80 7D '.......}' 
can0 0CF00400 [8] FF FF 7D 80 7D FF FF FF '..}.}...'' 

E800 PGN은 표준 확인 메시지입니다.

그리고 메시지 candump이 실행되는 동안 내가 보내고 :

cansend can0 00feec00#r 

는 기본적으로, 나는 다시 VIN의 펩티도 글리 칸을받지 못했습니다. 어떤 아이디어?

답변

2

몇 가지 문제가 있습니다.

1 #R는 J1939

2 - 당신이 직접 그 펩티도 글리 칸을 요청에 의해 pgns을 요청하지 않는 지원되지 않습니다. 메소드는 요청을 처리하는 특정 pgn으로 데이터를 보내는 것입니다. 예 :

EA 00은 데이터를 보낼 PGN입니다. 데이터 메시지 안에는 요청하고자하는 pgn (LSB)이 있으므로 PGN FEE5는 이제 E5FE가됩니다. 3 바이트가 필요하므로 00이 아래 메시지에 있습니다.

cansend 18EA00FF#E5FE00 

및 리스폰스 :

21 00 00 00 8F 01 00 00 
다음

는 작업 엔진 시간에 대한 요청입니다