mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	Merge branch 'master' of github.com:node-red/node-red
This commit is contained in:
		| @@ -34,7 +34,7 @@ function ExecNode(n) { | ||||
|                 // then prepend with the msg.payload | ||||
|                 var arg = node.append.split(","); | ||||
|                 if (msg.payload != " ") { arg.unshift(msg.payload); } | ||||
|                 //console.log(arg); | ||||
|                 node.log(node.cmd+" "+arg); | ||||
|                 var ex = spawn(node.cmd,arg); | ||||
|                 ex.stdout.on('data', function (data) { | ||||
|                     //console.log('[exec] stdout: ' + data); | ||||
| @@ -55,6 +55,7 @@ function ExecNode(n) { | ||||
|  | ||||
|             else { | ||||
|                 var cl = node.cmd+" "+msg.payload+" "+node.append; | ||||
|                 node.log(cl); | ||||
|                 var child = exec(cl, function (error, stdout, stderr) { | ||||
|                     msg.payload = stdout; | ||||
|                     var msg2 = {payload:stderr}; | ||||
|   | ||||
							
								
								
									
										78
									
								
								nodes/core/logic/16-range.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								nodes/core/logic/16-range.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,78 @@ | ||||
| <!-- | ||||
|   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="range"> | ||||
|     <div class="form-row"> | ||||
|         Re-map input values between<br/> | ||||
|         <input type="text" id="node-input-minin" placeholder="0" style="width:35%;"/> | ||||
|         and | ||||
|         <input type="text" id="node-input-maxin" placeholder="256" style="width:35%;"/> | ||||
|     </div> | ||||
|     <div class="form-row"> | ||||
|         to be between<br/> | ||||
|         <input type="text" id="node-input-minout" placeholder="0" style="width:35%;"/> | ||||
|         and | ||||
|         <input type="text" id="node-input-maxout" placeholder="100" style="width:35%;"/> | ||||
|     </div> | ||||
|     <div class="form-row"> | ||||
|         and <select id="node-input-action" style="width:90%; margin-right:5px;"> | ||||
|             <option value="scale">try to scale if outside this range</option> | ||||
|             <option value="clamp">clamp to max and min values of this range</option> | ||||
|             <option value="roll">perform modulus to keep within this range</option> | ||||
|         </select> | ||||
|     </div> | ||||
|     <div class="form-row"> | ||||
|         <label for="node-input-round" style="width:200px;">Round to nearest integer ?</label> | ||||
|         <input type="checkbox" id="node-input-round" style="display: inline-block; width: auto; vertical-align: top;"> | ||||
|     </div> | ||||
|     <br/> | ||||
|     <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" id="node-tip">Tip: This node ONLY works with numbers.</div> | ||||
| </script> | ||||
|  | ||||
| <script type="text/x-red" data-help-name="range"> | ||||
|     <p>A simple function node to remap numeric input values to another scale.</p> | ||||
|     <p>Currently only does a linear scaling.</p> | ||||
|     <p><b>Note:</b> This only operates on <b>numbers</b>. Anything else will try to be made into a number and rejected if that fails.</p> | ||||
| </script> | ||||
|  | ||||
| <script type="text/javascript"> | ||||
|     RED.nodes.registerType('range', { | ||||
|         color: "#E2D96E", | ||||
|         category: 'function', | ||||
|         defaults: { | ||||
|             minin: {value:"",required:true,validate:RED.validators.number()}, | ||||
|             maxin: {value:"",required:true,validate:RED.validators.number()}, | ||||
|             minout: {value:"",required:true,validate:RED.validators.number()}, | ||||
|             maxout: {value:"",required:true,validate:RED.validators.number()}, | ||||
|             action: {value:"scale"}, | ||||
|             round: {value:false}, | ||||
|             name: {value:""} | ||||
|         }, | ||||
|         inputs: 1, | ||||
|         outputs: 1, | ||||
|         icon: "range.png", | ||||
|         label: function() { | ||||
|             return this.name || "range"; | ||||
|         }, | ||||
|         labelStyle: function() { | ||||
|             return this.name ? "node_label_italic" : ""; | ||||
|         } | ||||
|     }); | ||||
| </script> | ||||
							
								
								
									
										47
									
								
								nodes/core/logic/16-range.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								nodes/core/logic/16-range.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| /** | ||||
|  * 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(process.env.NODE_RED_HOME + "/red/red"); | ||||
|  | ||||
| function RangeNode(n) { | ||||
|     RED.nodes.createNode(this, n); | ||||
|     this.action = n.action; | ||||
|     this.round = n.round || false; | ||||
|     this.minin = Number(n.minin); | ||||
|     this.maxin = Number(n.maxin); | ||||
|     this.minout = Number(n.minout); | ||||
|     this.maxout = Number(n.maxout); | ||||
|     var node = this; | ||||
|  | ||||
|     this.on('input', function (msg) { | ||||
|         var n = Number(msg.payload); | ||||
|         if (!isNaN(n)) { | ||||
|             if (node.action == "clamp") { | ||||
|                 if (n < node.minin) { n = node.minin; } | ||||
|                 if (n > node.maxin) { n = node.maxin; } | ||||
|             } | ||||
|             if (node.action == "roll") { | ||||
|                 if (n >= node.maxin) { n = (n - node.minin) % (node.maxin - node.minin) + node.minin; } | ||||
|                 if (n <  node.minin) { n = (n - node.minin) % (node.maxin - node.minin) + node.maxin; } | ||||
|             } | ||||
|             msg.payload = ((n - node.minin) / (node.maxin - node.minin) * (node.maxout - node.minout)) + node.minout; | ||||
|             if (node.round) { msg.payload = Math.round(msg.payload); } | ||||
|             node.send(msg); | ||||
|         } | ||||
|         else { node.log("Not a number: "+msg.payload); } | ||||
|     }); | ||||
| } | ||||
| RED.nodes.registerType("range", RangeNode); | ||||
							
								
								
									
										
											BIN
										
									
								
								public/icons/range.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								public/icons/range.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 500 B | 
		Reference in New Issue
	
	Block a user