Как соединить два порта 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

Другие вопросы по тегам