Added first implementation

This commit is contained in:
dario
2024-01-07 00:41:32 +01:00
parent b41426feaf
commit 5681411c65
13 changed files with 418 additions and 0 deletions

29
include/sta/config.hpp Normal file
View File

@@ -0,0 +1,29 @@
/*
* config.hpp
*
* Created on: Dec 31, 2023
* Author: Dario
*/
#ifndef STA_CONFIG_HPP
#define STA_CONFIG_HPP
#include <sta/devices/stm32/mcu/STM32F411xE.hpp>
// Doesn't really do too much right now. Has to be added for successful compilation.
#define STA_PRINTF_USE_STDLIB
// Enable debug serial output and assertions.
#define STA_ASSERT_FORCE
#define STA_DEBUGGING_ENABLED
// Settings for the rtos-utils
#define STA_RTOS_SYSTEM_EVENTS_ENABLE
// Use the default configs for TACOS
#include <sta/tacos/configs/default.hpp>
#define STA_TACOS_WATCHDOG_FREQUENCY 1000
#define STA_TACOS_NUM_STATES 3
#endif // STA_CONFIG_HPP

View File

@@ -0,0 +1,6 @@
#ifndef STA_TASTY_CONFIG_HPP
#define STA_TASTY_CONFIG_HPP
#define TASTY_CASE_1
#endif // STA_TASTY_CONFIG_HPP

View File

@@ -0,0 +1,26 @@
/*
* Dummy.hpp
*
* Created on: Dec 31, 2023
* Author: Dario
*/
#ifndef INCLUDE_TASKS_DUMMY_HPP_
#define INCLUDE_TASKS_DUMMY_HPP_
#include <sta/tacos/thread.hpp>
namespace demo
{
class DummyThread : public sta::tacos::TacosThread
{
public:
DummyThread(const char* name);
void init() override;
void func() override;
};
}
#endif /* INCLUDE_TASKS_DUMMY_HPP_ */

View File

@@ -0,0 +1,37 @@
/*
* supervisor.hpp
*
* Created on: Jan 6, 2024
* Author: Dario
*/
#ifndef STA_TASTY_TASKS_SUPERVISOR_HPP
#define STA_TASTY_TASKS_SUPERVISOR_HPP
#include <sta/tacos/thread.hpp>
#include <list>
#include <functional>
namespace sta
{
namespace tasty
{
typedef std::function<void(void)> TastyCheck;
class Supervisor : public tacos::TacosThread
{
public:
Supervisor(std::list<TastyCheck> checks);
void func() override;
private:
std::list<TastyCheck> checks_;
};
} // namespace tasty
} // namespace sta
#endif // STA_TASTY_TASKS_SUPERVISOR_HPP

View File

@@ -0,0 +1,32 @@
/*
* toggle.hpp
*
* Created on: Jan 1, 2024
* Author: Dario
*/
#ifndef INCLUDE_TASKS_TOGGLE_HPP_
#define INCLUDE_TASKS_TOGGLE_HPP_
#include <sta/tacos/thread.hpp>
namespace sta
{
namespace tasty
{
class ToggleThread : public sta::tacos::TacosThread
{
public:
ToggleThread(uint32_t ticks, uint32_t lockout = 0, const char* name = "toggle");
void init() override;
void func() override;
private:
uint32_t ticks_;
uint32_t lockout_;
};
} // namespace tasty
} // namespace sta
#endif /* INCLUDE_TASKS_TOGGLE_HPP_ */

View File

@@ -0,0 +1,34 @@
#ifndef STA_TASTY_UTILS_HPP
#define STA_TASTY_UTILS_HPP
#include <sta/config.hpp>
#ifdef STA_DEBUGGING_ENABLED
#include <cstdint>
namespace sta
{
namespace tasty
{
/**
* @brief Print a test result via serial.
*
* @param file The file the test case was in.
* @param line The line of the test case.
* @param rslt The result of the test case.
*/
void test_case(const char * file, uint32_t line, bool rslt);
} // namespace tasty
} // namespace sta
/**
* @brief Assert statement for automatic testing using tasty. Sends the test result to the host via serial.
*
*/
#define STA_TASTY_ASSERT(expr) ( (void)( sta::tasty::test_case(__FILE__, __LINE__, expr) ) )
#endif // STA_DEBUGGING_ENABLED
#endif // STA_TASTY_UTILS_HPP