我想创建一个程序来模拟 CAN 端口,以便为另一个大型应用程序进行测试。程序应通过此虚拟 CAN 发送先前记录的数据。有没有人有这方面的经验?
我正在考虑建立虚拟 COM,并通过它发送包装在 CAN 帧中的数据。它可以工作吗?我如何在 linux 上建立虚拟 COM?找到这个帖子 Virtual Serial Port for Linux 但遗憾的是我不明白如何将它实现到程序的源代码中(初级linux用户和linux下的程序员)。
很想阅读您的经验和建议。
最佳答案
您需要 SocketCAN驱动程序,可在现代 Linux 发行版(如 Ubuntu 等)上使用。SocketCAN 提供了一个虚拟 CAN 端口驱动程序:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
现在您可以通过 vcan0
设备发送和接收 CAN 帧。维基百科文章提供了关于如何使用 SocketCAN 的简单代码示例。
您还需要 can-utils用于测试目的。
您可以在 eLinux.org 上找到有关 SocketCAN 及其用法的更多信息。
关于c++ - 如何在 linux 上创建虚拟 CAN 端口? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21022749/