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