Fix Diverter switching - in sequence, logs

This commit is contained in:
Michal Buzik 2024-03-15 21:02:39 +01:00
parent a710ab7457
commit 783d51e71a
5 changed files with 80 additions and 21 deletions

1
.gitignore vendored
View File

@ -67,5 +67,6 @@ WorkflowConfigurator/obj/
Workplace/bin/
Workplace/obj/
.vs/
.idea/
*.suo
*.bak

View File

@ -71,12 +71,34 @@ namespace TBF.Rig.Sequences
///TODO open valve
///
protected void OpenValveGrabImage(ControlBoard.IControlBoard cBrd, IValve triggerValve,IList<Event> e, string stateName)
protected void OpenValveGrabImage(ControlBoard.IControlBoard cBrd,IOperation additionalOperation, IValve triggerValve,IList<Event> e, string stateName)
{
State valveOpen = State.Create(stateName)
.AddOperation(checkUiOp)
.AddOperation(cBrd.SetValvesOp(triggerValve, null))
.EnterState();
//Test if diverter is open
IDiverter diverter = cBrd.Devices.Diverter;
if (diverter != null)
{
log.DebugFormat("Diverter state - start Grab Image: {0}, number: {1}",
diverter.State == true ? "-to tank-" : "bypass tank", diverter.DiverterNr);
}
if (additionalOperation != null)
{
log.Debug("Open Valve GrabImage - with additionalOperation");
State valveOpen = State.Create(stateName)
.AddOperation(checkUiOp)
.AddOperation(cBrd.SetValvesOp(triggerValve, null))
.AddOperation(additionalOperation)
.EnterState();
}
else
{
log.Debug("Open Valve GrabImage - NO additionalOperation");
State valveOpen = State.Create(stateName)
.AddOperation(checkUiOp)
.AddOperation(cBrd.SetValvesOp(triggerValve, null))
.EnterState();
}
do
{
e = StateMachine.WaitRunDevsRunOps();
@ -84,21 +106,55 @@ namespace TBF.Rig.Sequences
} while (e.Contains(Event.ValvesBusy));
log.Debug("Trigger send, opened valve: "+ triggerValve?.Name );
Thread.Sleep(1000);
if (diverter != null)
{
log.DebugFormat("Diverter state - after: {0}, diverter number: {1}",
diverter.State == true ? "-to tank-" : "bypass tank", diverter.DiverterNr);
}
}
protected void CloseValveGrabImage(ControlBoard.IControlBoard cBrd, IValve triggerValve,IList<Event> e, string stateName)
protected void CloseValveGrabImage(ControlBoard.IControlBoard cBrd, IOperation additionalOperation, IValve triggerValve,IList<Event> e, string stateName)
{
//Test if diverter is open
IDiverter diverter = cBrd.Devices.Diverter;
if (diverter != null)
{
log.DebugFormat("Diverter state before Grab Image: {0}, number: {1}",
diverter.State == true ? "-to tank-" : "bypass tank", diverter.DiverterNr);
}
Thread.Sleep(2000);
State valveOpen = State.Create(stateName)
.AddOperation(checkUiOp)
.AddOperation(cBrd.SetValvesOp(null, triggerValve))
.EnterState();
if (additionalOperation != null)
{
log.Debug("Close Valve GrabImage - with additionalOperation");
State valveOpen = State.Create(stateName)
.AddOperation(checkUiOp)
.AddOperation(cBrd.SetValvesOp(null, triggerValve))
.AddOperation(additionalOperation)
.EnterState();
}
else
{
log.Debug("Close Valve GrabImage - NO additionalOperation");
State valveOpen = State.Create(stateName)
.AddOperation(checkUiOp)
.AddOperation(cBrd.SetValvesOp(null, triggerValve))
.EnterState();
}
do
{
e = StateMachine.WaitRunDevsRunOps();
if (e.Contains(Event.Error)) break;
} while (e.Contains(Event.ValvesBusy));
log.Debug("Trigger send, closed valve: "+ triggerValve?.Name );
if (diverter != null)
{
log.DebugFormat("Diverter state - after: {0}, num: {1}",
diverter.State == true ? "-to tank-" : "bypass tank", diverter.DiverterNr);
}
}
/// <summary>

View File

