X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Farducontrol.h;h=4373a84f707713e6b7d80c1e927875719b6cad0a;hb=aa48746158b19ad795a3cc656c4dfe17044baf54;hp=8d27a2f572d74e561acdbc0266dc20561a777f8c;hpb=fe8b45dc60ed7828f0b4af9daa9b4cd0649415ca;p=r2c2.git diff --git a/source/libr2c2/arducontrol.h b/source/libr2c2/arducontrol.h index 8d27a2f..4373a84 100644 --- a/source/libr2c2/arducontrol.h +++ b/source/libr2c2/arducontrol.h @@ -173,12 +173,13 @@ private: Kind kind; unsigned address; unsigned bits; + unsigned valid_states; ControlledVariable state; unsigned uncertain; unsigned target; Msp::Time::TimeDelta active_time; - Accessory(Kind, unsigned, unsigned); + Accessory(Kind, unsigned, unsigned, unsigned); unsigned create_state_command(unsigned, bool, char *) const; }; @@ -240,6 +241,9 @@ private: public: virtual bool get_work(PendingCommand &); + + void push(const PendingCommand &); + bool empty() const { return queue.empty(); } }; class RefreshTask: public Task @@ -386,7 +390,7 @@ private: SensorMap sensors; Msp::Time::TimeDelta command_timeout; - Queue command_queue; + CommandQueueTask command_queue; Queue completed_commands; RefreshTask refresh; S88Task s88; @@ -433,10 +437,11 @@ public: virtual unsigned get_signal(unsigned) const; private: - unsigned add_accessory(Accessory::Kind, unsigned, unsigned); + unsigned add_accessory(Accessory::Kind, unsigned, unsigned, unsigned); void remove_accessory(Accessory::Kind, unsigned); void set_accessory(Accessory::Kind, unsigned, unsigned); unsigned get_accessory(Accessory::Kind, unsigned) const; + void activate_accessory_by_mask(Accessory &, unsigned); public: virtual unsigned add_sensor(unsigned);