| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 | 
							- using DevExpress.Data.Extensions;
 
- using DevExpress.Internal.WinApi.Windows.UI.Notifications;
 
- using DevExpress.Mvvm.Native;
 
- using DevExpress.XtraEditors;
 
- using DevExpress.XtraLayout.Utils;
 
- using DxHelper;
 
- using ExtensionsDev;
 
- using Newtonsoft.Json;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.ComponentModel;
 
- using System.Data;
 
- using System.Data.Entity;
 
- using System.Drawing;
 
- using System.IO;
 
- using System.IO.Compression;
 
- using System.Linq;
 
- using System.Net;
 
- using System.Net.Http;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using System.Web.Http.Results;
 
- using System.Web.UI.WebControls;
 
- using System.Windows.Forms;
 
- using XdCxRhDw.Dto;
 
- using XdCxRhDW.Core;
 
- using XdCxRhDW.Core.Api;
 
- using XdCxRhDW.Repostory.EFContext;
 
- namespace XdCxRhDW.App.CorTools
 
- {
 
-     public partial class DetectToolForm : DevExpress.XtraEditors.XtraForm
 
-     {
 
-         static readonly string inifile = Path.Combine(Application.StartupPath, "par.ini");
 
-         private string baseUrl;
 
-         BindingList<CafResult> gridSource = new BindingList<CafResult>();
 
-         public DetectToolForm()
 
-         {
 
-             InitializeComponent();
 
-         }
 
-         private async void MainForm_Load(object sender, EventArgs e)
 
-         {
 
-             this.gridControl1.Init<CafResult>().UseExportXlsx().AddMenu("清除", SvgHelper.CreateClear(), () =>
 
-             {
 
-                 gridSource.Clear();
 
-             });
 
-             this.gridControl1.DataSource = gridSource;
 
-             this.btnFile1.UseChooseFile();
 
-             this.btnFile2.UseChooseFile();
 
-             btnCheck.Enabled = !ckKY.Checked && !ckIBS.Checked && !chkDama.Checked ? false : true;
 
-             ReadIni();
 
-             using (RHDWContext db = new RHDWContext())
 
-             {
 
-                 var res = await db.SysSetings.FirstOrDefaultAsync();
 
-                 if (res != null)
 
-                 {
 
-                     this.baseUrl = $"http://{IpHelper.GetLocalIp()}:{res.HttpPort}/api/";
 
-                 }
 
-             }
 
-         }
 
-         private async void btnCheck_Click(object sender, EventArgs e)
 
-         {
 
-             if (!ValidateFiles(btnFile1.Text))
 
-             {
 
-                 return;
 
-             }
 
-             DmcType dmcType = DmcType.DAMA;
 
-             if (ckKY.Checked)
 
-             {
 
-                 dmcType = DmcType.Ky5758;
 
-             }
 
-             else if (ckIBS.Checked)
 
-             {
 
-                 dmcType = DmcType.IBS;
 
-             }
 
-             else if (chkDama.Checked)
 
-             {
 
-                 dmcType = DmcType.DAMA;
 
-             }
 
-             DetectDto dto = new DetectDto();
 
-             dto.dmcType = dmcType;
 
-             layoutControl1.Enabled = false;
 
-             await Task.Run(async () =>
 
-             {
 
-                 try
 
-                 {
 
-                     dto.file1 = HttpHelper.UploadFile(btnFile1.Text, baseUrl + "File/UploadFileAsync");
 
-                     dto.fsHz = double.Parse(tefs.Text) * 1e6;
 
-                     var dmcResult =await HttpHelper.PostRequestAsync<IEnumerable<DetectResDto>>(baseUrl + "DetectCg/DetectCalc", dto);
 
-                     if (dmcResult.code == 200)
 
-                     {
 
-                         gridSource.Clear();
 
-                         foreach (var dmcItem in dmcResult.data)
 
-                         {
 
-                             gridSource.Add(new CafResult()
 
-                             {
 
-                                 file1 = btnFile1.Text,
 
-                                 file2 = btnFile2.Text,
 
-                                 smpstart = dmcItem.Start,
 
-                                 smplen = dmcItem.Length,
 
-                                 tm = dmcItem.TimeMs,
 
-                             });
 
-                         }
 
-                     }
 
-                     WriteIni();
 
-                 }
 
-                 catch (Exception ex)
 
-                 {
 
-                     Serilog.Log.Error(ex, "信号检测出错");
 
-                     DxHelper.MsgBoxHelper.ShowError($"信号检测出错");
 
-                 }
 
-             });
 
-             layoutControl1.Enabled = true;
 
-         }
 
-         private async void btnCalc_Click(object sender, EventArgs e)
 
-         {
 
-             if (!ValidateFiles(btnFile1.Text, btnFile2.Text)) return;
 
-             List<XcorrStruct> xcorrs = new List<XcorrStruct>();
 
-             XcorrStruct xItem = new XcorrStruct();
 
-             layoutControl1.Enabled = false;
 
-             await Task.Run(async () =>
 
-             {
 
-                 try
 
-                 {
 
-                     xItem.file1 = HttpHelper.UploadFile(btnFile1.Text, baseUrl + "File/UploadFileAsync");
 
-                     xItem.file2 = HttpHelper.UploadFile(btnFile2.Text, baseUrl + "File/UploadFileAsync");
 
-                     xItem.smpCount = int.Parse(teCount.Text);
 
-                     xItem.samplingRate = Convert.ToInt32(double.Parse(tefs.Text) * 1e6);
 
-                     xItem.dtCenter = int.Parse(teCenter.Text);
 
-                     xItem.dtRange = int.Parse(teRange.Text);
 
-                     xItem.dfRange = int.Parse(teDfRange.Text);
 
-                     xItem.smpStart = int.Parse(tePos.Text);
 
-                     xItem.snrThreshold = int.Parse(teSnr.Text);
 
-                 }
 
-                 catch (Exception ex)
 
-                 {
 
-                     Serilog.Log.Error(ex, "参数错误");
 
-                     DxHelper.MsgBoxHelper.ShowError($"参数错误{ex.Message}");
 
-                     return;
 
-                 }
 
-                 if (lciStartPos.Visibility == LayoutVisibility.Never)
 
-                 {
 
-                     foreach (var item in gridSource)
 
-                     {
 
-                         var corritem = xItem.Copy();
 
-                         corritem.smpCount = (int)item.smplen;
 
-                         corritem.smpStart = (int)item.smpstart;
 
-                         xcorrs.Add(corritem);
 
-                     }
 
-                 }
 
-                 else
 
-                 {
 
-                     xcorrs.Add(xItem);
 
-                 }
 
-                 WriteIni();
 
-                 gridSource.Clear();
 
-                 foreach (var xcitem in xcorrs)
 
-                 {
 
-                     try
 
-                     {
 
-                         var result = await HttpHelper.PostRequestAsync<CpuCgResDto>(baseUrl + "DetectCg/CpuCgCalc", xcitem);
 
-                         if (result.code==200)
 
-                         {
 
-                             gridSource.Add(new CafResult()
 
-                             {
 
-                                 file1 = btnFile1.Text,
 
-                                 file2 = btnFile2.Text,
 
-                                 smpstart = result.data.Smpstart,
 
-                                 smplen = result.data.Smplen,
 
-                                 dt = result.data.Dt,
 
-                                 df = result.data.Df,
 
-                                 snr = result.data.Snr,
 
-                                 tm = result.data.TimeMs,
 
-                             });
 
-                             gridView1.FocusedRowHandle = gridSource.Count - 1;
 
-                         }
 
-                     }
 
-                     catch (Exception ex)
 
-                     {
 
-                         Serilog.Log.Error(ex, "CPU参估出错");
 
-                         continue;
 
-                     }
 
-                 }
 
-             });
 
-             layoutControl1.Enabled = true;
 
-         }
 
-         private async void btnDrawImage_Click(object sender, EventArgs e)
 
-         {
 
-             if (!ValidateFiles(btnFile1.Text, btnFile2.Text)) return;
 
-             XcorrStruct par = new XcorrStruct()
 
-             {
 
-                 file1 = btnFile1.Text,
 
-                 file2 = btnFile2.Text,
 
-                 samplingRate = Convert.ToInt32(double.Parse(tefs.Text) * 1e6),
 
-                 dtCenter = int.Parse(teCenter.Text),
 
-                 dtRange = int.Parse(teRange.Text),
 
-                 dfRange = int.Parse(teDfRange.Text),
 
-                 smpStart = int.Parse(tePos.Text),
 
-                 smpCount = int.Parse(teCount.Text),
 
-                 snrThreshold = int.Parse(teSnr.Text),
 
-             };
 
-             FileInfo file1 = new FileInfo(par.file1);
 
-             FileInfo file2 = new FileInfo(par.file2);
 
-             long minFileLen = file1.Length > file2.Length ? file2.Length : file1.Length;
 
-             int totalsamp = (int)(minFileLen / 4);
 
-             if (par.smpCount == 0)
 
-             {
 
-                 par.smpCount = (int)totalsamp - par.smpStart;
 
-             }
 
-             if (par.smpStart + par.smpCount > totalsamp)
 
-             {
 
-                 par.smpCount = totalsamp - par.smpStart;
 
-             }
 
-             layoutControl1.Enabled = false;
 
-             List<ImageResult> res;
 
-             try
 
-             {
 
-                 res = await new XcorrUtils().DrawImage(par);
 
-                 WriteIni();
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 Serilog.Log.Error(ex, "参估绘图失败");
 
-                 DxHelper.MsgBoxHelper.ShowError($"参估绘图失败{ex.Message}");
 
-                 return;
 
-             }
 
-             finally
 
-             {
 
-                 layoutControl1.Enabled = true;
 
-             }
 
-             if (res!=null&&res.Any())
 
-             {
 
-                 new CgImageForm().ShowDialog();
 
-             }
 
-         }
 
-         private void chkDama_CheckedChanged(object sender, EventArgs e)
 
-         {
 
-             lciStartPos.Visibility = lciSampleLength.Visibility = ckKY.Checked | ckIBS.Checked | chkDama.Checked ? LayoutVisibility.Never : LayoutVisibility.Always;
 
-             btnCalc.Enabled = ckKY.Checked | ckIBS.Checked | chkDama.Checked ? false : true;
 
-             btnDrawImage.Enabled = btnCalc.Enabled;
 
-             btnCheck.Enabled = !ckKY.Checked && !ckIBS.Checked && !chkDama.Checked ? false : true;
 
-             if (chkDama.Checked)
 
-             {
 
-                 ckIBS.Checked = false;
 
-                 ckKY.Checked = false;
 
-             }
 
-         }
 
-         private void ckIBS_CheckedChanged(object sender, EventArgs e)
 
-         {
 
-             lciStartPos.Visibility = lciSampleLength.Visibility = ckKY.Checked | ckIBS.Checked | chkDama.Checked ? LayoutVisibility.Never : LayoutVisibility.Always;
 
-             btnCalc.Enabled = ckKY.Checked | ckIBS.Checked | chkDama.Checked ? false : true;
 
-             btnDrawImage.Enabled = btnCalc.Enabled;
 
-             btnCheck.Enabled = !ckKY.Checked && !ckIBS.Checked && !chkDama.Checked ? false : true;
 
-             if (ckIBS.Checked)
 
-             {
 
-                 chkDama.Checked = false;
 
-                 ckKY.Checked = false;
 
-             }
 
-         }
 
-         private void ckKY_CheckedChanged(object sender, EventArgs e)
 
-         {
 
-             lciStartPos.Visibility = lciSampleLength.Visibility = ckKY.Checked | ckIBS.Checked | chkDama.Checked ? LayoutVisibility.Never : LayoutVisibility.Always;
 
-             btnCalc.Enabled = ckKY.Checked | ckIBS.Checked | chkDama.Checked ? false : true;
 
-             btnDrawImage.Enabled = btnCalc.Enabled;
 
-             btnCheck.Enabled = !ckKY.Checked && !ckIBS.Checked && !chkDama.Checked ? false : true;
 
-             if (ckKY.Checked)
 
-             {
 
-                 ckIBS.Checked = false;
 
-                 chkDama.Checked = false;
 
-             }
 
-         }
 
-         private bool ValidateFiles(params string[] files)
 
-         {
 
-             foreach (var file in files)
 
-             {
 
-                 if (string.IsNullOrWhiteSpace(file))
 
-                 {
 
-                     DxHelper.MsgBoxHelper.ShowError($"请选择文件!");
 
-                     return false;
 
-                 }
 
-                 if (!File.Exists(file))
 
-                 {
 
-                     DxHelper.MsgBoxHelper.ShowError($"文件【{file}】不存在");
 
-                     return false;
 
-                 }
 
-             }
 
-             return true;
 
-         }
 
-         //读取配置
 
-         void ReadIni()
 
-         {
 
-             if (File.Exists(inifile))
 
-             {
 
-                 var lines = File.ReadAllLines(inifile);
 
-                 if (lines.Length != 9)
 
-                 {
 
-                     Serilog.Log.Error($"文件[{inifile}]读取失败,文件格式错误!");
 
-                     return;
 
-                 }
 
-                 btnFile1.Text = lines[0];
 
-                 btnFile2.Text = lines[1];
 
-                 teCount.Text = lines[2];
 
-                 tefs.Text = lines[3];
 
-                 teCenter.Text = lines[4];
 
-                 teRange.Text = lines[5];
 
-                 teSnr.Text = lines[6];
 
-                 tePos.Text = lines[7];
 
-                 teDfRange.Text = lines[8];
 
-             }
 
-         }
 
-         // 写入配置
 
-         void WriteIni()
 
-         {
 
-             var lines = new List<string>
 
-             {
 
-                 btnFile1.Text,
 
-                 btnFile2.Text,
 
-                 teCount.Text,
 
-                 tefs.Text,
 
-                 teCenter.Text,
 
-                 teRange.Text,
 
-                 teSnr.Text,
 
-                 tePos.Text,
 
-                 teDfRange.Text
 
-             };
 
-             File.WriteAllLines(inifile, lines);
 
-         }
 
-     }
 
- }
 
 
  |