using System; using Config.Entities; using Dirichlet.Numerics; using TBF.Rig.Generic; using TBF.Rig.GenericDevices; namespace TBF.Rig.ControlBoard { public interface IControlBoard : IDevice, IValveControl { void SpecifyInvertedValves(UInt128 valvesToInvert); /// /// Called on beginning of a test /// void ClearProcessValues(); /// /// Values valid always /// UInt128 Route { get; } /// State of valves UInt64 DigitalInputs { get; } /// Inputs /// /// Values valid during a test /// int FlowmeterId { get; } double RefFrequency { get; } /// /// Last test results /// double TestTime { get; } int RefPulses { get; } double TestTimeWM(int wmNr1); int RefPulsesWM(int wmNr1); int PulsesWM(int wmNr1); float ValveOpenCloseTime { get; } /// Start valve open or close time in sec /// /// Select devices used for control and measurement /// /// OutputPath Devices { set; get; } /// /// Returns operation which sets the flow. Events: /// /// Lower limit for the water flow /// Upper limit for the water flow /// Reference to calss keeping current flow value /// Timeout in seconds /// Operation IOperation SetFlowOp(double qFrom, double qTo, TBF.Boxes.DoubleBox measuredFlow, int timeout); IOperation StopFlowRegulationOp(); /// /// Get operation for a Standing start-stop test /// Events: OpArgumentError .... invalid arguments, test cannot be started /// StartingTest ....... starting a test /// TestInProgress ..... test was successfully started, test is running /// TestCompleted ...... test was successfully completed /// Error .............. unspecified error while running a test /// /// Operation running a test IOperation StandingStartStopTestOp(Test test, int pulsesCount, bool withDiverter); /// /// Returns operation with events: Event.MeasurementCompleted or Event.None /// /// Operation IOperation QueryMeasurementEndOp(); void StopFlowControl(bool isFromUI, int regVId); void StopAll(bool isFromUI); } }