UNPKG

openi2c

Version:

This library is a set of cross platform drivers for common I2C devices.

110 lines (109 loc) 3.68 kB
import { Module } from '../Module'; export * from './constants'; import { AVAIL_SENSOR_REPORTS } from './constants'; export declare const defaultConfig: { ADDRESS: number; DATA_BUFFER_SIZE: number; PACKET_READ_TIMEOUT: number; }; type Config = typeof defaultConfig; export declare class BNO08X extends Module<Config> { private dataBuffer; private commandBuffer; private readings; private meCalibrationStartedAt; private calibrationComplete; private magnetometerAccuracy; private waitForInitialize; private initComplete; private idRead; private packetSlices; private sequenceNumber; private twoEndedSequenceNumbers; private dcdSavedAt; constructor(busNumber?: number, address?: number, config?: Partial<Config>); /** * Initialize the sensor */ init(): Promise<void>; getFeatureEnableReport(featureId: keyof typeof AVAIL_SENSOR_REPORTS, sensorSpecificConfig?: number, reportInterval?: number): Buffer; beginCalibration(): Promise<void>; calibrationStatus(): Promise<number>; private sendMeCommand; private incrementReportSeq; private getReportSeqId; private insertCommandRequestReport; /** * Used to enable a given feature of the BNO08x */ enableFeature(featureId: keyof typeof AVAIL_SENSOR_REPORTS): Promise<void>; /** * A tuple representing the acceleration measurements on the X, Y, and Z * axes in meters per second squared */ acceleration(): Promise<[number, number, number]>; /** * Get the roll pitch yaw on xyz axis using acceleration */ euler(): Promise<[number, number, number]>; /** * A tuple representing Gyro's rotation measurements on the X, Y, and Z * axes in radians per second */ gyro(): Promise<[number, number, number]>; /** * A tuple of the current magnetic field measurements on the X, Y, and Z axes */ magnetic(): Promise<[number, number, number]>; /** * The current heading in degrees */ heading(): Promise<number>; /** * A quaternion representing the current rotation vector */ quaternion(): Promise<[number, number, number, number]>; /** * A quaternion representing the current rotation vector expressed as a quaternion with no * specific reference for heading, while roll and pitch are referenced against gravity. To * prevent sudden jumps in heading due to corrections, the `gameQuaternion` property is not * corrected using the magnetometer. Some drift is expected */ gameQuaternion(): Promise<[number, number, number, number]>; /** * The number of steps detected since the sensor was initialized */ steps(): Promise<number>; processAvailablePackets(maxPackets?: number | null): Promise<void>; private hardReset; /** * Reset the sensor to an initial unconfigured state */ private softReset; private checkId; private parseSensorId; private waitForPacketType; private reportLength; private separateBatch; private handlePacket; private handleCommandResponse; private handleControlReport; private processReport; private parseSensorReportData; private parseStepCounterReport; private parseShakeReport; private parseStabilityClassifierReport; private parseActivityClassifierReport; private waitForPacket; private readHeader; private readPacket; private updateSequenceNumber; private read; private dataReady; private sendPacket; } export declare const config: { ADDRESS: number; DATA_BUFFER_SIZE: number; PACKET_READ_TIMEOUT: number; };