UNPKG

sensorium

Version:

makeblock mainboards protocol api

50 lines (45 loc) 1.06 kB
import { validateNumber } from '../core/validate'; import {composer} from '../core/utils'; import Electronic from './electronic'; import protocolAssembler from '../protocol/cmd'; import Control from '../core/control'; /** * @description It is a base Class of Gyro * @extends Electronic */ class BaseGyro extends Electronic { /** * Create a gyro. */ constructor(port) { super(); this.args = { port: validateNumber(port), axis: 0 }; } /** * Set axis in order to get the coordinates by getData * @param {Number} axis X轴(01) Y轴(02) Z轴(03) * @return {Instance} return instance */ axis(axis){ this.args.axis = validateNumber(axis, this.args.axis); return this; } /** * getter of protocol */ get protocol() { const buf = composer(protocolAssembler.readGyro, [this.args.port, this.args.axis]); return buf; } /** * Get data of Gyro sensor * @return {Promise} */ async getData() { return await Control.read(this.protocol); } } export default BaseGyro;