Как соединить два порта VCAN в Linux?
Я настроил два устройства VCAN и хочу относиться к ним так, как если бы они были соединены вместе. Я хочу использовать can-utils candump для прослушивания одной строки и отправки сообщений can из другой. Как я могу сделать это без физического устройства?
Для пояснения я пишу программное обеспечение для связи через CAN, на которое я уже способен, но для облегчения фактического сбора данных и дальнейшей разработки мне нужны два устройства с возможностью подключения для связи друг с другом. В то время как простое решение в реальном мире, решаемое физическим соединением устройств вместе, мне нужно программное решение, которое будет работать на компьютере.
2 ответа
Добавьте модуль ядра can gateway:
sudo modprobe can-gw
Затем создайте правила шлюза через cangw, который поставляется с can-utils, для соответствующих интерфейсов.
Например, для маршрутизации сообщений от vcan0 к vcan1:
sudo cangw -A -s vcan0 -d vcan1 -e
и наоборот:
sudo cangw -A -s vcan1 -d vcan0 -e
Теперь вы сможете видеть все сообщения, отправленные на vcan0, также на vcan1 и наоборот.
Я хотел добавить, что вы также можете подключить интерфейс виртуальной банки к реальному.
Например, если у вас есть смоделированная система, использующая виртуальные банки, и вы хотите подключить реальное оборудование CAN, вы можете подключить их с
sudo cangw -A -s vcan0 -d can0 -e
иsudo cangw -A -s can0 -d vcan0 -e