diff --git a/PipeGallery/Correlator/CalculteThread.cs b/PipeGallery/Correlator/CalculteThread.cs index c61a0b2..ca57fd7 100644 --- a/PipeGallery/Correlator/CalculteThread.cs +++ b/PipeGallery/Correlator/CalculteThread.cs @@ -1,40 +1,40 @@ -using Newtonsoft.Json; +using System; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Timers; +using System.Windows.Forms; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using PipeGallery.Manage; using PipeGallery.Model; using PipeGallery.View; using PipeGallery.ViewModel; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using System.Timers; -using System.Windows; -using System.Windows.Threading; +using MessageBox = System.Windows.MessageBox; +using Timer = System.Timers.Timer; namespace PipeGallery.Correlator { class CalculteThread { - System.Timers.Timer timer = new System.Timers.Timer(); + Timer timer = new Timer(); + //private DispatcherTimer passTimer = new DispatcherTimer(); - private int passTime = 0;//经过的时间 + private int passTime = 0; //经过的时间 public void exe() { - Correlator.CalculteSatus.msp.timer.Stop();//停止状态采集指令的发送 + CalculteSatus.msp.timer.Stop(); //停止状态采集指令的发送 CalculteSatus.msp.collectData = true; //计时器过程 timer.Enabled = true; timer.Interval = 900; timer.Start(); - timer.Elapsed += new System.Timers.ElapsedEventHandler(showTimer); - + timer.Elapsed += new ElapsedEventHandler(showTimer); ////启动一个定时器,改变绑定时间数值 //App.Current.Dispatcher.Invoke((Action)(() => @@ -48,11 +48,11 @@ // passTimer.Start(); // })); - HomePageViewModel.Instance.SNR = ""; HomePageViewModel.Instance.FilterValue = CorrelatorDataSaveThread.filterInfo.LowPass == 0 - ? "" : CorrelatorDataSaveThread.filterInfo.LowPass + "-" + CorrelatorDataSaveThread.filterInfo.HighPass + "Hz"; - + ? "" + : CorrelatorDataSaveThread.filterInfo.LowPass + "-" + CorrelatorDataSaveThread.filterInfo.HighPass + + "Hz"; if (CalculteSatus.cutFreLow < 0 || CalculteSatus.cutFreHigh < 0) { @@ -60,10 +60,10 @@ } else { - HomePageViewModel.Instance.InterfereValue = CalculteSatus.cutFreLow + "-" + CalculteSatus.cutFreHigh + "Hz"; + HomePageViewModel.Instance.InterfereValue = + CalculteSatus.cutFreLow + "-" + CalculteSatus.cutFreHigh + "Hz"; } - //HomePageViewModel.Instance.SoundSpeed = (int)CalculteSatus.SoundSpeed + "m/s"; //数据采集过程 @@ -90,9 +90,11 @@ String txtSpeedValue = ""; foreach (PipeMaterialData pipeMaterialData in CalculteSatus.MaterialDatas) { - txtPipeLine += pipeMaterialData.Diameter + "mm," + pipeMaterialData.Length + "m" + pipeMaterialData.Material + "\r"; + txtPipeLine += pipeMaterialData.Diameter + "mm," + pipeMaterialData.Length + "m" + + pipeMaterialData.Material + "\r"; txtSpeedValue += pipeMaterialData.Soundspeed + "m/s\r"; } + HomePageViewModel.Instance.PipeLine = txtPipeLine; HomePageViewModel.Instance.SoundSpeed = txtSpeedValue; @@ -114,13 +116,11 @@ Array.Clear(CalculteSatus.corrCoeffVecAbs, 0, CalculteSatus.corrCoeffVecAbs.Length); Array.Clear(CalculteSatus.disVec, 0, CalculteSatus.disVec.Length); } - } - public void exe1() { - Correlator.CalculteSatus.msp.timer.Stop();//停止状态采集指令的发送 + CalculteSatus.msp.timer.Stop(); //停止状态采集指令的发送 CalculteSatus.msp.collectData = true; //数据采集过程 @@ -141,9 +141,6 @@ */ Task freThread = new Task(() => getFreWave()); freThread.Start(); - - - } private void showTimer(object source, ElapsedEventArgs e) @@ -175,22 +172,20 @@ int num = 0; while (!CorrelatorDataSaveThread.devDataValueMap.ContainsKey(DevCode.Dev1) || - !CorrelatorDataSaveThread.devDataValueMap.ContainsKey(DevCode.Dev2)) + !CorrelatorDataSaveThread.devDataValueMap.ContainsKey(DevCode.Dev2)) { Thread.Sleep(100); - if (num++ >= 600) { MessageBox.Show("接收不到数据,请检查设备是否开启!"); CalculteSatus.isRedCollectComplete = true; - CalculteSatus.isBlueCollectComplete = true;//采集不到数据 + CalculteSatus.isBlueCollectComplete = true; //采集不到数据 return; } } - CalculteSatus.msp.collectData = false;//停止下发采集指令 - Correlator.CalculteSatus.msp.timer.Start();//开始状态采集指令的发送 - + CalculteSatus.msp.collectData = false; //停止下发采集指令 + CalculteSatus.msp.timer.Start(); //开始状态采集指令的发送 ClassCalculate calculate = ClassCalculate.Instance; calculate.Device1 = DevCode.Dev1; @@ -202,17 +197,15 @@ CalculteSatus.isBlueCollectComplete = true; } - /// /// 计算过程 /// private void caculate() { while (!CorrelatorDataSaveThread.devDataValueMap.ContainsKey(DevCode.Dev1) || - !CorrelatorDataSaveThread.devDataValueMap.ContainsKey(DevCode.Dev2)) + !CorrelatorDataSaveThread.devDataValueMap.ContainsKey(DevCode.Dev2)) { Thread.Sleep(100); - if (passTime >= 60) { CalculteSatus.isCalculateStop = true; @@ -233,7 +226,7 @@ calculate.execute(); - Label: + Label: //passTimer.Stop(); timer.Stop(); passTime = 0; @@ -249,28 +242,26 @@ HomePageViewModel.Instance.BtnResetIsEnabled = true; HomePageViewModel.Instance.BtnStartIsEnabled = true; - Correlator.CalculteSatus.msp.timer.Start();//开始状态采集指令的发送 + CalculteSatus.msp.timer.Start(); //开始状态采集指令的发送 CorrelatorDataSaveThread.devDataValueMap.Clear(); - - ////////////////////截图///////////////////////////// - int width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width; - int height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height; + int width = Screen.PrimaryScreen.Bounds.Width; + int height = Screen.PrimaryScreen.Bounds.Height; Bitmap memoryImage = new Bitmap(width, height); Graphics memoryGraphics = Graphics.FromImage(memoryImage); - memoryGraphics.CopyFromScreen(0, 0, 0, 0, new System.Drawing.Size(width, height), CopyPixelOperation.SourceCopy); + memoryGraphics.CopyFromScreen(0, 0, 0, 0, new Size(width, height), CopyPixelOperation.SourceCopy); MemoryStream data = new MemoryStream(); - memoryImage.Save(data, System.Drawing.Imaging.ImageFormat.Png); + memoryImage.Save(data, ImageFormat.Png); String strPath = "data\\locate\\测试报告" + CorrelatorDataSaveThread.Date + "." - + CorrelatorDataSaveThread.Pipe + "\\快照." - + CorrelatorDataSaveThread.Locate + "." - + DateTime.Now.ToString("HHmmss") + ".png"; + + CorrelatorDataSaveThread.Pipe + "\\快照." + + CorrelatorDataSaveThread.Locate + "." + + DateTime.Now.ToString("HHmmss") + ".png"; FileStream fs = new FileStream(strPath, FileMode.OpenOrCreate); BinaryWriter w = new BinaryWriter(fs); @@ -279,11 +270,11 @@ data.Close(); //测试序号+1 - String josnString = File.ReadAllText(System.AppDomain.CurrentDomain.BaseDirectory + "number.json", Encoding.UTF8); + String josnString = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "number.json", Encoding.UTF8); JObject jo = JObject.Parse(josnString); int locate = Convert.ToInt32(jo["locate"].ToString()); - int count = locate;//一轮计算次数 + int count = locate; //一轮计算次数 locate = locate >= 6 ? 1 : ++locate; jo["locate"] = locate; @@ -297,42 +288,39 @@ //测试序号复位 jo["locate"] = 1; writeJsonFile(jo); - return; } - - if (count <= 6) + if (count <= 6) { - ColumnGroupInfo snapshot = DataFactory.ChartBaseDictionary[DataFactory.HomePageChartId] as ColumnGroupInfo; + ColumnGroupInfo snapshot = + DataFactory.ChartBaseDictionary[DataFactory.HomePageChartId] as ColumnGroupInfo; ColumnGroupInfo snapshot_copy = new ColumnGroupInfo(); snapshot_copy.ColumnListInfo = snapshot.ColumnListInfo; snapshot_copy.ID = Guid.NewGuid().ToString(); DataFactory.SnapshotList.Add(snapshot_copy.ID); DataFactory.ChartBaseDictionary[snapshot_copy.ID] = snapshot_copy; - - if (count == 3)//完成3次测试,进行第一轮判断 + if (count == 3) //完成3次测试,进行第一轮判断 { - App.Current.Dispatcher.Invoke((Action)(() => + App.Current.Dispatcher.Invoke((Action) (() => { CalculteSatus.disAs.Sort(); - if (CalculteSatus.disAs[2] - CalculteSatus.disAs[1] < 2 || + if (CalculteSatus.disAs[2] - CalculteSatus.disAs[1] < 2 || CalculteSatus.disAs[1] - CalculteSatus.disAs[0] < 2) { bool? b = new PopupWindow("需要再测试3次").ShowDialog(); - if (b != true) { - CalculteSatus.createView = 1;//取消 + CalculteSatus.createView = 1; //取消 } } else { bool? b = new PopupWindow("这段管线不存在泄漏").ShowDialog(); - CalculteSatus.createView = 2;//创建对比视图 + CalculteSatus.createView = 2; //创建对比视图 HomePageViewModel.Instance.TransmitterADistance = 0; HomePageViewModel.Instance.TransmitterBDistance = 0; @@ -343,20 +331,16 @@ HomePageViewModel.Instance.SNR = ""; HomePageViewModel.Instance.Pass = ""; - //测试序号复位 jo["locate"] = 1; writeJsonFile(jo); - } })); - return; } - - if (count == 6)//完成6次测试,进行第二轮判断 + if (count == 6) //完成6次测试,进行第二轮判断 { CalculteSatus.disAs.Sort(); CalculteSatus.disBs.Sort(); @@ -416,10 +400,7 @@ CalculteSatus.disAs.Clear(); CalculteSatus.disBs.Clear(); - App.Current.Dispatcher.Invoke((Action)(() => - { - new PopupWindow(txt).ShowDialog(); - })); + App.Current.Dispatcher.Invoke((Action) (() => { new PopupWindow(txt).ShowDialog(); })); //不论是否有泄漏点,在界面上方区域显示6张结果图 CalculteSatus.createView = 2; @@ -427,7 +408,6 @@ HomePageViewModel.Instance.TransmitterADistance = Math.Round(disA, 2); HomePageViewModel.Instance.TransmitterBDistance = Math.Round(disB, 2); - HomePageViewModel.Instance.FilterValue = ""; HomePageViewModel.Instance.InterfereValue = ""; HomePageViewModel.Instance.SNR = ""; @@ -441,8 +421,7 @@ return; } - - App.Current.Dispatcher.Invoke((Action)(() => + App.Current.Dispatcher.Invoke((Action) (() => { String txt = ""; if (count <= 3) @@ -459,18 +438,16 @@ { CalculteSatus.createView = 1; } - })); } } private void writeJsonFile(JObject jo) { - StreamWriter sw = new StreamWriter(System.AppDomain.CurrentDomain.BaseDirectory + "number.json"); + StreamWriter sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "number.json"); sw.Write(JsonConvert.SerializeObject(jo)); sw.Flush(); sw.Close(); } - } } \ No newline at end of file