node-enocean-ts
Version:
Typescript full implementation of the enocean protocol (ESP3 + EEP2.6)
98 lines • 3.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = {
extractByteValue: function (ByteNr, minByte, maxByte, minValue, maxValue, data) {
var rawVal = 0;
var rawByte = parseInt(data, 16);
switch (ByteNr) {
case 1:
rawVal = (rawByte & 0xff00) >>> 8;
break;
case 2:
rawVal = (rawByte & 0xff0000) >>> 16;
break;
case 3:
rawVal = (rawByte & 0xff000000) >>> 24;
break;
}
return ((maxValue - minValue) / (maxByte - minByte)) * (rawVal - minByte) + minValue;
},
extract10BitValue: function (ByteBase, minByte, maxByte, minValue, maxValue, data) {
var rawVal = 0;
var rawByte = parseInt(data, 16);
switch (ByteBase) {
case 1:
rawVal = (rawByte & 0x3ff00) >>> 8;
break;
case 2:
rawVal = (rawByte & 0x3ff0000) >>> 16;
break;
}
return ((maxValue - minValue) / (maxByte - minByte)) * (rawVal - minByte) + minValue;
},
extract10BitValueReverse: function (ByteBase, minByte, maxByte, minValue, maxValue, data) {
var rawVal = 0;
var rawByte = parseInt(data, 16);
switch (ByteBase) {
case 1:
rawVal = (rawByte & parseInt("1111111111000000", 2)) >>> 6;
break;
case 2:
rawVal = (rawByte & parseInt("111111111100000000000000", 2)) >>> 14;
//rawVal = (rawByte & 0x3ff0000) >>> 16
break;
case 3:
rawVal = (rawByte & parseInt("11111111110000000000000000000000", 2)) >>> 22;
//rawVal = (rawByte & 0x3ff0000) >>> 16
break;
}
return ((maxValue - minValue) / (maxByte - minByte)) * (rawVal - minByte) + minValue;
},
extractBitValue: function (ByteNr, BitStart, BitLength, data) {
var rawVal = 0;
var rawByte = parseInt(data, 16);
switch (ByteNr) {
case 0:
rawVal = (rawByte & 0xff);
break;
case 1:
rawVal = (rawByte & 0xff00) >>> 8;
break;
case 2:
rawVal = (rawByte & 0xff0000) >>> 16;
break;
case 3:
rawVal = (rawByte & 0xff000000) >>> 24;
break;
}
var finalValue = Math.pow(2, BitStart);
for (var i = 1; i < BitLength; i++) {
finalValue += Math.pow(2, BitStart + i);
}
return ((rawByte & finalValue) >>> BitStart);
},
extractBitEnum: function (ByteNr, BitStart, BitLength, data, ENUM) {
var rawVal = 0;
var rawByte = parseInt(data, 16);
switch (ByteNr) {
case 0:
rawVal = (rawByte & 0xff);
break;
case 1:
rawVal = (rawByte & 0xff00) >>> 8;
break;
case 2:
rawVal = (rawByte & 0xff0000) >>> 16;
break;
case 3:
rawVal = (rawByte & 0xff000000) >>> 24;
break;
}
var finalValue = Math.pow(2, BitStart);
for (var i = 1; i < BitLength; i++) {
finalValue += Math.pow(2, BitStart + i);
}
return ENUM[((rawByte & finalValue) >>> BitStart)];
}
};
//# sourceMappingURL=eepHelper.js.map