Develop - GciBridge -> GCI -> PreadjustmentUI functions
This commit is contained in:
+92
-6
@@ -1,4 +1,5 @@
|
||||
using CordonelPreadjustmentUi.Processes;
|
||||
using CordonelPreadjustmentUi;
|
||||
using CordonelPreadjustmentUi.Processes;
|
||||
using CordonelPreadjustmentUi.Processes.Actions;
|
||||
using CordonelPreadjustmentUi.Processes.Itinerary;
|
||||
using System;
|
||||
@@ -6,16 +7,18 @@ using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore;
|
||||
using Xylem.Common.Hardware.WaterMeter.WaterMeterCore;
|
||||
using Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts;
|
||||
using Xylem.Common.Logic.ProductionOrderCore.OrderData;
|
||||
using Xylem.Common.Ui.CordonelPreadjustmentUi;
|
||||
using Xylem.Common.Ui.CordonelPreadjustmentUi.Parameters;
|
||||
using CordonelPreadjustmentUi;
|
||||
using static Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore.GenesisMeter;
|
||||
|
||||
namespace GenesisCordonelInterface.UI
|
||||
{
|
||||
@@ -41,11 +44,18 @@ namespace GenesisCordonelInterface.UI
|
||||
private Boolean abortIndicator = false;
|
||||
public Boolean AbortIndicator { get { return abortIndicator; } set { abortIndicator = value; } }
|
||||
public int TestRunNumber;
|
||||
public PreAdjustmentControl(PreAdjustmentSettingsContainer Settings = null)
|
||||
public PreAdjustmentControl(PreAdjustmentSettingsContainer Settings = null, MeterBatch externalMetersBatch = null)//...MF
|
||||
{
|
||||
InitializeComponent();
|
||||
SetSettings(Settings);
|
||||
rTB_ZeroFlowCal.AutoSize = true;
|
||||
|
||||
//...MF
|
||||
// Use external batch only if supplied
|
||||
if (externalMetersBatch != null)
|
||||
{
|
||||
GlobalMeterBatch = externalMetersBatch;
|
||||
}
|
||||
}
|
||||
public void SetSettings(PreAdjustmentSettingsContainer Settings = null)
|
||||
{
|
||||
@@ -120,6 +130,49 @@ namespace GenesisCordonelInterface.UI
|
||||
}
|
||||
cb_Metersize.SelectedItem = setM;
|
||||
|
||||
//...MF
|
||||
// Create UI controls for configured meter slots.
|
||||
//
|
||||
// Flow:
|
||||
//
|
||||
// settings.Meters
|
||||
// ↓
|
||||
// create MeterStateControl
|
||||
// ↓
|
||||
// position control in UI
|
||||
// ↓
|
||||
// check whether slot exists in externally supplied MeterBatch
|
||||
// ↓
|
||||
// automatically enable corresponding checkbox
|
||||
// ↓
|
||||
// register UI events
|
||||
// ↓
|
||||
// add control into internal collection and group box
|
||||
//
|
||||
// Notes:
|
||||
// - allows external GCI workflow to preselect meters
|
||||
// - keeps UI synchronized with externally injected MeterBatch
|
||||
// - slots contained in GlobalMeterBatch are automatically checked
|
||||
//
|
||||
foreach (var Meter in settings.Meters)
|
||||
{
|
||||
var ctl = new MeterStateControl(Meter);
|
||||
ctl.Location = new Point(5 + ((tmpI - 1) * ctl.Width), 15);
|
||||
|
||||
// Check meter if it exists in external MeterBatch
|
||||
if (GlobalMeterBatch != null &&
|
||||
GlobalMeterBatch.ListOfMeters != null &&
|
||||
GlobalMeterBatch.ListOfMeters.Any(m => m.Slot == Meter))
|
||||
{
|
||||
ctl.SetChecked(true);
|
||||
}
|
||||
|
||||
MeterStateCtls.Add(ctl);
|
||||
gB_Meters.Controls.Add(ctl);
|
||||
ctl.OnRequestDetails += Ctl_MouseEnter;
|
||||
tmpI = tmpI + 1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1694,13 +1747,46 @@ namespace GenesisCordonelInterface.UI
|
||||
|
||||
List<IProcess> listOfProgrammParts = new List<IProcess>();
|
||||
|
||||
//...MF
|
||||
bool requiresInternalLoginFlow = true;
|
||||
requiresInternalLoginFlow =
|
||||
GlobalMeterBatch.ListOfMeters.All(
|
||||
m =>
|
||||
{
|
||||
var meter = m as GenesisMeter;
|
||||
|
||||
return meter == null ||
|
||||
meter.usePasswordSource !=
|
||||
PasswordSource.InterfaceInputPassword;
|
||||
});
|
||||
|
||||
listOfProgrammParts.Add(new PrepareTestProcess("PrepareTest", CordonelPreadjustmentUi.PreAdjustmentControl.StatusPanelItems.Detect, string.Empty, string.Empty, 1 * 60));
|
||||
//...MF
|
||||
bool requiresInternalConfigFlow = true;
|
||||
requiresInternalConfigFlow =
|
||||
GlobalMeterBatch.ListOfMeters.All(
|
||||
m =>
|
||||
{
|
||||
var meter = m as GenesisMeter;
|
||||
|
||||
listOfProgrammParts.Add(new LoginProcess("Login", CordonelPreadjustmentUi.PreAdjustmentControl.StatusPanelItems.Detect, PredefinedMessages.WaitUntilLoginFinished(pp.Setting.Culture), PredefinedMessages.LoginFailed(pp.Setting.Culture), 1 * 60));
|
||||
return meter == null ||
|
||||
meter.useConfigSource !=
|
||||
ConfigSource.InterfaceInputConfig;
|
||||
});
|
||||
|
||||
listOfProgrammParts.Add(new FlushProcess("First Flush", CordonelPreadjustmentUi.PreAdjustmentControl.StatusPanelItems.Detect, PredefinedMessages.WaitUntilFlushFinished(pp.Setting.Culture), string.Empty, 2 * 60));
|
||||
if (requiresInternalConfigFlow)//...MF
|
||||
{
|
||||
listOfProgrammParts.Add(new PrepareTestProcess("PrepareTest", CordonelPreadjustmentUi.PreAdjustmentControl.StatusPanelItems.Detect, string.Empty, string.Empty, 1 * 60));
|
||||
}
|
||||
|
||||
if (requiresInternalLoginFlow)//...MF
|
||||
{
|
||||
listOfProgrammParts.Add(new LoginProcess("Login", CordonelPreadjustmentUi.PreAdjustmentControl.StatusPanelItems.Detect, PredefinedMessages.WaitUntilLoginFinished(pp.Setting.Culture), PredefinedMessages.LoginFailed(pp.Setting.Culture), 1 * 60));
|
||||
}
|
||||
|
||||
if (requiresInternalConfigFlow)//...MF
|
||||
{
|
||||
listOfProgrammParts.Add(new FlushProcess("First Flush", CordonelPreadjustmentUi.PreAdjustmentControl.StatusPanelItems.Detect, PredefinedMessages.WaitUntilFlushFinished(pp.Setting.Culture), string.Empty, 2 * 60));
|
||||
}
|
||||
|
||||
//listOfProgrammParts.Add(new PressureTestProcess("PreussureTest", StatusPanelItems.Prepare, PredefinedMessages.WaitUntilPreparationFinished(pp.Setting.Culture), PredefinedMessages.PreparationFailed(pp.Setting.Culture), 1 * 60));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user