using System;
using Config.Entities;
using TBF.Rig.Sequences;
namespace TBF.Rig.ControlBoard
{
public interface IAdvancedControlBoard : IControlBoard
{
///
/// Get operation for a Flying start-stop test
/// Events: OpArgumentError ...... invalid arguments, test cannot be started
/// StartingTest ......... starting a test
/// TestInProgress ....... test was successfully started, test is running
/// TestPart2InProgress .. first part when water is diverted to a tank was successfully completed, part2 in progress,
/// prolonged method only: (massPulsesCount GT 0) and (massPulsesCount LT pulsesCount)
/// TestCompleted ........ test was successfully completed
/// Error ................ unspecified error while running a test
///
/// Test entity
/// Flow lower limit
/// Flow upper limit
/// Test duration - number of reference flow meter pulses
/// true = Test with diverter
/// true = Prolonged test with diverter
/// Test part 1 duration - number of reference flow meter pulses<
/// true = Read diverter transition
/// Plotter for diverter start
/// Plotter for diverter end
/// Operation running a test
IOperation FlyingStartStopTestOp(Test test, double qFrom, double qTo, int pulsesCount,
bool withDiverter, bool isDelayedStart, bool isProlonged, int massPulsesCount,
bool readDivTransition, Statistics divStartPlotter, Statistics divStopPlotter);
}
}