Added a simple API for TACOS

This commit is contained in:
dario
2024-01-02 01:03:01 +01:00
parent 08ed271f13
commit 9c167e2074
2 changed files with 99 additions and 0 deletions

39
src/tacos.cpp Normal file
View File

@@ -0,0 +1,39 @@
/*
* tacos.cpp
*
* Created on: Jan 2, 2024
* Author: Dario
*/
#include <sta/tacos.hpp>
namespace sta
{
namespace tacos
{
uint16_t getState()
{
return Statemachine::instance()->getCurrentState();
}
void setState(uint32_t from, uint32_t to, uint32_t lockout /* = 0 */)
{
Statemachine::instance()->requestStateTransition(from, to, lockout);
}
void setStateTimed(uint32_t from, uint32_t to, uint32_t millis, uint32_t lockout /* = 0 */)
{
Statemachine::instance()->requestTimedStateTransition(from, to, millis, lockout);
}
template<typename T>
void addThread(std::list<uint16_t> states, std::initializer_list<T> args)
{
Manager::instance()->registerThread(std::make_shared<T>(args), states);
}
} // namespace tacos
} // namespace sta