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/08/14 16:48:32 UTC

[plc4x] 01/02: Merge branch 'develop' of github.com:apache/plc4x into s7event

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

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

commit 8da75d54ef0260383ba087c3a85ef16233d03649
Merge: 908c0eb 509a970
Author: cdutz <ch...@c-ware.de>
AuthorDate: Sat Aug 14 17:35:11 2021 +0200

    Merge branch 'develop' of github.com:apache/plc4x into s7event
    
     Conflicts:
    	plc4j/drivers/pom.xml
    	plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
    	protocols/s7/src/main/resources/protocols/s7/s7.mspec

 .asf.yaml                                          |    4 +-
 .github/dependabot.yml                             |   25 +
 .github/workflows/codeql-analysis.yml              |   78 +
 .gitignore                                         |    1 +
 .idea/fileTemplates/Go Application.go              |    7 +
 .idea/fileTemplates/Go File.go                     |    3 +
 .idea/fileTemplates/Go Scratch.go                  |    7 +
 .idea/fileTemplates/Properties File.properties     |    1 +
 .idea/fileTemplates/XML File.xml                   |    3 +
 .idea/fileTemplates/Yaml FIle.yaml                 |    1 +
 .idea/fileTemplates/Yml File.yml                   |    1 +
 .idea/fileTemplates/includes/C File Header.h       |   19 +
 .idea/fileTemplates/includes/File Header Go.go     |   18 +
 .../includes/File Header Properties.properties     |   19 +
 .idea/fileTemplates/includes/File Header XML.xml   |   18 +
 .idea/fileTemplates/includes/File Header Yaml.yaml |   18 +
 .idea/fileTemplates/includes/File Header Yml.yml   |   18 +
 .idea/fileTemplates/includes/File Header.java      |   18 +
 .idea/fileTemplates/internal/AnnotationType.java   |    5 +
 .idea/fileTemplates/internal/Class.java            |    5 +
 .idea/fileTemplates/internal/Enum.java             |    5 +
 .idea/fileTemplates/internal/Interface.java        |    5 +
 .idea/fileTemplates/internal/Record.java           |    5 +
 .mvn/extensions.xml                                |   28 +-
 .mvn/wrapper/MavenWrapperDownloader.java           |    9 +-
 .mvn/wrapper/maven-wrapper.properties              |    3 +-
 .travis.yml                                        |   34 +-
 DEVELOPMENT.md                                     |   28 +-
 Dockerfile                                         |    4 +-
 Jenkinsfile                                        |   25 +-
 LICENSE                                            |    6 +-
 README.md                                          |   37 +-
 RELEASE_NOTES                                      |    8 +
 Sometimes-Failling-Tests.md                        |   27 -
 build-reproducible.sh                              |    2 +-
 build-utils/language-base-freemarker/pom.xml       |   66 -
 .../BaseFreemarkerLanguageTemplateHelper.java      |  985 --------
 .../protocol/freemarker/FreemarkerException.java   |   34 -
 .../freemarker/FreemarkerLanguageOutput.java       |  180 --
 .../FreemarkerLanguageTemplateHelper.java          |   23 -
 build-utils/language-c/pom.xml                     |   94 -
 .../apache/plc4x/language/c/CLanguageOutput.java   |   76 -
 .../plc4x/language/c/CLanguageTemplateHelper.java  | 1034 ---------
 .../resources/templates/c/data-io-template.c.ftlh  |  256 ---
 .../resources/templates/c/data-io-template.h.ftlh  |   90 -
 .../resources/templates/c/enum-template.c.ftlh     |  128 --
 .../resources/templates/c/enum-template.h.ftlh     |   96 -
 .../resources/templates/c/pojo-template.c.ftlh     |  785 -------
 .../resources/templates/c/pojo-template.h.ftlh     |  184 --
 .../generated-sources/test/CMakeLists.txt          |   30 -
 .../src/test/resources/integration-test/pom.xml    |  387 ----
 .../language-c/src/test/resources/settings.xml     |   51 -
 build-utils/language-go/pom.xml                    |  110 -
 .../apache/plc4x/language/go/GoLanguageOutput.java |   72 -
 .../language/go/GoLanguageTemplateHelper.java      | 1167 ----------
 .../apache/plc4x/language/go/utils/FieldUtils.java |  103 -
 .../templates/go/data-io-template.go.ftlh          |  254 ---
 .../resources/templates/go/enum-template.go.ftlh   |  196 --
 .../resources/templates/go/model-template.go.ftlh  | 1245 ----------
 .../templates/go/parser-factory-template.go.ftlh   |   98 -
 .../go/xml-parser-factory-template.go.ftlh         |  131 --
 .../language-go/src/test/resources/plc4go/pom.xml  |  291 ---
 .../language-go/src/test/resources/settings.xml    |   51 -
 build-utils/language-java/pom.xml                  |  140 --
 .../plc4x/language/java/JavaLanguageOutput.java    |   74 -
 .../language/java/JavaLanguageTemplateHelper.java  |  917 --------
 .../templates/java/data-io-template.java.ftlh      |  396 ----
 .../java/enum-package-info-template.java.ftlh      |   49 -
 .../templates/java/enum-template.java.ftlh         |  144 --
 .../resources/templates/java/io-template.java.ftlh |  689 ------
 .../templates/java/pojo-template.java.ftlh         |  396 ----
 .../src/test/resources/integration-test/pom.xml    |  205 --
 .../language-java/src/test/resources/settings.xml  |   51 -
 build-utils/pom.xml                                |   77 -
 build-utils/protocol-base-mspec/pom.xml            |   86 -
 .../plugins/codegenerator/language/mspec/MSpec.g4  |  294 ---
 .../mspec/expression/ExpressionStringListener.java |  383 ----
 .../mspec/expression/ExpressionStringParser.java   |   44 -
 .../definitions/DefaultComplexTypeDefinition.java  |   98 -
 .../definitions/DefaultDataIoTypeDefinition.java   |   45 -
 .../DefaultDiscriminatedComplexTypeDefinition.java |   50 -
 .../definitions/DefaultEnumTypeDefinition.java     |   69 -
 .../mspec/model/definitions/DefaultEnumValue.java  |   53 -
 .../model/definitions/DefaultTypeDefinition.java   |   66 -
 .../mspec/model/fields/DefaultAbstractField.java   |   52 -
 .../mspec/model/fields/DefaultArrayField.java      |   64 -
 .../mspec/model/fields/DefaultChecksumField.java   |   55 -
 .../mspec/model/fields/DefaultConstField.java      |   55 -
 .../model/fields/DefaultDiscriminatorField.java    |   49 -
 .../mspec/model/fields/DefaultEnumField.java       |   57 -
 .../mspec/model/fields/DefaultImplicitField.java   |   55 -
 .../model/fields/DefaultManualArrayField.java      |   82 -
 .../mspec/model/fields/DefaultManualField.java     |   69 -
 .../mspec/model/fields/DefaultOptionalField.java   |   57 -
 .../mspec/model/fields/DefaultPaddingField.java    |   63 -
 .../mspec/model/fields/DefaultReservedField.java   |   49 -
 .../mspec/model/fields/DefaultSimpleField.java     |   51 -
 .../mspec/model/fields/DefaultSwitchField.java     |   56 -
 .../mspec/model/fields/DefaultTaggedField.java     |   36 -
 .../mspec/model/fields/DefaultVirtualField.java    |   55 -
 .../mspec/parser/MessageFormatListener.java        |  537 -----
 .../language/mspec/parser/MessageFormatParser.java |   47 -
 .../expression/ExpressionStringParserTest.java     |  177 --
 .../mspec/parser/MessageFormatParserTest.java      |   46 -
 .../src/test/resources/mspec.example               |  365 ---
 build-utils/protocol-test/pom.xml                  |  220 --
 .../apache/plc4x/protocol/test/TestProtocol.java   |   45 -
 .../src/main/resources/protocols/test/test.mspec   |  399 ----
 build-utils/protocol-test/src/site/site.xml        |  145 --
 code-generation/language-base-freemarker/pom.xml   |   66 +
 .../BaseFreemarkerLanguageTemplateHelper.java      | 1024 +++++++++
 .../protocol/freemarker/FreemarkerException.java   |   34 +
 .../freemarker/FreemarkerLanguageOutput.java       |  186 ++
 .../FreemarkerLanguageTemplateHelper.java          |   22 +
 code-generation/language-c/pom.xml                 |   94 +
 .../apache/plc4x/language/c/CLanguageOutput.java   |   83 +
 .../plc4x/language/c/CLanguageTemplateHelper.java  | 1034 +++++++++
 ...x.plugins.codegenerator.language.LanguageOutput |    0
 .../resources/templates/c/data-io-template.c.ftlh  |  256 +++
 .../resources/templates/c/data-io-template.h.ftlh  |   90 +
 .../resources/templates/c/enum-template.c.ftlh     |  128 ++
 .../resources/templates/c/enum-template.h.ftlh     |   96 +
 .../resources/templates/c/pojo-template.c.ftlh     |  785 +++++++
 .../resources/templates/c/pojo-template.h.ftlh     |  185 ++
 .../test/resources/integration-test/CMakeLists.txt |    0
 .../generated-sources/CMakeLists.txt               |    0
 .../generated-sources/test/CMakeLists.txt          |   30 +
 .../src/test/resources/integration-test/pom.xml    |  389 ++++
 .../language-c/src/test/resources/settings.xml     |   53 +
 code-generation/language-go/pom.xml                |  110 +
 .../apache/plc4x/language/go/GoLanguageOutput.java |   77 +
 .../language/go/GoLanguageTemplateHelper.java      | 1166 ++++++++++
 .../apache/plc4x/language/go/utils/FieldUtils.java |  103 +
 ...x.plugins.codegenerator.language.LanguageOutput |    0
 .../templates/go/data-io-template.go.ftlh          |  254 +++
 .../resources/templates/go/enum-template.go.ftlh   |  196 ++
 .../resources/templates/go/model-template.go.ftlh  | 1276 +++++++++++
 .../templates/go/parser-factory-template.go.ftlh   |   98 +
 .../go/xml-parser-factory-template.go.ftlh         |  144 ++
 .../language-go/src/test/resources/plc4go/go.mod   |    0
 .../language-go/src/test/resources/plc4go/pom.xml  |  291 +++
 .../language-go/src/test/resources/settings.xml    |   53 +
 code-generation/language-java/pom.xml              |  140 ++
 .../plc4x/language/java/JavaLanguageOutput.java    |   79 +
 .../language/java/JavaLanguageTemplateHelper.java  |  922 ++++++++
 ...x.plugins.codegenerator.language.LanguageOutput |    0
 .../templates/java/data-io-template.java.ftlh      |  395 ++++
 .../java/enum-package-info-template.java.ftlh      |   49 +
 .../templates/java/enum-template.java.ftlh         |  143 ++
 .../resources/templates/java/io-template.java.ftlh |  739 ++++++
 .../templates/java/pojo-template.java.ftlh         |  404 ++++
 .../src/test/resources/integration-test/pom.xml    |  205 ++
 .../language-java/src/test/resources/settings.xml  |   53 +
 code-generation/pom.xml                            |   76 +
 code-generation/protocol-base-mspec/pom.xml        |   86 +
 .../plugins/codegenerator/language/mspec/MSpec.g4  |  299 +++
 .../language/mspec/expression/Expression.g4        |    0
 .../mspec/expression/ExpressionStringListener.java |  382 ++++
 .../mspec/expression/ExpressionStringParser.java   |   43 +
 .../definitions/DefaultComplexTypeDefinition.java  |  102 +
 .../definitions/DefaultDataIoTypeDefinition.java   |   45 +
 .../DefaultDiscriminatedComplexTypeDefinition.java |   49 +
 .../definitions/DefaultEnumTypeDefinition.java     |   68 +
 .../mspec/model/definitions/DefaultEnumValue.java  |   52 +
 .../model/definitions/DefaultTypeDefinition.java   |   65 +
 .../mspec/model/fields/DefaultAbstractField.java   |   51 +
 .../mspec/model/fields/DefaultArrayField.java      |   63 +
 .../mspec/model/fields/DefaultChecksumField.java   |   54 +
 .../mspec/model/fields/DefaultConstField.java      |   54 +
 .../model/fields/DefaultDiscriminatorField.java    |   48 +
 .../mspec/model/fields/DefaultEnumField.java       |   56 +
 .../mspec/model/fields/DefaultImplicitField.java   |   54 +
 .../model/fields/DefaultManualArrayField.java      |   81 +
 .../mspec/model/fields/DefaultManualField.java     |   68 +
 .../mspec/model/fields/DefaultOptionalField.java   |   56 +
 .../mspec/model/fields/DefaultPaddingField.java    |   62 +
 .../mspec/model/fields/DefaultReservedField.java   |   48 +
 .../mspec/model/fields/DefaultSimpleField.java     |   50 +
 .../mspec/model/fields/DefaultSwitchField.java     |   55 +
 .../mspec/model/fields/DefaultTaggedField.java     |   36 +
 .../mspec/model/fields/DefaultUnknownField.java    |   42 +
 .../mspec/model/fields/DefaultVirtualField.java    |   54 +
 .../mspec/parser/MessageFormatListener.java        |  537 +++++
 .../language/mspec/parser/MessageFormatParser.java |   46 +
 .../src/remote-resources/LICENSE                   |    0
 .../src/remote-resources/UNLICENSE                 |    0
 .../expression/ExpressionStringParserTest.java     |  176 ++
 .../mspec/parser/MessageFormatParserTest.java      |   45 +
 .../src/test/resources/mspec.example               |  365 +++
 code-generation/protocol-test/pom.xml              |  220 ++
 .../apache/plc4x/protocol/test/TestProtocol.java   |   45 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    0
 .../src/main/resources/protocols/test/test.mspec   |  449 ++++
 .../protocol-test/src/site/asciidoc/index.adoc     |    0
 code-generation/protocol-test/src/site/site.xml    |  145 ++
 compare-reproducible.sh                            |    0
 mvnw                                               |    0
 {sandbox/plc4c => plc4c}/.clang-format             |    0
 plc4c/.gitignore                                   |  146 ++
 plc4c/.idea/fileTemplates/includes/C File Header.h |   19 +
 plc4c/CMakeLists.txt                               |   95 +
 plc4c/CODE_CONVENTIONS.md                          |   43 +
 plc4c/README.md                                    |   41 +
 plc4c/SonarcloudBuildWrapperHack.groovy            |   43 +
 {sandbox/plc4c => plc4c}/api/CMakeLists.txt        |    0
 .../plc4c => plc4c}/api/include/plc4c/connection.h |    0
 plc4c/api/include/plc4c/data.h                     |  198 ++
 {sandbox/plc4c => plc4c}/api/include/plc4c/plc4c.h |    0
 plc4c/api/include/plc4c/read.h                     |  117 +
 .../plc4c => plc4c}/api/include/plc4c/subscribe.h  |    0
 .../plc4c => plc4c}/api/include/plc4c/system.h     |    0
 {sandbox/plc4c => plc4c}/api/include/plc4c/types.h |    0
 plc4c/api/include/plc4c/utils/list.h               |   88 +
 .../api/include/plc4c/utils/queue.h                |    0
 plc4c/api/include/plc4c/write.h                    |  117 +
 {sandbox/plc4c => plc4c}/design-guidelines.adoc    |    0
 {sandbox/plc4c => plc4c}/drivers/CMakeLists.txt    |    0
 .../plc4c => plc4c}/drivers/modbus/CMakeLists.txt  |    0
 .../drivers/modbus/include/plc4c/driver_modbus.h   |    0
 .../modbus/include/plc4c/driver_modbus_packets.h   |    0
 .../modbus/include/plc4c/driver_modbus_sm.h        |    0
 .../modbus/include/plc4c/driver_s7_encode_decode.h |    0
 plc4c/drivers/modbus/src/driver_modbus.c           |   60 +
 .../modbus/src/driver_modbus_encode_decode.c       |  166 ++
 plc4c/drivers/modbus/src/driver_modbus_packets.c   |  176 ++
 .../drivers/modbus/src/driver_modbus_sm_connect.c  |   80 +
 .../modbus/src/driver_modbus_sm_disconnect.c       |   74 +
 plc4c/drivers/modbus/src/driver_modbus_sm_read.c   |  237 ++
 plc4c/drivers/modbus/src/driver_modbus_sm_write.c  |  121 +
 {sandbox/plc4c => plc4c}/drivers/s7/CMakeLists.txt |    0
 .../drivers/s7/include/plc4c/driver_s7.h           |    0
 .../s7/include/plc4c/driver_s7_encode_decode.h     |    0
 plc4c/drivers/s7/include/plc4c/driver_s7_packets.h |   78 +
 plc4c/drivers/s7/include/plc4c/driver_s7_sm.h      |   49 +
 plc4c/drivers/s7/src/driver_s7.c                   |  163 ++
 plc4c/drivers/s7/src/driver_s7_encode_decode.c     |  404 ++++
 plc4c/drivers/s7/src/driver_s7_packets.c           |  978 ++++++++
 plc4c/drivers/s7/src/driver_s7_sm_connect.c        |  338 +++
 plc4c/drivers/s7/src/driver_s7_sm_disconnect.c     |   81 +
 plc4c/drivers/s7/src/driver_s7_sm_read.c           |  291 +++
 plc4c/drivers/s7/src/driver_s7_sm_write.c          |  243 ++
 .../drivers/s7/test/s7_address_parser_test.c       |    0
 {sandbox/plc4c => plc4c}/drivers/s7/test/s7_test.c |    0
 .../drivers/simulated/CMakeLists.txt               |    0
 .../simulated/include/plc4c/driver_simulated.h     |    0
 plc4c/drivers/simulated/src/driver_simulated.c     |  433 ++++
 {sandbox/plc4c => plc4c}/examples/CMakeLists.txt   |    0
 .../examples/hello-subscriptions/CMakeLists.txt    |    0
 .../hello-subscriptions/src/hello_subscriptions.c  |    0
 .../examples/hello-world-modbus/CMakeLists.txt     |    0
 .../hello-world-modbus/src/hello_world_modbus.c    |  355 +++
 .../examples/hello-world-s7/CMakeLists.txt         |    0
 plc4c/examples/hello-world-s7/src/hello_world_s7.c |  381 ++++
 .../hello-world-s7/src/hello_world_s7_loopback.c   |  349 +++
 plc4c/generated-sources/modbus/include/data_item.h |   46 +
 .../modbus/include/modbus_constants.h              |   59 +
 .../modbus/include/modbus_data_type.h              |   80 +
 .../modbus/include/modbus_error_code.h             |   60 +
 .../generated-sources/modbus/include/modbus_pdu.h  |  246 ++
 .../modbus_pdu_read_file_record_request_item.h     |   59 +
 .../modbus_pdu_read_file_record_response_item.h    |   57 +
 .../modbus_pdu_write_file_record_request_item.h    |   59 +
 .../modbus_pdu_write_file_record_response_item.h   |   59 +
 .../modbus/include/modbus_serial_adu.h             |   60 +
 .../modbus/include/modbus_tcp_adu.h                |   63 +
 plc4c/generated-sources/modbus/src/data_item.c     |  575 +++++
 .../modbus/src/modbus_constants.c                  |   80 +
 .../modbus/src/modbus_data_type.c                  |  318 +++
 .../modbus/src/modbus_error_code.c                 |  107 +
 plc4c/generated-sources/modbus/src/modbus_pdu.c    | 2370 ++++++++++++++++++++
 .../src/modbus_pdu_read_file_record_request_item.c |  125 ++
 .../modbus_pdu_read_file_record_response_item.c    |  124 +
 .../modbus_pdu_write_file_record_request_item.c    |  158 ++
 .../modbus_pdu_write_file_record_response_item.c   |  158 ++
 .../modbus/src/modbus_serial_adu.c                 |  146 ++
 .../generated-sources/modbus/src/modbus_tcp_adu.c  |  147 ++
 plc4c/generated-sources/s7/include/cotp_packet.h   |  111 +
 .../generated-sources/s7/include/cotp_parameter.h  |   94 +
 .../s7/include/cotp_protocol_class.h               |   55 +
 .../generated-sources/s7/include/cotp_tpdu_size.h  |   60 +
 plc4c/generated-sources/s7/include/data_item.h     |   45 +
 .../s7/include/data_transport_error_code.h         |   56 +
 .../s7/include/data_transport_size.h               |   60 +
 plc4c/generated-sources/s7/include/device_group.h  |   53 +
 plc4c/generated-sources/s7/include/memory_area.h   |   62 +
 plc4c/generated-sources/s7/include/s7_address.h    |   84 +
 plc4c/generated-sources/s7/include/s7_message.h    |   94 +
 plc4c/generated-sources/s7/include/s7_parameter.h  |  102 +
 .../s7/include/s7_parameter_user_data_item.h       |   84 +
 plc4c/generated-sources/s7/include/s7_payload.h    |   94 +
 .../s7/include/s7_payload_user_data_item.h         |   89 +
 .../s7/include/s7_var_payload_data_item.h          |   60 +
 .../s7/include/s7_var_payload_status_item.h        |   57 +
 .../s7/include/s7_var_request_parameter_item.h     |   78 +
 .../s7/include/szl_data_tree_item.h                |   60 +
 plc4c/generated-sources/s7/include/szl_id.h        |   60 +
 .../s7/include/szl_module_type_class.h             |   54 +
 plc4c/generated-sources/s7/include/szl_sublist.h   |   69 +
 plc4c/generated-sources/s7/include/tpkt_packet.h   |   61 +
 .../generated-sources/s7/include/transport_size.h  |  111 +
 plc4c/generated-sources/s7/src/cotp_packet.c       |  553 +++++
 plc4c/generated-sources/s7/src/cotp_parameter.c    |  288 +++
 .../generated-sources/s7/src/cotp_protocol_class.c |   77 +
 plc4c/generated-sources/s7/src/cotp_tpdu_size.c    |  147 ++
 plc4c/generated-sources/s7/src/data_item.c         |  438 ++++
 .../s7/src/data_transport_error_code.c             |   83 +
 .../generated-sources/s7/src/data_transport_size.c |  132 ++
 plc4c/generated-sources/s7/src/device_group.c      |   65 +
 plc4c/generated-sources/s7/src/memory_area.c       |  166 ++
 plc4c/generated-sources/s7/src/s7_address.c        |  259 +++
 plc4c/generated-sources/s7/src/s7_message.c        |  371 +++
 plc4c/generated-sources/s7/src/s7_parameter.c      |  485 ++++
 .../s7/src/s7_parameter_user_data_item.c           |  329 +++
 plc4c/generated-sources/s7/src/s7_payload.c        |  314 +++
 .../s7/src/s7_payload_user_data_item.c             |  285 +++
 .../s7/src/s7_var_payload_data_item.c              |  172 ++
 .../s7/src/s7_var_payload_status_item.c            |   74 +
 .../s7/src/s7_var_request_parameter_item.c         |  150 ++
 .../generated-sources/s7/src/szl_data_tree_item.c  |  159 ++
 plc4c/generated-sources/s7/src/szl_id.c            |  108 +
 .../s7/src/szl_module_type_class.c                 |   71 +
 plc4c/generated-sources/s7/src/szl_sublist.c       |  161 ++
 plc4c/generated-sources/s7/src/tpkt_packet.c       |  134 ++
 plc4c/generated-sources/s7/src/transport_size.c    | 1435 ++++++++++++
 .../plc4c => plc4c}/integrations/CMakeLists.txt    |    0
 .../integrations/apache-mynewt/CMakeLists.txt      |    0
 plc4c/pom.xml                                      |  390 ++++
 {sandbox/plc4c => plc4c}/spi/CMakeLists.txt        |    0
 .../spi/include/plc4c/spi/evaluation_helper.h      |    0
 .../spi/include/plc4c/spi/read_buffer.h            |    0
 .../spi/include/plc4c/spi/system_private.h         |    0
 plc4c/spi/include/plc4c/spi/types_private.h        |  363 +++
 .../spi/include/plc4c/spi/write_buffer.h           |    0
 plc4c/spi/src/connection.c                         |  301 +++
 plc4c/spi/src/data.c                               |  552 +++++
 .../plc4c => plc4c}/spi/src/evaluation_helper.c    |    0
 plc4c/spi/src/read.c                               |  143 ++
 plc4c/spi/src/read_buffer.c                        |  623 +++++
 {sandbox/plc4c => plc4c}/spi/src/subscribe.c       |    0
 plc4c/spi/src/system.c                             |  509 +++++
 {sandbox/plc4c => plc4c}/spi/src/types.c           |    0
 plc4c/spi/src/utils/list.c                         |  232 ++
 {sandbox/plc4c => plc4c}/spi/src/utils/queue.c     |    0
 plc4c/spi/src/write.c                              |  153 ++
 {sandbox/plc4c => plc4c}/spi/src/write_buffer.c    |    0
 .../plc4c => plc4c}/spi/test/read_buffer_test.c    |    0
 {sandbox/plc4c => plc4c}/spi/test/spi_test.c       |    0
 {sandbox/plc4c => plc4c}/spi/test/system_test.c    |    0
 .../plc4c => plc4c}/spi/test/write_buffer_test.c   |    0
 {sandbox/plc4c => plc4c}/transports/CMakeLists.txt |    0
 .../transports/dummy/CMakeLists.txt                |    0
 .../dummy/include/plc4c/transport_dummy.h          |    0
 plc4c/transports/dummy/src/transport_dummy.c       |   34 +
 .../transports/serial/CMakeLists.txt               |    0
 .../serial/include/plc4c/transport_serial.h        |    0
 plc4c/transports/serial/src/transport_serial.c     |   53 +
 .../plc4c => plc4c}/transports/tcp/CMakeLists.txt  |    0
 .../transports/tcp/include/plc4c/transport_tcp.h   |    0
 plc4c/transports/tcp/src/transport_tcp.c           |  178 ++
 .../.idea/fileTemplates/includes/File Header Go.go |   18 +
 .../.idea/fileTemplates/internal/Go Application.go |    7 +
 plc4go/.idea/fileTemplates/internal/Go File.go     |    3 +
 plc4go/.idea/fileTemplates/internal/Go Scratch.go  |    7 +
 plc4go/Makefile                                    |    2 +-
 .../testing/protocols/ads/DriverTestsuite.xml      |   86 +-
 .../testing/protocols/eip/DriverTestsuite.xml      |   17 +-
 .../testing/protocols/modbus/DriverTestsuite.xml   |   80 +-
 .../testing/protocols/s7/DriverTestsuite.xml       |   37 +-
 plc4go/cmd/main/drivers/s7_test.go                 |   36 +-
 plc4go/cmd/main/drivers/tests/abeth_driver_test.go |   39 +-
 .../drivers/tests/abeth_parser_serializer_test.go  |   36 +-
 plc4go/cmd/main/drivers/tests/ads_driver_test.go   |   44 +-
 .../drivers/tests/ads_parser_serializer_test.go    |   36 +-
 plc4go/cmd/main/drivers/tests/df1_driver_test.go   |   39 +-
 .../drivers/tests/df1_parser_serializer_test.go    |   36 +-
 plc4go/cmd/main/drivers/tests/eip_driver_test.go   |   44 +-
 .../drivers/tests/eip_parser_serializer_test.go    |   36 +-
 .../cmd/main/drivers/tests/firmata_driver_test.go  |   39 +-
 .../tests/firmata_parser_serializer_test.go        |   36 +-
 .../cmd/main/drivers/tests/knxnetip_driver_test.go |   44 +-
 .../tests/knxnetip_parser_serializer_test.go       |   36 +-
 .../main/drivers/tests/manual_ads_driver_test.go   |   36 +-
 .../main/drivers/tests/manual_s7_driver_test.go    |   36 +-
 .../cmd/main/drivers/tests/modbus_driver_test.go   |   44 +-
 .../drivers/tests/modbus_parser_serializer_test.go |   36 +-
 plc4go/cmd/main/drivers/tests/s7_driver_test.go    |   44 +-
 .../drivers/tests/s7_parser_serializer_test.go     |   36 +-
 plc4go/cmd/main/initializetest/init.go             |   36 +-
 plc4go/cmd/main/main.go                            |   36 +-
 .../discovery/hello_world_plc4go_knx_discovery.go  |   36 +-
 .../hello_world_plc4go_knx_read_group_address.go   |   36 +-
 .../hello_world_plc4go_knx_subscription.go         |   36 +-
 plc4go/examples/read/hello_world_plc4go_read.go    |   36 +-
 plc4go/examples/write/hello_world_plc4go_write.go  |   36 +-
 plc4go/go.mod                                      |    9 +-
 plc4go/go.sum                                      |   60 +-
 .../plc4go/abeth/readwrite/ParserHelper.go         |   38 +-
 .../plc4go/abeth/readwrite/XmlParserHelper.go      |   45 +-
 .../model/CIPEncapsulationConnectionRequest.go     |   38 +-
 .../model/CIPEncapsulationConnectionResponse.go    |   38 +-
 .../readwrite/model/CIPEncapsulationPacket.go      |   38 +-
 .../readwrite/model/CIPEncapsulationReadRequest.go |   38 +-
 .../model/CIPEncapsulationReadResponse.go          |   47 +-
 .../readwrite/model/DF1CommandRequestMessage.go    |   38 +-
 ...mandResponseMessageProtectedTypedLogicalRead.go |   47 +-
 .../abeth/readwrite/model/DF1RequestCommand.go     |   38 +-
 .../abeth/readwrite/model/DF1RequestMessage.go     |   38 +-
 .../model/DF1RequestProtectedTypedLogicalRead.go   |   38 +-
 .../abeth/readwrite/model/DF1ResponseMessage.go    |   47 +-
 plc4go/internal/plc4go/ads/Configuration.go        |   68 +-
 plc4go/internal/plc4go/ads/Connection.go           |   36 +-
 plc4go/internal/plc4go/ads/Driver.go               |   38 +-
 plc4go/internal/plc4go/ads/Field.go                |   96 +-
 plc4go/internal/plc4go/ads/FieldHandler.go         |   56 +-
 plc4go/internal/plc4go/ads/MessageCodec.go         |   36 +-
 plc4go/internal/plc4go/ads/Reader.go               |   36 +-
 plc4go/internal/plc4go/ads/ValueHandler.go         |   36 +-
 plc4go/internal/plc4go/ads/Writer.go               |   36 +-
 .../internal/plc4go/ads/readwrite/ParserHelper.go  |   38 +-
 .../plc4go/ads/readwrite/XmlParserHelper.go        |   45 +-
 .../model/AdsAddDeviceNotificationRequest.go       |   38 +-
 .../model/AdsAddDeviceNotificationResponse.go      |   38 +-
 .../internal/plc4go/ads/readwrite/model/AdsData.go |   47 +-
 .../plc4go/ads/readwrite/model/AdsDataType.go      |   38 +-
 .../model/AdsDeleteDeviceNotificationRequest.go    |   38 +-
 .../model/AdsDeleteDeviceNotificationResponse.go   |   38 +-
 .../model/AdsDeviceNotificationRequest.go          |   38 +-
 .../model/AdsDeviceNotificationResponse.go         |   38 +-
 .../ads/readwrite/model/AdsInvalidRequest.go       |   38 +-
 .../ads/readwrite/model/AdsInvalidResponse.go      |   38 +-
 .../ads/readwrite/model/AdsMultiRequestItem.go     |   47 +-
 .../ads/readwrite/model/AdsMultiRequestItemRead.go |   38 +-
 .../model/AdsMultiRequestItemReadWrite.go          |   38 +-
 .../readwrite/model/AdsMultiRequestItemWrite.go    |   38 +-
 .../ads/readwrite/model/AdsNotificationSample.go   |   38 +-
 .../readwrite/model/AdsReadDeviceInfoRequest.go    |   38 +-
 .../readwrite/model/AdsReadDeviceInfoResponse.go   |   38 +-
 .../plc4go/ads/readwrite/model/AdsReadRequest.go   |   38 +-
 .../plc4go/ads/readwrite/model/AdsReadResponse.go  |   38 +-
 .../ads/readwrite/model/AdsReadStateRequest.go     |   38 +-
 .../ads/readwrite/model/AdsReadStateResponse.go    |   38 +-
 .../ads/readwrite/model/AdsReadWriteRequest.go     |   38 +-
 .../ads/readwrite/model/AdsReadWriteResponse.go    |   38 +-
 .../plc4go/ads/readwrite/model/AdsStampHeader.go   |   38 +-
 .../plc4go/ads/readwrite/model/AdsStaticHelper.go  |   36 +-
 .../ads/readwrite/model/AdsWriteControlRequest.go  |   38 +-
 .../ads/readwrite/model/AdsWriteControlResponse.go |   38 +-
 .../plc4go/ads/readwrite/model/AdsWriteRequest.go  |   38 +-
 .../plc4go/ads/readwrite/model/AdsWriteResponse.go |   38 +-
 .../plc4go/ads/readwrite/model/AmsNetId.go         |   38 +-
 .../plc4go/ads/readwrite/model/AmsPacket.go        |   38 +-
 .../readwrite/model/AmsSerialAcknowledgeFrame.go   |   38 +-
 .../plc4go/ads/readwrite/model/AmsSerialFrame.go   |   38 +-
 .../ads/readwrite/model/AmsSerialResetFrame.go     |   38 +-
 .../plc4go/ads/readwrite/model/AmsTCPPacket.go     |   38 +-
 .../plc4go/ads/readwrite/model/CommandId.go        |   38 +-
 .../plc4go/ads/readwrite/model/DataItem.go         |   38 +-
 .../ads/readwrite/model/ReservedIndexGroups.go     |   38 +-
 .../plc4go/ads/readwrite/model/ReturnCode.go       |   38 +-
 .../internal/plc4go/ads/readwrite/model/State.go   |   38 +-
 plc4go/internal/plc4go/bacnetip/Connection.go      |   77 +
 plc4go/internal/plc4go/bacnetip/Driver.go          |  117 +-
 plc4go/internal/plc4go/bacnetip/Field.go           |   92 +
 plc4go/internal/plc4go/bacnetip/FieldHandler.go    |   64 +
 plc4go/internal/plc4go/bacnetip/MessageCodec.go    |  102 +
 plc4go/internal/plc4go/bacnetip/Subscriber.go      |   70 +
 plc4go/internal/plc4go/bacnetip/ValueHandler.go    |   32 +
 .../plc4go/bacnetip/readwrite/ParserHelper.go      |   38 +-
 .../plc4go/bacnetip/readwrite/XmlParserHelper.go   |   61 +-
 .../plc4go/bacnetip/readwrite/model/APDU.go        |   47 +-
 .../plc4go/bacnetip/readwrite/model/APDUAbort.go   |   38 +-
 .../bacnetip/readwrite/model/APDUComplexAck.go     |   38 +-
 .../readwrite/model/APDUConfirmedRequest.go        |   47 +-
 .../plc4go/bacnetip/readwrite/model/APDUError.go   |   38 +-
 .../plc4go/bacnetip/readwrite/model/APDUReject.go  |   38 +-
 .../bacnetip/readwrite/model/APDUSegmentAck.go     |   38 +-
 .../bacnetip/readwrite/model/APDUSimpleAck.go      |   38 +-
 .../readwrite/model/APDUUnconfirmedRequest.go      |   47 +-
 .../bacnetip/readwrite/model/ApplicationTag.go     |   38 +-
 .../bacnetip/readwrite/model/BACnetAddress.go      |   38 +-
 .../readwrite/model/BACnetConfirmedServiceACK.go   |   38 +-
 .../BACnetConfirmedServiceACKAtomicReadFile.go     |   38 +-
 .../BACnetConfirmedServiceACKAtomicWriteFile.go    |   38 +-
 ...tConfirmedServiceACKConfirmedPrivateTransfer.go |   38 +-
 .../model/BACnetConfirmedServiceACKCreateObject.go |   38 +-
 .../BACnetConfirmedServiceACKGetAlarmSummary.go    |   38 +-
 ...ACnetConfirmedServiceACKGetEnrollmentSummary.go |   38 +-
 ...BACnetConfirmedServiceACKGetEventInformation.go |   38 +-
 .../model/BACnetConfirmedServiceACKReadProperty.go |   38 +-
 ...ACnetConfirmedServiceACKReadPropertyMultiple.go |   38 +-
 .../model/BACnetConfirmedServiceACKReadRange.go    |   38 +-
 ...BACnetConfirmedServiceACKRemovedAuthenticate.go |   38 +-
 ...rmedServiceACKRemovedReadPropertyConditional.go |   38 +-
 .../model/BACnetConfirmedServiceACKVTData.go       |   38 +-
 .../model/BACnetConfirmedServiceACKVTOpen.go       |   38 +-
 .../model/BACnetConfirmedServiceRequest.go         |   47 +-
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go |   38 +-
 .../BACnetConfirmedServiceRequestAddListElement.go |   38 +-
 .../BACnetConfirmedServiceRequestAtomicReadFile.go |   38 +-
 ...BACnetConfirmedServiceRequestAtomicWriteFile.go |   38 +-
 ...firmedServiceRequestConfirmedCOVNotification.go |   47 +-
 ...rviceRequestConfirmedCOVNotificationMultiple.go |   38 +-
 ...rmedServiceRequestConfirmedEventNotification.go |   38 +-
 ...firmedServiceRequestConfirmedPrivateTransfer.go |   38 +-
 ...tConfirmedServiceRequestConfirmedTextMessage.go |   38 +-
 .../BACnetConfirmedServiceRequestCreateObject.go   |   38 +-
 .../BACnetConfirmedServiceRequestDeleteObject.go   |   38 +-
 ...rmedServiceRequestDeviceCommunicationControl.go |   38 +-
 ...tConfirmedServiceRequestGetEnrollmentSummary.go |   38 +-
 ...etConfirmedServiceRequestGetEventInformation.go |   38 +-
 ...etConfirmedServiceRequestLifeSafetyOperation.go |   38 +-
 .../BACnetConfirmedServiceRequestReadProperty.go   |   38 +-
 ...tConfirmedServiceRequestReadPropertyMultiple.go |   38 +-
 .../BACnetConfirmedServiceRequestReadRange.go      |   38 +-
 ...netConfirmedServiceRequestReinitializeDevice.go |   38 +-
 ...CnetConfirmedServiceRequestRemoveListElement.go |   38 +-
 ...etConfirmedServiceRequestRemovedAuthenticate.go |   38 +-
 ...ServiceRequestRemovedReadPropertyConditional.go |   38 +-
 ...CnetConfirmedServiceRequestRemovedRequestKey.go |   38 +-
 .../BACnetConfirmedServiceRequestSubscribeCOV.go   |   38 +-
 ...tConfirmedServiceRequestSubscribeCOVProperty.go |   38 +-
 ...edServiceRequestSubscribeCOVPropertyMultiple.go |   38 +-
 .../model/BACnetConfirmedServiceRequestVTClose.go  |   38 +-
 .../model/BACnetConfirmedServiceRequestVTData.go   |   38 +-
 .../model/BACnetConfirmedServiceRequestVTOpen.go   |   38 +-
 .../BACnetConfirmedServiceRequestWriteProperty.go  |   47 +-
 ...ConfirmedServiceRequestWritePropertyMultiple.go |   38 +-
 .../plc4go/bacnetip/readwrite/model/BACnetError.go |   38 +-
 .../readwrite/model/BACnetErrorAtomicReadFile.go   |   38 +-
 .../readwrite/model/BACnetErrorAtomicWriteFile.go  |   38 +-
 .../model/BACnetErrorConfirmedPrivateTransfer.go   |   38 +-
 .../readwrite/model/BACnetErrorCreateObject.go     |   38 +-
 .../readwrite/model/BACnetErrorGetAlarmSummary.go  |   38 +-
 .../model/BACnetErrorGetEnrollmentSummary.go       |   38 +-
 .../model/BACnetErrorGetEventInformation.go        |   38 +-
 .../readwrite/model/BACnetErrorReadProperty.go     |   38 +-
 .../model/BACnetErrorReadPropertyMultiple.go       |   38 +-
 .../readwrite/model/BACnetErrorReadRange.go        |   38 +-
 .../model/BACnetErrorRemovedAuthenticate.go        |   38 +-
 .../BACnetErrorRemovedReadPropertyConditional.go   |   38 +-
 .../bacnetip/readwrite/model/BACnetErrorVTData.go  |   38 +-
 .../bacnetip/readwrite/model/BACnetErrorVTOpen.go  |   38 +-
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |   38 +-
 .../bacnetip/readwrite/model/BACnetNodeType.go     |   38 +-
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |   38 +-
 .../bacnetip/readwrite/model/BACnetObjectType.go   |   38 +-
 .../bacnetip/readwrite/model/BACnetServiceAck.go   |   38 +-
 .../model/BACnetServiceAckAtomicReadFile.go        |   38 +-
 .../model/BACnetServiceAckAtomicWriteFile.go       |   38 +-
 .../BACnetServiceAckConfirmedPrivateTransfer.go    |   38 +-
 .../model/BACnetServiceAckCreateObject.go          |   38 +-
 .../model/BACnetServiceAckGetAlarmSummary.go       |   38 +-
 .../model/BACnetServiceAckGetEnrollmentSummary.go  |   38 +-
 .../model/BACnetServiceAckGetEventInformation.go   |   38 +-
 .../model/BACnetServiceAckReadProperty.go          |   38 +-
 .../model/BACnetServiceAckReadPropertyMultiple.go  |   38 +-
 .../readwrite/model/BACnetServiceAckReadRange.go   |   38 +-
 .../model/BACnetServiceAckRemovedAuthenticate.go   |   38 +-
 ...CnetServiceAckRemovedReadPropertyConditional.go |   38 +-
 .../readwrite/model/BACnetServiceAckVTData.go      |   38 +-
 .../readwrite/model/BACnetServiceAckVTOpen.go      |   38 +-
 .../plc4go/bacnetip/readwrite/model/BACnetTag.go   |   38 +-
 .../model/BACnetTagApplicationBitString.go         |   47 +-
 .../readwrite/model/BACnetTagApplicationBoolean.go |   38 +-
 .../model/BACnetTagApplicationCharacterString.go   |   38 +-
 .../readwrite/model/BACnetTagApplicationDate.go    |   38 +-
 .../readwrite/model/BACnetTagApplicationDouble.go  |   47 +-
 .../model/BACnetTagApplicationEnumerated.go        |   47 +-
 .../readwrite/model/BACnetTagApplicationNull.go    |   38 +-
 .../model/BACnetTagApplicationObjectIdentifier.go  |   38 +-
 .../model/BACnetTagApplicationOctetString.go       |   38 +-
 .../readwrite/model/BACnetTagApplicationReal.go    |   47 +-
 .../model/BACnetTagApplicationSignedInteger.go     |   47 +-
 .../readwrite/model/BACnetTagApplicationTime.go    |   38 +-
 .../model/BACnetTagApplicationUnsignedInteger.go   |   47 +-
 .../bacnetip/readwrite/model/BACnetTagContext.go   |   47 +-
 .../readwrite/model/BACnetTagWithContent.go        |   38 +-
 .../model/BACnetUnconfirmedServiceRequest.go       |   47 +-
 .../model/BACnetUnconfirmedServiceRequestIAm.go    |   38 +-
 .../model/BACnetUnconfirmedServiceRequestIHave.go  |   38 +-
 ...UnconfirmedServiceRequestTimeSynchronization.go |   38 +-
 ...onfirmedServiceRequestUTCTimeSynchronization.go |   38 +-
 ...rmedServiceRequestUnconfirmedCOVNotification.go |   38 +-
 ...iceRequestUnconfirmedCOVNotificationMultiple.go |   38 +-
 ...edServiceRequestUnconfirmedEventNotification.go |   38 +-
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go |   47 +-
 ...onfirmedServiceRequestUnconfirmedTextMessage.go |   38 +-
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go |   38 +-
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go  |   38 +-
 .../BACnetUnconfirmedServiceRequestWriteGroup.go   |   38 +-
 .../plc4go/bacnetip/readwrite/model/BVLC.go        |   38 +-
 .../model/BVLCDeleteForeignDeviceTableEntry.go     |   38 +-
 .../model/BVLCDistributeBroadcastToNetwork.go      |   38 +-
 .../bacnetip/readwrite/model/BVLCForwardedNPDU.go  |   47 +-
 .../readwrite/model/BVLCOriginalBroadcastNPDU.go   |   47 +-
 .../readwrite/model/BVLCOriginalUnicastNPDU.go     |   47 +-
 .../model/BVLCReadBroadcastDistributionTable.go    |   38 +-
 .../model/BVLCReadBroadcastDistributionTableAck.go |   38 +-
 .../readwrite/model/BVLCReadForeignDeviceTable.go  |   38 +-
 .../model/BVLCReadForeignDeviceTableAck.go         |   38 +-
 .../readwrite/model/BVLCRegisterForeignDevice.go   |   38 +-
 .../plc4go/bacnetip/readwrite/model/BVLCResult.go  |   38 +-
 .../bacnetip/readwrite/model/BVLCSecureBVLL.go     |   38 +-
 .../model/BVLCWideBroadcastDistributionTable.go    |   38 +-
 .../plc4go/bacnetip/readwrite/model/NLM.go         |   47 +-
 .../readwrite/model/NLMIAmRouterToNetwork.go       |   47 +-
 .../readwrite/model/NLMWhoIsRouterToNetwork.go     |   47 +-
 .../plc4go/bacnetip/readwrite/model/NPDU.go        |   47 +-
 .../internal/plc4go/df1/readwrite/ParserHelper.go  |   38 +-
 .../plc4go/df1/readwrite/XmlParserHelper.go        |   41 +-
 .../plc4go/df1/readwrite/model/DF1Command.go       |   38 +-
 .../plc4go/df1/readwrite/model/DF1Symbol.go        |   38 +-
 .../df1/readwrite/model/DF1SymbolMessageFrame.go   |   38 +-
 .../readwrite/model/DF1SymbolMessageFrameACK.go    |   38 +-
 .../readwrite/model/DF1SymbolMessageFrameNAK.go    |   38 +-
 .../readwrite/model/DF1UnprotectedReadRequest.go   |   38 +-
 .../readwrite/model/DF1UnprotectedReadResponse.go  |   38 +-
 .../plc4go/df1/readwrite/model/Df1StaticHelper.go  |   36 +-
 .../df1/readwrite/model/Df1StaticHelper_test.go    |   36 +-
 plc4go/internal/plc4go/eip/Configuration.go        |   44 +-
 plc4go/internal/plc4go/eip/Connection.go           |   36 +-
 plc4go/internal/plc4go/eip/Driver.go               |   38 +-
 plc4go/internal/plc4go/eip/DriverContext.go        |   36 +-
 plc4go/internal/plc4go/eip/Field.go                |   57 +-
 plc4go/internal/plc4go/eip/FieldHandler.go         |   40 +-
 plc4go/internal/plc4go/eip/MessageCodec.go         |   36 +-
 plc4go/internal/plc4go/eip/Reader.go               |   44 +-
 plc4go/internal/plc4go/eip/ValueHandler.go         |   36 +-
 plc4go/internal/plc4go/eip/Writer.go               |   36 +-
 .../internal/plc4go/eip/readwrite/ParserHelper.go  |   38 +-
 .../plc4go/eip/readwrite/XmlParserHelper.go        |   53 +-
 .../plc4go/eip/readwrite/model/CIPDataTypeCode.go  |   38 +-
 .../plc4go/eip/readwrite/model/CipExchange.go      |   47 +-
 .../plc4go/eip/readwrite/model/CipRRData.go        |   47 +-
 .../plc4go/eip/readwrite/model/CipReadRequest.go   |   38 +-
 .../plc4go/eip/readwrite/model/CipReadResponse.go  |   47 +-
 .../plc4go/eip/readwrite/model/CipService.go       |   47 +-
 .../eip/readwrite/model/CipUnconnectedRequest.go   |   38 +-
 .../plc4go/eip/readwrite/model/CipWriteRequest.go  |   38 +-
 .../plc4go/eip/readwrite/model/CipWriteResponse.go |   38 +-
 .../plc4go/eip/readwrite/model/EiPCommand.go       |   38 +-
 .../eip/readwrite/model/EipConnectionRequest.go    |   38 +-
 .../eip/readwrite/model/EipDisconnectRequest.go    |   38 +-
 .../plc4go/eip/readwrite/model/EipPacket.go        |   38 +-
 .../eip/readwrite/model/MultipleServiceRequest.go  |   47 +-
 .../eip/readwrite/model/MultipleServiceResponse.go |   47 +-
 .../plc4go/eip/readwrite/model/Services.go         |   47 +-
 .../plc4go/firmata/readwrite/ParserHelper.go       |   38 +-
 .../plc4go/firmata/readwrite/XmlParserHelper.go    |   41 +-
 .../firmata/readwrite/model/FirmataCommand.go      |   47 +-
 .../model/FirmataCommandProtocolVersion.go         |   38 +-
 .../model/FirmataCommandSetDigitalPinValue.go      |   38 +-
 .../readwrite/model/FirmataCommandSetPinMode.go    |   38 +-
 .../firmata/readwrite/model/FirmataCommandSysex.go |   47 +-
 .../readwrite/model/FirmataCommandSystemReset.go   |   38 +-
 .../firmata/readwrite/model/FirmataMessage.go      |   47 +-
 .../readwrite/model/FirmataMessageAnalogIO.go      |   38 +-
 .../readwrite/model/FirmataMessageCommand.go       |   47 +-
 .../readwrite/model/FirmataMessageDigitalIO.go     |   38 +-
 .../model/FirmataMessageSubscribeAnalogPinValue.go |   38 +-
 .../FirmataMessageSubscribeDigitalPinValue.go      |   38 +-
 .../firmata/readwrite/model/FirmataStaticHelper.go |   36 +-
 .../plc4go/firmata/readwrite/model/PinMode.go      |   38 +-
 .../plc4go/firmata/readwrite/model/SysexCommand.go |   47 +-
 .../model/SysexCommandAnalogMappingQueryRequest.go |   38 +-
 .../SysexCommandAnalogMappingQueryResponse.go      |   38 +-
 .../model/SysexCommandAnalogMappingResponse.go     |   38 +-
 .../readwrite/model/SysexCommandCapabilityQuery.go |   38 +-
 .../model/SysexCommandCapabilityResponse.go        |   38 +-
 .../readwrite/model/SysexCommandExendedId.go       |   38 +-
 .../readwrite/model/SysexCommandExtendedAnalog.go  |   38 +-
 .../readwrite/model/SysexCommandPinStateQuery.go   |   38 +-
 .../model/SysexCommandPinStateResponse.go          |   38 +-
 .../model/SysexCommandReportFirmwareRequest.go     |   38 +-
 .../model/SysexCommandReportFirmwareResponse.go    |   38 +-
 .../model/SysexCommandSamplingInterval.go          |   38 +-
 .../readwrite/model/SysexCommandStringData.go      |   38 +-
 .../model/SysexCommandSysexNonRealtime.go          |   38 +-
 .../readwrite/model/SysexCommandSysexRealtime.go   |   38 +-
 plc4go/internal/plc4go/knxnetip/Browser.go         |   46 +-
 plc4go/internal/plc4go/knxnetip/Connection.go      |   43 +-
 .../knxnetip/ConnectionDriverSpecificOperations.go |   51 +-
 .../internal/plc4go/knxnetip/ConnectionHelper.go   |   44 +-
 .../knxnetip/ConnectionInternalOperations.go       |   40 +-
 plc4go/internal/plc4go/knxnetip/Discoverer.go      |   97 +-
 plc4go/internal/plc4go/knxnetip/Driver.go          |   38 +-
 plc4go/internal/plc4go/knxnetip/Field.go           |   48 +-
 plc4go/internal/plc4go/knxnetip/FieldHandler.go    |   70 +-
 plc4go/internal/plc4go/knxnetip/MessageCodec.go    |   38 +-
 plc4go/internal/plc4go/knxnetip/Reader.go          |   45 +-
 plc4go/internal/plc4go/knxnetip/Subscriber.go      |   36 +-
 .../internal/plc4go/knxnetip/SubscriptionEvent.go  |   36 +-
 plc4go/internal/plc4go/knxnetip/Utils.go           |   36 +-
 plc4go/internal/plc4go/knxnetip/ValueDecoder.go    |   36 +-
 plc4go/internal/plc4go/knxnetip/ValueHandler.go    |   36 +-
 plc4go/internal/plc4go/knxnetip/Writer.go          |   36 +-
 .../plc4go/knxnetip/readwrite/ParserHelper.go      |   38 +-
 .../knxnetip/readwrite/PropertyDataTypeIO.go       |   37 +-
 .../plc4go/knxnetip/readwrite/XmlParserHelper.go   |   61 +-
 .../plc4go/knxnetip/readwrite/model/AccessLevel.go |   38 +-
 .../plc4go/knxnetip/readwrite/model/Apdu.go        |   47 +-
 .../plc4go/knxnetip/readwrite/model/ApduControl.go |   38 +-
 .../knxnetip/readwrite/model/ApduControlAck.go     |   38 +-
 .../knxnetip/readwrite/model/ApduControlConnect.go |   38 +-
 .../readwrite/model/ApduControlContainer.go        |   38 +-
 .../readwrite/model/ApduControlDisconnect.go       |   38 +-
 .../knxnetip/readwrite/model/ApduControlNack.go    |   38 +-
 .../plc4go/knxnetip/readwrite/model/ApduData.go    |   47 +-
 .../knxnetip/readwrite/model/ApduDataAdcRead.go    |   38 +-
 .../readwrite/model/ApduDataAdcResponse.go         |   38 +-
 .../knxnetip/readwrite/model/ApduDataContainer.go  |   47 +-
 .../model/ApduDataDeviceDescriptorRead.go          |   38 +-
 .../model/ApduDataDeviceDescriptorResponse.go      |   47 +-
 .../plc4go/knxnetip/readwrite/model/ApduDataExt.go |   47 +-
 .../readwrite/model/ApduDataExtAuthorizeRequest.go |   38 +-
 .../model/ApduDataExtAuthorizeResponse.go          |   38 +-
 .../model/ApduDataExtDomainAddressRead.go          |   38 +-
 .../model/ApduDataExtDomainAddressResponse.go      |   38 +-
 .../model/ApduDataExtDomainAddressSelectiveRead.go |   38 +-
 .../ApduDataExtDomainAddressSerialNumberRead.go    |   38 +-
 ...ApduDataExtDomainAddressSerialNumberResponse.go |   38 +-
 .../ApduDataExtDomainAddressSerialNumberWrite.go   |   38 +-
 .../model/ApduDataExtDomainAddressWrite.go         |   38 +-
 .../model/ApduDataExtFileStreamInfoReport.go       |   38 +-
 .../ApduDataExtGroupPropertyValueInfoReport.go     |   38 +-
 .../model/ApduDataExtGroupPropertyValueRead.go     |   38 +-
 .../model/ApduDataExtGroupPropertyValueResponse.go |   38 +-
 .../model/ApduDataExtGroupPropertyValueWrite.go    |   38 +-
 ...ApduDataExtIndividualAddressSerialNumberRead.go |   38 +-
 ...DataExtIndividualAddressSerialNumberResponse.go |   38 +-
 ...pduDataExtIndividualAddressSerialNumberWrite.go |   38 +-
 .../readwrite/model/ApduDataExtKeyResponse.go      |   38 +-
 .../readwrite/model/ApduDataExtKeyWrite.go         |   38 +-
 .../readwrite/model/ApduDataExtLinkRead.go         |   38 +-
 .../readwrite/model/ApduDataExtLinkResponse.go     |   38 +-
 .../readwrite/model/ApduDataExtLinkWrite.go        |   38 +-
 .../readwrite/model/ApduDataExtMemoryBitWrite.go   |   38 +-
 .../model/ApduDataExtNetworkParameterRead.go       |   38 +-
 .../model/ApduDataExtNetworkParameterResponse.go   |   38 +-
 .../model/ApduDataExtNetworkParameterWrite.go      |   38 +-
 .../model/ApduDataExtOpenRoutingTableRequest.go    |   38 +-
 .../model/ApduDataExtPropertyDescriptionRead.go    |   38 +-
 .../ApduDataExtPropertyDescriptionResponse.go      |   38 +-
 .../model/ApduDataExtPropertyValueRead.go          |   38 +-
 .../model/ApduDataExtPropertyValueResponse.go      |   47 +-
 .../model/ApduDataExtPropertyValueWrite.go         |   47 +-
 .../model/ApduDataExtReadRouterMemoryRequest.go    |   38 +-
 .../model/ApduDataExtReadRouterMemoryResponse.go   |   38 +-
 .../model/ApduDataExtReadRouterStatusRequest.go    |   38 +-
 .../model/ApduDataExtReadRouterStatusResponse.go   |   38 +-
 .../model/ApduDataExtReadRoutingTableRequest.go    |   38 +-
 .../model/ApduDataExtReadRoutingTableResponse.go   |   38 +-
 .../model/ApduDataExtWriteRouterMemoryRequest.go   |   38 +-
 .../model/ApduDataExtWriteRouterStatusRequest.go   |   38 +-
 .../model/ApduDataExtWriteRoutingTableRequest.go   |   38 +-
 .../readwrite/model/ApduDataGroupValueRead.go      |   38 +-
 .../readwrite/model/ApduDataGroupValueResponse.go  |   47 +-
 .../readwrite/model/ApduDataGroupValueWrite.go     |   47 +-
 .../model/ApduDataIndividualAddressRead.go         |   38 +-
 .../model/ApduDataIndividualAddressResponse.go     |   38 +-
 .../model/ApduDataIndividualAddressWrite.go        |   38 +-
 .../knxnetip/readwrite/model/ApduDataMemoryRead.go |   38 +-
 .../readwrite/model/ApduDataMemoryResponse.go      |   38 +-
 .../readwrite/model/ApduDataMemoryWrite.go         |   38 +-
 .../knxnetip/readwrite/model/ApduDataOther.go      |   47 +-
 .../knxnetip/readwrite/model/ApduDataRestart.go    |   38 +-
 .../readwrite/model/ApduDataUserMessage.go         |   38 +-
 .../plc4go/knxnetip/readwrite/model/CEMI.go        |   47 +-
 .../readwrite/model/CEMIAdditionalInformation.go   |   38 +-
 .../CEMIAdditionalInformationBusmonitorInfo.go     |   38 +-
 .../CEMIAdditionalInformationRelativeTimestamp.go  |   38 +-
 .../knxnetip/readwrite/model/CEMIPriority.go       |   38 +-
 .../knxnetip/readwrite/model/ChannelInformation.go |   38 +-
 .../knxnetip/readwrite/model/ComObjectTable.go     |   47 +-
 .../readwrite/model/ComObjectTableAddresses.go     |   38 +-
 .../model/ComObjectTableRealisationType1.go        |   38 +-
 .../model/ComObjectTableRealisationType2.go        |   38 +-
 .../model/ComObjectTableRealisationType6.go        |   38 +-
 .../knxnetip/readwrite/model/ComObjectValueType.go |   38 +-
 .../knxnetip/readwrite/model/ConnectionRequest.go  |   38 +-
 .../model/ConnectionRequestInformation.go          |   38 +-
 ...ConnectionRequestInformationDeviceManagement.go |   38 +-
 ...ConnectionRequestInformationTunnelConnection.go |   38 +-
 .../knxnetip/readwrite/model/ConnectionResponse.go |   38 +-
 .../readwrite/model/ConnectionResponseDataBlock.go |   38 +-
 .../ConnectionResponseDataBlockDeviceManagement.go |   38 +-
 .../ConnectionResponseDataBlockTunnelConnection.go |   38 +-
 .../readwrite/model/ConnectionStateRequest.go      |   38 +-
 .../readwrite/model/ConnectionStateResponse.go     |   38 +-
 .../knxnetip/readwrite/model/DIBDeviceInfo.go      |   38 +-
 .../knxnetip/readwrite/model/DIBSuppSvcFamilies.go |   38 +-
 .../knxnetip/readwrite/model/DescriptionRequest.go |   38 +-
 .../readwrite/model/DescriptionResponse.go         |   38 +-
 .../readwrite/model/DeviceConfigurationAck.go      |   38 +-
 .../model/DeviceConfigurationAckDataBlock.go       |   38 +-
 .../readwrite/model/DeviceConfigurationRequest.go  |   47 +-
 .../model/DeviceConfigurationRequestDataBlock.go   |   38 +-
 .../knxnetip/readwrite/model/DeviceDescriptor.go   |   38 +-
 .../readwrite/model/DeviceDescriptorMediumType.go  |   38 +-
 .../readwrite/model/DeviceDescriptorType2.go       |   38 +-
 .../knxnetip/readwrite/model/DeviceStatus.go       |   38 +-
 .../knxnetip/readwrite/model/DisconnectRequest.go  |   38 +-
 .../knxnetip/readwrite/model/DisconnectResponse.go |   38 +-
 .../knxnetip/readwrite/model/FirmwareType.go       |   38 +-
 .../model/GroupObjectDescriptorRealisationType1.go |   38 +-
 .../model/GroupObjectDescriptorRealisationType2.go |   38 +-
 .../model/GroupObjectDescriptorRealisationType6.go |   38 +-
 .../model/GroupObjectDescriptorRealisationType7.go |   38 +-
 .../model/GroupObjectDescriptorRealisationTypeB.go |   38 +-
 .../readwrite/model/HPAIControlEndpoint.go         |   38 +-
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |   38 +-
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |   38 +-
 .../knxnetip/readwrite/model/HostProtocolCode.go   |   38 +-
 .../plc4go/knxnetip/readwrite/model/IPAddress.go   |   38 +-
 .../plc4go/knxnetip/readwrite/model/KnxAddress.go  |   38 +-
 .../knxnetip/readwrite/model/KnxDatapoint.go       |   38 +-
 .../readwrite/model/KnxDatapointMainType.go        |   38 +-
 .../knxnetip/readwrite/model/KnxDatapointType.go   |   38 +-
 .../knxnetip/readwrite/model/KnxGroupAddress.go    |   47 +-
 .../readwrite/model/KnxGroupAddress2Level.go       |   38 +-
 .../readwrite/model/KnxGroupAddress3Level.go       |   38 +-
 .../readwrite/model/KnxGroupAddressFreeLevel.go    |   38 +-
 .../readwrite/model/KnxInterfaceObjectProperty.go  |   38 +-
 .../readwrite/model/KnxInterfaceObjectType.go      |   38 +-
 .../plc4go/knxnetip/readwrite/model/KnxLayer.go    |   38 +-
 .../knxnetip/readwrite/model/KnxManufacturer.go    |  294 ++-
 .../plc4go/knxnetip/readwrite/model/KnxMedium.go   |   38 +-
 .../knxnetip/readwrite/model/KnxNetIpCore.go       |   38 +-
 .../readwrite/model/KnxNetIpDeviceManagement.go    |   38 +-
 .../knxnetip/readwrite/model/KnxNetIpMessage.go    |   38 +-
 .../knxnetip/readwrite/model/KnxNetIpRouting.go    |   38 +-
 .../knxnetip/readwrite/model/KnxNetIpTunneling.go  |   38 +-
 .../knxnetip/readwrite/model/KnxNetObjectServer.go |   38 +-
 .../model/KnxNetRemoteConfigurationAndDiagnosis.go |   38 +-
 .../readwrite/model/KnxNetRemoteLogging.go         |   38 +-
 .../plc4go/knxnetip/readwrite/model/KnxProperty.go |   38 +-
 .../readwrite/model/KnxPropertyDataType.go         |   38 +-
 .../plc4go/knxnetip/readwrite/model/LBusmonInd.go  |   38 +-
 .../plc4go/knxnetip/readwrite/model/LDataCon.go    |   38 +-
 .../knxnetip/readwrite/model/LDataExtended.go      |   38 +-
 .../plc4go/knxnetip/readwrite/model/LDataFrame.go  |   38 +-
 .../knxnetip/readwrite/model/LDataFrameACK.go      |   38 +-
 .../plc4go/knxnetip/readwrite/model/LDataInd.go    |   38 +-
 .../plc4go/knxnetip/readwrite/model/LDataReq.go    |   38 +-
 .../plc4go/knxnetip/readwrite/model/LPollData.go   |   38 +-
 .../knxnetip/readwrite/model/LPollDataCon.go       |   38 +-
 .../knxnetip/readwrite/model/LPollDataReq.go       |   38 +-
 .../plc4go/knxnetip/readwrite/model/LRawCon.go     |   38 +-
 .../plc4go/knxnetip/readwrite/model/LRawInd.go     |   38 +-
 .../plc4go/knxnetip/readwrite/model/LRawReq.go     |   38 +-
 .../plc4go/knxnetip/readwrite/model/MACAddress.go  |   38 +-
 .../readwrite/model/MFuncPropCommandReq.go         |   38 +-
 .../knxnetip/readwrite/model/MFuncPropCon.go       |   38 +-
 .../readwrite/model/MFuncPropStateReadReq.go       |   38 +-
 .../knxnetip/readwrite/model/MPropInfoInd.go       |   38 +-
 .../knxnetip/readwrite/model/MPropReadCon.go       |   66 +-
 .../knxnetip/readwrite/model/MPropReadReq.go       |   38 +-
 .../knxnetip/readwrite/model/MPropWriteCon.go      |   38 +-
 .../knxnetip/readwrite/model/MPropWriteReq.go      |   38 +-
 .../plc4go/knxnetip/readwrite/model/MResetInd.go   |   38 +-
 .../plc4go/knxnetip/readwrite/model/MResetReq.go   |   38 +-
 .../model/ProjectInstallationIdentifier.go         |   38 +-
 .../knxnetip/readwrite/model/RelativeTimestamp.go  |   38 +-
 .../knxnetip/readwrite/model/RoutingIndication.go  |   38 +-
 .../knxnetip/readwrite/model/SearchRequest.go      |   38 +-
 .../knxnetip/readwrite/model/SearchResponse.go     |   38 +-
 .../plc4go/knxnetip/readwrite/model/ServiceId.go   |   38 +-
 .../plc4go/knxnetip/readwrite/model/Status.go      |   38 +-
 .../readwrite/model/SupportedPhysicalMedia.go      |   38 +-
 .../knxnetip/readwrite/model/TDataConnectedInd.go  |   38 +-
 .../knxnetip/readwrite/model/TDataConnectedReq.go  |   38 +-
 .../knxnetip/readwrite/model/TDataIndividualInd.go |   38 +-
 .../knxnetip/readwrite/model/TDataIndividualReq.go |   38 +-
 .../knxnetip/readwrite/model/TunnelingRequest.go   |   47 +-
 .../readwrite/model/TunnelingRequestDataBlock.go   |   38 +-
 .../knxnetip/readwrite/model/TunnelingResponse.go  |   38 +-
 .../readwrite/model/TunnelingResponseDataBlock.go  |   38 +-
 .../knxnetip/readwrite/model/UnknownMessage.go     |   47 +-
 plc4go/internal/plc4go/modbus/Connection.go        |   36 +-
 plc4go/internal/plc4go/modbus/Driver.go            |   42 +-
 plc4go/internal/plc4go/modbus/Field.go             |   58 +-
 plc4go/internal/plc4go/modbus/FieldHandler.go      |   36 +-
 plc4go/internal/plc4go/modbus/MessageCodec.go      |   36 +-
 plc4go/internal/plc4go/modbus/Reader.go            |   36 +-
 plc4go/internal/plc4go/modbus/ValueHandler.go      |   36 +-
 plc4go/internal/plc4go/modbus/Writer.go            |   36 +-
 .../plc4go/modbus/readwrite/ParserHelper.go        |   38 +-
 .../plc4go/modbus/readwrite/XmlParserHelper.go     |   41 +-
 .../plc4go/modbus/readwrite/model/DataItem.go      |   38 +-
 .../modbus/readwrite/model/ModbusConstants.go      |   38 +-
 .../modbus/readwrite/model/ModbusDataType.go       |   38 +-
 .../modbus/readwrite/model/ModbusErrorCode.go      |   38 +-
 .../plc4go/modbus/readwrite/model/ModbusPDU.go     |   47 +-
 .../readwrite/model/ModbusPDUDiagnosticRequest.go  |   38 +-
 .../readwrite/model/ModbusPDUDiagnosticResponse.go |   38 +-
 .../modbus/readwrite/model/ModbusPDUError.go       |   38 +-
 .../model/ModbusPDUGetComEventCounterRequest.go    |   38 +-
 .../model/ModbusPDUGetComEventCounterResponse.go   |   38 +-
 .../model/ModbusPDUGetComEventLogRequest.go        |   38 +-
 .../model/ModbusPDUGetComEventLogResponse.go       |   38 +-
 .../ModbusPDUMaskWriteHoldingRegisterRequest.go    |   38 +-
 .../ModbusPDUMaskWriteHoldingRegisterResponse.go   |   38 +-
 .../readwrite/model/ModbusPDUReadCoilsRequest.go   |   38 +-
 .../readwrite/model/ModbusPDUReadCoilsResponse.go  |   38 +-
 .../ModbusPDUReadDeviceIdentificationRequest.go    |   38 +-
 .../ModbusPDUReadDeviceIdentificationResponse.go   |   38 +-
 .../model/ModbusPDUReadDiscreteInputsRequest.go    |   38 +-
 .../model/ModbusPDUReadDiscreteInputsResponse.go   |   38 +-
 .../model/ModbusPDUReadExceptionStatusRequest.go   |   38 +-
 .../model/ModbusPDUReadExceptionStatusResponse.go  |   38 +-
 .../model/ModbusPDUReadFifoQueueRequest.go         |   38 +-
 .../model/ModbusPDUReadFifoQueueResponse.go        |   38 +-
 .../model/ModbusPDUReadFileRecordRequest.go        |   38 +-
 .../model/ModbusPDUReadFileRecordRequestItem.go    |   38 +-
 .../model/ModbusPDUReadFileRecordResponse.go       |   38 +-
 .../model/ModbusPDUReadFileRecordResponseItem.go   |   38 +-
 .../model/ModbusPDUReadHoldingRegistersRequest.go  |   38 +-
 .../model/ModbusPDUReadHoldingRegistersResponse.go |   38 +-
 .../model/ModbusPDUReadInputRegistersRequest.go    |   38 +-
 .../model/ModbusPDUReadInputRegistersResponse.go   |   38 +-
 ...sPDUReadWriteMultipleHoldingRegistersRequest.go |   38 +-
 ...PDUReadWriteMultipleHoldingRegistersResponse.go |   38 +-
 .../model/ModbusPDUReportServerIdRequest.go        |   38 +-
 .../model/ModbusPDUReportServerIdResponse.go       |   38 +-
 .../model/ModbusPDUWriteFileRecordRequest.go       |   38 +-
 .../model/ModbusPDUWriteFileRecordRequestItem.go   |   38 +-
 .../model/ModbusPDUWriteFileRecordResponse.go      |   38 +-
 .../model/ModbusPDUWriteFileRecordResponseItem.go  |   38 +-
 .../model/ModbusPDUWriteMultipleCoilsRequest.go    |   38 +-
 .../model/ModbusPDUWriteMultipleCoilsResponse.go   |   38 +-
 ...odbusPDUWriteMultipleHoldingRegistersRequest.go |   38 +-
 ...dbusPDUWriteMultipleHoldingRegistersResponse.go |   38 +-
 .../model/ModbusPDUWriteSingleCoilRequest.go       |   38 +-
 .../model/ModbusPDUWriteSingleCoilResponse.go      |   38 +-
 .../model/ModbusPDUWriteSingleRegisterRequest.go   |   38 +-
 .../model/ModbusPDUWriteSingleRegisterResponse.go  |   38 +-
 .../modbus/readwrite/model/ModbusSerialADU.go      |   47 +-
 .../plc4go/modbus/readwrite/model/ModbusTcpADU.go  |   47 +-
 plc4go/internal/plc4go/s7/Configuration.go         |   64 +-
 plc4go/internal/plc4go/s7/Connection.go            |   36 +-
 plc4go/internal/plc4go/s7/ControllerType.go        |   36 +-
 plc4go/internal/plc4go/s7/Driver.go                |   38 +-
 plc4go/internal/plc4go/s7/DriverContext.go         |   36 +-
 plc4go/internal/plc4go/s7/Field.go                 |   91 +-
 plc4go/internal/plc4go/s7/FieldHandler.go          |  122 +-
 plc4go/internal/plc4go/s7/MessageCodec.go          |   36 +-
 plc4go/internal/plc4go/s7/Reader.go                |   36 +-
 plc4go/internal/plc4go/s7/TsapIdEncoder.go         |   36 +-
 plc4go/internal/plc4go/s7/ValueHandler.go          |   36 +-
 plc4go/internal/plc4go/s7/Writer.go                |   36 +-
 .../internal/plc4go/s7/readwrite/ParserHelper.go   |   38 +-
 .../plc4go/s7/readwrite/XmlParserHelper.go         |   61 +-
 .../plc4go/s7/readwrite/model/COTPPacket.go        |   47 +-
 .../readwrite/model/COTPPacketConnectionRequest.go |   38 +-
 .../model/COTPPacketConnectionResponse.go          |   38 +-
 .../plc4go/s7/readwrite/model/COTPPacketData.go    |   38 +-
 .../readwrite/model/COTPPacketDisconnectRequest.go |   38 +-
 .../model/COTPPacketDisconnectResponse.go          |   38 +-
 .../s7/readwrite/model/COTPPacketTpduError.go      |   38 +-
 .../plc4go/s7/readwrite/model/COTPParameter.go     |   47 +-
 .../s7/readwrite/model/COTPParameterCalledTsap.go  |   38 +-
 .../s7/readwrite/model/COTPParameterCallingTsap.go |   38 +-
 .../s7/readwrite/model/COTPParameterChecksum.go    |   38 +-
 ...COTPParameterDisconnectAdditionalInformation.go |   47 +-
 .../s7/readwrite/model/COTPParameterTpduSize.go    |   38 +-
 .../plc4go/s7/readwrite/model/COTPProtocolClass.go |   38 +-
 .../plc4go/s7/readwrite/model/COTPTpduSize.go      |   38 +-
 .../internal/plc4go/s7/readwrite/model/DataItem.go |   38 +-
 .../s7/readwrite/model/DataTransportErrorCode.go   |   38 +-
 .../plc4go/s7/readwrite/model/DataTransportSize.go |   38 +-
 .../plc4go/s7/readwrite/model/DeviceGroup.go       |   38 +-
 .../plc4go/s7/readwrite/model/MemoryArea.go        |   38 +-
 .../plc4go/s7/readwrite/model/S7Address.go         |   38 +-
 .../plc4go/s7/readwrite/model/S7AddressAny.go      |   38 +-
 .../plc4go/s7/readwrite/model/S7Message.go         |   38 +-
 .../plc4go/s7/readwrite/model/S7MessageRequest.go  |   38 +-
 .../plc4go/s7/readwrite/model/S7MessageResponse.go |   38 +-
 .../s7/readwrite/model/S7MessageResponseData.go    |   38 +-
 .../plc4go/s7/readwrite/model/S7MessageUserData.go |   38 +-
 .../plc4go/s7/readwrite/model/S7Parameter.go       |   47 +-
 .../readwrite/model/S7ParameterReadVarRequest.go   |   38 +-
 .../readwrite/model/S7ParameterReadVarResponse.go  |   38 +-
 .../model/S7ParameterSetupCommunication.go         |   38 +-
 .../s7/readwrite/model/S7ParameterUserData.go      |   38 +-
 .../s7/readwrite/model/S7ParameterUserDataItem.go  |   38 +-
 .../model/S7ParameterUserDataItemCPUFunctions.go   |   38 +-
 .../readwrite/model/S7ParameterWriteVarRequest.go  |   38 +-
 .../readwrite/model/S7ParameterWriteVarResponse.go |   38 +-
 .../plc4go/s7/readwrite/model/S7Payload.go         |   47 +-
 .../s7/readwrite/model/S7PayloadReadVarResponse.go |   47 +-
 .../plc4go/s7/readwrite/model/S7PayloadUserData.go |   47 +-
 .../s7/readwrite/model/S7PayloadUserDataItem.go    |   47 +-
 ...PayloadUserDataItemCpuFunctionReadSzlRequest.go |   38 +-
 ...ayloadUserDataItemCpuFunctionReadSzlResponse.go |   38 +-
 .../s7/readwrite/model/S7PayloadWriteVarRequest.go |   47 +-
 .../readwrite/model/S7PayloadWriteVarResponse.go   |   47 +-
 .../plc4go/s7/readwrite/model/S7StaticHelper.go    |   36 +-
 .../s7/readwrite/model/S7VarPayloadDataItem.go     |   38 +-
 .../s7/readwrite/model/S7VarPayloadStatusItem.go   |   38 +-
 .../readwrite/model/S7VarRequestParameterItem.go   |   38 +-
 .../model/S7VarRequestParameterItemAddress.go      |   38 +-
 .../plc4go/s7/readwrite/model/SzlDataTreeItem.go   |   38 +-
 plc4go/internal/plc4go/s7/readwrite/model/SzlId.go |   38 +-
 .../s7/readwrite/model/SzlModuleTypeClass.go       |   38 +-
 .../plc4go/s7/readwrite/model/SzlSublist.go        |   38 +-
 .../plc4go/s7/readwrite/model/TPKTPacket.go        |   38 +-
 .../plc4go/s7/readwrite/model/TransportSize.go     |   38 +-
 plc4go/internal/plc4go/s7/s7Io_test.go             |   36 +-
 .../plc4go/simulated/readwrite/ParserHelper.go     |   38 +-
 .../plc4go/simulated/readwrite/XmlParserHelper.go  |   41 +-
 .../plc4go/simulated/readwrite/model/DataItem.go   |   38 +-
 .../plc4go/simulated/readwrite/model/Dummy.go      |   38 +-
 .../readwrite/model/SimulatedDataTypeSizes.go      |   38 +-
 plc4go/internal/plc4go/spi/HandlerExposer.go       |   36 +-
 plc4go/internal/plc4go/spi/Message.go              |   36 +-
 plc4go/internal/plc4go/spi/MessageCodec.go         |   36 +-
 plc4go/internal/plc4go/spi/PlcBrowser.go           |   36 +-
 plc4go/internal/plc4go/spi/PlcDiscoverer.go        |   36 +-
 plc4go/internal/plc4go/spi/PlcFieldHandler.go      |   36 +-
 plc4go/internal/plc4go/spi/PlcReader.go            |   36 +-
 plc4go/internal/plc4go/spi/PlcSubscriber.go        |   36 +-
 plc4go/internal/plc4go/spi/PlcValueHandler.go      |   36 +-
 plc4go/internal/plc4go/spi/PlcWriter.go            |   36 +-
 .../plc4go/spi/RequestTransactionManager.go        |   36 +-
 .../plc4go/spi/TransportInstanceExposer.go         |   36 +-
 plc4go/internal/plc4go/spi/default/DefaultCodec.go |   45 +-
 .../plc4go/spi/default/DefaultConnection.go        |   36 +-
 plc4go/internal/plc4go/spi/default/Options.go      |   36 +-
 plc4go/internal/plc4go/spi/default/init.go         |   36 +-
 .../plc4go/spi/interceptors/RequestInterceptor.go  |   36 +-
 .../interceptors/SingleItemRequestInterceptor.go   |   36 +-
 .../plc4go/spi/model/DefaultBrowseRequest.go       |   36 +-
 .../plc4go/spi/model/DefaultPlcDiscoveryEvent.go   |   36 +-
 .../plc4go/spi/model/DefaultPlcReadRequest.go      |   65 +-
 .../plc4go/spi/model/DefaultPlcReadResponse.go     |   88 +-
 .../spi/model/DefaultPlcSubscriptionEvent.go       |   58 +-
 .../spi/model/DefaultPlcSubscriptionRequest.go     |   65 +-
 .../spi/model/DefaultPlcSubscriptionResponse.go    |   69 +-
 .../plc4go/spi/model/DefaultPlcWriteRequest.go     |   93 +-
 .../plc4go/spi/model/DefaultPlcWriteResponse.go    |   63 +-
 plc4go/internal/plc4go/spi/model/DefaultRequest.go |   36 +-
 .../internal/plc4go/spi/model/DefaultResponse.go   |   36 +-
 .../internal/plc4go/spi/plcerrors/TimeoutError.go  |   36 +-
 .../plc4go/spi/testutils/DriverTestRunner.go       |  193 +-
 .../plc4go/spi/testutils/ManualTestRunner.go       |   36 +-
 .../spi/testutils/ParserSerializerTestRunner.go    |   36 +-
 plc4go/internal/plc4go/spi/testutils/TestUtils.go  |   48 +-
 plc4go/internal/plc4go/spi/transports/Transport.go |   36 +-
 .../plc4go/spi/transports/TransportInstance.go     |   38 +-
 .../plc4go/spi/transports/serial/Transport.go      |  183 ++
 .../plc4go/spi/transports/tcp/Transport.go         |   59 +-
 .../plc4go/spi/transports/test/Transport.go        |   44 +-
 .../plc4go/spi/transports/udp/Transport.go         |   60 +-
 .../plc4go/spi/transports/utils/TransportLogger.go |   68 +
 plc4go/internal/plc4go/spi/utils/Buffer.go         |   36 +-
 plc4go/internal/plc4go/spi/utils/CastUtils.go      |   82 +-
 plc4go/internal/plc4go/spi/utils/MultiError.go     |   36 +-
 plc4go/internal/plc4go/spi/utils/ReadBuffer.go     |   36 +-
 .../plc4go/spi/utils/ReadBufferByteBased.go        |   36 +-
 .../plc4go/spi/utils/ReadBufferByteBased_test.go   |   36 +-
 .../plc4go/spi/utils/ReadBufferJsonBased.go        |   36 +-
 .../plc4go/spi/utils/ReadBufferXmlBased.go         |   36 +-
 plc4go/internal/plc4go/spi/utils/Regexp.go         |   36 +-
 plc4go/internal/plc4go/spi/utils/Serializable.go   |   36 +-
 plc4go/internal/plc4go/spi/utils/Utils.go          |   36 +-
 plc4go/internal/plc4go/spi/utils/WriteBuffer.go    |   36 +-
 .../plc4go/spi/utils/WriteBufferBoxBased.go        |   36 +-
 .../plc4go/spi/utils/WriteBufferByteBased.go       |   36 +-
 .../plc4go/spi/utils/WriteBufferJsonBased.go       |   36 +-
 .../plc4go/spi/utils/WriteBufferXmlBased.go        |   36 +-
 plc4go/internal/plc4go/spi/utils/asciiBox.go       |   36 +-
 plc4go/internal/plc4go/spi/utils/asciiBox_test.go  |   36 +-
 plc4go/internal/plc4go/spi/utils/bufferCommons.go  |   36 +-
 plc4go/internal/plc4go/spi/utils/dumpUtils.go      |   36 +-
 plc4go/internal/plc4go/spi/utils/dumpUtils_test.go |   36 +-
 plc4go/internal/plc4go/spi/utils/hex.go            |   36 +-
 plc4go/internal/plc4go/spi/utils/hex_test.go       |   36 +-
 plc4go/internal/plc4go/spi/values/BINT.go          |   50 +-
 plc4go/internal/plc4go/spi/values/BOOL.go          |   51 +-
 plc4go/internal/plc4go/spi/values/BREAL.go         |   50 +-
 plc4go/internal/plc4go/spi/values/BYTE.go          |   47 +-
 plc4go/internal/plc4go/spi/values/CHAR.go          |   47 +-
 plc4go/internal/plc4go/spi/values/DATE.go          |   45 +-
 plc4go/internal/plc4go/spi/values/DATE_AND_TIME.go |   45 +-
 plc4go/internal/plc4go/spi/values/DINT.go          |   45 +-
 plc4go/internal/plc4go/spi/values/DWORD.go         |   47 +-
 .../plc4go/spi/values/IEC61131ValueHandler.go      |   36 +-
 plc4go/internal/plc4go/spi/values/INT.go           |   45 +-
 plc4go/internal/plc4go/spi/values/LINT.go          |   45 +-
 plc4go/internal/plc4go/spi/values/LREAL.go         |   45 +-
 plc4go/internal/plc4go/spi/values/LTIME.go         |   45 +-
 plc4go/internal/plc4go/spi/values/LWORD.go         |   47 +-
 plc4go/internal/plc4go/spi/values/NULL.go          |   48 +-
 plc4go/internal/plc4go/spi/values/PlcBitString.go  |   59 +-
 plc4go/internal/plc4go/spi/values/PlcByteArray.go  |   52 +-
 plc4go/internal/plc4go/spi/values/PlcList.go       |   67 +-
 .../plc4go/spi/values/PlcSimpleValueAdapter.go     |   36 +-
 plc4go/internal/plc4go/spi/values/PlcStruct.go     |   64 +-
 .../internal/plc4go/spi/values/PlcValueAdapter.go  |   36 +-
 plc4go/internal/plc4go/spi/values/REAL.go          |   45 +-
 plc4go/internal/plc4go/spi/values/RawPlcValue.go   |   50 +-
 plc4go/internal/plc4go/spi/values/SINT.go          |   45 +-
 plc4go/internal/plc4go/spi/values/STRING.go        |   47 +-
 plc4go/internal/plc4go/spi/values/TIME.go          |   45 +-
 plc4go/internal/plc4go/spi/values/TIME_OF_DAY.go   |   45 +-
 plc4go/internal/plc4go/spi/values/UDINT.go         |   45 +-
 plc4go/internal/plc4go/spi/values/UINT.go          |   45 +-
 plc4go/internal/plc4go/spi/values/ULINT.go         |   45 +-
 plc4go/internal/plc4go/spi/values/USINT.go         |   45 +-
 plc4go/internal/plc4go/spi/values/WCHAR.go         |   45 +-
 plc4go/internal/plc4go/spi/values/WORD.go          |   47 +-
 plc4go/internal/plc4go/spi/values/WSTRING.go       |   45 +-
 plc4go/pkg/plc4go/config/config.go                 |   36 +-
 plc4go/pkg/plc4go/connection.go                    |   36 +-
 plc4go/pkg/plc4go/driver.go                        |   36 +-
 plc4go/pkg/plc4go/driverManager.go                 |   36 +-
 plc4go/pkg/plc4go/drivers/drivers.go               |   42 +-
 plc4go/pkg/plc4go/logging/init.go                  |   36 +-
 plc4go/pkg/plc4go/model/plc_browse.go              |   36 +-
 plc4go/pkg/plc4go/model/plc_connection_metadata.go |   36 +-
 plc4go/pkg/plc4go/model/plc_discovery.go           |   36 +-
 plc4go/pkg/plc4go/model/plc_field.go               |   36 +-
 plc4go/pkg/plc4go/model/plc_message.go             |   36 +-
 plc4go/pkg/plc4go/model/plc_read.go                |   36 +-
 plc4go/pkg/plc4go/model/plc_request.go             |   36 +-
 plc4go/pkg/plc4go/model/plc_response.go            |   36 +-
 plc4go/pkg/plc4go/model/plc_response_code.go       |   36 +-
 plc4go/pkg/plc4go/model/plc_subscription.go        |   36 +-
 plc4go/pkg/plc4go/model/plc_unsubscription.go      |   36 +-
 plc4go/pkg/plc4go/model/plc_write.go               |   36 +-
 plc4go/pkg/plc4go/transports/transports.go         |   36 +-
 plc4go/pkg/plc4go/values/plc_value.go              |   36 +-
 plc4go/pom.xml                                     |   64 +-
 plc4j/api/pom.xml                                  |   32 +-
 .../org/apache/plc4x/java/PlcDriverManager.java    |   41 +-
 .../org/apache/plc4x/java/api/Experimental.java    |    1 -
 .../plc4x/java/api/PlcConnectionExtension.java     |    1 -
 .../java/org/apache/plc4x/java/api/PlcDriver.java  |   15 +-
 .../api/exceptions/PlcFieldRangeException.java     |    1 -
 .../PlcIncompatibleDatatypeException.java          |    1 -
 .../api/exceptions/PlcInvalidFieldException.java   |   15 +-
 .../exceptions/PlcProtocolTimeoutException.java    |   34 +-
 .../java/api/exceptions/PlcTimeoutException.java   |    1 -
 .../PlcUnsupportedProtocolException.java           |    1 -
 .../plc4x/java/api/messages/PlcDiscoveryItem.java  |   55 +
 .../java/api/messages/PlcDiscoveryItemHandler.java |   25 +
 .../java/api/messages/PlcDiscoveryRequest.java     |    2 +
 .../java/api/messages/PlcDiscoveryResponse.java    |    8 +
 .../plc4x/java/api/metadata/PlcDriverMetadata.java |   31 +
 .../java/api/model/PlcConsumerRegistration.java    |    1 -
 .../plc4x/java/api/model/PlcDiscoveryHandler.java  |   31 +
 .../plc4x/java/api/model/PlcSubscriptionField.java |   34 +-
 .../org/apache/plc4x/java/api/value/PlcValue.java  |    1 -
 .../plc4x/java/api/value/PlcValueHandler.java      |   19 +-
 .../PlcUsernamePasswordAuthenticationTest.java     |    1 -
 .../api/exceptions/PlcConnectionExceptionTest.java |    1 -
 .../java/api/exceptions/PlcExceptionTest.java      |    1 -
 .../api/exceptions/PlcFieldRangeExceptionTest.java |    1 -
 .../PlcIncompatibleDatatypeExceptionTest.java      |    1 -
 .../exceptions/PlcInvalidFieldExceptionTest.java   |    1 -
 .../java/api/exceptions/PlcIoExceptionTest.java    |    1 -
 .../exceptions/PlcNotImplementedExceptionTest.java |    1 -
 .../api/exceptions/PlcProtocolExceptionTest.java   |    1 -
 .../PlcProtocolPayloadTooBigExceptionTest.java     |    1 -
 .../api/exceptions/PlcRuntimeExceptionTest.java    |    1 -
 .../api/exceptions/PlcTimeoutExceptionTest.java    |    1 -
 .../PlcUnsupportedDataTypeExceptionTest.java       |    1 -
 .../PlcUnsupportedOperationExceptionTest.java      |    1 -
 .../plc4x/java/api/messages/APIMessageTests.java   |    1 -
 .../api/messages/PlcUnsubscriptionRequestTest.java |    1 -
 .../java/api/types/PlcClientDatatypeTest.java      |    3 -
 .../plc4x/java/api/types/PlcResponseCodeTest.java  |    1 -
 .../java/api/types/PlcSubscriptionTypeTest.java    |    1 -
 .../plc4x/java/mock/DuplicateMockDriver.java       |    1 -
 .../apache/plc4x/java/mock/MockPlcConnection.java  |    1 -
 .../services/org.apache.plc4x.java.api.PlcDriver   |   19 -
 .../services/org.apache.plc4x.java.api.PlcDriver   |   19 -
 plc4j/drivers/ab-eth/pom.xml                       |   36 +-
 .../org/apache/plc4x/java/abeth/AbEthDriver.java   |   34 +-
 .../abeth/configuration/AbEthConfiguration.java    |   34 +-
 .../apache/plc4x/java/abeth/field/AbEthField.java  |   34 +-
 .../plc4x/java/abeth/field/AbEthFieldHandler.java  |   34 +-
 .../java/abeth/protocol/AbEthProtocolLogic.java    |   34 +-
 .../java/abeth/protocol/Plc4xAbEthProtocol.java    |   34 +-
 .../apache/plc4x/java/abeth/types/FileType.java    |   34 +-
 .../protocol/abeth/AbEthParserSerializerTest.java  |   35 +-
 plc4j/drivers/ads/pom.xml                          |    6 +-
 .../org/apache/plc4x/java/ads/ADSPlcDriver.java    |   32 +-
 .../java/ads/configuration/AdsConfiguration.java   |   34 +-
 .../org/apache/plc4x/java/ads/field/AdsField.java  |   36 +-
 .../plc4x/java/ads/field/AdsFieldHandler.java      |   32 +-
 .../plc4x/java/ads/field/AdsStringField.java       |   34 +-
 .../plc4x/java/ads/field/DirectAdsField.java       |   64 +-
 .../plc4x/java/ads/field/DirectAdsStringField.java |   64 +-
 .../plc4x/java/ads/field/SymbolicAdsField.java     |   62 +-
 .../java/ads/field/SymbolicAdsStringField.java     |   64 +-
 .../java/ads/model/AdsSubscriptionHandle.java      |   34 +-
 .../plc4x/java/ads/protocol/AdsProtocolLogic.java  |  135 +-
 .../apache/plc4x/java/ads/utils/StaticHelper.java  |   34 +-
 .../ads/AdsDiscoverySerializerParserTest.java      |   35 +-
 .../org/apache/plc4x/protocol/ads/AdsDriverIT.java |   34 +-
 .../protocol/ads/AdsSerializerParserTest.java      |   35 +-
 .../apache/plc4x/protocol/ads/HexBase64Helper.java |   34 +-
 .../plc4x/protocol/ads/ManualAdsDriverTest.java    |   34 +-
 .../protocol/ads/ManualParserSerializerTest.java   |   34 +-
 plc4j/drivers/canopen/pom.xml                      |   36 +-
 .../plc4x/java/canopen/CANOpenPlcDriver.java       |   32 +-
 .../api/conversation/canopen/CANConversation.java  |   34 +-
 .../canopen/CANOpenConversationBase.java           |   34 +-
 .../canopen/SDODownloadConversation.java           |   34 +-
 .../canopen/SDOUploadConversation.java             |   34 +-
 .../api/segmentation/accumulator/ByteStorage.java  |   34 +-
 .../api/segmentation/accumulator/Storage.java      |   34 +-
 .../configuration/CANOpenConfiguration.java        |   34 +-
 .../java/canopen/context/CANOpenDriverContext.java |   34 +-
 .../plc4x/java/canopen/field/CANOpenField.java     |   38 +-
 .../java/canopen/field/CANOpenFieldHandler.java    |   34 +-
 .../java/canopen/field/CANOpenHeartbeatField.java  |   57 +-
 .../plc4x/java/canopen/field/CANOpenNMTField.java  |   58 +-
 .../plc4x/java/canopen/field/CANOpenPDOField.java  |   63 +-
 .../plc4x/java/canopen/field/CANOpenSDOField.java  |   67 +-
 .../canopen/field/CANOpenSubscriptionField.java    |   34 +-
 .../plc4x/java/canopen/helper/CANOpenHelper.java   |   34 +-
 .../plc4x/java/canopen/helper/HeaderParser.java    |   34 +-
 .../plc4x/java/canopen/listener/Callback.java      |   34 +-
 .../java/canopen/listener/CompositeCallback.java   |   34 +-
 .../canopen/protocol/CANOpenProtocolLogic.java     |   39 +-
 .../protocol/CANOpenSubscriptionHandle.java        |   34 +-
 .../canopen/socketcan/SocketCANConversation.java   |   34 +-
 .../canopen/transport/CANOpenAbortException.java   |   34 +-
 .../plc4x/java/canopen/transport/CANOpenFrame.java |   34 +-
 .../canopen/transport/CANOpenFrameBuilder.java     |   34 +-
 .../transport/CANOpenFrameBuilderFactory.java      |   34 +-
 .../transport/socketcan/CANOpenSocketCANFrame.java |   34 +-
 .../socketcan/CANOpenSocketCANFrameBuilder.java    |   34 +-
 .../socketcan/io/CANOpenSocketCANFrameIO.java      |   34 +-
 .../plc4x/java/canopen/CANOpenDriverSDOIT.java     |   34 +-
 .../plc4x/java/canopen/CANOpenPayloadTest.java     |   34 +-
 .../plc4x/java/canopen/CANOpenWiresharkTest.java   |   34 +-
 .../java/org/apache/plc4x/java/canopen/Main.java   |   34 +-
 .../plc4x/java/canopen/ManualParserTest.java       |   34 +-
 .../java/canopen/field/CANOpenFieldSDOTest.java    |   34 +-
 .../java/canopen/field/CANOpenNMTFieldTest.java    |   34 +-
 .../java/canopen/field/CANOpenPDOFieldTest.java    |   34 +-
 .../java/canopen/field/CANOpenSDOFieldTest.java    |   34 +-
 plc4j/drivers/eip/pom.xml                          |   36 +-
 .../plc4x/java/eip/readwrite/field/EipField.java   |   80 +-
 .../eip/readwrite/protocol/EipProtocolLogic.java   |    5 +-
 .../java/eip/readwrite/EIPDriverTestsuite.java     |   34 +-
 .../readwrite/EIPParserSerializerTestsuite.java    |   34 +-
 plc4j/drivers/firmata/pom.xml                      |   36 +-
 .../java/firmata/readwrite/FirmataDriver.java      |   34 +-
 .../configuration/FirmataConfiguration.java        |   34 +-
 .../readwrite/context/FirmataDriverContext.java    |   34 +-
 .../java/firmata/readwrite/field/FirmataField.java |   34 +-
 .../readwrite/field/FirmataFieldAnalog.java        |   34 +-
 .../readwrite/field/FirmataFieldDigital.java       |   34 +-
 .../readwrite/field/FirmataFieldHandler.java       |   34 +-
 .../readwrite/model/FirmataSubscriptionHandle.java |   34 +-
 .../readwrite/protocol/FirmataProtocolLogic.java   |   34 +-
 .../java/firmata/readwrite/utils/FirmataUtils.java |   34 +-
 .../readwrite/FirmataParserSerializerTest.java     |   34 +-
 plc4j/drivers/knxnetip/pom.xml                     |    4 +-
 .../apache/plc4x/java/knxnetip/KnxNetIpDriver.java |   34 +-
 .../configuration/KnxNetIpConfiguration.java       |   34 +-
 .../knxnetip/context/KnxNetIpDriverContext.java    |   34 +-
 .../plc4x/java/knxnetip/ets5/Ets5Parser.java       |   70 +-
 .../java/knxnetip/ets5/model/AddressType.java      |   34 +-
 .../plc4x/java/knxnetip/ets5/model/Ets5Model.java  |   34 +-
 .../plc4x/java/knxnetip/ets5/model/Function.java   |   34 +-
 .../java/knxnetip/ets5/model/GroupAddress.java     |   34 +-
 .../plc4x/java/knxnetip/field/KnxNetIpField.java   |   34 +-
 .../java/knxnetip/field/KnxNetIpFieldHandler.java  |   34 +-
 .../knxnetip/model/KnxNetIpSubscriptionHandle.java |   34 +-
 .../knxnetip/protocol/KnxNetIpProtocolLogic.java   |   34 +-
 .../plc4x/java/knxnetip/utils/KnxHelper.java       |   34 +-
 .../knxnetip/KnxNetIpParserSerializerTest.java     |   35 +-
 .../apache/plc4x/java/knxnetip/ManualKnxNetIp.java |   34 +-
 .../knxnetip/src/test/resources/logback.xml        |   28 +-
 .../org/apache/plc4x/java/mock/MockDriver.java     |   34 +-
 .../plc4x/java/mock/connection/MockConnection.java |   34 +-
 .../plc4x/java/mock/connection/MockDevice.java     |    1 -
 .../java/mock/connection/tcp/TcpHexDumper.java     |   32 +-
 .../apache/plc4x/java/mock/field/MockField.java    |   38 +-
 .../plc4x/java/mock/field/MockFieldHandler.java    |    1 -
 .../apache/plc4x/java/mock/field/MockPlcValue.java |   37 +-
 .../org/apache/plc4x/java/mock/field/MockType.java |   34 +-
 .../plc4x/java/mock/field/MockValueHandler.java    |   34 +-
 .../mock/protocol/Plc4XSupportedDataTypes.java     |   32 +-
 .../org/apache/plc4x/java/mock/util/Assert.java    |   32 +-
 .../org/apache/plc4x/java/mock/util/HexUtil.java   |   33 +-
 plc4j/drivers/modbus/pom.xml                       |    4 +-
 .../org/apache/plc4x/java/modbus/ModbusDriver.java |   34 +-
 .../java/modbus/config/ModbusConfiguration.java    |   34 +-
 .../java/modbus/field/ModbusExtendedRegister.java  |   32 +-
 .../plc4x/java/modbus/field/ModbusField.java       |   77 +-
 .../plc4x/java/modbus/field/ModbusFieldCoil.java   |   32 +-
 .../modbus/field/ModbusFieldDiscreteInput.java     |   32 +-
 .../java/modbus/field/ModbusFieldHandler.java      |   34 +-
 .../modbus/field/ModbusFieldHoldingRegister.java   |   32 +-
 .../modbus/field/ModbusFieldInputRegister.java     |   32 +-
 .../java/modbus/protocol/ModbusProtocolLogic.java  |   34 +-
 .../plc4x/java/modbus/ManualModbusDriverTest.java  |   34 +-
 .../apache/plc4x/java/modbus/ModbusDriverIT.java   |   34 +-
 .../apache/plc4x/java/modbus/ModbusEncodeTest.java |   34 +-
 .../plc4x/java/modbus/ModbusFieldDataTypeTest.java |   34 +-
 .../apache/plc4x/java/modbus/ModbusFieldTest.java  |   34 +-
 .../java/modbus/ModbusParserSerializerTest.java    |   34 +-
 plc4j/drivers/opcua/pom.xml                        |   84 +-
 .../apache/plc4x/java/opcua/OpcuaPlcDriver.java    |  267 ++-
 .../java/opcua/config/OpcuaConfiguration.java      |  228 ++
 .../opcua/connection/BaseOpcuaPlcConnection.java   |  103 -
 .../opcua/connection/OpcuaConnectionFactory.java   |   38 -
 .../opcua/connection/OpcuaTcpPlcConnection.java    |  919 --------
 .../java/opcua/context/CertificateGenerator.java   |  125 ++
 .../java/opcua/context/CertificateKeyPair.java     |   43 +
 .../java/opcua/context/EncryptionHandler.java      |  249 ++
 .../plc4x/java/opcua/context/SecureChannel.java    | 1204 ++++++++++
 .../context/SecureChannelTransactionManager.java   |  115 +
 .../apache/plc4x/java/opcua/field/OpcuaField.java  |  142 ++
 .../java/opcua/field/OpcuaPlcFieldHandler.java     |   36 +
 .../plc4x/java/opcua/optimizer/OpcuaOptimizer.java |   57 +
 .../plc4x/java/opcua/protocol/OpcuaField.java      |  153 --
 .../java/opcua/protocol/OpcuaPlcFieldHandler.java  |   37 -
 .../java/opcua/protocol/OpcuaProtocolLogic.java    |  905 ++++++++
 .../opcua/protocol/OpcuaSubscriptionHandle.java    |  489 ++++
 .../opcua/protocol/OpcuaSubsriptionHandle.java     |   92 -
 .../apache/plc4x/java/opcua/ManualPLC4XOpcua.java  |  176 +-
 .../plc4x/java/opcua/OpcuaPlcDriverTest.java       |   82 +-
 .../org/apache/plc4x/java/opcua/UtilsTest.java     |   35 +-
 .../connection/OpcuaTcpPlcConnectionTest.java      |   74 +-
 .../plc4x/java/opcua/protocol/OpcuaFieldTest.java  |   36 +-
 .../opcua/protocol/OpcuaPlcFieldHandlerTest.java   |   34 +-
 .../protocol/OpcuaSubscriptionHandleTest.java      |  545 ++++-
 .../opcua/src/test/resources/log4j.properties      |   24 +
 plc4j/drivers/opcua/src/test/resources/logback.xml |   30 +
 plc4j/drivers/pom.xml                              |    1 +
 plc4j/drivers/profinet/pom.xml                     |  203 ++
 .../apache/plc4x/java/profinet/ProfinetDriver.java |  151 ++
 .../profinet/config/ProfinetConfiguration.java     |   53 +
 .../profinet/context/ProfinetDiscoveryContext.java |   25 +
 .../profinet/discovery/ProfinetPlcDiscoverer.java  |  261 +++
 .../plc4x/java/profinet/field/ProfinetField.java   |   30 +
 .../java/profinet/field/ProfinetFieldHandler.java  |   31 +
 .../profinet/protocol/ProfinetDiscoveryLogic.java  |   32 +
 .../profinet/protocol/ProfinetProtocolLogic.java   |   62 +
 .../plc4x/java/profinet/utils/StaticHelper.java    |   34 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |   19 +
 plc4j/drivers/s7/pom.xml                           |    4 +-
 .../apache/plc4x/java/s7/readwrite/S7Driver.java   |   34 +-
 .../readwrite/configuration/S7Configuration.java   |    1 -
 .../java/s7/readwrite/context/S7DriverContext.java |   34 +-
 .../plc4x/java/s7/readwrite/field/S7Field.java     |  137 +-
 .../java/s7/readwrite/field/S7PlcFieldHandler.java |   34 +-
 .../java/s7/readwrite/field/S7StringField.java     |   65 +-
 .../optimizer/DefaultS7MessageProcessor.java       |   34 +-
 .../s7/readwrite/optimizer/S7MessageProcessor.java |   34 +-
 .../java/s7/readwrite/optimizer/S7Optimizer.java   |   34 +-
 .../s7/readwrite/protocol/S7ProtocolLogic.java     |  151 +-
 .../java/s7/readwrite/types/S7ControllerType.java  |   34 +-
 .../java/s7/readwrite/utils/S7TsapIdEncoder.java   |   34 +-
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |   34 +-
 .../s7/src/test/java/BenchmarkGeneratedS7.java     |   32 +-
 .../plc4x/java/s7/readwrite/DatatypesTest.java     |   34 +-
 .../java/s7/readwrite/ManualS7DriverTest.java      |   34 +-
 .../apache/plc4x/java/s7/readwrite/S7DriverIT.java |   34 +-
 .../java/s7/readwrite/S7ParserSerializerTest.java  |   34 +-
 .../plc4x/java/s7/readwrite/field/S7FieldTest.java |   34 +-
 .../plc4x/java/s7/readwrite/issues/PLC4X272.java   |   34 +-
 plc4j/drivers/s7/src/test/resources/logback.xml    |   28 +-
 plc4j/drivers/simulated/pom.xml                    |    4 +-
 .../plc4x/java/simulated/SimulatedDriver.java      |   32 +-
 .../simulated/connection/SimulatedConnection.java  |  107 +-
 .../java/simulated/connection/SimulatedDevice.java |   88 +-
 .../plc4x/java/simulated/field/SimulatedField.java |   36 +-
 .../simulated/field/SimulatedFieldHandler.java     |   33 +-
 .../java/simulated/types/SimulatedFieldType.java   |   35 +-
 .../plc4x/java/simulated/utils/StaticHelper.java   |   38 +-
 .../plc4x/java/simulated/SimulatedDriverTest.java  |   33 +-
 .../connection/SimulatedConnectionTest.java        |   54 +-
 .../simulated/connection/SimulatedDeviceTest.java  |   32 +-
 .../simulated/field/SimularedFieldHandlerTest.java |   33 +-
 .../java/simulated/field/SimulatedFieldTest.java   |   33 +-
 plc4j/examples/hello-cloud-azure/pom.xml           |   28 +-
 .../java/examples/cloud/azure/CliOptions.java      |   33 +-
 .../cloud/azure/S7PlcToAzureIoTHubSample.java      |   32 +-
 plc4j/examples/hello-cloud-google/README.md        |   28 +-
 plc4j/examples/hello-cloud-google/pom.xml          |   28 +-
 .../java/examples/cloud/google/CliOptions.java     |   33 +-
 .../cloud/google/S7PlcToGoogleIoTCoreSample.java   |   32 +-
 .../src/main/resources/logback.xml                 |   28 +-
 plc4j/examples/hello-connectivity-kafka/pom.xml    |   28 +-
 plc4j/examples/hello-connectivity-kafka/server.sh  |    0
 .../connectivity/kafka/KafkaConnector.java         |   32 +-
 .../connectivity/kafka/model/Configuration.java    |   32 +-
 .../connectivity/kafka/model/KafkaConfig.java      |   32 +-
 .../connectivity/kafka/model/PlcConfig.java        |   32 +-
 .../connectivity/kafka/model/PlcFieldConfig.java   |   32 +-
 .../connectivity/kafka/model/PlcMemoryBlock.java   |   32 +-
 .../src/main/resources/logback.xml                 |   28 +-
 .../hello-connectivity-mqtt/mqtt-connector.yml     |    2 +-
 .../examples/connectivity/mqtt/MqttConnector.java  |   33 +-
 .../connectivity/mqtt/model/Configuration.java     |   32 +-
 .../connectivity/mqtt/model/MqttConfig.java        |   32 +-
 .../connectivity/mqtt/model/PlcConfig.java         |   32 +-
 .../connectivity/mqtt/model/PlcFieldConfig.java    |   32 +-
 .../connectivity/mqtt/model/PlcMemoryBlock.java    |   32 +-
 .../src/main/resources/logback.xml                 |   28 +-
 plc4j/examples/hello-discovery/pom.xml             |   79 +
 .../java/examples/hellodiscovery/CliOptions.java   |   72 +
 .../examples/hellodiscovery/HelloDiscovery.java    |   72 +
 .../hello-discovery/src/main/resources/logback.xml |   36 +
 .../hello-influx-data-collection/README.adoc       |    0
 .../example.properties                             |    0
 .../examples/hello-influx-data-collection/pom.xml  |   96 +
 .../java/examples/helloinflux/HelloInflux.java     |  160 ++
 .../src/main/resources/logback.xml                 |   34 +
 plc4j/examples/hello-integration-edgent/pom.xml    |   28 +-
 .../examples/integration/edgent/CliOptions.java    |   33 +-
 .../examples/integration/edgent/PlcLogger.java     |   32 +-
 .../src/main/resources/logback.xml                 |   28 +-
 plc4j/examples/hello-integration-iotdb/pom.xml     |   28 +-
 .../examples/integration/iotdb/CliOptions.java     |   33 +-
 .../examples/integration/iotdb/IIoTDBWriter.java   |    1 -
 .../integration/iotdb/IoTDBWriterWithJDBC.java     |   40 +-
 .../integration/iotdb/IoTDBWriterWithSession.java  |    1 -
 .../java/examples/integration/iotdb/PlcLogger.java |   32 +-
 .../src/main/resources/logback.xml                 |   28 +-
 .../hello-kafka-connect-elasticsearch/README.md    |   28 +-
 .../elasticsearch-sink.properties                  |    1 -
 .../elasticsearch-worker.properties                |    1 -
 .../kafka-connect-config/plc4x-worker.properties   |    1 -
 .../plc4x/java/examples/helloopm/HelloOpm.java     |   33 +-
 .../hello-opm/src/main/resources/logback.xml       |   28 +-
 .../hello-storage-elasticsearch/README.adoc        |   66 -
 plc4j/examples/hello-storage-elasticsearch/pom.xml |  168 --
 .../examples/storage/elasticsearch/CliOptions.java |   82 -
 .../elasticsearch/ElasticsearchStorage.java        |  270 ---
 .../src/main/resources/log4j2.xml                  |   35 -
 .../src/main/resources/logback.xml                 |   40 -
 plc4j/examples/hello-webapp/webapp/pom.xml         |    1 -
 .../plc4x/examples/watertank/Application.java      |   33 +-
 .../watertank/service/WaterTankService.java        |   75 +-
 .../java/org/springframework/core/JdkVersion.java  |   34 +-
 .../resources/META-INF/flex/services-config.xml    |   28 +-
 .../src/main/resources/application.properties      |    1 -
 .../webapp/src/main/webapp/WEB-INF/web.xml         |   28 +-
 plc4j/examples/hello-webservice/pom.xml            |   28 +-
 .../java/examples/hellowebservice/CliOptions.java  |   33 +-
 .../examples/hellowebservice/HelloWebservice.java  |   34 +-
 .../src/main/resources/logback.xml                 |   28 +-
 .../hello-world-plc4x-subscription/pom.xml         |   28 +-
 .../helloplc4x/subscription/CliOptions.java        |   33 +-
 .../subscription/HelloPlc4xSubscription.java       |   34 +-
 .../src/main/resources/logback.xml                 |   28 +-
 plc4j/examples/hello-world-plc4x-write/pom.xml     |   28 +-
 .../java/examples/helloplc4x/write/CliOptions.java |   33 +-
 .../examples/helloplc4x/write/HelloPlc4xWrite.java |   34 +-
 .../src/main/resources/logback.xml                 |   28 +-
 plc4j/examples/hello-world-plc4x/pom.xml           |   28 +-
 .../plc4x/java/examples/helloplc4x/CliOptions.java |   33 +-
 .../plc4x/java/examples/helloplc4x/HelloPlc4x.java |   54 +-
 .../src/main/resources/logback.xml                 |   28 +-
 plc4j/examples/poll-loop/pom.xml                   |   28 +-
 .../apache/plc4x/java/examples/pollloop/Main.java  |   33 +-
 .../plc4x/java/examples/pollloop/PollLoop.java     |   33 +-
 plc4j/examples/pom.xml                             |   10 +-
 plc4j/integrations/apache-calcite/pom.xml          |   28 +-
 .../main/java/org/apache/plc4x/Plc4xBaseTable.java |   34 +-
 .../main/java/org/apache/plc4x/Plc4xSchema.java    |   34 +-
 .../java/org/apache/plc4x/Plc4xSchemaFactory.java  |   34 +-
 .../java/org/apache/plc4x/Plc4xStreamTable.java    |   34 +-
 .../src/main/java/org/apache/plc4x/Plc4xTable.java |   34 +-
 .../java/org/apache/plc4x/DriverManagerTest.java   |   34 +-
 .../java/org/apache/plc4x/Plc4XBaseTableTest.java  |   34 +-
 .../org/apache/plc4x/Plc4xSchemaFactoryTest.java   |   34 +-
 .../apache-calcite/src/test/resources/logback.xml  |   28 +-
 .../apache-calcite/src/test/resources/model.json   |   16 -
 plc4j/integrations/apache-camel/pom.xml            |   28 +-
 .../java/org/apache/plc4x/camel/Constants.java     |   34 +-
 .../org/apache/plc4x/camel/Plc4XComponent.java     |   60 +-
 .../java/org/apache/plc4x/camel/Plc4XConsumer.java |  184 +-
 .../java/org/apache/plc4x/camel/Plc4XEndpoint.java |   87 +-
 .../apache/plc4x/camel/Plc4XPollingConsumer.java   |   32 +-
 .../java/org/apache/plc4x/camel/Plc4XProducer.java |   34 +-
 .../main/java/org/apache/plc4x/camel/TagData.java  |   34 +-
 .../services/org/apache/camel/component/plc4x      |   36 +-
 .../java/org/apache/plc4x/camel/ConstantsTest.java |   34 +-
 .../java/org/apache/plc4x/camel/ManualTest.java    |   32 +-
 .../java/org/apache/plc4x/camel/MockDriver.java    |   34 +-
 .../org/apache/plc4x/camel/Plc4XComponentTest.java |   34 +-
 .../org/apache/plc4x/camel/Plc4XConsumerTest.java  |   32 +-
 .../org/apache/plc4x/camel/Plc4XEndpointTest.java  |   36 +-
 .../plc4x/camel/Plc4XPollingConsumerTest.java      |   32 +-
 .../org/apache/plc4x/camel/Plc4XProducerTest.java  |   34 +-
 .../apache-camel/src/test/resources/logback.xml    |   28 +-
 plc4j/integrations/apache-edgent/pom.xml           |   28 +-
 .../apache/plc4x/edgent/PlcConnectionAdapter.java  |   34 +-
 .../java/org/apache/plc4x/edgent/PlcFunctions.java |   34 +-
 .../java/org/apache/plc4x/edgent/package-info.java |   34 +-
 .../plc4x/edgent/PlcConnectionAdapterTest.java     |   34 +-
 .../org/apache/plc4x/edgent/PlcFunctionsTest.java  |   34 +-
 plc4j/integrations/apache-kafka/pom.xml            |   33 +-
 .../org/apache/plc4x/kafka/Plc4xSinkConnector.java |   34 +-
 .../java/org/apache/plc4x/kafka/Plc4xSinkTask.java |   34 +-
 .../apache/plc4x/kafka/Plc4xSourceConnector.java   |   34 +-
 .../org/apache/plc4x/kafka/Plc4xSourceTask.java    |  261 ++-
 .../org/apache/plc4x/kafka/config/Constants.java   |   34 +-
 .../java/org/apache/plc4x/kafka/config/Field.java  |   34 +-
 .../java/org/apache/plc4x/kafka/config/Job.java    |   34 +-
 .../apache/plc4x/kafka/config/JobReference.java    |   34 +-
 .../java/org/apache/plc4x/kafka/config/Sink.java   |   36 +-
 .../org/apache/plc4x/kafka/config/SinkConfig.java  |   34 +-
 .../java/org/apache/plc4x/kafka/config/Source.java |   36 +-
 .../apache/plc4x/kafka/config/SourceConfig.java    |   34 +-
 .../org/apache/plc4x/kafka/util/VersionUtil.java   |   34 +-
 .../apache/plc4x/kafka/config/SinkConfigTest.java  |   34 +-
 .../apache/plc4x/kafka/config/SinkTaskTest.java    |   34 +-
 .../plc4x/kafka/config/SourceConfigTest.java       |   34 +-
 .../apache/plc4x/kafka/config/SourceTaskTest.java  |   36 +-
 .../properties/source_task_no_error.properties     |    2 +-
 .../apache-nifi/nifi-plc4x-nar/pom.xml             |   30 +-
 .../apache-nifi/nifi-plc4x-processors/pom.xml      |   30 +-
 .../org/apache/plc4x/nifi/BasePlc4xProcessor.java  |   32 +-
 .../org/apache/plc4x/nifi/Plc4xSinkProcessor.java  |   32 +-
 .../apache/plc4x/nifi/Plc4xSourceProcessor.java    |   32 +-
 .../services/org.apache.nifi.processor.Processor   |    1 -
 .../plc4x4nifi/Plc4xSinkProcessorTest.java         |    1 -
 .../plc4x4nifi/Plc4xSourceProcessorTest.java       |   32 +-
 plc4j/integrations/apache-nifi/pom.xml             |   30 +-
 plc4j/integrations/logstash-plugin/README.md       |   70 -
 plc4j/integrations/logstash-plugin/pom.xml         |  302 ---
 .../src/gem/lib/logstash-input-plc4x_jars.rb       |   22 -
 .../src/gem/lib/logstash/inputs/plc4x.rb           |   29 -
 .../src/gem/logstash-input-plc4x.gemspec           |   42 -
 .../main/java/org/apache/plc4x/logstash/Plc4x.java |  171 --
 .../org/apache/plc4x/logstash/Plc4xInputTest.java  |   75 -
 plc4j/integrations/opcua-server/pom.xml            |   34 +-
 .../apache/plc4x/java/opcuaserver/OPCUAServer.java |    1 -
 .../opcuaserver/backend/Plc4xCommunication.java    |    3 +-
 .../java/opcuaserver/backend/Plc4xNamespace.java   |    1 -
 .../opcuaserver/configuration/Configuration.java   |    1 -
 .../configuration/DeviceConfiguration.java         |    1 -
 .../configuration/PasswordConfiguration.java       |    1 -
 .../plc4x/java/opcuaserver/configuration/Tag.java  |    1 -
 .../plc4x/java/opcuaserver/configuration/User.java |    1 -
 .../opcuaserver/context/CertificateGenerator.java  |   19 +-
 .../opcuaserver/context/CertificateKeyPair.java    |    1 -
 .../opcua-server/src/main/resources/config.yml     |   31 +-
 .../opcua-server/src/main/resources/logback.xml    |   28 +-
 .../plc4x/java/opcuaserver/OpcuaPlcDriverTest.java |   34 +-
 .../apache/plc4x/java/opcuaserver/UtilsTest.java   |   40 -
 .../opcua-server/src/test/resources/config.yml     |   31 +-
 plc4j/integrations/pom.xml                         |   12 +-
 plc4j/osgi/pom.xml                                 |   28 +-
 plc4j/pom.xml                                      |   28 +-
 plc4j/protocols/ads/LINKS.md                       |   28 +-
 plc4j/protocols/ads/pom.xml                        |   28 +-
 .../java/ads/api/commands/AdsAbstractRequest.java  |   32 +-
 .../java/ads/api/commands/AdsAbstractResponse.java |   32 +-
 .../commands/AdsAddDeviceNotificationRequest.java  |   32 +-
 .../commands/AdsAddDeviceNotificationResponse.java |   32 +-
 .../java/ads/api/commands/AdsCommandType.java      |   32 +-
 .../AdsDeleteDeviceNotificationRequest.java        |   32 +-
 .../AdsDeleteDeviceNotificationResponse.java       |   32 +-
 .../api/commands/AdsDeviceNotificationRequest.java |   32 +-
 .../commands/AdsDeviceNotificationResponse.java    |   32 +-
 .../ads/api/commands/AdsReadDeviceInfoRequest.java |   32 +-
 .../api/commands/AdsReadDeviceInfoResponse.java    |   32 +-
 .../java/ads/api/commands/AdsReadRequest.java      |   32 +-
 .../java/ads/api/commands/AdsReadResponse.java     |   32 +-
 .../java/ads/api/commands/AdsReadStateRequest.java |   32 +-
 .../ads/api/commands/AdsReadStateResponse.java     |   32 +-
 .../java/ads/api/commands/AdsReadWriteRequest.java |   32 +-
 .../ads/api/commands/AdsReadWriteResponse.java     |   32 +-
 .../ads/api/commands/AdsWriteControlRequest.java   |   32 +-
 .../ads/api/commands/AdsWriteControlResponse.java  |   32 +-
 .../java/ads/api/commands/AdsWriteRequest.java     |   32 +-
 .../java/ads/api/commands/AdsWriteResponse.java    |   32 +-
 .../java/ads/api/commands/UnknownCommand.java      |   32 +-
 .../plc4x/java/ads/api/commands/package-info.java  |   32 +-
 .../api/commands/types/AdsNotificationSample.java  |   32 +-
 .../java/ads/api/commands/types/AdsReturnCode.java |   32 +-
 .../ads/api/commands/types/AdsStampHeader.java     |   32 +-
 .../java/ads/api/commands/types/AdsState.java      |   32 +-
 .../java/ads/api/commands/types/CycleTime.java     |   32 +-
 .../plc4x/java/ads/api/commands/types/Data.java    |   32 +-
 .../plc4x/java/ads/api/commands/types/Device.java  |   32 +-
 .../java/ads/api/commands/types/DeviceState.java   |   32 +-
 .../java/ads/api/commands/types/IndexGroup.java    |   32 +-
 .../java/ads/api/commands/types/IndexOffset.java   |   32 +-
 .../plc4x/java/ads/api/commands/types/Length.java  |   32 +-
 .../java/ads/api/commands/types/MajorVersion.java  |   32 +-
 .../java/ads/api/commands/types/MaxDelay.java      |   32 +-
 .../java/ads/api/commands/types/MinorVersion.java  |   32 +-
 .../ads/api/commands/types/NotificationHandle.java |   32 +-
 .../java/ads/api/commands/types/ReadLength.java    |   32 +-
 .../plc4x/java/ads/api/commands/types/Result.java  |   32 +-
 .../java/ads/api/commands/types/SampleSize.java    |   32 +-
 .../plc4x/java/ads/api/commands/types/Samples.java |   32 +-
 .../plc4x/java/ads/api/commands/types/Stamps.java  |   32 +-
 .../java/ads/api/commands/types/TimeStamp.java     |   32 +-
 .../ads/api/commands/types/TransmissionMode.java   |   32 +-
 .../plc4x/java/ads/api/commands/types/Version.java |   32 +-
 .../java/ads/api/commands/types/WriteLength.java   |   32 +-
 .../java/ads/api/commands/types/package-info.java  |   32 +-
 .../apache/plc4x/java/ads/api/generic/AdsData.java |   32 +-
 .../plc4x/java/ads/api/generic/AmsHeader.java      |   32 +-
 .../plc4x/java/ads/api/generic/AmsPacket.java      |   32 +-
 .../plc4x/java/ads/api/generic/package-info.java   |   32 +-
 .../plc4x/java/ads/api/generic/types/AmsError.java |   32 +-
 .../plc4x/java/ads/api/generic/types/AmsNetId.java |   32 +-
 .../plc4x/java/ads/api/generic/types/AmsPort.java  |   32 +-
 .../plc4x/java/ads/api/generic/types/Command.java  |   32 +-
 .../java/ads/api/generic/types/DataLength.java     |   32 +-
 .../plc4x/java/ads/api/generic/types/Invoke.java   |   32 +-
 .../plc4x/java/ads/api/generic/types/State.java    |   32 +-
 .../java/ads/api/generic/types/package-info.java   |   32 +-
 .../apache/plc4x/java/ads/api/package-info.java    |   32 +-
 .../ads/api/serial/AmsSerialAcknowledgeFrame.java  |   32 +-
 .../plc4x/java/ads/api/serial/AmsSerialFrame.java  |   32 +-
 .../java/ads/api/serial/AmsSerialResetFrame.java   |   32 +-
 .../plc4x/java/ads/api/serial/package-info.java    |   32 +-
 .../plc4x/java/ads/api/serial/types/CRC.java       |   32 +-
 .../java/ads/api/serial/types/FragmentNumber.java  |   32 +-
 .../java/ads/api/serial/types/MagicCookie.java     |   32 +-
 .../java/ads/api/serial/types/ReceiverAddress.java |   32 +-
 .../ads/api/serial/types/TransmitterAddress.java   |   32 +-
 .../plc4x/java/ads/api/serial/types/UserData.java  |   32 +-
 .../java/ads/api/serial/types/UserDataLength.java  |   32 +-
 .../java/ads/api/serial/types/package-info.java    |   32 +-
 .../plc4x/java/ads/api/tcp/AmsTCPPacket.java       |   32 +-
 .../plc4x/java/ads/api/tcp/AmsTcpHeader.java       |   32 +-
 .../plc4x/java/ads/api/tcp/package-info.java       |   32 +-
 .../plc4x/java/ads/api/tcp/types/TcpLength.java    |   32 +-
 .../plc4x/java/ads/api/tcp/types/UserData.java     |   32 +-
 .../plc4x/java/ads/api/tcp/types/package-info.java |   32 +-
 .../plc4x/java/ads/api/util/ByteBufSupplier.java   |   32 +-
 .../plc4x/java/ads/api/util/ByteReadable.java      |   32 +-
 .../apache/plc4x/java/ads/api/util/ByteValue.java  |   32 +-
 .../plc4x/java/ads/api/util/LengthSupplier.java    |   32 +-
 .../java/ads/api/util/UnsignedIntLEByteValue.java  |   32 +-
 .../ads/api/util/UnsignedShortLEByteValue.java     |   32 +-
 .../plc4x/java/ads/api/util/package-info.java      |   32 +-
 .../apache/plc4x/java/ads/model/AdsDataType.java   |   32 +-
 .../org/apache/plc4x/java/ads/model/AdsField.java  |   32 +-
 .../plc4x/java/ads/model/AdsPlcFieldHandler.java   |   32 +-
 .../java/ads/model/AdsSubscriptionHandle.java      |   34 +-
 .../plc4x/java/ads/model/DirectAdsField.java       |   32 +-
 .../plc4x/java/ads/model/SymbolicAdsField.java     |   32 +-
 .../apache/plc4x/java/ads/model/package-info.java  |   32 +-
 .../java/ads/protocol/Ads2PayloadProtocol.java     |   32 +-
 .../java/ads/protocol/Payload2SerialProtocol.java  |   32 +-
 .../java/ads/protocol/Payload2TcpProtocol.java     |   32 +-
 .../plc4x/java/ads/protocol/Plc4x2AdsProtocol.java |   32 +-
 .../java/ads/protocol/exception/AdsException.java  |   32 +-
 .../exception/AdsProtocolOverflowException.java    |   33 +-
 .../plc4x/java/ads/protocol/package-info.java      |   32 +-
 .../plc4x/java/ads/protocol/util/DigestUtil.java   |   32 +-
 .../ads/protocol/util/LittleEndianDecoder.java     |   32 +-
 .../ads/protocol/util/LittleEndianEncoder.java     |   32 +-
 .../protocol/util/SingleMessageRateLimiter.java    |   32 +-
 .../plc4x/java/ads/protocol/util/package-info.java |   32 +-
 .../util/LittleEndianDecoderSpecHurz.groovy        |   33 +-
 .../util/LittleEndianEncoderSpecHurz.groovy        |   33 +-
 .../java/org/apache/plc4x/java/ads/AdsDumper.java  |   32 +-
 .../apache/plc4x/java/ads/ManualPlc4XAdsTest.java  |   34 +-
 .../AdsDeviceNotificationResponseTest.java         |   33 +-
 .../ads/api/commands/CommandFactoryMethodTest.java |   32 +-
 .../commands/types/AdsNotificationSampleTest.java  |   32 +-
 .../ads/api/commands/types/AdsStampHeaderTest.java |   32 +-
 .../types/CommandTypesFactoryMethodTest.java       |   32 +-
 .../java/ads/api/commands/types/DeviceTest.java    |   32 +-
 .../java/ads/api/commands/types/LengthTest.java    |   32 +-
 .../ads/api/generic/GenericFactoryMethodTest.java  |   32 +-
 .../java/ads/api/generic/types/AmsErrorTest.java   |   32 +-
 .../java/ads/api/generic/types/AmsNetIdTest.java   |   32 +-
 .../java/ads/api/generic/types/AmsPortTest.java    |   32 +-
 .../java/ads/api/generic/types/CommandTest.java    |   32 +-
 .../types/GenericTypesFactoryMethodTest.java       |   32 +-
 .../java/ads/api/generic/types/StateTest.java      |   32 +-
 .../java/ads/api/generic/types/TcpLengthTest.java  |   32 +-
 .../ads/api/serial/SerialFactoryMethodTest.java    |   32 +-
 .../types/GenericTypesFactoryMethodTest.java       |   32 +-
 .../java/ads/api/tcp/TcpFactoryMethodTest.java     |   32 +-
 .../tcp/types/GenericTypesFactoryMethodTest.java   |   32 +-
 .../plc4x/java/ads/api/util/ByteValueTest.java     |   32 +-
 .../java/ads/model/AdsPlcFieldHandlerTest.java     |   33 +-
 .../plc4x/java/ads/model/DirectAdsFieldTest.java   |   32 +-
 .../java/ads/protocol/AbstractProtocolTest.java    |   32 +-
 .../java/ads/protocol/Ads2PayloadProtocolTest.java |   32 +-
 ...load2SerialProtocolExampleConversationTest.java |   32 +-
 .../ads/protocol/Payload2SerialProtocolTest.java   |   32 +-
 .../java/ads/protocol/Payload2TcpProtocolTest.java |   32 +-
 .../java/ads/protocol/Plc4x2AdsProtocolTest.java   |   32 +-
 .../java/ads/protocol/util/DigestUtilTest.java     |   32 +-
 plc4j/protocols/ads/src/test/resources/logback.xml |   28 +-
 plc4j/protocols/benchmarks/README.md               |   28 +-
 plc4j/protocols/benchmarks/pom.xml                 |    2 +-
 .../java/ads/protocol/ADSProtocolBenchmark.java    |   33 +-
 .../benchmarks/src/main/resources/logback.xml      |    2 +-
 .../java/org/apache/plc4x/java/deltav/PoCES.java   |   35 +-
 .../org/apache/plc4x/java/deltav/PoCInflux.java    |   33 +-
 plc4j/protocols/pom.xml                            |   28 +-
 plc4j/spi/pom.xml                                  |   33 +-
 .../apache/plc4x/java/spi/ConversationContext.java |    4 +-
 .../spi/GeneratedDriverByteToMessageCodec.java     |   14 +-
 .../apache/plc4x/java/spi/Plc4xNettyWrapper.java   |   21 +-
 .../apache/plc4x/java/spi/Plc4xProtocolBase.java   |    5 +-
 .../plc4x/java/spi/PlcMessageToMessageCodec.java   |    4 +-
 .../java/spi/configuration/Configuration.java      |   34 +-
 .../spi/configuration/ConfigurationFactory.java    |   15 +-
 .../ConfigurationParameterConverter.java           |   34 +-
 .../java/spi/configuration/HasConfiguration.java   |    1 -
 .../annotations/ConfigurationParameter.java        |    1 -
 .../annotations/ParameterConverter.java            |    1 -
 .../spi/configuration/annotations/Required.java    |    1 -
 .../annotations/defaults/BooleanDefaultValue.java  |    1 -
 .../annotations/defaults/DoubleDefaultValue.java   |    1 -
 .../annotations/defaults/FloatDefaultValue.java    |    1 -
 .../annotations/defaults/IntDefaultValue.java      |    1 -
 .../annotations/defaults/LongDefaultValue.java     |    1 -
 .../annotations/defaults/StringDefaultValue.java   |    1 -
 .../exceptions/ConfigurationException.java         |   34 +-
 .../java/spi/connection/AbstractPlcConnection.java |    4 +-
 .../spi/connection/ChannelExposingConnection.java  |   34 +-
 .../spi/connection/DefaultNettyPlcConnection.java  |   38 +-
 .../java/spi/connection/GeneratedDriverBase.java   |   14 +-
 .../connection/GeneratedProtocolMessageCodec.java  |    1 -
 .../java/spi/connection/NettyChannelFactory.java   |   11 +-
 .../spi/connection/ProtocolStackConfigurer.java    |    1 -
 .../connection/SingleProtocolStackConfigurer.java  |    1 -
 .../plc4x/java/spi/context/DriverContext.java      |   34 +-
 .../plc4x/java/spi/discovery/ActiveDiscovery.java  |   34 +-
 .../java/spi/discovery/BroadcastDiscovery.java     |   34 +-
 .../plc4x/java/spi/discovery/PassiveDiscovery.java |   34 +-
 .../java/spi/discovery/SupportsDiscovery.java      |   34 +-
 .../plc4x/java/spi/events/DiscoverEvent.java       |   22 +
 .../plc4x/java/spi/events/DiscoveredEvent.java     |   32 +
 .../plc4x/java/spi/generation/BufferCommons.java   |   33 +-
 .../java/spi/generation/EvaluationHelper.java      |    1 -
 .../apache/plc4x/java/spi/generation/Message.java  |    1 -
 .../plc4x/java/spi/generation/ParseException.java  |    1 -
 .../plc4x/java/spi/generation/ReadBuffer.java      |   33 +-
 .../java/spi/generation/ReadBufferByteBased.java   |   87 +-
 .../java/spi/generation/ReadBufferJsonBased.java   |  101 +-
 .../java/spi/generation/ReadBufferXmlBased.java    |   47 +-
 .../plc4x/java/spi/generation/StaticHelper.java    |   13 +-
 .../plc4x/java/spi/generation/WithReaderArgs.java  |   33 +-
 .../java/spi/generation/WithReaderWriterArgs.java  |   33 +-
 .../plc4x/java/spi/generation/WithWriterArgs.java  |   33 +-
 .../plc4x/java/spi/generation/WriteBuffer.java     |   33 +-
 .../java/spi/generation/WriteBufferByteBased.java  |   38 +-
 .../java/spi/generation/WriteBufferJsonBased.java  |   77 +-
 .../java/spi/generation/WriteBufferXmlBased.java   |   76 +-
 .../java/spi/generation/io/MyDefaultBitInput.java  |   33 +-
 .../java/spi/generation/io/MyDefaultBitOutput.java |   34 +-
 .../java/spi/internal/DefaultContextHandler.java   |   34 +-
 .../spi/internal/DefaultExpectRequestContext.java  |   34 +-
 .../spi/internal/DefaultSendRequestContext.java    |   33 +-
 .../java/spi/internal/HandlerRegistration.java     |    1 -
 .../java/spi/messages/DefaultPlcDiscoveryItem.java |  122 +
 .../spi/messages/DefaultPlcDiscoveryRequest.java   |   73 +
 .../spi/messages/DefaultPlcDiscoveryResponse.java  |   68 +
 .../java/spi/messages/DefaultPlcReadRequest.java   |   30 +-
 .../java/spi/messages/DefaultPlcReadResponse.java  |   32 +-
 .../spi/messages/DefaultPlcSubscriptionEvent.java  |    1 -
 .../messages/DefaultPlcSubscriptionRequest.java    |   34 +-
 .../messages/DefaultPlcSubscriptionResponse.java   |   25 +-
 .../messages/DefaultPlcUnsubscriptionRequest.java  |   14 +-
 .../messages/DefaultPlcUnsubscriptionResponse.java |    8 +-
 .../java/spi/messages/DefaultPlcWriteRequest.java  |   45 +-
 .../java/spi/messages/DefaultPlcWriteResponse.java |   33 +-
 .../plc4x/java/spi/messages/PlcDiscoverer.java     |   42 +
 .../java/spi/messages/utils/FieldValueItem.java    |   34 +-
 .../java/spi/messages/utils/ResponseItem.java      |   56 +-
 .../spi/model/DefaultPlcSubscriptionField.java     |    9 +
 .../spi/model/DefaultPlcSubscriptionHandle.java    |    6 +-
 .../plc4x/java/spi/optimizer/BaseOptimizer.java    |   36 +-
 .../java/spi/optimizer/SingleFieldOptimizer.java   |   34 +-
 .../spi/transaction/RequestTransactionManager.java |    3 +-
 .../apache/plc4x/java/spi/transport/Transport.java |   34 +-
 .../java/spi/transport/TransportConfiguration.java |   34 +-
 .../apache/plc4x/java/spi/utils/Serializable.java  |   26 +
 .../plc4x/java/spi/utils/XmlSerializable.java      |   27 -
 .../java/spi/values/IEC61131ValueHandler.java      |  105 +-
 .../org/apache/plc4x/java/spi/values/PlcBOOL.java  |  132 +-
 .../org/apache/plc4x/java/spi/values/PlcBYTE.java  |  141 +-
 .../plc4x/java/spi/values/PlcBigDecimal.java       |    9 +-
 .../plc4x/java/spi/values/PlcBigInteger.java       |    8 +-
 .../apache/plc4x/java/spi/values/PlcBitString.java |    1 -
 .../org/apache/plc4x/java/spi/values/PlcCHAR.java  |   64 +-
 .../org/apache/plc4x/java/spi/values/PlcDATE.java  |   14 +-
 .../plc4x/java/spi/values/PlcDATE_AND_TIME.java    |    9 +-
 .../org/apache/plc4x/java/spi/values/PlcDINT.java  |   99 +-
 .../org/apache/plc4x/java/spi/values/PlcDWORD.java |  149 +-
 .../apache/plc4x/java/spi/values/PlcIECValue.java  |   13 +-
 .../org/apache/plc4x/java/spi/values/PlcINT.java   |  100 +-
 .../org/apache/plc4x/java/spi/values/PlcLINT.java  |   94 +-
 .../org/apache/plc4x/java/spi/values/PlcLREAL.java |   73 +-
 .../org/apache/plc4x/java/spi/values/PlcLTIME.java |   42 +-
 .../org/apache/plc4x/java/spi/values/PlcLWORD.java |  145 +-
 .../org/apache/plc4x/java/spi/values/PlcList.java  |   33 +-
 .../org/apache/plc4x/java/spi/values/PlcNull.java  |   34 +-
 .../org/apache/plc4x/java/spi/values/PlcREAL.java  |   66 +-
 .../org/apache/plc4x/java/spi/values/PlcSINT.java  |  108 +-
 .../apache/plc4x/java/spi/values/PlcSTRING.java    |   14 +-
 .../plc4x/java/spi/values/PlcSimpleValue.java      |    1 -
 .../apache/plc4x/java/spi/values/PlcStruct.java    |   25 +-
 .../org/apache/plc4x/java/spi/values/PlcTIME.java  |   49 +-
 .../plc4x/java/spi/values/PlcTIME_OF_DAY.java      |    9 +-
 .../org/apache/plc4x/java/spi/values/PlcUDINT.java |  145 +-
 .../org/apache/plc4x/java/spi/values/PlcUINT.java  |  127 +-
 .../org/apache/plc4x/java/spi/values/PlcULINT.java |  145 +-
 .../org/apache/plc4x/java/spi/values/PlcUSINT.java |  142 +-
 .../plc4x/java/spi/values/PlcValueAdapter.java     |    4 +-
 .../apache/plc4x/java/spi/values/PlcValues.java    |   20 +-
 .../org/apache/plc4x/java/spi/values/PlcWCHAR.java |  137 +-
 .../org/apache/plc4x/java/spi/values/PlcWORD.java  |  125 +-
 .../internal/DefaultSendRequestContextTest.java    |   50 +-
 .../optimizer/RequestTransactionManagerTest.java   |    1 -
 .../java/spi/parser/ConnectionParserTest.java      |    1 -
 plc4j/tools/capture-replay/pom.xml                 |   28 +-
 .../java/utils/capturereplay/CaptureReplay.java    |   34 +-
 .../plc4x/java/utils/capturereplay/CliOptions.java |   33 +-
 .../capture-replay/src/main/resources/logback.xml  |   28 +-
 plc4j/tools/connection-cache/pom.xml               |   28 +-
 .../utils/connectionpool2/CachedDriverManager.java |    1 -
 .../connectionpool2/CachedDriverManagerMBean.java  |    1 -
 .../utils/connectionpool2/CachedPlcConnection.java |    6 +-
 .../utils/connectionpool2/CachedReadRequest.java   |    1 -
 .../connectionpool2/CachedReadRequestBuilder.java  |    1 -
 .../connectionpool2/PlcConnectionFactory.java      |    1 -
 .../utils/connectionpool2/PooledDriverManager.java |    1 -
 .../connectionpool2/PooledDriverManagerMBean.java  |    1 -
 .../connectionpool2/CachedDriverManagerIT.java     |    7 +-
 .../connectionpool2/CachedDriverManagerMT.java     |    5 +-
 .../connectionpool2/CachedDriverManagerTest.java   |    1 -
 .../connectionpool2/CachedPlcConnectionTest.java   |   44 +-
 .../connectionpool2/PooledDriverManagerTest.java   |    1 -
 .../src/test/resources/logback.xml                 |   28 +-
 plc4j/tools/connection-pool/pom.xml                |   28 +-
 .../plc4x/java/utils/connectionpool/PoolKey.java   |   33 +-
 .../java/utils/connectionpool/PoolKeyFactory.java  |   33 +-
 .../connectionpool/PooledPlcConnectionFactory.java |    1 -
 .../connectionpool/PooledPlcDriverManager.java     |    1 -
 .../utils/connectionpool/PoolKeyFactoryTest.java   |   33 +-
 .../utils/connectionpool/PooledDummyDriver.java    |    1 -
 .../connectionpool/PooledPlcDriverManagerTest.java |    1 -
 .../connection-pool/src/test/resources/logback.xml |   30 +-
 plc4j/tools/opm/pom.xml                            |    2 +-
 .../org/apache/plc4x/java/opm/AliasRegistry.java   |    1 -
 .../org/apache/plc4x/java/opm/OPMException.java    |   33 +-
 .../java/org/apache/plc4x/java/opm/OpmUtils.java   |   33 +-
 .../java/org/apache/plc4x/java/opm/PlcEntity.java  |   33 +-
 .../plc4x/java/opm/PlcEntityInterceptor.java       |    1 -
 .../apache/plc4x/java/opm/PlcEntityManager.java    |   33 +-
 .../java/org/apache/plc4x/java/opm/PlcField.java   |   33 +-
 .../apache/plc4x/java/opm/SimpleAliasRegistry.java |    1 -
 plc4j/tools/opm/src/site/site.xml                  |   32 +-
 .../apache/plc4x/java/opm/ConnectedEntityTest.java |    1 -
 .../apache/plc4x/java/opm/OPMExceptionTest.java    |   33 +-
 .../org/apache/plc4x/java/opm/OpmUtilsTest.java    |    1 -
 .../plc4x/java/opm/PlcEntityInterceptorTest.java   |    1 -
 .../java/opm/PlcEntityManagerComplexTest.java      |   33 +-
 .../plc4x/java/opm/PlcEntityManagerTest.java       |    1 -
 .../plc4x/java/opm/SimpleAliasRegistryTest.java    |    1 -
 plc4j/tools/opm/src/test/resources/logback.xml     |    2 +-
 plc4j/tools/pom.xml                                |   28 +-
 plc4j/tools/scraper/README.md                      |   28 +-
 plc4j/tools/scraper/pom.xml                        |   44 +-
 .../apache/plc4x/java/scraper/ResultHandler.java   |    1 -
 .../org/apache/plc4x/java/scraper/ScrapeJob.java   |    1 -
 .../apache/plc4x/java/scraper/ScrapeJobImpl.java   |    1 -
 .../org/apache/plc4x/java/scraper/Scraper.java     |    1 -
 .../org/apache/plc4x/java/scraper/ScraperImpl.java |    1 -
 .../org/apache/plc4x/java/scraper/ScraperTask.java |    1 -
 .../apache/plc4x/java/scraper/ScraperTaskImpl.java |    1 -
 .../java/scraper/config/JobConfiguration.java      |    1 -
 .../config/JobConfigurationClassicImpl.java        |    1 -
 .../config/JobConfigurationClassicImplBuilder.java |    1 -
 .../java/scraper/config/JobConfigurationImpl.java  |    1 -
 .../java/scraper/config/ScraperConfiguration.java  |    1 -
 .../config/ScraperConfigurationClassicImpl.java    |    1 -
 .../ScraperConfigurationClassicImplBuilder.java    |    1 -
 .../JobConfigurationTriggeredImpl.java             |    1 -
 .../JobConfigurationTriggeredImplBuilder.java      |    1 -
 .../ScraperConfigurationTriggeredImpl.java         |    1 -
 .../ScraperConfigurationTriggeredImplBuilder.java  |    1 -
 .../exception/ScraperConfigurationException.java   |    1 -
 .../java/scraper/exception/ScraperException.java   |    1 -
 .../triggeredscraper/TriggeredScrapeJobImpl.java   |    1 -
 .../triggeredscraper/TriggeredScraperImpl.java     |    1 -
 .../triggeredscraper/TriggeredScraperMBean.java    |    1 -
 .../triggeredscraper/TriggeredScraperTask.java     |    1 -
 .../TriggeredScraperTaskMBean.java                 |    1 -
 .../triggerhandler/TriggerConfiguration.java       |    3 +-
 .../scraper/util/PercentageAboveThreshold.java     |    1 -
 .../apache/plc4x/java/s7/ManualS7PlcDriverMT.java  |    4 +-
 .../java/scraper/ScraperConfigurationTest.java     |    1 -
 .../apache/plc4x/java/scraper/ScraperRunner.java   |    1 -
 .../apache/plc4x/java/scraper/ScraperTaskTest.java |    1 -
 .../org/apache/plc4x/java/scraper/ScraperTest.java |    1 -
 .../plc4x/java/scraper/TriggeredScraperRunner.java |    1 -
 .../java/scraper/TriggeredScraperRunnerModbus.java |    1 -
 .../config/ScraperConfigurationBuilderTest.java    |    1 -
 .../triggeredscraper/TriggeredScraperImplTest.java |   64 +-
 .../triggerhandler/TriggerConfigurationTest.java   |    1 -
 .../scraper/src/test/resources/logback-test.xml    |   32 +-
 plc4j/tools/scraper/src/test/resources/logback.xml |   32 +-
 plc4j/transports/pcap-replay/pom.xml               |   28 +-
 .../pcapreplay/PcapReplayChannelFactory.java       |   34 +-
 .../transport/pcapreplay/PcapReplayTransport.java  |   34 +-
 .../PcapReplayTransportConfiguration.java          |   34 +-
 .../org.apache.plc4x.java.spi.transport.Transport  |    1 -
 plc4j/transports/pcap-shared/pom.xml               |   28 +-
 .../transport/pcap/PcapTransportConfiguration.java |   34 +-
 plc4j/transports/pom.xml                           |   28 +-
 plc4j/transports/raw-socket/pom.xml                |   28 +-
 .../rawsocket/RawSocketChannelFactory.java         |   34 +-
 .../transport/rawsocket/RawSocketTransport.java    |   38 +-
 .../rawsocket/RawSocketTransportConfiguration.java |   34 +-
 .../org.apache.plc4x.java.spi.transport.Transport  |    1 -
 plc4j/transports/serial/pom.xml                    |   28 +-
 .../plc4x/java/transport/serial/SerialChannel.java |    7 +-
 .../java/transport/serial/SerialChannelConfig.java |   34 +-
 .../transport/serial/SerialChannelFactory.java     |   34 +-
 .../transport/serial/SerialChannelHandler.java     |    1 -
 .../transport/serial/SerialChannelOptions.java     |   34 +-
 .../transport/serial/SerialPollingSelector.java    |    1 -
 .../java/transport/serial/SerialSelectionKey.java  |    1 -
 .../transport/serial/SerialSelectorProvider.java   |    1 -
 .../java/transport/serial/SerialSocketAddress.java |    1 -
 .../java/transport/serial/SerialSocketChannel.java |    1 -
 .../java/transport/serial/SerialTransport.java     |   34 +-
 .../serial/SerialTransportConfiguration.java       |   34 +-
 .../org.apache.plc4x.java.spi.transport.Transport  |    1 -
 .../base/connection/SerialChannelFactoryTest.java  |    1 -
 plc4j/transports/socketcan/pom.xml                 |   28 +-
 .../socketcan/CANTransportConfiguration.java       |   34 +-
 .../socketcan/SocketCANChannelFactory.java         |   34 +-
 .../transport/socketcan/SocketCANTransport.java    |   34 +-
 .../socketcan/netty/SocketCANChannel.java          |    1 -
 .../socketcan/netty/SocketCANChannelConfig.java    |   34 +-
 .../socketcan/netty/address/SocketCANAddress.java  |   34 +-
 .../org.apache.plc4x.java.spi.transport.Transport  |    1 -
 plc4j/transports/tcp/pom.xml                       |   28 +-
 .../java/transport/tcp/TcpChannelFactory.java      |   34 +-
 .../plc4x/java/transport/tcp/TcpTransport.java     |   34 +-
 .../transport/tcp/TcpTransportConfiguration.java   |    1 -
 .../org.apache.plc4x.java.spi.transport.Transport  |    1 -
 plc4j/transports/test/pom.xml                      |   28 +-
 .../java/io/netty/bootstrap/EmbeddedBootstrap.java |   34 +-
 .../java/io/netty/bootstrap/EventLoopProvider.java |   34 +-
 .../java/transport/test/TestChannelFactory.java    |   34 +-
 .../java/transport/test/TestSocketAddress.java     |    1 -
 .../plc4x/java/transport/test/TestTransport.java   |   34 +-
 .../transport/test/TestTransportConfiguration.java |   34 +-
 .../src/main/remote-resources/META-INF/LICENSE     |    7 +
 .../test/src/main/remote-resources/META-INF/NOTICE |    4 +
 .../org.apache.plc4x.java.spi.transport.Transport  |    1 -
 plc4j/transports/udp/pom.xml                       |   28 +-
 .../java/transport/udp/UdpChannelFactory.java      |   34 +-
 .../plc4x/java/transport/udp/UdpTransport.java     |   34 +-
 .../transport/udp/UdpTransportConfiguration.java   |   34 +-
 .../udp/protocol/DatagramUnpackingHandler.java     |   34 +-
 .../org.apache.plc4x.java.spi.transport.Transport  |    1 -
 plc4j/utils/pcap-replay/pom.xml                    |   28 +-
 .../utils/pcapreplay/netty/PcapReplayChannel.java  |    1 -
 .../netty/address/PcapReplayAddress.java           |   34 +-
 .../netty/config/PcapReplayChannelConfig.java      |   42 +-
 .../netty/config/PcapReplayChannelOption.java      |   34 +-
 plc4j/utils/pcap-shared/pom.xml                    |   28 +-
 .../pcap/netty/address/PcapSocketAddress.java      |   34 +-
 .../utils/pcap/netty/config/PcapChannelConfig.java |   34 +-
 .../utils/pcap/netty/config/PcapChannelOption.java |   34 +-
 .../utils/pcap/netty/handlers/PacketHandler.java   |   34 +-
 .../pcap/netty/handlers/TcpIpPacketHandler.java    |   34 +-
 .../pcap/netty/handlers/UdpIpPacketHandler.java    |   34 +-
 .../src/main/remote-resources/META-INF/LICENSE     |    6 +
 .../src/main/remote-resources/META-INF/NOTICE      |    4 +
 plc4j/utils/pom.xml                                |   28 +-
 plc4j/utils/raw-sockets/pom.xml                    |   28 +-
 .../utils/rawsockets/netty/RawSocketChannel.java   |    1 -
 .../rawsockets/netty/address/RawSocketAddress.java |   34 +-
 .../netty/config/RawSocketChannelConfig.java       |   34 +-
 .../src/remote-resources/META-INF/LICENSE          |    1 +
 .../rawsockets/netty/RawSocketChannelTest.java     |    9 +-
 plc4j/utils/test-utils/pom.xml                     |   28 +-
 .../main/java/org/apache/plc4x/test/FastTests.java |   34 +-
 .../plc4x/test/RequireInternetConnection.java      |   33 +-
 .../test/RequireInternetConnectionCondition.java   |   33 +-
 .../apache/plc4x/test/RequireNonCaptureAllDns.java |   33 +-
 .../test/RequireNonCaptureAllDnsCondition.java     |   33 +-
 .../java/org/apache/plc4x/test/RequirePcap.java    |   33 +-
 .../apache/plc4x/test/RequirePcapCondition.java    |   39 +-
 .../java/org/apache/plc4x/test/RequirePcapNg.java  |   33 +-
 .../apache/plc4x/test/RequirePcapNgCondition.java  |   39 +-
 .../org/apache/plc4x/test/XmlTestsuiteLoader.java  |   32 +-
 .../test/dom4j/LocationAwareDocumentFactory.java   |   32 +-
 .../plc4x/test/dom4j/LocationAwareElement.java     |   32 +-
 .../test/dom4j/LocationAwareSAXContentHandler.java |   32 +-
 .../plc4x/test/dom4j/LocationAwareSAXReader.java   |   32 +-
 .../plc4x/test/driver/DriverTestsuiteRunner.java   |   34 +-
 .../exceptions/DriverTestsuiteException.java       |   33 +-
 .../test/driver/internal/ConnectionManager.java    |   34 +-
 .../test/driver/internal/DriverTestsuite.java      |   62 +-
 .../internal/DriverTestsuiteConfiguration.java     |   48 +-
 .../plc4x/test/driver/internal/StepType.java       |   34 +-
 .../plc4x/test/driver/internal/TestStep.java       |   34 +-
 .../plc4x/test/driver/internal/Testcase.java       |   34 +-
 .../plc4x/test/driver/internal/api/TestField.java  |   34 +-
 .../test/driver/internal/api/TestFieldRequest.java |   34 +-
 .../test/driver/internal/api/TestReadRequest.java  |   34 +-
 .../test/driver/internal/api/TestRequest.java      |   34 +-
 .../test/driver/internal/api/TestValueField.java   |   34 +-
 .../test/driver/internal/api/TestWriteRequest.java |   34 +-
 .../internal/handlers/ApiRequestHandler.java       |   34 +-
 .../internal/handlers/ApiResponseHandler.java      |   82 +-
 .../internal/handlers/IncomingPlcBytesHandler.java |   34 +-
 .../handlers/IncomingPlcMessageHandler.java        |   36 +-
 .../internal/handlers/OutgoingPlcBytesHandler.java |   34 +-
 .../handlers/OutgoingPlcMessageHandler.java        |   36 +-
 .../plc4x/test/driver/internal/utils/Delay.java    |   34 +-
 .../test/driver/internal/utils/Synchronizer.java   |   34 +-
 .../driver/internal/validator/ApiValidator.java    |    1 -
 .../org/apache/plc4x/test/manual/ManualTest.java   |   34 +-
 .../plc4x/test/migration/MessageResolver.java      |   93 +-
 .../migration/MessageValidatorAndMigrator.java     |   26 +-
 .../plc4x/test/migration/MigrationException.java   |    1 -
 .../plc4x/test/migration/TestCasePatcher.java      |   34 +-
 .../java/org/apache/plc4x/test/model/Location.java |   32 +-
 .../org/apache/plc4x/test/model/LocationAware.java |   32 +-
 .../ParserSerializerTestsuiteRunner.java           |   53 +-
 .../ParserSerializerTestsuiteException.java        |   33 +-
 .../model/ParserSerializerTestsuite.java           |   42 +-
 .../test/parserserializer/model/Testcase.java      |   34 +-
 .../java/org/apache/plc4x/test/xml/XmlHelper.java  |   53 +
 .../test-utils/src/main/resources/logback.xml      |   28 +-
 .../main/resources/schemas/driver-testsuite.xsd    |   39 +-
 .../schemas/parser-serializer-testsuite.xsd        |   22 +
 pom.xml                                            |   51 +-
 protocols/ab-eth/pom.xml                           |   34 +-
 .../apache/plc4x/protocol/abeth/ABETHProtocol.java |    1 -
 .../main/resources/protocols/abeth/ab-eth.mspec    |   36 +-
 protocols/ads/pom.xml                              |    4 +-
 .../plc4x/protocol/ads/ADSDiscoveryProtocol.java   |   33 +-
 .../org/apache/plc4x/protocol/ads/ADSProtocol.java |   33 +-
 .../resources/protocols/ads/ads-discovery.mspec    |   36 +-
 .../ads/src/main/resources/protocols/ads/ads.mspec |   36 +-
 .../resources/protocols/ads/DriverTestsuite.xml    |   86 +-
 protocols/bacnetip/pom.xml                         |   34 +-
 .../plc4x/protocol/bacnetip/BacNetIpProtocol.java  |    1 -
 .../resources/protocols/bacnetip/bacnetip.mspec    |   36 +-
 protocols/canopen/pom.xml                          |    4 +-
 .../plc4x/protocol/canopen/CANOpenProtocol.java    |   33 +-
 .../src/main/resources/protocols/can/canopen.mspec |    2 +-
 protocols/df1/pom.xml                              |   34 +-
 .../org/apache/plc4x/protocol/df1/Df1Protocol.java |    1 -
 .../df1/src/main/resources/protocols/df1/df1.mspec |   36 +-
 protocols/eip/pom.xml                              |   34 +-
 .../org/apache/plc4x/protocol/eip/EipProtocol.java |    1 -
 .../eip/src/main/resources/protocols/eip/eip.mspec |   42 +-
 .../resources/protocols/eip/DriverTestsuite.xml    |   17 +-
 protocols/firmata/pom.xml                          |   34 +-
 .../plc4x/protocol/firmata/FirmataProtocol.java    |    1 -
 .../main/resources/protocols/firmata/firmata.mspec |   36 +-
 protocols/knxnetip/pom.xml                         |    2 +-
 .../plc4x/protocol/knxnetip/KnxNetIpProtocol.java  |   33 +-
 .../resources/protocols/knxnetip/device-info.mspec |   36 +-
 .../resources/protocols/knxnetip/knxnetip.mspec    |   39 +-
 .../src/main/script/getKnxMasterData.groovy        |   39 +-
 .../protocol/knxnetip/KnxDefinitionsGenerator.java |   33 +-
 .../knxnetip/KnxSpecificationStoreUpdater.java     |   33 +-
 .../knxnetip/handlers/ManufacturerIdsHandler.java  |   33 +-
 .../handlers/ProductDescriptionHandler.java        |   33 +-
 protocols/modbus/pom.xml                           |    2 +-
 .../plc4x/protocol/modbus/ModbusProtocol.java      |   33 +-
 .../main/resources/protocols/modbus/modbus.mspec   |   36 +-
 .../resources/protocols/modbus/DriverTestsuite.xml |   80 +-
 protocols/opcua/pom.xml                            |  220 +-
 .../apache/plc4x/protocol/opcua/OpcuaProtocol.java |   68 +-
 .../src/main/resources/protocols/opcua/opcua.mspec |   36 +-
 protocols/opcua/src/main/xslt/opc-common.xsl       |  500 +++++
 protocols/opcua/src/main/xslt/opc-manual.xsl       |  447 ++++
 protocols/opcua/src/main/xslt/opc-services.xsl     |   72 +
 protocols/opcua/src/main/xslt/opc-status.xsl       |   68 +
 protocols/opcua/src/main/xslt/opc-types.xsl        |   58 +
 protocols/plc4x/pom.xml                            |    2 +-
 .../src/main/resources/protocols/plc4x/plc4x.mspec |   36 +-
 protocols/pom.xml                                  |    1 +
 protocols/profinet/pom.xml                         |   43 +
 .../plc4x/protocol/profinet/ProfinetProtocol.java  |   45 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |   19 +
 .../resources/protocols/profinet/profinet.mspec    |  792 +++++++
 protocols/s7/pom.xml                               |    2 +-
 .../org/apache/plc4x/protocol/s7/S7Protocol.java   |   33 +-
 .../s7/src/main/resources/protocols/s7/s7.mspec    |   91 +-
 .../resources/protocols/s7/DriverTestsuite.xml     |   37 +-
 protocols/simulated/pom.xml                        |    2 +-
 .../protocol/simulated/SimulatedProtocol.java      |   33 +-
 .../resources/protocols/simulated/simulated.mspec  |   36 +-
 sandbox/code-gen/src/main/antlr4/imaginary.g4      |   34 +-
 .../java/org/apache/plc4x/codegen/DFDLUtil.java    |   68 +-
 .../java/org/apache/plc4x/codegen/api/Buffer.java  |   34 +-
 .../org/apache/plc4x/codegen/ast/AbstractNode.java |   34 +-
 .../plc4x/codegen/ast/AssignementExpression.java   |   34 +-
 .../apache/plc4x/codegen/ast/BinaryExpression.java |   34 +-
 .../java/org/apache/plc4x/codegen/ast/Block.java   |   34 +-
 .../org/apache/plc4x/codegen/ast/BlockBuilder.java |   34 +-
 .../apache/plc4x/codegen/ast/CallExpression.java   |   34 +-
 .../apache/plc4x/codegen/ast/ClassDeclaration.java |   34 +-
 .../org/apache/plc4x/codegen/ast/CodeWriter.java   |   34 +-
 .../plc4x/codegen/ast/ConstantExpression.java      |   34 +-
 .../plc4x/codegen/ast/ConstructorDeclaration.java  |   34 +-
 .../plc4x/codegen/ast/DeclarationStatement.java    |   34 +-
 .../apache/plc4x/codegen/ast/ExceptionType.java    |   34 +-
 .../org/apache/plc4x/codegen/ast/Expression.java   |   34 +-
 .../org/apache/plc4x/codegen/ast/Expressions.java  |   34 +-
 .../apache/plc4x/codegen/ast/FieldDeclaration.java |   34 +-
 .../apache/plc4x/codegen/ast/FieldReference.java   |   34 +-
 .../org/apache/plc4x/codegen/ast/FileNode.java     |   34 +-
 .../org/apache/plc4x/codegen/ast/Generator.java    |   34 +-
 .../org/apache/plc4x/codegen/ast/IfStatement.java  |   34 +-
 .../apache/plc4x/codegen/ast/JavaGenerator.java    |   34 +-
 .../org/apache/plc4x/codegen/ast/LineComment.java  |   34 +-
 .../java/org/apache/plc4x/codegen/ast/Method.java  |   34 +-
 .../apache/plc4x/codegen/ast/MethodDefinition.java |   34 +-
 .../org/apache/plc4x/codegen/ast/Modifier.java     |   34 +-
 .../apache/plc4x/codegen/ast/NewExpression.java    |   34 +-
 .../java/org/apache/plc4x/codegen/ast/Node.java    |   34 +-
 .../org/apache/plc4x/codegen/ast/NodeVisitor.java  |   34 +-
 .../plc4x/codegen/ast/ParameterExpression.java     |   34 +-
 .../org/apache/plc4x/codegen/ast/Primitive.java    |   34 +-
 .../apache/plc4x/codegen/ast/PythonGenerator.java  |   34 +-
 .../apache/plc4x/codegen/ast/ReturnStatement.java  |   34 +-
 .../org/apache/plc4x/codegen/ast/Statement.java    |   34 +-
 .../apache/plc4x/codegen/ast/TypeDefinition.java   |   34 +-
 .../org/apache/plc4x/codegen/ast/TypeUtil.java     |   34 +-
 .../org/apache/plc4x/codegen/ast/UnknownType.java  |   34 +-
 .../plc4x/codegen/python/AbstractNodeVisitor.java  |   34 +-
 .../org/apache/plc4x/codegen/python/AddNode.java   |   34 +-
 .../org/apache/plc4x/codegen/python/AliasNode.java |   34 +-
 .../plc4x/codegen/python/AnnAssignerNode.java      |   34 +-
 .../org/apache/plc4x/codegen/python/ArgNode.java   |   34 +-
 .../apache/plc4x/codegen/python/ArgumentsNode.java |   34 +-
 .../apache/plc4x/codegen/python/AssignNode.java    |   34 +-
 .../apache/plc4x/codegen/python/AttributeNode.java |   34 +-
 .../apache/plc4x/codegen/python/AugAssignNode.java |   34 +-
 .../org/apache/plc4x/codegen/python/BinOpNode.java |   34 +-
 .../org/apache/plc4x/codegen/python/CallNode.java  |   34 +-
 .../apache/plc4x/codegen/python/ClassDefNode.java  |   34 +-
 .../apache/plc4x/codegen/python/CodePrinter.java   |   34 +-
 .../apache/plc4x/codegen/python/CompareNode.java   |   34 +-
 .../apache/plc4x/codegen/python/ContextNode.java   |   34 +-
 .../org/apache/plc4x/codegen/python/EqNode.java    |   34 +-
 .../org/apache/plc4x/codegen/python/ExprNode.java  |   34 +-
 .../plc4x/codegen/python/FunctionDefNode.java      |   34 +-
 .../org/apache/plc4x/codegen/python/IfNode.java    |   34 +-
 .../plc4x/codegen/python/ImportFromNode.java       |   34 +-
 .../apache/plc4x/codegen/python/KeywordNode.java   |   34 +-
 .../apache/plc4x/codegen/python/LineEntryNode.java |   34 +-
 .../org/apache/plc4x/codegen/python/ListNode.java  |   34 +-
 .../org/apache/plc4x/codegen/python/LoadNode.java  |   34 +-
 .../apache/plc4x/codegen/python/ModuleNode.java    |   34 +-
 .../org/apache/plc4x/codegen/python/MultNode.java  |   34 +-
 .../plc4x/codegen/python/NameConstantNode.java     |   34 +-
 .../org/apache/plc4x/codegen/python/NameNode.java  |   34 +-
 .../java/org/apache/plc4x/codegen/python/Node.java |   34 +-
 .../apache/plc4x/codegen/python/NodeVisitor.java   |   34 +-
 .../org/apache/plc4x/codegen/python/NotEqNode.java |   34 +-
 .../org/apache/plc4x/codegen/python/NumNode.java   |   34 +-
 .../org/apache/plc4x/codegen/python/PassNode.java  |   34 +-
 .../apache/plc4x/codegen/python/ReturnNode.java    |   34 +-
 .../org/apache/plc4x/codegen/python/StoreNode.java |   34 +-
 .../org/apache/plc4x/codegen/python/StrNode.java   |   34 +-
 .../org/apache/plc4x/codegen/python/TupleNode.java |   34 +-
 .../org/apache/plc4x/codegen/python/WhileNode.java |   34 +-
 .../org/apache/plc4x/codegen/util/BufferUtil.java  |   34 +-
 .../org/apache/plc4x/codegen/util/EnumFactory.java |   34 +-
 .../org/apache/plc4x/codegen/util/PojoFactory.java |   34 +-
 .../org/apache/plc4x/codegen/DFDLUtilTest.java     |   34 +-
 .../org/apache/plc4x/codegen/ModuleNodeTest.java   |   34 +-
 .../java/org/apache/plc4x/codegen/PojoBuilder.java |   34 +-
 .../plc4x/codegen/ast/JavaGeneratorTest.java       |   34 +-
 .../plc4x/codegen/ast/PythonGeneratorTest.java     |   34 +-
 .../apache/plc4x/codegen/util/EnumFactoryTest.java |   34 +-
 .../java/org/apache/plc4x/codegen/util/MyPojo.java |   34 +-
 .../apache/plc4x/codegen/util/PojoFactoryTest.java |   34 +-
 .../plc4x/java/discovery/DiscoveryConnection.java  |   34 +-
 .../plc4x/java/discovery/DiscoveryDriver.java      |   32 +-
 .../java/discovery/DiscoveryFieldHandler.java      |   34 +-
 .../services/org.apache.plc4x.java.api.PlcDriver   |    1 -
 sandbox/hello-influx-data-collection/pom.xml       |  116 -
 .../java/examples/helloinflux/HelloInflux.java     |  160 --
 .../src/main/resources/logback.xml                 |   34 -
 sandbox/plc-simulator/pom.xml                      |    2 +-
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |   34 +-
 .../org/apache/plc4x/simulator/PlcSimulator.java   |   34 +-
 .../simulator/exceptions/SimulatorExcepiton.java   |   34 +-
 .../org/apache/plc4x/simulator/model/Context.java  |   34 +-
 .../plc4x/simulator/server/ServerModule.java       |   34 +-
 .../plc4x/simulator/server/s7/S7ServerModule.java  |   34 +-
 .../server/s7/protocol/S7Step7ServerAdapter.java   |   34 +-
 .../simulator/simulation/SimulationModule.java     |   34 +-
 .../watertank/WaterTankSimulationModule.java       |   37 +-
 .../org.apache.plc4x.simulator.server.ServerModule |    1 -
 ...che.plc4x.simulator.simulation.SimulationModule |    1 -
 .../plc-simulator/src/main/resources/logback.xml   |    2 -
 sandbox/plc4c/.gitignore                           |  145 --
 sandbox/plc4c/CMakeLists.txt                       |   79 -
 sandbox/plc4c/CODE_CONVENTIONS.md                  |   43 -
 sandbox/plc4c/README.md                            |   41 -
 sandbox/plc4c/api/include/plc4c/data.h             |  195 --
 sandbox/plc4c/api/include/plc4c/read.h             |  115 -
 sandbox/plc4c/api/include/plc4c/utils/list.h       |   86 -
 sandbox/plc4c/api/include/plc4c/write.h            |  115 -
 sandbox/plc4c/drivers/modbus/src/driver_modbus.c   |   60 -
 .../modbus/src/driver_modbus_encode_decode.c       |  162 --
 .../drivers/modbus/src/driver_modbus_packets.c     |  176 --
 .../drivers/modbus/src/driver_modbus_sm_connect.c  |   80 -
 .../modbus/src/driver_modbus_sm_disconnect.c       |   74 -
 .../drivers/modbus/src/driver_modbus_sm_read.c     |  237 --
 .../drivers/modbus/src/driver_modbus_sm_write.c    |  121 -
 .../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           |  161 --
 .../plc4c/drivers/s7/src/driver_s7_encode_decode.c |  360 ---
 sandbox/plc4c/drivers/s7/src/driver_s7_packets.c   |  661 ------
 .../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   |  254 ---
 sandbox/plc4c/drivers/s7/src/driver_s7_sm_write.c  |  207 --
 .../plc4c/drivers/simulated/src/driver_simulated.c |  427 ----
 .../hello-world-modbus/src/hello_world_modbus.c    |  355 ---
 .../examples/hello-world-s7/src/hello_world_s7.c   |  381 ----
 .../hello-world-s7/src/hello_world_s7_loopback.c   |  412 ----
 .../generated-sources/modbus/include/data_item.h   |   46 -
 .../modbus/include/modbus_constants.h              |   58 -
 .../modbus/include/modbus_data_type.h              |   80 -
 .../modbus/include/modbus_error_code.h             |   60 -
 .../generated-sources/modbus/include/modbus_pdu.h  |  245 --
 .../modbus_pdu_read_file_record_request_item.h     |   58 -
 .../modbus_pdu_read_file_record_response_item.h    |   56 -
 .../modbus_pdu_write_file_record_request_item.h    |   58 -
 .../modbus_pdu_write_file_record_response_item.h   |   58 -
 .../modbus/include/modbus_serial_adu.h             |   59 -
 .../modbus/include/modbus_tcp_adu.h                |   62 -
 .../plc4c/generated-sources/modbus/src/data_item.c |  575 -----
 .../modbus/src/modbus_constants.c                  |   80 -
 .../modbus/src/modbus_data_type.c                  |  318 ---
 .../modbus/src/modbus_error_code.c                 |  107 -
 .../generated-sources/modbus/src/modbus_pdu.c      | 2370 --------------------
 .../src/modbus_pdu_read_file_record_request_item.c |  125 --
 .../modbus_pdu_read_file_record_response_item.c    |  124 -
 .../modbus_pdu_write_file_record_request_item.c    |  158 --
 .../modbus_pdu_write_file_record_response_item.c   |  158 --
 .../modbus/src/modbus_serial_adu.c                 |  146 --
 .../generated-sources/modbus/src/modbus_tcp_adu.c  |  147 --
 .../generated-sources/s7/include/cotp_packet.h     |  110 -
 .../generated-sources/s7/include/cotp_parameter.h  |   93 -
 .../s7/include/cotp_protocol_class.h               |   55 -
 .../generated-sources/s7/include/cotp_tpdu_size.h  |   60 -
 .../plc4c/generated-sources/s7/include/data_item.h |   45 -
 .../s7/include/data_transport_error_code.h         |   56 -
 .../s7/include/data_transport_size.h               |   60 -
 .../generated-sources/s7/include/device_group.h    |   53 -
 .../generated-sources/s7/include/memory_area.h     |   62 -
 .../generated-sources/s7/include/s7_address.h      |   83 -
 .../generated-sources/s7/include/s7_message.h      |   93 -
 .../generated-sources/s7/include/s7_parameter.h    |  101 -
 .../s7/include/s7_parameter_user_data_item.h       |   83 -
 .../generated-sources/s7/include/s7_payload.h      |   93 -
 .../s7/include/s7_payload_user_data_item.h         |   88 -
 .../s7/include/s7_var_payload_data_item.h          |   59 -
 .../s7/include/s7_var_payload_status_item.h        |   56 -
 .../s7/include/s7_var_request_parameter_item.h     |   77 -
 .../s7/include/szl_data_tree_item.h                |   59 -
 .../plc4c/generated-sources/s7/include/szl_id.h    |   59 -
 .../s7/include/szl_module_type_class.h             |   54 -
 .../generated-sources/s7/include/szl_sublist.h     |   69 -
 .../generated-sources/s7/include/tpkt_packet.h     |   60 -
 .../generated-sources/s7/include/transport_size.h  |  111 -
 .../plc4c/generated-sources/s7/src/cotp_packet.c   |  557 -----
 .../generated-sources/s7/src/cotp_parameter.c      |  288 ---
 .../generated-sources/s7/src/cotp_protocol_class.c |   77 -
 .../generated-sources/s7/src/cotp_tpdu_size.c      |  147 --
 sandbox/plc4c/generated-sources/s7/src/data_item.c |  438 ----
 .../s7/src/data_transport_error_code.c             |   83 -
 .../generated-sources/s7/src/data_transport_size.c |  132 --
 .../plc4c/generated-sources/s7/src/device_group.c  |   65 -
 .../plc4c/generated-sources/s7/src/memory_area.c   |  166 --
 .../plc4c/generated-sources/s7/src/s7_address.c    |  259 ---
 .../plc4c/generated-sources/s7/src/s7_message.c    |  379 ----
 .../plc4c/generated-sources/s7/src/s7_parameter.c  |  485 ----
 .../s7/src/s7_parameter_user_data_item.c           |  329 ---
 .../plc4c/generated-sources/s7/src/s7_payload.c    |  314 ---
 .../s7/src/s7_payload_user_data_item.c             |  285 ---
 .../s7/src/s7_var_payload_data_item.c              |  172 --
 .../s7/src/s7_var_payload_status_item.c            |   74 -
 .../s7/src/s7_var_request_parameter_item.c         |  150 --
 .../generated-sources/s7/src/szl_data_tree_item.c  |  159 --
 sandbox/plc4c/generated-sources/s7/src/szl_id.c    |  108 -
 .../s7/src/szl_module_type_class.c                 |   71 -
 .../plc4c/generated-sources/s7/src/szl_sublist.c   |  161 --
 .../plc4c/generated-sources/s7/src/tpkt_packet.c   |  134 --
 .../generated-sources/s7/src/transport_size.c      | 1435 ------------
 sandbox/plc4c/pom.xml                              |  333 ---
 .../plc4c/spi/include/plc4c/spi/types_private.h    |  355 ---
 sandbox/plc4c/spi/src/connection.c                 |  282 ---
 sandbox/plc4c/spi/src/data.c                       |  462 ----
 sandbox/plc4c/spi/src/read.c                       |  127 --
 sandbox/plc4c/spi/src/read_buffer.c                |  613 -----
 sandbox/plc4c/spi/src/system.c                     |  468 ----
 sandbox/plc4c/spi/src/utils/list.c                 |  219 --
 sandbox/plc4c/spi/src/write.c                      |  134 --
 .../plc4c/transports/dummy/src/transport_dummy.c   |   34 -
 .../plc4c/transports/serial/src/transport_serial.c |   53 -
 sandbox/plc4c/transports/tcp/src/transport_tcp.c   |  176 --
 sandbox/plc4cpp/Makefile                           |   75 +
 sandbox/plc4cpp/README.md                          |   28 +-
 .../cpp/org/apache/plc4x/cpp/PlcConnection.cpp     |   32 +-
 .../main/cpp/org/apache/plc4x/cpp/PlcConnection.h  |   32 +-
 .../cpp/org/apache/plc4x/cpp/PlcDriverManager.cpp  |   34 +-
 .../cpp/org/apache/plc4x/cpp/PlcDriverManager.h    |   34 +-
 .../cpp/org/apache/plc4x/cpp/api/PlcConnection.cpp |   32 +-
 .../cpp/org/apache/plc4x/cpp/api/PlcConnection.h   |   32 +-
 .../cpp/api/authentication/PlcAuthentication.cpp   |   34 +-
 .../cpp/api/authentication/PlcAuthentication.h     |   34 +-
 .../PlcUsernamePasswordAuthentication.cpp          |   34 +-
 .../PlcUsernamePasswordAuthentication.h            |   34 +-
 .../cpp/api/exceptions/PlcConnectionException.cpp  |   34 +-
 .../cpp/api/exceptions/PlcConnectionException.h    |   34 +-
 .../plc4x/cpp/api/exceptions/PlcException.cpp      |   34 +-
 .../apache/plc4x/cpp/api/exceptions/PlcException.h |   34 +-
 .../cpp/api/exceptions/PlcFieldRangeException.cpp  |   34 +-
 .../cpp/api/exceptions/PlcFieldRangeException.h    |   34 +-
 .../PlcIncompatibleDatatypeException.cpp           |   34 +-
 .../exceptions/PlcIncompatibleDatatypeException.h  |   34 +-
 .../api/exceptions/PlcInvalidFieldException.cpp    |   34 +-
 .../cpp/api/exceptions/PlcInvalidFieldException.h  |   34 +-
 .../plc4x/cpp/api/exceptions/PlcIoException.cpp    |   34 +-
 .../plc4x/cpp/api/exceptions/PlcIoException.h      |   34 +-
 .../api/exceptions/PlcNotImplementedException.cpp  |   34 +-
 .../api/exceptions/PlcNotImplementedException.h    |   34 +-
 .../cpp/api/exceptions/PlcProtocolException.cpp    |   34 +-
 .../cpp/api/exceptions/PlcProtocolException.h      |   34 +-
 .../PlcProtocolPayloadTooBigException.cpp          |   34 +-
 .../exceptions/PlcProtocolPayloadTooBigException.h |   34 +-
 .../cpp/api/exceptions/PlcRuntimeException.cpp     |   34 +-
 .../plc4x/cpp/api/exceptions/PlcRuntimeException.h |   34 +-
 .../cpp/api/exceptions/PlcTimeoutException.cpp     |   34 +-
 .../plc4x/cpp/api/exceptions/PlcTimeoutException.h |   34 +-
 .../exceptions/PlcUnsupportedDataTypeException.cpp |   34 +-
 .../exceptions/PlcUnsupportedDataTypeException.h   |   34 +-
 .../PlcUnsupportedOperationException.cpp           |   34 +-
 .../exceptions/PlcUnsupportedOperationException.h  |   34 +-
 .../plc4x/cpp/api/messages/PlcFieldRequest.cpp     |   34 +-
 .../plc4x/cpp/api/messages/PlcFieldRequest.h       |   34 +-
 .../plc4x/cpp/api/messages/PlcFieldResponse.cpp    |   34 +-
 .../plc4x/cpp/api/messages/PlcFieldResponse.h      |   34 +-
 .../apache/plc4x/cpp/api/messages/PlcMessage.cpp   |   34 +-
 .../org/apache/plc4x/cpp/api/messages/PlcMessage.h |   34 +-
 .../plc4x/cpp/api/messages/PlcReadRequest.cpp      |   34 +-
 .../apache/plc4x/cpp/api/messages/PlcReadRequest.h |   34 +-
 .../cpp/api/messages/PlcReadRequestBuilder.cpp     |   34 +-
 .../plc4x/cpp/api/messages/PlcReadRequestBuilder.h |   34 +-
 .../plc4x/cpp/api/messages/PlcReadResponse.cpp     |   34 +-
 .../plc4x/cpp/api/messages/PlcReadResponse.h       |   34 +-
 .../apache/plc4x/cpp/api/messages/PlcRequest.cpp   |   34 +-
 .../org/apache/plc4x/cpp/api/messages/PlcRequest.h |   34 +-
 .../plc4x/cpp/api/messages/PlcRequestBuilder.cpp   |   34 +-
 .../plc4x/cpp/api/messages/PlcRequestBuilder.h     |   34 +-
 .../apache/plc4x/cpp/api/messages/PlcResponse.cpp  |   34 +-
 .../apache/plc4x/cpp/api/messages/PlcResponse.h    |   34 +-
 .../cpp/api/messages/PlcSubscriptionEvent.cpp      |   34 +-
 .../plc4x/cpp/api/messages/PlcSubscriptionEvent.h  |   34 +-
 .../cpp/api/messages/PlcSubscriptionRequest.cpp    |   34 +-
 .../cpp/api/messages/PlcSubscriptionRequest.h      |   34 +-
 .../cpp/api/messages/PlcSubscriptionResponse.cpp   |   34 +-
 .../cpp/api/messages/PlcSubscriptionResponse.h     |   34 +-
 .../cpp/api/messages/PlcUnsubscriptionRequest.cpp  |   34 +-
 .../cpp/api/messages/PlcUnsubscriptionRequest.h    |   34 +-
 .../cpp/api/messages/PlcUnsubscriptionResponse.cpp |   34 +-
 .../cpp/api/messages/PlcUnsubscriptionResponse.h   |   34 +-
 .../plc4x/cpp/api/messages/PlcWriteRequest.cpp     |   34 +-
 .../plc4x/cpp/api/messages/PlcWriteRequest.h       |   34 +-
 .../plc4x/cpp/api/messages/PlcWriteResponse.cpp    |   34 +-
 .../plc4x/cpp/api/messages/PlcWriteResponse.h      |   34 +-
 .../org/apache/plc4x/cpp/api/messages/REQUEST.cpp  |   34 +-
 .../org/apache/plc4x/cpp/api/messages/REQUEST.h    |   34 +-
 .../org/apache/plc4x/cpp/api/messages/RESPONSE.cpp |   34 +-
 .../org/apache/plc4x/cpp/api/messages/RESPONSE.h   |   34 +-
 .../plc4x/cpp/api/messages/RequestTemplate.cpp     |   34 +-
 .../plc4x/cpp/api/messages/RequestTemplate.h       |   34 +-
 .../plc4x/cpp/api/messages/ResponseTemplate.cpp    |   34 +-
 .../plc4x/cpp/api/messages/ResponseTemplate.h      |   34 +-
 .../cpp/api/metadata/PlcConnectionMetadata.cpp     |   34 +-
 .../plc4x/cpp/api/metadata/PlcConnectionMetadata.h |   34 +-
 .../org/apache/plc4x/cpp/api/model/Consumer.cpp    |   34 +-
 .../cpp/org/apache/plc4x/cpp/api/model/Consumer.h  |   34 +-
 .../cpp/api/model/PlcConsumerRegistration.cpp      |   34 +-
 .../plc4x/cpp/api/model/PlcConsumerRegistration.h  |   34 +-
 .../org/apache/plc4x/cpp/api/model/PlcField.cpp    |   34 +-
 .../cpp/org/apache/plc4x/cpp/api/model/PlcField.h  |   34 +-
 .../plc4x/cpp/api/model/PlcSubscriptionHandle.cpp  |   34 +-
 .../plc4x/cpp/api/model/PlcSubscriptionHandle.h    |   34 +-
 .../plc4x/cpp/api/types/PlcClientDataType.cpp      |   34 +-
 .../apache/plc4x/cpp/api/types/PlcClientDataType.h |   34 +-
 .../apache/plc4x/cpp/api/types/PlcResponseCode.cpp |   34 +-
 .../apache/plc4x/cpp/api/types/PlcResponseCode.h   |   34 +-
 .../plc4x/cpp/api/types/PlcSubscriptionType.cpp    |   34 +-
 .../plc4x/cpp/api/types/PlcSubscriptionType.h      |   34 +-
 .../apache/plc4x/cpp/api/types/ValueTypeObject.cpp |   34 +-
 .../apache/plc4x/cpp/api/types/ValueTypeObject.h   |   34 +-
 .../cpp/org/apache/plc4x/cpp/spi/PlcDriver.cpp     |   34 +-
 .../main/cpp/org/apache/plc4x/cpp/spi/PlcDriver.h  |   34 +-
 .../cpp/org/apache/plc4x/cpp/proxy/ProxyDriver.cpp |   34 +-
 .../cpp/org/apache/plc4x/cpp/proxy/ProxyDriver.h   |   34 +-
 .../plc4x/cpp/proxy/connection/ProxyConnection.cpp |   34 +-
 .../plc4x/cpp/proxy/connection/ProxyConnection.h   |   34 +-
 .../cpp/org/apache/plc4x/cpp/proxy/dllexports.cpp  |   34 +-
 .../cpp/org/apache/plc4x/cpp/proxy/dllexports.h    |   34 +-
 .../cpp/org/apache/plc4x/cpp/s7/S7PlcDriver.cpp    |   34 +-
 .../main/cpp/org/apache/plc4x/cpp/s7/S7PlcDriver.h |   34 +-
 .../plc4x/cpp/s7/connection/S7PlcConnection.cpp    |   34 +-
 .../plc4x/cpp/s7/connection/S7PlcConnection.h      |   34 +-
 .../cpp/org/apache/plc4x/cpp/s7/dllexports.cpp     |   34 +-
 .../main/cpp/org/apache/plc4x/cpp/s7/dllexports.h  |   34 +-
 .../plc4x/cpp/examples/helloplc4x/helloplc4x.cpp   |   34 +-
 .../cpp/base/connection/AbstractPlcConnection.cpp  |   34 +-
 .../cpp/base/connection/AbstractPlcConnection.h    |   34 +-
 .../plc4x/cpp/base/connection/BoostConnection.cpp  |   34 +-
 .../plc4x/cpp/base/connection/BoostConnection.h    |   34 +-
 .../plc4x/cpp/base/connection/ChannelFactory.cpp   |   34 +-
 .../plc4x/cpp/base/connection/ChannelFactory.h     |   34 +-
 .../cpp/base/connection/DefaultPlcFieldHandler.cpp |   34 +-
 .../cpp/base/connection/DefaultPlcFieldHandler.h   |   34 +-
 .../plc4x/cpp/base/connection/PlcFieldHandler.cpp  |   34 +-
 .../plc4x/cpp/base/connection/PlcFieldHandler.h    |   34 +-
 .../apache/plc4x/cpp/base/events/ConnectEvent.cpp  |   34 +-
 .../apache/plc4x/cpp/base/events/ConnectEvent.h    |   34 +-
 .../plc4x/cpp/base/events/ConnectedEvent.cpp       |   34 +-
 .../apache/plc4x/cpp/base/events/ConnectedEvent.h  |   34 +-
 .../cpp/base/messages/DefaultPlcReadRequest.cpp    |   34 +-
 .../cpp/base/messages/DefaultPlcReadRequest.h      |   34 +-
 .../cpp/base/messages/DefaultPlcWriteRequest.cpp   |   34 +-
 .../cpp/base/messages/DefaultPlcWriteRequest.h     |   34 +-
 .../cpp/base/messages/InternalPlcFieldRequest.cpp  |   34 +-
 .../cpp/base/messages/InternalPlcFieldRequest.h    |   34 +-
 .../cpp/base/messages/InternalPlcFieldResponse.cpp |   34 +-
 .../cpp/base/messages/InternalPlcFieldResponse.h   |   34 +-
 .../messages/InternalPlcProprietaryRequest.cpp     |   34 +-
 .../base/messages/InternalPlcProprietaryRequest.h  |   34 +-
 .../messages/InternalPlcProprietaryResponse.cpp    |   34 +-
 .../base/messages/InternalPlcProprietaryResponse.h |   34 +-
 .../cpp/base/messages/InternalPlcReadRequest.cpp   |   34 +-
 .../cpp/base/messages/InternalPlcReadRequest.h     |   34 +-
 .../plc4x/cpp/base/messages/InternalPlcRequest.cpp |   34 +-
 .../plc4x/cpp/base/messages/InternalPlcRequest.h   |   34 +-
 .../cpp/base/messages/InternalPlcResponse.cpp      |   34 +-
 .../plc4x/cpp/base/messages/InternalPlcResponse.h  |   34 +-
 .../cpp/base/messages/InternalPlcWriteRequest.cpp  |   34 +-
 .../cpp/base/messages/InternalPlcWriteRequest.h    |   34 +-
 .../cpp/base/messages/PlcProprietaryRequest.cpp    |   34 +-
 .../cpp/base/messages/PlcProprietaryRequest.h      |   34 +-
 .../cpp/base/messages/PlcProprietaryResponse.cpp   |   34 +-
 .../cpp/base/messages/PlcProprietaryResponse.h     |   34 +-
 .../apache/plc4x/cpp/base/messages/PlcReader.cpp   |   34 +-
 .../org/apache/plc4x/cpp/base/messages/PlcReader.h |   34 +-
 .../apache/plc4x/cpp/base/messages/PlcWriter.cpp   |   34 +-
 .../org/apache/plc4x/cpp/base/messages/PlcWriter.h |   34 +-
 .../base/messages/items/BaseDefaultFieldItem.cpp   |   34 +-
 .../cpp/base/messages/items/BaseDefaultFieldItem.h |   34 +-
 .../messages/items/DefaultBigDecimalFieldItem.cpp  |   34 +-
 .../messages/items/DefaultBigDecimalFieldItem.h    |   34 +-
 .../messages/items/DefaultBigIntegerFieldItem.cpp  |   34 +-
 .../messages/items/DefaultBigIntegerFieldItem.h    |   34 +-
 .../messages/items/DefaultBooleanFieldItem.cpp     |   34 +-
 .../base/messages/items/DefaultBooleanFieldItem.h  |   34 +-
 .../messages/items/DefaultByteArrayFieldItem.cpp   |   34 +-
 .../messages/items/DefaultByteArrayFieldItem.h     |   34 +-
 .../base/messages/items/DefaultByteFieldItem.cpp   |   34 +-
 .../cpp/base/messages/items/DefaultByteFieldItem.h |   34 +-
 .../base/messages/items/DefaultDoubleFieldItem.cpp |   34 +-
 .../base/messages/items/DefaultDoubleFieldItem.h   |   34 +-
 .../base/messages/items/DefaultFloatFieldItem.cpp  |   34 +-
 .../base/messages/items/DefaultFloatFieldItem.h    |   34 +-
 .../messages/items/DefaultIntegerFieldItem.cpp     |   34 +-
 .../base/messages/items/DefaultIntegerFieldItem.h  |   34 +-
 .../messages/items/DefaultLocalDateFieldItem.cpp   |   34 +-
 .../messages/items/DefaultLocalDateFieldItem.h     |   34 +-
 .../items/DefaultLocalDateTimeFieldItem.cpp        |   34 +-
 .../messages/items/DefaultLocalDateTimeFieldItem.h |   34 +-
 .../messages/items/DefaultLocalTimeFieldItem.cpp   |   34 +-
 .../messages/items/DefaultLocalTimeFieldItem.h     |   34 +-
 .../base/messages/items/DefaultLongFieldItem.cpp   |   34 +-
 .../cpp/base/messages/items/DefaultLongFieldItem.h |   34 +-
 .../base/messages/items/DefaultShortFieldItem.cpp  |   34 +-
 .../base/messages/items/DefaultShortFieldItem.h    |   34 +-
 .../base/messages/items/DefaultStringFieldItem.cpp |   34 +-
 .../base/messages/items/DefaultStringFieldItem.h   |   34 +-
 .../apache/plc4x/cpp/s7/types/S7ControllerType.h   |   34 +-
 .../org/apache/plc4x/cpp/utils/logger/BLogger.cpp  |   34 +-
 .../org/apache/plc4x/cpp/utils/logger/BLogger.h    |   34 +-
 .../org/apache/plc4x/cpp/utils/logger/DatDmp.cpp   |   34 +-
 .../cpp/org/apache/plc4x/cpp/utils/logger/DatDmp.h |   34 +-
 .../org/apache/plc4x/cpp/utils/logger/DbgTrace.cpp |   34 +-
 .../org/apache/plc4x/cpp/utils/logger/DbgTrace.h   |   34 +-
 .../plc4x/cpp/utils/logger/ErrorCategory.cpp       |   34 +-
 .../apache/plc4x/cpp/utils/logger/ErrorCategory.h  |   34 +-
 .../plc4x/cpp/utils/logger/ErrorInfoException.cpp  |   34 +-
 .../plc4x/cpp/utils/logger/ErrorInfoException.h    |   34 +-
 .../org/apache/plc4x/cpp/utils/logger/ExLog.cpp    |   34 +-
 .../cpp/org/apache/plc4x/cpp/utils/logger/ExLog.h  |   34 +-
 .../cpp/utils/systemconfig/SystemConfiguration.cpp |   34 +-
 .../cpp/utils/systemconfig/SystemConfiguration.h   |   34 +-
 sandbox/plc4net/Makefile                           |   75 +
 sandbox/plc4net/api/PlcDriverManager.cs            |   34 +-
 sandbox/plc4net/api/api/IPlcConnection.cs          |   34 +-
 sandbox/plc4net/api/api/IPlcDriver.cs              |   34 +-
 .../api/api/authentication/IPlcAuthentication.cs   |   34 +-
 .../PlcUsernamePasswordAuthentication.cs           |   34 +-
 .../api/api/metadata/IPlcConnectionMetadata.cs     |   34 +-
 .../api/exceptions/PlcConnectionException.cs       |   34 +-
 sandbox/plc4net/api/exceptions/PlcException.cs     |   34 +-
 .../api/exceptions/PlcInvalidFieldException.cs     |   34 +-
 sandbox/plc4net/api/messages/IPlcFieldRequest.cs   |   34 +-
 sandbox/plc4net/api/messages/IPlcFieldResponse.cs  |   34 +-
 sandbox/plc4net/api/messages/IPlcMessage.cs        |   34 +-
 sandbox/plc4net/api/messages/IPlcReadRequest.cs    |   34 +-
 .../plc4net/api/messages/IPlcReadRequestBuilder.cs |   34 +-
 sandbox/plc4net/api/messages/IPlcReadResponse.cs   |   34 +-
 sandbox/plc4net/api/messages/IPlcRequest.cs        |   34 +-
 sandbox/plc4net/api/messages/IPlcRequestBuilder.cs |   34 +-
 sandbox/plc4net/api/messages/IPlcResponse.cs       |   34 +-
 .../api/messages/IPlcSubscriptionEventArgs.cs      |   34 +-
 .../api/messages/IPlcSubscriptionRequest.cs        |   34 +-
 .../api/messages/IPlcSubscriptionRequestBuilder.cs |   34 +-
 .../api/messages/IPlcSubscriptionResponse.cs       |   34 +-
 .../api/messages/IPlcUnsubscriptionRequest.cs      |   34 +-
 .../messages/IPlcUnsubscriptionRequestBuilder.cs   |   34 +-
 .../api/messages/IPlcUnsubscriptionResponse.cs     |   34 +-
 sandbox/plc4net/api/messages/IPlcWriteRequest.cs   |   34 +-
 .../api/messages/IPlcWriteRequestBuilder.cs        |   34 +-
 sandbox/plc4net/api/model/IPlcField.cs             |   34 +-
 .../plc4net/api/model/IPlcSubscriptionHandle.cs    |   34 +-
 sandbox/plc4net/api/types/PlcResponseCode.cs       |   34 +-
 sandbox/plc4py/README.md                           |   28 +-
 sandbox/plc4py/pom.xml                             |   32 +-
 sandbox/plc4py/src/main/resources/lib/log4j2.xml   |   32 +-
 sandbox/pom.xml                                    |   15 -
 sandbox/test-java-bacnetip-driver/pom.xml          |   34 +-
 .../apache/plc4x/java/bacnetip/BacNetIpDriver.java |   34 +-
 .../configuration/BacNetIpConfiguration.java       |   34 +-
 .../apache/plc4x/java/bacnetip/ede/EdeParser.java  |   34 +-
 .../plc4x/java/bacnetip/ede/layouts/EdeLayout.java |   34 +-
 .../bacnetip/ede/layouts/EdeLayoutFactory.java     |   34 +-
 .../bacnetip/ede/layouts/EdeVersion2Layout.java    |   34 +-
 .../bacnetip/ede/layouts/EdeVersion3Layout.java    |   34 +-
 .../bacnetip/ede/layouts/EdeVersion4Layout.java    |   34 +-
 .../plc4x/java/bacnetip/ede/model/Datapoint.java   |   34 +-
 .../plc4x/java/bacnetip/ede/model/EdeModel.java    |   34 +-
 .../plc4x/java/bacnetip/field/BacNetIpField.java   |   34 +-
 .../java/bacnetip/field/BacNetIpFieldHandler.java  |   34 +-
 .../bacnetip/protocol/BacNetIpProtocolLogic.java   |  241 +-
 .../plc4x/java/bacnetip/ManualBacNetDecoder.java   |   34 +-
 .../java/bacnetip/PassiveBacNetIpDriverManual.java |   34 +-
 .../src/test/resources/logback.xml                 |    2 -
 sandbox/test-java-df1-driver/pom.xml               |   34 +-
 .../org/apache/plc4x/java/df1/DF1PlcDriver.java    |   32 +-
 .../java/df1/configuration/Df1Configuration.java   |   34 +-
 .../plc4x/java/df1/field/Df1FieldHandler.java      |   32 +-
 .../plc4x/java/df1/protocol/Df1Protocol.java       |  112 +-
 .../plc4x/java/df1/protocol/Df1ProtocolLogic.java  |   34 +-
 .../plc4x/java/df1/protocol/Plc4XDf1Protocol.java  |   32 +-
 .../org/apache/plc4x/java/df1/types/DataType.java  |   32 +-
 .../plc4x/protocol/df1/BenchmarkGeneratedDf1.java  |    1 -
 .../plc4x/protocol/df1/BenchmarkManualDf1.java     |    1 -
 .../protocol/df1/Df1ParserSerializerTest.java      |   35 +-
 .../apache/plc4x/protocol/df1/EndToEndTest.java    |    1 -
 sandbox/test-streampipes-plc4x-adapters/Dockerfile |   24 -
 .../test-streampipes-plc4x-adapters/READMME.adoc   |   49 -
 .../env/development                                |   26 -
 sandbox/test-streampipes-plc4x-adapters/pom.xml    |  282 ---
 .../java/streampipes/adapters/Plc4xAdapters.java   |   43 -
 .../streampipes/adapters/config/ConfigKeys.java    |   33 -
 .../adapters/config/ConnectWorkerConfig.java       |   86 -
 .../adapters/source/bacnetip/BacNetIpAdapter.java  |  381 ----
 .../adapters/source/knxnetip/KnxNetIpAdapter.java  |  222 --
 .../test-streampipes-plc4x-processors/Dockerfile   |   24 -
 .../test-streampipes-plc4x-processors/READMME.adoc |   49 -
 .../env/development                                |   24 -
 sandbox/test-streampipes-plc4x-processors/pom.xml  |  374 ---
 .../processors/Plc4xProcessorsInit.java            |   55 -
 .../java/streampipes/processors/config/Config.java |   88 -
 .../streampipes/processors/config/ConfigKeys.java  |   35 -
 .../ede/BacNetIpEdeDataEnrichmentController.java   |   88 -
 .../enrich/knxnetip/ets5/Ets5DataEnrichment.java   |  110 -
 .../ets5/Ets5DataEnrichmentController.java         |   93 -
 .../ets5/Ets5DataEnrichmentParameters.java         |   43 -
 .../strings.en                                     |   27 -
 .../strings.en                                     |   30 -
 sandbox/test-streampipes-plc4x-shared/pom.xml      |   32 -
 .../shared/source/bacnetip/Constants.java          |   25 -
 .../shared/source/knxnetip/Constants.java          |   28 -
 src/main/script/preSiteGeneration.groovy           |   32 +-
 src/main/script/prerequisiteCheck.groovy           |   86 +-
 src/site/asciidoc/developers/building.adoc         |    5 +-
 .../developers/code-gen/language/freemarker.adoc   |   35 +-
 src/site/asciidoc/developers/preparing/index.adoc  |   13 +-
 src/site/asciidoc/developers/release/release.adoc  |   18 +-
 src/site/asciidoc/index.adoc                       |   14 -
 src/site/asciidoc/users/index.adoc                 |   14 -
 .../users/integrations/elastic-logstash.adoc       |   20 -
 src/site/asciidoc/users/protocols/index.adoc       |  139 +-
 src/site/asciidoc/users/protocols/opc-ua.adoc      |   12 +-
 src/site/resources/.asf.yaml                       |   19 +
 .../resources/css/bootstrap-responsive.min.css     |   34 +-
 src/site/resources/css/site.css                    |   34 +-
 src/site/site.xml                                  |    1 -
 tools/README.md                                    |   28 +-
 tools/check_sigs.sh                                |   36 +-
 tools/clean-site.sh                                |   36 +-
 tools/common.sh                                    |   36 +-
 tools/download_staged_release.sh                   |   36 +-
 tools/logstash/pom.xml                             |  110 -
 tools/pom.xml                                      |    6 -
 2628 files changed, 84171 insertions(+), 78176 deletions(-)

