Saltar al contenido

¿Cómo utilizar libusb de la forma más adecuada para hablar con los dispositivos USB conectados?

Solución:

He encontrado aquí un cómo textual sobre el uso de libusb-1.0: http://www.dreamincode.net/forums/topic/148707-introduction-to-using-libusb-10/

Aquí hay una publicación sobre una pregunta similar que podría serle útil. Incluyo muchos enlaces.

Pero quizás prefieras verlo aquí. Entonces, en ese caso, ¡aquí va!

Libusb le permite enumerar dispositivos y seleccionar el que desee en función de un Id. De proveedor / producto específico (V / P Id). Si no lo sabe y no puede encontrarlo en línea con la descripción del producto, puede encontrarlo fácilmente.

Si no está en línea, necesitará usar una aplicación similar a lsusb en Linux. (No creo que esté en Mac.) Cuando ejecuta lsusb, enumera los dispositivos conectados y sus ID de V / P. Puede encontrar fácilmente su dispositivo desconectando, ejecutando lsusb y volviendo a conectar el dispositivo y comparando. Es un trozo de tarta. Es de esperar que cualquier aplicación de lista USB en Mac muestre el ID de V / P como lo hace lsusb.

Luego, una vez que tenga esta ID de V / P, usará libusb (si usa 0.1) para enumerar todos los dispositivos y encontrar el dispositivo que coincida con esa identificación. (Apoyo el uso de libusbx, que tiene una función de dispositivo de búsqueda única basada en la identificación de V / P; de hecho, libusbx es mucho más conciso).

Después de seleccionar su dispositivo, enviará un paquete usando Reportes de funciones o de Salida. Esta es la parte más complicada porque creo que el paquete que envía depende del dispositivo individual. Son 8 bytes de datos y solo uno de los cuales es un solo carácter que desea enviar al dispositivo USB. (Si quisiera enviar 8 caracteres, tendría que recorrer una serie de caracteres y enviar una función o informe de salida para cada carácter).

Como ejemplo, siéntase libre de hacer referencia a un ejemplo de terminal bastante específico que escribí para controlar dos LED. Si es útil, ¡genial! Contiene un ejemplo de libusbx y libusb-0.1.

¡Espero que esto ayude!

El proceso que puedes seguir es:

  1. Obtenga el VID, PID para el dispositivo con el que desea comunicarse usando lsusb
  2. Intente abrir el dispositivo y leer el descriptor del dispositivo
  3. Si desea el nombre del dispositivo, use el descriptor de cadena para obtenerlo
  4. Compruebe si hay algún controlador de kernel adjunto. Si es así, desconéctelo y realice una transferencia de datos sin procesar
  5. Después de recibir la respuesta nuevamente, vuelva a conectar el controlador.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *