iio: Isolated use of open() to string read/write functions.
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
This commit is contained in:
committed by
Brendan Le Foll
parent
131021a629
commit
ae80d4afc8
@@ -41,7 +41,7 @@
|
|||||||
mraa_iio_context
|
mraa_iio_context
|
||||||
mraa_iio_init(int device)
|
mraa_iio_init(int device)
|
||||||
{
|
{
|
||||||
if (device > plat_iio->iio_device_count) {
|
if (plat_iio->iio_device_count == 0 || device > plat_iio->iio_device_count) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,45 +205,45 @@ mraa_iio_get_device_num_by_name(const char* name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
mraa_result_t
|
mraa_result_t
|
||||||
mraa_iio_read_float(mraa_iio_context dev, const char* filename, float* data)
|
mraa_iio_read_float(mraa_iio_context dev, const char* attr_name, float* data)
|
||||||
{
|
{
|
||||||
char buf[MAX_SIZE];
|
char buf[MAX_SIZE];
|
||||||
snprintf(buf, MAX_SIZE, IIO_SYSFS_DEVICE "%d/%s", dev->num, filename);
|
mraa_result_t result = mraa_iio_read_string(dev, attr_name, buf);
|
||||||
FILE* fp = fopen(buf, "r");
|
if (result != MRAA_SUCCESS)
|
||||||
if (fp != NULL) {
|
return result;
|
||||||
fscanf(fp, "%f\n", data);
|
int status = sscanf(buf, "%f", data);
|
||||||
fclose(fp);
|
result = status == 1 ? MRAA_SUCCESS : MRAA_ERROR_UNSPECIFIED;
|
||||||
return MRAA_SUCCESS;
|
return result;
|
||||||
}
|
}
|
||||||
return MRAA_ERROR_UNSPECIFIED;
|
|
||||||
|
|
||||||
|
mraa_result_t
|
||||||
|
mraa_iio_read_integer(mraa_iio_context dev, const char* attr_name, int* data)
|
||||||
|
{
|
||||||
|
char buf[MAX_SIZE];
|
||||||
|
mraa_result_t result = mraa_iio_read_string(dev, attr_name, buf);
|
||||||
|
if (result != MRAA_SUCCESS)
|
||||||
|
return result;
|
||||||
|
int status = sscanf(buf, "%d", data);
|
||||||
|
result = status == 1 ? MRAA_SUCCESS : MRAA_ERROR_UNSPECIFIED;
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
mraa_result_t
|
mraa_result_t
|
||||||
mraa_iio_read_integer(mraa_iio_context dev, const char* filename, int* data)
|
mraa_iio_read_string(mraa_iio_context dev, const char* attr_name, char* data)
|
||||||
{
|
{
|
||||||
char buf[MAX_SIZE];
|
char buf[MAX_SIZE];
|
||||||
snprintf(buf, MAX_SIZE, IIO_SYSFS_DEVICE "%d/%s", dev->num, filename);
|
mraa_result_t result = MRAA_ERROR_UNSPECIFIED;
|
||||||
FILE* fp = fopen(buf, "r");
|
snprintf(buf, MAX_SIZE, IIO_SYSFS_DEVICE "%d/%s", dev->num, attr_name);
|
||||||
if (fp != NULL) {
|
int fd = open(buf, O_RDONLY);
|
||||||
fscanf(fp, "%d\n", data);
|
if (fd != -1) {
|
||||||
fclose(fp);
|
ssize_t len = read(fd, data, MAX_SIZE);
|
||||||
return MRAA_SUCCESS;
|
if (len > 0)
|
||||||
|
result = MRAA_SUCCESS;
|
||||||
|
close(fd);
|
||||||
}
|
}
|
||||||
return MRAA_ERROR_UNSPECIFIED;
|
return result;
|
||||||
}
|
|
||||||
|
|
||||||
mraa_result_t
|
|
||||||
mraa_iio_read_string(mraa_iio_context dev, const char* filename, char* data)
|
|
||||||
{
|
|
||||||
char buf[MAX_SIZE];
|
|
||||||
snprintf(buf, MAX_SIZE, IIO_SYSFS_DEVICE "%d/%s", dev->num, filename);
|
|
||||||
FILE* fp = fopen(buf, "r");
|
|
||||||
if (fp != NULL) {
|
|
||||||
fscanf(fp, "%s\n", data);
|
|
||||||
fclose(fp);
|
|
||||||
return MRAA_SUCCESS;
|
|
||||||
}
|
|
||||||
return MRAA_ERROR_UNSPECIFIED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mraa_result_t
|
mraa_result_t
|
||||||
@@ -255,17 +255,11 @@ mraa_iio_write_float(mraa_iio_context dev, const char* attr_name, const float da
|
|||||||
}
|
}
|
||||||
|
|
||||||
mraa_result_t
|
mraa_result_t
|
||||||
mraa_iio_write_integer(mraa_iio_context dev, const char* filename, const int data)
|
mraa_iio_write_integer(mraa_iio_context dev, const char* attr_name, const int data)
|
||||||
{
|
{
|
||||||
char buf[MAX_SIZE];
|
char buf[MAX_SIZE];
|
||||||
snprintf(buf, MAX_SIZE, IIO_SYSFS_DEVICE "%d/%s", dev->num, filename);
|
snprintf(buf, MAX_SIZE, "%d", data);
|
||||||
FILE* fp = fopen(buf, "w");
|
return mraa_iio_write_string(dev, attr_name, buf);
|
||||||
if (fp != NULL) {
|
|
||||||
fprintf(fp, "%d", data);
|
|
||||||
fclose(fp);
|
|
||||||
return MRAA_SUCCESS;
|
|
||||||
}
|
|
||||||
return MRAA_ERROR_UNSPECIFIED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mraa_result_t
|
mraa_result_t
|
||||||
@@ -274,13 +268,13 @@ mraa_iio_write_string(mraa_iio_context dev, const char* attr_name, const char* d
|
|||||||
char buf[MAX_SIZE];
|
char buf[MAX_SIZE];
|
||||||
mraa_result_t result = MRAA_ERROR_UNSPECIFIED;
|
mraa_result_t result = MRAA_ERROR_UNSPECIFIED;
|
||||||
snprintf(buf, MAX_SIZE, IIO_SYSFS_DEVICE "%d/%s", dev->num, attr_name);
|
snprintf(buf, MAX_SIZE, IIO_SYSFS_DEVICE "%d/%s", dev->num, attr_name);
|
||||||
int fh = open(buf, O_RDWR);
|
int fd = open(buf, O_WRONLY);
|
||||||
if (fh != -1) {
|
if (fd != -1) {
|
||||||
size_t len = strlen(data);
|
size_t len = strlen(data);
|
||||||
ssize_t status = write(fh, data, len);
|
ssize_t status = write(fd, data, len);
|
||||||
printf("mraa_iio_write_string status %d\n", status);
|
|
||||||
if (status == len)
|
if (status == len)
|
||||||
result = MRAA_SUCCESS;
|
result = MRAA_SUCCESS;
|
||||||
|
close(fd);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -320,7 +314,7 @@ mraa_iio_trigger_handler(void* arg)
|
|||||||
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
|
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
|
||||||
// only can process if readsize >= enabled channel's datasize
|
// only can process if readsize >= enabled channel's datasize
|
||||||
for (i = 0; i < (read_size / dev->datasize); i++) {
|
for (i = 0; i < (read_size / dev->datasize); i++) {
|
||||||
dev->isr(&data);
|
dev->isr((void*)&data);
|
||||||
}
|
}
|
||||||
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
|
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
|
||||||
} else {
|
} else {
|
||||||
@@ -610,11 +604,10 @@ mraa_iio_update_channels(mraa_iio_context dev)
|
|||||||
}
|
}
|
||||||
return MRAA_SUCCESS;
|
return MRAA_SUCCESS;
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
// does stop make any sense on iio devices?
|
|
||||||
mraa_result_t
|
mraa_result_t
|
||||||
mraa_iio_stop(mraa_iio_context dev)
|
mraa_iio_stop(mraa_iio_context dev)
|
||||||
{
|
{
|
||||||
|
free(dev->channels);
|
||||||
return MRAA_SUCCESS;
|
return MRAA_SUCCESS;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|||||||
Reference in New Issue
Block a user