master/fsm_slave.c
changeset 1804 742607c464c4
parent 1608 004a8b91e927
child 1831 1875b9fea0ba
--- a/master/fsm_slave.c	Tue Feb 02 19:38:32 2010 +0100
+++ b/master/fsm_slave.c	Fri Feb 05 10:29:47 2010 +0100
@@ -62,9 +62,11 @@
     fsm->slave = slave;
     fsm->datagram = datagram;
     fsm->datagram->data_size = 0;
-	if (slave->master->debug_level)
-		EC_DBG("init fsm for slave %u...\n",slave->ring_position);
-	fsm->state = ec_fsm_slave_state_idle;
+
+    if (slave->master->debug_level)
+        EC_DBG("Init FSM for slave %u...\n", slave->ring_position);
+
+    fsm->state = ec_fsm_slave_state_idle;
 
     // init sub-state-machines
     ec_fsm_coe_init(&fsm->fsm_coe, fsm->datagram);
@@ -112,16 +114,17 @@
  *
  */
 void ec_fsm_slave_ready(
-		ec_fsm_slave_t *fsm /**< Slave state machine. */
-		)
-{
-	if (fsm->state == ec_fsm_slave_state_idle) {
-		if (fsm->slave->master->debug_level) {
-			EC_DBG("Slave %u ready for SDO/FOE.\n",fsm->slave->ring_position);
-		}
-		fsm->state = ec_fsm_slave_state_ready;
-	}
-	return;
+        ec_fsm_slave_t *fsm /**< Slave state machine. */
+        )
+{
+    if (fsm->state == ec_fsm_slave_state_idle) {
+        if (fsm->slave->master->debug_level) {
+            EC_DBG("Slave %u ready for SDO/FOE.\n",
+                    fsm->slave->ring_position);
+        }
+        fsm->state = ec_fsm_slave_state_ready;
+    }
+    return;
 }
 
 /******************************************************************************
@@ -135,10 +138,10 @@
  *
  */
 void ec_fsm_slave_state_idle(
-		ec_fsm_slave_t *fsm /**< Slave state machine. */
-        )
-{
-	// do nothing
+        ec_fsm_slave_t *fsm /**< Slave state machine. */
+        )
+{
+    // do nothing
 }
 
 
@@ -149,18 +152,17 @@
  *
  */
 void ec_fsm_slave_state_ready(
-		ec_fsm_slave_t *fsm /**< Slave state machine. */
-		)
-{
-	// Check for pending external SDO requests
-	if (ec_fsm_slave_action_process_sdo(fsm))
-		return;
-	// Check for pending FOE requests
-	if (ec_fsm_slave_action_process_foe(fsm))
-		return;
-
-}
-
+        ec_fsm_slave_t *fsm /**< Slave state machine. */
+        )
+{
+    // Check for pending external SDO requests
+    if (ec_fsm_slave_action_process_sdo(fsm))
+        return;
+
+    // Check for pending FOE requests
+    if (ec_fsm_slave_action_process_foe(fsm))
+        return;
+}
 
 /*****************************************************************************/
 
