@openhps/core
Version:
Open Hybrid Positioning System - Core component
46 lines • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActuatorObject = exports.ActuatorProperty = void 0;
const tslib_1 = require("tslib");
const decorators_1 = require("../decorators");
const DataObject_1 = require("./DataObject");
let ActuatorProperty = class ActuatorProperty {
};
exports.ActuatorProperty = ActuatorProperty;
tslib_1.__decorate([
(0, decorators_1.SerializableMember)(),
tslib_1.__metadata("design:type", String)
], ActuatorProperty.prototype, "name", void 0);
tslib_1.__decorate([
(0, decorators_1.SerializableMember)(),
tslib_1.__metadata("design:type", Function)
], ActuatorProperty.prototype, "callback", void 0);
exports.ActuatorProperty = ActuatorProperty = tslib_1.__decorate([
(0, decorators_1.SerializableObject)()
], ActuatorProperty);
/**
* An actuator object is a spatial object with actuator properties
* that can trigger a state change.
*/
let ActuatorObject = class ActuatorObject extends DataObject_1.DataObject {
constructor() {
super(...arguments);
this.properties = new Map();
}
invoke(method, ...args) {
const property = this.properties.get(method);
if (!property) {
return Promise.resolve(undefined);
}
return property.callback(args);
}
};
exports.ActuatorObject = ActuatorObject;
tslib_1.__decorate([
(0, decorators_1.SerializableMapMember)(String, () => ActuatorProperty),
tslib_1.__metadata("design:type", Map)
], ActuatorObject.prototype, "properties", void 0);
exports.ActuatorObject = ActuatorObject = tslib_1.__decorate([
(0, decorators_1.SerializableObject)()
], ActuatorObject);
//# sourceMappingURL=ActuatorObject.js.map