diff --cc code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageOutput.java
index 0000000,0c2a5c1..5e404ef
mode 000000,100644..100644
--- a/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageOutput.java
+++ b/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageOutput.java
@@@ -1,0 -1,77 +1,79 @@@
+ /*
+  * 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.language.java;
+ 
+ import freemarker.template.*;
+ import org.apache.plc4x.plugins.codegenerator.protocol.freemarker.FreemarkerLanguageOutput;
+ import org.apache.plc4x.plugins.codegenerator.protocol.freemarker.FreemarkerLanguageTemplateHelper;
+ import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
+ 
+ import java.io.*;
+ import java.util.*;
++import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
+ 
+ public class JavaLanguageOutput extends FreemarkerLanguageOutput {
+ 
+     @Override
+     public String getName() {
+         return "Java";
+     }
+ 
+     @Override
+     public Set<String> supportedOptions() {
+         return Collections.singleton("package");
+     }
+ 
+     @Override
+     public List<String> supportedOutputFlavors() {
+         return Arrays.asList("read-write", "read-only", "passive");
+     }
+ 
+     @Override
+     protected List<Template> getSpecTemplates(Configuration freemarkerConfiguration) throws IOException {
+         return Collections.singletonList(
+             freemarkerConfiguration.getTemplate("templates/java/enum-package-info-template.java.ftlh"));
+     }
+ 
+     @Override
+     protected List<Template> getComplexTypeTemplates(Configuration freemarkerConfiguration) throws IOException {
+         return Arrays.asList(
+             freemarkerConfiguration.getTemplate("templates/java/pojo-template.java.ftlh"),
+             freemarkerConfiguration.getTemplate("templates/java/io-template.java.ftlh"));
+     }
+ 
+     @Override
+     protected List<Template> getEnumTypeTemplates(Configuration freemarkerConfiguration) throws IOException {
+         return Collections.singletonList(
+             freemarkerConfiguration.getTemplate("templates/java/enum-template.java.ftlh"));
+     }
+ 
+     @Override
+     protected List<Template> getDataIoTemplates(Configuration freemarkerConfiguration) throws IOException {
+         return Collections.singletonList(
+             freemarkerConfiguration.getTemplate("templates/java/data-io-template.java.ftlh"));
+     }
+ 
+     @Override
+     protected FreemarkerLanguageTemplateHelper getHelper(TypeDefinition thisType, String protocolName, String flavorName, Map<String, TypeDefinition> types,
+         Map<String, String> options) {
+         return new JavaLanguageTemplateHelper(thisType, protocolName, flavorName, types, options);
+     }
+ 
++
+ }
diff --cc plc4j/drivers/pom.xml
index 4440085,425877b..3f07808
--- a/plc4j/drivers/pom.xml
+++ b/plc4j/drivers/pom.xml
@@@ -42,8 -42,9 +42,9 @@@
      <module>knxnetip</module>
      <module>mock</module>
      <module>modbus</module>
+     <module>profinet</module>
      <module>s7</module>
 -  	<module>opcua</module>
 +    <module>opcua</module>
      <module>simulated</module>
    </modules>
  
diff --cc plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
index 450a4b9,e956cdf..f4305aa
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
@@@ -88,22 -75,7 +89,22 @@@ public class S7ProtocolLogic extends Pl
  
      private final Logger logger = LoggerFactory.getLogger(S7ProtocolLogic.class);
      private final AtomicInteger tpduGenerator = new AtomicInteger(10);
-     
+ 
 +    /*
 +     * Take into account that the size of this buffer depends on the final device.
-      * S7-300 goes from 20 to 300 and for S7-400 it goes from 300 to 10000. 
-      * Depending on the configuration of the alarm system, a large number of 
-      * them should be expected when starting the connection. 
++     * S7-300 goes from 20 to 300 and for S7-400 it goes from 300 to 10000.
++     * Depending on the configuration of the alarm system, a large number of
++     * them should be expected when starting the connection.
 +     * (Examples of this are PCS7 and Braumat).
 +     * Alarm filtering, ack, etc. must be performed by the client application.
-     */    
++    */
 +    private final BlockingQueue eventqueue = new ArrayBlockingQueue<>(1024);
 +    private final S7ProtocolEventLogic EventLogic = new S7ProtocolEventLogic(eventqueue);
 +    private final S7PlcSubscriptionHandle modeHandle = new S7PlcSubscriptionHandle(EventType.MODE,EventLogic);
 +    private final S7PlcSubscriptionHandle sysHandle = new S7PlcSubscriptionHandle(EventType.SYS,EventLogic);
 +    private final S7PlcSubscriptionHandle usrHandle = new S7PlcSubscriptionHandle(EventType.USR,EventLogic);
 +    private final S7PlcSubscriptionHandle almHandle = new S7PlcSubscriptionHandle(EventType.ALM,EventLogic);
 +
      private S7DriverContext s7DriverContext;
      private RequestTransactionManager tm;
  
