tool/CommandConfig.cpp
changeset 1966 23c638a81fe7
parent 1918 c58633eed20b
child 1968 4f682084c643
--- a/tool/CommandConfig.cpp	Wed Sep 22 15:41:43 2010 +0200
+++ b/tool/CommandConfig.cpp	Sun Oct 24 08:43:44 2010 +0200
@@ -153,6 +153,7 @@
     ec_ioctl_config_pdo_t pdo;
     ec_ioctl_config_pdo_entry_t entry;
     ec_ioctl_config_sdo_t sdo;
+    ec_ioctl_config_idn_t idn;
     string indent(doIndent ? "  " : "");
 
     for (configIter = configList.begin();
@@ -259,6 +260,34 @@
             cout << indent << "  None." << endl;
         }
 
+        cout << indent << "IDN configuration:" << endl;
+        if (configIter->idn_count) {
+            for (j = 0; j < configIter->idn_count; j++) {
+                m.getConfigIdn(&idn, configIter->config_index, j);
+
+                cout << indent << "  Drive " << (unsigned int) idn.drive_no
+                    << ", " << outputIdn(idn.idn)
+                    << ", " << dec << idn.size << " byte" << endl;
+
+                cout << indent << "    " << hex << setfill('0');
+                for (i = 0; i < min((uint32_t) idn.size,
+                            (uint32_t) EC_MAX_IDN_DATA_SIZE); i++) {
+                    cout << setw(2) << (unsigned int) idn.data[i];
+                    if ((i + 1) % 16 == 0 && i < idn.size - 1) {
+                        cout << endl << indent << "    ";
+                    } else {
+                        cout << " ";
+                    }
+                }
+
+                cout << endl;
+                if (idn.size > EC_MAX_IDN_DATA_SIZE) {
+                    cout << indent << "    ..." << endl;
+                }
+            }
+        } else {
+            cout << indent << "  None." << endl;
+        }
         if (configIter->dc_assign_activate) {
             int i;