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

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

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

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

1 ответов


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

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

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

вам понадобится can-utils для целей тестирования.

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