Итак, у меня есть Raspberry Pi, считывающий данные CAN с автомобиля. Если я использую candump
программу, включенную в canutils
, я получаю кучу данных, пример выглядит так:
can0 1C4 [8] 03 F3 26 08 00 00 7F 70
Затем я написал простое приложение на C ++, чтобы открыть сокет для шины can0
и прочитать некоторые данные в буфер символов. Если я перебираю каждый символ буфера после чтения и конвертирую каждый char в int в шестнадцатеричном формате (и помещаю канал между каждым символом), я получаю следующее:
c4|1|0|0|8|0|0|0|3|f3|26|8|0|0|7f|70|
У меня вопрос: почему байт идентификатора меняет местами, когда я читаю данные с помощью сокета и буфера символов? Такое поведение согласуется со всеми идентификаторами CAN. Код длины данных и данные имеют правильный формат / порядок, но идентификатор указан в обратном порядке.
Спасибо Адам