/// <summary> /// Sets the direction. /// </summary> /// <param name="pin">The pin.</param> /// <param name="direction">The direction.</param> public void SetDirection(Mcp23008Pin pin, Mcp23008PinDirection direction) { var register = Register.IODIR; connection.WriteByte((byte)register); var directions = connection.ReadByte(); var bit = (byte)((int)pin & 0xFF); var newDirections = (direction == Mcp23008PinDirection.Input) ? directions | bit : directions & ~bit; connection.Write(new[] { (byte)register, (byte)newDirections }); }
/// <summary> /// Sets the direction. /// </summary> /// <param name="pin">The pin.</param> /// <param name="direction">The direction.</param> public void SetDirection(Mcp23008Pin pin, Mcp23008PinDirection direction) { var register = Register.Iodir; this.connection.WriteByte((byte)register); var directions = this.connection.ReadByte(); var bit = (byte)((int)pin & 0xFF); var newDirections = direction == Mcp23008PinDirection.Input ? directions | bit : directions & ~bit; this.connection.Write((byte)register, (byte)newDirections); }