diff --git a/S7.Net.UnitTest/CommunicationTests/ConnectionOpen.cs b/S7.Net.UnitTest/CommunicationTests/ConnectionOpen.cs index d19f7c3..15568d5 100644 --- a/S7.Net.UnitTest/CommunicationTests/ConnectionOpen.cs +++ b/S7.Net.UnitTest/CommunicationTests/ConnectionOpen.cs @@ -12,107 +12,8 @@ public class ConnectionOpen public async Task Does_Not_Throw() { var cs = new CommunicationSequence { - { - """ - // TPKT - 03 // Version - 00 // Reserved - 00 16 // Length - - // CR - 11 // Number of bytes following - E0 // CR / Credit - 00 00 // Destination reference, unused - __ __ // Source reference, unused - 00 // Class / Option - - // Source TSAP - C1 // Parameter code - 02 // Parameter length - TSAP_SRC_CHAN // Channel - TSAP_SRC_POS // Position - - // Destination TSAP - C2 // Parameter code - 02 // Parameter length - TSAP_DEST_CHAN // Channel - TSAP_DEST_POS // Position - - // PDU Size parameter - C0 // Parameter code - 01 // Parameter length - 0A // 1024 byte PDU (2 ^ 10) - """, - """ - // TPKT - 03 // Version - 00 // Reserved - 00 0B // Length - - // CC - 06 // Length - D0 // CC / Credit - 00 00 // Destination reference - 00 00 // Source reference - 00 // Class / Option - """ - }, - { - """ - // TPKT - 03 // Version - 00 // Reserved - 00 19 // Length - - // Data header - 02 // Length - F0 // Data identifier - 80 // PDU number and end of transmission - - // S7 header - 32 // Protocol ID - 01 // Message type job request - 00 00 // Reserved - PDU1 PDU2 // PDU reference - 00 08 // Parameter length (Communication Setup) - 00 00 // Data length - - // Communication Setup - F0 // Function code - 00 // Reserved - 00 03 // Max AMQ caller - 00 03 // Max AMQ callee - 03 C0 // PDU size (960) - """, - """ - // TPKT - 03 // Version - 00 // Reserved - 00 1B // Length - - // Data header - 02 // Length - F0 // Data identifier - 80 // PDU number and end of transmission - - // S7 header - 32 // Protocol ID - 03 // Message type ack data - 00 00 // Reserved - PDU1 PDU2 // PDU reference - 00 08 // Parameter length (Communication Setup) - 00 00 // Data length - 00 // Error class - 00 // Error code - - // Communication Setup - F0 // Function code - 00 // Reserved - 00 03 // Max AMQ caller - 00 03 // Max AMQ callee - 03 C0 // PDU size (960) - """ - } + ConnectionOpenTemplates.ConnectionRequestConfirm, + ConnectionOpenTemplates.CommunicationSetup }; async Task Client(int port) diff --git a/S7.Net.UnitTest/CommunicationTests/ConnectionOpenTemplates.cs b/S7.Net.UnitTest/CommunicationTests/ConnectionOpenTemplates.cs new file mode 100644 index 0000000..cb9cc0a --- /dev/null +++ b/S7.Net.UnitTest/CommunicationTests/ConnectionOpenTemplates.cs @@ -0,0 +1,107 @@ +namespace S7.Net.UnitTest.CommunicationTests; + +internal static class ConnectionOpenTemplates +{ + public static RequestResponsePair ConnectionRequestConfirm { get; } = new RequestResponsePair( + """ + // TPKT + 03 // Version + 00 // Reserved + 00 16 // Length + + // CR + 11 // Number of bytes following + E0 // CR / Credit + 00 00 // Destination reference, unused + __ __ // Source reference, unused + 00 // Class / Option + + // Source TSAP + C1 // Parameter code + 02 // Parameter length + TSAP_SRC_CHAN // Channel + TSAP_SRC_POS // Position + + // Destination TSAP + C2 // Parameter code + 02 // Parameter length + TSAP_DEST_CHAN // Channel + TSAP_DEST_POS // Position + + // PDU Size parameter + C0 // Parameter code + 01 // Parameter length + 0A // 1024 byte PDU (2 ^ 10) + """, + """ + // TPKT + 03 // Version + 00 // Reserved + 00 0B // Length + + // CC + 06 // Length + D0 // CC / Credit + 00 00 // Destination reference + 00 00 // Source reference + 00 // Class / Option + """ + ); + + public static RequestResponsePair CommunicationSetup { get; } = new RequestResponsePair( + """ + // TPKT + 03 // Version + 00 // Reserved + 00 19 // Length + + // Data header + 02 // Length + F0 // Data identifier + 80 // PDU number and end of transmission + + // S7 header + 32 // Protocol ID + 01 // Message type job request + 00 00 // Reserved + PDU1 PDU2 // PDU reference + 00 08 // Parameter length (Communication Setup) + 00 00 // Data length + + // Communication Setup + F0 // Function code + 00 // Reserved + 00 03 // Max AMQ caller + 00 03 // Max AMQ callee + 03 C0 // PDU size (960) + """, + """ + // TPKT + 03 // Version + 00 // Reserved + 00 1B // Length + + // Data header + 02 // Length + F0 // Data identifier + 80 // PDU number and end of transmission + + // S7 header + 32 // Protocol ID + 03 // Message type ack data + 00 00 // Reserved + PDU1 PDU2 // PDU reference + 00 08 // Parameter length (Communication Setup) + 00 00 // Data length + 00 // Error class + 00 // Error code + + // Communication Setup + F0 // Function code + 00 // Reserved + 00 03 // Max AMQ caller + 00 03 // Max AMQ callee + 03 C0 // PDU size (960) + """ + ); +} \ No newline at end of file diff --git a/S7.Net.UnitTest/Infrastructure/CommunicationSequence.cs b/S7.Net.UnitTest/Infrastructure/CommunicationSequence.cs index 429b346..c3e4488 100644 --- a/S7.Net.UnitTest/Infrastructure/CommunicationSequence.cs +++ b/S7.Net.UnitTest/Infrastructure/CommunicationSequence.cs @@ -13,9 +13,9 @@ internal class CommunicationSequence : IEnumerable { private readonly List _requestResponsePairs = new List(); - public CommunicationSequence() + public void Add(RequestResponsePair requestResponsePair) { - + _requestResponsePairs.Add(requestResponsePair); } public void Add(string requestPattern, string responsePattern)