- buf[(strlen(buf) - 5)] = '\0';
- char* str = strdup(buf);
- // grab the enable flag of channel
- snprintf(buf, MAX_SIZE, "%sen", str);
- fd = open(buf, O_RDONLY);
- if (fd > 0) {
- if (read(fd, readbuf, 2 * sizeof(char)) != 2) {
- syslog(LOG_ERR, "iio: Failed to read a sensible value from sysfs");
- return -1;
+ buf[(strlen(buf) - 5)] = '\0';
+ char* str = strdup(buf);
+ // grab the enable flag of channel
+ snprintf(buf, MAX_SIZE, "%sen", str);
+ fd = open(buf, O_RDONLY);
+ if (fd > 0) {
+ if (read(fd, readbuf, 2 * sizeof(char)) != 2) {
+ syslog(LOG_ERR, "iio: Failed to read a sensible value from sysfs");
+ free(str);
+ return -1;
+ }
+ chan->enabled = (int) strtol(readbuf, NULL, 10);
+ // only calculate enable buffer size for trigger buffer extract data
+ if (chan->enabled) {
+ dev->datasize += chan->bytes;
+ }
+ close(fd);