UNPKG

walle-module

Version:

walle by node-red module

41 lines (37 loc) 1.04 kB
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 };