SMACC2
Namespaces | Classes | Typedefs | Enumerations | Functions
smacc2 Namespace Reference

Namespaces

namespace  client_bases
 
namespace  client_behaviors
 
namespace  components
 
namespace  default_events
 
namespace  default_transition_tags
 
namespace  event_generators
 
namespace  introspection
 
namespace  state_reactors
 
namespace  utils
 

Classes

struct  AddTEventTypeStateReactor
 
struct  AddTEventTypeStateReactorInfo
 
struct  Block
 
class  ClientHandler
 
struct  ComponentKey
 
class  ControllableLed
 
struct  EvCbFailure
 
struct  EvCbFinished
 
struct  EvCbSuccess
 
class  FlashLightPlugin
 
class  FlashLightPluginPrivate
 
class  FlashLightSetting
 Internal data class to hold individual flash light settings. A setting for each flash light is separately stored in a FlashLightSetting class, which takes care of dynamic specifications such as duration and interval. More...
 
class  FlashLightSettingPrivate
 
class  HasSpecificNamedOnExit
 
class  HasStandardOnExit
 
class  ISmaccClient
 
class  ISmaccClientBehavior
 
class  ISmaccComponent
 
class  ISmaccOrthogonal
 
class  ISmaccState
 
class  ISmaccStateMachine
 
class  ISmaccUpdatable
 
class  LedPlugin
 A plugin that blinks light and visual elements in a model. In addition to the features of the base plugin, FlashLightPlugin, this plugin accesses a <visual> element to make it blink. More...
 
class  LedPluginPrivate
 
class  LedSetting
 Internal data class to hold individual LED light settings. More...
 
class  LedSettingPrivate
 
class  Orthogonal
 
class  SignalDetector
 
class  SmaccAsyncClientBehavior
 
class  SmaccClientBehavior
 
class  SmaccEventGenerator
 
class  SmaccSignal
 
class  SmaccState
 
struct  SmaccStateMachineBase
 State Machine. More...
 
class  StateReactor
 
class  Transition
 

Typedefs

template<class T >
using deep_history = sc::deep_history< T >
 

Enumerations

enum class  SMRunMode { DEBUG , RELEASE }
 
enum class  EventLifeTime { ABSOLUTE , CURRENT_STATE }
 
enum class  StateMachineInternalAction {
  STATE_CONFIGURING , STATE_ENTERING , STATE_STEADY , STATE_EXITING ,
  TRANSITIONING
}
 

Functions

template<typename StateMachineType >
void run ()
 
template<typename TState , typename TTransitionTagName >
void specificNamedOnExit (TState &st, TTransitionTagName tn, std::true_type)
 
template<typename TState , typename TTransitionTagName >
void specificNamedOnExit (TState &, TTransitionTagName, std::false_type)
 
template<typename TState , typename TTransitionTagName >
void specificNamedOnExit (TState &m, TTransitionTagName tn)
 
template<typename TState >
void standardOnExit (TState &st, std::true_type)
 
template<typename TState >
void standardOnExit (TState &, std::false_type)
 
template<typename TState >
void standardOnExit (TState &m)
 

Typedef Documentation

◆ deep_history

template<class T >
using smacc2::deep_history = typedef sc::deep_history<T>

Definition at line 53 of file common.hpp.

Enumeration Type Documentation

◆ EventLifeTime

enum class smacc2::EventLifeTime
strong
Enumerator
ABSOLUTE 
CURRENT_STATE 

Definition at line 45 of file smacc_state_machine.hpp.

46{
48 CURRENT_STATE /*events are discarded if we are leaving the state it were created. I is used for client behaviors whose lifetime is associated to state*/
49};

◆ SMRunMode

enum class smacc2::SMRunMode
strong
Enumerator
DEBUG 
RELEASE 

Definition at line 67 of file common.hpp.

◆ StateMachineInternalAction

Enumerator
STATE_CONFIGURING 
STATE_ENTERING 
STATE_STEADY 
STATE_EXITING 
TRANSITIONING 

Definition at line 51 of file smacc_state_machine.hpp.

Function Documentation

◆ run()

template<typename StateMachineType >
void smacc2::run ( )

Definition at line 96 of file smacc_signal_detector.hpp.

97{
98 // create the asynchronous state machine scheduler
99 SmaccFifoScheduler scheduler1(true);
100
101 // create the signalDetector component
102 SignalDetector signalDetector(&scheduler1);
103
104 // create the asynchronous state machine processor
105 SmaccFifoScheduler::processor_handle sm =
106 scheduler1.create_processor<StateMachineType>(&signalDetector);
107
108 // initialize the asynchronous state machine processor
109 signalDetector.setProcessorHandle(sm);
110
111 scheduler1.initiate_processor(sm);
112
113 //create a thread for the asynchronous state machine processor execution
114 boost::thread otherThread(boost::bind(&sc::fifo_scheduler<>::operator(), &scheduler1, 0));
115
116 // use the main thread for the signal detector component (waiting actionclient requests)
117 signalDetector.pollingLoop();
118}
boost::statechart::fifo_scheduler< SmaccFifoWorker, SmaccAllocator > SmaccFifoScheduler

References smacc2::SignalDetector::pollingLoop(), and smacc2::SignalDetector::setProcessorHandle().

Here is the call graph for this function:

◆ specificNamedOnExit() [1/3]

template<typename TState , typename TTransitionTagName >
void smacc2::specificNamedOnExit ( TState &  ,
TTransitionTagName  ,
std::false_type   
)

Definition at line 50 of file state_traits.hpp.

51{
52}

◆ specificNamedOnExit() [2/3]

template<typename TState , typename TTransitionTagName >
void smacc2::specificNamedOnExit ( TState &  m,
TTransitionTagName  tn 
)

Definition at line 55 of file state_traits.hpp.

56{
58 m, tn,
59 std::integral_constant<bool, HasSpecificNamedOnExit<TState, TTransitionTagName>::value>());
60}
void specificNamedOnExit(TState &m, TTransitionTagName tn)

References specificNamedOnExit().

Here is the call graph for this function:

◆ specificNamedOnExit() [3/3]

template<typename TState , typename TTransitionTagName >
void smacc2::specificNamedOnExit ( TState &  st,
TTransitionTagName  tn,
std::true_type   
)

◆ standardOnExit() [1/3]

template<typename TState >
void smacc2::standardOnExit ( TState &  ,
std::false_type   
)

Definition at line 89 of file state_traits.hpp.

90{
91}

◆ standardOnExit() [2/3]

template<typename TState >
void smacc2::standardOnExit ( TState &  m)

Definition at line 94 of file state_traits.hpp.

95{
96 standardOnExit(m, std::integral_constant<bool, HasStandardOnExit<TState>::value>());
97}
void standardOnExit(TState &m)

References standardOnExit().

Here is the call graph for this function:

◆ standardOnExit() [3/3]

template<typename TState >
void smacc2::standardOnExit ( TState &  st,
std::true_type   
)

Definition at line 83 of file state_traits.hpp.

84{
85 st.onExit();
86}

Referenced by smacc2::SmaccState< MostDerived, Context, InnerInitial, historyMode >::exit(), and standardOnExit().

Here is the caller graph for this function: