UNPKG

@betaflight/api

Version:

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

240 lines 10.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.OSD_VALUE_VISIBLE = exports.OSD_PRECISION_VALUE_TO_TYPE = exports.OSD_VIDEO_VALUE_TO_TYPE = exports.OSD_UNIT_VALUE_TO_TYPE = exports.osdAlarms = exports.osdTimerSources = exports.osdWarnings = exports.osdStatisticFields = exports.osdFields = void 0; const semver_1 = __importDefault(require("semver")); const types_1 = require("./types"); /** * Return the OSD fields in their data read order * based on the given api version */ const osdFields = (apiVersion) => { // version 3.0.1 if (semver_1.default.gte(apiVersion, "1.21.0")) { return [ types_1.OSDFields.RSSI_VALUE, types_1.OSDFields.MAIN_BATT_VOLTAGE, types_1.OSDFields.CROSSHAIRS, types_1.OSDFields.ARTIFICIAL_HORIZON, types_1.OSDFields.HORIZON_SIDEBARS, ...(semver_1.default.lt(apiVersion, "1.36.0") ? [types_1.OSDFields.ONTIME, types_1.OSDFields.FLYTIME] : [types_1.OSDFields.TIMER_1, types_1.OSDFields.TIMER_2]), types_1.OSDFields.FLYMODE, types_1.OSDFields.CRAFT_NAME, types_1.OSDFields.THROTTLE_POSITION, types_1.OSDFields.VTX_CHANNEL, types_1.OSDFields.CURRENT_DRAW, types_1.OSDFields.MAH_DRAWN, types_1.OSDFields.GPS_SPEED, types_1.OSDFields.GPS_SATS, types_1.OSDFields.ALTITUDE, ...(semver_1.default.gte(apiVersion, "1.31.0") ? [ types_1.OSDFields.PID_ROLL, types_1.OSDFields.PID_PITCH, types_1.OSDFields.PID_YAW, types_1.OSDFields.POWER, ] : []), ...(semver_1.default.gte(apiVersion, "1.32.0") ? [ types_1.OSDFields.PID_RATE_PROFILE, semver_1.default.gte(apiVersion, "1.36.0") ? types_1.OSDFields.WARNINGS : types_1.OSDFields.BATTERY_WARNING, types_1.OSDFields.AVG_CELL_VOLTAGE, ] : []), ...(semver_1.default.gte(apiVersion, "1.34.0") ? [types_1.OSDFields.GPS_LON, types_1.OSDFields.GPS_LAT, types_1.OSDFields.DEBUG] : []), ...(semver_1.default.gte(apiVersion, "1.35.0") ? [types_1.OSDFields.PITCH_ANGLE, types_1.OSDFields.ROLL_ANGLE] : []), ...(semver_1.default.gte(apiVersion, "1.36.0") ? [ types_1.OSDFields.MAIN_BATT_USAGE, types_1.OSDFields.DISARMED, types_1.OSDFields.HOME_DIR, types_1.OSDFields.HOME_DIST, types_1.OSDFields.NUMERICAL_HEADING, types_1.OSDFields.NUMERICAL_VARIO, types_1.OSDFields.COMPASS_BAR, types_1.OSDFields.ESC_TEMPERATURE, types_1.OSDFields.ESC_RPM, ] : []), ...(semver_1.default.gte(apiVersion, "1.37.0") ? [ types_1.OSDFields.REMAINING_TIME_ESTIMATE, types_1.OSDFields.RTC_DATE_TIME, types_1.OSDFields.ADJUSTMENT_RANGE, types_1.OSDFields.CORE_TEMPERATURE, ] : []), ...(semver_1.default.gte(apiVersion, "1.39.0") ? [types_1.OSDFields.ANTI_GRAVITY] : []), ...(semver_1.default.gte(apiVersion, "1.40.0") ? [types_1.OSDFields.G_FORCE] : []), ...(semver_1.default.gte(apiVersion, "1.41.0") ? [ types_1.OSDFields.MOTOR_DIAG, types_1.OSDFields.LOG_STATUS, types_1.OSDFields.FLIP_ARROW, types_1.OSDFields.LINK_QUALITY, types_1.OSDFields.FLIGHT_DIST, types_1.OSDFields.STICK_OVERLAY_LEFT, types_1.OSDFields.STICK_OVERLAY_RIGHT, types_1.OSDFields.DISPLAY_NAME, types_1.OSDFields.ESC_RPM_FREQ, ] : []), ...(semver_1.default.gte(apiVersion, "1.42.0") ? [ types_1.OSDFields.RATE_PROFILE_NAME, types_1.OSDFields.PID_PROFILE_NAME, types_1.OSDFields.OSD_PROFILE_NAME, types_1.OSDFields.RSSI_DBM_VALUE, ] : []), ...(semver_1.default.gte(apiVersion, "1.43.0") ? [types_1.OSDFields.RC_CHANNELS, types_1.OSDFields.CAMERA_FRAME] : []), ]; } // version 3.0.0 return [ types_1.OSDFields.MAIN_BATT_VOLTAGE, types_1.OSDFields.RSSI_VALUE, types_1.OSDFields.TIMER, types_1.OSDFields.THROTTLE_POSITION, types_1.OSDFields.CPU_LOAD, types_1.OSDFields.VTX_CHANNEL, types_1.OSDFields.VOLTAGE_WARNING, types_1.OSDFields.ARMED, types_1.OSDFields.DISARMED, types_1.OSDFields.ARTIFICIAL_HORIZON, types_1.OSDFields.HORIZON_SIDEBARS, types_1.OSDFields.CURRENT_DRAW, types_1.OSDFields.MAH_DRAWN, types_1.OSDFields.CRAFT_NAME, types_1.OSDFields.ALTITUDE, ]; }; exports.osdFields = osdFields; const osdStatisticFields = (apiVersion) => { if (semver_1.default.lt(apiVersion, "1.39.0")) { return [ types_1.OSDStatisticFields.MAX_SPEED, types_1.OSDStatisticFields.MIN_BATTERY, types_1.OSDStatisticFields.MIN_RSSI, types_1.OSDStatisticFields.MAX_CURRENT, types_1.OSDStatisticFields.USED_MAH, types_1.OSDStatisticFields.MAX_ALTITUDE, types_1.OSDStatisticFields.BLACKBOX, types_1.OSDStatisticFields.END_BATTERY, types_1.OSDStatisticFields.TIMER_1, types_1.OSDStatisticFields.TIMER_2, types_1.OSDStatisticFields.MAX_DISTANCE, types_1.OSDStatisticFields.BLACKBOX_LOG_NUMBER, ...(semver_1.default.gte(apiVersion, "1.37.0") ? [types_1.OSDStatisticFields.RTC_DATE_TIME] : []), ]; } // Starting with 1.39.0 OSD stats are reordered to match how they're presented on screen return [ types_1.OSDStatisticFields.RTC_DATE_TIME, types_1.OSDStatisticFields.TIMER_1, types_1.OSDStatisticFields.TIMER_2, types_1.OSDStatisticFields.MAX_SPEED, types_1.OSDStatisticFields.MAX_DISTANCE, types_1.OSDStatisticFields.MIN_BATTERY, types_1.OSDStatisticFields.END_BATTERY, types_1.OSDStatisticFields.STAT_BATTERY, types_1.OSDStatisticFields.MIN_RSSI, types_1.OSDStatisticFields.MAX_CURRENT, types_1.OSDStatisticFields.USED_MAH, types_1.OSDStatisticFields.MAX_ALTITUDE, types_1.OSDStatisticFields.BLACKBOX, types_1.OSDStatisticFields.BLACKBOX_LOG_NUMBER, ...(semver_1.default.gte(apiVersion, "1.41.0") ? [ types_1.OSDStatisticFields.MAX_G_FORCE, types_1.OSDStatisticFields.MAX_ESC_TEMP, types_1.OSDStatisticFields.MAX_ESC_RPM, types_1.OSDStatisticFields.MIN_LINK_QUALITY, types_1.OSDStatisticFields.FLIGHT_DISTANCE, types_1.OSDStatisticFields.MAX_FFT, ] : []), ...(semver_1.default.gte(apiVersion, "1.42.0") ? [ types_1.OSDStatisticFields.TOTAL_FLIGHTS, types_1.OSDStatisticFields.TOTAL_FLIGHT_TIME, types_1.OSDStatisticFields.TOTAL_FLIGHT_DIST, types_1.OSDStatisticFields.MIN_RSSI_DBM, ] : []), ]; }; exports.osdStatisticFields = osdStatisticFields; const osdWarnings = (apiVersion) => [ types_1.OSDWarnings.ARMING_DISABLED, types_1.OSDWarnings.BATTERY_NOT_FULL, types_1.OSDWarnings.BATTERY_WARNING, types_1.OSDWarnings.BATTERY_CRITICAL, types_1.OSDWarnings.VISUAL_BEEPER, types_1.OSDWarnings.CRASH_FLIP_MODE, ...(semver_1.default.gte(apiVersion, "1.39.0") ? [ types_1.OSDWarnings.ESC_FAIL, types_1.OSDWarnings.CORE_TEMPERATURE, types_1.OSDWarnings.RC_SMOOTHING_FAILURE, ] : []), ...(semver_1.default.gte(apiVersion, "1.41.0") ? [ types_1.OSDWarnings.FAILSAFE, types_1.OSDWarnings.LAUNCH_CONTROL, types_1.OSDWarnings.GPS_RESCUE_UNAVAILABLE, types_1.OSDWarnings.GPS_RESCUE_DISABLED, ] : []), ...(semver_1.default.gte(apiVersion, "1.42.0") ? [types_1.OSDWarnings.RSSI, types_1.OSDWarnings.LINK_QUALITY, types_1.OSDWarnings.RSSI_DBM] : []), ...(semver_1.default.gte(apiVersion, "1.43.0") ? [types_1.OSDWarnings.OVER_CAP] : []), ]; exports.osdWarnings = osdWarnings; const osdTimerSources = (apiVersion) => [ types_1.OSDTimerSources.ON_TIME, types_1.OSDTimerSources.TOTAL_ARMED_TIME, types_1.OSDTimerSources.LAST_ARMED_TIME, ...(semver_1.default.gte(apiVersion, "1.42.0") ? [types_1.OSDTimerSources.ON_ARM_TIME] : []), ]; exports.osdTimerSources = osdTimerSources; const osdAlarms = () => [ types_1.OSDAlarms.RSSI, types_1.OSDAlarms.CAP, types_1.OSDAlarms.TIME, types_1.OSDAlarms.ALT, ]; exports.osdAlarms = osdAlarms; exports.OSD_UNIT_VALUE_TO_TYPE = [ types_1.OSDUnitTypes.IMPERIAL, types_1.OSDUnitTypes.METRIC, ]; exports.OSD_VIDEO_VALUE_TO_TYPE = [ types_1.OSDVideoTypes.AUTO, types_1.OSDVideoTypes.PAL, types_1.OSDVideoTypes.NTSC, ]; exports.OSD_PRECISION_VALUE_TO_TYPE = [ types_1.OSDPrecisionTypes.SECOND, types_1.OSDPrecisionTypes.HUNDREDTH, types_1.OSDPrecisionTypes.TENTH, ]; exports.OSD_VALUE_VISIBLE = 0x0800; //# sourceMappingURL=constants.js.map