Agarrando datos de cables USB separados / transmisiones seriales separadas

1

Tengo dos circuitos de medición conectados a dos Arduinos separados.

Necesito capturar y grabar datos de los dos simultáneamente, así que, ¿cómo puedo monitorear y grabar datos de dos transmisiones en serie desde cables USB separados?

No tengo un sistema UNIX, pero he estado usando Cygwin hasta ahora. Actualmente estoy instalando Ubuntu en VMVirtualBox. ¿Puedo simplemente abrir múltiples shells en Ubuntu y registrar los datos de esa manera dado que conozco mis puertos COM?

    
pregunta l3win

2 respuestas

1

Debería funcionar, pero no es necesario instalar Linux solo para este propósito ...

Podrías hacer lo que hice: abrí las ventanas masilla y configuré para registrar el resultado en el archivo. Hice la salida en serie del código Arduino para que se pudiera pegar (¿es eso una palabra?) En Excel para poder mostrar fácilmente el resultado como un gráfico.

Funcionó a la perfección.

    
respondido por el ppeterka
0

Al usar las API seriales de estilo Unix en cualquiera de Linux de Cygwin, deberías poder leer desde dos puertos seriales en el mismo programa.

Una forma en que podría hacer esto sería configurar los dos puertos en modo no bloqueante, de modo que la llamada read () devuelva 0 si no hay datos disponibles, lo que le permitiría encuestar a los dos en un bucle: aunque eso puede desperdiciar innecesariamente la CPU.

Otro método es usar select () con una lista de ambos descriptores de archivos, para bloquear hasta que cualquiera de los dos tenga datos; luego, tome los datos de ese, y llame a select () nuevamente para esperar hasta que haya algo disponible de nuevo .

Pero tenga en cuenta que los mensajes pueden provenir o no de los dos en partes completas que pueden intercalarse de manera trivial, por lo que es posible que necesite un poco de búfer y lógica de software por puerto para conservar los bytes recibidos desde varios select () / read ( ) ciclos hasta que obtenga una línea completa o un registro que tenga sentido imprimir, lo cual se intercalará bien con los fragmentos completos de la otra.

    
respondido por el Chris Stratton

Lea otras preguntas en las etiquetas