public void SetPinMode(int pin, PinMode pinMode)
        {
            if (pinMode == PinMode.Output)
            {
                _directions |= PowerOf2[pin];
            }
            else
            {
                _directions &= ~PowerOf2[pin];
            }

            var r = LibMpsse_AccessToCppDll.FT_WriteGPIO(_spiHandle, _directions, _values);

            if (r != FtdiMpsseSPIResult.Ok)
            {
                if (Debugger.IsAttached)
                {
                    Debugger.Break();
                }
                throw new GpioException(r, nameof(SetPinMode));
            }
        }
        public void DigitalWrite(int pin, PinState mode)
        {
            if (mode == PinState.High)
            {
                _values |= PowerOf2[pin];
            }
            else
            {
                _values &= ~PowerOf2[pin];
            }

            var r = LibMpsse_AccessToCppDll.FT_WriteGPIO(_spiHandle, _directions, _values);

            if (r != FtdiMpsseSPIResult.Ok)
            {
                if (Debugger.IsAttached)
                {
                    Debugger.Break();
                }
                throw new GpioException(r, nameof(DigitalWrite));
            }
        }
 private FtdiMpsseSPIResult WriteGPIOMask(byte directions, byte values)
 {
     _values     = values;
     _directions = directions;
     return(LibMpsse_AccessToCppDll.FT_WriteGPIO(_spiHandle, directions, values));
 }
 private FtdiMpsseSPIResult WriteGPIOMask(byte values)
 {
     return(LibMpsse_AccessToCppDll.FT_WriteGPIO(_spiHandle, values));
 }