2016-09-23 97 views
0

我有和使用candump和cansend的rtr帧的问题。J1939 RTR Issue

转储广播数据不成问题。

建筑 - 覆盆子pi与皮肯盾从J1939模拟器读取数据。

我运行candump接收公交车上的所有信息。然后当我为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是一个标准ack消息。

和消息,我同时candump运行发送:

cansend can0 00feec00#r 

基本上,我没有得到PGN的VIN回来。有任何想法吗?

回答

2

原来这里有几个问题。

1 r组成不与J1939

2 - 你不问为PGN直接请求的PGN支持。该方法是将数据发送到处理请求的特定pgn。示例如下:

EA 00是发送数据到的PGN。在数据信息里面生活着我们想要请求的pgn(LSB),所以PGN FEE5现在是E5FE。需要三个字节,这就是为什么00在下面的消息中。

这里是发动机小时工作要求:

cansend 18EA00FF#E5FE00 

和的回复:

21 00 00 00 8F 01 00 00