From a3c39289bd40aab3309b9a13c0695c0cc819417f Mon Sep 17 00:00:00 2001 From: Dominik Derigs Date: Sun, 17 Jan 2016 22:54:10 +0100 Subject: [PATCH 1/5] Added RMS display in Motors tab --- tabs/motors.css | 14 +++++++++++++- tabs/motors.html | 4 +++- tabs/motors.js | 32 +++++++++++++++++++++++++++----- 3 files changed, 43 insertions(+), 7 deletions(-) diff --git a/tabs/motors.css b/tabs/motors.css index 3c29813c..8b2228f3 100644 --- a/tabs/motors.css +++ b/tabs/motors.css @@ -30,7 +30,7 @@ width: 160px; /* border: 1px solid silver; */ height: 100%; - height: 160px; + height: 180px; margin: 0px; background-color: #ECECEC; border-top-right-radius: 3px; @@ -107,6 +107,18 @@ text-align: right; } +.tab-motors .plot_control .rms { + background-color: #00D800; + padding: 3px; + color: #fff; + height: 12px; + float: right; + border-radius: 3px; + line-height: 12px; + margin-bottom: 2px; + text-align: right; +} + .tab-motors .plot_control .x, .tab-sensors .plot_control .y, .tab-sensors .plot_control .z { text-align: right; } diff --git a/tabs/motors.html b/tabs/motors.html index 2cc9ccfe..a2596ee3 100644 --- a/tabs/motors.html +++ b/tabs/motors.html @@ -54,6 +54,8 @@
0
Z:
0
+
RMS:
+
0
@@ -126,4 +128,4 @@ - \ No newline at end of file + diff --git a/tabs/motors.js b/tabs/motors.js index 373fef40..dc9c5308 100644 --- a/tabs/motors.js +++ b/tabs/motors.js @@ -66,7 +66,6 @@ TABS.motors.initialize = function (callback) { } return data; } - function addSampleToData(data, sampleNumber, sensorData) { for (var i = 0; i < data.length; i++) { var dataPoint = sensorData[i]; @@ -78,6 +77,7 @@ TABS.motors.initialize = function (callback) { data[i].max = dataPoint; } } + while (data[0].length > 300) { for (i = 0; i < data.length; i++) { data[i].shift(); @@ -201,17 +201,20 @@ TABS.motors.initialize = function (callback) { var raw_data_text_ements = { x: [], y: [], - z: [] + z: [], + rms: [] }; - $('.plot_control .x, .plot_control .y, .plot_control .z').each(function () { + $('.plot_control .x, .plot_control .y, .plot_control .z, .plot_control .rms').each(function () { var el = $(this); if (el.hasClass('x')) { raw_data_text_ements.x.push(el); } else if (el.hasClass('y')) { raw_data_text_ements.y.push(el); - } else { + } else if (el.hasClass('z')) { raw_data_text_ements.z.push(el); + } else if (el.hasClass('rms')) { + raw_data_text_ements.rms.push(el); } }); @@ -261,12 +264,31 @@ TABS.motors.initialize = function (callback) { ]; updateGraphHelperSize(accelHelpers); - samples_accel_i = addSampleToData(accel_data, samples_accel_i, accel_with_offset); + samples_accel_i = addSampleToData(accel_data, samples_accel_i, accel_with_offset,rms); drawGraph(accelHelpers, accel_data, samples_accel_i); + // Compute RMS of acceleration in displayed period of time + // This is particularly useful for motor balancing as it + // eliminates the need for external tools + var sum = 0.0; + for (var k = 0; k < accel_data[0].length; k++) + { + sum += accel_data[0][k][1]*accel_data[0][k][1]; + } + for (var k = 0; k < accel_data[1].length; k++) + { + sum += accel_data[1][k][1]*accel_data[1][k][1]; + } + for (var k = 0; k < accel_data[2].length; k++) + { + sum += accel_data[2][k][1]*accel_data[2][k][1]; + } + var rms = Math.sqrt(sum/(accel_data[0].length+accel_data[1].length+accel_data[2].length)); + raw_data_text_ements.x[0].text(accel_with_offset[0].toFixed(2) + ' (' + accel_max_read[0].toFixed(2) + ')'); raw_data_text_ements.y[0].text(accel_with_offset[1].toFixed(2) + ' (' + accel_max_read[1].toFixed(2) + ')'); raw_data_text_ements.z[0].text(accel_with_offset[2].toFixed(2) + ' (' + accel_max_read[2].toFixed(2) + ')'); + raw_data_text_ements.rms[0].text(rms.toFixed(4)); for (var i = 0; i < 3; i++) { if (Math.abs(accel_with_offset[i]) > Math.abs(accel_max_read[i])) accel_max_read[i] = accel_with_offset[i]; From 9b5fdb6abacef3b76fdfe6e610d9b51758127e1e Mon Sep 17 00:00:00 2001 From: Dominik Derigs Date: Sun, 17 Jan 2016 22:56:03 +0100 Subject: [PATCH 2/5] Minor change --- tabs/motors.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tabs/motors.js b/tabs/motors.js index dc9c5308..3eb1b99e 100644 --- a/tabs/motors.js +++ b/tabs/motors.js @@ -66,6 +66,7 @@ TABS.motors.initialize = function (callback) { } return data; } + function addSampleToData(data, sampleNumber, sensorData) { for (var i = 0; i < data.length; i++) { var dataPoint = sensorData[i]; @@ -77,7 +78,6 @@ TABS.motors.initialize = function (callback) { data[i].max = dataPoint; } } - while (data[0].length > 300) { for (i = 0; i < data.length; i++) { data[i].shift(); From ed735556df5073935ccdf149b4852951c5d709c1 Mon Sep 17 00:00:00 2001 From: Dominik Derigs Date: Sun, 17 Jan 2016 23:36:01 +0100 Subject: [PATCH 3/5] Fixed variable rms being at the wrong place (doesn't affect functionality) --- tabs/motors.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tabs/motors.js b/tabs/motors.js index 3eb1b99e..45ab6316 100644 --- a/tabs/motors.js +++ b/tabs/motors.js @@ -264,7 +264,7 @@ TABS.motors.initialize = function (callback) { ]; updateGraphHelperSize(accelHelpers); - samples_accel_i = addSampleToData(accel_data, samples_accel_i, accel_with_offset,rms); + samples_accel_i = addSampleToData(accel_data, samples_accel_i, accel_with_offset); drawGraph(accelHelpers, accel_data, samples_accel_i); // Compute RMS of acceleration in displayed period of time From f60f599fb93e691ecdc522596be8184f198a1505 Mon Sep 17 00:00:00 2001 From: Dominik Derigs Date: Mon, 18 Jan 2016 08:45:19 +0100 Subject: [PATCH 4/5] Further simplification of the new code --- tabs/motors.js | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/tabs/motors.js b/tabs/motors.js index 45ab6316..4cc87126 100644 --- a/tabs/motors.js +++ b/tabs/motors.js @@ -271,18 +271,9 @@ TABS.motors.initialize = function (callback) { // This is particularly useful for motor balancing as it // eliminates the need for external tools var sum = 0.0; - for (var k = 0; k < accel_data[0].length; k++) - { - sum += accel_data[0][k][1]*accel_data[0][k][1]; - } - for (var k = 0; k < accel_data[1].length; k++) - { - sum += accel_data[1][k][1]*accel_data[1][k][1]; - } - for (var k = 0; k < accel_data[2].length; k++) - { - sum += accel_data[2][k][1]*accel_data[2][k][1]; - } + for (var j = 0; j < accel_data.length; j++) + for (var k = 0; k < accel_data[0].length; k++) + sum += accel_data[j][k][1]*accel_data[j][k][1]; var rms = Math.sqrt(sum/(accel_data[0].length+accel_data[1].length+accel_data[2].length)); raw_data_text_ements.x[0].text(accel_with_offset[0].toFixed(2) + ' (' + accel_max_read[0].toFixed(2) + ')'); From 327b0ecb2869c83fd53ad353d122510b8b39ca32 Mon Sep 17 00:00:00 2001 From: Dominik Derigs Date: Mon, 18 Jan 2016 08:52:42 +0100 Subject: [PATCH 5/5] Again, minor change --- tabs/motors.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tabs/motors.js b/tabs/motors.js index 4cc87126..6f4f118e 100644 --- a/tabs/motors.js +++ b/tabs/motors.js @@ -272,7 +272,7 @@ TABS.motors.initialize = function (callback) { // eliminates the need for external tools var sum = 0.0; for (var j = 0; j < accel_data.length; j++) - for (var k = 0; k < accel_data[0].length; k++) + for (var k = 0; k < accel_data[j].length; k++) sum += accel_data[j][k][1]*accel_data[j][k][1]; var rms = Math.sqrt(sum/(accel_data[0].length+accel_data[1].length+accel_data[2].length));