///
/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
///
using System.Collections.Generic;
using Common;
using Config.Entities;
namespace TBF.Rig.Generic
{
public interface IComponentCfg
{
int Id { get; set; }
///
/// 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
///
DebugMode DebugLevel { get; set; }
///
/// Log level, 0 = logging off
///
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
///
Component CreateDbEntity();
///
/// Object instance factory-like methods
///
IComponentCfgCtrl GetControl(IList cmpntEntities);
///
/// 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(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(Test test);
///
/// Used in run time when a procedure is loaded or a test is started
///
void LoadProcedureParamsFromDB(Procedure procedure);
void LoadTestParamsFromDB(Test test);
string ToString(int i);
}
}