J1939 RTR Issue

У меня есть и проблема с RTR кадров, используя Candump и Cansend.

Сброс передаваемых данных не проблема.

Архитектура - Raspberry pi со щитом Pican для чтения данных с симулятора J1939.

Я запускаю Candump, чтобы получать все сообщения в автобусе. Затем я получаю ответный кадр от симулятора, когда я выполняю команду cansend для pgn feec. Я запрашиваю предварительно запрограммированный VIN, но ничего не получаю. Вот что я вижу из Candump:

can0  18FEF500   [8]  7D FF FF 40 25 4B FF FF   '}..@%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

По сути, я не получаю PGN для VIN. Есть идеи?

1 ответ

Решение

Оказывается, здесь есть пара вопросов.

1- #r не поддерживается с J1939

2 - вы не запрашиваете pgns, запрашивая этот pgn напрямую. метод заключается в отправке данных в определенный pgn, который обрабатывает запросы. пример ниже:

EA 00 - это PGN для отправки данных. Внутри сообщения данных находится pgn, который мы хотим запросить (LSB), поэтому PGN FEE5 теперь E5FE. Требуется три байта, поэтому 00 в сообщении ниже.

Вот рабочий запрос на часы работы двигателя:

cansend 18EA00FF#E5FE00

и ответ:

21 00 00 00 8F 01 00 00
Другие вопросы по тегам