]> git.tdb.fi Git - r2c2.git/blob - source/libmarklin/sensor.h
Major code refactoring:
[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 public:
16         sigc::signal<void, bool> signal_state_changed;
17
18         Sensor(Control &, unsigned);
19         unsigned get_address() const { return addr; }
20         bool     get_state() const   { return state; }
21         void     tick();
22 private:
23         Control  &control;
24         unsigned addr;
25         bool     state;
26         Msp::Time::TimeStamp off_timeout;
27
28         void sensor_event(unsigned, bool);
29 };
30
31 } // namespace Marklin
32
33 #endif