From: Lay, Kuan Loon Date: Wed, 4 Nov 2015 10:33:14 +0000 (+0800) Subject: iio: iio add get mounting matrix X-Git-Tag: v0.9.0~37 X-Git-Url: http://review.tizen.org/git/?p=contrib%2Fmraa.git;a=commitdiff_plain;h=0bd1ab2c5388accc47cfc061567b2b07534ecce4 iio: iio add get mounting matrix Signed-off-by: Lay, Kuan Loon Signed-off-by: Brendan Le Foll --- diff --git a/api/mraa/iio.h b/api/mraa/iio.h index 4f8aa73..12c739e 100644 --- a/api/mraa/iio.h +++ b/api/mraa/iio.h @@ -120,6 +120,9 @@ mraa_result_t mraa_iio_event_extract_event(struct iio_event_data* event, int* channel, int* channel2, int* different); + +mraa_result_t mraa_iio_get_mounting_matrix(mraa_iio_context dev, float mm[9]); + /** * De-inits an mraa_iio_context device * diff --git a/src/iio/iio.c b/src/iio/iio.c index f8a3275..9dd0cb6 100644 --- a/src/iio/iio.c +++ b/src/iio/iio.c @@ -32,6 +32,7 @@ #define MAX_SIZE 128 #define IIO_DEVICE "iio:device" #define IIO_SCAN_ELEM "scan_elements" +#define IIO_MOUNTING_MATRIX "mounting_matrix" #define IIO_SLASH_DEV "/dev/" IIO_DEVICE #define IIO_SYSFS_DEVICE "/sys/bus/iio/devices/" IIO_DEVICE #define IIO_EVENTS "events" @@ -516,6 +517,27 @@ mraa_iio_event_extract_event(struct iio_event_data* event, *different = IIO_EVENT_CODE_EXTRACT_DIFF(event->id); return MRAA_SUCCESS; } + +mraa_result_t +mraa_iio_get_mounting_matrix(mraa_iio_context dev, float mm[9]) +{ + char buf[MAX_SIZE]; + FILE* fp; + int ret = 0; + int len; + int i; + + memset(buf, 0, MAX_SIZE); + snprintf(buf, MAX_SIZE, IIO_SYSFS_DEVICE "%d/" IIO_MOUNTING_MATRIX, dev->num); + fp = fopen(buf, "r"); + if (fp != NULL) { + fscanf(fp, "%f %f %f\n%f %f %f\n%f %f %f\n", &mm[0], &mm[1], &mm[2], &mm[3], &mm[4], &mm[5], + &mm[6], &mm[7], &mm[8]); + return MRAA_SUCCESS; + } + return MRAA_ERROR_UNSPECIFIED; +} + #if 0 // does stop make any sense on iio devices? mraa_result_t