Long time no commit
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user