DetectToolForm.cs 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. using DevExpress.Internal.WinApi.Windows.UI.Notifications;
  2. using DevExpress.XtraEditors;
  3. using DevExpress.XtraLayout.Utils;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel;
  7. using System.Data;
  8. using System.Drawing;
  9. using System.IO;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. using System.Windows.Forms;
  14. namespace XdCxRhDW.App.CorTools
  15. {
  16. public partial class DetectToolForm : DevExpress.XtraEditors.XtraForm
  17. {
  18. static readonly string inifile = Path.Combine(Application.StartupPath, "par.ini");
  19. volatile bool beRunning = false;
  20. BindingList<CafResult> gridSource = new BindingList<CafResult>();
  21. public DetectToolForm()
  22. {
  23. InitializeComponent();
  24. }
  25. void openfile(object sender)
  26. {
  27. if (openFileDialog1.ShowDialog() == DialogResult.OK)
  28. {
  29. if (sender == btnFile1)
  30. {
  31. btnFile1.Text = openFileDialog1.FileName;
  32. }
  33. else
  34. {
  35. btnFile2.Text = openFileDialog1.FileName;
  36. }
  37. }
  38. }
  39. /// <summary>
  40. /// 读取配置
  41. /// </summary>
  42. void ReadIni()
  43. {
  44. if (File.Exists(inifile))
  45. {
  46. var lines = File.ReadAllLines(inifile);
  47. if (lines.Length != 9)
  48. {
  49. return;
  50. }
  51. btnFile1.Text = lines[0];
  52. btnFile2.Text = lines[1];
  53. teCount.Text = lines[2];
  54. tefs.Text = lines[3];
  55. teCenter.Text = lines[4];
  56. teRange.Text = lines[5];
  57. teSnr.Text = lines[6];
  58. tePos.Text = lines[7];
  59. teDfRange.Text = lines[8];
  60. }
  61. }
  62. /// <summary>
  63. /// 写入配置
  64. /// </summary>
  65. void WriteIni()
  66. {
  67. var lines = new List<String>();
  68. lines.Add(btnFile1.Text);
  69. lines.Add(btnFile2.Text);
  70. lines.Add(teCount.Text);
  71. lines.Add(tefs.Text);
  72. lines.Add(teCenter.Text);
  73. lines.Add(teRange.Text);
  74. lines.Add(teSnr.Text);
  75. lines.Add(tePos.Text);
  76. lines.Add(teDfRange.Text);
  77. File.WriteAllLines(inifile, lines);
  78. }
  79. private void MainForm_Load(object sender, EventArgs e)
  80. {
  81. this.gridControl1.DataSource = gridSource;
  82. ReadIni();
  83. }
  84. private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
  85. {
  86. //if (!DxHelper.MsgBoxHelper.ShowConfirm("是否退出当前程序"))
  87. //{
  88. // e.Cancel = true;
  89. //}
  90. }
  91. private bool ValidateFile(string filename)
  92. {
  93. if (string.IsNullOrWhiteSpace(filename))
  94. {
  95. DxHelper.MsgBoxHelper.ShowError($"请选择文件!");
  96. return false;
  97. }
  98. if (!File.Exists(filename))
  99. {
  100. DxHelper.MsgBoxHelper.ShowError($"文件【{filename}】不存在");
  101. return false;
  102. }
  103. return true;
  104. }
  105. /// <summary>
  106. /// 网格右键菜单弹出
  107. /// </summary>
  108. /// <param name="sender"></param>
  109. /// <param name="e"></param>
  110. private void gridView1_MouseDown(object sender, MouseEventArgs e)
  111. {
  112. if (e.Button == MouseButtons.Right && !beRunning)
  113. {
  114. popupMenu1.ShowPopup(Cursor.Position);
  115. }
  116. }
  117. /// <summary>
  118. /// 清除网格
  119. /// </summary>
  120. /// <param name="sender"></param>
  121. /// <param name="e"></param>
  122. private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
  123. {
  124. gridSource.Clear();
  125. }
  126. /// <summary>
  127. /// 文件拖拽
  128. /// </summary>
  129. /// <param name="sender"></param>
  130. /// <param name="e"></param>
  131. private void btnFile_DragOver(object sender, DragEventArgs e)
  132. {
  133. e.Effect = e.Data.GetDataPresent(DataFormats.FileDrop) ? DragDropEffects.Copy : DragDropEffects.None;
  134. }
  135. private void btnFile_DragDrop(object sender, DragEventArgs e)
  136. {
  137. string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
  138. if (files != null && files.Length != 0)
  139. {
  140. if (sender == btnFile1)
  141. {
  142. btnFile1.Text = files[0];
  143. }
  144. else if (sender == btnFile2)
  145. {
  146. btnFile2.Text = files[0];
  147. }
  148. }
  149. }
  150. private void btnFile_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
  151. {
  152. openfile(sender);
  153. }
  154. private void btnFile_DoubleClick(object sender, EventArgs e)
  155. {
  156. openfile(sender);
  157. }
  158. private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
  159. {
  160. SaveFileDialog dialog = new SaveFileDialog();
  161. dialog.Filter = "csv|*.csv";
  162. if (dialog.ShowDialog() == DialogResult.OK)
  163. {
  164. gridView1.ExportToCsv(dialog.FileName);
  165. }
  166. }
  167. private async void btnCheck_Click(object sender, EventArgs e)
  168. {
  169. if (!ValidateFile(btnFile1.Text))
  170. {
  171. return;
  172. }
  173. var dmcResult = await XcorrUtils.DmcCheckAsync(btnFile1.Text, double.Parse(tefs.Text));
  174. gridSource.Clear();
  175. foreach (var dmcItem in dmcResult)
  176. {
  177. gridSource.Add(new CafResult()
  178. {
  179. file1 = btnFile1.Text,
  180. file2 = btnFile2.Text,
  181. smpstart = dmcItem.Start,
  182. smplen = dmcItem.Length
  183. });
  184. }
  185. }
  186. private void chkDama_CheckedChanged(object sender, EventArgs e)
  187. {
  188. //lciBtnCheck.Visibility = chkDama.Checked ? LayoutVisibility.Always : LayoutVisibility.Never;
  189. lciStartPos.Visibility = lciSampleLength.Visibility = chkDama.Checked ? LayoutVisibility.Never : LayoutVisibility.Always;
  190. //layoutControl1.BestFit();
  191. }
  192. }
  193. }