Exemple #1
0
        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();
        }
Exemple #2
0
        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;
                }
            }
        }