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