iio: added mraa_iio_write
authorLay, Kuan Loon <kuan.loon.lay@intel.com>
Mon, 19 Oct 2015 08:26:38 +0000 (16:26 +0800)
committerBrendan Le Foll <brendan.le.foll@intel.com>
Tue, 15 Dec 2015 10:42:06 +0000 (10:42 +0000)
Signed-off-by: Lay, Kuan Loon <kuan.loon.lay@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
api/mraa/iio.h
src/iio/iio.c

index a800f96..f57471a 100644 (file)
@@ -98,7 +98,7 @@ mraa_result_t mraa_iio_read(mraa_iio_context dev, const char* attribute, float*
 /**
  *
  */
-mraa_result_t mraa_iio_write(mraa_iio_context dev, const char* attribute);
+mraa_result_t mraa_iio_write(mraa_iio_context dev, const char* attr_chan, const char* data);
 
 mraa_result_t mraa_iio_get_channel_data(mraa_iio_context dev);
 
index 8297ff5..16bf575 100644 (file)
@@ -208,9 +208,16 @@ mraa_iio_read(mraa_iio_context dev, const char* attr_chan, float* data)
 }
 
 mraa_result_t
-mraa_iio_write(mraa_iio_context dev, const char* attr_chan)
+mraa_iio_write(mraa_iio_context dev, const char* attr_chan, const char* data)
 {
-    return MRAA_ERROR_FEATURE_NOT_IMPLEMENTED;
+    char buf[128];
+    snprintf(buf, 128, IIO_SYSFS_DEVICE "%d/%s", dev->num, attr_chan);
+    int fd = open(buf, O_WRONLY);
+    if (fd != -1) {
+        write(fd, data, (strlen(data)+1));
+        return MRAA_SUCCESS;
+    }
+    return MRAA_ERROR_UNSPECIFIED;
 }
 
 static mraa_result_t