Mercurial > public > ostc4
diff Discovery/Src/settings.c @ 765:da8126d5ea9f
After a firmware update, use the factory settings for button sensitivity if these exist, the default settings otherwise.
The factory settings for the buttons can be updated in the System menu / Reset menu / Maintenance / 'Store button factory defaults'.
author | heinrichsweikamp |
---|---|
date | Wed, 12 Apr 2023 09:24:44 +0200 |
parents | 32529dfea3b0 |
children | dfdfea8897f3 |
line wrap: on
line diff
--- a/Discovery/Src/settings.c Mon Mar 27 10:04:53 2023 +0200 +++ b/Discovery/Src/settings.c Wed Apr 12 09:24:44 2023 +0200 @@ -27,6 +27,8 @@ ////////////////////////////////////////////////////////////////////////////// #include <string.h> +#include <stdbool.h> + #include "settings.h" #include "firmwareEraseProgram.h" // for HARDWAREDATA_ADDRESS #include "externLogbookFlash.h" // for SAMPLESTART and SAMPLESTOP @@ -559,9 +561,29 @@ } -void set_settings_button_to_standard_with_individual_buttonBalance(void) +void set_settings_button_to_factory_with_individual_buttonBalance(void) { - settingsHelperButtonSens_keepPercentageValues(SettingsStandard.ButtonResponsiveness[3], settingsGetPointer()->ButtonResponsiveness); + bool factoryBalanceSettingsValid = true; + unsigned i = 0; + while (factoryBalanceSettingsValid && i < 3) { + if (Settings.FactoryButtonBalance[i] < 2 || Settings.FactoryButtonBalance[i] > 5) { + factoryBalanceSettingsValid = false; + } + + i++; + } + if (factoryBalanceSettingsValid) { + for (i = 0; i < 3; i++) { + Settings.buttonBalance[i] = Settings.FactoryButtonBalance[i]; + } + } + + uint8_t buttonResponsiveness = Settings.FactoryButtonBase; + if (buttonResponsiveness < 70 || buttonResponsiveness > 110) { + buttonResponsiveness = SettingsStandard.ButtonResponsiveness[3]; + } + + settingsHelperButtonSens_keepPercentageValues(buttonResponsiveness, settingsGetPointer()->ButtonResponsiveness); }