public frmChart(CFGData _CFGData, DATData _DATData, FFTData _FFTData, int _PSMode) { InitializeComponent(); mCFGData = _CFGData; mDATData = _DATData; mFFTData = _FFTData; PSMode = _PSMode; }
private void btnFileOpen_Click(object sender, EventArgs e) { if (System.IO.Directory.Exists("./CompressFile")) { System.IO.Directory.Delete("./CompressFile", true); } if (this.openFileDialog1.ShowDialog() != DialogResult.OK) { (sender as Button).Enabled = true; return; } setEnable(false); string strFile = this.openFileDialog1.FileName; string strRarPath = string.Empty; string strFileName = string.Empty; string strXmlFile = this.GetType().Assembly.Location; string strfilePath = strXmlFile = strXmlFile.Replace("PRSpline.exe", "CompressFile\\"); if (strFile.IndexOf(".cfg") > 0) { if (File.Exists(strFile.Replace(".cfg", ".dat"))) { Directory.CreateDirectory(strfilePath); File.Copy(strFile, (strfilePath + openFileDialog1.SafeFileName), true); File.Copy(strFile.Replace(".cfg", ".dat"), strfilePath + openFileDialog1.SafeFileName.Replace(".cfg", ".dat"), true); } else { MessageBox.Show("無dat檔"); return; } } else { while (strFile.IndexOf(@"\") > -1) { strRarPath += strFile.Substring(0, strFile.IndexOf(@"\") + 1); strFile = strFile.Substring(strFile.IndexOf(@"\") + 1); } mCompressWinRAR.UnCompressRar(strfilePath, strRarPath, strFile); } try { cbxPS.Items.Clear(); foreach (var item in System.IO.Directory.GetFiles(strfilePath, "*.cfg")) { m_LoadDataFile.DisplayValues_CFG(item, ref mCFGData); break; } Set_Information(mCFGData); SetPSData(mCFGData); foreach (var item in System.IO.Directory.GetFiles(strfilePath, "*.dat")) { m_LoadDataFile.DisplayValues_DAT(item, ref mDATData, mCFGData.TotalAmount); break; } int count = 0; for (int i = 0; i < mCFGData.arrAnalogyData.Count(); i++) { if (mCFGData.arrAnalogyData[i].Name.IndexOf("MEAS") < 0) { count++; } } mFFTData = new FFTData(); mFFTData.arrFFTData = new List <FFTData.Data>(); for (int i = 0; i < mCFGData.TotalPoint; i++) { FFTData.Data _Data = new FFTData.Data(); _Data.Value = new double[count]; _Data.rad = new double[count]; for (int ii = 0; ii < count; ii++) { Complex mComplex = new Complex(); mComplex = FFTW(i, ii); _Data.Value[ii] = Math.Sqrt(Math.Pow(mComplex.Real, 2) + Math.Pow(mComplex.Imaginary, 2)) / (64 / 2) / Math.Sqrt(2); _Data.rad[ii] = Math.Atan2(mComplex.Imaginary, mComplex.Real); } mFFTData.arrFFTData.Add(_Data); } ClearButton(); for (int i = 0; i < mCFGData.A_Amount; i++) { AddNewButton(mCFGData.arrAnalogyData[i].Name, i, 0); } for (int i = 0; i < mCFGData.D_Amount; i++) { AddNewButton(mCFGData.arrDigitalData[i].Name, i, 1); } for (int i = 0; i < mCFGData.arrAnalogyData.Count(); i++) { if (mCFGData.arrAnalogyData[i].Name.IndexOf("MEAS") < 0) { AddNewButton(mCFGData.arrAnalogyData[i].Name + "_FFT", i + mCFGData.arrAnalogyData.Count(), 0); } } if (pnlAnagol.Controls.Count > 15) { AddVScrollBar(); } cbxPS.Items.Add("P"); cbxPS.Items.Add("S"); cbxPS.Items.Add("Per Unit"); if (mCFGData.arrAnalogyData[0].PrimaryOrSecondary == "P") { cbxPS.SelectedIndex = 0; } else if (mCFGData.arrAnalogyData[0].PrimaryOrSecondary == "S") { cbxPS.SelectedIndex = 1; } } catch (ApplicationException message) { MessageBox.Show(String.Format("{0}: {1}", strFile, message.Message)); } finally { setEnable(true); } }