From 0942b8034c2cad23347104612ecf55d92ede0e4a Mon Sep 17 00:00:00 2001 From: Linus Thorsell Date: Thu, 1 Dec 2022 19:16:05 +0100 Subject: [PATCH 1/6] added input fields to the html --- index.html | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/index.html b/index.html index e6442d74..fb4e114f 100644 --- a/index.html +++ b/index.html @@ -2830,6 +2830,57 @@ + +
+
+
Measurement System
+
+
+
+ + + + +
+ + m/s +
+ kph +
+ mph +
+
+
+ + + + +
+ + meters +
+ feet +
+
+
+
From 715afda391c58141ac5de2be420de0dae8e7af58 Mon Sep 17 00:00:00 2001 From: Linus Thorsell Date: Thu, 1 Dec 2022 19:17:07 +0100 Subject: [PATCH 2/6] presented fields according to the current settings --- js/flightlog_fields_presenter.js | 33 +++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/js/flightlog_fields_presenter.js b/js/flightlog_fields_presenter.js index dcc4cd81..1837f598 100644 --- a/js/flightlog_fields_presenter.js +++ b/js/flightlog_fields_presenter.js @@ -851,6 +851,24 @@ function FlightLogFieldPresenter() { return enumNames[value]; }; + /** + * Function to translate altitudes from the default meters + * to the user selected measurement unit. + * @param altitude String: Altitude in meters. + * @param altitudeUnits Integer: 1 for meters, 2 for feet. + * + * @returns meters in selected unit. + */ + + FlightLogFieldPresenter.decodeCorrectAltitude = function(altitude, altitudeUnits) { + switch (altitudeUnits) { + case 1: // Keep it in meters. + return (altitude).toFixed(2) + " m"; + case 2: // Translate it into feet. + return (altitude * 3.28).toFixed(2) + " ft"; + } + } + /** * Attempt to decode the given raw logged value into something more human readable, or return an empty string if * no better representation is available. @@ -967,7 +985,8 @@ function FlightLogFieldPresenter() { return (value / Math.PI * 180).toFixed(1) + "°"; case 'baroAlt': - return (value / 100).toFixed(1) + " m"; + //return (value / 100).toFixed(1) + " m"; + return FlightLogFieldPresenter.decodeCorrectAltitude((value/100), userSettings.altitudeUnits); case 'flightModeFlags': return FlightLogFieldPresenter.presentFlags(value, FLIGHT_LOG_FLIGHT_MODE_NAME); @@ -991,9 +1010,17 @@ function FlightLogFieldPresenter() { case 'GPS_coord[1]': return `${(value/10000000).toFixed(5)}`; case 'GPS_altitude': - return `${(value/10).toFixed(2)} m`; + //return `${(value/10).toFixed(2)} m`; + return FlightLogFieldPresenter.decodeCorrectAltitude((value/10), userSettings.altitudeUnits); case 'GPS_speed': - return `${(value/100).toFixed(2)} m/s`; + switch (userSettings.speedUnits) { + case 1: + return `${(value/100).toFixed(2)} m/s`; + case 2: + return `${((value/100) * 3.6).toFixed(2)} kph`; + case 3: + return `${((value/100) * 2.2369).toFixed(2)} mph`; + } case 'GPS_ground_course': return `${(value/10).toFixed(1)} °`; From d01deae790990f1a774af508ef723e836e4dde88 Mon Sep 17 00:00:00 2001 From: Linus Thorsell Date: Thu, 1 Dec 2022 19:17:28 +0100 Subject: [PATCH 3/6] added fields to the userSettings variable --- js/user_settings_dialog.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/js/user_settings_dialog.js b/js/user_settings_dialog.js index 9f3aea00..28f978b4 100644 --- a/js/user_settings_dialog.js +++ b/js/user_settings_dialog.js @@ -44,6 +44,8 @@ function UserSettingsDialog(dialog, onLoad, onSave) { stickTrails : false, // Show stick trails? stickInvertYaw : false, // Invert yaw in stick display? legendUnits : true, // Show units on legend? + speedUnits : 1, // Default speed mode = m/s + altitudeUnits : 1, // Default altitude mode = meters gapless : false, drawCraft : "3D", hasCraft : true, @@ -314,6 +316,14 @@ function UserSettingsDialog(dialog, onLoad, onSave) { currentSettings.legendUnits = $(this).is(":checked"); }); + $('input[type=radio][name=speed-mode]').change(function() { + currentSettings.speedUnits = parseInt($(this).val()); + }); + + $('input[type=radio][name=altitude-mode]').change(function() { + currentSettings.altitudeUnits = parseInt($(this).val()); + }); + // Load Custom Logo function readURL(input) { if (input.files && input.files[0]) { @@ -390,7 +400,6 @@ function UserSettingsDialog(dialog, onLoad, onSave) { $(".legend-units").prop('checked', currentSettings.legendUnits); } - mixerListSelection(currentSettings.mixerConfiguration); // select current mixer configuration stickModeSelection(currentSettings.stickMode); @@ -398,6 +407,9 @@ function UserSettingsDialog(dialog, onLoad, onSave) { $('select.mixerList').val(currentSettings.mixerConfiguration); $('input:radio[name="stick-mode"]').filter('[value="' + currentSettings.stickMode + '"]').attr('checked', true); + $('input:radio[name="speed-mode"]').filter('[value="' + currentSettings.speedUnits + '"]').attr('checked', true); + $('input:radio[name="altitude-mode"]').filter('[value="' + currentSettings.altitudeUnits + '"]').attr('checked', true); + $('.stick-mode-group input[name="stick-top"]').val(parseInt(currentSettings.sticks.top)); $('.stick-mode-group input[name="stick-left"]').val(parseInt(currentSettings.sticks.left)); $('.stick-mode-group input[name="stick-size"]').val(parseInt(currentSettings.sticks.size)); From 4d55b04a2850f23cbf9aea8e09f4aef6f047ca80 Mon Sep 17 00:00:00 2001 From: Linus Thorsell Date: Thu, 1 Dec 2022 19:21:07 +0100 Subject: [PATCH 4/6] removed unused code, cleaned up comments --- index.html | 18 ------------------ js/flightlog_fields_presenter.js | 6 ++---- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/index.html b/index.html index fb4e114f..e3f9cc4d 100644 --- a/index.html +++ b/index.html @@ -2830,24 +2830,6 @@
-
Measurement System
diff --git a/js/flightlog_fields_presenter.js b/js/flightlog_fields_presenter.js index 1837f598..eb8b737b 100644 --- a/js/flightlog_fields_presenter.js +++ b/js/flightlog_fields_presenter.js @@ -857,7 +857,7 @@ function FlightLogFieldPresenter() { * @param altitude String: Altitude in meters. * @param altitudeUnits Integer: 1 for meters, 2 for feet. * - * @returns meters in selected unit. + * @returns String: readable meters in selected unit. */ FlightLogFieldPresenter.decodeCorrectAltitude = function(altitude, altitudeUnits) { @@ -985,7 +985,6 @@ function FlightLogFieldPresenter() { return (value / Math.PI * 180).toFixed(1) + "°"; case 'baroAlt': - //return (value / 100).toFixed(1) + " m"; return FlightLogFieldPresenter.decodeCorrectAltitude((value/100), userSettings.altitudeUnits); case 'flightModeFlags': @@ -994,7 +993,7 @@ function FlightLogFieldPresenter() { case 'stateFlags': return FlightLogFieldPresenter.presentFlags(value, FLIGHT_LOG_FLIGHT_STATE_NAME); - case 'failsafePhase': + case 'failsafePhase':fork return FlightLogFieldPresenter.presentEnum(value, FLIGHT_LOG_FAILSAFE_PHASE_NAME); case 'features': @@ -1010,7 +1009,6 @@ function FlightLogFieldPresenter() { case 'GPS_coord[1]': return `${(value/10000000).toFixed(5)}`; case 'GPS_altitude': - //return `${(value/10).toFixed(2)} m`; return FlightLogFieldPresenter.decodeCorrectAltitude((value/10), userSettings.altitudeUnits); case 'GPS_speed': switch (userSettings.speedUnits) { From ab60ec2e6ef21fe1c0520661e60d78bde48f83b5 Mon Sep 17 00:00:00 2001 From: Linus Thorsell Date: Thu, 1 Dec 2022 19:22:29 +0100 Subject: [PATCH 5/6] fixed typo. --- js/flightlog_fields_presenter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/flightlog_fields_presenter.js b/js/flightlog_fields_presenter.js index eb8b737b..609ea2e2 100644 --- a/js/flightlog_fields_presenter.js +++ b/js/flightlog_fields_presenter.js @@ -993,7 +993,7 @@ function FlightLogFieldPresenter() { case 'stateFlags': return FlightLogFieldPresenter.presentFlags(value, FLIGHT_LOG_FLIGHT_STATE_NAME); - case 'failsafePhase':fork + case 'failsafePhase': return FlightLogFieldPresenter.presentEnum(value, FLIGHT_LOG_FAILSAFE_PHASE_NAME); case 'features': From 7418b370b71029969e76d74336f1021b0567ae8d Mon Sep 17 00:00:00 2001 From: Linus Thorsell Date: Thu, 1 Dec 2022 21:08:14 +0100 Subject: [PATCH 6/6] added missing semicolon --- js/flightlog_fields_presenter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/flightlog_fields_presenter.js b/js/flightlog_fields_presenter.js index 609ea2e2..332650a0 100644 --- a/js/flightlog_fields_presenter.js +++ b/js/flightlog_fields_presenter.js @@ -867,7 +867,7 @@ function FlightLogFieldPresenter() { case 2: // Translate it into feet. return (altitude * 3.28).toFixed(2) + " ft"; } - } + }; /** * Attempt to decode the given raw logged value into something more human readable, or return an empty string if