node-red-node-arduino
Advanced tools
Comparing version
@@ -12,5 +12,5 @@ | ||
this.device = n.device || null; | ||
this.running = false; | ||
this.reported = false; | ||
var node = this; | ||
var running = false; | ||
var reported = false; | ||
@@ -20,10 +20,10 @@ var startup = function() { | ||
if ((e !== undefined) && (e.toString().indexOf("cannot open") !== -1) ) { | ||
if (!reported) { | ||
if (node.reported === false) { | ||
node.error(RED._("arduino.errors.portnotfound",{device:node.device})); | ||
reported = true; | ||
node.reported = true; | ||
} | ||
} | ||
else if (e === undefined) { | ||
running = true; | ||
reported = false; | ||
node.running = true; | ||
node.reported = false; | ||
node.board.once('ready', function() { | ||
@@ -39,7 +39,7 @@ node.log(RED._("arduino.status.connected",{device:node.board.sp.path})); | ||
node.board.once('disconnect', function() { | ||
if (running) { setTimeout(function() { running = false; startup(); }, 5000); } | ||
if (node.running === true) { setTimeout(function() { node.running = false; startup(); }, 5000); } | ||
}); | ||
} | ||
}); | ||
setTimeout(function() { if (!running) { startup(); } }, 5000); | ||
setTimeout(function() { if (node.running === false) { startup(); } }, 5000); | ||
}; | ||
@@ -49,3 +49,3 @@ startup(); | ||
node.on('close', function(done) { | ||
running = false; | ||
node.running = false; | ||
if (node.board) { | ||
@@ -83,5 +83,7 @@ try { | ||
node.running = true; | ||
if (node.state === "ANALOG") { node.board.pinMode(node.pin, 0x02); } | ||
if (node.state === "INPUT") { node.board.pinMode(node.pin, 0x00); } | ||
if (node.state === "PULLUP") { node.board.pinMode(node.pin, 0x0B); } | ||
node.status({fill:"green",shape:"dot",text:"node-red:common.status.connected"}); | ||
if (node.state === "ANALOG") { | ||
node.board.pinMode(node.pin, 0x02); | ||
node.board.analogRead(node.pin, function(v) { | ||
@@ -95,3 +97,2 @@ if (v !== node.oldval) { | ||
if (node.state === "INPUT") { | ||
node.board.pinMode(node.pin, 0x00); | ||
node.board.digitalRead(node.pin, function(v) { | ||
@@ -105,3 +106,2 @@ if (v !== node.oldval) { | ||
if (node.state === "PULLUP") { | ||
node.board.pinMode(node.pin, 0x0B); | ||
node.board.digitalRead(node.pin, function(v) { | ||
@@ -159,2 +159,5 @@ if (v !== node.oldval) { | ||
node.running = true; | ||
if (node.state === "OUTPUT") { node.board.pinMode(node.pin, 0x01); } | ||
if (node.state === "PWM") { node.board.pinMode(node.pin, 0x03); } | ||
if (node.state === "SERVO") { node.board.pinMode(node.pin, 0x04); } | ||
node.status({fill:"green",shape:"dot",text:"node-red:common.status.connected"}); | ||
@@ -164,3 +167,2 @@ node.on("input", function(msg) { | ||
if (node.state === "OUTPUT") { | ||
node.board.pinMode(node.pin, 0x01); | ||
if ((msg.payload === true)||(msg.payload.toString() == "1")||(msg.payload.toString().toLowerCase() == "on")) { | ||
@@ -173,4 +175,3 @@ node.board.digitalWrite(node.pin, node.board.HIGH); | ||
} | ||
if (node.state === "PWM") { | ||
node.board.pinMode(node.pin, 0x03); | ||
if (node.state === "PWM") { | ||
msg.payload = parseInt((msg.payload * 1) + 0.5); | ||
@@ -182,3 +183,2 @@ if ((msg.payload >= 0) && (msg.payload <= 255)) { | ||
if (node.state === "SERVO") { | ||
node.board.pinMode(node.pin, 0x04); | ||
msg.payload = parseInt((msg.payload * 1) + 0.5); | ||
@@ -193,9 +193,9 @@ if ((msg.payload >= 0) && (msg.payload <= 180)) { | ||
if (node.state === "STRING") { | ||
node.board.sendString(msg.payload.toString()); | ||
node.board.sendString(msg.payload.toString()); | ||
} | ||
} | ||
} | ||
}); | ||
node.board.once('disconnect', function() { | ||
node.status({fill:"red",shape:"ring",text:"node-red:common.status.not-connected"}); | ||
if (node.running) { setTimeout(function() { node.running = false; startup(); }, 5500); } | ||
if (node.running === true) { setTimeout(function() { node.running = false; startup(); }, 5500); } | ||
}); | ||
@@ -205,3 +205,3 @@ } | ||
else { node.board.once("ready", function() { doit(); }); } | ||
setTimeout(function() { if (!node.running) { startup(); } }, 4500); | ||
setTimeout(function() { if (node.running === false) { startup(); } }, 4500); | ||
} | ||
@@ -208,0 +208,0 @@ startup(); |
{ | ||
"name" : "node-red-node-arduino", | ||
"version" : "0.2.2", | ||
"version" : "0.2.4", | ||
"description" : "A Node-RED node to talk to an Arduino running firmata", | ||
@@ -5,0 +5,0 @@ "dependencies" : { |
22983
1.06%