77 fsm->slaves_responding = 0; |
77 fsm->slaves_responding = 0; |
78 fsm->topology_change_pending = 0; |
78 fsm->topology_change_pending = 0; |
79 fsm->slave_states = EC_SLAVE_STATE_UNKNOWN; |
79 fsm->slave_states = EC_SLAVE_STATE_UNKNOWN; |
80 |
80 |
81 // init sub-state-machines |
81 // init sub-state-machines |
82 ec_fsm_slave_config_init(&fsm->fsm_slave_config, fsm->datagram); |
82 ec_fsm_coe_init(&fsm->fsm_coe, fsm->datagram); |
|
83 ec_fsm_pdo_init(&fsm->fsm_pdo, &fsm->fsm_coe); |
|
84 ec_fsm_change_init(&fsm->fsm_change, fsm->datagram); |
|
85 ec_fsm_slave_config_init(&fsm->fsm_slave_config, fsm->datagram, |
|
86 &fsm->fsm_change, &fsm->fsm_coe, &fsm->fsm_pdo); |
83 ec_fsm_slave_scan_init(&fsm->fsm_slave_scan, fsm->datagram, |
87 ec_fsm_slave_scan_init(&fsm->fsm_slave_scan, fsm->datagram, |
84 &fsm->fsm_slave_config, &fsm->fsm_coe_map); |
88 &fsm->fsm_slave_config, &fsm->fsm_pdo); |
85 ec_fsm_sii_init(&fsm->fsm_sii, fsm->datagram); |
89 ec_fsm_sii_init(&fsm->fsm_sii, fsm->datagram); |
86 ec_fsm_change_init(&fsm->fsm_change, fsm->datagram); |
|
87 ec_fsm_coe_init(&fsm->fsm_coe, fsm->datagram); |
|
88 ec_fsm_coe_map_init(&fsm->fsm_coe_map, &fsm->fsm_coe); |
|
89 } |
90 } |
90 |
91 |
91 /*****************************************************************************/ |
92 /*****************************************************************************/ |
92 |
93 |
93 /** Destructor. |
94 /** Destructor. |
95 void ec_fsm_master_clear( |
96 void ec_fsm_master_clear( |
96 ec_fsm_master_t *fsm /**< Master state machine. */ |
97 ec_fsm_master_t *fsm /**< Master state machine. */ |
97 ) |
98 ) |
98 { |
99 { |
99 // clear sub-state machines |
100 // clear sub-state machines |
|
101 ec_fsm_coe_clear(&fsm->fsm_coe); |
|
102 ec_fsm_pdo_clear(&fsm->fsm_pdo); |
|
103 ec_fsm_change_clear(&fsm->fsm_change); |
100 ec_fsm_slave_config_clear(&fsm->fsm_slave_config); |
104 ec_fsm_slave_config_clear(&fsm->fsm_slave_config); |
101 ec_fsm_slave_scan_clear(&fsm->fsm_slave_scan); |
105 ec_fsm_slave_scan_clear(&fsm->fsm_slave_scan); |
102 ec_fsm_sii_clear(&fsm->fsm_sii); |
106 ec_fsm_sii_clear(&fsm->fsm_sii); |
103 ec_fsm_change_clear(&fsm->fsm_change); |
|
104 ec_fsm_coe_clear(&fsm->fsm_coe); |
|
105 ec_fsm_coe_map_clear(&fsm->fsm_coe_map); |
|
106 } |
107 } |
107 |
108 |
108 /*****************************************************************************/ |
109 /*****************************************************************************/ |
109 |
110 |
110 /** Executes the current state of the state machine. |
111 /** Executes the current state of the state machine. |