@@@ -320,325 -291,12 +321,325 @@@
          return future;
      }
  
 +    @Override
 +    public CompletableFuture<PlcSubscriptionResponse> subscribe(PlcSubscriptionRequest subscriptionRequest) {
 +        CompletableFuture<PlcSubscriptionResponse> future = new CompletableFuture<>();
-         
++
 +        DefaultPlcSubscriptionRequest request = (DefaultPlcSubscriptionRequest) subscriptionRequest;
-         
++
 +        List<S7ParameterUserDataItem> parameterItems = new ArrayList<>(request.getNumberOfFields());
 +        List<S7PayloadUserDataItem> payloadItems = new ArrayList<>(request.getNumberOfFields());
 +
 +        for (String fieldName : request.getFieldNames()) {
 +            final DefaultPlcSubscriptionField sf = (DefaultPlcSubscriptionField) request.getField(fieldName);
 +            final S7SubscriptionField  field =  (S7SubscriptionField) sf.getPlcField();
 +
 +            switch(field.getFieldtype()){
 +                case EVENT_SUBSCRIPTION:;
 +                    encodeEventSubcriptionRequest(request, parameterItems, payloadItems);
 +                    break;
 +                case EVENT_UNSUBSCRIPTION:;
 +                    //encodeEventUnSubcriptionRequest(msg, out);
 +                    break;
 +                case ALARM_ACK:;
 +                    //encodeAlarmAckRequest(msg, out);
 +                    break;
 +                case ALARM_QUERY:;
 +                    //encodeAlarmQueryRequest(msg, out);
 +                    break;
 +                case CYCLIC_SUBSCRIPTION:;
 +                    //encodeCycledSubscriptionRequest(msg, out);
 +                    break;
 +                case CYCLIC_UNSUBSCRIPTION:;
 +                    //encodeCycledUnSubscriptionRequest(msg, out);
-                     break;                     
-                 default:;                     
++                    break;
++                default:;
 +            };
 +            //final PlcValue plcValue = request.getPlcValue(fieldName);
 +            //parameterItems.add(new S7VarRequestParameterItemAddress(encodeS7Address(field)));
 +            //payloadItems.add(serializePlcValue(field, plcValue));
 +        }
 +        final int tpduId = tpduGenerator.getAndIncrement();
 +        // If we've reached the max value for a 16 bit transaction identifier, reset back to 1
 +        if(tpduGenerator.get() == 0xFFFF) {
 +            tpduGenerator.set(1);
 +        }
-         
++
 +        TPKTPacket tpktPacket = new TPKTPacket(new COTPPacketData(null,
 +            new S7MessageUserData(tpduId,
 +                new S7ParameterUserData(parameterItems.toArray(new S7ParameterUserDataItem[0])),
 +                new S7PayloadUserData(payloadItems.toArray(new S7PayloadUserDataItemCpuFunctionMsgSubscription[0]))),
-             true, (short) tpduId));  
-         
++            true, (short) tpduId));
++
 +        // Start a new request-transaction (Is ended in the response-handler)
