|
|
Class that offers the main functionality needed to create a statechart. More...
#include <ArmarXCore/statechart/State.h>
Inheritance diagram for State:Classes | |
| struct | Impl |
Public Member Functions | |
| virtual RemoteStatePtr | addDynamicRemoteState (std::string instanceName) |
| Function to add a new dynamic remote substate to this state. | |
| virtual RemoteStatePtr | addRemoteState (std::string stateName, std::string proxyName, std::string instanceName="") |
| Function to add a new remote substate to this state. | |
| StateBasePtr | addState (StateBasePtr pNewState) |
| template<> | |
| StatePtr | addState (std::string const &stateName) |
| template<> | |
| StatePtr | addState (std::string const &stateName) |
| template<class derivedState> | |
| IceInternal::Handle< derivedState > | addState (std::string const &stateName="") |
| Function to add a new substate to this state. Should be called in the defineState()-function. | |
| bool | addToInput (const std::string &key, const ContainerType &type, bool optional, VariantContainerBasePtr defaultValue=VariantContainerBasePtr()) |
| Adds a key,type-pair to the input parameters. | |
| bool | addToInput (const std::string &key, VariantTypeId type, bool optional, VariantPtr defaultValue=VariantPtr()) |
| Adds a new parameter list to the input parameters with a specific type. | |
| bool | addToLocal (const std::string &key, const ContainerType &type, VariantContainerBasePtr defaultValue=VariantContainerBasePtr()) |
| Adds a new parameter list to the local parameters with a specific type. | |
| bool | addToLocal (const std::string &key, VariantTypeId type, VariantPtr defaultValue=VariantPtr()) |
| Adds a key,type-pair to the local parameters. | |
| bool | addToOutput (const std::string &key, const ContainerType &type, bool optional) |
| Adds a new parameter list to the output parameters with a specific type. | |
| bool | addToOutput (const std::string &key, VariantTypeId type, bool optional) |
| Adds a key,type-pair to the output parameters. | |
| TransitionIceBase & | addTransition (EventPtr event, StateIceBasePtr sourceState, StateIceBasePtr destinationState, ParameterMappingIceBasePtr mappingToNextStatesInput=nullptr, ParameterMappingIceBasePtr mappingToParentStatesLocal=nullptr, ParameterMappingIceBasePtr mappingToParentStatesOutput=nullptr) |
| template<class EventType> | |
| TransitionIceBase & | addTransition (StateIceBasePtr sourceState, StateIceBasePtr destinationState, ParameterMappingIceBasePtr mappingToNextStatesInput=nullptr, ParameterMappingIceBasePtr mappingToParentStatesLocal=nullptr, ParameterMappingIceBasePtr mappingToParentStatesOutput=nullptr) |
| Function to add a new transition between to substates to this state. | |
| template<class EventType> | |
| TransitionIceBase & | addTransitionFromAllStates (StateIceBasePtr destinationState, ParameterMappingIceBasePtr mappingToNextStatesInput=nullptr, ParameterMappingIceBasePtr mappingToParentStatesLocal=nullptr, ParameterMappingIceBasePtr mappingToParentStatesOutput=nullptr) |
Function to add a new transition from all substates to destinationState. | |
| void | cancelSubstates () |
| Use this function in the onEnter() function, if you want to avoid that the substates (i.e. | |
| StateBasePtr | clone () const override |
| Generates a new copy of this state with the same statename, substates, transitions, overidden functions etc. | |
| StateBasePtr | createEmptyCopy () const override |
| Generates a new copy of this state with the same overidden functions. stateName, substates, transition etc. are not set. | |
| std::string | getGlobalIdString () const |
| Getter for the global state identifier string. | |
| unsigned int | getId () const |
| Returns an id to this state, that is guaranteed to be unique in this process. | |
| StateBasePtr | getInitState () const |
| Getter for the initial state. The initial state is automatically entered, when this state is entered. | |
| template<typename T> | |
| std::enable_if_t< std::is_base_of_v< VariantDataClass, T >, IceInternal::Handle< T > > | getInput (const std::string &key) const |
| getInput can be used to access a specific input parameter. | |
| template<typename T> | |
| std::enable_if_t<!(std::is_base_of_v< VariantDataClass, T >||std::is_base_of_v< VariantContainerBase, T >), T > | getInput (const std::string &key) const |
| getInput can be used to access a specific input parameter. | |
| VariantPtr | getInput (const std::string &key) const |
| getInput can be used to access a specific input parameter. | |
| StateParameterMap | getInputParameters () override |
| Returns a new copy of the inputparameters-dictionary, so that the caller cannot modify them (const won't work due to pointers). | |
| template<typename T> | |
| std::enable_if_t< std::is_base_of_v< VariantDataClass, T >, IceInternal::Handle< T > > | getLocal (const std::string &key) const |
| getLocal can be used to access a specific input parameter. | |
| template<typename T> | |
| std::enable_if_t<!(std::is_base_of_v< VariantDataClass, T >||std::is_base_of_v< VariantContainerBase, T >), T > | getLocal (const std::string &key) const |
| getLocal can be used to access a specific input parameter. | |
| VariantContainerBasePtr | getLocalContainer (std::string const &key) |
| StateParameterMap & | getLocalParameters () |
| Getter for the local parameter map. | |
| template<typename T> | |
| std::enable_if_t< std::is_base_of_v< VariantDataClass, T >, IceInternal::Handle< T > > | getOutput (const std::string &key) const |
| getOutput can be used to access a specific input parameter. | |
| template<typename T> | |
| std::enable_if_t<!(std::is_base_of_v< VariantDataClass, T >||std::is_base_of_v< VariantContainerBase, T >), T > | getOutput (const std::string &key) const |
| getOutput can be used to access a specific input parameter. | |
| StateParameterMap & | getOutputParameters () override |
| getter function to get the map of output parameters | |
| void | inheritInputFromSubstate (std::string stateName) |
| bool | init (StatechartContextInterface *context, StatechartManager *manager) |
| Function to initialize this state. Must be called in the highest level of the hierarchy - and only there. | |
| bool | isInputParameterSet (const std::string &key) const |
| Checks whether a given input parameter is set or not. | |
| bool | isLocalParameterSet (const std::string &key) const |
| bool | isOutputParameterSet (const std::string &key) const |
| bool | isUnbreakable () const |
| StatePtr | operator[] (std::string const &stateName) |
| Function to jump directly into a state. Should only be called for statemachine-debugging. | |
| StateBasePtr | setInitState (StateBasePtr initState, ParameterMappingPtr initialStateMapping=ParameterMappingPtr()) |
| Sets the initial substate of this state. | |
| void | setInput (std::string const &key, const Variant &value) |
| setInput() sets an input parameter. | |
| void | setInput (std::string const &key, const VariantContainerBase &valueList) |
| setInput() sets an input parameter list. | |
| void | setLocal (std::string const &key, const Variant &value) |
| setLocal() sets a local parameter. | |
| void | setLocal (std::string const &key, const VariantContainerBase &valueList) |
| setLocal() sets a local parameter list. | |
| void | setOutput (std::string const &key, const Variant &value) |
| setOuput() sets an output parameter of this state. | |
| void | setOutput (std::string const &key, const VariantContainerBase &valueList) |
| setOuput() sets an output parameter LIST of this state. | |
| void | setStateClassNameFromTypeName (const std::string &typeName) |
| void | setStateName (const std::string &newName) |
| void | setUnbreakable (bool setUnbreakable=true) |
| With this function the state can be made unbreakable. | |
| void | setUseRunFunction (bool useRunFuntion) |
| setUseRunFunction can be used to configurate whether the thread with the async. | |
Public Member Functions inherited from StateUtility | |
| template<class EventClass> | |
| EventPtr | createEvent () |
| Utility function to create a new Event. | |
| EventPtr | createEvent (const std::string &eventName, const StringVariantContainerBaseMap &properties=StringVariantContainerBaseMap()) |
| Utility function to create a new Event. | |
Public Member Functions inherited from StateController | |
| bool | __applyMappings (const StateControllerPtr &srcState, const TransitionIceBase &t, const EventPtr &event, TransitionError &error) |
| Apply the mappings during a transitions. | |
| virtual bool | __breakActiveSubstate (const EventPtr event) |
| bool | __checkExistenceOfTransition (const TransitionIceBase &transition) |
| virtual void | __enqueueEvent (const EventPtr event) |
| virtual void | __finalize (const EventPtr event) |
| Function that gets called, when a state enters a FinalSubstate. Virtual function, so that RemoteStateWrapper can override it. | |
| bool | __findValidTransition (const EventPtr &event, const StateIceBasePtr &sourceState, TransitionIceBase &resultTransition, TransitionError &error) const |
| StateControllerPtr | __getParentState () const |
| Getter function that automatically casts the parentState member of StateBase into StateControllerPtr. | |
| virtual unsigned int | __getUnbreakableBufferSize () const |
| virtual bool | __getUnbreakableBufferStati () const |
| Before:Function to get the unbreakable-buffer status of all parent state - recursively. | |
| virtual void | __notifyEventBufferedDueToUnbreakableState (bool eventBuffered=true) |
| void | __printTransitionError (const TransitionError &transitionError, const EventPtr &event) const |
| virtual void | __processBufferedEvents () |
| Processes buffered events, that could not be processed immediately due to unbreakable substates. | |
| virtual void | __processEvent (const EventPtr event, bool buffered=false) |
| Main function to control the statemachine/state. | |
| virtual void | __substatesFinished (const EventPtr ev) |
| Function that gets called, when a state enters a FinalSubstate. Virtual function, so that RemoteStateWrapper can override it. | |
| TransitionError | __validateTransition (const TransitionIceBase &transition, const EventPtr event, const StateIceBasePtr &sourceState, const StateIceBasePtr &destinationState) const |
| void | __waitForRemoteStates () const |
| virtual bool | _baseOnBreak (const EventPtr evt) |
| Called by StateControllerprocessEvent()-function or parentstate. Must NOT be called by user. | |
| virtual void | _baseOnEnter () |
| Called by StateControllerprocessEvent()-function or parentstate. | |
| virtual void | _baseOnExit () |
| Called by StateController::processEvent()-function or parentstate. Must NOT be called by user. | |
| virtual void | _baseRun () |
| virtual void | _startRun () |
| void | addProfilerRecursive (Profiler::ProfilerPtr profiler, int recursiveLevels=0) |
| addProfilerRecursive recursively adds a new armarx::Profiler::Profiler object as armarx::StateController::localProfiler(the default one does not do anything at all). | |
| void | addTransitionFunction (const TransitionIceBase &t, transitionFunction function) |
| void | disableRunFunction () |
| disableRunFunction sets useRunFunction to false and waits (blocking) for the current StateBase::run() function to complete. | |
| void | disableStateReporting (bool disable=true) |
| Disables the reporting to profilers for this states during state visits. | |
| void | enter (const StringVariantContainerBaseMap &tempInputParameters=StringVariantContainerBaseMap()) |
| Function to set the statemachine in the first state and call OnEnter(). | |
| bool | findTransition (const std::string &eventName, const std::string sourceStateName, TransitionIceBase &transition) |
| std::string | getTransitionID (const std::string &eventName, const std::string sourceStateName) const |
| std::string | getTransitionID (const TransitionIceBase &t) const |
| bool | isFinished () const |
| bool | isRunningTaskFinished () const |
| Checks whether the run() function has already finished. | |
| bool | isRunningTaskStopped () const |
| isRunningTaskStopped checks whether the RunningTask, that executes run() is requested to stop. | |
| void | removeProfilerRecursive (Profiler::ProfilerPtr profiler, int recursiveLevels=0) |
| StateController () | |
| StateController (const StateController &source) | |
| void | waitForRunningTaskToFinish () const |
| Waits until the run-function has finished. | |
| void | waitForStateToFinish (int timeoutMs=-1) const |
| waitForStateToFinish waits until this thread has finished (i.e. | |
| ~StateController () override | |
Public Member Functions inherited from StateBase | |
| void | __checkPhase (const std::vector< StatePhase > &allowedTypes, const char *functionName) const |
| void | __checkPhase (StatePhase allowedType, const char *functionName) const |
| Helper function for checking if a function was called in valid position of the statechart. | |
| void | __checkPhaseMin (StatePhase allowedType, const char *functionName) const |
| void | __copyDefaultValuesToInput () |
| StringVariantContainerBaseMap | __getSetInputAndLocalParameters () const |
| Combines both maps to one map and returns a new map of only the set parameters. | |
| virtual bool | __hasActiveSubstate () |
| Virtual function to indicate wheter a state has an active substate or not. To be overridden by RemoteState to deligate the call to the real state. | |
| virtual bool | __hasSubstates () |
| Virtual function to indicate wheter a state has substates or not. To be overridden by RemoteState to deligate the call to the real state. | |
| void | __setParentState (StateBase *parentState) |
| void | __throwUnknownParameter (const StateParameterMap ¶mMap, const std::string &key) const |
| void | __updateGlobalStateId () |
| virtual void | __updateGlobalStateIdRecursive () |
| bool | addParameter (StateParameterMap ¶mMap, const std::string &key, VariantTypeId type, bool optional, VariantPtr defaultValue=VariantPtr()) const |
| bool | addParameterContainer (StateParameterMap ¶mMap, const std::string &key, const ContainerType &containerType, bool optional, VariantContainerBasePtr defaultValue=VariantContainerBasePtr()) const |
| void | clearSelfPointer () |
| virtual void | deepCopy (const StateBase &sourceState, bool reset=true) |
| Function to copy the states with all it substates and transitions. | |
| virtual void | defineParameters () |
| Virtual function, in which input/local/output parameters can be specified. | |
| virtual void | defineState () |
| Virtual function, in which this state can be configured. | |
| virtual void | defineSubstates () |
| Virtual function, in which substates, transition and mappings can be added. | |
| StateBasePtr | findSubstateByName (const std::string &substateName) |
| Utility function to find a substate of this state by the name. | |
| template<typename ContextType> | |
| ContextType * | getContext () const |
| StatechartContextInterface * | getContext (bool checkNULL=true) const |
| std::string | getGlobalHierarchyString () const |
| std::string | getLocalHierarchyString () const |
| Function to get a string that contains als parent states and this state. (e.g. "Robot->Functional->Idling") | |
| Ice::Int | getLocalUniqueId () const |
| void | getParameter (const StateParameterMap ¶mMap, const std::string &key, VariantPtr &value) const |
| void | getParameterContainer (const StateParameterMap ¶mMap, const std::string &key, VariantContainerBasePtr &valueContainer) const |
| const std::string & | getStateClassName () const |
| std::string | getStateName () const |
| getStateName | |
| StatePhase | getStatePhase () const |
| EventPtr | getTriggeredEndstateEvent () const |
| This function returns the event that was triggered by entering an endstate. | |
| void | inheritInputParameters () |
| bool | init (StatechartContextInterface *context, StatechartManager *manager) |
| Function to initialize this state. Must be called in the highest level of the hierarchy - and only there. | |
| virtual bool | isInitialized () const |
| Returns the status of this state. Only if a state is initialized, it can be used. | |
| bool | isParameterSet (const StateParameterMap ¶mMap, const std::string &key) const |
| virtual void | onBreak () |
| Virtual function, in which the behaviour of state is defined, when it is abnormally exited. Can be overridden, but it is optional. An abnormal exit only occurs in hierarchy-levels greater 1. When a parent state is left before the substates are finished, the OnBreak()-function is called in the active substate and in all it's active substates. If this function is not implemented, the normal OnExit()-function is called. | |
| virtual void | onEnter () |
| Virtual function, in which the behaviour of state is defined, when it is entered. Can be overridden, but it is optional. | |
| virtual void | onExit () |
| Virtual function, in which the behaviour of state is defined, when it is exited. Can be overridden, but it is optional. | |
| StateBase & | operator= (const StateBase &source) |
| virtual void | refetchSubstates () |
| This functions updates the substates. | |
| void | reset () |
| Function to reset the state: clear name, clear substatesList, clear transition etc. | |
| virtual void | run () |
| Virtual function, that can be reimplemented to calculate complex operations. | |
| void | setContext (StatechartContextInterface *context) |
| void | setInitialized (bool enable) |
| void | setParameter (StateParameterMap ¶mMap, const std::string &key, const Variant &variant) |
| void | setParameterContainer (StateParameterMap ¶mMap, const std::string &key, const VariantContainerBase &valueContainer) |
| void | setParameterContainer (StateParameterMap ¶mMap, const std::string &key, const VariantContainerBasePtr &valueContainer) |
| void | setStateClassName (std::string className) |
| setStateClassName() sets the string, that contains a stringrepresentation of this class. Should not be called usually. The classname gets automatically set in the constructor of the derived class StateTemplate<T>. | |
| void | setStatePhase (StatePhase newPhase) |
| StateBase () | |
| StateBase (const StateBase &source) | |
| virtual bool | waitForInitialization (int timeoutMS=-1) const |
| ~StateBase () override | |
Public Member Functions inherited from Logging | |
| SpamFilterDataPtr | deactivateSpam (float deactivationDurationSec=10.0f, const std::string &identifier="", bool deactivate=true) const |
| disables the logging for the current line for the given amount of seconds. | |
| MessageTypeT | getEffectiveLoggingLevel () const |
| Logging () | |
| void | setLocalMinimumLoggingLevel (MessageTypeT level) |
| With setLocalMinimumLoggingLevel the minimum verbosity-level of log-messages can be set. | |
| void | setTag (const LogTag &tag) |
| void | setTag (const std::string &tagName) |
| virtual | ~Logging () |
Protected Member Functions | |
| State & | operator= (const State &source) |
| State () | |
| State (const State &source) | |
| ~State () override | |
Protected Member Functions inherited from StateUtility | |
| ConditionIdentifier | installCondition (const Term &condition, const EventPtr evt, const std::string &desc="") |
| Utility function to install a condition on the distributed conditionhandler. | |
| template<class Eventclass> | |
| ConditionIdentifier | installCondition (const Term &condition, const std::string &desc="") |
| Utility function to install a condition on the distributed conditionhandler. | |
| void | removeCondition (ConditionIdentifier conditionId) |
| Utility function to remove an installed condition on the distributed conditionhandler. | |
| void | removeCounterEvent (const ActionEventIdentifier &id) |
| void | removeTimeoutEvent (const ActionEventIdentifier &id) |
| void | sendEvent (const EventPtr event, StateBasePtr eventProcessor=nullptr) |
| Function to send an event to a specific state from an onEnter()-function. Must not be called anywhere else. The event is processed after the onEnter()-function of this and all initial substates have returned. Use of this function should be avoided since this statemachine is blocked until this event and all subsequent sendEvents() are processed. | |
| template<class Event> | |
| void | sendEvent (StateBasePtr eventProcessor=nullptr) |
| ActionEventIdentifier | setCounterEvent (int counterThreshold, const EventPtr &evt, int initialValue=0) |
| template<class Eventclass> | |
| ActionEventIdentifier | setCounterEvent (int counterThreshold, int initialValue=0) |
| template<class Eventclass> | |
| ActionEventIdentifier | setTimeoutEvent (int timeoutDurationMs) |
| ActionEventIdentifier | setTimeoutEvent (int timeoutDurationMs, const EventPtr &evt) |
| Utility function to start a timer on the systemObserver and register an event on the conditionHandler. The condition is automatically removed, when the state is left. | |
Protected Member Functions inherited from Logging | |
| bool | checkLogLevel (MessageTypeT level) const |
| const LogSenderPtr & | getLogSender () const |
| Retrieve log sender. | |
| LogSenderPtr | loghelper (const char *file, int line, const char *function) const |
Friends | |
| template<class EventType, class StateType> | |
| class | FinalStateBase |
| template<typename ContextType> | |
| class | RemoteStateOfferer |
| class | RemoteStateWrapper |
| template<class StateType> | |
| class | StateTemplate |
Additional Inherited Members | |
Public Types inherited from StateController | |
| using | transitionFunction |
| using | TransitionFunctionMap = std::map<std::string, transitionFunction> |
Public Types inherited from StateBase | |
| enum | StatePhase { ePreDefined , eStatechartDefinitions , eSubstatesDefinitions , eParametersDefinitions , eDefined , eEntering , eEntered , eBreaking , eExiting , eExited } |
| enum that specifies the phase in which the state is currently in used to control the usage of state-functions in the correct context More... | |
Static Public Member Functions inherited from StateBase | |
| static std::vector< StateBasePtr > | GetActiveStateLeafs (StateBasePtr toplevelState) |
Public Attributes inherited from StateController | |
| std::unique_ptr< Impl > | cimpl |
Public Attributes inherited from StateBase | |
| std::unique_ptr< Impl > | impl |
Protected Attributes inherited from Logging | |
| MessageTypeT | minimumLoggingLevel |
| SpamFilterDataPtr | spamFilter |
| LogTag | tag |
Class that offers the main functionality needed to create a statechart.
Only functions from this class and StateUtility should be used to define custom statecharts.
|
protected |
|
overrideprotected |
|
virtual |
Function to add a new dynamic remote substate to this state.
A Dynamic Remote State is only a placeholder for the real state that is located in another application. Most functioncalls to a Remote State are redirected to the state in other application. The interface is the same as to a normal state.
The differene to a Remote State is, that the location of the real state is unspecified until the Dynamic Remote State-onEnter() function is called by the system. The location of the real state must be specified in the input parameters of the state.
So the inputparameter map must contain a field 'proxyName' and a field 'stateName' with the corresponding values.
Reimplemented in RemoteStateOffererBase.
|
virtual |
Function to add a new remote substate to this state.
A Remote State is only a placeholder for the real state that is located in another application. Most functioncalls to a Remote State are redirected to the state in other application. The interface is the same as to a normal state.
| stateName | String that describes this state. Must exist on the specified proxy, otherwise an exception is thrown. It is the name, that was set by setStateName(stateName) or addState(stateName). |
| proxyName | Name of the Ice Proxy, that offers the state |
Reimplemented in FinalStateBase< EventType, StateType >, FinalStateBase< EvDummy, FinalState< EvDummy > >, and RemoteStateOffererBase.
| StateBasePtr addState | ( | StateBasePtr | pNewState | ) |
| StatePtr addState | ( | std::string const & | stateName | ) |
| StatePtr addState | ( | std::string const & | stateName | ) |
| IceInternal::Handle< derivedState > addState | ( | std::string const & | stateName = "" | ) |
Function to add a new substate to this state. Should be called in the defineState()-function.
| derivedState | Template parameter that specifies the derived state class of the added state. Must be derived from StateTemplate or class State itself if no further functionality is required. |
| stateName | String that describes this state. Should be unique in this hierarchy level. |
| bool addToInput | ( | const std::string & | key, |
| const ContainerType & | type, | ||
| bool | optional, | ||
| VariantContainerBasePtr | defaultValue = VariantContainerBasePtr() ) |
Adds a key,type-pair to the input parameters.
| key | String to describe the parameter |
| type | Variable that defines the type of this parameter |
| optional | Flag to indicate whether or not this parameter must be set, when this state is entered |
| bool addToInput | ( | const std::string & | key, |
| VariantTypeId | type, | ||
| bool | optional, | ||
| VariantPtr | defaultValue = VariantPtr() ) |
Adds a new parameter list to the input parameters with a specific type.
| key | String to describe the parameter |
| type | Variable that defines the type of this parameter |
| optional | Flag to indicate whether or not this parameter must be set, when this state is entered |
| bool addToLocal | ( | const std::string & | key, |
| const ContainerType & | type, | ||
| VariantContainerBasePtr | defaultValue = VariantContainerBasePtr() ) |
Adds a new parameter list to the local parameters with a specific type.
| key | String to describe the parameter |
| type | Variable that defines the type of this parameter |
| optional | Flag to indicate whether or not this parameter must be set, when this state is entered |
| bool addToLocal | ( | const std::string & | key, |
| VariantTypeId | type, | ||
| VariantPtr | defaultValue = VariantPtr() ) |
Adds a key,type-pair to the local parameters.
| key | String to describe the parameter |
| type | Variable that defines the type of this parameter |
| optional | Flag to indicate whether or not this parameter must be set, when this state is entered |
| bool addToOutput | ( | const std::string & | key, |
| const ContainerType & | type, | ||
| bool | optional ) |
Adds a new parameter list to the output parameters with a specific type.
| key | String to describe the parameter |
| type | Variable that defines the type of this parameter |
| optional | Flag to indicate whether or not this parameter must be set, when this state is entered |
| bool addToOutput | ( | const std::string & | key, |
| VariantTypeId | type, | ||
| bool | optional ) |
Adds a key,type-pair to the output parameters.
| key | String to describe the parameter |
| type | Variable that defines the type of this parameter |
| optional | Flag to indicate whether or not this parameter must be set, when this state is entered |
| TransitionIceBase & addTransition | ( | EventPtr | event, |
| StateIceBasePtr | sourceState, | ||
| StateIceBasePtr | destinationState, | ||
| ParameterMappingIceBasePtr | mappingToNextStatesInput = nullptr, | ||
| ParameterMappingIceBasePtr | mappingToParentStatesLocal = nullptr, | ||
| ParameterMappingIceBasePtr | mappingToParentStatesOutput = nullptr ) |
| TransitionIceBase & addTransition | ( | StateIceBasePtr | sourceState, |
| StateIceBasePtr | destinationState, | ||
| ParameterMappingIceBasePtr | mappingToNextStatesInput = nullptr, | ||
| ParameterMappingIceBasePtr | mappingToParentStatesLocal = nullptr, | ||
| ParameterMappingIceBasePtr | mappingToParentStatesOutput = nullptr ) |
Function to add a new transition between to substates to this state.
| EventType | Type of the event that trigers this transition. |
| pSourceState | Shared pointer to the state, that must be the active state before this transition. OnExit() is called there. |
| pDestination | Shared pointer to the state, in which this transition will end. OnEnter() is called there. |
| pMapping | Mapping from the outputDictionary of pSourceState and the eventDictionary to the inputDictionary of pDestinationState |
| TransitionIceBase & addTransitionFromAllStates | ( | StateIceBasePtr | destinationState, |
| ParameterMappingIceBasePtr | mappingToNextStatesInput = nullptr, | ||
| ParameterMappingIceBasePtr | mappingToParentStatesLocal = nullptr, | ||
| ParameterMappingIceBasePtr | mappingToParentStatesOutput = nullptr ) |
Function to add a new transition from all substates to destinationState.
| void cancelSubstates | ( | ) |
Use this function in the onEnter() function, if you want to avoid that the substates (i.e.
the initial state) are entered.
|
overridevirtual |
Generates a new copy of this state with the same statename, substates, transitions, overidden functions etc.
Implements StateBase.
Reimplemented in StateTemplate< StateType >, StateTemplate< CounterStateTemplate< EvCounterNotFulfilled, EvCounterFulfilled > >, StateTemplate< FinalState< EvDummy > >, StateTemplate< IceGeneratedState >, StateTemplate< RobotPreInitialized >, StateTemplate< Stateadd_x_to_y >, StateTemplate< Statechart_Robot >, StateTemplate< Statechart_StatechartPerfomanceTest >, StateTemplate< Statechart_StateParameterExample >, StateTemplate< StatechartClient >, StateTemplate< StatechartInstallConditionExample >, StateTemplate< stateInstallCondition >, StateTemplate< stateInstallTimeout >, StateTemplate< StateResult >, StateTemplate< StateRobotControl >, StateTemplate< StateRun >, and StateTemplate< TimeoutExampleStatechart >.
|
overridevirtual |
Generates a new copy of this state with the same overidden functions. stateName, substates, transition etc. are not set.
Implements StateBase.
| std::string getGlobalIdString | ( | ) | const |
Getter for the global state identifier string.
It contains all parent states to the top of the statechart including remote states. Example: RobotControl->Functional->VisualServo
| unsigned int getId | ( | ) | const |
Returns an id to this state, that is guaranteed to be unique in this process.
| StateBasePtr getInitState | ( | ) | const |
Getter for the initial state. The initial state is automatically entered, when this state is entered.
| std::enable_if_t< std::is_base_of_v< VariantDataClass, T >, IceInternal::Handle< T > > getInput | ( | const std::string & | key | ) | const |
getInput can be used to access a specific input parameter.
This version is for complex variant types.
| InvalidTypeException |
| T | Type of the requested variant. The return type depends on this. |
| key | of the parameter |
| std::enable_if_t<!(std::is_base_of_v< VariantDataClass, T >||std::is_base_of_v< VariantContainerBase, T >), T > getInput | ( | const std::string & | key | ) | const |
getInput can be used to access a specific input parameter.
This version is for basic variant types like int, float, bool, string.
| InvalidTypeException |
| T | Type of the requested variant. The return type depends on this. |
| key | of the parameter |
| VariantPtr getInput | ( | const std::string & | key | ) | const |
getInput can be used to access a specific input parameter.
| InvalidTypeException |
| T | Type of the requested variant. The return type depends on this. |
| key | of the parameter |
|
overridevirtual |
Returns a new copy of the inputparameters-dictionary, so that the caller cannot modify them (const won't work due to pointers).
These values are reset immediately after this state is left (onExit/onBreak was called)
Implements StateBase.
| std::enable_if_t< std::is_base_of_v< VariantDataClass, T >, IceInternal::Handle< T > > getLocal | ( | const std::string & | key | ) | const |
getLocal can be used to access a specific input parameter.
This version is for complex variant types.
| InvalidTypeException |
| T | Type of the requested variant. The return type depends on this. |
| key | of the parameter |
| std::enable_if_t<!(std::is_base_of_v< VariantDataClass, T >||std::is_base_of_v< VariantContainerBase, T >), T > getLocal | ( | const std::string & | key | ) | const |
getLocal can be used to access a specific input parameter.
This version is for basic variant types like int, float, bool, string.
| InvalidTypeException |
| T | Type of the requested variant. The return type depends on this. |
| key | of the parameter |
| VariantContainerBasePtr getLocalContainer | ( | std::string const & | key | ) |
| StateParameterMap & getLocalParameters | ( | ) |
Getter for the local parameter map.
| std::enable_if_t< std::is_base_of_v< VariantDataClass, T >, IceInternal::Handle< T > > getOutput | ( | const std::string & | key | ) | const |
getOutput can be used to access a specific input parameter.
This version is for complex variant types.
| InvalidTypeException |
| T | Type of the requested variant. The return type depends on this. |
| key | of the parameter |
| std::enable_if_t<!(std::is_base_of_v< VariantDataClass, T >||std::is_base_of_v< VariantContainerBase, T >), T > getOutput | ( | const std::string & | key | ) | const |
getOutput can be used to access a specific input parameter.
This version is for basic variant types like int, float, bool, string.
| InvalidTypeException |
| T | Type of the requested variant. The return type depends on this. |
| key | of the parameter |
|
overridevirtual |
getter function to get the map of output parameters
Reimplemented from StateBase.
| void inheritInputFromSubstate | ( | std::string | stateName | ) |
| bool init | ( | StatechartContextInterface * | context, |
| StatechartManager * | manager ) |
Function to initialize this state. Must be called in the highest level of the hierarchy - and only there.
| context | pointer to a StatechartContext, that holds the objects to communicate with other components like observers, kinematic unit etc. |
| bool isInputParameterSet | ( | const std::string & | key | ) | const |
Checks whether a given input parameter is set or not.
| key | Name of the input parameter |
| bool isLocalParameterSet | ( | const std::string & | key | ) | const |
| bool isOutputParameterSet | ( | const std::string & | key | ) | const |
| bool isUnbreakable | ( | ) | const |
| StatePtr operator[] | ( | std::string const & | stateName | ) |
Function to jump directly into a state. Should only be called for statemachine-debugging.
| stateName | Name of the target state |
| inputDictionary | Dictionary for the state specified by stateName. Content is copied to the inputDictionary of stateName. |
| StateBasePtr setInitState | ( | StateBasePtr | initState, |
| ParameterMappingPtr | initialStateMapping = ParameterMappingPtr() ) |
Sets the initial substate of this state.
This initial state is automatically entered, when the parent state is entered. On the implicit transition a parameter mapping from the parent's input and local parameters is done. The mapping can be specified with setInitialStateMapping()
| initState | The state that should be the initial state |
| initialStateMapping | A ParameterMapping that maps *this's input to the state's input in the first parameter(use mapFromParent()). This mapping is copied and then stored. |
| void setInput | ( | std::string const & | key, |
| const Variant & | value ) |
setInput() sets an input parameter.
| key | of the parameter |
| value | of the parameter of any by the Variant supported type |
| void setInput | ( | std::string const & | key, |
| const VariantContainerBase & | valueList ) |
setInput() sets an input parameter list.
| key | of the parameter |
| value | of the parameter of any by the Variant supported type |
| void setLocal | ( | std::string const & | key, |
| const Variant & | value ) |
setLocal() sets a local parameter.
Local means, that this parameter can be written and read in this state's onEnter(), onBreak(), onEnter() and only there.
| key | of the parameter |
| value | of the parameter of any by the Variant supported type |
| void setLocal | ( | std::string const & | key, |
| const VariantContainerBase & | valueList ) |
setLocal() sets a local parameter list.
Local means, that this parameter can be written and read in this state's onEnter(), onBreak(), onEnter() and only there.
| key | of the parameter |
| value | of the parameter of any by the Variant supported type |
| void setOutput | ( | std::string const & | key, |
| const Variant & | value ) |
| void setOutput | ( | std::string const & | key, |
| const VariantContainerBase & | valueList ) |
| void setStateClassNameFromTypeName | ( | const std::string & | typeName | ) |
| void setStateName | ( | const std::string & | newName | ) |
| void setUnbreakable | ( | bool | setUnbreakable = true | ) |
With this function the state can be made unbreakable.
Unbreakable means that a parent state cannot be left, while this state is active.
| set | Set to true if the state should be made unbreakable |
| void setUseRunFunction | ( | bool | useRunFuntion | ) |
setUseRunFunction can be used to configurate whether the thread with the async.
run-function should be started/used.
This should be set to false in time-critical states.
| useRunFuntion |
|
friend |
|
friend |
|
friend |
|
friend |