master/fsm_slave_scan.c
changeset 2600 1a969896d52e
parent 2589 2b9c78543663
--- a/master/fsm_slave_scan.c	Thu Feb 19 15:19:29 2015 +0100
+++ b/master/fsm_slave_scan.c	Fri Feb 20 16:06:23 2015 +0100
@@ -493,8 +493,6 @@
 {
     ec_datagram_t *datagram = fsm->datagram;
     ec_slave_t *slave = fsm->slave;
-    uint16_t dl_status;
-    unsigned int i;
 
     if (datagram->state == EC_DATAGRAM_TIMED_OUT && fsm->retries--)
         return;
@@ -514,15 +512,7 @@
         return;
     }
 
-    dl_status = EC_READ_U16(datagram->data);
-    for (i = 0; i < EC_MAX_PORTS; i++) {
-        slave->ports[i].link.link_up =
-            dl_status & (1 << (4 + i)) ? 1 : 0;
-        slave->ports[i].link.loop_closed =
-            dl_status & (1 << (8 + i * 2)) ? 1 : 0;
-        slave->ports[i].link.signal_detected =
-            dl_status & (1 << (9 + i * 2)) ? 1 : 0;
-    }
+    ec_slave_set_dl_status(slave, EC_READ_U16(datagram->data));
 
 #ifdef EC_SII_ASSIGN
     ec_fsm_slave_scan_enter_assign_sii(fsm);