Legacy messument now wihzout tasks

This commit is contained in:
Roland Drabesch
2023-01-02 17:23:24 +01:00
parent 4a9d300f4a
commit 443c984655
4 changed files with 226 additions and 204 deletions
+1 -1
View File
@@ -155,7 +155,7 @@
</site>
<site name="MeterProcessState" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="D:\Projekte\SENSUS_GitLab\laa_production\Common\Service\MeterProcessState" />
<virtualDirectory path="/" physicalPath="C:\Users\drabesch_ro\Repo\lab\la_operations\laa_production\Common\Service\MeterProcessState" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:56011:localhost" />
@@ -43,7 +43,7 @@ namespace CordonelPreadjustmentUi.Processes.Actions
bool skipMan = false;
if (pp.Setting.GetTempUseTempFlansh() || TempMeterStateCtls.Any(a => a.IsEnabled))
{
skipMan = true;
skipMan = false;
//aoutmatic
decimal avgTemp = 0;
int TempFlanshCount = 0;
@@ -55,6 +55,7 @@ namespace CordonelPreadjustmentUi.Processes.Actions
{
avgTemp = avgTemp + avgTempCtls.GetTemperature();
TempFlanshCount = TempFlanshCount + 1;
skipMan = true;
}
}
@@ -1 +1 @@
1a3d4919c9c702245832d925951f2b7cb72fc333
5ed75d99ee45ff67821090f1b3dbb001dd9e4fe3
+186 -165
View File
@@ -50,6 +50,19 @@ namespace XylemCommonUiLegacyGenCtl
AutoRefresh,
View,
}
private enum BatchState
{
Idle,
Init,
Error,
PrepeareGui,
PrepeareMessuremnt,
MessuremntIsRunning,
MessuremntIsDone,
}
private BatchState currentState = BatchState.Idle;
private Mode currentMode = Mode.View;
private ILogger _logger;
private Dictionary<int, LegacyCalibrationResult> CalibrationIsDone = new Dictionary<int, LegacyCalibrationResult>();
@@ -123,6 +136,7 @@ namespace XylemCommonUiLegacyGenCtl
this.grbInfo.SuspendLayout();
this.SuspendLayout();
this.Disposed += CtlBatch_Disposed;
currentState = BatchState.Init;
_logger.Info($"construct ctlBatch end");
}
@@ -622,15 +636,37 @@ namespace XylemCommonUiLegacyGenCtl
}
public void AddAllMeters()
{
setBusy(true, "alle Zähler hinzufügen");
foreach (var item in TestsetuptContainer.meterTestSettings)
{
if (item != null && (item.FlowAdjustment || item.FlowTesting))
{
AddMeter(item.SerialNr, item.Slot, true);
if (!batch.ListOfMeters.Any(f => f.Slot == item.Slot))
{
var meter = new GenesisMeter();
meter.SerialNumber = item.SerialNr;
meter.CurrentActionText = "FlowTest";
meter.SetupFromConfigFile(item.Slot, false, _useRequest, true);
meter.LogRawData(_rawLogging);
batch.AddMeter(meter);
meter.Login();
meter.EnableAutoLogon();
meter.WriteLog("Add from AddAllMeters");
}
}
}
setBusy(false);
}
public void AddMeter(string serialNumber, int slot, bool SkipPrepearation)
{
try
@@ -649,8 +685,6 @@ namespace XylemCommonUiLegacyGenCtl
meter.SetupFromConfigFile(slot, false, _useRequest, true);
meter.LogRawData(_rawLogging);
meter.RequestProtocol.AdditionalRetryTimeoutMs = 100;
meter.SkipPreparationForTestBench = SkipPrepearation;
meter.EnableAutoLogon();
batch.AddMeter(meter);
@@ -893,15 +927,13 @@ namespace XylemCommonUiLegacyGenCtl
WarningMetersAlarms = new ConcurrentDictionary<int, GenesisMeter.Alarm>();
ErrorMetersAlarms = new ConcurrentDictionary<int, GenesisMeter.Alarm>();
setBusy(true, $"Bereite Zähler vor");
Task.Factory.StartNew(() =>
{
initAction(meterDn, refPulseValence, predictedQFlow, predictedTs, refError, isFlyingStartStop);
_isAdjustment = isAdjustment;
var listOfTasks = new List<Task>();
var listOfTasksInit = new List<Task>();
if (isAdjustment)
@@ -916,78 +948,66 @@ namespace XylemCommonUiLegacyGenCtl
var settings = TestsetuptContainer.meterTestSettings.First(f => f != null && f.Slot == meter.Slot);
if (isAdjustment && !settings.FlowAdjustment)
{
continue;
}
if (!isAdjustment && !settings.FlowTesting)
{
continue;
}
//if (isAdjustment && !settings.FlowAdjustment)
//{
// continue;
//}
//if (!isAdjustment && !settings.FlowTesting)
//{
// continue;
//}
if (!(meter is GenesisMeter genmeter))
{
continue;
}
//todo : roland check SkipPrepearationForTestBench
//((GenesisMeter)meter).SkipPrepearationForTestBench = true;
_logger.Debug($"Add Meter To Grid {meter.Slot}");
TryInvoke(new Action(() =>
{
AddMeterToGrid(meter.Slot, meter.SerialNumber, genmeter.PcbId, isFlyingStartStop);
}));
if (!_useRequest)
{
continue;
}
if (isAdjustment)
{
CalibrationIsDone.Add(meter.Slot, LegacyCalibrationResult.Pending);
}
listOfTasksInit.Add(new Task(() =>
{
var r = ((GenesisMeter)meter).ReLogin();
if (_useRequest)
{
var r = ((GenesisMeter)meter).ReLogin();
((GenesisMeter)meter).WriteLog("Prepare meter for Measurement/Adjustment ");
_logger.Debug($"Prepare Meters for Measurement/Adjustment");
if (isAdjustment)
{
((GenesisMeter)meter).InitCalibration();
}
//else
//{
// ((GenesisMeter)meter).InitMeasurement();
//}
else
{
((GenesisMeter)meter).InitMeasurement();
}
//// Reboot, HighPeresur
////ReadOut Alarms, Show and reset
//_logger.Debug($"Start CheckMetersAreReadyForTest");
}
}));
}
listOfTasksInit.ForEach(t => t.Start());
Task.WaitAll(listOfTasksInit.ToArray());
TryInvoke(new Action(() =>
{
UpdateBatch();
}));
//CheckMetersAreReadyForTestStatic();
setBusy(false, "", true);
}).ContinueWith(delegate
{
CheckMetersAreReadyForTest();
setBusy(false);
});
}
catch (Exception ex)
{
@@ -998,85 +1018,85 @@ namespace XylemCommonUiLegacyGenCtl
private void CheckMetersAreReadyForTestStatic()
{
//var listOfTasks = new List<Task>();
var listOfTasks = new List<Task>();
//foreach (var meter in batch.ListOfMeters)
//{
// listOfTasks.Add(new Task(() =>
// {
// if (!(meter is GenesisMeter))
// {
// return;
// }
// var i = 1;
foreach (var meter in batch.ListOfMeters)
{
listOfTasks.Add(new Task(() =>
{
if (!(meter is GenesisMeter))
{
return;
}
var i = 1;
// var sleepTimeS = 1;
// _logger.Debug($" Meter {meter.Slot} CheckMetersAreReadyForTest loops {i};delay {sleepTimeS}S");
// ((GenesisMeter)meter).StartMeasurement();
// var MeterReadyForTest = false;
var sleepTimeS = 1;
_logger.Debug($" Meter {meter.Slot} CheckMetersAreReadyForTest loops {i};delay {sleepTimeS}S");
((GenesisMeter)meter).StartMeasurement();
var MeterReadyForTest = false;
// while (i <= 7)
// {
// ((GenesisMeter)meter).RequestIntermediateMeasurementState(0);
// Thread.Sleep(i * 2000);
// i = i + 1;
// try
// {
// var state = ((GenesisMeter)meter).GetMeasurementState(0);
while (i <= 7 && !MeterReadyForTest)
{
((GenesisMeter)meter).RequestIntermediateMeasurementState(0);
Thread.Sleep(i * 2000);
i = i + 1;
try
{
var state = ((GenesisMeter)meter).GetMeasurementState(0);
// if (state != MeasurementStates.IsWaitingForStartData && state != MeasurementStates.NotStarted)
// {
if (state != MeasurementStates.IsWaitingForStartData && state != MeasurementStates.NotStarted)
{
// var r = ((GenesisMeter)meter).GetMainMeasurementResult(null, null, true);
var r = ((GenesisMeter)meter).GetMainMeasurementResult(null, null, true);
// if (r.DutVolumeCm != 0)
// {
// _logger.Info($" Meter {meter.Slot} Meter has progress (Volume{r.DutVolumeCm})");
if (r.DutVolumeCm != 0)
{
_logger.Info($" Meter {meter.Slot} Meter has progress (Volume{r.DutVolumeCm})");
// MeterReadyForTest = true;
// break;
// }
MeterReadyForTest = true;
break;
}
// }
// _logger.Info($" Meter {meter.Slot} Meter no update display; loops left {i}; state {state}");
}
_logger.Info($" Meter {meter.Slot} Meter no update display; loops left {i}; state {state}");
// }
// catch (Exception)
// {
}
catch (Exception)
{
// }
}
// TryInvoke(new Action(() =>
// {
// updateCell($"Status", meter.Slot, $"Warte auf Zählerstand wechsel ", Color.LightYellow);
// }));
TryInvoke(new Action(() =>
{
updateCell($"Status", meter.Slot, $"Warte auf Zählerstand wechsel ", Color.LightYellow);
}));
// }
// ((GenesisMeter)meter).StopMeasurement();
}
((GenesisMeter)meter).StopMeasurement();
// if (!MeterReadyForTest)
// {
// //todo event remove meter
// _logger.Info($" Meter {meter.Slot} Meter has NO! progress");
// TryInvoke(new Action(() =>
// {
// updateCell($"Status", meter.Slot, $"Zählerstand wechsel nicht erfasst", Color.LightPink);
// }));
// }
if (!MeterReadyForTest)
{
//todo event remove meter
_logger.Info($" Meter {meter.Slot} Meter has NO! progress");
TryInvoke(new Action(() =>
{
updateCell($"Status", meter.Slot, $"Zählerstand wechsel nicht erfasst", Color.LightPink);
}));
}
// }));
}));
//}
}
//listOfTasks.ForEach(t => t.Start());
//Task.WaitAll(listOfTasks.ToArray());
listOfTasks.ForEach(t => t.Start());
Task.WaitAll(listOfTasks.ToArray());
}
@@ -1084,96 +1104,96 @@ namespace XylemCommonUiLegacyGenCtl
private void CheckMetersAreReadyForTest()
{
//_logger.Trace($"CheckMetersAreReadyForTest");
//TryInvoke(new Action(() =>
//{
// lblAction.Text = "Warte auf Zählerstand wechsel von allen Zählern";
_logger.Trace($"CheckMetersAreReadyForTest");
TryInvoke(new Action(() =>
{
lblAction.Text = "Warte auf Zählerstand wechsel von allen Zählern";
//}));
}));
//var listOfTasks = new List<Task>();
var listOfTasks = new List<Task>();
//foreach (var meter in batch.ListOfMeters)
//{
foreach (var meter in batch.ListOfMeters)
{
// if (!(meter is GenesisMeter))
// {
// if (!(meter is GenesisMeter))
// {
// continue;
// }
// }
if (!(meter is GenesisMeter))
{
if (!(meter is GenesisMeter))
{
continue;
}
}
// TryInvoke(new Action(() =>
// {
TryInvoke(new Action(() =>
{
// updateCell($"Status", meter.Slot, $"Warte auf Zählerstand wechsel", Color.LightYellow);
// }));
updateCell($"Status", meter.Slot, $"Warte auf Zählerstand wechsel", Color.LightYellow);
}));
// listOfTasks.Add(new Task(() =>
// {
// var i = 120;
listOfTasks.Add(new Task(() =>
{
var i = 120;
// var sleepTimeS = 5;
// _logger.Debug($" Meter {meter.Slot} CheckMetersAreReadyForTest loops {i};delay {sleepTimeS}S");
// ((GenesisMeter)meter).StartMeasurement();
// var MeterReadyForTest = false;
// while (i >= 0)
// {
// Thread.Sleep(sleepTimeS * 1000);
// try
// {
// var r = ((GenesisMeter)meter).GetMainMeasurementResult(null, null, true);
// i = i - sleepTimeS;
// if (r.DutVolumeCm != 0)
// {
// _logger.Info($" Meter {meter.Slot} Meter has progress {r.DutVolumeCm}");
// TryInvoke(new Action(() =>
// {
// // updateCell($"Status", meter.Slot, $"Zählerstand wechsel erfasst Von:{r.DutStartRecord.GetVolumeCm()} Auf: {r.DutStopRecord.GetVolumeCm()}", Color.LimeGreen);
// }));
// MeterReadyForTest = true;
// break;
// }
// else
// {
// _logger.Info($" Meter {meter.Slot} Meter no update display {r.DutVolumeCm}; loops left {i}");
// }
// }
// catch (Exception)
// {
var sleepTimeS = 5;
_logger.Debug($" Meter {meter.Slot} CheckMetersAreReadyForTest loops {i};delay {sleepTimeS}S");
((GenesisMeter)meter).StartMeasurement();
var MeterReadyForTest = false;
while (i >= 0)
{
Thread.Sleep(sleepTimeS * 1000);
try
{
var r = ((GenesisMeter)meter).GetMainMeasurementResult(null, null, true);
i = i - sleepTimeS;
if (r.DutVolumeCm != 0)
{
_logger.Info($" Meter {meter.Slot} Meter has progress {r.DutVolumeCm}");
TryInvoke(new Action(() =>
{
// updateCell($"Status", meter.Slot, $"Zählerstand wechsel erfasst Von:{r.DutStartRecord.GetVolumeCm()} Auf: {r.DutStopRecord.GetVolumeCm()}", Color.LimeGreen);
}));
MeterReadyForTest = true;
break;
}
else
{
_logger.Info($" Meter {meter.Slot} Meter no update display {r.DutVolumeCm}; loops left {i}");
}
}
catch (Exception)
{
// }
}
// TryInvoke(new Action(() =>
// {
// updateCell($"Status", meter.Slot, $"Warte auf Zählerstand wechsel ", Color.LightYellow);
// }));
TryInvoke(new Action(() =>
{
updateCell($"Status", meter.Slot, $"Warte auf Zählerstand wechsel ", Color.LightYellow);
}));
// }
// ((GenesisMeter)meter).StopMeasurement();
}
((GenesisMeter)meter).StopMeasurement();
// if (MeterReadyForTest)
// {
// _logger.Info($" Meter {meter.Slot} Meter has NO! progress");
// TryInvoke(new Action(() =>
// {
// updateCell($"Status", meter.Slot, $"Zählerstand wechsel nicht erfasst", Color.LightPink);
// }));
// }
if (MeterReadyForTest)
{
_logger.Info($" Meter {meter.Slot} Meter has NO! progress");
TryInvoke(new Action(() =>
{
updateCell($"Status", meter.Slot, $"Zählerstand wechsel nicht erfasst", Color.LightPink);
}));
}
// }));
}));
//}
//listOfTasks.ForEach(t => t.Start());
//Task.WaitAll(listOfTasks.ToArray());
}
listOfTasks.ForEach(t => t.Start());
Task.WaitAll(listOfTasks.ToArray());
}
@@ -1197,6 +1217,7 @@ namespace XylemCommonUiLegacyGenCtl
}
}
currentMode = Mode.AutoRefresh;
//this.RefeshTimer.Enabled = true;
}
@@ -1858,7 +1879,7 @@ namespace XylemCommonUiLegacyGenCtl
try
{
var genesis = (GenesisMeter)basemeter;
genesis.ReLogin();
genesis.QuickLogin();
genesis.BuildAndCheckCalibFactorsAllChannels(StoreRefVolume, StoretestTimeRef, calfactor);
//genesis.SetCalibFactorsAllChannels(true);