60 satır
1.2 KiB
JavaScript

// Licensed under the MIT license, see LICENSE file.
// Author: Per Malmberg (https://github.com/PerMalmberg)
var NodeHelper = function( node ) {
var myNode = node;
var self = this;
var decimal = /^\s*[+-]{0,1}\s*([\d]+(\.[\d]*)*)\s*$/
this.ToBoolean = function( value ) {
var res = false;
if (typeof value === 'boolean') {
res = value;
}
else if( typeof value === 'number' || typeof value === 'string' ) {
// Is it formated as a decimal number?
if( decimal.test( value ) ) {
var v = parseFloat( value );
res = v != 0;
}
else {
res = value.toLowerCase() === "true";
}
}
return res;
};
this.DisplayStatus = function( value ) {
myNode.status(
{
fill: value ? "green" : "red",
shape: value ? "dot" : "ring",
text: value ? "true" : "false"
}
);
};
this.DisplayUnkownStatus = function() {
myNode.status(
{
fill: "gray",
shape: "dot",
text: "Unknown"
});
};
this.SetResult = function( value, optionalTopic ) {
self.DisplayStatus( value );
var msg = {
topic: optionalTopic === undefined ? "result" : optionalTopic,
payload: value
};
myNode.send(msg);
};
};
module.exports = NodeHelper;