-         RequestTransactionManager.RequestTransaction transaction = tm.startRequest();        
++        RequestTransactionManager.RequestTransaction transaction = tm.startRequest();
 +        transaction.submit(() -> context.sendRequest(tpktPacket)
 +            .onTimeout(new TransactionErrorCallback<>(future, transaction))
 +            .onError(new TransactionErrorCallback<>(future, transaction))
 +            .expectResponse(TPKTPacket.class, REQUEST_TIMEOUT)
 +            .check(p -> p.getPayload() instanceof COTPPacketData)
 +            .unwrap(p -> ((COTPPacketData) p.getPayload()))
 +            .unwrap(COTPPacket::getPayload)
 +            .check(p -> p.getTpduReference() == tpduId)
 +            .handle(p -> {
 +                try {
 +                    future.complete(((PlcSubscriptionResponse) decodeEventSubcriptionRequest(p, subscriptionRequest)));
 +                } catch (PlcProtocolException e) {
 +                    logger.warn("Error sending 'write' message: '{}'", e.getMessage(), e);
 +                }
 +                // Finish the request-transaction.
 +                transaction.endRequest();
-             }));        
++            }));
 +        return future;
 +    }
-     
-     
++
++
 +    @Override
 +    public CompletableFuture<PlcUnsubscriptionResponse> unsubscribe(PlcUnsubscriptionRequest unsubscriptionRequest) {
-         CompletableFuture<PlcUnsubscriptionResponse> future = new CompletableFuture<>(); 
++        CompletableFuture<PlcUnsubscriptionResponse> future = new CompletableFuture<>();
 +        DefaultPlcUnsubscriptionRequest request = (DefaultPlcUnsubscriptionRequest) unsubscriptionRequest;
-           
++
 +        return future;
 +    }
 +
 +    private void encodeEventSubcriptionRequest(DefaultPlcSubscriptionRequest request,
 +                                                List<S7ParameterUserDataItem> parameterItems,
 +                                                List<S7PayloadUserDataItem> payloadItems){
 +        byte subsevent = 0;
 +        for (String fieldName : request.getFieldNames()) {
 +
 +            if (request.getField(fieldName) instanceof DefaultPlcSubscriptionField){
 +                PlcField event = ((DefaultPlcSubscriptionField) request.getField(fieldName)).getPlcField();
 +                if (event instanceof S7SubscriptionField) {
 +                    subsevent = (byte) (subsevent | ((S7SubscriptionField) event).getEventtype().getValue());
 +                }
-             }  
++            }
 +        }
