master/fsm_slave_config.c
changeset 879 9b395c5646ab
parent 859 233e32f428e1
child 888 f0db19108bba
--- a/master/fsm_slave_config.c	Mon Mar 31 09:42:37 2008 +0000
+++ b/master/fsm_slave_config.c	Thu Apr 03 13:34:13 2008 +0000
@@ -52,8 +52,8 @@
 void ec_fsm_slave_config_state_mbox_sync(ec_fsm_slave_config_t *);
 void ec_fsm_slave_config_state_preop(ec_fsm_slave_config_t *);
 void ec_fsm_slave_config_state_sdo_conf(ec_fsm_slave_config_t *);
-void ec_fsm_slave_config_state_mapping(ec_fsm_slave_config_t *);
-void ec_fsm_slave_config_state_pdo_conf(ec_fsm_slave_config_t *);
+void ec_fsm_slave_config_state_pdo_assign(ec_fsm_slave_config_t *);
+void ec_fsm_slave_config_state_pdo_mapping(ec_fsm_slave_config_t *);
 void ec_fsm_slave_config_state_pdo_sync(ec_fsm_slave_config_t *);
 void ec_fsm_slave_config_state_fmmu(ec_fsm_slave_config_t *);
 void ec_fsm_slave_config_state_safeop(ec_fsm_slave_config_t *);
@@ -62,7 +62,7 @@
 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_mapping(ec_fsm_slave_config_t *);
+void ec_fsm_slave_config_enter_pdo_assign(ec_fsm_slave_config_t *);
 void ec_fsm_slave_config_enter_pdo_sync(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 *);
@@ -83,8 +83,8 @@
     // init sub state machines
     ec_fsm_change_init(&fsm->fsm_change, fsm->datagram);
     ec_fsm_coe_init(&fsm->fsm_coe, fsm->datagram);
-    ec_fsm_pdo_mapping_init(&fsm->fsm_pdo_map, &fsm->fsm_coe);
-    ec_fsm_pdo_config_init(&fsm->fsm_pdo_conf, &fsm->fsm_coe);
+    ec_fsm_pdo_assign_init(&fsm->fsm_pdo_assign, &fsm->fsm_coe);
+    ec_fsm_pdo_mapping_init(&fsm->fsm_pdo_mapping, &fsm->fsm_coe);
 }
 
 /*****************************************************************************/
@@ -96,8 +96,8 @@
     // clear sub state machines
     ec_fsm_change_clear(&fsm->fsm_change);
     ec_fsm_coe_clear(&fsm->fsm_coe);
-    ec_fsm_pdo_mapping_clear(&fsm->fsm_pdo_map);
-    ec_fsm_pdo_config_clear(&fsm->fsm_pdo_conf);
+    ec_fsm_pdo_assign_clear(&fsm->fsm_pdo_assign);
+    ec_fsm_pdo_mapping_clear(&fsm->fsm_pdo_mapping);
 }
 
 /*****************************************************************************/
@@ -442,7 +442,7 @@
 
     // No CoE configuration to be applied?
     if (list_empty(&slave->config->sdo_configs)) { // skip Sdo configuration
-        ec_fsm_slave_config_enter_mapping(fsm);
+        ec_fsm_slave_config_enter_pdo_assign(fsm);
         return;
     }
 
@@ -486,65 +486,65 @@
     }
 
     // All Sdos are now configured.
-    ec_fsm_slave_config_enter_mapping(fsm);
-}
-
-/*****************************************************************************/
-
-/**
- * Check for Pdo mappings to be applied.
- */
-
-void ec_fsm_slave_config_enter_mapping(
+    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 configuring Pdo mapping
-    fsm->state = ec_fsm_slave_config_state_mapping;
-    ec_fsm_pdo_mapping_start(&fsm->fsm_pdo_map, fsm->slave);
-    ec_fsm_pdo_mapping_exec(&fsm->fsm_pdo_map); // execute immediately
-}
-
-/*****************************************************************************/
-
-/**
-   Slave configuration state: MAPPING.
-*/
-
-void ec_fsm_slave_config_state_mapping(
+    // 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_mapping_exec(&fsm->fsm_pdo_map)) return;
-
-    if (!ec_fsm_pdo_mapping_success(&fsm->fsm_pdo_map)) {
-        EC_ERR("Pdo mapping configuration failed for slave %u.\n",
+    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 Pdo configuration
-    fsm->state = ec_fsm_slave_config_state_pdo_conf;
-    ec_fsm_pdo_config_start(&fsm->fsm_pdo_conf, fsm->slave);
-    ec_fsm_pdo_config_exec(&fsm->fsm_pdo_conf); // execute immediately
-}
-
-/*****************************************************************************/
-
-/**
-   Slave configuration state: PDO_CONF.
-*/
-
-void ec_fsm_slave_config_state_pdo_conf(
+    // Start configuring Pdo mapping
+    fsm->state = ec_fsm_slave_config_state_pdo_mapping;
+    ec_fsm_pdo_mapping_start(&fsm->fsm_pdo_mapping, fsm->slave);
+    ec_fsm_pdo_mapping_exec(&fsm->fsm_pdo_mapping); // execute immediately
+}
+
+/*****************************************************************************/
+
+/**
+   Slave configuration state: PDO_MAPPING.
+*/
+
+void ec_fsm_slave_config_state_pdo_mapping(
         ec_fsm_slave_config_t *fsm /**< slave state machine */
         )
 {
-    if (ec_fsm_pdo_config_exec(&fsm->fsm_pdo_conf)) return;
-
-    if (!ec_fsm_pdo_config_success(&fsm->fsm_pdo_conf)) {
-        EC_ERR("Pdo configuration failed for slave %u.\n",
+    if (ec_fsm_pdo_mapping_exec(&fsm->fsm_pdo_mapping)) return;
+
+    if (!ec_fsm_pdo_mapping_success(&fsm->fsm_pdo_mapping)) {
+        EC_ERR("Configuration of Pdo mapping failed for slave %u.\n",
                 fsm->slave->ring_position);
         fsm->slave->error_flag = 1;
         fsm->state = ec_fsm_slave_config_state_error;
@@ -592,7 +592,7 @@
     for (i = 0; i < num_syncs; i++) {
         sync = &slave->sii.syncs[i + offset];
         dir = ec_sync_direction(sync);
-        size = ec_pdo_mapping_total_size(&slave->config->mapping[dir]);
+        size = ec_pdo_list_total_size(&slave->config->pdos[dir]);
         ec_sync_config(sync, size, datagram->data + EC_SYNC_PAGE_SIZE * i);
     }