It did help. Thanks!
The new code generation templates look promising. Nice work

As I am mostly interested in hierarchical FSMs, I have created a composite HSM:
https://www.dropbox.com/s/aqbd46wx1rqvnft/UN_fsm.jpgCode genration is producing the following states enums:
enum StateEnum
{
NOSTATE,
TmpMgrFsm_VIRTUAL_SUBMACHINESTATE,
TmpMgrFsm_ENUM_TMPMGRFSM_STATE1,
TmpMgrFsm_ENUM_TMPMGRFSM_STATE2,
TmpMgrFsm_ENUM_TMPMGRFSM_FINAL_60,
TmpMgrFsm_ENUM_TMPMGRFSM_STATE1_STATE11,
TmpMgrFsm_ENUM_TMPMGRFSM_STATE1_STATE12,
TmpMgrFsm_ENUM_TMPMGRFSM_STATE1_STATE12_FINAL_33,
TmpMgrFsm_ENUM_TMPMGRFSM_STATE1_STATE12_STATE121,
TmpMgrFsm_ENUM_TMPMGRFSM_STATE1_STATE12_STATE122
};
And transitions as follows:
enum TransitionEnum
{
NOTRANSITION,
TmpMgrFsm_ENUM_INITIAL_50__TO__STATE1_28,
TmpMgrFsm_ENUM_STATE12__TO__STATE2_32,
TmpMgrFsm_ENUM_STATE2__TO__HISTORY_17_6,
TmpMgrFsm_ENUM_STATE1__TO__FINAL_60_35,
TmpMgrFsm_ENUM_INITIAL_58__TO__STATE11_31,
TmpMgrFsm_ENUM_STATE11__TO__STATE12_11,
TmpMgrFsm_ENUM_STATE122__TO__STATE121_34,
TmpMgrFsm_ENUM_STATE121__TO__STATE122_14,
TmpMgrFsm_ENUM_STATE121__TO__FINAL_33_20,
TmpMgrFsm_ENUM_INITIAL_52__TO__STATE121_30
};
I am holding a simple integer T in the FSM class which is manually set to 0 in the constructor and serve as simple guard for state transitions.
My observations so far are as follows:
- Entry and exist behaviors are recursively invoked as expected.
- Hierarchical DO behavior of parent state are not invoked (e.g. while being in STATE121 no DO calls are invoked for STATE12, and STATE1)
- Common transitions from composite state (such as from STATE12 to STATE2 while being in STATE121 or STATE122) are not triggered.
- Guards as means of triggering mechanism on the transitions (T>4 etc..) are ignored, and transitions do not occure.
Would be great to know if I am missing something…