-         
++
 +        S7ParameterUserDataItemCPUFunctions parameter = new S7ParameterUserDataItemCPUFunctions(
 +                                                                (short) 0x11,   //Method
 +                                                                (byte) 0x04,    //FunctionType
 +                                                                (byte) 0x04,    //FunctionGroup
 +                                                                (short) 0x02,   //SubFunction
 +                                                                (short) 0x00,   //SequenceNumber
 +                                                                null,   //DataUnitReferenceNumber
 +                                                                null,   //LastDataUnit
 +                                                                null         //errorCode
 +                                                    );
 +        parameterItems.clear();
 +        parameterItems.add(parameter);
-         
-         
++
++
 +        S7PayloadUserDataItemCpuFunctionMsgSubscription payload = null;
 +
 +        if (subsevent > 0) {
 +            payload = new S7PayloadUserDataItemCpuFunctionMsgSubscription(
 +                            DataTransportErrorCode.OK,
 +                            DataTransportSize.OCTET_STRING,
 +                            subsevent,
 +                            "HmiRtm  ",
 +                            null,
 +                            null);
 +        } else {
 +            //TODO: Check for ALARM_S (S7300) and ALARM_8 (S7400), maybe we need verify the CPU
 +            AlarmStateType alarmtype;
 +            if (s7DriverContext.getControllerType() == S7ControllerType.S7_400){
 +                alarmtype =AlarmStateType.ALARM_INITIATE;
 +            } else {
 +                alarmtype =AlarmStateType.ALARM_S_INITIATE;
-             } 
++            }
 +            payload = new S7PayloadUserDataItemCpuFunctionMsgSubscription(
 +                            DataTransportErrorCode.OK,
 +                            DataTransportSize.OCTET_STRING,
 +                            subsevent,
 +                            "HmiRtm  ",
 +                            alarmtype,
-                             (short) 0x00);            
++                            (short) 0x00);
 +        }
 +        payloadItems.clear();
 +        payloadItems.add(payload);
