Merge pull request #192 from bobbycar-graz/buzzer-newsettings
Moved buzzer settings into newSettings
This commit is contained in:
@ -21,11 +21,31 @@ struct AutoConnectBmsAccessor : public RefAccessorSaveSettings<bool> { bool &get
|
||||
#endif
|
||||
|
||||
// Buzzer
|
||||
struct ReverseBeepAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.buzzer.reverseBeep; } };
|
||||
struct ReverseBeepFreq0Accessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.buzzer.reverseBeepFreq0; } };
|
||||
struct ReverseBeepFreq1Accessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.buzzer.reverseBeepFreq1; } };
|
||||
struct ReverseBeepDuration0Accessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.buzzer.reverseBeepDuration0; } };
|
||||
struct ReverseBeepDuration1Accessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.buzzer.reverseBeepDuration1; } };
|
||||
struct ReverseBeepAccessor : public virtual espgui::AccessorInterface<bool>
|
||||
{
|
||||
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>
|
||||
{
|
||||
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>
|
||||
{
|
||||
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>
|
||||
{
|
||||
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>
|
||||
{
|
||||
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> { int16_t &getRef() const override { return settings.limits.iMotMax; } };
|
||||
|
@ -78,10 +78,16 @@ public:
|
||||
ConfigWrapper<uint8_t> wifiApChannel {1, DoReset, {}, "wifiApChannel" };
|
||||
ConfigWrapper<wifi_auth_mode_t> wifiApAuthmode{WIFI_AUTH_WPA2_PSK, DoReset, {}, "wifiApAuthmode" };
|
||||
|
||||
ConfigWrapper<bool> canBusResetOnError {false, DoReset, {}, "canBusRstErr" };
|
||||
ConfigWrapper<bool> canBusResetOnError {false, DoReset, {}, "canBusRstErr" };
|
||||
|
||||
ConfigWrapper<std::string> bluetoothName {defaultHostname, DoReset, StringMinMaxSize<4, 32>, "bluetoothName" };
|
||||
|
||||
ConfigWrapper<bool> reverseBeep {false, DoReset, {}, "reverseBeep" };
|
||||
ConfigWrapper<uint8_t> reverseBeepFreq0 {3, DoReset, {}, "revBeepFreq0" };
|
||||
ConfigWrapper<uint8_t> reverseBeepFreq1 {0, DoReset, {}, "revBeepFreq1" };
|
||||
ConfigWrapper<int16_t> reverseBeepDuration0{500, DoReset, {}, "revBeepDur0" };
|
||||
ConfigWrapper<int16_t> 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<typename T>
|
||||
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<ConfigWrapperInterface>(x),
|
||||
NEW_SETTINGS(HELPER)
|
||||
#undef HELPER
|
||||
std::ref<ConfigWrapperInterface>(bluetoothName)
|
||||
std::ref<ConfigWrapperInterface>(reverseBeepDuration1)
|
||||
);
|
||||
}
|
||||
};
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
@ -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();
|
||||
}
|
||||
|
Reference in New Issue
Block a user