diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 9706a62..660176b 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -327,6 +327,7 @@ set(sources esptexthelpers.cpp feedbackparser.cpp globals.cpp + handbremse.cpp icons/alert.cpp icons/battery.cpp icons/bluetooth.cpp diff --git a/main/displays/statusdisplay.cpp b/main/displays/statusdisplay.cpp index e3eb0cb..3fc02f9 100644 --- a/main/displays/statusdisplay.cpp +++ b/main/displays/statusdisplay.cpp @@ -70,7 +70,7 @@ void StatusDisplay::initScreen() void StatusDisplay::redraw() { Base::redraw(); - if (modes::defaultMode.overrideHandbremse) + if (modes::defaultMode.overrideHandbremse || handbremse::handbremseAngezogen) tft.fillRect(0, 0, tft.width(), 2, TFT_RED); else tft.fillRect(0, 0, tft.width(), 2, TFT_BLACK); diff --git a/main/handbremse.cpp b/main/handbremse.cpp new file mode 100644 index 0000000..4ff7ff1 --- /dev/null +++ b/main/handbremse.cpp @@ -0,0 +1,4 @@ +#include "handbremse.h" +namespace handbremse { +bool handbremseAngezogen{false}; +} // namespace diff --git a/main/handbremse.h b/main/handbremse.h index 2e0789e..3c4d3e0 100644 --- a/main/handbremse.h +++ b/main/handbremse.h @@ -11,3 +11,7 @@ x(OPENMODE) \ x(SPEED_0) DECLARE_TYPESAFE_ENUM(HandbremseMode, : uint8_t, HandbremseModeValues) + +namespace handbremse { +extern bool handbremseAngezogen; +} // namespace diff --git a/main/modes/defaultmode.cpp b/main/modes/defaultmode.cpp index 322800f..e4df9c9 100644 --- a/main/modes/defaultmode.cpp +++ b/main/modes/defaultmode.cpp @@ -69,6 +69,7 @@ void DefaultMode::update() } else if ((abs(avgSpeedKmh) <= 2) && (overrideHandbremse || espchrono::ago(*m_stillSince) >= espchrono::milliseconds32(settings.handbremse.triggerTimeout))) { + handbremse::handbremseAngezogen = true; fixCommonParams(); for (bobbycar::protocol::serial::MotorState &motor : motors()) @@ -95,6 +96,7 @@ void DefaultMode::update() else { hell: + handbremse::handbremseAngezogen = false; float pwm; if (gas_processed >= settings.defaultMode.add_schwelle) {