Files
bobbycar-boardcomputer-firm…/main/setup.cpp
T
2022-12-25 19:03:21 +01:00

50 lines
863 B
C++

#include "setup.h"
// local includes
#include "globals.h"
namespace setup {
bool currently_locked;
ModeInterface* oldMode;
IgnoreInputMode setup_mode{0, bobbycar::protocol::ControlType::FieldOrientedControl, bobbycar::protocol::ControlMode::Torque};
void lock()
{
if (currently_locked)
{
ESP_LOGI("setup", "already locked");
return;
}
oldMode = currentMode;
currentMode = &setup_mode;
currently_locked = true;
}
void unlock()
{
if (!currently_locked)
{
ESP_LOGI("setup", "already unlocked");
return;
}
if (currentMode == &setup_mode)
{
// to avoid crash after deconstruction
setup_mode.stop();
lastMode = nullptr;
currentMode = oldMode;
}
currently_locked = false;
}
bool isLocked()
{
return currently_locked;
}
} // namespace setup