X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Farducontrol.h;h=40c7b3c6912d47247024c5ab28461bb497a6a7f1;hb=0d0b5fcbaf3e8eb1cbfd9764d19792c4383cce7b;hp=c3ca7a4106f570a418a6a7166a19a9048c1bcf67;hpb=5bc94d60a17039dfd5d46caaa292d3667fa87fb3;p=r2c2.git diff --git a/source/libr2c2/arducontrol.h b/source/libr2c2/arducontrol.h index c3ca7a4..40c7b3c 100644 --- a/source/libr2c2/arducontrol.h +++ b/source/libr2c2/arducontrol.h @@ -219,6 +219,7 @@ private: public: void push(const T &); bool pop(T &); + bool empty() const; }; class Task @@ -356,7 +357,7 @@ private: virtual void main(); void init_baud_rate(); bool get_work(PendingCommand &); - unsigned do_command(const PendingCommand &); + unsigned do_command(const PendingCommand &, const Msp::Time::TimeDelta &); unsigned process_reply(const char *, unsigned); }; @@ -371,6 +372,7 @@ private: Msp::FS::Path state_file; ControlledVariable power; + bool halted; LocomotiveMap locomotives; MfxInfoArray mfx_info; @@ -382,7 +384,7 @@ private: SensorMap sensors; - Msp::Mutex mutex; + Msp::Time::TimeDelta command_timeout; Queue command_queue; Queue completed_commands; RefreshTask refresh; @@ -401,7 +403,7 @@ public: virtual void set_power(bool); virtual bool get_power() const { return power; } virtual void halt(bool); - virtual bool is_halted() const { return false; } + virtual bool is_halted() const { return halted; } virtual const char *enumerate_protocols(unsigned) const; private: