grove: initial groveLight support
authorBrendan Le Foll <brendan.le.foll@intel.com>
Wed, 7 May 2014 14:40:39 +0000 (15:40 +0100)
committerBrendan Le Foll <brendan.le.foll@intel.com>
Wed, 7 May 2014 14:40:39 +0000 (15:40 +0100)
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
src/grove/grove.cxx
src/grove/grove.h

index 72be707..4cb211f 100644 (file)
@@ -88,3 +88,30 @@ float GroveTemp::raw_value()
 {
     return (float) maa_aio_read_u16(m_aio);
 }
+
+//// GroveLight ////
+
+GroveLight::GroveLight(unsigned int pin)
+{
+    maa_init();
+    m_aio = maa_aio_init(pin);
+    m_name = "Light Sensor";
+}
+
+GroveLight::~GroveLight()
+{
+    maa_aio_close(m_aio);
+}
+
+int GroveLight::value ()
+{
+    // rough conversion to Lux
+    int a = maa_aio_read_u16(m_aio);
+    a = 10000/(((1023-a)*10/a)*15)^(4/3);
+    return a;
+}
+
+float GroveLight::raw_value()
+{
+    return (float) maa_aio_read_u16(m_aio);
+}
index d573787..2a2a103 100644 (file)
@@ -61,4 +61,14 @@ class GroveTemp: public Grove {
         maa_aio_context* m_aio;
 };
 
+class GroveLight: public Grove {
+    public:
+        GroveLight(unsigned int pin);
+        ~GroveLight();
+        float raw_value();
+        int value();
+    private:
+        maa_aio_context* m_aio;
+};
+
 }