class Locomotive
{
+private:
+ Control &control;
+ unsigned addr;
+ unsigned speed;
+ bool reverse;
+ unsigned funcs;
+
public:
sigc::signal<void, unsigned> signal_speed_changed;
Locomotive(Control &, unsigned);
+
void set_speed(unsigned);
void set_reverse(bool);
void set_function(unsigned, bool);
bool get_function(unsigned f) const { return (funcs>>f)&1; }
void refresh_status();
private:
- Control &control;
- unsigned addr;
- unsigned speed;
- bool reverse;
- unsigned funcs;
-
void send_command(bool);
void status_reply(Error, const std::string &);
bool reverse_timeout();