lib/master.c
branchstable-1.5
changeset 2124 c4afc5fede19
parent 2062 9cc8f64726bb
child 2241 0ba77ef52922
--- a/lib/master.c	Mon Oct 24 10:47:36 2011 +0200
+++ b/lib/master.c	Mon Oct 24 10:49:27 2011 +0200
@@ -340,6 +340,34 @@
     download.slave_position = slave_position;
     download.sdo_index = index;
     download.sdo_entry_subindex = subindex;
+    download.complete_access = 0;
+    download.data_size = data_size;
+    download.data = data;
+
+    if (ioctl(master->fd, EC_IOCTL_SLAVE_SDO_DOWNLOAD, &download) == -1) {
+        if (errno == EIO && abort_code) {
+            *abort_code = download.abort_code;
+        }
+        fprintf(stderr, "Failed to execute SDO download: %s\n",
+            strerror(errno));
+        return -1;
+    }
+
+    return 0;
+}
+
+/*****************************************************************************/
+
+int ecrt_master_sdo_download_complete(ec_master_t *master,
+        uint16_t slave_position, uint16_t index, uint8_t *data,
+        size_t data_size, uint32_t *abort_code)
+{
+    ec_ioctl_slave_sdo_download_t download;
+
+    download.slave_position = slave_position;
+    download.sdo_index = index;
+    download.sdo_entry_subindex = 0;
+    download.complete_access = 1;
     download.data_size = data_size;
     download.data = data;