diff -r d77f634ab0b5 -r 75cd6681eb08 tool/MasterDevice.cpp --- a/tool/MasterDevice.cpp Fri Aug 01 09:32:35 2008 +0000 +++ b/tool/MasterDevice.cpp Fri Aug 01 10:10:55 2008 +0000 @@ -359,14 +359,12 @@ { if (ioctl(fd, EC_IOCTL_SLAVE_SDO_DOWNLOAD, data) < 0) { stringstream err; - err << "Failed to download Sdo: "; if (errno == EIO && data->abort_code) { - err << "Abort code 0x" << hex << setfill('0') - << setw(8) << data->abort_code; + throw MasterDeviceSdoAbortException(data->abort_code); } else { - err << strerror(errno); + err << "Failed to download Sdo: " << strerror(errno); + throw MasterDeviceException(err); } - throw MasterDeviceException(err); } } @@ -376,14 +374,12 @@ { if (ioctl(fd, EC_IOCTL_SLAVE_SDO_UPLOAD, data) < 0) { stringstream err; - err << "Failed to upload Sdo: "; if (errno == EIO && data->abort_code) { - err << "Abort code 0x" << hex << setfill('0') - << setw(8) << data->abort_code; + throw MasterDeviceSdoAbortException(data->abort_code); } else { - err << strerror(errno); + err << "Failed to upload Sdo: " << strerror(errno); + throw MasterDeviceException(err); } - throw MasterDeviceException(err); } }