aboutsummaryrefslogtreecommitdiffstats
path: root/dgbuilder/core_nodes/logic/16-range.html
diff options
context:
space:
mode:
Diffstat (limited to 'dgbuilder/core_nodes/logic/16-range.html')
-rw-r--r--dgbuilder/core_nodes/logic/16-range.html81
1 files changed, 81 insertions, 0 deletions
diff --git a/dgbuilder/core_nodes/logic/16-range.html b/dgbuilder/core_nodes/logic/16-range.html
new file mode 100644
index 00000000..5f87128f
--- /dev/null
+++ b/dgbuilder/core_nodes/logic/16-range.html
@@ -0,0 +1,81 @@
+<!--
+ 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">
+ <label for="node-input-action"><i class="fa fa-dot-circle-o"></i> Action</label>
+ <select id="node-input-action" style="width:70%; margin-right:5px;">
+ <option value="scale">Scale msg.payload</option>
+ <option value="clamp">Scale and limit to the target range</option>
+ <option value="roll">Scale and wrap within the target range</option>
+ </select>
+ </div>
+ <br/>
+ <div class="form-row"><i class="fa fa-sign-in"></i> Map the input range:</div>
+ <div class="form-row"><label></label>
+ from: <input type="text" id="node-input-minin" placeholder="e.g. 0" style="width:100px;"/>
+ &nbsp;&nbsp;to: <input type="text" id="node-input-maxin" placeholder="e.g. 99" style="width:100px;"/>
+ </div>
+ <div class="form-row"><i class="fa fa-sign-out"></i> to the result range:</div>
+ <div class="form-row"><label></label>
+ from: <input type="text" id="node-input-minout" placeholder="e.g. 0" style="width:100px;"/>
+ &nbsp;&nbsp;to: <input type="text" id="node-input-maxout" placeholder="e.g. 255" style="width:100px;"/>
+ </div>
+ <br/>
+ <div class="form-row"><label></label>
+ <input type="checkbox" id="node-input-round" style="display: inline-block; width: auto; vertical-align: top;">
+ <label style="width: auto;" for="node-input-round">Round result to the nearest integer?</label></input>
+ </div>
+ <br/>
+ <div class="form-row">
+ <label for="node-input-name"><i class="fa fa-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>
+ <p><i>Scale and limit to target range</i> means that the result will never be outside the range specified within the result range.</p>
+ <p><i>Scale and wrap within the target range</i> means that the result will essentially be a "modulo-style" wrap-around within the result range.</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>