diff --git a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs index 5d2449b17..c531e7af9 100644 --- a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs +++ b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs @@ -296,6 +296,13 @@ namespace TBF.BenchControl.Sequences { StateMachine.LoadTestParams(test); + if (BenchInfo != null && sensPath.RegisterReaders != null) + { + foreach (var rr in sensPath.RegisterReaders) + if (rr is WaterMeters.iPerl.WaterMeter) + (rr as WaterMeters.iPerl.WaterMeter).BenchName = BenchInfo.TestBenchId; + } + e = testMethodSequence.Execute(test); if (e.Contains(Event.ConfigurationError)) goto select_cycle_or_test; @@ -345,7 +352,14 @@ namespace TBF.BenchControl.Sequences if (testMethodSequence != null && testMethodSequence.CanTest(StateMachine.Procedure.MetersKind)) { StateMachine.LoadTestParams(test); - + + if (BenchInfo != null && sensPath.RegisterReaders != null) + { + foreach (var rr in sensPath.RegisterReaders) + if (rr is WaterMeters.iPerl.WaterMeter) + (rr as WaterMeters.iPerl.WaterMeter).BenchName = BenchInfo.TestBenchId; + } + e = testMethodSequence.Execute(test); if (e.Contains(Event.Error)) goto error; diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs index 3fb7c5c7f..821fa8145 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs @@ -255,14 +255,10 @@ namespace TBF.BenchControl.TestMethods.FlyingStartCollectionMethod while (!e.Contains(Event.MeasurementStarted)); - /// Reset iPerl volume measurement - //foreach (var rr in sensPath.RegisterReaders) - //{ - // if (rr is WaterMeters.iPerl.WaterMeter) - // { - // (rr as WaterMeters.iPerl.WaterMeter).Reset(); - // } - //} + foreach (var rr in sensPath.RegisterReaders) + { + if (rr is WaterMeters.iPerl.WaterMeter) (rr as WaterMeters.iPerl.WaterMeter).TestName = test.Name; + } /// Measurement loop - preparation diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/TestMethodCfg.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/TestMethodCfg.cs index 821be38dd..66926bbc1 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/TestMethodCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/TestMethodCfg.cs @@ -30,6 +30,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartCollectionMethod { Name = "FlyingStartCollection"; ParentName = string.Empty; + TestParams = new TestParams(); } public TestMethodCfg(IComponentFactory factory) diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/TestParams.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/TestParams.cs index 090a347b1..c7d887dea 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/TestParams.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/TestParams.cs @@ -82,7 +82,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartCollectionMethod test = dbEntity.Test; Evaluate = tmp.Evaluate; - } + Publish = tmp.Publish; + } catch { } diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs index 2de8aaf99..247d59205 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs @@ -54,7 +54,8 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication public string ToString(int i) { - return string.Format("Name={0}", Name); + return string.Format("Name={0}, Board#1=COM{1}, Board#2=COM{2}, Board#3=COM{3}, Board#4=COM{4}", + Name, RfidPortNrBoard1, RfidPortNrBoard2, RfidPortNrBoard3, RfidPortNrBoard4); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs index 64347fd4f..07fd4d2ba 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs @@ -490,9 +490,12 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication { int threadId = (threadData as Boxes.IntBox).Val; - rfidDataLogger.InfoFormat(""); /// Makes the log more readable when there is a lot of data - rfidDataLogger.WarnFormat("Activity = {0}", activity); - rfidDataLogger.InfoFormat(""); /// Makes the log more readable when there is a lot of data + if (threadId == 0) + { + rfidDataLogger.InfoFormat(""); /// Makes the log more readable when there is a lot of data + rfidDataLogger.WarnFormat("Activity = {0}", activity); + rfidDataLogger.InfoFormat(""); /// Makes the log more readable when there is a lot of data + } for (int group = 1; group <= lastGroup; group++) { @@ -560,8 +563,6 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// true on success static CommErr ReadConfiguration(WaterMeters.iPerl.WaterMeter wm, ref string resultStr) { - int boardNr = wm.MuxBoardNr - 51; - /// /// The activity is "Read configuration" (this enables the watermeter, resets error flag) /// or "Read configuration if enabled" (this keeps th error flag). @@ -581,7 +582,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication byte[] config = null; for (int j = 0; j < MaxCommRetries; j++) { - if (0 == ReadRequestPort(boardNr, MessageID.Configuration, 0, ConfigStruct.Length, out config, CommTimeout)) + if (0 == ReadRequestPort(wm.MuxBoardNr, MessageID.Configuration, 0, ConfigStruct.Length, out config, CommTimeout)) { error = CommErr.None; wm.ConfigStruct = ConfigStruct.FromByteArray(config); @@ -590,7 +591,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication } } - ClosePort(boardNr); /// Close RFID port + ClosePort(wm.MuxBoardNr); /// Close RFID port return error; } @@ -932,8 +933,9 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication (rdData != null) && (rdData.Length == 2) && (rdData[0] == q2CorrRFlow) && (rdData[1] == q2CorrRFlow)) { error = CommErr.None; - resultStr = string.Format("Q2 correction factors set: RightFlow = {0}, LeftFlow = {1}", - q2CorrRFlow, q2CorrRFlow); + resultStr = string.Format("Group={0}, Board={1}, Q2 correction factors set: RightFlow = {2}, LeftFlow = {3}", + wm.Group, wm.MuxBoardNr, q2CorrRFlow, q2CorrRFlow); + rfidDataLogger.Warn(resultStr); break; } } diff --git a/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs b/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs index 8b8407cfb..996a44b31 100644 --- a/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs +++ b/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs @@ -130,6 +130,8 @@ namespace TBF.BenchControl.WaterMeters.iPerl /// Q2 correction factor public double Q2CorrectionFactor() { + if (Math.Abs(LastTestResult.VolumeErrorPct) <= 0.5f) return 0; /// No Q2 correction if error < +/-0.5 % + double A = 16.0 / ScalingFactor(); /// Raw units per ml: DN15=16, DN20=8, DN25=4, DN32=2, DN40=1 const double B = 8.0; /// Raw units per minute, 8 const double C = B * 60.0; /// Raw units per hour, 480 @@ -140,6 +142,11 @@ namespace TBF.BenchControl.WaterMeters.iPerl return (-1) * (LastTestResult.VolumeErrorPct / G) * (LastTestResult.VolumeRef / LastTestResult.VolumeMeter); } + /// Name set by the test, to be used as a part og the opto-data log file name + public string TestName; + + /// Name set by the test, to be used as a part og the opto-data log file name + public string BenchName; /// /// Volume of water from the opto telegram @@ -331,8 +338,12 @@ namespace TBF.BenchControl.WaterMeters.iPerl { /// Reset opto data optoDataCount = 0; - optoDataLogFileName = (ConfigStruct != null) ? ConfigStruct.PCBNumber2String() : "Unknown PCBNumber"; - optoDataLogFileName += "_" + Name + "_" + Utils.ToMyString(DateTime.Now); + optoDataLogFileName = string.Format("{0}_{1}_{2}_{3}_{4}", + (ConfigStruct != null) ? ConfigStruct.PCBNumber2String() : "UnknownPcbNr", + Utils.ToMyString(DateTime.Now), + BenchName, + Name, + (TestName != null ? TestName : string.Empty)); sampleNr = 0; diff --git a/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeterCfg.cs b/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeterCfg.cs index a5272dc99..be29dfd11 100644 --- a/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeterCfg.cs +++ b/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeterCfg.cs @@ -52,7 +52,7 @@ namespace TBF.BenchControl.WaterMeters.iPerl public string ToString(int i) { - return string.Format("Name={0}, Type={1}, Opto=COM{2}, RFID=COM{3}, Group={4}", + return string.Format("Name={0}, Type={1}, Opto=COM{2}, MuxBoard#={3}, Group={4}", Name, MeterType, OptoComPortNr,