-         
++
 +    }
-     
++
 +    private PlcSubscriptionResponse decodeEventSubcriptionRequest(S7Message responseMessage,
 +                                                PlcSubscriptionRequest plcSubscriptionRequest)
-                                                 throws PlcProtocolException 
++                                                throws PlcProtocolException
 +    {
 +        Map<String, ResponseItem<PlcSubscriptionHandle>> values = new HashMap<>();
 +        short errorClass = 0;
 +        short errorCode = 0;
 +        if(responseMessage instanceof S7MessageUserData) {
 +            S7MessageUserData messageUserData = (S7MessageUserData) responseMessage;
 +            S7PayloadUserData payload = (S7PayloadUserData) messageUserData.getPayload();
 +            //errorClass = payload.getItems()[0].
 +           // errorCode = messageUserData.getParameter().
-             
++
 +        } else if(responseMessage instanceof S7MessageResponse) {
 +            S7MessageResponse messageResponse = (S7MessageResponse) responseMessage;
 +            errorClass = messageResponse.getErrorClass();
 +            errorCode = messageResponse.getErrorCode();
 +        } else {
 +            throw new PlcProtocolException("Unsupported message type " + responseMessage.getClass().getName());
 +        }
-         
++
 +        // If the result contains any form of non-null error code, handle this instead.
 +        if((errorClass != 0) || (errorCode != 0)) {
 +            // This is usually the case if PUT/GET wasn't enabled on the PLC
 +            if((errorClass == 129) && (errorCode == 4)) {
 +                logger.warn("Got an error response from the PLC. This particular response code usually indicates " +
 +                    "that PUT/GET is not enabled on the PLC.");
 +                for (String fieldName : plcSubscriptionRequest.getFieldNames()) {
 +                    values.put(fieldName, null);
 +                }
 +                return new DefaultPlcSubscriptionResponse(plcSubscriptionRequest, values);
 +            } else {
 +                logger.warn("Got an unknown error response from the PLC. Error Class: {}, Error Code {}. " +
 +                    "We probably need to implement explicit handling for this, so please file a bug-report " +
 +                    "on https://issues.apache.org/jira/projects/PLC4X and ideally attach a WireShark dump " +
 +                    "containing a capture of the communication.",
 +                    errorClass, errorCode);
 +                for (String fieldName : plcSubscriptionRequest.getFieldNames()) {
 +                    values.put(fieldName, null);
 +                }
 +                return new DefaultPlcSubscriptionResponse(plcSubscriptionRequest, values);
 +            }
 +        }
 +        // In all other cases all went well.
 +        S7PayloadUserData payload = (S7PayloadUserData) responseMessage.getPayload();
-         
++
 +        S7PayloadUserDataItem[] payloadItems = payload.getItems();
-         
++
 +        //Only one item for any number of subscription (4)
 +        if (payloadItems.length == 0) {
 +            throw new PlcProtocolException(
 +                    "The number of requested items doesn't match the number of returned items");
 +        }
-         
++
 +        boolean responseOk = false;
 +        if (payloadItems[0] instanceof S7PayloadUserDataItemCpuFunctionMsgSubscriptionResponse) {
 +                S7PayloadUserDataItemCpuFunctionMsgSubscriptionResponse item =
-                 (S7PayloadUserDataItemCpuFunctionMsgSubscriptionResponse) 
++                (S7PayloadUserDataItemCpuFunctionMsgSubscriptionResponse)
 +                payloadItems[0];
 +                if ((item.getReturnCode() == DataTransportErrorCode.OK) &&
 +                    (item.getTransportSize() == DataTransportSize.OCTET_STRING)) {
 +                    responseOk = true;
 +                }
 +        } else if (payloadItems[0] instanceof S7PayloadUserDataItemCpuFunctionMsgSubscriptionSysResponse) {
 +                 S7PayloadUserDataItemCpuFunctionMsgSubscriptionSysResponse item =
-                 (S7PayloadUserDataItemCpuFunctionMsgSubscriptionSysResponse) 
-                 payloadItems[0];  
++                (S7PayloadUserDataItemCpuFunctionMsgSubscriptionSysResponse)
++                payloadItems[0];
 +                if ((item.getReturnCode() == DataTransportErrorCode.OK) &&
 +                    (item.getTransportSize() == DataTransportSize.OCTET_STRING)) {
 +                    responseOk = true;
-                 }                 
++                }
 +        } else if (payloadItems[0] instanceof S7PayloadUserDataItemCpuFunctionMsgSubscriptionAlarmResponse) {
 +                 S7PayloadUserDataItemCpuFunctionMsgSubscriptionAlarmResponse item =
-                 (S7PayloadUserDataItemCpuFunctionMsgSubscriptionAlarmResponse) 
-                 payloadItems[0];  
++                (S7PayloadUserDataItemCpuFunctionMsgSubscriptionAlarmResponse)
++                payloadItems[0];
 +                if ((item.getReturnCode() == DataTransportErrorCode.OK) &&
 +                    (item.getTransportSize() == DataTransportSize.OCTET_STRING)) {
 +                    responseOk = true;
-                 }                 
++                }
 +        }
