You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2021/01/28 21:13:58 UTC

[plc4x] 01/01: Merge tag 'v0.8.0' into release

This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch release
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit c3427a2a35b1ab8fd9a6f21625355086d2a41119
Merge: 0c18c7c ebd0d6c
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Jan 28 22:13:22 2021 +0100

    Merge tag 'v0.8.0' into release
    
    [maven-release-plugin] copy for tag v0.8.0

 .asf.yaml                                          |    56 +
 .gitignore                                         |     5 +
 .gitlab-ci.yml                                     |    48 -
 Dockerfile                                         |    10 +-
 Jenkinsfile                                        |    16 +-
 LICENSE                                            |     1 +
 NOTICE                                             |     7 +-
 README.md                                          |    50 +-
 RELEASE_NOTES                                      |   106 +-
 build-utils/language-base-freemarker/pom.xml       |     6 +-
 .../BaseFreemarkerLanguageTemplateHelper.java      |   865 ++
 .../protocol/freemarker/FreemarkerException.java   |    34 +
 .../freemarker/FreemarkerLanguageOutput.java       |    10 +-
 build-utils/language-c/pom.xml                     |     4 +-
 .../apache/plc4x/language/c/CLanguageOutput.java   |    12 +-
 .../plc4x/language/c/CLanguageTemplateHelper.java  |   972 +-
 .../resources/templates/c/data-io-template-c.ftlh  |   246 +
 .../resources/templates/c/data-io-template-h.ftlh  |    88 +
 .../resources/templates/c/enum-template-c.ftlh     |   105 +
 .../resources/templates/c/enum-template-h.ftlh     |    92 +
 .../resources/templates/c/pojo-template-c.ftlh     |   687 +-
 .../resources/templates/c/pojo-template-h.ftlh     |   135 +-
 build-utils/language-go/pom.xml                    |    58 +
 .../apache/plc4x/language/go/GoLanguageOutput.java |    72 +
 .../language/go/GoLanguageTemplateHelper.java      |  1082 ++
 .../apache/plc4x/language/go/utils/FieldUtils.java |   103 +
 ...x.plugins.codegenerator.language.LanguageOutput |    19 +
 .../resources/templates/go/data-io-template.ftlh   |   222 +
 .../main/resources/templates/go/enum-template.ftlh |   159 +
 .../resources/templates/go/model-template.ftlh     |  1048 ++
 .../templates/go/parser-factory-template.ftlh      |    96 +
 .../templates/go/xml-parser-factory-template.ftlh  |    89 +
 build-utils/language-java/pom.xml                  |     4 +-
 .../plc4x/language/java/JavaLanguageOutput.java    |     4 +-
 .../language/java/JavaLanguageTemplateHelper.java  |   301 +-
 .../resources/templates/java/data-io-template.ftlh |   279 +-
 .../templates/java/enum-package-info-template.ftlh |     8 +
 .../resources/templates/java/enum-template.ftlh    |    77 +-
 .../main/resources/templates/java/io-template.ftlh |   448 +-
 .../resources/templates/java/pojo-template.ftlh    |   256 +-
 build-utils/pom.xml                                |     3 +-
 build-utils/protocol-base-mspec/pom.xml            |     2 +-
 .../plugins/codegenerator/language/mspec/MSpec.g4  |   192 +-
 .../model/definitions/DefaultTypeDefinition.java   |     6 +
 .../mspec/model/fields/DefaultSwitchField.java     |    10 +-
 .../references/DefaultComplexTypeReference.java    |    37 -
 .../references/DefaultFloatTypeReference.java      |    45 -
 .../references/DefaultIntegerTypeReference.java    |    30 -
 .../references/DefaultSimpleTypeReference.java     |    44 -
 .../DefaultSimpleVarLengthTypeReference.java       |    30 -
 .../references/DefaultStringTypeReference.java     |    38 -
 .../references/DefaultTemporalTypeReference.java   |    30 -
 .../mspec/parser/MessageFormatListener.java        |   119 +-
 build-utils/protocol-test/pom.xml                  |     6 +-
 go.mod                                             |    21 +
 media/logos/300ppi/Toddy colorize@300x.png         |   Bin 0 -> 560986 bytes
 media/logos/PDF/Toddy colorize.pdf                 |   Bin 0 -> 41014 bytes
 .../logos/SVG/logo PLC4X black line only toddy.svg |   138 +
 media/powered-by-plc4x.png                         |   Bin 0 -> 99195 bytes
 media/toddy-loves-apache.png                       |   Bin 0 -> 265483 bytes
 .../knxnetip/ParserSerializerTestsuite.xml         |   546 +
 .../testing/protocols/modbus/DriverTestsuite.xml   |   382 +
 .../protocols/modbus/ParserSerializerTestsuite.xml |   181 +
 .../testing/protocols/s7/DriverTestsuite.xml       |   389 +
 .../protocols/s7/ParserSerializerTestsuite.xml     |   501 +
 plc4go/cmd/main/drivers/bacnetip_test.go           |    43 +
 plc4go/cmd/main/drivers/knxnetip_test.go           |   320 +
 plc4go/cmd/main/drivers/modbus_test.go             |   213 +
 plc4go/cmd/main/drivers/s7_test.go                 |    42 +
 .../cmd/main/drivers/tests/knx_discovery_test.go   |   619 +
 .../cmd/main/drivers/tests/modbus_driver_test.go   |    29 +
 .../drivers/tests/modbus_parser_serializer_test.go |    28 +
 plc4go/cmd/main/main.go                            |    22 +
 plc4go/examples/read/hello_world_plc4go_read.go    |    70 +
 plc4go/examples/write/hello_world_plc4go_write.go  |    71 +
 plc4go/go.mod                                      |    28 +
 plc4go/go.sum                                      |    23 +
 plc4go/internal/plc4go/bacnetip/BacnetIpDriver.go  |    25 +
 .../plc4go/bacnetip/readwrite/ParserHelper.go      |    79 +
 .../plc4go/bacnetip/readwrite/XmlParserHelper.go   |   119 +
 .../plc4go/bacnetip/readwrite/model/APDU.go        |   292 +
 .../plc4go/bacnetip/readwrite/model/APDUAbort.go   |   246 +
 .../bacnetip/readwrite/model/APDUComplexAck.go     |   347 +
 .../readwrite/model/APDUConfirmedRequest.go        |   431 +
 .../plc4go/bacnetip/readwrite/model/APDUError.go   |   217 +
 .../plc4go/bacnetip/readwrite/model/APDUReject.go  |   218 +
 .../bacnetip/readwrite/model/APDUSegmentAck.go     |   302 +
 .../bacnetip/readwrite/model/APDUSimpleAck.go      |   218 +
 .../readwrite/model/APDUUnconfirmedRequest.go      |   189 +
 .../bacnetip/readwrite/model/ApplicationTag.go     |   172 +
 .../bacnetip/readwrite/model/BACnetAddress.go      |   183 +
 .../readwrite/model/BACnetConfirmedServiceACK.go   |   376 +
 .../BACnetConfirmedServiceACKAtomicReadFile.go     |   135 +
 .../BACnetConfirmedServiceACKAtomicWriteFile.go    |   135 +
 ...tConfirmedServiceACKConfirmedPrivateTransfer.go |   135 +
 .../model/BACnetConfirmedServiceACKCreateObject.go |   135 +
 .../BACnetConfirmedServiceACKGetAlarmSummary.go    |   135 +
 ...ACnetConfirmedServiceACKGetEnrollmentSummary.go |   135 +
 ...BACnetConfirmedServiceACKGetEventInformation.go |   135 +
 .../model/BACnetConfirmedServiceACKReadProperty.go |   135 +
 ...ACnetConfirmedServiceACKReadPropertyMultiple.go |   135 +
 .../model/BACnetConfirmedServiceACKReadRange.go    |   135 +
 ...BACnetConfirmedServiceACKRemovedAuthenticate.go |   135 +
 ...rmedServiceACKRemovedReadPropertyConditional.go |   135 +
 .../model/BACnetConfirmedServiceACKVTData.go       |   135 +
 .../model/BACnetConfirmedServiceACKVTOpen.go       |   135 +
 .../model/BACnetConfirmedServiceRequest.go         |   614 +
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go |   135 +
 .../BACnetConfirmedServiceRequestAddListElement.go |   135 +
 .../BACnetConfirmedServiceRequestAtomicReadFile.go |   135 +
 ...BACnetConfirmedServiceRequestAtomicWriteFile.go |   135 +
 ...firmedServiceRequestConfirmedCOVNotification.go |   515 +
 ...rviceRequestConfirmedCOVNotificationMultiple.go |   135 +
 ...rmedServiceRequestConfirmedEventNotification.go |   135 +
 ...firmedServiceRequestConfirmedPrivateTransfer.go |   135 +
 ...tConfirmedServiceRequestConfirmedTextMessage.go |   135 +
 .../BACnetConfirmedServiceRequestCreateObject.go   |   135 +
 .../BACnetConfirmedServiceRequestDeleteObject.go   |   135 +
 ...rmedServiceRequestDeviceCommunicationControl.go |   135 +
 ...tConfirmedServiceRequestGetEnrollmentSummary.go |   135 +
 ...etConfirmedServiceRequestGetEventInformation.go |   135 +
 ...etConfirmedServiceRequestLifeSafetyOperation.go |   135 +
 .../BACnetConfirmedServiceRequestReadProperty.go   |   307 +
 ...tConfirmedServiceRequestReadPropertyMultiple.go |   135 +
 .../BACnetConfirmedServiceRequestReadRange.go      |   135 +
 ...netConfirmedServiceRequestReinitializeDevice.go |   135 +
 ...CnetConfirmedServiceRequestRemoveListElement.go |   135 +
 ...etConfirmedServiceRequestRemovedAuthenticate.go |   135 +
 ...ServiceRequestRemovedReadPropertyConditional.go |   135 +
 ...CnetConfirmedServiceRequestRemovedRequestKey.go |   135 +
 .../BACnetConfirmedServiceRequestSubscribeCOV.go   |   420 +
 ...tConfirmedServiceRequestSubscribeCOVProperty.go |   135 +
 ...edServiceRequestSubscribeCOVPropertyMultiple.go |   135 +
 .../model/BACnetConfirmedServiceRequestVTClose.go  |   135 +
 .../model/BACnetConfirmedServiceRequestVTData.go   |   135 +
 .../model/BACnetConfirmedServiceRequestVTOpen.go   |   135 +
 .../BACnetConfirmedServiceRequestWriteProperty.go  |   412 +
 ...ConfirmedServiceRequestWritePropertyMultiple.go |   135 +
 .../plc4go/bacnetip/readwrite/model/BACnetError.go |   376 +
 .../readwrite/model/BACnetErrorAtomicReadFile.go   |   135 +
 .../readwrite/model/BACnetErrorAtomicWriteFile.go  |   135 +
 .../model/BACnetErrorConfirmedPrivateTransfer.go   |   135 +
 .../readwrite/model/BACnetErrorCreateObject.go     |   135 +
 .../readwrite/model/BACnetErrorGetAlarmSummary.go  |   135 +
 .../model/BACnetErrorGetEnrollmentSummary.go       |   135 +
 .../model/BACnetErrorGetEventInformation.go        |   135 +
 .../readwrite/model/BACnetErrorReadProperty.go     |   324 +
 .../model/BACnetErrorReadPropertyMultiple.go       |   135 +
 .../readwrite/model/BACnetErrorReadRange.go        |   135 +
 .../model/BACnetErrorRemovedAuthenticate.go        |   135 +
 .../BACnetErrorRemovedReadPropertyConditional.go   |   135 +
 .../bacnetip/readwrite/model/BACnetErrorVTData.go  |   135 +
 .../bacnetip/readwrite/model/BACnetErrorVTOpen.go  |   135 +
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |   158 +
 .../bacnetip/readwrite/model/BACnetNodeType.go     |   235 +
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |   102 +
 .../bacnetip/readwrite/model/BACnetObjectType.go   |   494 +
 .../bacnetip/readwrite/model/BACnetServiceAck.go   |   376 +
 .../model/BACnetServiceAckAtomicReadFile.go        |   135 +
 .../model/BACnetServiceAckAtomicWriteFile.go       |   135 +
 .../BACnetServiceAckConfirmedPrivateTransfer.go    |   135 +
 .../model/BACnetServiceAckCreateObject.go          |   135 +
 .../model/BACnetServiceAckGetAlarmSummary.go       |   135 +
 .../model/BACnetServiceAckGetEnrollmentSummary.go  |   135 +
 .../model/BACnetServiceAckGetEventInformation.go   |   135 +
 .../model/BACnetServiceAckReadProperty.go          |   372 +
 .../model/BACnetServiceAckReadPropertyMultiple.go  |   135 +
 .../readwrite/model/BACnetServiceAckReadRange.go   |   135 +
 .../model/BACnetServiceAckRemovedAuthenticate.go   |   135 +
 ...CnetServiceAckRemovedReadPropertyConditional.go |   135 +
 .../readwrite/model/BACnetServiceAckVTData.go      |   135 +
 .../readwrite/model/BACnetServiceAckVTOpen.go      |   135 +
 .../plc4go/bacnetip/readwrite/model/BACnetTag.go   |   498 +
 .../model/BACnetTagApplicationBitString.go         |   216 +
 .../readwrite/model/BACnetTagApplicationBoolean.go |   139 +
 .../model/BACnetTagApplicationCharacterString.go   |   139 +
 .../readwrite/model/BACnetTagApplicationDate.go    |   139 +
 .../readwrite/model/BACnetTagApplicationDouble.go  |   168 +
 .../model/BACnetTagApplicationEnumerated.go        |   188 +
 .../readwrite/model/BACnetTagApplicationNull.go    |   139 +
 .../model/BACnetTagApplicationObjectIdentifier.go  |   139 +
 .../model/BACnetTagApplicationOctetString.go       |   139 +
 .../readwrite/model/BACnetTagApplicationReal.go    |   168 +
 .../model/BACnetTagApplicationSignedInteger.go     |   188 +
 .../readwrite/model/BACnetTagApplicationTime.go    |   139 +
 .../model/BACnetTagApplicationUnsignedInteger.go   |   188 +
 .../bacnetip/readwrite/model/BACnetTagContext.go   |   188 +
 .../readwrite/model/BACnetTagWithContent.go        |   373 +
 .../model/BACnetUnconfirmedServiceRequest.go       |   348 +
 .../model/BACnetUnconfirmedServiceRequestIAm.go    |   401 +
 .../model/BACnetUnconfirmedServiceRequestIHave.go  |   135 +
 ...UnconfirmedServiceRequestTimeSynchronization.go |   135 +
 ...onfirmedServiceRequestUTCTimeSynchronization.go |   135 +
 ...rmedServiceRequestUnconfirmedCOVNotification.go |   135 +
 ...iceRequestUnconfirmedCOVNotificationMultiple.go |   135 +
 ...edServiceRequestUnconfirmedEventNotification.go |   135 +
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go |   319 +
 ...onfirmedServiceRequestUnconfirmedTextMessage.go |   135 +
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go |   344 +
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go  |   324 +
 .../BACnetUnconfirmedServiceRequestWriteGroup.go   |   135 +
 .../plc4go/bacnetip/readwrite/model/BVLC.go        |   400 +
 .../model/BVLCDeleteForeignDeviceTableEntry.go     |   135 +
 .../model/BVLCDistributeBroadcastToNetwork.go      |   135 +
 .../bacnetip/readwrite/model/BVLCForwardedNPDU.go  |   235 +
 .../readwrite/model/BVLCOriginalBroadcastNPDU.go   |   163 +
 .../readwrite/model/BVLCOriginalUnicastNPDU.go     |   163 +
 .../model/BVLCReadBroadcastDistributionTable.go    |   135 +
 .../model/BVLCReadBroadcastDistributionTableAck.go |   135 +
 .../readwrite/model/BVLCReadForeignDeviceTable.go  |   135 +
 .../model/BVLCReadForeignDeviceTableAck.go         |   135 +
 .../readwrite/model/BVLCRegisterForeignDevice.go   |   135 +
 .../plc4go/bacnetip/readwrite/model/BVLCResult.go  |   135 +
 .../bacnetip/readwrite/model/BVLCSecureBVLL.go     |   135 +
 .../model/BVLCWideBroadcastDistributionTable.go    |   135 +
 .../plc4go/bacnetip/readwrite/model/NLM.go         |   243 +
 .../readwrite/model/NLMIAmRouterToNetwork.go       |   183 +
 .../readwrite/model/NLMWhoIsRouterToNetwork.go     |   183 +
 .../plc4go/bacnetip/readwrite/model/NPDU.go        |   651 +
 .../plc4go/knxnetip/KnxNetIpActiveReader.go        |    67 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpBrowser.go |   241 +
 .../internal/plc4go/knxnetip/KnxNetIpConnection.go |   648 +
 .../internal/plc4go/knxnetip/KnxNetIpDiscoverer.go |   148 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpDriver.go  |    88 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpField.go   |   370 +
 .../plc4go/knxnetip/KnxNetIpFieldHandler.go        |    94 +
 .../plc4go/knxnetip/KnxNetIpMessageCodec.go        |   213 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpReader.go  |   523 +
 .../internal/plc4go/knxnetip/KnxNetIpSubscriber.go |   167 +
 .../plc4go/knxnetip/KnxNetIpSubscriptionEvent.go   |    65 +
 .../plc4go/knxnetip/KnxNetIpValueHandler.go        |    37 +
 plc4go/internal/plc4go/knxnetip/KnxNetIpWriter.go  |    72 +
 plc4go/internal/plc4go/knxnetip/Utils.go           |    83 +
 .../plc4go/knxnetip/readwrite/ParserHelper.go      |   109 +
 .../knxnetip/readwrite/PropertyDataTypeIO.go       |   156 +
 .../plc4go/knxnetip/readwrite/XmlParserHelper.go   |   238 +
 .../plc4go/knxnetip/readwrite/model/Apdu.go        |   286 +
 .../plc4go/knxnetip/readwrite/model/ApduControl.go |   236 +
 .../knxnetip/readwrite/model/ApduControlAck.go     |   135 +
 .../knxnetip/readwrite/model/ApduControlConnect.go |   135 +
 .../readwrite/model/ApduControlContainer.go        |   166 +
 .../readwrite/model/ApduControlDisconnect.go       |   135 +
 .../knxnetip/readwrite/model/ApduControlNack.go    |   135 +
 .../plc4go/knxnetip/readwrite/model/ApduData.go    |   404 +
 .../knxnetip/readwrite/model/ApduDataAdcRead.go    |   135 +
 .../readwrite/model/ApduDataAdcResponse.go         |   135 +
 .../knxnetip/readwrite/model/ApduDataContainer.go  |   166 +
 .../model/ApduDataDeviceDescriptorRead.go          |   164 +
 .../model/ApduDataDeviceDescriptorResponse.go      |   210 +
 .../plc4go/knxnetip/readwrite/model/ApduDataExt.go |   754 ++
 .../readwrite/model/ApduDataExtAuthorizeRequest.go |   135 +
 .../model/ApduDataExtAuthorizeResponse.go          |   135 +
 .../model/ApduDataExtDomainAddressRead.go          |   135 +
 .../model/ApduDataExtDomainAddressResponse.go      |   135 +
 .../model/ApduDataExtDomainAddressSelectiveRead.go |   135 +
 .../ApduDataExtDomainAddressSerialNumberRead.go    |   135 +
 ...ApduDataExtDomainAddressSerialNumberResponse.go |   135 +
 .../ApduDataExtDomainAddressSerialNumberWrite.go   |   135 +
 .../model/ApduDataExtDomainAddressWrite.go         |   135 +
 .../model/ApduDataExtFileStreamInfoReport.go       |   135 +
 .../ApduDataExtGroupPropertyValueInfoReport.go     |   135 +
 .../model/ApduDataExtGroupPropertyValueRead.go     |   135 +
 .../model/ApduDataExtGroupPropertyValueResponse.go |   135 +
 .../model/ApduDataExtGroupPropertyValueWrite.go    |   135 +
 ...ApduDataExtIndividualAddressSerialNumberRead.go |   135 +
 ...DataExtIndividualAddressSerialNumberResponse.go |   135 +
 ...pduDataExtIndividualAddressSerialNumberWrite.go |   135 +
 .../readwrite/model/ApduDataExtKeyResponse.go      |   135 +
 .../readwrite/model/ApduDataExtKeyWrite.go         |   135 +
 .../readwrite/model/ApduDataExtLinkRead.go         |   135 +
 .../readwrite/model/ApduDataExtLinkResponse.go     |   135 +
 .../readwrite/model/ApduDataExtLinkWrite.go        |   135 +
 .../readwrite/model/ApduDataExtMemoryBitWrite.go   |   135 +
 .../model/ApduDataExtNetworkParameterRead.go       |   135 +
 .../model/ApduDataExtNetworkParameterResponse.go   |   135 +
 .../model/ApduDataExtNetworkParameterWrite.go      |   135 +
 .../model/ApduDataExtOpenRoutingTableRequest.go    |   135 +
 .../model/ApduDataExtPropertyDescriptionRead.go    |   135 +
 .../ApduDataExtPropertyDescriptionResponse.go      |   135 +
 .../model/ApduDataExtPropertyValueRead.go          |   248 +
 .../model/ApduDataExtPropertyValueResponse.go      |   292 +
 .../model/ApduDataExtPropertyValueWrite.go         |   135 +
 .../model/ApduDataExtReadRouterMemoryRequest.go    |   135 +
 .../model/ApduDataExtReadRouterMemoryResponse.go   |   135 +
 .../model/ApduDataExtReadRouterStatusRequest.go    |   135 +
 .../model/ApduDataExtReadRouterStatusResponse.go   |   135 +
 .../model/ApduDataExtReadRoutingTableRequest.go    |   135 +
 .../model/ApduDataExtReadRoutingTableResponse.go   |   135 +
 .../model/ApduDataExtWriteRouterMemoryRequest.go   |   135 +
 .../model/ApduDataExtWriteRouterStatusRequest.go   |   135 +
 .../model/ApduDataExtWriteRoutingTableRequest.go   |   135 +
 .../readwrite/model/ApduDataGroupValueRead.go      |   135 +
 .../readwrite/model/ApduDataGroupValueResponse.go  |   135 +
 .../readwrite/model/ApduDataGroupValueWrite.go     |   210 +
 .../model/ApduDataIndividualAddressRead.go         |   135 +
 .../model/ApduDataIndividualAddressResponse.go     |   135 +
 .../model/ApduDataIndividualAddressWrite.go        |   135 +
 .../knxnetip/readwrite/model/ApduDataMemoryRead.go |   135 +
 .../readwrite/model/ApduDataMemoryResponse.go      |   135 +
 .../readwrite/model/ApduDataMemoryWrite.go         |   135 +
 .../knxnetip/readwrite/model/ApduDataOther.go      |   163 +
 .../knxnetip/readwrite/model/ApduDataRestart.go    |   135 +
 .../readwrite/model/ApduDataUserMessage.go         |   135 +
 .../plc4go/knxnetip/readwrite/model/CEMI.go        |   502 +
 .../readwrite/model/CEMIAdditionalInformation.go   |   208 +
 .../CEMIAdditionalInformationBusmonitorInfo.go     |   326 +
 .../CEMIAdditionalInformationRelativeTimestamp.go  |   185 +
 .../knxnetip/readwrite/model/CEMIPriority.go       |   109 +
 .../knxnetip/readwrite/model/ChannelInformation.go |   167 +
 .../knxnetip/readwrite/model/ConnectionRequest.go  |   217 +
 .../model/ConnectionRequestInformation.go          |   224 +
 ...ConnectionRequestInformationDeviceManagement.go |   135 +
 ...ConnectionRequestInformationTunnelConnection.go |   189 +
 .../knxnetip/readwrite/model/ConnectionResponse.go |   265 +
 .../readwrite/model/ConnectionResponseDataBlock.go |   224 +
 .../ConnectionResponseDataBlockDeviceManagement.go |   135 +
 .../ConnectionResponseDataBlockTunnelConnection.go |   163 +
 .../readwrite/model/ConnectionStateRequest.go      |   217 +
 .../readwrite/model/ConnectionStateResponse.go     |   191 +
 .../knxnetip/readwrite/model/DIBDeviceInfo.go      |   394 +
 .../knxnetip/readwrite/model/DIBSuppSvcFamilies.go |   203 +
 .../knxnetip/readwrite/model/DescriptionRequest.go |   163 +
 .../readwrite/model/DescriptionResponse.go         |   190 +
 .../readwrite/model/DeviceConfigurationAck.go      |   163 +
 .../model/DeviceConfigurationAckDataBlock.go       |   208 +
 .../readwrite/model/DeviceConfigurationRequest.go  |   190 +
 .../model/DeviceConfigurationRequestDataBlock.go   |   209 +
 .../readwrite/model/DeviceDescriptorMediumType.go  |   123 +
 .../readwrite/model/DeviceDescriptorType0.go       |   476 +
 .../readwrite/model/DeviceDescriptorType2.go       |   371 +
 .../knxnetip/readwrite/model/DeviceStatus.go       |   167 +
 .../knxnetip/readwrite/model/DisconnectRequest.go  |   217 +
 .../knxnetip/readwrite/model/DisconnectResponse.go |   191 +
 .../knxnetip/readwrite/model/FirmwareType.go       |   220 +
 .../readwrite/model/HPAIControlEndpoint.go         |   207 +
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |   207 +
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |   207 +
 .../knxnetip/readwrite/model/HostProtocolCode.go   |    95 +
 .../plc4go/knxnetip/readwrite/model/IPAddress.go   |   159 +
 .../plc4go/knxnetip/readwrite/model/KnxAddress.go  |   193 +
 .../knxnetip/readwrite/model/KnxDatapoint.go       | 12234 +++++++++++++++++++
 .../readwrite/model/KnxDatapointMainType.go        |   988 ++
 .../knxnetip/readwrite/model/KnxDatapointType.go   |  5260 ++++++++
 .../knxnetip/readwrite/model/KnxGroupAddress.go    |   206 +
 .../readwrite/model/KnxGroupAddress2Level.go       |   192 +
 .../readwrite/model/KnxGroupAddress3Level.go       |   220 +
 .../readwrite/model/KnxGroupAddressFreeLevel.go    |   164 +
 .../readwrite/model/KnxInterfaceObjectProperty.go  |  4221 +++++++
 .../readwrite/model/KnxInterfaceObjectType.go      |   424 +
 .../plc4go/knxnetip/readwrite/model/KnxLayer.go    |   102 +
 .../knxnetip/readwrite/model/KnxManufacturer.go    |  7093 +++++++++++
 .../plc4go/knxnetip/readwrite/model/KnxMedium.go   |   123 +
 .../knxnetip/readwrite/model/KnxNetIpCore.go       |   164 +
 .../readwrite/model/KnxNetIpDeviceManagement.go    |   164 +
 .../knxnetip/readwrite/model/KnxNetIpMessage.go    |   458 +
 .../knxnetip/readwrite/model/KnxNetIpTunneling.go  |   164 +
 .../knxnetip/readwrite/model/KnxNetObjectServer.go |   164 +
 .../model/KnxNetRemoteConfigurationAndDiagnosis.go |   164 +
 .../readwrite/model/KnxNetRemoteLogging.go         |   164 +
 .../readwrite/model/KnxPropertyDataType.go         |   908 ++
 .../plc4go/knxnetip/readwrite/model/LBusmonInd.go  |   278 +
 .../plc4go/knxnetip/readwrite/model/LDataCon.go    |   241 +
 .../plc4go/knxnetip/readwrite/model/LDataFrame.go  |   371 +
 .../knxnetip/readwrite/model/LDataFrameData.go     |   301 +
 .../knxnetip/readwrite/model/LDataFrameDataExt.go  |   329 +
 .../readwrite/model/LDataFramePollingData.go       |   272 +
 .../plc4go/knxnetip/readwrite/model/LDataInd.go    |   241 +
 .../plc4go/knxnetip/readwrite/model/LDataReq.go    |   241 +
 .../knxnetip/readwrite/model/LPollDataCon.go       |   135 +
 .../knxnetip/readwrite/model/LPollDataReq.go       |   135 +
 .../plc4go/knxnetip/readwrite/model/LRawCon.go     |   135 +
 .../plc4go/knxnetip/readwrite/model/LRawInd.go     |   135 +
 .../plc4go/knxnetip/readwrite/model/LRawReq.go     |   135 +
 .../plc4go/knxnetip/readwrite/model/MACAddress.go  |   159 +
 .../readwrite/model/MFuncPropCommandReq.go         |   135 +
 .../knxnetip/readwrite/model/MFuncPropCon.go       |   135 +
 .../readwrite/model/MFuncPropStateReadReq.go       |   135 +
 .../knxnetip/readwrite/model/MPropInfoInd.go       |   135 +
 .../knxnetip/readwrite/model/MPropReadCon.go       |   304 +
 .../knxnetip/readwrite/model/MPropReadReq.go       |   276 +
 .../knxnetip/readwrite/model/MPropWriteCon.go      |   135 +
 .../knxnetip/readwrite/model/MPropWriteReq.go      |   135 +
 .../plc4go/knxnetip/readwrite/model/MResetInd.go   |   135 +
 .../plc4go/knxnetip/readwrite/model/MResetReq.go   |   135 +
 .../model/ProjectInstallationIdentifier.go         |   167 +
 .../knxnetip/readwrite/model/RelativeTimestamp.go  |   141 +
 .../knxnetip/readwrite/model/RoutingIndication.go  |   135 +
 .../knxnetip/readwrite/model/SearchRequest.go      |   163 +
 .../knxnetip/readwrite/model/SearchResponse.go     |   217 +
 .../plc4go/knxnetip/readwrite/model/ServiceId.go   |   264 +
 .../plc4go/knxnetip/readwrite/model/Status.go      |   165 +
 .../readwrite/model/SupportedPhysicalMedia.go      |   372 +
 .../knxnetip/readwrite/model/TDataConnectedInd.go  |   135 +
 .../knxnetip/readwrite/model/TDataConnectedReq.go  |   135 +
 .../knxnetip/readwrite/model/TDataIndividualInd.go |   135 +
 .../knxnetip/readwrite/model/TDataIndividualReq.go |   135 +
 .../knxnetip/readwrite/model/TunnelingRequest.go   |   190 +
 .../readwrite/model/TunnelingRequestDataBlock.go   |   209 +
 .../knxnetip/readwrite/model/TunnelingResponse.go  |   163 +
 .../readwrite/model/TunnelingResponseDataBlock.go  |   208 +
 .../knxnetip/readwrite/model/UnknownMessage.go     |   182 +
 plc4go/internal/plc4go/modbus/ModbusConnection.go  |   165 +
 plc4go/internal/plc4go/modbus/ModbusDriver.go      |   117 +
 plc4go/internal/plc4go/modbus/ModbusField.go       |    94 +
 .../internal/plc4go/modbus/ModbusFieldHandler.go   |   109 +
 .../internal/plc4go/modbus/ModbusMessageCodec.go   |   184 +
 plc4go/internal/plc4go/modbus/ModbusReader.go      |   194 +
 .../internal/plc4go/modbus/ModbusValueHandler.go   |    31 +
 plc4go/internal/plc4go/modbus/ModbusWriter.go      |   210 +
 .../plc4go/modbus/readwrite/ParserHelper.go        |    63 +
 .../plc4go/modbus/readwrite/XmlParserHelper.go     |    91 +
 .../plc4go/modbus/readwrite/model/DataItem.go      |   647 +
 .../modbus/readwrite/model/ModbusConstants.go      |   137 +
 .../modbus/readwrite/model/ModbusDataTypeSizes.go  |   348 +
 .../modbus/readwrite/model/ModbusErrorCode.go      |   151 +
 .../plc4go/modbus/readwrite/model/ModbusPDU.go     |   744 ++
 .../readwrite/model/ModbusPDUDiagnosticRequest.go  |   200 +
 .../readwrite/model/ModbusPDUDiagnosticResponse.go |   200 +
 .../modbus/readwrite/model/ModbusPDUError.go       |   172 +
 .../model/ModbusPDUGetComEventCounterRequest.go    |   143 +
 .../model/ModbusPDUGetComEventCounterResponse.go   |   200 +
 .../model/ModbusPDUGetComEventLogRequest.go        |   143 +
 .../model/ModbusPDUGetComEventLogResponse.go       |   290 +
 .../ModbusPDUMaskWriteHoldingRegisterRequest.go    |   228 +
 .../ModbusPDUMaskWriteHoldingRegisterResponse.go   |   228 +
 .../readwrite/model/ModbusPDUReadCoilsRequest.go   |   200 +
 .../readwrite/model/ModbusPDUReadCoilsResponse.go  |   206 +
 .../ModbusPDUReadDeviceIdentificationRequest.go    |   143 +
 .../ModbusPDUReadDeviceIdentificationResponse.go   |   143 +
 .../model/ModbusPDUReadDiscreteInputsRequest.go    |   200 +
 .../model/ModbusPDUReadDiscreteInputsResponse.go   |   206 +
 .../model/ModbusPDUReadExceptionStatusRequest.go   |   143 +
 .../model/ModbusPDUReadExceptionStatusResponse.go  |   172 +
 .../model/ModbusPDUReadFifoQueueRequest.go         |   172 +
 .../model/ModbusPDUReadFifoQueueResponse.go        |   220 +
 .../model/ModbusPDUReadFileRecordRequest.go        |   215 +
 .../model/ModbusPDUReadFileRecordRequestItem.go    |   219 +
 .../model/ModbusPDUReadFileRecordResponse.go       |   215 +
 .../model/ModbusPDUReadFileRecordResponseItem.go   |   203 +
 .../model/ModbusPDUReadHoldingRegistersRequest.go  |   200 +
 .../model/ModbusPDUReadHoldingRegistersResponse.go |   206 +
 .../model/ModbusPDUReadInputRegistersRequest.go    |   200 +
 .../model/ModbusPDUReadInputRegistersResponse.go   |   206 +
 ...sPDUReadWriteMultipleHoldingRegistersRequest.go |   318 +
 ...PDUReadWriteMultipleHoldingRegistersResponse.go |   206 +
 .../model/ModbusPDUReportServerIdRequest.go        |   143 +
 .../model/ModbusPDUReportServerIdResponse.go       |   206 +
 .../model/ModbusPDUWriteFileRecordRequest.go       |   215 +
 .../model/ModbusPDUWriteFileRecordRequestItem.go   |   255 +
 .../model/ModbusPDUWriteFileRecordResponse.go      |   215 +
 .../model/ModbusPDUWriteFileRecordResponseItem.go  |   255 +
 .../model/ModbusPDUWriteMultipleCoilsRequest.go    |   262 +
 .../model/ModbusPDUWriteMultipleCoilsResponse.go   |   200 +
 ...odbusPDUWriteMultipleHoldingRegistersRequest.go |   262 +
 ...dbusPDUWriteMultipleHoldingRegistersResponse.go |   200 +
 .../model/ModbusPDUWriteSingleCoilRequest.go       |   200 +
 .../model/ModbusPDUWriteSingleCoilResponse.go      |   200 +
 .../model/ModbusPDUWriteSingleRegisterRequest.go   |   200 +
 .../model/ModbusPDUWriteSingleRegisterResponse.go  |   200 +
 .../modbus/readwrite/model/ModbusSerialADU.go      |   244 +
 .../plc4go/modbus/readwrite/model/ModbusTcpADU.go  |   230 +
 plc4go/internal/plc4go/s7/S7Driver.go              |    25 +
 .../internal/plc4go/s7/readwrite/ParserHelper.go   |    88 +
 .../plc4go/s7/readwrite/XmlParserHelper.go         |   133 +
 .../plc4go/s7/readwrite/model/COTPPacket.go        |   368 +
 .../readwrite/model/COTPPacketConnectionRequest.go |   222 +
 .../model/COTPPacketConnectionResponse.go          |   222 +
 .../plc4go/s7/readwrite/model/COTPPacketData.go    |   194 +
 .../readwrite/model/COTPPacketDisconnectRequest.go |   222 +
 .../model/COTPPacketDisconnectResponse.go          |   194 +
 .../s7/readwrite/model/COTPPacketTpduError.go      |   194 +
 .../plc4go/s7/readwrite/model/COTPParameter.go     |   266 +
 .../s7/readwrite/model/COTPParameterCalledTsap.go  |   164 +
 .../s7/readwrite/model/COTPParameterCallingTsap.go |   164 +
 .../s7/readwrite/model/COTPParameterChecksum.go    |   164 +
 ...COTPParameterDisconnectAdditionalInformation.go |   180 +
 .../s7/readwrite/model/COTPParameterTpduSize.go    |   164 +
 .../plc4go/s7/readwrite/model/COTPProtocolClass.go |   116 +
 .../plc4go/s7/readwrite/model/COTPTpduSize.go      |   160 +
 .../internal/plc4go/s7/readwrite/model/DataItem.go |   499 +
 .../s7/readwrite/model/DataTransportErrorCode.go   |   123 +
 .../plc4go/s7/readwrite/model/DataTransportSize.go |   160 +
 .../plc4go/s7/readwrite/model/DeviceGroup.go       |   102 +
 .../plc4go/s7/readwrite/model/MemoryArea.go        |   180 +
 .../plc4go/s7/readwrite/model/S7Address.go         |   194 +
 .../plc4go/s7/readwrite/model/S7AddressAny.go      |   330 +
 .../plc4go/s7/readwrite/model/S7Message.go         |   412 +
 .../plc4go/s7/readwrite/model/S7MessageRequest.go  |   138 +
 .../plc4go/s7/readwrite/model/S7MessageResponse.go |   195 +
 .../s7/readwrite/model/S7MessageResponseData.go    |   195 +
 .../plc4go/s7/readwrite/model/S7MessageUserData.go |   138 +
 .../plc4go/s7/readwrite/model/S7Parameter.go       |   265 +
 .../readwrite/model/S7ParameterReadVarRequest.go   |   204 +
 .../readwrite/model/S7ParameterReadVarResponse.go  |   168 +
 .../model/S7ParameterSetupCommunication.go         |   250 +
 .../s7/readwrite/model/S7ParameterUserData.go      |   204 +
 .../s7/readwrite/model/S7ParameterUserDataItem.go  |   194 +
 .../model/S7ParameterUserDataItemCPUFunctions.go   |   403 +
 .../readwrite/model/S7ParameterWriteVarRequest.go  |   204 +
 .../readwrite/model/S7ParameterWriteVarResponse.go |   168 +
 .../plc4go/s7/readwrite/model/S7Payload.go         |   221 +
 .../s7/readwrite/model/S7PayloadReadVarResponse.go |   191 +
 .../plc4go/s7/readwrite/model/S7PayloadUserData.go |   188 +
 .../s7/readwrite/model/S7PayloadUserDataItem.go    |   311 +
 ...PayloadUserDataItemCpuFunctionReadSzlRequest.go |   139 +
 ...ayloadUserDataItemCpuFunctionReadSzlResponse.go |   224 +
 .../s7/readwrite/model/S7PayloadWriteVarRequest.go |   191 +
 .../readwrite/model/S7PayloadWriteVarResponse.go   |   186 +
 .../plc4go/s7/readwrite/model/S7StaticHelper.go    |   150 +
 .../s7/readwrite/model/S7VarPayloadDataItem.go     |   258 +
 .../s7/readwrite/model/S7VarPayloadStatusItem.go   |   141 +
 .../readwrite/model/S7VarRequestParameterItem.go   |   194 +
 .../model/S7VarRequestParameterItemAddress.go      |   179 +
 .../plc4go/s7/readwrite/model/SzlDataTreeItem.go   |   263 +
 plc4go/internal/plc4go/s7/readwrite/model/SzlId.go |   193 +
 .../s7/readwrite/model/SzlModuleTypeClass.go       |   109 +
 .../plc4go/s7/readwrite/model/SzlSublist.go        |   214 +
 .../plc4go/s7/readwrite/model/TPKTPacket.go        |   204 +
 .../plc4go/s7/readwrite/model/TransportSize.go     |   701 ++
 plc4go/internal/plc4go/spi/HandlerExposer.go       |    24 +
 plc4go/internal/plc4go/spi/Message.go              |    27 +
 plc4go/internal/plc4go/spi/MessageCodec.go         |    42 +
 plc4go/internal/plc4go/spi/PlcBrowser.go           |    25 +
 plc4go/internal/plc4go/spi/PlcDiscoverer.go        |    25 +
 plc4go/internal/plc4go/spi/PlcFieldHandler.go      |    27 +
 plc4go/internal/plc4go/spi/PlcReader.go            |    25 +
 plc4go/internal/plc4go/spi/PlcSubscriber.go        |    26 +
 plc4go/internal/plc4go/spi/PlcValueHandler.go      |    28 +
 plc4go/internal/plc4go/spi/PlcWriter.go            |    25 +
 .../plc4go/spi/TransportInstanceExposer.go         |    25 +
 .../interceptors/SingleItemRequestInterceptor.go   |    85 +
 .../plc4go/spi/model/DefaultBrowseRequest.go       |   102 +
 .../plc4go/spi/model/DefaultPlcDiscoveryEvent.go   |    53 +
 .../plc4go/spi/model/DefaultPlcReadRequest.go      |   169 +
 .../plc4go/spi/model/DefaultPlcReadResponse.go     |    96 +
 .../spi/model/DefaultPlcSubscriptionEvent.go       |   108 +
 .../spi/model/DefaultPlcSubscriptionRequest.go     |   160 +
 .../spi/model/DefaultPlcSubscriptionResponse.go    |    89 +
 .../plc4go/spi/model/DefaultPlcWriteRequest.go     |   160 +
 .../plc4go/spi/model/DefaultPlcWriteResponse.go    |    86 +
 .../plc4go/spi/model/RequestInterceptor.go         |    38 +
 .../plc4go/spi/testutils/DriverTestRunner.go       |   497 +
 .../spi/testutils/ParserSerializerTestRunner.go    |   174 +
 plc4go/internal/plc4go/spi/testutils/TestUtils.go  |    52 +
 plc4go/internal/plc4go/spi/transports/Transport.go |    30 +
 .../plc4go/spi/transports/TransportInstance.go     |    37 +
 .../plc4go/spi/transports/tcp/TcpTransport.go      |   188 +
 .../plc4go/spi/transports/test/TestTransport.go    |   109 +
 .../plc4go/spi/transports/udp/UdpTransport.go      |   217 +
 plc4go/internal/plc4go/spi/utils/CastUtils.go      |    91 +
 plc4go/internal/plc4go/spi/utils/ReadBuffer.go     |   203 +
 plc4go/internal/plc4go/spi/utils/Regexp.go         |    35 +
 plc4go/internal/plc4go/spi/utils/Serializable.go   |    23 +
 plc4go/internal/plc4go/spi/utils/Utils.go          |    27 +
 plc4go/internal/plc4go/spi/utils/WriteBuffer.go    |   102 +
 plc4go/internal/plc4go/spi/values/BOOL.go          |    76 +
 plc4go/internal/plc4go/spi/values/BYTE.go          |    84 +
 plc4go/internal/plc4go/spi/values/CHAR.go          |    47 +
 plc4go/internal/plc4go/spi/values/DATE.go          |    63 +
 plc4go/internal/plc4go/spi/values/DATE_AND_TIME.go |    50 +
 plc4go/internal/plc4go/spi/values/DINT.go          |   138 +
 plc4go/internal/plc4go/spi/values/DWORD.go         |    96 +
 .../plc4go/spi/values/IEC61131ValueHandler.go      |   409 +
 plc4go/internal/plc4go/spi/values/INT.go           |   131 +
 plc4go/internal/plc4go/spi/values/LINT.go          |   145 +
 plc4go/internal/plc4go/spi/values/LREAL.go         |   161 +
 plc4go/internal/plc4go/spi/values/LTIME.go         |    50 +
 plc4go/internal/plc4go/spi/values/LWORD.go         |   112 +
 plc4go/internal/plc4go/spi/values/NULL.go          |    39 +
 plc4go/internal/plc4go/spi/values/PlcBitString.go  |    93 +
 plc4go/internal/plc4go/spi/values/PlcByteArray.go  |    72 +
 plc4go/internal/plc4go/spi/values/PlcList.go       |    68 +
 .../plc4go/spi/values/PlcSimpleValueAdapter.go     |    83 +
 plc4go/internal/plc4go/spi/values/PlcStruct.go     |    97 +
 .../internal/plc4go/spi/values/PlcValueAdapter.go  |   182 +
 plc4go/internal/plc4go/spi/values/REAL.go          |   155 +
 plc4go/internal/plc4go/spi/values/SINT.go          |   123 +
 plc4go/internal/plc4go/spi/values/STRING.go        |    47 +
 plc4go/internal/plc4go/spi/values/TIME.go          |    50 +
 plc4go/internal/plc4go/spi/values/TIME_OF_DAY.go   |    66 +
 plc4go/internal/plc4go/spi/values/UDINT.go         |   131 +
 plc4go/internal/plc4go/spi/values/UINT.go          |   117 +
 plc4go/internal/plc4go/spi/values/ULINT.go         |   145 +
 plc4go/internal/plc4go/spi/values/USINT.go         |   103 +
 plc4go/internal/plc4go/spi/values/WCHAR.go         |    50 +
 plc4go/internal/plc4go/spi/values/WORD.go          |    88 +
 plc4go/internal/plc4go/spi/values/WSTRING.go       |    50 +
 plc4go/pkg/plc4go/connection.go                    |    81 +
 plc4go/pkg/plc4go/driver.go                        |    46 +
 plc4go/pkg/plc4go/driverManager.go                 |   181 +
 plc4go/pkg/plc4go/drivers/drivers.go               |    33 +
 plc4go/pkg/plc4go/model/plc_browse.go              |    52 +
 plc4go/pkg/plc4go/model/plc_connection_metadata.go |    36 +
 plc4go/pkg/plc4go/model/plc_discovery.go           |    39 +
 plc4go/pkg/plc4go/model/plc_field.go               |    24 +
 plc4go/pkg/plc4go/model/plc_message.go             |    22 +
 plc4go/pkg/plc4go/model/plc_read.go                |    47 +
 plc4go/pkg/plc4go/model/plc_request.go             |    23 +
 plc4go/pkg/plc4go/model/plc_response.go            |    23 +
 plc4go/pkg/plc4go/model/plc_response_code.go       |    63 +
 plc4go/pkg/plc4go/model/plc_subscription.go        |    63 +
 plc4go/pkg/plc4go/model/plc_unsubscription.go      |    37 +
 plc4go/pkg/plc4go/model/plc_write.go               |    43 +
 plc4go/pkg/plc4go/transports/transports.go         |    33 +
 plc4go/pkg/plc4go/values/plc_value.go              |    88 +
 plc4go/pom.xml                                     |   236 +
 plc4j/api/pom.xml                                  |    19 +-
 .../org/apache/plc4x/java/api/PlcConnection.java   |    26 +-
 .../java/org/apache/plc4x/java/api/PlcDriver.java  |    20 +-
 .../plc4x/java/api/messages/PlcBrowseRequest.java  |    36 +
 .../plc4x/java/api/messages/PlcBrowseResponse.java |    25 +
 .../java/api/messages/PlcDiscoveryRequest.java     |    34 +
 .../java/api/messages/PlcDiscoveryResponse.java    |    25 +
 .../plc4x/java/api/messages/PlcReadRequest.java    |     3 +
 .../api/messages/PlcSubscriptionFieldRequest.java  |    40 +
 .../api/messages/PlcSubscriptionFieldResponse.java |    41 +
 .../java/api/messages/PlcSubscriptionRequest.java  |     3 +-
 .../java/api/messages/PlcSubscriptionResponse.java |     2 +-
 .../api/messages/PlcUnsubscriptionRequest.java     |     3 +
 .../plc4x/java/api/messages/PlcWriteRequest.java   |    36 +-
 .../java/api/metadata/PlcConnectionMetadata.java   |     7 +
 .../java/api/model/PlcConsumerRegistration.java    |    12 +
 .../org/apache/plc4x/java/api/model/PlcField.java  |    31 +
 .../plc4x/java/api/model/PlcSubscriptionField.java |    32 +
 .../java/api/model/PlcSubscriptionHandle.java      |     8 +-
 .../plc4x/java/api/types/PlcResponseCode.java      |     4 +
 .../apache/plc4x/java/api/value/PlcBigDecimal.java |   164 -
 .../apache/plc4x/java/api/value/PlcBigInteger.java |   164 -
 .../apache/plc4x/java/api/value/PlcBoolean.java    |   168 -
 .../org/apache/plc4x/java/api/value/PlcByte.java   |   184 -
 .../org/apache/plc4x/java/api/value/PlcDate.java   |    67 -
 .../apache/plc4x/java/api/value/PlcDateTime.java   |    93 -
 .../org/apache/plc4x/java/api/value/PlcDouble.java |   168 -
 .../org/apache/plc4x/java/api/value/PlcFloat.java  |   168 -
 .../apache/plc4x/java/api/value/PlcInteger.java    |   184 -
 .../org/apache/plc4x/java/api/value/PlcList.java   |    84 -
 .../org/apache/plc4x/java/api/value/PlcLong.java   |   168 -
 .../org/apache/plc4x/java/api/value/PlcShort.java  |   184 -
 .../plc4x/java/api/value/PlcSimpleValue.java       |    77 -
 .../org/apache/plc4x/java/api/value/PlcString.java |    89 -
 .../org/apache/plc4x/java/api/value/PlcStruct.java |    84 -
 .../org/apache/plc4x/java/api/value/PlcTime.java   |    67 -
 .../org/apache/plc4x/java/api/value/PlcValue.java  |     7 +
 .../plc4x/java/api/value/PlcValueAdapter.java      |   292 -
 .../plc4x/java/api/value/PlcValueHandler.java      |    46 +
 .../org/apache/plc4x/java/api/value/PlcValues.java |   382 -
 .../apache/plc4x/java/api/types/PlcValueTest.java  |    53 -
 .../apache/plc4x/java/api/value/PlcValuesTest.java |    51 -
 plc4j/drivers/ab-eth/pom.xml                       |    26 +-
 .../org/apache/plc4x/java/abeth/AbEthDriver.java   |    16 +
 .../apache/plc4x/java/abeth/field/AbEthField.java  |     5 +
 .../plc4x/java/abeth/field/AbEthFieldHandler.java  |     4 +-
 .../java/abeth/protocol/AbEthProtocolLogic.java    |    33 +-
 .../java/abeth/protocol/Plc4xAbEthProtocol.java    |    23 +-
 .../org/apache/plc4x/protocol/abeth/AbEthTest.java |     2 +-
 plc4j/drivers/ads/pom.xml                          |   169 +-
 .../org/apache/plc4x/java/ads/ADSPlcDriver.java    |   115 +
 .../org/apache/plc4x/java/ads/AdsPlcDriver.java    |   106 -
 .../java/ads/configuration/AdsConfiguration.java   |   152 +
 .../ads/connection/AdsAbstractPlcConnection.java   |   276 -
 .../java/ads/connection/AdsConnectionFactory.java  |    58 -
 .../ads/connection/AdsSerialPlcConnection.java     |    70 -
 .../java/ads/connection/AdsTcpPlcConnection.java   |   374 -
 .../org/apache/plc4x/java/ads/field/AdsField.java  |    29 +
 .../plc4x/java/ads/field/AdsFieldHandler.java      |    41 +
 .../plc4x/java/ads/field/AdsStringField.java       |    25 +
 .../plc4x/java/ads/field/DirectAdsField.java       |   172 +
 .../plc4x/java/ads/field/DirectAdsStringField.java |   126 +
 .../plc4x/java/ads/field/SymbolicAdsField.java     |   134 +
 .../java/ads/field/SymbolicAdsStringField.java     |    98 +
 .../java/ads/model/AdsSubscriptionHandle.java      |    85 +
 .../plc4x/java/ads/protocol/AdsProtocolLogic.java  |   765 ++
 .../apache/plc4x/java/ads/utils/StaticHelper.java  |    89 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |     2 +-
 .../apache/plc4x/java/ads/AdsPlcDriverTest.java    |   164 -
 .../ads/adslib/ADSClientNotificationExample.java   |   283 -
 .../org/apache/plc4x/java/ads/adslib/AdsLib.java   |   565 -
 .../apache/plc4x/java/ads/adslib/AmsRequest.java   |    51 -
 .../apache/plc4x/java/ads/adslib/AmsRouter.java    |   384 -
 .../org/apache/plc4x/java/ads/adslib/Output.java   |    38 -
 .../apache/plc4x/java/ads/adslib/package-info.java |    24 -
 .../connection/AdsAbstractPlcConnectionTest.java   |   344 -
 .../ads/connection/AdsConnectionFactoryTest.java   |   165 -
 .../ads/connection/AdsSerialPlcConnectionTest.java |   243 -
 .../ads/connection/AdsTcpPlcConnectionTests.java   |   191 -
 .../ads/AdsDiscoverySerializerParserTest.java      |    30 +
 .../org/apache/plc4x/protocol/ads/AdsDriverIT.java |    29 +
 .../protocol/ads/AdsSerializerParserTest.java      |    30 +
 .../apache/plc4x/protocol/ads/HexBase64Helper.java |    31 +
 .../plc4x/protocol/ads/ManualAdsDriverTest.java    |    98 +
 .../protocol/ads/ManualParserSerializerTest.java   |    36 +
 plc4j/drivers/canopen/pom.xml                      |   213 +
 .../plc4x/java/canopen/CANOpenPlcDriver.java       |   133 +
 .../api/conversation/canopen/CANConversation.java  |    36 +
 .../canopen/CANOpenConversationBase.java           |   130 +
 .../canopen/SDODownloadConversation.java           |   147 +
 .../canopen/SDOUploadConversation.java             |   133 +
 .../api/segmentation/accumulator/ByteStorage.java  |    95 +
 .../api/segmentation/accumulator/Storage.java      |    50 +
 .../configuration/CANOpenConfiguration.java        |    62 +
 .../java/canopen/context/CANOpenDriverContext.java |    28 +
 .../plc4x/java/canopen/field/CANOpenField.java     |    59 +
 .../java/canopen/field/CANOpenFieldHandler.java    |    32 +
 .../java/canopen/field/CANOpenHeartbeatField.java  |    80 +
 .../plc4x/java/canopen/field/CANOpenNMTField.java  |    80 +
 .../plc4x/java/canopen/field/CANOpenPDOField.java  |   102 +
 .../plc4x/java/canopen/field/CANOpenSDOField.java  |   130 +
 .../canopen/field/CANOpenSubscriptionField.java    |    29 +
 .../plc4x/java/canopen/helper/CANOpenHelper.java   |    61 +
 .../plc4x/java/canopen/helper/HeaderParser.java    |    62 +
 .../plc4x/java/canopen/listener/Callback.java      |    26 +
 .../java/canopen/listener/CompositeCallback.java   |    43 +
 .../canopen/protocol/CANOpenProtocolLogic.java     |   458 +
 .../protocol/CANOpenSubscriptionHandle.java        |    59 +
 .../canopen/socketcan/SocketCANConversation.java   |    63 +
 .../canopen/transport/CANOpenAbortException.java   |    41 +
 .../plc4x/java/canopen/transport/CANOpenFrame.java |    33 +
 .../canopen/transport/CANOpenFrameBuilder.java     |    34 +
 .../transport/CANOpenFrameBuilderFactory.java      |    25 +
 .../transport/socketcan/CANOpenSocketCANFrame.java |   159 +
 .../socketcan/CANOpenSocketCANFrameBuilder.java    |    55 +
 .../socketcan/io/CANOpenSocketCANFrameIO.java      |   159 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |    19 +
 .../plc4x/java/canopen/CANOpenDriverSDOIT.java     |    29 +
 .../plc4x/java/canopen/CANOpenPayloadTest.java     |    29 +
 .../plc4x/java/canopen/CANOpenWiresharkTest.java   |    29 +
 .../java/org/apache/plc4x/java/canopen/Main.java   |    83 +
 .../plc4x/java/canopen/ManualParserTest.java       |   113 +
 .../java/canopen/field/CANOpenFieldSDOTest.java    |    38 +
 .../java/canopen/field/CANOpenNMTFieldTest.java    |    55 +
 .../java/canopen/field/CANOpenPDOFieldTest.java    |    43 +
 .../java/canopen/field/CANOpenSDOFieldTest.java    |    56 +
 plc4j/drivers/eip/pom.xml                          |    26 +-
 .../apache/plc4x/java/eip/readwrite/EIPDriver.java |    16 +
 .../plc4x/java/eip/readwrite/field/EipField.java   |     5 +
 .../java/eip/readwrite/field/EipFieldHandler.java  |   401 +-
 .../eip/readwrite/protocol/EipProtocolLogic.java   |    81 +-
 .../java/eip/readwrite/EIPDriverTestsuite.java     |     2 +-
 .../readwrite/EIPParserSerializerTestsuite.java    |     2 +-
 .../resources/testsuite/EIPDriverTestsuite.xml     |   152 -
 plc4j/drivers/firmata/pom.xml                      |    27 +-
 .../java/firmata/readwrite/FirmataDriver.java      |    16 +
 .../readwrite/context/FirmataDriverContext.java    |    18 +-
 .../java/firmata/readwrite/field/FirmataField.java |     2 +-
 .../readwrite/field/FirmataFieldAnalog.java        |     5 +
 .../readwrite/field/FirmataFieldDigital.java       |     7 +-
 .../readwrite/field/FirmataFieldHandler.java       |   116 +-
 .../readwrite/protocol/FirmataProtocolLogic.java   |    31 +-
 .../readwrite/FirmataParserSerializerTest.java     |     2 +-
 plc4j/drivers/knxnetip/pom.xml                     |    32 +-
 .../apache/plc4x/java/knxnetip/KnxNetIpDriver.java |    31 +-
 .../configuration/KnxNetIpConfiguration.java       |    64 +-
 .../knxnetip/context/KnxNetIpDriverContext.java    |   132 +
 .../plc4x/java/knxnetip/ets5/Ets5Parser.java       |    39 +-
 .../plc4x/java/knxnetip/ets5/model/Ets5Model.java  |    10 +-
 .../java/knxnetip/ets5/model/GroupAddress.java     |     7 +-
 .../plc4x/java/knxnetip/field/KnxNetIpField.java   |     5 +
 .../java/knxnetip/field/KnxNetIpFieldHandler.java  |     4 +-
 .../knxnetip/protocol/KnxNetIpProtocolLogic.java   |   542 +-
 .../plc4x/java/knxnetip/utils/KnxHelper.java       |    11 +-
 .../org/apache/plc4x/java/knxnetip/IOTest.java     |    22 +-
 .../apache/plc4x/java/knxnetip/KNXNetIpTest.java   |    30 -
 .../apache/plc4x/java/knxnetip/KnxNetIpTest.java   |    30 +
 .../test/resources/testsuite/KNXNetIPTestsuite.xml |   402 -
 plc4j/drivers/mock/pom.xml                         |     6 +-
 .../plc4x/java/mock/connection/MockConnection.java |     3 +-
 .../apache/plc4x/java/mock/field/MockField.java    |     5 +
 .../plc4x/java/mock/field/MockFieldHandler.java    |    70 +-
 .../apache/plc4x/java/mock/field/MockPlcValue.java |     9 +-
 .../plc4x/java/mock/field/MockValueHandler.java    |    47 +
 plc4j/drivers/modbus/pom.xml                       |    30 +-
 .../org/apache/plc4x/java/modbus/ModbusDriver.java |    16 +
 .../java/modbus/config/ModbusConfiguration.java    |     2 +-
 .../java/modbus/field/ModbusExtendedRegister.java  |    78 +
 .../plc4x/java/modbus/field/ModbusField.java       |    84 +-
 .../plc4x/java/modbus/field/ModbusFieldCoil.java   |    49 +-
 .../modbus/field/ModbusFieldDiscreteInput.java     |    50 +-
 .../java/modbus/field/ModbusFieldHandler.java      |   125 +-
 .../modbus/field/ModbusFieldHoldingRegister.java   |    48 +-
 .../modbus/field/ModbusFieldInputRegister.java     |    48 +-
 .../java/modbus/protocol/ModbusProtocolLogic.java  |   335 +-
 .../plc4x/java/modbus/ManualModbusDriverTest.java  |   103 +
 .../apache/plc4x/java/modbus/ModbusDriverIT.java   |    29 +
 .../apache/plc4x/java/modbus/ModbusEncodeTest.java |   183 +
 .../plc4x/java/modbus/ModbusFieldDataTypeTest.java |    98 +
 .../apache/plc4x/java/modbus/ModbusFieldTest.java  |    71 +
 .../org/apache/plc4x/java/modbus/ModbusIOTest.java |    29 -
 .../java/modbus/ModbusParserSerializerTest.java    |    29 +
 .../test/resources/testsuite/ModbusTestsuite.xml   |    64 -
 plc4j/drivers/opcua/pom.xml                        |   100 +-
 .../apache/plc4x/java/opcua/OpcuaPlcDriver.java    |     8 +-
 .../opcua/connection/BaseOpcuaPlcConnection.java   |     3 +-
 .../opcua/connection/OpcuaTcpPlcConnection.java    |   607 +-
 .../plc4x/java/opcua/protocol/OpcuaField.java      |    35 +-
 .../java/opcua/protocol/OpcuaPlcFieldHandler.java  |   136 +-
 .../opcua/protocol/OpcuaSubsriptionHandle.java     |     5 +-
 .../java/opcua/protocol/model/OpcuaDataTypes.java  |    45 -
 .../opcua/protocol/model/OpcuaIdentifierType.java  |    47 -
 .../apache/plc4x/java/opcua/ManualPLC4XOpcua.java  |    51 +-
 .../plc4x/java/opcua/OpcuaPlcDriverTest.java       |   241 +-
 .../connection/OpcuaTcpPlcConnectionTest.java      |    35 +-
 .../plc4x/java/opcua/protocol/OpcuaFieldTest.java  |    19 +
 .../opcua/protocol/OpcuaPlcFieldHandlerTest.java   |     3 +
 plc4j/drivers/pom.xml                              |     8 +-
 plc4j/drivers/s7/pom.xml                           |    37 +-
 .../apache/plc4x/java/s7/readwrite/S7Driver.java   |    16 +
 .../java/s7/readwrite/context/S7DriverContext.java |     9 +
 .../plc4x/java/s7/readwrite/field/S7Field.java     |   219 +-
 .../java/s7/readwrite/field/S7PlcFieldHandler.java |   553 +-
 .../java/s7/readwrite/field/S7StringField.java     |    55 +
 .../java/s7/readwrite/optimizer/S7Optimizer.java   |     8 +-
 .../s7/readwrite/protocol/S7ProtocolLogic.java     |   378 +-
 .../java/s7/readwrite/utils/S7TsapIdEncoder.java   |     2 +-
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |   130 +-
 .../plc4x/java/s7/readwrite/DatatypesTest.java     |    79 +
 .../java/s7/readwrite/ManualS7DriverTest.java      |    91 +-
 .../apache/plc4x/java/s7/readwrite/S7DriverIT.java |     2 +-
 .../java/s7/readwrite/S7ParserSerializerTest.java  |     2 +-
 .../plc4x/java/s7/readwrite/field/S7FieldTest.java |    39 +
 .../plc4x/java/s7/readwrite/issues/PLC4X272.java   |    29 +
 .../s7/src/test/resources/tests/PLC4X-272.xml      |  2282 ++++
 .../s7/src/test/resources/testsuite/S7DriverIT.xml |   311 -
 .../resources/testsuite/S7ParserSerializerTest.xml |   509 -
 plc4j/drivers/simulated/pom.xml                    |    58 +-
 .../simulated/connection/SimulatedConnection.java  |    78 +-
 .../java/simulated/connection/SimulatedDevice.java |    95 +-
 .../plc4x/java/simulated/field/SimulatedField.java |    58 +-
 .../simulated/field/SimulatedFieldHandler.java     |   174 +-
 .../plc4x/java/simulated/utils/StaticHelper.java   |    66 +
 .../connection/SimulatedConnectionTest.java        |    30 +-
 .../simulated/connection/SimulatedDeviceTest.java  |     8 +-
 .../simulated/field/SimularedFieldHandlerTest.java |    33 +-
 .../java/simulated/field/SimulatedFieldTest.java   |    19 +-
 plc4j/examples/dummy-driver/pom.xml                |    96 -
 .../java/examples/dummydriver/DummyDriver.java     |    67 -
 .../dummydriver/connection/DummyConnection.java    |    84 -
 .../examples/dummydriver/model/DummyField.java     |    35 -
 .../examples/dummydriver/netty/DummyProtocol.java  |    75 -
 .../services/org.apache.plc4x.java.api.PlcDriver   |    19 -
 plc4j/examples/hello-cloud-azure/pom.xml           |     4 +-
 plc4j/examples/hello-cloud-google/pom.xml          |     4 +-
 plc4j/examples/hello-connectivity-kafka/pom.xml    |     6 +-
 .../hello-connectivity-mqtt/mqtt-connector.yml     |     2 +-
 plc4j/examples/hello-connectivity-mqtt/pom.xml     |     4 +-
 plc4j/examples/hello-integration-edgent/pom.xml    |     4 +-
 plc4j/examples/hello-integration-iotdb/pom.xml     |    72 +-
 .../examples/integration/iotdb/CliOptions.java     |    18 +-
 .../examples/integration/iotdb/IIoTDBWriter.java   |    27 +
 .../integration/iotdb/IoTDBWriterWithJDBC.java     |    88 +
 .../integration/iotdb/IoTDBWriterWithSession.java  |    89 +
 .../java/examples/integration/iotdb/PlcLogger.java |    70 +-
 plc4j/examples/hello-opm/pom.xml                   |     6 +-
 plc4j/examples/hello-storage-elasticsearch/pom.xml |    26 +-
 plc4j/examples/hello-webapp/client/pom.xml         |     2 +-
 plc4j/examples/hello-webapp/pom.xml                |     2 +-
 plc4j/examples/hello-webapp/webapp/pom.xml         |     8 +-
 .../watertank/service/WaterTankService.java        |     4 +-
 plc4j/examples/hello-webservice/README.adoc        |    24 +
 plc4j/examples/hello-webservice/pom.xml            |    91 +
 .../java/examples/hellowebservice/CliOptions.java  |    99 +
 .../examples/hellowebservice/HelloWebservice.java  |   169 +
 .../src/main/resources/logback.xml                 |    38 +
 .../hello-world-plc4x-subscription/pom.xml         |    85 +
 .../helloplc4x/subscription/CliOptions.java        |    84 +
 .../subscription/HelloPlc4xSubscription.java       |   120 +
 .../src/main/resources/logback.xml                 |    39 +
 plc4j/examples/hello-world-plc4x-write/pom.xml     |    80 +
 .../java/examples/helloplc4x/write/CliOptions.java |    99 +
 .../examples/helloplc4x/write/HelloPlc4xWrite.java |    95 +
 .../src/main/resources/logback.xml                 |    39 +
 plc4j/examples/hello-world-plc4x/pom.xml           |     4 +-
 .../plc4x/java/examples/helloplc4x/HelloPlc4x.java |    10 +-
 plc4j/examples/poll-loop/pom.xml                   |    70 +
 .../apache/plc4x/java/examples/pollloop/Main.java  |    45 +
 .../plc4x/java/examples/pollloop/PollLoop.java     |   227 +
 plc4j/examples/pom.xml                             |    44 +-
 plc4j/integrations/apache-calcite/pom.xml          |   108 +-
 .../apache-calcite/src/test/resources/example.yml  |     2 +-
 plc4j/integrations/apache-camel/pom.xml            |   109 +-
 .../java/org/apache/plc4x/camel/ManualTest.java    |     2 +-
 .../java/org/apache/plc4x/camel/MockDriver.java    |     3 +-
 plc4j/integrations/apache-edgent/pom.xml           |    98 +-
 .../plc4x/edgent/PlcConnectionAdapterTest.java     |     1 -
 plc4j/integrations/apache-kafka/README.md          |   233 +-
 .../apache-kafka/config/plc4x-sink.properties      |    77 +
 .../apache-kafka/config/plc4x-source.properties    |    78 +-
 plc4j/integrations/apache-kafka/pom.xml            |   164 +-
 .../org/apache/plc4x/kafka/Plc4xSinkConnector.java |   122 +
 .../java/org/apache/plc4x/kafka/Plc4xSinkTask.java |   269 +
 .../apache/plc4x/kafka/Plc4xSourceConnector.java   |   197 +-
 .../org/apache/plc4x/kafka/Plc4xSourceTask.java    |   143 +-
 .../org/apache/plc4x/kafka/config/Constants.java   |    92 +
 .../org/apache/plc4x/kafka/config/Defaults.java    |    33 -
 .../java/org/apache/plc4x/kafka/config/Field.java  |    65 +
 .../java/org/apache/plc4x/kafka/config/Job.java    |    62 +-
 .../apache/plc4x/kafka/config/JobReference.java    |    34 +-
 .../java/org/apache/plc4x/kafka/config/Sink.java   |   135 +
 .../org/apache/plc4x/kafka/config/SinkConfig.java  |    84 +
 .../java/org/apache/plc4x/kafka/config/Source.java |   109 +-
 .../apache/plc4x/kafka/config/SourceConfig.java    |   121 +-
 .../kafka/exceptions/ConfigurationException.java   |    31 -
 .../apache-kafka/src/remote-resources/LICENSE      |     7 +
 .../apache-kafka/src/remote-resources/NOTICE       |     4 +
 .../apache/plc4x/kafka/config/SinkConfigTest.java  |   130 +
 .../apache/plc4x/kafka/config/SinkTaskTest.java    |   145 +
 .../plc4x/kafka/config/SourceConfigTest.java       |   156 +-
 .../apache/plc4x/kafka/config/SourceTaskTest.java  |   101 +
 .../kafka/properties/sink_task_no_error.properties |    62 +
 .../properties/source_task_no_error.properties     |    62 +
 .../apache-nifi/nifi-plc4x-nar/pom.xml             |    58 +-
 .../apache-nifi/nifi-plc4x-processors/pom.xml      |    10 +-
 .../org/apache/plc4x/nifi/BasePlc4xProcessor.java  |    23 +-
 .../org/apache/plc4x/nifi/Plc4xSinkProcessor.java  |    50 +-
 .../apache/plc4x/nifi/Plc4xSourceProcessor.java    |    63 +-
 plc4j/integrations/apache-nifi/pom.xml             |     4 +-
 plc4j/integrations/logstash-plugin/pom.xml         |    74 +-
 plc4j/integrations/opcua-server/pom.xml            |   296 +
 .../apache/plc4x/java/opcuaserver/OPCUAServer.java |   383 +
 .../opcuaserver/backend/Plc4xCommunication.java    |   329 +
 .../java/opcuaserver/backend/Plc4xNamespace.java   |   221 +
 .../opcuaserver/configuration/Configuration.java   |    77 +
 .../configuration/DeviceConfiguration.java         |    50 +
 .../configuration/PasswordConfiguration.java       |    91 +
 .../plc4x/java/opcuaserver/configuration/Tag.java  |    42 +
 .../plc4x/java/opcuaserver/configuration/User.java |    97 +
 .../opcuaserver/context/CertificateGenerator.java  |   122 +
 .../opcuaserver/context/CertificateKeyPair.java    |    38 +
 .../opcua-server/src/main/resources/config.yml     |   102 +
 .../opcua-server/src/main/resources/logback.xml    |    34 +
 .../plc4x/java/opcuaserver/OpcuaPlcDriverTest.java |   245 +
 .../apache/plc4x/java/opcuaserver/UtilsTest.java   |    40 +
 .../opcua-server/src/test/resources/config.yml     |   102 +
 plc4j/integrations/pom.xml                         |     5 +-
 plc4j/karaf-features/README.md                     |    42 -
 plc4j/karaf-features/camel/pom.xml                 |    67 -
 plc4j/karaf-features/eip/pom.xml                   |    72 -
 plc4j/karaf-features/karaf-itest/pom.xml           |   207 -
 .../java/org/apache/plc4x/karaf/FeatureIT.java     |   100 -
 .../test/resources/etc/org.ops4j.pax.logging.cfg   |    71 -
 plc4j/karaf-features/pom.xml                       |    82 -
 plc4j/karaf-features/s7/pom.xml                    |    71 -
 plc4j/osgi/pom.xml                                 |    11 +-
 plc4j/pom.xml                                      |    44 +-
 plc4j/protocols/ads/pom.xml                        |     8 +-
 plc4j/protocols/benchmarks/pom.xml                 |     4 +-
 plc4j/protocols/delta-v/pom.xml                    |     2 +-
 plc4j/protocols/pom.xml                            |     2 +-
 plc4j/spi/pom.xml                                  |     9 +-
 .../apache/plc4x/java/spi/ConversationContext.java |    38 +-
 .../spi/GeneratedDriverByteToMessageCodec.java     |    28 +-
 .../apache/plc4x/java/spi/Plc4xNettyWrapper.java   |    50 +-
 .../spi/configuration/ConfigurationFactory.java    |     9 +-
 .../annotations/defaults/FloatDefaultValue.java    |    33 +
 .../exceptions/ConfigurationException.java         |    34 +
 .../java/spi/connection/AbstractPlcConnection.java |    41 +-
 .../plc4x/java/spi/connection/ChannelFactory.java  |     4 +-
 .../spi/connection/DefaultNettyPlcConnection.java  |    71 +-
 .../spi/connection/DefaultPlcFieldHandler.java     |    97 -
 .../java/spi/connection/GeneratedDriverBase.java   |    17 +
 .../connection/GeneratedProtocolMessageCodec.java  |     9 +-
 .../java/spi/connection/NettyChannelFactory.java   |    44 -
 .../plc4x/java/spi/connection/PlcFieldHandler.java |    30 +-
 .../spi/connection/ProtocolStackConfigurer.java    |     2 +-
 .../connection/SingleProtocolStackConfigurer.java  |     7 +-
 .../plc4x/java/spi/discovery/ActiveDiscovery.java  |    25 +
 .../java/spi/discovery/BroadcastDiscovery.java     |    25 +
 .../plc4x/java/spi/discovery/PassiveDiscovery.java |    25 +
 .../java/spi/discovery/SupportsDiscovery.java      |    25 +
 .../exceptions/InternalPlcRuntimeException.java    |    41 -
 .../java/spi/generation/EvaluationHelper.java      |    14 +
 .../apache/plc4x/java/spi/generation/Message.java  |     4 -
 .../plc4x/java/spi/generation/ReadBuffer.java      |    64 +-
 .../plc4x/java/spi/generation/StaticHelper.java    |     8 +
 .../plc4x/java/spi/generation/WriteBuffer.java     |    69 +-
 .../java/spi/internal/DefaultContextHandler.java   |    44 +
 .../spi/internal/DefaultExpectRequestContext.java  |    22 +-
 .../spi/internal/DefaultSendRequestContext.java    |    57 +-
 .../java/spi/internal/HandlerRegistration.java     |    33 +-
 .../spi/messages/DefaultPlcProprietaryRequest.java |    50 -
 .../messages/DefaultPlcProprietaryResponse.java    |    49 -
 .../java/spi/messages/DefaultPlcReadRequest.java   |    46 +-
 .../java/spi/messages/DefaultPlcReadResponse.java  |    57 +-
 .../spi/messages/DefaultPlcSubscriptionEvent.java  |     5 +-
 .../messages/DefaultPlcSubscriptionRequest.java    |    55 +-
 .../messages/DefaultPlcSubscriptionResponse.java   |    20 +-
 .../messages/DefaultPlcUnsubscriptionRequest.java  |    35 +-
 .../messages/DefaultPlcUnsubscriptionResponse.java |    15 +-
 .../java/spi/messages/DefaultPlcWriteRequest.java  |   192 +-
 .../java/spi/messages/DefaultPlcWriteResponse.java |    39 +-
 .../java/spi/messages/InternalPlcFieldRequest.java |    33 -
 .../spi/messages/InternalPlcFieldResponse.java     |    28 -
 .../java/spi/messages/InternalPlcMessage.java      |    26 -
 .../messages/InternalPlcProprietaryRequest.java    |    25 -
 .../messages/InternalPlcProprietaryResponse.java   |    25 -
 .../java/spi/messages/InternalPlcReadRequest.java  |    28 -
 .../java/spi/messages/InternalPlcReadResponse.java |    33 -
 .../java/spi/messages/InternalPlcRequest.java      |    26 -
 .../java/spi/messages/InternalPlcResponse.java     |    27 -
 .../spi/messages/InternalPlcSubscriptionEvent.java |    27 -
 .../messages/InternalPlcSubscriptionRequest.java   |    38 -
 .../messages/InternalPlcSubscriptionResponse.java  |    31 -
 .../messages/InternalPlcUnsubscriptionRequest.java |    31 -
 .../InternalPlcUnsubscriptionResponse.java         |    27 -
 .../java/spi/messages/InternalPlcWriteRequest.java |    38 -
 .../spi/messages/InternalPlcWriteResponse.java     |    30 -
 .../plc4x/java/spi/messages/PlcRawMessage.java     |    48 -
 .../java/spi/messages/PlcRequestContainer.java     |     5 +-
 .../java/spi/messages/utils/ResponseItem.java      |    15 +-
 .../spi/model/DefaultPlcConsumerRegistration.java  |    14 +-
 .../spi/model/DefaultPlcSubscriptionField.java     |    56 +
 .../spi/model/DefaultPlcSubscriptionHandle.java    |     3 +-
 .../spi/model/InternalPlcConsumerRegistration.java |    32 -
 .../spi/model/InternalPlcSubscriptionHandle.java   |    25 -
 .../plc4x/java/spi/model/SubscriptionPlcField.java |    55 -
 .../plc4x/java/spi/optimizer/BaseOptimizer.java    |    22 +-
 .../java/spi/optimizer/SingleFieldOptimizer.java   |     5 +-
 .../SingleItemToSingleRequestProtocol.java         |   672 -
 .../apache/plc4x/java/spi/request/PlcRequest.java  |    28 -
 .../spi/transaction/RequestTransactionManager.java |    23 +-
 .../apache/plc4x/java/spi/transport/Transport.java |     1 -
 .../org/apache/plc4x/java/spi/types/FieldType.java |    47 -
 .../plc4x/java/spi/utils/XmlSerializable.java      |    27 +
 .../java/spi/values/IEC61131ValueHandler.java      |   191 +
 .../org/apache/plc4x/java/spi/values/PlcBOOL.java  |   319 +
 .../org/apache/plc4x/java/spi/values/PlcBYTE.java  |   340 +
 .../plc4x/java/spi/values/PlcBigDecimal.java       |   170 +
 .../plc4x/java/spi/values/PlcBigInteger.java       |   170 +
 .../apache/plc4x/java/spi/values/PlcBitString.java |    61 +
 .../org/apache/plc4x/java/spi/values/PlcCHAR.java  |   352 +
 .../org/apache/plc4x/java/spi/values/PlcDATE.java  |   102 +
 .../plc4x/java/spi/values/PlcDATE_AND_TIME.java    |   114 +
 .../org/apache/plc4x/java/spi/values/PlcDINT.java  |   302 +
 .../org/apache/plc4x/java/spi/values/PlcDWORD.java |   343 +
 .../apache/plc4x/java/spi/values/PlcIECValue.java  |    89 +
 .../org/apache/plc4x/java/spi/values/PlcINT.java   |   304 +
 .../org/apache/plc4x/java/spi/values/PlcLINT.java  |   300 +
 .../org/apache/plc4x/java/spi/values/PlcLREAL.java |   283 +
 .../org/apache/plc4x/java/spi/values/PlcLTIME.java |    96 +
 .../org/apache/plc4x/java/spi/values/PlcLWORD.java |   356 +
 .../org/apache/plc4x/java/spi/values/PlcList.java  |   104 +
 .../org/apache/plc4x/java/spi/values/PlcNull.java  |   265 +
 .../org/apache/plc4x/java/spi/values/PlcREAL.java  |   277 +
 .../org/apache/plc4x/java/spi/values/PlcSINT.java  |   309 +
 .../apache/plc4x/java/spi/values/PlcSTRING.java    |   238 +
 .../plc4x/java/spi/values/PlcSimpleValue.java      |    78 +
 .../apache/plc4x/java/spi/values/PlcStruct.java    |   105 +
 .../org/apache/plc4x/java/spi/values/PlcTIME.java  |    94 +
 .../plc4x/java/spi/values/PlcTIME_OF_DAY.java      |    88 +
 .../org/apache/plc4x/java/spi/values/PlcUDINT.java |   333 +
 .../org/apache/plc4x/java/spi/values/PlcUINT.java  |   314 +
 .../org/apache/plc4x/java/spi/values/PlcULINT.java |   345 +
 .../org/apache/plc4x/java/spi/values/PlcUSINT.java |   329 +
 .../plc4x/java/spi/values/PlcValueAdapter.java     |   317 +
 .../apache/plc4x/java/spi/values/PlcValues.java    |    87 +
 .../org/apache/plc4x/java/spi/values/PlcWCHAR.java |   337 +
 .../org/apache/plc4x/java/spi/values/PlcWORD.java  |   327 +
 .../plc4x/java/spi/Plc4xNettyWrapperTest.java      |   126 +
 .../plc4x/java/spi/generation/ReadBufferTest.java  |    40 +
 plc4j/tools/capture-replay/pom.xml                 |     2 +-
 plc4j/tools/connection-pool/pom.xml                |     4 +-
 .../java/utils/connectionpool/PoolKeyFactory.java  |     6 +
 .../connectionpool/PooledPlcDriverManager.java     |     6 +-
 .../utils/connectionpool/PoolKeyFactoryTest.java   |     4 +
 plc4j/tools/interop/pom.xml                        |   218 -
 plc4j/tools/interop/src/assembly/assembly.xml      |    41 -
 .../java/org/apache/plc4x/interop/impl/Client.java |    60 -
 .../org/apache/plc4x/interop/impl/Handler.java     |   163 -
 .../java/org/apache/plc4x/interop/impl/Server.java |    98 -
 plc4j/tools/opm/pom.xml                            |     8 +-
 .../apache/plc4x/java/opm/ConnectedEntityTest.java |     4 +-
 .../java/opm/PlcEntityManagerComplexTest.java      |   124 +-
 .../plc4x/java/opm/PlcEntityManagerTest.java       |    12 +-
 plc4j/tools/pom.xml                                |    11 +-
 plc4j/tools/scraper/pom.xml                        |    10 +-
 .../ScraperConfigurationTriggeredImpl.java         |     1 -
 .../triggeredscraper/TriggeredScraperImpl.java     |    10 +-
 .../apache/plc4x/java/scraper/ScraperTaskTest.java |     6 +-
 .../org/apache/plc4x/java/scraper/ScraperTest.java |     6 +-
 .../triggeredscraper/TriggeredScraperImplTest.java |    16 +-
 plc4j/transports/pcap-replay/pom.xml               |    12 +-
 .../pcapreplay/PcapReplayChannelFactory.java       |     5 +
 plc4j/transports/pcap-shared/pom.xml               |     6 +-
 plc4j/transports/pom.xml                           |     3 +-
 plc4j/transports/raw-socket/pom.xml                |    10 +-
 .../rawsocket/RawSocketChannelFactory.java         |     5 +
 plc4j/transports/serial/pom.xml                    |     7 +-
 .../transport/serial/SerialChannelFactory.java     |     5 +
 plc4j/transports/socketcan/pom.xml                 |    81 +
 .../socketcan/CANTransportConfiguration.java       |    25 +
 .../socketcan/SocketCANChannelFactory.java         |    70 +
 .../transport/socketcan/SocketCANTransport.java    |    46 +
 .../socketcan/netty/SocketCANChannel.java          |   283 +
 .../socketcan/netty/SocketCANChannelConfig.java    |    31 +
 .../socketcan/netty/address/SocketCANAddress.java  |    40 +
 .../org.apache.plc4x.java.spi.transport.Transport  |    20 +
 plc4j/transports/tcp/pom.xml                       |     6 +-
 .../java/transport/tcp/TcpChannelFactory.java      |     5 +
 .../plc4x/java/transport/tcp/TcpTransport.java     |     2 +-
 plc4j/transports/test/pom.xml                      |     4 +-
 .../java/transport/test/TestChannelFactory.java    |     5 +
 plc4j/transports/udp/pom.xml                       |     6 +-
 .../java/transport/udp/UdpChannelFactory.java      |     5 +
 .../plc4x/java/transport/udp/UdpTransport.java     |     4 +-
 plc4j/utils/pcap-replay/pom.xml                    |     4 +-
 .../utils/pcapreplay/netty/PcapReplayChannel.java  |     6 +-
 .../netty/config/PcapReplayChannelConfig.java      |     2 +-
 plc4j/utils/pcap-shared/pom.xml                    |     2 +-
 plc4j/utils/pom.xml                                |     2 +-
 plc4j/utils/raw-sockets/pom.xml                    |     6 +-
 .../rawsockets/netty/RawSocketChannelTest.java     |     2 +
 plc4j/utils/test-utils/pom.xml                     |     8 +-
 .../plc4x/test/driver/DriverTestsuiteRunner.java   |   190 +-
 .../plc4x/test/driver/model/DriverTestsuite.java   |    20 +-
 .../apache/plc4x/test/driver/model/TestStep.java   |    10 +-
 .../plc4x/test/driver/model/api/TestField.java     |     8 +-
 .../test/driver/model/api/TestValueField.java      |    34 +
 .../org/apache/plc4x/test/manual/ManualTest.java   |   151 +
 .../ParserSerializerTestsuiteRunner.java           |     5 +
 pom.xml                                            |   880 +-
 protocols/ab-eth/pom.xml                           |     4 +-
 .../main/resources/protocols/abeth/ab-eth.mspec    |     2 +-
 .../protocols/abeth/ParserSerializerTestsuite.xml  |     0
 protocols/ads/pom.xml                              |    43 +
 .../plc4x/protocol/ads/ADSDiscoveryProtocol.java   |    49 +
 .../org/apache/plc4x/protocol/ads/ADSProtocol.java |    46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    20 +
 .../resources/protocols/ads/ads-discovery.mspec    |   101 +
 .../ads/src/main/resources/protocols/ads/ads.mspec |   729 ++
 .../protocols/ads/AdsDiscoverySerializerTest.xml   |   377 +
 .../resources/protocols/ads/DriverTestsuite.xml    |   869 ++
 .../protocols/ads/ParserSerializerTestsuite.xml    |   414 +
 .../protocols/ads/manual-test-capture.pcapng       |   Bin 0 -> 166372 bytes
 protocols/amsads/pom.xml                           |    43 -
 .../plc4x/protocol/amsads/AMSADSProtocol.java      |    46 -
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    38 -
 .../main/resources/protocols/amsads/amsads.mspec   |   350 -
 protocols/bacnetip/pom.xml                         |     4 +-
 .../resources/protocols/bacnetip/bacnetip.mspec    |    26 +-
 protocols/canopen/pom.xml                          |    43 +
 .../plc4x/protocol/canopen/CANOpenProtocol.java    |    46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    19 +
 .../src/main/resources/protocols/can/canopen.mspec |   363 +
 .../protocols/canopen/CANOpenDriverSDOIT.xml       |   550 +
 .../protocols/canopen/CANOpenPayloadTestSuite.xml  |   249 +
 .../canopen/CANOpenWiresharkTestSuite.xml          |   278 +
 protocols/df1/pom.xml                              |     4 +-
 .../protocols/df1/ParserSerializerTestsuite.xml    |     0
 protocols/eip/pom.xml                              |     4 +-
 .../eip/src/main/resources/protocols/eip/eip.mspec |    10 +-
 .../resources/protocols/eip/DriverTestsuite.xml    |   152 +
 .../protocols/eip/ParserSerializerTestsuite.xml    |     0
 protocols/firmata/pom.xml                          |     4 +-
 .../main/resources/protocols/firmata/firmata.mspec |     8 +-
 .../firmata/ParserSerializerTestsuite.xml          |     0
 protocols/knxnetip/pom.xml                         |    64 +-
 .../plc4x/protocol/knxnetip/KnxNetIpProtocol.java  |    15 +-
 .../resources/protocols/knxnetip/knxnetip.mspec    |   665 +-
 protocols/knxnetip/src/main/xslt/knx-types.xsl     |   457 +
 protocols/knxnetip/src/site/asciidoc/index.adoc    |   114 +-
 .../apache/plc4x/protocols/knxnetip/protocol.tdml  |   112 +-
 .../knxnetip/ParserSerializerTestsuite.xml         |   546 +
 protocols/modbus/pom.xml                           |     4 +-
 .../main/resources/protocols/modbus/modbus.mspec   |   168 +-
 .../resources/protocols/modbus/DriverTestsuite.xml |   382 +
 .../protocols/modbus/ParserSerializerTestsuite.xml |   181 +
 .../protocols/modbus/manual-test-capture.pcapng    |   Bin 0 -> 305032 bytes
 protocols/opcua/pom.xml                            |    43 +
 .../apache/plc4x/protocol/opcua/OpcuaProtocol.java |    46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    19 +
 .../src/main/resources/protocols/opcua/opcua.mspec |    59 +
 protocols/pom.xml                                  |    49 +-
 protocols/proxy/pom.xml                            |    35 -
 protocols/proxy/src/main/java/.keepMe              |    20 -
 .../apache/plc4x/protocols/proxy/interop.thrift    |    93 -
 protocols/s7/pom.xml                               |     4 +-
 .../s7/src/main/resources/protocols/s7/s7.mspec    |   176 +-
 .../resources/protocols/s7/DriverTestsuite.xml     |   389 +
 .../protocols/s7/ParserSerializerTestsuite.xml     |   501 +
 .../protocols/s7/manual-test-capture.pcapng        |   Bin 0 -> 65868 bytes
 protocols/simulated/pom.xml                        |    43 +
 .../protocol/simulated/SimulatedProtocol.java      |    46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    19 +
 .../resources/protocols/simulated/simulated.mspec  |   163 +
 sandbox/code-gen/pom.xml                           |    31 +-
 sandbox/discovery/pom.xml                          |    53 +
 .../plc4x/java/discovery/DiscoveryConnection.java  |   166 +
 .../plc4x/java/discovery/DiscoveryDriver.java      |    52 +
 .../java/discovery/DiscoveryFieldHandler.java      |    33 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |    20 +
 sandbox/hello-influx-data-collection/pom.xml       |    13 +-
 .../java/examples/helloinflux/HelloInflux.java     |    25 +-
 sandbox/plc-simulator/pom.xml                      |    31 +-
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |    77 +-
 .../org/apache/plc4x/simulator/PlcSimulator.java   |    57 +-
 .../simulator/exceptions/SimulatorExcepiton.java   |    35 +
 .../org/apache/plc4x/simulator/model/Context.java  |   112 +
 .../plc4x/simulator/server/ServerModule.java       |     9 +-
 .../apache/plc4x/simulator/server/s7/S7Server.java |    69 -
 .../plc4x/simulator/server/s7/S7ServerModule.java  |    72 +-
 .../server/s7/protocol/S7Step7Protocol.java        |    76 -
 .../server/s7/protocol/S7Step7ServerAdapter.java   |   331 +
 .../server/s7/protocol/S7Step7ServerProtocol.java  |   231 -
 .../simulator/simulation/SimulationModule.java     |     5 +-
 .../watertank/WaterTankSimulationModule.java       |    65 +-
 sandbox/plc4c/CMakeLists.txt                       |     4 +-
 sandbox/plc4c/api/include/plc4c/connection.h       |    10 +-
 sandbox/plc4c/api/include/plc4c/data.h             |    35 +-
 sandbox/plc4c/api/include/plc4c/read.h             |     1 +
 sandbox/plc4c/api/include/plc4c/types.h            |    15 +-
 sandbox/plc4c/api/include/plc4c/utils/list.h       |     2 +
 sandbox/plc4c/drivers/modbus/CMakeLists.txt        |    18 +-
 .../drivers/modbus/include/plc4c/driver_modbus.h   |     6 +-
 .../modbus/include/plc4c/driver_modbus_packets.h   |    45 +
 .../modbus/include/plc4c/driver_modbus_sm.h        |    47 +
 .../modbus/include/plc4c/driver_s7_encode_decode.h |    36 +
 sandbox/plc4c/drivers/modbus/src/driver_modbus.c   |    16 +-
 .../modbus/src/driver_modbus_encode_decode.c       |   110 +
 .../drivers/modbus/src/driver_modbus_packets.c     |   142 +
 .../drivers/modbus/src/driver_modbus_sm_connect.c  |    51 +
 .../modbus/src/driver_modbus_sm_disconnect.c       |    74 +
 .../drivers/modbus/src/driver_modbus_sm_read.c     |   119 +
 .../drivers/modbus/src/driver_modbus_sm_write.c    |   121 +
 sandbox/plc4c/drivers/s7/CMakeLists.txt            |    34 +-
 sandbox/plc4c/drivers/s7/include/plc4c/driver_s7.h |    61 +
 .../s7/include/plc4c/driver_s7_encode_decode.h     |    45 +
 .../drivers/s7/include/plc4c/driver_s7_packets.h   |    53 +
 .../plc4c/drivers/s7/include/plc4c/driver_s7_sm.h  |    47 +
 sandbox/plc4c/drivers/s7/src/driver_s7.c           |    95 +-
 .../plc4c/drivers/s7/src/driver_s7_encode_decode.c |   346 +
 sandbox/plc4c/drivers/s7/src/driver_s7_packets.c   |   524 +
 .../plc4c/drivers/s7/src/driver_s7_sm_connect.c    |   348 +
 .../plc4c/drivers/s7/src/driver_s7_sm_disconnect.c |    81 +
 sandbox/plc4c/drivers/s7/src/driver_s7_sm_read.c   |   207 +
 sandbox/plc4c/drivers/s7/src/driver_s7_sm_write.c  |   122 +
 .../plc4c/drivers/s7/test/s7_address_parser_test.c |   110 +
 sandbox/plc4c/drivers/s7/test/s7_test.c            |   239 +
 .../simulated/include/plc4c/driver_simulated.h     |     6 +-
 .../plc4c/drivers/simulated/src/driver_simulated.c |    15 +-
 .../examples/hello-subsciptions/CMakeLists.txt     |     5 +-
 sandbox/plc4c/examples/hello-world/CMakeLists.txt  |    20 +-
 .../plc4c/examples/hello-world/src/hello_world.c   |    59 +-
 .../generated-sources/modbus/include/data_item.h   |    43 +
 .../modbus/include/modbus_constants.h              |    56 +
 .../modbus/include/modbus_data_type.h              |    77 +
 .../modbus/include/modbus_data_type_sizes.h        |    76 +
 .../modbus/include/modbus_error_code.h             |    57 +
 .../generated-sources/modbus/include/modbus_pdu.h  |   243 +
 .../modbus_pdu_read_file_record_request_item.h     |    56 +
 .../modbus_pdu_read_file_record_response_item.h    |    54 +
 .../modbus_pdu_write_file_record_request_item.h    |    56 +
 .../modbus_pdu_write_file_record_response_item.h   |    56 +
 .../modbus/include/modbus_serial_adu.h             |    57 +
 .../modbus/include/modbus_tcp_adu.h                |    60 +
 .../plc4c/generated-sources/modbus/src/data_item.c |   337 +
 .../modbus/src/modbus_constants.c                  |    78 +
 .../modbus/src/modbus_data_type.c                  |   305 +
 .../modbus/src/modbus_data_type_sizes.c            |   296 +
 .../modbus/src/modbus_error_code.c                 |   105 +
 .../generated-sources/modbus/src/modbus_pdu.c      |  2365 ++++
 .../src/modbus_pdu_read_file_record_request_item.c |   123 +
 .../modbus_pdu_read_file_record_response_item.c    |   122 +
 .../modbus_pdu_write_file_record_request_item.c    |   156 +
 .../modbus_pdu_write_file_record_response_item.c   |   156 +
 .../modbus/src/modbus_serial_adu.c                 |   144 +
 .../generated-sources/modbus/src/modbus_tcp_adu.c  |   145 +
 .../generated-sources/s7/include/cotp_packet.h     |   108 +
 .../generated-sources/s7/include/cotp_parameter.h  |    91 +
 .../s7/include/cotp_protocol_class.h               |    52 +
 .../generated-sources/s7/include/cotp_tpdu_size.h  |    56 +
 .../plc4c/generated-sources/s7/include/data_item.h |    43 +
 .../s7/include/data_transport_error_code.h         |    53 +
 .../s7/include/data_transport_size.h               |    56 +
 .../generated-sources/s7/include/device_group.h    |    50 +
 .../generated-sources/s7/include/memory_area.h     |    58 +
 .../generated-sources/s7/include/s7_address.h      |    81 +
 .../generated-sources/s7/include/s7_message.h      |    91 +
 .../generated-sources/s7/include/s7_parameter.h    |    99 +
 .../s7/include/s7_parameter_user_data_item.h       |    81 +
 .../generated-sources/s7/include/s7_payload.h      |    91 +
 .../s7/include/s7_payload_user_data_item.h         |    86 +
 .../s7/include/s7_var_payload_data_item.h          |    57 +
 .../s7/include/s7_var_payload_status_item.h        |    54 +
 .../s7/include/s7_var_request_parameter_item.h     |    75 +
 .../s7/include/szl_data_tree_item.h                |    57 +
 .../plc4c/generated-sources/s7/include/szl_id.h    |    57 +
 .../s7/include/szl_module_type_class.h             |    51 +
 .../generated-sources/s7/include/szl_sublist.h     |    66 +
 .../generated-sources/s7/include/tpkt_packet.h     |    58 +
 .../generated-sources/s7/include/transport_size.h  |    95 +
 .../plc4c/generated-sources/s7/src/cotp_packet.c   |   553 +
 .../generated-sources/s7/src/cotp_parameter.c      |   284 +
 .../generated-sources/s7/src/cotp_protocol_class.c |    75 +
 .../generated-sources/s7/src/cotp_tpdu_size.c      |   116 +
 sandbox/plc4c/generated-sources/s7/src/data_item.c |   363 +
 .../s7/src/data_transport_error_code.c             |    81 +
 .../generated-sources/s7/src/data_transport_size.c |   116 +
 .../plc4c/generated-sources/s7/src/device_group.c  |    63 +
 .../plc4c/generated-sources/s7/src/memory_area.c   |   134 +
 .../plc4c/generated-sources/s7/src/s7_address.c    |   251 +
 .../plc4c/generated-sources/s7/src/s7_message.c    |   375 +
 .../plc4c/generated-sources/s7/src/s7_parameter.c  |   481 +
 .../s7/src/s7_parameter_user_data_item.c           |   325 +
 .../plc4c/generated-sources/s7/src/s7_payload.c    |   311 +
 .../s7/src/s7_payload_user_data_item.c             |   282 +
 .../s7/src/s7_var_payload_data_item.c              |   170 +
 .../s7/src/s7_var_payload_status_item.c            |    72 +
 .../s7/src/s7_var_request_parameter_item.c         |   146 +
 .../generated-sources/s7/src/szl_data_tree_item.c  |   157 +
 sandbox/plc4c/generated-sources/s7/src/szl_id.c    |   106 +
 .../s7/src/szl_module_type_class.c                 |    69 +
 .../plc4c/generated-sources/s7/src/szl_sublist.c   |   159 +
 .../plc4c/generated-sources/s7/src/tpkt_packet.c   |   132 +
 .../generated-sources/s7/src/transport_size.c      |   631 +
 sandbox/plc4c/pom.xml                              |    10 +-
 sandbox/plc4c/spi/CMakeLists.txt                   |    27 +-
 .../spi/include/plc4c/spi/evaluation_helper.h      |    34 +
 sandbox/plc4c/spi/include/plc4c/spi/read_buffer.h  |    98 +
 .../plc4c/spi/include/plc4c/spi/system_private.h   |     2 +
 .../plc4c/spi/include/plc4c/spi/types_private.h    |    72 +-
 sandbox/plc4c/spi/include/plc4c/spi/write_buffer.h |    87 +
 sandbox/plc4c/spi/src/connection.c                 |     5 +
 sandbox/plc4c/spi/src/data.c                       |    95 +-
 sandbox/plc4c/spi/src/evaluation_helper.c          |    40 +
 sandbox/plc4c/spi/src/read.c                       |    24 +-
 sandbox/plc4c/spi/src/read_buffer.c                |   609 +
 sandbox/plc4c/spi/src/system.c                     |    48 +-
 sandbox/plc4c/spi/src/utils/list.c                 |    17 +-
 sandbox/plc4c/spi/src/write.c                      |     9 +-
 sandbox/plc4c/spi/src/write_buffer.c               |   429 +
 sandbox/plc4c/spi/test/read_buffer_test.c          |   756 ++
 sandbox/plc4c/spi/test/spi_test.c                  |    37 +
 sandbox/plc4c/spi/test/system_test.c               |    14 +-
 sandbox/plc4c/spi/test/write_buffer_test.c         |   901 ++
 .../plc4c/transports/dummy/src/transport_dummy.c   |     5 +
 sandbox/plc4c/transports/serial/CMakeLists.txt     |     4 +-
 .../plc4c/transports/serial/src/transport_serial.c |    24 +
 sandbox/plc4c/transports/tcp/CMakeLists.txt        |     8 +-
 .../transports/tcp/include/plc4c/transport_tcp.h   |     8 +
 sandbox/plc4c/transports/tcp/src/transport_tcp.c   |   131 +
 sandbox/plc4cpp/pom.xml                            |    87 +-
 sandbox/plc4net/api/pom.xml                        |     2 +-
 sandbox/plc4net/plc4net.driver/pom.xml             |     2 +-
 sandbox/plc4net/pom.xml                            |     2 +-
 sandbox/plc4py/pom.xml                             |   105 +-
 sandbox/pom.xml                                    |    33 +-
 sandbox/test-java-amsads-driver/README.adoc        |    35 -
 sandbox/test-java-amsads-driver/pom.xml            |   160 -
 .../apache/plc4x/java/amsads/AMSADSPlcDriver.java  |    90 -
 .../amsads/configuration/AdsConfiguration.java     |   105 -
 .../connection/AdsAbstractPlcConnection.java       |   231 -
 .../amsads/connection/AdsConnectionFactory.java    |    58 -
 .../amsads/connection/AdsSerialPlcConnection.java  |    60 -
 .../amsads/connection/AdsTcpPlcConnection.java     |   366 -
 .../apache/plc4x/java/amsads/field/AdsField.java   |    27 -
 .../plc4x/java/amsads/field/AdsFieldHandler.java   |  1047 --
 .../plc4x/java/amsads/field/DirectAdsField.java    |   142 -
 .../plc4x/java/amsads/field/SymbolicAdsField.java  |   106 -
 .../java/amsads/model/AdsSubscriptionHandle.java   |    85 -
 .../java/amsads/protocol/Ads2PayloadProtocol.java  |    93 -
 .../java/amsads/protocol/AdsProtocolLogic.java     |    41 -
 .../amsads/protocol/Payload2SerialProtocol.java    |   114 -
 .../java/amsads/protocol/Payload2TcpProtocol.java  |    94 -
 .../java/amsads/protocol/Plc4x2AdsProtocol.java    |   335 -
 .../amsads/protocol/exception/AdsException.java    |    56 -
 .../exception/AdsProtocolOverflowException.java    |    32 -
 .../java/amsads/protocol/util/DigestUtil.java      |    46 -
 .../amsads/protocol/util/LittleEndianDecoder.java  |   489 -
 .../amsads/protocol/util/LittleEndianEncoder.java  |   285 -
 .../protocol/util/SingleMessageRateLimiter.java    |   124 -
 .../java/amsads/protocol/util/package-info.java    |    22 -
 .../plc4x/java/amsads/types/AdsDataType.java       |   577 -
 .../services/org.apache.plc4x.java.api.PlcDriver   |    38 -
 .../plc4x/java/amsads/AMSADSPlcDriverTest.java     |    42 -
 .../amsads/AmsAdsSerializerParserTest.java         |    29 -
 .../protocol/amsads/BenchmarkGeneratedDf1.java     |    76 -
 .../plc4x/protocol/amsads/BenchmarkManualDf1.java  |   239 -
 .../apache/plc4x/protocol/amsads/EndToEndTest.java |    57 -
 .../org/apache/plc4x/protocol/amsads/IOTest.java   |    91 -
 .../src/test/resources/testsuite/Df1Testsuite.xml  |   101 -
 sandbox/test-java-bacnetip-driver/pom.xml          |    20 +-
 .../apache/plc4x/java/bacnetip/BacNetIpDriver.java |   118 +
 .../plc4x/java/bacnetip/PassiveBacNetIpDriver.java |   113 -
 .../configuration/BacNetIpConfiguration.java       |   114 +
 .../PassiveBacNetIpConfiguration.java              |   111 -
 .../plc4x/java/bacnetip/ede/model/Datapoint.java   |    32 +-
 .../java/bacnetip/field/BacNetIpFieldHandler.java  |     4 +-
 .../bacnetip/protocol/BacNetIpProtocolLogic.java   |   254 +
 .../protocol/PassiveBacNetIpProtocolLogic.java     |   240 -
 .../services/org.apache.plc4x.java.api.PlcDriver   |     2 +-
 .../java/bacnetip/PassiveBacNetIpDriverManual.java |     4 +-
 sandbox/test-java-df1-driver/pom.xml               |    74 +-
 .../org/apache/plc4x/java/df1/DF1PlcDriver.java    |     9 +-
 .../plc4x/java/df1/field/Df1FieldHandler.java      |    11 +-
 .../plc4x/java/df1/protocol/Plc4XDf1Protocol.java  |    12 +-
 .../org/apache/plc4x/java/df1/util/DF1Utils.java   |     5 +-
 .../protocol/df1/Df1ParserSerializerTest.java      |     2 +-
 sandbox/test-streampipes-plc4x-adapters/pom.xml    |    56 +-
 .../java/streampipes/adapters/Plc4xAdapters.java   |     4 +-
 .../adapters/config/ConnectWorkerConfig.java       |     4 +-
 .../adapters/source/bacnetip/BacNetIpAdapter.java  |    32 +-
 .../adapters/source/knxnetip/KnxNetIpAdapter.java  |    36 +-
 sandbox/test-streampipes-plc4x-processors/pom.xml  |   125 +-
 .../processors/Plc4xProcessorsInit.java            |    14 +-
 .../java/streampipes/processors/config/Config.java |     4 +-
 .../ede/BacNetIpEdeDataEnrichmentController.java   |    32 +-
 .../enrich/knxnetip/ets5/Ets5DataEnrichment.java   |    16 +-
 .../ets5/Ets5DataEnrichmentController.java         |    30 +-
 .../ets5/Ets5DataEnrichmentParameters.java         |     4 +-
 sandbox/test-streampipes-plc4x-shared/pom.xml      |     2 +-
 .../shared/source/knxnetip/Constants.java          |     1 +
 src/main/script/preSiteGeneration.groovy           |    29 +-
 src/main/script/prerequisiteCheck.groovy           |    27 +-
 src/remote-resources/NOTICE                        |    26 -
 src/site/asciidoc/developers/building.adoc         |    23 +-
 .../developers/code-gen/protocol/mspec.adoc        |     6 +-
 src/site/asciidoc/developers/contributing.adoc     |     6 +-
 .../asciidoc/developers/infrastructure/ci.adoc     |     2 +-
 .../asciidoc/developers/infrastructure/vm.adoc     |     6 +-
 .../asciidoc/developers/infrastructure/vpn.adoc    |     4 +-
 .../developers/infrastructure/website.adoc         |     2 +-
 src/site/asciidoc/developers/preparing/index.adoc  |    14 +-
 src/site/asciidoc/developers/preparing/linux.adoc  |     4 +
 .../asciidoc/developers/release/build-tools.adoc   |   194 +-
 src/site/asciidoc/developers/release/release.adoc  |   121 +-
 .../asciidoc/developers/release/validation.adoc    |     6 +-
 src/site/asciidoc/developers/team.adoc             |    20 +-
 src/site/asciidoc/index.adoc                       |     6 +-
 src/site/asciidoc/plc4go/index.adoc                |   147 +
 src/site/asciidoc/protocols/canopen/index.adoc     |    39 +
 src/site/asciidoc/protocols/index.adoc             |     1 +
 src/site/asciidoc/users/adopters.adoc              |    62 +
 .../asciidoc/users/blogs-videos-and-slides.adoc    |     5 +
 src/site/asciidoc/users/commercial-support.adoc    |    51 +
 src/site/asciidoc/users/download.adoc              |    61 +-
 .../general-concepts.adoc                          |     0
 .../asciidoc/users/getting-started/plc4go.adoc     |   283 +
 src/site/asciidoc/users/getting-started/plc4j.adoc |   298 +
 .../{plc4j => getting-started}/virtual-modbus.adoc |     0
 src/site/asciidoc/users/gettingstarted.adoc        |     6 +-
 src/site/asciidoc/users/index.adoc                 |    13 +
 .../asciidoc/users/integrations/apache-iotdb.adoc  |    42 +
 .../asciidoc/users/integrations/apache-kafka.adoc  |   218 +-
 .../asciidoc/users/integrations/apache-nifi.adoc   |   135 +
 .../asciidoc/users/integrations/eclipse-milo.adoc  |   123 +
 src/site/asciidoc/users/plc4j/gettingstarted.adoc  |   294 -
 src/site/asciidoc/users/preparing-issues.adoc      |    19 +
 src/site/asciidoc/users/protocols/canopen.adoc     |   214 +
 src/site/asciidoc/users/protocols/knxnetip.adoc    |    86 +
 src/site/asciidoc/users/protocols/modbus.adoc      |   162 +-
 src/site/asciidoc/users/protocols/opc-ua.adoc      |   132 +-
 src/site/asciidoc/users/protocols/s7.adoc          |    21 +-
 src/site/asciidoc/users/protocols/simulated.adoc   |   120 +
 src/site/asciidoc/users/tools/connection-pool.adoc |    55 +
 src/site/asciidoc/users/tools/scraper.adoc         |   207 +-
 src/site/asciidoc/users/transports/index.adoc      |     1 +
 src/site/asciidoc/users/transports/socketcan.adoc  |    66 +
 src/site/asciidoc/users/users.adoc                 |    43 -
 src/site/resources-filtered/plc4x-doap.rdf         |    22 +-
 .../images/integrations/nifi/add-processor.png     |   Bin 0 -> 25508 bytes
 .../nifi/configure-processor-properties.png        |   Bin 0 -> 36219 bytes
 .../integrations/nifi/configure-scheduling.png     |   Bin 0 -> 37276 bytes
 .../images/integrations/nifi/configured-flow.png   |   Bin 0 -> 130333 bytes
 .../integrations/nifi/configured-log-processor.png |   Bin 0 -> 54626 bytes
 .../nifi/configured-plc4x-source-processor.png     |   Bin 0 -> 41203 bytes
 .../integrations/nifi/configuring-connection.png   |   Bin 0 -> 39490 bytes
 .../images/integrations/nifi/empty-nifi-flow.png   |   Bin 0 -> 74244 bytes
 .../integrations/nifi/list-of-plc4x-processors.png |   Bin 0 -> 103175 bytes
 .../images/integrations/nifi/running-flow.png      |   Bin 0 -> 59506 bytes
 src/site/resources/images/team/cdutz.png           |   Bin 27791 -> 66024 bytes
 src/site/resources/images/team/ldywicki.jpg        |   Bin 0 -> 12197 bytes
 src/site/resources/images/team/mstrljic.jpg        |   Bin 0 -> 28604 bytes
 src/site/resources/images/toddy-loves-apache.png   |   Bin 0 -> 265483 bytes
 .../images/users/companies/logo-codecentric.png    |   Bin 0 -> 26220 bytes
 .../images/users/companies/logo-connectorio.png    |   Bin 0 -> 17271 bytes
 .../images/users/companies/logo-industryfusion.png |   Bin 0 -> 15414 bytes
 .../images/users/companies/logo-pietrorimoldi.jpg  |   Bin 0 -> 584330 bytes
 .../users/companies/logo-pragmatic-industries.svg  |   498 +
 .../users/companies/logo-pragmatic-minds.svg       |   714 ++
 .../logo_record_evolution_single_dark_bgfont.png   |   Bin 0 -> 10498 bytes
 .../users/companies/logo_unistuttgart_isw.png      |   Bin 0 -> 31592 bytes
 src/site/site.xml                                  |    24 +-
 tools/boost/pom.xml                                |     2 +-
 tools/logstash/pom.xml                             |     2 +-
 tools/pom.xml                                      |     8 +-
 tools/thrift/pom.xml                               |   407 -
 tools/thrift/src/assembly/compiler.xml             |    43 -
 tools/thrift/src/assembly/cpp.xml                  |    56 -
 tools/thrift/src/assembly/python.xml               |    43 -
 1488 files changed, 196441 insertions(+), 26355 deletions(-)

