MQTT
Desde sl script se pueden hacer publicaciones bajo criterios y formatos particulares, diferentes a los que se pueden enviar por la configuración estándar.
Ademas, se pueden recibir los mensajes de los tópicos a los cuales se está suscripto.
Fuente / Destino |
Indice |
Valor |
R/W |
Descripción |
Función |
1000 |
0 |
0 a 10 |
read_io | Mensajes recibidos pendientes | MQTT |
1001 |
0 |
5 -> Conectado |
read_io | Estado de conexión con el broker | |
1002 |
0 |
2 -> Enviado OK |
read_io | Estado de ultima publicación | |
1000 |
- |
read_str | Lee primer mensaje en cola de suscripción | ||
1003 |
- |
read_str | Tópico del mensaje en cola de suscripción leido con 1000 | ||
1001 |
- |
write_str | Carga tópico a publicar | ||
1002 |
- |
write_str | Carga payload a publicar y publica | ||
Ejemplo de publicación: Publica cada 10 segundo un numero que se incrementa en cada envío
check_timer t{
a=a+1;
read_io 1001,g,0; #Estado de conexión con el broker;
if g = 5{ #Conectado?;
write_str 1001,'Prueba/Topico'; #Escribo Topico;
W = '{ "VAN1":"',a,'}';
write_str 1002,W;
read_io 1002,h,0; #h contiene el estado del envio;
};
timer t,10000;
};
end;
Ejemplo de recepción de mensajes: Recibe un mensaje e identifica a que tópico corresponde. Lo envía por la consola de Traces. Previamente se deben carga los tópicos en la configuración web del equipo.
read_io 1000,a,0; #MQTT - Mensajes recibidos pendientes;
if a > 0{
read_str 1000,o,Y; #Lee primer mensaje en cola de suscripción;
read_str 1003,o,X; #Tópico del mensaje en cola de suscripción recien leido;
write_str 35,'Mensajes de suscripcion a topico: ',X,': ',Y,$13,$10;
};
end;
2024-04-23