Private
Public Access
2
0

iio: iio add get mounting matrix

Signed-off-by: Lay, Kuan Loon <kuan.loon.lay@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
Lay, Kuan Loon
2015-11-04 18:33:14 +08:00
committed by Brendan Le Foll
parent edb7f8a215
commit 0bd1ab2c53
2 changed files with 25 additions and 0 deletions

View File

@@ -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
*

View File

@@ -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