diff --git a/io/ping/88-ping.js b/io/ping/88-ping.js index c2b98de5..2d25d7a3 100644 --- a/io/ping/88-ping.js +++ b/io/ping/88-ping.js @@ -14,42 +14,44 @@ * limitations under the License. **/ -var RED = require(process.env.NODE_RED_HOME+"/red/red"); -var spawn = require('child_process').spawn; -var plat = require('os').platform(); +module.exports = function(RED) { + "use strict"; + var spawn = require('child_process').spawn; + var plat = require('os').platform(); -function PingNode(n) { - RED.nodes.createNode(this,n); - this.host = n.host; - this.timer = n.timer * 1000; - var node = this; + function PingNode(n) { + RED.nodes.createNode(this,n); + this.host = n.host; + this.timer = n.timer * 1000; + var node = this; - node.tout = setInterval(function() { - var ex; - if (plat == "linux") ex = spawn('ping', ['-n', '-w', '5', '-c', '1', node.host]); - else if (plat.match(/^win/)) ex = spawn('ping', ['-n', '1', '-w', '5000', node.host]); - else if (plat == "darwin") ex = spawn('ping', ['-n', '-t', '5', '-c', '1', node.host]); - else node.error("Sorry - your platform - "+plat+" - is not recognised."); - var res = false; - ex.stdout.on('data', function (data) { - //console.log('[ping] stdout: ' + data.toString()); - var regex = /from.*time.(.*)ms/; - var m = regex.exec(data.toString())||""; - if (m != '') { res = Number(m[1]); } - }); - ex.stderr.on('data', function (data) { - //console.log('[ping] stderr: ' + data); - }); - ex.on('close', function (code) { - //console.log('[ping] result: ' + code); - var msg = { payload:false, topic:node.host }; - if (code == 0) msg = { payload:res, topic:node.host }; - node.send(msg); - }); - }, node.timer); + node.tout = setInterval(function() { + var ex; + if (plat == "linux") { ex = spawn('ping', ['-n', '-w', '5', '-c', '1', node.host]); } + else if (plat.match(/^win/)) { ex = spawn('ping', ['-n', '1', '-w', '5000', node.host]); } + else if (plat == "darwin") { ex = spawn('ping', ['-n', '-t', '5', '-c', '1', node.host]); } + else { node.error("Sorry - your platform - "+plat+" - is not recognised."); } + var res = false; + ex.stdout.on('data', function (data) { + //console.log('[ping] stdout: ' + data.toString()); + var regex = /from.*time.(.*)ms/; + var m = regex.exec(data.toString())||""; + if (m !== '') { res = Number(m[1]); } + }); + ex.stderr.on('data', function (data) { + //console.log('[ping] stderr: ' + data); + }); + ex.on('close', function (code) { + //console.log('[ping] result: ' + code); + var msg = { payload:false, topic:node.host }; + if (code === 0) { msg = { payload:res, topic:node.host }; } + node.send(msg); + }); + }, node.timer); - this.on("close", function() { - clearInterval(this.tout); - }); + this.on("close", function() { + clearInterval(this.tout); + }); + } + RED.nodes.registerType("ping",PingNode); } -RED.nodes.registerType("ping",PingNode); diff --git a/io/rawserial/26-rawserial.js b/io/rawserial/26-rawserial.js index 0a991fed..0ba158f1 100644 --- a/io/rawserial/26-rawserial.js +++ b/io/rawserial/26-rawserial.js @@ -14,131 +14,135 @@ * limitations under the License. **/ -var RED = require(process.env.NODE_RED_HOME+"/red/red"); -var settings = RED.settings; -var util = require("util"); -var fs = require('fs'); -var plat = require('os').platform(); -var pre = "\\\\.\\"; +module.exports = function(RED) { + "use strict"; + var settings = RED.settings; + var util = require("util"); + var fs = require('fs'); + var plat = require('os').platform(); + var pre = "\\\\.\\"; -if (!plat.match(/^win/)) { - util.log("[26-rawserial.js] Info : only really needed for Windows boxes without serialport npm module installed."); - pre = ""; -} + if (!plat.match(/^win/)) { + util.log("[26-rawserial.js] Info : only really needed for Windows boxes without serialport npm module installed."); + pre = ""; + } -function RawSerialInNode(n) { - RED.nodes.createNode(this,n); - this.port = n.port; - this.splitc = n.splitc||null; - this.out = n.out||"char"; - this.bin = n.bin||false; - if (this.splitc == '\\n') this.splitc = "\n"; - if (this.splitc == '\\r') this.splitc = "\r"; - if (!isNaN(parseInt(this.splitc))) { this.splitc = parseInt(this.splitc); } - var node = this; + function RawSerialInNode(n) { + RED.nodes.createNode(this,n); + this.port = n.port; + this.splitc = n.splitc||null; + this.out = n.out||"char"; + this.bin = n.bin||false; + if (this.splitc == '\\n') { this.splitc = "\n"; } + if (this.splitc == '\\r') { this.splitc = "\r"; } + if (!isNaN(parseInt(this.splitc))) { this.splitc = parseInt(this.splitc); } + var node = this; - var setupSerial = function() { - node.inp = fs.createReadStream(pre+node.port); - node.log("open "+pre+node.port); - node.tout = null; - var line = ""; - var buf = new Buffer(32768); - var i = 0; - node.inp.on('data', function (data) { - for (var z = 0; z < data.length; z++) { - if ((node.out === "time") && (node.splitc != 0)) { - if (node.tout) { - i += 1; + var setupSerial = function() { + node.inp = fs.createReadStream(pre+node.port); + node.log("open "+pre+node.port); + node.tout = null; + var line = ""; + var buf = new Buffer(32768); + var i = 0; + node.inp.on('data', function (data) { + for (var z = 0; z < data.length; z++) { + if ((node.out === "time") && (node.splitc !== 0)) { + if (node.tout) { + i += 1; + buf[i] = data[z]; + } + else { + node.tout = setTimeout(function () { + node.tout = null; + var m = new Buffer(i+1); + buf.copy(m,0,0,i+1); + if (node.bin !== "true") { m = m.toString(); } + node.send({"payload": m}); + m = null; + }, node.splitc); + i = 0; + buf[0] = data[z]; + } + } + else if ((node.out == "char") && (node.splitc != null)) { buf[i] = data[z]; + i += 1; + if ((data[z] === node.splitc.charCodeAt(0)) || (i === 32768)) { + var m = new Buffer(i); + buf.copy(m,0,0,i); + if (node.bin !== "true") { m = m.toString(); } + node.send({"payload":m}); + m = null; + i = 0; + } } else { - node.tout = setTimeout(function () { - node.tout = null; - var m = new Buffer(i+1); - buf.copy(m,0,0,i+1); - if (node.bin !== "true") { m = m.toString(); } - node.send({"payload": m}); - }, node.splitc); - i = 0; - buf[0] = data[z]; + if (node.bin !== "true") { node.send({"payload": String.fromCharCode(data[z])}); } + else { node.send({"payload": new Buffer([data[z]])});} } } - else if ((node.out == "char") && (node.splitc != null)) { - buf[i] = data[z]; - i += 1; - if ((data[z] === node.splitc.charCodeAt(0)) || (i === 32768)) { - var m = new Buffer(i); - buf.copy(m,0,0,i); - if (node.bin !== "true") { m = m.toString(); } - node.send({"payload":m}); - i = 0; - } - } - else { - if (node.bin !== "true") { node.send({"payload": String.fromCharCode(data[z])}); } - else { node.send({"payload": new Buffer([data[z]])});} - } - } + }); + //node.inp.on('end', function (error) {console.log("End", error);}); + node.inp.on('close', function (error) { + node.log(node.port+" closed"); + node.tout = setTimeout(function() { + setupSerial(); + },settings.serialReconnectTime); + }); + node.inp.on('error', function(error) { + if (error.code == "ENOENT") { node.log(node.port+" not found"); } + else { node.log(node.port+" error "+error); } + node.tout = setTimeout(function() { + setupSerial(); + },settings.serialReconnectTime); + }); + } + setupSerial(); + + node.on('close', function() { + if (node.tout) { clearTimeout(node.tout); } + if (node.inp) { node.inp.pause(); } }); - //node.inp.on('end', function (error) {console.log("End", error);}); - node.inp.on('close', function (error) { - node.log(node.port+" closed"); - node.tout = setTimeout(function() { - setupSerial(); - },settings.serialReconnectTime); - }); - node.inp.on('error', function(error) { - if (error.code == "ENOENT") { node.log(node.port+" not found"); } - else { node.log(node.port+" error "+error); } - node.tout = setTimeout(function() { - setupSerial(); - },settings.serialReconnectTime); + + } + RED.nodes.registerType("rawserial in",RawSerialInNode); + + + function RawSerialOutNode(n) { + RED.nodes.createNode(this,n); + this.port = n.port; + var node = this; + + var setupSerial = function() { + node.oup = fs.createWriteStream(pre+node.port,{ flags:'w', encoding:'utf8', mode:'0666' }); + node.on("input", function(msg) { + if (msg.payload != null) { + node.oup.write(msg.payload); + } + }); + node.oup.on('open', function (error) { node.log("opened "+node.port); }); + node.oup.on('end', function (error) { node.log("end :"+error); }); + node.oup.on('close', function (error) { + node.log(node.port+" closed"); + node.tout = setTimeout(function() { + setupSerial(); + },settings.serialReconnectTime); + }); + node.oup.on('error', function(error) { + if (error.code == "EACCES") { node.log("can't access port "+node.port); } + else if (error.code == "EIO") { node.log("can't write to port "+node.port); } + else { node.log(node.port+" error "+error); } + node.tout = setTimeout(function() { + setupSerial(); + },settings.serialReconnectTime); + }); + } + setupSerial(); + + node.on('close', function() { + if (node.tout) { clearTimeout(node.tout); } }); } - setupSerial(); - - node.on('close', function() { - if (node.tout) { clearTimeout(node.tout); } - if (node.inp) { node.inp.pause(); } - }); - + RED.nodes.registerType("rawserial out",RawSerialOutNode); } -RED.nodes.registerType("rawserial in",RawSerialInNode); - - -function RawSerialOutNode(n) { - RED.nodes.createNode(this,n); - this.port = n.port; - var node = this; - - var setupSerial = function() { - node.oup = fs.createWriteStream(pre+node.port,{ flags:'w', encoding:'utf8', mode:0666 }); - node.on("input", function(msg) { - if (msg.payload != null) { - node.oup.write(msg.payload); - } - }); - node.oup.on('open', function (error) { node.log("opened "+node.port); }); - node.oup.on('end', function (error) { node.log("end :"+error); }); - node.oup.on('close', function (error) { - node.log(node.port+" closed"); - node.tout = setTimeout(function() { - setupSerial(); - },settings.serialReconnectTime); - }); - node.oup.on('error', function(error) { - if (error.code == "EACCES") { node.log("can't access port "+node.port); } - else if (error.code == "EIO") { node.log("can't write to port "+node.port); } - else { node.log(node.port+" error "+error); } - node.tout = setTimeout(function() { - setupSerial(); - },settings.serialReconnectTime); - }); - } - setupSerial(); - - node.on('close', function() { - if (node.tout) { clearTimeout(node.tout); } - }); -} -RED.nodes.registerType("rawserial out",RawSerialOutNode); diff --git a/io/stomp/18-stomp.js b/io/stomp/18-stomp.js index adbadb8e..6f9ce3ff 100644 --- a/io/stomp/18-stomp.js +++ b/io/stomp/18-stomp.js @@ -35,7 +35,7 @@ module.exports = function(RED) { RED.httpAdmin.get('/stomp-server/:id',function(req,res) { var credentials = RED.nodes.getCredentials(req.params.id); if (credentials) { - res.send(JSON.stringify({user:credentials.user,hasPassword:(credentials.password&&credentials.password!="")})); + res.send(JSON.stringify({user:credentials.user,hasPassword:(credentials.password&&credentials.password!=="")})); } else { res.send(JSON.stringify({})); } @@ -54,12 +54,12 @@ module.exports = function(RED) { req.on('end', function(){ var newCreds = querystring.parse(body); var credentials = RED.nodes.getCredentials(req.params.id)||{}; - if (newCreds.user == null || newCreds.user == "") { + if (newCreds.user == null || newCreds.user === "") { delete credentials.user; } else { credentials.user = newCreds.user; } - if (newCreds.password == "") { + if (newCreds.password === "") { delete credentials.password; } else { credentials.password = newCreds.password||credentials.password; diff --git a/io/wol/39-wol.js b/io/wol/39-wol.js index aa033542..e9174560 100644 --- a/io/wol/39-wol.js +++ b/io/wol/39-wol.js @@ -14,28 +14,30 @@ * limitations under the License. **/ -var RED = require(process.env.NODE_RED_HOME+"/red/red"); -var wol = require('wake_on_lan'); -var chk = /^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$/; +module.exports = function(RED) { + "use strict"; + var wol = require('wake_on_lan'); + var chk = /^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$/; -function WOLnode(n) { - RED.nodes.createNode(this,n); - this.mac = n.mac.trim(); - var node = this; + function WOLnode(n) { + RED.nodes.createNode(this,n); + this.mac = n.mac.trim(); + var node = this; - this.on("input", function(msg) { - if (msg != null) { - var mac = this.mac || msg.mac || null; - if (mac != null) { - if (chk.test(mac)) { - wol.wake(mac, function(error) { - if (error) { node.warn(error); } - }); + this.on("input", function(msg) { + if (msg != null) { + var mac = this.mac || msg.mac || null; + if (mac != null) { + if (chk.test(mac)) { + wol.wake(mac, function(error) { + if (error) { node.warn(error); } + }); + } + else { node.warn('WOL: bad mac address "'+mac+'"'); } } - else { node.warn('WOL: bad mac address "'+mac+'"'); } + else { node.warn("WOL: no mac address specified"); } } - else { node.warn("WOL: no mac address specified"); } - } - }); + }); + } + RED.nodes.registerType("wake on lan",WOLnode); } -RED.nodes.registerType("wake on lan",WOLnode);