master/fsm_slave_config.c
changeset 1873 219be3742274
parent 1849 0a660edc7180
child 1889 131f655c03d3
--- a/master/fsm_slave_config.c	Thu Mar 11 16:50:27 2010 +0100
+++ b/master/fsm_slave_config.c	Fri Mar 19 10:48:16 2010 +0100
@@ -812,7 +812,7 @@
     }
 
     // All SDOs are now configured.
-	ec_fsm_slave_config_enter_soe_conf(fsm);
+    ec_fsm_slave_config_enter_soe_conf(fsm);
 }
 
 /*****************************************************************************/
@@ -824,7 +824,7 @@
         )
 {
     ec_slave_t *slave = fsm->slave;
-	ec_fsm_soe_t *fsm_soe = &slave->fsm.fsm_soe;
+    ec_fsm_soe_t *fsm_soe = &slave->fsm.fsm_soe;
 
     if (!slave->config) {
         ec_fsm_slave_config_enter_pdo_sync(fsm);
@@ -842,9 +842,10 @@
     fsm->soe_request = list_entry(fsm->slave->config->soe_configs.next,
             ec_soe_request_t, list);
     ec_soe_request_copy(&fsm->soe_request_copy, fsm->soe_request);
-	ec_soe_request_write(&fsm->soe_request_copy);
+    ec_soe_request_write(&fsm->soe_request_copy);
     ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy);
     ec_fsm_soe_exec(fsm_soe); // execute immediately
+    ec_master_queue_external_datagram(slave->master, fsm_soe->datagram);
 }
 
 /*****************************************************************************/
@@ -856,11 +857,12 @@
         )
 {
     ec_slave_t *slave = fsm->slave;
-	ec_fsm_soe_t *fsm_soe = &slave->fsm.fsm_soe;
+    ec_fsm_soe_t *fsm_soe = &slave->fsm.fsm_soe;
 
     if (ec_fsm_soe_exec(fsm_soe)) {
-		return;
-	}
+        ec_master_queue_external_datagram(slave->master, fsm_soe->datagram);
+        return;
+    }
 
     if (!ec_fsm_soe_success(fsm_soe)) {
         EC_ERR("SoE configuration failed for slave %u.\n",
@@ -883,6 +885,7 @@
         ec_soe_request_write(&fsm->soe_request_copy);
         ec_fsm_soe_transfer(fsm_soe, fsm->slave, &fsm->soe_request_copy);
         ec_fsm_soe_exec(fsm_soe); // execute immediately
+        ec_master_queue_external_datagram(slave->master, fsm_soe->datagram);
         return;
     }