mirror of
https://github.com/ETLCPP/etl.git
synced 2026-04-30 19:09:10 +08:00
Created queued FSM example
This commit is contained in:
parent
8e76afbcb1
commit
a8fb7eecfb
@ -99,7 +99,7 @@ public:
|
||||
//***************************************************************************
|
||||
// The overridden virtual receive function.
|
||||
//***************************************************************************
|
||||
void receive(etl::imessage_router& sender_, const etl::imessage& msg_)
|
||||
void receive(etl::imessage_router& sender_, const etl::imessage& msg_) override
|
||||
{
|
||||
if (accepts(msg_))
|
||||
{
|
||||
@ -148,9 +148,10 @@ private:
|
||||
}
|
||||
|
||||
etl::imessage_router* sender;
|
||||
etl::message_packet< Message1, Message2, Message3> packet; // Defines a packet suitable for all handled messages.
|
||||
etl::message_packet< Message1, Message2, Message3, Message4> packet; // Defines a packet suitable for all possible messages.
|
||||
};
|
||||
|
||||
// The queue of message items.
|
||||
etl::queue<Item, 10> queue;
|
||||
};
|
||||
|
||||
@ -162,16 +163,18 @@ class State1 : public etl::fsm_state<Fsm, State1, STATE1, Message1, Message2, Me
|
||||
public:
|
||||
|
||||
//***************************************************************************
|
||||
etl::fsm_state_id_t on_enter_state()
|
||||
// When we enter this state.
|
||||
//***************************************************************************
|
||||
etl::fsm_state_id_t on_enter_state() override
|
||||
{
|
||||
std::cout << " S1 : Enter" << std::endl;
|
||||
std::cout << " S1 : Enter state" << std::endl;
|
||||
return STATE1;
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
void on_exit_state()
|
||||
void on_exit_state() override
|
||||
{
|
||||
std::cout << " S1 : Exit" << std::endl;
|
||||
std::cout << " S1 : Exit state" << std::endl;
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
@ -215,16 +218,18 @@ class State2 : public etl::fsm_state<Fsm, State2, STATE2, Message1, Message2, Me
|
||||
public:
|
||||
|
||||
//***************************************************************************
|
||||
etl::fsm_state_id_t on_enter_state()
|
||||
etl::fsm_state_id_t on_enter_state() override
|
||||
{
|
||||
std::cout << " S2 : Enter" << std::endl;
|
||||
std::cout << " S2 : Enter state" << std::endl;
|
||||
return STATE2;
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
void on_exit_state()
|
||||
// When we enter this state.
|
||||
//***************************************************************************
|
||||
void on_exit_state() override
|
||||
{
|
||||
std::cout << " S2 : Exit" << std::endl;
|
||||
std::cout << " S2 : Exit state" << std::endl;
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
|
||||
@ -7,7 +7,7 @@ Embedded Template Library.
|
||||
https://github.com/ETLCPP/etl
|
||||
https://www.etlcpp.com
|
||||
|
||||
Copyright(c) 2017 jwellbelove
|
||||
Copyright(c) 2020 jwellbelove
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files(the "Software"), to deal
|
||||
@ -33,15 +33,11 @@ SOFTWARE.
|
||||
|
||||
#define ETL_THROW_EXCEPTIONS
|
||||
#define ETL_VERBOSE_ERRORS
|
||||
#define ETL_CHECK_PUSH_POP
|
||||
#define ETL_ISTRING_REPAIR_ENABLE
|
||||
#define ETL_IVECTOR_REPAIR_ENABLE
|
||||
#define ETL_IDEQUE_REPAIR_ENABLE
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#if defined(_MSC_VER)
|
||||
#include "etl/profiles/msvc_x86.h"
|
||||
#else
|
||||
#include "etl/profiles/gcc_windows_x86.h"
|
||||
#elif defined(__GNUC__)
|
||||
#include "etl/profiles/gcc_generic.h"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@ -152,7 +152,7 @@
|
||||
<ClCompile Include="..\QueuedFSM.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="etl_profile.h" />
|
||||
<ClInclude Include="..\etl_profile.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="etl_profile.h">
|
||||
<ClInclude Include="..\etl_profile.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user