diff -r ee18735e534f -r 66edd310830c tool/CommandConfig.cpp --- a/tool/CommandConfig.cpp Thu Aug 13 10:13:02 2009 +0200 +++ b/tool/CommandConfig.cpp Thu Aug 13 13:53:56 2009 +0200 @@ -131,7 +131,7 @@ ) { ConfigList::const_iterator configIter; - unsigned int j, k, l; + unsigned int i, j, k, l; ec_ioctl_slave_t slave; ec_ioctl_config_pdo_t pdo; ec_ioctl_config_pdo_entry_t entry; @@ -217,26 +217,23 @@ << hex << setfill('0') << setw(4) << sdo.index << ":" << setw(2) << (unsigned int) sdo.subindex - << ", " << dec << sdo.size << " byte: " << hex; - - switch (sdo.size) { - case 1: - cout << "0x" << setw(2) - << (unsigned int) *(uint8_t *) &sdo.data; - break; - case 2: - cout << "0x" << setw(4) - << le16_to_cpup(&sdo.data); - break; - case 4: - cout << "0x" << setw(8) - << le32_to_cpup(&sdo.data); - break; - default: - cout << "???"; + << ", " << dec << sdo.size << " byte" << endl; + + cout << " " << hex; + for (i = 0; i < min((uint32_t) sdo.size, + (uint32_t) EC_MAX_SDO_DATA_SIZE); i++) { + cout << setw(2) << (unsigned int) sdo.data[i]; + if ((i + 1) % 16 == 0 && i < sdo.size - 1) { + cout << endl << " "; + } else { + cout << " "; + } } cout << endl; + if (sdo.size > EC_MAX_SDO_DATA_SIZE) { + cout << " ..." << endl; + } } } else { cout << " None." << endl;