@openhps/core
Version:
Open Hybrid Positioning System - Core component
29 lines (25 loc) • 868 B
text/typescript
import { SerializableMapMember, SerializableMember, SerializableObject } from '../decorators';
import { DataObject } from './DataObject';
()
export class ActuatorProperty {
()
name: string;
()
callback: (...args: any[]) => Promise<any>;
}
/**
* An actuator object is a spatial object with actuator properties
* that can trigger a state change.
*/
()
export class ActuatorObject extends DataObject {
(String, () => ActuatorProperty)
protected properties: Map<string, ActuatorProperty> = new Map();
invoke(method: string, ...args: any[]): Promise<any> {
const property = this.properties.get(method);
if (!property) {
return Promise.resolve(undefined);
}
return property.callback(args);
}
}