OSDN Git Service

Add support for sensor specific available sampling frequencies
authorlambdadroid <lambdadroid@gmail.com>
Mon, 14 Jan 2019 18:48:16 +0000 (19:48 +0100)
committerlambdadroid <lambdadroid@gmail.com>
Mon, 14 Jan 2019 18:48:16 +0000 (19:48 +0100)
Change-Id: Iad0e5aed487a35d32ee7333599316f72915bd858

common.h
description.c

index fdd6c4d..8ffa528 100644 (file)
--- a/common.h
+++ b/common.h
@@ -40,6 +40,7 @@
 #define SENSOR_OFFSET_PATH     BASE_PATH "in_%s_offset"
 #define SENSOR_SCALE_PATH      BASE_PATH "in_%s_scale"
 #define SENSOR_SAMPLING_PATH   BASE_PATH "in_%s_sampling_frequency"
+#define SENSOR_AVAIL_FREQ_PATH BASE_PATH "in_%s_sampling_frequency_available"
 #define DEVICE_SAMPLING_PATH   BASE_PATH "sampling_frequency"
 #define DEVICE_AVAIL_FREQ_PATH BASE_PATH "sampling_frequency_available"
 #define ILLUMINATION_CALIBPATH BASE_PATH "in_illuminance_calibscale"
index 685b7eb..60a0b1e 100644 (file)
@@ -482,6 +482,7 @@ int sensor_get_order (int s, unsigned char map[MAX_CHANNELS])
 int sensor_get_available_frequencies (int s)
 {
        int dev_num = sensor[s].dev_num, err, i;
+       const char *prefix = sensor_catalog[sensor[s].catalog_index].tag;
        char avail_sysfs_path[PATH_MAX], freqs_buf[100];
        char *p, *end;
        float f;
@@ -492,8 +493,12 @@ int sensor_get_available_frequencies (int s)
        sprintf(avail_sysfs_path, DEVICE_AVAIL_FREQ_PATH, dev_num);
 
        err = sysfs_read_str(avail_sysfs_path, freqs_buf, sizeof(freqs_buf));
-       if (err < 0)
-               return 0;
+       if (err < 0) {
+               sprintf(avail_sysfs_path, SENSOR_AVAIL_FREQ_PATH, dev_num, prefix);
+               err = sysfs_read_str(avail_sysfs_path, freqs_buf, sizeof(freqs_buf));
+               if (err < 0)
+                       return 0;
+       }
 
        for (p = freqs_buf, f = strtof(p, &end); p != end; p = end, f = strtof(p, &end))
                sensor[s].avail_freqs_count++;