diff --git a/Config/Entities/Enums.cs b/Config/Entities/Enums.cs index b95707ef5..67b649e9e 100644 --- a/Config/Entities/Enums.cs +++ b/Config/Entities/Enums.cs @@ -580,9 +580,41 @@ namespace Config.Entities E29, E30, E31, + E32, + E33, + E34, + E35, + E36, + E37, + E38, + E39, + E40, + E41, + E42, + E43, + E44, + E45, + E46, + E47, + E48, + E49, + E50, + E51, + E52, + E53, + E54, + E55, + E56, + E57, + E58, + E59, + E60, + E61, + E62, + E63, } - public enum ErrorFlagMask + public enum ErrorFlagMask : long { E1 = (1 << (int)ErrorFlagShift.E1), E2 = (1 << (int)ErrorFlagShift.E2), @@ -615,5 +647,37 @@ namespace Config.Entities E29 = (1 << (int)ErrorFlagShift.E29), E30 = (1 << (int)ErrorFlagShift.E30), E31 = (1 << (int)ErrorFlagShift.E31), + E32 = (1 << (int)ErrorFlagShift.E32), + E33 = (1 << (int)ErrorFlagShift.E33), + E34 = (1 << (int)ErrorFlagShift.E34), + E35 = (1 << (int)ErrorFlagShift.E35), + E36 = (1 << (int)ErrorFlagShift.E36), + E37 = (1 << (int)ErrorFlagShift.E37), + E38 = (1 << (int)ErrorFlagShift.E38), + E39 = (1 << (int)ErrorFlagShift.E39), + E40 = (1 << (int)ErrorFlagShift.E40), + E41 = (1 << (int)ErrorFlagShift.E41), + E42 = (1 << (int)ErrorFlagShift.E42), + E43 = (1 << (int)ErrorFlagShift.E43), + E44 = (1 << (int)ErrorFlagShift.E44), + E45 = (1 << (int)ErrorFlagShift.E45), + E46 = (1 << (int)ErrorFlagShift.E46), + E47 = (1 << (int)ErrorFlagShift.E47), + E48 = (1 << (int)ErrorFlagShift.E48), + E49 = (1 << (int)ErrorFlagShift.E49), + E50 = (1 << (int)ErrorFlagShift.E50), + E51 = (1 << (int)ErrorFlagShift.E51), + E52 = (1 << (int)ErrorFlagShift.E52), + E53 = (1 << (int)ErrorFlagShift.E53), + E54 = (1 << (int)ErrorFlagShift.E54), + E55 = (1 << (int)ErrorFlagShift.E55), + E56 = (1 << (int)ErrorFlagShift.E56), + E57 = (1 << (int)ErrorFlagShift.E57), + E58 = (1 << (int)ErrorFlagShift.E58), + E59 = (1 << (int)ErrorFlagShift.E59), + E60 = (1 << (int)ErrorFlagShift.E60), + E61 = (1 << (int)ErrorFlagShift.E61), + E62 = (1 << (int)ErrorFlagShift.E62), + E63 = (1 << (int)ErrorFlagShift.E63), } } diff --git a/Config/Entities/PTest.cs b/Config/Entities/PTest.cs index 253468808..f519d2f45 100644 --- a/Config/Entities/PTest.cs +++ b/Config/Entities/PTest.cs @@ -15,47 +15,48 @@ namespace Config.Entities public virtual int Id { get; protected set; } public virtual int ItemNr { get; set; } public virtual string Name { get; set; } - public virtual float CoefQfrom { get; set; } /// Water flow low limit in [m3/h] - public virtual float CoefQto { get; set; } /// Water flow high limit in [m3/h] - public virtual float ErrLimLo { get; set; } /// in [%] usually < 0, in case of heat meters: 1=class1, 2=class2, 3=class3 - public virtual float ErrLimHi { get; set; } /// in [%] usually > 0, in case of heat meters: -Qn in m3/h - public virtual float TempLimLo { get; set; } /// Lower limit for the controlled temperature - public virtual float TempLimHi { get; set; } /// Upper limit for the controlled temperature - public virtual float PressLimLo { get; set; } /// [bar] min. water pressure - public virtual float PressLimHi { get; set; } /// [bar] max. water pressure + public virtual int Part { get; set; } /// Part=0 ... test of all WM-s /// Part>0 ... part of a set of tests with the same Name: subset of WM-s is given by MetersPath + public virtual double CoefQfrom { get; set; } /// Water flow low limit in [m3/h] + public virtual double CoefQto { get; set; } /// Water flow high limit in [m3/h] + public virtual double ErrLimLo { get; set; } /// in [%] usually < 0, in case of heat meters: 1=class1, 2=class2, 3=class3 + public virtual double ErrLimHi { get; set; } /// in [%] usually > 0, in case of heat meters: -Qn in m3/h + public virtual double TempLimLo { get; set; } /// Lower limit for the controlled temperature + public virtual double TempLimHi { get; set; } /// Upper limit for the controlled temperature + public virtual double PressLimLo { get; set; } /// [bar] min. water pressure + public virtual double PressLimHi { get; set; } /// [bar] max. water pressure - public virtual sbyte E1 { get; set; } /// 0=off, 1=info, 2=evaluate - public virtual sbyte E2 { get; set; } - public virtual sbyte E3 { get; set; } - public virtual sbyte E4 { get; set; } - public virtual sbyte E5 { get; set; } - public virtual sbyte E6 { get; set; } - public virtual sbyte E7 { get; set; } - public virtual sbyte E8 { get; set; } - public virtual sbyte E9 { get; set; } - public virtual sbyte E10 { get; set; } - public virtual sbyte E11 { get; set; } - public virtual sbyte E12 { get; set; } - public virtual sbyte E13 { get; set; } - public virtual sbyte E14 { get; set; } - public virtual sbyte E15 { get; set; } - public virtual sbyte E16 { get; set; } - public virtual sbyte E21 { get; set; } + public virtual sbyte E1 { get; set; } /// + public virtual sbyte E2 { get; set; } /// + public virtual sbyte E3 { get; set; } /// + public virtual sbyte E4 { get; set; } /// + public virtual sbyte E5 { get; set; } /// + public virtual sbyte E6 { get; set; } /// + public virtual sbyte E7 { get; set; } /// + public virtual sbyte E8 { get; set; } /// + public virtual sbyte E9 { get; set; } /// 0=off, 1=info, 2=evaluate + public virtual sbyte E10 { get; set; } /// + public virtual sbyte E11 { get; set; } /// + public virtual sbyte E12 { get; set; } /// + public virtual sbyte E13 { get; set; } /// + public virtual sbyte E14 { get; set; } /// + public virtual sbyte E15 { get; set; } /// + public virtual sbyte E16 { get; set; } /// + public virtual sbyte E21 { get; set; } /// - public virtual float Delta_Q_pct { get; set; } /// [%] max deviation from the mean flow - public virtual float Delta_T { get; set; } /// [°C] max. T_up or T_down deviation from the mean temperature - public virtual float Delta_Tup_Tdn { get; set; } /// [°C] max. difference abs(T_up - T_down) - public virtual float TestTime_min { get; set; } /// [s] - public virtual float TestTime_max { get; set; } /// [s] - public virtual float AmbTemp_min { get; set; } /// [°C] min. ambient temperature - public virtual float AmbTemp_max { get; set; } /// [°C] max. ambient temperature + public virtual double Delta_Q_pct { get; set; } /// [%] max deviation from the mean flow + public virtual double Delta_T { get; set; } /// [°C] max. T_up or T_down deviation from the mean temperature + public virtual double Delta_Tup_Tdn { get; set; } /// [°C] max. difference abs(T_up - T_down) + public virtual double TestTime_min { get; set; } /// [s] + public virtual double TestTime_max { get; set; } /// [s] + public virtual double AmbTemp_min { get; set; } /// [°C] min. ambient temperature + public virtual double AmbTemp_max { get; set; } /// [°C] max. ambient temperature - public virtual float Coef_E9 { get; set; } /// Coefficient used in E9, default 0.025 - public virtual float Coef_E10 { get; set; } /// Coefficient used in E10, default 0.04 - public virtual float Coef_E11 { get; set; } /// Coefficient used in E11, default 0.1 - public virtual float Coef_E12 { get; set; } /// Coefficient used in E12, default 1 - public virtual float Offset_E9 { get; set; } /// [s] default 0 (no offset) - public virtual float Offset_E12 { get; set; } /// [s] default 0 (no offset) + public virtual double Coef_E9 { get; set; } /// Coefficient used in E9, default 0.025 + public virtual double Coef_E10 { get; set; } /// Coefficient used in E10, default 0.04 + public virtual double Coef_E11 { get; set; } /// Coefficient used in E11, default 0.1 + public virtual double Coef_E12 { get; set; } /// Coefficient used in E12, default 1 + public virtual double Offset_E9 { get; set; } /// [s] default 0 (no offset) + public virtual double Offset_E12 { get; set; } /// [s] default 0 (no offset) public virtual Profile Profile { get; set; } @@ -66,14 +67,15 @@ namespace Config.Entities /// /// Default values /// - CoefQfrom = 0.9f; - CoefQto = 1.0f; - ErrLimLo = -2.0f; /// [%] lower error limit - ErrLimHi = 2.0f; /// [%] upper error limit - TempLimLo = 15.0f; - TempLimHi = 25.0f; - PressLimLo = 0; - PressLimHi = 16.0f; + Part = 0; + CoefQfrom = 1.0; + CoefQto = 1.1; + ErrLimLo = -2.0; /// [%] + ErrLimHi = 2.0; /// [%] + TempLimLo = 15.0; /// [°C] + TempLimHi = 25.0; /// [°C] + PressLimLo = 0; /// [bar] + PressLimHi = 16.0; /// [bar] E1 = 1; E2 = 1; @@ -93,20 +95,20 @@ namespace Config.Entities E16 = 1; E21 = 1; - Delta_Q_pct = 0; - Delta_T = 0; - Delta_Tup_Tdn = 0; - TestTime_min = 0; - TestTime_max = 0; - AmbTemp_min = 0; - AmbTemp_max = 0; - - Coef_E9 = 0; - Coef_E10 = 0; - Coef_E11 = 0; - Coef_E12 = 0; - Offset_E9 = 0; - Offset_E12 = 0; + Delta_Q_pct = 5.0; /// [%] + Delta_T = 10.0; /// [°C] + Delta_Tup_Tdn = 10.0; /// [°C] + TestTime_min = 0; /// [s] + TestTime_max = 99999; /// [s] + AmbTemp_min = 5.0; /// [°C] + AmbTemp_max = 95.0; /// [°C] + + Coef_E9 = 0.025; + Coef_E10 = 0.04; + Coef_E11 = 0.1; + Coef_E12 = 1.0; + Offset_E9 = 0; /// [s] + Offset_E12 = 0; /// [s] } public PTest(string name, int itemNr, Profile profile) @@ -122,6 +124,7 @@ namespace Config.Entities { PTest result = new PTest(Name, ItemNr, Profile); + result.Part = Part; result.CoefQfrom = CoefQfrom; result.CoefQto = CoefQto; result.ErrLimLo = ErrLimLo; @@ -172,6 +175,7 @@ namespace Config.Entities CultureInfo ci = CultureInfo.InvariantCulture; output.WriteLine(Name); + output.WriteLine(Part); output.WriteLine(CoefQfrom.ToString(ci)); output.WriteLine(CoefQto.ToString(ci)); output.WriteLine(ErrLimLo.ToString(ci)); @@ -227,29 +231,30 @@ namespace Config.Entities PTest tst = new PTest(); tst.Name = firstLine; - tst.CoefQfrom = float.Parse(input.ReadLine(), ci); - tst.CoefQto = float.Parse(input.ReadLine(), ci); - tst.ErrLimLo = float.Parse(input.ReadLine(), ci); - tst.ErrLimHi = float.Parse(input.ReadLine(), ci); - tst.TempLimLo = float.Parse(input.ReadLine(), ci); - tst.TempLimHi = float.Parse(input.ReadLine(), ci); + tst.Part = int.Parse(input.ReadLine()); + tst.CoefQfrom = double.Parse(input.ReadLine(), ci); + tst.CoefQto = double.Parse(input.ReadLine(), ci); + tst.ErrLimLo = double.Parse(input.ReadLine(), ci); + tst.ErrLimHi = double.Parse(input.ReadLine(), ci); + tst.TempLimLo = double.Parse(input.ReadLine(), ci); + tst.TempLimHi = double.Parse(input.ReadLine(), ci); /// TODO (E1 .. E21) - tst.Delta_Q_pct = float.Parse(input.ReadLine(), ci); - tst.Delta_T = float.Parse(input.ReadLine(), ci); - tst.Delta_Tup_Tdn = float.Parse(input.ReadLine(), ci); - tst.TestTime_min = float.Parse(input.ReadLine(), ci); - tst.TestTime_max = float.Parse(input.ReadLine(), ci); - tst.AmbTemp_min = float.Parse(input.ReadLine(), ci); - tst.AmbTemp_max = float.Parse(input.ReadLine(), ci); + tst.Delta_Q_pct = double.Parse(input.ReadLine(), ci); + tst.Delta_T = double.Parse(input.ReadLine(), ci); + tst.Delta_Tup_Tdn = double.Parse(input.ReadLine(), ci); + tst.TestTime_min = double.Parse(input.ReadLine(), ci); + tst.TestTime_max = double.Parse(input.ReadLine(), ci); + tst.AmbTemp_min = double.Parse(input.ReadLine(), ci); + tst.AmbTemp_max = double.Parse(input.ReadLine(), ci); - tst.Coef_E9 = float.Parse(input.ReadLine(), ci); - tst.Coef_E10 = float.Parse(input.ReadLine(), ci); - tst.Coef_E11 = float.Parse(input.ReadLine(), ci); - tst.Coef_E12 = float.Parse(input.ReadLine(), ci); - tst.Offset_E9 = float.Parse(input.ReadLine(), ci); - tst.Offset_E12 = float.Parse(input.ReadLine(), ci); + tst.Coef_E9 = double.Parse(input.ReadLine(), ci); + tst.Coef_E10 = double.Parse(input.ReadLine(), ci); + tst.Coef_E11 = double.Parse(input.ReadLine(), ci); + tst.Coef_E12 = double.Parse(input.ReadLine(), ci); + tst.Offset_E9 = double.Parse(input.ReadLine(), ci); + tst.Offset_E12 = double.Parse(input.ReadLine(), ci); tst.Profile = newProfile; return tst; @@ -266,6 +271,7 @@ namespace Config.Entities if (string.IsNullOrEmpty(firstLine)) return string.Format("Test {0} is missing in the file\r\n", Name); if (Name != firstLine) { diff.AppendFormat(fmt, "Name", Name, firstLine); }; + ln = inp.ReadLine(); if (ln != Part.ToString()) { diff.AppendFormat(fmt, "Part", Part.ToString(), ln); }; ln = inp.ReadLine(); if (ln != CoefQfrom.ToString(ci)) { diff.AppendFormat(fmt, "CoefQfrom", CoefQfrom.ToString(ci), ln); }; ln = inp.ReadLine(); if (ln != CoefQto.ToString(ci)) { diff.AppendFormat(fmt, "CoefQto", CoefQto.ToString(ci), ln); }; ln = inp.ReadLine(); if (ln != ErrLimLo.ToString(ci)) { diff.AppendFormat(fmt, "ErrLimLo", ErrLimLo.ToString(ci), ln); }; diff --git a/Config/Properties/AssemblyInfo.cs b/Config/Properties/AssemblyInfo.cs index 1f25e004a..d9676dc39 100644 --- a/Config/Properties/AssemblyInfo.cs +++ b/Config/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.24.1368.0")] -[assembly: AssemblyFileVersion("2.24.1368.0")] +[assembly: AssemblyVersion("2.24.1369.0")] +[assembly: AssemblyFileVersion("2.24.1369.0")] diff --git a/Results/Entities/MeterTestRslt.cs b/Results/Entities/MeterTestRslt.cs index 9a805c702..4131ca797 100644 --- a/Results/Entities/MeterTestRslt.cs +++ b/Results/Entities/MeterTestRslt.cs @@ -25,7 +25,8 @@ namespace Results.Entities /// Main result public virtual double Error { get; set; } /// [%] - public virtual int ErrorIndicators { get; set; } /// Not mapped to DB !!!, bit24=E25, bit25=E26, bit26=E27, bit27=E28 + public virtual long ErrorIndicators { get; set; } /// Not mapped to DB !!!, bit24=E25, bit25=E26, bit26=E27, bit27=E28 (error flags) + public virtual long InfoIndicators { get; set; } /// Not mapped to DB !!!, bit24=E25, bit25=E26, bit26=E27, bit27=E28 (info flags) public virtual double KorrErrQ { get; set; } /// [%] not mapped to results DB, saved to Oracle DB public virtual bool TestDone { get; set; } /// true = test was completed public virtual bool Passed { get; set; } /// true = test passed, water meter is OK diff --git a/Results/Entities/TestRslt.cs b/Results/Entities/TestRslt.cs index 4954397e4..db72be2ae 100644 --- a/Results/Entities/TestRslt.cs +++ b/Results/Entities/TestRslt.cs @@ -56,9 +56,9 @@ namespace Results.Entities public virtual float DivEnd90 { get; set; } /// [s] Diverter switch time when test starts at level 90 (e.g. 90%) (not mapped to DB) public virtual float DivEnd50 { get; set; } /// [s] Diverter switch time when test starts at level 50 (e.g. 50%) (not mapped to DB) public virtual float DivEnd10 { get; set; } /// [s] Diverter switch time when test starts at level 10 (e.g. 10%) (not mapped to DB) - - public virtual int ErrorFlags { get; set; } /// bitfield : bit0=E1, bit1=E2, bit2=E3, etc. - public virtual sbyte ErrorFlagsMd { get; set; } /// 0=off, 1=info, 2=on (evaluated in MeterTestRslt.Passed) + + public virtual long ErrorFlags { get; set; } /// bitfield : bit0=E1, bit1=E2, bit2=E3, etc. + public virtual long InfoFlags { get; set; } /// bitfield : bit0=E1, bit1=E2, bit2=E3, etc. /// Main results of heat meters public virtual double RefEnergy { get; set; } /// [J] Joul @@ -270,7 +270,7 @@ namespace Results.Entities DivEnd50 = src.DivEnd50; DivEnd90 = src.DivEnd90; ErrorFlags = src.ErrorFlags; - ErrorFlagsMd = src.ErrorFlagsMd; + InfoFlags = src.InfoFlags; RefEnergy = src.RefEnergy; AmbTempMean = src.AmbTempMean; AmbTempStart = src.AmbTempStart; @@ -334,12 +334,6 @@ namespace Results.Entities Custom10 = src.Custom10; } - /// Wrapper - public virtual Config.Entities.ErrorFlagsMode ErrorFlagsMode() - { - return (Config.Entities.ErrorFlagsMode)ErrorFlagsMd; - } - /// Wrapper public virtual string ErrorFlagsStr() { @@ -370,11 +364,11 @@ namespace Results.Entities public virtual string ToString(int i) { - return string.Format("TestRslt: Part={0} RepetitionNr={1} TestDone={2} Remark={3} StartTime={4} EndTime={5} FlowSetTime={6} TestTime={7} PulsesMaster={8} ConstMaster={9} MassStartRaw={10} MassStart={11} MassEndRaw={12} MassEnd={13} DensityIn={14} DensityOut={15} DensityDiv={16} Buoyancy={17} FlowMass={18} FlowVolume={19} VolumeCTV={20} VolumeMaster={21} ErrorMaster={22} DiverterStart={85} DiverterEnd={86} ErrorFlags={23} ErrorFlagsMd={24} AmbTempMean={25} AmbTempStart={26} AmbTempEnd={27} AmbTempMin={28} AmbTempMax={29} AmbPressMean={30} AmbPressStart={31} AmbPressEnd={32} AmbPressMin={33} AmbPressMax={34} AmbHumiMean={35} AmbHumiStart={36} AmbHumiEnd={37} AmbHumiMin={38} AmbHumiMax={39} PressUpMean={40} PressUpStart={41} PressUpEnd={42} PressUpMin={43} PressUpMax={44} PressDownMean={45} PressDownStart={46} PressDownEnd={47} PressDownMin={48} PressDownMax={49} PressDeltaMean={50} PressDeltaStart={51} PressDeltaEnd={52} PressDeltaMin={53} PressDeltaMax={54} TempUpMean={55} TempUpStart={56} TempUpEnd={57} TempUpMin={58} TempUpMax={59} TempDownMean={60} TempDownStart={61} TempDownEnd={62} TempDownMin={63} TempDownMax={64} TempDivMean={65} TempDivStart={66} TempDivEnd={67} TempDivMin={68} TempDivMax={69} FlowMean={70} FlowStart={71} FlowEnd={72} FlowMin={73} FlowMax={74} Custom1={75} Custom2={76} Custom3={77} Custom4={78} Custom5={79} Custom6={80} Custom7={81} Custom8={82} Custom9={83} Custom10={84}", + return string.Format("TestRslt: Part={0} RepetitionNr={1} TestDone={2} Remark={3} StartTime={4} EndTime={5} FlowSetTime={6} TestTime={7} PulsesMaster={8} ConstMaster={9} MassStartRaw={10} MassStart={11} MassEndRaw={12} MassEnd={13} DensityIn={14} DensityOut={15} DensityDiv={16} Buoyancy={17} FlowMass={18} FlowVolume={19} VolumeCTV={20} VolumeMaster={21} ErrorMaster={22} DiverterStart={85} DiverterEnd={86} ErrorFlags={23} InfoFlags={24} AmbTempMean={25} AmbTempStart={26} AmbTempEnd={27} AmbTempMin={28} AmbTempMax={29} AmbPressMean={30} AmbPressStart={31} AmbPressEnd={32} AmbPressMin={33} AmbPressMax={34} AmbHumiMean={35} AmbHumiStart={36} AmbHumiEnd={37} AmbHumiMin={38} AmbHumiMax={39} PressUpMean={40} PressUpStart={41} PressUpEnd={42} PressUpMin={43} PressUpMax={44} PressDownMean={45} PressDownStart={46} PressDownEnd={47} PressDownMin={48} PressDownMax={49} PressDeltaMean={50} PressDeltaStart={51} PressDeltaEnd={52} PressDeltaMin={53} PressDeltaMax={54} TempUpMean={55} TempUpStart={56} TempUpEnd={57} TempUpMin={58} TempUpMax={59} TempDownMean={60} TempDownStart={61} TempDownEnd={62} TempDownMin={63} TempDownMax={64} TempDivMean={65} TempDivStart={66} TempDivEnd={67} TempDivMin={68} TempDivMax={69} FlowMean={70} FlowStart={71} FlowEnd={72} FlowMin={73} FlowMax={74} Custom1={75} Custom2={76} Custom3={77} Custom4={78} Custom5={79} Custom6={80} Custom7={81} Custom8={82} Custom9={83} Custom10={84}", Part, RepetitionNr, TestDone, Remark, StartTime, EndTime, FlowSetTime, TestTime, PulsesMaster, ConstMaster, MassStartRaw, MassStart, MassEndRaw, MassEnd, DensityIn, DensityLine, DensityDiv, Buoyancy, FlowMass, FlowVolume, - VolumeCTV, VolumeMaster, ErrorMaster, ErrorFlags, ErrorFlagsMd, + VolumeCTV, VolumeMaster, ErrorMaster, ErrorFlags, InfoFlags, AmbTempMean, AmbTempStart, AmbTempEnd, AmbTempMin, AmbTempMax, AmbPressMean, AmbPressStart, AmbPressEnd, AmbPressMin, AmbPressMax, AmbHumiMean, AmbHumiStart, AmbHumiEnd, AmbHumiMin, AmbHumiMax, diff --git a/Results/Entities/WaterMeter.cs b/Results/Entities/WaterMeter.cs index a061b65f3..996d95440 100644 --- a/Results/Entities/WaterMeter.cs +++ b/Results/Entities/WaterMeter.cs @@ -51,7 +51,8 @@ namespace Results.Entities public virtual string EndStateAux { get; set; } /// End state of the auxiliary water meter public virtual double QRise { get; set; } /// [m3/h] detected Q_rise of a composed meter or 'sensitivity' of a single meter public virtual double QFall { get; set; } /// [m3/h] detected Q_fall of a composed meter - public virtual int ErrorFlags { get; set; } /// bitfield : bit14=E15, bit15=E16 + public virtual long ErrorFlags { get; set; } /// bitfield : bit14=E15, bit15=E16 + public virtual long InfoFlags { get; set; } /// bitfield : bit14=E15, bit15=E16 public virtual bool Passed { get; set; } public virtual int ResultCode { get; set; } public virtual string ArchivePath { get; set; } @@ -135,23 +136,19 @@ namespace Results.Entities public virtual MeterTestRslt LastMeterTestRslts() { return lastMeterTestRslts; } - public virtual int ErrorFlagsFromTests(out ErrorFlagsMode errorFlagsMode) + public virtual long ErrorFlagsFromTests() { - int errorFlags = 0; - ErrorFlagsMode eFlagsMode = 0; /// = ErrorFlagsMode.Off; + long errorFlags = 0; foreach (var mtr in MeterTestRslts) { if (mtr.Evaluate() && mtr.TestDone) errorFlags |= mtr.TestRslt.ErrorFlags; - if ((int)mtr.TestRslt.ErrorFlagsMode() > (int)eFlagsMode) eFlagsMode = mtr.TestRslt.ErrorFlagsMode(); } - errorFlagsMode = eFlagsMode; /// Maximum from all tests (=ErrorFlagsMode.On if at least one test is ErrorFlagsMode.On) return errorFlags; } - public virtual int ErrorFlagsFromTestsAndWM(out ErrorFlagsMode errorFlagsMode) + public virtual long ErrorFlagsFromTestsAndWM() { - int eFlagsFromTests = ErrorFlagsFromTests(out errorFlagsMode) | ErrorFlags; - return (errorFlagsMode != ErrorFlagsMode.Off) ? (eFlagsFromTests | ErrorFlags) : 0; + return ErrorFlagsFromTests() | ErrorFlags; } /// @@ -160,8 +157,7 @@ namespace Results.Entities /// ErrorFlags string public virtual string ErrorFlagsStr() { - ErrorFlagsMode errorFlagsMode; - string eFlags = Utils.ErrorFlagsStr(ErrorFlagsFromTestsAndWM(out errorFlagsMode)); + string eFlags = Utils.ErrorFlagsStr(ErrorFlagsFromTestsAndWM()); #if LANG_PL return string.IsNullOrEmpty(eFlags) ? "brak" : eFlags; #else @@ -171,8 +167,7 @@ namespace Results.Entities public virtual string PassedOrErrorFlagsStr() { - ErrorFlagsMode errorFlagsMode; - string eFlags = Utils.ErrorFlagsStr(ErrorFlagsFromTestsAndWM(out errorFlagsMode)); + string eFlags = Utils.ErrorFlagsStr(ErrorFlagsFromTestsAndWM()); return string.IsNullOrEmpty(eFlags) ? (WaterMeterData.Text4 + PassedColorStr(null)) : eFlags; } @@ -192,19 +187,14 @@ namespace Results.Entities } } - ErrorFlagsMode errorFlagsMode; - errFlgsStr.Append(Utils.ErrorFlagsStr(ErrorFlagsFromTestsAndWM(out errorFlagsMode))); + errFlgsStr.Append(Utils.ErrorFlagsStr(ErrorFlagsFromTestsAndWM())); return errFlgsStr.ToString(); } public virtual bool PassedFromTests() { - ErrorFlagsMode eFlagsMode; - int eFlags = ErrorFlagsFromTestsAndWM(out eFlagsMode); - - bool passed = true; - if (eFlagsMode == ErrorFlagsMode.On && eFlags != 0) passed = false; + bool passed = (ErrorFlagsFromTestsAndWM() == 0); foreach (var mtr in MeterTestRslts) { diff --git a/Results/Mappings/TestRsltMap.cs b/Results/Mappings/TestRsltMap.cs index 156ea3d85..641da5139 100644 --- a/Results/Mappings/TestRsltMap.cs +++ b/Results/Mappings/TestRsltMap.cs @@ -48,7 +48,7 @@ namespace Results.Mappings Map(x => x.DiverterStart); Map(x => x.DiverterEnd); Map(x => x.ErrorFlags); - Map(x => x.ErrorFlagsMd); + Map(x => x.InfoFlags); #if HEAT_METERS Map(x => x.RefEnergy); #endif diff --git a/Results/Mappings/WaterMeterMap.cs b/Results/Mappings/WaterMeterMap.cs index 1a7ec16e9..7116921a4 100644 --- a/Results/Mappings/WaterMeterMap.cs +++ b/Results/Mappings/WaterMeterMap.cs @@ -21,7 +21,8 @@ namespace Results.Mappings Map(x => x.QRise); Map(x => x.QFall); Map(x => x.ErrorFlags); - Map(x => x.Passed); + Map(x => x.InfoFlags); + Map(x => x.Passed); Map(x => x.ResultCode); Map(x => x.ArchivePath); Map(x => x.Remark) diff --git a/Results/Properties/AssemblyInfo.cs b/Results/Properties/AssemblyInfo.cs index e7dfe7180..045fabcb2 100644 --- a/Results/Properties/AssemblyInfo.cs +++ b/Results/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.24.1368.0")] -[assembly: AssemblyFileVersion("2.24.1368.0")] +[assembly: AssemblyVersion("2.24.1369.0")] +[assembly: AssemblyFileVersion("2.24.1369.0")] diff --git a/Results/Utils.cs b/Results/Utils.cs index b31beb0cc..47c0e1c97 100644 --- a/Results/Utils.cs +++ b/Results/Utils.cs @@ -61,12 +61,12 @@ namespace Results /// /// Input /// Output string - public static string ErrorFlagsStr(int errorFlags) + public static string ErrorFlagsStr(long errorFlags) { StringBuilder sb = new StringBuilder(); - for (int i = 0; i < 31; i++) + for (int i = 0; i < 63; i++) { - if ((errorFlags & (1 << i)) != 0) + if ((errorFlags & (1L << i)) != 0) { sb.Append("E"); sb.Append(i + 1); diff --git a/TBF/BenchControl/GenericDevices/IErrorFlags.cs b/TBF/BenchControl/GenericDevices/IErrorFlags.cs index 0ed46bf10..7c06dc180 100644 --- a/TBF/BenchControl/GenericDevices/IErrorFlags.cs +++ b/TBF/BenchControl/GenericDevices/IErrorFlags.cs @@ -10,8 +10,6 @@ namespace TBF.BenchControl.GenericDevices { public interface IErrorFlags : IComponent { - Config.Entities.ErrorFlagsMode Mode { get; } - /// /// Ger error flags for a test /// @@ -20,14 +18,16 @@ namespace TBF.BenchControl.GenericDevices /// true = start/stop valve was used (times apply) /// Diverter or valve switch time in s on test start /// Diverter or valve switch time in s on test end + /// Similar to error flags, contains only warnings /// Error flags - int GetErrorFlags(TestRslt testRslt, bool diverter, bool startStopValve, float switchTimeStart, float switchTimeEnd); + long GetErrorFlags(TestRslt testRslt, bool diverter, bool startStopValve, float switchTimeStart, float switchTimeEnd, out long infoFlags); /// /// Get water meter error flags (evaluated from all meter test results) /// /// Meter test results + /// Similar to error flags, contains only warnings /// Error flags - int GetWMtrErrorFlags(IList meterTestRslts); + long GetWMtrErrorFlags(IList meterTestRslts, out long infoFlags); } } diff --git a/TBF/BenchControl/TestMethods/Adjustment/AdjustmentSeq.cs b/TBF/BenchControl/TestMethods/Adjustment/AdjustmentSeq.cs index 1df738128..02cc6a286 100644 --- a/TBF/BenchControl/TestMethods/Adjustment/AdjustmentSeq.cs +++ b/TBF/BenchControl/TestMethods/Adjustment/AdjustmentSeq.cs @@ -424,8 +424,9 @@ namespace TBF.BenchControl.TestMethods.Adjustment tstRslt.DiverterStart = 0; tstRslt.DiverterEnd = 0; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, false, 0, 0) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, false, 0, 0, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; for (int i = 0; i < BatchRslts.WMPositionsCount; i++) { @@ -470,7 +471,9 @@ namespace TBF.BenchControl.TestMethods.Adjustment { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs b/TBF/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs index f9e1c6983..8f20c3ccb 100644 --- a/TBF/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs +++ b/TBF/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs @@ -705,8 +705,9 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection tstRslt.DiverterStart = switchTimeStart; tstRslt.DiverterEnd = switchTimeEnd; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, switchTimeStart, switchTimeEnd) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, switchTimeStart, switchTimeEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; for (int i = 0; i < BatchRslts.WMPositionsCount; i++) { @@ -755,7 +756,7 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection compoundMeterRslt.Error = Config.Formulas.ErrorFromVolumes(compoundMeterRslt.VolumeMeter, compoundMeterRslt.VolumeRef); compoundMeterRslt.Passed = (compoundMeterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (compoundMeterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); + && (tstRslt.ErrorFlags == 0); mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; mainMeterRslt.TestDone = auxMeterRslt.TestDone = compoundMeterRslt.TestDone = true; tstRslt.TestDone = true; @@ -782,7 +783,9 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/DiverterTest/DiverterTestSeq.cs b/TBF/BenchControl/TestMethods/DiverterTest/DiverterTestSeq.cs index cd85ca0e8..a957e6a16 100644 --- a/TBF/BenchControl/TestMethods/DiverterTest/DiverterTestSeq.cs +++ b/TBF/BenchControl/TestMethods/DiverterTest/DiverterTestSeq.cs @@ -732,9 +732,9 @@ namespace TBF.BenchControl.TestMethods.DiverterTest log.DebugFormat("Diverter switch time [s]: Start: {0}ms ({1} {2} {3}) End: {4}ms ({5} {6} {7})", (tstRslt.DiverterStart * 1000).ToString("F0"), tstRslt.DivStart10, tstRslt.DivStart50, tstRslt.DivStart90, (tstRslt.DiverterEnd * 1000).ToString("F0"), tstRslt.DivEnd90, tstRslt.DivEnd50, tstRslt.DivEnd10); - - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, tstRslt.DiverterStart, tstRslt.DiverterEnd) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, tstRslt.DiverterStart, tstRslt.DiverterEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; /// /// Single meters @@ -830,7 +830,7 @@ namespace TBF.BenchControl.TestMethods.DiverterTest meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); + && (tstRslt.ErrorFlags == 0); meterRslt.TestDone = true; tstRslt.TestDone = true; } @@ -852,7 +852,9 @@ namespace TBF.BenchControl.TestMethods.DiverterTest { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long _infoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out _infoFlags); + BatchRslts.WaterMeters[i].InfoFlags = infoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/Endurance/EnduranceSeq.cs b/TBF/BenchControl/TestMethods/Endurance/EnduranceSeq.cs index f28152b91..0bf65e2a7 100644 --- a/TBF/BenchControl/TestMethods/Endurance/EnduranceSeq.cs +++ b/TBF/BenchControl/TestMethods/Endurance/EnduranceSeq.cs @@ -383,8 +383,9 @@ namespace TBF.BenchControl.TestMethods.Endurance tstRslt.DiverterStart = 0; tstRslt.DiverterEnd = 0; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, false, 0, 0) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, false, 0, 0, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; /// /// Single meters @@ -432,8 +433,8 @@ namespace TBF.BenchControl.TestMethods.Endurance meterRslt.Error = Config.Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef); meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - meterRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + meterRslt.TestDone = true; tstRslt.TestDone = true; if (iPerl != null) @@ -467,7 +468,9 @@ namespace TBF.BenchControl.TestMethods.Endurance { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/FixedStart/FixedStartSeq.cs b/TBF/BenchControl/TestMethods/FixedStart/FixedStartSeq.cs index 582b33cc8..395a6aca9 100644 --- a/TBF/BenchControl/TestMethods/FixedStart/FixedStartSeq.cs +++ b/TBF/BenchControl/TestMethods/FixedStart/FixedStartSeq.cs @@ -830,8 +830,9 @@ namespace TBF.BenchControl.TestMethods.FixedStart tstRslt.DiverterStart = switchTimeStart; tstRslt.DiverterEnd = switchTimeEnd; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, true, switchTimeStart, switchTimeEnd) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, true, switchTimeStart, switchTimeEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; if (compound) { @@ -876,8 +877,8 @@ namespace TBF.BenchControl.TestMethods.FixedStart compoundMeterRslt.Error = Config.Formulas.ErrorFromVolumes(compoundMeterRslt.VolumeMeter, compoundMeterRslt.VolumeRef); compoundMeterRslt.Passed = (compoundMeterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (compoundMeterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; + && (tstRslt.ErrorFlags == 0); + mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; mainMeterRslt.TestDone = auxMeterRslt.TestDone = compoundMeterRslt.TestDone = true; tstRslt.TestDone = true; } @@ -929,7 +930,7 @@ namespace TBF.BenchControl.TestMethods.FixedStart volumeRslt.Passed = !heatMetersTestParams.EvaluateVolume || ((volumeRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (volumeRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) && - (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On)); + (tstRslt.ErrorFlags == 0)); volumeRslt.TestDone = true; tstRslt.TestDone = true; } @@ -947,8 +948,8 @@ namespace TBF.BenchControl.TestMethods.FixedStart energyRslt.Error = Config.Formulas.ErrorFromVolumes(energyRslt.VolumeMeter, energyRslt.VolumeRef); energyRslt.Passed = (energyRslt.Error >= heatMetersTestParams.ErrorLimitLo) && (energyRslt.Error <= heatMetersTestParams.ErrorLimitHi) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - energyRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + energyRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -979,8 +980,8 @@ namespace TBF.BenchControl.TestMethods.FixedStart meterRslt.Error = Config.Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef); meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - meterRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + meterRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -1003,7 +1004,9 @@ namespace TBF.BenchControl.TestMethods.FixedStart { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/FixedStartAdvanced/FixedStartAdvancedSeq.cs b/TBF/BenchControl/TestMethods/FixedStartAdvanced/FixedStartAdvancedSeq.cs index ddf925f27..8f5bc6d81 100644 --- a/TBF/BenchControl/TestMethods/FixedStartAdvanced/FixedStartAdvancedSeq.cs +++ b/TBF/BenchControl/TestMethods/FixedStartAdvanced/FixedStartAdvancedSeq.cs @@ -601,8 +601,9 @@ namespace TBF.BenchControl.TestMethods.FixedStartAdvanced tstRslt.DiverterStart = switchTimeStart; tstRslt.DiverterEnd = switchTimeEnd; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, true, switchTimeStart, switchTimeEnd) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, true, switchTimeStart, switchTimeEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; for (int i = 0; i < BatchRslts.WMPositionsCount; i++) { @@ -625,8 +626,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartAdvanced meterRslt.Error = Config.Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef); meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - meterRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + meterRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -648,7 +649,9 @@ namespace TBF.BenchControl.TestMethods.FixedStartAdvanced { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/FixedStartDeferredEval/FixedStartDeferredEvalSeq.cs b/TBF/BenchControl/TestMethods/FixedStartDeferredEval/FixedStartDeferredEvalSeq.cs index 4117d88fd..a13585b8f 100644 --- a/TBF/BenchControl/TestMethods/FixedStartDeferredEval/FixedStartDeferredEvalSeq.cs +++ b/TBF/BenchControl/TestMethods/FixedStartDeferredEval/FixedStartDeferredEvalSeq.cs @@ -781,8 +781,9 @@ namespace TBF.BenchControl.TestMethods.FixedStartDeferredEval tstRslt.DiverterStart = switchTimeStart; tstRslt.DiverterEnd = switchTimeEnd; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, true, switchTimeStart, switchTimeEnd) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, true, switchTimeStart, switchTimeEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; tstRslt.Components = Results.Entities.Components .UpdateList(BatchRslts.ComponentsList, @@ -919,8 +920,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartDeferredEval compoundMeterRslt.Error = Config.Formulas.ErrorFromVolumes(compoundMeterRslt.VolumeMeter, compoundMeterRslt.VolumeRef); compoundMeterRslt.Passed = (compoundMeterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (compoundMeterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; + && (tstRslt.ErrorFlags == 0); + mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; mainMeterRslt.TestDone = auxMeterRslt.TestDone = compoundMeterRslt.TestDone = true; } } @@ -952,8 +953,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartDeferredEval meterRslt.Error = Config.Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef); meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - meterRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + meterRslt.TestDone = true; } } tstRslt.TestDone = true; @@ -966,8 +967,10 @@ namespace TBF.BenchControl.TestMethods.FixedStartDeferredEval { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); - } + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; + } } } diff --git a/TBF/BenchControl/TestMethods/FixedStartMassCollDeferredEval/FixedStartMassCollDeferredEvalSeq.cs b/TBF/BenchControl/TestMethods/FixedStartMassCollDeferredEval/FixedStartMassCollDeferredEvalSeq.cs index 40b9b995a..c2b2d435e 100644 --- a/TBF/BenchControl/TestMethods/FixedStartMassCollDeferredEval/FixedStartMassCollDeferredEvalSeq.cs +++ b/TBF/BenchControl/TestMethods/FixedStartMassCollDeferredEval/FixedStartMassCollDeferredEvalSeq.cs @@ -962,8 +962,9 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollDeferredEval tstRslt.DiverterStart = switchTimeStart; tstRslt.DiverterEnd = switchTimeEnd; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, true, switchTimeStart, switchTimeEnd) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, true, switchTimeStart, switchTimeEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; tstRslt.Components = Results.Entities.Components .UpdateList(BatchRslts.ComponentsList, @@ -1100,8 +1101,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollDeferredEval compoundMeterRslt.Error = Config.Formulas.ErrorFromVolumes(compoundMeterRslt.VolumeMeter, compoundMeterRslt.VolumeRef); compoundMeterRslt.Passed = (compoundMeterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (compoundMeterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; + && (tstRslt.ErrorFlags == 0); + mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; mainMeterRslt.TestDone = auxMeterRslt.TestDone = compoundMeterRslt.TestDone = true; } } @@ -1133,8 +1134,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollDeferredEval meterRslt.Error = Config.Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef); meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - meterRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + meterRslt.TestDone = true; } } tstRslt.TestDone = true; @@ -1147,8 +1148,10 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollDeferredEval { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); - } + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; + } } } diff --git a/TBF/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs b/TBF/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs index 5f4feba34..d652e53b9 100644 --- a/TBF/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs +++ b/TBF/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs @@ -1009,8 +1009,9 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection tstRslt.DiverterStart = switchTimeStart; tstRslt.DiverterEnd = switchTimeEnd; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, true, switchTimeStart, switchTimeEnd) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, true, switchTimeStart, switchTimeEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; if (compound) { @@ -1055,8 +1056,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection compoundMeterRslt.Error = Config.Formulas.ErrorFromVolumes(compoundMeterRslt.VolumeMeter, compoundMeterRslt.VolumeRef); compoundMeterRslt.Passed = (compoundMeterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (compoundMeterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; + && (tstRslt.ErrorFlags == 0); + mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; mainMeterRslt.TestDone = auxMeterRslt.TestDone = compoundMeterRslt.TestDone = true; tstRslt.TestDone = true; } @@ -1108,7 +1109,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection volumeRslt.Passed = !heatMetersTestParams.EvaluateVolume || ((volumeRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (volumeRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) && - (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On)); + (tstRslt.ErrorFlags == 0)); volumeRslt.TestDone = true; tstRslt.TestDone = true; } @@ -1126,8 +1127,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection energyRslt.Error = Config.Formulas.ErrorFromVolumes(energyRslt.VolumeMeter, energyRslt.VolumeRef); energyRslt.Passed = (energyRslt.Error >= heatMetersTestParams.ErrorLimitLo) && (energyRslt.Error <= heatMetersTestParams.ErrorLimitHi) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - energyRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + energyRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -1158,8 +1159,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection meterRslt.Error = Config.Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef); meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - meterRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + meterRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -1182,7 +1183,9 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/FixedStartTankCollection/FixedStartTankCollectionSeq.cs b/TBF/BenchControl/TestMethods/FixedStartTankCollection/FixedStartTankCollectionSeq.cs index 860a95d1a..899dcabae 100644 --- a/TBF/BenchControl/TestMethods/FixedStartTankCollection/FixedStartTankCollectionSeq.cs +++ b/TBF/BenchControl/TestMethods/FixedStartTankCollection/FixedStartTankCollectionSeq.cs @@ -740,8 +740,9 @@ namespace TBF.BenchControl.TestMethods.FixedStartTankCollection tstRslt.DiverterStart = switchTimeStart; tstRslt.DiverterEnd = switchTimeEnd; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, true, switchTimeStart, switchTimeEnd) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, true, switchTimeStart, switchTimeEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; if (compoundTestParams != null) { @@ -786,8 +787,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartTankCollection compoundMeterRslt.Error = Config.Formulas.ErrorFromVolumes(compoundMeterRslt.VolumeMeter, compoundMeterRslt.VolumeRef); compoundMeterRslt.Passed = (compoundMeterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (compoundMeterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; + && (tstRslt.ErrorFlags == 0); + mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; mainMeterRslt.TestDone = auxMeterRslt.TestDone = compoundMeterRslt.TestDone = true; tstRslt.TestDone = true; } @@ -819,8 +820,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartTankCollection meterRslt.Error = Config.Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef); meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - meterRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + meterRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -843,7 +844,9 @@ namespace TBF.BenchControl.TestMethods.FixedStartTankCollection { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs b/TBF/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs index 25534ae47..7ad3bae06 100644 --- a/TBF/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs +++ b/TBF/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs @@ -493,8 +493,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStart tstRslt.DiverterStart = 0; tstRslt.DiverterEnd = 0; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, false, 0, 0) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, false, 0, 0, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; if (compoundTestParams != null) { @@ -549,7 +550,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStart volumeRslt.Passed = !heatMetersTestParams.EvaluateVolume || ((volumeRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (volumeRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) && - (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On)); + (tstRslt.ErrorFlags == 0)); volumeRslt.TestDone = true; tstRslt.TestDone = true; } @@ -568,8 +569,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStart energyRslt.Error = Config.Formulas.ErrorFromVolumes(energyRslt.VolumeMeter, energyRslt.VolumeRef); energyRslt.Passed = (energyRslt.Error >= heatMetersTestParams.ErrorLimitLo) && (energyRslt.Error <= heatMetersTestParams.ErrorLimitHi) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - energyRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + energyRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -665,7 +666,6 @@ namespace TBF.BenchControl.TestMethods.FlyingStart } meterRslt.Error = Config.Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef); - #if TEST_MODE if (!BatchRslts.IsProduction() && ((test.Name.ToLower().Contains("q2") && Math.Abs(meterRslt.Error) > 2.0 && Math.Abs(meterRslt.Error) <= 4.0) || @@ -690,11 +690,10 @@ namespace TBF.BenchControl.TestMethods.FlyingStart meterRslt.KorrErrQ = 0; } #endif - meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - meterRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + meterRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -717,7 +716,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStart { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/FlyingStartFirstRepetWithMassCollSeq.cs b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/FlyingStartFirstRepetWithMassCollSeq.cs index e6dafb5fa..1348312c5 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/FlyingStartFirstRepetWithMassCollSeq.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/FlyingStartFirstRepetWithMassCollSeq.cs @@ -783,10 +783,10 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl log.DebugFormat("Diverter switch time [s]: Start: {0}ms ({1} {2} {3}) End: {4}ms ({5} {6} {7})", (tstRslt.DiverterStart * 1000).ToString("F0"), tstRslt.DivStart10, tstRslt.DivStart50, tstRslt.DivStart90, (tstRslt.DiverterEnd * 1000).ToString("F0"), tstRslt.DivEnd90, tstRslt.DivEnd50, tstRslt.DivEnd10); - - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, tstRslt.DiverterStart, tstRslt.DiverterEnd) : 0; - } + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, tstRslt.DiverterStart, tstRslt.DiverterEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; + } else { Results.Entities.TestRslt tstResRepet1 = BatchRslts.GetTestRslt(Results.Utils.GetTestName(test.Name, test.Repeats, 1), test.Part); @@ -812,9 +812,10 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl tstRslt.DivEnd50 = 0; tstRslt.DivEnd10 = 0; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, false, 0, 0) : 0; - } /// [kg/h] + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, false, 0, 0, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; + } /// [kg/h] tstRslt.FlowMean = (float)RefFlowStat.Average; tstRslt.FlowStart = (float)RefFlowStat.First; @@ -875,8 +876,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl compoundMeterRslt.Error = Config.Formulas.ErrorFromVolumes(compoundMeterRslt.VolumeMeter, compoundMeterRslt.VolumeRef); compoundMeterRslt.Passed = (compoundMeterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (compoundMeterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; + && (tstRslt.ErrorFlags == 0); + mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; mainMeterRslt.TestDone = auxMeterRslt.TestDone = compoundMeterRslt.TestDone = true; tstRslt.TestDone = true; } @@ -928,7 +929,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl volumeRslt.Passed = !heatMetersTestParams.EvaluateVolume || ((volumeRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (volumeRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) && - (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On)); + (tstRslt.ErrorFlags == 0)); volumeRslt.TestDone = true; tstRslt.TestDone = true; } @@ -947,8 +948,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl energyRslt.Error = Config.Formulas.ErrorFromVolumes(energyRslt.VolumeMeter, energyRslt.VolumeRef); energyRslt.Passed = (energyRslt.Error >= heatMetersTestParams.ErrorLimitLo) && (energyRslt.Error <= heatMetersTestParams.ErrorLimitHi) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - energyRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + energyRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -1024,8 +1025,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl meterRslt.Error = Config.Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef); meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - meterRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + meterRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -1048,7 +1049,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/FlyingStartMassCollComparative/FlyingStartMassCollComparativeSeq.cs b/TBF/BenchControl/TestMethods/FlyingStartMassCollComparative/FlyingStartMassCollComparativeSeq.cs index c731d969f..80fa9b632 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartMassCollComparative/FlyingStartMassCollComparativeSeq.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartMassCollComparative/FlyingStartMassCollComparativeSeq.cs @@ -903,9 +903,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollComparative log.DebugFormat("Diverter switch time [s]: Start: {0}ms ({1} {2} {3}) End: {4}ms ({5} {6} {7})", (tstRslt.DiverterStart * 1000).ToString("F0"), tstRslt.DivStart10, tstRslt.DivStart50, tstRslt.DivStart90, (tstRslt.DiverterEnd * 1000).ToString("F0"), tstRslt.DivEnd90, tstRslt.DivEnd50, tstRslt.DivEnd10); - - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, tstRslt.DiverterStart, tstRslt.DiverterEnd) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, tstRslt.DiverterStart, tstRslt.DiverterEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; if (compoundTestParams != null) { @@ -959,8 +959,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollComparative compoundMeterRslt.Error = Config.Formulas.ErrorFromVolumes(compoundMeterRslt.VolumeMeter, compoundMeterRslt.VolumeRef); compoundMeterRslt.Passed = (compoundMeterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (compoundMeterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; + && (tstRslt.ErrorFlags == 0); + mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; mainMeterRslt.TestDone = auxMeterRslt.TestDone = compoundMeterRslt.TestDone = true; tstRslt.TestDone = true; } @@ -1012,7 +1012,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollComparative volumeRslt.Passed = !heatMetersTestParams.EvaluateVolume || ((volumeRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (volumeRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) && - (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On)); + (tstRslt.ErrorFlags == 0)); volumeRslt.TestDone = true; tstRslt.TestDone = true; } @@ -1031,7 +1031,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollComparative energyRslt.Error = Config.Formulas.ErrorFromVolumes(energyRslt.VolumeMeter, energyRslt.VolumeRef); energyRslt.Passed = (energyRslt.Error >= heatMetersTestParams.ErrorLimitLo) && (energyRslt.Error <= heatMetersTestParams.ErrorLimitHi) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); + && (tstRslt.ErrorFlags == 0); energyRslt.TestDone = true; tstRslt.TestDone = true; } @@ -1158,8 +1158,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollComparative meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - meterRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + meterRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -1181,7 +1181,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollComparative { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/FlyingStartMassCollProlongedSeq.cs b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/FlyingStartMassCollProlongedSeq.cs index 397a6553e..e60c66411 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/FlyingStartMassCollProlongedSeq.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/FlyingStartMassCollProlongedSeq.cs @@ -785,9 +785,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged log.DebugFormat("Diverter switch time [s]: Start: {0}ms ({1} {2} {3}) End: {4}ms ({5} {6} {7})", (tstRslt.DiverterStart * 1000).ToString("F0"), tstRslt.DivStart10, tstRslt.DivStart50, tstRslt.DivStart90, (tstRslt.DiverterEnd * 1000).ToString("F0"), tstRslt.DivEnd90, tstRslt.DivEnd50, tstRslt.DivEnd10); - - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, tstRslt.DiverterStart, tstRslt.DiverterEnd) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, tstRslt.DiverterStart, tstRslt.DiverterEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; if (compoundTestParams != null) { @@ -841,8 +841,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged compoundMeterRslt.Error = Formulas.ErrorFromVolumes(compoundMeterRslt.VolumeMeter, compoundMeterRslt.VolumeRef); compoundMeterRslt.Passed = (compoundMeterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (compoundMeterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; + && (tstRslt.ErrorFlags == 0); + mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; mainMeterRslt.TestDone = auxMeterRslt.TestDone = compoundMeterRslt.TestDone = true; tstRslt.TestDone = true; } @@ -894,7 +894,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged volumeRslt.Passed = !heatMetersTestParams.EvaluateVolume || ((volumeRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (volumeRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) && - (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On)); + (tstRslt.ErrorFlags == 0)); volumeRslt.TestDone = true; tstRslt.TestDone = true; } @@ -913,7 +913,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged energyRslt.Error = Formulas.ErrorFromVolumes(energyRslt.VolumeMeter, energyRslt.VolumeRef); energyRslt.Passed = (energyRslt.Error >= heatMetersTestParams.ErrorLimitLo) && (energyRslt.Error <= heatMetersTestParams.ErrorLimitHi) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); + && (tstRslt.ErrorFlags == 0); energyRslt.TestDone = true; tstRslt.TestDone = true; } @@ -991,8 +991,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged meterRslt.Error = Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef); meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - meterRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + meterRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -1014,7 +1014,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/FlyingStartMassCollection/FlyingStartMassCollectionSeq.cs b/TBF/BenchControl/TestMethods/FlyingStartMassCollection/FlyingStartMassCollectionSeq.cs index 71cdfc4f9..79b7b472f 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartMassCollection/FlyingStartMassCollectionSeq.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartMassCollection/FlyingStartMassCollectionSeq.cs @@ -773,9 +773,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection log.DebugFormat("Diverter switch time [s]: Start: {0}ms ({1} {2} {3}) End: {4}ms ({5} {6} {7})", (tstRslt.DiverterStart * 1000).ToString("F0"), tstRslt.DivStart10, tstRslt.DivStart50, tstRslt.DivStart90, (tstRslt.DiverterEnd * 1000).ToString("F0"), tstRslt.DivEnd90, tstRslt.DivEnd50, tstRslt.DivEnd10); - - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, tstRslt.DiverterStart, tstRslt.DiverterEnd) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, tstRslt.DiverterStart, tstRslt.DiverterEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; if (compoundTestParams != null) { @@ -829,8 +829,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection compoundMeterRslt.Error = Config.Formulas.ErrorFromVolumes(compoundMeterRslt.VolumeMeter, compoundMeterRslt.VolumeRef); compoundMeterRslt.Passed = (compoundMeterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (compoundMeterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; + && (tstRslt.ErrorFlags == 0); + mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; mainMeterRslt.TestDone = auxMeterRslt.TestDone = compoundMeterRslt.TestDone = true; tstRslt.TestDone = true; } @@ -882,7 +882,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection volumeRslt.Passed = !heatMetersTestParams.EvaluateVolume || ((volumeRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (volumeRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) && - (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On)); + (tstRslt.ErrorFlags == 0)); volumeRslt.TestDone = true; tstRslt.TestDone = true; } @@ -901,7 +901,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection energyRslt.Error = Config.Formulas.ErrorFromVolumes(energyRslt.VolumeMeter, energyRslt.VolumeRef); energyRslt.Passed = (energyRslt.Error >= heatMetersTestParams.ErrorLimitLo) && (energyRslt.Error <= heatMetersTestParams.ErrorLimitHi) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); + && (tstRslt.ErrorFlags == 0); energyRslt.TestDone = true; tstRslt.TestDone = true; } @@ -1028,8 +1028,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - meterRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + meterRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -1051,7 +1051,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/FlyingStartTankCollection/FlyingStartTankCollectionSeq.cs b/TBF/BenchControl/TestMethods/FlyingStartTankCollection/FlyingStartTankCollectionSeq.cs index fc120c2e5..35d6247c9 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartTankCollection/FlyingStartTankCollectionSeq.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartTankCollection/FlyingStartTankCollectionSeq.cs @@ -533,9 +533,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStartTankCollection log.DebugFormat("Diverter switch time [s]: Start: {0}ms ({1} {2} {3}) End: {4}ms ({5} {6} {7})", (tstRslt.DiverterStart * 1000).ToString("F0"), tstRslt.DivStart10, tstRslt.DivStart50, tstRslt.DivStart90, (tstRslt.DiverterEnd * 1000).ToString("F0"), tstRslt.DivEnd90, tstRslt.DivEnd50, tstRslt.DivEnd10); - - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, tstRslt.DiverterStart, tstRslt.DiverterEnd) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, tstRslt.DiverterStart, tstRslt.DiverterEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; if (compoundTestParams != null) { @@ -589,8 +589,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartTankCollection compoundMeterRslt.Error = Config.Formulas.ErrorFromVolumes(compoundMeterRslt.VolumeMeter, compoundMeterRslt.VolumeRef); compoundMeterRslt.Passed = (compoundMeterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (compoundMeterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; + && (tstRslt.ErrorFlags == 0); + mainMeterRslt.Passed = auxMeterRslt.Passed = compoundMeterRslt.Passed; mainMeterRslt.TestDone = auxMeterRslt.TestDone = compoundMeterRslt.TestDone = true; tstRslt.TestDone = true; } @@ -717,8 +717,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartTankCollection meterRslt.Passed = (meterRslt.Error >= test.GetErrLimLo(tstRslt.VolumeCTV, tstRslt.TestTime) + test.Uncertainty) && (meterRslt.Error <= test.GetErrLimHi(tstRslt.VolumeCTV, tstRslt.TestTime) - test.Uncertainty) - && (tstRslt.ErrorFlags == 0 || tstRslt.ErrorFlagsMode() != Config.Entities.ErrorFlagsMode.On); - meterRslt.TestDone = true; + && (tstRslt.ErrorFlags == 0); + meterRslt.TestDone = true; tstRslt.TestDone = true; } } @@ -740,7 +740,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStartTankCollection { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/LeakTest/LeakTestSeq.cs b/TBF/BenchControl/TestMethods/LeakTest/LeakTestSeq.cs index c65350484..2fadfdff7 100644 --- a/TBF/BenchControl/TestMethods/LeakTest/LeakTestSeq.cs +++ b/TBF/BenchControl/TestMethods/LeakTest/LeakTestSeq.cs @@ -378,9 +378,8 @@ namespace TBF.BenchControl.TestMethods.LeakTest tstRslt.ConstMasterRaw = 0; /// Convert the flow to [m3/h] tstRslt.ConstMaster = 0; /// Convert the flow to [m3/h] tstRslt.ErrorMaster = 0; - - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; tstRslt.ErrorFlags = 0; + tstRslt.InfoFlags = 0; bool pressureDropPassed = (testParams.MaxPressureDrop == 0) ? true : ((testParams.MaxPressureDrop > 0) ? (PressDownStat.First - PressDownStat.Last < testParams.MaxPressureDrop) diff --git a/TBF/BenchControl/TestMethods/PMaxTest/PMaxTestSeq.cs b/TBF/BenchControl/TestMethods/PMaxTest/PMaxTestSeq.cs index 202d9640b..fbf09c0c1 100644 --- a/TBF/BenchControl/TestMethods/PMaxTest/PMaxTestSeq.cs +++ b/TBF/BenchControl/TestMethods/PMaxTest/PMaxTestSeq.cs @@ -213,9 +213,8 @@ namespace TBF.BenchControl.TestMethods.PMaxTest tstRslt.ConstMasterRaw = 0; /// Convert the flow to [m3/h] tstRslt.ConstMaster = 0; /// Convert the flow to [m3/h] tstRslt.ErrorMaster = 0; - - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; tstRslt.ErrorFlags = 0; + tstRslt.InfoFlags = 0; for (int i = 0; i < BatchRslts.WMPositionsCount; i++) { diff --git a/TBF/BenchControl/TestMethods/PulsesTest/PulsesTestSeq.cs b/TBF/BenchControl/TestMethods/PulsesTest/PulsesTestSeq.cs index 54bdb2b55..69c285913 100644 --- a/TBF/BenchControl/TestMethods/PulsesTest/PulsesTestSeq.cs +++ b/TBF/BenchControl/TestMethods/PulsesTest/PulsesTestSeq.cs @@ -420,8 +420,9 @@ namespace TBF.BenchControl.TestMethods.PulsesTest tstRslt.DiverterStart = 0; tstRslt.DiverterEnd = 0; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, false, 0, 0) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, false, 0, 0, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; for (int i = 0; i < BatchRslts.WMPositionsCount; i++) { @@ -465,7 +466,9 @@ namespace TBF.BenchControl.TestMethods.PulsesTest { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/PulsesTestManual/PulsesTestManualSeq.cs b/TBF/BenchControl/TestMethods/PulsesTestManual/PulsesTestManualSeq.cs index f4887ea5a..d9c0bbaf6 100644 --- a/TBF/BenchControl/TestMethods/PulsesTestManual/PulsesTestManualSeq.cs +++ b/TBF/BenchControl/TestMethods/PulsesTestManual/PulsesTestManualSeq.cs @@ -422,8 +422,9 @@ namespace TBF.BenchControl.TestMethods.PulsesTestManual tstRslt.DiverterStart = 0; tstRslt.DiverterEnd = 0; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, false, 0, 0) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, false, false, 0, 0, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; for (int i = 0; i < BatchRslts.WMPositionsCount; i++) { @@ -467,7 +468,9 @@ namespace TBF.BenchControl.TestMethods.PulsesTestManual { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/TestMethods/SensitivityTest/SensitivityTestSeq.cs b/TBF/BenchControl/TestMethods/SensitivityTest/SensitivityTestSeq.cs index 8de87feaa..5b06a92fb 100644 --- a/TBF/BenchControl/TestMethods/SensitivityTest/SensitivityTestSeq.cs +++ b/TBF/BenchControl/TestMethods/SensitivityTest/SensitivityTestSeq.cs @@ -491,8 +491,9 @@ namespace TBF.BenchControl.TestMethods.SensitivityTest tstRslt.DiverterStart = switchTimeStart; tstRslt.DiverterEnd = switchTimeEnd; - tstRslt.ErrorFlagsMd = (ErrorFlagsComp != null) ? (sbyte)ErrorFlagsComp.Mode : (sbyte)0; - tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, switchTimeStart, switchTimeEnd) : 0; + long infoFlags = 0; + tstRslt.ErrorFlags = (ErrorFlagsComp != null) ? ErrorFlagsComp.GetErrorFlags(tstRslt, true, false, switchTimeStart, switchTimeEnd, out infoFlags) : 0; + tstRslt.InfoFlags = infoFlags; for (int i = 0; i < BatchRslts.WMPositionsCount; i++) { @@ -528,7 +529,9 @@ namespace TBF.BenchControl.TestMethods.SensitivityTest { if (BatchRslts.WaterMeters[i] != null) { - BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts); + long wmInfoFlags; + BatchRslts.WaterMeters[i].ErrorFlags = ErrorFlagsComp.GetWMtrErrorFlags(BatchRslts.WaterMeters[i].MeterTestRslts, out wmInfoFlags); + BatchRslts.WaterMeters[i].InfoFlags = wmInfoFlags; } } } diff --git a/TBF/BenchControl/Various/ErrorFlags/Errors.cs b/TBF/BenchControl/Various/ErrorFlags/Errors.cs index 7b0f6c19b..33522da9a 100644 --- a/TBF/BenchControl/Various/ErrorFlags/Errors.cs +++ b/TBF/BenchControl/Various/ErrorFlags/Errors.cs @@ -22,7 +22,6 @@ namespace TBF.BenchControl.Various.ErrorFlags /// Cfg /// readonly ErrorsCfg errorsCfg; - public Config.Entities.ErrorFlagsMode Mode { get { return errorsCfg.TestParams.Mode; } } /// /// Ger error flags for a test @@ -33,13 +32,8 @@ namespace TBF.BenchControl.Various.ErrorFlags /// Diverter or valve switch time in s on test start /// Diverter or valve switch time in s on test end /// Error flags - public int GetErrorFlags(TestRslt testRslt, bool diverter, bool startStopValve, float switchTimeStart, float switchTimeEnd) + public long GetErrorFlags(TestRslt testRslt, bool diverter, bool startStopValve, float switchTimeStart, float switchTimeEnd, out long infoFlags) { - if (Mode == Config.Entities.ErrorFlagsMode.Off) - { - return 0; /// return 0 when Mode == ErrorFlagsMode.Off - } - /// Any E# is 'true' on error, 'false' when OK /// Average flow @@ -103,29 +97,46 @@ namespace TBF.BenchControl.Various.ErrorFlags bool E21 = ProcessData.RefFlowStat.Min < testRslt.Qfrom() || ProcessData.RefFlowStat.Max > testRslt.Qto(); - int ErrorFlags = 0; - if (errorsCfg.TestParams.E1 && E1) ErrorFlags |= (int)ErrorFlagMask.E1; - if (errorsCfg.TestParams.E2 && E2) ErrorFlags |= (int)ErrorFlagMask.E2; - if (errorsCfg.TestParams.E3 && E3) ErrorFlags |= (int)ErrorFlagMask.E3; - if (errorsCfg.TestParams.E4 && E4) ErrorFlags |= (int)ErrorFlagMask.E4; - if (errorsCfg.TestParams.E5 && E5) ErrorFlags |= (int)ErrorFlagMask.E5; - if (errorsCfg.TestParams.E6 && E6) ErrorFlags |= (int)ErrorFlagMask.E6; - if (errorsCfg.TestParams.E7 && E7) ErrorFlags |= (int)ErrorFlagMask.E7; - if (errorsCfg.TestParams.E8 && E8) ErrorFlags |= (int)ErrorFlagMask.E8; - if (errorsCfg.TestParams.E9 && E9) ErrorFlags |= (int)ErrorFlagMask.E9; - if (errorsCfg.TestParams.E10 && E10) ErrorFlags |= (int)ErrorFlagMask.E10; - if (errorsCfg.TestParams.E11 && E11) ErrorFlags |= (int)ErrorFlagMask.E11; - if (errorsCfg.TestParams.E12 && E12) ErrorFlags |= (int)ErrorFlagMask.E12; - if (errorsCfg.TestParams.E13 && E13) ErrorFlags |= (int)ErrorFlagMask.E13; - if (errorsCfg.TestParams.E14 && E14) ErrorFlags |= (int)ErrorFlagMask.E14; - //E15 - //E16 - //E17 - //E18 - //E19 - //E20 - if (errorsCfg.TestParams.E21 && E21) ErrorFlags |= (int)ErrorFlagMask.E21; - return ErrorFlags; + long errorFlags = 0; + sbyte on = (sbyte)ErrorFlagsMode.On; + if (E1 && (errorsCfg.TestParams.E1 == on)) errorFlags |= (int)ErrorFlagMask.E1; + if (E2 && (errorsCfg.TestParams.E2 == on)) errorFlags |= (int)ErrorFlagMask.E2; + if (E3 && (errorsCfg.TestParams.E3 == on)) errorFlags |= (int)ErrorFlagMask.E3; + if (E4 && (errorsCfg.TestParams.E4 == on)) errorFlags |= (int)ErrorFlagMask.E4; + if (E5 && (errorsCfg.TestParams.E5 == on)) errorFlags |= (int)ErrorFlagMask.E5; + if (E6 && (errorsCfg.TestParams.E6 == on)) errorFlags |= (int)ErrorFlagMask.E6; + if (E7 && (errorsCfg.TestParams.E7 == on)) errorFlags |= (int)ErrorFlagMask.E7; + if (E8 && (errorsCfg.TestParams.E8 == on)) errorFlags |= (int)ErrorFlagMask.E8; + if (E9 && (errorsCfg.TestParams.E9 == on)) errorFlags |= (int)ErrorFlagMask.E9; + if (E10 && (errorsCfg.TestParams.E10 == on)) errorFlags |= (int)ErrorFlagMask.E10; + if (E11 && (errorsCfg.TestParams.E11 == on)) errorFlags |= (int)ErrorFlagMask.E11; + if (E12 && (errorsCfg.TestParams.E12 == on)) errorFlags |= (int)ErrorFlagMask.E12; + if (E13 && (errorsCfg.TestParams.E13 == on)) errorFlags |= (int)ErrorFlagMask.E13; + if (E14 && (errorsCfg.TestParams.E14 == on)) errorFlags |= (int)ErrorFlagMask.E14; + /// E15, E16, E17, E18, E19, E20 skipped + if (E21 && (errorsCfg.TestParams.E21 == on)) errorFlags |= (int)ErrorFlagMask.E21; + + long _infoFlags = 0; + sbyte info = (sbyte)ErrorFlagsMode.Info; + if (E1 && (errorsCfg.TestParams.E1 == info)) _infoFlags |= (int)ErrorFlagMask.E1; + if (E2 && (errorsCfg.TestParams.E2 == info)) _infoFlags |= (int)ErrorFlagMask.E2; + if (E3 && (errorsCfg.TestParams.E3 == info)) _infoFlags |= (int)ErrorFlagMask.E3; + if (E4 && (errorsCfg.TestParams.E4 == info)) _infoFlags |= (int)ErrorFlagMask.E4; + if (E5 && (errorsCfg.TestParams.E5 == info)) _infoFlags |= (int)ErrorFlagMask.E5; + if (E6 && (errorsCfg.TestParams.E6 == info)) _infoFlags |= (int)ErrorFlagMask.E6; + if (E7 && (errorsCfg.TestParams.E7 == info)) _infoFlags |= (int)ErrorFlagMask.E7; + if (E8 && (errorsCfg.TestParams.E8 == info)) _infoFlags |= (int)ErrorFlagMask.E8; + if (E9 && (errorsCfg.TestParams.E9 == info)) _infoFlags |= (int)ErrorFlagMask.E9; + if (E10 && (errorsCfg.TestParams.E10 == info)) _infoFlags |= (int)ErrorFlagMask.E10; + if (E11 && (errorsCfg.TestParams.E11 == info)) _infoFlags |= (int)ErrorFlagMask.E11; + if (E12 && (errorsCfg.TestParams.E12 == info)) _infoFlags |= (int)ErrorFlagMask.E12; + if (E13 && (errorsCfg.TestParams.E13 == info)) _infoFlags |= (int)ErrorFlagMask.E13; + if (E14 && (errorsCfg.TestParams.E14 == info)) _infoFlags |= (int)ErrorFlagMask.E14; + /// E15, E16, E17, E18, E19, E20 skipped + if (E21 && (errorsCfg.TestParams.E21 == info)) _infoFlags |= (int)ErrorFlagMask.E21; + + infoFlags = _infoFlags; + return errorFlags; } @@ -148,9 +159,10 @@ namespace TBF.BenchControl.Various.ErrorFlags /// /// Meter test results /// Error flags - public int GetWMtrErrorFlags(IList meterTestRslts) + public long GetWMtrErrorFlags(IList meterTestRslts, out long infoIndicators) { - int errorIndicators = 0; + long _infoIndicators = 0; + long errorIndicators = 0; MeterTestRslt mtrQ3 = GetMtrTstRsltFromNames(meterTestRslts, errorsCfg.Q3Names); MeterTestRslt mtrQ2 = GetMtrTstRsltFromNames(meterTestRslts, errorsCfg.Q2Names); @@ -160,17 +172,11 @@ namespace TBF.BenchControl.Various.ErrorFlags { /// No error indicator; } - else if ((mtrQ3.Error > mtrQ3.ErrLimHi() / 2) && - (mtrQ2.Error > mtrQ2.ErrLimHi() / 2) && - (mtrQ1.Error > mtrQ1.ErrLimHi() / 2)) + else if (((mtrQ3.Error > mtrQ3.ErrLimHi() / 2) && (mtrQ2.Error > mtrQ2.ErrLimHi() / 2) && (mtrQ1.Error > mtrQ1.ErrLimHi() / 2)) || + ((mtrQ3.Error < mtrQ3.ErrLimLo() / 2) && (mtrQ2.Error < mtrQ2.ErrLimLo() / 2) && (mtrQ1.Error < mtrQ1.ErrLimLo() / 2))) { - errorIndicators |= (int)ErrorFlagMask.E15; /// Set E15 - } - else if ((mtrQ3.Error < mtrQ3.ErrLimLo() / 2) && - (mtrQ2.Error < mtrQ2.ErrLimLo() / 2) && - (mtrQ1.Error < mtrQ1.ErrLimLo() / 2)) - { - errorIndicators |= (int)ErrorFlagMask.E15; /// Set E15 + if (errorsCfg.TestParams.E15 == (sbyte)ErrorFlagsMode.Info) _infoIndicators |= (long)ErrorFlagMask.E15; /// Set E15 + if (errorsCfg.TestParams.E15 == (sbyte)ErrorFlagsMode.On) errorIndicators |= (long)ErrorFlagMask.E15; /// Set E15 } foreach (var mtr in meterTestRslts) @@ -178,6 +184,7 @@ namespace TBF.BenchControl.Various.ErrorFlags errorIndicators |= mtr.ErrorIndicators; /// Set any error flag from mtr.ErrorIndicators (iPerl) } + infoIndicators = _infoIndicators; return errorIndicators; } diff --git a/TBF/BenchControl/Various/ErrorFlags/TestParams.cs b/TBF/BenchControl/Various/ErrorFlags/TestParams.cs index 0c8d7674e..96cdc1bbf 100644 --- a/TBF/BenchControl/Various/ErrorFlags/TestParams.cs +++ b/TBF/BenchControl/Various/ErrorFlags/TestParams.cs @@ -14,41 +14,40 @@ namespace TBF.BenchControl.Various.ErrorFlags public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; public override XmlSerializer GetSerializer() { return Serializer; } - public ErrorFlagsMode Mode; /// 0 = Off, 1 = Info (show only), 2 = On (show and evaluate) - public bool E1; - public bool E2; - public bool E3; - public bool E4; - public bool E5; - public bool E6; - public bool E7; - public bool E8; - public bool E9; - public bool E10; - public bool E11; - public bool E12; - public bool E13; - public bool E14; - public bool E15; - public bool E16; - public bool E21; + public sbyte E1; /// + public sbyte E2; /// + public sbyte E3; /// + public sbyte E4; /// + public sbyte E5; /// + public sbyte E6; /// + public sbyte E7; /// + public sbyte E8; /// + public sbyte E9; /// 0=off, 1=info, 2=evaluate + public sbyte E10; /// + public sbyte E11; /// + public sbyte E12; /// + public sbyte E13; /// + public sbyte E14; /// + public sbyte E15; /// + public sbyte E16; /// + public sbyte E21; /// - public float Delta_Q_pct; /// [%] max deviation from the mean flow - public float Delta_T; /// [°C] max. T_up or T_down deviation from the mean temperature - public float Delta_Tup_Tdn; /// [°C] max. difference abs(T_up - T_down) - public float TestTime_min; /// [s] - public float TestTime_max; /// [s] - public float AmbTemp_min; /// [°C] min. ambient temperature - public float AmbTemp_max; /// [°C] max. ambient temperature - public float Pressure_min; /// [bar] min. water pressure - public float Pressure_max; /// [bar] max. water pressure - - public float Coef_E9; /// Coefficient used in E9, default 0.025 - public float Coef_E10; /// Coefficient used in E10, default 0.04 - public float Coef_E11; /// Coefficient used in E11, default 0.1 - public float Coef_E12; /// Coefficient used in E12, default 1 - public float Offset_E9; /// [s] default 0 (no offset) - public float Offset_E12; /// [s] default 0 (no offset) + public double Delta_Q_pct; /// [%] max deviation from the mean flow + public double Delta_T; /// [°C] max. T_up or T_down deviation from the mean temperature + public double Delta_Tup_Tdn; /// [°C] max. difference abs(T_up - T_down) + public double TestTime_min; /// [s] + public double TestTime_max; /// [s] + public double AmbTemp_min; /// [°C] min. ambient temperature + public double AmbTemp_max; /// [°C] max. ambient temperature + public double Pressure_min; /// [bar] min. water pressure + public double Pressure_max; /// [bar] max. water pressure + + public double Coef_E9; /// Coefficient used in E9, default 0.025 + public double Coef_E10; /// Coefficient used in E10, default 0.04 + public double Coef_E11; /// Coefficient used in E11, default 0.1 + public double Coef_E12; /// Coefficient used in E12, default 1 + public double Offset_E9; /// [s] default 0 (no offset) + public double Offset_E12; /// [s] default 0 (no offset) #if IPERL public bool E25; /// MaxProefindex verification @@ -59,70 +58,68 @@ namespace TBF.BenchControl.Various.ErrorFlags public override void InitializeAll() { - Mode = ErrorFlagsMode.Info; #if IPERL - E1 = true; - E2 = false; - E3 = true; - E4 = false; - E5 = false; - E6 = false; - E7 = false; - E8 = false; - E9 = false; - E10 = false; - E11 = false; - E12 = false; - E13 = false; - E14 = false; - E15 = false; - E16 = false; - E21 = true; + E1 = (sbyte)ErrorFlagsMode.Info; + E2 = (sbyte)ErrorFlagsMode.Off; + E3 = (sbyte)ErrorFlagsMode.Info; + E4 = (sbyte)ErrorFlagsMode.Off; + E5 = (sbyte)ErrorFlagsMode.Off; + E6 = (sbyte)ErrorFlagsMode.Off; + E7 = (sbyte)ErrorFlagsMode.Off; + E8 = (sbyte)ErrorFlagsMode.Off; + E9 = (sbyte)ErrorFlagsMode.Off; + E10 = (sbyte)ErrorFlagsMode.Off; + E11 = (sbyte)ErrorFlagsMode.Off; + E12 = (sbyte)ErrorFlagsMode.Off; + E13 = (sbyte)ErrorFlagsMode.Off; + E14 = (sbyte)ErrorFlagsMode.Off; + E15 = (sbyte)ErrorFlagsMode.Off; + E16 = (sbyte)ErrorFlagsMode.Off; + E21 = (sbyte)ErrorFlagsMode.Info; - E25 = true; /// MaxPruefindex verification - E26 = false; /// Q2 factors verification (saved from production == current) - E27 = false; /// Direction verification - E28 = true; /// Previous workflow step verification + E25 = (sbyte)ErrorFlagsMode.Info; /// MaxPruefindex verification + E26 = (sbyte)ErrorFlagsMode.Off; /// Q2 factors verification (saved from production == current) + E27 = (sbyte)ErrorFlagsMode.Off; /// Direction verification + E28 = (sbyte)ErrorFlagsMode.Info; /// Previous workflow step verification #else - E1 = true; - E2 = true; - E3 = true; - E4 = true; - E5 = true; - E6 = true; - E7 = true; - E8 = true; - E9 = true; - E10 = true; - E11 = true; - E12 = true; - E13 = true; - E14 = true; - E15 = true; - E16 = true; - E21 = true; + E1 = (sbyte)ErrorFlagsMode.Info; + E2 = (sbyte)ErrorFlagsMode.Info; + E3 = (sbyte)ErrorFlagsMode.Info; + E4 = (sbyte)ErrorFlagsMode.Info; + E5 = (sbyte)ErrorFlagsMode.Info; + E6 = (sbyte)ErrorFlagsMode.Info; + E7 = (sbyte)ErrorFlagsMode.Info; + E8 = (sbyte)ErrorFlagsMode.Info; + E9 = (sbyte)ErrorFlagsMode.Info; + E10 = (sbyte)ErrorFlagsMode.Info; + E11 = (sbyte)ErrorFlagsMode.Info; + E12 = (sbyte)ErrorFlagsMode.Info; + E13 = (sbyte)ErrorFlagsMode.Info; + E14 = (sbyte)ErrorFlagsMode.Info; + E15 = (sbyte)ErrorFlagsMode.Info; + E16 = (sbyte)ErrorFlagsMode.Info; + E21 = (sbyte)ErrorFlagsMode.Info; #endif - Delta_Q_pct = 5.0f; /// [%] - Delta_T = 10.0f; /// [°C] - Delta_Tup_Tdn = 10.0f; /// [°C] + Delta_Q_pct = 5.0; /// [%] + Delta_T = 10.0; /// [°C] + Delta_Tup_Tdn = 10.0; /// [°C] TestTime_min = 0; /// [s] TestTime_max = 99999; /// [s] - AmbTemp_min = 5.0f; /// [°C] - AmbTemp_max = 95.0f; /// [°C] + AmbTemp_min = 5.0; /// [°C] + AmbTemp_max = 95.0; /// [°C] Pressure_min = 0; /// [bar] - Pressure_max = 16.0f; /// [bar] + Pressure_max = 16.0; /// [bar] - Coef_E9 = 0.025f; - Coef_E10 = 0.04f; - Coef_E11 = 0.1f; - Coef_E12 = 1.0f; + Coef_E9 = 0.025; + Coef_E10 = 0.04; + Coef_E11 = 0.1; + Coef_E12 = 1.0; Offset_E9 = 0; /// [s] Offset_E12 = 0; /// [s] } string[] paramNames = new string[] { - Strings.Mode, "E1", "E2", "E3", @@ -171,106 +168,96 @@ namespace TBF.BenchControl.Various.ErrorFlags { switch (i) { - case 0: return Mode.ToDescription(); - case 1: return (E1 ? Strings.yes : Strings.no); - case 2: return (E2 ? Strings.yes : Strings.no); - case 3: return (E3 ? Strings.yes : Strings.no); - case 4: return (E4 ? Strings.yes : Strings.no); - case 5: return (E5 ? Strings.yes : Strings.no); - case 6: return (E6 ? Strings.yes : Strings.no); - case 7: return (E7 ? Strings.yes : Strings.no); - case 8: return (E8 ? Strings.yes : Strings.no); - case 9: return (E9 ? Strings.yes : Strings.no); - case 10: return (E10 ? Strings.yes : Strings.no); - case 11: return (E11 ? Strings.yes : Strings.no); - case 12: return (E12 ? Strings.yes : Strings.no); - case 13: return (E13 ? Strings.yes : Strings.no); - case 14: return (E14 ? Strings.yes : Strings.no); - case 15: return (E15 ? Strings.yes : Strings.no); - case 16: return (E16 ? Strings.yes : Strings.no); - case 17: return (E21 ? Strings.yes : Strings.no); + case 0: return ((ErrorFlagsMode)E1).ToDescription(); + case 1: return ((ErrorFlagsMode)E2).ToDescription(); + case 2: return ((ErrorFlagsMode)E3).ToDescription(); + case 3: return ((ErrorFlagsMode)E4).ToDescription(); + case 4: return ((ErrorFlagsMode)E5).ToDescription(); + case 5: return ((ErrorFlagsMode)E6).ToDescription(); + case 6: return ((ErrorFlagsMode)E7).ToDescription(); + case 7: return ((ErrorFlagsMode)E8).ToDescription(); + case 8: return ((ErrorFlagsMode)E9).ToDescription(); + case 9: return ((ErrorFlagsMode)E10).ToDescription(); + case 10: return ((ErrorFlagsMode)E11).ToDescription(); + case 11: return ((ErrorFlagsMode)E12).ToDescription(); + case 12: return ((ErrorFlagsMode)E13).ToDescription(); + case 13: return ((ErrorFlagsMode)E14).ToDescription(); + case 14: return ((ErrorFlagsMode)E15).ToDescription(); + case 15: return ((ErrorFlagsMode)E16).ToDescription(); + case 16: return ((ErrorFlagsMode)E21).ToDescription(); - case 18: return Delta_Q_pct.ToString(); - case 19: return Delta_T.ToString(); - case 20: return Delta_Tup_Tdn.ToString(); - case 21: return TestTime_min.ToString(); - case 22: return TestTime_max.ToString(); - case 23: return AmbTemp_min.ToString(); - case 24: return AmbTemp_max.ToString(); - case 25: return Pressure_min.ToString(); - case 26: return Pressure_max.ToString(); - case 27: return Coef_E9.ToString(); - case 28: return Coef_E10.ToString(); - case 29: return Coef_E11.ToString(); - case 30: return Coef_E12.ToString(); - case 31: return Offset_E9.ToString(); - case 32: return Offset_E12.ToString(); + case 17: return Delta_Q_pct.ToString(); + case 18: return Delta_T.ToString(); + case 19: return Delta_Tup_Tdn.ToString(); + case 20: return TestTime_min.ToString(); + case 21: return TestTime_max.ToString(); + case 22: return AmbTemp_min.ToString(); + case 23: return AmbTemp_max.ToString(); + case 24: return Pressure_min.ToString(); + case 25: return Pressure_max.ToString(); + case 26: return Coef_E9.ToString(); + case 27: return Coef_E10.ToString(); + case 28: return Coef_E11.ToString(); + case 29: return Coef_E12.ToString(); + case 30: return Offset_E9.ToString(); + case 31: return Offset_E12.ToString(); #if IPERL - case 33: return (E25 ? Strings.yes : Strings.no); - case 34: return (E26 ? Strings.yes : Strings.no); - case 35: return (E27 ? Strings.yes : Strings.no); - case 36: return (E28 ? Strings.yes : Strings.no); + case 32: return (E25 ? Strings.yes : Strings.no); + case 33: return (E26 ? Strings.yes : Strings.no); + case 34: return (E27 ? Strings.yes : Strings.no); + case 35: return (E28 ? Strings.yes : Strings.no); #endif default: return string.Empty; } } /// Retrieves parameters from UI controls - public CfgUpdateFlags UpdateParam(int i, string strValue) + public CfgUpdateFlags UpdateParam(int i, string sVal) { switch (i) { - case 0: - for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) - { - if (m.ToDescription() == strValue) - { - Mode = m; - return CfgUpdateFlags.None; - } - } - return CfgUpdateFlags.None; - case 1: E1 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 2: E2 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 3: E3 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 4: E4 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 5: E5 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 6: E6 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 7: E7 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 8: E8 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 9: E9 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 10: E10 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 11: E11 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 12: E12 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 13: E13 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 14: E14 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 15: E15 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 16: E16 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 17: E21 = (strValue == Strings.yes); return CfgUpdateFlags.None; + case 0: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E1 = (sbyte)m; break; }; break; + case 1: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E2 = (sbyte)m; break; }; break; + case 2: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E3 = (sbyte)m; break; }; break; + case 3: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E4 = (sbyte)m; break; }; break; + case 4: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E5 = (sbyte)m; break; }; break; + case 5: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E6 = (sbyte)m; break; }; break; + case 6: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E7 = (sbyte)m; break; }; break; + case 7: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E8 = (sbyte)m; break; }; break; + case 8: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E9 = (sbyte)m; break; }; break; + case 9: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E10 = (sbyte)m; break; }; break; + case 10: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E11 = (sbyte)m; break; }; break; + case 11: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E12 = (sbyte)m; break; }; break; + case 12: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E13 = (sbyte)m; break; }; break; + case 13: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E14 = (sbyte)m; break; }; break; + case 14: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E15 = (sbyte)m; break; }; break; + case 15: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E16 = (sbyte)m; break; }; break; + case 16: for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) if (m.ToDescription() == sVal) { E21 = (sbyte)m; break; }; break; - case 18: Delta_Q_pct = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 19: Delta_T = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 20: Delta_Tup_Tdn = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 21: TestTime_min = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 22: TestTime_max = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 23: AmbTemp_min = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 24: AmbTemp_max = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 25: Pressure_min = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 26: Pressure_max = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 27: Coef_E9 = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 28: Coef_E10 = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 29: Coef_E11 = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 30: Coef_E12 = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 31: Offset_E9 = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; - case 32: Offset_E12 = Utils.ParseUFloat(strValue); return CfgUpdateFlags.None; + case 17: Delta_Q_pct = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 18: Delta_T = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 19: Delta_Tup_Tdn = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 20: TestTime_min = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 21: TestTime_max = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 22: AmbTemp_min = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 23: AmbTemp_max = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 24: Pressure_min = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 25: Pressure_max = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 26: Coef_E9 = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 27: Coef_E10 = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 28: Coef_E11 = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 29: Coef_E12 = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 30: Offset_E9 = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; + case 31: Offset_E12 = Utils.ParseUDouble(sVal); return CfgUpdateFlags.None; #if IPERL - case 33: E25 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 34: E26 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 35: E27 = (strValue == Strings.yes); return CfgUpdateFlags.None; - case 36: E28 = (strValue == Strings.yes); return CfgUpdateFlags.None; + case 32: E25 = (strValue == Strings.yes); return CfgUpdateFlags.None; + case 33: E26 = (strValue == Strings.yes); return CfgUpdateFlags.None; + case 34: E27 = (strValue == Strings.yes); return CfgUpdateFlags.None; + case 35: E28 = (strValue == Strings.yes); return CfgUpdateFlags.None; #endif - default: return CfgUpdateFlags.None; } + + return CfgUpdateFlags.None; } /// Verifies whether strings in UI controls represent valid parameters @@ -278,16 +265,10 @@ namespace TBF.BenchControl.Various.ErrorFlags { message = string.Empty; - float fdummy; + double dummy; switch (i) { case 0: - for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) - { - if (m.ToDescription() == strValue) return true; - } - break; - case 1: case 2: case 3: @@ -304,14 +285,17 @@ namespace TBF.BenchControl.Various.ErrorFlags case 14: case 15: case 16: - case 17: + case 32: case 33: case 34: case 35: - case 36: - if (strValue == Strings.yes || strValue == Strings.no) return true; + for (ErrorFlagsMode m = 0; m < ErrorFlagsMode.Count; m++) + { + if (m.ToDescription() == strValue) return true; + } break; + case 17: case 18: case 19: case 20: @@ -326,8 +310,7 @@ namespace TBF.BenchControl.Various.ErrorFlags case 29: case 30: case 31: - case 32: - if (Utils.TryParseUFloat(strValue, out fdummy)) return true; + if (Utils.TryParseUDouble(strValue, out dummy)) return true; break; default: @@ -341,7 +324,6 @@ namespace TBF.BenchControl.Various.ErrorFlags void CopyContentTo(TestParams prms) { - prms.Mode = this.Mode; prms.E1 = this.E1; prms.E2 = this.E2; prms.E3 = this.E3;