X13.Periphery.TWIDriver.Expander.Expander C# (CSharp) Method

Expander() public method

public Expander ( Topic pin ) : System
pin Topic
return System
      public Expander(Topic pin) {
        if(pin==null) {
          throw new ArgumentNullException();
        }
        if(pin.name.Length==5 && pin.name.StartsWith("EXP_") && pin.name[4]>='0' && pin.name[4]<='7') {
          _mnt=pin;
          ADDR=(byte)(0x20 | (byte)(pin.name[4]-'0'));
        } else {
          throw new ArgumentException();
        }

        var dc=_mnt.Get<string>("_declarer", _mnt);
        dc.saved=true;
        dc.value="TWI_Expander";
        _pins=new DVar<bool>[18]; // 16 - present, 17 - IRQ

        _pins[16]=_mnt.Get<bool>("present");
        _pins[16].saved=false;
        _pins[16].value=false;
        _iodir=0xFFFF;
        _mnt.Subscribe("+", PinChanged);
        Reset();
      }
      public override bool VarChanged(Topic snd, bool delete) {