diff -r c589b54ade01 -r 1fc1535dec29 tool/CommandXml.cpp --- a/tool/CommandXml.cpp Fri Jul 25 14:14:47 2008 +0000 +++ b/tool/CommandXml.cpp Fri Jul 25 14:19:29 2008 +0000 @@ -45,32 +45,30 @@ void CommandXml::execute(MasterDevice &m, const StringVector &args) { + SlaveList slaves; + SlaveList::const_iterator si; + m.open(MasterDevice::Read); + slaves = selectedSlaves(m); - if (slavePosition == -1) { - unsigned int numSlaves = m.slaveCount(), i; - - for (i = 0; i < numSlaves; i++) { - generateSlaveXml(m, i); - } - } else { - generateSlaveXml(m, slavePosition); + for (si = slaves.begin(); si != slaves.end(); si++) { + generateSlaveXml(m, *si); } } /****************************************************************************/ -void CommandXml::generateSlaveXml(MasterDevice &m, uint16_t slavePosition) +void CommandXml::generateSlaveXml( + MasterDevice &m, + const ec_ioctl_slave_t &slave + ) { - ec_ioctl_slave_t slave; ec_ioctl_slave_sync_t sync; ec_ioctl_slave_sync_pdo_t pdo; string pdoType; ec_ioctl_slave_sync_pdo_entry_t entry; unsigned int i, j, k; - m.getSlave(&slave, slavePosition); - cout << "" << endl << " " << endl @@ -95,7 +93,7 @@ } for (i = 0; i < slave.sync_count; i++) { - m.getSync(&sync, slavePosition, i); + m.getSync(&sync, slave.position, i); cout << " " << pdo.name << "" << endl; for (k = 0; k < pdo.entry_count; k++) { - m.getPdoEntry(&entry, slavePosition, i, j, k); + m.getPdoEntry(&entry, slave.position, i, j, k); cout << " " << endl