private void Evaluate()
        {
            if (!btnEvaluate.Enabled)
            {
                return;
            }

            Hashtable parameters = new Hashtable();

            foreach (Control ctrl in pnlVariables.Controls)
            {
                if (ctrl.Visible)
                {
                    Panel pnl = ctrl as Panel;
                    if (pnl != null)
                    {
                        parameters.Add(pnl.Tag, pnl.Controls[1].Text);
                    }
                }
            }
            string message;

            double[] data = SyntheticGenerator.GenerateData(tbNoOfSamples.Value, tbSamplesPerSecond.Value, tctFormula.Text, parameters, out message);
            if (message != null)
            {
                lblMessage.Text = message;
                spectrum.Series[0].Points.Clear();
            }
            else
            {
                lblMessage.Text = "";
                FftAnalyzer.Windowing(tbNoOfSamples.Value, data, WindowType, 1, data, false);
                RenderScopeData(data);
                _fftAnalyzer.ExecuteFftAsync(data, SamplesPerSecond, 1, WindowingTypes.Square); // already windowed.
            }
        }