From 442ac6969fa4d3c6988f83673e42b23aa7d15642 Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Fri, 4 Aug 2017 17:45:40 +0200 Subject: [PATCH] iPerlCommunication modifications : cfg.seMuxBoards parameter used in the worker thread, MuxBoardNr cannot be 0 anymore, should be 1..4, ver. 2.15.637 --- .../iPerlCommunicationForm.cs | 344 +++++++++--------- .../iPerlCommunication/iPerlHead/IperlHead.cs | 2 +- .../iPerlHead/IperlHeadCfg.cs | 12 +- .../iPerlHead/IperlHeadCfgCtrl.cs | 19 +- .../iPerlHead/IperlHeadCfgCtrl.designer.cs | 77 +++- TestBenchFramework/Properties/AssemblyInfo.cs | 4 +- 6 files changed, 240 insertions(+), 218 deletions(-) diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs index 9bce383bd..189e904fb 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs @@ -34,6 +34,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication WrongIPerlType, CalibFactorOoRange, MissingTest, + RFPowerRecordMissing, } @@ -72,62 +73,67 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// /// Wrapper function with safe interface and unsafe body /// - /// 0..3 - /// Com port number + /// 0..3 + /// Water meter (iPerlHead) object /// Value returned by openPort(...) - public static unsafe int OpenPort(IperlHead iperlHead) + public static unsafe int OpenPort(int threadID, IperlHead iperlHead) { if (iperlHead.DebugLevel != DebugMode.Normal) return 0; /// No function in debug mode - if (iperlHead.RfidComPortNr > 0) + int rfidPortNr; + if (cfg.UseMuxBoards) { - return openPort1(iperlHead.RfidComPortNr); + switch (iperlHead.MuxBoardNrOrGroup14) + { + default: + case 1: rfidPortNr = cfg.RfidPortNrBoard1; break; + case 2: rfidPortNr = cfg.RfidPortNrBoard2; break; + case 3: rfidPortNr = cfg.RfidPortNrBoard3; break; + case 4: rfidPortNr = cfg.RfidPortNrBoard4; break; + } } else { - switch (iperlHead.MuxBoardNr) - { - default: - case 1: return openPort1(cfg.RfidPortNrBoard1); - case 2: return openPort2(cfg.RfidPortNrBoard2); - case 3: return openPort3(cfg.RfidPortNrBoard3); - case 4: return openPort4(cfg.RfidPortNrBoard4); - } + rfidPortNr = iperlHead.RfidComPortNr; + } + + switch (threadID) + { + default: + case 0: return openPort1(rfidPortNr); + case 1: return openPort2(rfidPortNr); + case 2: return openPort3(rfidPortNr); + case 3: return openPort4(rfidPortNr); } } /// /// Wrapper function with safe interface and unsafe body /// - /// 0..3 - /// Com port number + /// 0..3 + /// Water meter (iPerlHead) object /// Value returned by openPort(...) - public static unsafe int ClosePort(IperlHead iperlHead) + public static unsafe int ClosePort(int threadID, IperlHead iperlHead) { if (iperlHead.DebugLevel != DebugMode.Normal) return 0; /// No function in debug mode - if (iperlHead.RfidComPortNr > 0) + switch (threadID) { - return closePort1(); - } - else - { - switch (iperlHead.MuxBoardNr) - { - default: - case 1: return closePort1(); - case 2: return closePort2(); - case 3: return closePort3(); - case 4: return closePort4(); - } + default: + case 0: return closePort1(); + case 1: return closePort2(); + case 2: return closePort3(); + case 3: return closePort4(); } } /// /// Wrapper function with safe interface and unsafe body /// + /// 0..3 + /// Water meter (iPerlHead) object /// Value returned by readRequestPort(...) - public static unsafe int ReadRequestPort(IperlHead iperlHead, MessageID messageID, int offset, int lenght, out byte[] buffer, int timeout) + public static unsafe int ReadRequestPort(int threadID, IperlHead iperlHead, MessageID messageID, int offset, int lenght, out byte[] buffer, int timeout) { buffer = new byte[lenght]; @@ -140,20 +146,13 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication { int retv; - if (iperlHead.RfidComPortNr > 0) + switch (threadID) { - retv = readRequestPort1(messageID, offset, lenght, pBuf, timeout); - } - else - { - switch (iperlHead.MuxBoardNr) - { - default: - case 1: retv = readRequestPort1(messageID, offset, lenght, pBuf, timeout); break; - case 2: retv = readRequestPort2(messageID, offset, lenght, pBuf, timeout); break; - case 3: retv = readRequestPort3(messageID, offset, lenght, pBuf, timeout); break; - case 4: retv = readRequestPort4(messageID, offset, lenght, pBuf, timeout); break; - } + default: + case 0: retv = readRequestPort1(messageID, offset, lenght, pBuf, timeout); break; + case 1: retv = readRequestPort2(messageID, offset, lenght, pBuf, timeout); break; + case 2: retv = readRequestPort3(messageID, offset, lenght, pBuf, timeout); break; + case 3: retv = readRequestPort4(messageID, offset, lenght, pBuf, timeout); break; } for (int i = 0; i < lenght; i++) buffer[i] = buf[i]; @@ -178,8 +177,10 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// /// Wrapper function with safe interface adn unsafe body /// + /// 0..3 + /// Water meter (iPerlHead) object /// Value returned by writeRequestPort(...) - public static unsafe int WriteRequestPort(IperlHead iperlHead, MessageID messageID, int offset, int lenght, byte[] buffer, int timeout) + public static unsafe int WriteRequestPort(int threadID, IperlHead iperlHead, MessageID messageID, int offset, int lenght, byte[] buffer, int timeout) { if (iperlHead.DebugLevel != DebugMode.Normal) return 0; @@ -187,20 +188,13 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication { int retv; - if (iperlHead.RfidComPortNr > 0) + switch (threadID) { - retv = writeRequestPort1(messageID, offset, lenght, pBuf, timeout); - } - else - { - switch (iperlHead.MuxBoardNr) - { - default: - case 1: retv = writeRequestPort1(messageID, offset, lenght, pBuf, timeout); break; - case 2: retv = writeRequestPort2(messageID, offset, lenght, pBuf, timeout); break; - case 3: retv = writeRequestPort3(messageID, offset, lenght, pBuf, timeout); break; - case 4: retv = writeRequestPort4(messageID, offset, lenght, pBuf, timeout); break; - } + default: + case 0: retv = writeRequestPort1(messageID, offset, lenght, pBuf, timeout); break; + case 1: retv = writeRequestPort2(messageID, offset, lenght, pBuf, timeout); break; + case 2: retv = writeRequestPort3(messageID, offset, lenght, pBuf, timeout); break; + case 3: retv = writeRequestPort4(messageID, offset, lenght, pBuf, timeout); break; } Thread.Sleep(250); @@ -282,7 +276,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication static int completedCommCount; /// Number of completed communication steps static IList workerThreads; - static IList rfidPortNrs; + static IList muxBrdOrGroup14Nrs; static bool stopWorkerThreads; /// form -> worker thread @@ -333,11 +327,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication wmTextBox46, wmTextBox47, wmTextBox48, }; - /// Initialize lists - iperlHeads = new List(); - waterMeterPositions = new List(); - - formCompleted = false; + formCompleted = false; startTime = DateTime.Now; startTimeSec = StateMachine.Time; @@ -418,6 +408,9 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication void ConstructorCommon() { + iperlHeads = new List(); + waterMeterPositions = new List(); + /// for (int wmPos = 0; wmPos < ProcessData.RegisterReaders.Length; wmPos++) { IperlHead iperlHead = ProcessData.RegisterReaders[wmPos] as IperlHead; @@ -436,35 +429,39 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// /// Prepare worker threads, 'rfidPortNrs', 'lastGroup', etc.. /// - workerThreads = new List(); - rfidPortNrs = new List(); - currentActivityStep = 0; currentGroup = 0; - lastGroup = 0; /// group numbers are >=1, lastGroup == 0 means no group completedCommCount = 0; stopWorkerThreads = false; - foreach (var iPerl in iPerlCommunicationForm.iperlHeads) + /// group numbers are >=1, lastGroup == 0 means there is no group + lastGroup = 0; + foreach (var iPerl in iPerlCommunicationForm.iperlHeads) + { + if (iPerl.Group > lastGroup) lastGroup = iPerl.Group; + } + + workerThreads = new List(); + for (int i = 0; i < cfg.NrThreads; i++) + { + Thread thread = new Thread(iPerlCommunicationForm.Worker); + workerThreads.Add(thread); + } + + muxBrdOrGroup14Nrs = new List(); + foreach (var iPerl in iPerlCommunicationForm.iperlHeads) { - if (!rfidPortNrs.Contains(iPerl.MuxBoardNr)) - { - rfidPortNrs.Add(iPerl.MuxBoardNr); - - if (workerThreads.Count < cfg.NrThreads) - { - Thread thread = new Thread(iPerlCommunicationForm.Worker); - workerThreads.Add(thread); - } - } - - if (iPerl.Group > lastGroup) lastGroup = iPerl.Group; - } + if (!muxBrdOrGroup14Nrs.Contains(iPerl.MuxBoardNrOrGroup14)) muxBrdOrGroup14Nrs.Add(iPerl.MuxBoardNrOrGroup14); + } StringBuilder sb = new StringBuilder(); - sb.Append("rfidPortNrs = ["); - foreach (var v in rfidPortNrs) sb.Append(string.Format(" {0}", v)); - sb.Append(string.Format(" ], nrThreads = {0}", workerThreads.Count)); + if (cfg.UseMuxBoards) + { + sb.Append("rfidPortNrs = ["); + foreach (var v in muxBrdOrGroup14Nrs) sb.Append(string.Format(" {0}", v)); + sb.Append(" ], "); + } + sb.Append(string.Format("nrThreads = {0}", workerThreads.Count)); log.WarnFormat(sb.ToString()); } @@ -550,26 +547,22 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication counters[i].BackColor = Color.Red; } - /// - /// Start worker threads, etc. - /// - if (workerThreads != null) - { - int wtId = 0; - foreach (var wt in workerThreads) wt.Start(new Boxes.IntBox(wtId++)); + /// + /// Set QuidoRS outputs and start the whole communication process + /// by incrementing 'currentGroup'. + /// + if (cfg.UseMuxBoards && quido != null) + { + quido.SetOutputs((ushort)(16 - currentGroup - 1)); + Thread.Sleep(200); + } - /// - /// Set QuidoRS outputs and start the whole communication process - /// by incrementing 'currentGroup'. - /// - if (quido != null) - { - quido.SetOutputs((ushort)(16 - currentGroup - 1)); - Thread.Sleep(200); - } - currentGroup++; - } - } + currentGroup++; + + /// Start worker threads + int wtId = 0; + foreach (var wt in workerThreads) wt.Start(new Boxes.IntBox(wtId++)); + } private void NormalClose() @@ -625,7 +618,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// Thread ID (integer) wrapped into IntBox static void Worker(object threadData) { - int threadId = (threadData as Boxes.IntBox).Val; + int threadID = (threadData as Boxes.IntBox).Val; int activityStep = 0; /// activity step > 0 in case multiTestParams are used @@ -639,7 +632,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication string activity = testParams.Activity; /// Current activity - if (threadId == 0) + if (threadID == 0) { rfidDataLogger.InfoFormat(""); /// Makes the log more readable when there is a lot of data rfidDataLogger.WarnFormat("Activity = {0}", activity); @@ -656,11 +649,10 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication if (stopWorkerThreads) break; - for (int rfidPortIx = threadId; rfidPortIx < threadId + 4; rfidPortIx += cfg.NrThreads) + for (int threadIx = threadID; threadIx < threadID + 4; threadIx += cfg.NrThreads) { - if (rfidPortIx >= rfidPortNrs.Count) break; // quit, all RFID ports of all water meters done + if (cfg.UseMuxBoards && threadIx >= muxBrdOrGroup14Nrs.Count) break; // quit, all RFID ports of all water meters done - int rfidPortNr = rfidPortNrs[rfidPortIx]; int wmNr = 0; bool wmFound = false; @@ -668,7 +660,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication { IperlHead ihead = iperlHeads[j]; - if ((ihead.MuxBoardNr == rfidPortNr) && (ihead.Group == group)) + if (ihead.Group == group && ihead.MuxBoardNrOrGroup14 == muxBrdOrGroup14Nrs[threadIx]) { wmFound = true; Results.Entities.WaterMeter wm = ProcessData.BatchRslts.WaterMeters[waterMeterPositions[j]]; @@ -676,27 +668,27 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication CommErr error; string resultStr = string.Empty; - if (activity.ToLower().Contains(ReadConfigurationStr.ToLower())) error = ReadConfiguration(ihead, wm, ref resultStr); - else if (activity.ToLower().Contains(SetTestModeStr.ToLower())) error = SetTestMode(ihead, wm, ref resultStr); - else if (activity.ToLower().Equals(SetActiveModeStr.ToLower())) error = SetActiveMode(ihead, wm, ref resultStr); - else if (activity.ToLower().Equals(ReadCalibrationStr.ToLower())) error = ReadCalibration(ihead, wm, ref resultStr); - else if (activity.ToLower().Contains(WriteCalibrationFactorStr.ToLower())) error = WriteCalibrationFactor(ihead, wm, ref resultStr); - else if (activity.ToLower().Equals(NormalizeCalibrationFactorStr.ToLower())) error = NormalizeCalibrationFactor(ihead, wm, ref resultStr); - else if (activity.ToLower().Equals(ResetQ2CorrectionStr.ToLower())) error = ResetQ2Correction(ihead, wm, ref resultStr); + if (activity.ToLower().Contains(ReadConfigurationStr.ToLower())) error = ReadConfiguration(threadID, ihead, wm, ref resultStr); + else if (activity.ToLower().Contains(SetTestModeStr.ToLower())) error = SetTestMode(threadID, ihead, wm, ref resultStr); + else if (activity.ToLower().Equals(SetActiveModeStr.ToLower())) error = SetActiveMode(threadID, ihead, wm, ref resultStr); + else if (activity.ToLower().Equals(ReadCalibrationStr.ToLower())) error = ReadCalibration(threadID, ihead, wm, ref resultStr); + else if (activity.ToLower().Contains(WriteCalibrationFactorStr.ToLower())) error = WriteCalibrationFactor(threadID, ihead, wm, ref resultStr); + else if (activity.ToLower().Equals(NormalizeCalibrationFactorStr.ToLower())) error = NormalizeCalibrationFactor(threadID, ihead, wm, ref resultStr); + else if (activity.ToLower().Equals(ResetQ2CorrectionStr.ToLower())) error = ResetQ2Correction(threadID, ihead, wm, ref resultStr); else if (activity.ToLower().Equals(WriteQ2CorrectionStr.ToLower())) { - error = WriteQ2Correction(ihead, wm, ref resultStr, Q2CorrType.Standard, null, false); + error = WriteQ2Correction(threadID, ihead, wm, ref resultStr, Q2CorrType.Standard, null, false); } else if (activity.ToLower().Equals(WriteQ2CorrectionAltStr.ToLower())) { - error = WriteQ2Correction(ihead, wm, ref resultStr, Q2CorrType.Dewa, null, false); + error = WriteQ2Correction(threadID, ihead, wm, ref resultStr, Q2CorrType.Dewa, null, false); } else if (activity.ToLower().Contains(WriteQ2CorrectionGreeceStr.ToLower())) { - error = WriteQ2Correction(ihead, wm, ref resultStr, Q2CorrType.Greece, activity.Substring(WriteQ2CorrectionGreeceStr.Length).Trim(), true); + error = WriteQ2Correction(threadID, ihead, wm, ref resultStr, Q2CorrType.Greece, activity.Substring(WriteQ2CorrectionGreeceStr.Length).Trim(), true); } - else if (activity.ToLower().Equals(Reset2HzCorrectionStr.ToLower())) error = Reset2HzCorrection(ihead, wm, ref resultStr); - else if (activity.ToLower().Equals(Write2HzCorrectionStr.ToLower())) error = Write2HzCorrection(ihead, wm, ref resultStr); + else if (activity.ToLower().Equals(Reset2HzCorrectionStr.ToLower())) error = Reset2HzCorrection(threadID, ihead, wm, ref resultStr); + else if (activity.ToLower().Equals(Write2HzCorrectionStr.ToLower())) error = Write2HzCorrection(threadID, ihead, wm, ref resultStr); else { error = CommErr.None; @@ -706,16 +698,16 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication if (error == CommErr.None) { - OnCommCompleted(null, new CommCompletedEventArgs(threadId, wmNr, resultStr)); + OnCommCompleted(null, new CommCompletedEventArgs(threadID, wmNr, resultStr)); } else if (ihead.CommFailed || error == CommErr.CommFailed) { - OnCommCompleted(null, new CommCompletedEventArgs(threadId, wmNr, "Watermeter is disabled")); + OnCommCompleted(null, new CommCompletedEventArgs(threadID, wmNr, "Watermeter is disabled")); } else { - OnCommCompleted(null, new CommCompletedEventArgs(threadId, wmNr, string.Format("{0} failed ({1}) !!!", activity, error))); - rfidDataLogger.ErrorFormat("Group={0}, Board={1}, {2} failed ({3}) !!!", currentGroup, ihead.MuxBoardNr, activity, error); + OnCommCompleted(null, new CommCompletedEventArgs(threadID, wmNr, string.Format("{0} failed ({1}) !!!", activity, error))); + rfidDataLogger.ErrorFormat("Group={0}, Board={1}, {2} failed ({3}) !!!", currentGroup, ihead.MuxBoardNrOrGroup14, activity, error); ihead.CommFailed = true; } break; @@ -726,7 +718,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication if (!wmFound) { - OnCommCompleted(null, new CommCompletedEventArgs(threadId, -1, string.Empty)); /// Send negative wmNr + OnCommCompleted(null, new CommCompletedEventArgs(threadID, -1, string.Empty)); /// Send negative wmNr } if (stopWorkerThreads) break; @@ -749,7 +741,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// Water meter object /// String passed to caller /// true on success - static CommErr ReadConfiguration(IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) + static CommErr ReadConfiguration(int threadId, IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) { /// /// The activity is "Read configuration" (this enables the watermeter, resets error flag) @@ -762,7 +754,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication if (ihead.CommFailed) return CommErr.CommFailed; - if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port + if (OpenPort(threadId, ihead) != 0) return CommErr.OpenPort; /// Open RFID port CommErr error = CommErr.Read; @@ -770,7 +762,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication byte[] config = null; for (int j = 0; j < cfg.MaxCommRetries; j++) { - if (0 == ReadRequestPort(ihead, MessageID.Configuration, 0, ConfigStruct.Length, out config, cfg.CommTimeout)) + if (0 == ReadRequestPort(threadId, ihead, MessageID.Configuration, 0, ConfigStruct.Length, out config, cfg.CommTimeout)) { error = CommErr.None; ihead.ConfigStruct = ConfigStruct.FromByteArray(config); @@ -779,7 +771,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication } } - ClosePort(ihead); /// Close RFID port + ClosePort(threadId, ihead); /// Close RFID port return error; } @@ -794,7 +786,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// Water meter object /// String passed to caller /// true on success - static CommErr SetTestMode(IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) + static CommErr SetTestMode(int threadId, IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) { if (ihead.CommFailed) return CommErr.CommFailed; @@ -818,7 +810,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication } /// Communication necessary - if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port + if (OpenPort(threadId, ihead) != 0) return CommErr.OpenPort; /// Open RFID port CommErr error = CommErr.None; @@ -829,7 +821,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication byte[] cmd = new byte[1] { (byte)6 }; for (int j = 0; j < cfg.MaxCommRetries; j++) { - if (0 == WriteRequestPort(ihead, MessageID.Command, 0, 1, cmd, cfg.CommTimeout)) { error = CommErr.None; break; } + if (0 == WriteRequestPort(threadId, ihead, MessageID.Command, 0, 1, cmd, cfg.CommTimeout)) { error = CommErr.None; break; } } Thread.Sleep(250); @@ -842,7 +834,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication byte[] tstMdCfg = new byte[1] { testModeConfig }; for (int j = 0; j < cfg.MaxCommRetries; j++) { - if (0 == WriteRequestPort(ihead, MessageID.Configuration, 21, 1, tstMdCfg, cfg.CommTimeout)) + if (0 == WriteRequestPort(threadId, ihead, MessageID.Configuration, 21, 1, tstMdCfg, cfg.CommTimeout)) { ihead.ConfigStruct.Update(21, tstMdCfg); error = CommErr.None; @@ -860,7 +852,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication byte[] cmd = new byte[1] { (byte)7 }; for (int j = 0; j < cfg.MaxCommRetries; j++) { - if (0 == WriteRequestPort(ihead, MessageID.Command, 0, 1, cmd, cfg.CommTimeout)) { error = CommErr.None; break; } + if (0 == WriteRequestPort(threadId, ihead, MessageID.Command, 0, 1, cmd, cfg.CommTimeout)) { error = CommErr.None; break; } } Thread.Sleep(250); @@ -874,7 +866,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication byte[] cfg_0_3 = null; for (int j = 0; j < cfg.MaxCommRetries; j++) { - if (0 == ReadRequestPort(ihead, MessageID.Configuration, 0, 4, out cfg_0_3, cfg.CommTimeout)) + if (0 == ReadRequestPort(threadId, ihead, MessageID.Configuration, 0, 4, out cfg_0_3, cfg.CommTimeout)) { ihead.ConfigStruct.Update(0, cfg_0_3); if (ihead.ConfigStruct.MeterState == MeterState.Test) @@ -887,7 +879,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication } } - ClosePort(ihead); /// Close RFID port + ClosePort(threadId, ihead); /// Close RFID port return error; } @@ -900,9 +892,9 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// Water meter object /// String passed to caller /// true on success - static CommErr SetActiveMode(IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) + static CommErr SetActiveMode(int threadId, IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) { - if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port + if (OpenPort(threadId, ihead) != 0) return CommErr.OpenPort; /// Open RFID port CommErr error = CommErr.CmdActive; @@ -910,7 +902,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication byte[] cmd = new byte[1] { (byte)6 }; for (int j = 0; j < cfg.MaxCommRetries; j++) { - if (0 == WriteRequestPort(ihead, MessageID.Command, 0, 1, cmd, cfg.CommTimeout)) + if (0 == WriteRequestPort(threadId, ihead, MessageID.Command, 0, 1, cmd, cfg.CommTimeout)) { error = CommErr.None; break; @@ -928,7 +920,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication { if (ihead.ConfigStruct == null) { - if (0 == ReadRequestPort(ihead, MessageID.Configuration, 0, 4, out cfg_0_3, cfg.CommTimeout)) + if (0 == ReadRequestPort(threadId, ihead, MessageID.Configuration, 0, 4, out cfg_0_3, cfg.CommTimeout)) { ihead.ConfigStruct.Update(0, cfg_0_3); if (ihead.ConfigStruct.MeterState == MeterState.Active) @@ -951,7 +943,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication } #endif - ClosePort(ihead); /// Close RFID port + ClosePort(threadId, ihead); /// Close RFID port return error; } @@ -963,11 +955,11 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// Water meter object /// String passed to caller /// true on success - static CommErr ReadCalibration(IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) + static CommErr ReadCalibration(int threadId, IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) { if (ihead.CommFailed) return CommErr.CommFailed; - if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port + if (OpenPort(threadId, ihead) != 0) return CommErr.OpenPort; /// Open RFID port CommErr error = CommErr.Read; @@ -975,7 +967,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication byte[] calib = null; for (int j = 0; j < cfg.MaxCommRetries; j++) { - if (0 == ReadRequestPort(ihead, MessageID.Calibration, 0, CalibrationStruct.Length, out calib, cfg.CommTimeout)) + if (0 == ReadRequestPort(threadId, ihead, MessageID.Calibration, 0, CalibrationStruct.Length, out calib, cfg.CommTimeout)) { ihead.CalibrationStruct = CalibrationStruct.FromByteArray(calib); #if IPERL @@ -991,7 +983,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication } } - ClosePort(ihead); /// Close RFID port + ClosePort(threadId, ihead); /// Close RFID port return error; } @@ -1004,7 +996,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// Water meter object /// String passed to caller /// true on success - static CommErr WriteCalibrationFactor(IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) + static CommErr WriteCalibrationFactor(int threadId, IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) { if (ihead.CommFailed) return CommErr.CommFailed; @@ -1084,7 +1076,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// /// Start communication with iPerl /// - if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port + if (OpenPort(threadId, ihead) != 0) return CommErr.OpenPort; /// Open RFID port CommErr error; byte[] data = new byte[2] { (byte)(newCalibFactor & 0x00FF), (byte)((newCalibFactor >> 8) & 0x00FF) }; @@ -1095,14 +1087,14 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// Write the new calibration factor (up to cfg.MaxCommRetries tims) /// error = CommErr.Write; - if (0 == WriteRequestPort(ihead, MessageID.Calibration, 2, 2, data, cfg.CommTimeout)) + if (0 == WriteRequestPort(threadId, ihead, MessageID.Calibration, 2, 2, data, cfg.CommTimeout)) { /// /// Read and verify the calibration factor /// error = CommErr.ReadAfterWrite; byte[] calib_2_3 = null; - if (0 == ReadRequestPort(ihead, MessageID.Calibration, 2, 2, out calib_2_3, cfg.CommTimeout)) + if (0 == ReadRequestPort(threadId, ihead, MessageID.Calibration, 2, 2, out calib_2_3, cfg.CommTimeout)) { error = CommErr.Verify; if (calib_2_3 != null && calib_2_3.Length == 2 && data[0] == calib_2_3[0] && data[1] == calib_2_3[1]) @@ -1122,7 +1114,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication } while (++writeAndVerifyRetries <= cfg.MaxCommRetries); - ClosePort(ihead); /// Close RFID port + ClosePort(threadId, ihead); /// Close RFID port return error; } @@ -1134,7 +1126,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// Water meter object /// String passed to caller /// true on success - static CommErr NormalizeCalibrationFactor(IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) + static CommErr NormalizeCalibrationFactor(int threadId, IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) { if (ihead.CommFailed) return CommErr.CommFailed; @@ -1144,7 +1136,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication return CommErr.None; /// No need to update the calibration factor } - if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port + if (OpenPort(threadId, ihead) != 0) return CommErr.OpenPort; /// Open RFID port CommErr error = CommErr.Write; @@ -1168,7 +1160,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication byte[] data = new byte[2] { (byte)(newCalibFactor & 0x00FF), (byte)((newCalibFactor >> 8) & 0x00FF) }; for (int j = 0; j < cfg.MaxCommRetries; j++) { - if (0 == WriteRequestPort(ihead, MessageID.Calibration, 2, 2, data, cfg.CommTimeout)) + if (0 == WriteRequestPort(threadId, ihead, MessageID.Calibration, 2, 2, data, cfg.CommTimeout)) { error = CommErr.None; ihead.CalibrationStruct.Update(data, 2); @@ -1184,7 +1176,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication byte[] calib_2_3 = null; for (int j = 0; j < cfg.MaxCommRetries; j++) { - if (0 == ReadRequestPort(ihead, MessageID.Calibration, 2, 2, out calib_2_3, cfg.CommTimeout)) + if (0 == ReadRequestPort(threadId, ihead, MessageID.Calibration, 2, 2, out calib_2_3, cfg.CommTimeout)) { error = CommErr.None; ihead.CalibrationStruct.Update(calib_2_3, 2); @@ -1194,7 +1186,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication } } - ClosePort(ihead); /// Close RFID port + ClosePort(threadId, ihead); /// Close RFID port return error; } @@ -1211,11 +1203,11 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// Water meter object /// String passed to caller /// true on success - static CommErr ResetQ2Correction(IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) + static CommErr ResetQ2Correction(int threadId, IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) { if (ihead.CommFailed) return CommErr.CommFailed; - if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port + if (OpenPort(threadId, ihead) != 0) return CommErr.OpenPort; /// Open RFID port CommErr error = CommErr.Write; @@ -1224,7 +1216,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// for (int j = 0; j < cfg.MaxCommRetries; j++) { - if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, wrData.Length, wrData, cfg.CommTimeout)) + if (0 == WriteRequestPort(threadId, ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, wrData.Length, wrData, cfg.CommTimeout)) { error = CommErr.None; break; @@ -1244,7 +1236,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication byte[] rdData = null; for (int j = 0; j < cfg.MaxCommRetries; j++) { - if ((0 == ReadRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, 2, out rdData, cfg.CommTimeout)) && + if ((0 == ReadRequestPort(threadId, ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, 2, out rdData, cfg.CommTimeout)) && (rdData != null) && (rdData.Length == 2) && (rdData[0] == 0) && (rdData[1] == 0)) { error = CommErr.None; @@ -1262,7 +1254,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication } #endif - ClosePort(ihead); /// Close RFID port + ClosePort(threadId, ihead); /// Close RFID port return error; } @@ -1274,11 +1266,11 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// Water meter object /// String passed to caller /// true on success - static CommErr Reset2HzCorrection(IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) + static CommErr Reset2HzCorrection(int threadId, IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) { if (ihead.CommFailed) return CommErr.CommFailed; - if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port + if (OpenPort(threadId, ihead) != 0) return CommErr.OpenPort; /// Open RFID port CommErr error = CommErr.Write; @@ -1287,7 +1279,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// for (int j = 0; j < cfg.MaxCommRetries; j++) { - if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, wrData.Length, wrData, cfg.CommTimeout)) + if (0 == WriteRequestPort(threadId, ihead, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, wrData.Length, wrData, cfg.CommTimeout)) { error = CommErr.None; break; @@ -1307,7 +1299,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication byte[] rdData = null; for (int j = 0; j < cfg.MaxCommRetries; j++) { - if ((0 == ReadRequestPort(ihead, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, 1, out rdData, cfg.CommTimeout)) && + if ((0 == ReadRequestPort(threadId, ihead, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, 1, out rdData, cfg.CommTimeout)) && (rdData != null) && (rdData.Length == 2) && (rdData[0] == 0) && (rdData[1] == 0)) { error = CommErr.None; @@ -1325,7 +1317,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication } #endif - ClosePort(ihead); /// Close RFID port + ClosePort(threadId, ihead); /// Close RFID port return error; } @@ -1338,7 +1330,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// Water meter object /// String passed to caller /// true on success - static CommErr WriteQ2Correction(IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr, Q2CorrType q2CorrType, string q2TestName, bool updateQ2adjByCalibFactor) + static CommErr WriteQ2Correction(int threadId, IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr, Q2CorrType q2CorrType, string q2TestName, bool updateQ2adjByCalibFactor) { //if (ihead == null || ihead.CommFailed) return CommErr.CommFailed; @@ -1459,7 +1451,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication q2CorrLFlow = (byte)((int)Math.Round(q2Correction) & 0x000000FF); } - if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port + if (OpenPort(threadId, ihead) != 0) return CommErr.OpenPort; /// Open RFID port CommErr error = CommErr.Write; @@ -1467,7 +1459,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// for (int j = 0; j < cfg.MaxCommRetries; j++) { - if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, wrData.Length, wrData, cfg.CommTimeout)) + if (0 == WriteRequestPort(threadId, ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, wrData.Length, wrData, cfg.CommTimeout)) { error = CommErr.None; break; @@ -1486,7 +1478,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication byte[] rdData = null; for (int j = 0; j < cfg.MaxCommRetries; j++) { - if ((0 == ReadRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, 2, out rdData, cfg.CommTimeout)) && + if ((0 == ReadRequestPort(threadId, ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, 2, out rdData, cfg.CommTimeout)) && (rdData != null) && (rdData.Length == 2) && (rdData[0] == q2CorrRFlow) && (rdData[1] == q2CorrLFlow)) { error = CommErr.None; @@ -1532,7 +1524,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication } #endif - ClosePort(ihead); /// Close RFID port + ClosePort(threadId, ihead); /// Close RFID port return error; } @@ -1544,7 +1536,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// Water meter object /// String passed to caller /// true on success - static CommErr Write2HzCorrection(IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) + static CommErr Write2HzCorrection(int threadId, IperlHead ihead, Results.Entities.WaterMeter wm, ref string resultStr) { if (ihead.CommFailed) return CommErr.CommFailed; @@ -1559,7 +1551,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication return CommErr.None; } - if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port + if (OpenPort(threadId, ihead) != 0) return CommErr.OpenPort; /// Open RFID port CommErr error = CommErr.Write; @@ -1568,7 +1560,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// for (int j = 0; j < cfg.MaxCommRetries; j++) { - if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, wrData.Length, wrData, cfg.CommTimeout)) + if (0 == WriteRequestPort(threadId, ihead, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, wrData.Length, wrData, cfg.CommTimeout)) { error = CommErr.None; ihead.Hz2Correction = hz2CorrectionFactor; @@ -1633,7 +1625,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication } #endif - ClosePort(ihead); /// Close RFID port + ClosePort(threadId, ihead); /// Close RFID port return error; } @@ -1661,7 +1653,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication lock (this) { - if (++completedCommCount < rfidPortNrs.Count) return; + if (++completedCommCount < muxBrdOrGroup14Nrs.Count) return; completedCommCount = 0; } diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHead.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHead.cs index 7893bd8dd..9bd13500e 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHead.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHead.cs @@ -27,7 +27,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead readonly IperlHeadCfg iperlHeadCfg; public int RfidComPortNr { get { return iperlHeadCfg.RfidComPortNr; } } - public int MuxBoardNr { get { return iperlHeadCfg.MuxBoardNr; } } + public int MuxBoardNrOrGroup14 { get { return iperlHeadCfg.MuxBoardNr; } } public int Group { get { return iperlHeadCfg.Group; } } public double PulsesPerLtr { get { return 1000.0; } } diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfg.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfg.cs index 938d71110..2989bf93c 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfg.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfg.cs @@ -29,7 +29,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead public int OptoComPortNr; public int RfidComPortNr; /// 0 = use MuxBoardNr public int MuxBoardNr; /// 0 = use RfidComPort(Nr), otherwise mux. board nr. 1 .. 4 - public int Group; /// Number written to QuidoRS to connct the watermeter to RfidComPort + public int Group; /// Number written to QuidoRS to connct the watermeter to RfidComPort, 1 .. 10 /// Procedure parameters [XmlIgnore] @@ -65,12 +65,12 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead public string ToString(int i) { - return string.Format("Name={0}, Opto=COM{1}, RFID=COM{2}, MuxBoard#={3}, Group={4}", - Name, - OptoComPortNr, - RfidComPortNr, + return string.Format("{0} Group1 (mux#)={1}, Group2={2}, Opto=Com{3}, RFID=Com{4}", + Name, MuxBoardNr, - Group); + Group, + OptoComPortNr, + RfidComPortNr); } } } diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfgCtrl.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfgCtrl.cs index 2015b8bda..955ac3b9a 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfgCtrl.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfgCtrl.cs @@ -75,7 +75,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead { CfgUpdateFlags flags = CfgUpdateFlags.None; - int dummy, dummy2; + int dummy; if (radioButton1.Checked) { IPAddress dummyIPAddress; @@ -106,26 +106,17 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead flags |= CfgUpdateFlags.Error; message += Environment.NewLine + "'RFID serial port nr.' is not valid"; } - if (!int.TryParse(muxBoardNrTextBox.Text, out dummy2) || dummy2 < 0 || dummy2 > 4) + + if (!int.TryParse(muxBoardNrTextBox.Text, out dummy) || dummy < 1 || dummy > 4) { flags |= CfgUpdateFlags.Error; - message += Environment.NewLine + "'Mux. board nr.' is not valid"; + message += Environment.NewLine + string.Format(Strings.Invalid_0, muxBoardNrLabel.Text); } - if (dummy == 0 && dummy2 == 0) - { - flags |= CfgUpdateFlags.Error; - message += Environment.NewLine + "Either 'RFID serial port nr.' or 'Mux. board nr.' should be nonzero"; - } - if (dummy != 0 && dummy2 != 0) - { - flags |= CfgUpdateFlags.Error; - message += Environment.NewLine + "Either 'RFID serial port nr.' or 'Mux. board nr.' should be zero"; - } if (!int.TryParse(groupTextBox.Text, out dummy) || dummy < 1 || dummy > 10) { flags |= CfgUpdateFlags.Error; - message += Environment.NewLine + "'Group' is not valid"; + message += Environment.NewLine + string.Format(Strings.Invalid_0, groupLabel.Text); } return flags; diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfgCtrl.designer.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfgCtrl.designer.cs index 46a5569fe..037c773b4 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfgCtrl.designer.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfgCtrl.designer.cs @@ -49,13 +49,17 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead this.tcpipPortTextBox = new System.Windows.Forms.TextBox(); this.ipAddressLabel = new System.Windows.Forms.Label(); this.ipAddressTextBox = new System.Windows.Forms.TextBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); this.optoDataGroupBox.SuspendLayout(); + this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // nameTextBox // this.nameTextBox.Enabled = false; - this.nameTextBox.Location = new System.Drawing.Point(135, 39); + this.nameTextBox.Location = new System.Drawing.Point(135, 40); this.nameTextBox.Name = "nameTextBox"; this.nameTextBox.Size = new System.Drawing.Size(121, 20); this.nameTextBox.TabIndex = 2; @@ -63,7 +67,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead // nameLabel // this.nameLabel.AutoSize = true; - this.nameLabel.Location = new System.Drawing.Point(25, 42); + this.nameLabel.Location = new System.Drawing.Point(25, 43); this.nameLabel.Name = "nameLabel"; this.nameLabel.Size = new System.Drawing.Size(35, 13); this.nameLabel.TabIndex = 1; @@ -72,7 +76,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead // classNameLabel // this.classNameLabel.AutoSize = true; - this.classNameLabel.Location = new System.Drawing.Point(132, 18); + this.classNameLabel.Location = new System.Drawing.Point(132, 16); this.classNameLabel.Name = "classNameLabel"; this.classNameLabel.Size = new System.Drawing.Size(60, 13); this.classNameLabel.TabIndex = 0; @@ -98,7 +102,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead // muxBoardNrTextBox // this.muxBoardNrTextBox.Enabled = false; - this.muxBoardNrTextBox.Location = new System.Drawing.Point(135, 207); + this.muxBoardNrTextBox.Location = new System.Drawing.Point(135, 63); this.muxBoardNrTextBox.Name = "muxBoardNrTextBox"; this.muxBoardNrTextBox.Size = new System.Drawing.Size(34, 20); this.muxBoardNrTextBox.TabIndex = 9; @@ -106,16 +110,16 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead // muxBoardNrLabel // this.muxBoardNrLabel.AutoSize = true; - this.muxBoardNrLabel.Location = new System.Drawing.Point(25, 210); + this.muxBoardNrLabel.Location = new System.Drawing.Point(25, 66); this.muxBoardNrLabel.Name = "muxBoardNrLabel"; - this.muxBoardNrLabel.Size = new System.Drawing.Size(78, 13); + this.muxBoardNrLabel.Size = new System.Drawing.Size(106, 13); this.muxBoardNrLabel.TabIndex = 8; - this.muxBoardNrLabel.Text = "Mux. board nr.:"; + this.muxBoardNrLabel.Text = "Group 1 (mux. board)"; // // groupTextBox // this.groupTextBox.Enabled = false; - this.groupTextBox.Location = new System.Drawing.Point(135, 230); + this.groupTextBox.Location = new System.Drawing.Point(135, 86); this.groupTextBox.Name = "groupTextBox"; this.groupTextBox.Size = new System.Drawing.Size(34, 20); this.groupTextBox.TabIndex = 11; @@ -123,16 +127,16 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead // groupLabel // this.groupLabel.AutoSize = true; - this.groupLabel.Location = new System.Drawing.Point(25, 233); + this.groupLabel.Location = new System.Drawing.Point(25, 89); this.groupLabel.Name = "groupLabel"; - this.groupLabel.Size = new System.Drawing.Size(39, 13); + this.groupLabel.Size = new System.Drawing.Size(45, 13); this.groupLabel.TabIndex = 10; - this.groupLabel.Text = "Group:"; + this.groupLabel.Text = "Group 2"; // // rfidPortNrTextBox // this.rfidPortNrTextBox.Enabled = false; - this.rfidPortNrTextBox.Location = new System.Drawing.Point(135, 184); + this.rfidPortNrTextBox.Location = new System.Drawing.Point(329, 21); this.rfidPortNrTextBox.Name = "rfidPortNrTextBox"; this.rfidPortNrTextBox.Size = new System.Drawing.Size(34, 20); this.rfidPortNrTextBox.TabIndex = 7; @@ -140,11 +144,11 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead // rfidSerialPortNrLabel // this.rfidSerialPortNrLabel.AutoSize = true; - this.rfidSerialPortNrLabel.Location = new System.Drawing.Point(25, 187); + this.rfidSerialPortNrLabel.Location = new System.Drawing.Point(241, 24); this.rfidSerialPortNrLabel.Name = "rfidSerialPortNrLabel"; - this.rfidSerialPortNrLabel.Size = new System.Drawing.Size(98, 13); + this.rfidSerialPortNrLabel.Size = new System.Drawing.Size(72, 13); this.rfidSerialPortNrLabel.TabIndex = 6; - this.rfidSerialPortNrLabel.Text = "RFID serial port nr.:"; + this.rfidSerialPortNrLabel.Text = "Serial port nr.:"; // // radioButton1 // @@ -180,9 +184,9 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead this.optoDataGroupBox.Controls.Add(this.radioButton2); this.optoDataGroupBox.Controls.Add(this.optoSerialPortLabel); this.optoDataGroupBox.Controls.Add(this.optoSerialPortTextBox); - this.optoDataGroupBox.Location = new System.Drawing.Point(28, 67); + this.optoDataGroupBox.Location = new System.Drawing.Point(28, 114); this.optoDataGroupBox.Name = "optoDataGroupBox"; - this.optoDataGroupBox.Size = new System.Drawing.Size(414, 101); + this.optoDataGroupBox.Size = new System.Drawing.Size(414, 97); this.optoDataGroupBox.TabIndex = 5; this.optoDataGroupBox.TabStop = false; this.optoDataGroupBox.Text = "Opto-data"; @@ -221,13 +225,43 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead this.ipAddressTextBox.Size = new System.Drawing.Size(98, 20); this.ipAddressTextBox.TabIndex = 3; // + // groupBox1 + // + this.groupBox1.Controls.Add(this.rfidPortNrTextBox); + this.groupBox1.Controls.Add(this.rfidSerialPortNrLabel); + this.groupBox1.Location = new System.Drawing.Point(28, 218); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(414, 55); + this.groupBox1.TabIndex = 12; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "RFID communication (in case mux. board is not used)"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(176, 66); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(31, 13); + this.label3.TabIndex = 13; + this.label3.Text = "1 .. 4"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(176, 89); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(37, 13); + this.label4.TabIndex = 14; + this.label4.Text = "1 .. 10"; + // // WaterMeterCfgCtrl // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.groupBox1); this.Controls.Add(this.optoDataGroupBox); - this.Controls.Add(this.rfidPortNrTextBox); - this.Controls.Add(this.rfidSerialPortNrLabel); this.Controls.Add(this.groupTextBox); this.Controls.Add(this.groupLabel); this.Controls.Add(this.muxBoardNrTextBox); @@ -240,6 +274,8 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead this.Load += new System.EventHandler(this.WaterMeterCfgCtrl_Load); this.optoDataGroupBox.ResumeLayout(false); this.optoDataGroupBox.PerformLayout(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -265,5 +301,8 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead private System.Windows.Forms.TextBox tcpipPortTextBox; private System.Windows.Forms.Label ipAddressLabel; private System.Windows.Forms.TextBox ipAddressTextBox; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; } } diff --git a/TestBenchFramework/Properties/AssemblyInfo.cs b/TestBenchFramework/Properties/AssemblyInfo.cs index 903ca7e04..2e6430a6c 100644 --- a/TestBenchFramework/Properties/AssemblyInfo.cs +++ b/TestBenchFramework/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("2.15.634.1")] -[assembly: AssemblyFileVersion("2.15.634.1")] +[assembly: AssemblyVersion("2.15.637.1")] +[assembly: AssemblyFileVersion("2.15.637.1")]