Como criar uma porta CAN virtual no Linux?(C++)
Pergunta
Quero criar um programa que emule a porta CAN para fins de teste para outro grande aplicativo.O programa deverá enviar os dados previamente gravados através deste CAN virtual.Alguém tem alguma experiência com tal coisa?
Estou pensando em estabelecer COM virtual e enviar através dele dados compactados em CAN Frames.Poderia funcionar?E como eu poderia estabelecer COM virtual no Linux?Encontrei este tópico Porta serial virtual para Linuxmas infelizmente não entendo como isso poderia ser implementado no código-fonte do programa (usuário iniciante do Linux e programador no Linux).
Adoraria ler sua experiência e sugestões.
Solução
Você precisa SoqueteCAN driver, que está disponível em distribuições Linux modernas como Ubuntu etc.SocketCAN fornece um driver de porta CAN virtual:
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
Agora você pode enviar e receber quadros CAN vcan0
dispositivo.O artigo da Wikipedia fornece um exemplo de código simples sobre como usar o SocketCAN.
Você também precisará can-utils para fins de teste.
Você encontrará mais informações sobre o SocketCAN e seu uso em eLinux.org