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() private void PreMeasurement()
{ {
//if (!SkipPreparationForTestBench) if (!SkipPreparationForTestBench)
//{ {
//TODO set display unit //TODO set display unit
//TODO calculated overflow volume for display //TODO calculated overflow volume for display
@@ -89,11 +89,11 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
WriteRegister(Register.Genesisflow.StoreConfiguration, 1); WriteRegister(Register.Genesisflow.StoreConfiguration, 1);
//} }
//else else
//{ {
// WriteLog($"wait for measurement is starting"); WriteLog($"wait for measurement is starting");
//} }
ProcessStatus = ProcessState.WaitForMeasurement; ProcessStatus = ProcessState.WaitForMeasurement;
} }
File diff suppressed because it is too large Load Diff
@@ -1 +1 @@
1a3d4919c9c702245832d925951f2b7cb72fc333 5ed75d99ee45ff67821090f1b3dbb001dd9e4fe3
@@ -7,6 +7,7 @@
{ {
EMEA_433, EMEA_433,
EMEA_868, 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())); 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 rawVako = VakoDbAdapter.GetRawVako(connectionString, orderNr);
var rawMapping = VakoDbAdapter.GetVakoMapping(connectionString, rawVako.Type); var rawMapping = VakoDbAdapter.GetVakoMapping(connectionString, rawVako.Type);
var vakoData = VakoParser.Parse(rawVako, rawMapping); var vakoData = VakoParser.Parse(rawVako, rawMapping);
+1 -3
View File
@@ -7,9 +7,7 @@
xmlns:uc="clr-namespace:ProductionUiCordonel" xmlns:uc="clr-namespace:ProductionUiCordonel"
mc:Ignorable="d" mc:Ignorable="d"
Title="Cordonel Production UI" MinHeight="500" MinWidth="400" Height="600" Width="644" Initialized="Window_Initialized" Closing="Window_Closing"> 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"> <DockPanel HorizontalAlignment="Right" Width="634" Height="569" VerticalAlignment="Top" Margin="0,0,2,0">
<ToolBarTray DockPanel.Dock="Top"> <ToolBarTray DockPanel.Dock="Top">
<ToolBar> <ToolBar>
+25 -25
View File
@@ -23,35 +23,35 @@ using Xylem.Common.Logic.SoftwareAccessHelper;
namespace ProductionUiCordonel namespace ProductionUiCordonel
{ {
public class QuantityToBackgroundConverter : IValueConverter //public class QuantityToBackgroundConverter : IValueConverter
{ //{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) // public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ // {
var dc = DisplayCodes.None; // var dc = DisplayCodes.None;
if (DisplayCodes.TryParse(value.ToString(), out dc)) // if (DisplayCodes.TryParse(value.ToString(), out dc))
{ // {
string hex = ""; // string hex = "";
int intValue; // int intValue;
if (int.TryParse(value.ToString(), out intValue)) // if (int.TryParse(value.ToString(), out intValue))
{ // {
hex = intValue.ToString("X"); // hex = intValue.ToString("X");
} // }
return $"{dc} ({hex})"; // return $"{dc} ({hex})";
} // }
else // else
{ // {
return "?"; // return "?";
} // }
} // }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) // public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{ // {
throw new NotImplementedException(); // throw new NotImplementedException();
} // }
} //}
/// <summary> /// <summary>
/// Interaction logic for MainWindow.xaml /// Interaction logic for MainWindow.xaml
@@ -150,8 +150,7 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
} }
reTrysLeft = reTrysLeft - 1; reTrysLeft = reTrysLeft - 1;
currentProcessState = ProductionProcessState.Done; currentProcessState = ProductionProcessState.Error;
return;
} }
catch (Exception ex) 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 }; 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) public void RemoveMeter(int slot)
@@ -957,13 +957,13 @@ namespace XylemCommonUiLegacyGenCtl
{ {
((GenesisMeter)meter).InitCalibration(); ((GenesisMeter)meter).InitCalibration();
} }
else //else
{ //{
((GenesisMeter)meter).InitMeasurement(); // ((GenesisMeter)meter).InitMeasurement();
} //}
// Reboot, HighPeresur //// Reboot, HighPeresur
//ReadOut Alarms, Show and reset ////ReadOut Alarms, Show and reset
_logger.Debug($"Start CheckMetersAreReadyForTest"); //_logger.Debug($"Start CheckMetersAreReadyForTest");
} }
})); }));
@@ -971,18 +971,15 @@ namespace XylemCommonUiLegacyGenCtl
} }
listOfTasks.ForEach(t => t.Start());
Task.WaitAll(listOfTasks.ToArray());
listOfTasksInit.ForEach(t => t.Start()); listOfTasksInit.ForEach(t => t.Start());
Task.WaitAll(listOfTasksInit.ToArray()); Task.WaitAll(listOfTasksInit.ToArray());
TryInvoke(new Action(() => TryInvoke(new Action(() =>
{ {
UpdateBatch(); UpdateBatch();
})); }));
setBusy(false, "", true);
//CheckMetersAreReadyForTestStatic(); //CheckMetersAreReadyForTestStatic();
setBusy(false, "", true);
}).ContinueWith(delegate }).ContinueWith(delegate
{ {
@@ -1001,85 +998,85 @@ namespace XylemCommonUiLegacyGenCtl
private void CheckMetersAreReadyForTestStatic() private void CheckMetersAreReadyForTestStatic()
{ {
var listOfTasks = new List<Task>(); //var listOfTasks = new List<Task>();
foreach (var meter in batch.ListOfMeters) //foreach (var meter in batch.ListOfMeters)
{ //{
listOfTasks.Add(new Task(() => // listOfTasks.Add(new Task(() =>
{ // {
if (!(meter is GenesisMeter)) // if (!(meter is GenesisMeter))
{ // {
return; // return;
} // }
var i = 1; // var i = 1;
var sleepTimeS = 1; // var sleepTimeS = 1;
_logger.Debug($" Meter {meter.Slot} CheckMetersAreReadyForTest loops {i};delay {sleepTimeS}S"); // _logger.Debug($" Meter {meter.Slot} CheckMetersAreReadyForTest loops {i};delay {sleepTimeS}S");
((GenesisMeter)meter).StartMeasurement(); // ((GenesisMeter)meter).StartMeasurement();
var MeterReadyForTest = false; // var MeterReadyForTest = false;
while (i <= 7) // while (i <= 7)
{ // {
((GenesisMeter)meter).RequestIntermediateMeasurementState(0); // ((GenesisMeter)meter).RequestIntermediateMeasurementState(0);
Thread.Sleep(i * 2000); // Thread.Sleep(i * 2000);
i = i + 1; // i = i + 1;
try // try
{ // {
var state = ((GenesisMeter)meter).GetMeasurementState(0); // 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) // if (r.DutVolumeCm != 0)
{ // {
_logger.Info($" Meter {meter.Slot} Meter has progress (Volume{r.DutVolumeCm})"); // _logger.Info($" Meter {meter.Slot} Meter has progress (Volume{r.DutVolumeCm})");
MeterReadyForTest = true; // MeterReadyForTest = true;
break; // 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(() => // 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);
})); // }));
} // }
((GenesisMeter)meter).StopMeasurement(); // ((GenesisMeter)meter).StopMeasurement();
if (!MeterReadyForTest) // if (!MeterReadyForTest)
{ // {
//todo event remove meter // //todo event remove meter
_logger.Info($" Meter {meter.Slot} Meter has NO! progress"); // _logger.Info($" Meter {meter.Slot} Meter has NO! progress");
TryInvoke(new Action(() => // TryInvoke(new Action(() =>
{ // {
updateCell($"Status", meter.Slot, $"Zählerstand wechsel nicht erfasst", Color.LightPink); // updateCell($"Status", meter.Slot, $"Zählerstand wechsel nicht erfasst", Color.LightPink);
})); // }));
} // }
})); // }));
} //}
listOfTasks.ForEach(t => t.Start()); //listOfTasks.ForEach(t => t.Start());
Task.WaitAll(listOfTasks.ToArray()); //Task.WaitAll(listOfTasks.ToArray());
} }
@@ -1087,96 +1084,96 @@ namespace XylemCommonUiLegacyGenCtl
private void CheckMetersAreReadyForTest() private void CheckMetersAreReadyForTest()
{ {
_logger.Trace($"CheckMetersAreReadyForTest"); //_logger.Trace($"CheckMetersAreReadyForTest");
TryInvoke(new Action(() => //TryInvoke(new Action(() =>
{ //{
lblAction.Text = "Warte auf Zählerstand wechsel von allen Zählern"; // 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))
{ // {
if (!(meter is GenesisMeter)) // if (!(meter is GenesisMeter))
{ // {
continue; // 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(() => // listOfTasks.Add(new Task(() =>
{ // {
var i = 120; // var i = 120;
var sleepTimeS = 5; // var sleepTimeS = 5;
_logger.Debug($" Meter {meter.Slot} CheckMetersAreReadyForTest loops {i};delay {sleepTimeS}S"); // _logger.Debug($" Meter {meter.Slot} CheckMetersAreReadyForTest loops {i};delay {sleepTimeS}S");
((GenesisMeter)meter).StartMeasurement(); // ((GenesisMeter)meter).StartMeasurement();
var MeterReadyForTest = false; // var MeterReadyForTest = false;
while (i >= 0) // while (i >= 0)
{ // {
Thread.Sleep(sleepTimeS * 1000); // Thread.Sleep(sleepTimeS * 1000);
try // try
{ // {
var r = ((GenesisMeter)meter).GetMainMeasurementResult(null, null, true); // var r = ((GenesisMeter)meter).GetMainMeasurementResult(null, null, true);
i = i - sleepTimeS; // i = i - sleepTimeS;
if (r.DutVolumeCm != 0) // if (r.DutVolumeCm != 0)
{ // {
_logger.Info($" Meter {meter.Slot} Meter has progress {r.DutVolumeCm}"); // _logger.Info($" Meter {meter.Slot} Meter has progress {r.DutVolumeCm}");
TryInvoke(new Action(() => // TryInvoke(new Action(() =>
{ // {
// updateCell($"Status", meter.Slot, $"Zählerstand wechsel erfasst Von:{r.DutStartRecord.GetVolumeCm()} Auf: {r.DutStopRecord.GetVolumeCm()}", Color.LimeGreen); // // updateCell($"Status", meter.Slot, $"Zählerstand wechsel erfasst Von:{r.DutStartRecord.GetVolumeCm()} Auf: {r.DutStopRecord.GetVolumeCm()}", Color.LimeGreen);
})); // }));
MeterReadyForTest = true; // MeterReadyForTest = true;
break; // break;
} // }
else // else
{ // {
_logger.Info($" Meter {meter.Slot} Meter no update display {r.DutVolumeCm}; loops left {i}"); // _logger.Info($" Meter {meter.Slot} Meter no update display {r.DutVolumeCm}; loops left {i}");
} // }
} // }
catch (Exception) // catch (Exception)
{ // {
} // }
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);
})); // }));
} // }
((GenesisMeter)meter).StopMeasurement(); // ((GenesisMeter)meter).StopMeasurement();
if (MeterReadyForTest) // if (MeterReadyForTest)
{ // {
_logger.Info($" Meter {meter.Slot} Meter has NO! progress"); // _logger.Info($" Meter {meter.Slot} Meter has NO! progress");
TryInvoke(new Action(() => // TryInvoke(new Action(() =>
{ // {
updateCell($"Status", meter.Slot, $"Zählerstand wechsel nicht erfasst", Color.LightPink); // updateCell($"Status", meter.Slot, $"Zählerstand wechsel nicht erfasst", Color.LightPink);
})); // }));
} // }
})); // }));
} //}
listOfTasks.ForEach(t => t.Start()); //listOfTasks.ForEach(t => t.Start());
Task.WaitAll(listOfTasks.ToArray()); //Task.WaitAll(listOfTasks.ToArray());
} }