Ir al contenido

Series con pushData

Una serie es una lista de valores con su marca de tiempo, ideal para gráficas e historiales. Siempre se añade con pushData(clave, valor) — nunca con varG.serie.push(...):

pushData("temperaturas", 23.5);

pushData hace tres cosas por ti:

  1. Crea la serie (varG.temperaturas) si no existe.
  2. Añade el valor a esa serie y añade el instante actual (en milisegundos) a una serie companion llamada <clave>_time (aquí, varG.temperaturas_time).
  3. Mantiene ambas alineadas por posición: el valor en la posición i ocurrió en el tiempo de la posición i.

Esa marca de tiempo precisa es la razón de usar pushData en lugar de tocar el arreglo a mano: pushData es la fuente de verdad de los tiempos. Si haces varG.temperaturas.push(x) por tu cuenta, el valor queda sin su tiempo y se desalinea de temperaturas_time.

Para empezar una serie de cero, asígnale un arreglo vacío en tu boardCode:

varG.temperaturas = [];

Al recargar el boardCode, la plataforma detecta esa inicialización y también vacía su companion temperaturas_time, de modo que valor y tiempo quedan otra vez alineados. (Una orden de “reset” desde la web hace lo mismo: el arreglo vuelve a [] y su _time también.)

Cuando un consumidor (un tablero, un artefacto) carga el estado actual, la plataforma le entrega como máximo los últimos 2500 puntos de cada serie, con sus tiempos alineados. Los consumidores que ya están conectados en vivo reciben cada punto nuevo a medida que llega.

Ten en cuenta que la serie no se recorta sola mientras corre: si haces pushData indefinidamente, el arreglo sigue creciendo en memoria. Para corridas largas:

  • reinicia la serie cada cierto tiempo (varG.x = []), o
  • agrega antes de publicar (por ejemplo, guarda un promedio por minuto en vez de cada lectura).