40 lines
686 B
C++
40 lines
686 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)
|
|
return;
|
|
|
|
oldMode = currentMode;
|
|
currentMode = &setup_mode;
|
|
}
|
|
|
|
void unlock()
|
|
{
|
|
if (!currently_locked)
|
|
return;
|
|
|
|
if (currentMode == &setup_mode)
|
|
{
|
|
// to avoid crash after deconstruction
|
|
setup_mode.stop();
|
|
lastMode = nullptr;
|
|
|
|
currentMode = oldMode;
|
|
}
|
|
}
|
|
|
|
bool isLocked()
|
|
{
|
|
return currently_locked;
|
|
}
|
|
} // namespace setup
|