From 07b51e50b46bc605387648af4fc21f5bdba31aa0 Mon Sep 17 00:00:00 2001 From: Till Blaha <28341894+tblaha@users.noreply.github.com> Date: Tue, 3 Oct 2023 15:29:36 +0200 Subject: [PATCH] fix scaling bug --- js/flightlog.js | 2 ++ js/flightlog_fielddefs.js | 2 ++ js/graph_config.js | 17 +++++++++-------- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/js/flightlog.js b/js/flightlog.js index 94c0a0d2..08fe729f 100644 --- a/js/flightlog.js +++ b/js/flightlog.js @@ -88,6 +88,7 @@ function FlightLog(logData) { for (var j = 0; j < rawStats.frame.P.field.length; j++) { rawStats.field[j].max = Math.max(rawStats.field[j].max, rawStats.frame.P.field[j].max); rawStats.field[j].min = Math.min(rawStats.field[j].min, rawStats.frame.P.field[j].min); + //console.log(`${fieldNames[j]}: min ${rawStats.field[j].min}, max ${rawStats.field[j].max}`); } // Just modify the raw stats variable to add this field, the parser won't mind the extra field appearing: @@ -95,6 +96,7 @@ function FlightLog(logData) { rawStats.field = rawStats.field.concat(rawStats.frame.S.field); } + return rawStats; }; diff --git a/js/flightlog_fielddefs.js b/js/flightlog_fielddefs.js index 8f5b166d..cbf34803 100644 --- a/js/flightlog_fielddefs.js +++ b/js/flightlog_fielddefs.js @@ -100,6 +100,7 @@ let 'RANGEFINDER', 'FAILSAFE', 'GPSRESCUE', + 'VELOCITY', 'POSITION', 'ANTIGRAVITY', 'HEADADJ', @@ -571,6 +572,7 @@ function adjustFieldDefsList(firmwareType, firmwareVersion) { } //if (semver.lt(firmwareVersion, '4.4.2')) { if (firmwareType !== FIRMWARE_TYPE_INDIFLIGHT) { + FLIGHT_LOG_FLIGHT_MODE_NAME.splice(FLIGHT_LOG_FLIGHT_MODE_NAME.indexOf('VELOCITY'), 1); FLIGHT_LOG_FLIGHT_MODE_NAME.splice(FLIGHT_LOG_FLIGHT_MODE_NAME.indexOf('POSITION'), 1); } FLIGHT_LOG_FLIGHT_MODE_NAME = makeReadOnly(FLIGHT_LOG_FLIGHT_MODE_NAME); diff --git a/js/graph_config.js b/js/graph_config.js index 5df0f944..14d2ee2c 100644 --- a/js/graph_config.js +++ b/js/graph_config.js @@ -122,14 +122,14 @@ function GraphConfig(graphConfig) { } var anyCommonScale = false; - var inMax=+1.; - var inMin=-1.; + var inMax=-Number.MAX_VALUE; + var inMin=+Number.MAX_VALUE; for (var j = 0; j < newGraph.fields.length; j++) { var field = newGraph.fields[j]; if (field.commonScale) { anyCommonScale = true; - inMax = Math.max(inMax,-field.curve.offset + field.curve.inputRange); inMin = Math.min(inMin,-field.curve.offset - field.curve.inputRange); + inMax = Math.max(inMax,-field.curve.offset + field.curve.inputRange); } } @@ -142,10 +142,11 @@ function GraphConfig(graphConfig) { inputRange = (inMax - inMin) / 2 * 1.05; // protection against 0 not necessary for (var j = 0; j < newGraph.fields.length; j++) { if (newGraph.fields[j].commonScale) { - //console.log(`Min ${-newGraph.fields[j].curve.offset - newGraph.fields[j].curve.inputRange} to ${-offset - inputRange}`); - //console.log(`Max ${-newGraph.fields[j].curve.offset + newGraph.fields[j].curve.inputRange} to ${-offset + inputRange}`); + console.log(`${newGraph.fields[j].name}`) + console.log(`Min ${-newGraph.fields[j].curve.offset - newGraph.fields[j].curve.inputRange} to ${-offset - inputRange}`); + console.log(`Max ${-newGraph.fields[j].curve.offset + newGraph.fields[j].curve.inputRange} to ${-offset + inputRange}`); newGraph.fields[j].curve.offset = offset; - newGraph.fields[j].curve.inputRange = inputRange; + newGraph.fields[j].curve.inputRange = Math.max(inputRange, 1.); } } } @@ -260,7 +261,7 @@ GraphConfig.load = function(config) { var stats = flightLog.getStats(), min = Number.MAX_VALUE, - max = Number.MIN_VALUE; + max = -Number.MAX_VALUE; for(var i in arguments) { var @@ -273,7 +274,7 @@ GraphConfig.load = function(config) { } } - if (min != Number.MAX_VALUE && max != Number.MIN_VALUE) { + if (min != Number.MAX_VALUE && max != -Number.MAX_VALUE) { return {min:min, max:max}; }