-                 
++
 +        if (responseOk) {
 +            for (String fieldName : plcSubscriptionRequest.getFieldNames()) {
 +                DefaultPlcSubscriptionField dfield = (DefaultPlcSubscriptionField) plcSubscriptionRequest.getField(fieldName);
 +                S7SubscriptionField field = (S7SubscriptionField) dfield.getPlcField();
 +                switch(field.getEventtype()) {
 +                    case MODE: values.put(fieldName, new ResponseItem(PlcResponseCode.OK, modeHandle));
 +                    break;
 +                    case SYS: values.put(fieldName, new ResponseItem(PlcResponseCode.OK, sysHandle));
 +                    break;
 +                    case USR: values.put(fieldName, new ResponseItem(PlcResponseCode.OK, usrHandle));
 +                    break;
 +                    case ALM: values.put(fieldName, new ResponseItem(PlcResponseCode.OK, almHandle));
-                     break;                    
++                    break;
 +                }
-                 
-             }            
-            return new DefaultPlcSubscriptionResponse(plcSubscriptionRequest,values); 
-         }  
-         
++
++            }
++           return new DefaultPlcSubscriptionResponse(plcSubscriptionRequest,values);
++        }
++
 +        return null;
 +    }
-     
++
 +    private void encodeEventUnSubcriptionRequest(DefaultPlcSubscriptionRequest request,
 +                                                List<S7VarRequestParameterItem> parameterItems,
 +                                                 List<S7VarPayloadDataItem> payloadItems){
-         
++
 +    }
