mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Support msg.rate in delay node
This commit is contained in:
parent
6f88894598
commit
8bc81c0d32
@ -88,6 +88,17 @@ module.exports = function(RED) {
|
||||
};
|
||||
}
|
||||
|
||||
var sendMsgFromBuffer = function() {
|
||||
if (node.buffer.length === 0) {
|
||||
clearInterval(node.intervalID);
|
||||
node.intervalID = -1;
|
||||
}
|
||||
if (node.buffer.length > 0) {
|
||||
node.send(node.buffer.shift());
|
||||
}
|
||||
node.reportDepth();
|
||||
}
|
||||
|
||||
var clearDelayList = function(s) {
|
||||
for (var i=0; i<node.idList.length; i++ ) { node.idList[i].clear(); }
|
||||
node.idList = [];
|
||||
@ -155,27 +166,29 @@ module.exports = function(RED) {
|
||||
node.on("input", function(msg) {
|
||||
if (!node.drop) {
|
||||
if (node.intervalID !== -1) {
|
||||
if (msg.hasOwnProperty("rate") && node.rate !== msg.rate) {
|
||||
node.rate = msg.rate;
|
||||
clearInterval(node.intervalID);
|
||||
node.intervalID = setInterval(sendMsgFromBuffer, node.rate);
|
||||
}
|
||||
if (!msg.hasOwnProperty("flush")) {
|
||||
node.buffer.push(msg);
|
||||
node.reportDepth();
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (msg.hasOwnProperty("rate")) {
|
||||
node.rate = msg.rate;
|
||||
}
|
||||
node.send(msg);
|
||||
node.reportDepth();
|
||||
node.intervalID = setInterval(function() {
|
||||
if (node.buffer.length === 0) {
|
||||
clearInterval(node.intervalID);
|
||||
node.intervalID = -1;
|
||||
}
|
||||
if (node.buffer.length > 0) {
|
||||
node.send(node.buffer.shift());
|
||||
}
|
||||
node.reportDepth();
|
||||
}, node.rate);
|
||||
node.intervalID = setInterval(sendMsgFromBuffer, node.rate);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (msg.hasOwnProperty("rate")) {
|
||||
node.rate = msg.rate;
|
||||
}
|
||||
var timeSinceLast;
|
||||
if (node.lastSent) {
|
||||
timeSinceLast = process.hrtime(node.lastSent);
|
||||
|
Loading…
x
Reference in New Issue
Block a user