Хочу сделать виртуальное устройство, которое считает скользящее среднее от какого-то другого параметра.
Что-то навроде вот такого:
defineRule("update_average_value", {
whenChanged: ["XXX/param"],
then: function(val) {
var values=[];
values.push(val);
if (values.length>100) values.shift();
sum=0;
for (i=0;i<values.length;i++)
{
sum=sum+values[i];
}
dev["newdev"]["aver_param"] = sum/values.length;
}
});
В коде выше мне не ясно время жизни массива values - он будет каждый раз новый при вызове функции по whenChanged? Как сделать его статическим?
В примерах есть PersistentStorage, но на флеш я не хочу сохранять данные. Как правильно сделать?