From 2b7b47e72cbbfb6d5cc1708815c3902581cf844c Mon Sep 17 00:00:00 2001 From: "Pawel Spychalski (DzikuVx)" Date: Wed, 6 Jun 2018 08:43:45 +0200 Subject: [PATCH 1/2] I2C rangefinder rename --- docs/Rangefinder.md | 12 +- src/main/fc/settings.yaml | 2 +- src/main/fc/settings_generated.c | 1029 ++++++++++++++++++++++++++++++ src/main/fc/settings_generated.h | 380 +++++++++++ 4 files changed, 1416 insertions(+), 7 deletions(-) create mode 100644 src/main/fc/settings_generated.c create mode 100644 src/main/fc/settings_generated.h diff --git a/docs/Rangefinder.md b/docs/Rangefinder.md index 5f76b1551b5..620430a6aba 100644 --- a/docs/Rangefinder.md +++ b/docs/Rangefinder.md @@ -8,8 +8,7 @@ Current support of rangefinders in INAV is very limited. They are used only to: * landing detection for multirotors * automated landing support for fixed wings - -INAV currently does not support _terrain following_ or _rangefinder supported altitude hold_ flight modes. +* _Experimental_ terrain following (Surface) flight mode activated with _SURFACE_ and _ALTHOLD_ flight mode ## Hardware @@ -18,15 +17,16 @@ Following rangefinders are supported: * HC-SR04 - ***DO NOT USE*** HC-SR04 while most popular is not suited to use in noise reach environments (like multirotors). It is proven that this sonar rangefinder start to report random values already at 1.5m above solid concrete surface. Reported altitude is valid up to only 75cm above concrete. ***DO NOT USE*** * US-100 in trigger-echo mode - Can be used as direct replacement of _HC-SR04_ when `rangefinder_hardware` is set to _HCSR04_. Useful up to 2m over concrete and correctly reporting _out of range_ when out of range * SRF10 - experimental -* HCSR04I2C - is a simple [DIY rangefinder interface](https://github.com/iNavFlight/INAV-Rangefinder-I2C-interface). Can be used to connect when flight controller has no Trigger-Echo ports. +* INAV_I2C - is a simple [DIY rangefinder interface with Arduino Pro Mini 3.3V](https://github.com/iNavFlight/inav-rangefinder). Can be used to connect when flight controller has no Trigger-Echo ports. * VL53L0X - simple laser rangefinder usable up to 75cm * UIB - experimental +* MSP - experimental ## Connections -Target dependent in case of Trigger/Echo solutions like HC-SR04 and US-100. -I2C solutions like VL53L0X or HCSR04I2C can be connected to I2C port and used as any other I2C device. +Target dependent in case of Trigger/Echo solutions like `HC-SR04` and `US-100`. +I2C solutions like `VL53L0X` or `INAV_I2C` can be connected to I2C port and used as any other I2C device. #### Constraints -Target dependent in case of Trigger/Echo solutions like HC-SR04 and US-100. No constrains for I2C like VL53L0X or HCSR04I2C. \ No newline at end of file +Target dependent in case of Trigger/Echo solutions like `HC-SR04` and `US-100`. No constrains for I2C like `VL53L0X` or `INAV_I2C`. \ No newline at end of file diff --git a/src/main/fc/settings.yaml b/src/main/fc/settings.yaml index 35a2cfc51db..2628f6ca47a 100644 --- a/src/main/fc/settings.yaml +++ b/src/main/fc/settings.yaml @@ -7,7 +7,7 @@ tables: values: ["NONE", "AUTO", "ADXL345", "MPU6050", "MMA845x", "BMA280", "LSM303DLHC", "MPU6000", "MPU6500", "MPU9250", "BMI160", "FAKE"] enum: accelerationSensor_e - name: rangefinder_hardware - values: ["NONE", "HCSR04", "SRF10", "HCSR04I2C", "VL53L0X", "MSP", "UIB"] + values: ["NONE", "HCSR04", "SRF10", "INAV_I2C", "VL53L0X", "MSP", "UIB"] enum: rangefinderType_e - name: mag_hardware values: ["NONE", "AUTO", "HMC5883", "AK8975", "GPSMAG", "MAG3110", "AK8963", "IST8310", "QMC5883", "MPU9250", "IST8308", "FAKE"] diff --git a/src/main/fc/settings_generated.c b/src/main/fc/settings_generated.c new file mode 100644 index 00000000000..cb0444623bc --- /dev/null +++ b/src/main/fc/settings_generated.c @@ -0,0 +1,1029 @@ +// This file has been automatically generated by utils/settings.rb +// Don't make any modifications to it. They will be lost. + +#include "platform.h" +#include "config/parameter_group_ids.h" +#include "settings.h" +#include "sensors/gyro.h" +#include "fc/config.h" +#include "sensors/acceleration.h" +#include "sensors/rangefinder.h" +#include "sensors/compass.h" +#include "sensors/barometer.h" +#include "sensors/pitotmeter.h" +#include "rx/rx.h" +#include "rx/spektrum.h" +#include "blackbox/blackbox.h" +#include "flight/mixer.h" +#include "flight/failsafe.h" +#include "sensors/boardalignment.h" +#include "sensors/battery.h" +#include "flight/servos.h" +#include "fc/controlrate_profile.h" +#include "io/serial.h" +#include "flight/imu.h" +#include "fc/rc_controls.h" +#include "flight/pid.h" +#include "navigation/navigation.h" +#include "io/serial.h" +#include "telemetry/telemetry.h" +#include "telemetry/frsky.h" +#include "common/color.h" +#include "io/ledstrip.h" +#include "fc/config.h" +#include "fc/rc_modes.h" +#include "fc/stats.h" +#include "common/time.h" +#include "drivers/display.h" +const pgn_t settingsPgn[] = { + PG_GYRO_CONFIG, + PG_ADC_CHANNEL_CONFIG, + PG_ACCELEROMETER_CONFIG, + PG_RANGEFINDER_CONFIG, + PG_COMPASS_CONFIG, + PG_BAROMETER_CONFIG, + PG_PITOTMETER_CONFIG, + PG_RX_CONFIG, + PG_BLACKBOX_CONFIG, + PG_MOTOR_CONFIG, + PG_FAILSAFE_CONFIG, + PG_BOARD_ALIGNMENT, + PG_BATTERY_CONFIG, + PG_MIXER_CONFIG, + PG_MOTOR_3D_CONFIG, + PG_SERVO_CONFIG, + PG_CONTROL_RATE_PROFILES, + PG_SERIAL_CONFIG, + PG_IMU_CONFIG, + PG_ARMING_CONFIG, + PG_GPS_CONFIG, + PG_RC_CONTROLS_CONFIG, + PG_PID_PROFILE, + PG_PID_AUTOTUNE_CONFIG, + PG_POSITION_ESTIMATION_CONFIG, + PG_NAV_CONFIG, + PG_TELEMETRY_CONFIG, + PG_LED_STRIP_CONFIG, + PG_SYSTEM_CONFIG, + PG_MODE_ACTIVATION_OPERATOR_CONFIG, + PG_STATS_CONFIG, + PG_TIME_CONFIG, + PG_DISPLAY_CONFIG, +}; +const uint8_t settingsPgnCounts[] = { + 11, + 4, + 11, + 2, + 10, + 2, + 4, + 15, + 3, + 5, + 12, + 3, + 12, + 5, + 3, + 5, + 15, + 1, + 5, + 4, + 7, + 5, + 60, + 5, + 18, + 48, + 13, + 1, + 7, + 1, + 4, + 2, + 1, +}; +static const char *settingNamesWords[] = { + NULL, + "nav", + "fw", + "mc", + "p", + "rate", + "yaw", + "z", + "inav", + "i", + "pos", + "angle", + "failsafe", + "pitch", + "roll", + "xy", + "d", + "max", + "min", + "gps", + "launch", + "mag", + "w", + "align", + "hz", + "delay", + "gyro", + "acc", + "auto", + "deadband", + "lpf", + "manual", + "rth", + "thr", + "time", + "hardware", + "level", + "limit", + "rc", + "vbat", + "vel", + "cell", + "channel", + "climb", + "disarm", + "expo", + "frsky", + "mode", + "speed", + "throttle", + "type", + "v", + "voltage", + "3d", + "adc", + "altitude", + "baro", + "battery", + "capacity", + "current", + "cutoff", + "dcm", + "dterm", + "imu", + "landing", + "motor", + "notch", + "pitot", + "rssi", + "scale", + "servo", + "stats", + "threshold", + "accel", + "accgain", + "acczero", + "autotune", + "blackbox", + "board", + "distance", + "ff", + "filter", + "heading", + "hold", + "land", + "magzero", + "median", + "meter", + "offset", + "pwm", + "serialrx", + "surface", + "switch", + "telemetry", + "total", + "tpa", + "unit", + "x", + "y", + "airspeed", + "alt", + "bank", + "check", + "default", + "detect", + "dive", + "epv", + "first", + "frequency", + "inclination", + "inverted", + "iterm", + "ki", + "kp", + "low", + "mid", + "model", + "notch1", + "notch2", + "procedure", + "provider", + "radius", + "rangefinder", + "res", + "reset", + "rx", + "slowdown", + "smartport", + "task", + "throw", + "timeout", + "tz", + "usec", + "warning", + "abort", + "allow", + "async", + "attitude", + "automatic", + "baud", + "bias", + "blink", + "breakpoint", + "calibration", + "center", + "character", + "command", + "config", + "constant", + "coordinates", + "critical", + "cruise", + "debug", + "decl", + "declination", + "denom", + "device", + "direction", + "display", + "dist", + "dst", + "dyn", + "emerg", + "energy", + "eph", + "filtering", + "fixed_wing_auto_arm", + "flaperon", + "flaps", + "force", + "format", + "fuel", + "fw_autotune_ff_to_i_tc", + "fw_autotune_ff_to_p_gain", + "fw_turn_assist_yaw_gain", + "gps_ublox_use_galileo", + "gyro_stage2_lowpass_hz", + "halfduplex", + "has", + "high", + "home", + "hott_alarm_sound_interval", + "hover", + "i2c", + "ibus", + "inav_gravity_cal_tolerance", + "inav_use_gps_velned", + "input", + "invert", + "kill", + "latitude", + "ledstrip_visual_beeper", + "loiter", + "longitude", + "looptime", + "ltm", + "maxalt", + "minalt", + "mode_range_logic_operator", + "moron", + "nav_extra_arming_safety", + "nav_fw_launch_idle_thr", + "nav_fw_launch_spinup_time", + "nav_max_terrain_follow_alt", + "nav_rth_climb_ignore_emerg", + "nav_use_midthr_for_althold", + "nav_user_control_mode", + "nav_wp_safe_distance", + "neutral", + "noise", + "num", + "off", + "on", + "overshoot", + "pidsum", + "pit", + "pitch2thr", + "platform", + "position", + "precision", + "preview", + "protocol", + "pulse", + "reboot", + "receiver", + "recovery", + "reference", + "report", + "rll", + "rx_spi_rf_channel_count", + "sats", + "sbas", + "setpoint", + "small", + "smoothing", + "spektrum_sat_bind", + "stick", + "sw", + "sync", + "tail", + "throttle_tilt_comp_str", + "tri", + "uart", + "unarmed", + "undershoot", + "unidir", + "update", + "use", + "velocity", + "vfas", + "weight", + "windup", + "wp", + "yaw_jump_prevention_limit", +}; +const char * const table_acc_hardware[] = { + "NONE", + "AUTO", + "ADXL345", + "MPU6050", + "MMA845x", + "BMA280", + "LSM303DLHC", + "MPU6000", + "MPU6500", + "MPU9250", + "BMI160", + "FAKE", +}; +const char * const table_alignment[] = { + "DEFAULT", + "CW0", + "CW90", + "CW180", + "CW270", + "CW0FLIP", + "CW90FLIP", + "CW180FLIP", + "CW270FLIP", +}; +const char * const table_async_mode[] = { + "NONE", + "GYRO", + "ALL", +}; +const char * const table_aux_operator[] = { + "OR", + "AND", +}; +const char * const table_baro_hardware[] = { + "NONE", + "AUTO", + "BMP085", + "MS5611", + "BMP280", + "MS5607", + "LPS25H", + "FAKE", +}; +const char * const table_bat_capacity_unit[] = { + "MAH", + "MWH", +}; +const char * const table_blackbox_device[] = { + "SERIAL", + "SPIFLASH", + "SDCARD", +}; +const char * const table_current_sensor[] = { + "NONE", + "ADC", + "VIRTUAL", +}; +const char * const table_debug_modes[] = { + "NONE", + "GYRO", + "NOTCH", + "NAV_LANDING", + "FW_ALTITUDE", + "AGL", + "FLOW_RAW", + "SBUS", + "FPORT", + "ALWAYS", + "STAGE2", +}; +const char * const table_failsafe_procedure[] = { + "SET-THR", + "DROP", + "RTH", + "NONE", +}; +const char * const table_frsky_unit[] = { + "METRIC", + "IMPERIAL", +}; +const char * const table_gps_dyn_model[] = { + "PEDESTRIAN", + "AIR_1G", + "AIR_4G", +}; +const char * const table_gps_provider[] = { + "NMEA", + "UBLOX", + "I2C-NAV", + "NAZA", + "UBLOX7", + "MTK", +}; +const char * const table_gps_sbas_mode[] = { + "AUTO", + "EGNOS", + "WAAS", + "MSAS", + "GAGAN", + "NONE", +}; +const char * const table_gyro_lpf[] = { + "256HZ", + "188HZ", + "98HZ", + "42HZ", + "20HZ", + "10HZ", +}; +const char * const table_i2c_speed[] = { + "400KHZ", + "800KHZ", + "100KHZ", + "200KHZ", +}; +const char * const table_ltm_rates[] = { + "NORMAL", + "MEDIUM", + "SLOW", +}; +const char * const table_mag_hardware[] = { + "NONE", + "AUTO", + "HMC5883", + "AK8975", + "GPSMAG", + "MAG3110", + "AK8963", + "IST8310", + "QMC5883", + "MPU9250", + "IST8308", + "FAKE", +}; +const char * const table_motor_pwm_protocol[] = { + "STANDARD", + "ONESHOT125", + "ONESHOT42", + "MULTISHOT", + "BRUSHED", +}; +const char * const table_nav_rth_allow_landing[] = { + "NEVER", + "ALWAYS", + "FS_ONLY", +}; +const char * const table_nav_rth_alt_mode[] = { + "CURRENT", + "EXTRA", + "FIXED", + "MAX", + "AT_LEAST", +}; +const char * const table_nav_user_control_mode[] = { + "ATTI", + "CRUISE", +}; +const char * const table_off_on[] = { + "OFF", + "ON", +}; +const char * const table_pitot_hardware[] = { + "NONE", + "AUTO", + "MS4525", + "ADC", + "VIRTUAL", + "FAKE", +}; +const char * const table_platform_type[] = { + "MULTIROTOR", + "AIRPLANE", + "HELICOPTER", + "TRICOPTER", + "ROVER", + "BOAT", +}; +const char * const table_rangefinder_hardware[] = { + "NONE", + "HCSR04", + "SRF10", + "HCSR04I2C", + "VL53L0X", + "MSP", + "UIB", +}; +const char * const table_receiver_type[] = { + "NONE", + "PWM", + "PPM", + "SERIAL", + "MSP", + "SPI", + "UIB", +}; +const char * const table_reset_type[] = { + "NEVER", + "FIRST_ARM", + "EACH_ARM", +}; +const char * const table_serial_rx[] = { + "SPEK1024", + "SPEK2048", + "SBUS", + "SUMD", + "SUMH", + "XB-B", + "XB-B-RJ01", + "IBUS", + "JETIEXBUS", + "CRSF", + "FPORT", +}; +const char * const table_smartport_fuel_unit[] = { + "PERCENT", + "MAH", + "MWH", +}; +const lookupTableEntry_t settingLookupTables[] = { + { table_acc_hardware, sizeof(table_acc_hardware) / sizeof(char*) }, + { table_alignment, sizeof(table_alignment) / sizeof(char*) }, + { table_async_mode, sizeof(table_async_mode) / sizeof(char*) }, + { table_aux_operator, sizeof(table_aux_operator) / sizeof(char*) }, + { table_baro_hardware, sizeof(table_baro_hardware) / sizeof(char*) }, + { table_bat_capacity_unit, sizeof(table_bat_capacity_unit) / sizeof(char*) }, + { table_blackbox_device, sizeof(table_blackbox_device) / sizeof(char*) }, + { table_current_sensor, sizeof(table_current_sensor) / sizeof(char*) }, + { table_debug_modes, sizeof(table_debug_modes) / sizeof(char*) }, + { table_failsafe_procedure, sizeof(table_failsafe_procedure) / sizeof(char*) }, + { table_frsky_unit, sizeof(table_frsky_unit) / sizeof(char*) }, + { table_gps_dyn_model, sizeof(table_gps_dyn_model) / sizeof(char*) }, + { table_gps_provider, sizeof(table_gps_provider) / sizeof(char*) }, + { table_gps_sbas_mode, sizeof(table_gps_sbas_mode) / sizeof(char*) }, + { table_gyro_lpf, sizeof(table_gyro_lpf) / sizeof(char*) }, + { table_i2c_speed, sizeof(table_i2c_speed) / sizeof(char*) }, + { table_ltm_rates, sizeof(table_ltm_rates) / sizeof(char*) }, + { table_mag_hardware, sizeof(table_mag_hardware) / sizeof(char*) }, + { table_motor_pwm_protocol, sizeof(table_motor_pwm_protocol) / sizeof(char*) }, + { table_nav_rth_allow_landing, sizeof(table_nav_rth_allow_landing) / sizeof(char*) }, + { table_nav_rth_alt_mode, sizeof(table_nav_rth_alt_mode) / sizeof(char*) }, + { table_nav_user_control_mode, sizeof(table_nav_user_control_mode) / sizeof(char*) }, + { table_off_on, sizeof(table_off_on) / sizeof(char*) }, + { table_pitot_hardware, sizeof(table_pitot_hardware) / sizeof(char*) }, + { table_platform_type, sizeof(table_platform_type) / sizeof(char*) }, + { table_rangefinder_hardware, sizeof(table_rangefinder_hardware) / sizeof(char*) }, + { table_receiver_type, sizeof(table_receiver_type) / sizeof(char*) }, + { table_reset_type, sizeof(table_reset_type) / sizeof(char*) }, + { table_serial_rx, sizeof(table_serial_rx) / sizeof(char*) }, + { table_smartport_fuel_unit, sizeof(table_smartport_fuel_unit) / sizeof(char*) }, +}; +const uint32_t settingMinMaxTable[] = { + 0, + 200, + 100, + 1000, + 255, + 2000, + 10, + 500, + 1, + 32767, + -32768, + -1800, + 5, + 50, + 180, + 3600, + 5000, + 10000, + 65535, + 4, + 80, + 65000, + 2, + 250, + 8192, + 60000, + 2147483647, + 4294967295, + -800, + -1, + 6, + 45, + 90, + 120, + 750, + 800, + 900, + 2250, + 9999, + 500000, + -18000, + -10000, + -3300, + -1440, + -1000, + -180, + -90, + -20, + 8, + 15, + 18, + 20, + 30, + 32, + 48, + 60, + 126, + 128, + 300, + 400, + 450, + 498, + 1200, + 1440, + 1700, + 3300, + 4000, + 9000, + 18000, + 20000, + 32000, +}; +typedef uint8_t setting_min_max_idx_t; +#define SETTING_INDEXES_GET_MIN(val) (val->config.minmax.indexes[0]) +#define SETTING_INDEXES_GET_MAX(val) (val->config.minmax.indexes[1]) +const setting_t settingsTable[] = { + // PG_GYRO_CONFIG + { {194, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 67}, offsetof(gyroConfig_t, looptime) }, + { {26, 238, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(gyroConfig_t, gyroSync) }, + { {23, 26, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_ALIGNMENT }, offsetof(gyroConfig_t, gyro_align) }, + { {26, 35, 30, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_GYRO_LPF }, offsetof(gyroConfig_t, gyro_lpf) }, + { {26, 30, 24, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 1}, offsetof(gyroConfig_t, gyro_soft_lpf_hz) }, + { {199, 72, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 57}, offsetof(gyroConfig_t, gyroMovementCalibrationThreshold) }, + { {26, 117, 24, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 7}, offsetof(gyroConfig_t, gyro_soft_notch_hz_1) }, + { {26, 117, 60, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {8, 7}, offsetof(gyroConfig_t, gyro_soft_notch_cutoff_1) }, + { {26, 118, 24, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 7}, offsetof(gyroConfig_t, gyro_soft_notch_hz_2) }, + { {26, 118, 60, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {8, 7}, offsetof(gyroConfig_t, gyro_soft_notch_cutoff_2) }, + { {176, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 7}, offsetof(gyroConfig_t, gyro_stage2_lowpass_hz) }, + // PG_ADC_CHANNEL_CONFIG + { {39, 54, 42, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 19}, offsetof(adcChannelConfig_t, adcFunctionChannel[ADC_BATTERY]) }, + { {68, 54, 42, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 19}, offsetof(adcChannelConfig_t, adcFunctionChannel[ADC_RSSI]) }, + { {59, 54, 42, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 19}, offsetof(adcChannelConfig_t, adcFunctionChannel[ADC_CURRENT]) }, + { {99, 54, 42, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 19}, offsetof(adcChannelConfig_t, adcFunctionChannel[ADC_AIRSPEED]) }, + // PG_ACCELEROMETER_CONFIG + { {27, 66, 24, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 4}, offsetof(accelerometerConfig_t, acc_notch_hz) }, + { {27, 66, 60, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {8, 4}, offsetof(accelerometerConfig_t, acc_notch_cutoff) }, + { {23, 27, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_ALIGNMENT }, offsetof(accelerometerConfig_t, acc_align) }, + { {27, 35, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_ACC_HARDWARE }, offsetof(accelerometerConfig_t, acc_hardware) }, + { {27, 30, 24, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 1}, offsetof(accelerometerConfig_t, acc_lpf_hz) }, + { {75, 97, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {10, 9}, offsetof(accelerometerConfig_t, accZero.raw[X]) }, + { {75, 98, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {10, 9}, offsetof(accelerometerConfig_t, accZero.raw[Y]) }, + { {75, 7, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {10, 9}, offsetof(accelerometerConfig_t, accZero.raw[Z]) }, + { {74, 97, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {8, 24}, offsetof(accelerometerConfig_t, accGain.raw[X]) }, + { {74, 98, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {8, 24}, offsetof(accelerometerConfig_t, accGain.raw[Y]) }, + { {74, 7, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {8, 24}, offsetof(accelerometerConfig_t, accGain.raw[Z]) }, + // PG_RANGEFINDER_CONFIG + { {122, 35, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_RANGEFINDER_HARDWARE }, offsetof(rangefinderConfig_t, rangefinder_hardware) }, + { {122, 86, 81, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(rangefinderConfig_t, use_median_filtering) }, + // PG_COMPASS_CONFIG + { {23, 21, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_ALIGNMENT }, offsetof(compassConfig_t, mag_align) }, + { {21, 35, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_MAG_HARDWARE }, offsetof(compassConfig_t, mag_hardware) }, + { {21, 154, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {40, 68}, offsetof(compassConfig_t, mag_declination) }, + { {85, 97, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {10, 9}, offsetof(compassConfig_t, magZero.raw[X]) }, + { {85, 98, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {10, 9}, offsetof(compassConfig_t, magZero.raw[Y]) }, + { {85, 7, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {10, 9}, offsetof(compassConfig_t, magZero.raw[Z]) }, + { {21, 143, 34, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {52, 33}, offsetof(compassConfig_t, magCalibrationTimeLimit) }, + { {23, 21, 14, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {11, 15}, offsetof(compassConfig_t, rollDeciDegrees) }, + { {23, 21, 13, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {11, 15}, offsetof(compassConfig_t, pitchDeciDegrees) }, + { {23, 21, 6, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {11, 15}, offsetof(compassConfig_t, yawDeciDegrees) }, + // PG_BAROMETER_CONFIG + { {56, 35, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_BARO_HARDWARE }, offsetof(barometerConfig_t, baro_hardware) }, + { {56, 86, 81, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(barometerConfig_t, use_median_filtering) }, + // PG_PITOTMETER_CONFIG + { {67, 35, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_PITOT_HARDWARE }, offsetof(pitotmeterConfig_t, pitot_hardware) }, + { {67, 247, 86, 81, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(pitotmeterConfig_t, use_median_filtering) }, + { {67, 209, 30, 0, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 8}, offsetof(pitotmeterConfig_t, pitot_noise_lpf) }, + { {67, 69, 0, 0, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 2}, offsetof(pitotmeterConfig_t, pitot_scale) }, + // PG_RX_CONFIG + { {224, 50, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_RECEIVER_TYPE }, offsetof(rxConfig_t, receiverType) }, + { {115, 38, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {62, 64}, offsetof(rxConfig_t, midrc) }, + { {18, 102, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(rxConfig_t, mincheck) }, + { {17, 102, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(rxConfig_t, maxcheck) }, + { {68, 42, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 50}, offsetof(rxConfig_t, rssi_channel) }, + { {68, 69, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {8, 4}, offsetof(rxConfig_t, rssi_scale) }, + { {68, 188, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(rxConfig_t, rssiInvert) }, + { {38, 234, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(rxConfig_t, rcSmoothing) }, + { {90, 120, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_SERIAL_RX }, offsetof(rxConfig_t, serialrx_provider) }, + { {90, 110, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(rxConfig_t, serialrx_inverted) }, + { {229, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 48}, offsetof(rxConfig_t, rx_spi_rf_channel_count) }, + { {235, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(rxConfig_t, spektrum_sat_bind) }, + { {125, 18, 132, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {34, 37}, offsetof(rxConfig_t, rx_min_usec) }, + { {125, 17, 132, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {34, 37}, offsetof(rxConfig_t, rx_max_usec) }, + { {90, 177, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(rxConfig_t, halfDuplex) }, + // PG_BLACKBOX_CONFIG + { {77, 5, 210, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {8, 4}, offsetof(blackboxConfig_t, rate_num) }, + { {77, 5, 155, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {8, 4}, offsetof(blackboxConfig_t, rate_denom) }, + { {77, 156, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_BLACKBOX_DEVICE }, offsetof(blackboxConfig_t, device) }, + // PG_MOTOR_CONFIG + { {18, 49, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(motorConfig_t, minthrottle) }, + { {17, 49, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(motorConfig_t, maxthrottle) }, + { {18, 146, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 5}, offsetof(motorConfig_t, mincommand) }, + { {65, 89, 5, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {13, 70}, offsetof(motorConfig_t, motorPwmRate) }, + { {65, 89, 221, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_MOTOR_PWM_PROTOCOL }, offsetof(motorConfig_t, motorPwmProtocol) }, + // PG_FAILSAFE_CONFIG + { {12, 25, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 1}, offsetof(failsafeConfig_t, failsafe_delay) }, + { {12, 225, 25, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 1}, offsetof(failsafeConfig_t, failsafe_recovery_delay) }, + { {12, 211, 25, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 1}, offsetof(failsafeConfig_t, failsafe_off_delay) }, + { {12, 49, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(failsafeConfig_t, failsafe_throttle) }, + { {12, 49, 114, 25, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 58}, offsetof(failsafeConfig_t, failsafe_throttle_low_delay) }, + { {12, 119, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_FAILSAFE_PROCEDURE }, offsetof(failsafeConfig_t, failsafe_procedure) }, + { {12, 236, 72, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 7}, offsetof(failsafeConfig_t, failsafe_stick_motion_threshold) }, + { {12, 2, 14, 11, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {28, 35}, offsetof(failsafeConfig_t, failsafe_fw_roll_angle) }, + { {12, 2, 13, 11, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {28, 35}, offsetof(failsafeConfig_t, failsafe_fw_pitch_angle) }, + { {12, 2, 6, 5, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {44, 3}, offsetof(failsafeConfig_t, failsafe_fw_yaw_rate) }, + { {12, 18, 79, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 21}, offsetof(failsafeConfig_t, failsafe_min_distance) }, + { {12, 18, 79, 119, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_FAILSAFE_PROCEDURE }, offsetof(failsafeConfig_t, failsafe_min_distance_procedure) }, + // PG_BOARD_ALIGNMENT + { {23, 78, 14, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {11, 15}, offsetof(boardAlignment_t, rollDeciDegrees) }, + { {23, 78, 13, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {11, 15}, offsetof(boardAlignment_t, pitchDeciDegrees) }, + { {23, 78, 6, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {11, 15}, offsetof(boardAlignment_t, yawDeciDegrees) }, + // PG_BATTERY_CONFIG + { {39, 69, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 18}, offsetof(batteryConfig_t, voltage.scale) }, + { {39, 41, 104, 52, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 7}, offsetof(batteryConfig_t, voltage.cellDetect) }, + { {39, 17, 41, 52, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 7}, offsetof(batteryConfig_t, voltage.cellMax) }, + { {39, 18, 41, 52, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 7}, offsetof(batteryConfig_t, voltage.cellMin) }, + { {39, 133, 41, 52, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 7}, offsetof(batteryConfig_t, voltage.cellWarning) }, + { {57, 58, 0, 0, 0}, VAR_UINT32 | MASTER_VALUE, .config.minmax.indexes = {0, 27}, offsetof(batteryConfig_t, capacity.value) }, + { {57, 58, 133, 0, 0}, VAR_UINT32 | MASTER_VALUE, .config.minmax.indexes = {0, 27}, offsetof(batteryConfig_t, capacity.warning) }, + { {57, 58, 150, 0, 0}, VAR_UINT32 | MASTER_VALUE, .config.minmax.indexes = {0, 27}, offsetof(batteryConfig_t, capacity.critical) }, + { {57, 58, 96, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_BAT_CAPACITY_UNIT }, offsetof(batteryConfig_t, capacity.unit) }, + { {59, 87, 69, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {41, 17}, offsetof(batteryConfig_t, current.scale) }, + { {59, 87, 88, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {42, 65}, offsetof(batteryConfig_t, current.offset) }, + { {59, 87, 50, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_CURRENT_SENSOR }, offsetof(batteryConfig_t, current.type) }, + // PG_MIXER_CONFIG + { {6, 65, 157, 0, 0}, VAR_INT8 | MASTER_VALUE, .config.minmax.indexes = {29, 8}, offsetof(mixerConfig_t, yaw_motor_direction) }, + { {253, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {20, 7}, offsetof(mixerConfig_t, yaw_jump_prevention_limit) }, + { {217, 50, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_PLATFORM_TYPE }, offsetof(mixerConfig_t, platformType) }, + { {178, 168, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(mixerConfig_t, hasFlaps) }, + { {116, 220, 50, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {29, 9}, offsetof(mixerConfig_t, appliedMixerPreset) }, + // PG_MOTOR_3D_CONFIG + { {53, 29, 114, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(flight3DConfig_t, deadband3d_low) }, + { {53, 29, 179, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(flight3DConfig_t, deadband3d_high) }, + { {53, 208, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(flight3DConfig_t, neutral3d) }, + // PG_SERVO_CONFIG + { {70, 144, 222, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(servoConfig_t, servoCenterPulse) }, + { {70, 89, 5, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {13, 61}, offsetof(servoConfig_t, servoPwmRate) }, + { {70, 30, 24, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {0, 59}, offsetof(servoConfig_t, servo_lowpass_freq) }, + { {167, 129, 88, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {13, 60}, offsetof(servoConfig_t, flaperon_throw_offset) }, + { {241, 243, 70, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(servoConfig_t, tri_unarmed_servo) }, + // PG_CONTROL_RATE_PROFILES + { {33, 115, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, throttle.rcMid8) }, + { {33, 45, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, throttle.rcExpo8) }, + { {95, 5, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, throttle.dynPID) }, + { {95, 142, 0, 0, 0}, VAR_UINT16 | CONTROL_RATE_VALUE, .config.minmax.indexes = {3, 5}, offsetof(controlRateConfig_t, throttle.pa_breakpoint) }, + { {2, 95, 34, 148, 0}, VAR_UINT16 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 16}, offsetof(controlRateConfig_t, throttle.fixedWingTauMs) }, + { {38, 45, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, stabilized.rcExpo8) }, + { {38, 6, 45, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, stabilized.rcYawExpo8) }, + { {14, 5, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {30, 14}, offsetof(controlRateConfig_t, stabilized.rates[FD_ROLL]) }, + { {13, 5, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {30, 14}, offsetof(controlRateConfig_t, stabilized.rates[FD_PITCH]) }, + { {6, 5, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {22, 14}, offsetof(controlRateConfig_t, stabilized.rates[FD_YAW]) }, + { {31, 38, 45, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, manual.rcExpo8) }, + { {31, 38, 6, 45, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, manual.rcYawExpo8) }, + { {31, 14, 5, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, manual.rates[FD_ROLL]) }, + { {31, 13, 5, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, manual.rates[FD_PITCH]) }, + { {31, 6, 5, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, manual.rates[FD_YAW]) }, + // PG_SERIAL_CONFIG + { {223, 145, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {54, 56}, offsetof(serialConfig_t, reboot_character) }, + // PG_IMU_CONFIG + { {63, 61, 113, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 18}, offsetof(imuConfig_t, dcm_kp_acc) }, + { {63, 61, 112, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 18}, offsetof(imuConfig_t, dcm_ki_acc) }, + { {63, 61, 113, 21, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 18}, offsetof(imuConfig_t, dcm_kp_mag) }, + { {63, 61, 112, 21, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 18}, offsetof(imuConfig_t, dcm_ki_mag) }, + { {233, 11, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 14}, offsetof(imuConfig_t, small_angle) }, + // PG_ARMING_CONFIG + { {166, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(armingConfig_t, fixed_wing_auto_arm) }, + { {44, 189, 92, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(armingConfig_t, disarm_kill_switch) }, + { {28, 44, 25, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 55}, offsetof(armingConfig_t, auto_disarm_delay) }, + { {92, 44, 25, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 3}, offsetof(armingConfig_t, switchDisarmDelayMs) }, + // PG_GPS_CONFIG + { {19, 120, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_GPS_PROVIDER }, offsetof(gpsConfig_t, provider) }, + { {19, 231, 47, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_GPS_SBAS_MODE }, offsetof(gpsConfig_t, sbasMode) }, + { {19, 161, 116, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_GPS_DYN_MODEL }, offsetof(gpsConfig_t, dynModel) }, + { {19, 28, 147, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(gpsConfig_t, autoConfig) }, + { {19, 28, 139, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(gpsConfig_t, autoBaud) }, + { {175, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(gpsConfig_t, ubloxUseGalileo) }, + { {19, 18, 230, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {12, 6}, offsetof(gpsConfig_t, gpsMinSats) }, + // PG_RC_CONTROLS_CONFIG + { {29, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 53}, offsetof(rcControlsConfig_t, deadband) }, + { {6, 29, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 2}, offsetof(rcControlsConfig_t, yaw_deadband) }, + { {10, 83, 29, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {6, 23}, offsetof(rcControlsConfig_t, pos_hold_deadband) }, + { {100, 83, 29, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {6, 23}, offsetof(rcControlsConfig_t, alt_hold_deadband) }, + { {53, 29, 49, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(rcControlsConfig_t, deadband3d_throttle) }, + // PG_PID_PROFILE + { {3, 4, 13, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_PITCH].P) }, + { {3, 9, 13, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_PITCH].I) }, + { {3, 16, 13, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_PITCH].D) }, + { {3, 4, 14, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_ROLL].P) }, + { {3, 9, 14, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_ROLL].I) }, + { {3, 16, 14, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_ROLL].D) }, + { {3, 4, 6, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_YAW].P) }, + { {3, 9, 6, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_YAW].I) }, + { {3, 16, 6, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_YAW].D) }, + { {3, 4, 36, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_LEVEL].P) }, + { {3, 9, 36, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_LEVEL].I) }, + { {3, 16, 36, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_LEVEL].D) }, + { {2, 4, 13, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_PITCH].P) }, + { {2, 9, 13, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_PITCH].I) }, + { {2, 80, 13, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_PITCH].D) }, + { {2, 4, 14, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_ROLL].P) }, + { {2, 9, 14, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_ROLL].I) }, + { {2, 80, 14, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_ROLL].D) }, + { {2, 4, 6, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_YAW].P) }, + { {2, 9, 6, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_YAW].I) }, + { {2, 80, 6, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_YAW].D) }, + { {2, 4, 36, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_LEVEL].P) }, + { {2, 9, 36, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_LEVEL].I) }, + { {2, 16, 36, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_LEVEL].D) }, + { {17, 11, 109, 228, 0}, VAR_INT16 | PROFILE_VALUE, .config.minmax.indexes = {2, 36}, offsetof(pidProfile_t, max_angle_inclination[FD_ROLL]) }, + { {17, 11, 109, 215, 0}, VAR_INT16 | PROFILE_VALUE, .config.minmax.indexes = {2, 36}, offsetof(pidProfile_t, max_angle_inclination[FD_PITCH]) }, + { {62, 30, 24, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, dterm_lpf_hz) }, + { {6, 30, 24, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, yaw_lpf_hz) }, + { {62, 232, 250, 0, 0}, VAR_FLOAT | PROFILE_VALUE, .config.minmax.indexes = {0, 22}, offsetof(pidProfile_t, dterm_setpoint_weight) }, + { {2, 111, 129, 37, 0}, VAR_UINT16 | PROFILE_VALUE, .config.minmax.indexes = {0, 7}, offsetof(pidProfile_t, fixedWingItermThrowLimit) }, + { {2, 226, 99, 0, 0}, VAR_FLOAT | PROFILE_VALUE, .config.minmax.indexes = {8, 16}, offsetof(pidProfile_t, fixedWingReferenceAirspeed) }, + { {174, 0, 0, 0, 0}, VAR_FLOAT | PROFILE_VALUE, .config.minmax.indexes = {0, 22}, offsetof(pidProfile_t, fixedWingCoordinatedYawGain) }, + { {62, 66, 24, 0, 0}, VAR_UINT16 | PROFILE_VALUE, .config.minmax.indexes = {0, 7}, offsetof(pidProfile_t, dterm_soft_notch_hz) }, + { {62, 66, 60, 0, 0}, VAR_UINT16 | PROFILE_VALUE, .config.minmax.indexes = {8, 7}, offsetof(pidProfile_t, dterm_soft_notch_cutoff) }, + { {214, 37, 0, 0, 0}, VAR_UINT16 | PROFILE_VALUE, .config.minmax.indexes = {2, 3}, offsetof(pidProfile_t, pidSumLimit) }, + { {6, 4, 37, 0, 0}, VAR_UINT16 | PROFILE_VALUE, .config.minmax.indexes = {2, 7}, offsetof(pidProfile_t, yaw_p_limit) }, + { {111, 251, 0, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 32}, offsetof(pidProfile_t, itermWindupPointPercent) }, + { {5, 73, 37, 14, 13}, VAR_UINT32 | PROFILE_VALUE, .config.minmax.indexes = {0, 39}, offsetof(pidProfile_t, axisAccelerationLimitRollPitch) }, + { {5, 73, 37, 6, 0}, VAR_UINT32 | PROFILE_VALUE, .config.minmax.indexes = {0, 39}, offsetof(pidProfile_t, axisAccelerationLimitYaw) }, + { {82, 83, 5, 37, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {6, 23}, offsetof(pidProfile_t, heading_hold_rate_limit) }, + { {1, 3, 10, 7, 4}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_POS_Z].P) }, + { {1, 3, 10, 7, 9}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_POS_Z].I) }, + { {1, 3, 10, 7, 16}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_POS_Z].D) }, + { {1, 3, 40, 7, 4}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_VEL_Z].P) }, + { {1, 3, 40, 7, 9}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_VEL_Z].I) }, + { {1, 3, 40, 7, 16}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_VEL_Z].D) }, + { {1, 3, 10, 15, 4}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_POS_XY].P) }, + { {1, 3, 10, 15, 9}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_POS_XY].I) }, + { {1, 3, 10, 15, 16}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_POS_XY].D) }, + { {1, 3, 40, 15, 4}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_VEL_XY].P) }, + { {1, 3, 40, 15, 9}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_VEL_XY].I) }, + { {1, 3, 40, 15, 16}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_VEL_XY].D) }, + { {1, 3, 82, 4, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_HEADING].P) }, + { {1, 2, 10, 7, 4}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_POS_Z].P) }, + { {1, 2, 10, 7, 9}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_POS_Z].I) }, + { {1, 2, 10, 7, 16}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_POS_Z].D) }, + { {1, 2, 10, 15, 4}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_POS_XY].P) }, + { {1, 2, 10, 15, 9}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_POS_XY].I) }, + { {1, 2, 10, 15, 16}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_POS_XY].D) }, + { {1, 2, 82, 4, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_HEADING].P) }, + // PG_PID_AUTOTUNE_CONFIG + { {2, 76, 213, 34, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {13, 7}, offsetof(pidAutotuneConfig_t, fw_overshoot_time) }, + { {2, 76, 244, 34, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {13, 7}, offsetof(pidAutotuneConfig_t, fw_undershoot_time) }, + { {2, 76, 72, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 2}, offsetof(pidAutotuneConfig_t, fw_max_rate_threshold) }, + { {173, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 2}, offsetof(pidAutotuneConfig_t, fw_ff_to_p_gain) }, + { {172, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 16}, offsetof(pidAutotuneConfig_t, fw_ff_to_i_time_constant) }, + // PG_POSITION_ESTIMATION_CONFIG + { {8, 28, 21, 153, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(positionEstimationConfig_t, automatic_mag_declination) }, + { {185, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 4}, offsetof(positionEstimationConfig_t, gravity_calibration_tolerance) }, + { {186, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(positionEstimationConfig_t, use_gps_velned) }, + { {8, 124, 55, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_RESET_TYPE }, offsetof(positionEstimationConfig_t, reset_altitude_type) }, + { {8, 124, 180, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_RESET_TYPE }, offsetof(positionEstimationConfig_t, reset_home_type) }, + { {8, 17, 91, 55, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 3}, offsetof(positionEstimationConfig_t, max_surface_altitude) }, + { {8, 22, 7, 91, 4}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_z_surface_p) }, + { {8, 22, 7, 91, 51}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_z_surface_v) }, + { {8, 22, 7, 56, 4}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_z_baro_p) }, + { {8, 22, 7, 19, 4}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_z_gps_p) }, + { {8, 22, 7, 19, 51}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_z_gps_v) }, + { {8, 22, 15, 19, 4}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_xy_gps_p) }, + { {8, 22, 15, 19, 51}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_xy_gps_v) }, + { {8, 22, 7, 123, 51}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_z_res_v) }, + { {8, 22, 15, 123, 51}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_xy_res_v) }, + { {8, 22, 27, 140, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 8}, offsetof(positionEstimationConfig_t, w_acc_bias) }, + { {8, 17, 164, 106, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 38}, offsetof(positionEstimationConfig_t, max_eph_epv) }, + { {8, 56, 106, 0, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 38}, offsetof(positionEstimationConfig_t, baro_epv) }, + // PG_NAV_CONFIG + { {1, 44, 212, 64, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(navConfig_t, general.flags.disarm_on_landing) }, + { {205, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(navConfig_t, general.flags.use_thr_mid_for_althold) }, + { {200, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(navConfig_t, general.flags.extra_arming_safety) }, + { {206, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_NAV_USER_CONTROL_MODE }, offsetof(navConfig_t, general.flags.user_control_mode) }, + { {1, 218, 130, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(navConfig_t, general.pos_failure_timeout) }, + { {1, 252, 121, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {6, 17}, offsetof(navConfig_t, general.waypoint_radius) }, + { {207, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 21}, offsetof(navConfig_t, general.waypoint_safe_distance) }, + { {1, 28, 48, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {6, 5}, offsetof(navConfig_t, general.max_auto_speed) }, + { {1, 28, 43, 5, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {6, 5}, offsetof(navConfig_t, general.max_auto_climb_rate) }, + { {1, 31, 48, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {6, 5}, offsetof(navConfig_t, general.max_manual_speed) }, + { {1, 31, 43, 5, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {6, 5}, offsetof(navConfig_t, general.max_manual_climb_rate) }, + { {1, 64, 48, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 5}, offsetof(navConfig_t, general.land_descent_rate) }, + { {1, 84, 126, 197, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {13, 3}, offsetof(navConfig_t, general.land_slowdown_minalt) }, + { {1, 84, 126, 196, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {7, 66}, offsetof(navConfig_t, general.land_slowdown_maxalt) }, + { {1, 162, 64, 48, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 5}, offsetof(navConfig_t, general.emerg_descent_rate) }, + { {1, 18, 32, 79, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 16}, offsetof(navConfig_t, general.min_rth_distance) }, + { {1, 32, 43, 107, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(navConfig_t, general.flags.rth_climb_first) }, + { {204, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(navConfig_t, general.flags.rth_climb_ignore_emerg) }, + { {1, 32, 239, 107, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(navConfig_t, general.flags.rth_tail_first) }, + { {1, 32, 135, 64, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_NAV_RTH_ALLOW_LANDING }, offsetof(navConfig_t, general.flags.rth_allow_landing) }, + { {1, 32, 100, 47, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_NAV_RTH_ALT_MODE }, offsetof(navConfig_t, general.flags.rth_alt_control_mode) }, + { {1, 32, 134, 72, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 21}, offsetof(navConfig_t, general.rth_abort_threshold) }, + { {203, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 3}, offsetof(navConfig_t, general.max_terrain_follow_altitude) }, + { {1, 32, 55, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 21}, offsetof(navConfig_t, general.rth_altitude) }, + { {1, 3, 101, 11, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {49, 31}, offsetof(navConfig_t, mc.max_bank_angle) }, + { {1, 3, 182, 33, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(navConfig_t, mc.hover_throttle) }, + { {1, 3, 28, 44, 25}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 17}, offsetof(navConfig_t, mc.auto_disarm_delay) }, + { {1, 2, 151, 33, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(navConfig_t, fw.cruise_throttle) }, + { {1, 2, 18, 33, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(navConfig_t, fw.min_throttle) }, + { {1, 2, 17, 33, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(navConfig_t, fw.max_throttle) }, + { {1, 2, 101, 11, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {12, 20}, offsetof(navConfig_t, fw.max_bank_angle) }, + { {1, 2, 43, 11, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {12, 20}, offsetof(navConfig_t, fw.max_climb_angle) }, + { {1, 2, 105, 11, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {12, 20}, offsetof(navConfig_t, fw.max_dive_angle) }, + { {1, 2, 216, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 2}, offsetof(navConfig_t, fw.pitch_to_throttle) }, + { {1, 2, 192, 121, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 17}, offsetof(navConfig_t, fw.loiter_radius) }, + { {1, 2, 84, 105, 11}, VAR_INT8 | MASTER_VALUE, .config.minmax.indexes = {47, 51}, offsetof(navConfig_t, fw.land_dive_angle) }, + { {1, 2, 20, 248, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 17}, offsetof(navConfig_t, fw.launch_velocity_thresh) }, + { {1, 2, 20, 73, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 69}, offsetof(navConfig_t, fw.launch_accel_thresh) }, + { {1, 2, 20, 17, 11}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {12, 14}, offsetof(navConfig_t, fw.launch_max_angle) }, + { {1, 2, 20, 104, 34}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {6, 3}, offsetof(navConfig_t, fw.launch_time_thresh) }, + { {1, 2, 20, 33, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(navConfig_t, fw.launch_throttle) }, + { {201, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(navConfig_t, fw.launch_idle_throttle) }, + { {1, 2, 20, 65, 25}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 16}, offsetof(navConfig_t, fw.launch_motor_timer) }, + { {202, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 3}, offsetof(navConfig_t, fw.launch_motor_spinup_time) }, + { {1, 2, 20, 18, 34}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 25}, offsetof(navConfig_t, fw.launch_min_time) }, + { {1, 2, 20, 130, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 25}, offsetof(navConfig_t, fw.launch_timeout) }, + { {1, 2, 20, 17, 55}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 25}, offsetof(navConfig_t, fw.launch_max_altitude) }, + { {1, 2, 20, 43, 11}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {12, 31}, offsetof(navConfig_t, fw.launch_climb_angle) }, + // PG_TELEMETRY_CONFIG + { {93, 92, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(telemetryConfig_t, telemetry_switch) }, + { {93, 110, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(telemetryConfig_t, telemetry_inverted) }, + { {46, 103, 190, 0, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {46, 32}, offsetof(telemetryConfig_t, gpsNoFixLatitude) }, + { {46, 103, 193, 0, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {45, 14}, offsetof(telemetryConfig_t, gpsNoFixLongitude) }, + { {46, 149, 170, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 8}, offsetof(telemetryConfig_t, frsky_coordinate_format) }, + { {46, 96, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_FRSKY_UNIT }, offsetof(telemetryConfig_t, frsky_unit) }, + { {46, 249, 219, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 8}, offsetof(telemetryConfig_t, frsky_vfas_precision) }, + { {227, 41, 52, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(telemetryConfig_t, report_cell_voltage) }, + { {181, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 33}, offsetof(telemetryConfig_t, hottAlarmSoundInterval) }, + { {127, 242, 245, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(telemetryConfig_t, smartportUartUnidirectional) }, + { {127, 171, 96, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_SMARTPORT_FUEL_UNIT }, offsetof(telemetryConfig_t, smartportFuelUnit) }, + { {184, 93, 50, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 4}, offsetof(telemetryConfig_t, ibusTelemetryType) }, + { {195, 246, 5, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_LTM_RATES }, offsetof(telemetryConfig_t, ltmUpdateRate) }, + // PG_LED_STRIP_CONFIG + { {191, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(ledStripConfig_t, ledstrip_visual_beeper) }, + // PG_SYSTEM_CONFIG + { {183, 48, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_I2C_SPEED }, offsetof(systemConfig_t, i2c_speed) }, + { {152, 47, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_DEBUG_MODES }, offsetof(systemConfig_t, debug_mode) }, + { {27, 128, 108, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 3}, offsetof(systemConfig_t, accTaskFrequency) }, + { {137, 128, 108, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 3}, offsetof(systemConfig_t, attitudeTaskFrequency) }, + { {136, 47, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_ASYNC_MODE }, offsetof(systemConfig_t, asyncMode) }, + { {240, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 2}, offsetof(systemConfig_t, throttle_tilt_compensation_strength) }, + { {187, 165, 47, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(systemConfig_t, pwmRxInputFilteringMode) }, + // PG_MODE_ACTIVATION_OPERATOR_CONFIG + { {198, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_AUX_OPERATOR }, offsetof(modeActivationOperatorConfig_t, modeActivationOperator) }, + // PG_STATS_CONFIG + { {71, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(statsConfig_t, stats_enabled) }, + { {71, 94, 34, 0, 0}, VAR_UINT32 | MASTER_VALUE, .config.minmax.indexes = {0, 26}, offsetof(statsConfig_t, stats_total_time) }, + { {71, 94, 159, 0, 0}, VAR_UINT32 | MASTER_VALUE, .config.minmax.indexes = {0, 26}, offsetof(statsConfig_t, stats_total_dist) }, + { {71, 94, 163, 0, 0}, VAR_UINT32 | MASTER_VALUE, .config.minmax.indexes = {0, 26}, offsetof(statsConfig_t, stats_total_energy) }, + // PG_TIME_CONFIG + { {131, 88, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {43, 63}, offsetof(timeConfig_t, tz_offset) }, + { {131, 138, 160, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 0}, offsetof(timeConfig_t, tz_automatic_dst) }, + // PG_DISPLAY_CONFIG + { {158, 169, 237, 141, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(displayConfig_t, force_sw_blink) }, +}; diff --git a/src/main/fc/settings_generated.h b/src/main/fc/settings_generated.h new file mode 100644 index 00000000000..33f536a623d --- /dev/null +++ b/src/main/fc/settings_generated.h @@ -0,0 +1,380 @@ +// This file has been automatically generated by utils/settings.rb +// Don't make any modifications to it. They will be lost. + +#pragma once +#define SETTING_MAX_NAME_LENGTH 32 +#define SETTING_ENCODED_NAME_MAX_BYTES 5 +#define SETTING_ENCODED_NAME_USES_BYTE_INDEXING +#define SETTINGS_TABLE_COUNT 304 +typedef uint8_t setting_offset_t; +#define SETTINGS_PGN_COUNT 33 +typedef int16_t setting_min_t; +typedef uint32_t setting_max_t; +#define SETTING_MIN_MAX_INDEX_BYTES 2 +enum { + TABLE_ACC_HARDWARE, + TABLE_ALIGNMENT, + TABLE_ASYNC_MODE, + TABLE_AUX_OPERATOR, + TABLE_BARO_HARDWARE, + TABLE_BAT_CAPACITY_UNIT, + TABLE_BLACKBOX_DEVICE, + TABLE_CURRENT_SENSOR, + TABLE_DEBUG_MODES, + TABLE_FAILSAFE_PROCEDURE, + TABLE_FRSKY_UNIT, + TABLE_GPS_DYN_MODEL, + TABLE_GPS_PROVIDER, + TABLE_GPS_SBAS_MODE, + TABLE_GYRO_LPF, + TABLE_I2C_SPEED, + TABLE_LTM_RATES, + TABLE_MAG_HARDWARE, + TABLE_MOTOR_PWM_PROTOCOL, + TABLE_NAV_RTH_ALLOW_LANDING, + TABLE_NAV_RTH_ALT_MODE, + TABLE_NAV_USER_CONTROL_MODE, + TABLE_OFF_ON, + TABLE_PITOT_HARDWARE, + TABLE_PLATFORM_TYPE, + TABLE_RANGEFINDER_HARDWARE, + TABLE_RECEIVER_TYPE, + TABLE_RESET_TYPE, + TABLE_SERIAL_RX, + TABLE_SMARTPORT_FUEL_UNIT, + LOOKUP_TABLE_COUNT, +}; +extern const char * const table_acc_hardware[]; +extern const char * const table_alignment[]; +extern const char * const table_async_mode[]; +extern const char * const table_aux_operator[]; +extern const char * const table_baro_hardware[]; +extern const char * const table_bat_capacity_unit[]; +extern const char * const table_blackbox_device[]; +extern const char * const table_current_sensor[]; +extern const char * const table_debug_modes[]; +extern const char * const table_failsafe_procedure[]; +extern const char * const table_frsky_unit[]; +extern const char * const table_gps_dyn_model[]; +extern const char * const table_gps_provider[]; +extern const char * const table_gps_sbas_mode[]; +extern const char * const table_gyro_lpf[]; +extern const char * const table_i2c_speed[]; +extern const char * const table_ltm_rates[]; +extern const char * const table_mag_hardware[]; +extern const char * const table_motor_pwm_protocol[]; +extern const char * const table_nav_rth_allow_landing[]; +extern const char * const table_nav_rth_alt_mode[]; +extern const char * const table_nav_user_control_mode[]; +extern const char * const table_off_on[]; +extern const char * const table_pitot_hardware[]; +extern const char * const table_platform_type[]; +extern const char * const table_rangefinder_hardware[]; +extern const char * const table_receiver_type[]; +extern const char * const table_reset_type[]; +extern const char * const table_serial_rx[]; +extern const char * const table_smartport_fuel_unit[]; +#define SETTING_LOOPTIME 0 +#define SETTING_GYRO_SYNC 1 +#define SETTING_ALIGN_GYRO 2 +#define SETTING_GYRO_HARDWARE_LPF 3 +#define SETTING_GYRO_LPF_HZ 4 +#define SETTING_MORON_THRESHOLD 5 +#define SETTING_GYRO_NOTCH1_HZ 6 +#define SETTING_GYRO_NOTCH1_CUTOFF 7 +#define SETTING_GYRO_NOTCH2_HZ 8 +#define SETTING_GYRO_NOTCH2_CUTOFF 9 +#define SETTING_GYRO_STAGE2_LOWPASS_HZ 10 +#define SETTING_VBAT_ADC_CHANNEL 11 +#define SETTING_RSSI_ADC_CHANNEL 12 +#define SETTING_CURRENT_ADC_CHANNEL 13 +#define SETTING_AIRSPEED_ADC_CHANNEL 14 +#define SETTING_ACC_NOTCH_HZ 15 +#define SETTING_ACC_NOTCH_CUTOFF 16 +#define SETTING_ALIGN_ACC 17 +#define SETTING_ACC_HARDWARE 18 +#define SETTING_ACC_LPF_HZ 19 +#define SETTING_ACCZERO_X 20 +#define SETTING_ACCZERO_Y 21 +#define SETTING_ACCZERO_Z 22 +#define SETTING_ACCGAIN_X 23 +#define SETTING_ACCGAIN_Y 24 +#define SETTING_ACCGAIN_Z 25 +#define SETTING_RANGEFINDER_HARDWARE 26 +#define SETTING_RANGEFINDER_MEDIAN_FILTER 27 +#define SETTING_ALIGN_MAG 28 +#define SETTING_MAG_HARDWARE 29 +#define SETTING_MAG_DECLINATION 30 +#define SETTING_MAGZERO_X 31 +#define SETTING_MAGZERO_Y 32 +#define SETTING_MAGZERO_Z 33 +#define SETTING_MAG_CALIBRATION_TIME 34 +#define SETTING_ALIGN_MAG_ROLL 35 +#define SETTING_ALIGN_MAG_PITCH 36 +#define SETTING_ALIGN_MAG_YAW 37 +#define SETTING_BARO_HARDWARE 38 +#define SETTING_BARO_MEDIAN_FILTER 39 +#define SETTING_PITOT_HARDWARE 40 +#define SETTING_PITOT_USE_MEDIAN_FILTER 41 +#define SETTING_PITOT_NOISE_LPF 42 +#define SETTING_PITOT_SCALE 43 +#define SETTING_RECEIVER_TYPE 44 +#define SETTING_MID_RC 45 +#define SETTING_MIN_CHECK 46 +#define SETTING_MAX_CHECK 47 +#define SETTING_RSSI_CHANNEL 48 +#define SETTING_RSSI_SCALE 49 +#define SETTING_RSSI_INVERT 50 +#define SETTING_RC_SMOOTHING 51 +#define SETTING_SERIALRX_PROVIDER 52 +#define SETTING_SERIALRX_INVERTED 53 +#define SETTING_RX_SPI_RF_CHANNEL_COUNT 54 +#define SETTING_SPEKTRUM_SAT_BIND 55 +#define SETTING_RX_MIN_USEC 56 +#define SETTING_RX_MAX_USEC 57 +#define SETTING_SERIALRX_HALFDUPLEX 58 +#define SETTING_BLACKBOX_RATE_NUM 59 +#define SETTING_BLACKBOX_RATE_DENOM 60 +#define SETTING_BLACKBOX_DEVICE 61 +#define SETTING_MIN_THROTTLE 62 +#define SETTING_MAX_THROTTLE 63 +#define SETTING_MIN_COMMAND 64 +#define SETTING_MOTOR_PWM_RATE 65 +#define SETTING_MOTOR_PWM_PROTOCOL 66 +#define SETTING_FAILSAFE_DELAY 67 +#define SETTING_FAILSAFE_RECOVERY_DELAY 68 +#define SETTING_FAILSAFE_OFF_DELAY 69 +#define SETTING_FAILSAFE_THROTTLE 70 +#define SETTING_FAILSAFE_THROTTLE_LOW_DELAY 71 +#define SETTING_FAILSAFE_PROCEDURE 72 +#define SETTING_FAILSAFE_STICK_THRESHOLD 73 +#define SETTING_FAILSAFE_FW_ROLL_ANGLE 74 +#define SETTING_FAILSAFE_FW_PITCH_ANGLE 75 +#define SETTING_FAILSAFE_FW_YAW_RATE 76 +#define SETTING_FAILSAFE_MIN_DISTANCE 77 +#define SETTING_FAILSAFE_MIN_DISTANCE_PROCEDURE 78 +#define SETTING_ALIGN_BOARD_ROLL 79 +#define SETTING_ALIGN_BOARD_PITCH 80 +#define SETTING_ALIGN_BOARD_YAW 81 +#define SETTING_VBAT_SCALE 82 +#define SETTING_VBAT_CELL_DETECT_VOLTAGE 83 +#define SETTING_VBAT_MAX_CELL_VOLTAGE 84 +#define SETTING_VBAT_MIN_CELL_VOLTAGE 85 +#define SETTING_VBAT_WARNING_CELL_VOLTAGE 86 +#define SETTING_BATTERY_CAPACITY 87 +#define SETTING_BATTERY_CAPACITY_WARNING 88 +#define SETTING_BATTERY_CAPACITY_CRITICAL 89 +#define SETTING_BATTERY_CAPACITY_UNIT 90 +#define SETTING_CURRENT_METER_SCALE 91 +#define SETTING_CURRENT_METER_OFFSET 92 +#define SETTING_CURRENT_METER_TYPE 93 +#define SETTING_YAW_MOTOR_DIRECTION 94 +#define SETTING_YAW_JUMP_PREVENTION_LIMIT 95 +#define SETTING_PLATFORM_TYPE 96 +#define SETTING_HAS_FLAPS 97 +#define SETTING_MODEL_PREVIEW_TYPE 98 +#define SETTING_3D_DEADBAND_LOW 99 +#define SETTING_3D_DEADBAND_HIGH 100 +#define SETTING_3D_NEUTRAL 101 +#define SETTING_SERVO_CENTER_PULSE 102 +#define SETTING_SERVO_PWM_RATE 103 +#define SETTING_SERVO_LPF_HZ 104 +#define SETTING_FLAPERON_THROW_OFFSET 105 +#define SETTING_TRI_UNARMED_SERVO 106 +#define SETTING_THR_MID 107 +#define SETTING_THR_EXPO 108 +#define SETTING_TPA_RATE 109 +#define SETTING_TPA_BREAKPOINT 110 +#define SETTING_FW_TPA_TIME_CONSTANT 111 +#define SETTING_RC_EXPO 112 +#define SETTING_RC_YAW_EXPO 113 +#define SETTING_ROLL_RATE 114 +#define SETTING_PITCH_RATE 115 +#define SETTING_YAW_RATE 116 +#define SETTING_MANUAL_RC_EXPO 117 +#define SETTING_MANUAL_RC_YAW_EXPO 118 +#define SETTING_MANUAL_ROLL_RATE 119 +#define SETTING_MANUAL_PITCH_RATE 120 +#define SETTING_MANUAL_YAW_RATE 121 +#define SETTING_REBOOT_CHARACTER 122 +#define SETTING_IMU_DCM_KP 123 +#define SETTING_IMU_DCM_KI 124 +#define SETTING_IMU_DCM_KP_MAG 125 +#define SETTING_IMU_DCM_KI_MAG 126 +#define SETTING_SMALL_ANGLE 127 +#define SETTING_FIXED_WING_AUTO_ARM 128 +#define SETTING_DISARM_KILL_SWITCH 129 +#define SETTING_AUTO_DISARM_DELAY 130 +#define SETTING_SWITCH_DISARM_DELAY 131 +#define SETTING_GPS_PROVIDER 132 +#define SETTING_GPS_SBAS_MODE 133 +#define SETTING_GPS_DYN_MODEL 134 +#define SETTING_GPS_AUTO_CONFIG 135 +#define SETTING_GPS_AUTO_BAUD 136 +#define SETTING_GPS_UBLOX_USE_GALILEO 137 +#define SETTING_GPS_MIN_SATS 138 +#define SETTING_DEADBAND 139 +#define SETTING_YAW_DEADBAND 140 +#define SETTING_POS_HOLD_DEADBAND 141 +#define SETTING_ALT_HOLD_DEADBAND 142 +#define SETTING_3D_DEADBAND_THROTTLE 143 +#define SETTING_MC_P_PITCH 144 +#define SETTING_MC_I_PITCH 145 +#define SETTING_MC_D_PITCH 146 +#define SETTING_MC_P_ROLL 147 +#define SETTING_MC_I_ROLL 148 +#define SETTING_MC_D_ROLL 149 +#define SETTING_MC_P_YAW 150 +#define SETTING_MC_I_YAW 151 +#define SETTING_MC_D_YAW 152 +#define SETTING_MC_P_LEVEL 153 +#define SETTING_MC_I_LEVEL 154 +#define SETTING_MC_D_LEVEL 155 +#define SETTING_FW_P_PITCH 156 +#define SETTING_FW_I_PITCH 157 +#define SETTING_FW_FF_PITCH 158 +#define SETTING_FW_P_ROLL 159 +#define SETTING_FW_I_ROLL 160 +#define SETTING_FW_FF_ROLL 161 +#define SETTING_FW_P_YAW 162 +#define SETTING_FW_I_YAW 163 +#define SETTING_FW_FF_YAW 164 +#define SETTING_FW_P_LEVEL 165 +#define SETTING_FW_I_LEVEL 166 +#define SETTING_FW_D_LEVEL 167 +#define SETTING_MAX_ANGLE_INCLINATION_RLL 168 +#define SETTING_MAX_ANGLE_INCLINATION_PIT 169 +#define SETTING_DTERM_LPF_HZ 170 +#define SETTING_YAW_LPF_HZ 171 +#define SETTING_DTERM_SETPOINT_WEIGHT 172 +#define SETTING_FW_ITERM_THROW_LIMIT 173 +#define SETTING_FW_REFERENCE_AIRSPEED 174 +#define SETTING_FW_TURN_ASSIST_YAW_GAIN 175 +#define SETTING_DTERM_NOTCH_HZ 176 +#define SETTING_DTERM_NOTCH_CUTOFF 177 +#define SETTING_PIDSUM_LIMIT 178 +#define SETTING_YAW_P_LIMIT 179 +#define SETTING_ITERM_WINDUP 180 +#define SETTING_RATE_ACCEL_LIMIT_ROLL_PITCH 181 +#define SETTING_RATE_ACCEL_LIMIT_YAW 182 +#define SETTING_HEADING_HOLD_RATE_LIMIT 183 +#define SETTING_NAV_MC_POS_Z_P 184 +#define SETTING_NAV_MC_POS_Z_I 185 +#define SETTING_NAV_MC_POS_Z_D 186 +#define SETTING_NAV_MC_VEL_Z_P 187 +#define SETTING_NAV_MC_VEL_Z_I 188 +#define SETTING_NAV_MC_VEL_Z_D 189 +#define SETTING_NAV_MC_POS_XY_P 190 +#define SETTING_NAV_MC_POS_XY_I 191 +#define SETTING_NAV_MC_POS_XY_D 192 +#define SETTING_NAV_MC_VEL_XY_P 193 +#define SETTING_NAV_MC_VEL_XY_I 194 +#define SETTING_NAV_MC_VEL_XY_D 195 +#define SETTING_NAV_MC_HEADING_P 196 +#define SETTING_NAV_FW_POS_Z_P 197 +#define SETTING_NAV_FW_POS_Z_I 198 +#define SETTING_NAV_FW_POS_Z_D 199 +#define SETTING_NAV_FW_POS_XY_P 200 +#define SETTING_NAV_FW_POS_XY_I 201 +#define SETTING_NAV_FW_POS_XY_D 202 +#define SETTING_NAV_FW_HEADING_P 203 +#define SETTING_FW_AUTOTUNE_OVERSHOOT_TIME 204 +#define SETTING_FW_AUTOTUNE_UNDERSHOOT_TIME 205 +#define SETTING_FW_AUTOTUNE_THRESHOLD 206 +#define SETTING_FW_AUTOTUNE_FF_TO_P_GAIN 207 +#define SETTING_FW_AUTOTUNE_FF_TO_I_TC 208 +#define SETTING_INAV_AUTO_MAG_DECL 209 +#define SETTING_INAV_GRAVITY_CAL_TOLERANCE 210 +#define SETTING_INAV_USE_GPS_VELNED 211 +#define SETTING_INAV_RESET_ALTITUDE 212 +#define SETTING_INAV_RESET_HOME 213 +#define SETTING_INAV_MAX_SURFACE_ALTITUDE 214 +#define SETTING_INAV_W_Z_SURFACE_P 215 +#define SETTING_INAV_W_Z_SURFACE_V 216 +#define SETTING_INAV_W_Z_BARO_P 217 +#define SETTING_INAV_W_Z_GPS_P 218 +#define SETTING_INAV_W_Z_GPS_V 219 +#define SETTING_INAV_W_XY_GPS_P 220 +#define SETTING_INAV_W_XY_GPS_V 221 +#define SETTING_INAV_W_Z_RES_V 222 +#define SETTING_INAV_W_XY_RES_V 223 +#define SETTING_INAV_W_ACC_BIAS 224 +#define SETTING_INAV_MAX_EPH_EPV 225 +#define SETTING_INAV_BARO_EPV 226 +#define SETTING_NAV_DISARM_ON_LANDING 227 +#define SETTING_NAV_USE_MIDTHR_FOR_ALTHOLD 228 +#define SETTING_NAV_EXTRA_ARMING_SAFETY 229 +#define SETTING_NAV_USER_CONTROL_MODE 230 +#define SETTING_NAV_POSITION_TIMEOUT 231 +#define SETTING_NAV_WP_RADIUS 232 +#define SETTING_NAV_WP_SAFE_DISTANCE 233 +#define SETTING_NAV_AUTO_SPEED 234 +#define SETTING_NAV_AUTO_CLIMB_RATE 235 +#define SETTING_NAV_MANUAL_SPEED 236 +#define SETTING_NAV_MANUAL_CLIMB_RATE 237 +#define SETTING_NAV_LANDING_SPEED 238 +#define SETTING_NAV_LAND_SLOWDOWN_MINALT 239 +#define SETTING_NAV_LAND_SLOWDOWN_MAXALT 240 +#define SETTING_NAV_EMERG_LANDING_SPEED 241 +#define SETTING_NAV_MIN_RTH_DISTANCE 242 +#define SETTING_NAV_RTH_CLIMB_FIRST 243 +#define SETTING_NAV_RTH_CLIMB_IGNORE_EMERG 244 +#define SETTING_NAV_RTH_TAIL_FIRST 245 +#define SETTING_NAV_RTH_ALLOW_LANDING 246 +#define SETTING_NAV_RTH_ALT_MODE 247 +#define SETTING_NAV_RTH_ABORT_THRESHOLD 248 +#define SETTING_NAV_MAX_TERRAIN_FOLLOW_ALT 249 +#define SETTING_NAV_RTH_ALTITUDE 250 +#define SETTING_NAV_MC_BANK_ANGLE 251 +#define SETTING_NAV_MC_HOVER_THR 252 +#define SETTING_NAV_MC_AUTO_DISARM_DELAY 253 +#define SETTING_NAV_FW_CRUISE_THR 254 +#define SETTING_NAV_FW_MIN_THR 255 +#define SETTING_NAV_FW_MAX_THR 256 +#define SETTING_NAV_FW_BANK_ANGLE 257 +#define SETTING_NAV_FW_CLIMB_ANGLE 258 +#define SETTING_NAV_FW_DIVE_ANGLE 259 +#define SETTING_NAV_FW_PITCH2THR 260 +#define SETTING_NAV_FW_LOITER_RADIUS 261 +#define SETTING_NAV_FW_LAND_DIVE_ANGLE 262 +#define SETTING_NAV_FW_LAUNCH_VELOCITY 263 +#define SETTING_NAV_FW_LAUNCH_ACCEL 264 +#define SETTING_NAV_FW_LAUNCH_MAX_ANGLE 265 +#define SETTING_NAV_FW_LAUNCH_DETECT_TIME 266 +#define SETTING_NAV_FW_LAUNCH_THR 267 +#define SETTING_NAV_FW_LAUNCH_IDLE_THR 268 +#define SETTING_NAV_FW_LAUNCH_MOTOR_DELAY 269 +#define SETTING_NAV_FW_LAUNCH_SPINUP_TIME 270 +#define SETTING_NAV_FW_LAUNCH_MIN_TIME 271 +#define SETTING_NAV_FW_LAUNCH_TIMEOUT 272 +#define SETTING_NAV_FW_LAUNCH_MAX_ALTITUDE 273 +#define SETTING_NAV_FW_LAUNCH_CLIMB_ANGLE 274 +#define SETTING_TELEMETRY_SWITCH 275 +#define SETTING_TELEMETRY_INVERTED 276 +#define SETTING_FRSKY_DEFAULT_LATITUDE 277 +#define SETTING_FRSKY_DEFAULT_LONGITUDE 278 +#define SETTING_FRSKY_COORDINATES_FORMAT 279 +#define SETTING_FRSKY_UNIT 280 +#define SETTING_FRSKY_VFAS_PRECISION 281 +#define SETTING_REPORT_CELL_VOLTAGE 282 +#define SETTING_HOTT_ALARM_SOUND_INTERVAL 283 +#define SETTING_SMARTPORT_UART_UNIDIR 284 +#define SETTING_SMARTPORT_FUEL_UNIT 285 +#define SETTING_IBUS_TELEMETRY_TYPE 286 +#define SETTING_LTM_UPDATE_RATE 287 +#define SETTING_LEDSTRIP_VISUAL_BEEPER 288 +#define SETTING_I2C_SPEED 289 +#define SETTING_DEBUG_MODE 290 +#define SETTING_ACC_TASK_FREQUENCY 291 +#define SETTING_ATTITUDE_TASK_FREQUENCY 292 +#define SETTING_ASYNC_MODE 293 +#define SETTING_THROTTLE_TILT_COMP_STR 294 +#define SETTING_INPUT_FILTERING_MODE 295 +#define SETTING_MODE_RANGE_LOGIC_OPERATOR 296 +#define SETTING_STATS 297 +#define SETTING_STATS_TOTAL_TIME 298 +#define SETTING_STATS_TOTAL_DIST 299 +#define SETTING_STATS_TOTAL_ENERGY 300 +#define SETTING_TZ_OFFSET 301 +#define SETTING_TZ_AUTOMATIC_DST 302 +#define SETTING_DISPLAY_FORCE_SW_BLINK 303 From 85c690a108bf6a9b3ceafb3daba3a84068b3108b Mon Sep 17 00:00:00 2001 From: "Pawel Spychalski (DzikuVx)" Date: Wed, 6 Jun 2018 08:50:54 +0200 Subject: [PATCH 2/2] Fixed build --- src/main/fc/settings_generated.c | 1029 ------------------------------ src/main/fc/settings_generated.h | 380 ----------- 2 files changed, 1409 deletions(-) delete mode 100644 src/main/fc/settings_generated.c delete mode 100644 src/main/fc/settings_generated.h diff --git a/src/main/fc/settings_generated.c b/src/main/fc/settings_generated.c deleted file mode 100644 index cb0444623bc..00000000000 --- a/src/main/fc/settings_generated.c +++ /dev/null @@ -1,1029 +0,0 @@ -// This file has been automatically generated by utils/settings.rb -// Don't make any modifications to it. They will be lost. - -#include "platform.h" -#include "config/parameter_group_ids.h" -#include "settings.h" -#include "sensors/gyro.h" -#include "fc/config.h" -#include "sensors/acceleration.h" -#include "sensors/rangefinder.h" -#include "sensors/compass.h" -#include "sensors/barometer.h" -#include "sensors/pitotmeter.h" -#include "rx/rx.h" -#include "rx/spektrum.h" -#include "blackbox/blackbox.h" -#include "flight/mixer.h" -#include "flight/failsafe.h" -#include "sensors/boardalignment.h" -#include "sensors/battery.h" -#include "flight/servos.h" -#include "fc/controlrate_profile.h" -#include "io/serial.h" -#include "flight/imu.h" -#include "fc/rc_controls.h" -#include "flight/pid.h" -#include "navigation/navigation.h" -#include "io/serial.h" -#include "telemetry/telemetry.h" -#include "telemetry/frsky.h" -#include "common/color.h" -#include "io/ledstrip.h" -#include "fc/config.h" -#include "fc/rc_modes.h" -#include "fc/stats.h" -#include "common/time.h" -#include "drivers/display.h" -const pgn_t settingsPgn[] = { - PG_GYRO_CONFIG, - PG_ADC_CHANNEL_CONFIG, - PG_ACCELEROMETER_CONFIG, - PG_RANGEFINDER_CONFIG, - PG_COMPASS_CONFIG, - PG_BAROMETER_CONFIG, - PG_PITOTMETER_CONFIG, - PG_RX_CONFIG, - PG_BLACKBOX_CONFIG, - PG_MOTOR_CONFIG, - PG_FAILSAFE_CONFIG, - PG_BOARD_ALIGNMENT, - PG_BATTERY_CONFIG, - PG_MIXER_CONFIG, - PG_MOTOR_3D_CONFIG, - PG_SERVO_CONFIG, - PG_CONTROL_RATE_PROFILES, - PG_SERIAL_CONFIG, - PG_IMU_CONFIG, - PG_ARMING_CONFIG, - PG_GPS_CONFIG, - PG_RC_CONTROLS_CONFIG, - PG_PID_PROFILE, - PG_PID_AUTOTUNE_CONFIG, - PG_POSITION_ESTIMATION_CONFIG, - PG_NAV_CONFIG, - PG_TELEMETRY_CONFIG, - PG_LED_STRIP_CONFIG, - PG_SYSTEM_CONFIG, - PG_MODE_ACTIVATION_OPERATOR_CONFIG, - PG_STATS_CONFIG, - PG_TIME_CONFIG, - PG_DISPLAY_CONFIG, -}; -const uint8_t settingsPgnCounts[] = { - 11, - 4, - 11, - 2, - 10, - 2, - 4, - 15, - 3, - 5, - 12, - 3, - 12, - 5, - 3, - 5, - 15, - 1, - 5, - 4, - 7, - 5, - 60, - 5, - 18, - 48, - 13, - 1, - 7, - 1, - 4, - 2, - 1, -}; -static const char *settingNamesWords[] = { - NULL, - "nav", - "fw", - "mc", - "p", - "rate", - "yaw", - "z", - "inav", - "i", - "pos", - "angle", - "failsafe", - "pitch", - "roll", - "xy", - "d", - "max", - "min", - "gps", - "launch", - "mag", - "w", - "align", - "hz", - "delay", - "gyro", - "acc", - "auto", - "deadband", - "lpf", - "manual", - "rth", - "thr", - "time", - "hardware", - "level", - "limit", - "rc", - "vbat", - "vel", - "cell", - "channel", - "climb", - "disarm", - "expo", - "frsky", - "mode", - "speed", - "throttle", - "type", - "v", - "voltage", - "3d", - "adc", - "altitude", - "baro", - "battery", - "capacity", - "current", - "cutoff", - "dcm", - "dterm", - "imu", - "landing", - "motor", - "notch", - "pitot", - "rssi", - "scale", - "servo", - "stats", - "threshold", - "accel", - "accgain", - "acczero", - "autotune", - "blackbox", - "board", - "distance", - "ff", - "filter", - "heading", - "hold", - "land", - "magzero", - "median", - "meter", - "offset", - "pwm", - "serialrx", - "surface", - "switch", - "telemetry", - "total", - "tpa", - "unit", - "x", - "y", - "airspeed", - "alt", - "bank", - "check", - "default", - "detect", - "dive", - "epv", - "first", - "frequency", - "inclination", - "inverted", - "iterm", - "ki", - "kp", - "low", - "mid", - "model", - "notch1", - "notch2", - "procedure", - "provider", - "radius", - "rangefinder", - "res", - "reset", - "rx", - "slowdown", - "smartport", - "task", - "throw", - "timeout", - "tz", - "usec", - "warning", - "abort", - "allow", - "async", - "attitude", - "automatic", - "baud", - "bias", - "blink", - "breakpoint", - "calibration", - "center", - "character", - "command", - "config", - "constant", - "coordinates", - "critical", - "cruise", - "debug", - "decl", - "declination", - "denom", - "device", - "direction", - "display", - "dist", - "dst", - "dyn", - "emerg", - "energy", - "eph", - "filtering", - "fixed_wing_auto_arm", - "flaperon", - "flaps", - "force", - "format", - "fuel", - "fw_autotune_ff_to_i_tc", - "fw_autotune_ff_to_p_gain", - "fw_turn_assist_yaw_gain", - "gps_ublox_use_galileo", - "gyro_stage2_lowpass_hz", - "halfduplex", - "has", - "high", - "home", - "hott_alarm_sound_interval", - "hover", - "i2c", - "ibus", - "inav_gravity_cal_tolerance", - "inav_use_gps_velned", - "input", - "invert", - "kill", - "latitude", - "ledstrip_visual_beeper", - "loiter", - "longitude", - "looptime", - "ltm", - "maxalt", - "minalt", - "mode_range_logic_operator", - "moron", - "nav_extra_arming_safety", - "nav_fw_launch_idle_thr", - "nav_fw_launch_spinup_time", - "nav_max_terrain_follow_alt", - "nav_rth_climb_ignore_emerg", - "nav_use_midthr_for_althold", - "nav_user_control_mode", - "nav_wp_safe_distance", - "neutral", - "noise", - "num", - "off", - "on", - "overshoot", - "pidsum", - "pit", - "pitch2thr", - "platform", - "position", - "precision", - "preview", - "protocol", - "pulse", - "reboot", - "receiver", - "recovery", - "reference", - "report", - "rll", - "rx_spi_rf_channel_count", - "sats", - "sbas", - "setpoint", - "small", - "smoothing", - "spektrum_sat_bind", - "stick", - "sw", - "sync", - "tail", - "throttle_tilt_comp_str", - "tri", - "uart", - "unarmed", - "undershoot", - "unidir", - "update", - "use", - "velocity", - "vfas", - "weight", - "windup", - "wp", - "yaw_jump_prevention_limit", -}; -const char * const table_acc_hardware[] = { - "NONE", - "AUTO", - "ADXL345", - "MPU6050", - "MMA845x", - "BMA280", - "LSM303DLHC", - "MPU6000", - "MPU6500", - "MPU9250", - "BMI160", - "FAKE", -}; -const char * const table_alignment[] = { - "DEFAULT", - "CW0", - "CW90", - "CW180", - "CW270", - "CW0FLIP", - "CW90FLIP", - "CW180FLIP", - "CW270FLIP", -}; -const char * const table_async_mode[] = { - "NONE", - "GYRO", - "ALL", -}; -const char * const table_aux_operator[] = { - "OR", - "AND", -}; -const char * const table_baro_hardware[] = { - "NONE", - "AUTO", - "BMP085", - "MS5611", - "BMP280", - "MS5607", - "LPS25H", - "FAKE", -}; -const char * const table_bat_capacity_unit[] = { - "MAH", - "MWH", -}; -const char * const table_blackbox_device[] = { - "SERIAL", - "SPIFLASH", - "SDCARD", -}; -const char * const table_current_sensor[] = { - "NONE", - "ADC", - "VIRTUAL", -}; -const char * const table_debug_modes[] = { - "NONE", - "GYRO", - "NOTCH", - "NAV_LANDING", - "FW_ALTITUDE", - "AGL", - "FLOW_RAW", - "SBUS", - "FPORT", - "ALWAYS", - "STAGE2", -}; -const char * const table_failsafe_procedure[] = { - "SET-THR", - "DROP", - "RTH", - "NONE", -}; -const char * const table_frsky_unit[] = { - "METRIC", - "IMPERIAL", -}; -const char * const table_gps_dyn_model[] = { - "PEDESTRIAN", - "AIR_1G", - "AIR_4G", -}; -const char * const table_gps_provider[] = { - "NMEA", - "UBLOX", - "I2C-NAV", - "NAZA", - "UBLOX7", - "MTK", -}; -const char * const table_gps_sbas_mode[] = { - "AUTO", - "EGNOS", - "WAAS", - "MSAS", - "GAGAN", - "NONE", -}; -const char * const table_gyro_lpf[] = { - "256HZ", - "188HZ", - "98HZ", - "42HZ", - "20HZ", - "10HZ", -}; -const char * const table_i2c_speed[] = { - "400KHZ", - "800KHZ", - "100KHZ", - "200KHZ", -}; -const char * const table_ltm_rates[] = { - "NORMAL", - "MEDIUM", - "SLOW", -}; -const char * const table_mag_hardware[] = { - "NONE", - "AUTO", - "HMC5883", - "AK8975", - "GPSMAG", - "MAG3110", - "AK8963", - "IST8310", - "QMC5883", - "MPU9250", - "IST8308", - "FAKE", -}; -const char * const table_motor_pwm_protocol[] = { - "STANDARD", - "ONESHOT125", - "ONESHOT42", - "MULTISHOT", - "BRUSHED", -}; -const char * const table_nav_rth_allow_landing[] = { - "NEVER", - "ALWAYS", - "FS_ONLY", -}; -const char * const table_nav_rth_alt_mode[] = { - "CURRENT", - "EXTRA", - "FIXED", - "MAX", - "AT_LEAST", -}; -const char * const table_nav_user_control_mode[] = { - "ATTI", - "CRUISE", -}; -const char * const table_off_on[] = { - "OFF", - "ON", -}; -const char * const table_pitot_hardware[] = { - "NONE", - "AUTO", - "MS4525", - "ADC", - "VIRTUAL", - "FAKE", -}; -const char * const table_platform_type[] = { - "MULTIROTOR", - "AIRPLANE", - "HELICOPTER", - "TRICOPTER", - "ROVER", - "BOAT", -}; -const char * const table_rangefinder_hardware[] = { - "NONE", - "HCSR04", - "SRF10", - "HCSR04I2C", - "VL53L0X", - "MSP", - "UIB", -}; -const char * const table_receiver_type[] = { - "NONE", - "PWM", - "PPM", - "SERIAL", - "MSP", - "SPI", - "UIB", -}; -const char * const table_reset_type[] = { - "NEVER", - "FIRST_ARM", - "EACH_ARM", -}; -const char * const table_serial_rx[] = { - "SPEK1024", - "SPEK2048", - "SBUS", - "SUMD", - "SUMH", - "XB-B", - "XB-B-RJ01", - "IBUS", - "JETIEXBUS", - "CRSF", - "FPORT", -}; -const char * const table_smartport_fuel_unit[] = { - "PERCENT", - "MAH", - "MWH", -}; -const lookupTableEntry_t settingLookupTables[] = { - { table_acc_hardware, sizeof(table_acc_hardware) / sizeof(char*) }, - { table_alignment, sizeof(table_alignment) / sizeof(char*) }, - { table_async_mode, sizeof(table_async_mode) / sizeof(char*) }, - { table_aux_operator, sizeof(table_aux_operator) / sizeof(char*) }, - { table_baro_hardware, sizeof(table_baro_hardware) / sizeof(char*) }, - { table_bat_capacity_unit, sizeof(table_bat_capacity_unit) / sizeof(char*) }, - { table_blackbox_device, sizeof(table_blackbox_device) / sizeof(char*) }, - { table_current_sensor, sizeof(table_current_sensor) / sizeof(char*) }, - { table_debug_modes, sizeof(table_debug_modes) / sizeof(char*) }, - { table_failsafe_procedure, sizeof(table_failsafe_procedure) / sizeof(char*) }, - { table_frsky_unit, sizeof(table_frsky_unit) / sizeof(char*) }, - { table_gps_dyn_model, sizeof(table_gps_dyn_model) / sizeof(char*) }, - { table_gps_provider, sizeof(table_gps_provider) / sizeof(char*) }, - { table_gps_sbas_mode, sizeof(table_gps_sbas_mode) / sizeof(char*) }, - { table_gyro_lpf, sizeof(table_gyro_lpf) / sizeof(char*) }, - { table_i2c_speed, sizeof(table_i2c_speed) / sizeof(char*) }, - { table_ltm_rates, sizeof(table_ltm_rates) / sizeof(char*) }, - { table_mag_hardware, sizeof(table_mag_hardware) / sizeof(char*) }, - { table_motor_pwm_protocol, sizeof(table_motor_pwm_protocol) / sizeof(char*) }, - { table_nav_rth_allow_landing, sizeof(table_nav_rth_allow_landing) / sizeof(char*) }, - { table_nav_rth_alt_mode, sizeof(table_nav_rth_alt_mode) / sizeof(char*) }, - { table_nav_user_control_mode, sizeof(table_nav_user_control_mode) / sizeof(char*) }, - { table_off_on, sizeof(table_off_on) / sizeof(char*) }, - { table_pitot_hardware, sizeof(table_pitot_hardware) / sizeof(char*) }, - { table_platform_type, sizeof(table_platform_type) / sizeof(char*) }, - { table_rangefinder_hardware, sizeof(table_rangefinder_hardware) / sizeof(char*) }, - { table_receiver_type, sizeof(table_receiver_type) / sizeof(char*) }, - { table_reset_type, sizeof(table_reset_type) / sizeof(char*) }, - { table_serial_rx, sizeof(table_serial_rx) / sizeof(char*) }, - { table_smartport_fuel_unit, sizeof(table_smartport_fuel_unit) / sizeof(char*) }, -}; -const uint32_t settingMinMaxTable[] = { - 0, - 200, - 100, - 1000, - 255, - 2000, - 10, - 500, - 1, - 32767, - -32768, - -1800, - 5, - 50, - 180, - 3600, - 5000, - 10000, - 65535, - 4, - 80, - 65000, - 2, - 250, - 8192, - 60000, - 2147483647, - 4294967295, - -800, - -1, - 6, - 45, - 90, - 120, - 750, - 800, - 900, - 2250, - 9999, - 500000, - -18000, - -10000, - -3300, - -1440, - -1000, - -180, - -90, - -20, - 8, - 15, - 18, - 20, - 30, - 32, - 48, - 60, - 126, - 128, - 300, - 400, - 450, - 498, - 1200, - 1440, - 1700, - 3300, - 4000, - 9000, - 18000, - 20000, - 32000, -}; -typedef uint8_t setting_min_max_idx_t; -#define SETTING_INDEXES_GET_MIN(val) (val->config.minmax.indexes[0]) -#define SETTING_INDEXES_GET_MAX(val) (val->config.minmax.indexes[1]) -const setting_t settingsTable[] = { - // PG_GYRO_CONFIG - { {194, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 67}, offsetof(gyroConfig_t, looptime) }, - { {26, 238, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(gyroConfig_t, gyroSync) }, - { {23, 26, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_ALIGNMENT }, offsetof(gyroConfig_t, gyro_align) }, - { {26, 35, 30, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_GYRO_LPF }, offsetof(gyroConfig_t, gyro_lpf) }, - { {26, 30, 24, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 1}, offsetof(gyroConfig_t, gyro_soft_lpf_hz) }, - { {199, 72, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 57}, offsetof(gyroConfig_t, gyroMovementCalibrationThreshold) }, - { {26, 117, 24, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 7}, offsetof(gyroConfig_t, gyro_soft_notch_hz_1) }, - { {26, 117, 60, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {8, 7}, offsetof(gyroConfig_t, gyro_soft_notch_cutoff_1) }, - { {26, 118, 24, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 7}, offsetof(gyroConfig_t, gyro_soft_notch_hz_2) }, - { {26, 118, 60, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {8, 7}, offsetof(gyroConfig_t, gyro_soft_notch_cutoff_2) }, - { {176, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 7}, offsetof(gyroConfig_t, gyro_stage2_lowpass_hz) }, - // PG_ADC_CHANNEL_CONFIG - { {39, 54, 42, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 19}, offsetof(adcChannelConfig_t, adcFunctionChannel[ADC_BATTERY]) }, - { {68, 54, 42, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 19}, offsetof(adcChannelConfig_t, adcFunctionChannel[ADC_RSSI]) }, - { {59, 54, 42, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 19}, offsetof(adcChannelConfig_t, adcFunctionChannel[ADC_CURRENT]) }, - { {99, 54, 42, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 19}, offsetof(adcChannelConfig_t, adcFunctionChannel[ADC_AIRSPEED]) }, - // PG_ACCELEROMETER_CONFIG - { {27, 66, 24, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 4}, offsetof(accelerometerConfig_t, acc_notch_hz) }, - { {27, 66, 60, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {8, 4}, offsetof(accelerometerConfig_t, acc_notch_cutoff) }, - { {23, 27, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_ALIGNMENT }, offsetof(accelerometerConfig_t, acc_align) }, - { {27, 35, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_ACC_HARDWARE }, offsetof(accelerometerConfig_t, acc_hardware) }, - { {27, 30, 24, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 1}, offsetof(accelerometerConfig_t, acc_lpf_hz) }, - { {75, 97, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {10, 9}, offsetof(accelerometerConfig_t, accZero.raw[X]) }, - { {75, 98, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {10, 9}, offsetof(accelerometerConfig_t, accZero.raw[Y]) }, - { {75, 7, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {10, 9}, offsetof(accelerometerConfig_t, accZero.raw[Z]) }, - { {74, 97, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {8, 24}, offsetof(accelerometerConfig_t, accGain.raw[X]) }, - { {74, 98, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {8, 24}, offsetof(accelerometerConfig_t, accGain.raw[Y]) }, - { {74, 7, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {8, 24}, offsetof(accelerometerConfig_t, accGain.raw[Z]) }, - // PG_RANGEFINDER_CONFIG - { {122, 35, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_RANGEFINDER_HARDWARE }, offsetof(rangefinderConfig_t, rangefinder_hardware) }, - { {122, 86, 81, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(rangefinderConfig_t, use_median_filtering) }, - // PG_COMPASS_CONFIG - { {23, 21, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_ALIGNMENT }, offsetof(compassConfig_t, mag_align) }, - { {21, 35, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_MAG_HARDWARE }, offsetof(compassConfig_t, mag_hardware) }, - { {21, 154, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {40, 68}, offsetof(compassConfig_t, mag_declination) }, - { {85, 97, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {10, 9}, offsetof(compassConfig_t, magZero.raw[X]) }, - { {85, 98, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {10, 9}, offsetof(compassConfig_t, magZero.raw[Y]) }, - { {85, 7, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {10, 9}, offsetof(compassConfig_t, magZero.raw[Z]) }, - { {21, 143, 34, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {52, 33}, offsetof(compassConfig_t, magCalibrationTimeLimit) }, - { {23, 21, 14, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {11, 15}, offsetof(compassConfig_t, rollDeciDegrees) }, - { {23, 21, 13, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {11, 15}, offsetof(compassConfig_t, pitchDeciDegrees) }, - { {23, 21, 6, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {11, 15}, offsetof(compassConfig_t, yawDeciDegrees) }, - // PG_BAROMETER_CONFIG - { {56, 35, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_BARO_HARDWARE }, offsetof(barometerConfig_t, baro_hardware) }, - { {56, 86, 81, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(barometerConfig_t, use_median_filtering) }, - // PG_PITOTMETER_CONFIG - { {67, 35, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_PITOT_HARDWARE }, offsetof(pitotmeterConfig_t, pitot_hardware) }, - { {67, 247, 86, 81, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(pitotmeterConfig_t, use_median_filtering) }, - { {67, 209, 30, 0, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 8}, offsetof(pitotmeterConfig_t, pitot_noise_lpf) }, - { {67, 69, 0, 0, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 2}, offsetof(pitotmeterConfig_t, pitot_scale) }, - // PG_RX_CONFIG - { {224, 50, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_RECEIVER_TYPE }, offsetof(rxConfig_t, receiverType) }, - { {115, 38, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {62, 64}, offsetof(rxConfig_t, midrc) }, - { {18, 102, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(rxConfig_t, mincheck) }, - { {17, 102, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(rxConfig_t, maxcheck) }, - { {68, 42, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 50}, offsetof(rxConfig_t, rssi_channel) }, - { {68, 69, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {8, 4}, offsetof(rxConfig_t, rssi_scale) }, - { {68, 188, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(rxConfig_t, rssiInvert) }, - { {38, 234, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(rxConfig_t, rcSmoothing) }, - { {90, 120, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_SERIAL_RX }, offsetof(rxConfig_t, serialrx_provider) }, - { {90, 110, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(rxConfig_t, serialrx_inverted) }, - { {229, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 48}, offsetof(rxConfig_t, rx_spi_rf_channel_count) }, - { {235, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(rxConfig_t, spektrum_sat_bind) }, - { {125, 18, 132, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {34, 37}, offsetof(rxConfig_t, rx_min_usec) }, - { {125, 17, 132, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {34, 37}, offsetof(rxConfig_t, rx_max_usec) }, - { {90, 177, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(rxConfig_t, halfDuplex) }, - // PG_BLACKBOX_CONFIG - { {77, 5, 210, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {8, 4}, offsetof(blackboxConfig_t, rate_num) }, - { {77, 5, 155, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {8, 4}, offsetof(blackboxConfig_t, rate_denom) }, - { {77, 156, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_BLACKBOX_DEVICE }, offsetof(blackboxConfig_t, device) }, - // PG_MOTOR_CONFIG - { {18, 49, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(motorConfig_t, minthrottle) }, - { {17, 49, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(motorConfig_t, maxthrottle) }, - { {18, 146, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 5}, offsetof(motorConfig_t, mincommand) }, - { {65, 89, 5, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {13, 70}, offsetof(motorConfig_t, motorPwmRate) }, - { {65, 89, 221, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_MOTOR_PWM_PROTOCOL }, offsetof(motorConfig_t, motorPwmProtocol) }, - // PG_FAILSAFE_CONFIG - { {12, 25, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 1}, offsetof(failsafeConfig_t, failsafe_delay) }, - { {12, 225, 25, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 1}, offsetof(failsafeConfig_t, failsafe_recovery_delay) }, - { {12, 211, 25, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 1}, offsetof(failsafeConfig_t, failsafe_off_delay) }, - { {12, 49, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(failsafeConfig_t, failsafe_throttle) }, - { {12, 49, 114, 25, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 58}, offsetof(failsafeConfig_t, failsafe_throttle_low_delay) }, - { {12, 119, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_FAILSAFE_PROCEDURE }, offsetof(failsafeConfig_t, failsafe_procedure) }, - { {12, 236, 72, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 7}, offsetof(failsafeConfig_t, failsafe_stick_motion_threshold) }, - { {12, 2, 14, 11, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {28, 35}, offsetof(failsafeConfig_t, failsafe_fw_roll_angle) }, - { {12, 2, 13, 11, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {28, 35}, offsetof(failsafeConfig_t, failsafe_fw_pitch_angle) }, - { {12, 2, 6, 5, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {44, 3}, offsetof(failsafeConfig_t, failsafe_fw_yaw_rate) }, - { {12, 18, 79, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 21}, offsetof(failsafeConfig_t, failsafe_min_distance) }, - { {12, 18, 79, 119, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_FAILSAFE_PROCEDURE }, offsetof(failsafeConfig_t, failsafe_min_distance_procedure) }, - // PG_BOARD_ALIGNMENT - { {23, 78, 14, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {11, 15}, offsetof(boardAlignment_t, rollDeciDegrees) }, - { {23, 78, 13, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {11, 15}, offsetof(boardAlignment_t, pitchDeciDegrees) }, - { {23, 78, 6, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {11, 15}, offsetof(boardAlignment_t, yawDeciDegrees) }, - // PG_BATTERY_CONFIG - { {39, 69, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 18}, offsetof(batteryConfig_t, voltage.scale) }, - { {39, 41, 104, 52, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 7}, offsetof(batteryConfig_t, voltage.cellDetect) }, - { {39, 17, 41, 52, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 7}, offsetof(batteryConfig_t, voltage.cellMax) }, - { {39, 18, 41, 52, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 7}, offsetof(batteryConfig_t, voltage.cellMin) }, - { {39, 133, 41, 52, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 7}, offsetof(batteryConfig_t, voltage.cellWarning) }, - { {57, 58, 0, 0, 0}, VAR_UINT32 | MASTER_VALUE, .config.minmax.indexes = {0, 27}, offsetof(batteryConfig_t, capacity.value) }, - { {57, 58, 133, 0, 0}, VAR_UINT32 | MASTER_VALUE, .config.minmax.indexes = {0, 27}, offsetof(batteryConfig_t, capacity.warning) }, - { {57, 58, 150, 0, 0}, VAR_UINT32 | MASTER_VALUE, .config.minmax.indexes = {0, 27}, offsetof(batteryConfig_t, capacity.critical) }, - { {57, 58, 96, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_BAT_CAPACITY_UNIT }, offsetof(batteryConfig_t, capacity.unit) }, - { {59, 87, 69, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {41, 17}, offsetof(batteryConfig_t, current.scale) }, - { {59, 87, 88, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {42, 65}, offsetof(batteryConfig_t, current.offset) }, - { {59, 87, 50, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_CURRENT_SENSOR }, offsetof(batteryConfig_t, current.type) }, - // PG_MIXER_CONFIG - { {6, 65, 157, 0, 0}, VAR_INT8 | MASTER_VALUE, .config.minmax.indexes = {29, 8}, offsetof(mixerConfig_t, yaw_motor_direction) }, - { {253, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {20, 7}, offsetof(mixerConfig_t, yaw_jump_prevention_limit) }, - { {217, 50, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_PLATFORM_TYPE }, offsetof(mixerConfig_t, platformType) }, - { {178, 168, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(mixerConfig_t, hasFlaps) }, - { {116, 220, 50, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {29, 9}, offsetof(mixerConfig_t, appliedMixerPreset) }, - // PG_MOTOR_3D_CONFIG - { {53, 29, 114, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(flight3DConfig_t, deadband3d_low) }, - { {53, 29, 179, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(flight3DConfig_t, deadband3d_high) }, - { {53, 208, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(flight3DConfig_t, neutral3d) }, - // PG_SERVO_CONFIG - { {70, 144, 222, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(servoConfig_t, servoCenterPulse) }, - { {70, 89, 5, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {13, 61}, offsetof(servoConfig_t, servoPwmRate) }, - { {70, 30, 24, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {0, 59}, offsetof(servoConfig_t, servo_lowpass_freq) }, - { {167, 129, 88, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {13, 60}, offsetof(servoConfig_t, flaperon_throw_offset) }, - { {241, 243, 70, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(servoConfig_t, tri_unarmed_servo) }, - // PG_CONTROL_RATE_PROFILES - { {33, 115, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, throttle.rcMid8) }, - { {33, 45, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, throttle.rcExpo8) }, - { {95, 5, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, throttle.dynPID) }, - { {95, 142, 0, 0, 0}, VAR_UINT16 | CONTROL_RATE_VALUE, .config.minmax.indexes = {3, 5}, offsetof(controlRateConfig_t, throttle.pa_breakpoint) }, - { {2, 95, 34, 148, 0}, VAR_UINT16 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 16}, offsetof(controlRateConfig_t, throttle.fixedWingTauMs) }, - { {38, 45, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, stabilized.rcExpo8) }, - { {38, 6, 45, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, stabilized.rcYawExpo8) }, - { {14, 5, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {30, 14}, offsetof(controlRateConfig_t, stabilized.rates[FD_ROLL]) }, - { {13, 5, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {30, 14}, offsetof(controlRateConfig_t, stabilized.rates[FD_PITCH]) }, - { {6, 5, 0, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {22, 14}, offsetof(controlRateConfig_t, stabilized.rates[FD_YAW]) }, - { {31, 38, 45, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, manual.rcExpo8) }, - { {31, 38, 6, 45, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, manual.rcYawExpo8) }, - { {31, 14, 5, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, manual.rates[FD_ROLL]) }, - { {31, 13, 5, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, manual.rates[FD_PITCH]) }, - { {31, 6, 5, 0, 0}, VAR_UINT8 | CONTROL_RATE_VALUE, .config.minmax.indexes = {0, 2}, offsetof(controlRateConfig_t, manual.rates[FD_YAW]) }, - // PG_SERIAL_CONFIG - { {223, 145, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {54, 56}, offsetof(serialConfig_t, reboot_character) }, - // PG_IMU_CONFIG - { {63, 61, 113, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 18}, offsetof(imuConfig_t, dcm_kp_acc) }, - { {63, 61, 112, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 18}, offsetof(imuConfig_t, dcm_ki_acc) }, - { {63, 61, 113, 21, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 18}, offsetof(imuConfig_t, dcm_kp_mag) }, - { {63, 61, 112, 21, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 18}, offsetof(imuConfig_t, dcm_ki_mag) }, - { {233, 11, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 14}, offsetof(imuConfig_t, small_angle) }, - // PG_ARMING_CONFIG - { {166, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(armingConfig_t, fixed_wing_auto_arm) }, - { {44, 189, 92, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(armingConfig_t, disarm_kill_switch) }, - { {28, 44, 25, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 55}, offsetof(armingConfig_t, auto_disarm_delay) }, - { {92, 44, 25, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 3}, offsetof(armingConfig_t, switchDisarmDelayMs) }, - // PG_GPS_CONFIG - { {19, 120, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_GPS_PROVIDER }, offsetof(gpsConfig_t, provider) }, - { {19, 231, 47, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_GPS_SBAS_MODE }, offsetof(gpsConfig_t, sbasMode) }, - { {19, 161, 116, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_GPS_DYN_MODEL }, offsetof(gpsConfig_t, dynModel) }, - { {19, 28, 147, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(gpsConfig_t, autoConfig) }, - { {19, 28, 139, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(gpsConfig_t, autoBaud) }, - { {175, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(gpsConfig_t, ubloxUseGalileo) }, - { {19, 18, 230, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {12, 6}, offsetof(gpsConfig_t, gpsMinSats) }, - // PG_RC_CONTROLS_CONFIG - { {29, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 53}, offsetof(rcControlsConfig_t, deadband) }, - { {6, 29, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 2}, offsetof(rcControlsConfig_t, yaw_deadband) }, - { {10, 83, 29, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {6, 23}, offsetof(rcControlsConfig_t, pos_hold_deadband) }, - { {100, 83, 29, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {6, 23}, offsetof(rcControlsConfig_t, alt_hold_deadband) }, - { {53, 29, 49, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(rcControlsConfig_t, deadband3d_throttle) }, - // PG_PID_PROFILE - { {3, 4, 13, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_PITCH].P) }, - { {3, 9, 13, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_PITCH].I) }, - { {3, 16, 13, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_PITCH].D) }, - { {3, 4, 14, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_ROLL].P) }, - { {3, 9, 14, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_ROLL].I) }, - { {3, 16, 14, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_ROLL].D) }, - { {3, 4, 6, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_YAW].P) }, - { {3, 9, 6, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_YAW].I) }, - { {3, 16, 6, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_YAW].D) }, - { {3, 4, 36, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_LEVEL].P) }, - { {3, 9, 36, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_LEVEL].I) }, - { {3, 16, 36, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_mc.pid[PID_LEVEL].D) }, - { {2, 4, 13, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_PITCH].P) }, - { {2, 9, 13, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_PITCH].I) }, - { {2, 80, 13, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_PITCH].D) }, - { {2, 4, 14, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_ROLL].P) }, - { {2, 9, 14, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_ROLL].I) }, - { {2, 80, 14, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_ROLL].D) }, - { {2, 4, 6, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_YAW].P) }, - { {2, 9, 6, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_YAW].I) }, - { {2, 80, 6, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_YAW].D) }, - { {2, 4, 36, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_LEVEL].P) }, - { {2, 9, 36, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_LEVEL].I) }, - { {2, 16, 36, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, bank_fw.pid[PID_LEVEL].D) }, - { {17, 11, 109, 228, 0}, VAR_INT16 | PROFILE_VALUE, .config.minmax.indexes = {2, 36}, offsetof(pidProfile_t, max_angle_inclination[FD_ROLL]) }, - { {17, 11, 109, 215, 0}, VAR_INT16 | PROFILE_VALUE, .config.minmax.indexes = {2, 36}, offsetof(pidProfile_t, max_angle_inclination[FD_PITCH]) }, - { {62, 30, 24, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, dterm_lpf_hz) }, - { {6, 30, 24, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 1}, offsetof(pidProfile_t, yaw_lpf_hz) }, - { {62, 232, 250, 0, 0}, VAR_FLOAT | PROFILE_VALUE, .config.minmax.indexes = {0, 22}, offsetof(pidProfile_t, dterm_setpoint_weight) }, - { {2, 111, 129, 37, 0}, VAR_UINT16 | PROFILE_VALUE, .config.minmax.indexes = {0, 7}, offsetof(pidProfile_t, fixedWingItermThrowLimit) }, - { {2, 226, 99, 0, 0}, VAR_FLOAT | PROFILE_VALUE, .config.minmax.indexes = {8, 16}, offsetof(pidProfile_t, fixedWingReferenceAirspeed) }, - { {174, 0, 0, 0, 0}, VAR_FLOAT | PROFILE_VALUE, .config.minmax.indexes = {0, 22}, offsetof(pidProfile_t, fixedWingCoordinatedYawGain) }, - { {62, 66, 24, 0, 0}, VAR_UINT16 | PROFILE_VALUE, .config.minmax.indexes = {0, 7}, offsetof(pidProfile_t, dterm_soft_notch_hz) }, - { {62, 66, 60, 0, 0}, VAR_UINT16 | PROFILE_VALUE, .config.minmax.indexes = {8, 7}, offsetof(pidProfile_t, dterm_soft_notch_cutoff) }, - { {214, 37, 0, 0, 0}, VAR_UINT16 | PROFILE_VALUE, .config.minmax.indexes = {2, 3}, offsetof(pidProfile_t, pidSumLimit) }, - { {6, 4, 37, 0, 0}, VAR_UINT16 | PROFILE_VALUE, .config.minmax.indexes = {2, 7}, offsetof(pidProfile_t, yaw_p_limit) }, - { {111, 251, 0, 0, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 32}, offsetof(pidProfile_t, itermWindupPointPercent) }, - { {5, 73, 37, 14, 13}, VAR_UINT32 | PROFILE_VALUE, .config.minmax.indexes = {0, 39}, offsetof(pidProfile_t, axisAccelerationLimitRollPitch) }, - { {5, 73, 37, 6, 0}, VAR_UINT32 | PROFILE_VALUE, .config.minmax.indexes = {0, 39}, offsetof(pidProfile_t, axisAccelerationLimitYaw) }, - { {82, 83, 5, 37, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {6, 23}, offsetof(pidProfile_t, heading_hold_rate_limit) }, - { {1, 3, 10, 7, 4}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_POS_Z].P) }, - { {1, 3, 10, 7, 9}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_POS_Z].I) }, - { {1, 3, 10, 7, 16}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_POS_Z].D) }, - { {1, 3, 40, 7, 4}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_VEL_Z].P) }, - { {1, 3, 40, 7, 9}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_VEL_Z].I) }, - { {1, 3, 40, 7, 16}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_VEL_Z].D) }, - { {1, 3, 10, 15, 4}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_POS_XY].P) }, - { {1, 3, 10, 15, 9}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_POS_XY].I) }, - { {1, 3, 10, 15, 16}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_POS_XY].D) }, - { {1, 3, 40, 15, 4}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_VEL_XY].P) }, - { {1, 3, 40, 15, 9}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_VEL_XY].I) }, - { {1, 3, 40, 15, 16}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_VEL_XY].D) }, - { {1, 3, 82, 4, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_mc.pid[PID_HEADING].P) }, - { {1, 2, 10, 7, 4}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_POS_Z].P) }, - { {1, 2, 10, 7, 9}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_POS_Z].I) }, - { {1, 2, 10, 7, 16}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_POS_Z].D) }, - { {1, 2, 10, 15, 4}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_POS_XY].P) }, - { {1, 2, 10, 15, 9}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_POS_XY].I) }, - { {1, 2, 10, 15, 16}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_POS_XY].D) }, - { {1, 2, 82, 4, 0}, VAR_UINT8 | PROFILE_VALUE, .config.minmax.indexes = {0, 4}, offsetof(pidProfile_t, bank_fw.pid[PID_HEADING].P) }, - // PG_PID_AUTOTUNE_CONFIG - { {2, 76, 213, 34, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {13, 7}, offsetof(pidAutotuneConfig_t, fw_overshoot_time) }, - { {2, 76, 244, 34, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {13, 7}, offsetof(pidAutotuneConfig_t, fw_undershoot_time) }, - { {2, 76, 72, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 2}, offsetof(pidAutotuneConfig_t, fw_max_rate_threshold) }, - { {173, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 2}, offsetof(pidAutotuneConfig_t, fw_ff_to_p_gain) }, - { {172, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 16}, offsetof(pidAutotuneConfig_t, fw_ff_to_i_time_constant) }, - // PG_POSITION_ESTIMATION_CONFIG - { {8, 28, 21, 153, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(positionEstimationConfig_t, automatic_mag_declination) }, - { {185, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 4}, offsetof(positionEstimationConfig_t, gravity_calibration_tolerance) }, - { {186, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(positionEstimationConfig_t, use_gps_velned) }, - { {8, 124, 55, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_RESET_TYPE }, offsetof(positionEstimationConfig_t, reset_altitude_type) }, - { {8, 124, 180, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_RESET_TYPE }, offsetof(positionEstimationConfig_t, reset_home_type) }, - { {8, 17, 91, 55, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 3}, offsetof(positionEstimationConfig_t, max_surface_altitude) }, - { {8, 22, 7, 91, 4}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_z_surface_p) }, - { {8, 22, 7, 91, 51}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_z_surface_v) }, - { {8, 22, 7, 56, 4}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_z_baro_p) }, - { {8, 22, 7, 19, 4}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_z_gps_p) }, - { {8, 22, 7, 19, 51}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_z_gps_v) }, - { {8, 22, 15, 19, 4}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_xy_gps_p) }, - { {8, 22, 15, 19, 51}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_xy_gps_v) }, - { {8, 22, 7, 123, 51}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_z_res_v) }, - { {8, 22, 15, 123, 51}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(positionEstimationConfig_t, w_xy_res_v) }, - { {8, 22, 27, 140, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 8}, offsetof(positionEstimationConfig_t, w_acc_bias) }, - { {8, 17, 164, 106, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 38}, offsetof(positionEstimationConfig_t, max_eph_epv) }, - { {8, 56, 106, 0, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {0, 38}, offsetof(positionEstimationConfig_t, baro_epv) }, - // PG_NAV_CONFIG - { {1, 44, 212, 64, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(navConfig_t, general.flags.disarm_on_landing) }, - { {205, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(navConfig_t, general.flags.use_thr_mid_for_althold) }, - { {200, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(navConfig_t, general.flags.extra_arming_safety) }, - { {206, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_NAV_USER_CONTROL_MODE }, offsetof(navConfig_t, general.flags.user_control_mode) }, - { {1, 218, 130, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 6}, offsetof(navConfig_t, general.pos_failure_timeout) }, - { {1, 252, 121, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {6, 17}, offsetof(navConfig_t, general.waypoint_radius) }, - { {207, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 21}, offsetof(navConfig_t, general.waypoint_safe_distance) }, - { {1, 28, 48, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {6, 5}, offsetof(navConfig_t, general.max_auto_speed) }, - { {1, 28, 43, 5, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {6, 5}, offsetof(navConfig_t, general.max_auto_climb_rate) }, - { {1, 31, 48, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {6, 5}, offsetof(navConfig_t, general.max_manual_speed) }, - { {1, 31, 43, 5, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {6, 5}, offsetof(navConfig_t, general.max_manual_climb_rate) }, - { {1, 64, 48, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 5}, offsetof(navConfig_t, general.land_descent_rate) }, - { {1, 84, 126, 197, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {13, 3}, offsetof(navConfig_t, general.land_slowdown_minalt) }, - { {1, 84, 126, 196, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {7, 66}, offsetof(navConfig_t, general.land_slowdown_maxalt) }, - { {1, 162, 64, 48, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 5}, offsetof(navConfig_t, general.emerg_descent_rate) }, - { {1, 18, 32, 79, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 16}, offsetof(navConfig_t, general.min_rth_distance) }, - { {1, 32, 43, 107, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(navConfig_t, general.flags.rth_climb_first) }, - { {204, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(navConfig_t, general.flags.rth_climb_ignore_emerg) }, - { {1, 32, 239, 107, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(navConfig_t, general.flags.rth_tail_first) }, - { {1, 32, 135, 64, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_NAV_RTH_ALLOW_LANDING }, offsetof(navConfig_t, general.flags.rth_allow_landing) }, - { {1, 32, 100, 47, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_NAV_RTH_ALT_MODE }, offsetof(navConfig_t, general.flags.rth_alt_control_mode) }, - { {1, 32, 134, 72, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 21}, offsetof(navConfig_t, general.rth_abort_threshold) }, - { {203, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 3}, offsetof(navConfig_t, general.max_terrain_follow_altitude) }, - { {1, 32, 55, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 21}, offsetof(navConfig_t, general.rth_altitude) }, - { {1, 3, 101, 11, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {49, 31}, offsetof(navConfig_t, mc.max_bank_angle) }, - { {1, 3, 182, 33, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(navConfig_t, mc.hover_throttle) }, - { {1, 3, 28, 44, 25}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 17}, offsetof(navConfig_t, mc.auto_disarm_delay) }, - { {1, 2, 151, 33, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(navConfig_t, fw.cruise_throttle) }, - { {1, 2, 18, 33, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(navConfig_t, fw.min_throttle) }, - { {1, 2, 17, 33, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(navConfig_t, fw.max_throttle) }, - { {1, 2, 101, 11, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {12, 20}, offsetof(navConfig_t, fw.max_bank_angle) }, - { {1, 2, 43, 11, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {12, 20}, offsetof(navConfig_t, fw.max_climb_angle) }, - { {1, 2, 105, 11, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {12, 20}, offsetof(navConfig_t, fw.max_dive_angle) }, - { {1, 2, 216, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 2}, offsetof(navConfig_t, fw.pitch_to_throttle) }, - { {1, 2, 192, 121, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 17}, offsetof(navConfig_t, fw.loiter_radius) }, - { {1, 2, 84, 105, 11}, VAR_INT8 | MASTER_VALUE, .config.minmax.indexes = {47, 51}, offsetof(navConfig_t, fw.land_dive_angle) }, - { {1, 2, 20, 248, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 17}, offsetof(navConfig_t, fw.launch_velocity_thresh) }, - { {1, 2, 20, 73, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 69}, offsetof(navConfig_t, fw.launch_accel_thresh) }, - { {1, 2, 20, 17, 11}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {12, 14}, offsetof(navConfig_t, fw.launch_max_angle) }, - { {1, 2, 20, 104, 34}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {6, 3}, offsetof(navConfig_t, fw.launch_time_thresh) }, - { {1, 2, 20, 33, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(navConfig_t, fw.launch_throttle) }, - { {201, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {3, 5}, offsetof(navConfig_t, fw.launch_idle_throttle) }, - { {1, 2, 20, 65, 25}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 16}, offsetof(navConfig_t, fw.launch_motor_timer) }, - { {202, 0, 0, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 3}, offsetof(navConfig_t, fw.launch_motor_spinup_time) }, - { {1, 2, 20, 18, 34}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 25}, offsetof(navConfig_t, fw.launch_min_time) }, - { {1, 2, 20, 130, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 25}, offsetof(navConfig_t, fw.launch_timeout) }, - { {1, 2, 20, 17, 55}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {0, 25}, offsetof(navConfig_t, fw.launch_max_altitude) }, - { {1, 2, 20, 43, 11}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {12, 31}, offsetof(navConfig_t, fw.launch_climb_angle) }, - // PG_TELEMETRY_CONFIG - { {93, 92, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(telemetryConfig_t, telemetry_switch) }, - { {93, 110, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(telemetryConfig_t, telemetry_inverted) }, - { {46, 103, 190, 0, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {46, 32}, offsetof(telemetryConfig_t, gpsNoFixLatitude) }, - { {46, 103, 193, 0, 0}, VAR_FLOAT | MASTER_VALUE, .config.minmax.indexes = {45, 14}, offsetof(telemetryConfig_t, gpsNoFixLongitude) }, - { {46, 149, 170, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 8}, offsetof(telemetryConfig_t, frsky_coordinate_format) }, - { {46, 96, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_FRSKY_UNIT }, offsetof(telemetryConfig_t, frsky_unit) }, - { {46, 249, 219, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 8}, offsetof(telemetryConfig_t, frsky_vfas_precision) }, - { {227, 41, 52, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(telemetryConfig_t, report_cell_voltage) }, - { {181, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 33}, offsetof(telemetryConfig_t, hottAlarmSoundInterval) }, - { {127, 242, 245, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(telemetryConfig_t, smartportUartUnidirectional) }, - { {127, 171, 96, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_SMARTPORT_FUEL_UNIT }, offsetof(telemetryConfig_t, smartportFuelUnit) }, - { {184, 93, 50, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 4}, offsetof(telemetryConfig_t, ibusTelemetryType) }, - { {195, 246, 5, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_LTM_RATES }, offsetof(telemetryConfig_t, ltmUpdateRate) }, - // PG_LED_STRIP_CONFIG - { {191, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(ledStripConfig_t, ledstrip_visual_beeper) }, - // PG_SYSTEM_CONFIG - { {183, 48, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_I2C_SPEED }, offsetof(systemConfig_t, i2c_speed) }, - { {152, 47, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_DEBUG_MODES }, offsetof(systemConfig_t, debug_mode) }, - { {27, 128, 108, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 3}, offsetof(systemConfig_t, accTaskFrequency) }, - { {137, 128, 108, 0, 0}, VAR_UINT16 | MASTER_VALUE, .config.minmax.indexes = {2, 3}, offsetof(systemConfig_t, attitudeTaskFrequency) }, - { {136, 47, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_ASYNC_MODE }, offsetof(systemConfig_t, asyncMode) }, - { {240, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 2}, offsetof(systemConfig_t, throttle_tilt_compensation_strength) }, - { {187, 165, 47, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(systemConfig_t, pwmRxInputFilteringMode) }, - // PG_MODE_ACTIVATION_OPERATOR_CONFIG - { {198, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_AUX_OPERATOR }, offsetof(modeActivationOperatorConfig_t, modeActivationOperator) }, - // PG_STATS_CONFIG - { {71, 0, 0, 0, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(statsConfig_t, stats_enabled) }, - { {71, 94, 34, 0, 0}, VAR_UINT32 | MASTER_VALUE, .config.minmax.indexes = {0, 26}, offsetof(statsConfig_t, stats_total_time) }, - { {71, 94, 159, 0, 0}, VAR_UINT32 | MASTER_VALUE, .config.minmax.indexes = {0, 26}, offsetof(statsConfig_t, stats_total_dist) }, - { {71, 94, 163, 0, 0}, VAR_UINT32 | MASTER_VALUE, .config.minmax.indexes = {0, 26}, offsetof(statsConfig_t, stats_total_energy) }, - // PG_TIME_CONFIG - { {131, 88, 0, 0, 0}, VAR_INT16 | MASTER_VALUE, .config.minmax.indexes = {43, 63}, offsetof(timeConfig_t, tz_offset) }, - { {131, 138, 160, 0, 0}, VAR_UINT8 | MASTER_VALUE, .config.minmax.indexes = {0, 0}, offsetof(timeConfig_t, tz_automatic_dst) }, - // PG_DISPLAY_CONFIG - { {158, 169, 237, 141, 0}, VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, offsetof(displayConfig_t, force_sw_blink) }, -}; diff --git a/src/main/fc/settings_generated.h b/src/main/fc/settings_generated.h deleted file mode 100644 index 33f536a623d..00000000000 --- a/src/main/fc/settings_generated.h +++ /dev/null @@ -1,380 +0,0 @@ -// This file has been automatically generated by utils/settings.rb -// Don't make any modifications to it. They will be lost. - -#pragma once -#define SETTING_MAX_NAME_LENGTH 32 -#define SETTING_ENCODED_NAME_MAX_BYTES 5 -#define SETTING_ENCODED_NAME_USES_BYTE_INDEXING -#define SETTINGS_TABLE_COUNT 304 -typedef uint8_t setting_offset_t; -#define SETTINGS_PGN_COUNT 33 -typedef int16_t setting_min_t; -typedef uint32_t setting_max_t; -#define SETTING_MIN_MAX_INDEX_BYTES 2 -enum { - TABLE_ACC_HARDWARE, - TABLE_ALIGNMENT, - TABLE_ASYNC_MODE, - TABLE_AUX_OPERATOR, - TABLE_BARO_HARDWARE, - TABLE_BAT_CAPACITY_UNIT, - TABLE_BLACKBOX_DEVICE, - TABLE_CURRENT_SENSOR, - TABLE_DEBUG_MODES, - TABLE_FAILSAFE_PROCEDURE, - TABLE_FRSKY_UNIT, - TABLE_GPS_DYN_MODEL, - TABLE_GPS_PROVIDER, - TABLE_GPS_SBAS_MODE, - TABLE_GYRO_LPF, - TABLE_I2C_SPEED, - TABLE_LTM_RATES, - TABLE_MAG_HARDWARE, - TABLE_MOTOR_PWM_PROTOCOL, - TABLE_NAV_RTH_ALLOW_LANDING, - TABLE_NAV_RTH_ALT_MODE, - TABLE_NAV_USER_CONTROL_MODE, - TABLE_OFF_ON, - TABLE_PITOT_HARDWARE, - TABLE_PLATFORM_TYPE, - TABLE_RANGEFINDER_HARDWARE, - TABLE_RECEIVER_TYPE, - TABLE_RESET_TYPE, - TABLE_SERIAL_RX, - TABLE_SMARTPORT_FUEL_UNIT, - LOOKUP_TABLE_COUNT, -}; -extern const char * const table_acc_hardware[]; -extern const char * const table_alignment[]; -extern const char * const table_async_mode[]; -extern const char * const table_aux_operator[]; -extern const char * const table_baro_hardware[]; -extern const char * const table_bat_capacity_unit[]; -extern const char * const table_blackbox_device[]; -extern const char * const table_current_sensor[]; -extern const char * const table_debug_modes[]; -extern const char * const table_failsafe_procedure[]; -extern const char * const table_frsky_unit[]; -extern const char * const table_gps_dyn_model[]; -extern const char * const table_gps_provider[]; -extern const char * const table_gps_sbas_mode[]; -extern const char * const table_gyro_lpf[]; -extern const char * const table_i2c_speed[]; -extern const char * const table_ltm_rates[]; -extern const char * const table_mag_hardware[]; -extern const char * const table_motor_pwm_protocol[]; -extern const char * const table_nav_rth_allow_landing[]; -extern const char * const table_nav_rth_alt_mode[]; -extern const char * const table_nav_user_control_mode[]; -extern const char * const table_off_on[]; -extern const char * const table_pitot_hardware[]; -extern const char * const table_platform_type[]; -extern const char * const table_rangefinder_hardware[]; -extern const char * const table_receiver_type[]; -extern const char * const table_reset_type[]; -extern const char * const table_serial_rx[]; -extern const char * const table_smartport_fuel_unit[]; -#define SETTING_LOOPTIME 0 -#define SETTING_GYRO_SYNC 1 -#define SETTING_ALIGN_GYRO 2 -#define SETTING_GYRO_HARDWARE_LPF 3 -#define SETTING_GYRO_LPF_HZ 4 -#define SETTING_MORON_THRESHOLD 5 -#define SETTING_GYRO_NOTCH1_HZ 6 -#define SETTING_GYRO_NOTCH1_CUTOFF 7 -#define SETTING_GYRO_NOTCH2_HZ 8 -#define SETTING_GYRO_NOTCH2_CUTOFF 9 -#define SETTING_GYRO_STAGE2_LOWPASS_HZ 10 -#define SETTING_VBAT_ADC_CHANNEL 11 -#define SETTING_RSSI_ADC_CHANNEL 12 -#define SETTING_CURRENT_ADC_CHANNEL 13 -#define SETTING_AIRSPEED_ADC_CHANNEL 14 -#define SETTING_ACC_NOTCH_HZ 15 -#define SETTING_ACC_NOTCH_CUTOFF 16 -#define SETTING_ALIGN_ACC 17 -#define SETTING_ACC_HARDWARE 18 -#define SETTING_ACC_LPF_HZ 19 -#define SETTING_ACCZERO_X 20 -#define SETTING_ACCZERO_Y 21 -#define SETTING_ACCZERO_Z 22 -#define SETTING_ACCGAIN_X 23 -#define SETTING_ACCGAIN_Y 24 -#define SETTING_ACCGAIN_Z 25 -#define SETTING_RANGEFINDER_HARDWARE 26 -#define SETTING_RANGEFINDER_MEDIAN_FILTER 27 -#define SETTING_ALIGN_MAG 28 -#define SETTING_MAG_HARDWARE 29 -#define SETTING_MAG_DECLINATION 30 -#define SETTING_MAGZERO_X 31 -#define SETTING_MAGZERO_Y 32 -#define SETTING_MAGZERO_Z 33 -#define SETTING_MAG_CALIBRATION_TIME 34 -#define SETTING_ALIGN_MAG_ROLL 35 -#define SETTING_ALIGN_MAG_PITCH 36 -#define SETTING_ALIGN_MAG_YAW 37 -#define SETTING_BARO_HARDWARE 38 -#define SETTING_BARO_MEDIAN_FILTER 39 -#define SETTING_PITOT_HARDWARE 40 -#define SETTING_PITOT_USE_MEDIAN_FILTER 41 -#define SETTING_PITOT_NOISE_LPF 42 -#define SETTING_PITOT_SCALE 43 -#define SETTING_RECEIVER_TYPE 44 -#define SETTING_MID_RC 45 -#define SETTING_MIN_CHECK 46 -#define SETTING_MAX_CHECK 47 -#define SETTING_RSSI_CHANNEL 48 -#define SETTING_RSSI_SCALE 49 -#define SETTING_RSSI_INVERT 50 -#define SETTING_RC_SMOOTHING 51 -#define SETTING_SERIALRX_PROVIDER 52 -#define SETTING_SERIALRX_INVERTED 53 -#define SETTING_RX_SPI_RF_CHANNEL_COUNT 54 -#define SETTING_SPEKTRUM_SAT_BIND 55 -#define SETTING_RX_MIN_USEC 56 -#define SETTING_RX_MAX_USEC 57 -#define SETTING_SERIALRX_HALFDUPLEX 58 -#define SETTING_BLACKBOX_RATE_NUM 59 -#define SETTING_BLACKBOX_RATE_DENOM 60 -#define SETTING_BLACKBOX_DEVICE 61 -#define SETTING_MIN_THROTTLE 62 -#define SETTING_MAX_THROTTLE 63 -#define SETTING_MIN_COMMAND 64 -#define SETTING_MOTOR_PWM_RATE 65 -#define SETTING_MOTOR_PWM_PROTOCOL 66 -#define SETTING_FAILSAFE_DELAY 67 -#define SETTING_FAILSAFE_RECOVERY_DELAY 68 -#define SETTING_FAILSAFE_OFF_DELAY 69 -#define SETTING_FAILSAFE_THROTTLE 70 -#define SETTING_FAILSAFE_THROTTLE_LOW_DELAY 71 -#define SETTING_FAILSAFE_PROCEDURE 72 -#define SETTING_FAILSAFE_STICK_THRESHOLD 73 -#define SETTING_FAILSAFE_FW_ROLL_ANGLE 74 -#define SETTING_FAILSAFE_FW_PITCH_ANGLE 75 -#define SETTING_FAILSAFE_FW_YAW_RATE 76 -#define SETTING_FAILSAFE_MIN_DISTANCE 77 -#define SETTING_FAILSAFE_MIN_DISTANCE_PROCEDURE 78 -#define SETTING_ALIGN_BOARD_ROLL 79 -#define SETTING_ALIGN_BOARD_PITCH 80 -#define SETTING_ALIGN_BOARD_YAW 81 -#define SETTING_VBAT_SCALE 82 -#define SETTING_VBAT_CELL_DETECT_VOLTAGE 83 -#define SETTING_VBAT_MAX_CELL_VOLTAGE 84 -#define SETTING_VBAT_MIN_CELL_VOLTAGE 85 -#define SETTING_VBAT_WARNING_CELL_VOLTAGE 86 -#define SETTING_BATTERY_CAPACITY 87 -#define SETTING_BATTERY_CAPACITY_WARNING 88 -#define SETTING_BATTERY_CAPACITY_CRITICAL 89 -#define SETTING_BATTERY_CAPACITY_UNIT 90 -#define SETTING_CURRENT_METER_SCALE 91 -#define SETTING_CURRENT_METER_OFFSET 92 -#define SETTING_CURRENT_METER_TYPE 93 -#define SETTING_YAW_MOTOR_DIRECTION 94 -#define SETTING_YAW_JUMP_PREVENTION_LIMIT 95 -#define SETTING_PLATFORM_TYPE 96 -#define SETTING_HAS_FLAPS 97 -#define SETTING_MODEL_PREVIEW_TYPE 98 -#define SETTING_3D_DEADBAND_LOW 99 -#define SETTING_3D_DEADBAND_HIGH 100 -#define SETTING_3D_NEUTRAL 101 -#define SETTING_SERVO_CENTER_PULSE 102 -#define SETTING_SERVO_PWM_RATE 103 -#define SETTING_SERVO_LPF_HZ 104 -#define SETTING_FLAPERON_THROW_OFFSET 105 -#define SETTING_TRI_UNARMED_SERVO 106 -#define SETTING_THR_MID 107 -#define SETTING_THR_EXPO 108 -#define SETTING_TPA_RATE 109 -#define SETTING_TPA_BREAKPOINT 110 -#define SETTING_FW_TPA_TIME_CONSTANT 111 -#define SETTING_RC_EXPO 112 -#define SETTING_RC_YAW_EXPO 113 -#define SETTING_ROLL_RATE 114 -#define SETTING_PITCH_RATE 115 -#define SETTING_YAW_RATE 116 -#define SETTING_MANUAL_RC_EXPO 117 -#define SETTING_MANUAL_RC_YAW_EXPO 118 -#define SETTING_MANUAL_ROLL_RATE 119 -#define SETTING_MANUAL_PITCH_RATE 120 -#define SETTING_MANUAL_YAW_RATE 121 -#define SETTING_REBOOT_CHARACTER 122 -#define SETTING_IMU_DCM_KP 123 -#define SETTING_IMU_DCM_KI 124 -#define SETTING_IMU_DCM_KP_MAG 125 -#define SETTING_IMU_DCM_KI_MAG 126 -#define SETTING_SMALL_ANGLE 127 -#define SETTING_FIXED_WING_AUTO_ARM 128 -#define SETTING_DISARM_KILL_SWITCH 129 -#define SETTING_AUTO_DISARM_DELAY 130 -#define SETTING_SWITCH_DISARM_DELAY 131 -#define SETTING_GPS_PROVIDER 132 -#define SETTING_GPS_SBAS_MODE 133 -#define SETTING_GPS_DYN_MODEL 134 -#define SETTING_GPS_AUTO_CONFIG 135 -#define SETTING_GPS_AUTO_BAUD 136 -#define SETTING_GPS_UBLOX_USE_GALILEO 137 -#define SETTING_GPS_MIN_SATS 138 -#define SETTING_DEADBAND 139 -#define SETTING_YAW_DEADBAND 140 -#define SETTING_POS_HOLD_DEADBAND 141 -#define SETTING_ALT_HOLD_DEADBAND 142 -#define SETTING_3D_DEADBAND_THROTTLE 143 -#define SETTING_MC_P_PITCH 144 -#define SETTING_MC_I_PITCH 145 -#define SETTING_MC_D_PITCH 146 -#define SETTING_MC_P_ROLL 147 -#define SETTING_MC_I_ROLL 148 -#define SETTING_MC_D_ROLL 149 -#define SETTING_MC_P_YAW 150 -#define SETTING_MC_I_YAW 151 -#define SETTING_MC_D_YAW 152 -#define SETTING_MC_P_LEVEL 153 -#define SETTING_MC_I_LEVEL 154 -#define SETTING_MC_D_LEVEL 155 -#define SETTING_FW_P_PITCH 156 -#define SETTING_FW_I_PITCH 157 -#define SETTING_FW_FF_PITCH 158 -#define SETTING_FW_P_ROLL 159 -#define SETTING_FW_I_ROLL 160 -#define SETTING_FW_FF_ROLL 161 -#define SETTING_FW_P_YAW 162 -#define SETTING_FW_I_YAW 163 -#define SETTING_FW_FF_YAW 164 -#define SETTING_FW_P_LEVEL 165 -#define SETTING_FW_I_LEVEL 166 -#define SETTING_FW_D_LEVEL 167 -#define SETTING_MAX_ANGLE_INCLINATION_RLL 168 -#define SETTING_MAX_ANGLE_INCLINATION_PIT 169 -#define SETTING_DTERM_LPF_HZ 170 -#define SETTING_YAW_LPF_HZ 171 -#define SETTING_DTERM_SETPOINT_WEIGHT 172 -#define SETTING_FW_ITERM_THROW_LIMIT 173 -#define SETTING_FW_REFERENCE_AIRSPEED 174 -#define SETTING_FW_TURN_ASSIST_YAW_GAIN 175 -#define SETTING_DTERM_NOTCH_HZ 176 -#define SETTING_DTERM_NOTCH_CUTOFF 177 -#define SETTING_PIDSUM_LIMIT 178 -#define SETTING_YAW_P_LIMIT 179 -#define SETTING_ITERM_WINDUP 180 -#define SETTING_RATE_ACCEL_LIMIT_ROLL_PITCH 181 -#define SETTING_RATE_ACCEL_LIMIT_YAW 182 -#define SETTING_HEADING_HOLD_RATE_LIMIT 183 -#define SETTING_NAV_MC_POS_Z_P 184 -#define SETTING_NAV_MC_POS_Z_I 185 -#define SETTING_NAV_MC_POS_Z_D 186 -#define SETTING_NAV_MC_VEL_Z_P 187 -#define SETTING_NAV_MC_VEL_Z_I 188 -#define SETTING_NAV_MC_VEL_Z_D 189 -#define SETTING_NAV_MC_POS_XY_P 190 -#define SETTING_NAV_MC_POS_XY_I 191 -#define SETTING_NAV_MC_POS_XY_D 192 -#define SETTING_NAV_MC_VEL_XY_P 193 -#define SETTING_NAV_MC_VEL_XY_I 194 -#define SETTING_NAV_MC_VEL_XY_D 195 -#define SETTING_NAV_MC_HEADING_P 196 -#define SETTING_NAV_FW_POS_Z_P 197 -#define SETTING_NAV_FW_POS_Z_I 198 -#define SETTING_NAV_FW_POS_Z_D 199 -#define SETTING_NAV_FW_POS_XY_P 200 -#define SETTING_NAV_FW_POS_XY_I 201 -#define SETTING_NAV_FW_POS_XY_D 202 -#define SETTING_NAV_FW_HEADING_P 203 -#define SETTING_FW_AUTOTUNE_OVERSHOOT_TIME 204 -#define SETTING_FW_AUTOTUNE_UNDERSHOOT_TIME 205 -#define SETTING_FW_AUTOTUNE_THRESHOLD 206 -#define SETTING_FW_AUTOTUNE_FF_TO_P_GAIN 207 -#define SETTING_FW_AUTOTUNE_FF_TO_I_TC 208 -#define SETTING_INAV_AUTO_MAG_DECL 209 -#define SETTING_INAV_GRAVITY_CAL_TOLERANCE 210 -#define SETTING_INAV_USE_GPS_VELNED 211 -#define SETTING_INAV_RESET_ALTITUDE 212 -#define SETTING_INAV_RESET_HOME 213 -#define SETTING_INAV_MAX_SURFACE_ALTITUDE 214 -#define SETTING_INAV_W_Z_SURFACE_P 215 -#define SETTING_INAV_W_Z_SURFACE_V 216 -#define SETTING_INAV_W_Z_BARO_P 217 -#define SETTING_INAV_W_Z_GPS_P 218 -#define SETTING_INAV_W_Z_GPS_V 219 -#define SETTING_INAV_W_XY_GPS_P 220 -#define SETTING_INAV_W_XY_GPS_V 221 -#define SETTING_INAV_W_Z_RES_V 222 -#define SETTING_INAV_W_XY_RES_V 223 -#define SETTING_INAV_W_ACC_BIAS 224 -#define SETTING_INAV_MAX_EPH_EPV 225 -#define SETTING_INAV_BARO_EPV 226 -#define SETTING_NAV_DISARM_ON_LANDING 227 -#define SETTING_NAV_USE_MIDTHR_FOR_ALTHOLD 228 -#define SETTING_NAV_EXTRA_ARMING_SAFETY 229 -#define SETTING_NAV_USER_CONTROL_MODE 230 -#define SETTING_NAV_POSITION_TIMEOUT 231 -#define SETTING_NAV_WP_RADIUS 232 -#define SETTING_NAV_WP_SAFE_DISTANCE 233 -#define SETTING_NAV_AUTO_SPEED 234 -#define SETTING_NAV_AUTO_CLIMB_RATE 235 -#define SETTING_NAV_MANUAL_SPEED 236 -#define SETTING_NAV_MANUAL_CLIMB_RATE 237 -#define SETTING_NAV_LANDING_SPEED 238 -#define SETTING_NAV_LAND_SLOWDOWN_MINALT 239 -#define SETTING_NAV_LAND_SLOWDOWN_MAXALT 240 -#define SETTING_NAV_EMERG_LANDING_SPEED 241 -#define SETTING_NAV_MIN_RTH_DISTANCE 242 -#define SETTING_NAV_RTH_CLIMB_FIRST 243 -#define SETTING_NAV_RTH_CLIMB_IGNORE_EMERG 244 -#define SETTING_NAV_RTH_TAIL_FIRST 245 -#define SETTING_NAV_RTH_ALLOW_LANDING 246 -#define SETTING_NAV_RTH_ALT_MODE 247 -#define SETTING_NAV_RTH_ABORT_THRESHOLD 248 -#define SETTING_NAV_MAX_TERRAIN_FOLLOW_ALT 249 -#define SETTING_NAV_RTH_ALTITUDE 250 -#define SETTING_NAV_MC_BANK_ANGLE 251 -#define SETTING_NAV_MC_HOVER_THR 252 -#define SETTING_NAV_MC_AUTO_DISARM_DELAY 253 -#define SETTING_NAV_FW_CRUISE_THR 254 -#define SETTING_NAV_FW_MIN_THR 255 -#define SETTING_NAV_FW_MAX_THR 256 -#define SETTING_NAV_FW_BANK_ANGLE 257 -#define SETTING_NAV_FW_CLIMB_ANGLE 258 -#define SETTING_NAV_FW_DIVE_ANGLE 259 -#define SETTING_NAV_FW_PITCH2THR 260 -#define SETTING_NAV_FW_LOITER_RADIUS 261 -#define SETTING_NAV_FW_LAND_DIVE_ANGLE 262 -#define SETTING_NAV_FW_LAUNCH_VELOCITY 263 -#define SETTING_NAV_FW_LAUNCH_ACCEL 264 -#define SETTING_NAV_FW_LAUNCH_MAX_ANGLE 265 -#define SETTING_NAV_FW_LAUNCH_DETECT_TIME 266 -#define SETTING_NAV_FW_LAUNCH_THR 267 -#define SETTING_NAV_FW_LAUNCH_IDLE_THR 268 -#define SETTING_NAV_FW_LAUNCH_MOTOR_DELAY 269 -#define SETTING_NAV_FW_LAUNCH_SPINUP_TIME 270 -#define SETTING_NAV_FW_LAUNCH_MIN_TIME 271 -#define SETTING_NAV_FW_LAUNCH_TIMEOUT 272 -#define SETTING_NAV_FW_LAUNCH_MAX_ALTITUDE 273 -#define SETTING_NAV_FW_LAUNCH_CLIMB_ANGLE 274 -#define SETTING_TELEMETRY_SWITCH 275 -#define SETTING_TELEMETRY_INVERTED 276 -#define SETTING_FRSKY_DEFAULT_LATITUDE 277 -#define SETTING_FRSKY_DEFAULT_LONGITUDE 278 -#define SETTING_FRSKY_COORDINATES_FORMAT 279 -#define SETTING_FRSKY_UNIT 280 -#define SETTING_FRSKY_VFAS_PRECISION 281 -#define SETTING_REPORT_CELL_VOLTAGE 282 -#define SETTING_HOTT_ALARM_SOUND_INTERVAL 283 -#define SETTING_SMARTPORT_UART_UNIDIR 284 -#define SETTING_SMARTPORT_FUEL_UNIT 285 -#define SETTING_IBUS_TELEMETRY_TYPE 286 -#define SETTING_LTM_UPDATE_RATE 287 -#define SETTING_LEDSTRIP_VISUAL_BEEPER 288 -#define SETTING_I2C_SPEED 289 -#define SETTING_DEBUG_MODE 290 -#define SETTING_ACC_TASK_FREQUENCY 291 -#define SETTING_ATTITUDE_TASK_FREQUENCY 292 -#define SETTING_ASYNC_MODE 293 -#define SETTING_THROTTLE_TILT_COMP_STR 294 -#define SETTING_INPUT_FILTERING_MODE 295 -#define SETTING_MODE_RANGE_LOGIC_OPERATOR 296 -#define SETTING_STATS 297 -#define SETTING_STATS_TOTAL_TIME 298 -#define SETTING_STATS_TOTAL_DIST 299 -#define SETTING_STATS_TOTAL_ENERGY 300 -#define SETTING_TZ_OFFSET 301 -#define SETTING_TZ_AUTOMATIC_DST 302 -#define SETTING_DISPLAY_FORCE_SW_BLINK 303