UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

127 lines 4.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SensorObject = exports.SensorCalibrationData = void 0; const tslib_1 = require("tslib"); const utils_1 = require("../../utils"); const decorators_1 = require("../decorators"); const position_1 = require("../position"); const values_1 = require("../values"); const DataObject_1 = require("./DataObject"); /** * Sensor calibration data */ let SensorCalibrationData = class SensorCalibrationData { }; exports.SensorCalibrationData = SensorCalibrationData; tslib_1.__decorate([ (0, decorators_1.SerializableMember)(() => utils_1.Unit), tslib_1.__metadata("design:type", utils_1.Unit) ], SensorCalibrationData.prototype, "unit", void 0); tslib_1.__decorate([ (0, decorators_1.SerializableMember)(), tslib_1.__metadata("design:type", Object) ], SensorCalibrationData.prototype, "offset", void 0); tslib_1.__decorate([ (0, decorators_1.SerializableMember)(), tslib_1.__metadata("design:type", Object) ], SensorCalibrationData.prototype, "multiplier", void 0); exports.SensorCalibrationData = SensorCalibrationData = tslib_1.__decorate([ (0, decorators_1.SerializableObject)() ], SensorCalibrationData); /** * A sensor object is a {@link DataObject} that is a sensor with a value. */ let SensorObject = class SensorObject extends DataObject_1.DataObject { constructor(uid, value, frequency, displayName) { super(uid, displayName); this.value = value !== null && value !== void 0 ? value : {}; this.frequency = frequency; } /** * Get the sensor timestamp * @returns {number} timestamp */ get timestamp() { return this.value instanceof values_1.SensorValue || this.value instanceof position_1.Orientation ? this.value.timestamp : this.createdTimestamp; } /** * Raw value before calibration * @returns {SensorValue | object | Orientation} raw sensor value */ get raw() { if (this.calibrationData) { if (this.value instanceof values_1.SensorValue) { let result = this.value.clone(); const offset = this.calibrationData.offset; const multiplier = this.calibrationData.multiplier; if (multiplier) { result = result.divide(multiplier); } if (offset) { result = result.sub(offset); } return result; } else { return this.value; } } else if (typeof this.value === 'number') { const offset = this.calibrationData.offset; const multiplier = this.calibrationData.multiplier; return (this.value / (multiplier !== null && multiplier !== void 0 ? multiplier : 1) - (offset !== null && offset !== void 0 ? offset : 0)); } else { return this.value; } } set raw(value) { if (this.calibrationData) { if (value instanceof values_1.SensorValue) { let result = value.clone(); const offset = this.calibrationData.offset; const multiplier = this.calibrationData.multiplier; if (offset) { result = result.add(offset); } if (multiplier) { result = result.multiply(multiplier); } this.value = result; } else { this.value = value; } } else if (typeof value === 'number') { const offset = this.calibrationData.offset; const multiplier = this.calibrationData.multiplier; this.value = ((value + (offset !== null && offset !== void 0 ? offset : 0)) * (multiplier !== null && multiplier !== void 0 ? multiplier : 1)); } else { this.value = value; } } }; exports.SensorObject = SensorObject; tslib_1.__decorate([ (0, decorators_1.SerializableMember)(), tslib_1.__metadata("design:type", Object) ], SensorObject.prototype, "value", void 0); tslib_1.__decorate([ (0, decorators_1.SerializableMember)({ numberType: decorators_1.NumberType.DECIMAL, }), tslib_1.__metadata("design:type", Number) ], SensorObject.prototype, "frequency", void 0); tslib_1.__decorate([ (0, decorators_1.SerializableMember)(), tslib_1.__metadata("design:type", SensorCalibrationData) ], SensorObject.prototype, "calibrationData", void 0); exports.SensorObject = SensorObject = tslib_1.__decorate([ (0, decorators_1.SerializableObject)(), tslib_1.__metadata("design:paramtypes", [String, Object, Number, String]) ], SensorObject); //# sourceMappingURL=SensorObject.js.map