bool set(T v) { if(v==pending) return false; pending = v; ++serial; return true; }
bool commit(unsigned short s) { if(s!=serial) return false; current = pending; return true; }
+ void rollback() { pending = current; ++serial; }
operator T() const { return current; }
};
unsigned address;
unsigned bits;
ControlledVariable<unsigned> state;
+ unsigned uncertain;
unsigned target;
Msp::Time::TimeDelta active_time;