public void ReadDMM(MultimeterMode measurementFunction, double range, double accuracy) { double[] readBuf; try { ConfigureDMM(measurementFunction, range, accuracy); dmmSession.Measurement.Initiate(); Application.DoEvents(); readBuf = dmmSession.Measurement.FetchMultiPoint(samplesPerReading); StatusDMMUpdate?.Invoke("SUCCESS"); dmmResult.buf = readBuf; dmmResult.measurementMode = dmmSession.MeasurementFunction.ToString(); bufReadDMMReceived?.Invoke(dmmResult); } catch (Exception ex) { WarningDMMUpdate?.Invoke(ex.Message); } finally { /*if (dmmSession != null) * dmmSession.Close(); * Application.DoEvents();*/ } }
void InitDMM() { //aqusitionStopped = false; dmmResult = new DMMResult(); listDeviceDMM.Clear(); listMeasureModeDMM.Clear(); //powerlineFrequencyDMM = powerlineFrequencyValues[1]; //60 //resolutionDMM = resolutionValues[2]; //6.5 try { //Составляем список DMM оборудования ModularInstrumentsSystem modularInstrumentsSystem = new ModularInstrumentsSystem("NI-DMM"); foreach (DeviceInfo device in modularInstrumentsSystem.DeviceCollection) { listDeviceDMM.Add(device.Name); } if (listDeviceDMM.Count < 1) { WarningDMMUpdate?.Invoke("No DMM device found!"); } else { WarningDMMUpdate?.Invoke("Device " + listDeviceDMM[0] + " found"); } //Составляем список режимов измерения DMM listMeasureModeDMM.AddRange(Enum.GetNames(typeof(DmmMeasurementFunction))); listMeasureModeDMM.Remove(DmmMeasurementFunction.WaveformCurrent.ToString()); listMeasureModeDMM.Remove(DmmMeasurementFunction.WaveformVoltage.ToString()); } catch { } }