]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/intellibox.h
Reserve two ids for double-address turnouts
[r2c2.git] / source / libmarklin / intellibox.h
index 9f42aa223f75184571e8f91ca55c6bd6546ee99e..c5c7e7af031e4761bd9fbc2fd1dbaef8853167e4 100644 (file)
@@ -98,6 +98,7 @@ private:
 
        int serial_fd;
        bool power;
+       bool halted;
        std::map<unsigned, Locomotive> locos;
        std::map<unsigned, Turnout> turnouts;
        std::map<unsigned, Sensor> sensors;
@@ -111,6 +112,8 @@ public:
 
        virtual void set_power(bool);
        virtual bool get_power() const { return power; }
+       virtual void halt(bool);
+       virtual bool is_halted() const { return halted; }
 
        virtual void add_loco(unsigned);
        virtual void set_loco_speed(unsigned, unsigned);
@@ -122,6 +125,7 @@ public:
        virtual bool get_turnout(unsigned) const;
 
        virtual void add_sensor(unsigned);
+       virtual void set_sensor(unsigned, bool) { }
        virtual bool get_sensor(unsigned) const;
 
        virtual void tick();
@@ -135,6 +139,8 @@ private:
        void turnout_command(unsigned, bool, bool);
        void process_reply(const Msp::Time::TimeStamp &);
        unsigned read_all(unsigned char *, unsigned);
+       unsigned read_status(Error *);
+       void error(Command, Error);
 };
 
 } // namespace Marklin