X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Fcontrol.h;h=4729695d7dbeb10d00e40f13578877a9f8493f61;hb=52cbe8d99669f843f8f75c51128e2748584dd03a;hp=62d64f9a8063c645ae5ccc20bdcb804acc185f87;hpb=36beacc579d3132642ed4d98ce5a6d99842b5812;p=r2c2.git diff --git a/source/libmarklin/control.h b/source/libmarklin/control.h index 62d64f9..4729695 100644 --- a/source/libmarklin/control.h +++ b/source/libmarklin/control.h @@ -3,6 +3,7 @@ #include #include +#include #include #include "constants.h" #include "sensor.h" @@ -15,38 +16,42 @@ class Command; class Control { +private: + int serial_fd; + bool p50_enabled; + bool power; + std::list queue; + std::map turnouts; + std::map locomotives; + std::map sensors; + Msp::Time::TimeStamp next_event_query; + bool poll_sensors; + bool debug; + Msp::Time::Timer timer; + public: sigc::signal signal_turnout_event; sigc::signal signal_sensor_event; Control(); void set_power(bool); - void set_debug(bool d) { debug=d; } bool get_power() const { return power; } - const TurnoutMap &get_turnouts() const { return turnouts; } - Turnout *get_turnout(unsigned) const; - Locomotive *get_locomotive(unsigned) const; - Sensor *get_sensor(unsigned) const; + void set_debug(bool d) { debug=d; } + //const TurnoutMap &get_turnouts() const { return turnouts; } + const std::map &get_sensors() const { return sensors; } unsigned get_queue_length() const { return queue.size(); } void open(const std::string &); Command &command(const std::string &); - void add_turnout(Turnout *); - void add_locomotive(Locomotive *); - void add_sensor(Sensor *); + void add_turnout(Turnout &); + Turnout &get_turnout(unsigned) const; + void add_locomotive(Locomotive &); + Locomotive &get_locomotive(unsigned) const; + void add_sensor(Sensor &); + Sensor &get_sensor(unsigned) const; void tick(); + Msp::Time::Timer::Slot &set_timer(const Msp::Time::TimeDelta &); ~Control(); private: - int serial_fd; - bool p50_enabled; - bool power; - std::list queue; - TurnoutMap turnouts; - LocomotiveSeq locomotives; - SensorMap sensors; - Msp::Time::TimeStamp next_event_query; - bool poll_sensors; - bool debug; - void read_all(int, char *, int); std::string read_reply(Cmd); void event_query_done(Error, const std::string &);