Kind kind;
unsigned address;
unsigned bits;
+ unsigned valid_states;
ControlledVariable<unsigned> 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;
};
public:
virtual bool get_work(PendingCommand &);
+
+ void push(const PendingCommand &);
+ bool empty() const { return queue.empty(); }
};
class RefreshTask: public Task
SensorMap sensors;
Msp::Time::TimeDelta command_timeout;
- Queue<PendingCommand> command_queue;
+ CommandQueueTask command_queue;
Queue<Tag> completed_commands;
RefreshTask refresh;
S88Task s88;
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);