UNPKG

@betaflight/api

Version:

A high-level API to read data from betaflight flight controllers

408 lines (407 loc) 8.84 kB
import { TupleOf } from "./utils"; export declare type AnalogValues = { voltage: number; mahDrawn: number; rssi: number; amperage: number; }; export declare type RawGpsData = { fix: boolean; numSat: number; lat: number; lon: number; alt: number; speed: number; groundCourse: number; }; export declare enum TargetCapabilities { HAS_VCP = 0, HAS_SOFTSERIAL = 1, IS_UNIFIED = 2, HAS_FLASH_BOOTLOADER = 3, SUPPORTS_CUSTOM_DEFAULTS = 4, HAS_CUSTOM_DEFAULTS = 5, SUPPORTS_RX_BIND = 6 } export declare type BoardInfo = { boardIdentifier: string; boardVersion: number; boardType: number; targetCapabilities: TargetCapabilities[]; targetName: string; boardName: string; manufacturerId: string; signature: number[]; mcuTypeId: McuTypes; configurationState: number | undefined; sampleRateHz: number | undefined; }; export declare type ImuUnit = [number, number, number]; export declare type ImuData = { accelerometer: ImuUnit; gyroscope: ImuUnit; magnetometer: ImuUnit; }; export declare type Axes3D = { roll: number; pitch: number; yaw: number; }; export declare type Status = { cycleTime: number; i2cError: number; sensors: Sensors[]; mode: number; profile: number; }; export declare type ExtendedStatus = Status & { cpuload: number; numProfiles: number; rateProfile: number; armingDisabledFlags: DisarmFlags[]; }; export declare enum EscProtocols { PWM = 0, ONESHOT125 = 1, ONESHOT42 = 2, MULTISHOT = 3, BRUSHED = 4, DSHOT150 = 5, DSHOT300 = 6, DSHOT600 = 7, DSHOT1200 = 8, PROSHOT1000 = 9, DISABLED = 10 } export declare type AdvancedConfig = { gyroSyncDenom: number; pidProcessDenom: number; useUnsyncedPwm: boolean; fastPwmProtocol: EscProtocols; gyroUse32kHz: boolean; motorPwmRate: number; gyroToUse: number; digitalIdlePercent: number; motorPwmInversion: number; gyroHighFsr: number; gyroMovementCalibThreshold: number; gyroCalibDuration: number; gyroOffsetYaw: number; gyroCheckOverflow: number; debugMode: number; debugModeCount: number; }; export declare type RCTuning = { rcRate: number; rcExpo: number; rollPitchRate: number; pitchRate: number; rollRate: number; yawRate: number; dynamicThrottlePid: number; throttleMid: number; throttleExpo: number; dynamicThrottleBreakpoint: number; rcYawExpo: number; rcYawRate: number; rcPitchRate: number; rcPitchExpo: number; throttleLimitType: number; throttleLimitPercent: number; rollRateLimit: number; pitchRateLimit: number; yawRateLimit: number; }; export declare type RCDeadband = { deadband: number; yawDeadband: number; altHoldDeadhand: number; deadband3dThrottle: number; }; export declare enum Features { RX_PPM = 0, INFLIGHT_ACC_CAL = 1, RX_SERIAL = 2, MOTOR_STOP = 3, SERVO_TILT = 4, SOFTSERIAL = 5, GPS = 6, SONAR = 7, TELEMETRY = 8, "3D" = 9, RX_PARALLEL_PWM = 10, RX_MSP = 11, RSSI_ADC = 12, LED_STRIP = 13, DISPLAY = 14, BLACKBOX = 15, CHANNEL_FORWARDING = 16, FAILSAFE = 17, TRANSPONDER = 18, AIRMODE = 19, SUPEREXPO_RATES = 20, SDCARD = 21, OSD = 22, VTX = 23, RX_SPI = 24, ESC_SENSOR = 25, ANTI_GRAVITY = 26, DYNAMIC_FILTER = 27, VBAT = 28, VCURRENT_METER = 29 } export declare enum DisarmFlags { NO_GYRO = 0, FAILSAFE = 1, RX_FAILSAFE = 2, BAD_RX_RECOVERY = 3, BOXFAILSAFE = 4, THROTTLE = 5, ANGLE = 6, BOOT_GRACE_TIME = 7, NOPREARM = 8, LOAD = 9, CALIBRATING = 10, CLI = 11, CMS_MENU = 12, OSD_MENU = 13, BST = 14, MSP = 15, RUNAWAY_TAKEOFF = 16, PARALYZE = 17, GPS = 18, RESC = 19, RPMFILTER = 20, CRASH = 21, REBOOT_REQD = 22, DSHOT_BBANG = 23, NO_ACC_CAL = 24, ARM_SWITCH = 25, UNKNOWN = 26 } export declare enum Sensors { ACCELEROMETER = 0, BAROMETER = 1, MAGNETOMETER = 2, GPS = 3, SONAR = 4, GYRO = 5, UNKNOWN = 6 } export declare type FeatureBits = Record<number, Features>; export declare enum RebootTypes { FIRMWARE = 0, BOOTLOADER = 1, MSC = 2, MSC_UTC = 3 } export declare enum McuTypes { SIMULATOR = 0, F103 = 1, F303 = 2, F40X = 3, F411 = 4, F446 = 5, F722 = 6, F745 = 7, F746 = 8, F765 = 9, H750 = 10, H743_REV_UNKNOWN = 11, H743_REV_Y = 12, H743_REV_X = 13, H743_REV_V = 14, H7A3 = 15, H723_725 = 16, UNKNOWN = 255 } export declare enum Beepers { GYRO_CALIBRATED = 0, RX_LOST = 1, RX_LOST_LANDING = 2, DISARMING = 3, ARMING = 4, ARMING_GPS_FIX = 5, BAT_CRIT_LOW = 6, BAT_LOW = 7, GPS_STATUS = 8, RX_SET = 9, ACC_CALIBRATION = 10, ACC_CALIBRATION_FAIL = 11, READY_BEEP = 12, MULTI_BEEPS = 13, DISARM_REPEAT = 14, ARMED = 15, SYSTEM_INIT = 16, USB = 17, BLACKBOX_ERASE = 18, CRASH_FLIP = 19, CAM_CONNECTION_OPEN = 20, CAM_CONNECTION_CLOSE = 21, RC_SMOOTHING_INIT_FAIL = 22 } export declare type BeeperConfig = { conditions: Beepers[]; dshot: { conditions: (Beepers.RX_LOST | Beepers.RX_SET)[]; tone: number; }; }; export declare enum SerialRxProviders { SPEKTRUM1024 = 0, SBUS = 1, SUMD = 2, SUMH = 3, XBUS_MODE_B = 4, XBUS_MODE_B_RJ01 = 5, IBUS = 6, JETIEXBUS = 7, CRSF = 8, SPEKTRUM2048 = 9, SPEKTRUM2048_SRXL = 10, TARGET_CUSTOM = 11, FRSKY_FPORT = 12, SPEKTRUM_SRXL2 = 13 } export declare enum SpiRxProtocols { NRF24_V202_250K = 0, NRF24_V202_1M = 1, NRF24_SYMA_X = 2, NRF24_SYMA_X5C = 3, NRF24_CX10 = 4, CX10A = 5, NRF24_H8_3D = 6, NRF24_INAV = 7, FRSKY_D = 8, FRSKY_X = 9, A7105_FLYSKY = 10, A7105_FLYSKY_2A = 11, NRF24_KN = 12, SFHSS = 13, SPEKTRUM = 14, FRSKY_X_LBT = 15 } export declare enum RcInterpolations { OFF = 0, DEFAULT = 1, AUTO = 2, MANUAL = 3 } export declare enum RcSmoothingChannels { RP = 0, RPY = 1, RPYT = 2, T = 3, RPT = 4 } export declare enum RcSmoothingTypes { INTERPOLATION = 0, FILTER = 1 } export declare enum RcSmoothingInputTypes { PT1 = 0, BIQUAD = 1 } export declare enum RcSmoothingDerivativeTypes { OFF = 0, PT1 = 1, BIQUAD = 2, AUTO = 3 } export declare type RxConfig = { serialProvider: SerialRxProviders; stick: { max: number; center: number; min: number; }; spektrumSatBind: number; rxMinUsec: number; rxMaxUsec: number; interpolation: RcInterpolations; interpolationInterval: number; airModeActivateThreshold: number; spi: { protocol: SpiRxProtocols; id: number; rfChannelCount: number; }; fpvCamAngleDegrees: number; rcSmoothing: { channels: RcSmoothingChannels; type: RcSmoothingTypes; inputCutoff: number; derivativeCutoff: number; inputType: RcSmoothingInputTypes; derivativeType: RcSmoothingDerivativeTypes; autoSmoothness: number; }; usbCdcHidType: number; }; export declare type ChannelLetter = "A" | "E" | "R" | "T" | "1" | "2" | "3" | "4"; export declare type ChannelMap = TupleOf<ChannelLetter, 8>; export declare enum GpsProtocols { NMEA = 0, UBLOX = 1, MSP = 2 } export declare enum GpsSbasTypes { AUTO = 0, EGNOS = 1, WAAS = 2, MSAS = 3, GAGAN = 4 } export declare enum GpsBaudRates { BAUD_115200 = 0, BAUD_57600 = 1, BAUD_38400 = 2, BAUD_19200 = 3, BAUD_9600 = 4 } export declare type RssiConfig = { channel: number; }; export declare type GpsConfig = { provider: GpsProtocols; ubloxSbas: GpsSbasTypes; autoConfig: boolean; autoBaud: boolean; homePointOnce: boolean; ubloxUseGalileo: boolean; }; export declare enum BlackboxDevices { NONE = 0, SERIAL = 1, FLASH = 2, SDCARD = 3 } export declare enum SdCardStates { NOT_PRESENT = 0, FATAL = 1, CARD_INIT = 2, FS_INIT = 3, READY = 4 } export declare type BlackboxConfig = { supported: boolean; device: BlackboxDevices; rateNum: number; rateDenom: number; pDenom: number; sampleRate: number; }; export declare type DataFlashSummary = { ready: boolean; supported: boolean; sectors: number; totalSize: number; usedSize: number; }; export declare type SdCardSummary = { supported: boolean; state: SdCardStates; filesystemLastError: number; freeSizeKB: number; totalSizeKB: number; };