From eedecad2a07f94715d0ccbf60ee5a407ce90524d Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Wed, 29 Dec 2021 03:32:01 +0100 Subject: [PATCH] Moved buzzer settings into newSettings --- main/accessors/settingsaccessors.h | 30 +++++++++++++++++++++++++----- main/newsettings.h | 20 ++++++++++++++++---- main/presets.h | 9 --------- main/settings.h | 13 ------------- main/utils.cpp | 9 +++++---- 5 files changed, 46 insertions(+), 35 deletions(-) diff --git a/main/accessors/settingsaccessors.h b/main/accessors/settingsaccessors.h index 190d53d..b5eb737 100644 --- a/main/accessors/settingsaccessors.h +++ b/main/accessors/settingsaccessors.h @@ -21,11 +21,31 @@ struct AutoConnectBmsAccessor : public RefAccessorSaveSettings { bool &get #endif // Buzzer -struct ReverseBeepAccessor : public RefAccessorSaveSettings { bool &getRef() const override { return settings.buzzer.reverseBeep; } }; -struct ReverseBeepFreq0Accessor : public RefAccessorSaveSettings { uint8_t &getRef() const override { return settings.buzzer.reverseBeepFreq0; } }; -struct ReverseBeepFreq1Accessor : public RefAccessorSaveSettings { uint8_t &getRef() const override { return settings.buzzer.reverseBeepFreq1; } }; -struct ReverseBeepDuration0Accessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.buzzer.reverseBeepDuration0; } }; -struct ReverseBeepDuration1Accessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.buzzer.reverseBeepDuration1; } }; +struct ReverseBeepAccessor : public virtual espgui::AccessorInterface +{ + bool getValue() const override { return configs.reverseBeep.value; } + void setValue(bool value) override { configs.write_config(configs.reverseBeep, value); } +}; +struct ReverseBeepFreq0Accessor : public virtual espgui::AccessorInterface +{ + uint8_t getValue() const override { return configs.reverseBeepFreq0.value; } + void setValue(uint8_t value) override { configs.write_config(configs.reverseBeepFreq0, value); } +}; +struct ReverseBeepFreq1Accessor : public virtual espgui::AccessorInterface +{ + uint8_t getValue() const override { return configs.reverseBeepFreq1.value; } + void setValue(uint8_t value) override { configs.write_config(configs.reverseBeepFreq1, value); } +}; +struct ReverseBeepDuration0Accessor : public virtual espgui::AccessorInterface +{ + int16_t getValue() const override { return configs.reverseBeepDuration0.value; } + void setValue(int16_t value) override { configs.write_config(configs.reverseBeepDuration0, value); } +}; +struct ReverseBeepDuration1Accessor : public virtual espgui::AccessorInterface +{ + int16_t getValue() const override { return configs.reverseBeepDuration1.value; } + void setValue(int16_t value) override { configs.write_config(configs.reverseBeepDuration1, value); } +}; // Limits struct IMotMaxAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.limits.iMotMax; } }; diff --git a/main/newsettings.h b/main/newsettings.h index 08bc1e9..bbca50f 100644 --- a/main/newsettings.h +++ b/main/newsettings.h @@ -78,10 +78,16 @@ public: ConfigWrapper wifiApChannel {1, DoReset, {}, "wifiApChannel" }; ConfigWrapper wifiApAuthmode{WIFI_AUTH_WPA2_PSK, DoReset, {}, "wifiApAuthmode" }; - ConfigWrapper canBusResetOnError {false, DoReset, {}, "canBusRstErr" }; + ConfigWrapper canBusResetOnError {false, DoReset, {}, "canBusRstErr" }; ConfigWrapper bluetoothName {defaultHostname, DoReset, StringMinMaxSize<4, 32>, "bluetoothName" }; + ConfigWrapper reverseBeep {false, DoReset, {}, "reverseBeep" }; + ConfigWrapper reverseBeepFreq0 {3, DoReset, {}, "revBeepFreq0" }; + ConfigWrapper reverseBeepFreq1 {0, DoReset, {}, "revBeepFreq1" }; + ConfigWrapper reverseBeepDuration0{500, DoReset, {}, "revBeepDur0" }; + ConfigWrapper reverseBeepDuration1{500, DoReset, {}, "revBeepDur1" }; + #define NEW_SETTINGS(x) \ x(baseMacAddressOverride) \ x(hostname) \ @@ -198,7 +204,13 @@ public: \ x(canBusResetOnError) \ \ - //x(bluetoothName) + x(bluetoothName) \ + \ + x(reverseBeep) \ + x(reverseBeepFreq0) \ + x(reverseBeepFreq1) \ + x(reverseBeepDuration0) \ + //x(reverseBeepDuration1) template void callForEveryConfig(T &&callback) @@ -206,7 +218,7 @@ public: #define HELPER(x) callback(x); NEW_SETTINGS(HELPER) #undef HELPER - callback(bluetoothName); + callback(reverseBeepDuration1); } auto getAllConfigParams() @@ -215,7 +227,7 @@ public: #define HELPER(x) std::ref(x), NEW_SETTINGS(HELPER) #undef HELPER - std::ref(bluetoothName) + std::ref(reverseBeepDuration1) ); } }; diff --git a/main/presets.h b/main/presets.h index 377aa38..9b1af6e 100644 --- a/main/presets.h +++ b/main/presets.h @@ -26,14 +26,6 @@ constexpr Settings::Limits defaultLimits { .phaseAdvMax = DEFAULT_FIELDADVMAX }; -constexpr Settings::Buzzer defaultBuzzer { - .reverseBeep = false, - .reverseBeepFreq0 = 3, - .reverseBeepFreq1 = 0, - .reverseBeepDuration0 = 500, - .reverseBeepDuration1 = 500, -}; - constexpr Settings::Limits kidsLimits { .iMotMax = 5, .iDcMax = 7, @@ -314,7 +306,6 @@ constexpr Settings defaultSettings { #ifdef FEATURE_BMS .autoConnectBms = false, #endif - .buzzer = defaultBuzzer, .limits = defaultLimits, #ifdef FEATURE_BLUETOOTH .bluetoothSettings = defaultBluetoothSettings, diff --git a/main/settings.h b/main/settings.h index 8a46138..40b759c 100644 --- a/main/settings.h +++ b/main/settings.h @@ -31,13 +31,6 @@ struct Settings #ifdef FEATURE_BMS bool autoConnectBms; #endif - struct Buzzer { - bool reverseBeep; - uint8_t reverseBeepFreq0; - uint8_t reverseBeepFreq1; - int16_t reverseBeepDuration0; - int16_t reverseBeepDuration1; - } buzzer; struct Limits { int16_t iMotMax; // [A] Maximum motor current limit @@ -243,12 +236,6 @@ void Settings::executeForEveryCommonSetting(T &&callable) callable("autoConnectBms", autoConnectBms); #endif - callable("reverseBeep", buzzer.reverseBeep); - callable("revBeepFreq0", buzzer.reverseBeepFreq0); - callable("revBeepFreq1", buzzer.reverseBeepFreq1); - callable("revBeepDur0", buzzer.reverseBeepDuration0); - callable("revBeepDur1", buzzer.reverseBeepDuration1); - #ifdef FEATURE_BLUETOOTH callable("autoBluetoothMo", bluetoothSettings.autoBluetoothMode); #endif diff --git a/main/utils.cpp b/main/utils.cpp index cfa0147..3fe823b 100644 --- a/main/utils.cpp +++ b/main/utils.cpp @@ -2,6 +2,7 @@ // local includes #include "globals.h" +#include "newsettings.h" using namespace std::chrono_literals; @@ -108,7 +109,7 @@ void fixCommonParams() motor.phaseAdvMax = settings.limits.phaseAdvMax; } - if (settings.buzzer.reverseBeep) + if (configs.reverseBeep.value) { const auto x = motors(); const auto shouldBeep = std::all_of(std::begin(x), std::end(x), [](const bobbycar::protocol::serial::MotorState &motor){ return motor.pwm < 0; }); @@ -120,7 +121,7 @@ void fixCommonParams() reverseBeepToggle = true; lastReverseBeepToggle = espchrono::millis_clock::now(); for (auto &controller : controllers) - controller.command.buzzer = {.freq=settings.buzzer.reverseBeepFreq0, .pattern=0}; + controller.command.buzzer = {.freq=configs.reverseBeepFreq0.value, .pattern=0}; } else for (auto &controller : controllers) @@ -128,12 +129,12 @@ void fixCommonParams() currentlyReverseBeeping = shouldBeep; } - else if (shouldBeep && espchrono::millis_clock::now() - lastReverseBeepToggle >= std::chrono::milliseconds{reverseBeepToggle?settings.buzzer.reverseBeepDuration0:settings.buzzer.reverseBeepDuration1}) + else if (shouldBeep && espchrono::millis_clock::now() - lastReverseBeepToggle >= std::chrono::milliseconds{reverseBeepToggle?configs.reverseBeepDuration0.value:configs.reverseBeepDuration1.value}) { reverseBeepToggle = !reverseBeepToggle; for (auto &controller : controllers) - controller.command.buzzer = {.freq=uint8_t(reverseBeepToggle?settings.buzzer.reverseBeepFreq0:settings.buzzer.reverseBeepFreq1), .pattern=0}; + controller.command.buzzer = {.freq=uint8_t(reverseBeepToggle?configs.reverseBeepFreq0.value:configs.reverseBeepFreq1.value), .pattern=0}; lastReverseBeepToggle = espchrono::millis_clock::now(); }