walle-module
Version:
walle by node-red module
41 lines (37 loc) • 1.04 kB
JavaScript
const config=require('./config');
//定义一个缓存,用来对比数据值判断
function cacheHandle() {
//默认预设metric计数缓存对象
const cache = new Map();
const metric={total:0,filter:0};
cache.set('metric',metric);
return cache;
}
/**
* 过滤方法
* @param {*} payload 判断被过滤数据体,对象
* @returns T:新数据被新缓存 F:数值没变化抛弃
*/
function messageFilter(payload,cache) {
let receiveDeviceId=payload.deviceId;
let monitor=payload.monitor;
let receiveKey=receiveDeviceId+monitor;
let receiveValue = payload.statusValue;
if (cache.has(receiveKey)) {
let oldValue = cache.get(receiveKey);
//过滤逻辑
if (receiveValue==oldValue) {
return false;
}else{
cache.set(receiveKey, receiveValue);
return true;
}
}
cache.set(receiveKey, receiveValue);
return true;
}
module.exports={
config: config,
filter: messageFilter,
cache: cacheHandle
};