Long time no commit

This commit is contained in:
Roland Drabesch
2022-04-06 10:42:16 +02:00
parent 0a72be12ab
commit ec37bb9b9e
225 changed files with 65673 additions and 18510 deletions
+243 -131
View File
@@ -25,7 +25,7 @@ using XylemCommonUiLegacyGenCtl.Enums;
namespace XylemCommonUiLegacyGenCtl
{
[Guid("034A00BD-27BB-4DF7-97F3-43D0CBF8A805"),
[Guid("034A00BD-AAAA-4DF7-97F3-43D0CBF8A805"),
ComVisible(true),
ClassInterface(ClassInterfaceType.None),
ComSourceInterfaces(typeof(ICtlBatch))]
@@ -80,6 +80,8 @@ namespace XylemCommonUiLegacyGenCtl
public double MeterDefaultCorrection = 0.0;
private TestSetupContainer TestsetuptContainer;
private DataTable dtBatch;
#region busy
@@ -591,15 +593,16 @@ namespace XylemCommonUiLegacyGenCtl
/// <param name="checkAllChannels"></param>
/// <param name="manualAdjustment">Obsolet</param>
/// <param name="ControlSrt"></param>
public void PrepareBatch(bool useRequest, bool rawLogging, bool checkAllChannels = true, bool manualAdjustment = false, string ControlSrt = "JustToCheckUpdate")
public void PrepareBatch(string ControlSrt = "JustToCheckUpdate")
{
try
{
_logger.Trace($"PrepareBatch useRequest:{useRequest}, rawLogging:{rawLogging}");
_logger.Trace($"PrepareBatch ControlSrt : {ControlSrt} ");
batch = new MeterBatch();
_useRequest = useRequest;
_rawLogging = rawLogging;
_checkAllChannels = checkAllChannels;
_useRequest = true;
_rawLogging = true;
_checkAllChannels = TestsetuptContainer.AllChanelsRequired;
//TryInvoke(new Action(() =>
//{
@@ -608,11 +611,21 @@ namespace XylemCommonUiLegacyGenCtl
}
catch (Exception ex)
{
_logger.Error(ex, $"error at PrepareBatch(useRequest={useRequest},rawLogging={rawLogging}");
_logger.Error(ex, $"error at ControlSrt : {ControlSrt}");
}
}
public void AddAllMeters()
{
foreach (var item in TestsetuptContainer.meterTestSettings)
{
if (item != null && (item.FlowAdjustment || item.FlowTesting))
{
AddMeter(item.SerialNr, item.Slot, true);
}
}
public void AddMeter(string serialNumber, int slot)
}
public void AddMeter(string serialNumber, int slot, bool SkipPrepearation)
{
try
{
@@ -624,8 +637,9 @@ namespace XylemCommonUiLegacyGenCtl
meter.CurrentActionText = "FlowTest";
meter.SetupFromConfigFile(slot, false, _useRequest, true);
meter.LogRawData(_rawLogging);
meter.RequestProtocol.AdditionalRetryTimeoutMs = 100;
meter.RequestProtocol.AdditionalRetryTimeoutMs = 100;
meter.SkipPrepearationForTestBench = SkipPrepearation;
meter.EnableAutoLogon();
batch.AddMeter(meter);
@@ -638,6 +652,23 @@ namespace XylemCommonUiLegacyGenCtl
{
_logger.Error(ex, $"error at AddMeter(serialNumber={serialNumber},slot={slot}");
}
}
public void AddMeter(string serialNumber, int slot)
{
if (TestsetuptContainer == null)
{
TestsetuptContainer = new TestSetupContainer();
TestsetuptContainer.AllChanelsRequired = true;
TestsetuptContainer.meterTestSettings = new MeterTestSettings[10];
}
if (!TestsetuptContainer.meterTestSettings.Any(f => f != null && f.Slot == slot))
{
TestsetuptContainer.meterTestSettings[slot] = new MeterTestSettings() { SerialNr = serialNumber, Slot = slot, FlowAdjustment = true, FlowTesting = true };
}
AddMeter(serialNumber, slot, false);
}
public void RemoveMeter(int slot)
@@ -680,7 +711,7 @@ namespace XylemCommonUiLegacyGenCtl
return;
}
var state = Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts.DisplayCodes.FlowTested;
if (!Succeed)
{
if (meter is GenesisMeter gen)
@@ -708,6 +739,19 @@ namespace XylemCommonUiLegacyGenCtl
}
meter.SetProcessState(state);
if (meter is GenesisMeter genMeter)
{
if (!genMeter.IsLoggedOn)
{
genMeter.Login();
}
genMeter.WriteRegister(Register.Genesisflow.SampleRate, 2);
genMeter.WriteRegister(Register.Genesisflow.LedMode, 0,true);
}
meter.WriteLog($"MeterIsDone {state}");
}).ContinueWith(delegate
@@ -783,6 +827,7 @@ namespace XylemCommonUiLegacyGenCtl
_isAdjustment = isAdjustment;
var listOfTasks = new List<Task>();
var listOfTasksInit = new List<Task>();
if (isAdjustment)
@@ -795,7 +840,17 @@ namespace XylemCommonUiLegacyGenCtl
{
_logger.Trace($"Meter {meter.Slot} Start PrepareMeters(meterDn={meterDn},refPulseValence={refPulseValence},predictedQFlow ={predictedQFlow},predictedTs={predictedTs},refError={refError},isAdjustment={isAdjustment},IsFlyingStartStop={IsFlyingStartStop}");
if (!(meter is GenesisMeter))
var settings = TestsetuptContainer.meterTestSettings.First(f => f != null && f.Slot == meter.Slot);
if (isAdjustment && !settings.FlowAdjustment)
{
continue;
}
if (!isAdjustment && !settings.FlowTesting)
{
continue;
}
if (!(meter is GenesisMeter genmeter))
{
continue;
}
@@ -804,9 +859,9 @@ namespace XylemCommonUiLegacyGenCtl
TryInvoke(new Action(() =>
{
AddMeterToGrid(meter.Slot, meter.SerialNumber, isFlyingStartStop);
AddMeterToGrid(meter.Slot, meter.SerialNumber, genmeter.PcbId, isFlyingStartStop);
}));
if (!_useRequest)
{
@@ -831,29 +886,42 @@ namespace XylemCommonUiLegacyGenCtl
}));
}
listOfTasksInit.Add(new Task(() =>
{
var r = ((GenesisMeter)meter).Login();
if (_useRequest)
{
_logger.Debug($"Prepare Meters for Measurement/Adjustment");
if (isAdjustment)
{
((GenesisMeter)meter).InitCalibration();
}
else
{
((GenesisMeter)meter).InitMeasurement();
}
// Reboot, HighPeresur
//ReadOut Alarms, Show and reset
_logger.Debug($"Start CheckMetersAreReadyForTest");
}
}));
}
listOfTasks.ForEach(t => t.Start());
Task.WaitAll(listOfTasks.ToArray());
if (_useRequest)
listOfTasksInit.ForEach(t => t.Start());
Task.WaitAll(listOfTasksInit.ToArray());
TryInvoke(new Action(() =>
{
_logger.Debug($"Prepare Meters for Measurement/Adjustment");
if (isAdjustment)
{
batch.MetersInitCalibration();
}
else
{
batch.MetersInitMeasurement();
}
// Reboot, HighPeresur
//ReadOut Alarms, Show and reset
_logger.Debug($"Start CheckMetersAreReadyForTest");
}
UpdateBatch();
}));
setBusy(false, "", true);
CheckMetersAreReadyForTestStatic();
//CheckMetersAreReadyForTestStatic();
}).ContinueWith(delegate
{
@@ -1057,15 +1125,20 @@ namespace XylemCommonUiLegacyGenCtl
{
foreach (var item in batch.ListOfMeters)
{
var settings = TestsetuptContainer.meterTestSettings.First(f => f != null && f.Slot == item.Slot);
if (_isAdjustment)
{
batch.MetersStartCalibration();
}
else
{
batch.MetersStartMeasurement();
if (_isAdjustment && settings.FlowAdjustment)
{
item.StartCalibration();
}
if (!_isAdjustment && settings.FlowTesting)
{
item.StartMeasurement();
}
}
currentMode = Mode.AutoRefresh;
//this.RefeshTimer.Enabled = true;
}
@@ -1090,64 +1163,82 @@ namespace XylemCommonUiLegacyGenCtl
try
{
var nrOfRetrys = 40;
if (_isAdjustment)
{
batch.MetersStopCalibration();
int retrys = 0;
while (batch.ListOfMeters.All(a => a.GetCalibrationState() != MeasurementStates.IsCompleted) && retrys < nrOfRetrys)
{
if (retrys == (nrOfRetrys / 2))
{
batch.MetersStopMeasurement();
}
Thread.Sleep(100);
retrys = retrys + 1;
}
}
else
{
batch.MetersStopMeasurement();
int retrys = 0;
//remove channel filter 0
var onlyChnl = _checkAllChannels ? null : (int?)0;
while (batch.ListOfMeters.All(a => a.GetMeasurementState(onlyChnl) != MeasurementStates.IsCompleted) && retrys < nrOfRetrys)
foreach (var item in batch.ListOfMeters)
{
var settings = TestsetuptContainer.meterTestSettings.First(f => f != null && f.Slot == item.Slot);
if (_isAdjustment && !settings.FlowAdjustment)
{
if (retrys == (nrOfRetrys / 2))
{
batch.MetersStopMeasurement();
}
Thread.Sleep(100);
retrys = retrys + 1;
continue;
}
if (!_isAdjustment && !settings.FlowTesting)
{
continue;
}
if (_isAdjustment)
{
item.StopCalibration();
}
else
{
item.StopMeasurement();
}
}
foreach (var item in batch.ListOfMeters)
{
if (item is GenesisMeter gm)
{
gm.CurrentActionText = $"FlowTest";
}
var settings = TestsetuptContainer.meterTestSettings.First(f => f != null && f.Slot == item.Slot);
if (_isAdjustment && !settings.FlowAdjustment)
{
continue;
}
if (!_isAdjustment && !settings.FlowTesting)
{
continue;
}
if (_isAdjustment)
{
int retrys = 0;
while (item.GetCalibrationState() != MeasurementStates.IsCompleted && retrys < nrOfRetrys)
{
if (retrys == (nrOfRetrys / 2))
{
item.StopCalibration();
}
Thread.Sleep(100);
retrys = retrys + 1;
}
}
else
{
int retrys = 0;
//remove channel filter 0
var onlyChnl = _checkAllChannels ? null : (int?)0;
while (item.GetMeasurementState(onlyChnl) != MeasurementStates.IsCompleted && retrys < nrOfRetrys)
{
if (retrys == (nrOfRetrys / 2))
{
item.StopMeasurement();
}
Thread.Sleep(100);
retrys = retrys + 1;
}
}
}
//var listOfTasks = new List<Task>();
//foreach (var meter in batch.ListOfMeters)
//{
// if (!_useRequest) continue;
// if (((GenesisMeter)meter).IsLoggedOn)
// {
// listOfTasks.Add(new Task(() =>
// {
// var alarms = ((GenesisMeter)meter).GetAlarms();
// ErrorMetersAlarms.AddOrUpdate(meter.Slot, alarms, (key, oldValue) => alarms);
// }));
// }
//}
//listOfTasks.ForEach(t => t.Start());
//Task.WaitAll(listOfTasks.ToArray());
}
catch (Exception ex)
@@ -1306,8 +1397,12 @@ namespace XylemCommonUiLegacyGenCtl
pnlCalibration.Visible = true;
foreach (var basemeter in batch.ListOfMeters)
{
updateCellToInput("Zielwert Justage [%]", basemeter.Slot, false);
updateCell("Zielwert Justage [%]", basemeter.Slot, MeterDefaultCorrection, 2, Color.Beige);
var settings = TestsetuptContainer.meterTestSettings.First(f => f != null && f.Slot == basemeter.Slot);
if (settings.FlowAdjustment)
{
updateCellToInput("Zielwert Justage [%]", basemeter.Slot, false);
updateCell("Zielwert Justage [%]", basemeter.Slot, (double)settings.FlowAdjustmentTarget, 2, Color.Beige);
}
}
}
@@ -1318,33 +1413,28 @@ namespace XylemCommonUiLegacyGenCtl
}
public void AddMeterToGrid(int Slot, string SerialNumber, bool IsFlyingStartStop)
public void AddMeterToGrid(int Slot, string SerialNumber, string PcbId, bool IsFlyingStartStop)
{
try
{
foreach (var basemeter in batch.ListOfMeters.Where(m => m.Slot.Equals(Slot)))
//var totalWidth = dgvBatch.Columns.GetColumnsWidth(DataGridViewElementStates.None) + 40;
//dgvBatch.Size = new Size(totalWidth, dgvBatch.Size.Height);
updateCell("Einbauplatz", Slot, Slot.ToString());
updateCell("Seriennummer", Slot, SerialNumber);
updateCell("PcbId", Slot, PcbId);
TryInvoke(new Action(() =>
{
//var totalWidth = dgvBatch.Columns.GetColumnsWidth(DataGridViewElementStates.None) + 40;
//dgvBatch.Size = new Size(totalWidth, dgvBatch.Size.Height);
dgvBatch.Columns[Slot].Visible = true;
}));
var meter = basemeter as GenesisMeter;
if (meter == null)
{
continue;
}
updateCell("Einbauplatz", Slot, Slot.ToString());
updateCell("Seriennummer", Slot, meter.SerialNumber);
updateCell("PcbId", Slot, meter.GetPcbId());
TryInvoke(new Action(() =>
{
dgvBatch.Columns[Slot].Visible = true;
}));
}
UpdateBatch();
}
catch (Exception ex)
{
@@ -1464,10 +1554,16 @@ namespace XylemCommonUiLegacyGenCtl
{
try
{
if (item is GenesisMeter)
{
var settings = TestsetuptContainer.meterTestSettings.First(f => f != null && f.Slot == item.Slot);
if ((_isAdjustment && !settings.FlowAdjustment) || (!_isAdjustment && !settings.FlowTesting))
{
updateCell($"Status", item.Slot, "-", Color.Gray);
continue;
}
var _meter = (GenesisMeter)item;
var onlyChnl = _checkAllChannels ? null : (int?)0;
var ProcessStatus = item.GetMeasurementState(onlyChnl);
@@ -1690,6 +1786,11 @@ namespace XylemCommonUiLegacyGenCtl
}));
foreach (var basemeter in batch.ListOfMeters)
{
var settings = TestsetuptContainer.meterTestSettings.First(f => f != null && f.Slot == basemeter.Slot);
if (!settings.FlowAdjustment)
{
continue;
}
var calfactor = getCellValue<double>("Zielwert Justage [%]", basemeter.Slot);
if (basemeter is GenesisMeter)
{
@@ -1925,32 +2026,43 @@ namespace XylemCommonUiLegacyGenCtl
return Assembly.GetExecutingAssembly().GetName().Version.ToString();
}
public void SetTestSetupContainer(TestSetupContainer container)
public void SetTestSetupContainer(dynamic vbContainer)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine($"WatingForDecision={container.WatingForDecision}");
sb.AppendLine($"DirectStart={container.DirectStart}");
sb.AppendLine($"TempSouce={container.TempSouce}");
sb.AppendLine($"MeterSize={container.MeterSize}");
sb.AppendLine($"DelayInSBeforStart={container.DelayInSBeforStart}");
sb.AppendLine($"AllChanelsRequired={container.AllChanelsRequired}");
sb.AppendLine($"ProductionMode={container.ProductionMode}");
foreach (var item in container.meterTestSettings)
if (vbContainer is TestSetupContainer container)
{
sb.AppendLine($"Slot={item.Slot}");
sb.AppendLine($"SerialNr={item.SerialNr}");
sb.AppendLine($"PreAdjustment={item.PreAdjustment}");
sb.AppendLine($"FlowAdjustment={item.FlowAdjustment}");
sb.AppendLine($"FlowAdjustmentTarget={item.FlowAdjustmentTarget}");
StringBuilder sb = new StringBuilder();
sb.AppendLine($"WatingForDecision={container.WatingForDecision}");
sb.AppendLine($"DirectStart={container.DirectStart}");
sb.AppendLine($"TempSouce={container.TempSouce}");
sb.AppendLine($"MeterSize={container.MeterSize}");
sb.AppendLine($"DelayInSBeforStart={container.DelayInSBeforStart}");
sb.AppendLine($"AllChanelsRequired={container.AllChanelsRequired}");
sb.AppendLine($"ProductionMode={container.ProductionMode}");
foreach (var item in container.meterTestSettings)
{
if (item == null)
{
continue;
}
sb.AppendLine($"Slot={item.Slot}");
sb.AppendLine($"SerialNr={item.SerialNr}");
sb.AppendLine($"FlowTesting={item.FlowTesting}");
sb.AppendLine($"PreAdjustment={item.PreAdjustment}");
sb.AppendLine($"FlowAdjustment={item.FlowAdjustment}");
sb.AppendLine($"FlowAdjustmentTarget={item.FlowAdjustmentTarget}");
}
_logger.Info($"SetTestSetupContainer ({sb}) ");
//MessageBox.Show(sb.ToString());
TestsetuptContainer = vbContainer;
}
}
// meterTestSettings { get; set; }
public void PrepareBatch(bool useRequest, bool rawLogging, bool checkAllChannels, bool manualAdjustment, string ControlSrt)
{
throw new NotImplementedException();
}
}
}