Changed code to allow for default values to be used

This commit is contained in:
juggledad 2020-11-14 06:08:35 -05:00 committed by GitHub
parent 18c3aa737e
commit 78bb05cc04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -9,31 +9,32 @@ module.exports = function(RED) {
this.inte = n.inte || false; this.inte = n.inte || false;
this.property = n.property||"payload"; this.property = n.property||"payload";
var node = this; var node = this;
var tmp = {}; var tmp = {};
this.on("input", function(msg) { this.on("input", function(msg) {
if (node.low === "") { if (node.low) { // if the the node has a value use it
tmp.low = 1; tmp.low = node.low
if ('from' in msg) { } else { // if 'from' in the msg, use it or default to 1
tmp.low = msg.from} tmp.low = ('from' in msg) ? msg.from : 1;
} }
if (node.high === "") { if (node.high) { // if the the node has a value use it
tmp.high = 10; tmp.high = node.high
if ('to' in msg) {tmp.high = msg.to} } else { // if 'to' in the msg, use it or default to 1
tmp.high = ('to' in msg) ? msg.to : 10;
} }
// if tmp.low or tmp.high is not a number flag an error and do not send out a msg // if tmp.low or high are not numbers, send an error msg
if ( (isNaN(tmp.low)) || (isNaN(tmp.high)) ) { if ( (isNaN(tmp.low)) || (isNaN(tmp.high)) ) {
this.error({node:"random",text:"one of the input values is not a number"}) this.error({node:"random",text:"one of the input values is not a number"})
} }
else { else {
// force tmp.high/low to Numbers since they may be a string // force tmp.high/low to Numbers since they may be a string
tmp.low = Number(tmp.low) tmp.low = Number(tmp.low)
tmp.high = Number(tmp.high) tmp.high = Number(tmp.high)
// flip the values if low > high so random will work // flip the values if low > high so random will work
var value = 0; var value = 0;
if (tmp.low > tmp.high) { if (tmp.low > tmp.high) {
value = tmp.low value = tmp.low
@ -41,9 +42,9 @@ module.exports = function(RED) {
tmp.high = value tmp.high = value
} }
// if returning an integer, do a parseInt() on the low and high values // if returning an integer, do a parseInt() on the low and high values
// before generate the random number. This must be done to insure the rounding // before generate the random number. This must be done to insure the rounding
// doesn't go up if using something like 4.7 or you can end up with 5 // doesn't go up if using something like 4.7 or you can end up with 5
if ( (node.inte == "true") || (node.inte === true) ) { if ( (node.inte == "true") || (node.inte === true) ) {
tmp.low = parseInt(tmp.low); tmp.low = parseInt(tmp.low);
tmp.high = parseInt(tmp.high); tmp.high = parseInt(tmp.high);
@ -55,7 +56,7 @@ module.exports = function(RED) {
RED.util.setMessageProperty(msg,node.property,value); RED.util.setMessageProperty(msg,node.property,value);
node.send(msg); node.send(msg);
} }
}); });
} }
RED.nodes.registerType("random",RandomNode); RED.nodes.registerType("random",RandomNode);