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