Re-added slave.configured flag as slave.self_configured.
This commit is contained in:
parent
3123861960
commit
9ff5f1348b
17
master/fsm.c
17
master/fsm.c
|
|
@ -325,13 +325,20 @@ void ec_fsm_master_action_process_states(ec_fsm_t *fsm
|
|||
if (slave->error_flag
|
||||
|| !slave->online
|
||||
|| slave->requested_state == EC_SLAVE_STATE_UNKNOWN
|
||||
|| slave->current_state == slave->requested_state) continue;
|
||||
|| (slave->current_state == slave->requested_state
|
||||
&& slave->self_configured)) continue;
|
||||
|
||||
if (master->debug_level) {
|
||||
ec_state_string(slave->current_state, old_state);
|
||||
ec_state_string(slave->requested_state, new_state);
|
||||
EC_DBG("Changing state of slave %i (%s -> %s).\n",
|
||||
slave->ring_position, old_state, new_state);
|
||||
if (slave->current_state != slave->requested_state) {
|
||||
ec_state_string(slave->requested_state, new_state);
|
||||
EC_DBG("Changing state of slave %i (%s -> %s).\n",
|
||||
slave->ring_position, old_state, new_state);
|
||||
}
|
||||
else if (!slave->self_configured) {
|
||||
EC_DBG("Reconfiguring slave %i (%s).\n",
|
||||
slave->ring_position, old_state);
|
||||
}
|
||||
}
|
||||
|
||||
fsm->master_state = ec_fsm_master_configure_slave;
|
||||
|
|
@ -1308,6 +1315,8 @@ void ec_fsm_slaveconf_state_init(ec_fsm_t *fsm /**< finite state machine */)
|
|||
return;
|
||||
}
|
||||
|
||||
slave->self_configured = 1;
|
||||
|
||||
if (master->debug_level) {
|
||||
EC_DBG("Slave %i is now in INIT.\n", slave->ring_position);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -112,6 +112,7 @@ int ec_slave_init(ec_slave_t *slave, /**< EtherCAT slave */
|
|||
|
||||
slave->requested_state = EC_SLAVE_STATE_UNKNOWN;
|
||||
slave->current_state = EC_SLAVE_STATE_UNKNOWN;
|
||||
slave->self_configured = 0;
|
||||
slave->error_flag = 0;
|
||||
slave->online = 1;
|
||||
slave->fmmu_count = 0;
|
||||
|
|
|
|||
|
|
@ -197,6 +197,7 @@ struct ec_slave
|
|||
|
||||
ec_slave_state_t requested_state; /**< requested slave state */
|
||||
ec_slave_state_t current_state; /**< current slave state */
|
||||
unsigned int self_configured; /**< slave was configured by this master */
|
||||
unsigned int error_flag; /**< stop processing after an error */
|
||||
unsigned int online; /**< non-zero, if the slave responds. */
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue