Пример #1
0
        public FTDI.FT_STATUS I2CInit(Mpsse.I2C_CLOCKRATE clockRate, byte latencyTimer, Mpsse.I2C_INIT_OPTIONS options)
        {
            if (!IsOpen)
            {
                this.Debug("Error: device is not open");
                return(FTDI.FT_STATUS.FT_DEVICE_NOT_OPENED);;
            }

            //var ftStatus = (FTDI.FT_STATUS)Mpsse.I2C_OpenChannel(reqChannel, ref this.ftdiPtr);

            Mpsse.ChannelCfg chcfg;
            chcfg.ClockRate    = (uint)clockRate;
            chcfg.LatencyTimer = latencyTimer;
            chcfg.Options      = (uint)options;
            var ftStatus = (FTDI.FT_STATUS)Mpsse.I2C_InitChannel(this.ftdiHandle, ref chcfg);

            if (ftStatus != 0)
            {
                this.Debug("Error: Mpsse.I2C_InitChannel returned " + ftStatus);
                return(ftStatus);
            }

            i2cInitialized = true;
            this.Debug(string.Format("i2c bus initialized clockRate={0} latencyTimer={1} options={2}", clockRate, latencyTimer, options));
            return(ftStatus);
        }
Пример #2
0
        public FTDI.FT_STATUS I2CWrite(byte deviceAddress, UInt32 sizeToTransfer, byte[] buffer, ref UInt32 sizeTransfered, Mpsse.I2C_TRANSFER_OPTIONS options)
        {
            if (!IsOpen)
            {
                this.Debug("Error: device is not open");
                return(FTDI.FT_STATUS.FT_DEVICE_NOT_OPENED);
            }

            FTDI.FT_STATUS status;
            lock (lockObject)
            {
                status = (FTDI.FT_STATUS)Mpsse.I2C_DeviceWrite(this.ftdiHandle, deviceAddress, sizeToTransfer, buffer, ref sizeTransfered, (uint)options);
            }

            if (status != FTDI.FT_STATUS.FT_OK || sizeToTransfer != sizeTransfered)
            {
            }

            return(status);
        }
Пример #3
0
 public void Dispose()
 {
     this.Close();
     Mpsse.Cleanup_libMPSSE();
 }
Пример #4
0
 public void Initialize()
 {
     Mpsse.Init_libMPSSE();
 }