OSDN Git Service

iio-sensors: Refactor sensor_catalog definition
authorDaniel Baluta <daniel.baluta@intel.com>
Thu, 11 Dec 2014 13:57:32 +0000 (15:57 +0200)
committerGerrit Code Review <gerrit2@irsgerrit001.ir.intel.com>
Fri, 6 Feb 2015 10:15:19 +0000 (10:15 +0000)
Next patches will introduce event support to IIO sensor catalog.
Following the current approach that uses DECLARE_SENSOR_X for
a sensor with X channels, we will have to introduce a macro like
DECLARE_SENSOR_X_Y for a sensor with X channels, each channel having
Y events. But this isn't scalable!

So, instead of using macros for sensor catalog entries lets keep it
simple and use inline definition for each channel. The same will be
done for events.

Change-Id: I12ac7ba07a3115ae85f7ebab835a73fd738bace2
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
enumeration.c
enumeration.h

index 77f837d..6abbbc7 100644 (file)
   */
 
 sensor_catalog_entry_t sensor_catalog[] = {
-       DECLARE_SENSOR3("accel",      SENSOR_TYPE_ACCELEROMETER,  "x", "y", "z")
-       DECLARE_SENSOR3("anglvel",    SENSOR_TYPE_GYROSCOPE,      "x", "y", "z")
-       DECLARE_SENSOR3("magn",       SENSOR_TYPE_MAGNETIC_FIELD, "x", "y", "z")
-       DECLARE_SENSOR1("intensity",  SENSOR_TYPE_LIGHT,          "both"       )
-       DECLARE_SENSOR0("illuminance",SENSOR_TYPE_LIGHT                        )
-       DECLARE_SENSOR3("incli",      SENSOR_TYPE_ORIENTATION,    "x", "y", "z")
-       DECLARE_SENSOR4("rot",        SENSOR_TYPE_ROTATION_VECTOR,
-                                        "quat_x", "quat_y", "quat_z", "quat_w")
-       DECLARE_SENSOR0("temp",       SENSOR_TYPE_AMBIENT_TEMPERATURE          )
-       DECLARE_SENSOR0("proximity",  SENSOR_TYPE_PROXIMITY                    )
-       DECLARE_VIRTUAL(SENSOR_TYPE_GYROSCOPE_UNCALIBRATED                     )
-       DECLARE_VIRTUAL(SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED                 )
+       {
+               .tag            = "accel",
+               .type           = SENSOR_TYPE_ACCELEROMETER,
+               .num_channels   = 3,
+               .is_virtual     = 0,
+               .channel = {
+                       { DECLARE_NAMED_CHANNEL("accel", "x") },
+                       { DECLARE_NAMED_CHANNEL("accel", "y") },
+                       { DECLARE_NAMED_CHANNEL("accel", "z") },
+               },
+       },
+       {
+               .tag            = "anglvel",
+               .type           = SENSOR_TYPE_GYROSCOPE,
+               .num_channels   = 3,
+               .is_virtual     = 0,
+               .channel = {
+                       { DECLARE_NAMED_CHANNEL("anglvel", "x") },
+                       { DECLARE_NAMED_CHANNEL("anglvel", "y") },
+                       { DECLARE_NAMED_CHANNEL("anglvel", "z") },
+               },
+       },
+       {
+               .tag            = "magn",
+               .type           = SENSOR_TYPE_MAGNETIC_FIELD,
+               .num_channels   = 3,
+               .is_virtual     = 0,
+               .channel = {
+                       { DECLARE_NAMED_CHANNEL("magn", "x") },
+                       { DECLARE_NAMED_CHANNEL("magn", "y") },
+                       { DECLARE_NAMED_CHANNEL("magn", "z") },
+               },
+       },
+       {
+               .tag            = "intensity",
+               .type           = SENSOR_TYPE_LIGHT,
+               .num_channels   = 1,
+               .is_virtual     = 0,
+               .channel = {
+                       { DECLARE_NAMED_CHANNEL("intensity", "both") },
+               },
+       },
+       {
+               .tag            = "illuminance",
+               .type           = SENSOR_TYPE_LIGHT,
+               .num_channels   = 1,
+               .is_virtual     = 0,
+               .channel = {
+                       { DECLARE_GENERIC_CHANNEL("illuminance") },
+               },
+       },
+       {
+               .tag            = "incli",
+               .type           = SENSOR_TYPE_ORIENTATION,
+               .num_channels   = 3,
+               .is_virtual     = 0,
+               .channel = {
+                       { DECLARE_NAMED_CHANNEL("incli", "x") },
+                       { DECLARE_NAMED_CHANNEL("incli", "y") },
+                       { DECLARE_NAMED_CHANNEL("incli", "z") },
+               },
+       },
+       {
+               .tag            = "rot",
+               .type           = SENSOR_TYPE_ROTATION_VECTOR,
+               .num_channels   = 4,
+               .is_virtual     = 0,
+               .channel = {
+                       { DECLARE_NAMED_CHANNEL("rot", "quat_x") },
+                       { DECLARE_NAMED_CHANNEL("rot", "quat_y") },
+                       { DECLARE_NAMED_CHANNEL("rot", "quat_z") },
+                       { DECLARE_NAMED_CHANNEL("rot", "quat_w") },
+               },
+       },
+       {
+               .tag            = "temp",
+               .type           = SENSOR_TYPE_AMBIENT_TEMPERATURE,
+               .num_channels   = 1,
+               .is_virtual     = 0,
+               .channel = {
+                       { DECLARE_GENERIC_CHANNEL("temp") },
+               },
+       },
+       {
+               .tag            = "proximity",
+               .type           = SENSOR_TYPE_PROXIMITY,
+               .num_channels   = 1,
+               .is_virtual     = 0,
+               .channel = {
+                       { DECLARE_GENERIC_CHANNEL("proximity") },
+               },
+       },
+       {
+               .tag            = "",
+               .type           = SENSOR_TYPE_GYROSCOPE_UNCALIBRATED,
+               .num_channels   = 0,
+               .is_virtual     = 1,
+               .channel = {
+                       { DECLARE_GENERIC_CHANNEL("") },
+               },
+
+       },
+       {
+               .tag            = "",
+               .type           = SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED,
+               .num_channels   = 0,
+               .is_virtual     = 1,
+               .channel = {
+                       { DECLARE_GENERIC_CHANNEL("") },
+               },
+       },
 };
 
 #define CATALOG_SIZE   ARRAY_SIZE(sensor_catalog)
