UNPKG

bno055-imu-node

Version:

Interact with a BNO055 IMU from your Node.js app

222 lines (221 loc) 11.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BNO055_ID = 0xA0; exports.BNO055_CONFIG_MODE_WAIT = 20; exports.BNO055_MODE_SWITCH_WAIT = 8; var Axis; (function (Axis) { Axis[Axis["X"] = 0] = "X"; Axis[Axis["Y"] = 1] = "Y"; Axis[Axis["Z"] = 2] = "Z"; Axis[Axis["Invalid"] = 3] = "Invalid"; })(Axis = exports.Axis || (exports.Axis = {})); var AxisSign; (function (AxisSign) { AxisSign[AxisSign["Positive"] = 0] = "Positive"; AxisSign[AxisSign["Negative"] = 1] = "Negative"; })(AxisSign = exports.AxisSign || (exports.AxisSign = {})); var CalibrationStatus; (function (CalibrationStatus) { CalibrationStatus[CalibrationStatus["NotCalibrated"] = 0] = "NotCalibrated"; CalibrationStatus[CalibrationStatus["FullyCalibrated"] = 3] = "FullyCalibrated"; })(CalibrationStatus = exports.CalibrationStatus || (exports.CalibrationStatus = {})); var DeviceAddress; (function (DeviceAddress) { DeviceAddress[DeviceAddress["A"] = 40] = "A"; DeviceAddress[DeviceAddress["B"] = 41] = "B"; })(DeviceAddress = exports.DeviceAddress || (exports.DeviceAddress = {})); var PowerLevel; (function (PowerLevel) { PowerLevel[PowerLevel["Normal"] = 0] = "Normal"; PowerLevel[PowerLevel["Low"] = 1] = "Low"; PowerLevel[PowerLevel["Suspend"] = 2] = "Suspend"; })(PowerLevel = exports.PowerLevel || (exports.PowerLevel = {})); var SystemError; (function (SystemError) { SystemError[SystemError["None"] = 0] = "None"; SystemError[SystemError["PeripheralInitialization"] = 1] = "PeripheralInitialization"; SystemError[SystemError["SystemInitialization"] = 2] = "SystemInitialization"; SystemError[SystemError["SelfTestResultFailed"] = 3] = "SelfTestResultFailed"; SystemError[SystemError["RegisterMapValueOutOfRange"] = 4] = "RegisterMapValueOutOfRange"; SystemError[SystemError["RegisterMapAddressOutOfRange"] = 5] = "RegisterMapAddressOutOfRange"; SystemError[SystemError["RegisterMapWrite"] = 6] = "RegisterMapWrite"; SystemError[SystemError["BnoLowPowerModeNotAvailableForSelectedOperationMode"] = 7] = "BnoLowPowerModeNotAvailableForSelectedOperationMode"; SystemError[SystemError["AccelerometerPowerModeNotAvailable"] = 8] = "AccelerometerPowerModeNotAvailable"; SystemError[SystemError["FusionAlgorithmConfiguration"] = 9] = "FusionAlgorithmConfiguration"; SystemError[SystemError["SensorConfiguration"] = 10] = "SensorConfiguration"; })(SystemError = exports.SystemError || (exports.SystemError = {})); var SystemStatus; (function (SystemStatus) { SystemStatus[SystemStatus["Idle"] = 0] = "Idle"; SystemStatus[SystemStatus["Error"] = 1] = "Error"; SystemStatus[SystemStatus["InitializingPeripherals"] = 2] = "InitializingPeripherals"; SystemStatus[SystemStatus["Initialization"] = 3] = "Initialization"; SystemStatus[SystemStatus["ExecutingSelftest"] = 4] = "ExecutingSelftest"; SystemStatus[SystemStatus["RunningWithFusionAlgorithm"] = 5] = "RunningWithFusionAlgorithm"; SystemStatus[SystemStatus["RunningWithoutFusionAlgorithm"] = 6] = "RunningWithoutFusionAlgorithm"; })(SystemStatus = exports.SystemStatus || (exports.SystemStatus = {})); var EulerUnitScale; (function (EulerUnitScale) { EulerUnitScale[EulerUnitScale["Degs"] = 16] = "Degs"; EulerUnitScale[EulerUnitScale["Rads"] = 900] = "Rads"; })(EulerUnitScale = exports.EulerUnitScale || (exports.EulerUnitScale = {})); var TempUnitScale; (function (TempUnitScale) { TempUnitScale[TempUnitScale["C"] = 1] = "C"; TempUnitScale[TempUnitScale["F"] = 0.5] = "F"; })(TempUnitScale = exports.TempUnitScale || (exports.TempUnitScale = {})); /** Operation modes */ var OpMode; (function (OpMode) { OpMode[OpMode["Config"] = 0] = "Config"; /** Non-fusion */ OpMode[OpMode["AccelOnly"] = 1] = "AccelOnly"; OpMode[OpMode["MagOnly"] = 2] = "MagOnly"; OpMode[OpMode["GyroOnly"] = 3] = "GyroOnly"; OpMode[OpMode["AccelMag"] = 4] = "AccelMag"; OpMode[OpMode["AccelGyro"] = 5] = "AccelGyro"; OpMode[OpMode["MagGyro"] = 6] = "MagGyro"; OpMode[OpMode["AccelMagGyro"] = 7] = "AccelMagGyro"; /** Fusion */ OpMode[OpMode["Imu"] = 8] = "Imu"; OpMode[OpMode["Compass"] = 9] = "Compass"; OpMode[OpMode["ImuMagForGyro"] = 10] = "ImuMagForGyro"; OpMode[OpMode["FullFmcOff"] = 11] = "FullFmcOff"; OpMode[OpMode["FullFusion"] = 12] = "FullFusion"; })(OpMode = exports.OpMode || (exports.OpMode = {})); /** Page 0 Registers */ var Reg; (function (Reg) { /* Page ID register definition */ Reg[Reg["PAGE_ID"] = 7] = "PAGE_ID"; /* Components IDs */ Reg[Reg["DEVICE_ID"] = 0] = "DEVICE_ID"; Reg[Reg["ACCEL_ID"] = 1] = "ACCEL_ID"; Reg[Reg["MAG_ID"] = 2] = "MAG_ID"; Reg[Reg["GYRO_ID"] = 3] = "GYRO_ID"; Reg[Reg["SW_REV_ID_LSB"] = 4] = "SW_REV_ID_LSB"; Reg[Reg["SW_REV_ID_MSB"] = 5] = "SW_REV_ID_MSB"; Reg[Reg["BOOTLOADER_REV_ID"] = 6] = "BOOTLOADER_REV_ID"; /* Accel data */ Reg[Reg["ACCEL_DATA_X_LSB"] = 8] = "ACCEL_DATA_X_LSB"; Reg[Reg["ACCEL_DATA_X_MSB"] = 9] = "ACCEL_DATA_X_MSB"; Reg[Reg["ACCEL_DATA_Y_LSB"] = 10] = "ACCEL_DATA_Y_LSB"; Reg[Reg["ACCEL_DATA_Y_MSB"] = 11] = "ACCEL_DATA_Y_MSB"; Reg[Reg["ACCEL_DATA_Z_LSB"] = 12] = "ACCEL_DATA_Z_LSB"; Reg[Reg["ACCEL_DATA_Z_MSB"] = 13] = "ACCEL_DATA_Z_MSB"; /* Magnetometer data */ Reg[Reg["MAG_DATA_X_LSB"] = 14] = "MAG_DATA_X_LSB"; Reg[Reg["MAG_DATA_X_MSB"] = 15] = "MAG_DATA_X_MSB"; Reg[Reg["MAG_DATA_Y_LSB"] = 16] = "MAG_DATA_Y_LSB"; Reg[Reg["MAG_DATA_Y_MSB"] = 17] = "MAG_DATA_Y_MSB"; Reg[Reg["MAG_DATA_Z_LSB"] = 18] = "MAG_DATA_Z_LSB"; Reg[Reg["MAG_DATA_Z_MSB"] = 19] = "MAG_DATA_Z_MSB"; /* Gyro data */ Reg[Reg["GYRO_DATA_X_LSB"] = 20] = "GYRO_DATA_X_LSB"; Reg[Reg["GYRO_DATA_X_MSB"] = 21] = "GYRO_DATA_X_MSB"; Reg[Reg["GYRO_DATA_Y_LSB"] = 22] = "GYRO_DATA_Y_LSB"; Reg[Reg["GYRO_DATA_Y_MSB"] = 23] = "GYRO_DATA_Y_MSB"; Reg[Reg["GYRO_DATA_Z_LSB"] = 24] = "GYRO_DATA_Z_LSB"; Reg[Reg["GYRO_DATA_Z_MSB"] = 25] = "GYRO_DATA_Z_MSB"; /* Euler data */ Reg[Reg["EULER_H_LSB"] = 26] = "EULER_H_LSB"; Reg[Reg["EULER_H_MSB"] = 27] = "EULER_H_MSB"; Reg[Reg["EULER_R_LSB"] = 28] = "EULER_R_LSB"; Reg[Reg["EULER_R_MSB"] = 29] = "EULER_R_MSB"; Reg[Reg["EULER_P_LSB"] = 30] = "EULER_P_LSB"; Reg[Reg["EULER_P_MSB"] = 31] = "EULER_P_MSB"; /* Quaternion data */ Reg[Reg["QUATERNION_DATA_W_LSB"] = 32] = "QUATERNION_DATA_W_LSB"; Reg[Reg["QUATERNION_DATA_W_MSB"] = 33] = "QUATERNION_DATA_W_MSB"; Reg[Reg["QUATERNION_DATA_X_LSB"] = 34] = "QUATERNION_DATA_X_LSB"; Reg[Reg["QUATERNION_DATA_X_MSB"] = 35] = "QUATERNION_DATA_X_MSB"; Reg[Reg["QUATERNION_DATA_Y_LSB"] = 36] = "QUATERNION_DATA_Y_LSB"; Reg[Reg["QUATERNION_DATA_Y_MSB"] = 37] = "QUATERNION_DATA_Y_MSB"; Reg[Reg["QUATERNION_DATA_Z_LSB"] = 38] = "QUATERNION_DATA_Z_LSB"; Reg[Reg["QUATERNION_DATA_Z_MSB"] = 39] = "QUATERNION_DATA_Z_MSB"; /* Linear acceleration data */ Reg[Reg["LINEAR_ACCEL_DATA_X_LSB"] = 40] = "LINEAR_ACCEL_DATA_X_LSB"; Reg[Reg["LINEAR_ACCEL_DATA_X_MSB"] = 41] = "LINEAR_ACCEL_DATA_X_MSB"; Reg[Reg["LINEAR_ACCEL_DATA_Y_LSB"] = 42] = "LINEAR_ACCEL_DATA_Y_LSB"; Reg[Reg["LINEAR_ACCEL_DATA_Y_MSB"] = 43] = "LINEAR_ACCEL_DATA_Y_MSB"; Reg[Reg["LINEAR_ACCEL_DATA_Z_LSB"] = 44] = "LINEAR_ACCEL_DATA_Z_LSB"; Reg[Reg["LINEAR_ACCEL_DATA_Z_MSB"] = 45] = "LINEAR_ACCEL_DATA_Z_MSB"; /* Gravity data */ Reg[Reg["GRAVITY_DATA_X_LSB"] = 46] = "GRAVITY_DATA_X_LSB"; Reg[Reg["GRAVITY_DATA_X_MSB"] = 47] = "GRAVITY_DATA_X_MSB"; Reg[Reg["GRAVITY_DATA_Y_LSB"] = 48] = "GRAVITY_DATA_Y_LSB"; Reg[Reg["GRAVITY_DATA_Y_MSB"] = 49] = "GRAVITY_DATA_Y_MSB"; Reg[Reg["GRAVITY_DATA_Z_LSB"] = 50] = "GRAVITY_DATA_Z_LSB"; Reg[Reg["GRAVITY_DATA_Z_MSB"] = 51] = "GRAVITY_DATA_Z_MSB"; /* Temperature data */ Reg[Reg["TEMP"] = 52] = "TEMP"; /* Status registers */ Reg[Reg["CALIB_STAT"] = 53] = "CALIB_STAT"; Reg[Reg["SELFTEST_RESULT"] = 54] = "SELFTEST_RESULT"; Reg[Reg["INTR_STAT"] = 55] = "INTR_STAT"; Reg[Reg["SYS_CLK_STAT"] = 56] = "SYS_CLK_STAT"; Reg[Reg["SYS_STAT"] = 57] = "SYS_STAT"; Reg[Reg["SYS_ERR"] = 58] = "SYS_ERR"; /* Unit selectio */ Reg[Reg["UNIT_SEL"] = 59] = "UNIT_SEL"; Reg[Reg["DATA_SELECT"] = 60] = "DATA_SELECT"; /* Modes */ Reg[Reg["OPR_MODE"] = 61] = "OPR_MODE"; Reg[Reg["PWR_MODE"] = 62] = "PWR_MODE"; Reg[Reg["SYS_TRIGGER"] = 63] = "SYS_TRIGGER"; Reg[Reg["TEMP_SOURCE"] = 64] = "TEMP_SOURCE"; /* Axis remap */ Reg[Reg["AXIS_MAP_CONFIG"] = 65] = "AXIS_MAP_CONFIG"; Reg[Reg["AXIS_MAP_SIGN"] = 66] = "AXIS_MAP_SIGN"; /* Accelerometer offset */ Reg[Reg["ACCEL_OFFSET_X_LSB"] = 85] = "ACCEL_OFFSET_X_LSB"; Reg[Reg["ACCEL_OFFSET_X_MSB"] = 86] = "ACCEL_OFFSET_X_MSB"; Reg[Reg["ACCEL_OFFSET_Y_LSB"] = 87] = "ACCEL_OFFSET_Y_LSB"; Reg[Reg["ACCEL_OFFSET_Y_MSB"] = 88] = "ACCEL_OFFSET_Y_MSB"; Reg[Reg["ACCEL_OFFSET_Z_LSB"] = 89] = "ACCEL_OFFSET_Z_LSB"; Reg[Reg["ACCEL_OFFSET_Z_MSB"] = 90] = "ACCEL_OFFSET_Z_MSB"; /* Magnetometer offsets */ Reg[Reg["MAG_OFFSET_X_LSB"] = 91] = "MAG_OFFSET_X_LSB"; Reg[Reg["MAG_OFFSET_X_MSB"] = 92] = "MAG_OFFSET_X_MSB"; Reg[Reg["MAG_OFFSET_Y_LSB"] = 93] = "MAG_OFFSET_Y_LSB"; Reg[Reg["MAG_OFFSET_Y_MSB"] = 94] = "MAG_OFFSET_Y_MSB"; Reg[Reg["MAG_OFFSET_Z_LSB"] = 95] = "MAG_OFFSET_Z_LSB"; Reg[Reg["MAG_OFFSET_Z_MSB"] = 96] = "MAG_OFFSET_Z_MSB"; /* Gyroscope offsets */ Reg[Reg["GYRO_OFFSET_X_LSB"] = 97] = "GYRO_OFFSET_X_LSB"; Reg[Reg["GYRO_OFFSET_X_MSB"] = 98] = "GYRO_OFFSET_X_MSB"; Reg[Reg["GYRO_OFFSET_Y_LSB"] = 99] = "GYRO_OFFSET_Y_LSB"; Reg[Reg["GYRO_OFFSET_Y_MSB"] = 100] = "GYRO_OFFSET_Y_MSB"; Reg[Reg["GYRO_OFFSET_Z_LSB"] = 101] = "GYRO_OFFSET_Z_LSB"; Reg[Reg["GYRO_OFFSET_Z_MSB"] = 102] = "GYRO_OFFSET_Z_MSB"; /* Radii */ Reg[Reg["ACCEL_RADIUS_LSB"] = 103] = "ACCEL_RADIUS_LSB"; Reg[Reg["ACCEL_RADIUS_MSB"] = 104] = "ACCEL_RADIUS_MSB"; Reg[Reg["MAG_RADIUS_LSB"] = 105] = "MAG_RADIUS_LSB"; Reg[Reg["MAG_RADIUS_MSB"] = 106] = "MAG_RADIUS_MSB"; })(Reg = exports.Reg || (exports.Reg = {})); /** Remap settings */ var RemapRegister; (function (RemapRegister) { RemapRegister[RemapRegister["REMAP_CONFIG_P0"] = 33] = "REMAP_CONFIG_P0"; RemapRegister[RemapRegister["REMAP_CONFIG_P1"] = 36] = "REMAP_CONFIG_P1"; RemapRegister[RemapRegister["REMAP_CONFIG_P2"] = 36] = "REMAP_CONFIG_P2"; RemapRegister[RemapRegister["REMAP_CONFIG_P3"] = 33] = "REMAP_CONFIG_P3"; RemapRegister[RemapRegister["REMAP_CONFIG_P4"] = 36] = "REMAP_CONFIG_P4"; RemapRegister[RemapRegister["REMAP_CONFIG_P5"] = 33] = "REMAP_CONFIG_P5"; RemapRegister[RemapRegister["REMAP_CONFIG_P6"] = 33] = "REMAP_CONFIG_P6"; RemapRegister[RemapRegister["REMAP_CONFIG_P7"] = 36] = "REMAP_CONFIG_P7"; })(RemapRegister = exports.RemapRegister || (exports.RemapRegister = {})); /** Remap Signs */ var RemapSigns; (function (RemapSigns) { RemapSigns[RemapSigns["REMAP_SIGN_P0"] = 4] = "REMAP_SIGN_P0"; RemapSigns[RemapSigns["REMAP_SIGN_P1"] = 0] = "REMAP_SIGN_P1"; RemapSigns[RemapSigns["REMAP_SIGN_P2"] = 6] = "REMAP_SIGN_P2"; RemapSigns[RemapSigns["REMAP_SIGN_P3"] = 2] = "REMAP_SIGN_P3"; RemapSigns[RemapSigns["REMAP_SIGN_P4"] = 3] = "REMAP_SIGN_P4"; RemapSigns[RemapSigns["REMAP_SIGN_P5"] = 1] = "REMAP_SIGN_P5"; RemapSigns[RemapSigns["REMAP_SIGN_P6"] = 7] = "REMAP_SIGN_P6"; RemapSigns[RemapSigns["REMAP_SIGN_P7"] = 5] = "REMAP_SIGN_P7"; })(RemapSigns = exports.RemapSigns || (exports.RemapSigns = {}));