From d5f9f050ce420d489be10baa0d00b6e8b56b6a17 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Thu, 20 Jul 2023 22:56:58 +0200 Subject: [PATCH 1/5] Add all 8 debug values in sensors tab --- src/js/msp/MSPHelper.js | 2 +- src/js/tabs/onboard_logging.js | 2 + src/js/tabs/sensors.js | 24 +++++-- src/tabs/sensors.html | 114 +++++++++++++++++++++++++-------- 4 files changed, 108 insertions(+), 34 deletions(-) diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index 80286a229d..9e369c3dd6 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -668,7 +668,7 @@ MspHelper.prototype.process_data = function(dataHandler) { console.log('Voltage config saved'); break; case MSPCodes.MSP_DEBUG: - for (let i = 0; i < 4; i++) { + for (let i = 0; i < 8; i++) { FC.SENSOR_DATA.debug[i] = data.read16(); } break; diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index 606266416f..0d80a03b00 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -320,6 +320,7 @@ onboard_logging.initialize = function (callback) { {text: "GPS_RESCUE_VELOCITY"}, {text: "GPS_RESCUE_HEADING"}, {text: "GPS_RESCUE_TRACKING"}, + {text: "GPS_UNIT_CONNECTION"}, {text: "ATTITUDE"}, {text: "VTX_MSP"}, {text: "GPS_DOP"}, @@ -329,6 +330,7 @@ onboard_logging.initialize = function (callback) { {text: "ANGLE_TARGET"}, {text: "CURRENT_ANGLE"}, {text: "DSHOT_TELEMETRY_COUNTS"}, + {text: "RPM_LIMIT"}, ]; for (let i = 0; i < FC.PID_ADVANCED_CONFIG.debugModeCount; i++) { diff --git a/src/js/tabs/sensors.js b/src/js/tabs/sensors.js index ae5c73f596..dd8bfe6eb2 100644 --- a/src/js/tabs/sensors.js +++ b/src/js/tabs/sensors.js @@ -22,6 +22,10 @@ sensors.initialize = function (callback) { FC.SENSOR_DATA.magnetometer[i] = 0; FC.SENSOR_DATA.sonar = 0; FC.SENSOR_DATA.altitude = 0; + } + + // we now have 8 debug values + for (let i = 0; i < 8; i++) { FC.SENSOR_DATA.debug[i] = 0; } } @@ -262,11 +266,15 @@ sensors.initialize = function (callback) { altitude_data = initDataArray(1), sonar_data = initDataArray(1), debug_data = [ - initDataArray(1), - initDataArray(1), - initDataArray(1), - initDataArray(1), - ]; + initDataArray(1), + initDataArray(1), + initDataArray(1), + initDataArray(1), + initDataArray(1), + initDataArray(1), + initDataArray(1), + initDataArray(1), + ]; let gyroHelpers = initGraphHelpers('#gyro', samples_gyro_i, [-2000, 2000]); let accelHelpers = initGraphHelpers('#accel', samples_accel_i, [-2, 2]); @@ -274,10 +282,14 @@ sensors.initialize = function (callback) { const altitudeHelpers = initGraphHelpers('#altitude', samples_altitude_i); const sonarHelpers = initGraphHelpers('#sonar', samples_sonar_i); const debugHelpers = [ + initGraphHelpers('#debug0', samples_debug_i), initGraphHelpers('#debug1', samples_debug_i), initGraphHelpers('#debug2', samples_debug_i), initGraphHelpers('#debug3', samples_debug_i), initGraphHelpers('#debug4', samples_debug_i), + initGraphHelpers('#debug5', samples_debug_i), + initGraphHelpers('#debug6', samples_debug_i), + initGraphHelpers('#debug7', samples_debug_i), ]; const raw_data_text_ements = { @@ -417,7 +429,7 @@ sensors.initialize = function (callback) { } function update_debug_graphs() { - for (let i = 0; i < 4; i++) { + for (let i = 0; i < 8; i++) { updateGraphHelperSize(debugHelpers[i]); addSampleToData(debug_data[i], samples_debug_i, [FC.SENSOR_DATA.debug[i]]); diff --git a/src/tabs/sensors.html b/src/tabs/sensors.html index 0efab46c40..955a8a09bb 100644 --- a/src/tabs/sensors.html +++ b/src/tabs/sensors.html @@ -258,13 +258,13 @@
0
- - - - - - - + + + + + + +
1
@@ -273,13 +273,13 @@
blue
- - - - - - - + + + + + + +
2
@@ -288,13 +288,13 @@
0
- - - - - - - + + + + + + +
3
@@ -303,13 +303,73 @@
0
+ + + + + + + +
+
+
4
+
+
X:
+
0
+
+
- - - - - - + + + + + + +
+
+
5
+
+
X:
+
0
+
+
+ + + + + + + +
+
+
6
+
+
X:
+
0
+
+
+ + + + + + + +
+
+
7
+
+
X:
+
0
+
+
+ + + + + + + From 2cef5ef41b01e89296678eca2c1bf9df94516e72 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Fri, 21 Jul 2023 20:28:43 +0200 Subject: [PATCH 2/5] Make debug columns dynamic --- src/js/fc.js | 2 +- src/js/tabs/sensors.js | 10 ++++++ src/tabs/sensors.html | 77 +++++++++++++++++++++--------------------- 3 files changed, 50 insertions(+), 39 deletions(-) diff --git a/src/js/fc.js b/src/js/fc.js index 28e05bb61c..2dcc0f2cb3 100644 --- a/src/js/fc.js +++ b/src/js/fc.js @@ -280,7 +280,7 @@ const FC = { altitude: 0, sonar: 0, kinematics: [0.0, 0.0, 0.0], - debug: [0, 0, 0, 0], + debug: [0, 0, 0, 0, 0, 0, 0, 0], }; this.MOTOR_DATA = Array.from({length: 8}); diff --git a/src/js/tabs/sensors.js b/src/js/tabs/sensors.js index dd8bfe6eb2..c364b9fa0b 100644 --- a/src/js/tabs/sensors.js +++ b/src/js/tabs/sensors.js @@ -182,6 +182,10 @@ sensors.initialize = function (callback) { function plot_debug(enable) { if (enable) { $('.wrapper.debug').show(); + for (let i = 4; i < 8; i++) { + $(`svg#debug${i}`).hide(); + $(`div.plot_control.debug${i}`).hide(); + } } else { $('.wrapper.debug').hide(); } @@ -432,6 +436,12 @@ sensors.initialize = function (callback) { for (let i = 0; i < 8; i++) { updateGraphHelperSize(debugHelpers[i]); + // enable/disable graphs based on debug values + if (FC.SENSOR_DATA.debug[i]) { + $(`svg#debug${i}`).show(); + $(`div.plot_control.debug${i}`).show(); + } + addSampleToData(debug_data[i], samples_debug_i, [FC.SENSOR_DATA.debug[i]]); drawGraph(debugHelpers[i], debug_data[i], samples_debug_i); raw_data_text_ements.x[5 + i].text(FC.SENSOR_DATA.debug[i]); diff --git a/src/tabs/sensors.html b/src/tabs/sensors.html index 955a8a09bb..0900564544 100644 --- a/src/tabs/sensors.html +++ b/src/tabs/sensors.html @@ -66,12 +66,12 @@ - - - - - - + + + + + +
@@ -111,12 +111,12 @@ - - - - - - + + + + + +
@@ -156,12 +156,12 @@ - - - - - - + + + + + +
@@ -193,12 +193,12 @@ - - - - - - + + + + + +
@@ -226,18 +226,19 @@ - - - - - - + + + + + +
+
-
+
0
@@ -266,7 +267,7 @@
-
+
1
X:
@@ -281,7 +282,7 @@
-
+
2
X:
@@ -296,7 +297,7 @@
-
+
3
X:
@@ -311,7 +312,7 @@
-
+
4
X:
@@ -326,7 +327,7 @@
-
+
5
X:
@@ -341,7 +342,7 @@
-
+
6
X:
@@ -356,7 +357,7 @@
-
+
7
X:
From e2a2d179c48b04d37c67d72eac23462490fb380a Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Fri, 21 Jul 2023 20:37:04 +0200 Subject: [PATCH 3/5] Do it for all debug columns --- src/js/tabs/sensors.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/tabs/sensors.js b/src/js/tabs/sensors.js index c364b9fa0b..fe2b2b61ce 100644 --- a/src/js/tabs/sensors.js +++ b/src/js/tabs/sensors.js @@ -182,7 +182,7 @@ sensors.initialize = function (callback) { function plot_debug(enable) { if (enable) { $('.wrapper.debug').show(); - for (let i = 4; i < 8; i++) { + for (let i = 0; i < 8; i++) { $(`svg#debug${i}`).hide(); $(`div.plot_control.debug${i}`).hide(); } From dfb528b3260eadf036cd5327ca5f3f29d27bc6c4 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Fri, 21 Jul 2023 22:19:28 +0200 Subject: [PATCH 4/5] Use semver to decide initial column count --- src/js/tabs/sensors.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/js/tabs/sensors.js b/src/js/tabs/sensors.js index fe2b2b61ce..555d8bb3d0 100644 --- a/src/js/tabs/sensors.js +++ b/src/js/tabs/sensors.js @@ -7,6 +7,8 @@ import MSP from "../msp"; import MSPCodes from "../msp/MSPCodes"; import serial from "../serial"; import * as d3 from 'd3'; +import semver from 'semver'; +import { API_VERSION_1_46 } from "../data_storage"; const sensors = {}; sensors.initialize = function (callback) { @@ -15,6 +17,8 @@ sensors.initialize = function (callback) { GUI.active_tab = 'sensors'; } + sensors.debugColumns = semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46) ? 8 : 4; + function initSensorData(){ for (let i = 0; i < 3; i++) { FC.SENSOR_DATA.accelerometer[i] = 0; @@ -24,8 +28,7 @@ sensors.initialize = function (callback) { FC.SENSOR_DATA.altitude = 0; } - // we now have 8 debug values - for (let i = 0; i < 8; i++) { + for (let i = 0; i < sensors.debugColumns; i++) { FC.SENSOR_DATA.debug[i] = 0; } } @@ -433,7 +436,7 @@ sensors.initialize = function (callback) { } function update_debug_graphs() { - for (let i = 0; i < 8; i++) { + for (let i = 0; i < sensors.debugColumns; i++) { updateGraphHelperSize(debugHelpers[i]); // enable/disable graphs based on debug values From 08448560d4ae736900d85dcba7843bb4766af06d Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Fri, 21 Jul 2023 22:35:42 +0200 Subject: [PATCH 5/5] Some improvements from NerdCopter --- src/js/tabs/sensors.js | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/src/js/tabs/sensors.js b/src/js/tabs/sensors.js index 555d8bb3d0..96652c7fdc 100644 --- a/src/js/tabs/sensors.js +++ b/src/js/tabs/sensors.js @@ -272,32 +272,22 @@ sensors.initialize = function (callback) { mag_data = initDataArray(3), altitude_data = initDataArray(1), sonar_data = initDataArray(1), - debug_data = [ - initDataArray(1), - initDataArray(1), - initDataArray(1), - initDataArray(1), - initDataArray(1), - initDataArray(1), - initDataArray(1), - initDataArray(1), - ]; + debug_data = []; + + for (let i = 0; i < sensors.debugColumns; i++) { + debug_data.push(initDataArray(1)); + } let gyroHelpers = initGraphHelpers('#gyro', samples_gyro_i, [-2000, 2000]); let accelHelpers = initGraphHelpers('#accel', samples_accel_i, [-2, 2]); let magHelpers = initGraphHelpers('#mag', samples_mag_i, [-1, 1]); const altitudeHelpers = initGraphHelpers('#altitude', samples_altitude_i); const sonarHelpers = initGraphHelpers('#sonar', samples_sonar_i); - const debugHelpers = [ - initGraphHelpers('#debug0', samples_debug_i), - initGraphHelpers('#debug1', samples_debug_i), - initGraphHelpers('#debug2', samples_debug_i), - initGraphHelpers('#debug3', samples_debug_i), - initGraphHelpers('#debug4', samples_debug_i), - initGraphHelpers('#debug5', samples_debug_i), - initGraphHelpers('#debug6', samples_debug_i), - initGraphHelpers('#debug7', samples_debug_i), - ]; + const debugHelpers = []; + + for (let i = 0; i < sensors.debugColumns; i++) { + debugHelpers.push(initGraphHelpers(`#debug${i}`, samples_debug_i)); + } const raw_data_text_ements = { x: [],