У меня есть Raspberry Pi, считывающий данные CAN с автомобиля. Если я использую программу candump, входящую в состав can-utils, я получаю кучу данных. Пример выглядит так:
Затем я написал простое приложение на C++, открывающее сокет шины can0 и считывающее некоторые данные в символьный буфер. Если я перебираю каждый символ буфера после чтения и преобразую каждый символ в целое число в шестнадцатеричном формате (и помещаю канал между каждым символом), я получаю следующее:
Почему байт идентификатора переворачивается, когда я читаю данные с помощью сокета и буфера символов? Такое поведение совместимо со всеми CAN ID. Код длины данных и данные указаны в правильном формате/порядке, но идентификатор наоборот.
Подробнее здесь:
https://stackoverflow.com/questions/464 ... m-a-socket