diff --cc plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/configuration/AdsConfiguration.java
index 0000000,6a7e5c8..2c92427
mode 000000,100644..100644
--- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/configuration/AdsConfiguration.java
+++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/configuration/AdsConfiguration.java
@@@ -1,0 -1,147 +1,152 @@@
+ /*
+ 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.configuration;
+ 
+ import org.apache.commons.lang3.ArrayUtils;
+ import org.apache.plc4x.java.ads.ADSPlcDriver;
+ import org.apache.plc4x.java.ads.readwrite.AmsNetId;
+ import org.apache.plc4x.java.spi.configuration.Configuration;
+ import org.apache.plc4x.java.spi.configuration.ConfigurationParameterConverter;
+ import org.apache.plc4x.java.spi.configuration.annotations.ConfigurationParameter;
+ import org.apache.plc4x.java.spi.configuration.annotations.ParameterConverter;
+ import org.apache.plc4x.java.spi.configuration.annotations.Required;
+ import org.apache.plc4x.java.spi.configuration.annotations.defaults.IntDefaultValue;
+ import org.apache.plc4x.java.transport.serial.SerialTransportConfiguration;
+ import org.apache.plc4x.java.transport.tcp.TcpTransportConfiguration;
+ 
+ import java.util.regex.Pattern;
+ import java.util.stream.Stream;
+ 
+ public class AdsConfiguration implements Configuration, TcpTransportConfiguration, SerialTransportConfiguration {
+ 
+     public static final Pattern AMS_NET_ID_PATTERN =
+         Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");
+ 
+     @Required
+     @ConfigurationParameter
+     @ParameterConverter(AmsNetIdConverter.class)
+     protected AmsNetId targetAmsNetId;
+ 
+     @Required
+     @ConfigurationParameter
+     protected int targetAmsPort;
+ 
+     @Required
+     @ConfigurationParameter
+     @ParameterConverter(AmsNetIdConverter.class)
+     protected AmsNetId sourceAmsNetId;
+ 
+     @Required
+     @ConfigurationParameter
+     protected int sourceAmsPort;
+ 
+     @ConfigurationParameter("timeout-symbolic-address-resolution")
+     @IntDefaultValue(2000)
+     protected int timeoutSymbolicAddressResolution;
+ 
+     @ConfigurationParameter("timeout-request")
+     @IntDefaultValue(4000)
+     protected int timeoutRequest;
+ 
+     public AmsNetId getTargetAmsNetId() {
+         return targetAmsNetId;
+     }
+ 
+     public void setTargetAmsNetId(AmsNetId targetAmsNetId) {
+         this.targetAmsNetId = targetAmsNetId;
+     }
+ 
+     public int getTargetAmsPort() {
+         return targetAmsPort;
+     }
+ 
+     public void setTargetAmsPort(int targetAmsPort) {
+         this.targetAmsPort = targetAmsPort;
+     }
+ 
+     public AmsNetId getSourceAmsNetId() {
+         return sourceAmsNetId;
+     }
+ 
+     public void setSourceAmsNetId(AmsNetId sourceAmsNetId) {
+         this.sourceAmsNetId = sourceAmsNetId;
+     }
+ 
+     public int getSourceAmsPort() {
+         return sourceAmsPort;
+     }
+ 
+     public void setSourceAmsPort(int sourceAmsPort) {
+         this.sourceAmsPort = sourceAmsPort;
+     }
+ 
+     public int getTimeoutSymbolicAddressResolution() {
+         return timeoutSymbolicAddressResolution;
+     }
+ 
+     public void setTimeoutSymbolicAddressResolution(int timeoutSymbolicAddressResolution) {
+         this.timeoutSymbolicAddressResolution = timeoutSymbolicAddressResolution;
+     }
+ 
+     public int getTimeoutRequest() {
+         return timeoutRequest;
+     }
+ 
+     public void setTimeoutRequest(int timeoutRequest) {
+         this.timeoutRequest = timeoutRequest;
+     }
+ 
+     @Override
+     public int getDefaultPort() {
+         return ADSPlcDriver.TCP_PORT;
+     }
+ 
+     @Override
+     public int getBaudRate() {
+         return 57600;
+     }
+ 
++    @Override
++    public int getBaudRate() {
++        return 57600;
++    }
++
+     public static class AmsNetIdConverter implements ConfigurationParameterConverter<AmsNetId> {
+ 
+         @Override
+         public Class<AmsNetId> getType() {
+             return AmsNetId.class;
+         }
+ 
+         @Override
+         public AmsNetId convert(String value) {
+             return amsNetIdOf(value);
+         }
+     }
+ 
+     public static AmsNetId amsNetIdOf(String address) {
+         if (!AMS_NET_ID_PATTERN.matcher(address).matches()) {
+             throw new IllegalArgumentException(address + " must match " + AMS_NET_ID_PATTERN);
+         }
+         String[] split = address.split("\\.");
+         short[] shorts = ArrayUtils.toPrimitive(Stream.of(split).map(Integer::parseInt).map(Integer::shortValue).toArray(Short[]::new));
+         return new AmsNetId(shorts[0], shorts[1], shorts[2], shorts[3], shorts[4], shorts[5]);
+     }
+ 
+ }