private void _displayError(UsbI2C.StatusResults statusResults) { string errorMessage = ""; if (statusResults.HidStatus != UsbI2C.FT260_STATUS.FT260_OK) { errorMessage = "USB: " + statusResults.HidStatus.ToString(); } else if (statusResults.ControllerStatus != UsbI2C.FT260_CONTROLLER_STATUS.idle) { errorMessage = "I2C: " + statusResults.ControllerStatus.ToString(); } labelUsbI2cStatus.Text = errorMessage.ToString(); }
private void BackgroundWorkerAdcDoWork(object sender, DoWorkEventArgs e) { var adc = new ere_I2C_AI418ML(_usbI2C, _ere_I2C_AI418ML_address); UsbI2C.StatusResults statusResults = new UsbI2C.StatusResults(); AdcBackgroundWorkerArgs args = e.Argument as AdcBackgroundWorkerArgs; while (true) { uint reading = 0; double voltage = 0.0; double current = 0.0; ReportAdcProgressWithStatus adcProgress = new ReportAdcProgressWithStatus(args.Mode, reading, voltage, current, statusResults); switch (args.Mode) { case AdcMode.Raw: statusResults = adc.ReadAdc(args.Channel, args.Size, args.Pga, out reading); adcProgress.Reading = reading; break; case AdcMode.Voltage: statusResults = adc.ReadVoltage(args.Channel, args.Size, args.Pga, out voltage); adcProgress.Voltage = voltage; break; case AdcMode.Current: statusResults = adc.ReadCurrent(args.Channel, args.Size, args.Pga, out voltage); adcProgress.Voltage = voltage; break; } _backgroundWorkerAdc.ReportProgress(0, adcProgress); Thread.Sleep(100); if (statusResults.HasErrors() || _backgroundWorkerAdc.CancellationPending) { e.Cancel = true; return; } } }