node-red-contrib-sacn-in
Version:
Streaming ACN DMX Input node for Node-RED
29 lines (25 loc) • 636 B
JavaScript
module.exports = function(RED){
var e131 = require('e131');
function SacnInNode(config){
RED.nodes.createNode(this, config);
if(config.universe < 1){
config.universe = 1;
}
var server = new e131.Server(parseInt(config.universe))
var node = this;
node.on('close', ()=>{
server._socket.close();
})
let timer = null;
server.on('packet', (packet)=>{
const chans = packet.getSlotsData();
if(timer == null){
timer = setTimeout(()=>{
node.send({payload: chans});
timer = null;
}, (parseInt(config.interval) || 100))
}
})
}
RED.nodes.registerType("sacn_in", SacnInNode);
}