master/fsm_slave_config.c
changeset 2018 6c05411fee9b
parent 2003 a7ff6c28a432
child 2044 1ae0491b2f6b
equal deleted inserted replaced
2017:4b16e2dce5fb 2018:6c05411fee9b
   736             fsm->soe_request = req;
   736             fsm->soe_request = req;
   737             ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request);
   737             ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request);
   738             ec_soe_request_write(&fsm->soe_request_copy);
   738             ec_soe_request_write(&fsm->soe_request_copy);
   739             ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy);
   739             ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy);
   740             ec_fsm_soe_exec(fsm_soe); // execute immediately
   740             ec_fsm_soe_exec(fsm_soe); // execute immediately
   741             ec_master_queue_external_datagram(slave->master,
   741             ec_master_queue_request_fsm_datagram(slave->master,
   742                     fsm_soe->datagram);
   742                     fsm_soe->datagram);
   743             return;
   743             return;
   744         }
   744         }
   745     }
   745     }
   746 
   746 
   758 {
   758 {
   759     ec_slave_t *slave = fsm->slave;
   759     ec_slave_t *slave = fsm->slave;
   760     ec_fsm_soe_t *fsm_soe = &slave->fsm.fsm_soe;
   760     ec_fsm_soe_t *fsm_soe = &slave->fsm.fsm_soe;
   761 
   761 
   762     if (ec_fsm_soe_exec(fsm_soe)) {
   762     if (ec_fsm_soe_exec(fsm_soe)) {
   763         ec_master_queue_external_datagram(slave->master, fsm_soe->datagram);
   763         ec_master_queue_request_fsm_datagram(slave->master, fsm_soe->datagram);
   764         return;
   764         return;
   765     }
   765     }
   766 
   766 
   767     if (!ec_fsm_soe_success(fsm_soe)) {
   767     if (!ec_fsm_soe_success(fsm_soe)) {
   768         EC_SLAVE_ERR(slave, "SoE configuration failed.\n");
   768         EC_SLAVE_ERR(slave, "SoE configuration failed.\n");
   783         if (fsm->soe_request->al_state == EC_AL_STATE_PREOP) {
   783         if (fsm->soe_request->al_state == EC_AL_STATE_PREOP) {
   784             ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request);
   784             ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request);
   785             ec_soe_request_write(&fsm->soe_request_copy);
   785             ec_soe_request_write(&fsm->soe_request_copy);
   786             ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy);
   786             ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy);
   787             ec_fsm_soe_exec(fsm_soe); // execute immediately
   787             ec_fsm_soe_exec(fsm_soe); // execute immediately
   788             ec_master_queue_external_datagram(slave->master,
   788             ec_master_queue_request_fsm_datagram(slave->master,
   789                     fsm_soe->datagram);
   789                     fsm_soe->datagram);
   790             return;
   790             return;
   791         }
   791         }
   792     }
   792     }
   793 
   793 
  1452             fsm->soe_request = req;
  1452             fsm->soe_request = req;
  1453             ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request);
  1453             ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request);
  1454             ec_soe_request_write(&fsm->soe_request_copy);
  1454             ec_soe_request_write(&fsm->soe_request_copy);
  1455             ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy);
  1455             ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy);
  1456             ec_fsm_soe_exec(fsm_soe); // execute immediately
  1456             ec_fsm_soe_exec(fsm_soe); // execute immediately
  1457             ec_master_queue_external_datagram(slave->master,
  1457             ec_master_queue_request_fsm_datagram(slave->master,
  1458                     fsm_soe->datagram);
  1458                     fsm_soe->datagram);
  1459             return;
  1459             return;
  1460         }
  1460         }
  1461     }
  1461     }
  1462 
  1462 
  1474 {
  1474 {
  1475     ec_slave_t *slave = fsm->slave;
  1475     ec_slave_t *slave = fsm->slave;
  1476     ec_fsm_soe_t *fsm_soe = &slave->fsm.fsm_soe;
  1476     ec_fsm_soe_t *fsm_soe = &slave->fsm.fsm_soe;
  1477 
  1477 
  1478     if (ec_fsm_soe_exec(fsm_soe)) {
  1478     if (ec_fsm_soe_exec(fsm_soe)) {
  1479         ec_master_queue_external_datagram(slave->master, fsm_soe->datagram);
  1479         ec_master_queue_request_fsm_datagram(slave->master, fsm_soe->datagram);
  1480         return;
  1480         return;
  1481     }
  1481     }
  1482 
  1482 
  1483     if (!ec_fsm_soe_success(fsm_soe)) {
  1483     if (!ec_fsm_soe_success(fsm_soe)) {
  1484         EC_SLAVE_ERR(slave, "SoE configuration failed.\n");
  1484         EC_SLAVE_ERR(slave, "SoE configuration failed.\n");
  1499         if (fsm->soe_request->al_state == EC_AL_STATE_SAFEOP) {
  1499         if (fsm->soe_request->al_state == EC_AL_STATE_SAFEOP) {
  1500             ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request);
  1500             ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request);
  1501             ec_soe_request_write(&fsm->soe_request_copy);
  1501             ec_soe_request_write(&fsm->soe_request_copy);
  1502             ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy);
  1502             ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy);
  1503             ec_fsm_soe_exec(fsm_soe); // execute immediately
  1503             ec_fsm_soe_exec(fsm_soe); // execute immediately
  1504             ec_master_queue_external_datagram(slave->master,
  1504             ec_master_queue_request_fsm_datagram(slave->master,
  1505                     fsm_soe->datagram);
  1505                     fsm_soe->datagram);
  1506             return;
  1506             return;
  1507         }
  1507         }
  1508     }
  1508     }
  1509 
  1509