tools/Master.cpp
changeset 970 b7cbff36bc01
parent 968 b0e894257743
child 972 ad59641a68c8
equal deleted inserted replaced
969:e259df107c92 970:b7cbff36bc01
   391     }
   391     }
   392 
   392 
   393     if (dataType->byteSize && data.data_size != dataType->byteSize) {
   393     if (dataType->byteSize && data.data_size != dataType->byteSize) {
   394         stringstream err;
   394         stringstream err;
   395         err << "Data type mismatch. Expected " << dataType->name
   395         err << "Data type mismatch. Expected " << dataType->name
   396             << " with " << dataType->byteSize << " byte(s), but got "
   396             << " with " << dataType->byteSize << " byte, but got "
   397             << data.data_size << " byte(s).";
   397             << data.data_size << " byte.";
   398         throw MasterException(err.str());
   398         throw MasterException(err.str());
   399     }
   399     }
   400 
   400 
   401     cout << setfill('0');
   401     cout << setfill('0');
   402     switch (dataType->coeCode) {
   402     switch (dataType->coeCode) {
   654 {
   654 {
   655     ec_ioctl_slave_t slave;
   655     ec_ioctl_slave_t slave;
   656     ec_ioctl_sdo_t sdo;
   656     ec_ioctl_sdo_t sdo;
   657     ec_ioctl_sdo_entry_t entry;
   657     ec_ioctl_sdo_entry_t entry;
   658     unsigned int i, j, k;
   658     unsigned int i, j, k;
       
   659     const CoEDataType *d;
   659     
   660     
   660     getSlave(&slave, slavePosition);
   661     getSlave(&slave, slavePosition);
   661 
   662 
   662     if (withHeader)
   663     if (withHeader)
   663         cout << "=== Slave " << slavePosition << " ===" << endl;
   664         cout << "=== Slave " << slavePosition << " ===" << endl;
   664 
   665 
   665     for (i = 0; i < slave.sdo_count; i++) {
   666     for (i = 0; i < slave.sdo_count; i++) {
   666         getSdo(&sdo, slavePosition, i);
   667         getSdo(&sdo, slavePosition, i);
   667 
   668 
   668         cout << "Sdo 0x"
   669         cout << "Sdo "
   669             << hex << setfill('0') << setw(4) << sdo.sdo_index
   670             << hex << setfill('0') << setw(4) << sdo.sdo_index
   670             << ", \"" << sdo.name << "\"" << endl;
   671             << ", \"" << sdo.name << "\"" << endl;
   671 
   672 
   672         if (quiet)
   673         if (quiet)
   673             continue;
   674             continue;
   674 
   675 
   675         for (j = 0; j <= sdo.max_subindex; j++) {
   676         for (j = 0; j <= sdo.max_subindex; j++) {
   676             getSdoEntry(&entry, slavePosition, -i, j);
   677             getSdoEntry(&entry, slavePosition, -i, j);
   677 
   678 
   678             cout << "  Entry 0x"
   679             cout << "  " << hex << setfill('0') << setw(2)
   679                 << hex << setfill('0') << setw(2)
       
   680                 << (unsigned int) entry.sdo_entry_subindex
   680                 << (unsigned int) entry.sdo_entry_subindex
   681                 << ", type 0x" << setw(4) << entry.data_type
   681                 << ", ";
   682                 << ", " << dec << entry.bit_length << " bit, \""
   682 
       
   683             if ((d = findDataType(entry.data_type))) {
       
   684                 cout << d->name;
       
   685             } else {
       
   686                 cout << "type " << setw(4) << entry.data_type;
       
   687             }
       
   688 
       
   689             cout << ", " << dec << entry.bit_length << " bit, \""
   683                 << entry.description << "\"" << endl;
   690                 << entry.description << "\"" << endl;
   684         }
   691         }
   685     }
   692     }
   686 }
   693 }
   687 
   694