[CCSDK-28] populated the seed code for dgbuilder
[ccsdk/distribution.git] / dgbuilder / core_nodes / hardware / 36-rpi-gpio.html
1 <!--
2   Copyright 2013,2014 IBM Corp.
3
4   Licensed under the Apache License, Version 2.0 (the "License");
5   you may not use this file except in compliance with the License.
6   You may obtain a copy of the License at
7
8   http://www.apache.org/licenses/LICENSE-2.0
9
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15 -->
16
17 <script type="text/x-red" data-template-name="rpi-gpio in">
18     <div class="form-row">
19         <label for="node-input-pin"><i class="fa fa-circle"></i> GPIO Pin</label>
20         <select type="text" id="node-input-pin" style="width: 200px;">
21             <option value="-" disabled>select pin </option>
22             <option value="3">3 - SDA1 </option>
23             <option value="5">5 - SCL1 </option>
24             <option value="7">7 - GPIO7</option>
25             <option value="8">8 - TxD </option>
26             <option value="10">10 - RxD </option>
27             <option value="11">11 - GPIO0</option>
28             <option value="12">12 - GPIO1</option>
29             <option value="13">13 - GPIO2</option>
30             <option value="15">15 - GPIO3</option>
31             <option value="16">16 - GPIO4</option>
32             <option value="18">18 - GPIO5</option>
33             <option value="19">19 - MOSI </option>
34             <option value="21">21 - MISO </option>
35             <option value="22">22 - GPIO6</option>
36             <option value="23">23 - SCLK </option>
37             <option value="24">24 - CE0 </option>
38             <option value="26">26 - CE1 </option>
39          </select>
40          &nbsp;<span id="pitype"></span>
41     </div>
42     <div class="form-row">
43         <label for="node-input-intype"><i class="fa fa-long-arrow-up"></i> Resistor?</label>
44         <select type="text" id="node-input-intype" style="width: 150px;">
45         <option value="tri">none</option>
46         <option value="up">pullup</option>
47         <option value="down">pulldown</option>
48         <!--<option value="tri">tristate</option>-->
49         </select>
50     </div>
51     <div class="form-row">
52         <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
53         <input type="text" id="node-input-name" placeholder="Name">
54     </div>
55     <div class="form-tips">Tip: Only Digital I/O is supported - input must be 0 or 1.</div>
56 </script>
57
58 <script type="text/x-red" data-help-name="rpi-gpio in">
59     <p>Raspberry Pi input node. Generates a <b>msg.payload</b> with either a 0 or 1 depending on the state of the input pin. Requires the gpio command to work.</p>
60     <p>You may also enable the input pullup resitor or the pulldown resistor.</p>
61     <p>The <b>msg.topic</b> is set to <i>pi/{the pin number}</i></p>
62     <p><b>Note:</b> we are using the actual physical pin numbers on connector P1 as they are easier to locate.</p>
63     <p><b>Note:</b> This node currently polls the pin every 250mS. This is not ideal as it loads the cpu, and will be rewritten shortly to try to use interrupts.</p>
64
65 </script>
66
67 <script type="text/javascript">
68     RED.nodes.registerType('rpi-gpio in',{
69         category: 'advanced-input',
70         color:"#c6dbef",
71         defaults: {
72             name: { value:"" },
73             intype: { value: "in" },
74             pin: { value:"",required:true,validate:RED.validators.number() },
75         },
76         inputs:0,
77         outputs:1,
78         icon: "rpi.png",
79         label: function() {
80             return this.name||"Pin: "+this.pin ;
81         },
82         labelStyle: function() {
83             return this.name?"node_label_italic":"";
84         },
85         oneditprepare: function() {
86             $.getJSON('rpi-gpio/'+this.id,function(data) {
87                 $('#pitype').text(data.type);
88                 if (data.type === "Model B+") {
89                     $('#node-input-pin').append($("<option></option>").attr("value",27).text("27 - SDA0"));
90                     $('#node-input-pin').append($("<option></option>").attr("value",28).text("28 - SCL0"));
91                     $('#node-input-pin').append($("<option></option>").attr("value",29).text("29 - GPIO21"));
92                     $('#node-input-pin').append($("<option></option>").attr("value",31).text("31 - GPIO22"));
93                     $('#node-input-pin').append($("<option></option>").attr("value",32).text("32 - GPIO26"));
94                     $('#node-input-pin').append($("<option></option>").attr("value",33).text("33 - GPIO23"));
95                     $('#node-input-pin').append($("<option></option>").attr("value",35).text("35 - GPIO24"));
96                     $('#node-input-pin').append($("<option></option>").attr("value",36).text("36 - GPIO27"));
97                     $('#node-input-pin').append($("<option></option>").attr("value",37).text("37 - GPIO25"));
98                     $('#node-input-pin').append($("<option></option>").attr("value",38).text("38 - GPIO28"));
99                     $('#node-input-pin').append($("<option></option>").attr("value",40).text("40 - GPIO29"));
100                 }
101             });
102         }
103     });
104 </script>
105
106
107 <script type="text/x-red" data-template-name="rpi-gpio out">
108     <div class="form-row">
109         <label for="node-input-pin"><i class="fa fa-circle"></i> GPIO Pin</label>
110         <select type="text" id="node-input-pin" style="width: 200px;">
111             <option value="-">select pin </option>
112             <option value="3">3 - SDA1 </option>
113             <option value="5">5 - SCL1 </option>
114             <option value="7">7 - GPIO7</option>
115             <option value="8">8 - TxD </option>
116             <option value="10">10 - RxD </option>
117             <option value="11">11 - GPIO0</option>
118             <option value="12">12 - GPIO1</option>
119             <option value="13">13 - GPIO2</option>
120             <option value="15">15 - GPIO3</option>
121             <option value="16">16 - GPIO4</option>
122             <option value="18">18 - GPIO5</option>
123             <option value="19">19 - MOSI </option>
124             <option value="21">21 - MISO </option>
125             <option value="22">22 - GPIO6</option>
126             <option value="23">23 - SCLK </option>
127             <option value="24">24 - CE0 </option>
128             <option value="26">26 - CE1 </option>
129          </select>
130          &nbsp;<span id="pitype"></span>
131     </div>
132     <div class="form-row">
133         <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
134         <input type="text" id="node-input-name" placeholder="Name">
135     </div>
136     <div class="form-tips">Tip: Only Digital I/O is supported - input must be 0 or 1.</div>
137 </script>
138
139 <script type="text/x-red" data-help-name="rpi-gpio out">
140     <p>Raspberry Pi output node. Expects a <b>msg.payload</b> with either a 0 or 1 (or true or false). Requires the gpio command to work.</p>
141     <p>Will set the selected physical pin high or low depending on the value passed in.</p>
142     <p><b>Note:</b> we are using the actual physical pin numbers on connector P1 as they are easier to locate.</p>
143 </script>
144
145 <script type="text/javascript">
146     RED.nodes.registerType('rpi-gpio out',{
147         category: 'advanced-output',
148         color:"#c6dbef",
149         defaults: {
150             name: { value:"" },
151             pin: { value:"",required:true,validate:RED.validators.number() },
152         },
153         inputs:1,
154         outputs:0,
155         icon: "rpi.png",
156         align: "right",
157         label: function() {
158             return this.name||"Pin: "+this.pin;
159         },
160         labelStyle: function() {
161             return this.name?"node_label_italic":"";
162         },
163         oneditprepare: function() {
164             $.getJSON('rpi-gpio/'+this.id,function(data) {
165                 $('#pitype').text(data.type);
166                 if (data.type === "Model B+") {
167                     $('#node-input-pin').append($("<option></option>").attr("value",27).text("27 - SDA0"));
168                     $('#node-input-pin').append($("<option></option>").attr("value",28).text("28 - SCL0"));
169                     $('#node-input-pin').append($("<option></option>").attr("value",29).text("29 - GPIO21"));
170                     $('#node-input-pin').append($("<option></option>").attr("value",31).text("31 - GPIO22"));
171                     $('#node-input-pin').append($("<option></option>").attr("value",32).text("32 - GPIO26"));
172                     $('#node-input-pin').append($("<option></option>").attr("value",33).text("33 - GPIO23"));
173                     $('#node-input-pin').append($("<option></option>").attr("value",35).text("35 - GPIO24"));
174                     $('#node-input-pin').append($("<option></option>").attr("value",36).text("36 - GPIO27"));
175                     $('#node-input-pin').append($("<option></option>").attr("value",37).text("37 - GPIO25"));
176                     $('#node-input-pin').append($("<option></option>").attr("value",38).text("38 - GPIO28"));
177                     $('#node-input-pin').append($("<option></option>").attr("value",40).text("40 - GPIO29"));
178                 }
179             });
180         }
181     });
182 </script>