public Blinky(Topic pin) {
if(pin==null) {
throw new ArgumentNullException();
}
if(pin.name.StartsWith("BLINKM_") && byte.TryParse(pin.name.Substring(7), out _addr) && _addr>7) {
_owner=pin;
} else {
throw new ArgumentException();
}
var dc=_owner.Get<string>("_declarer", _owner);
dc.saved=true;
dc.value="TWI_BLINKM";
_R=_owner.Get<long>("Red");
_G=_owner.Get<long>("Green");
_B=_owner.Get<long>("Blue");
_fade=_owner.Get<long>("Fade");
_present=_owner.Get<bool>("present");
_present.saved=false;
_present.value=false;
_owner.Subscribe("+", PinChanged);
Reset();
}
public override bool VarChanged(Topic snd, bool delete) {