master/fsm_slave.c
changeset 2635 42b62867574d
parent 2629 a2701af27fde
--- a/master/fsm_slave.c	Fri Jan 22 10:11:58 2016 +0100
+++ b/master/fsm_slave.c	Fri Jan 22 13:09:43 2016 +0100
@@ -201,6 +201,18 @@
         ec_datagram_t *datagram /**< Datagram to use. */
         )
 {
+    ec_slave_t *slave = fsm->slave;
+    ec_sdo_request_t *req;
+
+    if (slave->config) {
+        list_for_each_entry(req, &slave->config->sdo_requests, list) {
+            if (req->state == EC_INT_REQUEST_QUEUED || req->state == EC_INT_REQUEST_BUSY) {
+                EC_SLAVE_DBG(slave, 1, "Busy - processing internal SDO request!\n");
+                return;
+            }
+        }
+    }
+
     // Check for pending external SDO requests
     if (ec_fsm_slave_action_process_sdo(fsm, datagram)) {
         return;