X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fintellibox.h;h=a4eed30d4bcf0cda32e28c80ee2748c786d7872a;hb=247742fbc1c27bfc9fdef4630afcdc2408cdd550;hp=8655bfc8ddc9509a472c0c091a6122ef02034004;hpb=90f9efba8d88f41c7a180734b7bcbdd1501d995e;p=r2c2.git diff --git a/source/libr2c2/intellibox.h b/source/libr2c2/intellibox.h index 8655bfc..a4eed30 100644 --- a/source/libr2c2/intellibox.h +++ b/source/libr2c2/intellibox.h @@ -73,6 +73,7 @@ private: enum Protocol { + NONE, MM, MM_27 }; @@ -80,6 +81,7 @@ private: struct Locomotive { Protocol protocol; + bool ext_func; unsigned speed; bool reverse; unsigned funcs; @@ -91,9 +93,10 @@ private: struct Turnout { - bool state; + unsigned bits; + unsigned state; bool active; - bool pending; + unsigned pending; Msp::Time::TimeStamp off_timeout; Turnout(); @@ -136,14 +139,14 @@ public: virtual const char *enumerate_protocols(unsigned) const; virtual unsigned get_protocol_speed_steps(const std::string &) const; - virtual void add_loco(unsigned, const std::string &); + virtual void add_loco(unsigned, const std::string &, const VehicleType &); virtual void set_loco_speed(unsigned, unsigned); virtual void set_loco_reverse(unsigned, bool); virtual void set_loco_function(unsigned, unsigned, bool); - virtual void add_turnout(unsigned); - virtual void set_turnout(unsigned, bool); - virtual bool get_turnout(unsigned) const; + virtual void add_turnout(unsigned, const TrackType &); + virtual void set_turnout(unsigned, unsigned); + virtual unsigned get_turnout(unsigned) const; virtual void add_sensor(unsigned); virtual void set_sensor(unsigned, bool) { } @@ -157,7 +160,7 @@ private: void command(Command); void command(Command, const unsigned char *, unsigned); void command(Command, unsigned, const unsigned char *, unsigned); - void loco_command(unsigned, unsigned, bool, unsigned); + void loco_command(unsigned, unsigned, bool, unsigned, bool); void turnout_command(unsigned, bool, bool); void process_reply(const Msp::Time::TimeStamp &); unsigned read_all(unsigned char *, unsigned);