API del MCU (variables que se sincronizan solas)
This content is not available in your language yet.
En Transparent v2 no hay “enviar” ni “recibir” a mano. Registras variables con
TPT_VAR (ver La librería de Arduino)
y la librería las mantiene sincronizadas. Esta API es idéntica en serial y en WiFi.
Reportar a la plataforma: solo edita la variable
Sección titulada «Reportar a la plataforma: solo edita la variable»Para las variables DEVICE_TO_GATEWAY (d2g) o BIDIRECTIONAL (bi), basta con
asignarles un valor en tu código. La librería decide cuándo mandarlo según la
cadencia configurada desde el thing (ver más abajo). No llamas a ninguna función de
envío:
float temperatura = 0;
void loop() { tpt.update(); temperatura = analogRead(A0) * 0.0488; // solo actualiza la variable // La librería la reporta sola, al ritmo que fije el thing con setRate.}Recibir de la plataforma: solo lee la variable
Sección titulada «Recibir de la plataforma: solo lee la variable»Para las variables GATEWAY_TO_DEVICE (g2d) o BIDIRECTIONAL (bi), la librería
escribe la variable por ti cuando la plataforma manda un valor nuevo. Tú solo la
lees:
bool ledDeseado = false;int brillo = 0;
void loop() { tpt.update(); digitalWrite(13, ledDeseado); // aplicado por la plataforma analogWrite(9, constrain(brillo, 0, 255));}No hay available(), channel() ni payload*(): la variable ya tiene el último valor
recibido cuando la lees.
La cadencia la controla el thing (no el sketch)
Sección titulada «La cadencia la controla el thing (no el sketch)»Cuánto y cómo se reportan tus variables d2g/bi lo decide el boardCode con
tpt.setRate(...) (ver boardCode):
| Modo | Comportamiento |
|---|---|
onChange (por defecto) | reporta cuando el valor cambia (con un umbral delta opcional para números) |
periodic | reporta cada ms aunque no cambie |
- Mientras el thing no configure una cadencia, el valor por defecto es
onChangecada 500 ms, con un mínimo de 100 ms. - Cambiar la cadencia desde el thing no reinicia la placa ni requiere reflashear.
Direcciones, en resumen
Sección titulada «Direcciones, en resumen»| Declaraste | En el sketch tú… | La librería… |
|---|---|---|
DEVICE_TO_GATEWAY | escribes la variable | la reporta a la plataforma |
GATEWAY_TO_DEVICE | lees la variable | la escribe cuando llega un valor |
BIDIRECTIONAL | escribes y lees | reporta tus cambios y aplica los del thing |
En BIDIRECTIONAL, si los dos lados cambian el valor casi a la vez, gana el último
que llega al gateway. Para evitar el ping-pong, la anti-repetición vive del lado
del gateway y solo hacia el MCU: el gateway no le reenvía a la placa un valor idéntico
al que la placa acaba de reportar. Esto no silencia a la placa: en modo periodic
la placa vuelve a reportar el mismo valor cada ms, y en el thing el onUpdate se
dispara por cada frame recibido, incluidos los repetidos.
Timers de utilidad
Sección titulada «Timers de utilidad»tpt.every(ms, fn) y tpt.after(ms, fn) sirven para lógica auxiliar de tu sketch
(un aviso diferido, una tarea periódica interna), no para reportar variables —de eso
se encarga la cadencia. Detalles en
La librería de Arduino.
Más ejemplos completos en Ejemplos.