(01-05-2021, 21:32)tincho escribió: estoy seguro que existe una forma fiable y veloz de comunicarse mediante usb en linux solo hay que ver algún ejemplo.
Temiendo cometer un error por desconocimiento del tema USB_CDC, probé mi aplicación en vb6 para controlar un dispositivo electrónico de mi propio diseño y conectado a la PC por un cable USB, bajo las siguientes consideraciones:
Nota: Todo lo que sigue lo hago en Win2, pero la finalidad es migrarlo a Ubuntu (y otras distros)
1.- La PC creará un puerto Serial Virtual (digamos COM7) el cual configuro a 57600 bps.
2.- El dispositivo electrónico, tiene configurados 2 periféricos por hardware/software. Uno para USB_CDC (para el cable USB) y otro RS-232 a 9600 bps.
3.- De vuelta en el PC abro hyperterminal en COM1 (ojo: no COM7), por donde recibiré los datos del dispositivo electrónico a 9600 bps. Esto es con el fin de monitorear lo que está sucediendo.
En la Aplicación VB6 de la PC envío una serie de datos por USB (haciendo uso de COM7 a 57600 bps) al dispositivo electrónico. Éste último, recibe los datos y los manda luego por RS-232 de regreso a la PC quien los recibe por COM1 en hyperterminal a 9600 bps.
Conclusión:
Cada hardware/software funciona independiente, tanto en la PC como en el dispositivo electrónico, mientras se cumpla la premisa de hacer las transmisiones y recepciones en tiempos diferentes, es decir no de manera simultánea. Así que USB cumple su función de enviar a la velocidad que le permite su estándar:
USB 1.0 ------ 1.5 Mbps
USB 1.1 ------ 12 Mbps
USB 2.0 ------ 480 Mbps
USB 3.0 ------ 4.8 Gbps
De todos modos, si se quisiera enviar datos en "tiempo real" usando USB_CDC, no sería posible con ésta tecnología, pues al crearse puertos virtuales COMX éstos, debido a su "lentitud" con respecto a USB, serían el cuello de botella.
Bien, pues ahora sabiendo ésto, procedo a mi aplicación con Gambas para correr en Linux.
Saludos.