AskSin++
Sensors.h
1
//- -----------------------------------------------------------------------------------------------------------------------
2
// AskSin++
3
// 2018-01-07 papa Creative Commons - http://creativecommons.org/licenses/by-nc-sa/3.0/de/
4
//- -----------------------------------------------------------------------------------------------------------------------
5
6
#ifndef SENSORS_H_
7
#define SENSORS_H_
8
9
namespace
as {
10
11
class
Sensor
{
12
protected
:
13
bool
_present;
14
public
:
15
Sensor
() : _present(
false
) {}
16
void
init () {}
17
bool
present () {
return
_present; }
18
void
measure (__attribute__((unused))
bool
async=
false
) {}
19
};
20
21
class
Brightness
:
public
virtual
Sensor
{
22
protected
:
23
uint32_t _brightness;
24
public
:
25
Brightness
() : _brightness(0) {}
26
// TODO - define value range for brightness
27
uint32_t brightness () {
return
_brightness; }
28
};
29
30
class
Temperature
:
public
virtual
Sensor
{
31
protected
:
32
int16_t _temperature;
33
public
:
34
Temperature
() : _temperature(0) {}
35
// temperature value multiplied by 10
36
int16_t temperature () {
return
_temperature; }
37
};
38
39
class
Humidity
:
public
virtual
Sensor
{
40
protected
:
41
uint8_t _humidity;
42
public
:
43
Humidity
() : _humidity(0) {}
44
// humidity value
45
uint8_t humidity () {
return
_humidity; }
46
};
47
48
class
Pressure
:
public
virtual
Sensor
{
49
protected
:
50
uint16_t _pressure;
51
public
:
52
Pressure
() : _pressure(0) {}
53
// pressure value
54
uint16_t pressure () {
return
_pressure; }
55
};
56
57
class
Position
:
public
virtual
Sensor
{
58
public
:
59
enum
State { NoPos=0, PosA, PosB, PosC };
60
protected
:
61
uint8_t _position;
62
public
:
63
Position
() : _position(NoPos) {}
64
// return the last measured position
65
uint8_t position () {
return
_position; }
66
// remap the state before send to central
67
uint8_t remap (uint8_t state) {
return
state; }
68
// return the measure interval in sysclock ticks
69
uint32_t interval () {
return
seconds2ticks(1); }
70
};
71
72
}
// end namespace
73
74
#endif
as::Position
Definition:
Sensors.h:57
as::Brightness
Definition:
Sensors.h:21
as::Humidity
Definition:
Sensors.h:39
as::Temperature
Definition:
Sensors.h:30
as::Sensor
Definition:
Sensors.h:11
as::Pressure
Definition:
Sensors.h:48
Generated by
1.8.20