예제 #1
0
        private void BuildFarFieldOutputTree(XPathNavigator navigator)
        {
            if (navigator.MoveToChild("FarFieldOutput", string.Empty))
            {
                TreeNode freqDomainOutputNode = farFieldOutputNode.Nodes.Add("FreqDomain");
                TreeNode thetaCutNode         = freqDomainOutputNode.Nodes.Add("Theta Cut");
                TreeNode phiCutNode           = freqDomainOutputNode.Nodes.Add("Phi Cut");

                FrequencyFormator.FrequencyUnit frequencyUnit = (FrequencyFormator.FrequencyUnit)Enum.Parse(typeof(FrequencyFormator.FrequencyUnit),
                                                                                                            navigator.GetAttribute("frequency_Unit", string.Empty));

                XPathNodeIterator nodes = navigator.SelectChildren("FarField", string.Empty);

                while (nodes.MoveNext())
                {
                    XPathNavigator frequencyNavigator = nodes.Current.Clone();
                    string         frequency          = frequencyNavigator.GetAttribute("frequency", string.Empty);

                    //Theta cut
                    TreeNode          thetaCutFrequencyNode = thetaCutNode.Nodes.Add(FrequencyFormator.Format(float.Parse(frequency), frequencyUnit));
                    XPathNodeIterator thetaNodes            = frequencyNavigator.Select("ThetaCut/ThetaCutFarField");
                    string            displayPath           = string.Format("Theta Cut/{0}/", thetaCutFrequencyNode.Text);
                    while (thetaNodes.MoveNext())
                    {
                        string theta    = thetaNodes.Current.GetAttribute("theta", string.Empty);
                        string xpath    = "/Document/FarFieldOutput/FarField[@frequency='" + frequency + "']/ThetaCut/ThetaCutFarField[@theta='" + theta + "']/Value";
                        string nodeName = "theta=" + float.Parse(theta).ToString();

                        BuildFarFieldOutputElementTree(thetaCutFrequencyNode.Nodes.Add(nodeName), xpath, "phi", displayPath + nodeName);
                    }

                    //Phi cut
                    TreeNode          phiCutFrequencyNode = phiCutNode.Nodes.Add(FrequencyFormator.Format(float.Parse(frequency), frequencyUnit));
                    XPathNodeIterator phiNodes            = frequencyNavigator.Select("PhiCut/PhiCutFarField");
                    displayPath = string.Format("Phi Cut/{0}/", phiCutFrequencyNode.Text);
                    while (phiNodes.MoveNext())
                    {
                        string phi      = phiNodes.Current.GetAttribute("phi", string.Empty);
                        string xpath    = "/Document/FarFieldOutput/FarField[@frequency='" + frequency + "']/PhiCut/PhiCutFarField[@phi='" + phi + "']/Value";
                        string nodeName = "phi=" + float.Parse(phi).ToString();

                        BuildFarFieldOutputElementTree(phiCutFrequencyNode.Nodes.Add(nodeName), xpath, "theta", displayPath + nodeName);
                    }
                }
            }
        }
예제 #2
0
        private void btnPreview_Click(object sender, EventArgs e)
        {
            float startFreq;
            float endFreq;

            if (!float.TryParse(txtStartFreq.Text.Trim( ), out startFreq))
            {
                MessageBox.Show("Invalidate start frequency!");
                return;
            }

            if (!float.TryParse(txtEndFreq.Text.Trim( ), out endFreq))
            {
                MessageBox.Show("Invalidate end frequency!");
                return;
            }

            if (startFreq >= endFreq)
            {
                MessageBox.Show("The start frequency must be smaller than the end frequency!");
                return;
            }

            //Change the unit of frequency
            startFreq = FrequencyFormator.ChangedUnit(startFreq, (FrequencyFormator.FrequencyUnit)cboFreqUnits.SelectedValue, FrequencyFormator.FrequencyUnit.Hz);
            endFreq   = FrequencyFormator.ChangedUnit(endFreq, (FrequencyFormator.FrequencyUnit)cboFreqUnits.SelectedValue, FrequencyFormator.FrequencyUnit.Hz);

            if (rbAp.Checked)
            {
                parentForm.ResultLoadedAlarm(fft.GetAmpPhaseData(startFreq, endFreq));
            }

            if (rbRi.Checked)
            {
                parentForm.ResultLoadedAlarm(fft.GetRealImageData(startFreq, endFreq));
            }
        }
예제 #3
0
        private void cboFreqUnits_SelectedIndexChanged(object sender, EventArgs e)
        {
            float freq = FrequencyFormator.ChangedUnit(fft.Step, FrequencyFormator.FrequencyUnit.Hz, (FrequencyFormator.FrequencyUnit)cboFreqUnits.SelectedValue);

            this.txtFreqStep.Text = freq.ToString( );
        }