tool/MasterDevice.cpp
changeset 1184 75cd6681eb08
parent 1160 f02ff486b313
child 1200 ce1a65f06efc
child 1636 b26170e168d9
equal deleted inserted replaced
1183:d77f634ab0b5 1184:75cd6681eb08
   357 
   357 
   358 void MasterDevice::sdoDownload(ec_ioctl_slave_sdo_download_t *data)
   358 void MasterDevice::sdoDownload(ec_ioctl_slave_sdo_download_t *data)
   359 {
   359 {
   360     if (ioctl(fd, EC_IOCTL_SLAVE_SDO_DOWNLOAD, data) < 0) {
   360     if (ioctl(fd, EC_IOCTL_SLAVE_SDO_DOWNLOAD, data) < 0) {
   361         stringstream err;
   361         stringstream err;
   362         err << "Failed to download Sdo: ";
       
   363         if (errno == EIO && data->abort_code) {
   362         if (errno == EIO && data->abort_code) {
   364             err << "Abort code 0x" << hex << setfill('0')
   363             throw MasterDeviceSdoAbortException(data->abort_code);
   365                 << setw(8) << data->abort_code;
       
   366         } else {
   364         } else {
   367             err << strerror(errno);
   365             err << "Failed to download Sdo: " << strerror(errno);
       
   366             throw MasterDeviceException(err);
   368         }
   367         }
   369         throw MasterDeviceException(err);
       
   370 	}
   368 	}
   371 }
   369 }
   372 
   370 
   373 /****************************************************************************/
   371 /****************************************************************************/
   374 
   372 
   375 void MasterDevice::sdoUpload(ec_ioctl_slave_sdo_upload_t *data)
   373 void MasterDevice::sdoUpload(ec_ioctl_slave_sdo_upload_t *data)
   376 {
   374 {
   377     if (ioctl(fd, EC_IOCTL_SLAVE_SDO_UPLOAD, data) < 0) {
   375     if (ioctl(fd, EC_IOCTL_SLAVE_SDO_UPLOAD, data) < 0) {
   378         stringstream err;
   376         stringstream err;
   379         err << "Failed to upload Sdo: ";
       
   380         if (errno == EIO && data->abort_code) {
   377         if (errno == EIO && data->abort_code) {
   381             err << "Abort code 0x" << hex << setfill('0')
   378             throw MasterDeviceSdoAbortException(data->abort_code);
   382                 << setw(8) << data->abort_code;
       
   383         } else {
   379         } else {
   384             err << strerror(errno);
   380             err << "Failed to upload Sdo: " << strerror(errno);
       
   381             throw MasterDeviceException(err);
   385         }
   382         }
   386         throw MasterDeviceException(err);
       
   387     }
   383     }
   388 }
   384 }
   389 
   385 
   390 /****************************************************************************/
   386 /****************************************************************************/
   391 
   387