Added new task for testing

This commit is contained in:
dario 2023-11-21 19:47:41 +01:00 committed by carlwachter
parent 5217945c03
commit a70dc00f4c
9 changed files with 84 additions and 8 deletions

View File

@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1579521012471682620" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-409744681908698058" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
@ -16,7 +16,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1579521012471682620" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-409744681908698058" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>

View File

@ -33,7 +33,7 @@
#define STA_TACOS_STATEMACHINE_PRIORITY osPriorityNormal
// Statemachine settings. Here, we only have a single state which is also the initial state.
#define STA_TACOS_NUM_STATES 2
#define STA_TACOS_NUM_STATES 3
#define STA_TACOS_INITIAL_STATE 0
#endif /* INC_STA_CONFIG_HPP_ */

26
App/Inc/tasks/disturb.hpp Normal file
View File

@ -0,0 +1,26 @@
/*
* disturb.hpp
*
* Created on: Nov 20, 2023
* Author: Dario
*/
#ifndef INC_TASKS_DISTURB_HPP_
#define INC_TASKS_DISTURB_HPP_
#include <sta/tacos/thread.hpp>
namespace demo
{
class DisturbTask : public sta::tacos::TacosThread {
public:
DisturbTask();
void init() override;
void func() override;
};
} // namespace demo
#endif /* INC_TASKS_DISTURB_HPP_ */

View File

@ -15,7 +15,6 @@ namespace demo
class DummyTask : public sta::tacos::TacosThread {
public:
DummyTask(const char* name);
~DummyTask() override;
void init() override;

View File

@ -13,6 +13,7 @@
#include <sta/tacos/statemachine.hpp>
#include <tasks/dummy.hpp>
#include <tasks/toggle.hpp>
#include <tasks/disturb.hpp>
#include <gpio.h>
#include <sta/devices/stm32/gpio_pin.hpp>
@ -35,7 +36,9 @@ namespace sta
// The dummy task runs for state 0.
Manager::instance()->registerThread(std::make_shared<demo::DummyTask>("State 0"), {0});
Manager::instance()->registerThread(std::make_shared<demo::DummyTask>("State 1"), {1});
Manager::instance()->registerThread(std::make_shared<demo::DummyTask>("State 2 - FAIL"), {2});
Manager::instance()->registerThread(std::make_shared<demo::Toggle>(), {0, 1});
Manager::instance()->registerThread(std::make_shared<demo::DisturbTask>(), {0, 1});
}
} // namespace tacos
} // namespace sta

35
App/Src/tasks/disturb.cpp Normal file
View File

@ -0,0 +1,35 @@
/*
* disturb.cpp
*
* Created on: Nov 20, 2023
* Author: Dario
*/
#include <tasks/disturb.hpp>
#include <sta/tacos/statemachine.hpp>
#include <sta/debug/debug.hpp>
namespace demo
{
DisturbTask::DisturbTask()
: sta::tacos::TacosThread("Disturb", osPriorityNormal)
{
}
void DisturbTask::init()
{
}
void DisturbTask::func()
{
STA_DEBUG_PRINTLN(this->getName());
sta::tacos::Statemachine::instance()->stateChangeEvent.wait(sta::tacos::EventFlags::ALL, osWaitForever);
uint16_t currentState = sta::tacos::Statemachine::instance()->getCurrentState();
sta::tacos::Statemachine::instance()->requestTimedStateTransition(currentState, 2, 4000, 0);
}
} // namespace demo

View File

@ -19,8 +19,6 @@ namespace demo
}
DummyTask::~DummyTask(){}
void DummyTask::init()
{

View File

@ -26,8 +26,23 @@ namespace demo
{
osDelay(5000);
// Have we been requested to terminate while waiting?
if (!isRunning())
return;
// Do some important stuff...
uint16_t state = sta::tacos::Statemachine::instance()->getCurrentState();
uint16_t next = 1 - state;
uint16_t next;
if (state != 2)
{
next = 1 - state;
}
else
{
next = 0;
}
STA_DEBUG_PRINTLN("Toggle!");
sta::tacos::Statemachine::instance()->requestStateTransition(state, next, 0);

@ -1 +1 @@
Subproject commit 71170d4cea428fffb05fc2666201d390ff411fc4
Subproject commit 4da1f0bb7dd48f89e9dd5ee0ec181638894e55e2