openi2c
Version:
This library is a set of cross platform drivers for common I2C devices.
110 lines (109 loc) • 3.68 kB
TypeScript
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;
};