Как создать виртуальный CAN-порт на Linux? (C ++)

Я хочу создать программу, которая будет эмулировать порт CAN для тестирования другого крупного приложения. Программа должна отправлять ранее записанные данные через этот виртуальный CAN. У кого-нибудь есть опыт работы с такими вещами?

Я думаю установить виртуальный COM и отправить через него данные, упакованные в CAN Frames. Может ли это работать? И как я могу установить виртуальный COM на Linux? Нашел эту ветку Виртуальный последовательный порт для Linux
но, к сожалению, я не понимаю, как это может быть реализовано в исходном коде программы (начинающий пользователь Linux и программист в Linux).

Хотелось бы прочитать ваш опыт и предложения.

12

Решение

Тебе нужно SocketCAN драйвер, доступный в современных дистрибутивах Linux, таких как Ubuntu и т. д. SocketCAN предоставляет драйвер виртуального порта CAN:

sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0

Теперь вы можете отправлять и получать CAN кадры vcan0 устройство. Статья Википедии предоставляет простой пример кода о том, как использовать SocketCAN.

Вам также понадобится Кэн-Utils в целях тестирования.

Вы найдете больше информации о SocketCAN и его использовании на eLinux.org

33

Другие решения

Других решений пока нет …