diff -r 4c16fe64b403 -r 2be8918682fa tools/Master.cpp --- a/tools/Master.cpp Tue Jun 24 10:55:40 2008 +0000 +++ b/tools/Master.cpp Thu Jun 26 13:16:15 2008 +0000 @@ -200,11 +200,12 @@ << hex << setw(8) << config.product_code << endl << "Attached: " << (config.attached ? "yes" : "no") << endl; - for (j = 0; j < 2; j++) { - if (config.pdo_count[j]) { - cout << (j ? "Input" : "Output") - << " Pdo assignment / mapping " << endl; - for (k = 0; k < config.pdo_count[j]; k++) { + for (j = 0; j < 16; j++) { + if (config.syncs[j].pdo_count) { + cout << "SM" << dec << j << " (" + << (config.syncs[j].dir == EC_DIR_INPUT + ? "Input" : "Output") << ")" << endl; + for (k = 0; k < config.syncs[j].pdo_count; k++) { getConfigPdo(&pdo, i, j, k); cout << " Pdo 0x" @@ -1190,7 +1191,7 @@ cout << " SlaveConfig " << fmmu.slave_config_alias << ":" << fmmu.slave_config_position << ", Dir " - << setfill(' ') << setw(3) << (fmmu.fmmu_dir ? "In" : "Out") + << setfill(' ') << setw(3) << (fmmu.dir == EC_DIR_INPUT ? "In" : "Out") << ", LogAddr 0x" << hex << setfill('0') << setw(8) << fmmu.logical_address << ", Size " << dec << fmmu.data_size << endl; @@ -1250,7 +1251,8 @@ for (j = 0; j < sync.pdo_count; j++) { getPdo(&pdo, slavePosition, i, j); - cout << " " << (pdo.dir ? "T" : "R") << "xPdo 0x" + cout << " " << (sync.control_register & 0x04 ? "R" : "T") + << "xPdo 0x" << hex << setfill('0') << setw(4) << pdo.index << " \"" << pdo.name << "\"" << endl; @@ -1423,6 +1425,7 @@ ec_ioctl_slave_t slave; ec_ioctl_sync_t sync; ec_ioctl_pdo_t pdo; + string pdoType; ec_ioctl_pdo_entry_t entry; unsigned int i, j, k; @@ -1449,9 +1452,11 @@ for (j = 0; j < sync.pdo_count; j++) { getPdo(&pdo, slavePosition, i, j); + pdoType = (sync.control_register & 0x04 ? "R" : "T"); + pdoType += "xPdo"; cout - << " <" << (pdo.dir ? "T" : "R") << "xPdo>" << endl + << " <" << pdoType << ">" << endl << " #x" << hex << setfill('0') << setw(4) << pdo.index << "" << endl @@ -1503,7 +1508,7 @@ } cout - << " " << endl; + << " " << endl; } } @@ -1553,12 +1558,12 @@ void Master::getConfigPdo( ec_ioctl_config_pdo_t *data, unsigned int index, - unsigned int dir, - unsigned int pdo_pos + uint8_t sync_index, + uint16_t pdo_pos ) { data->config_index = index; - data->direction = dir; + data->sync_index = sync_index; data->pdo_pos = pdo_pos; if (ioctl(fd, EC_IOCTL_CONFIG_PDO, data) < 0) { @@ -1573,13 +1578,13 @@ void Master::getConfigPdoEntry( ec_ioctl_config_pdo_entry_t *data, unsigned int index, - unsigned int dir, - unsigned int pdo_pos, - unsigned int entry_pos + uint8_t sync_index, + uint16_t pdo_pos, + uint8_t entry_pos ) { data->config_index = index; - data->direction = dir; + data->sync_index = sync_index; data->pdo_pos = pdo_pos; data->entry_pos = entry_pos;