mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Fix RPi node - gpio path as per @Croady suggestion
This commit is contained in:
parent
fa8d31609e
commit
a05c0f4bb2
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright 2013 IBM Corp.
|
Copyright 2013,2014 IBM Corp.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -40,7 +40,7 @@
|
|||||||
<span id="pitype"></span>
|
<span id="pitype"></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<label for="node-input-intype"><i class="fa fa-arrows-v"></i> Resistor?</label>
|
<label for="node-input-intype"><i class="fa fa-long-arrow-up"></i> Resistor?</label>
|
||||||
<select type="text" id="node-input-intype" style="width: 150px;">
|
<select type="text" id="node-input-intype" style="width: 150px;">
|
||||||
<option value="tri">none</option>
|
<option value="tri">none</option>
|
||||||
<option value="up">pullup</option>
|
<option value="up">pullup</option>
|
||||||
|
@ -20,11 +20,13 @@ module.exports = function(RED) {
|
|||||||
var exec = require('child_process').exec;
|
var exec = require('child_process').exec;
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
|
||||||
|
var gpioCommand = '/usr/local/bin/gpio';
|
||||||
|
|
||||||
if (!fs.existsSync("/dev/ttyAMA0")) { // unlikely if not on a Pi
|
if (!fs.existsSync("/dev/ttyAMA0")) { // unlikely if not on a Pi
|
||||||
throw "Info : Ignoring Raspberry Pi specific node.";
|
throw "Info : Ignoring Raspberry Pi specific node.";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fs.existsSync("/usr/local/bin/gpio")) { // gpio command not installed
|
if (!fs.existsSync(gpioCommand)) { // gpio command not installed
|
||||||
throw "Info : Can't find Raspberry Pi wiringPi gpio command.";
|
throw "Info : Can't find Raspberry Pi wiringPi gpio command.";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,11 +102,11 @@ module.exports = function(RED) {
|
|||||||
var node = this;
|
var node = this;
|
||||||
|
|
||||||
if (node.pin !== undefined) {
|
if (node.pin !== undefined) {
|
||||||
exec("gpio mode "+node.pin+" "+node.intype, function(err,stdout,stderr) {
|
exec(gpioCommand+" mode "+node.pin+" "+node.intype, function(err,stdout,stderr) {
|
||||||
if (err) { node.error(err); }
|
if (err) { node.error(err); }
|
||||||
else {
|
else {
|
||||||
node._interval = setInterval( function() {
|
node._interval = setInterval( function() {
|
||||||
exec("gpio read "+node.pin, function(err,stdout,stderr) {
|
exec(gpioCommand+" read "+node.pin, function(err,stdout,stderr) {
|
||||||
if (err) { node.error(err); }
|
if (err) { node.error(err); }
|
||||||
else {
|
else {
|
||||||
if (node.buttonState !== Number(stdout)) {
|
if (node.buttonState !== Number(stdout)) {
|
||||||
@ -137,7 +139,7 @@ module.exports = function(RED) {
|
|||||||
|
|
||||||
if (node.pin !== undefined) {
|
if (node.pin !== undefined) {
|
||||||
process.nextTick(function() {
|
process.nextTick(function() {
|
||||||
exec("gpio mode "+node.pin+" out", function(err,stdout,stderr) {
|
exec(gpioCommand+" mode "+node.pin+" out", function(err,stdout,stderr) {
|
||||||
if (err) { node.error(err); }
|
if (err) { node.error(err); }
|
||||||
else {
|
else {
|
||||||
node.on("input", function(msg) {
|
node.on("input", function(msg) {
|
||||||
@ -145,7 +147,7 @@ module.exports = function(RED) {
|
|||||||
if (msg.payload === "false") { msg.payload = false; }
|
if (msg.payload === "false") { msg.payload = false; }
|
||||||
var out = Number(msg.payload);
|
var out = Number(msg.payload);
|
||||||
if ((out === 0)|(out === 1)) {
|
if ((out === 0)|(out === 1)) {
|
||||||
exec("gpio write "+node.pin+" "+out, function(err,stdout,stderr) {
|
exec(gpioCommand+" write "+node.pin+" "+out, function(err,stdout,stderr) {
|
||||||
if (err) { node.error(err); }
|
if (err) { node.error(err); }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -160,27 +162,14 @@ module.exports = function(RED) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
node.on("close", function() {
|
node.on("close", function() {
|
||||||
exec("gpio mode "+node.pin+" in");
|
exec(gpioCommand+" mode "+node.pin+" in");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//exec("gpio mode 0 in",function(err,stdout,stderr) {
|
|
||||||
// if (err) {
|
|
||||||
// util.log('[36-rpi-gpio.js] Error: "gpio" command failed for some reason.');
|
|
||||||
// }
|
|
||||||
// exec("gpio mode 1 in");
|
|
||||||
// exec("gpio mode 2 in");
|
|
||||||
// exec("gpio mode 3 in");
|
|
||||||
// exec("gpio mode 4 in");
|
|
||||||
// exec("gpio mode 5 in");
|
|
||||||
// exec("gpio mode 6 in");
|
|
||||||
// exec("gpio mode 7 in");
|
|
||||||
//});
|
|
||||||
|
|
||||||
var pitype = { type:"" };
|
var pitype = { type:"" };
|
||||||
exec("gpio -v | grep Type", function(err,stdout,stderr) {
|
exec(gpioCommand+" -v | grep Type", function(err,stdout,stderr) {
|
||||||
if (err) {
|
if (err) {
|
||||||
util.log('[36-rpi-gpio.js] Error: "gpio -v" command failed for some reason.');
|
util.log('[36-rpi-gpio.js] Error: "'+gpioCommand+' -v" command failed for some reason.');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pitype = { type:(stdout.split(","))[0].split(": ")[1], rev:(stdout.split(","))[1].split(": ")[1] };
|
pitype = { type:(stdout.split(","))[0].split(": ")[1], rev:(stdout.split(","))[1].split(": ")[1] };
|
||||||
|
Loading…
Reference in New Issue
Block a user