diff --git a/TBF.sln b/TBF.sln
index 6c370f62a..983e14594 100644
--- a/TBF.sln
+++ b/TBF.sln
@@ -1,6 +1,8 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.33424.131
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TBF", "TBF\TBF.csproj", "{8648FD92-CDA1-4C3A-B5F9-FE547CE1FA48}"
ProjectSection(ProjectDependencies) = postProject
{C8939821-BA5C-4988-A3D0-BF53B74865C7} = {C8939821-BA5C-4988-A3D0-BF53B74865C7}
@@ -92,6 +94,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FeatureVectorCalculator", "
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResultsParser", "ResultsParser\ResultsParser.csproj", "{2E08C19B-C0A9-4056-8564-E5B74477959D}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sensus.iPerl.RfidCom", "..\iPerlHead\Sensus.iPerl.RfidCom\Sensus.iPerl.RfidCom.csproj", "{A3E14180-7F00-42E5-94A9-8DB62EAD6EE8}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -386,8 +390,23 @@ Global
{2E08C19B-C0A9-4056-8564-E5B74477959D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{2E08C19B-C0A9-4056-8564-E5B74477959D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{2E08C19B-C0A9-4056-8564-E5B74477959D}.Release|x86.ActiveCfg = Release|Any CPU
+ {A3E14180-7F00-42E5-94A9-8DB62EAD6EE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A3E14180-7F00-42E5-94A9-8DB62EAD6EE8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A3E14180-7F00-42E5-94A9-8DB62EAD6EE8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {A3E14180-7F00-42E5-94A9-8DB62EAD6EE8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {A3E14180-7F00-42E5-94A9-8DB62EAD6EE8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A3E14180-7F00-42E5-94A9-8DB62EAD6EE8}.Debug|x86.Build.0 = Debug|Any CPU
+ {A3E14180-7F00-42E5-94A9-8DB62EAD6EE8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A3E14180-7F00-42E5-94A9-8DB62EAD6EE8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A3E14180-7F00-42E5-94A9-8DB62EAD6EE8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {A3E14180-7F00-42E5-94A9-8DB62EAD6EE8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {A3E14180-7F00-42E5-94A9-8DB62EAD6EE8}.Release|x86.ActiveCfg = Release|Any CPU
+ {A3E14180-7F00-42E5-94A9-8DB62EAD6EE8}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {A7C8EF35-DF72-4DFC-83F7-9641AC1178CF}
+ EndGlobalSection
EndGlobal
diff --git a/TBF/Rig/TestMethods/iPerlCommunication/OpticalHeadTest.cs b/TBF/Rig/TestMethods/iPerlCommunication/OpticalHeadTest.cs
new file mode 100644
index 000000000..e7c33cf5d
--- /dev/null
+++ b/TBF/Rig/TestMethods/iPerlCommunication/OpticalHeadTest.cs
@@ -0,0 +1,97 @@
+using Sensus.iPerl.RfidCom.Helper;
+using Sensus.iPerl.RfidCom.Services;
+using Sensus.iPerl.RfidCom.Structures;
+using System;
+using System.Threading;
+using TBF.Rig.TestMethods.iPerlCommunication.iPerlHead;
+
+namespace TBF.Rig.TestMethods.iPerlCommunication
+{
+ internal class OpticalHeadTest
+ {
+ internal static string OpenSealing(IperlHead iHead)
+ {
+ if (RfidCommands.OpenSealing($"COM{iHead.RfidComPortNr}")) return "OK";
+ return "Error Open Sealing";
+ }
+
+ internal static string ReadRequest_PCB(IperlHead iHead)
+ {
+ try
+ {
+ byte[] pcb = null;
+ int readRetVal = iPerlCommunicationForm.ReadRequestPort(iHead, MessageID.Configuration, 16, 5, out pcb);
+ if (readRetVal == 0)
+ {
+ return RfidHelper.HexLiteral2Unsigned(RfidHelper.SwapHexcode(BitConverter.ToString(pcb).Replace("-", string.Empty))).ToString();
+ }
+ return "Error";
+ }
+ catch (Exception ex)
+ {
+ return (ex.Message.ToString());
+ }
+ }
+
+ internal static string SetActiveMode(IperlHead iHead)
+ {
+ return RfidCommands.SetActiveMode($"COM{iHead.RfidComPortNr}") ? "OK" : "Error Set Active Mode";
+ }
+
+ internal static string SetTestMode(IperlHead iHead)
+ {
+ return RfidCommands.SetTestMode($"COM{iHead.RfidComPortNr}") ? "OK" : "Error Set Test Mode";
+ }
+
+ internal static string TurnOffRadio(IperlHead iHead)
+ {
+ try
+ {
+ string payload = "03";
+ RfidCommunicationService rfidCommunicationService = new RfidCommunicationService { ComPort = $"COM{iHead.RfidComPortNr}", WaitTimeAfterFailure = 2200, PassThroughWaitTime = 1500, MaxRetries = 3, TimeOut = 5000 };
+ rfidCommunicationService.RfidWrite(Params.u8_WakeUpInterval, payload);
+ return rfidCommunicationService.RfidRead(Params.u8_WakeUpInterval).ToString() == payload? "OK" : "Error";
+ }
+ catch (Exception ex)
+ {
+ return (ex.Message.ToString());
+ }
+ }
+
+ internal static string SetProductionMode(IperlHead iHead)
+ {
+ try
+ {
+ string payload = "01"; // 1 set the µC to the production mode, radio should not start
+ RfidCommunicationService rfidCommunicationService = new RfidCommunicationService { ComPort = $"COM{iHead.RfidComPortNr}", WaitTimeAfterFailure = 2200, PassThroughWaitTime = 1500, MaxRetries = 3, TimeOut = 5000 };
+ rfidCommunicationService.RfidWrite(SystemInfo.u8_system_state, payload);
+ Thread.Sleep(1000); // must be for pass thru params
+ return rfidCommunicationService.RfidRead(SystemInfo.u8_system_state).ToString() == payload ? "OK" : "Error";
+ }
+ catch (Exception ex)
+ {
+ return (ex.Message.ToString());
+ }
+ }
+
+ internal static string WriteRequestPort_u8_Customer_Text(IperlHead iHead)
+ {
+ string custText = "FF0123456789ABCDEF"; // Sample text to test write function
+ try
+ {
+ byte[] cmd = RfidHelper.HexStringToByteArray(custText);
+ if (0 == iPerlCommunicationForm.WriteRequestPort(iHead, MessageID.RadioPassthrough, 0x1899, 9, cmd))
+ {
+ RfidCommunicationService rfidCommunicationService = new RfidCommunicationService { ComPort = $"COM{iHead.RfidComPortNr}", WaitTimeAfterFailure = 2200, PassThroughWaitTime = 1500, MaxRetries = 3, TimeOut = 5000 };
+ //rfidCommunicationService.RfidWrite(Params.u8_Customer_Text, custText);
+ return rfidCommunicationService.RfidRead(Params.u8_Customer_Text).ToString();
+ }
+ }
+ catch (Exception ex)
+ {
+ return (ex.Message.ToString());
+ }
+ return $"Error COM{iHead.RfidComPortNr}";
+ }
+ }
+}
diff --git a/TBF/Rig/TestMethods/iPerlCommunication/TestMethodCfg.cs b/TBF/Rig/TestMethods/iPerlCommunication/TestMethodCfg.cs
index 971cea8b5..adef5b259 100644
--- a/TBF/Rig/TestMethods/iPerlCommunication/TestMethodCfg.cs
+++ b/TBF/Rig/TestMethods/iPerlCommunication/TestMethodCfg.cs
@@ -22,6 +22,8 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
public int CommTimeout; /// Communication timeout in ms (500 .. 5000)
public int DelayBetweenRetries; /// Delay between communication retries in ms (0 .. 5000)
public int MaxCommRetries; /// Max. number of retries (1 .. 10)
+ public int WaitTimeAfterFailure; /// Wait time after communication failure in ms
+ public int PassThroughWaitTime; /// Pass Through wait time for radio parameters in ms
public int NrThreads; /// Numbwr of parallel threads (1, 2 or 4)
public int IperlCheckErrorsToStop;
@@ -59,7 +61,9 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
ParentName = string.Empty;
CommTimeout = 1800; /// ms
MaxCommRetries = 4;
- NrThreads = 2; /// 1, 2 or 4 threads
+ WaitTimeAfterFailure = 2200;
+ PassThroughWaitTime = 1500;
+ NrThreads = 2; /// 1, 2 or 4 threads
IperlCheckErrorsToStop = 10;
TestParams = CreateTestParamsProvider() as iPerlCommunicationParams;
diff --git a/TBF/Rig/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs b/TBF/Rig/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs
index a560f065d..053420190 100644
--- a/TBF/Rig/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs
+++ b/TBF/Rig/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs
@@ -19,6 +19,13 @@ using Config.Entities;
using TBF.Resources;
using TBF.Rig.Sequences;
using TBF.Rig.TestMethods.iPerlCommunication.iPerlHead;
+using Sensus.iPerl.RfidCom.Exceptions;
+using Sensus.iPerl.RfidCom.Helper;
+using Sensus.iPerl.RfidCom;
+using System.Text.RegularExpressions;
+using Sensus.iPerl.RfidCom.Services;
+using System.Threading.Tasks;
+using Sensus.iPerl.RfidCom.Structures;
namespace TBF.Rig.TestMethods.iPerlCommunication
{
@@ -102,366 +109,14 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
public static Color DirNokColor = Color.Red;
- #region DLL_Interface
-
- [DllImport("libRfid1.dll", EntryPoint = "getDllVersion")] static extern unsafe int getDllVersion1();
- [DllImport("libRfid1.dll", EntryPoint = "openPort")] static extern unsafe int openPort1(int comPort);
- [DllImport("libRfid1.dll", EntryPoint = "closePort")] static extern unsafe int closePort1();
- [DllImport("libRfid1.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort1(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid1.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort1(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid2.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion2();
- [DllImport("libRfid2.dll", EntryPoint = "openPort")] static extern unsafe int openPort2(int comPort);
- [DllImport("libRfid2.dll", EntryPoint = "closePort")] static extern unsafe int closePort2();
- [DllImport("libRfid2.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort2(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid2.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort2(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid3.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion3();
- [DllImport("libRfid3.dll", EntryPoint = "openPort")] static extern unsafe int openPort3(int comPort);
- [DllImport("libRfid3.dll", EntryPoint = "closePort")] static extern unsafe int closePort3();
- [DllImport("libRfid3.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort3(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid3.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort3(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid4.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion4();
- [DllImport("libRfid4.dll", EntryPoint = "openPort")] static extern unsafe int openPort4(int comPort);
- [DllImport("libRfid4.dll", EntryPoint = "closePort")] static extern unsafe int closePort4();
- [DllImport("libRfid4.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort4(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid4.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort4(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid5.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion5();
- [DllImport("libRfid5.dll", EntryPoint = "openPort")] static extern unsafe int openPort5(int comPort);
- [DllImport("libRfid5.dll", EntryPoint = "closePort")] static extern unsafe int closePort5();
- [DllImport("libRfid5.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort5(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid5.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort5(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid6.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion6();
- [DllImport("libRfid6.dll", EntryPoint = "openPort")] static extern unsafe int openPort6(int comPort);
- [DllImport("libRfid6.dll", EntryPoint = "closePort")] static extern unsafe int closePort6();
- [DllImport("libRfid6.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort6(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid6.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort6(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid7.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion7();
- [DllImport("libRfid7.dll", EntryPoint = "openPort")] static extern unsafe int openPort7(int comPort);
- [DllImport("libRfid7.dll", EntryPoint = "closePort")] static extern unsafe int closePort7();
- [DllImport("libRfid7.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort7(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid7.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort7(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid8.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion8();
- [DllImport("libRfid8.dll", EntryPoint = "openPort")] static extern unsafe int openPort8(int comPort);
- [DllImport("libRfid8.dll", EntryPoint = "closePort")] static extern unsafe int closePort8();
- [DllImport("libRfid8.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort8(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid8.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort8(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid9.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion9();
- [DllImport("libRfid9.dll", EntryPoint = "openPort")] static extern unsafe int openPort9(int comPort);
- [DllImport("libRfid9.dll", EntryPoint = "closePort")] static extern unsafe int closePort9();
- [DllImport("libRfid9.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort9(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid9.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort9(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid10.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion10();
- [DllImport("libRfid10.dll", EntryPoint = "openPort")] static extern unsafe int openPort10(int comPort);
- [DllImport("libRfid10.dll", EntryPoint = "closePort")] static extern unsafe int closePort10();
- [DllImport("libRfid10.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort10(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid10.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort10(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid11.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion11();
- [DllImport("libRfid11.dll", EntryPoint = "openPort")] static extern unsafe int openPort11(int comPort);
- [DllImport("libRfid11.dll", EntryPoint = "closePort")] static extern unsafe int closePort11();
- [DllImport("libRfid11.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort11(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid11.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort11(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid12.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion12();
- [DllImport("libRfid12.dll", EntryPoint = "openPort")] static extern unsafe int openPort12(int comPort);
- [DllImport("libRfid12.dll", EntryPoint = "closePort")] static extern unsafe int closePort12();
- [DllImport("libRfid12.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort12(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid12.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort12(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid13.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion13();
- [DllImport("libRfid13.dll", EntryPoint = "openPort")] static extern unsafe int openPort13(int comPort);
- [DllImport("libRfid13.dll", EntryPoint = "closePort")] static extern unsafe int closePort13();
- [DllImport("libRfid13.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort13(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid13.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort13(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid14.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion14();
- [DllImport("libRfid14.dll", EntryPoint = "openPort")] static extern unsafe int openPort14(int comPort);
- [DllImport("libRfid14.dll", EntryPoint = "closePort")] static extern unsafe int closePort14();
- [DllImport("libRfid14.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort14(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid14.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort14(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid15.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion15();
- [DllImport("libRfid15.dll", EntryPoint = "openPort")] static extern unsafe int openPort15(int comPort);
- [DllImport("libRfid15.dll", EntryPoint = "closePort")] static extern unsafe int closePort15();
- [DllImport("libRfid15.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort15(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid15.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort15(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid16.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion16();
- [DllImport("libRfid16.dll", EntryPoint = "openPort")] static extern unsafe int openPort16(int comPort);
- [DllImport("libRfid16.dll", EntryPoint = "closePort")] static extern unsafe int closePort16();
- [DllImport("libRfid16.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort16(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid16.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort16(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid17.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion17();
- [DllImport("libRfid17.dll", EntryPoint = "openPort")] static extern unsafe int openPort17(int comPort);
- [DllImport("libRfid17.dll", EntryPoint = "closePort")] static extern unsafe int closePort17();
- [DllImport("libRfid17.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort17(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid17.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort17(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid18.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion18();
- [DllImport("libRfid18.dll", EntryPoint = "openPort")] static extern unsafe int openPort18(int comPort);
- [DllImport("libRfid18.dll", EntryPoint = "closePort")] static extern unsafe int closePort18();
- [DllImport("libRfid18.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort18(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid18.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort18(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid19.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion19();
- [DllImport("libRfid19.dll", EntryPoint = "openPort")] static extern unsafe int openPort19(int comPort);
- [DllImport("libRfid19.dll", EntryPoint = "closePort")] static extern unsafe int closePort19();
- [DllImport("libRfid19.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort19(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid19.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort19(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid20.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion20();
- [DllImport("libRfid20.dll", EntryPoint = "openPort")] static extern unsafe int openPort20(int comPort);
- [DllImport("libRfid20.dll", EntryPoint = "closePort")] static extern unsafe int closePort20();
- [DllImport("libRfid20.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort20(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid20.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort20(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid21.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion21();
- [DllImport("libRfid21.dll", EntryPoint = "openPort")] static extern unsafe int openPort21(int comPort);
- [DllImport("libRfid21.dll", EntryPoint = "closePort")] static extern unsafe int closePort21();
- [DllImport("libRfid21.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort21(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid21.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort21(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid22.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion22();
- [DllImport("libRfid22.dll", EntryPoint = "openPort")] static extern unsafe int openPort22(int comPort);
- [DllImport("libRfid22.dll", EntryPoint = "closePort")] static extern unsafe int closePort22();
- [DllImport("libRfid22.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort22(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid22.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort22(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid23.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion23();
- [DllImport("libRfid23.dll", EntryPoint = "openPort")] static extern unsafe int openPort23(int comPort);
- [DllImport("libRfid23.dll", EntryPoint = "closePort")] static extern unsafe int closePort23();
- [DllImport("libRfid23.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort23(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid23.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort23(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid24.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion24();
- [DllImport("libRfid24.dll", EntryPoint = "openPort")] static extern unsafe int openPort24(int comPort);
- [DllImport("libRfid24.dll", EntryPoint = "closePort")] static extern unsafe int closePort24();
- [DllImport("libRfid24.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort24(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid24.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort24(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid25.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion25();
- [DllImport("libRfid25.dll", EntryPoint = "openPort")] static extern unsafe int openPort25(int comPort);
- [DllImport("libRfid25.dll", EntryPoint = "closePort")] static extern unsafe int closePort25();
- [DllImport("libRfid25.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort25(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid25.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort25(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid26.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion26();
- [DllImport("libRfid26.dll", EntryPoint = "openPort")] static extern unsafe int openPort26(int comPort);
- [DllImport("libRfid26.dll", EntryPoint = "closePort")] static extern unsafe int closePort26();
- [DllImport("libRfid26.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort26(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid26.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort26(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid27.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion27();
- [DllImport("libRfid27.dll", EntryPoint = "openPort")] static extern unsafe int openPort27(int comPort);
- [DllImport("libRfid27.dll", EntryPoint = "closePort")] static extern unsafe int closePort27();
- [DllImport("libRfid27.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort27(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid27.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort27(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid28.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion28();
- [DllImport("libRfid28.dll", EntryPoint = "openPort")] static extern unsafe int openPort28(int comPort);
- [DllImport("libRfid28.dll", EntryPoint = "closePort")] static extern unsafe int closePort28();
- [DllImport("libRfid28.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort28(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid28.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort28(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid29.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion29();
- [DllImport("libRfid29.dll", EntryPoint = "openPort")] static extern unsafe int openPort29(int comPort);
- [DllImport("libRfid29.dll", EntryPoint = "closePort")] static extern unsafe int closePort29();
- [DllImport("libRfid29.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort29(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid29.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort29(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid30.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion30();
- [DllImport("libRfid30.dll", EntryPoint = "openPort")] static extern unsafe int openPort30(int comPort);
- [DllImport("libRfid30.dll", EntryPoint = "closePort")] static extern unsafe int closePort30();
- [DllImport("libRfid30.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort30(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid30.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort30(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid31.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion31();
- [DllImport("libRfid31.dll", EntryPoint = "openPort")] static extern unsafe int openPort31(int comPort);
- [DllImport("libRfid31.dll", EntryPoint = "closePort")] static extern unsafe int closePort31();
- [DllImport("libRfid31.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort31(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid31.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort31(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid32.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion32();
- [DllImport("libRfid32.dll", EntryPoint = "openPort")] static extern unsafe int openPort32(int comPort);
- [DllImport("libRfid32.dll", EntryPoint = "closePort")] static extern unsafe int closePort32();
- [DllImport("libRfid32.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort32(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid32.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort32(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid33.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion33();
- [DllImport("libRfid33.dll", EntryPoint = "openPort")] static extern unsafe int openPort33(int comPort);
- [DllImport("libRfid33.dll", EntryPoint = "closePort")] static extern unsafe int closePort33();
- [DllImport("libRfid33.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort33(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid33.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort33(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid34.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion34();
- [DllImport("libRfid34.dll", EntryPoint = "openPort")] static extern unsafe int openPort34(int comPort);
- [DllImport("libRfid34.dll", EntryPoint = "closePort")] static extern unsafe int closePort34();
- [DllImport("libRfid34.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort34(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid34.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort34(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid35.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion35();
- [DllImport("libRfid35.dll", EntryPoint = "openPort")] static extern unsafe int openPort35(int comPort);
- [DllImport("libRfid35.dll", EntryPoint = "closePort")] static extern unsafe int closePort35();
- [DllImport("libRfid35.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort35(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid35.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort35(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid36.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion36();
- [DllImport("libRfid36.dll", EntryPoint = "openPort")] static extern unsafe int openPort36(int comPort);
- [DllImport("libRfid36.dll", EntryPoint = "closePort")] static extern unsafe int closePort36();
- [DllImport("libRfid36.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort36(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid36.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort36(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid37.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion37();
- [DllImport("libRfid37.dll", EntryPoint = "openPort")] static extern unsafe int openPort37(int comPort);
- [DllImport("libRfid37.dll", EntryPoint = "closePort")] static extern unsafe int closePort37();
- [DllImport("libRfid37.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort37(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid37.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort37(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid38.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion38();
- [DllImport("libRfid38.dll", EntryPoint = "openPort")] static extern unsafe int openPort38(int comPort);
- [DllImport("libRfid38.dll", EntryPoint = "closePort")] static extern unsafe int closePort38();
- [DllImport("libRfid38.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort38(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid38.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort38(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid39.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion39();
- [DllImport("libRfid39.dll", EntryPoint = "openPort")] static extern unsafe int openPort39(int comPort);
- [DllImport("libRfid39.dll", EntryPoint = "closePort")] static extern unsafe int closePort39();
- [DllImport("libRfid39.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort39(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid39.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort39(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
- [DllImport("libRfid40.dll", EntryPoint = "getDllVersion")] public static extern unsafe int getDllVersion40();
- [DllImport("libRfid40.dll", EntryPoint = "openPort")] static extern unsafe int openPort40(int comPort);
- [DllImport("libRfid40.dll", EntryPoint = "closePort")] static extern unsafe int closePort40();
- [DllImport("libRfid40.dll", EntryPoint = "readRequestPort")] static extern unsafe int readRequestPort40(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
- [DllImport("libRfid40.dll", EntryPoint = "writeRequestPort")] static extern unsafe int writeRequestPort40(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
-
-
- ///
- /// Wrapper function with safe interface and unsafe body
- ///
- /// Water meter (iPerlHead) object
- /// Value returned by openPort(...)
- public static unsafe int OpenPort(IperlHead iperlHead)
- {
- if (iperlHead.DebugLevel != DebugMode.Normal) return 0; /// No function in debug mode
-
- switch (iperlHead.Position)
- {
- default:
- case 1: return openPort1(iperlHead.RfidComPortNr);
- case 2: return openPort2(iperlHead.RfidComPortNr);
- case 3: return openPort3(iperlHead.RfidComPortNr);
- case 4: return openPort4(iperlHead.RfidComPortNr);
- case 5: return openPort5(iperlHead.RfidComPortNr);
- case 6: return openPort6(iperlHead.RfidComPortNr);
- case 7: return openPort7(iperlHead.RfidComPortNr);
- case 8: return openPort8(iperlHead.RfidComPortNr);
- case 9: return openPort9(iperlHead.RfidComPortNr);
- case 10: return openPort10(iperlHead.RfidComPortNr);
- case 11: return openPort11(iperlHead.RfidComPortNr);
- case 12: return openPort12(iperlHead.RfidComPortNr);
- case 13: return openPort13(iperlHead.RfidComPortNr);
- case 14: return openPort14(iperlHead.RfidComPortNr);
- case 15: return openPort15(iperlHead.RfidComPortNr);
- case 16: return openPort16(iperlHead.RfidComPortNr);
- case 17: return openPort17(iperlHead.RfidComPortNr);
- case 18: return openPort18(iperlHead.RfidComPortNr);
- case 19: return openPort19(iperlHead.RfidComPortNr);
- case 20: return openPort20(iperlHead.RfidComPortNr);
- case 21: return openPort21(iperlHead.RfidComPortNr);
- case 22: return openPort22(iperlHead.RfidComPortNr);
- case 23: return openPort23(iperlHead.RfidComPortNr);
- case 24: return openPort24(iperlHead.RfidComPortNr);
- case 25: return openPort25(iperlHead.RfidComPortNr);
- case 26: return openPort26(iperlHead.RfidComPortNr);
- case 27: return openPort27(iperlHead.RfidComPortNr);
- case 28: return openPort28(iperlHead.RfidComPortNr);
- case 29: return openPort29(iperlHead.RfidComPortNr);
- case 30: return openPort30(iperlHead.RfidComPortNr);
- case 31: return openPort31(iperlHead.RfidComPortNr);
- case 32: return openPort32(iperlHead.RfidComPortNr);
- case 33: return openPort33(iperlHead.RfidComPortNr);
- case 34: return openPort34(iperlHead.RfidComPortNr);
- case 35: return openPort35(iperlHead.RfidComPortNr);
- case 36: return openPort36(iperlHead.RfidComPortNr);
- case 37: return openPort37(iperlHead.RfidComPortNr);
- case 38: return openPort38(iperlHead.RfidComPortNr);
- case 39: return openPort39(iperlHead.RfidComPortNr);
- case 40: return openPort40(iperlHead.RfidComPortNr);
- }
- }
-
- ///
- /// Wrapper function with safe interface and unsafe body
- ///
- /// Water meter (iPerlHead) object
- /// Value returned by openPort(...)
- public static unsafe int ClosePort(IperlHead iperlHead)
- {
- if (iperlHead.DebugLevel != DebugMode.Normal) return 0; /// No function in debug mode
-
- switch (iperlHead.Position)
- {
- default:
- case 1: return closePort1();
- case 2: return closePort2();
- case 3: return closePort3();
- case 4: return closePort4();
- case 5: return closePort5();
- case 6: return closePort6();
- case 7: return closePort7();
- case 8: return closePort8();
- case 9: return closePort9();
- case 10: return closePort10();
- case 11: return closePort11();
- case 12: return closePort12();
- case 13: return closePort13();
- case 14: return closePort14();
- case 15: return closePort15();
- case 16: return closePort16();
- case 17: return closePort17();
- case 18: return closePort18();
- case 19: return closePort19();
- case 20: return closePort20();
- case 21: return closePort21();
- case 22: return closePort22();
- case 23: return closePort23();
- case 24: return closePort24();
- case 25: return closePort25();
- case 26: return closePort26();
- case 27: return closePort27();
- case 28: return closePort28();
- case 29: return closePort29();
- case 30: return closePort30();
- case 31: return closePort31();
- case 32: return closePort32();
- case 33: return closePort33();
- case 34: return closePort34();
- case 35: return closePort35();
- case 36: return closePort36();
- case 37: return closePort37();
- case 38: return closePort38();
- case 39: return closePort39();
- case 40: return closePort40();
- }
- }
-
+ #region iPerl_Head_RFID_Interface: ReadRequestPort, WriteRequestPort
///
/// Wrapper function with safe interface and unsafe body
///
/// Water meter (iPerlHead) object
/// Value returned by readRequestPort(...)
- public static unsafe int ReadRequestPort(IperlHead iperlHead, MessageID messageID, int offset, int length, out byte[] buffer, int timeout)
- {
+ public static int ReadRequestPort(IperlHead iperlHead, MessageID messageID, int offset, int length, out byte[] buffer)
+ {
Thread.Sleep(Math.Max(250, cfg.DelayBetweenRetries));
if (iperlHead.DebugLevel != DebugMode.Normal)
@@ -471,23 +126,23 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
///
if ((messageID == MessageID.Configuration) && (offset == 0) && (length == ConfigStruct.Length))
{
- buffer = new byte[ConfigStruct.Length] { 3, 3, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0, 1,2,3,4,5, 160, 0,0,0,0, 0,0, 0,0, 0,0 };
+ buffer = new byte[ConfigStruct.Length] { 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
}
else if ((messageID == MessageID.Calibration) && (offset == 0) && (length == CalibrationStruct.Length))
{
- buffer = new byte[CalibrationStruct.Length] { 3, 0, 150,10, 0, 0, 0,0, 0,0,0,0,0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0,0,0, 1,2,3,4,5, 0, 0 };
+ buffer = new byte[CalibrationStruct.Length] { 3, 0, 150, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 0, 0 };
}
else if ((messageID == MessageID.Calibration) && (offset == 0) && (length == CalibrationStructV4.Length))
{
- buffer = new byte[CalibrationStructV4.Length] { 3, 0, 150,10, 0, 0, 0,0, 0,0,0,0,0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0,0,0, 1,2,3,4,5, 0, 0, 150,10 };
+ buffer = new byte[CalibrationStructV4.Length] { 3, 0, 150, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 0, 0, 150, 10 };
}
else if ((messageID == MessageID.Calibration) && (offset == 2) && (length == 2))
{
- buffer = new byte[2] { 150,10 };
+ buffer = new byte[2] { 150, 10 };
}
else if ((messageID == MessageID.Calibration) && (offset == 34) && (length == 2))
{
- buffer = new byte[2] { 150,10 };
+ buffer = new byte[2] { 150, 10 };
}
else if ((messageID == MessageID.MetrologyMemory) && (offset == Q2CorrFactorsAddr) && (length == 2))
{
@@ -501,175 +156,116 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
return iperlHead.Name.Equals("iPerl13") ? 2 : 0; /// Simulates an error on position 13
}
- buffer = new byte[length];
- byte[] buf = new byte[200];
- ///
- fixed (byte* pBuf = buf)
- {
- int retv;
-
- switch (iperlHead.Position)
+ for (int i = 0; i < cfg.MaxCommRetries; i++)
+ {
+ using (RfidLogic writer = new RfidLogic($"COM{iperlHead.RfidComPortNr}"))
{
- default:
- case 1: retv = readRequestPort1(messageID, offset, length, pBuf, timeout); break;
- case 2: retv = readRequestPort2(messageID, offset, length, pBuf, timeout); break;
- case 3: retv = readRequestPort3(messageID, offset, length, pBuf, timeout); break;
- case 4: retv = readRequestPort4(messageID, offset, length, pBuf, timeout); break;
- case 5: retv = readRequestPort5(messageID, offset, length, pBuf, timeout); break;
- case 6: retv = readRequestPort6(messageID, offset, length, pBuf, timeout); break;
- case 7: retv = readRequestPort7(messageID, offset, length, pBuf, timeout); break;
- case 8: retv = readRequestPort8(messageID, offset, length, pBuf, timeout); break;
- case 9: retv = readRequestPort9(messageID, offset, length, pBuf, timeout); break;
- case 10: retv = readRequestPort10(messageID, offset, length, pBuf, timeout); break;
- case 11: retv = readRequestPort11(messageID, offset, length, pBuf, timeout); break;
- case 12: retv = readRequestPort12(messageID, offset, length, pBuf, timeout); break;
- case 13: retv = readRequestPort13(messageID, offset, length, pBuf, timeout); break;
- case 14: retv = readRequestPort14(messageID, offset, length, pBuf, timeout); break;
- case 15: retv = readRequestPort15(messageID, offset, length, pBuf, timeout); break;
- case 16: retv = readRequestPort16(messageID, offset, length, pBuf, timeout); break;
- case 17: retv = readRequestPort17(messageID, offset, length, pBuf, timeout); break;
- case 18: retv = readRequestPort18(messageID, offset, length, pBuf, timeout); break;
- case 19: retv = readRequestPort19(messageID, offset, length, pBuf, timeout); break;
- case 20: retv = readRequestPort20(messageID, offset, length, pBuf, timeout); break;
- case 21: retv = readRequestPort21(messageID, offset, length, pBuf, timeout); break;
- case 22: retv = readRequestPort22(messageID, offset, length, pBuf, timeout); break;
- case 23: retv = readRequestPort23(messageID, offset, length, pBuf, timeout); break;
- case 24: retv = readRequestPort24(messageID, offset, length, pBuf, timeout); break;
- case 25: retv = readRequestPort25(messageID, offset, length, pBuf, timeout); break;
- case 26: retv = readRequestPort26(messageID, offset, length, pBuf, timeout); break;
- case 27: retv = readRequestPort27(messageID, offset, length, pBuf, timeout); break;
- case 28: retv = readRequestPort28(messageID, offset, length, pBuf, timeout); break;
- case 29: retv = readRequestPort29(messageID, offset, length, pBuf, timeout); break;
- case 30: retv = readRequestPort30(messageID, offset, length, pBuf, timeout); break;
- case 31: retv = readRequestPort31(messageID, offset, length, pBuf, timeout); break;
- case 32: retv = readRequestPort32(messageID, offset, length, pBuf, timeout); break;
- case 33: retv = readRequestPort33(messageID, offset, length, pBuf, timeout); break;
- case 34: retv = readRequestPort34(messageID, offset, length, pBuf, timeout); break;
- case 35: retv = readRequestPort35(messageID, offset, length, pBuf, timeout); break;
- case 36: retv = readRequestPort36(messageID, offset, length, pBuf, timeout); break;
- case 37: retv = readRequestPort37(messageID, offset, length, pBuf, timeout); break;
- case 38: retv = readRequestPort38(messageID, offset, length, pBuf, timeout); break;
- case 39: retv = readRequestPort39(messageID, offset, length, pBuf, timeout); break;
- case 40: retv = readRequestPort40(messageID, offset, length, pBuf, timeout); break;
+ try
+ {
+ byte[] response = writer.ReadRequest((byte)messageID, offset, length, cfg.CommTimeout);
+ string hexString = RfidHelper.ConvertByteArrayToHexString(response);
+ string swapHexString = RfidHelper.SwapHexcode(hexString);
+ string decString = RfidHelper.HexLiteral2Unsigned(RfidHelper.SwapHexcode(hexString)).ToString();
+
+ if (length > 10)
+ {
+ //if the result only contains "00"s we are working on the wrong COM port
+ // or the module just isn't connected
+ if (Regex.IsMatch(hexString, @"^(00)\1+$"))
+ {
+ rfidDataLogger.Error($"COM{iperlHead.RfidComPortNr}: ReadRequestPort ({messageID},...) <- Error: No RFID signal.");
+ throw new RfidValidationException("Error_Rfid_NoSignal");
+ }
+
+ //if the result only contains "03"s the meter did not answer.
+ // Might be due to the module being positioned incorrectly.
+ if (Regex.IsMatch(hexString, @"^(03)\1+$"))
+ {
+ rfidDataLogger.Error($"COM{iperlHead.RfidComPortNr}: ReadRequestPort ({messageID},...) <- Error: No meter signal.");
+ throw new RfidValidationException("Error_Rfid_NoAnswerFromMeter");
+ }
+ }
+
+ writer.ClosePort();
+ buffer = response;
+ rfidDataLogger.Info($"{iperlHead.Name} ({iperlHead.SerialNr}): ReadRequestPort(COM{iperlHead.RfidComPortNr},...) returned HEX: {hexString}; SwapHexCodeToDecimal: {decString}");
+ return 0;
+ }
+ catch (RfidDataNotAvailableException)
+ {
+ if (/*RfidHelper.IsPassThrough(messageID)*/ messageID == MessageID.ASICRegisterReadTest || messageID == MessageID.RadioPassthrough)
+ {
+ rfidDataLogger.Info($"COM{iperlHead.RfidComPortNr}: ReadRequestPort ({messageID},...) {(i > 0 ? "<- Error: Invalid Pass-Through data." : "<- Info: Wait for Pass-Through data.")}");
+ Thread.Sleep(cfg.PassThroughWaitTime);
+ }
+ else
+ {
+ Thread.Sleep(cfg.WaitTimeAfterFailure);
+ }
+ }
+ catch (RfidValidationException)
+ {
+ Thread.Sleep(cfg.WaitTimeAfterFailure);
+ }
+ catch (Exception ex)
+ {
+ rfidDataLogger.Error($"COM{iperlHead.RfidComPortNr}: ReadRequestPort ({messageID},...) {ex.Message}");
+ Thread.Sleep(cfg.WaitTimeAfterFailure);
+ }
}
-
- for (int i = 0; i < length; i++) buffer[i] = buf[i];
-
- ///
- /// Logging
- ///
- string name = string.Format("{0}({1})", iperlHead.Name, iperlHead.SerialNr);
- if ((messageID == MessageID.Configuration) && (offset == 0) && (length == ConfigStruct.Length))
- rfidDataLogger.InfoFormat("{0}: ReadRequestPort({1},...) returned {2} {3}", name, messageID, retv, (retv != 0) ? "!" : ConfigStruct.FromByteArray(buffer).ToString());
- else if ((messageID == MessageID.Calibration) && (offset == 0) && (length == CalibrationStruct.Length))
- rfidDataLogger.InfoFormat("{0}: ReadRequestPort({1},...) returned {2} {3}", name, messageID, retv, (retv != 0) ? "!" : CalibrationStruct.FromByteArray(buffer).ToString());
- else if ((messageID == MessageID.Calibration) && (offset == 0) && (length == CalibrationStructV4.Length))
- rfidDataLogger.InfoFormat("{0}: ReadRequestPort({1},...) returned {2} {3}", name, messageID, retv, (retv != 0) ? "!" : CalibrationStructV4.FromByteArray(buffer).ToString());
- else if ((messageID == MessageID.Calibration) && (offset == 2) && (length == 2))
- rfidDataLogger.InfoFormat("{0}: ReadRequestPort({1},2,2,...) returned {2} {3}", name, messageID, retv, (retv != 0) ? "!" : string.Format("Cal={0}", buf[0] + 256 * buf[1]));
- else if ((messageID == MessageID.Calibration) && (offset == 34) && (length == 2))
- rfidDataLogger.InfoFormat("{0}: ReadRequestPort({1},34,2,...) returned {2} {3}", name, messageID, retv, (retv != 0) ? "!" : string.Format("CalLNA={0}", buf[0] + 256 * buf[1]));
- else if ((messageID == MessageID.MetrologyMemory) && (offset == Q2CorrFactorsAddr) && (length == 2))
- rfidDataLogger.InfoFormat("{0}: ReadRequestPort({1},6264,2,...) returned {2} {3}", name, messageID, retv, (retv != 0) ? "!" : string.Format("LR={0} RL={1}", (int)buf[0], (int)buf[1]));
- else
- rfidDataLogger.InfoFormat("{0}: ReadRequestPort({1}, {2}, {3}, ...) returned {4} {5}", name, messageID, offset, length, retv, (retv != 0) ? "!" : "");
-
- return retv;
}
- }
+ rfidDataLogger.Error($"RFID reading failed after {cfg.MaxCommRetries} retries: COM{iperlHead.RfidComPortNr}: ReadRequestPort ({messageID},...)");
+ log.Error($"RFID reading failed after {cfg.MaxCommRetries} retries: COM{iperlHead.RfidComPortNr}: ReadRequestPort ({messageID},...)");
+ buffer = new byte[length];
+ return 3;
+ }
- ///
- /// Wrapper function with safe interface and unsafe body
- ///
+ ///
+ /// Wrapper function with safe interface and unsafe body
+ ///
/// Water meter (iPerlHead) object
- /// Value returned by writeRequestPort(...)
- public static unsafe int WriteRequestPort(IperlHead iperlHead, MessageID messageID, int offset, int length, byte[] buffer, int timeout)
- {
+ /// Value returned by writeRequestPort(...)
+ public static int WriteRequestPort(IperlHead iperlHead, MessageID messageID, int offset, int length, byte[] buffer)
+ {
Thread.Sleep(Math.Max(250, cfg.DelayBetweenRetries));
if (iperlHead.DebugLevel != DebugMode.Normal) return 0;
- fixed (byte* pBuf = buffer)
- {
- int retv;
+ RfidLogic writer = new RfidLogic($"COM{iperlHead.RfidComPortNr}");
+ string payload = RfidHelper.ConvertByteArrayToHexString(buffer);
+ //byte messageId = (byte)((int)valueDefinition.MessageType);
+ //byte[] payloadBytes = RfidHelper.HexStringToByteArray(payload);
- switch (iperlHead.Position)
+ for (var i = 0; i < cfg.MaxCommRetries; i++)
+ {
+ try
{
- default:
- case 1: retv = writeRequestPort1(messageID, offset, length, pBuf, timeout); break;
- case 2: retv = writeRequestPort2(messageID, offset, length, pBuf, timeout); break;
- case 3: retv = writeRequestPort3(messageID, offset, length, pBuf, timeout); break;
- case 4: retv = writeRequestPort4(messageID, offset, length, pBuf, timeout); break;
- case 5: retv = writeRequestPort5(messageID, offset, length, pBuf, timeout); break;
- case 6: retv = writeRequestPort6(messageID, offset, length, pBuf, timeout); break;
- case 7: retv = writeRequestPort7(messageID, offset, length, pBuf, timeout); break;
- case 8: retv = writeRequestPort8(messageID, offset, length, pBuf, timeout); break;
- case 9: retv = writeRequestPort9(messageID, offset, length, pBuf, timeout); break;
- case 10: retv = writeRequestPort10(messageID, offset, length, pBuf, timeout); break;
- case 11: retv = writeRequestPort11(messageID, offset, length, pBuf, timeout); break;
- case 12: retv = writeRequestPort12(messageID, offset, length, pBuf, timeout); break;
- case 13: retv = writeRequestPort13(messageID, offset, length, pBuf, timeout); break;
- case 14: retv = writeRequestPort14(messageID, offset, length, pBuf, timeout); break;
- case 15: retv = writeRequestPort15(messageID, offset, length, pBuf, timeout); break;
- case 16: retv = writeRequestPort16(messageID, offset, length, pBuf, timeout); break;
- case 17: retv = writeRequestPort17(messageID, offset, length, pBuf, timeout); break;
- case 18: retv = writeRequestPort18(messageID, offset, length, pBuf, timeout); break;
- case 19: retv = writeRequestPort19(messageID, offset, length, pBuf, timeout); break;
- case 20: retv = writeRequestPort20(messageID, offset, length, pBuf, timeout); break;
- case 21: retv = writeRequestPort21(messageID, offset, length, pBuf, timeout); break;
- case 22: retv = writeRequestPort22(messageID, offset, length, pBuf, timeout); break;
- case 23: retv = writeRequestPort23(messageID, offset, length, pBuf, timeout); break;
- case 24: retv = writeRequestPort24(messageID, offset, length, pBuf, timeout); break;
- case 25: retv = writeRequestPort25(messageID, offset, length, pBuf, timeout); break;
- case 26: retv = writeRequestPort26(messageID, offset, length, pBuf, timeout); break;
- case 27: retv = writeRequestPort27(messageID, offset, length, pBuf, timeout); break;
- case 28: retv = writeRequestPort28(messageID, offset, length, pBuf, timeout); break;
- case 29: retv = writeRequestPort29(messageID, offset, length, pBuf, timeout); break;
- case 30: retv = writeRequestPort30(messageID, offset, length, pBuf, timeout); break;
- case 31: retv = writeRequestPort31(messageID, offset, length, pBuf, timeout); break;
- case 32: retv = writeRequestPort32(messageID, offset, length, pBuf, timeout); break;
- case 33: retv = writeRequestPort33(messageID, offset, length, pBuf, timeout); break;
- case 34: retv = writeRequestPort34(messageID, offset, length, pBuf, timeout); break;
- case 35: retv = writeRequestPort35(messageID, offset, length, pBuf, timeout); break;
- case 36: retv = writeRequestPort36(messageID, offset, length, pBuf, timeout); break;
- case 37: retv = writeRequestPort37(messageID, offset, length, pBuf, timeout); break;
- case 38: retv = writeRequestPort38(messageID, offset, length, pBuf, timeout); break;
- case 39: retv = writeRequestPort39(messageID, offset, length, pBuf, timeout); break;
- case 40: retv = writeRequestPort40(messageID, offset, length, pBuf, timeout); break;
+ if (writer.ClosePort()) writer.OpenPort();
+ writer.WriteRequest((byte)messageID, offset, length, buffer, cfg.CommTimeout, false);
+ writer.ClosePort();
+ rfidDataLogger.InfoFormat($"{iperlHead.Name}({iperlHead.SerialNr},COM{iperlHead.RfidComPortNr}): WriteRequestPort({messageID}, {offset}, {length}, {payload})");
+ return 0;
}
-
- ///
- /// Logging
- ///
- string name = string.Format("{0}({1})", iperlHead.Name, iperlHead.SerialNr);
- if (length == 1)
- rfidDataLogger.InfoFormat("{0}: WriteRequestPort({2}, {3}, {4}, {5}) returned {1} {6}", name, retv, messageID, offset, length, pBuf[0].ToString("X2"), (retv != 0) ? "!" : "");
- else if (length == 2)
+ catch (Exception ex)
{
- if (messageID == MessageID.Calibration && offset == 2)
- {
- UInt16 calibFactor = (UInt16)(pBuf[0] + 256 * pBuf[1]);
- rfidDataLogger.InfoFormat("{0}: WriteRequestPort(Cal={1}) returned {2} {3}", name, calibFactor, retv, (retv != 0) ? "!" : "");
- }
- else if (messageID == MessageID.Calibration && offset == 34)
+ rfidDataLogger.Error($"COM{iperlHead.RfidComPortNr}: Error: {ex.Message}");
+ Thread.Sleep(cfg.WaitTimeAfterFailure);
+ if (i > 1)
{
- UInt16 calibFactor = (UInt16)(pBuf[0] + 256 * pBuf[1]);
- rfidDataLogger.InfoFormat("{0}: WriteRequestPort(CalLNA={1}) returned {2} {3}", name, calibFactor, retv, (retv != 0) ? "!" : "");
+ rfidDataLogger.Error($"COM{iperlHead.RfidComPortNr}: Reopen the com port.");
+ writer.ClosePort();
}
- else
- rfidDataLogger.InfoFormat("{0}: WriteRequestPort({2}, {3}, {4}, {5} {6}) returned {1} {7}", name, retv, messageID, offset, length, pBuf[0].ToString("X2"), pBuf[1].ToString("X2"), (retv != 0) ? "!" : "");
}
- else
- rfidDataLogger.InfoFormat("{0}: WriteRequestPort({2}, {3}, {4}, {5} {6} ...) returned {1} {7}", name, retv, messageID, offset, length, pBuf[0].ToString("X2"), pBuf[1].ToString("X2"), (retv != 0) ? "!" : "");
-
- return retv;
}
- }
-
-#endregion DLL_Interface
+ writer.ClosePort();
+ rfidDataLogger.Error($"RFID writing failed after {cfg.MaxCommRetries} retries: COM{iperlHead.RfidComPortNr}: WriteRequestPort ({messageID},...) {System.Text.Encoding.UTF8.GetString(buffer)}");
+ log.Error($"RFID writing failed after {cfg.MaxCommRetries} retries: COM{iperlHead.RfidComPortNr}: WriteRequestPort ({messageID},...) {System.Text.Encoding.UTF8.GetString(buffer)}");
+ return 2;
+ }
+ #endregion iPerl_Head_RFID_Interface: ReadRequestPort, WriteRequestPort
- readonly bool checkBoxesEditMode;
+ readonly bool checkBoxesEditMode;
DateTime startTime;
int startTimeSec;
@@ -732,20 +328,35 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
public iPerlCommunicationForm(bool isCheckBoxesEditMode)
: this()
{
+ iPerlCommunicationForm.cfg = new TestMethodCfg(null); // default iPerl Head communication params
if (isCheckBoxesEditMode)
{
checkBoxesEditMode = true;
saveButton.Visible = true;
activityLabel.Text = Strings.Optical_heads;
ShuffleTextBoxes(ProcessData.WMsCount, ProcessData.LineSize);
+
+ ContextMenu cm = new ContextMenu();
+ cm.MenuItems.Add(NewMenuItem("Read PCB Number" , "ReadPCB"));
+ cm.MenuItems.Add(NewMenuItem("Enter Test Mode" , "StartTestMode"));
+ cm.MenuItems.Add(NewMenuItem("Turn Off Test Mode (Enter Active Mode)", "TurnOffTestMode"));
+ cm.MenuItems.Add(NewMenuItem("Set Production Mode (Radio not start with flow)" , "SetProductionMode"));
+ cm.MenuItems.Add(NewMenuItem("Turn Off Radio" , "TurnOffRadio"));
+ if (Users.CurrentUser.AuthorizedAs == AuthorizedAs.PowerUser)
+ {
+ //cm.MenuItems.Add(NewMenuItem("Test WriteRequestPort (u8_Customer_Text)", "WriteRequestPort_u8_Customer_Text"));
+ cm.MenuItems.Add(NewMenuItem("Open sealing", "OpenSealing"));
+ }
+ this.ContextMenu = cm;
}
}
+
- ///
+ ///
/// Constructor for one iPerlCommunication 'test'
///
/// Number of text boxes for serial numbers
- public iPerlCommunicationForm(TestMethod testMethod, Test test, iPerlCommunicationParams testParams)
+ public iPerlCommunicationForm(TestMethod testMethod, Test test, iPerlCommunicationParams testParams)
: this(testMethod, new List { test }, new List { testParams })
{
}
@@ -946,7 +557,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
ResizeDlgToFitEnabledControls();
}
-
void ResizeDlgToFitEnabledControls()
{
int xMax = 0;
@@ -1074,7 +684,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
}
- #region Forced close handling
+ #region Forced close handling
public void StartForceCloseHandler()
{
@@ -1097,7 +707,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
Close();
}
- #endregion
+ #endregion
///
@@ -1353,30 +963,19 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
ihead.ConfigStruct = null; /// Clear previous ConfigStruct, avoid reuse of (not anymore valid) PCB Number
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
CommErr error = CommErr.Read;
int readRetVal = 0;
/// Read configuration
byte[] config = null;
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ readRetVal = ReadRequestPort(ihead, MessageID.Configuration, 0, ConfigStruct.Length, out config);
+ if (readRetVal == 0)
{
- readRetVal = ReadRequestPort(ihead, MessageID.Configuration, 0, ConfigStruct.Length, out config, cfg.CommTimeout);
- if (readRetVal == 0)
- {
- error = CommErr.None;
- ihead.ConfigStruct = ConfigStruct.FromByteArray(config);
- resultStr = ihead.ConfigStruct.ToString(1);
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ error = CommErr.None;
+ ihead.ConfigStruct = ConfigStruct.FromByteArray(config);
+ resultStr = ihead.ConfigStruct.ToString(1);
}
- ClosePort(ihead); /// Close RFID port
-
return error + Math.Max(0, Math.Min(readRetVal, 4));
}
@@ -1415,8 +1014,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
}
/// Communication necessary
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
CommErr error = CommErr.None;
if (error==CommErr.None && (ihead.ConfigStruct.TestModeConfig != testModeConfig) && (ihead.ConfigStruct.MeterState != MeterState.Active))
@@ -1424,16 +1021,9 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Switch to Active mode in order to change TestModeConfig
error = CommErr.CmdActive;
byte[] cmd = new byte[1] { (byte)Command.SetActiveMode };
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == WriteRequestPort(ihead, MessageID.Command, 0, 1, cmd))
{
- if (0 == WriteRequestPort(ihead, MessageID.Command, 0, 1, cmd, cfg.CommTimeout))
- {
- error = CommErr.None;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ error = CommErr.None;
}
/// Delay min. 250 ms
@@ -1445,17 +1035,10 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Change the TestModeConfig if necessary
error = CommErr.Write;
byte[] tstMdCfg = new byte[1] { testModeConfig };
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == WriteRequestPort(ihead, MessageID.Configuration, 21, 1, tstMdCfg))
{
- if (0 == WriteRequestPort(ihead, MessageID.Configuration, 21, 1, tstMdCfg, cfg.CommTimeout))
- {
- ihead.ConfigStruct.Update(21, tstMdCfg);
- error = CommErr.None;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ ihead.ConfigStruct.Update(21, tstMdCfg);
+ error = CommErr.None;
}
/// Delay min. 250 ms
@@ -1467,16 +1050,9 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Switch to test mode
error = CommErr.CmdTest;
byte[] cmd = new byte[1] { (byte)Command.SetTestMode };
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == WriteRequestPort(ihead, MessageID.Command, 0, 1, cmd))
{
- if (0 == WriteRequestPort(ihead, MessageID.Command, 0, 1, cmd, cfg.CommTimeout))
- {
- error = CommErr.None;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ error = CommErr.None;
}
/// Delay min. 250 ms
@@ -1489,26 +1065,17 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Verify the configuration
error = CommErr.Verify;
byte[] config = null;
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == ReadRequestPort(ihead, MessageID.Configuration, 0, ConfigStruct.Length, out config))
{
- if (0 == ReadRequestPort(ihead, MessageID.Configuration, 0, ConfigStruct.Length, out config, cfg.CommTimeout))
+ ihead.ConfigStruct = ConfigStruct.FromByteArray(config);
+ if ((ihead.ConfigStruct.MeterState == MeterState.Test) && (ihead.ConfigStruct.TestModeConfig == testModeConfig))
{
- ihead.ConfigStruct = ConfigStruct.FromByteArray(config);
- if ((ihead.ConfigStruct.MeterState == MeterState.Test) && (ihead.ConfigStruct.TestModeConfig == testModeConfig))
- {
- error = CommErr.None;
- resultStr = ihead.ConfigStruct.ToString(1);
- break;
- }
+ error = CommErr.None;
+ resultStr = ihead.ConfigStruct.ToString(1);
}
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
}
}
- ClosePort(ihead); /// Close RFID port
-
return error;
}
@@ -1522,22 +1089,13 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// true on success
static CommErr SetActiveMode(int threadId, IperlHead ihead, ref string resultStr)
{
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
CommErr error = CommErr.CmdActive;
/// Switch to active mode
byte[] cmd = new byte[1] { (byte)Command.SetActiveMode };
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == WriteRequestPort(ihead, MessageID.Command, 0, 1, cmd))
{
- if (0 == WriteRequestPort(ihead, MessageID.Command, 0, 1, cmd, cfg.CommTimeout))
- {
- error = CommErr.None;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ error = CommErr.None;
}
#if VERIFY_ACTIVE_MODE
@@ -1547,25 +1105,18 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Read configuration
byte[] cfg_0_3 = null;
- for (int j = 0; j < cfg.MaxCommRetries; j++)
- {
if (ihead.ConfigStruct == null)
{
- if (0 == ReadRequestPort(threadId, ihead, MessageID.Configuration, 0, 4, out cfg_0_3, cfg.CommTimeout))
+ if (0 == ReadRequestPort(threadId, ihead, MessageID.Configuration, 0, 4, out cfg_0_3))
{
ihead.ConfigStruct.Update(0, cfg_0_3);
if (ihead.ConfigStruct.MeterState == MeterState.Active)
{
error = CommErr.None;
resultStr = ihead.ConfigStruct.ToString(1);
- break;
}
}
}
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
- }
}
#else
if (error == CommErr.None)
@@ -1577,8 +1128,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
}
#endif
- ClosePort(ihead); /// Close RFID port
-
return error;
}
@@ -1593,37 +1142,26 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
{
if (ihead.CommFailed) return CommErr.CommFailed;
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
CommErr error = CommErr.Read;
int readRetVal = 0;
/// Read calibration
byte[] calib = null;
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ readRetVal = ReadRequestPort(ihead, MessageID.Calibration, 0, CalibrationStruct.Length, out calib);
+ if (readRetVal == 0)
{
- readRetVal = ReadRequestPort(ihead, MessageID.Calibration, 0, CalibrationStruct.Length, out calib, cfg.CommTimeout);
- if (readRetVal == 0)
- {
- ihead.CalibrationStruct = CalibrationStruct.FromByteArray(calib);
+ ihead.CalibrationStruct = CalibrationStruct.FromByteArray(calib);
- if (wm.OrigCalibFactor == 0)
- {
- wm.OrigCalibFactor = ihead.CalibrationStruct.Calibration;
- wm.FWVersion = ihead.CalibrationStruct.FWVersionStr();
- }
+ if (wm.OrigCalibFactor == 0)
+ {
+ wm.OrigCalibFactor = ihead.CalibrationStruct.Calibration;
+ wm.FWVersion = ihead.CalibrationStruct.FWVersionStr();
+ }
- resultStr = ihead.CalibrationStruct.ToString();
- error = ihead.VerifyIPerlType() ? CommErr.None : CommErr.WrongIPerlType;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ resultStr = ihead.CalibrationStruct.ToString();
+ error = ihead.VerifyIPerlType() ? CommErr.None : CommErr.WrongIPerlType;
}
- ClosePort(ihead); /// Close RFID port
-
return error + Math.Max(0, Math.Min(readRetVal, 4));
}
@@ -1638,38 +1176,27 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
{
if (ihead.CommFailed) return CommErr.CommFailed;
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
CommErr error = CommErr.Read;
int readRetVal = 0;
/// Read calibration
byte[] calib = null;
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ readRetVal = ReadRequestPort(ihead, MessageID.Calibration, 0, CalibrationStructV4.Length, out calib);
+ if (readRetVal == 0)
{
- readRetVal = ReadRequestPort(ihead, MessageID.Calibration, 0, CalibrationStructV4.Length, out calib, cfg.CommTimeout);
- if (readRetVal == 0)
+ ihead.CalibrationStructV4 = CalibrationStructV4.FromByteArray(calib);
+
+ if ((wm.OrigCalibFactor == 0) && (wm.OrigCalibFactorLNA == 0))
{
- ihead.CalibrationStructV4 = CalibrationStructV4.FromByteArray(calib);
-
- if ((wm.OrigCalibFactor == 0) && (wm.OrigCalibFactorLNA == 0))
- {
- wm.OrigCalibFactor = ihead.CalibrationStructV4.Calibration;
- wm.OrigCalibFactorLNA = ihead.CalibrationStructV4.CalibrationLNA;
- wm.FWVersion = ihead.CalibrationStructV4.FWVersionStr();
- }
-
- resultStr = ihead.CalibrationStructV4.ToString();
- error = ihead.VerifyIPerlType() ? CommErr.None : CommErr.WrongIPerlType;
- break;
+ wm.OrigCalibFactor = ihead.CalibrationStructV4.Calibration;
+ wm.OrigCalibFactorLNA = ihead.CalibrationStructV4.CalibrationLNA;
+ wm.FWVersion = ihead.CalibrationStructV4.FWVersionStr();
}
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ resultStr = ihead.CalibrationStructV4.ToString();
+ error = ihead.VerifyIPerlType() ? CommErr.None : CommErr.WrongIPerlType;
}
- ClosePort(ihead); /// Close RFID port
-
return error + Math.Max(0, Math.Min(readRetVal, 4));
}
@@ -1777,43 +1304,33 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
///
/// Start communication with iPerl
///
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
CommErr error;
byte[] data = new byte[2] { (byte)(newCalibFactor & 0x00FF), (byte)((newCalibFactor >> 8) & 0x00FF) };
- int writeAndVerifyRetries = 0;
- do
+ ///
+ /// Write the new calibration factor (up to cfg.MaxCommRetries tims)
+ ///
+ error = CommErr.Write;
+ if (0 == WriteRequestPort(ihead, MessageID.Calibration, 2, 2, data))
{
///
- /// Write the new calibration factor (up to cfg.MaxCommRetries tims)
- ///
- error = CommErr.Write;
- if (0 == WriteRequestPort(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))
- {
- 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])
- {
- error = CommErr.None;
- ihead.CalibrationStruct.Update(data, 2);
- wm.CalibFactor = newCalibFactor;
- resultStr = ihead.CalibrationStruct.ToString();
- break;
- }
- }
+ /// 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))
+ {
+ 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])
+ {
+ error = CommErr.None;
+ ihead.CalibrationStruct.Update(data, 2);
+ wm.CalibFactor = newCalibFactor;
+ resultStr = ihead.CalibrationStruct.ToString();
+ }
}
-
- ihead.CalibrationStruct.Update(data, 2);
}
- while (++writeAndVerifyRetries <= cfg.MaxCommRetries);
- ClosePort(ihead); /// Close RFID port
+ ihead.CalibrationStruct.Update(data, 2);
return error;
}
@@ -1943,59 +1460,41 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
///
/// Start communication with iPerl
///
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
CommErr error;
byte[] data = new byte[2] { (byte)(newCalibFactor & 0x00FF), (byte)((newCalibFactor >> 8) & 0x00FF) };
byte[] dataLNA = new byte[2] { (byte)(newCalibFactorLNA & 0x00FF), (byte)((newCalibFactorLNA >> 8) & 0x00FF) };
- int writeAndVerifyRetries = 0;
- do
+ ///
+ /// Write the new calibration factor (up to cfg.MaxCommRetries tims)
+ ///
+ error = CommErr.Write;
+ if (0 == WriteRequestPort(ihead, MessageID.Calibration, 2, 2, data) &&
+ 0 == WriteRequestPort(ihead, MessageID.Calibration, 34, 2, dataLNA))
{
///
- /// Write the new calibration factor (up to cfg.MaxCommRetries tims)
- ///
- error = CommErr.Write;
- if (0 == WriteRequestPort(ihead, MessageID.Calibration, 2, 2, data, cfg.CommTimeout) &&
- 0 == WriteRequestPort(ihead, MessageID.Calibration, 34, 2, dataLNA, cfg.CommTimeout))
+ /// Read and verify the calibration factor
+ ///
+ error = CommErr.ReadAfterWrite;
+ byte[] calib_2_3 = null;
+ byte[] calib_34_35 = null;
+ if (0 == ReadRequestPort(ihead, MessageID.Calibration, 2, 2, out calib_2_3) &&
+ 0 == ReadRequestPort(ihead, MessageID.Calibration, 34, 2, out calib_34_35))
{
- ///
- /// Read and verify the calibration factor
- ///
- error = CommErr.ReadAfterWrite;
- byte[] calib_2_3 = null;
- byte[] calib_34_35 = null;
- if (0 == ReadRequestPort(ihead, MessageID.Calibration, 2, 2, out calib_2_3, cfg.CommTimeout) &&
- 0 == ReadRequestPort(ihead, MessageID.Calibration, 34, 2, out calib_34_35, 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] &&
+ calib_34_35 != null && calib_34_35.Length == 2 && dataLNA[0] == calib_34_35[0] && dataLNA[1] == calib_34_35[1])
{
- 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] &&
- calib_34_35 != null && calib_34_35.Length == 2 && dataLNA[0] == calib_34_35[0] && dataLNA[1] == calib_34_35[1])
- {
- error = CommErr.None;
- ihead.CalibrationStructV4.Update(data, 2);
- ihead.CalibrationStructV4.Update(dataLNA, 34);
- wm.CalibFactor = newCalibFactor;
- wm.CalibFactorLNA = newCalibFactorLNA;
- resultStr = ihead.CalibrationStructV4.ToString();
- break;
- }
+ error = CommErr.None;
+ ihead.CalibrationStructV4.Update(data, 2);
+ ihead.CalibrationStructV4.Update(dataLNA, 34);
+ wm.CalibFactor = newCalibFactor;
+ wm.CalibFactorLNA = newCalibFactorLNA;
+ resultStr = ihead.CalibrationStructV4.ToString();
}
}
-
- ihead.CalibrationStructV4.Update(data, 2);
- ihead.CalibrationStructV4.Update(dataLNA, 34);
-
- writeAndVerifyRetries++;
-
- if ((writeAndVerifyRetries <= cfg.MaxCommRetries) && (cfg.DelayBetweenRetries > 0))
- {
- /// Delay between retries
- Thread.Sleep(cfg.DelayBetweenRetries);
- }
}
- while (writeAndVerifyRetries <= cfg.MaxCommRetries);
- ClosePort(ihead); /// Close RFID port
+ ihead.CalibrationStructV4.Update(data, 2);
+ ihead.CalibrationStructV4.Update(dataLNA, 34);
return error;
}
@@ -2049,8 +1548,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
return CommErr.None; /// No need to update the calibration factor
}
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
CommErr error = CommErr.Write;
/// Determine the new calibration factor
@@ -2080,17 +1577,10 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
}
byte[] data = new byte[2] { (byte)(defaultCalibFactor & 0x00FF), (byte)((defaultCalibFactor >> 8) & 0x00FF) };
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == WriteRequestPort(ihead, MessageID.Calibration, 2, 2, data))
{
- if (0 == WriteRequestPort(ihead, MessageID.Calibration, 2, 2, data, cfg.CommTimeout))
- {
- error = CommErr.None;
- ihead.CalibrationStruct.Update(data, 2);
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ error = CommErr.None;
+ ihead.CalibrationStruct.Update(data, 2);
}
if (error == CommErr.None)
@@ -2099,23 +1589,14 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Read calibration
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))
{
- if (0 == ReadRequestPort(ihead, MessageID.Calibration, 2, 2, out calib_2_3, cfg.CommTimeout))
- {
- error = CommErr.None;
- ihead.CalibrationStruct.Update(calib_2_3, 2);
- resultStr = ihead.CalibrationStruct.ToString();
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ error = CommErr.None;
+ ihead.CalibrationStruct.Update(calib_2_3, 2);
+ resultStr = ihead.CalibrationStruct.ToString();
}
}
- ClosePort(ihead); /// Close RFID port
-
return error;
}
@@ -2136,8 +1617,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
return CommErr.None; /// No need to update the calibration factor
}
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
CommErr error = CommErr.Write;
/// Determine the new calibration factor
@@ -2167,17 +1646,10 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
}
byte[] data = new byte[2] { (byte)(defaultCalibFactor & 0x00FF), (byte)((defaultCalibFactor >> 8) & 0x00FF) };
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == WriteRequestPort(ihead, MessageID.Calibration, 2, 2, data))
{
- if (0 == WriteRequestPort(ihead, MessageID.Calibration, 2, 2, data, cfg.CommTimeout))
- {
- error = CommErr.None;
- ihead.CalibrationStructV4.Update(data, 2);
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ error = CommErr.None;
+ ihead.CalibrationStructV4.Update(data, 2);
}
if (error == CommErr.None)
@@ -2186,23 +1658,14 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Read calibration
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))
{
- if (0 == ReadRequestPort(ihead, MessageID.Calibration, 2, 2, out calib_2_3, cfg.CommTimeout))
- {
- error = CommErr.None;
- ihead.CalibrationStructV4.Update(calib_2_3, 2);
- resultStr = ihead.CalibrationStructV4.ToString();
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ error = CommErr.None;
+ ihead.CalibrationStructV4.Update(calib_2_3, 2);
+ resultStr = ihead.CalibrationStructV4.ToString();
}
}
- ClosePort(ihead); /// Close RFID port
-
return error;
}
@@ -2218,23 +1681,14 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
{
if (ihead.CommFailed) return CommErr.CommFailed;
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
CommErr error = CommErr.Read;
/// Write zero Q2 correction
byte[] rdData = null;
///
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == ReadRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, 2, out rdData))
{
- if (0 == ReadRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, 2, out rdData, cfg.CommTimeout))
- {
- error = CommErr.None;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ error = CommErr.None;
}
if ((error == CommErr.None) && (rdData != null) && (rdData.Length == 2))
@@ -2244,8 +1698,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
wm.Q2CorrRL = ihead.Q2CorrRL = (int)((SByte)rdData[1]);
}
- ClosePort(ihead); /// Close RFID port
-
return error;
}
@@ -2328,25 +1780,16 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
{
if (ihead.CommFailed) return CommErr.CommFailed;
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
CommErr error = CommErr.Write;
/// Write zero Q2 correction
byte[] wrData = new byte[2] { (byte)factorLR, (byte)factorRL };
///
- for (int j = 0; j < cfg.MaxCommRetries; j++)
- {
- if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, wrData.Length, wrData, cfg.CommTimeout))
- {
- wm.Q2CorrRL = ihead.Q2CorrRL = factorRL;
- wm.Q2CorrLR = ihead.Q2CorrLR = factorLR;
- error = CommErr.None;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, wrData.Length, wrData))
+ {
+ wm.Q2CorrRL = ihead.Q2CorrRL = factorRL;
+ wm.Q2CorrLR = ihead.Q2CorrLR = factorLR;
+ error = CommErr.None;
}
///
@@ -2360,19 +1803,12 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Read calibration
byte[] rdData = null;
- for (int j = 0; j < cfg.MaxCommRetries; j++)
- {
- if ((0 == ReadRequestPort(threadId, ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, 2, out rdData, cfg.CommTimeout)) &&
+ if ((0 == ReadRequestPort(threadId, ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, 2, out rdData)) &&
(rdData != null) && (rdData.Length == 2) && (rdData[0] == 0) && (rdData[1] == 0))
{
error = CommErr.None;
resultStr = string.Format("Q2 correction set to LR={0}, RL={1}", factorLR, factorRL);
- break;
}
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
- }
}
#else
if (error == CommErr.None)
@@ -2381,8 +1817,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
}
#endif
- ClosePort(ihead); /// Close RFID port
-
return error;
}
@@ -2455,23 +1889,14 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
{
if (ihead.CommFailed) return CommErr.CommFailed;
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
CommErr error = CommErr.Write;
/// Write zero Q2 correction
byte[] wrData = new byte[1] { 0 };
- ///
- for (int j = 0; j < cfg.MaxCommRetries; j++)
- {
- if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, wrData.Length, wrData, cfg.CommTimeout))
- {
- error = CommErr.None;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ ///
+ if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, wrData.Length, wrData))
+ {
+ error = CommErr.None;
}
///
@@ -2485,20 +1910,13 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Read calibration
byte[] rdData = null;
- for (int j = 0; j < cfg.MaxCommRetries; j++)
- {
- if ((0 == ReadRequestPort(threadId, ihead, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, 1, out rdData, cfg.CommTimeout)) &&
+ if ((0 == ReadRequestPort(threadId, ihead, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, 1, out rdData)) &&
(rdData != null) && (rdData.Length == 2) && (rdData[0] == 0) && (rdData[1] == 0))
{
error = CommErr.None;
resultStr = "2Hz correction reset to 0";
ihead.Q2CorrectionFactor = 0;
- break;
}
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
- }
}
#else
if (error == CommErr.None)
@@ -2508,8 +1926,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
}
#endif
- ClosePort(ihead); /// Close RFID port
-
return error;
}
@@ -2769,7 +2185,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
///
if (ihead.CommFailed) return CommErr.CommFailed;
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
CommErr error = CommErr.Write;
if (q2CorrType == Q2CorrType.RL || q2CorrType == Q2CorrType.RL_incl_05 || q2CorrType == Q2CorrType.ConditionalUpdateRL)
{
@@ -2777,17 +2192,10 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Write R-L Q2 correction factor only
///
byte[] wrData = new byte[1] { (byte)q2CorrRL };
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddrRL, wrData.Length, wrData))
{
- if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddrRL, wrData.Length, wrData, cfg.CommTimeout))
- {
- error = CommErr.None;
- wm.Q2CorrRL = ihead.Q2CorrRL = q2CorrRL;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ error = CommErr.None;
+ wm.Q2CorrRL = ihead.Q2CorrRL = q2CorrRL;
}
}
else if (q2CorrType == Q2CorrType.LR || q2CorrType == Q2CorrType.LR_incl_05 || q2CorrType == Q2CorrType.ConditionalUpdateLR)
@@ -2796,17 +2204,10 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Write L-R Q2 correction factor only
///
byte[] wrData = new byte[1] { (byte)q2CorrLR };
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddrLR, wrData.Length, wrData))
{
- if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddrLR, wrData.Length, wrData, cfg.CommTimeout))
- {
- error = CommErr.None;
- wm.Q2CorrLR = ihead.Q2CorrLR = q2CorrLR;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ error = CommErr.None;
+ wm.Q2CorrLR = ihead.Q2CorrLR = q2CorrLR;
}
}
else
@@ -2815,18 +2216,11 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Write both Q2 correction factors
///
byte[] wrData = new byte[2] { (byte)q2CorrLR, (byte)q2CorrRL };
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, wrData.Length, wrData))
{
- if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, wrData.Length, wrData, cfg.CommTimeout))
- {
- error = CommErr.None;
- wm.Q2CorrRL = ihead.Q2CorrRL = q2CorrRL;
- wm.Q2CorrLR = ihead.Q2CorrLR = q2CorrLR;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ error = CommErr.None;
+ wm.Q2CorrRL = ihead.Q2CorrRL = q2CorrRL;
+ wm.Q2CorrLR = ihead.Q2CorrLR = q2CorrLR;
}
}
@@ -2840,9 +2234,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Read calibration
byte[] rdData = null;
- for (int j = 0; j < cfg.MaxCommRetries; j++)
- {
- if ((0 == ReadRequestPort(threadId, ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, 2, out rdData, cfg.CommTimeout)) &&
+ if ((0 == ReadRequestPort(threadId, ihead, MessageID.MetrologyMemory, Q2CorrFactorsAddr, 2, out rdData)) &&
(rdData != null) && (rdData.Length == 2) && (rdData[0] == q2CorrRFlow) && (rdData[1] == q2CorrLFlow))
{
error = CommErr.None;
@@ -2852,12 +2244,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
wm.Q2ErrWOCorrection = ihead.Q2ErrorWOCorrection;
if (q2CorrType != Q2CorrType.LR) wm.Q2CorrRFlow = ihead.Q2CorrRFlow = (int)(sbyte)q2CorrRFlow;
if (q2CorrType != Q2CorrType.RL) wm.Q2CorrLFlow = ihead.Q2CorrLFlow = (int)(sbyte)q2CorrLFlow;
- break;
}
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
- }
}
#else
///
@@ -2887,8 +2274,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
}
#endif
- ClosePort(ihead); /// Close RFID port
-
return error;
}
@@ -2914,25 +2299,16 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
return CommErr.None;
}
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
CommErr error = CommErr.Write;
Byte hz2CorrectionByte = (byte)(hz2CorrectionFactor & 0x000000FF);
byte[] wrData = new byte[1] { hz2CorrectionByte };
- ///
- for (int j = 0; j < cfg.MaxCommRetries; j++)
- {
- if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, wrData.Length, wrData, cfg.CommTimeout))
- {
- error = CommErr.None;
- wm.Hz2Correction = ihead.Hz2Correction = hz2CorrectionFactor;
- wm.Hz2CorrectionDone = ihead.Hz2CorrectionDone = true;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ ///
+ if (0 == WriteRequestPort(ihead, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, wrData.Length, wrData))
+ {
+ error = CommErr.None;
+ wm.Hz2Correction = ihead.Hz2Correction = hz2CorrectionFactor;
+ wm.Hz2CorrectionDone = ihead.Hz2CorrectionDone = true;
}
///
@@ -2945,9 +2321,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
/// Read calibration
byte[] rdData = null;
- for (int j = 0; j < cfg.MaxCommRetries; j++)
- {
- if ((0 == ReadRequestPort(wm, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, 1, out rdData, cfg.CommTimeout)) &&
+ if ((0 == ReadRequestPort(wm, MessageID.MetrologyMemory, Hz2CorrFactorsAddr, 1, out rdData)) &&
(rdData != null) && (rdData.Length == 2) && (rdData[0] == hz2CorrectionByte))
{
error = CommErr.None;
@@ -2956,12 +2330,7 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
wm.Hz2Correction = ihead.Hz2CorrectionFactor = hz2CorrectionFactor;
wm.Diff2Hz8Hz = ihead.Diff2Hz8Hz;
wm.Hz2CorrectionDone = ihead.Hz2CorrectionDone;
- break;
}
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
- }
}
#else
if (error == CommErr.None)
@@ -2974,8 +2343,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
}
#endif
- ClosePort(ihead); /// Close RFID port
-
return error;
}
@@ -2991,8 +2358,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
{
if (ihead.CommFailed) return CommErr.CommFailed;
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
byte arrow = (flowDir == FlowDir.L_R) ? (byte)1 : (byte)2; /// L-R is reverse flow (=1), R-L is forward flow (=2)(default)
iPerlDataWrite[] dataToBeWritten = new iPerlDataWrite[]
@@ -3015,16 +2380,9 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
foreach (var wData in dataToBeWritten)
{
bool isSuccessfullyWritten = false;
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == WriteRequestPort(ihead, wData.MessageID, wData.Offset, wData.Data.Length, wData.Data))
{
- if (0 == WriteRequestPort(ihead, wData.MessageID, wData.Offset, wData.Data.Length, wData.Data, cfg.CommTimeout))
- {
- isSuccessfullyWritten = true;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ isSuccessfullyWritten = true;
}
if (!isSuccessfullyWritten)
@@ -3036,8 +2394,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
mask = (mask << 1); /// Adjust the mask for the next step
}
- ClosePort(ihead); /// Close RFID port
-
if (successfyllyWrittenFlags == 0)
{
/// Success
@@ -3067,8 +2423,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
{
if (ihead.CommFailed) return CommErr.CommFailed;
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
Byte testModeConfig = 0xA0; /// Default value
///
if (multiTestParams[currentActivityStep].Activity.Length > StartTestingSealedMetersStr.Length)
@@ -3096,16 +2450,9 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
foreach (var wData in dataToBeWritten)
{
bool isSuccessfullyWritten = false;
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == WriteRequestPort(ihead, wData.MessageID, wData.Offset, wData.Data.Length, wData.Data))
{
- if (0 == WriteRequestPort(ihead, wData.MessageID, wData.Offset, wData.Data.Length, wData.Data, cfg.CommTimeout))
- {
- isSuccessfullyWritten = true;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ isSuccessfullyWritten = true;
}
if (!isSuccessfullyWritten)
@@ -3117,8 +2464,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
mask = (mask << 1); /// Adjust the mask for the next step
}
- ClosePort(ihead); /// Close RFID port
-
if (successfyllyWrittenFlags == 0)
{
/// Success
@@ -3148,8 +2493,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
{
if (ihead.CommFailed) return CommErr.CommFailed;
- if (OpenPort(ihead) != 0) return CommErr.OpenPort; /// Open RFID port
-
Byte testModeConfig = (ihead.OrigTestModeConfig != 0) ? ihead.OrigTestModeConfig : (byte)0x80; /// Restore original value (default is 0x80)
iPerlDataWrite[] dataToBeWritten = new iPerlDataWrite[]
@@ -3165,16 +2508,9 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
foreach (var wData in dataToBeWritten)
{
bool isSuccessfullyWritten = false;
- for (int j = 0; j < cfg.MaxCommRetries; j++)
+ if (0 == WriteRequestPort(ihead, wData.MessageID, wData.Offset, wData.Data.Length, wData.Data))
{
- if (0 == WriteRequestPort(ihead, wData.MessageID, wData.Offset, wData.Data.Length, wData.Data, cfg.CommTimeout))
- {
- isSuccessfullyWritten = true;
- break;
- }
-
- /// Delay between retries
- if (cfg.DelayBetweenRetries > 0) Thread.Sleep(cfg.DelayBetweenRetries);
+ isSuccessfullyWritten = true;
}
if (!isSuccessfullyWritten)
@@ -3186,8 +2522,6 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
mask = (mask << 1); /// Adjust the mask for the next step
}
- ClosePort(ihead); /// Close RFID port
-
if (successfyllyWrittenFlags == 0)
{
/// Success
@@ -3420,6 +2754,56 @@ namespace TBF.Rig.TestMethods.iPerlCommunication
UiBridge.Bridge.OnTestCompleted(this, new UiBridge.TestCompletedEventArgs(string.Empty, null));
}
+ private MenuItem NewMenuItem(string text, string tag)
+ {
+ MenuItem menuItem = new MenuItem { Text = text, Tag = tag };
+ menuItem.Click += OnClick_Optical_Heads_Settings_Menu;
+ return menuItem;
+ }
+ private void OnClick_Optical_Heads_Settings_Menu(object sender, EventArgs e)
+ {
+ MenuItem menuItem = (MenuItem)sender;
+ activityLabel.Text = menuItem.Text;
+ int i = 0;
+ foreach (var iHead in ProcessData.IperlHeads)
+ {
+ if (!checkBoxes[i].Checked || i >= ProcessData.WMsCount)
+ {
+ if (i < messages.Length) messages[i].Text = "";
+ i++;
+ continue;
+ }
+ messages[i].Text = $"COM{iHead.RfidComPortNr}";
+ Application.DoEvents(); // Refresh UI
+ switch (menuItem.Tag)
+ {
+ case "ReadPCB":
+ messages[i].Text = OpticalHeadTest.ReadRequest_PCB(iHead);
+ break;
+ case "WriteRequestPort_u8_Customer_Text":
+ messages[i].Text = OpticalHeadTest.WriteRequestPort_u8_Customer_Text(iHead);
+ break;
+ case "OpenSealing":
+ messages[i].Text = OpticalHeadTest.OpenSealing(iHead);
+ break;
+ case "StartTestMode":
+ messages[i].Text = OpticalHeadTest.SetTestMode(iHead);
+ break;
+ case "TurnOffTestMode":
+ messages[i].Text = OpticalHeadTest.SetActiveMode(iHead);
+ break;
+ case "TurnOffRadio":
+ messages[i].Text = OpticalHeadTest.TurnOffRadio(iHead);
+ break;
+ case "SetProductionMode":
+ messages[i].Text = OpticalHeadTest.SetProductionMode(iHead);
+ break;
+ }
+ i++;
+ Application.DoEvents(); // Refresh UI
+ }
+ }
+
#region Check boxes edit mode support
private void checkBoxImage1_Click(object sender, EventArgs e) { ckbState[ckbIndex[0]] = checkBoxImage1.Checked; }
diff --git a/TBF/TBF.csproj b/TBF/TBF.csproj
index ccdec60bd..820d0824f 100644
--- a/TBF/TBF.csproj
+++ b/TBF/TBF.csproj
@@ -44,7 +44,7 @@
4
true
AnyCPU
- false
+ true
pdbonly
@@ -55,7 +55,7 @@
4
AnyCPU
true
- false
+ true
true
@@ -66,7 +66,7 @@
prompt
MinimumRecommendedRules.ruleset
true
- false
+ true
bin\x86\Release\
@@ -77,7 +77,7 @@
prompt
MinimumRecommendedRules.ruleset
true
- false
+ true
TBF.Program
@@ -1616,6 +1616,7 @@
+
@@ -3774,6 +3775,10 @@
+
+ {a3e14180-7f00-42e5-94a9-8db62ead6ee8}
+ Sensus.iPerl.RfidCom
+
{c8939821-ba5c-4988-a3d0-bf53b74865c7}
Common