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
|