@@ -180,25 +182,27 @@
     list_for_each_entry_safe(request, next, &slave->slave_sdo_requests, list) {
 
         list_del_init(&request->list); // dequeue
-		if (slave->current_state & EC_SLAVE_STATE_ACK_ERR) {
-			EC_WARN("Aborting SDO request, slave %u has ERROR.\n",
-					slave->ring_position);
-			request->req.state = EC_INT_REQUEST_FAILURE;
-			wake_up(&slave->sdo_queue);
-			fsm->sdo_request = NULL;
-			fsm->state = ec_fsm_slave_state_idle;
-			return 0;
-		}
-		if (slave->current_state == EC_SLAVE_STATE_INIT) {
-			EC_WARN("Aborting SDO request, slave %u is in INIT.\n",
-					slave->ring_position);
-			request->req.state = EC_INT_REQUEST_FAILURE;
-			wake_up(&slave->sdo_queue);
-			fsm->sdo_request = NULL;
-			fsm->state = ec_fsm_slave_state_idle;
-			return 0;
-		}
-		request->req.state = EC_INT_REQUEST_BUSY;
+        if (slave->current_state & EC_SLAVE_STATE_ACK_ERR) {
+            EC_WARN("Aborting SDO request, slave %u has ERROR.\n",
+                    slave->ring_position);
+            request->req.state = EC_INT_REQUEST_FAILURE;
+            wake_up(&slave->sdo_queue);
+            fsm->sdo_request = NULL;
+            fsm->state = ec_fsm_slave_state_idle;
+            return 0;
+        }
+
+        if (slave->current_state == EC_SLAVE_STATE_INIT) {
+            EC_WARN("Aborting SDO request, slave %u is in INIT.\n",
+                    slave->ring_position);
+            request->req.state = EC_INT_REQUEST_FAILURE;
+            wake_up(&slave->sdo_queue);
+            fsm->sdo_request = NULL;
+            fsm->state = ec_fsm_slave_state_idle;
+            return 0;
+        }
+
+        request->req.state = EC_INT_REQUEST_BUSY;
 
         // Found pending SDO request. Execute it!
         if (master->debug_level)
@@ -233,20 +237,20 @@
 
     // search the first request to be processed
     list_for_each_entry_safe(request, next, &slave->foe_requests, list) {
-		if (slave->current_state & EC_SLAVE_STATE_ACK_ERR) {
-			EC_WARN("Aborting FOE request, slave %u has ERROR.\n",
-					slave->ring_position);
-			request->req.state = EC_INT_REQUEST_FAILURE;
-			wake_up(&slave->sdo_queue);
-			fsm->sdo_request = NULL;
-			fsm->state = ec_fsm_slave_state_idle;
-			return 0;
-		}
-		list_del_init(&request->list); // dequeue
+        if (slave->current_state & EC_SLAVE_STATE_ACK_ERR) {
+            EC_WARN("Aborting FOE request, slave %u has ERROR.\n",
+                    slave->ring_position);
+            request->req.state = EC_INT_REQUEST_FAILURE;
+            wake_up(&slave->sdo_queue);
+            fsm->sdo_request = NULL;
+            fsm->state = ec_fsm_slave_state_idle;
+            return 0;
+        }
+        list_del_init(&request->list); // dequeue
         request->req.state = EC_INT_REQUEST_BUSY;
 
         if (master->debug_level)
-			EC_DBG("Processing FOE request for slave %u.\n",
+            EC_DBG("Processing FOE request for slave %u.\n",
                     slave->ring_position);
 
         fsm->foe_request = &request->req;
@@ -282,9 +286,9 @@
         EC_DBG("Failed to process SDO request for slave %u.\n",
                 fsm->slave->ring_position);
         request->state = EC_INT_REQUEST_FAILURE;
-		wake_up(&slave->sdo_queue);
-		fsm->sdo_request = NULL;
-		fsm->state = ec_fsm_slave_state_idle;
+        wake_up(&slave->sdo_queue);
+        fsm->sdo_request = NULL;
+        fsm->state = ec_fsm_slave_state_idle;
         return;
     }
 
@@ -297,9 +301,8 @@
     wake_up(&slave->sdo_queue);
 
     fsm->sdo_request = NULL;
-	fsm->state = ec_fsm_slave_state_ready;
-}
-
+    fsm->state = ec_fsm_slave_state_ready;
+}
 
 /*****************************************************************************/
 
@@ -338,6 +341,7 @@
     wake_up(&slave->foe_queue);
 
     fsm->foe_request = NULL;
-	fsm->state = ec_fsm_slave_state_ready;
-}
-
+    fsm->state = ec_fsm_slave_state_ready;
+}
+
+/*****************************************************************************/