小编use*_*227的帖子

为什么从 Socket 读取时 CAN BUS 帧 ID 是反向的?

我有一个 Raspberry Pi 从车辆读取 CAN 数据。如果我使用candump其中包含的程序,canutils我会得到一堆数据,示例如下:

can0 1C4 [8]  03 F3 26 08 00 00 7F 70
Run Code Online (Sandbox Code Playgroud)

然后,我编写了一个简单的 C++ 应用程序来打开总线的套接字can0并将一些数据读入字符缓冲区。如果我在读取后循环遍历缓冲区的每个字符并将每个字符转换为十六进制格式的 int (并在每个字符之间放置一个管道),我会得到以下结果:

c4|1|0|0|8|0|0|0|3|f3|26|8|0|0|7f|70|
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么当我使用套接字和字符缓冲区读取数据时,ID 字节会反转?此行为与所有 CAN ID 一致。数据长度代码和数据的格式/顺序正确,但 ID 向后。

谢谢,亚当

c++ sockets can-bus

4
推荐指数
1
解决办法
5445
查看次数

标签 统计

c++ ×1

can-bus ×1

sockets ×1