diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index bec9a96b931..f53368fccab 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -12,6 +12,7 @@ import semver from 'semver'; import { showErrorDialog } from "../utils/showErrorDialog"; import { checkChromeRuntimeError } from "../utils/common"; import $ from 'jquery'; +import DEBUG from "../debug"; let sdcardTimer; @@ -240,112 +241,21 @@ onboard_logging.initialize = function (callback) { } function populateDebugModes(debugModeSelect) { - let debugModes = []; - if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42)) { $('.blackboxDebugMode').show(); - debugModes = [ - {text: "NONE"}, - {text: "CYCLETIME"}, - {text: "BATTERY"}, - {text: "GYRO_FILTERED"}, - {text: "ACCELEROMETER"}, - {text: "PIDLOOP"}, - {text: "GYRO_SCALED"}, - {text: "RC_INTERPOLATION"}, - {text: "ANGLERATE"}, - {text: "ESC_SENSOR"}, - {text: "SCHEDULER"}, - {text: "STACK"}, - {text: "ESC_SENSOR_RPM"}, - {text: "ESC_SENSOR_TMP"}, - {text: "ALTITUDE"}, - {text: "FFT"}, - {text: "FFT_TIME"}, - {text: "FFT_FREQ"}, - {text: "RX_FRSKY_SPI"}, - {text: "RX_SFHSS_SPI"}, - {text: "GYRO_RAW"}, - {text: "DUAL_GYRO_RAW"}, - {text: "DUAL_GYRO_DIFF"}, - {text: "MAX7456_SIGNAL"}, - {text: "MAX7456_SPICLOCK"}, - {text: "SBUS"}, - {text: "FPORT"}, - {text: "RANGEFINDER"}, - {text: "RANGEFINDER_QUALITY"}, - {text: "LIDAR_TF"}, - {text: "ADC_INTERNAL"}, - {text: "RUNAWAY_TAKEOFF"}, - {text: "SDIO"}, - {text: "CURRENT_SENSOR"}, - {text: "USB"}, - {text: "SMARTAUDIO"}, - {text: "RTH"}, - {text: "ITERM_RELAX"}, - {text: "ACRO_TRAINER"}, - {text: "RC_SMOOTHING"}, - {text: "RX_SIGNAL_LOSS"}, - {text: "RC_SMOOTHING_RATE"}, - {text: "ANTI_GRAVITY"}, - {text: "DYN_LPF"}, - {text: "RX_SPEKTRUM_SPI"}, - {text: "DSHOT_RPM_TELEMETRY"}, - {text: "RPM_FILTER"}, - {text: "D_MIN"}, - {text: "AC_CORRECTION"}, - {text: "AC_ERROR"}, - {text: "DUAL_GYRO_SCALED"}, - {text: "DSHOT_RPM_ERRORS"}, - {text: "CRSF_LINK_STATISTICS_UPLINK"}, - {text: "CRSF_LINK_STATISTICS_PWR"}, - {text: "CRSF_LINK_STATISTICS_DOWN"}, - {text: "BARO"}, - {text: "GPS_RESCUE_THROTTLE_PID"}, - {text: "DYN_IDLE"}, - {text: "FEEDFORWARD_LIMIT"}, - {text: "FEEDFORWARD"}, - {text: "BLACKBOX_OUTPUT"}, - {text: "GYRO_SAMPLE"}, - {text: "RX_TIMING"}, - {text: "D_LPF"}, - {text: "VTX_TRAMP"}, - {text: "GHST"}, - {text: "GHST_MSP"}, - {text: "SCHEDULER_DETERMINISM"}, - {text: "TIMING_ACCURACY"}, - {text: "RX_EXPRESSLRS_SPI"}, - {text: "RX_EXPRESSLRS_PHASELOCK"}, - {text: "RX_STATE_TIME"}, - {text: "GPS_RESCUE_VELOCITY"}, - {text: "GPS_RESCUE_HEADING"}, - {text: "GPS_RESCUE_TRACKING"}, - {text: "GPS_CONNECTION"}, - {text: "ATTITUDE"}, - {text: "VTX_MSP"}, - {text: "GPS_DOP"}, - {text: "FAILSAFE"}, - {text: "GYRO_CALIBRATION"}, - {text: "ANGLE_MODE"}, - {text: "ANGLE_TARGET"}, - {text: "CURRENT_ANGLE"}, - {text: "DSHOT_TELEMETRY_COUNTS"}, - {text: "RPM_LIMIT"}, - ]; - for (let i = 0; i < FC.PID_ADVANCED_CONFIG.debugModeCount; i++) { - if (i < debugModes.length) { - debugModeSelect.append(new Option(debugModes[i].text, i)); + if (i < DEBUG.modes.length) { + debugModeSelect.append(new Option(DEBUG.modes[i].text, i)); } else { debugModeSelect.append(new Option(i18n.getMessage('onboardLoggingDebugModeUnknown'), i)); } } debugModeSelect - .val(FC.PID_ADVANCED_CONFIG.debugMode) - .select2() - .sortSelect("NONE"); + .val(FC.PID_ADVANCED_CONFIG.debugMode) + .select2() + .sortSelect("NONE"); } else { $('.blackboxDebugMode').hide(); } @@ -355,28 +265,11 @@ onboard_logging.initialize = function (callback) { if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) { $('.blackboxDebugFields').show(); - const debugFields = [ - { text: "PID" }, - { text: "RC Commands" }, - { text: "Setpoint" }, - { text: "Battery" }, - { text: "Magnetometer" }, - { text: "Altitude" }, - { text: "RSSI" }, - { text: "Gyro" }, - { text: "Accelerometer" }, - { text: "Debug Log" }, - { text: "Motor" }, - { text: "GPS" }, - { text: "RPM" }, - { text: "Unfiltered Gyro"}, - ]; - let fieldsMask = FC.BLACKBOX.blackboxDisabledMask; - for (let i = 0; i < debugFields.length; i++) { + for (let i = 0; i < DEBUG.enableFields.length; i++) { const enabled = (fieldsMask & (1 << i)) === 0; - debugFieldsSelect.append(new Option(debugFields[i].text, i, false, enabled)); + debugFieldsSelect.append(new Option(DEBUG.enableFields[i].text, i, false, enabled)); } debugFieldsSelect.sortSelect().multipleSelect(); diff --git a/src/js/tabs/sensors.js b/src/js/tabs/sensors.js index 1d2818f5d42..59d7524f338 100644 --- a/src/js/tabs/sensors.js +++ b/src/js/tabs/sensors.js @@ -10,8 +10,10 @@ import * as d3 from 'd3'; import $ from 'jquery'; import semver from 'semver'; import { API_VERSION_1_46 } from "../data_storage"; +import DEBUG from "../debug"; const sensors = {}; + sensors.initialize = function (callback) { if (GUI.active_tab != 'sensors') { @@ -190,674 +192,9 @@ sensors.initialize = function (callback) { } function displayDebugColumnNames() { - const debugModes = [ - {text: "NONE"}, - {text: "CYCLETIME"}, - {text: "BATTERY"}, - {text: "GYRO_FILTERED"}, - {text: "ACCELEROMETER"}, - {text: "PIDLOOP"}, - {text: "GYRO_SCALED"}, - {text: "RC_INTERPOLATION"}, - {text: "ANGLERATE"}, - {text: "ESC_SENSOR"}, - {text: "SCHEDULER"}, - {text: "STACK"}, - {text: "ESC_SENSOR_RPM"}, - {text: "ESC_SENSOR_TMP"}, - {text: "ALTITUDE"}, - {text: "FFT"}, - {text: "FFT_TIME"}, - {text: "FFT_FREQ"}, - {text: "RX_FRSKY_SPI"}, - {text: "RX_SFHSS_SPI"}, - {text: "GYRO_RAW"}, - {text: "DUAL_GYRO_RAW"}, - {text: "DUAL_GYRO_DIFF"}, - {text: "MAX7456_SIGNAL"}, - {text: "MAX7456_SPICLOCK"}, - {text: "SBUS"}, - {text: "FPORT"}, - {text: "RANGEFINDER"}, - {text: "RANGEFINDER_QUALITY"}, - {text: "LIDAR_TF"}, - {text: "ADC_INTERNAL"}, - {text: "RUNAWAY_TAKEOFF"}, - {text: "SDIO"}, - {text: "CURRENT_SENSOR"}, - {text: "USB"}, - {text: "SMARTAUDIO"}, - {text: "RTH"}, - {text: "ITERM_RELAX"}, - {text: "ACRO_TRAINER"}, - {text: "RC_SMOOTHING"}, - {text: "RX_SIGNAL_LOSS"}, - {text: "RC_SMOOTHING_RATE"}, - {text: "ANTI_GRAVITY"}, - {text: "DYN_LPF"}, - {text: "RX_SPEKTRUM_SPI"}, - {text: "DSHOT_RPM_TELEMETRY"}, - {text: "RPM_FILTER"}, - {text: "D_MIN"}, - {text: "AC_CORRECTION"}, - {text: "AC_ERROR"}, - {text: "DUAL_GYRO_SCALED"}, - {text: "DSHOT_RPM_ERRORS"}, - {text: "CRSF_LINK_STATISTICS_UPLINK"}, - {text: "CRSF_LINK_STATISTICS_PWR"}, - {text: "CRSF_LINK_STATISTICS_DOWN"}, - {text: "BARO"}, - {text: "GPS_RESCUE_THROTTLE_PID"}, - {text: "DYN_IDLE"}, - {text: "FEEDFORWARD_LIMIT"}, - {text: "FEEDFORWARD"}, - {text: "BLACKBOX_OUTPUT"}, - {text: "GYRO_SAMPLE"}, - {text: "RX_TIMING"}, - {text: "D_LPF"}, - {text: "VTX_TRAMP"}, - {text: "GHST"}, - {text: "GHST_MSP"}, - {text: "SCHEDULER_DETERMINISM"}, - {text: "TIMING_ACCURACY"}, - {text: "RX_EXPRESSLRS_SPI"}, - {text: "RX_EXPRESSLRS_PHASELOCK"}, - {text: "RX_STATE_TIME"}, - {text: "GPS_RESCUE_VELOCITY"}, - {text: "GPS_RESCUE_HEADING"}, - {text: "GPS_RESCUE_TRACKING"}, - {text: "GPS_CONNECTION"}, - {text: "ATTITUDE"}, - {text: "VTX_MSP"}, - {text: "GPS_DOP"}, - {text: "FAILSAFE"}, - {text: "GYRO_CALIBRATION"}, - {text: "ANGLE_MODE"}, - {text: "ANGLE_TARGET"}, - {text: "CURRENT_ANGLE"}, - {text: "DSHOT_TELEMETRY_COUNTS"}, - {text: "RPM_LIMIT"}, - ]; - - const DEBUG_FRIENDLY_FIELD_NAMES = { - 'NONE' : { - 'debug[all]':'Debug [all]', - 'debug[0]':'Debug [0]', - 'debug[1]':'Debug [1]', - 'debug[2]':'Debug [2]', - 'debug[3]':'Debug [3]', - 'debug[4]':'Debug [4]', - 'debug[5]':'Debug [5]', - 'debug[6]':'Debug [6]', - 'debug[7]':'Debug [7]', - }, - 'CYCLETIME' : { - 'debug[all]':'Debug Cycle Time', - 'debug[0]':'Cycle Time', - 'debug[1]':'CPU Load', - 'debug[2]':'Motor Update', - 'debug[3]':'Motor Deviation', - }, - 'BATTERY' : { - 'debug[all]':'Debug Battery', - 'debug[0]':'Battery Volt ADC', - 'debug[1]':'Battery Volt', - }, - 'GYRO' : { - 'debug[all]':'Debug Gyro', - 'debug[0]':'Gyro Raw [X]', - 'debug[1]':'Gyro Raw [Y]', - 'debug[2]':'Gyro Raw [Z]', - }, - 'GYRO_FILTERED' : { - 'debug[all]':'Debug Gyro Filtered', - 'debug[0]':'Gyro Filtered [X]', - 'debug[1]':'Gyro Filtered [Y]', - 'debug[2]':'Gyro Filtered [Z]', - }, - 'ACCELEROMETER' : { - 'debug[all]':'Debug Accel.', - 'debug[0]':'Accel. Raw [X]', - 'debug[1]':'Accel. Raw [Y]', - 'debug[2]':'Accel. Raw [Z]', - }, - 'MIXER' : { - 'debug[all]':'Debug Mixer', - 'debug[0]':'Roll-Pitch-Yaw Mix [0]', - 'debug[1]':'Roll-Pitch-Yaw Mix [1]', - 'debug[2]':'Roll-Pitch-Yaw Mix [2]', - 'debug[3]':'Roll-Pitch-Yaw Mix [3]', - }, - 'PIDLOOP' : { - 'debug[all]':'Debug PID', - 'debug[0]':'Wait Time', - 'debug[1]':'Sub Update Time', - 'debug[2]':'PID Update Time', - 'debug[3]':'Motor Update Time', - }, - 'NOTCH' : { - 'debug[all]':'Debug Notch', - 'debug[0]':'Gyro Pre-Notch [roll]', - 'debug[1]':'Gyro Pre-Notch [pitch]', - 'debug[2]':'Gyro Pre-Notch [yaw]', - }, - 'GYRO_SCALED' : { - 'debug[all]':'Debug Gyro Scaled', - 'debug[0]':'Gyro Scaled [roll]', - 'debug[1]':'Gyro Scaled [pitch]', - 'debug[2]':'Gyro Scaled [yaw]', - }, - 'RC_INTERPOLATION' : { - 'debug[all]':'Debug RC Interpolation', - 'debug[0]':'Raw RC Command [roll]', - 'debug[1]':'Current RX Refresh Rate', - 'debug[2]':'Interpolation Step Count', - 'debug[3]':'RC Setpoint [roll]', - }, - 'DTERM_FILTER' : { - 'debug[all]':'Debug Filter', - 'debug[0]':'DTerm Filter [roll]', - 'debug[1]':'DTerm Filter [pitch]', - }, - 'ANGLERATE' : { - 'debug[all]':'Debug Angle Rate', - 'debug[0]':'Angle Rate[roll]', - 'debug[1]':'Angle Rate[pitch]', - 'debug[2]':'Angle Rate[yaw]', - }, - 'ESC_SENSOR' : { - 'debug[all]':'ESC Sensor', - 'debug[0]':'Motor Index', - 'debug[1]':'Timeouts', - 'debug[2]':'CNC errors', - 'debug[3]':'Data age', - }, - 'SCHEDULER' : { - 'debug[all]':'Scheduler', - 'debug[2]':'Schedule Time', - 'debug[3]':'Function Exec Time', - }, - 'STACK' : { - 'debug[all]':'Stack', - 'debug[0]':'Stack High Mem', - 'debug[1]':'Stack Low Mem', - 'debug[2]':'Stack Current', - 'debug[3]':'Stack p', - }, - 'ESC_SENSOR_RPM' : { - 'debug[all]':'ESC Sensor RPM', - 'debug[0]':'Motor 1', - 'debug[1]':'Motor 2', - 'debug[2]':'Motor 3', - 'debug[3]':'Motor 4', - }, - 'ESC_SENSOR_TMP' : { - 'debug[all]':'ESC Sensor Temp', - 'debug[0]':'Motor 1', - 'debug[1]':'Motor 2', - 'debug[2]':'Motor 3', - 'debug[3]':'Motor 4', - }, - 'ALTITUDE' : { - 'debug[all]':'Altitude', - 'debug[0]':'GPS Trust * 100', - 'debug[1]':'Baro Altitude', - 'debug[2]':'GPS Altitude', - 'debug[3]':'Vario', - }, - 'FFT' : { - 'debug[all]':'Debug FFT', - 'debug[0]':'Gyro Pre Dyn Notch [dbg-axis]', - 'debug[1]':'Gyro Post Dyn Notch [dbg-axis]', - 'debug[2]':'Gyro Downsampled [dbg-axis]', - }, - 'FFT_TIME' : { - 'debug[all]':'Debug FFT TIME', - 'debug[0]':'Active calc step', - 'debug[1]':'Step duration', - }, - 'FFT_FREQ' : { - 'debug[all]':'Debug FFT FREQ', - 'debug[0]':'Notch 1 Center Freq [dbg-axis]', - 'debug[1]':'Notch 2 Center Freq [dbg-axis]', - 'debug[2]':'Notch 3 Center Freq [dbg-axis]', - 'debug[3]':'Gyro Pre Dyn Notch [dbg-axis]', - }, - 'RX_FRSKY_SPI' : { - 'debug[all]':'FrSky SPI Rx', - 'debug[0]':'Looptime', - 'debug[1]':'Packet', - 'debug[2]':'Missing Packets', - 'debug[3]':'State', - }, - 'RX_SFHSS_SPI' : { - 'debug[all]':'SFHSS SPI Rx', - 'debug[0]':'State', - 'debug[1]':'Missing Frame', - 'debug[2]':'Offset Max', - 'debug[3]':'Offset Min', - }, - 'GYRO_RAW' : { - 'debug[all]':'Debug Gyro Raw', - 'debug[0]':'Gyro Raw [X]', - 'debug[1]':'Gyro Raw [Y]', - 'debug[2]':'Gyro Raw [Z]', - }, - 'DUAL_GYRO' : { - 'debug[all]':'Debug Dual Gyro', - 'debug[0]':'Gyro 1 Filtered [roll]', - 'debug[1]':'Gyro 1 Filtered [pitch]', - 'debug[2]':'Gyro 2 Filtered [roll]', - 'debug[3]':'Gyro 2 Filtered [pitch]', - }, - 'DUAL_GYRO_RAW': { - 'debug[all]':'Debug Dual Gyro Raw', - 'debug[0]':'Gyro 1 Raw [roll]', - 'debug[1]':'Gyro 1 Raw [pitch]', - 'debug[2]':'Gyro 2 Raw [roll]', - 'debug[3]':'Gyro 2 Raw [pitch]', - }, - 'DUAL_GYRO_COMBINED': { - 'debug[all]':'Debug Dual Combined', - 'debug[0]':'Not Used', - 'debug[1]':'Gyro Filtered [roll]', - 'debug[2]':'Gyro Filtered [pitch]', - }, - 'DUAL_GYRO_DIFF': { - 'debug[all]':'Debug Dual Gyro Diff', - 'debug[0]':'Gyro Diff [roll]', - 'debug[1]':'Gyro Diff [pitch]', - 'debug[2]':'Gyro Diff [yaw]', - }, - 'MAX7456_SIGNAL' : { - 'debug[all]':'Max7456 Signal', - 'debug[0]':'Mode Reg', - 'debug[1]':'Sense', - 'debug[2]':'ReInit', - 'debug[3]':'Rows', - }, - 'MAX7456_SPICLOCK' : { - 'debug[all]':'Max7456 SPI Clock', - 'debug[0]':'Overclock', - 'debug[1]':'DevType', - 'debug[2]':'Divisor', - }, - 'SBUS' : { - 'debug[all]':'SBus Rx', - 'debug[0]':'Frame Flags', - 'debug[1]':'State Flags', - 'debug[2]':'Frame Time', - }, - 'FPORT' : { - 'debug[all]':'FPort Rx', - 'debug[0]':'Frame Interval', - 'debug[1]':'Frame Errors', - 'debug[2]':'Last Error', - 'debug[3]':'Telemetry Interval', - }, - 'RANGEFINDER' : { - 'debug[all]':'Rangefinder', - 'debug[0]':'not used', - 'debug[1]':'Raw Altitude', - 'debug[2]':'Calc Altituded', - 'debug[3]':'SNR', - }, - 'RANGEFINDER_QUALITY' : { - 'debug[all]':'Rangefinder Quality', - 'debug[0]':'Raw Altitude', - 'debug[1]':'SNR Threshold Reached', - 'debug[2]':'Dyn Distance Threshold', - 'debug[3]':'Is Surface Altitude Valid', - }, - 'LIDAR_TF' : { - 'debug[all]':'Lidar TF', - 'debug[0]':'Distance', - 'debug[1]':'Strength', - 'debug[2]':'TF Frame (4)', - 'debug[3]':'TF Frame (5)', - }, - 'ADC_INTERNAL' : { - 'debug[all]':'ADC Internal', - 'debug[0]':'Core Temp', - 'debug[1]':'VRef Internal Sample', - 'debug[2]':'Temp Sensor Sample', - 'debug[3]':'Vref mV', - }, - 'RUNAWAY_TAKEOFF' : { - 'debug[all]':'Runaway Takeoff', - 'debug[0]':'Enabled', - 'debug[1]':'Activating Delay', - 'debug[2]':'Deactivating Delay', - 'debug[3]':'Deactivating Time', - }, - 'CURRENT_SENSOR' : { - 'debug[all]':'Current Sensor', - 'debug[0]':'milliVolts', - 'debug[1]':'centiAmps', - 'debug[2]':'Amps Latest', - 'debug[3]':'mAh Drawn', - }, - 'USB' : { - 'debug[all]':'USB', - 'debug[0]':'Cable In', - 'debug[1]':'VCP Connected', - }, - 'SMART AUDIO' : { - 'debug[all]':'Smart Audio VTx', - 'debug[0]':'Device + Version', - 'debug[1]':'Channel', - 'debug[2]':'Frequency', - 'debug[3]':'Power', - }, - 'RTH' : { - 'debug[all]':'RTH Rescue codes', - 'debug[0]':'Pitch angle, deg', - 'debug[1]':'Rescue Phase', - 'debug[2]':'Failure code', - 'debug[3]':'Failure timers', - }, - 'ITERM_RELAX' : { - 'debug[all]':'I-term Relax', - 'debug[0]':'Setpoint HPF [roll]', - 'debug[1]':'I Relax Factor [roll]', - 'debug[2]':'Relaxed I Error [roll]', - 'debug[3]':'Axis Error [roll]', - }, - 'ACRO_TRAINER' : { - 'debug[all]':'Acro Trainer (a_t_axis)', - 'debug[0]':'Current Angle * 10 [deg]', - 'debug[1]':'Axis State', - 'debug[2]':'Correction amount', - 'debug[3]':'Projected Angle * 10 [deg]', - }, - 'RC_SMOOTHING' : { - 'debug[all]':'Debug RC Smoothing', - 'debug[0]':'Raw RC Command', - 'debug[1]':'Raw RC Derivative', - 'debug[2]':'Smoothed RC Derivative', - 'debug[3]':'RX Refresh Rate', - }, - 'RX_SIGNAL_LOSS' : { - 'debug[all]':'Rx Signal Loss', - 'debug[0]':'Signal Received', - 'debug[1]':'Failsafe', - 'debug[2]':'Not used', - 'debug[3]':'Throttle', - }, - 'RC_SMOOTHING_RATE' : { - 'debug[all]':'Debug RC Smoothing Rate', - 'debug[0]':'Current RX Refresh Rate', - 'debug[1]':'Training Step Count', - 'debug[2]':'Average RX Refresh Rate', - 'debug[3]':'Sampling State', - }, - 'ANTI_GRAVITY' : { - 'debug[all]':'I-term Relax', - 'debug[0]':'Base I gain * 1000', - 'debug[1]':'Final I gain * 1000', - 'debug[2]':'P gain [roll] * 1000', - 'debug[3]':'P gain [pitch] * 1000', - }, - 'DYN_LPF' : { - 'debug[all]':'Debug Dyn LPF', - 'debug[0]':'Gyro Scaled [dbg-axis]', - 'debug[1]':'Notch Center [roll]', - 'debug[2]':'Lowpass Cutoff', - 'debug[3]':'Gyro Pre-Dyn [dbg-axis]', - }, - 'DSHOT_RPM_TELEMETRY' : { - 'debug[all]':'DShot Telemetry RPM', - 'debug[0]':'Motor 1 - DShot', - 'debug[1]':'Motor 2 - DShot', - 'debug[2]':'Motor 3 - DShot', - 'debug[3]':'Motor 4 - DShot', - 'debug[4]':'Motor 5 - DShot', - 'debug[5]':'Motor 6 - DShot', - 'debug[6]':'Motor 7 - DShot', - 'debug[7]':'Motor 8 - DShot', - }, - 'RPM_FILTER' : { - 'debug[all]':'RPM Filter', - 'debug[0]':'Motor 1 - rpmFilter', - 'debug[1]':'Motor 2 - rpmFilter', - 'debug[2]':'Motor 3 - rpmFilter', - 'debug[3]':'Motor 4 - rpmFilter', - }, - 'D_MIN' : { - 'debug[all]':'D_MIN', - 'debug[0]':'Gyro Factor [roll]', - 'debug[1]':'Setpoint Factor [roll]', - 'debug[2]':'Actual D [roll]', - 'debug[3]':'Actual D [pitch]', - }, - 'AC_CORRECTION' : { - 'debug[all]':'AC Correction', - 'debug[0]':'AC Correction [roll]', - 'debug[1]':'AC Correction [pitch]', - 'debug[2]':'AC Correction [yaw]', - }, - 'AC_ERROR' : { - 'debug[all]':'AC Error', - 'debug[0]':'AC Error [roll]', - 'debug[1]':'AC Error [pitch]', - 'debug[2]':'AC Error [yaw]', - }, - 'DUAL_GYRO_SCALED' : { - 'debug[all]':'Dual Gyro Scaled', - 'debug[0]':'Gyro 1 [roll]', - 'debug[1]':'Gyro 1 [pitch]', - 'debug[2]':'Gyro 2 [roll]', - 'debug[3]':'Gyro 2 [pitch]', - }, - 'DSHOT_RPM_ERRORS' : { - 'debug[all]':'DSHOT RPM Error', - 'debug[0]':'DSHOT RPM Error [1]', - 'debug[1]':'DSHOT RPM Error [2]', - 'debug[2]':'DSHOT RPM Error [3]', - 'debug[3]':'DSHOT RPM Error [4]', - }, - 'CRSF_LINK_STATISTICS_UPLINK' : { - 'debug[all]':'CRSF Stats Uplink', - 'debug[0]':'Uplink RSSI 1', - 'debug[1]':'Uplink RSSI 2', - 'debug[2]':'Uplink Link Quality', - 'debug[3]':'RF Mode', - }, - 'CRSF_LINK_STATISTICS_PWR' : { - 'debug[all]':'CRSF Stats Power', - 'debug[0]':'Antenna', - 'debug[1]':'SNR', - 'debug[2]':'TX Power', - }, - 'CRSF_LINK_STATISTICS_DOWN' : { - 'debug[all]':'CRSF Stats Downlink', - 'debug[0]':'Downlink RSSI', - 'debug[1]':'Downlink Link Quality', - 'debug[2]':'Downlink SNR', - }, - 'BARO' : { - 'debug[all]':'Debug Barometer', - 'debug[0]':'Baro State', - 'debug[1]':'Baro Pressure', - 'debug[2]':'Baro Temperature', - 'debug[3]':'Baro Altitude', - }, - 'GPS_RESCUE_THROTTLE_PID' : { - 'debug[all]':'GPS Rescue throttle PIDs', - 'debug[0]':'Throttle P', - 'debug[1]':'Throttle D', - 'debug[2]':'Altitude', - 'debug[3]':'Target altitude', - }, - 'DYN_IDLE' : { - 'debug[all]':'Dyn Idle', - 'debug[0]':'Dyn Idle P [roll]', - 'debug[1]':'Dyn Idle I [roll]', - 'debug[2]':'Dyn Idle D [roll]', - 'debug[3]':'Min RPM', - }, - 'FEEDFORWARD' : { - 'debug[all]':'Feedforward [roll]', - 'debug[0]':'Setpoint, un-smoothed [roll]', - 'debug[1]':'Delta, smoothed [roll]', - 'debug[2]':'Boost, smoothed [roll]', - 'debug[3]':'rcCommand Delta [roll]', - }, - 'FEEDFORWARD_LIMIT' : { - 'debug[all]':'Feedforward Limit [roll]', - 'debug[0]':'Feedforward input [roll]', - 'debug[1]':'Feedforward input [pitch]', - 'debug[2]':'Feedforward limited [roll]', - }, - 'FF_INTERPOLATED' : { - 'debug[all]':'Feedforward [roll]', - 'debug[0]':'Setpoint Delta [roll]', - 'debug[1]':'Acceleration [roll]', - 'debug[2]':'Acceleration, clipped [roll]', - 'debug[3]':'Duplicate Counter [roll]', - }, - 'BLACKBOX_OUTPUT' : { - 'debug[all]':'Blackbox Output', - 'debug[0]':'Blackbox Rate', - 'debug[1]':'Blackbox Max Rate', - 'debug[2]':'Dropouts', - 'debug[3]':'Tx Bytes Free', - }, - 'GYRO_SAMPLE' : { - 'debug[all]':'Gyro Sample', - 'debug[0]':'Before downsampling', - 'debug[1]':'After downsampling', - 'debug[2]':'After RPM', - 'debug[3]':'After all but Dyn Notch', - }, - 'RX_TIMING' : { - 'debug[all]':'Receiver Timing (us)', - 'debug[0]':'Frame Delta', - 'debug[1]':'Frame Age', - }, - 'D_LPF' : { - 'debug[all]':'D-Term [D_LPF]', - 'debug[0]':'Unfiltered D [roll]', - 'debug[1]':'Unfiltered D [pitch]', - 'debug[2]':'Filtered, with DMax [roll]', - 'debug[3]':'Filtered, with DMax [pitch]', - }, - 'VTX_TRAMP' : { - 'debug[all]':'Tramp VTx', - 'debug[0]':'Status', - 'debug[1]':'Reply Code', - 'debug[2]':'Pit Mode', - 'debug[3]':'Retry Count', - }, - 'GHST' : { - 'debug[all]':'Ghost Rx', - 'debug[0]':'CRC Error Count', - 'debug[1]':'Unknown Frame Count', - 'debug[2]':'RSSI', - 'debug[3]':'Link Quality', - }, - 'GHST_MSP' : { - 'debug[all]':'Ghost MSP', - 'debug[0]':'MSP Frame Count', - 'debug[1]':'MSP Frame Counter', - }, - 'SCHEDULER_DETERMINISM' : { - 'debug[all]':'Scheduler Determinism', - 'debug[0]':'Cycle Start time', - 'debug[1]':'ID of Late Task', - 'debug[2]':'Task Delay Time', - 'debug[3]':'Gyro Clock Skew', - }, - 'TIMING_ACCURACY' : { - 'debug[all]':'Timing Accuracy', - 'debug[0]':'CPU Busy', - 'debug[1]':'Late Tasks per second', - 'debug[2]':'Total delay in last second', - 'debug[3]':'Total Tasks per second', - }, - 'RX_EXPRESSLRS_SPI' : { - 'debug[all]':'ExpressLRS SPI Rx', - 'debug[0]':'Lost Connection Count', - 'debug[1]':'RSSI', - 'debug[2]':'SNR', - 'debug[3]':'Uplink LQ', - }, - 'RX_EXPRESSLRS_PHASELOCK' : { - 'debug[all]':'ExpressLRS SPI Phaselock', - 'debug[0]':'Phase offset', - 'debug[1]':'Filtered phase offset', - 'debug[2]':'Frequency Offset', - 'debug[3]':'Phase Shift', - }, - 'RX_STATE_TIME' : { - 'debug[all]':'Rx State Time', - 'debug[0]':'Time 0', - 'debug[1]':'Time 1', - 'debug[2]':'Time 2', - 'debug[3]':'Time 3', - }, - 'GPS_RESCUE_VELOCITY' : { - 'debug[all]':'GPS Rescue Velocity', - 'debug[0]':'Velocity P', - 'debug[1]':'Velocity D', - 'debug[2]':'Velocity to Home', - 'debug[3]':'Target Velocity', - }, - 'GPS_RESCUE_HEADING' : { - 'debug[all]':'GPS Rescue Heading', - 'debug[0]':'Ground Speed', - 'debug[1]':'GPS Heading', - 'debug[2]':'IMU Attitude', - 'debug[3]':'Angle to home', - 'debug[4]':'magYaw', - 'debug[5]':'Roll MixAtt', - 'debug[6]':'Roll Added', - 'debug[7]':'Rescue Yaw Rate', - }, - 'GPS_RESCUE_TRACKING' : { - 'debug[all]':'GPS Rescue Tracking', - 'debug[0]':'Velocity to home', - 'debug[1]':'Target velocity', - 'debug[2]':'Altitude', - 'debug[3]':'Target altitude', - }, - 'GPS_CONNECTION' : { - 'debug[all]':'GPS Connection', - 'debug[0]':'Nav Model', - 'debug[1]':'GPS Nav interval', - 'debug[2]':'Task timer', - 'debug[3]':'Baud Rate / FC interval', - 'debug[4]':'State*100 +SubState', - 'debug[5]':'ExecuteTime', - 'debug[6]':'Ack State', - 'debug[7]':'Rx buffer size', - }, - 'ATTITUDE' : { - 'debug[all]':'Attitude', - 'debug[0]':'accADC X', - 'debug[1]':'accADC Y', - 'debug[2]':'Setpoint Roll', - 'debug[3]':'Setpoint Pitch', - }, - 'VTX_MSP' : { - 'debug[all]': 'VTX MSP', - 'debug[0]': 'packetCounter', - 'debug[1]': 'isCrsfPortConfig', - 'debug[2]': 'isLowPowerDisarmed', - 'debug[3]': 'mspTelemetryDescriptor', - }, - 'GPS_DOP' : { - 'debug[all]': 'GPS Dilution of Precision', - 'debug[0]': 'Number of Satellites', - 'debug[1]': 'pDOP (positional - 3D)', - 'debug[2]': 'hDOP (horizontal - 2D)', - 'debug[3]': 'vDOP (vertical - 1D)', - }, - }; - for (let i = 0; i < sensors.debugColumns; i++) { - const debugModeName = debugModes[FC.PID_ADVANCED_CONFIG.debugMode].text; - const debugFields = DEBUG_FRIENDLY_FIELD_NAMES[debugModeName]; + const debugModeName = DEBUG.modes[FC.PID_ADVANCED_CONFIG.debugMode].text; + const debugFields = DEBUG.fieldNames[debugModeName]; const msg = debugFields[`debug[${i}]`] ?? `Debug ${i} not used`; $(`.plot_control.debug${i}`)