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 |