@@ -35,9 +35,9 @@ rcl_create_state(unsigned int index, char* label)
3535}
3636
3737rcl_state_transition_t
38- rcl_create_state_transition (rcl_state_t index , rcl_state_t goal )
38+ rcl_create_state_transition (unsigned int index , const char * label )
3939{
40- rcl_state_transition_t ret_transition = {. transition_index = index , NULL , . goal = goal };
40+ rcl_state_transition_t ret_transition = {{. index = index , . label = label }, NULL , NULL , NULL };
4141 return ret_transition ;
4242}
4343
@@ -47,39 +47,39 @@ rcl_state_machine_t
4747rcl_get_default_state_machine ()
4848{
4949 rcl_state_machine_t state_machine ;
50- state_machine .transition_map .state_index = NULL ;
50+ state_machine .transition_map .primary_states = NULL ;
5151 state_machine .transition_map .transition_arrays = NULL ;
5252 state_machine .transition_map .size = 0 ;
5353
5454 // set default state as unconfigured
55- state_machine .current_state = & rcl_state_unconfigured ;
55+ // state_machine.current_state = &rcl_state_unconfigured;
5656
57- rcl_state_transition_t LIFECYCLE_EXPORT rcl_transition_unconfigured_inactive
58- = {rcl_state_configuring , NULL , rcl_state_inactive };
59- rcl_state_transition_t LIFECYCLE_EXPORT rcl_transition_unconfigured_finalized
60- = {rcl_state_shuttingdown , NULL , rcl_state_finalized };
57+ rcl_state_transition_t rcl_transition_configuring
58+ = rcl_create_state_transition (rcl_state_configuring .index , rcl_state_configuring .label );
59+ rcl_state_transition_t rcl_transition_shuttingdown
60+ = rcl_create_state_transition (rcl_state_shuttingdown .index , rcl_state_shuttingdown .label );
61+ rcl_state_transition_t rcl_transition_cleaningup
62+ = rcl_create_state_transition (rcl_state_cleaningup .index , rcl_state_cleaningup .label );
63+ rcl_state_transition_t rcl_transition_activating
64+ = rcl_create_state_transition (rcl_state_activating .index , rcl_state_activating .label );
65+ rcl_state_transition_t rcl_transition_deactivating
66+ = rcl_create_state_transition (rcl_state_deactivating .index , rcl_state_deactivating .label );;
6167
62- rcl_state_transition_t LIFECYCLE_EXPORT rcl_transition_inactive_unconfigured
63- = {rcl_state_cleaningup , NULL , rcl_state_unconfigured };
64- rcl_state_transition_t LIFECYCLE_EXPORT rcl_transition_inactive_finalized
65- = {rcl_state_shuttingdown , NULL , rcl_state_finalized };
66- rcl_state_transition_t LIFECYCLE_EXPORT rcl_transition_inactive_active
67- = {rcl_state_activating , NULL , rcl_state_active };
68-
69- rcl_state_transition_t LIFECYCLE_EXPORT rcl_transition_active_inactive
70- = {rcl_state_deactivating , NULL , rcl_state_inactive };
71- rcl_state_transition_t LIFECYCLE_EXPORT rcl_transition_active_finalized
72- = {rcl_state_shuttingdown , NULL , rcl_state_finalized };
68+ rcl_register_primary_state (& state_machine .transition_map , rcl_state_unconfigured );
69+ rcl_register_primary_state (& state_machine .transition_map , rcl_state_inactive );
70+ rcl_register_primary_state (& state_machine .transition_map , rcl_state_active );
71+ rcl_register_primary_state (& state_machine .transition_map , rcl_state_finalized );
7372
7473 // add transitions to map
75- rcl_append_transition (& state_machine .transition_map , rcl_state_unconfigured , rcl_transition_unconfigured_inactive );
76- rcl_append_transition (& state_machine .transition_map , rcl_state_unconfigured , rcl_transition_unconfigured_finalized );
77- rcl_append_transition (& state_machine .transition_map , rcl_state_inactive , rcl_transition_inactive_unconfigured );
78- rcl_append_transition (& state_machine .transition_map , rcl_state_inactive , rcl_transition_inactive_finalized );
79- rcl_append_transition (& state_machine .transition_map , rcl_state_inactive , rcl_transition_inactive_active );
80- rcl_append_transition (& state_machine .transition_map , rcl_state_active , rcl_transition_active_inactive );
81- rcl_append_transition (& state_machine .transition_map , rcl_state_active , rcl_transition_active_finalized );
74+ rcl_register_transition_by_state (& state_machine .transition_map , rcl_state_unconfigured , rcl_state_inactive , rcl_transition_configuring );
75+ rcl_register_transition_by_state (& state_machine .transition_map , rcl_state_inactive , rcl_state_unconfigured , rcl_transition_cleaningup );
76+ rcl_register_transition_by_state (& state_machine .transition_map , rcl_state_unconfigured , rcl_state_finalized , rcl_transition_shuttingdown );
77+ rcl_register_transition_by_state (& state_machine .transition_map , rcl_state_inactive , rcl_state_finalized , rcl_transition_shuttingdown );
78+ rcl_register_transition_by_state (& state_machine .transition_map , rcl_state_inactive , rcl_state_active , rcl_transition_activating );
79+ rcl_register_transition_by_state (& state_machine .transition_map , rcl_state_active , rcl_state_inactive , rcl_transition_deactivating );
80+ rcl_register_transition_by_state (& state_machine .transition_map , rcl_state_active , rcl_state_finalized , rcl_transition_shuttingdown );
8281
82+ state_machine .current_state = & state_machine .transition_map .primary_states [0 ]; // set to first entry
8383 return state_machine ;
8484}
8585
0 commit comments