我正在使用 node-red 来获取我的称重传感器的信号。我使用 MQTT(来自我的 python 脚本)接收称重传感器的值,然后我想保存来自 MQTT 的前 5 个值来计算我的称重传感器的偏移量。然后,当我有我的偏移量时,我可以从我的偏移量中减去它,msg.payload将称重传感器设置为 0。
我试图做一个while循环来累积前5个值,但即使前5个值消失了,结果也会更新。即使循环结束,它看起来也应用了我的循环内的计算。
var offset0 = 0;
var i = 0;
while (i < 5) {
offset0 = parseFloat(msg.payload) + offset0;
i = i + 1;
}
offset0 = offset0 / 5;
msg.payload = offset0;
return msg;
msg在每个来自我的称重传感器的新值之后更新......或者我只想保留前 5 个值(5 用于进行测试,然后我想使用超过 5 个点)。
例如,这是我从称重传感器获得的数据:
1.93, 1.94, 1.95, 1.94, 1.96, 1.93, 1.88, 1.93.
它应该采用前 5 个:
1.93, 1.94, 1.95, 1.94, 1.96
并做出平均。