/// /// Copyright (c) 2013-2016 Sensus Metering Systems /// using System.Collections.Generic; using Config.Entities; namespace TBF.BenchControl.Generic { public interface IComponentCfg { /// /// Unique component # (0 .. nr.of components-1) /// int ItemNr { get; set; } /// /// Component name /// string Name { get; set; } /// /// Reference to the component factory (it is a singleton) /// IComponentFactory Factory { get; set; } /// /// Component class / component type name /// string ParentName { get; set; } /// /// Debug level, 0 = debugging off /// Config.Entities.DebugMode DebugLevel { get; set; } /// /// Log level, 0 = logging off /// Config.Entities.LogLevel LogLevel { get; set; } /// /// Measurement correction values /// IList Corrections { get; set; } /// /// Measurement correction values /// IList Uncertainties { get; set; } /// /// Creates a new database entity 'Component' from the parameters /// Config.Entities.Component CreateDbEntity(); /// /// Object instance factory-like methods /// IComponentCfgCtrl GetControl(); /// /// Creates a procedure parameters provider (specific for each component). /// /// Prodedure parameters provider or null IParamsProvider CreateProcParamsProvider(); /// /// Returns runtime procedure parameters provider - one per component updated by LoadProcedureParamsFromDB(...). /// /// Prodedure parameters provider or null IParamsProvider GetRuntimeProcParamsProvider(); /// /// Returns UI procedure parameters provider - one per ComponentProcedure DB entity. /// /// Prodedure parameters provider or null IParamsProvider GetUIProcParamsProvider(Config.Entities.Procedure procedure); /// /// Creates a test parameters provider (specific for each component). /// /// Test parameters provider or null IParamsProvider CreateTestParamsProvider(); /// /// Returns runtime test parameters provider - one per component updated by LoadtestParamsFromDB(...). /// /// Test parameters provider or null IParamsProvider GetRuntimeTestParamsProvider(); /// /// Returns UI test parameters provider - one per ComponentTest DB entity. /// /// Test parameters provider or null IParamsProvider GetUITestParamsProvider(Config.Entities.Test test); /// /// Used in run time when a procedure is loaded or a test is started /// void LoadProcedureParamsFromDB(Config.Entities.Procedure procedure); void LoadTestParamsFromDB(Config.Entities.Test test); string ToString(int i); } }