Moved configuration of Pdo mapping before Pdo assignment.
This commit is contained in:
parent
eeb80bb7b7
commit
42f0529b05
|
|
@ -53,17 +53,17 @@ digraph slaveconf {
|
|||
pdo_sync [fontname="Helvetica"]
|
||||
//pdo_sync -> pdo_sync
|
||||
//pdo_sync -> error
|
||||
pdo_sync -> pdo_assign [weight=10]
|
||||
|
||||
pdo_assign [fontname="Helvetica"]
|
||||
//pdo_assign -> pdo_assign
|
||||
//pdo_assign -> error
|
||||
pdo_assign -> pdo_mapping [weight=10]
|
||||
pdo_sync -> pdo_mapping [weight=10]
|
||||
|
||||
pdo_mapping [fontname="Helvetica"]
|
||||
//pdo_mapping -> pdo_mapping
|
||||
//pdo_mapping -> error
|
||||
pdo_mapping -> enter_fmmu [weight=10]
|
||||
pdo_mapping -> pdo_assign [weight=10]
|
||||
|
||||
pdo_assign [fontname="Helvetica"]
|
||||
//pdo_assign -> pdo_assign
|
||||
//pdo_assign -> error
|
||||
pdo_assign -> enter_fmmu [weight=10]
|
||||
|
||||
enter_fmmu [shape=point,label=""]
|
||||
enter_fmmu -> enter_safeop [fontname="Helvetica",label="No FMMUs\nto configure"]
|
||||
|
|
|
|||
|
|
@ -63,7 +63,6 @@ void ec_fsm_slave_config_enter_mbox_sync(ec_fsm_slave_config_t *);
|
|||
void ec_fsm_slave_config_enter_preop(ec_fsm_slave_config_t *);
|
||||
void ec_fsm_slave_config_enter_sdo_conf(ec_fsm_slave_config_t *);
|
||||
void ec_fsm_slave_config_enter_pdo_sync(ec_fsm_slave_config_t *);
|
||||
void ec_fsm_slave_config_enter_pdo_assign(ec_fsm_slave_config_t *);
|
||||
void ec_fsm_slave_config_enter_fmmu(ec_fsm_slave_config_t *);
|
||||
void ec_fsm_slave_config_enter_safeop(ec_fsm_slave_config_t *);
|
||||
|
||||
|
|
@ -568,45 +567,6 @@ void ec_fsm_slave_config_state_pdo_sync(ec_fsm_slave_config_t *fsm /**< slave st
|
|||
return;
|
||||
}
|
||||
|
||||
ec_fsm_slave_config_enter_pdo_assign(fsm);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
/**
|
||||
* Check for alternate Pdo assignments to be applied.
|
||||
*/
|
||||
|
||||
void ec_fsm_slave_config_enter_pdo_assign(
|
||||
ec_fsm_slave_config_t *fsm /**< slave state machine */
|
||||
)
|
||||
{
|
||||
// start applying alternate Pdo assignments
|
||||
fsm->state = ec_fsm_slave_config_state_pdo_assign;
|
||||
ec_fsm_pdo_assign_start(&fsm->fsm_pdo_assign, fsm->slave);
|
||||
ec_fsm_pdo_assign_exec(&fsm->fsm_pdo_assign); // execute immediately
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
/**
|
||||
Slave configuration state: PDO_ASSIGN.
|
||||
*/
|
||||
|
||||
void ec_fsm_slave_config_state_pdo_assign(
|
||||
ec_fsm_slave_config_t *fsm /**< slave state machine */
|
||||
)
|
||||
{
|
||||
if (ec_fsm_pdo_assign_exec(&fsm->fsm_pdo_assign)) return;
|
||||
|
||||
if (!ec_fsm_pdo_assign_success(&fsm->fsm_pdo_assign)) {
|
||||
EC_ERR("Pdo assignment failed for slave %u.\n",
|
||||
fsm->slave->ring_position);
|
||||
fsm->slave->error_flag = 1;
|
||||
fsm->state = ec_fsm_slave_config_state_error;
|
||||
return;
|
||||
}
|
||||
|
||||
// Start configuring Pdo mapping
|
||||
fsm->state = ec_fsm_slave_config_state_pdo_mapping;
|
||||
ec_fsm_pdo_mapping_start(&fsm->fsm_pdo_mapping, fsm->slave);
|
||||
|
|
@ -633,6 +593,32 @@ void ec_fsm_slave_config_state_pdo_mapping(
|
|||
return;
|
||||
}
|
||||
|
||||
// start applying alternate Pdo assignments
|
||||
fsm->state = ec_fsm_slave_config_state_pdo_assign;
|
||||
ec_fsm_pdo_assign_start(&fsm->fsm_pdo_assign, fsm->slave);
|
||||
ec_fsm_pdo_assign_exec(&fsm->fsm_pdo_assign); // execute immediately
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
/**
|
||||
Slave configuration state: PDO_ASSIGN.
|
||||
*/
|
||||
|
||||
void ec_fsm_slave_config_state_pdo_assign(
|
||||
ec_fsm_slave_config_t *fsm /**< slave state machine */
|
||||
)
|
||||
{
|
||||
if (ec_fsm_pdo_assign_exec(&fsm->fsm_pdo_assign)) return;
|
||||
|
||||
if (!ec_fsm_pdo_assign_success(&fsm->fsm_pdo_assign)) {
|
||||
EC_ERR("Pdo assignment failed for slave %u.\n",
|
||||
fsm->slave->ring_position);
|
||||
fsm->slave->error_flag = 1;
|
||||
fsm->state = ec_fsm_slave_config_state_error;
|
||||
return;
|
||||
}
|
||||
|
||||
ec_fsm_slave_config_enter_fmmu(fsm);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue