el 06-24-2014 12:31 PM
Buenas tardes. Tengo un sistema que me está enviando datos por serial constantemente. Realicé la conexión por serial con LabView, todo funciona correctamente. Mi problema es que estoy leyendo los datos dentro de un while loop, por lo que el PC lee muy rápido el buffer, más rápido de lo que estoy enviando, motivo por el cual los datos que llegan no son correctos. Quisiera poder leer solo cuando llege un paquete de datos de 16 bytes, ¿es posible hacer esto?. Adjunto el codigo de prueba que realicé para hacer estas pruebas. Muchas gracias por sus respuestas.
¡Resuelto! Ir a solución.
el 06-24-2014 12:36 PM
Lo que quiero es muestrear una señal a 6 kHz, los datos los envío a una velocidad apropiada, pero no se como hacer para que LabVIEW solo lea el buffer del serial cuando se complete la llegada de 16 bytes y no que lo lea cada vez que entre al while loop, ya que al entrar tan rápido a este, lo único que alcanza a leer es el buffer vacio, llegan ceros como datos.
el 06-24-2014 02:11 PM
Hola AndresAGA77
Para ello debes quitar el Property Node del puerto referente a "Bytes at Port" este Nodo lee todos los bytes disponibles en el puerto, puedes removerlo y poner una constante allí que indique la cantidad de bytes que quieres adquirir
el 06-24-2014 02:12 PM
La velocidad de muestreo de datos estaría limitada entonces a la velocidad a la que lleguen estos 16 bytes al pc?
el 06-24-2014 02:15 PM
y Muchas muchas muchas Gracias!
el 06-24-2014 02:18 PM
Hola AndresAGA77,
Ha pensado en utilizar la estructura productor-consumidor? En este link se presenta una pequeña ayuda de como funciona.
Espero le sirva!