Files
bobbycar-boardcomputer-firm…/main/setup.cpp
T

49 lines
863 B
C++
Raw Normal View History

2022-10-13 22:00:16 +02:00
#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)
2022-12-25 19:03:21 +01:00
{
ESP_LOGI("setup", "already locked");
2022-10-13 22:00:16 +02:00
return;
2022-12-25 19:03:21 +01:00
}
2022-10-13 22:00:16 +02:00
oldMode = currentMode;
currentMode = &setup_mode;
2022-12-25 19:03:21 +01:00
currently_locked = true;
2022-10-13 22:00:16 +02:00
}
void unlock()
{
if (!currently_locked)
2022-12-25 19:03:21 +01:00
{
ESP_LOGI("setup", "already unlocked");
2022-10-13 22:00:16 +02:00
return;
2022-12-25 19:03:21 +01:00
}
2022-10-13 22:00:16 +02:00
if (currentMode == &setup_mode)
{
// to avoid crash after deconstruction
setup_mode.stop();
lastMode = nullptr;
currentMode = oldMode;
}
2022-12-25 19:03:21 +01:00
currently_locked = false;
2022-10-13 22:00:16 +02:00
}
bool isLocked()
{
return currently_locked;
}
} // namespace setup