iPerlCommunication simultaneously with evacuation (SimultWithNext test parameter), version 1.5.108.
This commit is contained in:
parent
e9440411bc
commit
2845cf20f5
13
TODO.txt
13
TODO.txt
@ -1,7 +1,13 @@
|
||||
iPerl:
|
||||
- moznost iPerl komunikacie pri vypustani (do Active modu), pouzit 'Simultaneously with next...'
|
||||
- 'Q2 corrected from ...' chyba sa nezmensi, ukaze sa povodna
|
||||
- 'Q2 corrected from ...' Evaluate a Publish parametre
|
||||
- Results: ukazovat aj Disabled vodomery
|
||||
- STOP nefunguje vzdy (alebo pomaly) - zlepsit uzivatelsky dojem
|
||||
- Oracle DB: Bauwjahr
|
||||
- Oracle DB: UPDATE ...
|
||||
|
||||
- MeterType v iPerl.WaterMeter zmenit na test parameter
|
||||
- STOP nefunguje pocas communikacie, rozne chyby v cykle !!!
|
||||
- urobit purging sucasne s iPerlCommunication
|
||||
- v iPerlCommunication ponukat stringy v drop-down menu
|
||||
- na Process obrazovke posunut stupacku a rezervoar uplne doprava
|
||||
|
||||
@ -9,6 +15,9 @@ iPerl:
|
||||
|
||||
- export the DB (=make a backup of configuration) from TBF program
|
||||
|
||||
|
||||
|
||||
|
||||
- ak sa skusa s pevnym startom treba merat priemerny prietok az po uplynuti
|
||||
urcitej doby inak bude vzdy nizsi ako ma byt - rozbeh
|
||||
- bude potrebne doregulovavat pocas merania, Jano poslal moznosti - inak nam
|
||||
|
||||
@ -74,8 +74,12 @@ namespace TBF.BenchControl.Sequences
|
||||
bool benchFilled = false;
|
||||
|
||||
int simultWithPurgingCount = 0;
|
||||
Generic.IComponentCfg simultWithPurgingCfg;
|
||||
IList<Generic.ITestParams> simultWithPurgingParams;
|
||||
Generic.IComponentCfg simultWithPurgingCfg = null;
|
||||
IList<Generic.ITestParams> simultWithPurgingParams = new List<Generic.ITestParams>();
|
||||
|
||||
int simultWithEvacuationCount = 0;
|
||||
Generic.IComponentCfg simultWithEvacuationCfg = null;
|
||||
IList<Generic.ITestParams> simultWithEvacuationParams = new List<Generic.ITestParams>();
|
||||
|
||||
StateMachine.LoadProcedure(true); // TODO: Implement as an operation so that the worker thread is not blocked
|
||||
|
||||
@ -250,11 +254,11 @@ namespace TBF.BenchControl.Sequences
|
||||
fill_the_bench:
|
||||
|
||||
///
|
||||
/// Analyze whether there are steps (e.g. iPerl communication) to be done simultaneously with purging
|
||||
/// Collect steps (e.g. iPerl communication) to be done simultaneously with purging
|
||||
///
|
||||
simultWithPurgingCount = 0;
|
||||
simultWithPurgingCfg = null;
|
||||
simultWithPurgingParams = new List<Generic.ITestParams>();
|
||||
simultWithPurgingParams.Clear();
|
||||
///
|
||||
foreach (var test in StateMachine.Tests)
|
||||
{
|
||||
@ -280,12 +284,48 @@ namespace TBF.BenchControl.Sequences
|
||||
simultWithPurgingParams.Add(testMethodComp.Cfg.GetTestParams().Clone() as Generic.ITestParams);
|
||||
simultWithPurgingCount++;
|
||||
}
|
||||
|
||||
///
|
||||
if (simultWithPurgingCount > 0)
|
||||
{
|
||||
/// Make sure the entry form is closed
|
||||
if (UIFlowControl.Stop == WaitBeginFormClosed()) goto stop;
|
||||
/// Collect steps (e.g. iPerl communication) to be done simultaneously with evacuation
|
||||
///
|
||||
simultWithEvacuationCount = 0;
|
||||
simultWithEvacuationCfg = null;
|
||||
simultWithEvacuationParams.Clear();
|
||||
///
|
||||
for (int i = StateMachine.Tests.Count - 1; i >= simultWithPurgingCount; i--)
|
||||
{
|
||||
var test = StateMachine.Tests[i];
|
||||
|
||||
Generic.IComponent testMethodComp = TbfComponents.FindComponent(test.Method);
|
||||
if (testMethodComp == null) break;
|
||||
|
||||
testMethodComp.Cfg.UpdateTestParams(test);
|
||||
|
||||
ISimultTestMethod simultTest = testMethodComp as ISimultTestMethod;
|
||||
|
||||
if (simultTest == null || !simultTest.SimultWithNext) break;
|
||||
|
||||
if (simultWithEvacuationCount == 0)
|
||||
{
|
||||
simultWithEvacuationCfg = simultTest.Cfg;
|
||||
sensPath = StateMachine.GetMetersPath(test);
|
||||
}
|
||||
else if (simultTest.Cfg != simultWithEvacuationCfg)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
simultWithEvacuationParams.Insert(0, testMethodComp.Cfg.GetTestParams().Clone() as Generic.ITestParams);
|
||||
simultWithEvacuationCount++;
|
||||
}
|
||||
|
||||
///
|
||||
if (simultWithPurgingCount > 0)
|
||||
{
|
||||
/// Make sure the entry form is closed
|
||||
if (UIFlowControl.Stop == WaitBeginFormClosed()) goto stop;
|
||||
|
||||
/// Open iPerlCommunicationForm
|
||||
Program.MainWnd.Invoke(new iPerlCommFormDlgt(OpenIPerlCommForm), new object[] { this, simultWithPurgingCfg, simultWithPurgingParams });
|
||||
}
|
||||
|
||||
@ -352,7 +392,7 @@ namespace TBF.BenchControl.Sequences
|
||||
selection = MakeSelection(MKSelContext.InsideProcedure);
|
||||
///
|
||||
if (selection == Selection.PurgeBegin) goto fill_the_bench;
|
||||
if (selection == Selection.PurgeEnd) goto purge_end;
|
||||
if (selection == Selection.PurgeEnd) goto evacuation;
|
||||
if (selection == Selection.Break)
|
||||
{
|
||||
Bridge.Bench2UI(ButtonsEtc.ShowBenchEmpty);
|
||||
@ -371,7 +411,7 @@ namespace TBF.BenchControl.Sequences
|
||||
if (selection == Selection.Cycle)
|
||||
{
|
||||
TimeEstimateTotal = 0;
|
||||
for (int i = simultWithPurgingCount; i < StateMachine.Tests.Count; i++)
|
||||
for (int i = simultWithPurgingCount; i < StateMachine.Tests.Count - simultWithEvacuationCount; i++)
|
||||
{
|
||||
Entities.Test test = StateMachine.Tests[i];
|
||||
|
||||
@ -506,7 +546,7 @@ namespace TBF.BenchControl.Sequences
|
||||
|
||||
goto select_cycle_or_test;
|
||||
|
||||
purge_end:
|
||||
evacuation:
|
||||
save_results:
|
||||
|
||||
UiBridge.Bridge.OnError(this, string.Empty); /// Clear an error message (if any)
|
||||
@ -587,21 +627,62 @@ namespace TBF.BenchControl.Sequences
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------
|
||||
Program.LocalSettings.BatchNr++;
|
||||
Program.LocalSettings.Save();
|
||||
|
||||
|
||||
if (simultWithEvacuationCount > 0)
|
||||
{
|
||||
/// Open iPerlCommunicationForm
|
||||
Program.MainWnd.Invoke(new iPerlCommFormDlgt(OpenIPerlCommForm), new object[] { this, simultWithEvacuationCfg, simultWithEvacuationParams });
|
||||
}
|
||||
|
||||
//--------------------------------------------------------
|
||||
switch (Transition(purgeEnd, TransitionContext.PurgeEnd))
|
||||
{
|
||||
case Event.Error: goto error;
|
||||
case Event.UiCmdStop: goto stop;
|
||||
case Event.Error:
|
||||
if (simultWithEvacuationCount > 0) CloseIPerlCommForm();
|
||||
goto error;
|
||||
case Event.UiCmdStop:
|
||||
if (simultWithEvacuationCount > 0) CloseIPerlCommForm();
|
||||
goto stop;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (simultWithEvacuationCount > 0)
|
||||
{
|
||||
///
|
||||
/// Wait until iPerl communications are completed
|
||||
///
|
||||
bool completed = !(modelessDlg is GenericDevices.IHasCompleted)
|
||||
|| (modelessDlg as GenericDevices.IHasCompleted).Completed;
|
||||
if (!completed)
|
||||
{
|
||||
State.Create("MainSeq : Wait until the entry form is closed")
|
||||
.AddOperation(checkUiOp)
|
||||
.EnterState();
|
||||
do
|
||||
{
|
||||
e = StateMachine.WaitRunDevsRunOps();
|
||||
if (e.Contains(Event.UiCmdStop))
|
||||
{
|
||||
CloseIPerlCommForm();
|
||||
goto stop;
|
||||
}
|
||||
|
||||
completed = (modelessDlg as GenericDevices.IHasCompleted).Completed;
|
||||
}
|
||||
while (!completed);
|
||||
}
|
||||
|
||||
modelessDlg = null;
|
||||
}
|
||||
|
||||
benchFilled = false;
|
||||
Bridge.Bench2UI(ButtonsEtc.ShowBenchEmpty);
|
||||
|
||||
|
||||
goto select_procedure;
|
||||
|
||||
stop_within_cycle:
|
||||
|
||||
@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("1.5.107.1")]
|
||||
[assembly: AssemblyFileVersion("1.5.107.1")]
|
||||
[assembly: AssemblyVersion("1.5.108.1")]
|
||||
[assembly: AssemblyFileVersion("1.5.108.1")]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user