Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

463
Views
¿Cómo crear un puerto CAN virtual en Linux? (C++)

Quiero crear un programa que emule el puerto CAN con fines de prueba para otra gran aplicación. El programa debe enviar los datos registrados previamente a través de este CAN virtual. ¿Alguien tiene alguna experiencia con algo así?

Estoy pensando en establecer COM virtual y enviar a través de él datos empaquetados en CAN Frames. ¿Podría funcionar? ¿Y cómo podría establecer COM virtual en Linux? Encontré este hilo Puerto serie virtual para Linux , pero lamentablemente no entiendo cómo podría implementarse en el código fuente del programa (usuario principiante de Linux y programador en Linux).

Me encantaría leer tu experiencia y sugerencias.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Necesita el controlador SocketCAN , que está disponible en las distribuciones modernas de Linux como Ubuntu, etc. SocketCAN proporciona un controlador de puerto CAN virtual:

 sudo modprobe vcan sudo ip link add dev vcan0 type vcan sudo ip link set up vcan0

Ahora puede enviar y recibir tramas CAN a través del dispositivo vcan0 . El artículo de Wikipedia proporciona un ejemplo de código simple sobre cómo usar SocketCAN.

También necesitará can-utils para fines de prueba.

Encontrará más información sobre SocketCAN y su uso en eLinux.org

over 4 years ago · Santiago Trujillo Report

0

Tutorial

PARTE 1 - Creación de un programa para emular CAN


  • Puede usar el siguiente programa bash para crear un puerto CAN virtual (vcan) en Linux:

    setup_vcan.sh

     #!/bin/bash # Using can1 as an example CAN_PORT="can1" sudo modprobe vcan sudo ip link add dev $CAN_PORT type vcan sudo ip link set up $CAN_PORT
  • Haga que el programa bash sea ejecutable:

     chmod +x setup_vcan.sh
  • Ejecute el programa bash:

     ./setup_vcan.sh

PARTE 2 - Grabación y reproducción de mensajes CAN


  • Grabe los mensajes CAN en un archivo de registro ( $CAN_PORT con el nombre de su puerto CAN):

     candump -L $CAN_PORT > myfile.log
  • Reproduzca los mensajes CAN del archivo de registro:

     canplayer -I myfile.log
  • Puede verificar la reproducción comprobando la salida de candump :

     candump $CAN_PORT

Referencias

  • Respuesta de @yegorich
  • Canplayer no reproducirá archivos candump
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!