Как создать виртуальный порт CAN в Linux? (С++)
Я хочу создать программу, которая будет эмулировать порт CAN для тестирования для другого большого приложения. Программа должна отправлять ранее записанные данные через эту виртуальную CAN. У кого-нибудь есть опыт с такой вещью?
Я собираюсь установить виртуальный COM и отправить через него данные, упакованные в CAN-фреймы. Может ли это сработать? И как я могу установить виртуальный 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 через устройство vcan0
. Статья в Википедии содержит простой пример кода о том, как использовать SocketCAN.
Вам также понадобится can-utils для тестирования.
Вы найдете более подробную информацию о SocketCAN и его использовании на eLinux.org