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); }
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); }
public void Dispose() { this.Close(); Mpsse.Cleanup_libMPSSE(); }
public void Initialize() { Mpsse.Init_libMPSSE(); }