Recientemente compré un convertidor TrendNet TU-S9 USB a RS232. Necesito hablar con microcontroladores que usan RS232 a 9600 baudios. El código que tengo para una caja de Linux funciona bien. Instalé los controladores de acuerdo con las instrucciones en mi computadora portátil y un Mac Mini que ejecuta OS X 10.6.7. Cambié el dispositivo a /dev/cu.usbserial.TrendNet TU-S9 RS232/USB y OS X
Esto es lo que sucede. Seguro que parece que la comunicación funcionará la primera vez que lo intente. Pero si salgo del proceso ya no puedo escribir en el dispositivo en serie. Si desconecto la conexión USB y vuelvo a enchufarla, puedo ir una vez más. Es decir. parece que enchufar el conector USB es lo que se necesita para restablecer las funciones a un estado utilizable.
Cuando recibo el error la segunda vez que intento iniciar el proceso, puedo abrir el dispositivo, pero el error ocurre la primera vez que intento enviar un byte a través de la interfaz serie. El error de perror es "Serial: No such such file or directory".
Puedo solucionar este problema escribiendo un segundo programa que simplemente abre el dispositivo cu.usbserial y luego se repite para siempre. Sin embargo, esta no parece ser la mejor manera de solucionarlo.
¿Alguien ha visto este comportamiento? ¿Alguien puede replicarlo? ¿Alguien sabe cómo arreglarlo?
Nota: esto podría estar relacionado con una publicación anterior Programmatically talking to a Serial Port in OS X or Linux, o podría no ser así.
Eric
¿Ve el mismo error al reabrir si utiliza un programa de terminal conocido para abrir el dispositivo, salir y luego abrirlo de nuevo? Si es así, quizás haya un error en su controlador de kernel. ¿Los usuarios finales son recompilables en OSX? Si no es así, es posible que deba abordarlo con el proveedor o probar una marca diferente, o vaya con su idea de un proceso proxy (aunque puede usar seleccionar() en lugar de un bucle) –