equal
deleted
inserted
replaced
742 ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request); |
742 ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request); |
743 ec_soe_request_write(&fsm->soe_request_copy); |
743 ec_soe_request_write(&fsm->soe_request_copy); |
744 ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy); |
744 ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy); |
745 ec_fsm_soe_exec(fsm_soe); // execute immediately |
745 ec_fsm_soe_exec(fsm_soe); // execute immediately |
746 ec_master_queue_external_datagram(slave->master, |
746 ec_master_queue_external_datagram(slave->master, |
747 fsm_soe->datagram, EC_DEVICE_MAIN); |
747 fsm_soe->datagram); |
748 return; |
748 return; |
749 } |
749 } |
750 } |
750 } |
751 |
751 |
752 // No SoE configuration to be applied in PREOP |
752 // No SoE configuration to be applied in PREOP |
763 { |
763 { |
764 ec_slave_t *slave = fsm->slave; |
764 ec_slave_t *slave = fsm->slave; |
765 ec_fsm_soe_t *fsm_soe = &slave->fsm.fsm_soe; |
765 ec_fsm_soe_t *fsm_soe = &slave->fsm.fsm_soe; |
766 |
766 |
767 if (ec_fsm_soe_exec(fsm_soe)) { |
767 if (ec_fsm_soe_exec(fsm_soe)) { |
768 ec_master_queue_external_datagram(slave->master, fsm_soe->datagram, |
768 ec_master_queue_external_datagram(slave->master, fsm_soe->datagram); |
769 EC_DEVICE_MAIN); |
|
770 return; |
769 return; |
771 } |
770 } |
772 |
771 |
773 if (!ec_fsm_soe_success(fsm_soe)) { |
772 if (!ec_fsm_soe_success(fsm_soe)) { |
774 EC_SLAVE_ERR(slave, "SoE configuration failed.\n"); |
773 EC_SLAVE_ERR(slave, "SoE configuration failed.\n"); |
790 ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request); |
789 ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request); |
791 ec_soe_request_write(&fsm->soe_request_copy); |
790 ec_soe_request_write(&fsm->soe_request_copy); |
792 ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy); |
791 ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy); |
793 ec_fsm_soe_exec(fsm_soe); // execute immediately |
792 ec_fsm_soe_exec(fsm_soe); // execute immediately |
794 ec_master_queue_external_datagram(slave->master, |
793 ec_master_queue_external_datagram(slave->master, |
795 fsm_soe->datagram, EC_DEVICE_MAIN); |
794 fsm_soe->datagram); |
796 return; |
795 return; |
797 } |
796 } |
798 } |
797 } |
799 |
798 |
800 // All PREOP IDNs are now configured. |
799 // All PREOP IDNs are now configured. |
1472 ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request); |
1471 ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request); |
1473 ec_soe_request_write(&fsm->soe_request_copy); |
1472 ec_soe_request_write(&fsm->soe_request_copy); |
1474 ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy); |
1473 ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy); |
1475 ec_fsm_soe_exec(fsm_soe); // execute immediately |
1474 ec_fsm_soe_exec(fsm_soe); // execute immediately |
1476 ec_master_queue_external_datagram(slave->master, |
1475 ec_master_queue_external_datagram(slave->master, |
1477 fsm_soe->datagram, EC_DEVICE_MAIN); |
1476 fsm_soe->datagram); |
1478 return; |
1477 return; |
1479 } |
1478 } |
1480 } |
1479 } |
1481 |
1480 |
1482 // No SoE configuration to be applied in SAFEOP |
1481 // No SoE configuration to be applied in SAFEOP |
1493 { |
1492 { |
1494 ec_slave_t *slave = fsm->slave; |
1493 ec_slave_t *slave = fsm->slave; |
1495 ec_fsm_soe_t *fsm_soe = &slave->fsm.fsm_soe; |
1494 ec_fsm_soe_t *fsm_soe = &slave->fsm.fsm_soe; |
1496 |
1495 |
1497 if (ec_fsm_soe_exec(fsm_soe)) { |
1496 if (ec_fsm_soe_exec(fsm_soe)) { |
1498 ec_master_queue_external_datagram(slave->master, fsm_soe->datagram, |
1497 ec_master_queue_external_datagram(slave->master, fsm_soe->datagram); |
1499 EC_DEVICE_MAIN); |
|
1500 return; |
1498 return; |
1501 } |
1499 } |
1502 |
1500 |
1503 if (!ec_fsm_soe_success(fsm_soe)) { |
1501 if (!ec_fsm_soe_success(fsm_soe)) { |
1504 EC_SLAVE_ERR(slave, "SoE configuration failed.\n"); |
1502 EC_SLAVE_ERR(slave, "SoE configuration failed.\n"); |
1520 ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request); |
1518 ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request); |
1521 ec_soe_request_write(&fsm->soe_request_copy); |
1519 ec_soe_request_write(&fsm->soe_request_copy); |
1522 ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy); |
1520 ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy); |
1523 ec_fsm_soe_exec(fsm_soe); // execute immediately |
1521 ec_fsm_soe_exec(fsm_soe); // execute immediately |
1524 ec_master_queue_external_datagram(slave->master, |
1522 ec_master_queue_external_datagram(slave->master, |
1525 fsm_soe->datagram, EC_DEVICE_MAIN); |
1523 fsm_soe->datagram); |
1526 return; |
1524 return; |
1527 } |
1525 } |
1528 } |
1526 } |
1529 |
1527 |
1530 // All SAFEOP IDNs are now configured. |
1528 // All SAFEOP IDNs are now configured. |