using System; using TBF.BenchControl.GenericDevices; using TBF.Boxes; namespace TBF.BenchControl.Sequences { public class ProcessData { public static IBenchInfo BenchInfo; public static FloatBox AmbientTemp = new FloatBox() { Name = "Ambient Temperature", Format = "F1" }; /// [Celsius] public static FloatBox AmbientPressure = new FloatBox() { Name = "Ambient Pressure", Format = "F1" }; public static FloatBox AmbientHumidity = new FloatBox() { Name = "Ambient Humidity", Format = "F1" }; /// [%] public static FloatBox TempIn = new FloatBox() { Name = "Temperature In", Format = "F2" }; /// [Celsius] public static FloatBox TempOut = new FloatBox() { Name = "Temperature Out", Format = "F2" }; /// [Celsius] public static FloatBox TempDiv = new FloatBox() { Name = "Temperature Div", Format = "F2" }; /// [Celsius] public static FloatBox PressureUp = new FloatBox() { Name = "Pressure In", Format = "F2", Factor = 0.001f }; /// [mbar], printed by ToString() in [bar] public static FloatBox PressureDown = new FloatBox() { Name = "Pressure Out", Format = "F2", Factor = 0.001f }; /// [mbar], printed by ToString() in [bar] public static float LtrPerRefPulse; /// to calculate the ref.volume public static int RefPulses; public static FloatBox RefFreq = new FloatBox() { Name = "RefFreq", Format = "F2" }; public static FloatBox RefFlow = new FloatBox() { Name = "RefFlow", Format = "F2" }; /// [m3/h] public static FloatBox Mass = new FloatBox() { Name = "Mass", Format = "F3" }; /// [kg] public static FloatBox StartMass = new FloatBox() { Name = "Start Mass", Format = "F3" }; /// [kg] public static FloatBox EndMass = new FloatBox() { Name = "End Mass", Format = "F3" }; /// [kg] public static DateTime TestStartTime; public static DateTime TestEndTime; public static Results.BatchResults BatchRslts; public static IRegisterReader[] RegisterReaders; public static double[] Enthalpy; /// Heat meters support /// static ProcessData() { /// /// RegisterReaders should never be null, RegisterReader.Length should be Config.Data.WMsCount /// RegisterReader[i] where i = 0..Config.Data.WMsCount-1 may be null and should always be tested /// RegisterReaders = new IRegisterReader[Config.Data.WMsCount]; Enthalpy = new double[Config.Data.WMsCount]; /// Heat meters support } /// /// To clear process values at the beginning of each test /// protected void ClearProcessValues() { for (int i = 0; i < Config.Data.WMsCount; i++) { if (RegisterReaders[i] != null) RegisterReaders[i].Clear(); Enthalpy[i] = 0; /// Heat meters support } RefPulses = 0; RefFreq.Clear(); RefFlow.Clear(); Mass.Clear(); StartMass.Clear(); EndMass.Clear(); } /// /// Statistics of 'continuous' variables (temperature, pressure, flow, etc.) /// public static FloatStatistics AmbientTempStat = new FloatStatistics(); public static FloatStatistics AmbientPressureStat = new FloatStatistics(); public static FloatStatistics AmbientHumidityStat = new FloatStatistics(); public static FloatStatistics TempInStat = new FloatStatistics(); public static FloatStatistics TempOutStat = new FloatStatistics(); public static FloatStatistics TempDivStat = new FloatStatistics(); public static FloatStatistics PressureUpStat = new FloatStatistics(); public static FloatStatistics PressureDownStat = new FloatStatistics(); protected static void ClearAllStatistics() { AmbientTempStat.Clear(); AmbientPressureStat.Clear(); AmbientHumidityStat.Clear(); TempInStat.Clear(); TempOutStat.Clear(); TempDivStat.Clear(); PressureUpStat.Clear(); PressureDownStat.Clear(); } protected static void UpdateAllStatistics() { AmbientTempStat.Update(AmbientTemp); AmbientPressureStat.Update(AmbientPressure); AmbientHumidityStat.Update(AmbientHumidity); TempInStat.Update(TempIn); TempOutStat.Update(TempOut); TempDivStat.Update(TempDiv); PressureUpStat.Update(PressureUp); PressureDownStat.Update(PressureDown); } } }