|
|
|
@@ -78,86 +78,86 @@
|
|
|
|
|
<div class="pinTableCellR pinColorPower"><label><input disabled type="radio" name="pins" value=""> 2 - 5V Power</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-3">SDA1 - GPIO02 - 3 <input id="pinTable-pin-3" type="radio" name="pins" value="3"></label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-3">SDA1 - GPIO02 - 3 <input id="pinTable-pin-3" type="radio" name="pins" value="2"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorPower"><label><input disabled type="radio" name="pins" value=""> 4 - 5V Power</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-5">SCL1 - GPIO03 - 5 <input id="pinTable-pin-5" type="radio" name="pins" value="5"></label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-5">SCL1 - GPIO03 - 5 <input id="pinTable-pin-5" type="radio" name="pins" value="3"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGround"><label><input disabled type="radio" name="pins" value=""> 6 - Ground</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-7">GPIO04 - 7 <input id="pinTable-pin-7" type="radio" name="pins" value="7"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-8"><input id="pinTable-pin-8" type="radio" name="pins" value="8"> 8 - GPIO14 - TxD</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-7">GPIO04 - 7 <input id="pinTable-pin-7" type="radio" name="pins" value="4"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-8"><input id="pinTable-pin-8" type="radio" name="pins" value="14"> 8 - GPIO14 - TxD</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGround"><label>Ground - 9 <input disabled type="radio" name="pins" value=""></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-10"><input id="pinTable-pin-10" type="radio" name="pins" value="10"> 10 - GPIO15 - RxD</label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-10"><input id="pinTable-pin-10" type="radio" name="pins" value="15"> 10 - GPIO15 - RxD</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-11">GPIO17 - 11 <input id="pinTable-pin-11" type="radio" name="pins" value="11"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-12"><input id="pinTable-pin-12" type="radio" name="pins" value="12"> 12 - GPIO18</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-11">GPIO17 - 11 <input id="pinTable-pin-11" type="radio" name="pins" value="17"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-12"><input id="pinTable-pin-12" type="radio" name="pins" value="18"> 12 - GPIO18</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-13">GPIO27 - 13 <input id="pinTable-pin-13" type="radio" name="pins" value="13"></label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-13">GPIO27 - 13 <input id="pinTable-pin-13" type="radio" name="pins" value="27"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGround"><label><input disabled type="radio" name="pins" value=""> 14 - Ground</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-15">GPIO22 - 15 <input id="pinTable-pin-15" type="radio" name="pins" value="15"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-16"><input id="pinTable-pin-16" type="radio" name="pins" value="16"> 16 - GPIO23</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-15">GPIO22 - 15 <input id="pinTable-pin-15" type="radio" name="pins" value="22"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-16"><input id="pinTable-pin-16" type="radio" name="pins" value="23"> 16 - GPIO23</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorPower"><label>3.3V Power - 17 <input disabled type="radio" name="pins" value=""></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-18"><input id="pinTable-pin-18" type="radio" name="pins" value="18"> 18 - GPIO24</label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-18"><input id="pinTable-pin-18" type="radio" name="pins" value="24"> 18 - GPIO24</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-19">MOSI - GPIO10 - 19 <input id="pinTable-pin-19" type="radio" name="pins" value="19"></label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-19">MOSI - GPIO10 - 19 <input id="pinTable-pin-19" type="radio" name="pins" value="10"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGround"><label><input disabled type="radio" name="pins" value=""> 20 - Ground</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-21">MISO - GPIO09 - 21 <input id="pinTable-pin-21" type="radio" name="pins" value="21"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-22"><input id="pinTable-pin-22" type="radio" name="pins" value="22"> 22 - GPIO25</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-21">MISO - GPIO09 - 21 <input id="pinTable-pin-21" type="radio" name="pins" value="9"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-22"><input id="pinTable-pin-22" type="radio" name="pins" value="25"> 22 - GPIO25</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-23">SCLK - GPIO11 - 23 <input id="pinTable-pin-23" type="radio" name="pins" value="23"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-24"><input id="pinTable-pin-24" type="radio" name="pins" value="24"> 24 - GPIO8 - CE0</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-23">SCLK - GPIO11 - 23 <input id="pinTable-pin-23" type="radio" name="pins" value="11"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-24"><input id="pinTable-pin-24" type="radio" name="pins" value="8"> 24 - GPIO8 - CE0</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGround"><label>Ground - 25 <input disabled type="radio" name="pins" value=""></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-26"><input id="pinTable-pin-26" type="radio" name="pins" value="26"> 26 - GPIO7 - CE1</label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-26"><input id="pinTable-pin-26" type="radio" name="pins" value="7"> 26 - GPIO7 - CE1</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorSD"><label>SD - 27 <input disabled type="radio" name="pins" value=""></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorSD"><label><input disabled type="radio" name="pins" value=""> 28 - SC</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-29">GPIO05 - 29 <input id="pinTable-pin-29" type="radio" name="pins" value="29"></label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-29">GPIO05 - 29 <input id="pinTable-pin-29" type="radio" name="pins" value="5"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGround"><label><input disabled type="radio" name="pins" value=""> 30 - Ground</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-31">GPIO06 - 31 <input id="pinTable-pin-31" type="radio" name="pins" value="31"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-32"><input id="pinTable-pin-32" type="radio" name="pins" value="32"> 32 - GPIO12</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-31">GPIO06 - 31 <input id="pinTable-pin-31" type="radio" name="pins" value="6"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-32"><input id="pinTable-pin-32" type="radio" name="pins" value="12"> 32 - GPIO12</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-33">GPIO13 - 33 <input id="pinTable-pin-33" type="radio" name="pins" value="33"></label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-33">GPIO13 - 33 <input id="pinTable-pin-33" type="radio" name="pins" value="13"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGround"><label><input disabled type="radio" name="pins" value=""> 34 - Ground</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-35">GPIO19 - 35 <input id="pinTable-pin-35" type="radio" name="pins" value="35"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-36"><input id="pinTable-pin-36" type="radio" name="pins" value="36"> 36 - GPIO16</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-35">GPIO19 - 35 <input id="pinTable-pin-35" type="radio" name="pins" value="19"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-36"><input id="pinTable-pin-36" type="radio" name="pins" value="16"> 36 - GPIO16</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-37">GPIO26 - 37 <input id="pinTable-pin-37" type="radio" name="pins" value="37"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-38"><input id="pinTable-pin-38" type="radio" name="pins" value="38"> 38 - GPIO20</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-37">GPIO26 - 37 <input id="pinTable-pin-37" type="radio" name="pins" value="26"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-38"><input id="pinTable-pin-38" type="radio" name="pins" value="20"> 38 - GPIO20</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGround"><label>Ground - 39 <input disabled type="radio" name="pins" value=""></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-40"><input id="pinTable-pin-40" type="radio" name="pins" value="40"> 40 - GPIO21</label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-40"><input id="pinTable-pin-40" type="radio" name="pins" value="21"> 40 - GPIO21</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-row">
|
|
|
|
|
<label> </label>
|
|
|
|
|
<label> BCM GPIO</label>
|
|
|
|
|
<input type="text" id="node-input-pin" style="width: 352px">
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-row">
|
|
|
|
@@ -189,8 +189,12 @@
|
|
|
|
|
"23":"16", "24":"18", "10":"19", "9":"21", "25":"22", "11":"23", "8":"24", "7":"26",
|
|
|
|
|
"5":"29", "6":"31", "12":"32", "13":"33", "19":"35", "16":"36", "26":"37", "20":"38", "21":"40"
|
|
|
|
|
};
|
|
|
|
|
var pin2bcm = { '3':'2', '5':'3', '7':'4', '8':'14', '10':'15', '11':'17', '12':'18', '13':'27',
|
|
|
|
|
'15':'22', '16':'23', '18':'24', '19':'10', '21':'9', '22':'25', '23':'11', '24':'8', '26':'7',
|
|
|
|
|
'29':'5', '31':'6', '32':'12', '33':'13', '35':'19', '36':'16', '37':'26', '38':'20', '40':'21'
|
|
|
|
|
}
|
|
|
|
|
var pinsInUse = {};
|
|
|
|
|
var validPinValues = Object.values(bcm2pin);
|
|
|
|
|
|
|
|
|
|
var isEnvVar = function (value) {
|
|
|
|
|
var re = /^\${([0-9a-zA-Z_]+)}$/;
|
|
|
|
|
var match = value.match(re);
|
|
|
|
@@ -205,17 +209,18 @@
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var validatePin = function (value) {
|
|
|
|
|
return isEnvVar(value) || (isInt(value) && validPinValues.includes(value));
|
|
|
|
|
return isEnvVar(value) || (isInt(value) && value>=0 && value<=45);
|
|
|
|
|
};
|
|
|
|
|
RED.nodes.registerType('rpi-gpio in',{
|
|
|
|
|
category: 'Raspberry Pi',
|
|
|
|
|
color:"#c6dbef",
|
|
|
|
|
defaults: {
|
|
|
|
|
name: { value:"" },
|
|
|
|
|
pin: { value:"tri",required:true,validate:validatePin },
|
|
|
|
|
pin: { value:"",required:true,validate:validatePin },
|
|
|
|
|
intype: { value:"tri" },
|
|
|
|
|
debounce: { value:"25" },
|
|
|
|
|
read: { value:false }
|
|
|
|
|
read: { value:false },
|
|
|
|
|
bcm: { value:true }
|
|
|
|
|
},
|
|
|
|
|
inputs:0,
|
|
|
|
|
outputs:1,
|
|
|
|
@@ -227,10 +232,12 @@
|
|
|
|
|
else { return ""; }
|
|
|
|
|
},
|
|
|
|
|
label: function() {
|
|
|
|
|
if (!this.bcm) { this.pin = pin2bcm[this.pin]; this.bcm = true; }
|
|
|
|
|
var p = bcm2pin[this.pin];
|
|
|
|
|
var suf = "";
|
|
|
|
|
if (this.intype === "up") { suf = "↑ "}
|
|
|
|
|
if (this.intype === "down") { suf = "↓ "}
|
|
|
|
|
return this.name || "PIN: "+suf+this.pin ;
|
|
|
|
|
if (this.intype === "up") { suf = " ↑"}
|
|
|
|
|
if (this.intype === "down") { suf = " ↓"}
|
|
|
|
|
return this.name || (p ? "PIN: "+p+suf : "GPIO: "+this.pin+suf) ;
|
|
|
|
|
},
|
|
|
|
|
labelStyle: function() {
|
|
|
|
|
return this.name?"node_label_italic":"";
|
|
|
|
@@ -292,86 +299,86 @@
|
|
|
|
|
<div class="pinTableCellR pinColorPower"><label><input disabled type="radio" name="pins" value=""> 2 - 5V Power</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-3">SDA1 - GPIO02 - 3 <input id="pinTable-pin-3" type="radio" name="pins" value="3"></label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-3">SDA1 - GPIO02 - 3 <input id="pinTable-pin-3" type="radio" name="pins" value="2"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorPower"><label><input disabled type="radio" name="pins" value=""> 4 - 5V Power</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-5">SCL1 - GPIO03 - 5 <input id="pinTable-pin-5" type="radio" name="pins" value="5"></label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-5">SCL1 - GPIO03 - 5 <input id="pinTable-pin-5" type="radio" name="pins" value="3"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGround"><label><input disabled type="radio" name="pins" value=""> 6 - Ground</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-7">GPIO04 - 7 <input id="pinTable-pin-7" type="radio" name="pins" value="7"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-8"><input id="pinTable-pin-8" type="radio" name="pins" value="8"> 8 - GPIO14 - TxD</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-7">GPIO04 - 7 <input id="pinTable-pin-7" type="radio" name="pins" value="4"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-8"><input id="pinTable-pin-8" type="radio" name="pins" value="14"> 8 - GPIO14 - TxD</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGround"><label>Ground - 9 <input disabled type="radio" name="pins" value=""></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-10"><input id="pinTable-pin-10" type="radio" name="pins" value="10"> 10 - GPIO15 - RxD</label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-10"><input id="pinTable-pin-10" type="radio" name="pins" value="15"> 10 - GPIO15 - RxD</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-11">GPIO17 - 11 <input id="pinTable-pin-11" type="radio" name="pins" value="11"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-12"><input id="pinTable-pin-12" type="radio" name="pins" value="12"> 12 - GPIO18</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-11">GPIO17 - 11 <input id="pinTable-pin-11" type="radio" name="pins" value="17"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-12"><input id="pinTable-pin-12" type="radio" name="pins" value="18"> 12 - GPIO18</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-13">GPIO27 - 13 <input id="pinTable-pin-13" type="radio" name="pins" value="13"></label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-13">GPIO27 - 13 <input id="pinTable-pin-13" type="radio" name="pins" value="27"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGround"><label><input disabled type="radio" name="pins" value=""> 14 - Ground</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-15">GPIO22 - 15 <input id="pinTable-pin-15" type="radio" name="pins" value="15"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-16"><input id="pinTable-pin-16" type="radio" name="pins" value="16"> 16 - GPIO23</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-15">GPIO22 - 15 <input id="pinTable-pin-15" type="radio" name="pins" value="22"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-16"><input id="pinTable-pin-16" type="radio" name="pins" value="23"> 16 - GPIO23</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorPower"><label>3.3V Power - 17 <input disabled type="radio" name="pins" value=""></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-18"><input id="pinTable-pin-18" type="radio" name="pins" value="18"> 18 - GPIO24</label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-18"><input id="pinTable-pin-18" type="radio" name="pins" value="24"> 18 - GPIO24</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-19">MOSI - GPIO10 - 19 <input id="pinTable-pin-19" type="radio" name="pins" value="19"></label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-19">MOSI - GPIO10 - 19 <input id="pinTable-pin-19" type="radio" name="pins" value="10"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGround"><label><input disabled type="radio" name="pins" value=""> 20 - Ground</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-21">MISO - GPIO09 - 21 <input id="pinTable-pin-21" type="radio" name="pins" value="21"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-22"><input id="pinTable-pin-22" type="radio" name="pins" value="22"> 22 - GPIO25</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-21">MISO - GPIO09 - 21 <input id="pinTable-pin-21" type="radio" name="pins" value="9"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-22"><input id="pinTable-pin-22" type="radio" name="pins" value="25"> 22 - GPIO25</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-23">SCLK - GPIO11 - 23 <input id="pinTable-pin-23" type="radio" name="pins" value="23"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-24"><input id="pinTable-pin-24" type="radio" name="pins" value="24"> 24 - GPIO8 - CE0</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorDual"><label for="pinTable-pin-23">SCLK - GPIO11 - 23 <input id="pinTable-pin-23" type="radio" name="pins" value="11"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-24"><input id="pinTable-pin-24" type="radio" name="pins" value="8"> 24 - GPIO8 - CE0</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGround"><label>Ground - 25 <input disabled type="radio" name="pins" value=""></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-26"><input id="pinTable-pin-26" type="radio" name="pins" value="26"> 26 - GPIO7 - CE1</label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorDual"><label for="pinTable-pin-26"><input id="pinTable-pin-26" type="radio" name="pins" value="7"> 26 - GPIO7 - CE1</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorSD"><label>SD - 27 <input disabled type="radio" name="pins" value=""></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorSD"><label><input disabled type="radio" name="pins" value=""> 28 - SC</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-29">GPIO05 - 29 <input id="pinTable-pin-29" type="radio" name="pins" value="29"></label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-29">GPIO05 - 29 <input id="pinTable-pin-29" type="radio" name="pins" value="5"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGround"><label><input disabled type="radio" name="pins" value=""> 30 - Ground</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-31">GPIO06 - 31 <input id="pinTable-pin-31" type="radio" name="pins" value="31"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-32"><input id="pinTable-pin-32" type="radio" name="pins" value="32"> 32 - GPIO12</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-31">GPIO06 - 31 <input id="pinTable-pin-31" type="radio" name="pins" value="6"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-32"><input id="pinTable-pin-32" type="radio" name="pins" value="12"> 32 - GPIO12</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-33">GPIO13 - 33 <input id="pinTable-pin-33" type="radio" name="pins" value="33"></label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-33">GPIO13 - 33 <input id="pinTable-pin-33" type="radio" name="pins" value="13"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGround"><label><input disabled type="radio" name="pins" value=""> 34 - Ground</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-35">GPIO19 - 35 <input id="pinTable-pin-35" type="radio" name="pins" value="35"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-36"><input id="pinTable-pin-36" type="radio" name="pins" value="36"> 36 - GPIO16</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-35">GPIO19 - 35 <input id="pinTable-pin-35" type="radio" name="pins" value="19"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-36"><input id="pinTable-pin-36" type="radio" name="pins" value="16"> 36 - GPIO16</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-37">GPIO26 - 37 <input id="pinTable-pin-37" type="radio" name="pins" value="37"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-38"><input id="pinTable-pin-38" type="radio" name="pins" value="38"> 38 - GPIO20</label></div>
|
|
|
|
|
<div class="pinTableCellL pinColorGPIO"><label for="pinTable-pin-37">GPIO26 - 37 <input id="pinTable-pin-37" type="radio" name="pins" value="26"></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-38"><input id="pinTable-pin-38" type="radio" name="pins" value="20"> 38 - GPIO20</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="pinTableRow">
|
|
|
|
|
<div class="pinTableCellL pinColorGround"><label>Ground - 39 <input disabled type="radio" name="pins" value=""></label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-40"><input id="pinTable-pin-40" type="radio" name="pins" value="40"> 40 - GPIO21</label></div>
|
|
|
|
|
<div class="pinTableCellR pinColorGPIO"><label for="pinTable-pin-40"><input id="pinTable-pin-40" type="radio" name="pins" value="21"> 40 - GPIO21</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-row">
|
|
|
|
|
<label> </label>
|
|
|
|
|
<label> BCM GPIO</label>
|
|
|
|
|
<input type="text" id="node-input-pin" style="width: 352px">
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-row" id="node-set-pwm">
|
|
|
|
@@ -412,6 +419,10 @@
|
|
|
|
|
"23":"16", "24":"18", "10":"19", "9":"21", "25":"22", "11":"23", "8":"24", "7":"26",
|
|
|
|
|
"5":"29", "6":"31", "12":"32", "13":"33", "19":"35", "16":"36", "26":"37", "20":"38", "21":"40"
|
|
|
|
|
};
|
|
|
|
|
var pin2bcm = { '3':'2', '5':'3', '7':'4', '8':'14', '10':'15', '11':'17', '12':'18', '13':'27',
|
|
|
|
|
'15':'22', '16':'23', '18':'24', '19':'10', '21':'9', '22':'25', '23':'11', '24':'8', '26':'7',
|
|
|
|
|
'29':'5', '31':'6', '32':'12', '33':'13', '35':'19', '36':'16', '37':'26', '38':'20', '40':'21'
|
|
|
|
|
}
|
|
|
|
|
var pinsInUse = {};
|
|
|
|
|
var validPinValues = Object.values(bcm2pin);
|
|
|
|
|
var isEnvVar = function (value) {
|
|
|
|
@@ -428,7 +439,7 @@
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var validatePin = function (value) {
|
|
|
|
|
return isEnvVar(value) || (isInt(value) && validPinValues.includes(value));
|
|
|
|
|
return isEnvVar(value) || (isInt(value) && value>=0 && value<=45);
|
|
|
|
|
};
|
|
|
|
|
RED.nodes.registerType('rpi-gpio out',{
|
|
|
|
|
category: 'Raspberry Pi',
|
|
|
|
@@ -438,8 +449,9 @@
|
|
|
|
|
pin: { value:"",required:true,validate:validatePin },
|
|
|
|
|
set: { value:"" },
|
|
|
|
|
level: { value:"0" },
|
|
|
|
|
freq: {value:""},
|
|
|
|
|
out: { value:"out" }
|
|
|
|
|
freq: { value:""},
|
|
|
|
|
out: { value:"out" },
|
|
|
|
|
bcm: { value:true }
|
|
|
|
|
},
|
|
|
|
|
inputs:1,
|
|
|
|
|
outputs:0,
|
|
|
|
@@ -452,12 +464,15 @@
|
|
|
|
|
},
|
|
|
|
|
align: "right",
|
|
|
|
|
label: function() {
|
|
|
|
|
if (this.out === "pwm") { return this.name || "PWM: "+this.pin; }
|
|
|
|
|
else if (this.out === "ser") { return this.name || "Servo: "+this.pin; }
|
|
|
|
|
if (!this.bcm) { this.pin = pin2bcm[this.pin]; this.bcm = true; }
|
|
|
|
|
var p = bcm2pin[this.pin];
|
|
|
|
|
var t = p ? "PIN: "+p : "GPIO: "+this.pin;
|
|
|
|
|
if (this.out === "pwm") { return this.name || "PWM: "+p; }
|
|
|
|
|
else if (this.out === "ser") { return this.name || "Servo: "+p; }
|
|
|
|
|
else {
|
|
|
|
|
var suf = "";
|
|
|
|
|
if (this.set == true) { suf = (this.level === "1") ? " ¹" : " ₀"; }
|
|
|
|
|
return this.name||"PIN: "+ this.pin + suf ;
|
|
|
|
|
return this.name|| t + suf ;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
labelStyle: function() {
|
|
|
|
|