This is an automated email from the ASF dual-hosted git repository. sruehl pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit 493190ae4a0f0fac0ee9ac945288e1117520c719 Author: Sebastian Rühl <sru...@apache.org> AuthorDate: Thu Mar 8 11:31:20 2018 +0100 separated tcp from ads protocol --- .../java/ads/api/commands/ADSAbstractRequest.java | 9 +- .../java/ads/api/commands/ADSAbstractResponse.java | 9 +- .../commands/ADSAddDeviceNotificationRequest.java | 16 --- .../commands/ADSAddDeviceNotificationResponse.java | 11 +- .../ADSDeleteDeviceNotificationRequest.java | 10 -- .../ADSDeleteDeviceNotificationResponse.java | 9 +- .../api/commands/ADSDeviceNotificationRequest.java | 15 +- .../commands/ADSDeviceNotificationResponse.java | 2 +- .../ads/api/commands/ADSReadDeviceInfoRequest.java | 9 -- .../api/commands/ADSReadDeviceInfoResponse.java | 12 +- .../java/ads/api/commands/ADSReadRequest.java | 14 +- .../java/ads/api/commands/ADSReadResponse.java | 11 +- .../java/ads/api/commands/ADSReadStateRequest.java | 9 -- .../ads/api/commands/ADSReadStateResponse.java | 9 +- .../java/ads/api/commands/ADSReadWriteRequest.java | 17 +-- .../ads/api/commands/ADSReadWriteResponse.java | 9 +- .../ads/api/commands/ADSWriteControlRequest.java | 16 +-- .../ads/api/commands/ADSWriteControlResponse.java | 9 +- .../java/ads/api/commands/ADSWriteRequest.java | 16 +-- .../java/ads/api/commands/ADSWriteResponse.java | 9 +- .../java/ads/api/commands/UnknownCommand.java | 13 +- .../plc4x/java/ads/api/generic/AMSPacket.java | 72 ++++++++-- .../plc4x/java/ads/api/generic/AMSTCPPacket.java | 114 --------------- .../plc4x/java/ads/api/serial/AMSSerialFrame.java | 8 +- .../ads/api/{generic => tcp}/AMSTCPHeader.java | 4 +- .../plc4x/java/ads/api/tcp/AMSTCPPacket.java | 100 +++++++++++++ .../ads/api/{generic => tcp}/types/TcpLength.java | 2 +- .../java/ads/connection/ADSPlcConnection.java | 8 +- .../{ADSProtocol.java => ADS2TcpProtocol.java} | 160 ++++++++++----------- ...lc4XADSProtocol.java => Plc4X2ADSProtocol.java} | 34 ++--- .../ads/api/generic/GenericFactoryMethodTest.java | 2 + .../types/GenericTypesFactoryMethodTest.java | 1 + .../java/ads/api/generic/types/TcpLengthTest.java | 1 + ...SProtocolTest.java => ADS2TcpProtocolTest.java} | 58 ++++---- ...colTest.java => Plc4X2ADS2TcpProtocolTest.java} | 32 ++--- .../plc4x/java/ads/netty/ADSProtocolBenchmark.java | 4 +- 36 files changed, 374 insertions(+), 460 deletions(-) diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAbstractRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAbstractRequest.java index a9572c4..27506fb 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAbstractRequest.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAbstractRequest.java @@ -19,18 +19,13 @@ package org.apache.plc4x.java.ads.api.commands; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPPacket; +import org.apache.plc4x.java.ads.api.generic.AMSPacket; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Invoke; import org.apache.plc4x.java.ads.api.generic.types.State; -public abstract class ADSAbstractRequest extends AMSTCPPacket { - protected ADSAbstractRequest(AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - super(amstcpHeader, amsHeader); - } - +public abstract class ADSAbstractRequest extends AMSPacket { protected ADSAbstractRequest(AMSHeader amsHeader) { super(amsHeader); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAbstractResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAbstractResponse.java index dd24b39..1c4f24a 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAbstractResponse.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAbstractResponse.java @@ -19,18 +19,13 @@ package org.apache.plc4x.java.ads.api.commands; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPPacket; +import org.apache.plc4x.java.ads.api.generic.AMSPacket; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Invoke; import org.apache.plc4x.java.ads.api.generic.types.State; -public abstract class ADSAbstractResponse extends AMSTCPPacket { - protected ADSAbstractResponse(AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - super(amstcpHeader, amsHeader); - } - +public abstract class ADSAbstractResponse extends AMSPacket { protected ADSAbstractResponse(AMSHeader amsHeader) { super(amsHeader); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationRequest.java index 7e96a3c..38db4e2 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationRequest.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationRequest.java @@ -21,7 +21,6 @@ package org.apache.plc4x.java.ads.api.commands; import org.apache.plc4x.java.ads.api.commands.types.*; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.*; import org.apache.plc4x.java.ads.api.util.ByteValue; @@ -65,17 +64,6 @@ public class ADSAddDeviceNotificationRequest extends ADSAbstractRequest { */ private final Reserved reserved; - private ADSAddDeviceNotificationRequest(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, Length length, TransmissionMode transmissionMode, MaxDelay maxDelay, CycleTime cycleTime) { - super(amstcpHeader, amsHeader); - this.indexGroup = requireNonNull(indexGroup); - this.indexOffset = requireNonNull(indexOffset); - this.length = requireNonNull(length); - this.transmissionMode = requireNonNull(transmissionMode); - this.maxDelay = requireNonNull(maxDelay); - this.cycleTime = requireNonNull(cycleTime); - this.reserved = Reserved.INSTANCE; - } - private ADSAddDeviceNotificationRequest(AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, Length length, TransmissionMode transmissionMode, MaxDelay maxDelay, CycleTime cycleTime) { super(amsHeader); this.indexGroup = requireNonNull(indexGroup); @@ -103,10 +91,6 @@ public class ADSAddDeviceNotificationRequest extends ADSAbstractRequest { return buildADSData(indexGroup, indexOffset, length, transmissionMode, maxDelay, cycleTime, reserved); } - public static ADSAddDeviceNotificationRequest of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, Length length, TransmissionMode transmissionMode, MaxDelay maxDelay, CycleTime cycleTime) { - return new ADSAddDeviceNotificationRequest(amstcpHeader, amsHeader, indexGroup, indexOffset, length, transmissionMode, maxDelay, cycleTime); - } - public static ADSAddDeviceNotificationRequest of(AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, Length length, TransmissionMode transmissionMode, MaxDelay maxDelay, CycleTime cycleTime) { return new ADSAddDeviceNotificationRequest(amsHeader, indexGroup, indexOffset, length, transmissionMode, maxDelay, cycleTime); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationResponse.java index db59dd6..6e32975 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationResponse.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationResponse.java @@ -22,7 +22,6 @@ import org.apache.plc4x.java.ads.api.commands.types.NotificationHandle; import org.apache.plc4x.java.ads.api.commands.types.Result; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -46,8 +45,8 @@ public class ADSAddDeviceNotificationResponse extends ADSAbstractResponse { */ private final NotificationHandle notificationHandle; - private ADSAddDeviceNotificationResponse(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result, NotificationHandle notificationHandle) { - super(amstcpHeader, amsHeader); + private ADSAddDeviceNotificationResponse(AMSHeader amsHeader, Result result, NotificationHandle notificationHandle) { + super(amsHeader); this.result = requireNonNull(result); this.notificationHandle = requireNonNull(notificationHandle); } @@ -58,8 +57,8 @@ public class ADSAddDeviceNotificationResponse extends ADSAbstractResponse { this.notificationHandle = requireNonNull(notificationHandle); } - public static ADSAddDeviceNotificationResponse of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result, NotificationHandle notificationHandle) { - return new ADSAddDeviceNotificationResponse(amstcpHeader, amsHeader, result, notificationHandle); + public static ADSAddDeviceNotificationResponse of(AMSHeader amsHeader, Result result, NotificationHandle notificationHandle) { + return new ADSAddDeviceNotificationResponse(amsHeader, result, notificationHandle); } public static ADSAddDeviceNotificationResponse of(AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort, Invoke invokeId, Result result, NotificationHandle notificationHandle) { @@ -92,7 +91,7 @@ public class ADSAddDeviceNotificationResponse extends ADSAbstractResponse { if (!result.equals(that.result)) return false; - + return notificationHandle.equals(that.notificationHandle); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationRequest.java index 44f0258..9ddbd3b 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationRequest.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationRequest.java @@ -21,7 +21,6 @@ package org.apache.plc4x.java.ads.api.commands; import org.apache.plc4x.java.ads.api.commands.types.NotificationHandle; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -40,11 +39,6 @@ public class ADSDeleteDeviceNotificationRequest extends ADSAbstractRequest { */ private final NotificationHandle notificationHandle; - private ADSDeleteDeviceNotificationRequest(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, NotificationHandle notificationHandle) { - super(amstcpHeader, amsHeader); - this.notificationHandle = requireNonNull(notificationHandle); - } - private ADSDeleteDeviceNotificationRequest(AMSHeader amsHeader, NotificationHandle notificationHandle) { super(amsHeader); this.notificationHandle = requireNonNull(notificationHandle); @@ -55,10 +49,6 @@ public class ADSDeleteDeviceNotificationRequest extends ADSAbstractRequest { this.notificationHandle = requireNonNull(notificationHandle); } - public static ADSDeleteDeviceNotificationRequest of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, NotificationHandle notificationHandle) { - return new ADSDeleteDeviceNotificationRequest(amstcpHeader, amsHeader, notificationHandle); - } - public static ADSDeleteDeviceNotificationRequest of(AMSHeader amsHeader, NotificationHandle notificationHandle) { return new ADSDeleteDeviceNotificationRequest(amsHeader, notificationHandle); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationResponse.java index 14de8ff..980e916 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationResponse.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationResponse.java @@ -21,7 +21,6 @@ package org.apache.plc4x.java.ads.api.commands; import org.apache.plc4x.java.ads.api.commands.types.Result; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -40,8 +39,8 @@ public class ADSDeleteDeviceNotificationResponse extends ADSAbstractResponse { */ private final Result result; - private ADSDeleteDeviceNotificationResponse(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result) { - super(amstcpHeader, amsHeader); + private ADSDeleteDeviceNotificationResponse(AMSHeader amsHeader, Result result) { + super(amsHeader); this.result = requireNonNull(result); } @@ -50,8 +49,8 @@ public class ADSDeleteDeviceNotificationResponse extends ADSAbstractResponse { this.result = requireNonNull(result); } - public static ADSDeleteDeviceNotificationResponse of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result) { - return new ADSDeleteDeviceNotificationResponse(amstcpHeader, amsHeader, result); + public static ADSDeleteDeviceNotificationResponse of(AMSHeader amsHeader, Result result) { + return new ADSDeleteDeviceNotificationResponse(amsHeader, result); } public static ADSDeleteDeviceNotificationResponse of(AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort, Invoke invokeId, Result result) { diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationRequest.java index 24fa24b..dbf0ad5 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationRequest.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationRequest.java @@ -23,7 +23,6 @@ import org.apache.plc4x.java.ads.api.commands.types.Length; import org.apache.plc4x.java.ads.api.commands.types.Stamps; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -58,14 +57,6 @@ public class ADSDeviceNotificationRequest extends ADSAbstractRequest { private final LengthSupplier lengthSupplier; - private ADSDeviceNotificationRequest(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Length length, Stamps stamps, List<AdsStampHeader> adsStampHeaders) { - super(amstcpHeader, amsHeader); - this.length = requireNonNull(length); - this.stamps = requireNonNull(stamps); - this.adsStampHeaders = requireNonNull(adsStampHeaders); - lengthSupplier = null; - } - private ADSDeviceNotificationRequest(AMSHeader amsHeader, Length length, Stamps stamps, List<AdsStampHeader> adsStampHeaders) { super(amsHeader); this.length = requireNonNull(length); @@ -88,10 +79,6 @@ public class ADSDeviceNotificationRequest extends ADSAbstractRequest { }; } - public static ADSDeviceNotificationRequest of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Length length, Stamps stamps, List<AdsStampHeader> adsStampHeaders) { - return new ADSDeviceNotificationRequest(amstcpHeader, amsHeader, length, stamps, adsStampHeaders); - } - public static ADSDeviceNotificationRequest of(AMSHeader amsHeader, Length length, Stamps stamps, List<AdsStampHeader> adsStampHeaders) { return new ADSDeviceNotificationRequest(amsHeader, length, stamps, adsStampHeaders); } @@ -136,7 +123,7 @@ public class ADSDeviceNotificationRequest extends ADSAbstractRequest { return false; if (!stamps.equals(that.stamps)) return false; - + return adsStampHeaders.equals(that.adsStampHeaders); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationResponse.java index f688c7c..e8cb2e9 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationResponse.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationResponse.java @@ -28,7 +28,7 @@ import org.apache.plc4x.java.ads.api.generic.types.Command; public class ADSDeviceNotificationResponse extends ADSAbstractResponse { protected ADSDeviceNotificationResponse() { - super(null, null); + super(null); // There is no {@link ADSDeviceNotificationResponse} specified } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoRequest.java index 354ab58..5a315ae 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoRequest.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoRequest.java @@ -20,7 +20,6 @@ package org.apache.plc4x.java.ads.api.commands; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -34,10 +33,6 @@ import org.apache.plc4x.java.ads.api.generic.types.Invoke; @ADSCommandType(Command.ADS_READ_DEVICE_INFO) public class ADSReadDeviceInfoRequest extends ADSAbstractRequest { - private ADSReadDeviceInfoRequest(AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - super(amstcpHeader, amsHeader); - } - private ADSReadDeviceInfoRequest(AMSHeader amsHeader) { super(amsHeader); } @@ -46,10 +41,6 @@ public class ADSReadDeviceInfoRequest extends ADSAbstractRequest { super(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId); } - public static ADSReadDeviceInfoRequest of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - return new ADSReadDeviceInfoRequest(amstcpHeader, amsHeader); - } - public static ADSReadDeviceInfoRequest of(AMSHeader amsHeader) { return new ADSReadDeviceInfoRequest(amsHeader); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoResponse.java index 3f11b28..394954c 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoResponse.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoResponse.java @@ -21,7 +21,6 @@ package org.apache.plc4x.java.ads.api.commands; import org.apache.plc4x.java.ads.api.commands.types.*; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -55,9 +54,8 @@ public class ADSReadDeviceInfoResponse extends ADSAbstractResponse { */ private final Device device; - - private ADSReadDeviceInfoResponse(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result, MajorVersion majorVersion, MinorVersion minorVersion, Version version, Device device) { - super(amstcpHeader, amsHeader); + private ADSReadDeviceInfoResponse(AMSHeader amsHeader, Result result, MajorVersion majorVersion, MinorVersion minorVersion, Version version, Device device) { + super(amsHeader); this.result = requireNonNull(result); this.majorVersion = requireNonNull(majorVersion); this.minorVersion = requireNonNull(minorVersion); @@ -74,8 +72,8 @@ public class ADSReadDeviceInfoResponse extends ADSAbstractResponse { this.device = requireNonNull(device); } - public static ADSReadDeviceInfoResponse of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result, MajorVersion majorVersion, MinorVersion minorVersion, Version version, Device device) { - return new ADSReadDeviceInfoResponse(amstcpHeader, amsHeader, result, majorVersion, minorVersion, version, device); + public static ADSReadDeviceInfoResponse of(AMSHeader amsHeader, Result result, MajorVersion majorVersion, MinorVersion minorVersion, Version version, Device device) { + return new ADSReadDeviceInfoResponse(amsHeader, result, majorVersion, minorVersion, version, device); } public static ADSReadDeviceInfoResponse of(AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort, Invoke invokeId, Result result, MajorVersion majorVersion, MinorVersion minorVersion, Version version, Device device) { @@ -126,7 +124,7 @@ public class ADSReadDeviceInfoResponse extends ADSAbstractResponse { return false; if (!version.equals(that.version)) return false; - + return device.equals(that.device); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadRequest.java index 880f3f3..c20f435 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadRequest.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadRequest.java @@ -23,7 +23,6 @@ import org.apache.plc4x.java.ads.api.commands.types.IndexOffset; import org.apache.plc4x.java.ads.api.commands.types.Length; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -52,13 +51,6 @@ public class ADSReadRequest extends ADSAbstractRequest { */ private final Length length; - private ADSReadRequest(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, Length length) { - super(amstcpHeader, amsHeader); - this.indexGroup = requireNonNull(indexGroup); - this.indexOffset = requireNonNull(indexOffset); - this.length = requireNonNull(length); - } - private ADSReadRequest(AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, Length length) { super(amsHeader); this.indexGroup = requireNonNull(indexGroup); @@ -73,10 +65,6 @@ public class ADSReadRequest extends ADSAbstractRequest { this.length = requireNonNull(length); } - public static ADSReadRequest of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, Length length) { - return new ADSReadRequest(amstcpHeader, amsHeader, indexGroup, indexOffset, length); - } - public static ADSReadRequest of(AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, Length length) { return new ADSReadRequest(amsHeader, indexGroup, indexOffset, length); } @@ -117,7 +105,7 @@ public class ADSReadRequest extends ADSAbstractRequest { return false; if (!indexOffset.equals(that.indexOffset)) return false; - + return length.equals(that.length); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadResponse.java index 8a38d58..6e51c58 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadResponse.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadResponse.java @@ -23,7 +23,6 @@ import org.apache.plc4x.java.ads.api.commands.types.Length; import org.apache.plc4x.java.ads.api.commands.types.Result; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -53,8 +52,8 @@ public class ADSReadResponse extends ADSAbstractResponse { private final LengthSupplier lengthSupplier; - private ADSReadResponse(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result, Length length, Data data) { - super(amstcpHeader, amsHeader); + private ADSReadResponse(AMSHeader amsHeader, Result result, Length length, Data data) { + super(amsHeader); this.result = requireNonNull(result); this.length = requireNonNull(length); this.data = requireNonNull(data); @@ -69,8 +68,8 @@ public class ADSReadResponse extends ADSAbstractResponse { this.lengthSupplier = data; } - public static ADSReadResponse of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result, Length length, Data data) { - return new ADSReadResponse(amstcpHeader, amsHeader, result, length, data); + public static ADSReadResponse of(AMSHeader amsHeader, Result result, Length length, Data data) { + return new ADSReadResponse(amsHeader, result, length, data); } public static ADSReadResponse of(AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort, Invoke invokeId, Result result, Data data) { @@ -109,7 +108,7 @@ public class ADSReadResponse extends ADSAbstractResponse { return false; if (!getLength().equals(that.getLength())) return false; - + return data.equals(that.data); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateRequest.java index 6c226c4..38749ff 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateRequest.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateRequest.java @@ -20,7 +20,6 @@ package org.apache.plc4x.java.ads.api.commands; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -34,10 +33,6 @@ import org.apache.plc4x.java.ads.api.generic.types.Invoke; @ADSCommandType(Command.ADS_READ_STATE) public class ADSReadStateRequest extends ADSAbstractRequest { - private ADSReadStateRequest(AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - super(amstcpHeader, amsHeader); - } - private ADSReadStateRequest(AMSHeader amsHeader) { super(amsHeader); } @@ -46,10 +41,6 @@ public class ADSReadStateRequest extends ADSAbstractRequest { super(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId); } - public static ADSReadStateRequest of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - return new ADSReadStateRequest(amstcpHeader, amsHeader); - } - public static ADSReadStateRequest of(AMSHeader amsHeader) { return new ADSReadStateRequest(amsHeader); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateResponse.java index 53e8985..7514664 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateResponse.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateResponse.java @@ -21,7 +21,6 @@ package org.apache.plc4x.java.ads.api.commands; import org.apache.plc4x.java.ads.api.commands.types.Result; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -40,8 +39,8 @@ public class ADSReadStateResponse extends ADSAbstractResponse { */ private final Result result; - private ADSReadStateResponse(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result) { - super(amstcpHeader, amsHeader); + private ADSReadStateResponse(AMSHeader amsHeader, Result result) { + super(amsHeader); this.result = requireNonNull(result); } @@ -50,8 +49,8 @@ public class ADSReadStateResponse extends ADSAbstractResponse { this.result = requireNonNull(result); } - public static ADSReadStateResponse of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result) { - return new ADSReadStateResponse(amstcpHeader, amsHeader, result); + public static ADSReadStateResponse of(AMSHeader amsHeader, Result result) { + return new ADSReadStateResponse(amsHeader, result); } public static ADSReadStateResponse of(AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort, Invoke invokeId, Result result) { diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteRequest.java index ef82e33..c44d037 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteRequest.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteRequest.java @@ -21,7 +21,6 @@ package org.apache.plc4x.java.ads.api.commands; import org.apache.plc4x.java.ads.api.commands.types.*; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -61,16 +60,6 @@ public class ADSReadWriteRequest extends ADSAbstractRequest { private final LengthSupplier writeLengthSupplier; - private ADSReadWriteRequest(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, ReadLength readLength, WriteLength writeLength, Data data) { - super(amstcpHeader, amsHeader); - this.indexGroup = requireNonNull(indexGroup); - this.indexOffset = requireNonNull(indexOffset); - this.readLength = requireNonNull(readLength); - this.writeLength = requireNonNull(writeLength); - this.data = requireNonNull(data); - this.writeLengthSupplier = null; - } - private ADSReadWriteRequest(AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, ReadLength readLength, WriteLength writeLength, Data data) { super(amsHeader); this.indexGroup = requireNonNull(indexGroup); @@ -91,10 +80,6 @@ public class ADSReadWriteRequest extends ADSAbstractRequest { this.writeLengthSupplier = data; } - public static ADSReadWriteRequest of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, ReadLength readLength, WriteLength writeLength, Data data) { - return new ADSReadWriteRequest(amstcpHeader, amsHeader, indexGroup, indexOffset, readLength, writeLength, data); - } - public static ADSReadWriteRequest of(AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, ReadLength readLength, WriteLength writeLength, Data data) { return new ADSReadWriteRequest(amsHeader, indexGroup, indexOffset, readLength, writeLength, data); } @@ -147,7 +132,7 @@ public class ADSReadWriteRequest extends ADSAbstractRequest { return false; if (!getWriteLength().equals(that.getWriteLength())) return false; - + return data.equals(that.data); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteResponse.java index 8328882..d91faa2 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteResponse.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteResponse.java @@ -23,7 +23,6 @@ import org.apache.plc4x.java.ads.api.commands.types.Length; import org.apache.plc4x.java.ads.api.commands.types.Result; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -55,8 +54,8 @@ public class ADSReadWriteResponse extends ADSAbstractResponse { private final LengthSupplier lengthSupplier; - private ADSReadWriteResponse(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result, Length length, Data data) { - super(amstcpHeader, amsHeader); + private ADSReadWriteResponse(AMSHeader amsHeader, Result result, Length length, Data data) { + super(amsHeader); this.result = requireNonNull(result); this.length = requireNonNull(length); this.data = requireNonNull(data); @@ -71,8 +70,8 @@ public class ADSReadWriteResponse extends ADSAbstractResponse { this.lengthSupplier = data; } - public static ADSReadWriteResponse of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result, Length length, Data data) { - return new ADSReadWriteResponse(amstcpHeader, amsHeader, result, length, data); + public static ADSReadWriteResponse of(AMSHeader amsHeader, Result result, Length length, Data data) { + return new ADSReadWriteResponse(amsHeader, result, length, data); } public static ADSReadWriteResponse of(AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort, Invoke invokeId, Result result, Data data) { diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlRequest.java index d2f7121..a7c76b7 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlRequest.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlRequest.java @@ -24,7 +24,6 @@ import org.apache.plc4x.java.ads.api.commands.types.DeviceState; import org.apache.plc4x.java.ads.api.commands.types.Length; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -60,15 +59,6 @@ public class ADSWriteControlRequest extends ADSAbstractRequest { private final LengthSupplier lengthSupplier; - private ADSWriteControlRequest(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, ADSState adsState, DeviceState deviceState, Length length, Data data) { - super(amstcpHeader, amsHeader); - this.adsState = requireNonNull(adsState); - this.deviceState = requireNonNull(deviceState); - this.length = requireNonNull(length); - this.data = requireNonNull(data); - this.lengthSupplier = null; - } - private ADSWriteControlRequest(AMSHeader amsHeader, ADSState adsState, DeviceState deviceState, Length length, Data data) { super(amsHeader); this.adsState = requireNonNull(adsState); @@ -87,10 +77,6 @@ public class ADSWriteControlRequest extends ADSAbstractRequest { this.lengthSupplier = data; } - public static ADSWriteControlRequest of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, ADSState adsState, DeviceState deviceState, Length length, Data data) { - return new ADSWriteControlRequest(amstcpHeader, amsHeader, adsState, deviceState, length, data); - } - public static ADSWriteControlRequest of(AMSHeader amsHeader, ADSState adsState, DeviceState deviceState, Length length, Data data) { return new ADSWriteControlRequest(amsHeader, adsState, deviceState, length, data); } @@ -137,7 +123,7 @@ public class ADSWriteControlRequest extends ADSAbstractRequest { return false; if (!getLength().equals(that.getLength())) return false; - + return data.equals(that.data); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlResponse.java index 86e2b0a..d9446a3 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlResponse.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlResponse.java @@ -21,7 +21,6 @@ package org.apache.plc4x.java.ads.api.commands; import org.apache.plc4x.java.ads.api.commands.types.Result; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -39,8 +38,8 @@ public class ADSWriteControlResponse extends ADSAbstractResponse { */ private final Result result; - private ADSWriteControlResponse(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result) { - super(amstcpHeader, amsHeader); + private ADSWriteControlResponse(AMSHeader amsHeader, Result result) { + super(amsHeader); this.result = requireNonNull(result); } @@ -49,8 +48,8 @@ public class ADSWriteControlResponse extends ADSAbstractResponse { this.result = requireNonNull(result); } - public static ADSWriteControlResponse of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result) { - return new ADSWriteControlResponse(amstcpHeader, amsHeader, result); + public static ADSWriteControlResponse of(AMSHeader amsHeader, Result result) { + return new ADSWriteControlResponse(amsHeader, result); } public static ADSWriteControlResponse of(AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort, Invoke invokeId, Result result) { diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteRequest.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteRequest.java index 6ce66a6..15fcb4e 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteRequest.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteRequest.java @@ -24,7 +24,6 @@ import org.apache.plc4x.java.ads.api.commands.types.IndexOffset; import org.apache.plc4x.java.ads.api.commands.types.Length; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -58,15 +57,6 @@ public class ADSWriteRequest extends ADSAbstractRequest { private final LengthSupplier lengthSupplier; - private ADSWriteRequest(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, Length length, Data data) { - super(amstcpHeader, amsHeader); - this.indexGroup = requireNonNull(indexGroup); - this.indexOffset = requireNonNull(indexOffset); - this.length = requireNonNull(length); - this.data = requireNonNull(data); - this.lengthSupplier = null; - } - private ADSWriteRequest(AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, Length length, Data data) { super(amsHeader); this.indexGroup = requireNonNull(indexGroup); @@ -85,10 +75,6 @@ public class ADSWriteRequest extends ADSAbstractRequest { this.lengthSupplier = data; } - public static ADSWriteRequest of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, Length length, Data data) { - return new ADSWriteRequest(amstcpHeader, amsHeader, indexGroup, indexOffset, length, data); - } - public static ADSWriteRequest of(AMSHeader amsHeader, IndexGroup indexGroup, IndexOffset indexOffset, Length length, Data data) { return new ADSWriteRequest(amsHeader, indexGroup, indexOffset, length, data); } @@ -135,7 +121,7 @@ public class ADSWriteRequest extends ADSAbstractRequest { return false; if (!getLength().equals(that.getLength())) return false; - + return data.equals(that.data); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteResponse.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteResponse.java index fc3de95..65a859b 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteResponse.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteResponse.java @@ -21,7 +21,6 @@ package org.apache.plc4x.java.ads.api.commands; import org.apache.plc4x.java.ads.api.commands.types.Result; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Command; @@ -40,8 +39,8 @@ public class ADSWriteResponse extends ADSAbstractResponse { */ private final Result result; - private ADSWriteResponse(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result) { - super(amstcpHeader, amsHeader); + private ADSWriteResponse(AMSHeader amsHeader, Result result) { + super(amsHeader); this.result = requireNonNull(result); } @@ -50,8 +49,8 @@ public class ADSWriteResponse extends ADSAbstractResponse { this.result = requireNonNull(result); } - public static ADSWriteResponse of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, Result result) { - return new ADSWriteResponse(amstcpHeader, amsHeader, result); + public static ADSWriteResponse of(AMSHeader amsHeader, Result result) { + return new ADSWriteResponse(amsHeader, result); } public static ADSWriteResponse of(AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort, Invoke invokeId, Result result) { diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/UnknownCommand.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/UnknownCommand.java index 4eba85d..5bbbe30 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/UnknownCommand.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/UnknownCommand.java @@ -21,8 +21,7 @@ package org.apache.plc4x.java.ads.api.commands; import io.netty.buffer.ByteBuf; import org.apache.plc4x.java.ads.api.generic.ADSData; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPPacket; +import org.apache.plc4x.java.ads.api.generic.AMSPacket; import org.apache.plc4x.java.ads.api.generic.types.*; import static java.util.Objects.requireNonNull; @@ -31,12 +30,12 @@ import static java.util.Objects.requireNonNull; * Unknown ADS Package */ @ADSCommandType(Command.UNKNOWN) -public class UnknownCommand extends AMSTCPPacket { +public class UnknownCommand extends AMSPacket { private final ByteBuf remainingBytes; - private UnknownCommand(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, ByteBuf remainingBytes) { - super(amstcpHeader, amsHeader); + private UnknownCommand(AMSHeader amsHeader, ByteBuf remainingBytes) { + super(amsHeader); this.remainingBytes = requireNonNull(remainingBytes); } @@ -50,8 +49,8 @@ public class UnknownCommand extends AMSTCPPacket { return () -> remainingBytes; } - public static AMSTCPPacket of(AMSTCPHeader amstcpHeader, AMSHeader amsHeader, ByteBuf remainingBytes) { - return new UnknownCommand(amstcpHeader, amsHeader, remainingBytes); + public static UnknownCommand of(AMSHeader amsHeader, ByteBuf remainingBytes) { + return new UnknownCommand(amsHeader, remainingBytes); } public static UnknownCommand of(AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort, State stateId, Invoke invokeId, ByteBuf remainingBytes) { diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSPacket.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSPacket.java index cf84f3f..37c48e0 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSPacket.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSPacket.java @@ -19,25 +19,81 @@ package org.apache.plc4x.java.ads.api.generic; import io.netty.buffer.ByteBuf; +import org.apache.plc4x.java.ads.api.commands.ADSCommandType; +import org.apache.plc4x.java.ads.api.generic.types.*; +import org.apache.plc4x.java.ads.api.serial.AMSSerialFrame; +import org.apache.plc4x.java.ads.api.serial.types.FragmentNumber; +import org.apache.plc4x.java.ads.api.tcp.AMSTCPPacket; import org.apache.plc4x.java.ads.api.util.ByteReadable; -public class AMSPacket implements ByteReadable { +import static java.util.Objects.requireNonNull; - private final AMSHeader amsHeader; +public abstract class AMSPacket implements ByteReadable { - private final ADSData adsData; + protected final AMSHeader amsHeader; - private AMSPacket(AMSHeader amsHeader, ADSData adsData) { + protected AMSPacket(AMSHeader amsHeader) { this.amsHeader = amsHeader; - this.adsData = adsData; } - public static AMSPacket of(AMSHeader amsHeader, ADSData adsData) { - return new AMSPacket(amsHeader, adsData); + protected AMSPacket(AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort, State stateId, Invoke invokeId) { + if (!getClass().isAnnotationPresent(ADSCommandType.class)) { + throw new IllegalArgumentException(ADSCommandType.class + " need to be present."); + } + this.amsHeader = AMSHeader.of( + requireNonNull(targetAmsNetId), + requireNonNull(targetAmsPort), + requireNonNull(sourceAmsNetId), + requireNonNull(sourceAmsPort), + requireNonNull(getClass().getAnnotation(ADSCommandType.class).value()), + requireNonNull(stateId), + () -> getAdsData().getCalculatedLength(), + requireNonNull(AMSError.NONE), + requireNonNull(invokeId)); + } + + public AMSHeader getAmsHeader() { + return amsHeader; + } + + public abstract ADSData getAdsData(); + + protected ADSData buildADSData(ByteReadable... byteReadables) { + return () -> buildByteBuff(byteReadables); + } + + public AMSTCPPacket toAmstcpPacket() { + return AMSTCPPacket.of(this); + } + + public AMSSerialFrame toAmsSerialFrame(byte fragmentNumber) { + return AMSSerialFrame.of(FragmentNumber.of(fragmentNumber), this); } @Override public ByteBuf getByteBuf() { - return buildByteBuff(amsHeader, adsData); + return buildByteBuff(amsHeader, getAdsData()); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof AMSPacket)) return false; + + AMSPacket amsPacket = (AMSPacket) o; + + return amsHeader.equals(amsPacket.amsHeader); + } + + @Override + public int hashCode() { + return amsHeader.hashCode(); + } + + @Override + public String toString() { + return getClass().getSimpleName() + "{" + + "amsHeader=" + amsHeader + + '}'; } } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPPacket.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPPacket.java deleted file mode 100644 index fea4708..0000000 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPPacket.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - */ -package org.apache.plc4x.java.ads.api.generic; - -import io.netty.buffer.ByteBuf; -import org.apache.plc4x.java.ads.api.commands.ADSCommandType; -import org.apache.plc4x.java.ads.api.generic.types.*; -import org.apache.plc4x.java.ads.api.util.ByteReadable; - -import static java.util.Objects.requireNonNull; - -// TODO: maybe don't let all commands extend from tcp as in serial these look different... -public abstract class AMSTCPPacket implements ByteReadable { - private final AMSTCPHeader amsTcpHeader; - - private final AMSHeader amsHeader; - - protected AMSTCPPacket(AMSTCPHeader amsTcpHeader, AMSHeader amsHeader) { - this.amsTcpHeader = requireNonNull(amsTcpHeader); - this.amsHeader = requireNonNull(amsHeader); - } - - protected AMSTCPPacket(AMSHeader amsHeader) { - // It is important that we wrap the ads data call as this will initialized in the constructor - // so this value will be null if we call adsData now. - this.amsTcpHeader = AMSTCPHeader.of(requireNonNull(amsHeader), () -> getAdsData().getCalculatedLength()); - this.amsHeader = requireNonNull(amsHeader); - } - - protected AMSTCPPacket(AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort, State stateId, Invoke invokeId) { - if (!getClass().isAnnotationPresent(ADSCommandType.class)) { - throw new IllegalArgumentException(ADSCommandType.class + " need to be present."); - } - this.amsHeader = AMSHeader.of( - requireNonNull(targetAmsNetId), - requireNonNull(targetAmsPort), - requireNonNull(sourceAmsNetId), - requireNonNull(sourceAmsPort), - requireNonNull(getClass().getAnnotation(ADSCommandType.class).value()), - requireNonNull(stateId), - () -> getAdsData().getCalculatedLength(), - requireNonNull(AMSError.NONE), - requireNonNull(invokeId)); - this.amsTcpHeader = AMSTCPHeader.of(amsHeader, () -> getAdsData().getCalculatedLength()); - } - - public AMSTCPHeader getAmsTcpHeader() { - return amsTcpHeader; - } - - public AMSHeader getAmsHeader() { - return amsHeader; - } - - protected abstract ADSData getAdsData(); - - @Override - public ByteBuf getByteBuf() { - return buildByteBuff(amsTcpHeader, amsHeader, getAdsData()); - } - - protected ADSData buildADSData(ByteReadable... byteReadables) { - return () -> buildByteBuff(byteReadables); - } - - public AMSPacket getAMSPacket() { - return AMSPacket.of(amsHeader, getAdsData()); - } - - @Override - public boolean equals(Object o) { - if (this == o) - return true; - if (!(o instanceof AMSTCPPacket)) - return false; - - AMSTCPPacket that = (AMSTCPPacket) o; - - if (!amsTcpHeader.equals(that.amsTcpHeader)) - return false; - return amsHeader.equals(that.amsHeader); - } - - @Override - public int hashCode() { - int result = amsTcpHeader.hashCode(); - result = 31 * result + amsHeader.hashCode(); - return result; - } - - @Override - public String toString() { - return getClass().getSimpleName() + "{" + - "amsTcpHeader=" + amsTcpHeader + - ", amsHeader=" + amsHeader + - '}'; - } -} diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/AMSSerialFrame.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/AMSSerialFrame.java index 3952773..3c4b97c 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/AMSSerialFrame.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/AMSSerialFrame.java @@ -20,7 +20,6 @@ package org.apache.plc4x.java.ads.api.serial; import io.netty.buffer.ByteBuf; import org.apache.plc4x.java.ads.api.generic.AMSPacket; -import org.apache.plc4x.java.ads.api.generic.AMSTCPPacket; import org.apache.plc4x.java.ads.api.serial.types.*; import org.apache.plc4x.java.ads.api.util.ByteReadable; import org.apache.plc4x.java.api.exceptions.PlcRuntimeException; @@ -89,12 +88,11 @@ public class AMSSerialFrame implements ByteReadable { this.crc = crc; } - private AMSSerialFrame(FragmentNumber fragmentNumber, AMSTCPPacket amstcpPacket) { + private AMSSerialFrame(FragmentNumber fragmentNumber, AMSPacket amsPacket) { this.magicCookie = MagicCookie.of(ID); this.transmitterAddress = TransmitterAddress.RS232_COMM_ADDRESS; this.receiverAddress = ReceiverAddress.RS232_COMM_ADDRESS; this.fragmentNumber = fragmentNumber; - AMSPacket amsPacket = amstcpPacket.getAMSPacket(); long calculatedLength = amsPacket.getCalculatedLength(); if (calculatedLength > 255) { throw new IllegalArgumentException("Paket length must not exceed 255"); @@ -125,8 +123,8 @@ public class AMSSerialFrame implements ByteReadable { return new AMSSerialFrame(magicCookie, transmitterAddress, receiverAddress, fragmentNumber, userDataLength, userData, crc); } - public static AMSSerialFrame of(FragmentNumber fragmentNumber, AMSTCPPacket amstcpPacket) { - return new AMSSerialFrame(fragmentNumber, amstcpPacket); + public static AMSSerialFrame of(FragmentNumber fragmentNumber, AMSPacket amsPacket) { + return new AMSSerialFrame(fragmentNumber, amsPacket); } @Override diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPHeader.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/tcp/AMSTCPHeader.java similarity index 97% rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPHeader.java rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/tcp/AMSTCPHeader.java index 01882c3..33e01f9 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPHeader.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/tcp/AMSTCPHeader.java @@ -16,10 +16,10 @@ specific language governing permissions and limitations under the License. */ -package org.apache.plc4x.java.ads.api.generic; +package org.apache.plc4x.java.ads.api.tcp; import io.netty.buffer.ByteBuf; -import org.apache.plc4x.java.ads.api.generic.types.TcpLength; +import org.apache.plc4x.java.ads.api.tcp.types.TcpLength; import org.apache.plc4x.java.ads.api.util.ByteReadable; import org.apache.plc4x.java.ads.api.util.ByteValue; import org.apache.plc4x.java.ads.api.util.LengthSupplier; diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/tcp/AMSTCPPacket.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/tcp/AMSTCPPacket.java new file mode 100644 index 0000000..d56acf5 --- /dev/null +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/tcp/AMSTCPPacket.java @@ -0,0 +1,100 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + */ +package org.apache.plc4x.java.ads.api.tcp; + +import io.netty.buffer.ByteBuf; +import org.apache.plc4x.java.ads.api.generic.ADSData; +import org.apache.plc4x.java.ads.api.generic.AMSHeader; +import org.apache.plc4x.java.ads.api.generic.AMSPacket; +import org.apache.plc4x.java.ads.api.util.ByteReadable; + +import static java.util.Objects.requireNonNull; + +public class AMSTCPPacket implements ByteReadable { + private final AMSTCPHeader amsTcpHeader; + + private final AMSPacket amsPacket; + + private AMSTCPPacket(AMSTCPHeader amsTcpHeader, AMSPacket amsPacket) { + this.amsTcpHeader = requireNonNull(amsTcpHeader); + this.amsPacket = amsPacket; + } + + private AMSTCPPacket(AMSPacket amsPacket) { + this.amsPacket = amsPacket; + // It is important that we wrap the ads data call as this will initialized in the constructor + // so this value will be null if we call adsData now. + this.amsTcpHeader = AMSTCPHeader.of(requireNonNull(amsPacket.getAmsHeader()), () -> getAdsData().getCalculatedLength()); + } + + public AMSTCPHeader getAmsTcpHeader() { + return amsTcpHeader; + } + + public AMSPacket getAmsPacket() { + return amsPacket; + } + + public AMSHeader getAmsHeader() { + return amsPacket.getAmsHeader(); + } + + public ADSData getAdsData() { + return amsPacket.getAdsData(); + } + + @Override + public ByteBuf getByteBuf() { + return buildByteBuff(amsTcpHeader, amsPacket); + } + + public static AMSTCPPacket of(AMSTCPHeader amsTcpHeader, AMSPacket amsPacket) { + return new AMSTCPPacket(amsTcpHeader, amsPacket); + } + + public static AMSTCPPacket of(AMSPacket amsPacket) { + return new AMSTCPPacket(amsPacket); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof AMSTCPPacket)) return false; + + AMSTCPPacket that = (AMSTCPPacket) o; + + if (!amsTcpHeader.equals(that.amsTcpHeader)) return false; + return amsPacket.equals(that.amsPacket); + } + + @Override + public int hashCode() { + int result = amsTcpHeader.hashCode(); + result = 31 * result + amsPacket.hashCode(); + return result; + } + + @Override + public String toString() { + return "AMSTCPPacket{" + + "amsTcpHeader=" + amsTcpHeader + + ", amsPacket=" + amsPacket + + '}'; + } +} diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/TcpLength.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/tcp/types/TcpLength.java similarity index 97% rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/TcpLength.java rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/tcp/types/TcpLength.java index 8eaf938..7c04175 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/TcpLength.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/tcp/types/TcpLength.java @@ -16,7 +16,7 @@ specific language governing permissions and limitations under the License. */ -package org.apache.plc4x.java.ads.api.generic.types; +package org.apache.plc4x.java.ads.api.tcp.types; import io.netty.buffer.ByteBuf; import org.apache.plc4x.java.ads.api.util.UnsignedIntLEByteValue; diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSPlcConnection.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSPlcConnection.java index 7f770b3..2186b2b 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSPlcConnection.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSPlcConnection.java @@ -25,8 +25,8 @@ import io.netty.channel.ChannelPipeline; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.model.ADSAddress; -import org.apache.plc4x.java.ads.protocol.ADSProtocol; -import org.apache.plc4x.java.ads.protocol.Plc4XADSProtocol; +import org.apache.plc4x.java.ads.protocol.ADS2TcpProtocol; +import org.apache.plc4x.java.ads.protocol.Plc4X2ADSProtocol; import org.apache.plc4x.java.api.connection.PlcReader; import org.apache.plc4x.java.api.connection.PlcWriter; import org.apache.plc4x.java.api.exceptions.PlcException; @@ -94,8 +94,8 @@ public class ADSPlcConnection extends AbstractPlcConnection implements PlcReader protected void initChannel(Channel channel) { // Build the protocol stack for communicating with the ads protocol. ChannelPipeline pipeline = channel.pipeline(); - pipeline.addLast(new Plc4XADSProtocol(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort)); - pipeline.addLast(new ADSProtocol()); + pipeline.addLast(new Plc4X2ADSProtocol(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort)); + pipeline.addLast(new ADS2TcpProtocol()); } }; } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/ADSProtocol.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/ADS2TcpProtocol.java similarity index 64% rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/ADSProtocol.java rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/ADS2TcpProtocol.java index bf19722..a4077f5 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/ADSProtocol.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/ADS2TcpProtocol.java @@ -24,9 +24,10 @@ import io.netty.handler.codec.MessageToMessageCodec; import org.apache.plc4x.java.ads.api.commands.*; import org.apache.plc4x.java.ads.api.commands.types.*; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPPacket; +import org.apache.plc4x.java.ads.api.generic.AMSPacket; import org.apache.plc4x.java.ads.api.generic.types.*; +import org.apache.plc4x.java.ads.api.tcp.AMSTCPHeader; +import org.apache.plc4x.java.ads.api.tcp.types.TcpLength; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,13 +37,13 @@ import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -public class ADSProtocol extends MessageToMessageCodec<ByteBuf, AMSTCPPacket> { +public class ADS2TcpProtocol extends MessageToMessageCodec<ByteBuf, AMSPacket> { - private static final Logger LOGGER = LoggerFactory.getLogger(ADSProtocol.class); + private static final Logger LOGGER = LoggerFactory.getLogger(ADS2TcpProtocol.class); - private final ConcurrentMap<Invoke, AMSTCPPacket> requests; + private final ConcurrentMap<Invoke, AMSPacket> requests; - public ADSProtocol() { + public ADS2TcpProtocol() { this.requests = new ConcurrentHashMap<>(); } @@ -54,12 +55,12 @@ public class ADSProtocol extends MessageToMessageCodec<ByteBuf, AMSTCPPacket> { } @Override - protected void encode(ChannelHandlerContext channelHandlerContext, AMSTCPPacket amstcpPacket, List<Object> out) throws Exception { - Invoke invokeId = amstcpPacket.getAmsHeader().getInvokeId(); + protected void encode(ChannelHandlerContext channelHandlerContext, AMSPacket amsPacket, List<Object> out) throws Exception { + Invoke invokeId = amsPacket.getAmsHeader().getInvokeId(); if (invokeId != Invoke.NONE) { - requests.put(invokeId, amstcpPacket); + requests.put(invokeId, amsPacket); } - out.add(amstcpPacket.getByteBuf()); + out.add(amsPacket.toAmstcpPacket().getByteBuf()); } @SuppressWarnings("unchecked") @@ -77,9 +78,9 @@ public class ADSProtocol extends MessageToMessageCodec<ByteBuf, AMSTCPPacket> { DataLength dataLength = DataLength.of(byteBuf); AMSError errorCode = AMSError.of(byteBuf); Invoke invoke = Invoke.of(byteBuf); - AMSTCPPacket correlatedAmstcpPacket = requests.remove(invoke); - if (correlatedAmstcpPacket != null) { - LOGGER.debug("Correlated packet received {}", correlatedAmstcpPacket); + AMSPacket correlatedAMSPacket = requests.remove(invoke); + if (correlatedAMSPacket != null) { + LOGGER.debug("Correlated packet received {}", correlatedAMSPacket); } if (dataLength.getAsLong() > Integer.MAX_VALUE) { byteBuf.release(); @@ -87,45 +88,46 @@ public class ADSProtocol extends MessageToMessageCodec<ByteBuf, AMSTCPPacket> { } ByteBuf commandBuffer = byteBuf.readBytes((int) dataLength.getAsLong()); AMSTCPHeader amstcpHeader = AMSTCPHeader.of(packetLength); + LOGGER.debug("AMS TCP Header {}", amstcpHeader); AMSHeader amsHeader = AMSHeader.of(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, commandId, stateId, dataLength, errorCode, invoke); - final AMSTCPPacket amstcpPacket; + final AMSPacket amsPacket; switch (commandId) { case INVALID: - amstcpPacket = handleInvalidCommand(commandBuffer, amstcpHeader, amsHeader); + amsPacket = handleInvalidCommand(commandBuffer, amsHeader); break; case ADS_READ_DEVICE_INFO: - amstcpPacket = handleADSReadDeviceInfoCommand(stateId, commandBuffer, amstcpHeader, amsHeader); + amsPacket = handleADSReadDeviceInfoCommand(stateId, commandBuffer, amsHeader); break; case ADS_READ: - amstcpPacket = handleADSReadCommand(stateId, commandBuffer, amstcpHeader, amsHeader); + amsPacket = handleADSReadCommand(stateId, commandBuffer, amsHeader); break; case ADS_WRITE: - amstcpPacket = handleADSWriteCommand(stateId, commandBuffer, amstcpHeader, amsHeader); + amsPacket = handleADSWriteCommand(stateId, commandBuffer, amsHeader); break; case ADS_READ_STATE: - amstcpPacket = handleADSReadStateCommand(stateId, commandBuffer, amstcpHeader, amsHeader); + amsPacket = handleADSReadStateCommand(stateId, commandBuffer, amsHeader); break; case ADS_WRITE_CONTROL: - amstcpPacket = handleADSWriteControlCommand(stateId, commandBuffer, amstcpHeader, amsHeader); + amsPacket = handleADSWriteControlCommand(stateId, commandBuffer, amsHeader); break; case ADS_ADD_DEVICE_NOTIFICATION: - amstcpPacket = handleADSAddDeviceNotificationCommand(stateId, commandBuffer, amstcpHeader, amsHeader); + amsPacket = handleADSAddDeviceNotificationCommand(stateId, commandBuffer, amsHeader); break; case ADS_DELETE_DEVICE_NOTIFICATION: - amstcpPacket = handADSDeleteDeviceNotificationCommand(stateId, commandBuffer, amstcpHeader, amsHeader); + amsPacket = handADSDeleteDeviceNotificationCommand(stateId, commandBuffer, amsHeader); break; case ADS_DEVICE_NOTIFICATION: - amstcpPacket = handleADSDeviceNotificationCommand(stateId, commandBuffer, amstcpHeader, amsHeader); + amsPacket = handleADSDeviceNotificationCommand(stateId, commandBuffer, amsHeader); break; case ADS_READ_WRITE: - amstcpPacket = handleADSReadWriteCommand(stateId, commandBuffer, amstcpHeader, amsHeader); + amsPacket = handleADSReadWriteCommand(stateId, commandBuffer, amsHeader); break; case UNKNOWN: default: - amstcpPacket = handleUnknownCommand(commandBuffer, amstcpHeader, amsHeader); + amsPacket = handleUnknownCommand(commandBuffer, amsHeader); } - out.add(amstcpPacket); - LOGGER.trace("Set amstcpPacket {} to out", amstcpPacket); + out.add(amsPacket); + LOGGER.trace("Set AMSPacket {} to out", amsPacket); if (commandBuffer.readableBytes() > 0) { commandBuffer.release(); byteBuf.release(); @@ -135,34 +137,32 @@ public class ADSProtocol extends MessageToMessageCodec<ByteBuf, AMSTCPPacket> { byteBuf.release(); } - private AMSTCPPacket handleInvalidCommand(ByteBuf commandBuffer, AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - AMSTCPPacket amstcpPacket; - amstcpPacket = UnknownCommand.of(amstcpHeader, amsHeader, commandBuffer); - return amstcpPacket; + private AMSPacket handleInvalidCommand(ByteBuf commandBuffer, AMSHeader amsHeader) { + return UnknownCommand.of(amsHeader, commandBuffer); } - private AMSTCPPacket handleADSReadDeviceInfoCommand(State stateId, ByteBuf commandBuffer, AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - AMSTCPPacket amstcpPacket; + private AMSPacket handleADSReadDeviceInfoCommand(State stateId, ByteBuf commandBuffer, AMSHeader amsHeader) { + AMSPacket AMSPacket; if (stateId.isRequest()) { - amstcpPacket = ADSReadDeviceInfoRequest.of(amstcpHeader, amsHeader); + AMSPacket = ADSReadDeviceInfoRequest.of(amsHeader); } else { Result result = Result.of(commandBuffer); MajorVersion majorVersion = MajorVersion.of(commandBuffer); MinorVersion minorVersion = MinorVersion.of(commandBuffer); Version version = Version.of(commandBuffer); Device device = Device.of(commandBuffer); - amstcpPacket = ADSReadDeviceInfoResponse.of(amstcpHeader, amsHeader, result, majorVersion, minorVersion, version, device); + AMSPacket = ADSReadDeviceInfoResponse.of(amsHeader, result, majorVersion, minorVersion, version, device); } - return amstcpPacket; + return AMSPacket; } - private AMSTCPPacket handleADSReadCommand(State stateId, ByteBuf commandBuffer, AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - AMSTCPPacket amstcpPacket; + private AMSPacket handleADSReadCommand(State stateId, ByteBuf commandBuffer, AMSHeader amsHeader) { + AMSPacket AMSPacket; if (stateId.isRequest()) { IndexGroup indexGroup = IndexGroup.of(commandBuffer); IndexOffset indexOffset = IndexOffset.of(commandBuffer); Length length = Length.of(commandBuffer); - amstcpPacket = ADSReadRequest.of(amstcpHeader, amsHeader, indexGroup, indexOffset, length); + AMSPacket = ADSReadRequest.of(amsHeader, indexGroup, indexOffset, length); } else { Result result = Result.of(commandBuffer); Length length = Length.of(commandBuffer); @@ -172,13 +172,13 @@ public class ADSProtocol extends MessageToMessageCodec<ByteBuf, AMSTCPPacket> { byte[] dataToRead = new byte[(int) length.getAsLong()]; commandBuffer.readBytes(dataToRead); Data data = Data.of(dataToRead); - amstcpPacket = ADSReadResponse.of(amstcpHeader, amsHeader, result, length, data); + AMSPacket = ADSReadResponse.of(amsHeader, result, length, data); } - return amstcpPacket; + return AMSPacket; } - private AMSTCPPacket handleADSWriteCommand(State stateId, ByteBuf commandBuffer, AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - AMSTCPPacket amstcpPacket; + private AMSPacket handleADSWriteCommand(State stateId, ByteBuf commandBuffer, AMSHeader amsHeader) { + AMSPacket AMSPacket; if (stateId.isRequest()) { IndexGroup indexGroup = IndexGroup.of(commandBuffer); IndexOffset indexOffset = IndexOffset.of(commandBuffer); @@ -189,28 +189,28 @@ public class ADSProtocol extends MessageToMessageCodec<ByteBuf, AMSTCPPacket> { byte[] dataToRead = new byte[(int) length.getAsLong()]; commandBuffer.readBytes(dataToRead); Data data = Data.of(dataToRead); - amstcpPacket = ADSWriteRequest.of(amstcpHeader, amsHeader, indexGroup, indexOffset, length, data); + AMSPacket = ADSWriteRequest.of(amsHeader, indexGroup, indexOffset, length, data); } else { Result result = Result.of(commandBuffer); - amstcpPacket = ADSWriteResponse.of(amstcpHeader, amsHeader, result); + AMSPacket = ADSWriteResponse.of(amsHeader, result); } - return amstcpPacket; + return AMSPacket; } - private AMSTCPPacket handleADSReadStateCommand(State stateId, ByteBuf commandBuffer, AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - AMSTCPPacket amstcpPacket; + private AMSPacket handleADSReadStateCommand(State stateId, ByteBuf commandBuffer, AMSHeader amsHeader) { + AMSPacket AMSPacket; if (stateId.isRequest()) { - amstcpPacket = ADSReadStateRequest.of(amstcpHeader, amsHeader); + AMSPacket = ADSReadStateRequest.of(amsHeader); } else { Result result = Result.of(commandBuffer); - amstcpPacket = ADSReadStateResponse.of(amstcpHeader, amsHeader, result); + AMSPacket = ADSReadStateResponse.of(amsHeader, result); } - return amstcpPacket; + return AMSPacket; } - private AMSTCPPacket handleADSWriteControlCommand(State stateId, ByteBuf commandBuffer, AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - AMSTCPPacket amstcpPacket; + private AMSPacket handleADSWriteControlCommand(State stateId, ByteBuf commandBuffer, AMSHeader amsHeader) { + AMSPacket AMSPacket; if (stateId.isRequest()) { ADSState adsState = ADSState.of(commandBuffer); DeviceState deviceState = DeviceState.of(commandBuffer); @@ -221,16 +221,16 @@ public class ADSProtocol extends MessageToMessageCodec<ByteBuf, AMSTCPPacket> { byte[] dataToRead = new byte[(int) length.getAsLong()]; commandBuffer.readBytes(dataToRead); Data data = Data.of(dataToRead); - amstcpPacket = ADSWriteControlRequest.of(amstcpHeader, amsHeader, adsState, deviceState, length, data); + AMSPacket = ADSWriteControlRequest.of(amsHeader, adsState, deviceState, length, data); } else { Result result = Result.of(commandBuffer); - amstcpPacket = ADSWriteControlResponse.of(amstcpHeader, amsHeader, result); + AMSPacket = ADSWriteControlResponse.of(amsHeader, result); } - return amstcpPacket; + return AMSPacket; } - private AMSTCPPacket handleADSAddDeviceNotificationCommand(State stateId, ByteBuf commandBuffer, AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - AMSTCPPacket amstcpPacket; + private AMSPacket handleADSAddDeviceNotificationCommand(State stateId, ByteBuf commandBuffer, AMSHeader amsHeader) { + AMSPacket AMSPacket; if (stateId.isRequest()) { IndexGroup indexGroup = IndexGroup.of(commandBuffer); IndexOffset indexOffset = IndexOffset.of(commandBuffer); @@ -239,29 +239,29 @@ public class ADSProtocol extends MessageToMessageCodec<ByteBuf, AMSTCPPacket> { MaxDelay maxDelay = MaxDelay.of(commandBuffer); CycleTime cycleTime = CycleTime.of(commandBuffer); commandBuffer.skipBytes(ADSAddDeviceNotificationRequest.Reserved.NUM_BYTES); - amstcpPacket = ADSAddDeviceNotificationRequest.of(amstcpHeader, amsHeader, indexGroup, indexOffset, length, transmissionMode, maxDelay, cycleTime); + AMSPacket = ADSAddDeviceNotificationRequest.of(amsHeader, indexGroup, indexOffset, length, transmissionMode, maxDelay, cycleTime); } else { Result result = Result.of(commandBuffer); NotificationHandle notificationHandle = NotificationHandle.of(commandBuffer); - amstcpPacket = ADSAddDeviceNotificationResponse.of(amstcpHeader, amsHeader, result, notificationHandle); + AMSPacket = ADSAddDeviceNotificationResponse.of(amsHeader, result, notificationHandle); } - return amstcpPacket; + return AMSPacket; } - private AMSTCPPacket handADSDeleteDeviceNotificationCommand(State stateId, ByteBuf commandBuffer, AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - AMSTCPPacket amstcpPacket; + private AMSPacket handADSDeleteDeviceNotificationCommand(State stateId, ByteBuf commandBuffer, AMSHeader amsHeader) { + AMSPacket AMSPacket; if (stateId.isRequest()) { NotificationHandle notificationHandle = NotificationHandle.of(commandBuffer); - amstcpPacket = ADSDeleteDeviceNotificationRequest.of(amstcpHeader, amsHeader, notificationHandle); + AMSPacket = ADSDeleteDeviceNotificationRequest.of(amsHeader, notificationHandle); } else { Result result = Result.of(commandBuffer); - amstcpPacket = ADSDeleteDeviceNotificationResponse.of(amstcpHeader, amsHeader, result); + AMSPacket = ADSDeleteDeviceNotificationResponse.of(amsHeader, result); } - return amstcpPacket; + return AMSPacket; } - private AMSTCPPacket handleADSDeviceNotificationCommand(State stateId, ByteBuf commandBuffer, AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - AMSTCPPacket amstcpPacket; + private AMSPacket handleADSDeviceNotificationCommand(State stateId, ByteBuf commandBuffer, AMSHeader amsHeader) { + AMSPacket AMSPacket; if (stateId.isRequest()) { Length length = Length.of(commandBuffer); if (length.getAsLong() > Integer.MAX_VALUE) { @@ -278,11 +278,11 @@ public class ADSProtocol extends MessageToMessageCodec<ByteBuf, AMSTCPPacket> { adsStampHeaders.add(adsStampHeader); } adsDeviceNotificationBuffer.release(); - amstcpPacket = ADSDeviceNotificationRequest.of(amstcpHeader, amsHeader, length, stamps, adsStampHeaders); + AMSPacket = ADSDeviceNotificationRequest.of(amsHeader, length, stamps, adsStampHeaders); } else { - amstcpPacket = UnknownCommand.of(amstcpHeader, amsHeader, commandBuffer); + AMSPacket = UnknownCommand.of(amsHeader, commandBuffer); } - return amstcpPacket; + return AMSPacket; } private AdsStampHeader handleStampHeader(ByteBuf adsDeviceNotificationBuffer) { @@ -311,8 +311,8 @@ public class ADSProtocol extends MessageToMessageCodec<ByteBuf, AMSTCPPacket> { return AdsNotificationSample.of(notificationHandle, sampleSize, data); } - private AMSTCPPacket handleADSReadWriteCommand(State stateId, ByteBuf commandBuffer, AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - AMSTCPPacket amstcpPacket; + private AMSPacket handleADSReadWriteCommand(State stateId, ByteBuf commandBuffer, AMSHeader amsHeader) { + AMSPacket AMSPacket; if (stateId.isRequest()) { IndexGroup indexGroup = IndexGroup.of(commandBuffer); IndexOffset indexOffset = IndexOffset.of(commandBuffer); @@ -330,7 +330,7 @@ public class ADSProtocol extends MessageToMessageCodec<ByteBuf, AMSTCPPacket> { byte[] dataToRead = new byte[(int) readLength.getAsLong()]; commandBuffer.readBytes(dataToRead); Data data = Data.of(dataToRead); - amstcpPacket = ADSReadWriteRequest.of(amstcpHeader, amsHeader, indexGroup, indexOffset, readLength, writeLength, data); + AMSPacket = ADSReadWriteRequest.of(amsHeader, indexGroup, indexOffset, readLength, writeLength, data); } else { Result result = Result.of(commandBuffer); Length length = Length.of(commandBuffer); @@ -340,14 +340,14 @@ public class ADSProtocol extends MessageToMessageCodec<ByteBuf, AMSTCPPacket> { byte[] dataToRead = new byte[(int) length.getAsLong()]; commandBuffer.readBytes(dataToRead); Data data = Data.of(dataToRead); - amstcpPacket = ADSReadWriteResponse.of(amstcpHeader, amsHeader, result, length, data); + AMSPacket = ADSReadWriteResponse.of(amsHeader, result, length, data); } - return amstcpPacket; + return AMSPacket; } - private AMSTCPPacket handleUnknownCommand(ByteBuf commandBuffer, AMSTCPHeader amstcpHeader, AMSHeader amsHeader) { - AMSTCPPacket amstcpPacket; - amstcpPacket = UnknownCommand.of(amstcpHeader, amsHeader, commandBuffer); - return amstcpPacket; + private AMSPacket handleUnknownCommand(ByteBuf commandBuffer, AMSHeader amsHeader) { + AMSPacket AMSPacket; + AMSPacket = UnknownCommand.of(amsHeader, commandBuffer); + return AMSPacket; } } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Plc4XADSProtocol.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Plc4X2ADSProtocol.java similarity index 91% rename from plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Plc4XADSProtocol.java rename to plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Plc4X2ADSProtocol.java index 1870b97..d6bf03f 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Plc4XADSProtocol.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Plc4X2ADSProtocol.java @@ -25,7 +25,7 @@ import org.apache.plc4x.java.ads.api.commands.ADSReadResponse; import org.apache.plc4x.java.ads.api.commands.ADSWriteRequest; import org.apache.plc4x.java.ads.api.commands.ADSWriteResponse; import org.apache.plc4x.java.ads.api.commands.types.*; -import org.apache.plc4x.java.ads.api.generic.AMSTCPPacket; +import org.apache.plc4x.java.ads.api.generic.AMSPacket; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Invoke; @@ -55,9 +55,9 @@ import java.util.concurrent.atomic.AtomicLong; import static org.apache.plc4x.java.ads.protocol.util.LittleEndianDecoder.decodeData; import static org.apache.plc4x.java.ads.protocol.util.LittleEndianEncoder.encodeData; -public class Plc4XADSProtocol extends MessageToMessageCodec<AMSTCPPacket, PlcRequestContainer<PlcRequest, PlcResponse>> { +public class Plc4X2ADSProtocol extends MessageToMessageCodec<AMSPacket, PlcRequestContainer<PlcRequest, PlcResponse>> { - private static final Logger LOGGER = LoggerFactory.getLogger(Plc4XADSProtocol.class); + private static final Logger LOGGER = LoggerFactory.getLogger(Plc4X2ADSProtocol.class); private static final AtomicLong correlationBuilder = new AtomicLong(1); @@ -68,7 +68,7 @@ public class Plc4XADSProtocol extends MessageToMessageCodec<AMSTCPPacket, PlcReq private final AMSNetId sourceAmsNetId; private final AMSPort sourceAmsPort; - public Plc4XADSProtocol(AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort) { + public Plc4X2ADSProtocol(AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort) { this.targetAmsNetId = targetAmsNetId; this.targetAmsPort = targetAmsPort; this.sourceAmsNetId = sourceAmsNetId; @@ -103,8 +103,8 @@ public class Plc4XADSProtocol extends MessageToMessageCodec<AMSTCPPacket, PlcReq IndexOffset indexOffset = IndexOffset.of(adsAddress.getIndexOffset()); byte[] bytes = encodeData(writeRequestItem.getDatatype(), writeRequestItem.getValues().toArray()); Data data = Data.of(bytes); - AMSTCPPacket amstcpPacket = ADSWriteRequest.of(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, indexGroup, indexOffset, data); - out.add(amstcpPacket); + AMSPacket AMSPacket = ADSWriteRequest.of(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, indexGroup, indexOffset, data); + out.add(AMSPacket); requests.put(invokeId.getAsLong(), msg); } @@ -124,16 +124,16 @@ public class Plc4XADSProtocol extends MessageToMessageCodec<AMSTCPPacket, PlcReq IndexGroup indexGroup = IndexGroup.of(adsAddress.getIndexGroup()); IndexOffset indexOffset = IndexOffset.of(adsAddress.getIndexOffset()); Length length = Length.of(readRequestItem.getSize()); - AMSTCPPacket amstcpPacket = ADSReadRequest.of(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, indexGroup, indexOffset, length); - out.add(amstcpPacket); + AMSPacket AMSPacket = ADSReadRequest.of(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, indexGroup, indexOffset, length); + out.add(AMSPacket); requests.put(invokeId.getAsLong(), msg); } @Override - protected void decode(ChannelHandlerContext channelHandlerContext, AMSTCPPacket amstcpPacket, List<Object> out) throws Exception { - PlcRequestContainer<PlcRequest, PlcResponse> plcRequestContainer = requests.remove(amstcpPacket.getAmsHeader().getInvokeId().getAsLong()); + protected void decode(ChannelHandlerContext channelHandlerContext, AMSPacket AMSPacket, List<Object> out) throws Exception { + PlcRequestContainer<PlcRequest, PlcResponse> plcRequestContainer = requests.remove(AMSPacket.getAmsHeader().getInvokeId().getAsLong()); if (plcRequestContainer == null) { - LOGGER.info("Unmapped packet received {}", amstcpPacket); + LOGGER.info("Unmapped packet received {}", AMSPacket); return; } PlcRequest request = plcRequestContainer.getRequest(); @@ -141,16 +141,16 @@ public class Plc4XADSProtocol extends MessageToMessageCodec<AMSTCPPacket, PlcReq // Handle the response to a read request. if (request instanceof PlcReadRequest) { - if (amstcpPacket instanceof ADSReadResponse) { - response = decodeReadResponse((ADSReadResponse) amstcpPacket, plcRequestContainer); + if (AMSPacket instanceof ADSReadResponse) { + response = decodeReadResponse((ADSReadResponse) AMSPacket, plcRequestContainer); } else { - throw new PlcProtocolException("Wrong type correlated " + amstcpPacket); + throw new PlcProtocolException("Wrong type correlated " + AMSPacket); } } else if (request instanceof PlcWriteRequest) { - if (amstcpPacket instanceof ADSWriteResponse) { - response = decodeWriteResponse((ADSWriteResponse) amstcpPacket, plcRequestContainer); + if (AMSPacket instanceof ADSWriteResponse) { + response = decodeWriteResponse((ADSWriteResponse) AMSPacket, plcRequestContainer); } else { - throw new PlcProtocolException("Wrong type correlated " + amstcpPacket); + throw new PlcProtocolException("Wrong type correlated " + AMSPacket); } } diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java index ca8f415..e653f2b 100644 --- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java +++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/GenericFactoryMethodTest.java @@ -19,6 +19,8 @@ package org.apache.plc4x.java.ads.api.generic; import org.apache.plc4x.java.ads.api.generic.types.Command; +import org.apache.plc4x.java.ads.api.tcp.AMSTCPHeader; +import org.apache.plc4x.java.ads.api.tcp.AMSTCPPacket; import org.apache.plc4x.java.ads.api.util.LengthSupplier; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/GenericTypesFactoryMethodTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/GenericTypesFactoryMethodTest.java index b3c3b14..d112d96 100644 --- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/GenericTypesFactoryMethodTest.java +++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/GenericTypesFactoryMethodTest.java @@ -18,6 +18,7 @@ */ package org.apache.plc4x.java.ads.api.generic.types; +import org.apache.plc4x.java.ads.api.tcp.types.TcpLength; import org.apache.plc4x.java.ads.api.util.UnsignedIntLEByteValue; import org.apache.plc4x.java.ads.api.util.UnsignedShortLEByteValue; import org.junit.Test; diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/TcpLengthTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/TcpLengthTest.java index 30b2528..864a3bb 100644 --- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/TcpLengthTest.java +++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/TcpLengthTest.java @@ -20,6 +20,7 @@ package org.apache.plc4x.java.ads.api.generic.types; import org.apache.commons.codec.binary.Hex; +import org.apache.plc4x.java.ads.api.tcp.types.TcpLength; import org.junit.Test; import static org.apache.plc4x.java.ads.util.Junit5Backport.assertThrows; diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/ADSProtocolTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/ADS2TcpProtocolTest.java similarity index 85% rename from plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/ADSProtocolTest.java rename to plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/ADS2TcpProtocolTest.java index 0a7d3ca..c35ad9c 100644 --- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/ADSProtocolTest.java +++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/ADS2TcpProtocolTest.java @@ -21,10 +21,11 @@ package org.apache.plc4x.java.ads.protocol; import io.netty.buffer.ByteBuf; import org.apache.plc4x.java.ads.api.commands.*; import org.apache.plc4x.java.ads.api.commands.types.*; -import org.apache.plc4x.java.ads.api.generic.AMSTCPPacket; +import org.apache.plc4x.java.ads.api.generic.AMSPacket; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Invoke; +import org.apache.plc4x.java.ads.api.tcp.AMSTCPPacket; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -44,11 +45,11 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; @RunWith(Parameterized.class) -public class ADSProtocolTest { +public class ADS2TcpProtocolTest { - private static final Logger LOGGER = LoggerFactory.getLogger(ADSProtocolTest.class); + private static final Logger LOGGER = LoggerFactory.getLogger(ADS2TcpProtocolTest.class); - private ADSProtocol SUT; + private ADS2TcpProtocol SUT; @Parameterized.Parameter public AMSTCPPacket amstcpPacket; @@ -67,20 +68,20 @@ public class ADSProtocolTest { return Stream.of( ADSAddDeviceNotificationRequest.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, - IndexGroup.of(1), IndexOffset.of(1), Length.of(1), TransmissionMode.of(1), MaxDelay.of(1), CycleTime.of(1)), + IndexGroup.of(1), IndexOffset.of(1), Length.of(1), TransmissionMode.of(1), MaxDelay.of(1), CycleTime.of(1)).toAmstcpPacket(), ADSAddDeviceNotificationResponse.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, Result.of(0), NotificationHandle.of(0) - ), + ).toAmstcpPacket(), ADSDeleteDeviceNotificationRequest.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, NotificationHandle.of(0) - ), + ).toAmstcpPacket(), ADSDeleteDeviceNotificationResponse.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, Result.of(0) - ), + ).toAmstcpPacket(), ADSDeviceNotificationRequest.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, Stamps.of(1), @@ -91,10 +92,10 @@ public class ADSProtocolTest { AdsNotificationSample.of(NotificationHandle.of(0), data)) ) ) - ), + ).toAmstcpPacket(), ADSReadDeviceInfoRequest.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId - ), + ).toAmstcpPacket(), ADSReadDeviceInfoResponse.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, Result.of(0), @@ -102,57 +103,58 @@ public class ADSProtocolTest { MinorVersion.of((byte) 2), Version.of(3), Device.of("Random DeviceId") - ), + ).toAmstcpPacket(), ADSReadRequest.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, IndexGroup.of(0), IndexOffset.of(0), Length.of(1) - ), + ).toAmstcpPacket(), ADSReadResponse.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, Result.of(0), data - ), + ).toAmstcpPacket(), ADSReadStateRequest.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId - ), + ).toAmstcpPacket(), ADSReadStateResponse.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, Result.of(0) - ), + ).toAmstcpPacket(), ADSReadWriteRequest.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, IndexGroup.of(0), IndexOffset.of(0), ReadLength.of(data.getCalculatedLength()), data - ), + ).toAmstcpPacket(), ADSReadWriteResponse.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, Result.of(0), data - ), + ).toAmstcpPacket(), ADSWriteControlRequest.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, ADSState.of(0xaffe), DeviceState.of(0xaffe), data - ), + ).toAmstcpPacket(), ADSWriteControlResponse.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, Result.of(0) - ), + ).toAmstcpPacket(), ADSWriteRequest.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, IndexGroup.of(0), IndexOffset.of(0), data - ), + ).toAmstcpPacket(), ADSWriteResponse.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, Result.of(0) - )/*, + ).toAmstcpPacket() + /*, UnknownCommand.of( targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, State.DEFAULT, invokeId, Unpooled.wrappedBuffer(new byte[]{42}) @@ -162,15 +164,15 @@ public class ADSProtocolTest { @Before public void setUp() throws Exception { - SUT = new ADSProtocol(); + SUT = new ADS2TcpProtocol(); byte[] bytes = amstcpPacket.getBytes(); - LOGGER.info("amstcpPacket:\n{} has \n{}bytes\nHexDump:\n{}", amstcpPacket, bytes.length, amstcpPacket.dump()); + LOGGER.info("amsPacket:\n{} has \n{}bytes\nHexDump:\n{}", amstcpPacket, bytes.length, amstcpPacket.dump()); } @Test public void encode() throws Exception { ArrayList<Object> out = new ArrayList<>(); - SUT.encode(null, amstcpPacket, out); + SUT.encode(null, amstcpPacket.getAmsPacket(), out); assertEquals(1, out.size()); assertThat(out, hasSize(1)); } @@ -185,7 +187,7 @@ public class ADSProtocolTest { @Test public void roundTrip() throws Exception { ArrayList<Object> outbound = new ArrayList<>(); - SUT.encode(null, amstcpPacket, outbound); + SUT.encode(null, amstcpPacket.getAmsPacket(), outbound); assertEquals(1, outbound.size()); assertThat(outbound, hasSize(1)); assertThat(outbound.get(0), instanceOf(ByteBuf.class)); @@ -194,8 +196,8 @@ public class ADSProtocolTest { SUT.decode(null, byteBuf, inbound); assertEquals(1, inbound.size()); assertThat(inbound, hasSize(1)); - assertThat(inbound.get(0), instanceOf(AMSTCPPacket.class)); - AMSTCPPacket inboundAmstcpPacket = (AMSTCPPacket) inbound.get(0); - assertThat("inbound divers from outbound", this.amstcpPacket, equalTo(inboundAmstcpPacket)); + assertThat(inbound.get(0), instanceOf(AMSPacket.class)); + AMSPacket inboundAmsPacket = (AMSPacket) inbound.get(0); + assertThat("inbound divers from outbound", this.amstcpPacket, equalTo(inboundAmsPacket.toAmstcpPacket())); } } \ No newline at end of file diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/Plc4XADSProtocolTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/Plc4X2ADS2TcpProtocolTest.java similarity index 92% rename from plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/Plc4XADSProtocolTest.java rename to plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/Plc4X2ADS2TcpProtocolTest.java index 66abf0a..5778b47 100644 --- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/Plc4XADSProtocolTest.java +++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/Plc4X2ADS2TcpProtocolTest.java @@ -25,7 +25,7 @@ import org.apache.plc4x.java.ads.api.commands.ADSWriteResponse; import org.apache.plc4x.java.ads.api.commands.types.Data; import org.apache.plc4x.java.ads.api.commands.types.Result; import org.apache.plc4x.java.ads.api.generic.AMSHeader; -import org.apache.plc4x.java.ads.api.generic.AMSTCPPacket; +import org.apache.plc4x.java.ads.api.generic.AMSPacket; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Invoke; @@ -54,12 +54,12 @@ import static org.hamcrest.Matchers.*; import static org.junit.Assert.assertThat; @RunWith(Parameterized.class) -public class Plc4XADSProtocolTest { - private static final Logger LOGGER = LoggerFactory.getLogger(ADSProtocolTest.class); +public class Plc4X2ADS2TcpProtocolTest { + private static final Logger LOGGER = LoggerFactory.getLogger(ADS2TcpProtocolTest.class); public static final Calendar calenderInstance = Calendar.getInstance(); - private Plc4XADSProtocol SUT; + private Plc4X2ADSProtocol SUT; @Parameterized.Parameter public String payloadClazzName; @@ -74,10 +74,10 @@ public class Plc4XADSProtocolTest { public String plcRequestContainerClassName; @Parameterized.Parameter(4) - public AMSTCPPacket amstcpPacket; + public AMSPacket amsPacket; @Parameterized.Parameter(5) - public String aMSTCPPacketClassName; + public String amsPacketClassName; @Parameterized.Parameters(name = "{index} Type:{0} {3} {5}") public static Collection<Object[]> data() { @@ -140,7 +140,7 @@ public class Plc4XADSProtocolTest { AMSPort targetAmsPort = AMSPort.of(7); AMSNetId sourceAmsNetId = AMSNetId.of("8.9.10.11.12.13"); AMSPort sourceAmsPort = AMSPort.of(14); - SUT = new Plc4XADSProtocol(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort); + SUT = new Plc4X2ADSProtocol(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort); } @Test @@ -148,11 +148,11 @@ public class Plc4XADSProtocolTest { ArrayList<Object> out = new ArrayList<>(); SUT.encode(null, plcRequestContainer, out); assertThat(out, hasSize(1)); - assertThat(out.get(0), instanceOf(AMSTCPPacket.class)); - AMSTCPPacket amstcpPacket = (AMSTCPPacket) out.get(0); - LOGGER.info("{}\nHexDump:\n{}", amstcpPacket, amstcpPacket.dump()); - if (amstcpPacket instanceof ADSWriteRequest) { - ADSWriteRequest adsWriteRequest = (ADSWriteRequest) amstcpPacket; + assertThat(out.get(0), instanceOf(AMSPacket.class)); + AMSPacket amsPacket = (AMSPacket) out.get(0); + LOGGER.info("{}\nHexDump:\n{}", amsPacket, amsPacket.dump()); + if (amsPacket instanceof ADSWriteRequest) { + ADSWriteRequest adsWriteRequest = (ADSWriteRequest) amsPacket; byte[] value = adsWriteRequest.getData().getBytes(); if (payloadClazzName.equals(Boolean.class.getSimpleName())) { assertThat(value, equalTo(new byte[]{0x1})); @@ -179,8 +179,8 @@ public class Plc4XADSProtocolTest { assertThat(in, hasSize(1)); syncInvoiceId(); ArrayList<Object> out = new ArrayList<>(); - LOGGER.info("{}\nHexDump:\n{}", amstcpPacket, amstcpPacket.dump()); - SUT.decode(null, amstcpPacket, out); + LOGGER.info("{}\nHexDump:\n{}", amsPacket, amsPacket.dump()); + SUT.decode(null, amsPacket, out); assertThat(out, hasSize(1)); assertThat(out.get(0), instanceOf(PlcRequestContainer.class)); PlcRequestContainer<?, ?> plcRequestContainer = (PlcRequestContainer) out.get(0); @@ -188,7 +188,7 @@ public class Plc4XADSProtocolTest { PlcResponse plcResponse = plcRequestContainer.getResponseFuture().get(); ResponseItem responseItem = (ResponseItem) plcResponse.getResponseItem().get(); LOGGER.info("ResponseItem {}", responseItem); - if (amstcpPacket instanceof ADSReadResponse) { + if (amsPacket instanceof ADSReadResponse) { ReadResponseItem readResponseItem = (ReadResponseItem) responseItem; Object value = readResponseItem.getValues().get(0); if (payloadClazzName.equals(Boolean.class.getSimpleName())) { @@ -214,7 +214,7 @@ public class Plc4XADSProtocolTest { correlationBuilderField.setAccessible(true); AtomicLong correlationBuilder = (AtomicLong) correlationBuilderField.get(SUT); - AMSHeader amsHeader = amstcpPacket.getAmsHeader(); + AMSHeader amsHeader = amsPacket.getAmsHeader(); Field invokeIdField = amsHeader.getClass().getDeclaredField("invokeId"); Field modifiersField = Field.class.getDeclaredField("modifiers"); modifiersField.setAccessible(true); diff --git a/plc4j/protocols/benchmarks/src/main/java/org/apache/plc4x/java/ads/netty/ADSProtocolBenchmark.java b/plc4j/protocols/benchmarks/src/main/java/org/apache/plc4x/java/ads/netty/ADSProtocolBenchmark.java index 0be9a4f..fba9662 100644 --- a/plc4j/protocols/benchmarks/src/main/java/org/apache/plc4x/java/ads/netty/ADSProtocolBenchmark.java +++ b/plc4j/protocols/benchmarks/src/main/java/org/apache/plc4x/java/ads/netty/ADSProtocolBenchmark.java @@ -28,7 +28,7 @@ import org.apache.plc4x.java.ads.api.commands.types.*; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; import org.apache.plc4x.java.ads.api.generic.types.Invoke; -import org.apache.plc4x.java.ads.protocol.ADSProtocol; +import org.apache.plc4x.java.ads.protocol.ADS2TcpProtocol; import org.openjdk.jmh.annotations.*; import org.openjdk.jmh.infra.Blackhole; @@ -39,7 +39,7 @@ public class ADSProtocolBenchmark { @State(Scope.Benchmark) public static class MyState { - ADSProtocol SUT = new ADSProtocol(); + ADS2TcpProtocol SUT = new ADS2TcpProtocol(); ADSWriteRequest adsWriteRequest = buildAdsWriteRequest(); byte[] adsWriteResponse = buildADSWriteResponse(); ADSReadRequest adsReadRequest = buildAdsReadRequest(); -- To stop receiving notification emails like this one, please contact sru...@apache.org.