pui and legaxy fix (no no static check for meters)

This commit is contained in:
Roland Drabesch
2022-10-21 13:49:45 +02:00
parent 3a6bd5d508
commit 1a3a47920b
9 changed files with 401 additions and 390 deletions
@@ -45,8 +45,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
private void PreMeasurement()
{
//if (!SkipPreparationForTestBench)
//{
if (!SkipPreparationForTestBench)
{
//TODO set display unit
//TODO calculated overflow volume for display
@@ -89,11 +89,11 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
WriteRegister(Register.Genesisflow.StoreConfiguration, 1);
//}
//else
//{
// WriteLog($"wait for measurement is starting");
//}
}
else
{
WriteLog($"wait for measurement is starting");
}
ProcessStatus = ProcessState.WaitForMeasurement;
}
File diff suppressed because it is too large Load Diff
@@ -1 +1 @@
1a3d4919c9c702245832d925951f2b7cb72fc333
5ed75d99ee45ff67821090f1b3dbb001dd9e4fe3
@@ -7,6 +7,7 @@
{
EMEA_433,
EMEA_868,
NA
NA,
EMEA
}
}
@@ -65,19 +65,6 @@ namespace Xylem.Common.Logic.ProductionOrderCore.OrderData
ret.Add(new ProgrammingParameters("SENSUSRADIO_ImpedanceCodeOption", BitConverter.GetBytes(radioParams.ImpedanceCodeOption).Reverse().ToArray()));
}
if (orderNr == 3144128)
{
orderNr = 3179323;
}
if (orderNr == 3148219)
{
orderNr = 3179323;
}
var rawVako = VakoDbAdapter.GetRawVako(connectionString, orderNr);
var rawMapping = VakoDbAdapter.GetVakoMapping(connectionString, rawVako.Type);
var vakoData = VakoParser.Parse(rawVako, rawMapping);
+1 -3
View File
@@ -7,9 +7,7 @@
xmlns:uc="clr-namespace:ProductionUiCordonel"
mc:Ignorable="d"
Title="Cordonel Production UI" MinHeight="500" MinWidth="400" Height="600" Width="644" Initialized="Window_Initialized" Closing="Window_Closing">
<Window.Resources>
<local:QuantityToBackgroundConverter x:Key="BackgroundConverter" />
</Window.Resources>
<DockPanel HorizontalAlignment="Right" Width="634" Height="569" VerticalAlignment="Top" Margin="0,0,2,0">
<ToolBarTray DockPanel.Dock="Top">
<ToolBar>
+25 -25
View File
@@ -23,35 +23,35 @@ using Xylem.Common.Logic.SoftwareAccessHelper;
namespace ProductionUiCordonel
{
public class QuantityToBackgroundConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var dc = DisplayCodes.None;
//public class QuantityToBackgroundConverter : IValueConverter
//{
// public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
// {
// var dc = DisplayCodes.None;
if (DisplayCodes.TryParse(value.ToString(), out dc))
{
string hex = "";
int intValue;
if (int.TryParse(value.ToString(), out intValue))
{
hex = intValue.ToString("X");
}
return $"{dc} ({hex})";
}
else
{
return "?";
}
// if (DisplayCodes.TryParse(value.ToString(), out dc))
// {
// string hex = "";
// int intValue;
// if (int.TryParse(value.ToString(), out intValue))
// {
// hex = intValue.ToString("X");
// }
// return $"{dc} ({hex})";
// }
// else
// {
// return "?";
// }
}
// }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
// public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
// {
// throw new NotImplementedException();
// }
//}
/// <summary>
/// Interaction logic for MainWindow.xaml
@@ -150,8 +150,7 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
}
reTrysLeft = reTrysLeft - 1;
currentProcessState = ProductionProcessState.Done;
return;
currentProcessState = ProductionProcessState.Error;
}
catch (Exception ex)
{
+135 -138
View File
@@ -679,7 +679,7 @@ namespace XylemCommonUiLegacyGenCtl
{
TestsetuptContainer.meterTestSettings[slot] = new MeterTestSettings() { SerialNr = serialNumber, Slot = slot, FlowAdjustment = true, FlowTesting = true };
}
AddMeter(serialNumber, slot, false);
AddMeter(serialNumber, slot, true);
}
public void RemoveMeter(int slot)
@@ -957,13 +957,13 @@ namespace XylemCommonUiLegacyGenCtl
{
((GenesisMeter)meter).InitCalibration();
}
else
{
((GenesisMeter)meter).InitMeasurement();
}
// Reboot, HighPeresur
//ReadOut Alarms, Show and reset
_logger.Debug($"Start CheckMetersAreReadyForTest");
//else
//{
// ((GenesisMeter)meter).InitMeasurement();
//}
//// Reboot, HighPeresur
////ReadOut Alarms, Show and reset
//_logger.Debug($"Start CheckMetersAreReadyForTest");
}
}));
@@ -971,18 +971,15 @@ namespace XylemCommonUiLegacyGenCtl
}
listOfTasks.ForEach(t => t.Start());
Task.WaitAll(listOfTasks.ToArray());
listOfTasksInit.ForEach(t => t.Start());
Task.WaitAll(listOfTasksInit.ToArray());
TryInvoke(new Action(() =>
{
UpdateBatch();
}));
setBusy(false, "", true);
//CheckMetersAreReadyForTestStatic();
setBusy(false, "", true);
}).ContinueWith(delegate
{
@@ -1001,85 +998,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)
// {
// ((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());
}
@@ -1087,96 +1084,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());
}