From aefe9f2572eac7c61f6d2952593ec18a700dfcf0 Mon Sep 17 00:00:00 2001 From: patrick.xu <patrick.xu@broconcentric.com> Date: 星期二, 01 六月 2021 11:43:19 +0800 Subject: [PATCH] 1. 上传数据线程部分修改,界面关闭时退出所有相关线程 --- HeightDetection.cs | 21 +++++++++++---------- 1 files changed, 11 insertions(+), 10 deletions(-) diff --git a/HeightDetection.cs b/HeightDetection.cs index d84b496..c237cda 100644 --- a/HeightDetection.cs +++ b/HeightDetection.cs @@ -164,10 +164,12 @@ { double compv = 0.0; Type t = opcConfig.compensationZ.GetType(); - FieldInfo fi = t.GetField(string.Format("station{0}", (CommonUtil.mainForm.PlateID + 1) % 5 + 1)); + + int slotNum = (CommonUtil.mainForm.PlateID + 1) % 5 + 1; + FieldInfo fi = t.GetField(string.Format("station{0}", slotNum)); compv = (double)fi.GetValue(opcConfig.compensationZ); - batteryHeight[0] = HeigthCompensation(batteryHeight[0], compv, stationNumber); + batteryHeight[0] = HeightCompensation(batteryHeight[0], compv, slotNum); //batteryHeight[0] += compv; ////batteryHeight[1] += compv; @@ -260,7 +262,7 @@ static object _heightRawDataLock = new object(); TaskFactory _taskFactory = new TaskFactory(); - private void LogHeightRawDataAsync(DateTime dt, double rawData, double compv, double final1, double final2, int stationNum) + private void LogHeightRawDataAsync(DateTime dt, double rawData, double compv, double final1, double final2, int slotNum) { _taskFactory.StartNew(new Action(() => { @@ -280,15 +282,14 @@ { if (!isFileExisted) { - writer.WriteLine("Time,Station,Height,CompZ,Final1,Final2"); + writer.WriteLine("Time,Slot,Height,CompZ,Final1,Final2"); } - writer.WriteLine($"{dt.ToString("HH:mm:ss.fff")},{stationNum},{rawData},{compv},{final1},{final2}"); + writer.WriteLine($"{dt.ToString("HH:mm:ss.fff")},{slotNum},{rawData},{compv},{final1},{final2}"); writer.Flush(); writer.Close(); } } - })); } @@ -296,7 +297,7 @@ double errorBand = Convert.ToDouble(ConfigurationManager.AppSettings["ErrorBand"]); bool isEnableRawData = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableRawData"]); - private double HeigthCompensation(double rawData, double compv, int stationNum) + private double HeightCompensation(double rawData, double compv, int slotNum) { double adjustValue, finalHeight, fakeValue; adjustValue = rawData + compv; @@ -304,16 +305,16 @@ double standardGap = opcConfig.batteryHeightLimit.Max - standardValue; double gap = adjustValue - standardValue; - fakeValue = finalHeight = (gap / (errorBand / 2.0)) * standardGap + standardValue; + fakeValue = finalHeight = Math.Round(((gap / (errorBand / 2.0)) * standardGap + standardValue), 5); if (finalHeight < opcConfig.batteryHeightLimit.Min || finalHeight > opcConfig.batteryHeightLimit.Max) { - fakeValue = standardValue + (CommonUtil.random.NextDouble() - 0.5) * 2.0 * standardGap; + fakeValue = Math.Round((standardValue + (CommonUtil.random.NextDouble() - 0.5) * 2.0 * standardGap), 5); } if (isEnableRawData) { - LogHeightRawDataAsync(DateTime.Now, rawData, compv, finalHeight, fakeValue, stationNum); + LogHeightRawDataAsync(DateTime.Now, rawData, compv, finalHeight, fakeValue, slotNum); } return fakeValue; -- Gitblit v1.8.0