mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	Add PiBorg's LEDBorg to the hardware family... (only works on Pi - and only if installed :-)
This commit is contained in:
		
							
								
								
									
										50
									
								
								nodes/hardware/78-ledborg.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								nodes/hardware/78-ledborg.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | ||||
| <!-- | ||||
|   Copyright 2013 IBM Corp. | ||||
|  | ||||
|   Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|   you may not use this file except in compliance with the License. | ||||
|   You may obtain a copy of the License at | ||||
|  | ||||
|   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|   Unless required by applicable law or agreed to in writing, software | ||||
|   distributed under the License is distributed on an "AS IS" BASIS, | ||||
|   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|   See the License for the specific language governing permissions and | ||||
|   limitations under the License. | ||||
| --> | ||||
|  | ||||
| <script type="text/x-red" data-template-name="ledborg"> | ||||
|     <div class="form-row"> | ||||
|         <label for="node-input-name"><i class="icon-tag"></i> Name</label> | ||||
|         <input type="text" id="node-input-name" placeholder="Name"> | ||||
|     </div> | ||||
|     <div class="form-tips">Expects a msg.payload with PiBorg three digit rgb colour string. 000 -> 222</div> | ||||
| </script> | ||||
|  | ||||
| <script type="text/x-red" data-help-name="ledborg"> | ||||
| 	<p>PiBorg LedBorg LED output node. Expects a <b>msg.payload</b> with a three digit rgb triple, from <b>000</b> to <b>222</b>.</p> | ||||
| 	<p>See <i><a href="http://www.piborg.com/ledborg/install" target="_new">the PiBorg site</a></i> for more information.</p> | ||||
| 	<p>You can also now use a <b>msg.payload</b> in the standard hex format "#rrggbb". The clip levels are :</p> | ||||
| 	<p><pre>0x00 - 0x57 = off<br/>0x58 - 0xA7 = 50%<br/>0xA8 - 0xFF = fully on</pre></p> | ||||
| </script> | ||||
|  | ||||
| <script type="text/javascript"> | ||||
|     RED.nodes.registerType('ledborg',{ | ||||
|         category: 'output', | ||||
|         color:"GoldenRod", | ||||
|         defaults: { | ||||
|             name: {value:""} | ||||
|         }, | ||||
|         inputs:1, | ||||
|         outputs:0, | ||||
|         icon: "light.png", | ||||
|         align: "right", | ||||
|         label: function() { | ||||
|             return this.name||"ledborg"; | ||||
|         }, | ||||
|         labelStyle: function() { | ||||
|             return this.name?"node_label_italic":""; | ||||
|         } | ||||
|     }); | ||||
| </script> | ||||
							
								
								
									
										51
									
								
								nodes/hardware/78-ledborg.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								nodes/hardware/78-ledborg.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| /** | ||||
|  * Copyright 2013 IBM Corp. | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  * http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  **/ | ||||
|  | ||||
| var RED = require("../../red/red"); | ||||
| var util =  require('util'); | ||||
| var fs =  require('fs'); | ||||
|  | ||||
| // read from /dev/ledborg to see if it exists - if not then don't even show the node. | ||||
| try { var rc = fs.readFileSync("/dev/ledborg"); } | ||||
| catch (err) { util.log("[77-ledborg.js] Error: PiBorg hardware : LedBorg not found"); return; } | ||||
|  | ||||
| function LedBorgNode(n) { | ||||
| 	RED.nodes.createNode(this,n); | ||||
| 	var p1 = /[0-2][0-2][0-2]/ | ||||
| 	var p2 = /^\#[A-Za-z0-9]{6}$/ | ||||
| 	var node = this; | ||||
|  | ||||
| 	this.on("input", function(msg) { | ||||
| 		if (p1.test(msg.payload)) { | ||||
| 			fs.writeFile('/dev/ledborg', msg.payload, function (err) { | ||||
| 				if (err) node.warn(msg.payload+" : No LedBorg found"); | ||||
| 			}); | ||||
| 		} | ||||
| 		if (p2.test(msg.payload)) { | ||||
| 			var r = Math.floor(parseInt(msg.payload.slice(1,3),16)/88).toString(); | ||||
| 			var g = Math.floor(parseInt(msg.payload.slice(3,5),16)/88).toString(); | ||||
| 			var b = Math.floor(parseInt(msg.payload.slice(5),16)/88).toString(); | ||||
| 			fs.writeFile('/dev/ledborg', r+g+b, function (err) { | ||||
| 				if (err) node.warn(r+g+b+" : No LedBorg found"); | ||||
| 			}); | ||||
| 		} | ||||
| 		else { | ||||
| 			node.warn("Invalid LedBorg colour code"); | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
|  | ||||
| RED.nodes.registerType("ledborg",LedBorgNode); | ||||
		Reference in New Issue
	
	Block a user