compare, convertValue function
This commit is contained in:
101
utils/lib.js
101
utils/lib.js
@@ -1,2 +1,99 @@
|
|||||||
console.loggerName = 'js.watch';
|
console.loggerName = 'js.lib';
|
||||||
console.log('Load lib module');
|
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