compare, convertValue function
This commit is contained in:
99
utils/lib.js
99
utils/lib.js
@@ -1,2 +1,99 @@
|
||||
console.loggerName = 'js.watch';
|
||||
console.loggerName = 'js.lib';
|
||||
console.log('Load lib module');
|
||||
|
||||
|
||||
function compare(a, b, operator) {
|
||||
// Hint: a = currentState, b = targetState
|
||||
let logMsg = a + ', ' + b + ' with operator ' + operator;
|
||||
let returnValue = undefined;
|
||||
try {
|
||||
logMsg = 'Quantity comparison of ' + logMsg;
|
||||
switch (operator) {
|
||||
case '==':
|
||||
returnValue = a.equal(b);
|
||||
break;
|
||||
case '!=':
|
||||
returnValue = !a.equal(b);
|
||||
break;
|
||||
case '<' :
|
||||
returnValue = a.lessThan(b);
|
||||
break;
|
||||
case '<=':
|
||||
returnValue = a.lessThanOrEqual(b);
|
||||
break;
|
||||
case '>' :
|
||||
returnValue = a.greaterThan(b);
|
||||
break;
|
||||
case '>=':
|
||||
returnValue = a.greaterThanOrEqual(b);
|
||||
break;
|
||||
}
|
||||
} catch(e) {
|
||||
logMsg = 'Standard comparison of ' + logMsg;
|
||||
switch (operator) {
|
||||
case '==':
|
||||
returnValue = (a == b);
|
||||
break;
|
||||
case '!=':
|
||||
returnValue = !(a == b);
|
||||
break;
|
||||
case '<' :
|
||||
returnValue = (a < b);
|
||||
break;
|
||||
case '<=':
|
||||
returnValue = (a <= b);
|
||||
break;
|
||||
case '>' :
|
||||
returnValue = (a > b);
|
||||
break;
|
||||
case '>=':
|
||||
returnValue = (a >= b);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (returnValue == undefined) {
|
||||
console.error('No valid operator provided');
|
||||
} else {
|
||||
console.debug(logMsg);
|
||||
}
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
function convertValue(value) {
|
||||
console.debug('Converting value ' + value + ' of type ' + typeof value);
|
||||
if(typeof value === 'string') {
|
||||
if(value.includes(' ')) {
|
||||
let logMsg = '';
|
||||
let returnValue;
|
||||
try {
|
||||
logMsg = 'Quantity: ' + value;
|
||||
returnValue = Quantity(value);
|
||||
} catch(e) {
|
||||
logMsg = 'Not a Quantity but has a space, leaving as a string: ' + value;
|
||||
returnValue = value;
|
||||
} finally {
|
||||
console.debug(logMsg);
|
||||
return returnValue;
|
||||
}
|
||||
} else if(!isNaN(value)) {
|
||||
console.debug('Number: ' + value)
|
||||
return Number.parseFloat(value);
|
||||
} else if(value == 'UnDefType' || value == 'NULL' || value == 'UNDEF') {
|
||||
console.debug('UnDefType: ' + value);
|
||||
return 'UnDefType';
|
||||
}
|
||||
console.debug('String: ' + value);
|
||||
return value;
|
||||
} else if(value instanceof DecimalType || value instanceof PercentType) {
|
||||
console.debug('DecimalType or PercentType: ' + value);
|
||||
return value.floatValue();
|
||||
} else if(value instanceof QuantityType) {
|
||||
console.debug('QuantityType: ' + value);
|
||||
return Quantity(value);
|
||||
} else {
|
||||
console.debug('String: ' + value);
|
||||
return value.toString();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user