Browse Source

grove: initial groveLight support

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
Brendan Le Foll 11 years ago
parent
commit
5e14ddb540
2 changed files with 37 additions and 0 deletions
  1. 27
    0
      src/grove/grove.cxx
  2. 10
    0
      src/grove/grove.h

+ 27
- 0
src/grove/grove.cxx View File

@@ -88,3 +88,30 @@ float GroveTemp::raw_value()
88 88
 {
89 89
     return (float) maa_aio_read_u16(m_aio);
90 90
 }
91
+
92
+//// GroveLight ////
93
+
94
+GroveLight::GroveLight(unsigned int pin)
95
+{
96
+    maa_init();
97
+    m_aio = maa_aio_init(pin);
98
+    m_name = "Light Sensor";
99
+}
100
+
101
+GroveLight::~GroveLight()
102
+{
103
+    maa_aio_close(m_aio);
104
+}
105
+
106
+int GroveLight::value ()
107
+{
108
+    // rough conversion to Lux
109
+    int a = maa_aio_read_u16(m_aio);
110
+    a = 10000/(((1023-a)*10/a)*15)^(4/3);
111
+    return a;
112
+}
113
+
114
+float GroveLight::raw_value()
115
+{
116
+    return (float) maa_aio_read_u16(m_aio);
117
+}

+ 10
- 0
src/grove/grove.h View File

@@ -61,4 +61,14 @@ class GroveTemp: public Grove {
61 61
         maa_aio_context* m_aio;
62 62
 };
63 63
 
64
+class GroveLight: public Grove {
65
+    public:
66
+        GroveLight(unsigned int pin);
67
+        ~GroveLight();
68
+        float raw_value();
69
+        int value();
70
+    private:
71
+        maa_aio_context* m_aio;
72
+};
73
+
64 74
 }