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); } } } }
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)); } }
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( ); }