This is an automated email from the ASF dual-hosted git repository. sruehl pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git.
from 3124e57 Fixed a typo add d25f18a first ADS Model implementation add 7c2e63f implement subclasses as byte readable add e0f11f1 cleanup accessors add ca3b2e6 cleanup wrongly referenced types add 9a47e3b extracted common types add 7b4ed92 invert default method of ByteReadable add 497730c extracted classes from generic model add ad9a6ff + encourage usage of factory method of + refactored magic numbers add 9f18e72 added some convinience methods add 665dcfc renamed model package to api add 1427280 added basic ADSPlcDriver add bba1470 added simple ADSPlcConnection implementation. add 813415f added some basic tests and commited the missing parts add 5bf610c added method using short add 013421c fixed wrong masking of integer as we masked to much add 5d3ecb8 fixed wrong implementation of AMSPort add 46fa650 fixed wrong implementation of Length add d0e3445 fixed ReadLength implementation add 7805d0c fixed failing build add 8e0e8e6 fixed remaining implementations and added tests for it add 90ecd7c use long literal instead of value of add 5be4ac8 added a tcp mock hex dumper add fe4f3d9 added possibility to use a random port add 4ff6028 added jdoc for tcpdumper add b1824a5 Added possibility to supply optional port. Can be used for Unit-Tests and tunneling. add eb4482f get rid of Optional as field add f609240 fixed usage of wrong Type add 6cd273a avoid serialisation of Unknown enums add 2a2d181 try to create a .pcap file with pcap4j add af5db36 added calculated headers for convenient API usage add ff07d14 added util methods for manual usage of TcpHexDumper add 944cebf switch to LittleEndian add 7f4846e remove nData from header add da08dbb implemented basic ADS Protocol handler add b4f5570 fix build add d2b6709 + progress on Plc4XADSProtocol add 444e16a refactored common code add 2fb37fd added todo about wrong state flag implementation add 594ec25 solved a couple of todos and added some new add 3ab89ff removed wrong implementation of readRequest mapping add daafbcd added a generated AMSNetId and AMSPort for source when not supplied add 07391bd Merge remote-tracking branch 'origin/master' into feature/Beckhoff_ADS_protocol add 5bfbcff introduced UnsignedShortLEByteValue add 2cd0c2c fixed state mask and simplified generated requests. add 2fbc938 remove unused @FunctionalInterface interfaces add e01a7b5 fixed test by letting the TcpHexDumper perform a gentle shutdown add 1833df7 + continued on plc protocol layer + added readable error codes from specification. add 9a09ef4 Merge remote-tracking branch 'origin/master' into feature/Beckhoff_ADS_protocol add 6635fa7 post merge junit 4 migration add 2a582d0 use AbstractPlcConnection and improved implementation of it. add ad93bf0 + implement basic fake serialization for ADS. + Fixed tests and protocol implementation add 87c4def reduce timeout to improve test performance. add 83a4a0c added tests for ADS protocol add 9b81275 replace constructor with factory method add 1283cf1 + added convinience methods for automatically calculating lengths. + Integrated CalculatedClass into normal classes + added couple more nullchecks add 911135e added tests for Plc4XADSProtocol new b9b9417 Merge branch 'feature/Beckhoff_ADS_protocol' The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: plc4j/protocols/{s7 => ads}/LINKS.md | 8 +- plc4j/protocols/{s7 => ads}/pom.xml | 32 +- .../org/apache/plc4x/java/ads/ADSPlcDriver.java | 87 ++++++ .../java/ads/api/commands/ADSAbstractRequest.java | 45 +++ .../java/ads/api/commands/ADSAbstractResponse.java | 45 +++ .../commands/ADSAddDeviceNotificationRequest.java | 140 +++++++++ .../commands/ADSAddDeviceNotificationResponse.java | 81 +++++ .../java/ads/api/commands/ADSCommandType.java} | 32 +- .../ADSDeleteDeviceNotificationRequest.java | 81 +++++ .../ADSDeleteDeviceNotificationResponse.java | 72 +++++ .../api/commands/ADSDeviceNotificationRequest.java | 123 ++++++++ .../commands/ADSDeviceNotificationResponse.java} | 31 +- .../ads/api/commands/ADSReadDeviceInfoRequest.java | 66 ++++ .../api/commands/ADSReadDeviceInfoResponse.java | 100 ++++++ .../java/ads/api/commands/ADSReadRequest.java | 101 ++++++ .../java/ads/api/commands/ADSReadResponse.java | 112 +++++++ .../java/ads/api/commands/ADSReadStateRequest.java | 66 ++++ .../ads/api/commands/ADSReadStateResponse.java | 72 +++++ .../java/ads/api/commands/ADSReadWriteRequest.java | 129 ++++++++ .../ads/api/commands/ADSReadWriteResponse.java | 102 +++++++ .../ads/api/commands/ADSWriteControlRequest.java | 124 ++++++++ .../ads/api/commands/ADSWriteControlResponse.java | 71 +++++ .../java/ads/api/commands/ADSWriteRequest.java | 120 ++++++++ .../java/ads/api/commands/ADSWriteResponse.java | 76 +++++ .../java/ads/api/commands/UnknownCommand.java | 51 ++++ .../java/ads/api/commands/types/ADSState.java | 56 ++++ .../api/commands/types/AdsNotificationSample.java | 88 ++++++ .../java/ads/api/commands/types/AdsReturnCode.java | 201 ++++++++++++ .../ads/api/commands/types/AdsStampHeader.java | 67 ++++ .../java/ads/api/commands/types/CycleTime.java | 52 ++++ .../plc4x/java/ads/api/commands/types/Data.java} | 29 +- .../plc4x/java/ads/api/commands/types/Device.java} | 31 +- .../java/ads/api/commands/types/DeviceState.java | 56 ++++ .../java/ads/api/commands/types/IndexGroup.java | 52 ++++ .../java/ads/api/commands/types/IndexOffset.java | 52 ++++ .../plc4x/java/ads/api/commands/types/Length.java | 57 ++++ .../java/ads/api/commands/types/MajorVersion.java} | 31 +- .../java/ads/api/commands/types/MaxDelay.java | 52 ++++ .../java/ads/api/commands/types/MinorVersion.java} | 31 +- .../ads/api/commands/types/NotificationHandle.java | 52 ++++ .../java/ads/api/commands/types/ReadLength.java | 56 ++++ .../plc4x/java/ads/api/commands/types/Result.java | 61 ++++ .../java/ads/api/commands/types/SampleSize.java | 56 ++++ .../plc4x/java/ads/api/commands/types/Samples.java | 56 ++++ .../plc4x/java/ads/api/commands/types/Stamps.java | 52 ++++ .../java/ads/api/commands/types/TimeStamp.java | 67 ++++ .../ads/api/commands/types/TransmissionMode.java | 52 ++++ .../plc4x/java/ads/api/commands/types/Version.java | 56 ++++ .../java/ads/api/commands/types/WriteLength.java | 56 ++++ .../plc4x/java/ads/api/generic/ADSData.java} | 27 +- .../plc4x/java/ads/api/generic/AMSHeader.java | 183 +++++++++++ .../plc4x/java/ads/api/generic/AMSTCPHeader.java | 108 +++++++ .../plc4x/java/ads/api/generic/AMSTCPPaket.java | 89 ++++++ .../plc4x/java/ads/api/generic/types/AMSError.java | 64 ++++ .../plc4x/java/ads/api/generic/types/AMSNetId.java | 79 +++++ .../plc4x/java/ads/api/generic/types/AMSPort.java | 66 ++++ .../plc4x/java/ads/api/generic/types/Command.java | 105 +++++++ .../java/ads/api/generic/types/DataLength.java | 56 ++++ .../plc4x/java/ads/api/generic/types/Invoke.java | 54 ++++ .../plc4x/java/ads/api/generic/types/Length.java | 58 ++++ .../plc4x/java/ads/api/generic/types/State.java | 189 ++++++++++++ .../apache/plc4x/java/ads/api/package-info.java} | 26 +- .../plc4x/java/ads/api/util/ByteReadable.java} | 28 +- .../java/ads/api/util/ByteReadableUtils.java} | 30 +- .../apache/plc4x/java/ads/api/util/ByteValue.java | 88 ++++++ .../plc4x/java/ads/api/util/LengthSupplier.java} | 24 +- .../java/ads/api/util/UnsignedIntLEByteValue.java | 65 ++++ .../ads/api/util/UnsignedShortLEByteValue.java | 65 ++++ .../java/ads/connection/ADSPlcConnection.java | 134 ++++++++ .../apache/plc4x/java/ads/model/ADSAddress.java | 64 ++++ .../apache/plc4x/java/ads/model/package-info.java} | 25 +- .../apache/plc4x/java/ads/netty/ADSProtocol.java | 270 ++++++++++++++++ .../plc4x/java/ads/netty/Plc4XADSProtocol.java | 339 +++++++++++++++++++++ .../services/org.apache.plc4x.java.api.PlcDriver | 2 +- .../{s7 => ads}/src/site/asciidoc/index.adoc | 42 +-- .../java/org/apache/plc4x/java/ads/ADSDumper.java | 110 +++++++ .../apache/plc4x/java/ads/ADSPlcDriverTest.java | 58 ++++ .../java/ads/api/commands/types/LengthTest.java | 58 ++++ .../ads/api/commands/types/ReadLengthTest.java | 59 ++++ .../ads/api/commands/types/SampleSizeTest.java | 59 ++++ .../java/ads/api/commands/types/SamplesTest.java | 59 ++++ .../ads/api/commands/types/WriteLengthTest.java | 61 ++++ .../java/ads/api/generic/types/AMSPortTest.java | 59 ++++ .../java/ads/api/generic/types/DataLengthTest.java | 61 ++++ .../java/ads/api/generic/types/LengthTest.java | 60 ++++ .../java/ads/connection/ADSPlcConnectionTests.java | 72 +++++ .../plc4x/java/ads/netty/ADSProtocolTest.java | 192 ++++++++++++ .../plc4x/java/ads/netty/Plc4XADSProtocolTest.java | 101 ++++++ .../plc4x/java/ads/util/Junit5Backport.java} | 36 ++- .../apache/plc4x/java/ads/util/TcpHexDumper.java | 142 +++++++++ .../protocols/ads/src/test}/resources/logback.xml | 2 +- .../base/connection/AbstractPlcConnection.java | 25 +- plc4j/protocols/pom.xml | 1 + .../plc4x/java/s7/connection/S7PlcConnection.java | 21 +- 94 files changed, 6615 insertions(+), 287 deletions(-) copy plc4j/protocols/{s7 => ads}/LINKS.md (63%) copy plc4j/protocols/{s7 => ads}/pom.xml (78%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/ADSPlcDriver.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAbstractRequest.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAbstractResponse.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationRequest.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSAddDeviceNotificationResponse.java copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/connection/PlcReaderTest.java => protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSCommandType.java} (53%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationRequest.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeleteDeviceNotificationResponse.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationRequest.java copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/connection/PlcReaderTest.java => protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSDeviceNotificationResponse.java} (53%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoRequest.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadDeviceInfoResponse.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadRequest.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadResponse.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateRequest.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadStateResponse.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteRequest.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSReadWriteResponse.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlRequest.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteControlResponse.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteRequest.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/ADSWriteResponse.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/UnknownCommand.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/ADSState.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsNotificationSample.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsReturnCode.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/AdsStampHeader.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/CycleTime.java copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/connection/PlcReaderTest.java => protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Data.java} (53%) copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/connection/PlcReaderTest.java => protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Device.java} (54%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/DeviceState.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/IndexGroup.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/IndexOffset.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Length.java copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/connection/PlcReaderTest.java => protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MajorVersion.java} (54%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MaxDelay.java copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/connection/PlcReaderTest.java => protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/MinorVersion.java} (54%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/NotificationHandle.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/ReadLength.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Result.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/SampleSize.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Samples.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Stamps.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/TimeStamp.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/TransmissionMode.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/Version.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/types/WriteLength.java copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/connection/PlcReaderTest.java => protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/ADSData.java} (53%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSHeader.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPHeader.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/AMSTCPPaket.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/AMSError.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/AMSNetId.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/AMSPort.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Command.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/DataLength.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Invoke.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/Length.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/State.java copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/connection/PlcReaderTest.java => protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/package-info.java} (53%) copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/connection/PlcReaderTest.java => protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteReadable.java} (54%) copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/connection/PlcReaderTest.java => protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteReadableUtils.java} (53%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteValue.java copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/connection/PlcReaderTest.java => protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/LengthSupplier.java} (53%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/UnsignedIntLEByteValue.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/UnsignedShortLEByteValue.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSPlcConnection.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/ADSAddress.java copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/connection/PlcReaderTest.java => protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/package-info.java} (53%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/netty/ADSProtocol.java create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/netty/Plc4XADSProtocol.java copy plc4j/protocols/{s7 => ads}/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver (95%) copy plc4j/protocols/{s7 => ads}/src/site/asciidoc/index.adoc (65%) create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ADSDumper.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ADSPlcDriverTest.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/commands/types/LengthTest.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/commands/types/ReadLengthTest.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/commands/types/SampleSizeTest.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/commands/types/SamplesTest.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/commands/types/WriteLengthTest.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/AMSPortTest.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/DataLengthTest.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/generic/types/LengthTest.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/ADSPlcConnectionTests.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/netty/ADSProtocolTest.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/netty/Plc4XADSProtocolTest.java copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/connection/PlcReaderTest.java => protocols/ads/src/test/java/org/apache/plc4x/java/ads/util/Junit5Backport.java} (53%) create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/util/TcpHexDumper.java copy {examples/kafka-bridge/src/main => plc4j/protocols/ads/src/test}/resources/logback.xml (97%) -- To stop receiving notification emails like this one, please contact sru...@apache.org.