/// <summary> /// Prepare ADC data for visualization /// </summary> public void BuildData() { ADCValues.Clear(); if (RxArray == null) { return; } VoltPoint[] temp = new VoltPoint[RxArray.Length]; RaiseProgressChanged(null); Debug.WriteLine("=> filling ADCValues"); for (int i = 0; i < RxArray.Length; i++) { temp[i] = (new VoltPoint(((double)RxArray[i] / (double)RCUCom.ADCBinMax) * RCUCom.ADCVoltMax, i / RCUCom.ADCSampleRate)); } ADCValues.AddRange(temp); //foreach (var item in temp) //{ // ADCValues.Add(item); //} }
/// <summary> /// Read the values of the specified channels of the inner ADC. /// </summary> /// <param name="channelEnabled">Concat multiple channels with `|` operator.</param> /// <returns></returns> public double[] ReadAdc(ADCChannels channelEnabled) { RxPackage package; lock (_lockController) { Send(new CommandReadADC(channelEnabled)); Read(out package, CancellationToken.None); } var adc = new ADCValues(channelEnabled, package.Payload); // convert adc raw-data to mV. var valConv = new List <double>(); foreach (var v in adc.Values) { valConv.Add(ConvertAdcRawTomV(v)); } return(valConv.ToArray()); }