fixing progressbar for Zeroflow magflux and move it into a task

This commit is contained in:
Roland Drabesch
2023-08-31 09:45:28 +02:00
parent ed51e2cd34
commit 254fd75664
4 changed files with 473 additions and 278 deletions
@@ -104,6 +104,7 @@
<PropertyGroup />
<PropertyGroup />
<PropertyGroup />
<PropertyGroup />
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
@@ -4,6 +4,8 @@ using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Xylem.Common.CommonCore.Consts;
using Xylem.Common.Hardware.Interfaces.Ports.PortCore;
@@ -59,6 +61,8 @@ namespace CordonelPreadjustmentUi
nUD_Settings_Samplerate.Value = mainSettings.Samplerate;
}
private void tab_Maintab_Selected(object sender, TabControlEventArgs e)
@@ -142,6 +146,8 @@ namespace CordonelPreadjustmentUi
mainSettings.Samplerate = (int)nUD_Settings_Samplerate.Value;
preadjustCtl.SetSettings(mainSettings);
}
File diff suppressed because it is too large Load Diff
+49 -52
View File
@@ -9,6 +9,7 @@ using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Xylem.Common.CommonCore.Consts;
using Xylem.Common.Hardware.Interfaces.Ports.PortCore;
@@ -277,28 +278,26 @@ namespace XylemCommonUiLegacyGenCtl
wrappedControl.StatusLabel("MagFlux Zeroflow is preparing");
var meterBatch = new MeterBatch();
foreach (var item in TestsetuptContainer?.meterTestSettings)
{
if (item != null && item.PreAdjustment && item.meterType == MeterTypes.MagFlux)
var t = new Task(() => {
foreach (var item in TestsetuptContainer?.meterTestSettings)
{
var newMeter = new MagFluxMeter();
newMeter.SetupFromConfigFile(item.Slot);
newMeter.Login();
newMeter.SerialNumber = item.SerialNr;
if (item != null && item.PreAdjustment && item.meterType == MeterTypes.MagFlux)
{
var newMeter = new MagFluxMeter();
newMeter.SetupFromConfigFile(item.Slot);
newMeter.Login();
newMeter.SerialNumber = item.SerialNr;
meterBatch.AddMeter(newMeter);
newMeter.InitCalibration();
meterBatch.AddMeter(newMeter);
newMeter.InitCalibration();
}
}
}
meterBatch.MetersStartMeasurement();
meterBatch.MetersStartMeasurement();
var c = TestsetuptContainer.meterTestSettings.Count();
TestsetuptContainer.meterTestResults = new MeterTestResults[c];
try
{
var c = TestsetuptContainer.meterTestSettings.Count();
TestsetuptContainer.meterTestResults = new MeterTestResults[c];
int WaitTimeM = 5;
wrappedControl.StatusLabel("MagFlux Zeroflow is running");
@@ -307,55 +306,53 @@ namespace XylemCommonUiLegacyGenCtl
while (End > DateTimeOffset.UtcNow)
{
wrappedControl.PushProgressBars(WaitTimeM * 3600, Start, WaitTimeM * 3600, Start);
wrappedControl.PushProgressBars(WaitTimeM * 60, Start, WaitTimeM * 60, Start);
Thread.Sleep(1000);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
foreach (var meter in meterBatch.ListOfMeters)
{
try
foreach (var meter in meterBatch.ListOfMeters)
{
try
{
meter.StopMeasurement();
}
catch (Exception ex)
{
meter.StopMeasurement();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Thread.Sleep(1000);
var RetryLeft = 10;
while (meter.GetMeasurementState(0) != Xylem.Common.Metrology.Measurements.Consts.MeasurementStates.IsCompleted && RetryLeft >0)
{
MessageBox.Show(ex.Message);
}
Thread.Sleep(1000);
RetryLeft = RetryLeft - 1;
var RetryLeft = 10;
while (meter.GetMeasurementState(0) != Xylem.Common.Metrology.Measurements.Consts.MeasurementStates.IsCompleted && RetryLeft > 0)
{
Thread.Sleep(1000);
RetryLeft = RetryLeft - 1;
}
var resU = meter.GetMainMeasurementResult(0, 60);
TestsetuptContainer.meterTestResults[meter.Slot - 1] = new MeterTestResults();
TestsetuptContainer.meterTestResults[meter.Slot - 1].Results = new List<Xylem.Common.Hardware.WaterMeter.DataPackages.MeasurementRecords.FlowDeviations>();
TestsetuptContainer.meterTestResults[meter.Slot - 1].meterType = MeterTypes.MagFlux;
TestsetuptContainer.meterTestResults[meter.Slot - 1].Slot = meter.Slot;
TestsetuptContainer.meterTestResults[meter.Slot - 1].SerialNr = meter.SerialNumber;
TestsetuptContainer.meterTestResults[meter.Slot - 1].Results.Add(new Xylem.Common.Hardware.WaterMeter.DataPackages.MeasurementRecords.FlowDeviations() { RefTimeS = 60, MeasuredRefFlowQmPerH = 0, RequierdTimeS = 60, RequierdFlowQmPerH = 0, MeasuredDutFlowQmPerH = resU.DutFlowRateCmPh.Value, DutTimeS = resU.DutTimeS });
meter.Logout();
meter.DisposeMeter();
}
});
t.ContinueWith((r) => { pollingAction = PollingAction.IsDone; });
t.Start();
var resU = meter.GetMainMeasurementResult(0, 60);
TestsetuptContainer.meterTestResults[meter.Slot - 1] = new MeterTestResults();
TestsetuptContainer.meterTestResults[meter.Slot - 1].Results = new List<Xylem.Common.Hardware.WaterMeter.DataPackages.MeasurementRecords.FlowDeviations>();
TestsetuptContainer.meterTestResults[meter.Slot - 1].meterType = MeterTypes.MagFlux;
TestsetuptContainer.meterTestResults[meter.Slot - 1].Slot = meter.Slot;
TestsetuptContainer.meterTestResults[meter.Slot - 1].SerialNr = meter.SerialNumber;
TestsetuptContainer.meterTestResults[meter.Slot - 1].Results.Add(new Xylem.Common.Hardware.WaterMeter.DataPackages.MeasurementRecords.FlowDeviations() { RefTimeS = 60, MeasuredRefFlowQmPerH = 0, RequierdTimeS = 60, RequierdFlowQmPerH = 0, MeasuredDutFlowQmPerH = resU.DutFlowRateCmPh.Value, DutTimeS = resU.DutTimeS });
meter.Logout();
meter.DisposeMeter();
}
pollingAction = PollingAction.IsDone;
}