MainspringEnergy / eta-hsm

C++ State Machine Library
MIT License
1 stars 3 forks source link

Add internal transition type #15

Open roelle-mainspring opened 11 months ago

roelle-mainspring commented 11 months ago

The OMG UML spec describes three TransitionKind literals.

  1. internal
  2. local
  3. external

eta-hsm implements local and external.

Figure out what an internal transition is then implement it. Also, maybe confirm that local and external implementations match the spec(?).

roelle-mainspring commented 11 months ago

FYI @nealtanner

In case we need a place to discuss what internal transitions are supposed to do. local and external both mention composite states. I'm not sure if that means internal transitions are not applicable to composite states and thereby not applicable to hierarchical state machines... or, if it just means that no transition happens(?).

Wikipedia says

In contrast to a self-transition, no entry or exit actions are ever executed as a result of an internal transition, even if the internal transition is inherited from a higher level of the hierarchy than the currently active state. Internal transitions inherited from superstates at any level of nesting act as if they were defined directly in the currently active state.

Insomuch as we want to trust Wikipedia, this (internal) be the type of transition you were looking for for no-ops.