@betaflight/api
Version:
A high-level API to read data from betaflight flight controllers
408 lines (407 loc) • 8.84 kB
TypeScript
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;
};