Example #1
0
        /// <summary>
        /// Updates the fourier transform charts and the 2d memory displays.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ChangeFourierTransforms(object sender, RunWorkerCompletedEventArgs e)
        {
            foreach (float freq in ((float[][])(e.Result))[0])
            {
                chart3.Series[0].Points.Add(freq);
            }

            foreach (float freq in ((float[][])(e.Result))[1])
            {
                chart3.Series[1].Points.Add(freq);
            }

            double FFTWStdDev = MathFunctions.CalculateStdDev(Array.ConvertAll(((float[][])(e.Result))[0], x => (double)x).AsEnumerable());

            if (FFTWStdDev > FourierTolerance)
            {
                FourierBitmap.SetMaxOutput((float)feedbackMaxKalman.GetFilteredValue());
                pidPictureBox.Image = FourierBitmap.Calculate2DFourierTransform(((float[][])(e.Result))[0]);
            }
        }
Example #2
0
        /// <summary>
        /// Updates the fourier transform charts and the 2d memory displays.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BackgroundWorker_ChangeFourierTransforms(object sender, RunWorkerCompletedEventArgs e)
        {
            foreach (float freq in ((float[][])(e.Result))[0])
            {
                chart3.Series[0].Points.Add(freq);
            }

            foreach (float freq in ((float[][])(e.Result))[1])
            {
                chart4.Series[0].Points.Add(freq);
            }

            foreach (float freq in ((float[][])(e.Result))[2])
            {
                chart3.Series[1].Points.Add(freq);
            }

            foreach (float freq in ((float[][])(e.Result))[3])
            {
                chart4.Series[1].Points.Add(freq);
            }

            double pidFFTWStdDev  = MathFunctions.CalculateStdDev(Array.ConvertAll(((float[][])(e.Result))[0], x => (double)x).AsEnumerable());
            double adrcFFTWStdDev = MathFunctions.CalculateStdDev(Array.ConvertAll(((float[][])(e.Result))[1], x => (double)x).AsEnumerable());

            if (pidFFTWStdDev > FourierTolerance)
            {
                PIDFourierBitmap.SetMaxOutput((float)pidMaxValue.GetFilteredValue());
                pidPictureBox.Image = PIDFourierBitmap.Calculate2DFourierTransform(((float[][])(e.Result))[0]);
            }

            if (adrcFFTWStdDev > FourierTolerance)
            {
                ADRCFourierBitmap.SetMaxOutput((float)adrcMaxValue.GetFilteredValue());
                adrcPictureBox.Image = ADRCFourierBitmap.Calculate2DFourierTransform(((float[][])(e.Result))[1]);
            }
        }