]> git.tdb.fi Git - r2c2.git/blob - source/libmarklin/sensor.h
9dbb23c2ffb5b8f26e9b1475b6388485f1581f04
[r2c2.git] / source / libmarklin / sensor.h
1 #ifndef LIBMARKLIN_SENSOR_H_
2 #define LIBMARKLIN_SENSOR_H_
3
4 #include <list>
5 #include <map>
6 #include <sigc++/signal.h>
7 #include <msp/time/timestamp.h>
8
9 namespace Marklin {
10
11 class Control;
12
13 class Sensor
14 {
15 private:
16         Control  &control;
17         unsigned addr;
18         bool     state;
19         Msp::Time::TimeStamp off_timeout;
20
21 public:
22         sigc::signal<void, bool> signal_state_changed;
23
24         Sensor(Control &, unsigned);
25
26         unsigned get_address() const { return addr; }
27         bool     get_state() const   { return state; }
28         void     tick();
29 private:
30         void sensor_event(unsigned, bool);
31 };
32
33 } // namespace Marklin
34
35 #endif