+void ArduControl::activate_accessory_by_mask(Accessory &acc, unsigned mask)
+{
+ unsigned bit = mask&~(mask-1);
+ for(active_index=0; (bit>>active_index)>1; ++active_index) ;
+ acc.state.set((acc.state&~bit)|(acc.target&bit));
+ if(debug>=1)
+ IO::print("Setting accessory %d bit %d, state=%d\n", acc.address, active_index, acc.state.pending);
+ PendingCommand cmd(acc, Accessory::ACTIVATE, active_index);
+ command_queue.push(cmd);
+ active_accessory = &acc;
+
+ monitor.reset_peak();
+}
+