Cómo graficar datos de transmisión en C #

votos
2

Necesito graficar datos de transmisión (9600 baudios), que vienen en paquetes de 2-4 bytes desde un puerto serie. Los paquetes deben procesarse antes de graficar. Actualmente, estoy planteando un evento en cada paquete completo, que está causando problemas de respuesta en el formulario de gráficos.

¿Cuál es la mejor solución para este problema?

  • Rellenar datos y aumentar los datos almacenados en el evento en intervalos de tiempo (es decir, 500 milisegundos)
  • Construya el búfer y permita la creación de instancias del sondeo de objetos para los datos almacenados en el búfer vacío cuando se encuestaron
  • Otro (?)
Publicado el 21/06/2009 a las 19:26
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
5

Definitivamente limitaría la tasa de actualización. Para tales aplicaciones, una cada 300ms por lo general es suficiente.

En función de eso, una buena implementación sería un hilo de trabajo que lea el puerto serie y lo agregue a un búfer. El subproceso de IU puede usar un temporizador para consultar los datos y actualizar la pantalla.

Usando subprocesos separados, el subproceso de trabajo puede ejecutarse con mayor prioridad, de modo que los picos de carga pueden retrasar las actualizaciones de visualización, pero no se pierden datos.

Un truco adicional es no utilizar un temporizador fijo, sino reiniciar el temporizador después de que se complete la actualización. Por lo tanto, si la actualización lleva mucho tiempo, por ejemplo, debido a la alta carga del sistema, las actualizaciones se ralentizan, lo que reduce la carga.

Respondida el 21/06/2009 a las 21:36
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more