Conserver X payload dans un buffer pour utiliser la payload précédente
Conserver X payload dans un buffer pour l'utiliser avec la payload précédente
//Choisir le nombre de payloads que vous souhaitez conserver (5 payloads dans cet exemple)
const NbPayload = 5 ;
//Déclarer un tableau vide ou récupérer le ArrayBuf actuel (le ArrayBuf sera disponible à partir du flux)
let array = context.get("ArrayBuf") || [];
//Ajouter la payload actuelle au tableau
array.push(msg.payload);
//Si la longueur du tableau est supérieure au nombre de payloads que vous souhaitez conserver...
if(array.length > NbPayload)
{
//...nous supprimons la première payload du tableau
array.shift();
}
//Enregistrer le tableau dans ArrayBuf
context.set("ArrayBuf",array);
Maintenant, vous pouvez récupérer une payload du buffer de cette manière :
//À la fin de la fonction, vous pouvez récupérer la payload précédente
//Index de la payload actuelle = NbPayload-1 (car l'index du tableau commence à 0 !)
//Index de la Payload Précédente = NbPayload-2
PreviousTag1 = context.get("ArrayBuf")[NbPayload-2].Tag1
//Équivalent à "_doJava.get("tag1", -1)" dans MX Brain
Conserver uniquement certaines balises de X payload dans un buffer
Conserver uniquement certaines balises (tagToKeep) de X payload (NbPayload) dans un buffer pour utiliser les balises précédentes
//1) Choisir le nombre de payloads à conserver
const NbPayload = 5 ;
//2) Configurer la liste des balises de la payload à conserver
const tagToKeep =[
"tag1",
"tag2",
"tag3",
]
//Déclarer un objet
let ObjToKeep = {};
//Conserver les balises et les valeurs de la liste "tagToKeep"
for(let tag of tagToKeep)
{
ObjToKeep[`${tag}`] = msg.payload[tag];
}
//Déclarer un tableau vide ou récupérer le ArrayBuf actuel
let array = context.get("ArrayBuf") || [];
//Ajouter le ObjToKeep actuel au tableau
array.push(ObjToKeep);
//Si la longueur du tableau est supérieure au nombre de payloads à conserver
if(array.length > NbPayload)
{
//Supprimer la première entrée du tableau
array.shift();
}
//Enregistrer le tableau
context.set("ArrayBuf",array);