index 059213d..ae46702 100644 (file)
@@ -14,7 +14,6 @@
  */
 
 #define DECLARE_CHANNEL(tag, spacer, name)             \
-               {                                       \
                        name,                           \
                        "in_"tag spacer name"_en",      \
                        "in_"tag spacer name"_type",    \
                        "in_"tag spacer name"_raw",     \
                        "in_"tag spacer name"_input",   \
                        "in_"tag spacer name"_scale",   \
-                },
 
 #define DECLARE_NAMED_CHANNEL(tag, name)       DECLARE_CHANNEL(tag, "_", name)
 
 #define DECLARE_GENERIC_CHANNEL(tag)           DECLARE_CHANNEL(tag, "", "")
 
-#define DECLARE_VIRTUAL(type)                  \
-{                                                      \
-       "", type, 0, 1,                         \
-       {                                               \
-               DECLARE_GENERIC_CHANNEL("")             \
-       }                                               \
-},
-
-#define DECLARE_SENSOR0(tag, type)                     \
-{                                                      \
-       tag, type, 1, 0,                                        \
-       {                                               \
-               DECLARE_GENERIC_CHANNEL(tag)            \
-       }                                               \
-},
-
-#define DECLARE_SENSOR1(tag, type, ch1)                        \
-{                                                      \
-       tag, type, 1, 0,                                        \
-       {                                               \
-               DECLARE_NAMED_CHANNEL(tag, ch1)         \
-       }                                               \
-},
-
-#define DECLARE_SENSOR2(tag, type, ch1, ch2)           \
-{                                                      \
-       tag, type, 2, 0,                                        \
-       {                                               \
-               DECLARE_NAMED_CHANNEL(tag, ch1)         \
-               DECLARE_NAMED_CHANNEL(tag, ch2)         \
-       }                                               \
-},
-
-#define DECLARE_SENSOR3(tag, type, ch1, ch2, ch3)      \
-{                                                      \
-       tag, type, 3, 0,                                \
-       {                                               \
-               DECLARE_NAMED_CHANNEL(tag, ch1)         \
-               DECLARE_NAMED_CHANNEL(tag, ch2)         \
-               DECLARE_NAMED_CHANNEL(tag, ch3)         \
-       }                                               \
-},
-
-#define DECLARE_SENSOR4(tag, type, ch1, ch2, ch3, ch4) \
-{                                                      \
-       tag, type, 4, 0,                                        \
-       {                                               \
-               DECLARE_NAMED_CHANNEL(tag, ch1)         \
-               DECLARE_NAMED_CHANNEL(tag, ch2)         \
-               DECLARE_NAMED_CHANNEL(tag, ch3)         \
-               DECLARE_NAMED_CHANNEL(tag, ch4)         \
-       }                                               \
-},
-
 int    get_sensors_list        (struct sensors_module_t* module,
                                 struct sensor_t const** list);