@ -412,7 +412,7 @@ namespace TBF.Rig.TestMethods.FixedStart
triggerValve = roi.GetValve();
if (triggerValve != null && !triggerSend)
{
OpenValveGrabImage(cBrd,triggerValve, e,
OpenValveGrabImage(cBrd,null,triggerValve, e,
string.Format("{0}({1}) : Grabbing images - valve open", test.Method, test.Name));
triggerSend = true;
}
@ -441,7 +441,7 @@ namespace TBF.Rig.TestMethods.FixedStart
///valve trigger camera close
if (triggerValve != null)
{
CloseValveGrabImage(cBrd, triggerValve, e,
CloseValveGrabImage(cBrd, null,triggerValve, e,
string.Format("{0}({1}) : Grabbing images - valve close", test.Method, test.Name));
}
@ -694,7 +694,7 @@ namespace TBF.Rig.TestMethods.FixedStart
triggerValve = roi.GetValve();
if (triggerValve != null && !triggerSend)
{
OpenValveGrabImage(cBrd,triggerValve,e,string.Format("{0}({1}) : Grabbing images - valve open", test.Method, test.Name));
OpenValveGrabImage(cBrd,null,triggerValve,e,string.Format("{0}({1}) : Grabbing images - valve open", test.Method, test.Name));
triggerSend = true;
}
@ -722,7 +722,7 @@ namespace TBF.Rig.TestMethods.FixedStart
///valve trigger camera close
if (triggerValve != null)
{
CloseValveGrabImage(cBrd, triggerValve,e,string.Format("{0}({1}) : Grabbing images - valve close", test.Method, test.Name));
CloseValveGrabImage(cBrd,null, triggerValve,e,string.Format("{0}({1}) : Grabbing images - valve close", test.Method, test.Name));
}
Bridge.OnActivity(this, Strings.Enter_water_meter_data);

View File

@ -56,7 +56,7 @@ namespace TBF.Rig.TestMethods.GrabImage
triggerValve = roi.GetValve();
if (triggerValve != null && !triggerSend)
{
OpenValveGrabImage(cBrd, triggerValve, e,
OpenValveGrabImage(cBrd,null, triggerValve, e,
string.Format("{0}({1}) : Grabbing images - valve open", test.Method, test.Name));
triggerSend = true;
}
@ -86,7 +86,7 @@ namespace TBF.Rig.TestMethods.GrabImage
///valve trigger camera close
if (triggerValve != null)
{
CloseValveGrabImage(cBrd,triggerValve, e,
CloseValveGrabImage(cBrd,null,triggerValve, e,
string.Format("{0}({1}) : Grabbing images - valve close", test.Method, test.Name));
}
///////

View File

@ -514,7 +514,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
triggerValve = roi.GetValve();
if (triggerValve != null && !triggerSend)
{
OpenValveGrabImage(cBrd, triggerValve, e,
OpenValveGrabImage(cBrd,testInProgress, triggerValve, e,
string.Format("{0}({1}) : Grabbing images - valve open", test.Method, test.Name));
triggerSend = true;
}
@ -548,7 +548,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
///valve trigger camera close
if (triggerValve != null)
{
CloseValveGrabImage(cBrd,triggerValve, e,
CloseValveGrabImage(cBrd,testInProgress,triggerValve, e,
string.Format("{0}({1}) : Grabbing images - valve close", test.Method, test.Name));
}
///////
@ -835,7 +835,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
triggerValve = roi.GetValve();
if (triggerValve != null && !triggerSend)
{
OpenValveGrabImage(cBrd,triggerValve, e,
OpenValveGrabImage(cBrd,testInProgress,triggerValve, e,
string.Format("{0}({1}) : Grabbing images - valve open", test.Method, test.Name));
triggerSend = true;
}
@ -843,7 +843,8 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
Directory.CreateDirectory(directory);
endImages[i] = Path.Combine(directory, fileName);
state2.AddOperation(roi.GrabImageOp(endImages[i]));
}
state2.AddOperation(testInProgress);
}
else
{
/// Camera simulation
@ -869,7 +870,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
///valve trigger camera close
if (triggerValve != null)
{
CloseValveGrabImage(cBrd, triggerValve, e,
CloseValveGrabImage(cBrd,testInProgress, triggerValve, e,
string.Format("{0}({1}) : Grabbing images - valve close", test.Method, test.Name));
}
///////
@ -890,6 +891,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
}
state.AddOperation(checkUiOp)
.AddOperations(readTempPressOps)
.AddOperation(testInProgress)
.EnterState();
do {
e = StateMachine.WaitRunDevsRunOps();