master/fsm_pdo_mapping.c
changeset 835 23fd8b510803
parent 827 205eccb70bce
child 854 f4f53be425ac
--- a/master/fsm_pdo_mapping.c	Wed Feb 27 15:24:00 2008 +0000
+++ b/master/fsm_pdo_mapping.c	Thu Feb 28 10:58:43 2008 +0000
@@ -180,6 +180,16 @@
         if (ec_pdo_mapping_equal(&fsm->sync->mapping, fsm->mapping))
             continue;
 
+        // Pdo mapping has to be changed. Does the slave support this?
+        if (!fsm->slave->sii.mailbox_protocols & EC_MBOX_COE
+                || (fsm->slave->sii.has_general
+                    && !fsm->slave->sii.coe_details.enable_pdo_assign)) {
+            EC_ERR("Slave %u does not support changing the Pdo mapping!\n",
+                    fsm->slave->ring_position);
+            fsm->state = ec_fsm_pdo_mapping_state_error;
+            return;
+        }
+
         if (fsm->slave->master->debug_level) {
             EC_DBG("Changing Pdo mapping for SM%u of slave %u.\n",
                     fsm->sync->index, fsm->slave->ring_position);