@openhps/core
Version:
Open Hybrid Positioning System - Core component
28 lines • 1.26 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { SerializableMapMember, SerializableMember, SerializableObject } from '../decorators';
import { DataObject } from './DataObject';
let ActuatorProperty = class ActuatorProperty {};
__decorate([SerializableMember(), __metadata("design:type", String)], ActuatorProperty.prototype, "name", void 0);
__decorate([SerializableMember(), __metadata("design:type", Function)], ActuatorProperty.prototype, "callback", void 0);
ActuatorProperty = __decorate([SerializableObject()], ActuatorProperty);
export { ActuatorProperty };
/**
* An actuator object is a spatial object with actuator properties
* that can trigger a state change.
*/
let ActuatorObject = class ActuatorObject extends 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);
}
};
__decorate([SerializableMapMember(String, () => ActuatorProperty), __metadata("design:type", Map)], ActuatorObject.prototype, "properties", void 0);
ActuatorObject = __decorate([SerializableObject()], ActuatorObject);
export { ActuatorObject };