Manter X payload em um buffer para usar a payload anterior
Manter X payload em um buffer para usar com a payload anterior
//Escolher o número de payloads que você deseja manter (5 payloads neste exemplo)
const NbPayload = 5 ;
//Declarar um array vazio ou obter o ArrayBuf atual (o ArrayBuf estará disponível a partir do fluxo)
let array = context.get("ArrayBuf") || [];
//Adicionar a payload atual ao array
array.push(msg.payload);
//Se o comprimento do array for maior que o número de payloads que você deseja manter...
if(array.length > NbPayload)
{
//...removemos a primeira payload do array
array.shift();
}
//Salvar o array em ArrayBuf
context.set("ArrayBuf",array);
Agora você pode obter uma payload do buffer desta forma:
//No final da função, você pode obter a payload anterior
//Índice da payload atual = NbPayload-1 (porque o índice do array começa em 0!)
//Índice da Payload Anterior = NbPayload-2
PreviousTag1 = context.get("ArrayBuf")[NbPayload-2].Tag1
//O mesmo que "_doJava.get("tag1", -1)" no MX Brain
Manter apenas algumas tags de X payload em um buffer
Manter apenas algumas tags (tagToKeep) de X payload (NbPayload) em um buffer para usar as tags anteriores
//1) Escolher o número de payloads que você deseja manter
const NbPayload = 5 ;
//2) Configurar a lista de tags da payload que você deseja manter
const tagToKeep =[
"tag1",
"tag2",
"tag3",
]
//Declarar um objeto
let ObjToKeep = {};
//Manter as tags e valores da lista "tagToKeep"
for(let tag of tagToKeep)
{
ObjToKeep[`${tag}`] = msg.payload[tag];
}
//Declarar um array vazio ou obter o ArrayBuf atual
let array = context.get("ArrayBuf") || [];
//Adicionar o ObjToKeep atual ao array
array.push(ObjToKeep);
//Se o comprimento do array for maior que o número de payloads a manter
if(array.length > NbPayload)
{
//Remover a primeira entrada do array
array.shift();
}
//Salvar o array
context.set("ArrayBuf",array);