From 85e75cf9f8be4698ec45c8dd40ba1499de11acef Mon Sep 17 00:00:00 2001
From: Leandro Lanzieri <leandro.lanzieri@haw-hamburg.de>
Date: Fri, 15 Feb 2019 13:32:35 +0100
Subject: [PATCH] drivers/saul: Add capacitance and voltage types

---
 drivers/include/saul.h  | 64 ++++++++++++++++++++-------------------
 drivers/saul/saul_str.c | 66 +++++++++++++++++++++--------------------
 2 files changed, 67 insertions(+), 63 deletions(-)

diff --git a/drivers/include/saul.h b/drivers/include/saul.h
index 17da75990e..b8a62d145e 100644
--- a/drivers/include/saul.h
+++ b/drivers/include/saul.h
@@ -72,37 +72,39 @@ extern "C" {
  * This list is not exhaustive, extend to your needs!
  */
 enum {
-    SAUL_CLASS_UNDEF    = 0x00,     /**< device class undefined */
-    SAUL_ACT_ANY        = 0x40,     /**< any actuator - wildcard */
-    SAUL_ACT_LED_RGB    = 0x42,     /**< actuator: RGB LED */
-    SAUL_ACT_SERVO      = 0x43,     /**< actuator: servo motor */
-    SAUL_ACT_MOTOR      = 0x44,     /**< actuator: motor */
-    SAUL_ACT_SWITCH     = 0x45,     /**< actuator: simple on/off switch */
-    SAUL_ACT_DIMMER     = 0x46,     /**< actuator: dimmable switch */
-    SAUL_SENSE_ANY      = 0x80,     /**< any sensor - wildcard */
-    SAUL_SENSE_BTN      = 0x81,     /**< sensor: simple button */
-    SAUL_SENSE_TEMP     = 0x82,     /**< sensor: temperature */
-    SAUL_SENSE_HUM      = 0x83,     /**< sensor: humidity */
-    SAUL_SENSE_LIGHT    = 0x84,     /**< sensor: light */
-    SAUL_SENSE_ACCEL    = 0x85,     /**< sensor: accelerometer */
-    SAUL_SENSE_MAG      = 0x86,     /**< sensor: magnetometer */
-    SAUL_SENSE_GYRO     = 0x87,     /**< sensor: gyroscope */
-    SAUL_SENSE_COLOR    = 0x88,     /**< sensor: (light) color */
-    SAUL_SENSE_PRESS    = 0x89,     /**< sensor: pressure */
-    SAUL_SENSE_ANALOG   = 0x8a,     /**< sensor: raw analog value */
-    SAUL_SENSE_UV       = 0x8b,     /**< sensor: UV index */
-    SAUL_SENSE_OBJTEMP  = 0x8c,     /**< sensor: object temperature */
-    SAUL_SENSE_COUNT    = 0x8d,     /**< sensor: pulse counter */
-    SAUL_SENSE_DISTANCE = 0x8e,     /**< sensor: distance */
-    SAUL_SENSE_CO2      = 0x8f,     /**< sensor: CO2 Gas */
-    SAUL_SENSE_TVOC     = 0x90,     /**< sensor: TVOC Gas */
-    SAUL_SENSE_OCCUP    = 0x91,     /**< sensor: occupancy */
-    SAUL_SENSE_PROXIMITY= 0x92,     /**< sensor: proximity */
-    SAUL_SENSE_RSSI     = 0x93,     /**< sensor: RSSI */
-    SAUL_SENSE_CHARGE   = 0x94,     /**< sensor: coulomb counter */
-    SAUL_SENSE_CURRENT  = 0x95,     /**< sensor: ammeter */
-    SAUL_SENSE_PM       = 0x96,     /**< sensor: particulate matter */
-    SAUL_CLASS_ANY      = 0xff      /**< any device - wildcard */
+    SAUL_CLASS_UNDEF       = 0x00,     /**< device class undefined */
+    SAUL_ACT_ANY           = 0x40,     /**< any actuator - wildcard */
+    SAUL_ACT_LED_RGB       = 0x42,     /**< actuator: RGB LED */
+    SAUL_ACT_SERVO         = 0x43,     /**< actuator: servo motor */
+    SAUL_ACT_MOTOR         = 0x44,     /**< actuator: motor */
+    SAUL_ACT_SWITCH        = 0x45,     /**< actuator: simple on/off switch */
+    SAUL_ACT_DIMMER        = 0x46,     /**< actuator: dimmable switch */
+    SAUL_SENSE_ANY         = 0x80,     /**< any sensor - wildcard */
+    SAUL_SENSE_BTN         = 0x81,     /**< sensor: simple button */
+    SAUL_SENSE_TEMP        = 0x82,     /**< sensor: temperature */
+    SAUL_SENSE_HUM         = 0x83,     /**< sensor: humidity */
+    SAUL_SENSE_LIGHT       = 0x84,     /**< sensor: light */
+    SAUL_SENSE_ACCEL       = 0x85,     /**< sensor: accelerometer */
+    SAUL_SENSE_MAG         = 0x86,     /**< sensor: magnetometer */
+    SAUL_SENSE_GYRO        = 0x87,     /**< sensor: gyroscope */
+    SAUL_SENSE_COLOR       = 0x88,     /**< sensor: (light) color */
+    SAUL_SENSE_PRESS       = 0x89,     /**< sensor: pressure */
+    SAUL_SENSE_ANALOG      = 0x8a,     /**< sensor: raw analog value */
+    SAUL_SENSE_UV          = 0x8b,     /**< sensor: UV index */
+    SAUL_SENSE_OBJTEMP     = 0x8c,     /**< sensor: object temperature */
+    SAUL_SENSE_COUNT       = 0x8d,     /**< sensor: pulse counter */
+    SAUL_SENSE_DISTANCE    = 0x8e,     /**< sensor: distance */
+    SAUL_SENSE_CO2         = 0x8f,     /**< sensor: CO2 Gas */
+    SAUL_SENSE_TVOC        = 0x90,     /**< sensor: TVOC Gas */
+    SAUL_SENSE_OCCUP       = 0x91,     /**< sensor: occupancy */
+    SAUL_SENSE_PROXIMITY   = 0x92,     /**< sensor: proximity */
+    SAUL_SENSE_RSSI        = 0x93,     /**< sensor: RSSI */
+    SAUL_SENSE_CHARGE      = 0x94,     /**< sensor: coulomb counter */
+    SAUL_SENSE_CURRENT     = 0x95,     /**< sensor: ammeter */
+    SAUL_SENSE_PM          = 0x96,     /**< sensor: particulate matter */
+    SAUL_SENSE_CAPACITANCE = 0x97,     /**< sensor: capacitance */
+    SAUL_SENSE_VOLTAGE     = 0x98,     /**< sensor: voltage */
+    SAUL_CLASS_ANY         = 0xff      /**< any device - wildcard */
     /* extend this list as needed... */
 };
 
diff --git a/drivers/saul/saul_str.c b/drivers/saul/saul_str.c
index dbbb487985..45c5b4eaaa 100644
--- a/drivers/saul/saul_str.c
+++ b/drivers/saul/saul_str.c
@@ -29,37 +29,39 @@
 const char *saul_class_to_str(const uint8_t class_id)
 {
     switch (class_id) {
-        case SAUL_CLASS_UNDEF:     return "CLASS_UNDEF";
-        case SAUL_ACT_ANY:         return "ACT_ANY";
-        case SAUL_ACT_LED_RGB:     return "ACT_LED_RGB";
-        case SAUL_ACT_SERVO:       return "ACT_SERVO";
-        case SAUL_ACT_MOTOR:       return "ACT_MOTOR";
-        case SAUL_ACT_SWITCH:      return "ACT_SWITCH";
-        case SAUL_ACT_DIMMER:      return "ACT_DIMMER";
-        case SAUL_SENSE_ANY:       return "SENSE_ANY";
-        case SAUL_SENSE_BTN:       return "SENSE_BTN";
-        case SAUL_SENSE_TEMP:      return "SENSE_TEMP";
-        case SAUL_SENSE_HUM:       return "SENSE_HUM";
-        case SAUL_SENSE_LIGHT:     return "SENSE_LIGHT";
-        case SAUL_SENSE_ACCEL:     return "SENSE_ACCEL";
-        case SAUL_SENSE_MAG:       return "SENSE_MAG";
-        case SAUL_SENSE_GYRO:      return "SENSE_GYRO";
-        case SAUL_SENSE_COLOR:     return "SENSE_COLOR";
-        case SAUL_SENSE_PRESS:     return "SENSE_PRESS";
-        case SAUL_SENSE_ANALOG:    return "SENSE_ANALOG";
-        case SAUL_SENSE_UV:        return "SENSE_UV";
-        case SAUL_SENSE_OBJTEMP:   return "SENSE_OBJTEMP";
-        case SAUL_SENSE_COUNT:     return "SENSE_PULSE_COUNT";
-        case SAUL_SENSE_DISTANCE:  return "SENSE_DISTANCE";
-        case SAUL_SENSE_CO2:       return "SENSE_CO2";
-        case SAUL_SENSE_TVOC:      return "SENSE_TVOC";
-        case SAUL_SENSE_PROXIMITY: return "SENSE_PROXIMITY";
-        case SAUL_SENSE_RSSI:      return "SENSE_RSSI";
-        case SAUL_SENSE_CHARGE:    return "SENSE_CHARGE";
-        case SAUL_SENSE_CURRENT:   return "SENSE_CURRENT";
-        case SAUL_SENSE_OCCUP:     return "SENSE_OCCUP";
-        case SAUL_SENSE_PM:        return "SENSE_PM";
-        case SAUL_CLASS_ANY:       return "CLASS_ANY";
-        default:                   return "CLASS_UNKNOWN";
+        case SAUL_CLASS_UNDEF:       return "CLASS_UNDEF";
+        case SAUL_ACT_ANY:           return "ACT_ANY";
+        case SAUL_ACT_LED_RGB:       return "ACT_LED_RGB";
+        case SAUL_ACT_SERVO:         return "ACT_SERVO";
+        case SAUL_ACT_MOTOR:         return "ACT_MOTOR";
+        case SAUL_ACT_SWITCH:        return "ACT_SWITCH";
+        case SAUL_ACT_DIMMER:        return "ACT_DIMMER";
+        case SAUL_SENSE_ANY:         return "SENSE_ANY";
+        case SAUL_SENSE_BTN:         return "SENSE_BTN";
+        case SAUL_SENSE_TEMP:        return "SENSE_TEMP";
+        case SAUL_SENSE_HUM:         return "SENSE_HUM";
+        case SAUL_SENSE_LIGHT:       return "SENSE_LIGHT";
+        case SAUL_SENSE_ACCEL:       return "SENSE_ACCEL";
+        case SAUL_SENSE_MAG:         return "SENSE_MAG";
+        case SAUL_SENSE_GYRO:        return "SENSE_GYRO";
+        case SAUL_SENSE_COLOR:       return "SENSE_COLOR";
+        case SAUL_SENSE_PRESS:       return "SENSE_PRESS";
+        case SAUL_SENSE_ANALOG:      return "SENSE_ANALOG";
+        case SAUL_SENSE_UV:          return "SENSE_UV";
+        case SAUL_SENSE_OBJTEMP:     return "SENSE_OBJTEMP";
+        case SAUL_SENSE_COUNT:       return "SENSE_PULSE_COUNT";
+        case SAUL_SENSE_DISTANCE:    return "SENSE_DISTANCE";
+        case SAUL_SENSE_CO2:         return "SENSE_CO2";
+        case SAUL_SENSE_TVOC:        return "SENSE_TVOC";
+        case SAUL_SENSE_PROXIMITY:   return "SENSE_PROXIMITY";
+        case SAUL_SENSE_RSSI:        return "SENSE_RSSI";
+        case SAUL_SENSE_CHARGE:      return "SENSE_CHARGE";
+        case SAUL_SENSE_CURRENT:     return "SENSE_CURRENT";
+        case SAUL_SENSE_OCCUP:       return "SENSE_OCCUP";
+        case SAUL_SENSE_PM:          return "SENSE_PM";
+        case SAUL_SENSE_CAPACITANCE: return "SENSE_CAPACITANCE";
+        case SAUL_SENSE_VOLTAGE:     return "SENSE_VOLTAGE";
+        case SAUL_CLASS_ANY:         return "CLASS_ANY";
+        default:                     return "CLASS_UNKNOWN";
     }
 }
-- 
GitLab