-     
++
 +    private void encodeAlarmAckRequest(DefaultPlcSubscriptionRequest request,
 +                                                List<S7VarRequestParameterItem> parameterItems,
 +                                                 List<S7VarPayloadDataItem> payloadItems){
-         
++
 +    }
-     
++
 +    private void encodeAlarmQueryRequest(DefaultPlcSubscriptionRequest request,
 +                                                List<S7VarRequestParameterItem> parameterItems,
 +                                                 List<S7VarPayloadDataItem> payloadItems){
-         
++
 +    }
-     
++
 +    private void encodeCycledSubscriptionRequest(DefaultPlcSubscriptionRequest request,
 +                                                List<S7VarRequestParameterItem> parameterItems,
 +                                                 List<S7VarPayloadDataItem> payloadItems){
-         
-     }    
-     
++
++    }
++
 +    private void encodeCycledUnSubscriptionRequest(DefaultPlcSubscriptionRequest request,
 +                                                List<S7VarRequestParameterItem> parameterItems,
 +                                                 List<S7VarPayloadDataItem> payloadItems){
-         
-     }    
-     
++
++    }
++
      /**
       * This method is only called when there is no Response Handler.
-      * 
++     *
       */
      @Override
      protected void decode(ConversationContext<TPKTPacket> context, TPKTPacket msg) throws Exception {
 -        throw new IllegalStateException("This should not happen!");
 +        //System.out.println(msg);
 +        S7Message s7msg = msg.getPayload().getPayload();
 +        S7Parameter parameter = s7msg.getParameter();
 +        if (parameter instanceof S7ParameterModeTransition){
 +            eventqueue.add(parameter);
 +        } else
 +        if (parameter instanceof S7ParameterUserData) {
 +            S7ParameterUserData parameterud = (S7ParameterUserData) parameter;
 +            S7ParameterUserDataItem[] parameterudis = parameterud.getItems();
 +            for (S7ParameterUserDataItem parameterudi:parameterudis){
 +                if (parameterudi instanceof S7ParameterUserDataItemCPUFunctions) {
 +                    S7ParameterUserDataItemCPUFunctions myparameter = (S7ParameterUserDataItemCPUFunctions) parameterudi;
 +                    //TODO: Check from mspec. We can try using "instanceof"
 +                    if ((myparameter.getCpuFunctionType() == 0x00) && (myparameter.getCpuSubfunction() == 0x03)) {
 +                        S7PayloadUserData payload = (S7PayloadUserData) s7msg.getPayload();
 +                        S7PayloadUserDataItem[] items = payload.getItems();
 +                        for (S7PayloadUserDataItem item:items){
 +                            if (item instanceof S7PayloadDiagnosticMessage){
 +                                eventqueue.add(item);
 +                            }
 +                        }
-                     } else if ((myparameter.getCpuFunctionType() == 0x00) && 
-                               ((myparameter.getCpuSubfunction() == 0x05) || 
++                    } else if ((myparameter.getCpuFunctionType() == 0x00) &&
++                              ((myparameter.getCpuSubfunction() == 0x05) ||
 +                               (myparameter.getCpuSubfunction() == 0x06) ||
-                                (myparameter.getCpuSubfunction() == 0x0c) ||                            
++                               (myparameter.getCpuSubfunction() == 0x0c) ||
 +                               (myparameter.getCpuSubfunction() == 0x11) ||
 +                               (myparameter.getCpuSubfunction() == 0x12) ||
 +                               (myparameter.getCpuSubfunction() == 0x13) ||
 +                               (myparameter.getCpuSubfunction() == 0x16))) {
 +                        S7PayloadUserData payload = (S7PayloadUserData) s7msg.getPayload();
 +                        S7PayloadUserDataItem[] items = payload.getItems();
 +                        for (Object item:items){
-                             eventqueue.add(item); 
-                         }                        
++                            eventqueue.add(item);
++                        }
 +                    } else if ((myparameter.getCpuFunctionType() == 0x00) && (myparameter.getCpuSubfunction() == 0x13)) {
-                         
++
 +                    }
 +                }
 +            }
 +        }
      }
  
      @Override
@@@ -856,10 -513,20 +857,20 @@@
          try {
              DataTransportSize transportSize = field.getDataType().getDataTransportSize();
              int stringLength = (field instanceof S7StringField) ? ((S7StringField) field).getStringLength() : 254;
-             WriteBufferByteBased writeBuffer = (WriteBufferByteBased) DataItemIO.staticSerialize(plcValue, field.getDataType().getDataProtocolId(),
-                 stringLength);
-             if(writeBuffer != null) {
-                 byte[] data = writeBuffer.getData();
+             ByteBuffer byteBuffer = null;
+             for(int i = 0; i < field.getNumberOfElements(); i++) {
 -                WriteBufferByteBased writeBuffer = DataItemIO.staticSerialize(plcValue.getIndex(i),
++                WriteBufferByteBased writeBuffer = (WriteBufferByteBased) DataItemIO.staticSerialize(plcValue.getIndex(i),
+                     field.getDataType().getDataProtocolId(), stringLength);
+                 if(writeBuffer != null) {
+                     // Allocate enough space for all items.
+                     if(byteBuffer == null) {
+                         byteBuffer = ByteBuffer.allocate(writeBuffer.getData().length * field.getNumberOfElements());
+                     }
+                     byteBuffer.put(writeBuffer.getData());
+                 }
+             }
+             if(byteBuffer != null) {
+                 byte[] data = byteBuffer.array();
                  return new S7VarPayloadDataItem(DataTransportErrorCode.OK, transportSize, data);
              }
          } catch (ParseException e) {
diff --cc plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/utils/StaticHelper.java
index b738c13,cd6ca70..bc0931a
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/utils/StaticHelper.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/utils/StaticHelper.java
@@@ -1,24 -1,23 +1,24 @@@
  /*
- 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.
- */
+  * 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.s7.utils;
  
 +import java.nio.charset.Charset;
  import org.apache.commons.lang3.NotImplementedException;
  import org.apache.plc4x.java.api.exceptions.PlcRuntimeException;
  import org.apache.plc4x.java.api.value.PlcValue;
diff --cc protocols/s7/src/main/resources/protocols/s7/s7.mspec
index d69b4e9,464cf77..d1ebfa0
--- a/protocols/s7/src/main/resources/protocols/s7/s7.mspec
+++ b/protocols/s7/src/main/resources/protocols/s7/s7.mspec
@@@ -149,15 -149,6 +149,15 @@@
              [implicit uint 8                  'numItems' 'COUNT(items)']
              [array    S7ParameterUserDataItem 'items' count 'numItems']
          ]
 +        ['0x01','0x07' S7ParameterModeTransition
 +            [reserved uint 16  '0x0010']
 +            [implicit uint 8  'itemLength' 'lengthInBytes - 2']
 +            [simple   uint 8  'method']
 +            [simple   uint 4  'cpuFunctionType']
 +            [simple   uint 4  'cpuFunctionGroup']
 +            [simple   uint 8  'currentMode']
-             [simple   uint 8  'sequenceNumber']             
++            [simple   uint 8  'sequenceNumber']
 +        ]
      ]
  ]
  
@@@ -250,169 -241,7 +250,169 @@@
      [enum DataTransportErrorCode 'returnCode']
  ]
  
 -[discriminatedType 'S7PayloadUserDataItem' [uint 4 'cpuFunctionType']
 +
 +////////////////////////////////////////////////////////////////
 +// Event 7 Alarms Types
 +////////////////////////////////////////////////////////////////
 +
 +//Under test
 +[discriminatedType  'S7DataAlarmMessage' [uint 4 'cpuFunctionType']
 +    [const    uint 8 'functionId' '0x00']
 +    [const    uint 8 'numberMessageObj' '0x01']
 +    [typeSwitch 'cpuFunctionType'
 +        ['0x04' S7MessageObjectRequest
 +            [const  uint 8  'variableSpec'  '0x12']
 +            [const  uint 8  'length'        '0x08']
 +            [enum   SyntaxIdType    'syntaxId']
 +            [reserved uint 8        '0x00']
 +            [enum   QueryType    'queryType']
 +            [reserved uint 8        '0x34']
 +            [enum   AlarmType    'alarmType']
 +        ]
 +        ['0x08' S7MessageObjectResponse
 +            [enum     DataTransportErrorCode 'returnCode']
 +            [enum     DataTransportSize      'transportSize']
 +            [reserved uint 8        '0x00']
-         ]        
++        ]
 +    ]
 +]
 +
 +[type 'AssociatedValueType'
 +    [enum   DataTransportErrorCode 'returnCode']
 +    [enum   DataTransportSize      'transportSize']
 +    [manual uint 16 'valueLength' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.RightShift3", readBuffer)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.LeftShift3", writeBuffer, _value.valueLength)' '2']
 +    [array uint 8 'data' count 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.EventItemLength", readBuffer, valueLength)']
 +]
 +
 +//TODO: Convert BCD to uint
 +[type 'DateAndTime'
 +    [manual uint 8 'year' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.BcdToInt", readBuffer)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.ByteToBcd", writeBuffer, _value.year)' '1']
 +    [manual uint 8  'month' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.BcdToInt", readBuffer)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.ByteToBcd", writeBuffer, _value.month)' '1']
 +    [manual uint 8  'day' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.BcdToInt", readBuffer)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.ByteToBcd", writeBuffer, _value.day)' '1']
 +    [manual uint 8  'hour' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.BcdToInt", readBuffer)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.ByteToBcd", writeBuffer, _value.hour)' '1']
 +    [manual uint 8  'minutes' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.BcdToInt", readBuffer)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.ByteToBcd", writeBuffer, _value.minutes)' '1']
 +    [manual uint 8  'seconds' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.BcdToInt", readBuffer)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.ByteToBcd", writeBuffer, _value.seconds)' '1']
 +    [manual uint 12 'msec' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.S7msecToInt", readBuffer)' 'STATIC_CALL("org.apache.plc4x.java.s7.utils.S7EventHelper.IntToS7msec", writeBuffer, _value.msec)' '2']
-     [simple uint 4  'dow'] 
++    [simple uint 4  'dow']
 +]
 +
 +[type 'State'
 +    [simple bit 'SIG_8']
-     [simple bit 'SIG_7']  
++    [simple bit 'SIG_7']
 +    [simple bit 'SIG_6']
-     [simple bit 'SIG_5'] 
++    [simple bit 'SIG_5']
 +    [simple bit 'SIG_4']
-     [simple bit 'SIG_3']  
++    [simple bit 'SIG_3']
 +    [simple bit 'SIG_2']
-     [simple bit 'SIG_1']   
++    [simple bit 'SIG_1']
 +]
 +
 +[type 'AlarmMessageObjectPushType'
 +    [const uint 8 'variableSpec' '0x12']
-     [simple uint 8 'lengthspec']  
-     [simple SyntaxIdType 'syntaxId'] 
++    [simple uint 8 'lengthspec']
++    [simple SyntaxIdType 'syntaxId']
 +    [simple uint 8 'numberOfValues']
 +    [simple uint 32 'eventId']
 +    [simple State 'eventState']
 +    [simple State 'localState']
 +    [simple State 'ackStateGoing']
 +    [simple State 'ackStateComing']
 +    [array AssociatedValueType 'AssociatedValues' count 'numberOfValues' ]
 +]
 +
 +[type 'AlarmMessageAckObjectPushType'
 +    [const uint 8 'variableSpec' '0x12']
-     [simple uint 8 'lengthspec']  
-     [simple SyntaxIdType 'syntaxId'] 
++    [simple uint 8 'lengthspec']
++    [simple SyntaxIdType 'syntaxId']
 +    [simple uint 8 'numberOfValues']
 +    [simple uint 32 'eventId']
 +    [simple State 'ackStateGoing']
 +    [simple State 'ackStateComing']
 +]
 +
 +[type 'AlarmMessagePushType'
 +    [simple DateAndTime 'TimeStamp']
 +    [simple uint 8 'functionId']
 +    [simple uint 8 'numberOfObjects']
-     [array AlarmMessageObjectPushType 'messageObjects' count 'numberOfObjects' ]  
++    [array AlarmMessageObjectPushType 'messageObjects' count 'numberOfObjects' ]
 +]
 +
 +[type 'AlarmMessageAckPushType'
 +    [simple DateAndTime 'TimeStamp']
 +    [simple uint 8 'functionId']
 +    [simple uint 8 'numberOfObjects']
-     [array AlarmMessageAckObjectPushType 'messageObjects' count 'numberOfObjects' ]  
++    [array AlarmMessageAckObjectPushType 'messageObjects' count 'numberOfObjects' ]
 +]
 +
 +[type 'AlarmMessageObjectQueryType'
-     [simple uint 8 'lengthDataset'] 
++    [simple uint 8 'lengthDataset']
 +    [reserved uint 16 '0x0000']
 +    [const uint 8 'variableSpec' '0x12']
 +    [simple State 'eventState']
 +    [simple State 'ackStateGoing']
 +    [simple State 'ackStateComing']
 +    [simple DateAndTime 'timeComing']
-     [simple AssociatedValueType 'valueComing'] 
++    [simple AssociatedValueType 'valueComing']
 +    [simple DateAndTime 'timeGoing']
-     [simple AssociatedValueType 'valueGoing'] 
++    [simple AssociatedValueType 'valueGoing']
 +]
 +
 +[type 'AlarmMessageQueryType'
 +    [simple uint 8 'functionId']
 +    [simple uint 8 'numberOfObjects']
 +    [enum   DataTransportErrorCode 'returnCode']
 +    [enum   DataTransportSize      'transportSize']
 +    [const uint 16 'DataLength' '0xFFFF']
-     [array AlarmMessageObjectQueryType 'messageObjects' count 'numberOfObjects' ]  
++    [array AlarmMessageObjectQueryType 'messageObjects' count 'numberOfObjects' ]
 +]
 +
 +[type 'AlarmMessageObjectAckType'
 +    [const uint 8 'variableSpec' '0x12']
-     [const uint 8 'length' '0x08']  
-     [simple SyntaxIdType 'syntaxId'] 
++    [const uint 8 'length' '0x08']
++    [simple SyntaxIdType 'syntaxId']
 +    [simple uint 8 'numberOfValues']
 +    [simple uint 32 'eventId']
 +    [simple State 'ackStateGoing']
 +    [simple State 'ackStateComing']
 +]
 +
 +[type 'AlarmMessageAckType'
 +    [simple uint 8 'functionId']
 +    [simple uint 8 'numberOfObjects']
-     [array AlarmMessageObjectAckType 'messageObjects' count 'numberOfObjects' ]  
++    [array AlarmMessageObjectAckType 'messageObjects' count 'numberOfObjects' ]
 +]
 +
 +[type 'AlarmMessageAckResponseType'
 +    [simple uint 8 'functionId']
 +    [simple uint 8 'numberOfObjects']
-     [array uint 8 'messageObjects' count 'numberOfObjects' ]  
++    [array uint 8 'messageObjects' count 'numberOfObjects' ]
 +]
 +
 +////////////////////////////////////////////////////////////////
 +// DataItem by Function Type:
 +// 0x00 PUSH
 +// 0x04 TYPE_REQ
 +// 0x08 TYPE_RES
 +//
 +// DataItem by Sub Function Type:
 +// 0x01 CPU_READSZL
- // 0x02 CPU_MSGS 
++// 0x02 CPU_MSGS
 +// 0x03 CPU_DIAGMSG
 +// 0x05 ALARM8_IND
 +// 0x06 NOTIFY_IND
 +// 0x07 ALARM8LOCK
 +// 0x08 ALARM8UNLOCK
 +// 0x0b ALARMACK
 +// 0x0c ALARMACK_IND
 +// 0x0d ALARM8LOCK_IND
 +// 0x0e ALARM8UNLOCK_IND
 +// 0x11 ALARMSQ_IND
 +// 0x12 ALARMS_IND
 +// 0x13 ALARMQUERY
 +// 0x16 NOTIFY8_IND
 +////////////////////////////////////////////////////////////////
 +
 +[discriminatedType 'S7PayloadUserDataItem' [uint 4 'cpuFunctionType', uint 8 'cpuSubfunction']
      [enum     DataTransportErrorCode 'returnCode']
      [enum     DataTransportSize      'transportSize']
      [implicit uint 16                'dataLength' 'lengthInBytes - 4']
@@@ -464,60 -255,6 +464,60 @@@
              [implicit uint 16 'szlItemCount'  'COUNT(items)']
              [array SzlDataTreeItem 'items' count 'szlItemCount']
          ]
 +
 +        //Subscription to PUSH messages
 +        ['0x04', '0x02' S7PayloadUserDataItemCpuFunctionMsgSubscription
 +            [simple   uint 8    'Subscription']
 +            [reserved uint 8    '0x00']
 +            [simple string '64' 'UTF-8' 'magicKey']
 +            [optional AlarmStateType 'Alarmtype' 'Subscription >= 128']
 +            [optional uint 8 'Reserve' 'Subscription >= 128']
 +        ]
- 	['0x08', '0x02', '0x00' S7PayloadUserDataItemCpuFunctionMsgSubscriptionResponse
++	    ['0x08', '0x02', '0x00' S7PayloadUserDataItemCpuFunctionMsgSubscriptionResponse
 +        ]
- 	['0x08', '0x02', '0x02' S7PayloadUserDataItemCpuFunctionMsgSubscriptionSysResponse
++	    ['0x08', '0x02', '0x02' S7PayloadUserDataItemCpuFunctionMsgSubscriptionSysResponse
 +            [simple uint 8 'result']
 +            [simple uint 8 'reserved01']
 +        ]
- 	['0x08', '0x02', '0x05' S7PayloadUserDataItemCpuFunctionMsgSubscriptionAlarmResponse
++	    ['0x08', '0x02', '0x05' S7PayloadUserDataItemCpuFunctionMsgSubscriptionAlarmResponse
 +            [simple uint 8 'result']
 +            [simple uint 8 'reserved01']
 +            [simple AlarmType 'alarmType']
 +            [simple uint 8 'reserved02']
 +            [simple uint 8 'reserved03']
 +        ]
 +
 +        //ALARM_ACK Acknowledgment of alarms
 +        ['0x04', '0x0b' S7PayloadUserDataItemCpuFunctionAlarmAck
 +            [simple uint 8 'functionId']
 +            [implicit uint 8 'numberOfObjects' 'COUNT(messageObjects)']
-             [array AlarmMessageObjectAckType 'messageObjects' count 'numberOfObjects' ]  
++            [array AlarmMessageObjectAckType 'messageObjects' count 'numberOfObjects' ]
 +        ]
 +        ['0x08', '0x0b' S7PayloadUserDataItemCpuFunctionAlarmAckResponse
 +            [simple uint 8 'functionId']
 +            [implicit  uint 8 'numberOfObjects' 'COUNT(messageObjects)']
-             [array uint 8 'messageObjects' count 'numberOfObjects' ]  
++            [array uint 8 'messageObjects' count 'numberOfObjects' ]
 +        ]
 +
 +        //ALARM_QUERY Request for alarms stored in the controller
 +        ['0x04', '0x13' S7PayloadUserDataItemCpuFunctionAlarmQuery
 +            [const    uint 8 'functionId' '0x00']
 +            [const    uint 8 'numberMessageObj' '0x01']
 +            [const  uint 8  'variableSpec'  '0x12']
 +            [const  uint 8  'length'        '0x08']
 +            [enum   SyntaxIdType    'syntaxId']
 +            [reserved uint 8        '0x00']
 +            [enum   QueryType    'queryType']
 +            [reserved uint 8        '0x34']
 +            [enum   AlarmType    'alarmType']
 +        ]
 +        ['0x08', '0x13' S7PayloadUserDataItemCpuFunctionAlarmQueryResponse
 +            [const    uint 8 'functionId' '0x00']
 +            [const    uint 8 'numberMessageObj' '0x01']
 +            [enum     DataTransportErrorCode 'pudicfReturnCode']
 +            [enum     DataTransportSize      'pudicftransportSize']
 +            [reserved uint 8        '0x00']
 +        ]
      ]
  ]
  
@@@ -779,67 -516,3 +779,66 @@@
      ['0xA0' DIAGNOSTIC_BUFFER]
      ['0xB1' MODULE_DIAGNOSTIC_DATA]
  ]
 +
 +[enum uint 8 'CpuSubscribeEvents'
 +    ['0x01' CPU]
 +    ['0x02' IM]
 +    ['0x04' FM]
 +    ['0x80' CP]
 +]
 +
 +[enum uint 8 'EventType'
 +    ['0x01' MODE]
 +    ['0x02' SYS]
 +    ['0x04' USR]
 +    ['0x80' ALM]
 +]
 +
 +[enum uint 8 'SyntaxIdType'
 +    ['0x01' S7ANY]
 +    ['0x13' PBC_ID]
 +    ['0x15' ALARM_LOCKFREESET]
 +    ['0x16' ALARM_INDSET]
 +    ['0x19' ALARM_ACKSET]
 +    ['0x1A' ALARM_QUERYREQSET]
 +    ['0x1C' NOTIFY_INDSET]
 +    ['0x82' NCK]
 +    ['0x83' NCK_METRIC]
 +    ['0x84' NCK_INCH]
 +    ['0xA2' DRIVEESANY]
 +    ['0xB2' SYM1200]
 +    ['0xB0' DBREAD]
 +]
 +
 +[enum uint 8 'AlarmType'
 +    ['0x01' SCAN]
 +    ['0x02' ALARM_8]
 +    ['0x04' ALARM_S]
 +]
 +
 +[enum uint 8 'AlarmStateType'
 +    ['0x00' SCAN_ABORT]
 +    ['0x01' SCAN_INITIATE]
 +    ['0x04' ALARM_ABORT]
 +    ['0x05' ALARM_INITIATE]
 +    ['0x08' ALARM_S_ABORT]
 +    ['0x09' ALARM_S_INITIATE]
 +]
 +
 +[enum uint 8 'QueryType'
 +    ['0x01' BYALARMTYPE]
 +    ['0x02' ALARM_8]
 +    ['0x04' ALARM_S]
 +]
 +
 +[enum uint 8 'ModeTransitionType'
 +    ['0x00' STOP]
 +    ['0x01' WARM_RESTART]
 +    ['0x02' RUN]
 +    ['0x03' HOT_RESTART]
 +    ['0x04' HOLD]
 +    ['0x06' COLD_RESTART]
 +    ['0x09' RUN_R]
 +    ['0x11' LINK_UP]
 +    ['0x12' UPDATE]
 +]
-