Operational flag in 'ethercat config'.
authorFlorian Pose <fp@igh-essen.com>
Thu, 26 Jun 2008 13:42:23 +0000
changeset 1057 435d7f36f13d
parent 1056 7b656881e771
child 1058 1c5b19c1ae9d
Operational flag in 'ethercat config'.
master/cdev.c
master/ioctl.h
tools/Master.cpp
--- a/master/cdev.c	Thu Jun 26 13:41:42 2008 +0000
+++ b/master/cdev.c	Thu Jun 26 13:42:23 2008 +0000
@@ -858,6 +858,8 @@
                 }
                 data.sdo_count = ec_slave_config_sdo_count(sc);
                 data.attached = sc->slave != NULL;
+                data.operational = sc->slave &&
+                    sc->slave->current_state == EC_SLAVE_STATE_OP;
 
                 if (copy_to_user((void __user *) arg, &data, sizeof(data)))
                     retval = -EFAULT;
--- a/master/ioctl.h	Thu Jun 26 13:41:42 2008 +0000
+++ b/master/ioctl.h	Thu Jun 26 13:42:23 2008 +0000
@@ -296,7 +296,9 @@
         uint32_t pdo_count;
     } syncs[16];
     uint32_t sdo_count;
-    uint8_t attached;
+    uint8_t attached    : 1,
+            operational : 1;
+    
 } ec_ioctl_config_t;
 
 /*****************************************************************************/
--- a/tools/Master.cpp	Thu Jun 26 13:41:42 2008 +0000
+++ b/tools/Master.cpp	Thu Jun 26 13:42:23 2008 +0000
@@ -198,7 +198,8 @@
             << hex << setw(8) << config.vendor_id << endl
             << "Product code: 0x"
             << hex << setw(8) << config.product_code << endl
-            << "Attached: " << (config.attached ? "yes" : "no") << endl;
+            << "Attached: " << (config.attached ? "yes" : "no") << endl
+            << "Operational: " << (config.operational ? "yes" : "no") << endl;
 
         for (j = 0; j < 16; j++) {
             if (config.syncs[j].pdo_count) {