diff --git a/html/_adafruit___sensor_8h_source.html b/html/_adafruit___sensor_8h_source.html index e99eb17..a59e742 100644 --- a/html/_adafruit___sensor_8h_source.html +++ b/html/_adafruit___sensor_8h_source.html @@ -62,15 +62,15 @@ $(function() {
Adafruit_Sensor.h
-
1 /*
2  * Copyright (C) 2008 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software< /span>
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 /* Update by K. Townsend (Adafruit Industries) for lighter typedefs, and
18  * extended sensor support to include color, voltage and current */
19 
20 #ifndef _ADAFRUIT_SENSOR_H
21 #define _ADAFRUIT_SENSOR_H
22 
23 #ifndef ARDUINO
24 #include <stdint.h>
25 #elif ARDUINO >= 100
26 #include "Arduino.h"
27 #include "Print.h"
28 #else
29 #include "WProgram.h"
30 #endif
31 
32 /* Constants */
33 #define SENSORS_GRAVITY_EARTH (9.80665F)
34 #define SENSORS_GRAVITY_MOON (1.6F)
35 #define SENSORS_GRAVITY_SUN (275.0F)
36 #define SENSORS_GRAVITY_STANDARD (SENSORS_GRAVITY_EARTH)
37 #define SENSORS_MAGFIELD_EARTH_MAX \
38  (60.0F)
39 #define SENSORS_MAGFIELD_EARTH_MIN \
40  (30.0F)
41 #define SENSORS_PRESSURE_SEALEVELHPA \
42  (1013.25F)
43 #define SENSORS_DPS_TO_RADS \
44  (0.017453293F)
46 #define SENSORS_RADS_TO_DPS \
47  (57.29577793F)
48 #define SENSORS_GAUSS_TO_MICROTESLA \
49  (100)
52 typedef enum {
53  SENSOR_TYPE_ACCELEROMETER = (1),
54  SENSOR_TYPE_MAGNETIC_FIELD = (2),
55  SENSOR_TYPE_ORIENTATION = (3),
56  SENSOR_TYPE_GYROSCOPE = (4),
57  SENSOR_TYPE_LIGHT = (5),
58  SENSOR_TYPE_PRESSURE = (6),
59  SENSOR_TYPE_PROXIMITY = (8),
60  SENSOR_TYPE_GRAVITY = (9),
61  SENSOR_TYPE_LINEAR_ACCELERATION =
62  (10),
63  SENSOR_TYPE_ROTATION_VECTOR = (11),
64  SENSOR_TYPE_RELATIVE_HUMIDITY = (12),
65  SENSOR_TYPE_AMBIENT_TEMPERATURE = (13),
66  SENSOR_TYPE_OBJECT_TEMPERATURE = (14),
67  SENSOR_TYPE_VOLTAGE = (15),
68  SENSOR_TYPE_CURRENT = (16),
69  SENSOR_TYPE_COLOR = (17),
70  SENSOR_TYPE_TVOC = (18),
71  SENSOR_TYPE_VOC_INDEX = (19),
72  SENSOR_TYPE_NOX_INDEX = (20),
73  SENSOR_TYPE_CO2 = (21),
74  SENSOR_TYPE_eCO2 = (22),
75 } sensors_type_t;
76 
78 typedef struct {
79  union {
80  float v[3];
81  struct {
82  float x;
83  float y;
84  float z;
85  };
86  /* Orientation sensors */
87  struct {
88  float roll;
91  float pitch;
94  float heading;
97  };
98  };
99  int8_t status;
101  uint8_t reserved[3];
103 
105 typedef struct {
106  union {
107  float c[3];
108  /* RGB color space */
109  struct {
110  float r;
111  float g;
112  float b;
113  };
114  };
115  uint32_t rgba;
117 
118 /* Sensor event (36 bytes) */
121 typedef struct {
122  int32_t version;
123  int32_t sensor_id;
124  int32_t type;
125  int32_t reserved0;
126  int32_t timestamp;
127  union {
128  float data[4];
129  sensors_vec_t acceleration;
132  magnetic;
133  sensors_vec_t orientation;
135  float temperature;
136  float distance;
137  float light;
138  float pressure;
139  float relative_humidity;
140  float current;
141  float voltage;
142  float tvoc;
143  float voc_index;
145  float nox_index;
147  float CO2;
148  float eCO2;
150  sensors_color_t color;
151  };
153 
154 /* Sensor details (40 bytes) */
157 typedef struct {
158  char name[12];
159  int32_t version;
160  int32_t sensor_id;
161  int32_t type;
162  float max_value;
163  float min_value;
164  float resolution;
166  int32_t min_delay;
168 } sensor_t;
169 
174 class Adafruit_Sensor {
175 public:
176  // Constructor(s)
177  Adafruit_Sensor() {}
178  virtual ~Adafruit_Sensor() {}
179 
180  // These must be defined by the subclass
181 
185  virtual void enableAutoRange(bool enabled) {
186  (void)enabled; /* suppress unused warning */
187  };
188 
191  virtual bool getEvent(sensors_event_t *) = 0;
193  virtual void getSensor(sensor_t *) = 0;
194 
195  void printSensorDetails(void);
196 
197 private:
198  bool _autoRange;
199 };
200 
201 #endif
Definition: Adafruit_Sensor.h:79
-
Common sensor interface to unify various sensors. Intentionally modeled after sensors.h in the Android API: https://github.com/android/platform_hardware_libhardware/blob/master/include/hardware/sensors.h.
Definition: Adafruit_Sensor.h:175
+
1 /*
2  * Copyright (C) 2008 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software< /span>
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 /* Update by K. Townsend (Adafruit Industries) for lighter typedefs, and
18  * extended sensor support to include color, voltage and current */
19 
20 #ifndef _ADAFRUIT_SENSOR_H
21 #define _ADAFRUIT_SENSOR_H
22 
23 #ifndef ARDUINO
24 #include <stdint.h>
25 #elif ARDUINO >= 100
26 #include "Arduino.h"
27 #include "Print.h"
28 #else
29 #include "WProgram.h"
30 #endif
31 
32 /* Constants */
33 #define SENSORS_GRAVITY_EARTH (9.80665F)
34 #define SENSORS_GRAVITY_MOON (1.6F)
35 #define SENSORS_GRAVITY_SUN (275.0F)
36 #define SENSORS_GRAVITY_STANDARD (SENSORS_GRAVITY_EARTH)
37 #define SENSORS_MAGFIELD_EARTH_MAX \
38  (60.0F)
39 #define SENSORS_MAGFIELD_EARTH_MIN \
40  (30.0F)
41 #define SENSORS_PRESSURE_SEALEVELHPA \
42  (1013.25F)
43 #define SENSORS_DPS_TO_RADS \
44  (0.017453293F)
46 #define SENSORS_RADS_TO_DPS \
47  (57.29577793F)
48 #define SENSORS_GAUSS_TO_MICROTESLA \
49  (100)
52 typedef enum {
53  SENSOR_TYPE_ACCELEROMETER = (1),
54  SENSOR_TYPE_MAGNETIC_FIELD = (2),
55  SENSOR_TYPE_ORIENTATION = (3),
56  SENSOR_TYPE_GYROSCOPE = (4),
57  SENSOR_TYPE_LIGHT = (5),
58  SENSOR_TYPE_PRESSURE = (6),
59  SENSOR_TYPE_PROXIMITY = (8),
60  SENSOR_TYPE_GRAVITY = (9),
61  SENSOR_TYPE_LINEAR_ACCELERATION =
62  (10),
63  SENSOR_TYPE_ROTATION_VECTOR = (11),
64  SENSOR_TYPE_RELATIVE_HUMIDITY = (12),
65  SENSOR_TYPE_AMBIENT_TEMPERATURE = (13),
66  SENSOR_TYPE_OBJECT_TEMPERATURE = (14),
67  SENSOR_TYPE_VOLTAGE = (15),
68  SENSOR_TYPE_CURRENT = (16),
69  SENSOR_TYPE_COLOR = (17),
70  SENSOR_TYPE_TVOC = (18),
71  SENSOR_TYPE_VOC_INDEX = (19),
72  SENSOR_TYPE_NOX_INDEX = (20),
73  SENSOR_TYPE_CO2 = (21),
74  SENSOR_TYPE_ECO2 = (22),
75  SENSOR_TYPE_PM10_STD = (23),
76  SENSOR_TYPE_PM25_STD = (24),
77  SENSOR_TYPE_PM100_STD = (25),
78  SENSOR_TYPE_PM10_ENV = (26),
79  SENSOR_TYPE_PM25_ENV = (27),
80  SENSOR_TYPE_PM100_ENV = (28)
81 } sensors_type_t;
82 
84 typedef struct {
85  union {
86  float v[3];
87  struct {
88  float x;
89  float y;
90  float z;
91  };
92  /* Orientation sensors */
93  struct {
94  float roll;
97  float pitch;
100  float heading;
103  };
104  };
105  int8_t status;
107  uint8_t reserved[3];
109 
111 typedef struct {
112  union {
113  float c[3];
114  /* RGB color space */
115  struct {
116  float r;
117  float g;
118  float b;
119  };
120  };
121  uint32_t rgba;
123 
124 /* Sensor event (36 bytes) */
127 typedef struct {
128  int32_t version;
129  int32_t sensor_id;
130  int32_t type;
131  int32_t reserved0;
132  int32_t timestamp;
133  union {
134  float data[4];
135  sensors_vec_t acceleration;
138  magnetic;
139  sensors_vec_t orientation;
141  float temperature;
142  float distance;
143  float light;
144  float pressure;
145  float relative_humidity;
146  float current;
147  float voltage;
148  float tvoc;
149  float voc_index;
151  float nox_index;
153  float CO2;
154  float eCO2;
156  float pm10_std;
158  float pm25_std;
160  float pm100_std;
162  float pm10_env;
164  float pm25_env;
166  float pm100_env;
168  sensors_color_t color;
169  };
171 
172 /* Sensor details (40 bytes) */
175 typedef struct {
176  char name[12];
177  int32_t version;
178  int32_t sensor_id;
179  int32_t type;
180  float max_value;
181  float min_value;
182  float resolution;
184  int32_t min_delay;
186 } sensor_t;
187 
192 class Adafruit_Sensor {
193 public:
194  // Constructor(s)
195  Adafruit_Sensor() {}
196  virtual ~Adafruit_Sensor() {}
197 
198  // These must be defined by the subclass
199 
203  virtual void enableAutoRange(bool enabled) {
204  (void)enabled; /* suppress unused warning */
205  };
206 
209  virtual bool getEvent(sensors_event_t *) = 0;
211  virtual void getSensor(sensor_t *) = 0;
212 
213  void printSensorDetails(void);
214 
215 private:
216  bool _autoRange;
217 };
218 
219 #endif
Definition: Adafruit_Sensor.h:85
+
Common sensor interface to unify various sensors. Intentionally modeled after sensors.h in the Android API: https://github.com/android/platform_hardware_libhardware/blob/master/include/hardware/sensors.h.
Definition: Adafruit_Sensor.h:193
virtual bool getEvent(sensors_event_t *)=0
Get the latest sensor event.
void printSensorDetails(void)
Prints sensor information to serial console.
Definition: Adafruit_Sensor.cpp:8
-
Definition: Adafruit_Sensor.h:158
-
Definition: Adafruit_Sensor.h:122
+
Definition: Adafruit_Sensor.h:176
+
Definition: Adafruit_Sensor.h:128
virtual void getSensor(sensor_t *)=0
Get info about the sensor itself.
-
Definition: Adafruit_Sensor.h:106
-
virtual void enableAutoRange(bool enabled)
Whether we should automatically change the range (if possible) for higher precision.
Definition: Adafruit_Sensor.h:186
+
Definition: Adafruit_Sensor.h:112
+
virtual void enableAutoRange(bool enabled)
Whether we should automatically change the range (if possible) for higher precision.
Definition: Adafruit_Sensor.h:204

equivalent/estimated CO2 in parts per million (ppm estimated from some other measurement)

+
+ + +

◆ pm10_std

+ +
+
+ + + + +
float sensors_event_t::pm10_std
+
+

Standard Particulate Matter 1.0 in parts per million (ppm)

+ +
+
+ +

◆ pm25_std

+ +
+
+ + + + +
float sensors_event_t::pm25_std
+
+

Standard Particulate Matter 2.5 in parts per million (ppm)

+ +
+
+ +

◆ pm100_std

+ +
+
+ + + + +
float sensors_event_t::pm100_std
+
+

Standard Particulate Matter 100 in parts per million (ppm)

+ +
+
+ +

◆ pm10_env

+ +
+
+ + + + +
float sensors_event_t::pm10_env
+
+

Environmental Particulate Matter 1.0 in parts per million (ppm)

+ +
+
+ +

◆ pm25_env

+ +
+
+ + + + +
float sensors_event_t::pm25_env
+
+

Environmental Particulate Matter 2.5 in parts per million (ppm)

+ +
+
+ +

◆ pm100_env

+ +
+
+ + + + +
float sensors_event_t::pm100_env
+
+

EnvironmentalParticulate Matter 100 in parts per million (ppm)

+