]> git.tdb.fi Git - r2c2.git/blobdiff - source/network/train.h
Export AI control parameters over the network
[r2c2.git] / source / network / train.h
index 948af2f82b5dfc45d94da55e8bcfcdcc139559ac..5c938dcbe0afc9517cb565e654912cfb973d4b58 100644 (file)
@@ -15,6 +15,8 @@ public:
        sigc::signal<void, const std::string &> signal_name_changed;
        sigc::signal<void, const std::string &, float> signal_control_changed;
        sigc::signal<void, unsigned, bool> signal_function_changed;
+       sigc::signal<void, float> signal_target_speed_changed;
+       sigc::signal<void, bool> signal_reverse_changed;
        sigc::signal<void, const std::string &> signal_route_changed;
        sigc::signal<void, const std::string &> signal_status_changed;
 
@@ -24,6 +26,8 @@ private:
        unsigned address;
        std::string name;
        std::map<std::string, float> controls;
+       float target_speed;
+       bool reverse;
        unsigned functions;
        std::string route;
        std::string status;
@@ -36,6 +40,10 @@ public:
        const std::string &get_name() const { return name; }
        void set_control(const std::string &, float);
        float get_control(const std::string &) const;
+       void set_target_speed(float);
+       void set_reverse(bool);
+       float get_target_speed() const { return target_speed; }
+       bool get_reverse() const { return reverse; }
        void set_function(unsigned, bool);
        bool get_function(unsigned i) const { return (functions>>i)&1; }
        void set_route(const std::string &);
@@ -43,6 +51,7 @@ public:
 
        void process_packet(const TrainControlPacket &);
        void process_packet(const TrainFunctionPacket &);
+       void process_packet(const TrainAIControlPacket &);
        void process_packet(const TrainRoutePacket &);
        void process_packet(const TrainStatusPacket &);
 };