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 2023/02/04 15:20:11 UTC

[plc4x] branch refactor/cdutz/global-changes-of-spnettech-repo created (now bc4f2a1091)

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

cdutz pushed a change to branch refactor/cdutz/global-changes-of-spnettech-repo
in repository https://gitbox.apache.org/repos/asf/plc4x.git


      at bc4f2a1091 Merge remote-tracking branch 'origin/develop' into refactor/cdutz/global-changes-of-spnettech-repo

This branch includes the following new commits:

     new 1e8ec2ee3d chore: Started making the PR buildable
     new bc4f2a1091 Merge remote-tracking branch 'origin/develop' into refactor/cdutz/global-changes-of-spnettech-repo

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[plc4x] 01/02: chore: Started making the PR buildable

Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch refactor/cdutz/global-changes-of-spnettech-repo
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit 1e8ec2ee3da35671228bebe0415affee6fca694e
Author: Christofer Dutz <ch...@rivian.com>
AuthorDate: Sat Feb 4 13:25:03 2023 +0100

    chore: Started making the PR buildable
---
 code-generation/language-c/pom.xml                 |     1 -
 .../resources/templates/c/data-io-template.c.ftlh  |     4 +
 code-generation/language-go/pom.xml                |     1 -
 .../plc4x/include/plc4c/driver_plc4x_static.h      |     2 +
 plc4c/drivers/plc4x/src/driver_plc4x_static.c      |    28 +
 .../s7/include/plc4c/driver_s7_encode_decode.h     |     6 +
 plc4c/drivers/s7/include/plc4c/driver_s7_static.h  |     4 +-
 plc4c/drivers/s7/src/driver_s7_encode_decode.c     |    66 +-
 plc4c/drivers/s7/src/driver_s7_packets.c           |    13 +-
 plc4c/drivers/s7/src/driver_s7_sm_read.c           |    13 +-
 plc4c/drivers/s7/src/driver_s7_static.c            |     4 +-
 plc4c/generated-sources/plc4x/src/plc4x_value.c    |    34 +
 plc4c/generated-sources/s7/include/data_item.h     |     8 +-
 plc4c/generated-sources/s7/src/data_item.c         |    60 +-
 plc4c/generated-sources/s7/src/transport_size.c    |    16 +-
 plc4go/go.mod                                      |     2 +-
 plc4go/internal/s7/Reader.go                       |     7 +-
 plc4go/internal/s7/Tag.go                          |    54 +-
 plc4go/internal/s7/TagHandler.go                   |    68 +-
 plc4go/internal/s7/Writer.go                       |     2 +-
 plc4go/internal/simulated/Reader_test.go           |     2 +-
 plc4go/internal/simulated/Writer_test.go           |     2 +-
 .../protocols/abeth/readwrite/XmlParserHelper.go   |     4 +-
 plc4j/api/pom.xml                                  |     3 +
 .../apache/plc4x/java/DefaultPlcDriverManager.java |    41 +-
 .../plc4x/java/api/PlcConnectionManager.java       |     1 +
 .../org/apache/plc4x/java/api/model/PlcTag.java    |    13 +
 .../apache/plc4x/java/ads/tag/DirectAdsTag.java    |     1 +
 .../canopen/SDODownloadConversation.java           |     2 +-
 .../java/firmata/readwrite/tag/FirmataTag.java     |     1 +
 plc4j/drivers/knxnetip/pom.xml                     |     2 +-
 .../knxnetip/protocol/KnxNetIpProtocolLogic.java   |     2 +-
 plc4j/drivers/opcua/pom.xml                        |    14 +-
 .../java/opcua/readwrite/OpcuaNodeIdServices.java  |   673 +
 .../apache/plc4x/java/opcua/OpcuaPlcDriver.java    |     1 +
 .../plc4x/java/opcua/context/SecureChannel.java    |     6 +-
 .../plc4x/java/plc4x/readwrite/Plc4xValue.java     |    32 +
 .../java/plc4x/protocol/Plc4xProtocolLogic.java    |    13 +-
 .../java/plc4x/readwrite/utils/StaticHelper.java   |    94 +
 .../plc4x/java/plc4x/tag/Plc4XTagHandler.java      |     7 +-
 .../org/apache/plc4x/java/plc4x/tag/Plc4xTag.java  |    13 +-
 plc4j/drivers/pom.xml                              |    15 +
 .../apache/plc4x/java/s7/readwrite/DataItem.java   |    72 +-
 .../s7/readwrite/S7PayloadReadVarResponse.java     |     2 +-
 .../java/s7/readwrite/S7VarPayloadDataItem.java    |    39 +-
 .../plc4x/java/s7/readwrite/TransportSize.java     |    18 +-
 .../readwrite/configuration/S7Configuration.java   |    60 +-
 .../java/s7/readwrite/context/S7DriverContext.java |     4 +-
 .../optimizer/DefaultS7MessageProcessor.java       |     6 +-
 .../java/s7/readwrite/optimizer/S7Optimizer.java   |    27 +-
 .../readwrite/protocol/S7ProtocolEventLogic.java   |     6 +-
 .../s7/readwrite/protocol/S7ProtocolLogic.java     |   188 +-
 .../plc4x/java/s7/readwrite/tag/S7StringTag.java   |     5 +-
 .../apache/plc4x/java/s7/readwrite/tag/S7Tag.java  |   103 +-
 .../java/s7/readwrite/utils/StaticHelper.java      |   212 +-
 plc4j/drivers/s7/src/test/java/S7IoTest.java       |     9 +-
 .../drivers/s7/src/test/resources/logback-test.xml |     2 +-
 .../simulated/connection/SimulatedConnection.java  |    30 +-
 .../examples/connectivity/mqtt/MqttConnector.java  |    66 +-
 .../src/main/resources/mqtt-connector.yml          |    35 +
 .../java/examples/helloinflux/HelloInflux.java     |     2 +-
 plc4j/examples/hello-world-kotlin/pom.xml          |     2 +-
 plc4j/integrations/apache-kafka/pom.xml            |     2 +-
 plc4j/integrations/opcua-server/pom.xml            |     8 +-
 .../opcuaserver/backend/Plc4xCommunication.java    |    23 +-
 .../java/opcuaserver/backend/Plc4xNamespace.java   |     5 +-
 plc4j/pom.xml                                      |     3 +
 .../apache/plc4x/java/spi/Plc4xNettyWrapper.java   |    50 +-
 .../apache/plc4x/java/spi/Plc4xProtocolBase.java   |     7 +
 .../plc4x/java/spi/connection/ChannelFactory.java  |     3 +-
 .../spi/connection/DefaultNettyPlcConnection.java  |    36 +-
 .../java/spi/connection/NettyChannelFactory.java   |    12 +
 .../java/spi/generation/WriteBufferByteBased.java  |     2 +
 .../java/spi/internal/HandlerRegistration.java     |    14 +-
 .../java/spi/messages/DefaultPlcWriteRequest.java  |     5 +
 .../java/spi/model/DefaultPlcSubscriptionTag.java  |     4 +-
 .../spi/transaction/RequestTransactionManager.java |    37 +-
 .../org/apache/plc4x/java/spi/values/PlcBOOL.java  |     2 +
 .../org/apache/plc4x/java/spi/values/PlcBYTE.java  |     8 +-
 .../org/apache/plc4x/java/spi/values/PlcCHAR.java  |    45 +
 .../plc4x/java/spi/values/PlcDATE_AND_TIME.java    |    33 +
 .../org/apache/plc4x/java/spi/values/PlcDINT.java  |     2 +
 .../org/apache/plc4x/java/spi/values/PlcDWORD.java |     2 +
 .../org/apache/plc4x/java/spi/values/PlcINT.java   |     2 +
 .../org/apache/plc4x/java/spi/values/PlcLINT.java  |     2 +
 .../org/apache/plc4x/java/spi/values/PlcLREAL.java |     2 +
 .../org/apache/plc4x/java/spi/values/PlcLTIME.java |    16 +
 .../org/apache/plc4x/java/spi/values/PlcLWORD.java |     2 +
 .../org/apache/plc4x/java/spi/values/PlcSINT.java  |     2 +
 .../org/apache/plc4x/java/spi/values/PlcTIME.java  |    16 +
 .../plc4x/java/spi/values/PlcTIME_OF_DAY.java      |     4 +
 .../org/apache/plc4x/java/spi/values/PlcUDINT.java |     2 +
 .../org/apache/plc4x/java/spi/values/PlcUINT.java  |     2 +
 .../org/apache/plc4x/java/spi/values/PlcULINT.java |     2 +
 .../org/apache/plc4x/java/spi/values/PlcUSINT.java |     2 +
 .../plc4x/java/spi/values/PlcValueHandler.java     |    81 +-
 .../org/apache/plc4x/java/spi/values/PlcWCHAR.java |     2 +
 .../org/apache/plc4x/java/spi/values/PlcWORD.java  |     2 +
 .../plc4x/java/spi/Plc4xNettyWrapperTest.java      |     4 +-
 .../optimizer/RequestTransactionManagerTest.java   |    20 +-
 .../utils/cache/CachedPlcConnectionManager.java    |    23 +-
 .../java/utils/cache/LeasedPlcConnection.java      |    19 +-
 .../plc4x/java/plc4x/readwrite/Plc4xValue.java     |    32 +
 .../java/plc4x/readwrite/utils/StaticHelper.java   |    94 +
 .../plc4xserver/protocol/Plc4xServerAdapter.java   |     5 +-
 plc4j/transports/pom.xml                           |    16 +-
 .../server/s7/protocol/S7Step7ServerAdapter.java   |    24 +-
 pom.xml                                            |    18 +-
 .../opcua/downloads/Opc.Ua.NodeIds.Services.csv    |  1749 +
 .../opcua/downloads/Opc.Ua.NodeSet2.Services.xml   | 63477 +++++++++++++++++++
 protocols/opcua/downloads/Opc.Ua.Types.bsd         |  3162 +
 protocols/opcua/downloads/StatusCode.csv           |   261 +
 protocols/opcua/pom.xml                            |    26 +-
 .../main/resources/protocols/plc4x/v0/plc4x.mspec  |    14 +-
 protocols/pom.xml                                  |     3 +
 .../s7/src/main/resources/protocols/s7/s7.mspec    |    36 +-
 116 files changed, 71004 insertions(+), 644 deletions(-)

diff --git a/code-generation/language-c/pom.xml b/code-generation/language-c/pom.xml
index c9cd041200..fd86a7a987 100644
--- a/code-generation/language-c/pom.xml
+++ b/code-generation/language-c/pom.xml
@@ -62,7 +62,6 @@
                 <extraArtifact>org.apache.plc4x.plugins:plc4x-maven-plugin:${plc4x-code-generation.version}</extraArtifact>
                 <extraArtifact>org.apache.plc4x.plugins:plc4x-code-generation-protocol-base:${plc4x-code-generation.version}</extraArtifact>
                 <extraArtifact>org.apache.plc4x.plugins:plc4x-code-generation-types-base:${plc4x-code-generation.version}</extraArtifact>
-                <extraArtifact>org.apache.plc4x.plugins:plc4x-code-generation-types-base:${plc4x-code-generation.version}</extraArtifact>
               </extraArtifacts>
               <pomIncludes>
                 <pomInclude>*/pom.xml</pomInclude>
diff --git a/code-generation/language-c/src/main/resources/templates/c/data-io-template.c.ftlh b/code-generation/language-c/src/main/resources/templates/c/data-io-template.c.ftlh
index 114889903b..bf1a543262 100644
--- a/code-generation/language-c/src/main/resources/templates/c/data-io-template.c.ftlh
+++ b/code-generation/language-c/src/main/resources/templates/c/data-io-template.c.ftlh
@@ -179,7 +179,11 @@ plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_buffer*
                 return new PlcStruct(${field.name});
                             <#break-->
                         <#case "STRING">
+                                <#if (parserArguments?filter(parserArgument->parserArgument.name=="stringLength"))?has_content>
                 *data_item = plc4c_data_create_string_data(stringLength, ${manualField.name});
+                                <#else>
+                *data_item = plc4c_data_create_string_data(strlen(value), ${manualField.name});
+                                </#if>
                             <#break>
                         <#default>
                 *data_item = plc4c_data_create_${case.name?lower_case}_data(${manualField.name});
diff --git a/code-generation/language-go/pom.xml b/code-generation/language-go/pom.xml
index a452077012..cc2f201576 100644
--- a/code-generation/language-go/pom.xml
+++ b/code-generation/language-go/pom.xml
@@ -62,7 +62,6 @@
                 <extraArtifact>org.apache.plc4x.plugins:plc4x-maven-plugin:${plc4x-code-generation.version}</extraArtifact>
                 <extraArtifact>org.apache.plc4x.plugins:plc4x-code-generation-protocol-base:${plc4x-code-generation.version}</extraArtifact>
                 <extraArtifact>org.apache.plc4x.plugins:plc4x-code-generation-types-base:${plc4x-code-generation.version}</extraArtifact>
-                <extraArtifact>org.apache.plc4x.plugins:plc4x-code-generation-types-base:${plc4x-code-generation.version}</extraArtifact>
               </extraArtifacts>
               <pomIncludes>
                 <pomInclude>*/pom.xml</pomInclude>
diff --git a/plc4c/drivers/plc4x/include/plc4c/driver_plc4x_static.h b/plc4c/drivers/plc4x/include/plc4c/driver_plc4x_static.h
index 4a6d28aada..1e6cdc2bc6 100644
--- a/plc4c/drivers/plc4x/include/plc4c/driver_plc4x_static.h
+++ b/plc4c/drivers/plc4x/include/plc4c/driver_plc4x_static.h
@@ -36,6 +36,8 @@ extern "C" {
 
 uint8_t plc4c_spi_evaluation_helper_str_len(char* str);
 
+char* plc4c_plc4x_read_write_parse_string(plc4c_spi_read_buffer* io, char* encoding);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/plc4c/drivers/plc4x/src/driver_plc4x_static.c b/plc4c/drivers/plc4x/src/driver_plc4x_static.c
index 9eff097145..fda73bf88b 100644
--- a/plc4c/drivers/plc4x/src/driver_plc4x_static.c
+++ b/plc4c/drivers/plc4x/src/driver_plc4x_static.c
@@ -30,3 +30,31 @@ uint8_t plc4c_spi_evaluation_helper_str_len(char* str) {
     return strlen(str);
 }
 
+char* plc4c_plc4x_read_write_parse_string(plc4c_spi_read_buffer* io, char* encoding) {
+  if (strcmp(encoding, "UTF-8") == 0) {
+    // Read the max length (which is not interesting for us.
+    uint8_t length;
+    plc4c_return_code res = plc4c_spi_read_unsigned_byte(io, 8, &length);
+    if (res != OK) {
+      return NULL;
+    }
+    char* result = malloc(sizeof(char) * (length + 1));
+    if (result == NULL) {
+      return NULL;
+    }
+    char* curPos = result;
+    for(int i = 0; i < length; i++) {
+      uint8_t val;
+      plc4c_return_code res = plc4c_spi_read_unsigned_byte(io, 8, &val);
+      if (res != OK) {
+        return NULL;
+      }
+      *curPos = (char) val;
+      curPos++;
+    }
+    *curPos = '\0';
+    return result;
+  } else if (strcmp(encoding, "UTF-16") == 0) {
+  }
+  return "";
+}
diff --git a/plc4c/drivers/s7/include/plc4c/driver_s7_encode_decode.h b/plc4c/drivers/s7/include/plc4c/driver_s7_encode_decode.h
index 28da28458b..b771f5bed9 100644
--- a/plc4c/drivers/s7/include/plc4c/driver_s7_encode_decode.h
+++ b/plc4c/drivers/s7/include/plc4c/driver_s7_encode_decode.h
@@ -27,6 +27,12 @@ extern "C" {
 #include "plc4c/driver_s7.h"
 #include "s7_var_request_parameter_item.h"
 
+struct plc4c_s7_read_write_s7_var_request_parameter_item_field {
+  plc4c_s7_read_write_s7_var_request_parameter_item* parameter_item;
+  char* s7_address_any_encoding_of_string;
+};
+typedef struct plc4c_s7_read_write_s7_var_request_parameter_item_field plc4c_s7_read_write_s7_var_request_parameter_item_field;
+
 uint16_t plc4c_driver_s7_encode_tsap_id(
     plc4c_driver_s7_device_group device_group, uint8_t rack, uint8_t slot);
 
diff --git a/plc4c/drivers/s7/include/plc4c/driver_s7_static.h b/plc4c/drivers/s7/include/plc4c/driver_s7_static.h
index 2b52cec337..05ba1d9cc8 100644
--- a/plc4c/drivers/s7/include/plc4c/driver_s7_static.h
+++ b/plc4c/drivers/s7/include/plc4c/driver_s7_static.h
@@ -48,9 +48,9 @@ uint16_t plc4c_s7_read_write_s7msec_to_int(plc4c_spi_read_buffer* io);
 
 plc4c_return_code plc4c_s7_read_write_int_to_s7msec(plc4c_spi_write_buffer* writeBuffer, uint16_t value);
 
-char* plc4c_s7_read_write_parse_s7_string(plc4c_spi_read_buffer* io, int32_t stringLength, char* encoding);
+char* plc4c_s7_read_write_parse_s7_string(plc4c_spi_read_buffer* io, int32_t stringLength, char* encoding, char* stringEncoding);
 
-char* plc4c_s7_read_write_parse_s7_char(plc4c_spi_read_buffer* io, char* encoding);
+char* plc4c_s7_read_write_parse_s7_char(plc4c_spi_read_buffer* io, char* encoding, char* stringEncoding);
 
 time_t plc4c_s7_read_write_parse_tia_time(plc4c_spi_read_buffer* io);
 
diff --git a/plc4c/drivers/s7/src/driver_s7_encode_decode.c b/plc4c/drivers/s7/src/driver_s7_encode_decode.c
index 9b9043b591..024f4b3593 100644
--- a/plc4c/drivers/s7/src/driver_s7_encode_decode.c
+++ b/plc4c/drivers/s7/src/driver_s7_encode_decode.c
@@ -23,6 +23,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <tpkt_packet.h>
+#include "plc4c/driver_s7_encode_decode.h"
 
 uint16_t plc4c_driver_s7_encode_tsap_id(
     plc4c_driver_s7_device_group device_group, uint8_t rack, uint8_t slot) {
@@ -114,6 +115,7 @@ plc4c_return_code plc4c_driver_s7_encode_address(char* address, void** item) {
   // Parser logic
   char* cur_pos = address;
   char* last_pos = address;
+  char* string_encoding = NULL;
   // - Does it start with "%"?
   if (*cur_pos == '%') {
     cur_pos++;
@@ -247,6 +249,19 @@ plc4c_return_code plc4c_driver_s7_encode_address(char* address, void** item) {
       *(num_elements + len) = '\0';
     }
 
+    if (*cur_pos == '|') {
+      // Next comes the num_elements
+      cur_pos++;
+      last_pos = cur_pos;
+      while (*cur_pos != '\0') {
+        cur_pos++;
+      }
+      len = cur_pos - last_pos;
+      string_encoding = malloc(sizeof(char) * (len + 1));
+      strncpy(string_encoding, last_pos, len);
+      *(string_encoding + len) = '\0';
+    }
+
     ////////////////////////////////////////////////////////////////////////////
     // Now parse the contents.
     ////////////////////////////////////////////////////////////////////////////
@@ -261,6 +276,7 @@ plc4c_return_code plc4c_driver_s7_encode_address(char* address, void** item) {
       free(data_type);
       free(string_length);
       free(num_elements);
+      free(string_encoding);
       free(s7_item);
       return NO_MEMORY;
     }
@@ -283,6 +299,7 @@ plc4c_return_code plc4c_driver_s7_encode_address(char* address, void** item) {
       free(data_type);
       free(string_length);
       free(num_elements);
+      free(string_encoding);
       free(any_address);
       free(s7_item);
       return INVALID_ADDRESS;
@@ -320,15 +337,50 @@ plc4c_return_code plc4c_driver_s7_encode_address(char* address, void** item) {
 
     // TODO: THis should be moved to "driver_s7_packets.c->plc4c_return_code plc4c_driver_s7_create_s7_read_request"
     if (any_address->s7_address_any_transport_size ==
+        plc4c_s7_read_write_transport_size_TIME ||
+        any_address->s7_address_any_transport_size ==
+            plc4c_s7_read_write_transport_size_LINT ||
+        any_address->s7_address_any_transport_size ==
+            plc4c_s7_read_write_transport_size_ULINT ||
+        any_address->s7_address_any_transport_size ==
+            plc4c_s7_read_write_transport_size_LWORD ||
+        any_address->s7_address_any_transport_size ==
+            plc4c_s7_read_write_transport_size_LREAL ||
+        any_address->s7_address_any_transport_size ==
+            plc4c_s7_read_write_transport_size_REAL ||
+        any_address->s7_address_any_transport_size ==
+            plc4c_s7_read_write_transport_size_LTIME ||
+        any_address->s7_address_any_transport_size ==
+            plc4c_s7_read_write_transport_size_DATE ||
+        any_address->s7_address_any_transport_size ==
+            plc4c_s7_read_write_transport_size_TIME_OF_DAY ||
+        any_address->s7_address_any_transport_size ==
+            plc4c_s7_read_write_transport_size_DATE_AND_TIME) {
+      any_address->s7_address_any_transport_size = plc4c_s7_read_write_transport_size_BYTE;
+        any_address->s7_address_any_number_of_elements =
+          plc4c_s7_read_write_transport_size_length_in_bytes(&(any_address->s7_address_any_transport_size)) *
+            any_address->s7_address_any_number_of_elements;
+    } else if (any_address->s7_address_any_transport_size ==
          plc4c_s7_read_write_transport_size_STRING) {
+      any_address->s7_address_any_transport_size = plc4c_s7_read_write_transport_size_BYTE;
       if (string_length != NULL) {
         any_address->s7_address_any_number_of_elements =
-            strtol(string_length, 0, 10) *
+            (strtol(string_length, 0, 10) +2) *
                 any_address->s7_address_any_number_of_elements;
-      } else if (any_address->s7_address_any_transport_size ==
-                 plc4c_s7_read_write_transport_size_STRING) {
+      } else {
+        any_address->s7_address_any_number_of_elements =
+            256 * any_address->s7_address_any_number_of_elements;
+      }
+    } else if (any_address->s7_address_any_transport_size ==
+        plc4c_s7_read_write_transport_size_WSTRING) {
+      any_address->s7_address_any_transport_size = plc4c_s7_read_write_transport_size_BYTE;
+      if (string_length != NULL) {
+        any_address->s7_address_any_number_of_elements =
+            (strtol(string_length, 0, 10) +2) * 2 *
+            any_address->s7_address_any_number_of_elements;
+      } else {
         any_address->s7_address_any_number_of_elements =
-            254 * any_address->s7_address_any_number_of_elements;
+            512 * any_address->s7_address_any_number_of_elements;
       }
     } else if (any_address->s7_address_any_transport_size ==
                plc4c_s7_read_write_transport_size_TOD) {
@@ -396,8 +448,12 @@ plc4c_return_code plc4c_driver_s7_encode_address(char* address, void** item) {
     free(read_buffer);
     free(raw_data);
   }
+  plc4c_s7_read_write_s7_var_request_parameter_item_field* s7_item_field;
 
-  *item = s7_item;
+  s7_item_field = malloc(sizeof(plc4c_s7_read_write_s7_var_request_parameter_item_field));
+  s7_item_field->parameter_item = s7_item;
+  s7_item_field->s7_address_any_encoding_of_string = string_encoding;
+  *item = s7_item_field;
 
   return OK;
 }
diff --git a/plc4c/drivers/s7/src/driver_s7_packets.c b/plc4c/drivers/s7/src/driver_s7_packets.c
index 3742f9a73e..bf68e8455a 100644
--- a/plc4c/drivers/s7/src/driver_s7_packets.c
+++ b/plc4c/drivers/s7/src/driver_s7_packets.c
@@ -713,9 +713,9 @@ plc4c_return_code plc4c_driver_s7_create_s7_read_request(
     plc4c_s7_read_write_s7_var_request_parameter_item* updated_item_address;
 
     item = cur_item->value;
-
+    plc4c_s7_read_write_s7_var_request_parameter_item_field* field = item->address;
     // Get the item address from the API request.
-    parsed_item_address = item->address;
+    parsed_item_address = field->parameter_item;
 
     // Create a copy of the request item...
     updated_item_address = malloc(sizeof(plc4c_s7_read_write_s7_var_request_parameter_item));
@@ -723,14 +723,14 @@ plc4c_return_code plc4c_driver_s7_create_s7_read_request(
       return NO_MEMORY;
     }
     updated_item_address->_type = parsed_item_address->_type;
-    updated_item_address->s7_var_request_parameter_item_address_address = 
+    updated_item_address->s7_var_request_parameter_item_address_address =
         malloc(sizeof(plc4c_s7_read_write_s7_address));
     if (updated_item_address->s7_var_request_parameter_item_address_address == NULL) {
       return NO_MEMORY;
     }
     // Memcpy inplace of fields assignment, as all fields where assigned
     memcpy(updated_item_address->s7_var_request_parameter_item_address_address,
-      parsed_item_address->s7_var_request_parameter_item_address_address, 
+      parsed_item_address->s7_var_request_parameter_item_address_address,
       sizeof(plc4c_s7_read_write_s7_address));
 
     // In case of TIME values, we read 4 bytes for each value instead.
@@ -855,7 +855,10 @@ plc4c_return_code plc4c_driver_s7_create_s7_write_request(
     // Get the item address from the API request.
     item = list_item->value; 
     parsed_item = item->item;
-    parsed_param = parsed_item->address;
+
+    plc4c_s7_read_write_s7_var_request_parameter_item_field* field = parsed_item->address;
+
+    parsed_param = field->parameter_item;
     parsed_value = item->value;
 
     // Make a copy of the param
diff --git a/plc4c/drivers/s7/src/driver_s7_sm_read.c b/plc4c/drivers/s7/src/driver_s7_sm_read.c
index 2a41ab9c3f..2a07026a47 100644
--- a/plc4c/drivers/s7/src/driver_s7_sm_read.c
+++ b/plc4c/drivers/s7/src/driver_s7_sm_read.c
@@ -203,6 +203,7 @@ plc4c_return_code plc4c_driver_s7_parse_read_response(
   plc4c_data* data_item;
   plc4c_response_value_item* response_value_item;
   char* data_protocol_id;
+  char* string_encoding;
   uint16_t num_elements;
   int32_t string_length;
   uint8_t* byte_array;
@@ -225,11 +226,13 @@ plc4c_return_code plc4c_driver_s7_parse_read_response(
 
     // Get the protocol id for the current item from the corresponding
     // request item. Also get the number of elements, if it's an array.
-    request_address = request_item->address;
+    plc4c_s7_read_write_s7_var_request_parameter_item_field* field = request_item->address;
+    request_address = field->parameter_item;
     transport_size = request_address->s7_var_request_parameter_item_address_address->s7_address_any_transport_size;
     num_elements = request_address->s7_var_request_parameter_item_address_address->s7_address_any_number_of_elements;
     data_protocol_id = plc4c_s7_read_write_transport_size_get_data_protocol_id(transport_size);
-    
+    string_encoding = field->s7_address_any_encoding_of_string;
+
     if (transport_size == plc4c_s7_read_write_transport_size_STRING) {
       // TODO: This needs to be changed to read arrays of strings.
       string_length = num_elements;
@@ -257,12 +260,12 @@ plc4c_return_code plc4c_driver_s7_parse_read_response(
       all_data_item = plc4c_data_create_list_data(all_list);
       free(all_list);
       for (idx = 0; idx < num_elements ; idx++) {
-        plc4c_s7_read_write_data_item_parse(read_buffer, data_protocol_id, string_length, &data_item);
-        plc4c_utils_list_insert_head_value(all_data_item->data.list_value, (void*)data_item);
+        plc4c_s7_read_write_data_item_parse(read_buffer, data_protocol_id, string_length, string_encoding, &data_item);
+        plc4c_utils_list_insert_head_value(&all_data_item->data.list_value, (void*)data_item);
       }
       data_item = all_data_item;
     } else {
-      plc4c_s7_read_write_data_item_parse(read_buffer, data_protocol_id, string_length, &data_item);
+      plc4c_s7_read_write_data_item_parse(read_buffer, data_protocol_id, string_length,string_encoding, &data_item);
     }
 
     // Create a new response value-item
diff --git a/plc4c/drivers/s7/src/driver_s7_static.c b/plc4c/drivers/s7/src/driver_s7_static.c
index 42dc91f2ed..dff33e5bb6 100644
--- a/plc4c/drivers/s7/src/driver_s7_static.c
+++ b/plc4c/drivers/s7/src/driver_s7_static.c
@@ -53,7 +53,7 @@ uint16_t plc4c_s7_read_write_s7msec_to_int(plc4c_spi_read_buffer* io) {
 
 char* plc4c_s7_read_write_parse_s7_string(plc4c_spi_read_buffer* io,
                                           int32_t stringLength,
-                                          char* encoding) {
+                                          char* encoding, char* stringEncoding) {
   if (strcmp(encoding, "UTF-8") == 0) {
     // Read the max length (which is not interesting for us.
     uint8_t maxLen;
@@ -89,7 +89,7 @@ char* plc4c_s7_read_write_parse_s7_string(plc4c_spi_read_buffer* io,
 }
 
 char* plc4c_s7_read_write_parse_s7_char(plc4c_spi_read_buffer* io,
-                                        char* encoding) {
+                                        char* encoding, char* stringEncoding) {
   if (strcmp(encoding, "UTF-8") == 0) {
     char* result = malloc(sizeof(char) * 2);
     if (result == NULL) {
diff --git a/plc4c/generated-sources/plc4x/src/plc4x_value.c b/plc4c/generated-sources/plc4x/src/plc4x_value.c
index b464bd1bc5..371df66267 100644
--- a/plc4c/generated-sources/plc4x/src/plc4x_value.c
+++ b/plc4c/generated-sources/plc4x/src/plc4x_value.c
@@ -235,6 +235,20 @@ plc4c_return_code plc4c_plc4x_read_write_plc4x_value_parse(plc4c_spi_read_buffer
 
                 *data_item = plc4c_data_create_string_data(16, value);
 
+    } else         if(valueType == plc4c_plc4x_read_write_plc4x_value_type_STRING) { /* STRING */
+
+                // Manual Field (value)
+                char* value = (char*) (plc4c_plc4x_read_write_parse_string(readBuffer, "UTF-8"));
+
+                                    *data_item = plc4c_data_create_string_data(strlen(value), value);
+
+    } else         if(valueType == plc4c_plc4x_read_write_plc4x_value_type_WSTRING) { /* STRING */
+
+                // Manual Field (value)
+                char* value = (char*) (plc4c_plc4x_read_write_parse_string(readBuffer, "UTF-16"));
+
+                                    *data_item = plc4c_data_create_string_data(strlen(value), value);
+
     } else         if(valueType == plc4c_plc4x_read_write_plc4x_value_type_TIME) { /* TIME */
 
                 // Simple Field (milliseconds)
@@ -452,6 +466,12 @@ plc4c_return_code plc4c_plc4x_read_write_plc4x_value_serialize(plc4c_spi_write_b
                     if(_res != OK) {
                         return _res;
                     }
+        } else         if(valueType == plc4c_plc4x_read_write_plc4x_value_type_STRING) { /* STRING */
+
+                    // Manual Field (value)
+        } else         if(valueType == plc4c_plc4x_read_write_plc4x_value_type_WSTRING) { /* STRING */
+
+                    // Manual Field (value)
         } else         if(valueType == plc4c_plc4x_read_write_plc4x_value_type_TIME) { /* TIME */
 
                     // Simple field (milliseconds)
@@ -590,6 +610,20 @@ uint16_t plc4c_plc4x_read_write_plc4x_value_length_in_bits(plc4c_data* data_item
 
         // Simple field (value)
         lengthInBits += 16;
+    } else     if(valueType == plc4c_plc4x_read_write_plc4x_value_type_STRING) { /* STRING */
+
+        // Manual Field (value)
+        {
+            char* _value = data_item->data.string_value;
+            lengthInBits += (((plc4c_spi_evaluation_helper_str_len(_value)) + (1))) * (8);
+        }
+    } else     if(valueType == plc4c_plc4x_read_write_plc4x_value_type_WSTRING) { /* STRING */
+
+        // Manual Field (value)
+        {
+            char* _value = data_item->data.string_value;
+            lengthInBits += (((plc4c_spi_evaluation_helper_str_len(_value)) + (1))) * (16);
+        }
     } else     if(valueType == plc4c_plc4x_read_write_plc4x_value_type_TIME) { /* TIME */
 
         // Simple field (milliseconds)
diff --git a/plc4c/generated-sources/s7/include/data_item.h b/plc4c/generated-sources/s7/include/data_item.h
index 3974923a86..a7f40affcc 100644
--- a/plc4c/generated-sources/s7/include/data_item.h
+++ b/plc4c/generated-sources/s7/include/data_item.h
@@ -27,12 +27,12 @@
 
 // Code generated by code-generation. DO NOT EDIT.
 
-plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item);
+plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item);
 
-plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item);
+plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item);
 
-uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4c_data* data_item, char* dataProtocolId, int32_t stringLength);
+uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4c_data* data_item, char* dataProtocolId, int32_t stringLength, char* stringEncoding);
 
-uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4c_data* data_item, char* dataProtocolId, int32_t stringLength);
+uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4c_data* data_item, char* dataProtocolId, int32_t stringLength, char* stringEncoding);
 
 #endif  // PLC4C_S7_READ_WRITE_DATA_ITEM_H_
diff --git a/plc4c/generated-sources/s7/src/data_item.c b/plc4c/generated-sources/s7/src/data_item.c
index 6f4a261e64..2ef40e710c 100644
--- a/plc4c/generated-sources/s7/src/data_item.c
+++ b/plc4c/generated-sources/s7/src/data_item.c
@@ -31,7 +31,7 @@
 // Code generated by code-generation. DO NOT EDIT.
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item) {
+plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item) {
     uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
     uint16_t curPos;
     plc4c_return_code _res = OK;
@@ -215,39 +215,31 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* rea
 
     } else         if(strcmp(dataProtocolId, "IEC61131_CHAR") == 0) { /* CHAR */
 
-                // Simple Field (value)
-                char* value = "";
-                _res = plc4c_spi_read_string(readBuffer, 8, "UTF-8", (char**) &value);
-                if(_res != OK) {
-                    return _res;
-                }
+                // Manual Field (value)
+                char* value = (char*) (plc4c_s7_read_write_parse_s7_char(readBuffer, "UTF-8", stringEncoding));
 
                 *data_item = plc4c_data_create_char_data(value);
 
     } else         if(strcmp(dataProtocolId, "IEC61131_WCHAR") == 0) { /* CHAR */
 
-                // Simple Field (value)
-                char* value = "";
-                _res = plc4c_spi_read_string(readBuffer, 16, "UTF-16", (char**) &value);
-                if(_res != OK) {
-                    return _res;
-                }
+                // Manual Field (value)
+                char* value = (char*) (plc4c_s7_read_write_parse_s7_char(readBuffer, "UTF-16", stringEncoding));
 
                 *data_item = plc4c_data_create_char_data(value);
 
     } else         if(strcmp(dataProtocolId, "IEC61131_STRING") == 0) { /* STRING */
 
                 // Manual Field (value)
-                char* value = (char*) (plc4c_s7_read_write_parse_s7_string(readBuffer, stringLength, "UTF-8"));
+                char* value = (char*) (plc4c_s7_read_write_parse_s7_string(readBuffer, stringLength, "UTF-8", stringEncoding));
 
-                *data_item = plc4c_data_create_string_data(stringLength, value);
+                                    *data_item = plc4c_data_create_string_data(stringLength, value);
 
     } else         if(strcmp(dataProtocolId, "IEC61131_WSTRING") == 0) { /* STRING */
 
                 // Manual Field (value)
-                char* value = (char*) (plc4c_s7_read_write_parse_s7_string(readBuffer, stringLength, "UTF-16"));
+                char* value = (char*) (plc4c_s7_read_write_parse_s7_string(readBuffer, stringLength, "UTF-16", stringEncoding));
 
-                *data_item = plc4c_data_create_string_data(stringLength, value);
+                                    *data_item = plc4c_data_create_string_data(stringLength, value);
 
     } else         if(strcmp(dataProtocolId, "IEC61131_TIME") == 0) { /* TIME */
 
@@ -390,7 +382,7 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* rea
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item) {
+plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item) {
   plc4c_return_code _res = OK;
         if(strcmp(dataProtocolId, "IEC61131_BOOL") == 0) { /* BOOL */
 
@@ -501,18 +493,10 @@ plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4c_spi_write_buffer
                     }
         } else         if(strcmp(dataProtocolId, "IEC61131_CHAR") == 0) { /* CHAR */
 
-                    // Simple field (value)
-                    _res = plc4c_spi_write_string(writeBuffer, 8, "UTF-8", (*data_item)->data.char_value);
-                    if(_res != OK) {
-                        return _res;
-                    }
+                    // Manual Field (value)
         } else         if(strcmp(dataProtocolId, "IEC61131_WCHAR") == 0) { /* CHAR */
 
-                    // Simple field (value)
-                    _res = plc4c_spi_write_string(writeBuffer, 16, "UTF-16", (*data_item)->data.char_value);
-                    if(_res != OK) {
-                        return _res;
-                    }
+                    // Manual Field (value)
         } else         if(strcmp(dataProtocolId, "IEC61131_STRING") == 0) { /* STRING */
 
                     // Manual Field (value)
@@ -607,11 +591,11 @@ plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4c_spi_write_buffer
   return OK;
 }
 
-uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4c_data* data_item, char* data_protocol_id, int32_t string_length) {
-  return plc4c_s7_read_write_data_item_length_in_bits(data_item, data_protocol_id, string_length) / 8;
+uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4c_data* data_item, char* data_protocol_id, int32_t string_length, char* string_encoding) {
+  return plc4c_s7_read_write_data_item_length_in_bits(data_item, data_protocol_id, string_length, string_encoding) / 8;
 }
 
-uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4c_data* data_item, char* dataProtocolId, int32_t stringLength) {
+uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4c_data* data_item, char* dataProtocolId, int32_t stringLength, char* stringEncoding) {
   uint16_t lengthInBits = 0;
     if(strcmp(dataProtocolId, "IEC61131_BOOL") == 0) { /* BOOL */
 
@@ -678,26 +662,20 @@ uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4c_data* data_item, cha
         lengthInBits += 64;
     } else     if(strcmp(dataProtocolId, "IEC61131_CHAR") == 0) { /* CHAR */
 
-        // Simple field (value)
+        // Manual Field (value)
         lengthInBits += 8;
     } else     if(strcmp(dataProtocolId, "IEC61131_WCHAR") == 0) { /* CHAR */
 
-        // Simple field (value)
+        // Manual Field (value)
         lengthInBits += 16;
     } else     if(strcmp(dataProtocolId, "IEC61131_STRING") == 0) { /* STRING */
 
         // Manual Field (value)
-        {
-            char* _value = data_item->data.string_value;
-            lengthInBits += (plc4c_spi_evaluation_helper_str_len(_value)) + (2);
-        }
+        lengthInBits += (((stringLength) + (2))) * (8);
     } else     if(strcmp(dataProtocolId, "IEC61131_WSTRING") == 0) { /* STRING */
 
         // Manual Field (value)
-        {
-            char* _value = data_item->data.string_value;
-            lengthInBits += (((plc4c_spi_evaluation_helper_str_len(_value)) * (2))) + (2);
-        }
+        lengthInBits += (((stringLength) + (2))) * (16);
     } else     if(strcmp(dataProtocolId, "IEC61131_TIME") == 0) { /* TIME */
 
         // Simple field (milliseconds)
diff --git a/plc4c/generated-sources/s7/src/transport_size.c b/plc4c/generated-sources/s7/src/transport_size.c
index d7e50f7020..bd41e92140 100644
--- a/plc4c/generated-sources/s7/src/transport_size.c
+++ b/plc4c/generated-sources/s7/src/transport_size.c
@@ -1093,28 +1093,28 @@ plc4c_s7_read_write_data_transport_size plc4c_s7_read_write_transport_size_get_d
       return plc4c_s7_read_write_data_transport_size_INTEGER;
     }
     case plc4c_s7_read_write_transport_size_LINT: { /* '0x0C' */
-      return -1;
+      return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD;
     }
     case plc4c_s7_read_write_transport_size_ULINT: { /* '0x0D' */
-      return -1;
+      return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD;
     }
     case plc4c_s7_read_write_transport_size_REAL: { /* '0x0E' */
-      return plc4c_s7_read_write_data_transport_size_REAL;
+      return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD;
     }
     case plc4c_s7_read_write_transport_size_LREAL: { /* '0x0F' */
-      return -1;
+      return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD;
     }
     case plc4c_s7_read_write_transport_size_CHAR: { /* '0x10' */
       return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD;
     }
     case plc4c_s7_read_write_transport_size_WCHAR: { /* '0x11' */
-      return -1;
+      return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD;
     }
     case plc4c_s7_read_write_transport_size_STRING: { /* '0x12' */
       return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD;
     }
     case plc4c_s7_read_write_transport_size_WSTRING: { /* '0x13' */
-      return -1;
+      return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD;
     }
     case plc4c_s7_read_write_transport_size_TIME: { /* '0x14' */
       return -1;
@@ -1363,10 +1363,10 @@ plc4c_s7_read_write_transport_size plc4c_s7_read_write_transport_size_get_base_t
       return plc4c_s7_read_write_transport_size_INT;
     }
     case plc4c_s7_read_write_transport_size_LINT: { /* '0x0C' */
-      return plc4c_s7_read_write_transport_size_INT;
+      return -1;
     }
     case plc4c_s7_read_write_transport_size_ULINT: { /* '0x0D' */
-      return plc4c_s7_read_write_transport_size_INT;
+      return -1;
     }
     case plc4c_s7_read_write_transport_size_REAL: { /* '0x0E' */
       return -1;
diff --git a/plc4go/go.mod b/plc4go/go.mod
index cb23e942a1..42981266a4 100644
--- a/plc4go/go.mod
+++ b/plc4go/go.mod
@@ -19,7 +19,7 @@
 
 module github.com/apache/plc4x/plc4go
 
-go 1.18
+go 1.19
 
 require (
 	github.com/IBM/netaddr v1.5.0
diff --git a/plc4go/internal/s7/Reader.go b/plc4go/internal/s7/Reader.go
index 85664a7125..7df4362469 100644
--- a/plc4go/internal/s7/Reader.go
+++ b/plc4go/internal/s7/Reader.go
@@ -210,13 +210,16 @@ func (m *Reader) ToPlc4xReadResponse(response readWriteModel.S7Message, readRequ
 	for i, tagName := range readRequest.GetTagNames() {
 		tag := readRequest.GetTag(tagName).(PlcTag)
 		payloadItem := payloadItems[i]
-
+		stringLength := uint16(254)
+		if s7StringTag, ok := tag.(PlcStringTag); ok {
+			stringLength = s7StringTag.stringLength
+		}
 		responseCode := decodeResponseCode(payloadItem.GetReturnCode())
 		// Decode the data according to the information from the request
 		log.Trace().Msg("decode data")
 		responseCodes[tagName] = responseCode
 		if responseCode == model.PlcResponseCode_OK {
-			plcValue, err := readWriteModel.DataItemParse(payloadItem.GetData(), tag.GetDataType().DataProtocolId(), int32(tag.GetNumElements()))
+			plcValue, err := readWriteModel.DataItemParse(payloadItem.GetData(), tag.GetDataType().DataProtocolId(), int32(stringLength), tag.GetStringEncoding())
 			if err != nil {
 				return nil, errors.Wrap(err, "Error parsing data item")
 			}
diff --git a/plc4go/internal/s7/Tag.go b/plc4go/internal/s7/Tag.go
index 9dac023754..bb0edd8383 100644
--- a/plc4go/internal/s7/Tag.go
+++ b/plc4go/internal/s7/Tag.go
@@ -39,27 +39,30 @@ type PlcTag interface {
 	GetMemoryArea() readWriteModel.MemoryArea
 	GetByteOffset() uint16
 	GetBitOffset() uint8
+	GetStringEncoding() string
 }
 
 type plcTag struct {
-	TagType     TagType
-	MemoryArea  readWriteModel.MemoryArea
-	BlockNumber uint16
-	ByteOffset  uint16
-	BitOffset   uint8
-	NumElements uint16
-	Datatype    readWriteModel.TransportSize
+	TagType        TagType
+	MemoryArea     readWriteModel.MemoryArea
+	BlockNumber    uint16
+	ByteOffset     uint16
+	BitOffset      uint8
+	NumElements    uint16
+	Datatype       readWriteModel.TransportSize
+	StringEncoding string
 }
 
-func NewTag(memoryArea readWriteModel.MemoryArea, blockNumber uint16, byteOffset uint16, bitOffset uint8, numElements uint16, datatype readWriteModel.TransportSize) PlcTag {
+func NewTag(memoryArea readWriteModel.MemoryArea, blockNumber uint16, byteOffset uint16, bitOffset uint8, numElements uint16, datatype readWriteModel.TransportSize, stringEncoding string) PlcTag {
 	return plcTag{
-		TagType:     S7Tag,
-		MemoryArea:  memoryArea,
-		BlockNumber: blockNumber,
-		ByteOffset:  byteOffset,
-		BitOffset:   bitOffset,
-		NumElements: numElements,
-		Datatype:    datatype,
+		TagType:        S7Tag,
+		MemoryArea:     memoryArea,
+		BlockNumber:    blockNumber,
+		ByteOffset:     byteOffset,
+		BitOffset:      bitOffset,
+		NumElements:    numElements,
+		Datatype:       datatype,
+		StringEncoding: stringEncoding,
 	}
 }
 
@@ -68,16 +71,17 @@ type PlcStringTag struct {
 	stringLength uint16
 }
 
-func NewStringTag(memoryArea readWriteModel.MemoryArea, blockNumber uint16, byteOffset uint16, bitOffset uint8, numElements uint16, stringLength uint16, datatype readWriteModel.TransportSize) PlcStringTag {
+func NewStringTag(memoryArea readWriteModel.MemoryArea, blockNumber uint16, byteOffset uint16, bitOffset uint8, numElements uint16, stringLength uint16, datatype readWriteModel.TransportSize, stringEncoding string) PlcStringTag {
 	return PlcStringTag{
 		plcTag: plcTag{
-			TagType:     S7StringTag,
-			MemoryArea:  memoryArea,
-			BlockNumber: blockNumber,
-			ByteOffset:  byteOffset,
-			BitOffset:   bitOffset,
-			NumElements: numElements,
-			Datatype:    datatype,
+			TagType:        S7StringTag,
+			MemoryArea:     memoryArea,
+			BlockNumber:    blockNumber,
+			ByteOffset:     byteOffset,
+			BitOffset:      bitOffset,
+			NumElements:    numElements,
+			Datatype:       datatype,
+			StringEncoding: stringEncoding,
 		},
 		stringLength: stringLength,
 	}
@@ -142,6 +146,10 @@ func (m plcTag) Serialize() ([]byte, error) {
 	return wb.GetBytes(), nil
 }
 
+func (m plcTag) GetStringEncoding() string {
+	return m.StringEncoding
+}
+
 func (m plcTag) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext(m.TagType.GetName()); err != nil {
 		return err
diff --git a/plc4go/internal/s7/TagHandler.go b/plc4go/internal/s7/TagHandler.go
index 6c2bc99cb0..d7f21cce66 100644
--- a/plc4go/internal/s7/TagHandler.go
+++ b/plc4go/internal/s7/TagHandler.go
@@ -57,11 +57,11 @@ func NewTagHandler() TagHandler {
 	return TagHandler{
 		addressPattern: regexp.MustCompile(`^%(?P<memoryArea>.)(?P<transferSizeCode>[XBWD]?)(?P<byteOffset>\d{1,7})(.(?P<bitOffset>[0-7]))?:(?P<dataType>[a-zA-Z_]+)(\[(?P<numElements>\d+)])?`),
 		//blockNumber usually has its max hat around 64000 --> 5digits
-		dataBlockAddressPattern:       regexp.MustCompile(`^%DB(?P<blockNumber>\d{1,5}).DB(?P<transferSizeCode>[XBWD]?)(?P<byteOffset>\d{1,7})(.(?P<bitOffset>[0-7]))?:(?P<dataType>[a-zA-Z_]+)(\[(?P<numElements>\d+)])?`),
-		dataBlockShortPattern:         regexp.MustCompile(`^%DB(?P<blockNumber>\d{1,5}):(?P<byteOffset>\d{1,7})(.(?P<bitOffset>[0-7]))?:(?P<dataType>[a-zA-Z_]+)(\[(?P<numElements>\d+)])?`),
-		dataBlockStringAddressPattern: regexp.MustCompile(`^%DB(?P<blockNumber>\d{1,5}).DB(?P<transferSizeCode>[XBWD]?)(?P<byteOffset>\d{1,7})(.(?P<bitOffset>[0-7]))?:(?P<dataType>STRING|WSTRING)\((?P<stringLength>\d{1,3})\)(\[(?P<numElements>\d+)])?`),
-		dataBlockStringShortPattern:   regexp.MustCompile(`^%DB(?P<blockNumber>\d{1,5}):(?P<byteOffset>\d{1,7})(.(?P<bitOffset>[0-7]))?:(?P<dataType>STRING|WSTRING)\((?P<stringLength>\d{1,3})\)(\[(?P<numElements>\d+)])?`),
-		plcProxyAddressPattern:        regexp.MustCompile(`[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}`),
+		dataBlockAddressPattern:       regexp.MustCompile(`^%DB(?P<blockNumber>\d{1,5}).DB(?P<transferSizeCode>[XBWD]?)(?P<byteOffset>\d{1,7})(.(?P<bitOffset>[0-7]))?:(?P<dataType>[a-zA-Z_]+)(\[(?P<numElements>\d+)])?(\|(?P<stringEncoding>[a-z0-9A-Z_-]+))?`),
+		dataBlockShortPattern:         regexp.MustCompile(`^%DB(?P<blockNumber>\d{1,5}):(?P<byteOffset>\d{1,7})(.(?P<bitOffset>[0-7]))?:(?P<dataType>[a-zA-Z_]+)(\[(?P<numElements>\d+)])?(\|(?P<stringEncoding>[a-z0-9A-Z_-]+))?`),
+		dataBlockStringAddressPattern: regexp.MustCompile(`^%DB(?P<blockNumber>\d{1,5}).DB(?P<transferSizeCode>[XBWD]?)(?P<byteOffset>\d{1,7})(.(?P<bitOffset>[0-7]))?:(?P<dataType>STRING|WSTRING)\((?P<stringLength>\d{1,3})\)(\[(?P<numElements>\d+)])?(\|(?P<stringEncoding>[a-z0-9A-Z_-]+))?`),
+		dataBlockStringShortPattern:   regexp.MustCompile(`^%DB(?P<blockNumber>\d{1,5}):(?P<byteOffset>\d{1,7})(.(?P<bitOffset>[0-7]))?:(?P<dataType>STRING|WSTRING)\((?P<stringLength>\d{1,3})\)(\[(?P<numElements>\d+)])?(\|(?P<stringEncoding>[a-z0-9A-Z_-]+))?`),
+		plcProxyAddressPattern:        regexp.MustCompile(`[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}(\|(?P<stringEncoding>[a-z0-9A-Z_-]+))?`),
 	}
 }
 
@@ -119,8 +119,15 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) {
 		if (transferSizeCode != 0) && (dataType.ShortName() != transferSizeCode) {
 			return nil, errors.Errorf("Transfer size code '%d' doesn't match specified data type '%s'", transferSizeCode, dataType)
 		}
+		stringEncoding := match["stringEncoding"]
+		if stringEncoding == "" {
+			stringEncoding = "UTF-8"
+			if dataType == readWriteModel.TransportSize_WSTRING || dataType == readWriteModel.TransportSize_WCHAR {
+				stringEncoding = "UTF-16"
+			}
+		}
 
-		return NewStringTag(memoryArea, 0, byteOffset, bitOffset, numElements, stringLength, dataType), nil
+		return NewStringTag(memoryArea, 0, byteOffset, bitOffset, numElements, stringLength, dataType, stringEncoding), nil
 	} else if match := utils.GetSubgroupMatches(m.dataBlockStringShortPattern, tagAddress); match != nil {
 		dataType, ok := readWriteModel.TransportSizeByName(match[DATA_TYPE])
 		if !ok {
@@ -157,8 +164,14 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) {
 			}
 			numElements = uint16(parsedNumElements)
 		}
-
-		return NewStringTag(memoryArea, blockNumber, byteOffset, bitOffset, numElements, stringLength, dataType), nil
+		stringEncoding := match["stringEncoding"]
+		if stringEncoding == "" {
+			stringEncoding = "UTF-8"
+			if dataType == readWriteModel.TransportSize_WSTRING || dataType == readWriteModel.TransportSize_WCHAR {
+				stringEncoding = "UTF-16"
+			}
+		}
+		return NewStringTag(memoryArea, blockNumber, byteOffset, bitOffset, numElements, stringLength, dataType, stringEncoding), nil
 	} else if match := utils.GetSubgroupMatches(m.dataBlockAddressPattern, tagAddress); match != nil {
 		dataType, ok := readWriteModel.TransportSizeByName(match[DATA_TYPE])
 		if !ok {
@@ -204,8 +217,14 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) {
 		if (transferSizeCode != 0) && (dataType.ShortName() != transferSizeCode) {
 			return nil, errors.Errorf("Transfer size code '%d' doesn't match specified data type '%s'", transferSizeCode, dataType)
 		}
-
-		return NewTag(memoryArea, blockNumber, byteOffset, bitOffset, numElements, dataType), nil
+		stringEncoding := match["stringEncoding"]
+		if stringEncoding == "" {
+			stringEncoding = "UTF-8"
+			if dataType == readWriteModel.TransportSize_WSTRING || dataType == readWriteModel.TransportSize_WCHAR {
+				stringEncoding = "UTF-16"
+			}
+		}
+		return NewTag(memoryArea, blockNumber, byteOffset, bitOffset, numElements, dataType, stringEncoding), nil
 	} else if match := utils.GetSubgroupMatches(m.dataBlockShortPattern, tagAddress); match != nil {
 		dataType, ok := readWriteModel.TransportSizeByName(match[DATA_TYPE])
 		if !ok {
@@ -246,8 +265,14 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) {
 			}
 			numElements = uint16(parsedNumElements)
 		}
-
-		return NewTag(memoryArea, blockNumber, byteOffset, bitOffset, numElements, dataType), nil
+		stringEncoding := match["stringEncoding"]
+		if stringEncoding == "" {
+			stringEncoding = "UTF-8"
+			if dataType == readWriteModel.TransportSize_WSTRING || dataType == readWriteModel.TransportSize_WCHAR {
+				stringEncoding = "UTF-16"
+			}
+		}
+		return NewTag(memoryArea, blockNumber, byteOffset, bitOffset, numElements, dataType, stringEncoding), nil
 	} else if match := utils.GetSubgroupMatches(m.plcProxyAddressPattern, tagAddress); match != nil {
 		addressData, err := hex.DecodeString(strings.ReplaceAll(tagAddress, "[-]", ""))
 		if err != nil {
@@ -261,7 +286,13 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) {
 		if (s7AddressAny.GetTransportSize() != readWriteModel.TransportSize_BOOL) && s7AddressAny.GetBitAddress() != 0 {
 			return nil, errors.New("A bit offset other than 0 is only supported for type BOOL")
 		}
-
+		stringEncoding := match["stringEncoding"]
+		if stringEncoding == "" {
+			stringEncoding = "UTF-8"
+			if s7AddressAny.GetTransportSize() == readWriteModel.TransportSize_WSTRING || s7AddressAny.GetTransportSize() == readWriteModel.TransportSize_WCHAR {
+				stringEncoding = "UTF-16"
+			}
+		}
 		return NewTag(
 			s7AddressAny.GetArea(),
 			s7AddressAny.GetDbNumber(),
@@ -269,6 +300,7 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) {
 			s7AddressAny.GetBitAddress(),
 			s7AddressAny.GetNumberOfElements(),
 			s7AddressAny.GetTransportSize(),
+			stringEncoding,
 		), nil
 	} else if match := utils.GetSubgroupMatches(m.addressPattern, tagAddress); match != nil {
 		dataType, ok := readWriteModel.TransportSizeByName(match[DATA_TYPE])
@@ -313,8 +345,14 @@ func (m TagHandler) ParseTag(tagAddress string) (model.PlcTag, error) {
 		if (dataType != readWriteModel.TransportSize_BOOL) && bitOffset != 0 {
 			return nil, errors.New("A bit offset other than 0 is only supported for type BOOL")
 		}
-
-		return NewTag(memoryArea, 0, byteOffset, bitOffset, numElements, dataType), nil
+		stringEncoding := match["stringEncoding"]
+		if stringEncoding == "" {
+			stringEncoding = "UTF-8"
+			if dataType == readWriteModel.TransportSize_WSTRING || dataType == readWriteModel.TransportSize_WCHAR {
+				stringEncoding = "UTF-16"
+			}
+		}
+		return NewTag(memoryArea, 0, byteOffset, bitOffset, numElements, dataType, stringEncoding), nil
 	}
 	return nil, errors.Errorf("Unable to parse %s", tagAddress)
 }
diff --git a/plc4go/internal/s7/Writer.go b/plc4go/internal/s7/Writer.go
index cd33c379e7..85bef3fa25 100644
--- a/plc4go/internal/s7/Writer.go
+++ b/plc4go/internal/s7/Writer.go
@@ -231,7 +231,7 @@ func serializePlcValue(tag model.PlcTag, plcValue values.PlcValue) (readWriteMod
 	if s7StringTag, ok := tag.(*PlcStringTag); ok {
 		stringLength = s7StringTag.stringLength
 	}
-	data, err := readWriteModel.DataItemSerialize(plcValue, s7Tag.GetDataType().DataProtocolId(), int32(stringLength))
+	data, err := readWriteModel.DataItemSerialize(plcValue, s7Tag.GetDataType().DataProtocolId(), int32(stringLength), s7Tag.GetStringEncoding())
 	if err != nil {
 		return nil, errors.Wrapf(err, "Error serializing tag item of type: '%v'", s7Tag.GetDataType())
 	}
diff --git a/plc4go/internal/simulated/Reader_test.go b/plc4go/internal/simulated/Reader_test.go
index 41e9bace88..59007c5389 100644
--- a/plc4go/internal/simulated/Reader_test.go
+++ b/plc4go/internal/simulated/Reader_test.go
@@ -145,7 +145,7 @@ func TestReader_Read(t *testing.T) {
 			},
 			args: args{
 				fields: map[string]model.PlcTag{
-					"test": s7.NewTag(model4.MemoryArea_DATA_BLOCKS, 1, 1, 0, 1, model4.TransportSize_BOOL),
+					"test": s7.NewTag(model4.MemoryArea_DATA_BLOCKS, 1, 1, 0, 1, model4.TransportSize_BOOL, "UTF-8"),
 				},
 				fieldNames: []string{"test"},
 			},
diff --git a/plc4go/internal/simulated/Writer_test.go b/plc4go/internal/simulated/Writer_test.go
index 9f0b10e97b..64af673d4f 100644
--- a/plc4go/internal/simulated/Writer_test.go
+++ b/plc4go/internal/simulated/Writer_test.go
@@ -154,7 +154,7 @@ func TestWriter_Write(t *testing.T) {
 			},
 			args: args{
 				fields: map[string]model.PlcTag{
-					"test": s7.NewTag(model4.MemoryArea_DATA_BLOCKS, 1, 1, 0, 1, model4.TransportSize_BOOL),
+					"test": s7.NewTag(model4.MemoryArea_DATA_BLOCKS, 1, 1, 0, 1, model4.TransportSize_BOOL, "UTF-8"),
 				},
 				values: map[string]values.PlcValue{
 					"test": values2.NewPlcBOOL(false),
diff --git a/plc4go/protocols/abeth/readwrite/XmlParserHelper.go b/plc4go/protocols/abeth/readwrite/XmlParserHelper.go
index 50923103b5..8a902da368 100644
--- a/plc4go/protocols/abeth/readwrite/XmlParserHelper.go
+++ b/plc4go/protocols/abeth/readwrite/XmlParserHelper.go
@@ -23,8 +23,8 @@ import (
 	"github.com/apache/plc4x/plc4go/protocols/abeth/readwrite/model"
 	"github.com/apache/plc4x/plc4go/spi/utils"
 	"github.com/pkg/errors"
-	"strconv"
-	"strings"
+    "strings"
+    "strconv"
 )
 
 // Code generated by code-generation. DO NOT EDIT.
diff --git a/plc4j/api/pom.xml b/plc4j/api/pom.xml
index f4efa24820..28dd1d940f 100644
--- a/plc4j/api/pom.xml
+++ b/plc4j/api/pom.xml
@@ -42,6 +42,9 @@
               com.fasterxml.jackson.annotation;resolution:=optional,
               *
             </Import-Package>
+            <SPI-Consumer>
+              *
+            </SPI-Consumer>
           </instructions>
         </configuration>
       </plugin>
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/DefaultPlcDriverManager.java b/plc4j/api/src/main/java/org/apache/plc4x/java/DefaultPlcDriverManager.java
index fc5a3c8274..e39c6a7f9b 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/DefaultPlcDriverManager.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/DefaultPlcDriverManager.java
@@ -71,16 +71,21 @@ public class DefaultPlcDriverManager implements PlcDriverManager, PlcConnectionM
      * @throws PlcConnectionException an exception if the connection attempt failed.
      */
     public PlcConnection getConnection(String url) throws PlcConnectionException {
-        ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
-        Thread.currentThread().setContextClassLoader(this.classLoader);
         PlcConnection connection;
-        try {
+        if (this.classLoader == null) {
             PlcDriver driver = getDriverForUrl(url);
             connection = driver.getConnection(url);
-            connection.connect();
-        } finally {
-            Thread.currentThread().setContextClassLoader(originalClassLoader);
+        } else {
+            final ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
+            Thread.currentThread().setContextClassLoader(classLoader);
+            try {
+                PlcDriver driver = getDriverForUrl(url);
+                connection = driver.getConnection(url);
+            } finally {
+                Thread.currentThread().setContextClassLoader(originalClassLoader);
+            }
         }
+        connection.connect();
         return connection;
     }
 
@@ -93,19 +98,29 @@ public class DefaultPlcDriverManager implements PlcDriverManager, PlcConnectionM
      * @throws PlcConnectionException an exception if the connection attempt failed.
      */
     public PlcConnection getConnection(String url, PlcAuthentication authentication) throws PlcConnectionException {
-        ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
-        Thread.currentThread().setContextClassLoader(this.classLoader);
         PlcConnection connection;
-        try {
+        if (this.classLoader == null) {
             PlcDriver driver = getDriverForUrl(url);
-            connection = driver.getConnection(url, authentication);
-            connection.connect();
-        } finally {
-            Thread.currentThread().setContextClassLoader(originalClassLoader);
+            connection = driver.getConnection(url);
+        } else {
+            final ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
+            Thread.currentThread().setContextClassLoader(classLoader);
+            try {
+                PlcDriver driver = getDriverForUrl(url);
+                connection = driver.getConnection(url, authentication);
+            } finally {
+                Thread.currentThread().setContextClassLoader(originalClassLoader);
+            }
         }
+        connection.connect();
         return connection;
     }
 
+    @Override
+    public PlcDriverManager getDriverManager() {
+        return this;
+    }
+
     /**
      * Returns the codes of all of the drivers which are currently registered at the PlcDriverManager
      * @return Set of driver codes for all drivers registered
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/PlcConnectionManager.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/PlcConnectionManager.java
index 98511ad75a..e8515ef5a5 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/PlcConnectionManager.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/PlcConnectionManager.java
@@ -41,5 +41,6 @@ public interface PlcConnectionManager {
      * @throws PlcConnectionException an exception if the connection attempt failed.
      */
     PlcConnection getConnection(String url, PlcAuthentication authentication) throws PlcConnectionException;
+    PlcDriverManager getDriverManager();
 
 }
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/model/PlcTag.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/model/PlcTag.java
index 5cdbd794a6..a0cf8e959d 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/model/PlcTag.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/model/PlcTag.java
@@ -47,6 +47,15 @@ public interface PlcTag {
      */
     String getAddressString();
 
+    /**
+     * Returns the number of elements, that this tag would be parsed from.
+     *
+     * @return the number of elements representing this Tag
+     */
+    default int getNumberOfElements(){
+        return 1;
+    }
+
     /**
      * Returns the "datatype" of the response one can expect from this tag.
      * I.e. The mapping between this string and the PlcValue datatype is handled in the ValueHandler class.
@@ -63,6 +72,10 @@ public interface PlcTag {
         return PlcValueType.NULL;
     }
 
+    @JsonIgnore
+    default void setPlcValueType(PlcValueType plcValueType){
+    }
+
     /**
      * Returns the number of elements to expect of the response one can expect from this field.
      *
diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/tag/DirectAdsTag.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/tag/DirectAdsTag.java
index 9ece366ea5..bacceba34b 100644
--- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/tag/DirectAdsTag.java
+++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/tag/DirectAdsTag.java
@@ -115,6 +115,7 @@ public class DirectAdsTag implements AdsTag {
         return adsDataTypeName;
     }
 
+    @Override
     public int getNumberOfElements() {
         return numberOfElements;
     }
diff --git a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/conversation/canopen/SDODownloadConversation.java b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/conversation/canopen/SDODownloadConversation.java
index 3336e548d1..25991d8f0b 100644
--- a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/conversation/canopen/SDODownloadConversation.java
+++ b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/api/conversation/canopen/SDODownloadConversation.java
@@ -44,7 +44,7 @@ public class SDODownloadConversation extends CANOpenConversationBase {
         try {
             WriteBufferByteBased writeBuffer = new WriteBufferByteBased(DataItem.getLengthInBytes(value, type, null), ByteOrder.LITTLE_ENDIAN);
             DataItem.staticSerialize(writeBuffer, value, type, null, ByteOrder.LITTLE_ENDIAN);
-            data = writeBuffer.getData();
+            data = writeBuffer.getBytes();
         } catch (SerializationException e) {
             throw new PlcRuntimeException("Could not serialize data", e);
         }
diff --git a/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/tag/FirmataTag.java b/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/tag/FirmataTag.java
index 48f7cf4f0b..1728abe317 100644
--- a/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/tag/FirmataTag.java
+++ b/plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/tag/FirmataTag.java
@@ -57,6 +57,7 @@ public abstract class FirmataTag implements PlcTag {
         return address;
     }
 
+    @Override
     public int getNumberOfElements() {
         return quantity;
     }
diff --git a/plc4j/drivers/knxnetip/pom.xml b/plc4j/drivers/knxnetip/pom.xml
index dda734fe8e..a45c69463d 100644
--- a/plc4j/drivers/knxnetip/pom.xml
+++ b/plc4j/drivers/knxnetip/pom.xml
@@ -161,7 +161,7 @@
     </dependency>
     <dependency>
       <groupId>org.bouncycastle</groupId>
-      <artifactId>bcprov-jdk15on</artifactId>
+      <artifactId>bcprov-jdk18on</artifactId>
     </dependency>
 
     <dependency>
diff --git a/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java
index c3eaafba96..ba6688b099 100644
--- a/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java
+++ b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java
@@ -286,7 +286,7 @@ public class KnxNetIpProtocolLogic extends Plc4xProtocolBase<KnxNetIpMessage> im
                 try {
                     final WriteBufferByteBased writeBuffer = new WriteBufferByteBased(KnxDatapoint.getLengthInBytes(value, groupAddress.getType()));
                     KnxDatapoint.staticSerialize(writeBuffer, value, groupAddress.getType());
-                    final byte[] serialized = writeBuffer.getData();
+                    final byte[] serialized = writeBuffer.getBytes();
                     dataFirstByte = serialized[0];
                     data = new byte[serialized.length - 1];
                     System.arraycopy(serialized, 1, data, 0, serialized.length - 1);
diff --git a/plc4j/drivers/opcua/pom.xml b/plc4j/drivers/opcua/pom.xml
index 23ac7aa6cb..cb57d776c2 100644
--- a/plc4j/drivers/opcua/pom.xml
+++ b/plc4j/drivers/opcua/pom.xml
@@ -161,11 +161,11 @@
     </dependency>
     <dependency>
       <groupId>org.bouncycastle</groupId>
-      <artifactId>bcpkix-jdk15on</artifactId>
+      <artifactId>bcpkix-jdk18on</artifactId>
     </dependency>
     <dependency>
       <groupId>org.bouncycastle</groupId>
-      <artifactId>bcprov-jdk15on</artifactId>
+      <artifactId>bcprov-jdk18on</artifactId>
     </dependency>
 
     <dependency>
@@ -193,6 +193,16 @@
     <dependency>
       <groupId>org.eclipse.milo</groupId>
       <artifactId>server-examples</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>org.bouncycastle</groupId>
+          <artifactId>bcprov-jdk15on</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.bouncycastle</groupId>
+          <artifactId>bcpkix-jdk15on</artifactId>
+        </exclusion>
+      </exclusions>
       <scope>test</scope>
     </dependency>
 
diff --git a/plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServices.java b/plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServices.java
index 197af70fe5..51b95b69a7 100644
--- a/plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServices.java
+++ b/plc4j/drivers/opcua/src/main/generated/org/apache/plc4x/java/opcua/readwrite/OpcuaNodeIdServices.java
@@ -28,6 +28,14 @@ public enum OpcuaNodeIdServices {
   AccessLevelType((int) 15031L),
   AccessRestrictionType((int) 95L),
   AcknowledgeableConditionType((int) 2881L),
+  ActivateSessionRequest((int) 465L),
+  ActivateSessionRequest_Encoding_DefaultBinary((int) 467L),
+  ActivateSessionRequest_Encoding_DefaultJson((int) 15145L),
+  ActivateSessionRequest_Encoding_DefaultXml((int) 466L),
+  ActivateSessionResponse((int) 468L),
+  ActivateSessionResponse_Encoding_DefaultBinary((int) 470L),
+  ActivateSessionResponse_Encoding_DefaultJson((int) 15146L),
+  ActivateSessionResponse_Encoding_DefaultXml((int) 469L),
   AdditionalParametersType((int) 16313L),
   AdditionalParametersType_Encoding_DefaultBinary((int) 17537L),
   AdditionalParametersType_Encoding_DefaultJson((int) 17547L),
@@ -36,16 +44,44 @@ public enum OpcuaNodeIdServices {
   AddNodesItem_Encoding_DefaultBinary((int) 378L),
   AddNodesItem_Encoding_DefaultJson((int) 15165L),
   AddNodesItem_Encoding_DefaultXml((int) 377L),
+  AddNodesRequest((int) 486L),
+  AddNodesRequest_Encoding_DefaultBinary((int) 488L),
+  AddNodesRequest_Encoding_DefaultJson((int) 15167L),
+  AddNodesRequest_Encoding_DefaultXml((int) 487L),
+  AddNodesResponse((int) 489L),
+  AddNodesResponse_Encoding_DefaultBinary((int) 491L),
+  AddNodesResponse_Encoding_DefaultJson((int) 15168L),
+  AddNodesResponse_Encoding_DefaultXml((int) 490L),
+  AddNodesResult((int) 483L),
+  AddNodesResult_Encoding_DefaultBinary((int) 485L),
+  AddNodesResult_Encoding_DefaultJson((int) 15166L),
+  AddNodesResult_Encoding_DefaultXml((int) 484L),
   AddReferencesItem((int) 379L),
   AddReferencesItem_Encoding_DefaultBinary((int) 381L),
   AddReferencesItem_Encoding_DefaultJson((int) 15169L),
   AddReferencesItem_Encoding_DefaultXml((int) 380L),
+  AddReferencesRequest((int) 492L),
+  AddReferencesRequest_Encoding_DefaultBinary((int) 494L),
+  AddReferencesRequest_Encoding_DefaultJson((int) 15170L),
+  AddReferencesRequest_Encoding_DefaultXml((int) 493L),
+  AddReferencesResponse((int) 495L),
+  AddReferencesResponse_Encoding_DefaultBinary((int) 497L),
+  AddReferencesResponse_Encoding_DefaultJson((int) 15171L),
+  AddReferencesResponse_Encoding_DefaultXml((int) 496L),
   AddressSpaceFileType((int) 11595L),
   AggregateConfiguration((int) 948L),
   AggregateConfiguration_Encoding_DefaultBinary((int) 950L),
   AggregateConfiguration_Encoding_DefaultJson((int) 15304L),
   AggregateConfiguration_Encoding_DefaultXml((int) 949L),
   AggregateConfigurationType((int) 11187L),
+  AggregateFilter((int) 728L),
+  AggregateFilter_Encoding_DefaultBinary((int) 730L),
+  AggregateFilter_Encoding_DefaultJson((int) 15312L),
+  AggregateFilter_Encoding_DefaultXml((int) 729L),
+  AggregateFilterResult((int) 737L),
+  AggregateFilterResult_Encoding_DefaultBinary((int) 739L),
+  AggregateFilterResult_Encoding_DefaultJson((int) 15315L),
+  AggregateFilterResult_Encoding_DefaultXml((int) 738L),
   AggregateFunction_AnnotationCount((int) 2351L),
   AggregateFunction_Average((int) 2342L),
   AggregateFunction_Count((int) 2352L),
@@ -216,6 +252,44 @@ public enum OpcuaNodeIdServices {
   BrokerWriterGroupTransportDataType_Encoding_DefaultJson((int) 16524L),
   BrokerWriterGroupTransportDataType_Encoding_DefaultXml((int) 16021L),
   BrokerWriterGroupTransportType((int) 21136L),
+  BrowseDescription((int) 514L),
+  BrowseDescription_Encoding_DefaultBinary((int) 516L),
+  BrowseDescription_Encoding_DefaultJson((int) 15180L),
+  BrowseDescription_Encoding_DefaultXml((int) 515L),
+  BrowseDirection((int) 510L),
+  BrowseNextRequest((int) 531L),
+  BrowseNextRequest_Encoding_DefaultBinary((int) 533L),
+  BrowseNextRequest_Encoding_DefaultJson((int) 15186L),
+  BrowseNextRequest_Encoding_DefaultXml((int) 532L),
+  BrowseNextResponse((int) 534L),
+  BrowseNextResponse_Encoding_DefaultBinary((int) 536L),
+  BrowseNextResponse_Encoding_DefaultJson((int) 15187L),
+  BrowseNextResponse_Encoding_DefaultXml((int) 535L),
+  BrowsePath((int) 543L),
+  BrowsePath_Encoding_DefaultBinary((int) 545L),
+  BrowsePath_Encoding_DefaultJson((int) 15190L),
+  BrowsePath_Encoding_DefaultXml((int) 544L),
+  BrowsePathResult((int) 549L),
+  BrowsePathResult_Encoding_DefaultBinary((int) 551L),
+  BrowsePathResult_Encoding_DefaultJson((int) 15192L),
+  BrowsePathResult_Encoding_DefaultXml((int) 550L),
+  BrowsePathTarget((int) 546L),
+  BrowsePathTarget_Encoding_DefaultBinary((int) 548L),
+  BrowsePathTarget_Encoding_DefaultJson((int) 15191L),
+  BrowsePathTarget_Encoding_DefaultXml((int) 547L),
+  BrowseRequest((int) 525L),
+  BrowseRequest_Encoding_DefaultBinary((int) 527L),
+  BrowseRequest_Encoding_DefaultJson((int) 15184L),
+  BrowseRequest_Encoding_DefaultXml((int) 526L),
+  BrowseResponse((int) 528L),
+  BrowseResponse_Encoding_DefaultBinary((int) 530L),
+  BrowseResponse_Encoding_DefaultJson((int) 15185L),
+  BrowseResponse_Encoding_DefaultXml((int) 529L),
+  BrowseResult((int) 522L),
+  BrowseResult_Encoding_DefaultBinary((int) 524L),
+  BrowseResult_Encoding_DefaultJson((int) 15183L),
+  BrowseResult_Encoding_DefaultXml((int) 523L),
+  BrowseResultMask((int) 517L),
   BuildInfo((int) 338L),
   BuildInfo_Encoding_DefaultBinary((int) 340L),
   BuildInfo_Encoding_DefaultJson((int) 15361L),
@@ -223,6 +297,30 @@ public enum OpcuaNodeIdServices {
   BuildInfoType((int) 3051L),
   Byte((int) 3L),
   ByteString((int) 15L),
+  CallMethodRequest((int) 704L),
+  CallMethodRequest_Encoding_DefaultBinary((int) 706L),
+  CallMethodRequest_Encoding_DefaultJson((int) 15289L),
+  CallMethodRequest_Encoding_DefaultXml((int) 705L),
+  CallMethodResult((int) 707L),
+  CallMethodResult_Encoding_DefaultBinary((int) 709L),
+  CallMethodResult_Encoding_DefaultJson((int) 15290L),
+  CallMethodResult_Encoding_DefaultXml((int) 708L),
+  CallRequest((int) 710L),
+  CallRequest_Encoding_DefaultBinary((int) 712L),
+  CallRequest_Encoding_DefaultJson((int) 15291L),
+  CallRequest_Encoding_DefaultXml((int) 711L),
+  CallResponse((int) 713L),
+  CallResponse_Encoding_DefaultBinary((int) 715L),
+  CallResponse_Encoding_DefaultJson((int) 15292L),
+  CallResponse_Encoding_DefaultXml((int) 714L),
+  CancelRequest((int) 477L),
+  CancelRequest_Encoding_DefaultBinary((int) 479L),
+  CancelRequest_Encoding_DefaultJson((int) 15149L),
+  CancelRequest_Encoding_DefaultXml((int) 478L),
+  CancelResponse((int) 480L),
+  CancelResponse_Encoding_DefaultBinary((int) 482L),
+  CancelResponse_Encoding_DefaultJson((int) 15150L),
+  CancelResponse_Encoding_DefaultXml((int) 481L),
   CartesianCoordinates((int) 18809L),
   CartesianCoordinates_Encoding_DefaultBinary((int) 18818L),
   CartesianCoordinates_Encoding_DefaultJson((int) 19067L),
@@ -233,7 +331,27 @@ public enum OpcuaNodeIdServices {
   CertificateGroupType((int) 12555L),
   CertificateType((int) 12556L),
   CertificateUpdatedAuditEventType((int) 12620L),
+  ChannelSecurityToken((int) 441L),
+  ChannelSecurityToken_Encoding_DefaultBinary((int) 443L),
+  ChannelSecurityToken_Encoding_DefaultJson((int) 15131L),
+  ChannelSecurityToken_Encoding_DefaultXml((int) 442L),
   ChoiceStateType((int) 15109L),
+  CloseSecureChannelRequest((int) 450L),
+  CloseSecureChannelRequest_Encoding_DefaultBinary((int) 452L),
+  CloseSecureChannelRequest_Encoding_DefaultJson((int) 15134L),
+  CloseSecureChannelRequest_Encoding_DefaultXml((int) 451L),
+  CloseSecureChannelResponse((int) 453L),
+  CloseSecureChannelResponse_Encoding_DefaultBinary((int) 455L),
+  CloseSecureChannelResponse_Encoding_DefaultJson((int) 15135L),
+  CloseSecureChannelResponse_Encoding_DefaultXml((int) 454L),
+  CloseSessionRequest((int) 471L),
+  CloseSessionRequest_Encoding_DefaultBinary((int) 473L),
+  CloseSessionRequest_Encoding_DefaultJson((int) 15147L),
+  CloseSessionRequest_Encoding_DefaultXml((int) 472L),
+  CloseSessionResponse((int) 474L),
+  CloseSessionResponse_Encoding_DefaultBinary((int) 476L),
+  CloseSessionResponse_Encoding_DefaultJson((int) 15148L),
+  CloseSessionResponse_Encoding_DefaultXml((int) 475L),
   Communication((int) 24227L),
   ComplexNumberType((int) 12171L),
   ComplexNumberType_Encoding_DefaultBinary((int) 12181L),
@@ -258,14 +376,55 @@ public enum OpcuaNodeIdServices {
   ContentFilterElement_Encoding_DefaultBinary((int) 585L),
   ContentFilterElement_Encoding_DefaultJson((int) 15204L),
   ContentFilterElement_Encoding_DefaultXml((int) 584L),
+  ContentFilterElementResult((int) 604L),
+  ContentFilterElementResult_Encoding_DefaultBinary((int) 606L),
+  ContentFilterElementResult_Encoding_DefaultJson((int) 15211L),
+  ContentFilterElementResult_Encoding_DefaultXml((int) 605L),
+  ContentFilterResult((int) 607L),
+  ContentFilterResult_Encoding_DefaultBinary((int) 609L),
+  ContentFilterResult_Encoding_DefaultJson((int) 15228L),
+  ContentFilterResult_Encoding_DefaultXml((int) 608L),
   ContinuationPoint((int) 521L),
   Counter((int) 289L),
+  CreateMonitoredItemsRequest((int) 749L),
+  CreateMonitoredItemsRequest_Encoding_DefaultBinary((int) 751L),
+  CreateMonitoredItemsRequest_Encoding_DefaultJson((int) 15323L),
+  CreateMonitoredItemsRequest_Encoding_DefaultXml((int) 750L),
+  CreateMonitoredItemsResponse((int) 752L),
+  CreateMonitoredItemsResponse_Encoding_DefaultBinary((int) 754L),
+  CreateMonitoredItemsResponse_Encoding_DefaultJson((int) 15324L),
+  CreateMonitoredItemsResponse_Encoding_DefaultXml((int) 753L),
+  CreateSessionRequest((int) 459L),
+  CreateSessionRequest_Encoding_DefaultBinary((int) 461L),
+  CreateSessionRequest_Encoding_DefaultJson((int) 15138L),
+  CreateSessionRequest_Encoding_DefaultXml((int) 460L),
+  CreateSessionResponse((int) 462L),
+  CreateSessionResponse_Encoding_DefaultBinary((int) 464L),
+  CreateSessionResponse_Encoding_DefaultJson((int) 15139L),
+  CreateSessionResponse_Encoding_DefaultXml((int) 463L),
+  CreateSubscriptionRequest((int) 785L),
+  CreateSubscriptionRequest_Encoding_DefaultBinary((int) 787L),
+  CreateSubscriptionRequest_Encoding_DefaultJson((int) 15337L),
+  CreateSubscriptionRequest_Encoding_DefaultXml((int) 786L),
+  CreateSubscriptionResponse((int) 788L),
+  CreateSubscriptionResponse_Encoding_DefaultBinary((int) 790L),
+  CreateSubscriptionResponse_Encoding_DefaultJson((int) 15338L),
+  CreateSubscriptionResponse_Encoding_DefaultXml((int) 789L),
   CubeItemType((int) 12057L),
   CurrencyUnit((int) 23501L),
   CurrencyUnitType((int) 23498L),
   CurrencyUnitType_Encoding_DefaultBinary((int) 23507L),
   CurrencyUnitType_Encoding_DefaultJson((int) 23528L),
   CurrencyUnitType_Encoding_DefaultXml((int) 23520L),
+  DataChangeFilter((int) 722L),
+  DataChangeFilter_Encoding_DefaultBinary((int) 724L),
+  DataChangeFilter_Encoding_DefaultJson((int) 15294L),
+  DataChangeFilter_Encoding_DefaultXml((int) 723L),
+  DataChangeNotification((int) 809L),
+  DataChangeNotification_Encoding_DefaultBinary((int) 811L),
+  DataChangeNotification_Encoding_DefaultJson((int) 15345L),
+  DataChangeNotification_Encoding_DefaultXml((int) 810L),
+  DataChangeTrigger((int) 717L),
   DatagramConnectionTransportDataType((int) 17467L),
   DatagramConnectionTransportDataType_Encoding_DefaultBinary((int) 17468L),
   DatagramConnectionTransportDataType_Encoding_DefaultJson((int) 17476L),
@@ -316,6 +475,10 @@ public enum OpcuaNodeIdServices {
   DataSetWriterTransportDataType_Encoding_DefaultXml((int) 15956L),
   DataSetWriterTransportType((int) 15305L),
   DataSetWriterType((int) 15298L),
+  DataTypeAttributes((int) 370L),
+  DataTypeAttributes_Encoding_DefaultBinary((int) 372L),
+  DataTypeAttributes_Encoding_DefaultJson((int) 15161L),
+  DataTypeAttributes_Encoding_DefaultXml((int) 371L),
   DataTypeDefinition((int) 97L),
   DataTypeDefinition_Encoding_DefaultBinary((int) 121L),
   DataTypeDefinition_Encoding_DefaultJson((int) 15063L),
@@ -327,6 +490,10 @@ public enum OpcuaNodeIdServices {
   DataTypeDescriptionType((int) 69L),
   DataTypeDictionaryType((int) 72L),
   DataTypeEncodingType((int) 76L),
+  DataTypeNode((int) 282L),
+  DataTypeNode_Encoding_DefaultBinary((int) 284L),
+  DataTypeNode_Encoding_DefaultJson((int) 15079L),
+  DataTypeNode_Encoding_DefaultXml((int) 283L),
   DataTypeSchemaHeader((int) 15534L),
   DataTypeSchemaHeader_Encoding_DefaultBinary((int) 15676L),
   DataTypeSchemaHeader_Encoding_DefaultJson((int) 16151L),
@@ -337,19 +504,68 @@ public enum OpcuaNodeIdServices {
   Date((int) 293L),
   DateString((int) 12881L),
   DateTime((int) 13L),
+  DeadbandType((int) 718L),
   Decimal((int) 50L),
+  DecimalDataType((int) 17861L),
+  DecimalDataType_Encoding_DefaultBinary((int) 17863L),
+  DecimalDataType_Encoding_DefaultJson((int) 15045L),
+  DecimalDataType_Encoding_DefaultXml((int) 17862L),
   DecimalString((int) 12878L),
   DefaultBinary((int) 3062L),
   DefaultInstanceBrowseName((int) 17605L),
   DefaultXml((int) 3063L),
+  DeleteAtTimeDetails((int) 689L),
+  DeleteAtTimeDetails_Encoding_DefaultBinary((int) 691L),
+  DeleteAtTimeDetails_Encoding_DefaultJson((int) 15284L),
+  DeleteAtTimeDetails_Encoding_DefaultXml((int) 690L),
+  DeleteEventDetails((int) 692L),
+  DeleteEventDetails_Encoding_DefaultBinary((int) 694L),
+  DeleteEventDetails_Encoding_DefaultJson((int) 15285L),
+  DeleteEventDetails_Encoding_DefaultXml((int) 693L),
+  DeleteMonitoredItemsRequest((int) 779L),
+  DeleteMonitoredItemsRequest_Encoding_DefaultBinary((int) 781L),
+  DeleteMonitoredItemsRequest_Encoding_DefaultJson((int) 15335L),
+  DeleteMonitoredItemsRequest_Encoding_DefaultXml((int) 780L),
+  DeleteMonitoredItemsResponse((int) 782L),
+  DeleteMonitoredItemsResponse_Encoding_DefaultBinary((int) 784L),
+  DeleteMonitoredItemsResponse_Encoding_DefaultJson((int) 15336L),
+  DeleteMonitoredItemsResponse_Encoding_DefaultXml((int) 783L),
   DeleteNodesItem((int) 382L),
   DeleteNodesItem_Encoding_DefaultBinary((int) 384L),
   DeleteNodesItem_Encoding_DefaultJson((int) 15172L),
   DeleteNodesItem_Encoding_DefaultXml((int) 383L),
+  DeleteNodesRequest((int) 498L),
+  DeleteNodesRequest_Encoding_DefaultBinary((int) 500L),
+  DeleteNodesRequest_Encoding_DefaultJson((int) 15173L),
+  DeleteNodesRequest_Encoding_DefaultXml((int) 499L),
+  DeleteNodesResponse((int) 501L),
+  DeleteNodesResponse_Encoding_DefaultBinary((int) 503L),
+  DeleteNodesResponse_Encoding_DefaultJson((int) 15174L),
+  DeleteNodesResponse_Encoding_DefaultXml((int) 502L),
+  DeleteRawModifiedDetails((int) 686L),
+  DeleteRawModifiedDetails_Encoding_DefaultBinary((int) 688L),
+  DeleteRawModifiedDetails_Encoding_DefaultJson((int) 15283L),
+  DeleteRawModifiedDetails_Encoding_DefaultXml((int) 687L),
   DeleteReferencesItem((int) 385L),
   DeleteReferencesItem_Encoding_DefaultBinary((int) 387L),
   DeleteReferencesItem_Encoding_DefaultJson((int) 15175L),
   DeleteReferencesItem_Encoding_DefaultXml((int) 386L),
+  DeleteReferencesRequest((int) 504L),
+  DeleteReferencesRequest_Encoding_DefaultBinary((int) 506L),
+  DeleteReferencesRequest_Encoding_DefaultJson((int) 15176L),
+  DeleteReferencesRequest_Encoding_DefaultXml((int) 505L),
+  DeleteReferencesResponse((int) 507L),
+  DeleteReferencesResponse_Encoding_DefaultBinary((int) 509L),
+  DeleteReferencesResponse_Encoding_DefaultJson((int) 15177L),
+  DeleteReferencesResponse_Encoding_DefaultXml((int) 508L),
+  DeleteSubscriptionsRequest((int) 845L),
+  DeleteSubscriptionsRequest_Encoding_DefaultBinary((int) 847L),
+  DeleteSubscriptionsRequest_Encoding_DefaultJson((int) 15359L),
+  DeleteSubscriptionsRequest_Encoding_DefaultXml((int) 846L),
+  DeleteSubscriptionsResponse((int) 848L),
+  DeleteSubscriptionsResponse_Encoding_DefaultBinary((int) 850L),
+  DeleteSubscriptionsResponse_Encoding_DefaultJson((int) 15360L),
+  DeleteSubscriptionsResponse_Encoding_DefaultXml((int) 849L),
   DeviceFailureEventType((int) 2131L),
   DiagnosticInfo((int) 25L),
   DiagnosticsLevel((int) 19723L),
@@ -377,6 +593,7 @@ public enum OpcuaNodeIdServices {
   EccBrainpoolP384r1ApplicationCertificateType((int) 23541L),
   EccCurve25519ApplicationCertificateType((int) 23542L),
   EccCurve448ApplicationCertificateType((int) 23543L),
+  EccEncryptedSecret((int) 17546L),
   EccNistP256ApplicationCertificateType((int) 23538L),
   EccNistP384ApplicationCertificateType((int) 23539L),
   ElementOperand((int) 592L),
@@ -428,10 +645,22 @@ public enum OpcuaNodeIdServices {
   EUInformation_Encoding_DefaultBinary((int) 889L),
   EUInformation_Encoding_DefaultJson((int) 15376L),
   EUInformation_Encoding_DefaultXml((int) 888L),
+  EventFieldList((int) 917L),
+  EventFieldList_Encoding_DefaultBinary((int) 919L),
+  EventFieldList_Encoding_DefaultJson((int) 15348L),
+  EventFieldList_Encoding_DefaultXml((int) 918L),
   EventFilter((int) 725L),
   EventFilter_Encoding_DefaultBinary((int) 727L),
   EventFilter_Encoding_DefaultJson((int) 15295L),
   EventFilter_Encoding_DefaultXml((int) 726L),
+  EventFilterResult((int) 734L),
+  EventFilterResult_Encoding_DefaultBinary((int) 736L),
+  EventFilterResult_Encoding_DefaultJson((int) 15314L),
+  EventFilterResult_Encoding_DefaultXml((int) 735L),
+  EventNotificationList((int) 914L),
+  EventNotificationList_Encoding_DefaultBinary((int) 916L),
+  EventNotificationList_Encoding_DefaultJson((int) 15347L),
+  EventNotificationList_Encoding_DefaultXml((int) 915L),
   EventNotifierType((int) 15033L),
   EventQueueOverflowEventType((int) 3035L),
   EventTypesFolder((int) 3048L),
@@ -461,6 +690,22 @@ public enum OpcuaNodeIdServices {
   FilterOperand_Encoding_DefaultJson((int) 15206L),
   FilterOperand_Encoding_DefaultXml((int) 590L),
   FilterOperator((int) 576L),
+  FindServersOnNetworkRequest((int) 12190L),
+  FindServersOnNetworkRequest_Encoding_DefaultBinary((int) 12208L),
+  FindServersOnNetworkRequest_Encoding_DefaultJson((int) 15096L),
+  FindServersOnNetworkRequest_Encoding_DefaultXml((int) 12196L),
+  FindServersOnNetworkResponse((int) 12191L),
+  FindServersOnNetworkResponse_Encoding_DefaultBinary((int) 12209L),
+  FindServersOnNetworkResponse_Encoding_DefaultJson((int) 15097L),
+  FindServersOnNetworkResponse_Encoding_DefaultXml((int) 12197L),
+  FindServersRequest((int) 420L),
+  FindServersRequest_Encoding_DefaultBinary((int) 422L),
+  FindServersRequest_Encoding_DefaultJson((int) 15093L),
+  FindServersRequest_Encoding_DefaultXml((int) 421L),
+  FindServersResponse((int) 423L),
+  FindServersResponse_Encoding_DefaultBinary((int) 425L),
+  FindServersResponse_Encoding_DefaultJson((int) 15094L),
+  FindServersResponse_Encoding_DefaultXml((int) 424L),
   FiniteStateMachineType((int) 2771L),
   FiniteStateVariableType((int) 2760L),
   FiniteTransitionVariableType((int) 2767L),
@@ -474,6 +719,22 @@ public enum OpcuaNodeIdServices {
   FromState((int) 51L),
   GeneralModelChangeEventType((int) 2133L),
   GeneratesEvent((int) 41L),
+  GenericAttributes((int) 17607L),
+  GenericAttributes_Encoding_DefaultBinary((int) 17611L),
+  GenericAttributes_Encoding_DefaultJson((int) 15164L),
+  GenericAttributes_Encoding_DefaultXml((int) 17609L),
+  GenericAttributeValue((int) 17606L),
+  GenericAttributeValue_Encoding_DefaultBinary((int) 17610L),
+  GenericAttributeValue_Encoding_DefaultJson((int) 15163L),
+  GenericAttributeValue_Encoding_DefaultXml((int) 17608L),
+  GetEndpointsRequest((int) 426L),
+  GetEndpointsRequest_Encoding_DefaultBinary((int) 428L),
+  GetEndpointsRequest_Encoding_DefaultJson((int) 15100L),
+  GetEndpointsRequest_Encoding_DefaultXml((int) 427L),
+  GetEndpointsResponse((int) 429L),
+  GetEndpointsResponse_Encoding_DefaultBinary((int) 431L),
+  GetEndpointsResponse_Encoding_DefaultJson((int) 15101L),
+  GetEndpointsResponse_Encoding_DefaultXml((int) 430L),
   GuardVariableType((int) 15113L),
   Guid((int) 14L),
   HAConfiguration((int) 11202L),
@@ -515,6 +776,10 @@ public enum OpcuaNodeIdServices {
   HighlyManagedAlarmConditionClassType((int) 17219L),
   HistoricalDataConfigurationType((int) 2318L),
   HistoricalEventFilter((int) 11215L),
+  HistoryData((int) 656L),
+  HistoryData_Encoding_DefaultBinary((int) 658L),
+  HistoryData_Encoding_DefaultJson((int) 15270L),
+  HistoryData_Encoding_DefaultXml((int) 657L),
   HistoryEvent((int) 659L),
   HistoryEvent_Encoding_DefaultBinary((int) 661L),
   HistoryEvent_Encoding_DefaultJson((int) 15273L),
@@ -523,8 +788,48 @@ public enum OpcuaNodeIdServices {
   HistoryEventFieldList_Encoding_DefaultBinary((int) 922L),
   HistoryEventFieldList_Encoding_DefaultJson((int) 15349L),
   HistoryEventFieldList_Encoding_DefaultXml((int) 921L),
+  HistoryModifiedData((int) 11217L),
+  HistoryModifiedData_Encoding_DefaultBinary((int) 11227L),
+  HistoryModifiedData_Encoding_DefaultJson((int) 15272L),
+  HistoryModifiedData_Encoding_DefaultXml((int) 11219L),
+  HistoryReadDetails((int) 641L),
+  HistoryReadDetails_Encoding_DefaultBinary((int) 643L),
+  HistoryReadDetails_Encoding_DefaultJson((int) 15261L),
+  HistoryReadDetails_Encoding_DefaultXml((int) 642L),
+  HistoryReadRequest((int) 662L),
+  HistoryReadRequest_Encoding_DefaultBinary((int) 664L),
+  HistoryReadRequest_Encoding_DefaultJson((int) 15274L),
+  HistoryReadRequest_Encoding_DefaultXml((int) 663L),
+  HistoryReadResponse((int) 665L),
+  HistoryReadResponse_Encoding_DefaultBinary((int) 667L),
+  HistoryReadResponse_Encoding_DefaultJson((int) 15275L),
+  HistoryReadResponse_Encoding_DefaultXml((int) 666L),
+  HistoryReadResult((int) 638L),
+  HistoryReadResult_Encoding_DefaultBinary((int) 640L),
+  HistoryReadResult_Encoding_DefaultJson((int) 15260L),
+  HistoryReadResult_Encoding_DefaultXml((int) 639L),
+  HistoryReadValueId((int) 635L),
+  HistoryReadValueId_Encoding_DefaultBinary((int) 637L),
+  HistoryReadValueId_Encoding_DefaultJson((int) 15259L),
+  HistoryReadValueId_Encoding_DefaultXml((int) 636L),
   HistoryServerCapabilities((int) 11192L),
   HistoryServerCapabilitiesType((int) 2330L),
+  HistoryUpdateDetails((int) 677L),
+  HistoryUpdateDetails_Encoding_DefaultBinary((int) 679L),
+  HistoryUpdateDetails_Encoding_DefaultJson((int) 15279L),
+  HistoryUpdateDetails_Encoding_DefaultXml((int) 678L),
+  HistoryUpdateRequest((int) 698L),
+  HistoryUpdateRequest_Encoding_DefaultBinary((int) 700L),
+  HistoryUpdateRequest_Encoding_DefaultJson((int) 15287L),
+  HistoryUpdateRequest_Encoding_DefaultXml((int) 699L),
+  HistoryUpdateResponse((int) 701L),
+  HistoryUpdateResponse_Encoding_DefaultBinary((int) 703L),
+  HistoryUpdateResponse_Encoding_DefaultJson((int) 15288L),
+  HistoryUpdateResponse_Encoding_DefaultXml((int) 702L),
+  HistoryUpdateResult((int) 695L),
+  HistoryUpdateResult_Encoding_DefaultBinary((int) 697L),
+  HistoryUpdateResult_Encoding_DefaultJson((int) 15286L),
+  HistoryUpdateResult_Encoding_DefaultXml((int) 696L),
   HistoryUpdateType((int) 11234L),
   HttpsCertificateType((int) 12558L),
   IBaseEthernetCapabilitiesType((int) 24167L),
@@ -555,6 +860,10 @@ public enum OpcuaNodeIdServices {
   Index((int) 17588L),
   InitialStateType((int) 2309L),
   InputArguments((int) 3072L),
+  InstanceNode((int) 11879L),
+  InstanceNode_Encoding_DefaultBinary((int) 11889L),
+  InstanceNode_Encoding_DefaultJson((int) 15069L),
+  InstanceNode_Encoding_DefaultXml((int) 11887L),
   InstrumentDiagnosticAlarmType((int) 18347L),
   Int16((int) 4L),
   Int32((int) 6L),
@@ -619,20 +928,78 @@ public enum OpcuaNodeIdServices {
   MdnsDiscoveryConfiguration_Encoding_DefaultJson((int) 15106L),
   MdnsDiscoveryConfiguration_Encoding_DefaultXml((int) 12893L),
   MessageSecurityMode((int) 302L),
+  MethodAttributes((int) 358L),
+  MethodAttributes_Encoding_DefaultBinary((int) 360L),
+  MethodAttributes_Encoding_DefaultJson((int) 15157L),
+  MethodAttributes_Encoding_DefaultXml((int) 359L),
+  MethodNode((int) 276L),
+  MethodNode_Encoding_DefaultBinary((int) 278L),
+  MethodNode_Encoding_DefaultJson((int) 15077L),
+  MethodNode_Encoding_DefaultXml((int) 277L),
   ModelChangeStructureDataType((int) 877L),
   ModelChangeStructureDataType_Encoding_DefaultBinary((int) 879L),
   ModelChangeStructureDataType_Encoding_DefaultJson((int) 15373L),
   ModelChangeStructureDataType_Encoding_DefaultXml((int) 878L),
+  ModelChangeStructureVerbMask((int) 11941L),
   ModellingRule_ExposesItsArray((int) 83L),
   ModellingRule_Mandatory((int) 78L),
   ModellingRule_MandatoryPlaceholder((int) 11510L),
   ModellingRule_Optional((int) 80L),
   ModellingRule_OptionalPlaceholder((int) 11508L),
   ModellingRuleType((int) 77L),
+  ModificationInfo((int) 11216L),
+  ModificationInfo_Encoding_DefaultBinary((int) 11226L),
+  ModificationInfo_Encoding_DefaultJson((int) 15271L),
+  ModificationInfo_Encoding_DefaultXml((int) 11218L),
+  ModifyMonitoredItemsRequest((int) 761L),
+  ModifyMonitoredItemsRequest_Encoding_DefaultBinary((int) 763L),
+  ModifyMonitoredItemsRequest_Encoding_DefaultJson((int) 15327L),
+  ModifyMonitoredItemsRequest_Encoding_DefaultXml((int) 762L),
+  ModifyMonitoredItemsResponse((int) 764L),
+  ModifyMonitoredItemsResponse_Encoding_DefaultBinary((int) 766L),
+  ModifyMonitoredItemsResponse_Encoding_DefaultJson((int) 15328L),
+  ModifyMonitoredItemsResponse_Encoding_DefaultXml((int) 765L),
+  ModifySubscriptionRequest((int) 791L),
+  ModifySubscriptionRequest_Encoding_DefaultBinary((int) 793L),
+  ModifySubscriptionRequest_Encoding_DefaultJson((int) 15339L),
+  ModifySubscriptionRequest_Encoding_DefaultXml((int) 792L),
+  ModifySubscriptionResponse((int) 794L),
+  ModifySubscriptionResponse_Encoding_DefaultBinary((int) 796L),
+  ModifySubscriptionResponse_Encoding_DefaultJson((int) 15340L),
+  ModifySubscriptionResponse_Encoding_DefaultXml((int) 795L),
+  MonitoredItemCreateRequest((int) 743L),
+  MonitoredItemCreateRequest_Encoding_DefaultBinary((int) 745L),
+  MonitoredItemCreateRequest_Encoding_DefaultJson((int) 15321L),
+  MonitoredItemCreateRequest_Encoding_DefaultXml((int) 744L),
+  MonitoredItemCreateResult((int) 746L),
+  MonitoredItemCreateResult_Encoding_DefaultBinary((int) 748L),
+  MonitoredItemCreateResult_Encoding_DefaultJson((int) 15322L),
+  MonitoredItemCreateResult_Encoding_DefaultXml((int) 747L),
+  MonitoredItemModifyRequest((int) 755L),
+  MonitoredItemModifyRequest_Encoding_DefaultBinary((int) 757L),
+  MonitoredItemModifyRequest_Encoding_DefaultJson((int) 15325L),
+  MonitoredItemModifyRequest_Encoding_DefaultXml((int) 756L),
+  MonitoredItemModifyResult((int) 758L),
+  MonitoredItemModifyResult_Encoding_DefaultBinary((int) 760L),
+  MonitoredItemModifyResult_Encoding_DefaultJson((int) 15326L),
+  MonitoredItemModifyResult_Encoding_DefaultXml((int) 759L),
+  MonitoredItemNotification((int) 806L),
+  MonitoredItemNotification_Encoding_DefaultBinary((int) 808L),
+  MonitoredItemNotification_Encoding_DefaultJson((int) 15346L),
+  MonitoredItemNotification_Encoding_DefaultXml((int) 807L),
   MonitoringFilter((int) 719L),
   MonitoringFilter_Encoding_DefaultBinary((int) 721L),
   MonitoringFilter_Encoding_DefaultJson((int) 15293L),
   MonitoringFilter_Encoding_DefaultXml((int) 720L),
+  MonitoringFilterResult((int) 731L),
+  MonitoringFilterResult_Encoding_DefaultBinary((int) 733L),
+  MonitoringFilterResult_Encoding_DefaultJson((int) 15313L),
+  MonitoringFilterResult_Encoding_DefaultXml((int) 732L),
+  MonitoringMode((int) 716L),
+  MonitoringParameters((int) 740L),
+  MonitoringParameters_Encoding_DefaultBinary((int) 742L),
+  MonitoringParameters_Encoding_DefaultJson((int) 15320L),
+  MonitoringParameters_Encoding_DefaultXml((int) 741L),
   MultiStateDictionaryEntryDiscreteBaseType((int) 19077L),
   MultiStateDictionaryEntryDiscreteType((int) 19084L),
   MultiStateDiscreteType((int) 2376L),
@@ -657,9 +1024,25 @@ public enum OpcuaNodeIdServices {
   NetworkGroupDataType_Encoding_DefaultJson((int) 15364L),
   NetworkGroupDataType_Encoding_DefaultXml((int) 11950L),
   NetworkInterfaces((int) 24229L),
+  Node((int) 258L),
+  Node_Encoding_DefaultBinary((int) 260L),
+  Node_Encoding_DefaultJson((int) 15068L),
+  Node_Encoding_DefaultXml((int) 259L),
+  NodeAttributes((int) 349L),
+  NodeAttributes_Encoding_DefaultBinary((int) 351L),
+  NodeAttributes_Encoding_DefaultJson((int) 15151L),
+  NodeAttributes_Encoding_DefaultXml((int) 350L),
   NodeAttributesMask((int) 348L),
   NodeClass((int) 257L),
   NodeId((int) 17L),
+  NodeReference((int) 580L),
+  NodeReference_Encoding_DefaultBinary((int) 582L),
+  NodeReference_Encoding_DefaultJson((int) 15203L),
+  NodeReference_Encoding_DefaultXml((int) 581L),
+  NodeTypeDescription((int) 573L),
+  NodeTypeDescription_Encoding_DefaultBinary((int) 575L),
+  NodeTypeDescription_Encoding_DefaultJson((int) 15201L),
+  NodeTypeDescription_Encoding_DefaultXml((int) 574L),
   NodeVersion((int) 3068L),
   NonExclusiveDeviationAlarmType((int) 10368L),
   NonExclusiveLevelAlarmType((int) 10060L),
@@ -669,9 +1052,33 @@ public enum OpcuaNodeIdServices {
   NonTransparentNetworkRedundancyType((int) 11945L),
   NonTransparentRedundancyType((int) 2039L),
   NormalizedString((int) 12877L),
+  NotificationData((int) 945L),
+  NotificationData_Encoding_DefaultBinary((int) 947L),
+  NotificationData_Encoding_DefaultJson((int) 15344L),
+  NotificationData_Encoding_DefaultXml((int) 946L),
+  NotificationMessage((int) 803L),
+  NotificationMessage_Encoding_DefaultBinary((int) 805L),
+  NotificationMessage_Encoding_DefaultJson((int) 15343L),
+  NotificationMessage_Encoding_DefaultXml((int) 804L),
   Number((int) 26L),
   NumericRange((int) 291L),
+  ObjectAttributes((int) 352L),
+  ObjectAttributes_Encoding_DefaultBinary((int) 354L),
+  ObjectAttributes_Encoding_DefaultJson((int) 15152L),
+  ObjectAttributes_Encoding_DefaultXml((int) 353L),
+  ObjectNode((int) 261L),
+  ObjectNode_Encoding_DefaultBinary((int) 263L),
+  ObjectNode_Encoding_DefaultJson((int) 15071L),
+  ObjectNode_Encoding_DefaultXml((int) 262L),
   ObjectsFolder((int) 85L),
+  ObjectTypeAttributes((int) 361L),
+  ObjectTypeAttributes_Encoding_DefaultBinary((int) 363L),
+  ObjectTypeAttributes_Encoding_DefaultJson((int) 15158L),
+  ObjectTypeAttributes_Encoding_DefaultXml((int) 362L),
+  ObjectTypeNode((int) 264L),
+  ObjectTypeNode_Encoding_DefaultBinary((int) 266L),
+  ObjectTypeNode_Encoding_DefaultJson((int) 15073L),
+  ObjectTypeNode_Encoding_DefaultXml((int) 265L),
   ObjectTypesFolder((int) 88L),
   OffNormalAlarmType((int) 10637L),
   OPCBinarySchema_TypeSystem((int) 93L),
@@ -679,6 +1086,14 @@ public enum OpcuaNodeIdServices {
   OpcUa_XmlSchema((int) 8252L),
   OPCUANamespaceMetadata((int) 15957L),
   OpenFileMode((int) 11939L),
+  OpenSecureChannelRequest((int) 444L),
+  OpenSecureChannelRequest_Encoding_DefaultBinary((int) 446L),
+  OpenSecureChannelRequest_Encoding_DefaultJson((int) 15132L),
+  OpenSecureChannelRequest_Encoding_DefaultXml((int) 445L),
+  OpenSecureChannelResponse((int) 447L),
+  OpenSecureChannelResponse_Encoding_DefaultBinary((int) 449L),
+  OpenSecureChannelResponse_Encoding_DefaultJson((int) 15133L),
+  OpenSecureChannelResponse_Encoding_DefaultXml((int) 448L),
   OperationLimitsType((int) 11564L),
   OptionSet((int) 12755L),
   OptionSet_Encoding_DefaultBinary((int) 12765L),
@@ -695,6 +1110,10 @@ public enum OpcuaNodeIdServices {
   OrientationType((int) 18779L),
   OutputArguments((int) 3073L),
   OverrideValueHandling((int) 15874L),
+  ParsingResult((int) 610L),
+  ParsingResult_Encoding_DefaultBinary((int) 612L),
+  ParsingResult_Encoding_DefaultJson((int) 15236L),
+  ParsingResult_Encoding_DefaultXml((int) 611L),
   PerformUpdateType((int) 11293L),
   PermissionType((int) 94L),
   ProcessConditionClassType((int) 11164L),
@@ -736,6 +1155,14 @@ public enum OpcuaNodeIdServices {
   PublishedVariableDataType_Encoding_DefaultBinary((int) 14323L),
   PublishedVariableDataType_Encoding_DefaultJson((int) 15060L),
   PublishedVariableDataType_Encoding_DefaultXml((int) 14319L),
+  PublishRequest((int) 824L),
+  PublishRequest_Encoding_DefaultBinary((int) 826L),
+  PublishRequest_Encoding_DefaultJson((int) 15352L),
+  PublishRequest_Encoding_DefaultXml((int) 825L),
+  PublishResponse((int) 827L),
+  PublishResponse_Encoding_DefaultBinary((int) 829L),
+  PublishResponse_Encoding_DefaultJson((int) 15353L),
+  PublishResponse_Encoding_DefaultXml((int) 828L),
   PublishSubscribe((int) 14443L),
   PublishSubscribeType((int) 14416L),
   PubSubCommunicationFailureEventType((int) 15563L),
@@ -768,6 +1195,30 @@ public enum OpcuaNodeIdServices {
   PubSubStatusType((int) 14643L),
   PubSubTransportLimitsExceedEventType((int) 15548L),
   QualifiedName((int) 20L),
+  QueryDataDescription((int) 570L),
+  QueryDataDescription_Encoding_DefaultBinary((int) 572L),
+  QueryDataDescription_Encoding_DefaultJson((int) 15200L),
+  QueryDataDescription_Encoding_DefaultXml((int) 571L),
+  QueryDataSet((int) 577L),
+  QueryDataSet_Encoding_DefaultBinary((int) 579L),
+  QueryDataSet_Encoding_DefaultJson((int) 15202L),
+  QueryDataSet_Encoding_DefaultXml((int) 578L),
+  QueryFirstRequest((int) 613L),
+  QueryFirstRequest_Encoding_DefaultBinary((int) 615L),
+  QueryFirstRequest_Encoding_DefaultJson((int) 15244L),
+  QueryFirstRequest_Encoding_DefaultXml((int) 614L),
+  QueryFirstResponse((int) 616L),
+  QueryFirstResponse_Encoding_DefaultBinary((int) 618L),
+  QueryFirstResponse_Encoding_DefaultJson((int) 15252L),
+  QueryFirstResponse_Encoding_DefaultXml((int) 617L),
+  QueryNextRequest((int) 619L),
+  QueryNextRequest_Encoding_DefaultBinary((int) 621L),
+  QueryNextRequest_Encoding_DefaultJson((int) 15254L),
+  QueryNextRequest_Encoding_DefaultXml((int) 620L),
+  QueryNextResponse((int) 622L),
+  QueryNextResponse_Encoding_DefaultBinary((int) 624L),
+  QueryNextResponse_Encoding_DefaultJson((int) 15255L),
+  QueryNextResponse_Encoding_DefaultXml((int) 623L),
   Range((int) 884L),
   Range_Encoding_DefaultBinary((int) 886L),
   Range_Encoding_DefaultJson((int) 15375L),
@@ -777,6 +1228,14 @@ public enum OpcuaNodeIdServices {
   RationalNumber_Encoding_DefaultJson((int) 19064L),
   RationalNumber_Encoding_DefaultXml((int) 18851L),
   RationalNumberType((int) 17709L),
+  ReadAnnotationDataDetails((int) 23497L),
+  ReadAnnotationDataDetails_Encoding_DefaultBinary((int) 23500L),
+  ReadAnnotationDataDetails_Encoding_DefaultJson((int) 23512L),
+  ReadAnnotationDataDetails_Encoding_DefaultXml((int) 23506L),
+  ReadAtTimeDetails((int) 653L),
+  ReadAtTimeDetails_Encoding_DefaultBinary((int) 655L),
+  ReadAtTimeDetails_Encoding_DefaultJson((int) 15269L),
+  ReadAtTimeDetails_Encoding_DefaultXml((int) 654L),
   ReaderGroupDataType((int) 15520L),
   ReaderGroupDataType_Encoding_DefaultBinary((int) 21153L),
   ReaderGroupDataType_Encoding_DefaultJson((int) 21201L),
@@ -792,12 +1251,52 @@ public enum OpcuaNodeIdServices {
   ReaderGroupTransportDataType_Encoding_DefaultXml((int) 15995L),
   ReaderGroupTransportType((int) 21090L),
   ReaderGroupType((int) 17999L),
+  ReadEventDetails((int) 644L),
+  ReadEventDetails_Encoding_DefaultBinary((int) 646L),
+  ReadEventDetails_Encoding_DefaultJson((int) 15262L),
+  ReadEventDetails_Encoding_DefaultXml((int) 645L),
+  ReadProcessedDetails((int) 650L),
+  ReadProcessedDetails_Encoding_DefaultBinary((int) 652L),
+  ReadProcessedDetails_Encoding_DefaultJson((int) 15264L),
+  ReadProcessedDetails_Encoding_DefaultXml((int) 651L),
+  ReadRawModifiedDetails((int) 647L),
+  ReadRawModifiedDetails_Encoding_DefaultBinary((int) 649L),
+  ReadRawModifiedDetails_Encoding_DefaultJson((int) 15263L),
+  ReadRawModifiedDetails_Encoding_DefaultXml((int) 648L),
+  ReadRequest((int) 629L),
+  ReadRequest_Encoding_DefaultBinary((int) 631L),
+  ReadRequest_Encoding_DefaultJson((int) 15257L),
+  ReadRequest_Encoding_DefaultXml((int) 630L),
+  ReadResponse((int) 632L),
+  ReadResponse_Encoding_DefaultBinary((int) 634L),
+  ReadResponse_Encoding_DefaultJson((int) 15258L),
+  ReadResponse_Encoding_DefaultXml((int) 633L),
+  ReadValueId((int) 626L),
+  ReadValueId_Encoding_DefaultBinary((int) 628L),
+  ReadValueId_Encoding_DefaultJson((int) 15256L),
+  ReadValueId_Encoding_DefaultXml((int) 627L),
   RedundancySupport((int) 851L),
   RedundantServerDataType((int) 853L),
   RedundantServerDataType_Encoding_DefaultBinary((int) 855L),
   RedundantServerDataType_Encoding_DefaultJson((int) 15362L),
   RedundantServerDataType_Encoding_DefaultXml((int) 854L),
+  ReferenceDescription((int) 518L),
+  ReferenceDescription_Encoding_DefaultBinary((int) 520L),
+  ReferenceDescription_Encoding_DefaultJson((int) 15182L),
+  ReferenceDescription_Encoding_DefaultXml((int) 519L),
+  ReferenceNode((int) 285L),
+  ReferenceNode_Encoding_DefaultBinary((int) 287L),
+  ReferenceNode_Encoding_DefaultJson((int) 15080L),
+  ReferenceNode_Encoding_DefaultXml((int) 286L),
   References((int) 31L),
+  ReferenceTypeAttributes((int) 367L),
+  ReferenceTypeAttributes_Encoding_DefaultBinary((int) 369L),
+  ReferenceTypeAttributes_Encoding_DefaultJson((int) 15160L),
+  ReferenceTypeAttributes_Encoding_DefaultXml((int) 368L),
+  ReferenceTypeNode((int) 273L),
+  ReferenceTypeNode_Encoding_DefaultBinary((int) 275L),
+  ReferenceTypeNode_Encoding_DefaultJson((int) 15076L),
+  ReferenceTypeNode_Encoding_DefaultXml((int) 274L),
   ReferenceTypesFolder((int) 91L),
   RefreshEndEventType((int) 2788L),
   RefreshRequiredEventType((int) 2789L),
@@ -806,6 +1305,30 @@ public enum OpcuaNodeIdServices {
   RegisteredServer_Encoding_DefaultBinary((int) 434L),
   RegisteredServer_Encoding_DefaultJson((int) 15102L),
   RegisteredServer_Encoding_DefaultXml((int) 433L),
+  RegisterNodesRequest((int) 558L),
+  RegisterNodesRequest_Encoding_DefaultBinary((int) 560L),
+  RegisterNodesRequest_Encoding_DefaultJson((int) 15195L),
+  RegisterNodesRequest_Encoding_DefaultXml((int) 559L),
+  RegisterNodesResponse((int) 561L),
+  RegisterNodesResponse_Encoding_DefaultBinary((int) 563L),
+  RegisterNodesResponse_Encoding_DefaultJson((int) 15196L),
+  RegisterNodesResponse_Encoding_DefaultXml((int) 562L),
+  RegisterServer2Request((int) 12193L),
+  RegisterServer2Request_Encoding_DefaultBinary((int) 12211L),
+  RegisterServer2Request_Encoding_DefaultJson((int) 15107L),
+  RegisterServer2Request_Encoding_DefaultXml((int) 12199L),
+  RegisterServer2Response((int) 12194L),
+  RegisterServer2Response_Encoding_DefaultBinary((int) 12212L),
+  RegisterServer2Response_Encoding_DefaultJson((int) 15130L),
+  RegisterServer2Response_Encoding_DefaultXml((int) 12200L),
+  RegisterServerRequest((int) 435L),
+  RegisterServerRequest_Encoding_DefaultBinary((int) 437L),
+  RegisterServerRequest_Encoding_DefaultJson((int) 15103L),
+  RegisterServerRequest_Encoding_DefaultXml((int) 436L),
+  RegisterServerResponse((int) 438L),
+  RegisterServerResponse_Encoding_DefaultBinary((int) 440L),
+  RegisterServerResponse_Encoding_DefaultJson((int) 15104L),
+  RegisterServerResponse_Encoding_DefaultXml((int) 439L),
   RelativePath((int) 540L),
   RelativePath_Encoding_DefaultBinary((int) 542L),
   RelativePath_Encoding_DefaultJson((int) 15189L),
@@ -814,7 +1337,23 @@ public enum OpcuaNodeIdServices {
   RelativePathElement_Encoding_DefaultBinary((int) 539L),
   RelativePathElement_Encoding_DefaultJson((int) 15188L),
   RelativePathElement_Encoding_DefaultXml((int) 538L),
+  RepublishRequest((int) 830L),
+  RepublishRequest_Encoding_DefaultBinary((int) 832L),
+  RepublishRequest_Encoding_DefaultJson((int) 15354L),
+  RepublishRequest_Encoding_DefaultXml((int) 831L),
+  RepublishResponse((int) 833L),
+  RepublishResponse_Encoding_DefaultBinary((int) 835L),
+  RepublishResponse_Encoding_DefaultJson((int) 15355L),
+  RepublishResponse_Encoding_DefaultXml((int) 834L),
+  RequestHeader((int) 389L),
+  RequestHeader_Encoding_DefaultBinary((int) 391L),
+  RequestHeader_Encoding_DefaultJson((int) 15088L),
+  RequestHeader_Encoding_DefaultXml((int) 390L),
   Resources((int) 24226L),
+  ResponseHeader((int) 392L),
+  ResponseHeader_Encoding_DefaultBinary((int) 394L),
+  ResponseHeader_Encoding_DefaultJson((int) 15089L),
+  ResponseHeader_Encoding_DefaultXml((int) 393L),
   RoleMappingRuleChangedAuditEventType((int) 17641L),
   RolePermissionType((int) 96L),
   RolePermissionType_Encoding_DefaultBinary((int) 128L),
@@ -823,6 +1362,7 @@ public enum OpcuaNodeIdServices {
   RoleSetType((int) 15607L),
   RoleType((int) 15620L),
   RootFolder((int) 84L),
+  RsaEncryptedSecret((int) 17545L),
   RsaMinApplicationCertificateType((int) 12559L),
   RsaSha256ApplicationCertificateType((int) 12560L),
   SafetyConditionClassType((int) 17218L),
@@ -873,6 +1413,10 @@ public enum OpcuaNodeIdServices {
   ServiceCounterDataType_Encoding_DefaultBinary((int) 873L),
   ServiceCounterDataType_Encoding_DefaultJson((int) 15370L),
   ServiceCounterDataType_Encoding_DefaultXml((int) 872L),
+  ServiceFault((int) 395L),
+  ServiceFault_Encoding_DefaultBinary((int) 397L),
+  ServiceFault_Encoding_DefaultJson((int) 15090L),
+  ServiceFault_Encoding_DefaultXml((int) 396L),
   SessionAuthenticationToken((int) 388L),
   SessionDiagnosticsArrayType((int) 2196L),
   SessionDiagnosticsDataType((int) 865L),
@@ -881,6 +1425,14 @@ public enum OpcuaNodeIdServices {
   SessionDiagnosticsDataType_Encoding_DefaultXml((int) 866L),
   SessionDiagnosticsObjectType((int) 2029L),
   SessionDiagnosticsVariableType((int) 2197L),
+  SessionlessInvokeRequestType((int) 15901L),
+  SessionlessInvokeRequestType_Encoding_DefaultBinary((int) 15903L),
+  SessionlessInvokeRequestType_Encoding_DefaultJson((int) 15091L),
+  SessionlessInvokeRequestType_Encoding_DefaultXml((int) 15902L),
+  SessionlessInvokeResponseType((int) 20999L),
+  SessionlessInvokeResponseType_Encoding_DefaultBinary((int) 21001L),
+  SessionlessInvokeResponseType_Encoding_DefaultJson((int) 15092L),
+  SessionlessInvokeResponseType_Encoding_DefaultXml((int) 21000L),
   SessionsDiagnosticsSummaryType((int) 2026L),
   SessionSecurityDiagnosticsArrayType((int) 2243L),
   SessionSecurityDiagnosticsDataType((int) 868L),
@@ -888,7 +1440,35 @@ public enum OpcuaNodeIdServices {
   SessionSecurityDiagnosticsDataType_Encoding_DefaultJson((int) 15369L),
   SessionSecurityDiagnosticsDataType_Encoding_DefaultXml((int) 869L),
   SessionSecurityDiagnosticsType((int) 2244L),
+  SetMonitoringModeRequest((int) 767L),
+  SetMonitoringModeRequest_Encoding_DefaultBinary((int) 769L),
+  SetMonitoringModeRequest_Encoding_DefaultJson((int) 15329L),
+  SetMonitoringModeRequest_Encoding_DefaultXml((int) 768L),
+  SetMonitoringModeResponse((int) 770L),
+  SetMonitoringModeResponse_Encoding_DefaultBinary((int) 772L),
+  SetMonitoringModeResponse_Encoding_DefaultJson((int) 15331L),
+  SetMonitoringModeResponse_Encoding_DefaultXml((int) 771L),
+  SetPublishingModeRequest((int) 797L),
+  SetPublishingModeRequest_Encoding_DefaultBinary((int) 799L),
+  SetPublishingModeRequest_Encoding_DefaultJson((int) 15341L),
+  SetPublishingModeRequest_Encoding_DefaultXml((int) 798L),
+  SetPublishingModeResponse((int) 800L),
+  SetPublishingModeResponse_Encoding_DefaultBinary((int) 802L),
+  SetPublishingModeResponse_Encoding_DefaultJson((int) 15342L),
+  SetPublishingModeResponse_Encoding_DefaultXml((int) 801L),
+  SetTriggeringRequest((int) 773L),
+  SetTriggeringRequest_Encoding_DefaultBinary((int) 775L),
+  SetTriggeringRequest_Encoding_DefaultJson((int) 15332L),
+  SetTriggeringRequest_Encoding_DefaultXml((int) 774L),
+  SetTriggeringResponse((int) 776L),
+  SetTriggeringResponse_Encoding_DefaultBinary((int) 778L),
+  SetTriggeringResponse_Encoding_DefaultJson((int) 15333L),
+  SetTriggeringResponse_Encoding_DefaultXml((int) 777L),
   ShelvedStateMachineType((int) 2929L),
+  SignatureData((int) 456L),
+  SignatureData_Encoding_DefaultBinary((int) 458L),
+  SignatureData_Encoding_DefaultJson((int) 15137L),
+  SignatureData_Encoding_DefaultXml((int) 457L),
   SignedSoftwareCertificate((int) 344L),
   SignedSoftwareCertificate_Encoding_DefaultBinary((int) 346L),
   SignedSoftwareCertificate_Encoding_DefaultJson((int) 15136L),
@@ -905,6 +1485,10 @@ public enum OpcuaNodeIdServices {
   StateType((int) 2307L),
   StateVariableType((int) 2755L),
   StatisticalConditionClassType((int) 18665L),
+  StatusChangeNotification((int) 818L),
+  StatusChangeNotification_Encoding_DefaultBinary((int) 820L),
+  StatusChangeNotification_Encoding_DefaultJson((int) 15350L),
+  StatusChangeNotification_Encoding_DefaultXml((int) 819L),
   StatusCode((int) 19L),
   StatusResult((int) 299L),
   StatusResult_Encoding_DefaultBinary((int) 301L),
@@ -936,6 +1520,10 @@ public enum OpcuaNodeIdServices {
   SubscribedDataSetMirrorDataType_Encoding_DefaultXml((int) 16012L),
   SubscribedDataSetMirrorType((int) 15127L),
   SubscribedDataSetType((int) 15108L),
+  SubscriptionAcknowledgement((int) 821L),
+  SubscriptionAcknowledgement_Encoding_DefaultBinary((int) 823L),
+  SubscriptionAcknowledgement_Encoding_DefaultJson((int) 15351L),
+  SubscriptionAcknowledgement_Encoding_DefaultXml((int) 822L),
   SubscriptionDiagnosticsArrayType((int) 2171L),
   SubscriptionDiagnosticsDataType((int) 874L),
   SubscriptionDiagnosticsDataType_Encoding_DefaultBinary((int) 876L),
@@ -977,6 +1565,7 @@ public enum OpcuaNodeIdServices {
   ThreeDVector_Encoding_DefaultXml((int) 18853L),
   ThreeDVectorType((int) 17716L),
   Time((int) 292L),
+  TimestampsToReturn((int) 625L),
   TimeString((int) 12880L),
   TimeZoneDataType((int) 8912L),
   TimeZoneDataType_Encoding_DefaultBinary((int) 8917L),
@@ -985,9 +1574,29 @@ public enum OpcuaNodeIdServices {
   Topics((int) 23488L),
   ToState((int) 52L),
   TrainingConditionClassType((int) 17220L),
+  TransferResult((int) 836L),
+  TransferResult_Encoding_DefaultBinary((int) 838L),
+  TransferResult_Encoding_DefaultJson((int) 15356L),
+  TransferResult_Encoding_DefaultXml((int) 837L),
+  TransferSubscriptionsRequest((int) 839L),
+  TransferSubscriptionsRequest_Encoding_DefaultBinary((int) 841L),
+  TransferSubscriptionsRequest_Encoding_DefaultJson((int) 15357L),
+  TransferSubscriptionsRequest_Encoding_DefaultXml((int) 840L),
+  TransferSubscriptionsResponse((int) 842L),
+  TransferSubscriptionsResponse_Encoding_DefaultBinary((int) 844L),
+  TransferSubscriptionsResponse_Encoding_DefaultJson((int) 15358L),
+  TransferSubscriptionsResponse_Encoding_DefaultXml((int) 843L),
   TransitionEventType((int) 2311L),
   TransitionType((int) 2310L),
   TransitionVariableType((int) 2762L),
+  TranslateBrowsePathsToNodeIdsRequest((int) 552L),
+  TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary((int) 554L),
+  TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultJson((int) 15193L),
+  TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultXml((int) 553L),
+  TranslateBrowsePathsToNodeIdsResponse((int) 555L),
+  TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary((int) 557L),
+  TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultJson((int) 15194L),
+  TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultXml((int) 556L),
   TransparentRedundancyType((int) 2036L),
   TripAlarmType((int) 10751L),
   TrustListDataType((int) 12554L),
@@ -1004,6 +1613,10 @@ public enum OpcuaNodeIdServices {
   TsnTalkerStatus((int) 24222L),
   TwoStateDiscreteType((int) 2373L),
   TwoStateVariableType((int) 8995L),
+  TypeNode((int) 11880L),
+  TypeNode_Encoding_DefaultBinary((int) 11890L),
+  TypeNode_Encoding_DefaultJson((int) 15070L),
+  TypeNode_Encoding_DefaultXml((int) 11888L),
   TypesFolder((int) 86L),
   UABinaryFileDataType((int) 15006L),
   UABinaryFileDataType_Encoding_DefaultBinary((int) 15422L),
@@ -1034,10 +1647,30 @@ public enum OpcuaNodeIdServices {
   Union_Encoding_DefaultBinary((int) 12766L),
   Union_Encoding_DefaultJson((int) 15085L),
   Union_Encoding_DefaultXml((int) 12758L),
+  UnregisterNodesRequest((int) 564L),
+  UnregisterNodesRequest_Encoding_DefaultBinary((int) 566L),
+  UnregisterNodesRequest_Encoding_DefaultJson((int) 15197L),
+  UnregisterNodesRequest_Encoding_DefaultXml((int) 565L),
+  UnregisterNodesResponse((int) 567L),
+  UnregisterNodesResponse_Encoding_DefaultBinary((int) 569L),
+  UnregisterNodesResponse_Encoding_DefaultJson((int) 15198L),
+  UnregisterNodesResponse_Encoding_DefaultXml((int) 568L),
   UnsignedRationalNumber((int) 24107L),
   UnsignedRationalNumber_Encoding_DefaultBinary((int) 24110L),
   UnsignedRationalNumber_Encoding_DefaultJson((int) 24134L),
   UnsignedRationalNumber_Encoding_DefaultXml((int) 24122L),
+  UpdateDataDetails((int) 680L),
+  UpdateDataDetails_Encoding_DefaultBinary((int) 682L),
+  UpdateDataDetails_Encoding_DefaultJson((int) 15280L),
+  UpdateDataDetails_Encoding_DefaultXml((int) 681L),
+  UpdateEventDetails((int) 683L),
+  UpdateEventDetails_Encoding_DefaultBinary((int) 685L),
+  UpdateEventDetails_Encoding_DefaultJson((int) 15282L),
+  UpdateEventDetails_Encoding_DefaultXml((int) 684L),
+  UpdateStructureDataDetails((int) 11295L),
+  UpdateStructureDataDetails_Encoding_DefaultBinary((int) 11300L),
+  UpdateStructureDataDetails_Encoding_DefaultJson((int) 15281L),
+  UpdateStructureDataDetails_Encoding_DefaultXml((int) 11296L),
   UriDictionaryEntryType((int) 17600L),
   UserCredentialCertificateType((int) 15181L),
   UserIdentityToken((int) 316L),
@@ -1055,6 +1688,22 @@ public enum OpcuaNodeIdServices {
   UserTokenType((int) 303L),
   UtcTime((int) 294L),
   ValueAsText((int) 11433L),
+  VariableAttributes((int) 355L),
+  VariableAttributes_Encoding_DefaultBinary((int) 357L),
+  VariableAttributes_Encoding_DefaultJson((int) 15153L),
+  VariableAttributes_Encoding_DefaultXml((int) 356L),
+  VariableNode((int) 267L),
+  VariableNode_Encoding_DefaultBinary((int) 269L),
+  VariableNode_Encoding_DefaultJson((int) 15074L),
+  VariableNode_Encoding_DefaultXml((int) 268L),
+  VariableTypeAttributes((int) 364L),
+  VariableTypeAttributes_Encoding_DefaultBinary((int) 366L),
+  VariableTypeAttributes_Encoding_DefaultJson((int) 15159L),
+  VariableTypeAttributes_Encoding_DefaultXml((int) 365L),
+  VariableTypeNode((int) 270L),
+  VariableTypeNode_Encoding_DefaultBinary((int) 272L),
+  VariableTypeNode_Encoding_DefaultJson((int) 15075L),
+  VariableTypeNode_Encoding_DefaultXml((int) 271L),
   VariableTypesFolder((int) 89L),
   Vector((int) 18807L),
   Vector_Encoding_DefaultBinary((int) 18816L),
@@ -1063,6 +1712,18 @@ public enum OpcuaNodeIdServices {
   VectorType((int) 17714L),
   VendorServerInfoType((int) 2033L),
   VersionTime((int) 20998L),
+  ViewAttributes((int) 373L),
+  ViewAttributes_Encoding_DefaultBinary((int) 375L),
+  ViewAttributes_Encoding_DefaultJson((int) 15162L),
+  ViewAttributes_Encoding_DefaultXml((int) 374L),
+  ViewDescription((int) 511L),
+  ViewDescription_Encoding_DefaultBinary((int) 513L),
+  ViewDescription_Encoding_DefaultJson((int) 15179L),
+  ViewDescription_Encoding_DefaultXml((int) 512L),
+  ViewNode((int) 279L),
+  ViewNode_Encoding_DefaultBinary((int) 281L),
+  ViewNode_Encoding_DefaultJson((int) 15078L),
+  ViewNode_Encoding_DefaultXml((int) 280L),
   ViewsFolder((int) 87L),
   ViewVersion((int) 12170L),
   WellKnownRole_Anonymous((int) 15644L),
@@ -1073,6 +1734,14 @@ public enum OpcuaNodeIdServices {
   WellKnownRole_Operator((int) 15680L),
   WellKnownRole_SecurityAdmin((int) 15704L),
   WellKnownRole_Supervisor((int) 15692L),
+  WriteRequest((int) 671L),
+  WriteRequest_Encoding_DefaultBinary((int) 673L),
+  WriteRequest_Encoding_DefaultJson((int) 15277L),
+  WriteRequest_Encoding_DefaultXml((int) 672L),
+  WriteResponse((int) 674L),
+  WriteResponse_Encoding_DefaultBinary((int) 676L),
+  WriteResponse_Encoding_DefaultJson((int) 15278L),
+  WriteResponse_Encoding_DefaultXml((int) 675L),
   WriterGroupDataType((int) 15480L),
   WriterGroupDataType_Encoding_DefaultBinary((int) 21150L),
   WriterGroupDataType_Encoding_DefaultJson((int) 21198L),
@@ -1088,6 +1757,10 @@ public enum OpcuaNodeIdServices {
   WriterGroupTransportDataType_Encoding_DefaultXml((int) 15990L),
   WriterGroupTransportType((int) 17997L),
   WriterGroupType((int) 17725L),
+  WriteValue((int) 668L),
+  WriteValue_Encoding_DefaultBinary((int) 670L),
+  WriteValue_Encoding_DefaultJson((int) 15276L),
+  WriteValue_Encoding_DefaultXml((int) 669L),
   X509IdentityToken((int) 325L),
   X509IdentityToken_Encoding_DefaultBinary((int) 327L),
   X509IdentityToken_Encoding_DefaultJson((int) 15143L),
diff --git a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/OpcuaPlcDriver.java b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/OpcuaPlcDriver.java
index 10cbe9dec1..bb12ee521a 100644
--- a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/OpcuaPlcDriver.java
+++ b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/OpcuaPlcDriver.java
@@ -121,6 +121,7 @@ public class OpcuaPlcDriver extends GeneratedDriverBase<OpcuaAPU> {
         return new PlcValueHandler();
     }
 
+    @Override
     protected boolean awaitDisconnectComplete() {
         return true;
     }
diff --git a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/context/SecureChannel.java b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/context/SecureChannel.java
index 32bcf40694..e1f6ca4718 100644
--- a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/context/SecureChannel.java
+++ b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/context/SecureChannel.java
@@ -85,7 +85,7 @@ public class SecureChannel {
         "(?<transportHost>[\\w.-]+)(:" +
         "(?<transportPort>\\d*))?");
 
-    public static final Pattern URI_PATTERN = Pattern.compile("^(?<protocolCode>opc)" +
+    public static final Pattern URI_PATTERN = Pattern.compile("^(?<protocolCode>opc|https)" +
         INET_ADDRESS_PATTERN +
         "(?<transportEndpoint>[\\w/=]*)[\\?]?"
     );
@@ -580,7 +580,7 @@ public class SecureChannel {
     }
 
     public void onDisconnect(ConversationContext<OpcuaAPU> context) {
-        LOGGER.info("Disconnecting");
+        LOGGER.debug("Disconnecting");
         int requestHandle = getRequestHandle();
 
         if (keepAlive != null) {
@@ -879,7 +879,7 @@ public class SecureChannel {
                             for (ExtensionObjectDefinition endpoint : endpoints) {
                                 EndpointDescription endpointDescription = (EndpointDescription) endpoint;
                                 if (endpointDescription.getEndpointUrl().getStringValue().equals(this.endpoint.getStringValue()) && endpointDescription.getSecurityPolicyUri().getStringValue().equals(this.securityPolicy)) {
-                                    LOGGER.info("Found OPC UA endpoint {}", this.endpoint.getStringValue());
+                                    LOGGER.debug("Found OPC UA endpoint {}", this.endpoint.getStringValue());
                                     this.configuration.setSenderCertificate(endpointDescription.getServerCertificate().getStringValue());
                                 }
                             }
diff --git a/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java b/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java
index 6d856ea448..07c90775b6 100644
--- a/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java
+++ b/plc4j/drivers/plc4x/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java
@@ -158,6 +158,24 @@ public class Plc4xValue {
       String value = /*TODO: migrate me*/ /*TODO: migrate me*/
           readBuffer.readString("", 16, WithOption.WithEncoding("UTF-16"));
 
+      return new PlcSTRING(value);
+    } else if (EvaluationHelper.equals(valueType, Plc4xValueType.STRING)) { // STRING
+
+      // Manual Field (value)
+      String value =
+          (String)
+              (org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.parseString(
+                  readBuffer, "UTF-8"));
+
+      return new PlcSTRING(value);
+    } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WSTRING)) { // STRING
+
+      // Manual Field (value)
+      String value =
+          (String)
+              (org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.parseString(
+                  readBuffer, "UTF-16"));
+
       return new PlcSTRING(value);
     } else if (EvaluationHelper.equals(valueType, Plc4xValueType.TIME)) { // TIME
 
@@ -325,6 +343,14 @@ public class Plc4xValue {
       /*TODO: migrate me*/
       /*TODO: migrate me*/ writeBuffer.writeString(
           "", 16, (String) (value), WithOption.WithEncoding("UTF-16"));
+    } else if (EvaluationHelper.equals(valueType, Plc4xValueType.STRING)) { // STRING
+      // Manual Field (value)
+      org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.serializeString(
+          writeBuffer, _value, "UTF-8");
+    } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WSTRING)) { // STRING
+      // Manual Field (value)
+      org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.serializeString(
+          writeBuffer, _value, "UTF-16");
     } else if (EvaluationHelper.equals(valueType, Plc4xValueType.TIME)) { // TIME
       // Simple Field (milliseconds)
       long milliseconds = (long) _value.getLong();
@@ -436,6 +462,12 @@ public class Plc4xValue {
     } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WCHAR)) { // STRING
       // Simple Field (value)
       sizeInBits += 16;
+    } else if (EvaluationHelper.equals(valueType, Plc4xValueType.STRING)) { // STRING
+      // Manual Field (value)
+      sizeInBits += (((STR_LEN(_value)) + (1))) * (8);
+    } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WSTRING)) { // STRING
+      // Manual Field (value)
+      sizeInBits += (((STR_LEN(_value)) + (1))) * (16);
     } else if (EvaluationHelper.equals(valueType, Plc4xValueType.TIME)) { // TIME
       // Simple Field (milliseconds)
       sizeInBits += 32;
diff --git a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/protocol/Plc4xProtocolLogic.java b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/protocol/Plc4xProtocolLogic.java
index 4d8cf54c98..77f5edee4f 100644
--- a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/protocol/Plc4xProtocolLogic.java
+++ b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/protocol/Plc4xProtocolLogic.java
@@ -20,6 +20,7 @@ package org.apache.plc4x.java.plc4x.protocol;
 
 import org.apache.plc4x.java.api.messages.*;
 import org.apache.plc4x.java.api.types.PlcResponseCode;
+import org.apache.plc4x.java.api.types.PlcValueType;
 import org.apache.plc4x.java.api.value.PlcValue;
 import org.apache.plc4x.java.plc4x.config.Plc4xConfiguration;
 import org.apache.plc4x.java.plc4x.tag.Plc4xTag;
@@ -96,7 +97,7 @@ public class Plc4xProtocolLogic extends Plc4xProtocolBase<Plc4xMessage> implemen
             final Plc4xTag plc4xTag =
                 (Plc4xTag) apiReadRequest.getTag(tagName);
             Plc4xTagRequest plc4XTagRequest = new Plc4xTagRequest(
-                new org.apache.plc4x.java.plc4x.readwrite.Plc4xTag(tagName, plc4xTag.getAddressString() + ":" + plc4xTag.getPlcValueType().name()));
+                new org.apache.plc4x.java.plc4x.readwrite.Plc4xTag(tagName, plc4xTag.getAddressString()));
             plc4xTags.add(plc4XTagRequest);
         }
         final int requestId = txIdGenerator.getAndIncrement();
@@ -104,7 +105,7 @@ public class Plc4xProtocolLogic extends Plc4xProtocolBase<Plc4xMessage> implemen
 
         // Send the request and await a response.
         RequestTransactionManager.RequestTransaction transaction = tm.startRequest();
-        context.sendRequest(plc4xReadRequest)
+        transaction.submit(() -> context.sendRequest(plc4xReadRequest)
             .expectResponse(Plc4xMessage.class, requestTimeout)
             .onTimeout(future::completeExceptionally)
             .check(plc4xMessage -> plc4xMessage.getRequestId() == requestId)
@@ -125,7 +126,7 @@ public class Plc4xProtocolLogic extends Plc4xProtocolBase<Plc4xMessage> implemen
 
                 // Finish the request-transaction.
                 transaction.endRequest();
-            });
+            }));
         return future;
     }
 
@@ -140,7 +141,7 @@ public class Plc4xProtocolLogic extends Plc4xProtocolBase<Plc4xMessage> implemen
             final Plc4xValueType plc4xValueType = Plc4xValueType.valueOf(plc4xTag.getPlcValueType().name());
             final PlcValue plcValue = writeRequest.getPlcValue(tagName);
             Plc4xTagValueRequest tagRequest = new Plc4xTagValueRequest(
-                new org.apache.plc4x.java.plc4x.readwrite.Plc4xTag(tagName, plc4xTag.getAddressString() + ":" + plc4xTag.getPlcValueType().name()), plc4xValueType, plcValue);
+                new org.apache.plc4x.java.plc4x.readwrite.Plc4xTag(tagName, plc4xTag.getAddressString() ), plc4xValueType, plcValue);
             tags.add(tagRequest);
         }
         final int requestId = txIdGenerator.getAndIncrement();
@@ -148,7 +149,7 @@ public class Plc4xProtocolLogic extends Plc4xProtocolBase<Plc4xMessage> implemen
 
         // Send the request and await a response.
         RequestTransactionManager.RequestTransaction transaction = tm.startRequest();
-        context.sendRequest(write)
+        transaction.submit(() ->context.sendRequest(write)
             .expectResponse(Plc4xMessage.class, requestTimeout)
             .onTimeout(future::completeExceptionally)
             .check(p -> p.getRequestId() == requestId)
@@ -168,7 +169,7 @@ public class Plc4xProtocolLogic extends Plc4xProtocolBase<Plc4xMessage> implemen
 
                 // Finish the request-transaction.
                 transaction.endRequest();
-            });
+            }));
         return future;
     }
 
diff --git a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/readwrite/utils/StaticHelper.java b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/readwrite/utils/StaticHelper.java
new file mode 100644
index 0000000000..69be217621
--- /dev/null
+++ b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/readwrite/utils/StaticHelper.java
@@ -0,0 +1,94 @@
+/*
+ * 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
+ *
+ *   https://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.plc4x.readwrite.utils;
+
+import org.apache.plc4x.java.api.exceptions.PlcRuntimeException;
+import org.apache.plc4x.java.api.value.PlcValue;
+import org.apache.plc4x.java.spi.generation.ParseException;
+import org.apache.plc4x.java.spi.generation.ReadBuffer;
+import org.apache.plc4x.java.spi.generation.SerializationException;
+import org.apache.plc4x.java.spi.generation.WriteBuffer;
+
+import java.nio.charset.StandardCharsets;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class StaticHelper {
+
+    public static String parseString(ReadBuffer io,  String encoding) {
+        try {
+            if ("UTF-8".equalsIgnoreCase(encoding)) {
+                // This is the maximum number of bytes a string can be long.
+                short stringLength = io.readUnsignedShort(8);
+                // This is the total length of the string on the PLC (Not necessarily the number of characters read)
+                final byte[] byteArray = new byte[stringLength];
+                for (int i = 0; (i < stringLength) && io.hasMore(8); i++) {
+                    final byte curByte = io.readByte();
+                    byteArray[i] = curByte;
+                }
+                return new String(byteArray, StandardCharsets.UTF_8);
+            } else if ("UTF-16".equalsIgnoreCase(encoding)) {
+                // This is the maximum number of bytes a string can be long.
+                int stringLength = io.readUnsignedInt(16);
+                final byte[] byteArray = new byte[stringLength * 2];
+                for (int i = 0; (i < stringLength) && io.hasMore(16); i++) {
+                    final short curShort = io.readShort(16);
+                        byteArray[i * 2] = (byte) (curShort >>> 8);
+                        byteArray[(i * 2) + 1] = (byte) (curShort & 0xFF);
+                }
+                return new String(byteArray, StandardCharsets.UTF_16);
+            } else {
+                throw new PlcRuntimeException("Unsupported string encoding " + encoding);
+            }
+        } catch (ParseException e) {
+            throw new PlcRuntimeException("Error parsing string", e);
+        }
+    }
+    public static void serializeString(WriteBuffer io, PlcValue value, String encoding) {
+        String valueString = value.getString();
+        valueString = valueString == null ? "" : valueString;
+
+        if ("UTF-8".equalsIgnoreCase(encoding)) {
+            final byte[] raw = valueString.getBytes(StandardCharsets.UTF_8);
+            try {
+                io.writeByte((byte) raw.length);
+                for (byte b : raw) {
+                    io.writeByte(b);
+                }
+            }
+            catch (SerializationException ex) {
+                Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex);
+            }
+        } else if ("UTF-16".equalsIgnoreCase(encoding)) {
+            final byte[] raw = valueString.getBytes(StandardCharsets.UTF_16);
+            try {
+                io.writeUnsignedInt(16, raw.length);
+                for (int i = 0; i < raw.length; i++) {
+                    io.writeByte( raw[i]);
+                }
+            }
+            catch (SerializationException ex) {
+                Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex);
+            }
+        } else {
+            throw new PlcRuntimeException("Unsupported string encoding " + encoding);
+        }
+
+    }
+}
diff --git a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4XTagHandler.java b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4XTagHandler.java
index 83ac0fe9fb..fabb55fc13 100644
--- a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4XTagHandler.java
+++ b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4XTagHandler.java
@@ -28,12 +28,7 @@ public class Plc4XTagHandler implements PlcTagHandler {
 
     @Override
     public PlcTag parseTag(String tagAddress) {
-        if(!tagAddress.contains(":")) {
-            throw new PlcInvalidTagException(tagAddress);
-        }
-        String address = tagAddress.substring(0, tagAddress.lastIndexOf(":"));
-        String dataType = tagAddress.substring(tagAddress.lastIndexOf(":") + 1);
-        return new Plc4xTag(address, PlcValueType.valueOf(dataType));
+        return new Plc4xTag(tagAddress);
     }
 
     @Override
diff --git a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4xTag.java b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4xTag.java
index c3d5aa7fdd..a85e2fd0d6 100644
--- a/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4xTag.java
+++ b/plc4j/drivers/plc4x/src/main/java/org/apache/plc4x/java/plc4x/tag/Plc4xTag.java
@@ -32,11 +32,10 @@ import java.util.List;
 public class Plc4xTag implements PlcTag, Serializable {
 
     private final String address;
-    private final PlcValueType valueType;
+    private PlcValueType valueType = PlcValueType.NULL;
 
-    public Plc4xTag(String address, PlcValueType valueType) {
+    public Plc4xTag(String address) {
         this.address = address;
-        this.valueType = valueType;
     }
 
     @Override
@@ -48,7 +47,13 @@ public class Plc4xTag implements PlcTag, Serializable {
     public PlcValueType getPlcValueType() {
         return valueType;
     }
-
+    @Override
+    public void setPlcValueType(PlcValueType plcValueType) {
+        this.valueType = plcValueType;
+    }
+    public void setValueType(PlcValueType valueType) {
+        this.valueType = valueType;
+    }
     @Override
     public List<ArrayInfo> getArrayInfo() {
         return PlcTag.super.getArrayInfo();
diff --git a/plc4j/drivers/pom.xml b/plc4j/drivers/pom.xml
index c0b47ba33a..995ee913d0 100644
--- a/plc4j/drivers/pom.xml
+++ b/plc4j/drivers/pom.xml
@@ -53,4 +53,19 @@
     <module>simulated</module>
   </modules>
 
+  <build>
+  <plugins>
+    <plugin>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>maven-bundle-plugin</artifactId>
+      <configuration>
+        <instructions>
+          <SPI-Provider>
+            *
+          </SPI-Provider>
+        </instructions>
+      </configuration>
+    </plugin>
+  </plugins>
+  </build>
 </project>
diff --git a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/DataItem.java b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/DataItem.java
index 7c5fb803ef..2db355b2db 100644
--- a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/DataItem.java
+++ b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/DataItem.java
@@ -24,7 +24,6 @@ import java.math.BigInteger;
 import java.time.*;
 import java.util.*;
 import org.apache.plc4x.java.api.value.*;
-import org.apache.plc4x.java.spi.codegen.WithOption;
 import org.apache.plc4x.java.spi.generation.ByteOrder;
 import org.apache.plc4x.java.spi.generation.EvaluationHelper;
 import org.apache.plc4x.java.spi.generation.ParseException;
@@ -42,7 +41,8 @@ public class DataItem {
   private static final Logger LOGGER = LoggerFactory.getLogger(DataItem.class);
 
   public static PlcValue staticParse(
-      ReadBuffer readBuffer, String dataProtocolId, Integer stringLength) throws ParseException {
+      ReadBuffer readBuffer, String dataProtocolId, Integer stringLength, String stringEncoding)
+      throws ParseException {
     if (EvaluationHelper.equals(dataProtocolId, "IEC61131_BOOL")) { // BOOL
 
       // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
@@ -147,16 +147,20 @@ public class DataItem {
       return new PlcLREAL(value);
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_CHAR")) { // CHAR
 
-      // Simple Field (value)
-      String value = /*TODO: migrate me*/ /*TODO: migrate me*/
-          readBuffer.readString("", 8, WithOption.WithEncoding("UTF-8"));
+      // Manual Field (value)
+      String value =
+          (String)
+              (org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.parseS7Char(
+                  readBuffer, "UTF-8", stringEncoding));
 
       return new PlcCHAR(value);
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_WCHAR")) { // CHAR
 
-      // Simple Field (value)
-      String value = /*TODO: migrate me*/ /*TODO: migrate me*/
-          readBuffer.readString("", 16, WithOption.WithEncoding("UTF-16"));
+      // Manual Field (value)
+      String value =
+          (String)
+              (org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.parseS7Char(
+                  readBuffer, "UTF-16", stringEncoding));
 
       return new PlcCHAR(value);
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_STRING")) { // STRING
@@ -165,7 +169,7 @@ public class DataItem {
       String value =
           (String)
               (org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.parseS7String(
-                  readBuffer, stringLength, "UTF-8"));
+                  readBuffer, stringLength, "UTF-8", stringEncoding));
 
       return new PlcSTRING(value);
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_WSTRING")) { // STRING
@@ -174,7 +178,7 @@ public class DataItem {
       String value =
           (String)
               (org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.parseS7String(
-                  readBuffer, stringLength, "UTF-16"));
+                  readBuffer, stringLength, "UTF-16", stringEncoding));
 
       return new PlcSTRING(value);
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_TIME")) { // TIME
@@ -253,9 +257,14 @@ public class DataItem {
   }
 
   public static void staticSerialize(
-      WriteBuffer writeBuffer, PlcValue _value, String dataProtocolId, Integer stringLength)
+      WriteBuffer writeBuffer,
+      PlcValue _value,
+      String dataProtocolId,
+      Integer stringLength,
+      String stringEncoding)
       throws SerializationException {
-    staticSerialize(writeBuffer, _value, dataProtocolId, stringLength, ByteOrder.BIG_ENDIAN);
+    staticSerialize(
+        writeBuffer, _value, dataProtocolId, stringLength, stringEncoding, ByteOrder.BIG_ENDIAN);
   }
 
   public static void staticSerialize(
@@ -263,6 +272,7 @@ public class DataItem {
       PlcValue _value,
       String dataProtocolId,
       Integer stringLength,
+      String stringEncoding,
       ByteOrder byteOrder)
       throws SerializationException {
     if (EvaluationHelper.equals(dataProtocolId, "IEC61131_BOOL")) { // BOOL
@@ -345,25 +355,21 @@ public class DataItem {
       /*TODO: migrate me*/
       /*TODO: migrate me*/ writeBuffer.writeDouble("", 64, (value));
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_CHAR")) { // CHAR
-      // Simple Field (value)
-      String value = (String) _value.getString();
-      /*TODO: migrate me*/
-      /*TODO: migrate me*/ writeBuffer.writeString(
-          "", 8, (String) (value), WithOption.WithEncoding("UTF-8"));
+      // Manual Field (value)
+      org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.serializeS7Char(
+          writeBuffer, _value, "UTF-8", stringEncoding);
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_WCHAR")) { // CHAR
-      // Simple Field (value)
-      String value = (String) _value.getString();
-      /*TODO: migrate me*/
-      /*TODO: migrate me*/ writeBuffer.writeString(
-          "", 16, (String) (value), WithOption.WithEncoding("UTF-16"));
+      // Manual Field (value)
+      org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.serializeS7Char(
+          writeBuffer, _value, "UTF-16", stringEncoding);
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_STRING")) { // STRING
       // Manual Field (value)
       org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.serializeS7String(
-          writeBuffer, _value, stringLength, "UTF-8");
+          writeBuffer, _value, stringLength, "UTF-8", stringEncoding);
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_WSTRING")) { // STRING
       // Manual Field (value)
       org.apache.plc4x.java.s7.readwrite.utils.StaticHelper.serializeS7String(
-          writeBuffer, _value, stringLength, "UTF-16");
+          writeBuffer, _value, stringLength, "UTF-16", stringEncoding);
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_TIME")) { // TIME
       // Simple Field (milliseconds)
       long milliseconds = (long) _value.getLong();
@@ -431,11 +437,15 @@ public class DataItem {
     }
   }
 
-  public static int getLengthInBytes(PlcValue _value, String dataProtocolId, Integer stringLength) {
-    return (int) Math.ceil((float) getLengthInBits(_value, dataProtocolId, stringLength) / 8.0);
+  public static int getLengthInBytes(
+      PlcValue _value, String dataProtocolId, Integer stringLength, String stringEncoding) {
+    return (int)
+        Math.ceil(
+            (float) getLengthInBits(_value, dataProtocolId, stringLength, stringEncoding) / 8.0);
   }
 
-  public static int getLengthInBits(PlcValue _value, String dataProtocolId, Integer stringLength) {
+  public static int getLengthInBits(
+      PlcValue _value, String dataProtocolId, Integer stringLength, String stringEncoding) {
     int sizeInBits = 0;
     if (EvaluationHelper.equals(dataProtocolId, "IEC61131_BOOL")) { // BOOL
       // Reserved Field
@@ -485,17 +495,17 @@ public class DataItem {
       // Simple Field (value)
       sizeInBits += 64;
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_CHAR")) { // CHAR
-      // Simple Field (value)
+      // Manual Field (value)
       sizeInBits += 8;
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_WCHAR")) { // CHAR
-      // Simple Field (value)
+      // Manual Field (value)
       sizeInBits += 16;
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_STRING")) { // STRING
       // Manual Field (value)
-      sizeInBits += (STR_LEN(_value)) + (2);
+      sizeInBits += (((stringLength) + (2))) * (8);
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_WSTRING")) { // STRING
       // Manual Field (value)
-      sizeInBits += (((STR_LEN(_value)) * (2))) + (2);
+      sizeInBits += (((stringLength) + (2))) * (16);
     } else if (EvaluationHelper.equals(dataProtocolId, "IEC61131_TIME")) { // TIME
       // Simple Field (milliseconds)
       sizeInBits += 32;
diff --git a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/S7PayloadReadVarResponse.java b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/S7PayloadReadVarResponse.java
index c83a8af4c6..17e1c818e9 100644
--- a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/S7PayloadReadVarResponse.java
+++ b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/S7PayloadReadVarResponse.java
@@ -107,7 +107,7 @@ public class S7PayloadReadVarResponse extends S7Payload implements Message {
         readCountArrayField(
             "items",
             new DataReaderComplexDefault<>(
-                () -> S7VarPayloadDataItem.staticParse(readBuffer, (boolean) (true)), readBuffer),
+                () -> S7VarPayloadDataItem.staticParse(readBuffer), readBuffer),
             CAST(parameter, S7ParameterReadVarResponse.class).getNumItems());
 
     readBuffer.closeContext("S7PayloadReadVarResponse");
diff --git a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/S7VarPayloadDataItem.java b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/S7VarPayloadDataItem.java
index f08cb90ecd..8334154158 100644
--- a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/S7VarPayloadDataItem.java
+++ b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/S7VarPayloadDataItem.java
@@ -42,19 +42,12 @@ public class S7VarPayloadDataItem implements Message {
   protected final DataTransportSize transportSize;
   protected final byte[] data;
 
-  // Arguments.
-  protected final Boolean hasNext;
-
   public S7VarPayloadDataItem(
-      DataTransportErrorCode returnCode,
-      DataTransportSize transportSize,
-      byte[] data,
-      Boolean hasNext) {
+      DataTransportErrorCode returnCode, DataTransportSize transportSize, byte[] data) {
     super();
     this.returnCode = returnCode;
     this.transportSize = transportSize;
     this.data = data;
-    this.hasNext = hasNext;
   }
 
   public DataTransportErrorCode getReturnCode() {
@@ -109,10 +102,7 @@ public class S7VarPayloadDataItem implements Message {
 
     // Padding Field (padding)
     writePaddingField(
-        "padding",
-        (int) (((PADCOUNT(data, hasNext)) % (2))),
-        (short) 0x00,
-        writeUnsignedShort(writeBuffer, 8));
+        "padding", (int) (((COUNT(data)) % (2))), (short) 0x00, writeUnsignedShort(writeBuffer, 8));
 
     writeBuffer.popContext("S7VarPayloadDataItem");
   }
@@ -142,7 +132,7 @@ public class S7VarPayloadDataItem implements Message {
     }
 
     // Padding Field (padding)
-    int _timesPadding = (int) (((PADCOUNT(data, hasNext)) % (2)));
+    int _timesPadding = (int) (((COUNT(data)) % (2)));
     while (_timesPadding-- > 0) {
       lengthInBits += 8;
     }
@@ -153,25 +143,10 @@ public class S7VarPayloadDataItem implements Message {
   public static S7VarPayloadDataItem staticParse(ReadBuffer readBuffer, Object... args)
       throws ParseException {
     PositionAware positionAware = readBuffer;
-    if ((args == null) || (args.length != 1)) {
-      throw new PlcRuntimeException(
-          "Wrong number of arguments, expected 1, but got " + args.length);
-    }
-    Boolean hasNext;
-    if (args[0] instanceof Boolean) {
-      hasNext = (Boolean) args[0];
-    } else if (args[0] instanceof String) {
-      hasNext = Boolean.valueOf((String) args[0]);
-    } else {
-      throw new PlcRuntimeException(
-          "Argument 0 expected to be of type Boolean or a string which is parseable but was "
-              + args[0].getClass().getName());
-    }
-    return staticParse(readBuffer, hasNext);
+    return staticParse(readBuffer);
   }
 
-  public static S7VarPayloadDataItem staticParse(ReadBuffer readBuffer, Boolean hasNext)
-      throws ParseException {
+  public static S7VarPayloadDataItem staticParse(ReadBuffer readBuffer) throws ParseException {
     readBuffer.pullContext("S7VarPayloadDataItem");
     PositionAware positionAware = readBuffer;
     int startPos = positionAware.getPos();
@@ -199,12 +174,12 @@ public class S7VarPayloadDataItem implements Message {
             Math.toIntExact(
                 ((transportSize.getSizeInBits()) ? CEIL((dataLength) / (8.0)) : dataLength)));
 
-    readPaddingField(readUnsignedShort(readBuffer, 8), (int) (((PADCOUNT(data, hasNext)) % (2))));
+    readPaddingField(readUnsignedShort(readBuffer, 8), (int) (((COUNT(data)) % (2))));
 
     readBuffer.closeContext("S7VarPayloadDataItem");
     // Create the instance
     S7VarPayloadDataItem _s7VarPayloadDataItem;
-    _s7VarPayloadDataItem = new S7VarPayloadDataItem(returnCode, transportSize, data, hasNext);
+    _s7VarPayloadDataItem = new S7VarPayloadDataItem(returnCode, transportSize, data);
     return _s7VarPayloadDataItem;
   }
 
diff --git a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/TransportSize.java b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/TransportSize.java
index 28940ae38e..a6ea4032f0 100644
--- a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/TransportSize.java
+++ b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/TransportSize.java
@@ -179,9 +179,9 @@ public enum TransportSize {
       (boolean) false,
       (short) 'X',
       (boolean) true,
-      null,
+      DataTransportSize.BYTE_WORD_DWORD,
       (String) "IEC61131_LINT",
-      TransportSize.INT),
+      null),
   ULINT(
       (short) 0x0D,
       (boolean) false,
@@ -192,9 +192,9 @@ public enum TransportSize {
       (boolean) false,
       (short) 'X',
       (boolean) true,
-      null,
+      DataTransportSize.BYTE_WORD_DWORD,
       (String) "IEC61131_ULINT",
-      TransportSize.INT),
+      null),
   REAL(
       (short) 0x0E,
       (boolean) true,
@@ -205,7 +205,7 @@ public enum TransportSize {
       (boolean) true,
       (short) 'D',
       (boolean) true,
-      DataTransportSize.REAL,
+      DataTransportSize.BYTE_WORD_DWORD,
       (String) "IEC61131_REAL",
       null),
   LREAL(
@@ -218,7 +218,7 @@ public enum TransportSize {
       (boolean) true,
       (short) 'X',
       (boolean) true,
-      null,
+      DataTransportSize.BYTE_WORD_DWORD,
       (String) "IEC61131_LREAL",
       TransportSize.REAL),
   CHAR(
@@ -244,7 +244,7 @@ public enum TransportSize {
       (boolean) true,
       (short) 'X',
       (boolean) true,
-      null,
+      DataTransportSize.BYTE_WORD_DWORD,
       (String) "IEC61131_WCHAR",
       null),
   STRING(
@@ -270,7 +270,7 @@ public enum TransportSize {
       (boolean) true,
       (short) 'X',
       (boolean) true,
-      null,
+      DataTransportSize.BYTE_WORD_DWORD,
       (String) "IEC61131_WSTRING",
       null),
   TIME(
@@ -281,7 +281,7 @@ public enum TransportSize {
       (short) 4,
       (boolean) true,
       (boolean) true,
-      (short) 'D',
+      (short) 'X',
       (boolean) true,
       null,
       (String) "IEC61131_TIME",
diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/configuration/S7Configuration.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/configuration/S7Configuration.java
index 55c50bd0d6..ae7553812b 100644
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/configuration/S7Configuration.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/configuration/S7Configuration.java
@@ -25,19 +25,25 @@ import org.apache.plc4x.java.spi.configuration.annotations.defaults.IntDefaultVa
 import org.apache.plc4x.java.transport.tcp.TcpTransportConfiguration;
 
 public class S7Configuration implements Configuration, TcpTransportConfiguration {
+    @ConfigurationParameter("local-group")
+    @IntDefaultValue(3)
+    public int localGroup = 3;
 
     @ConfigurationParameter("local-rack")
     @IntDefaultValue(1)
     public int localRack = 1;
 
-    @ConfigurationParameter("local-slot")
-    @IntDefaultValue(1)
-    public int localSlot = 1;
-    
     @ConfigurationParameter("local-tsap")
     @IntDefaultValue(0)
     public int localTsap = 0;
 
+    @ConfigurationParameter("local-slot")
+    @IntDefaultValue(1)
+    public int localSlot = 1;
+
+    @ConfigurationParameter("remote-group")
+    @IntDefaultValue(1)
+    public int remoteGroup = 1;
     @ConfigurationParameter("remote-rack")
     @IntDefaultValue(0)
     public int remoteRack = 0;
@@ -65,6 +71,31 @@ public class S7Configuration implements Configuration, TcpTransportConfiguration
     @ConfigurationParameter("controller-type")
     public String controllerType;
 
+    @ConfigurationParameter("timeout-request")
+    @IntDefaultValue(4000)
+    protected int timeoutRequest;
+    public int getLocalGroup() {
+        return localGroup;
+    }
+
+    public void setLocalGroup(int localGroup) {
+        this.localGroup = localGroup;
+    }
+    public int getLocalTsap() {
+        return localTsap;
+    }
+
+    public void setLocalTsap(int localTsap) {
+        this.localTsap = localTsap;
+    }
+    public int getRemoteGroup() {
+        return remoteGroup;
+    }
+
+    public void setRemoteGroup(int remoteGroup) {
+        this.remoteGroup = remoteGroup;
+    }
+
     public int getLocalRack() {
         return localRack;
     }
@@ -81,14 +112,6 @@ public class S7Configuration implements Configuration, TcpTransportConfiguration
         this.localSlot = localSlot;
     }
 
-    public int getLocalTsap() {
-        return localTsap;
-    }
-
-    public void setLocalTsap(int localTsap) {
-        this.localTsap = localTsap;
-    }
-    
     public int getRemoteRack() {
         return remoteRack;
     }
@@ -104,7 +127,6 @@ public class S7Configuration implements Configuration, TcpTransportConfiguration
     public void setRemoteSlot(int remoteSlot) {
         this.remoteSlot = remoteSlot;
     }
-
     public int getRemoteTsap() {
         return remoteTsap;
     }
@@ -112,7 +134,6 @@ public class S7Configuration implements Configuration, TcpTransportConfiguration
     public void setRemoteTsap(int remoteTsap) {
         this.remoteTsap = remoteTsap;
     }
-    
     public int getPduSize() {
         return pduSize;
     }
@@ -145,6 +166,12 @@ public class S7Configuration implements Configuration, TcpTransportConfiguration
         this.controllerType = controllerType;
     }
 
+    public int getTimeoutRequest() {
+        return timeoutRequest;
+    }
+    public void setTimeoutRequest(int timeoutRequest) {
+        this.timeoutRequest = timeoutRequest;
+    }
     /**
      * Per default port for the S7 protocol is 102.
      * @return 102
@@ -158,15 +185,18 @@ public class S7Configuration implements Configuration, TcpTransportConfiguration
     public String toString() {
         return "Configuration{" +
             "local-rack=" + localRack +
+            ", local-group=" + localGroup +
             ", local-slot=" + localSlot +
             ", local-tsap=" + localTsap +
+            ", remote-group=" + remoteGroup +
             ", remote-rack=" + remoteRack +
             ", remote-slot=" + remoteSlot +
             ", remote-tsap=" + remoteTsap +
             ", pduSize=" + pduSize +
             ", maxAmqCaller=" + maxAmqCaller +
             ", maxAmqCallee=" + maxAmqCallee +
-            ", controllerType='" + controllerType + '\'' +
+            ", controllerType='" + controllerType +
+            ", timeoutRequest='" + timeoutRequest + '\'' +
             '}';
     }
 
diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/context/S7DriverContext.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/context/S7DriverContext.java
index 7b40d9b3d1..25edebf811 100644
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/context/S7DriverContext.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/context/S7DriverContext.java
@@ -39,9 +39,9 @@ public class S7DriverContext implements DriverContext, HasConfiguration<S7Config
 
     @Override
     public void setConfiguration(S7Configuration configuration) {
-        this.callingTsapId = S7TsapIdEncoder.encodeS7TsapId(DeviceGroup.OTHERS,
+        this.callingTsapId = S7TsapIdEncoder.encodeS7TsapId(DeviceGroup.enumForValue((byte)configuration.localGroup),
             configuration.localRack, configuration.localSlot);
-        this.calledTsapId = S7TsapIdEncoder.encodeS7TsapId(DeviceGroup.PG_OR_PC,
+        this.calledTsapId = S7TsapIdEncoder.encodeS7TsapId(DeviceGroup.enumForValue((byte)configuration.remoteGroup),
             configuration.remoteRack, configuration.remoteSlot);
 
         if (configuration.localTsap > 0) {
diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/DefaultS7MessageProcessor.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/DefaultS7MessageProcessor.java
index ce987e1090..8e4a51347a 100644
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/DefaultS7MessageProcessor.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/DefaultS7MessageProcessor.java
@@ -48,11 +48,11 @@ public class DefaultS7MessageProcessor implements S7MessageProcessor {
     public static final int EMPTY_READ_REQUEST_SIZE = new S7MessageRequest(0, new S7ParameterReadVarRequest(
         Collections.emptyList()), null).getLengthInBytes();
     public static final int EMPTY_READ_RESPONSE_SIZE = new S7MessageResponseData(0, new S7ParameterReadVarResponse(
-        (short) 0), new S7PayloadReadVarResponse(Collections.emptyList(), null), (short) 0, (short) 0).getLengthInBytes();
+        (short) 0), new S7PayloadReadVarResponse(Collections.emptyList()), (short) 0, (short) 0).getLengthInBytes();
     public static final int EMPTY_WRITE_REQUEST_SIZE = new S7MessageRequest(0, new S7ParameterWriteVarRequest(
-        Collections.emptyList()), new S7PayloadWriteVarRequest(Collections.emptyList(), null)).getLengthInBytes();
+        Collections.emptyList()), new S7PayloadWriteVarRequest(Collections.emptyList())).getLengthInBytes();
     public static final int EMPTY_WRITE_RESPONSE_SIZE = new S7MessageResponseData(0, new S7ParameterWriteVarResponse(
-        (short) 0), new S7PayloadWriteVarResponse(Collections.emptyList(), null), (short) 0, (short) 0).getLengthInBytes();
+        (short) 0), new S7PayloadWriteVarResponse(Collections.emptyList()), (short) 0, (short) 0).getLengthInBytes();
 
     public DefaultS7MessageProcessor(AtomicInteger tpduGenerator) {
         this.tpduRefGen = tpduGenerator;
diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/S7Optimizer.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/S7Optimizer.java
index 85c6d9d4f3..f5767654cf 100644
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/S7Optimizer.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/S7Optimizer.java
@@ -24,6 +24,7 @@ import org.apache.plc4x.java.api.model.PlcTag;
 import org.apache.plc4x.java.api.value.PlcValue;
 import org.apache.plc4x.java.s7.readwrite.*;
 import org.apache.plc4x.java.s7.readwrite.context.S7DriverContext;
+import org.apache.plc4x.java.s7.readwrite.tag.S7StringTag;
 import org.apache.plc4x.java.s7.readwrite.tag.S7Tag;
 import org.apache.plc4x.java.s7.readwrite.MemoryArea;
 import org.apache.plc4x.java.s7.readwrite.TransportSize;
@@ -65,7 +66,12 @@ public class S7Optimizer extends BaseOptimizer {
             S7Tag tag = (S7Tag) readRequest.getTag(tagName);
 
             int readRequestItemSize = S7_ADDRESS_ANY_SIZE;
-            int readResponseItemSize = 4 + (tag.getNumberOfElements() * tag.getDataType().getSizeInBytes());
+            int length = 1;
+            if(tag instanceof S7StringTag)
+            {
+                length = (((S7StringTag)tag).getStringLength() +2) * 8;
+            }
+            int readResponseItemSize = 4 + (tag.getNumberOfElements() * tag.getDataType().getSizeInBytes() * length);
             // If it's an odd number of bytes, add one to make it even
             if (readResponseItemSize % 2 == 1) {
                 readResponseItemSize++;
@@ -83,8 +89,10 @@ public class S7Optimizer extends BaseOptimizer {
             // If they would exceed, start a new request.
             else {
                 // Create a new PlcReadRequest containing the current tag item.
-                processedRequests.add(new DefaultPlcReadRequest(
-                    ((DefaultPlcReadRequest) readRequest).getReader(), curTags));
+                if(!curTags.isEmpty()) {
+                    processedRequests.add(new DefaultPlcReadRequest(
+                        ((DefaultPlcReadRequest) readRequest).getReader(), curTags));
+                }
 
                 // Reset the size and item lists.
                 curRequestSize = EMPTY_READ_REQUEST_SIZE + readRequestItemSize;
@@ -130,7 +138,12 @@ public class S7Optimizer extends BaseOptimizer {
             if (tag.getDataType() == TransportSize.BOOL) {
                 writeRequestItemSize += Math.ceil((double) tag.getNumberOfElements() / 8);
             } else {
-                writeRequestItemSize += (tag.getNumberOfElements() * tag.getDataType().getSizeInBytes());
+                int length = 1;
+                if(tag instanceof S7StringTag)
+                {
+                    length = (((S7StringTag)tag).getStringLength() + 2) * 8;
+                }
+                writeRequestItemSize += (tag.getNumberOfElements() * tag.getDataType().getSizeInBytes() * length);
             }
             // If it's an odd number of bytes, add one to make it even
             if (writeRequestItemSize % 2 == 1) {
@@ -150,8 +163,10 @@ public class S7Optimizer extends BaseOptimizer {
             // If adding them would exceed, start a new request.
             else {
                 // Create a new PlcWriteRequest containing the current tag item.
-                processedRequests.add(new DefaultPlcWriteRequest(
-                    ((DefaultPlcWriteRequest) writeRequest).getWriter(), curTags));
+                if(!curTags.isEmpty()) {
+                    processedRequests.add(new DefaultPlcWriteRequest(
+                        ((DefaultPlcWriteRequest) writeRequest).getWriter(), curTags));
+                }
 
                 // Reset the size and item lists.
                 curRequestSize = EMPTY_WRITE_REQUEST_SIZE + writeRequestItemSize;
diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolEventLogic.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolEventLogic.java
index a46b496bdb..04828519a3 100644
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolEventLogic.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolEventLogic.java
@@ -73,7 +73,7 @@ public class S7ProtocolEventLogic implements PlcSubscriber {
     
     public void start() {
         processor.start();
-        dispacher.start();    
+        dispacher.start();
     }
     
     public void stop(){
@@ -154,7 +154,7 @@ public class S7ProtocolEventLogic implements PlcSubscriber {
                     Logger.getLogger(S7ProtocolEventLogic.class.getName()).log(Level.SEVERE, null, ex);
                 }
             }
-            System.out.println("ObjectProcessor Bye!");            
+            logger.debug("ObjectProcessor Bye!");
         }
 
         public void doShutdown(){
@@ -203,7 +203,7 @@ public class S7ProtocolEventLogic implements PlcSubscriber {
                     Logger.getLogger(S7ProtocolEventLogic.class.getName()).log(Level.SEVERE, null, ex);
                 }
             }
-            System.out.println("EventDispacher Bye!");
+           logger.debug("EventDispacher Bye!");
         }
 
         public void doShutdown(){
diff --git 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
index 5cda8f5018..b8b3a47e35 100644
--- 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
@@ -19,6 +19,7 @@
 package org.apache.plc4x.java.s7.readwrite.protocol;
 
 import org.apache.plc4x.java.api.model.PlcTag;
+import org.apache.plc4x.java.s7.readwrite.configuration.S7Configuration;
 import org.apache.plc4x.java.s7.readwrite.utils.S7PlcSubscriptionHandle;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
@@ -30,6 +31,7 @@ import org.apache.plc4x.java.api.messages.PlcResponse;
 import org.apache.plc4x.java.api.messages.PlcWriteRequest;
 import org.apache.plc4x.java.api.messages.PlcWriteResponse;
 import org.apache.plc4x.java.api.types.PlcResponseCode;
+import org.apache.plc4x.java.spi.configuration.HasConfiguration;
 import org.apache.plc4x.java.spi.generation.*;
 import org.apache.plc4x.java.spi.model.DefaultPlcSubscriptionTag;
 import org.apache.plc4x.java.spi.values.PlcNull;
@@ -58,15 +60,11 @@ import java.util.*;
 import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.BiConsumer;
 import java.util.function.Consumer;
 import java.util.stream.IntStream;
-import org.apache.commons.lang3.concurrent.BasicThreadFactory;
-import org.apache.commons.lang3.tuple.MutablePair;
 
 import org.apache.plc4x.java.api.messages.PlcSubscriptionRequest;
 import org.apache.plc4x.java.api.messages.PlcSubscriptionResponse;
@@ -83,22 +81,12 @@ import org.apache.plc4x.java.spi.messages.DefaultPlcUnsubscriptionRequest;
  * So we need to limit those.
  * Thus, each request goes to a Work Queue and this Queue ensures, that only 3 are open at the same time.
  */
-public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
-
-    public static final Duration REQUEST_TIMEOUT = Duration.ofMillis(10000);
+public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> implements HasConfiguration<S7Configuration> {
 
     private final Logger logger = LoggerFactory.getLogger(S7ProtocolLogic.class);
-    private final AtomicInteger tpduGenerator = new AtomicInteger(10);
-    
-    /*
-     * Task group for managing connection redundancy.
-     */
-    private ExecutorService clientExecutorService = Executors.newFixedThreadPool(4, new BasicThreadFactory.Builder()
-                                                    .namingPattern("plc4x-app-thread-%d")
-                                                    .daemon(true)
-                                                    .priority(Thread.MAX_PRIORITY)
-                                                    .build());    
-    
+    private final AtomicInteger tpduGenerator = new AtomicInteger(1);
+
+    private S7Configuration configuration;
     /*
      * 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.
@@ -114,17 +102,6 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
     private final S7PlcSubscriptionHandle usrHandle = new S7PlcSubscriptionHandle(EventType.USR, EventLogic);
     private final S7PlcSubscriptionHandle almHandle = new S7PlcSubscriptionHandle(EventType.ALM, EventLogic);
 
-    /*
-    * For the reconnection functionality by a "TimeOut" of the connection,
-    * you must keep track of open transactions. In general, an S7 device 
-    * supports a couple of simultaneous requests.
-    * The rhythm of execution must be determined by the TransactionManager.
-    * So far it is the way to indicate to the user that he must redo 
-    * his request.
-    */
-    private HashMap<Object,MutablePair<RequestTransactionManager.RequestTransaction, Object>> active_requests = new HashMap<>();
-
-    
     private S7DriverContext s7DriverContext;
     private RequestTransactionManager tm;
 
@@ -141,7 +118,10 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
         this.tm = new RequestTransactionManager(1);
         EventLogic.start();
     }
-
+    @Override
+    public void setConfiguration(S7Configuration configuration) {
+        this.configuration = configuration;
+    }
     @Override
     public void onConnect(ConversationContext<TPKTPacket> context) {
         if (context.isPassive()) {
@@ -164,7 +144,7 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
                 logger.warn("Timeout during Connection establishing, closing channel...");
                 context.getChannel().close();
             })
-            .expectResponse(TPKTPacket.class, REQUEST_TIMEOUT)
+            .expectResponse(TPKTPacket.class, Duration.ofMillis(configuration.getTimeoutRequest()))
             .check(p -> p.getPayload() instanceof COTPPacketConnectionResponse)
             .unwrap(p -> (COTPPacketConnectionResponse) p.getPayload())
             .handle(cotpPacketConnectionResponse -> {
@@ -175,7 +155,7 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
                         logger.warn("Timeout during Connection establishing, closing channel...");
                         context.getChannel().close();
                     })
-                    .expectResponse(TPKTPacket.class, REQUEST_TIMEOUT)
+                    .expectResponse(TPKTPacket.class, Duration.ofMillis(configuration.getTimeoutRequest()))
                     .unwrap(TPKTPacket::getPayload)
                     .only(COTPPacketData.class)
                     .unwrap(COTPPacket::getPayload)
@@ -212,7 +192,7 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
                                 logger.warn("Timeout during Connection establishing, closing channel...");
                                 context.getChannel().close();
                             })
-                            .expectResponse(TPKTPacket.class, REQUEST_TIMEOUT)
+                            .expectResponse(TPKTPacket.class, Duration.ofMillis(configuration.getTimeoutRequest()))
                             .check(p -> p.getPayload() instanceof COTPPacketData)
                             .unwrap(p -> ((COTPPacketData) p.getPayload()))
                             .check(p -> p.getPayload() instanceof S7MessageUserData)
@@ -227,27 +207,21 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
             });
     }
 
-    
+
   /*
-    * It performs the sequential and safe shutdown of the driver. 
+    * It performs the sequential and safe shutdown of the driver.
     * Completion of pending requests, executors and associated tasks.
-    */    
+    */
     @Override
     public void onDisconnect(ConversationContext<TPKTPacket> context) {
-        //1. Clear all pending requests and their associated transaction          
-        cleanFutures(); 
-        //2. Here we shutdown the local task executor.
-        clientExecutorService.shutdown();
-        //3. Performs the shutdown of the transaction executor.
         tm.shutdown();
-        //4. Finish the execution of the tasks for the handling of Events. 
+        //4. Finish the execution of the tasks for the handling of Events.
         EventLogic.stop();
-        //5. Executes the closing of the main channel.
-        context.getChannel().close();
-        //6. Here is the stop of any task or state machine that is added.        
+        context.fireDisconnected();
+        //6. Here is the stop of any task or state machine that is added.
     }
 
-   
+
     @Override
     public CompletableFuture<PlcReadResponse> read(PlcReadRequest readRequest) {
         DefaultPlcReadRequest request = (DefaultPlcReadRequest) readRequest;
@@ -289,22 +263,27 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
      */
     private CompletableFuture<S7Message> readInternal(S7MessageRequest request) {
         CompletableFuture<S7Message> future = new CompletableFuture<>();
-        int tpduId = tpduGenerator.getAndIncrement();
+        int thisTpduId = 0;
+        if (this.s7DriverContext.getControllerType() != S7ControllerType.S7_200)
+        {
+            thisTpduId = tpduGenerator.getAndIncrement();
+        }
+        final int tpduId = thisTpduId;
         // If we've reached the max value for a 16 bit transaction identifier, reset back to 1
-        if (tpduGenerator.get() == 0xFFFF) {
-            tpduGenerator.set(1);
+        if(tpduGenerator.get() == 0xFFFF) {
+            tpduGenerator.set(0);
         }
 
         // Create a new Request with correct tpuId (is not known before)
         S7MessageRequest s7MessageRequest = new S7MessageRequest(tpduId, request.getParameter(), request.getPayload());
 
-        TPKTPacket tpktPacket = new TPKTPacket(new COTPPacketData(null, s7MessageRequest, true, (short) tpduId, 9999));
+        TPKTPacket tpktPacket = new TPKTPacket(new COTPPacketData(null, s7MessageRequest, true, (short) tpduId));
         // Start a new request-transaction (Is ended in the response-handler)
         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)
+            .expectResponse(TPKTPacket.class, Duration.ofMillis(configuration.getTimeoutRequest()))
             .check(p -> p.getPayload() instanceof COTPPacketData)
             .unwrap(p -> (COTPPacketData) p.getPayload())
             .check(p -> p.getPayload() != null)
@@ -326,17 +305,17 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
         List<S7VarPayloadDataItem> payloadItems = new ArrayList<>(request.getNumberOfTags());
 
         Iterator<String> iter = request.getTagNames().iterator();
-        
+
         String tagName = null;
         while(iter.hasNext()) {
             tagName = iter.next();
             final S7Tag tag = (S7Tag) request.getTag(tagName);
             final PlcValue plcValue = request.getPlcValue(tagName);
             parameterItems.add(new S7VarRequestParameterItemAddress(encodeS7Address(tag)));
-            payloadItems.add(serializePlcValue(tag, plcValue, iter.hasNext()));            
+            payloadItems.add(serializePlcValue(tag, plcValue, iter.hasNext()));
         }
-        
-        
+
+
 //        for (String tagName : request.getTagNames()) {
 //            final S7Tag tag = (S7Tag) request.getTag(tagName);
 //            final PlcValue plcValue = request.getPlcValue(tagName);
@@ -344,9 +323,9 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
 //            payloadItems.add(serializePlcValue(tag, 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) {
@@ -358,19 +337,19 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
                 null,
                 new S7MessageRequest(tpduId,
                     new S7ParameterWriteVarRequest(parameterItems),
-                    new S7PayloadWriteVarRequest(payloadItems, null)
+                    new S7PayloadWriteVarRequest(payloadItems)
                 ),
                 true,
-                (short) tpduId, 9999
+                (short) tpduId
             )
         );
-        
+
         // Start a new request-transaction (Is ended in the response-handler)
         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)
+            .expectResponse(TPKTPacket.class, Duration.ofMillis(configuration.getTimeoutRequest()))
             .check(p -> p.getPayload() instanceof COTPPacketData)
             .unwrap(p -> ((COTPPacketData) p.getPayload()))
             .unwrap(COTPPacket::getPayload)
@@ -434,15 +413,15 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
         TPKTPacket tpktPacket = new TPKTPacket(new COTPPacketData(null,
             new S7MessageUserData(tpduId,
                 new S7ParameterUserData(parameterItems),
-                new S7PayloadUserData(payloadItems, null)),
-            true, (short) tpduId, 9999));
+                new S7PayloadUserData(payloadItems)),
+            true, (short) tpduId));
 
         // Start a new request-transaction (Is ended in the response-handler)
         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)
+            .expectResponse(TPKTPacket.class, Duration.ofMillis(configuration.getTimeoutRequest()))
             .check(p -> p.getPayload() instanceof COTPPacketData)
             .unwrap(p -> ((COTPPacketData) p.getPayload()))
             .unwrap(COTPPacket::getPayload)
@@ -734,8 +713,8 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
             new S7ParameterUserDataItemCPUFunctions((short) 0x11, (byte) 0x4, (byte) 0x4, (short) 0x01, (short) 0x00, null, null, null)
         )), new S7PayloadUserData(Collections.singletonList(
             new S7PayloadUserDataItemCpuFunctionReadSzlRequest(DataTransportErrorCode.OK, DataTransportSize.OCTET_STRING, new SzlId(SzlModuleTypeClass.CPU, (byte) 0x00, SzlSublist.MODULE_IDENTIFICATION), 0x0000)
-        ), null));
-        COTPPacketData cotpPacketData = new COTPPacketData(null, identifyRemoteMessage, true, (short) 2, 9999);
+        )));
+        COTPPacketData cotpPacketData = new COTPPacketData(null, identifyRemoteMessage, true, (short) 2);
         return new TPKTPacket(cotpPacketData);
     }
 
@@ -763,19 +742,18 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
             new S7ParameterSetupCommunication(
                 s7DriverContext.getMaxAmqCaller(), s7DriverContext.getMaxAmqCallee(), s7DriverContext.getPduSize());
         S7Message s7Message = new S7MessageRequest(0, s7ParameterSetupCommunication,
-            null);       
-        COTPPacketData cotpPacketData = new COTPPacketData(null, s7Message, true, (short) 1, 9999);
-
+            null);
+        COTPPacketData cotpPacketData = new COTPPacketData(null, s7Message, true, (short) 1);
         return new TPKTPacket(cotpPacketData);
     }
 
     private COTPPacketConnectionRequest createCOTPConnectionRequest(int calledTsapId, int callingTsapId, COTPTpduSize cotpTpduSize) {
         return new COTPPacketConnectionRequest(
             Arrays.asList(
-                new COTPParameterCallingTsap(callingTsapId,(short) 0),
-                new COTPParameterCalledTsap(calledTsapId, (short) 0),
-                new COTPParameterTpduSize(cotpTpduSize, (short) 0)
-            ), null, (short) 0x0000, (short) 0x000F, COTPProtocolClass.CLASS_0, 0);
+                new COTPParameterCallingTsap(callingTsapId),
+                new COTPParameterCalledTsap(calledTsapId),
+                new COTPParameterTpduSize(cotpTpduSize)
+            ), null, (short) 0x0000, (short) 0x000F, COTPProtocolClass.CLASS_0);
     }
 
     private PlcResponse decodeReadResponse(S7Message responseMessage, PlcReadRequest plcReadRequest) throws PlcProtocolException {
@@ -921,18 +899,18 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
             int stringLength = (tag instanceof S7StringTag) ? ((S7StringTag) tag).getStringLength() : 254;
             ByteBuffer byteBuffer = null;
             for (int i = 0; i < tag.getNumberOfElements(); i++) {
-                final int lengthInBits = DataItem.getLengthInBits(plcValue.getIndex(i), tag.getDataType().getDataProtocolId(), stringLength);
-                final WriteBufferByteBased writeBuffer = new WriteBufferByteBased((int) Math.ceil(((float) lengthInBits) / 8.0f));
-                DataItem.staticSerialize(writeBuffer, plcValue.getIndex(i), tag.getDataType().getDataProtocolId(), stringLength);
+                final int lengthInBytes = DataItem.getLengthInBytes(plcValue.getIndex(i), tag.getDataType().getDataProtocolId(), stringLength, tag.getStringEncoding());
+                final WriteBufferByteBased writeBuffer = new WriteBufferByteBased(lengthInBytes);
+                DataItem.staticSerialize(writeBuffer, plcValue.getIndex(i), tag.getDataType().getDataProtocolId(), stringLength, tag.getStringEncoding());
                 // Allocate enough space for all items.
                 if (byteBuffer == null) {
-                    byteBuffer = ByteBuffer.allocate(writeBuffer.getBytes().length * tag.getNumberOfElements());
+                    byteBuffer = ByteBuffer.allocate(lengthInBytes * tag.getNumberOfElements());
                 }
                 byteBuffer.put(writeBuffer.getBytes());
             }
             if (byteBuffer != null) {
                 byte[] data = byteBuffer.array();
-                return new S7VarPayloadDataItem(DataTransportErrorCode.OK, transportSize, data, hasNext);
+                return new S7VarPayloadDataItem(DataTransportErrorCode.OK, transportSize, data/*, hasNext*/);
             }
         } catch (SerializationException e) {
             logger.warn("Error serializing tag item of type: '{}'", tag.getDataType().name(), e);
@@ -946,13 +924,13 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
             int stringLength = (tag instanceof S7StringTag) ? ((S7StringTag) tag).getStringLength() : 254;
             if (tag.getNumberOfElements() == 1) {
                 return DataItem.staticParse(readBuffer, tag.getDataType().getDataProtocolId(),
-                    stringLength);
+                    stringLength, tag.getStringEncoding());
             } else {
                 // Fetch all
                 final PlcValue[] resultItems = IntStream.range(0, tag.getNumberOfElements()).mapToObj(i -> {
                     try {
                         return DataItem.staticParse(readBuffer, tag.getDataType().getDataProtocolId(),
-                            stringLength);
+                            stringLength, tag.getStringEncoding());
                     } catch (ParseException e) {
                         logger.warn("Error parsing tag item of type: '{}' (at position {}})", tag.getDataType().name(), i, e);
                     }
@@ -1036,17 +1014,34 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
         // For these date-types we have to convert the requests to simple byte-array requests
         // As otherwise the S7 will deny them with "Data type not supported" replies.
         if ((transportSize == TransportSize.TIME) /*|| (transportSize == TransportSize.S7_S5TIME)*/ ||
-            (transportSize == TransportSize.LTIME) || (transportSize == TransportSize.DATE) ||
-            (transportSize == TransportSize.TIME_OF_DAY) || (transportSize == TransportSize.DATE_AND_TIME)) {
+            (transportSize == TransportSize.LINT) ||
+            (transportSize == TransportSize.ULINT) ||
+            (transportSize == TransportSize.LWORD) ||
+            (transportSize == TransportSize.LREAL) ||
+            (transportSize == TransportSize.REAL) ||
+            (transportSize == TransportSize.LTIME) ||
+            (transportSize == TransportSize.DATE) ||
+            (transportSize == TransportSize.TIME_OF_DAY) ||
+            (transportSize == TransportSize.DATE_AND_TIME)
+        ) {
             numElements = numElements * transportSize.getSizeInBytes();
+            //((S7Field) field).setDataType(transportSize);
             transportSize = TransportSize.BYTE;
         }
+        if (transportSize == TransportSize.CHAR) {
+            transportSize = TransportSize.BYTE;
+            numElements = numElements * transportSize.getSizeInBytes();
+        }
+        if (transportSize == TransportSize.WCHAR) {
+            transportSize = TransportSize.BYTE;
+            numElements = numElements * transportSize.getSizeInBytes() * 2;
+        }
         if (transportSize == TransportSize.STRING) {
-            transportSize = TransportSize.CHAR;
+            transportSize = TransportSize.BYTE;
             int stringLength = (s7Tag instanceof S7StringTag) ? ((S7StringTag) s7Tag).getStringLength() : 254;
             numElements = numElements * (stringLength + 2);
         } else if (transportSize == TransportSize.WSTRING) {
-            transportSize = TransportSize.CHAR;
+            transportSize = TransportSize.BYTE;
             int stringLength = (s7Tag instanceof S7StringTag) ? ((S7StringTag) s7Tag).getStringLength() : 254;
             numElements = numElements * (stringLength + 2) * 2;
         }
@@ -1079,27 +1074,4 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> {
             future.completeExceptionally(e);
         }
     }
-    
-    private void cleanFutures(){
-        //TODO: Debe ser ejecutado si la conexion esta levanta.
-        active_requests.forEach((f,p)->{
-            CompletableFuture<Object> cf = (CompletableFuture<Object>) f;
-            try {
-                if (!cf.isDone()) {
-                    logger.info("CF");
-                    cf.cancel(true);
-                    logger.info("ClientCF");
-                    ((CompletableFuture<Object>) p.getRight()).completeExceptionally(new PlcRuntimeException("Disconnected"));                     
-                    logger.info("TM");
-                    p.getLeft().endRequest();
-                };
-            } catch (Exception ex){
-                logger.info(ex.toString());
-            }
-        });
-        active_requests.clear();   
-
-    }    
-    
-
 }
diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7StringTag.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7StringTag.java
index 2435717c44..b4285ba0fb 100644
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7StringTag.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7StringTag.java
@@ -36,8 +36,9 @@ public class S7StringTag extends S7Tag {
     protected S7StringTag(@JsonProperty("dataType") TransportSize dataType, @JsonProperty("memoryArea") MemoryArea memoryArea,
                           @JsonProperty("blockNumber") int blockNumber, @JsonProperty("byteOffset") int byteOffset,
                           @JsonProperty("bitOffset") byte bitOffset, @JsonProperty("numElements") int numElements,
-                          @JsonProperty("stringLength") int stringLength) {
-        super(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements);
+                          @JsonProperty("stringLength") int stringLength,
+                          @JsonProperty("stringEncoding") String stringEncoding) {
+        super(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements,stringEncoding);
         this.stringLength = stringLength;
     }
 
diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7Tag.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7Tag.java
index 2a78a33da6..5a92175fb1 100644
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7Tag.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/tag/S7Tag.java
@@ -47,24 +47,23 @@ public class S7Tag implements PlcTag, Serializable {
 
     //byteOffset theoretically can reach up to 2097151 ... see checkByteOffset() below --> 7digits
     private static final Pattern ADDRESS_PATTERN =
-        Pattern.compile("^%(?<memoryArea>.)(?<transferSizeCode>[XBWD]?)(?<byteOffset>\\d{1,7})(.(?<bitOffset>[0-7]))?:(?<dataType>[a-zA-Z_]+)(\\[(?<numElements>\\d+)])?");
+        Pattern.compile("^%(?<memoryArea>.)(?<transferSizeCode>[XBWD]?)(?<byteOffset>\\d{1,7})(.(?<bitOffset>[0-7]))?:(?<dataType>[a-zA-Z_]+)(\\[(?<numElements>\\d+)])?(\\|(?<stringEncoding>[a-z0-9A-Z_-]+))?");
 
     //blockNumber usually has its max hat around 64000 --> 5digits
     private static final Pattern DATA_BLOCK_ADDRESS_PATTERN =
-        Pattern.compile("^%DB(?<blockNumber>\\d{1,5}).DB(?<transferSizeCode>[XBWD]?)(?<byteOffset>\\d{1,7})(.(?<bitOffset>[0-7]))?:(?<dataType>[a-zA-Z_]+)(\\[(?<numElements>\\d+)])?");
+        Pattern.compile("^%DB(?<blockNumber>\\d{1,5}).DB(?<transferSizeCode>[XBWD]?)(?<byteOffset>\\d{1,7})(.(?<bitOffset>[0-7]))?:(?<dataType>[a-zA-Z_]+)(\\[(?<numElements>\\d+)])?(\\|(?<stringEncoding>[a-z0-9A-Z_-]+))?");
 
     private static final Pattern DATA_BLOCK_SHORT_PATTERN =
-        Pattern.compile("^%DB(?<blockNumber>\\d{1,5}):(?<byteOffset>\\d{1,7})(.(?<bitOffset>[0-7]))?:(?<dataType>[a-zA-Z_]+)(\\[(?<numElements>\\d+)])?");
+        Pattern.compile("^%DB(?<blockNumber>\\d{1,5}):(?<byteOffset>\\d{1,7})(.(?<bitOffset>[0-7]))?:(?<dataType>[a-zA-Z_]+)(\\[(?<numElements>\\d+)])?(\\|(?<stringEncoding>[a-z0-9A-Z_-]+))?");
 
     private static final Pattern DATA_BLOCK_STRING_ADDRESS_PATTERN =
-        Pattern.compile("^%DB(?<blockNumber>\\d{1,5}).DB(?<transferSizeCode>[XBWD]?)(?<byteOffset>\\d{1,7})(.(?<bitOffset>[0-7]))?:(?<dataType>STRING|WSTRING)\\((?<stringLength>\\d{1,3})\\)(\\[(?<numElements>\\d+)])?");
+        Pattern.compile("^%DB(?<blockNumber>\\d{1,5}).DB(?<transferSizeCode>[XBWD]?)(?<byteOffset>\\d{1,7})(.(?<bitOffset>[0-7]))?:(?<dataType>STRING|WSTRING)\\((?<stringLength>\\d{1,3})\\)(\\[(?<numElements>\\d+)])?(\\|(?<stringEncoding>[a-z0-9A-Z_-]+))?");
 
     private static final Pattern DATA_BLOCK_STRING_SHORT_PATTERN =
-        Pattern.compile("^%DB(?<blockNumber>\\d{1,5}):(?<byteOffset>\\d{1,7})(.(?<bitOffset>[0-7]))?:(?<dataType>STRING|WSTRING)\\((?<stringLength>\\d{1,3})\\)(\\[(?<numElements>\\d+)])?");
+        Pattern.compile("^%DB(?<blockNumber>\\d{1,5}):(?<byteOffset>\\d{1,7})(.(?<bitOffset>[0-7]))?:(?<dataType>STRING|WSTRING)\\((?<stringLength>\\d{1,3})\\)(\\[(?<numElements>\\d+)])?(\\|(?<stringEncoding>[a-z0-9A-Z_-]+))?");
 
     private static final Pattern PLC_PROXY_ADDRESS_PATTERN =
-        Pattern.compile("[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}");
-
+        Pattern.compile("[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}(\\|(?<stringEncoding>[a-z0-9A-Z_-]+))?");
     private static final String DATA_TYPE = "dataType";
     private static final String STRING_LENGTH = "stringLength";
     private static final String TRANSFER_SIZE_CODE = "transferSizeCode";
@@ -73,6 +72,7 @@ public class S7Tag implements PlcTag, Serializable {
     private static final String BIT_OFFSET = "bitOffset";
     private static final String NUM_ELEMENTS = "numElements";
     private static final String MEMORY_AREA = "memoryArea";
+    private static final String STRING_ENCODING = "stringEncoding";
 
     private final TransportSize dataType;
     private final MemoryArea memoryArea;
@@ -81,16 +81,20 @@ public class S7Tag implements PlcTag, Serializable {
     private final byte bitOffset;
     private final int numElements;
 
+    private final String stringEncoding;
+
     @JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
     protected S7Tag(@JsonProperty("dataType") TransportSize dataType, @JsonProperty("memoryArea") MemoryArea memoryArea,
                     @JsonProperty("blockNumber") int blockNumber, @JsonProperty("byteOffset") int byteOffset,
-                    @JsonProperty("bitOffset") byte bitOffset, @JsonProperty("numElements") int numElements) {
+                    @JsonProperty("bitOffset") byte bitOffset, @JsonProperty("numElements") int numElements,
+                    @JsonProperty("stringEncoding") String stringEncoding) {
         this.dataType = dataType;
         this.memoryArea = memoryArea;
         this.blockNumber = blockNumber;
         this.byteOffset = byteOffset;
         this.bitOffset = bitOffset;
         this.numElements = numElements;
+        this.stringEncoding = stringEncoding;
     }
 
     @Override
@@ -135,6 +139,10 @@ public class S7Tag implements PlcTag, Serializable {
         return bitOffset;
     }
 
+    public String getStringEncoding() {
+        return stringEncoding;
+    }
+    @Override
     public int getNumberOfElements() {
         return numElements;
     }
@@ -162,7 +170,7 @@ public class S7Tag implements PlcTag, Serializable {
             if (matcher.group(BIT_OFFSET) != null) {
                 bitOffset = Byte.parseByte(matcher.group(BIT_OFFSET));
             } else if (dataType == TransportSize.BOOL) {
-                throw new PlcInvalidTagException("Expected bit offset for BOOL parameters.");
+                //throw new PlcInvalidTagException("Expected bit offset for BOOL parameters.");
             }
             int numElements = 1;
             if (matcher.group(NUM_ELEMENTS) != null) {
@@ -173,8 +181,16 @@ public class S7Tag implements PlcTag, Serializable {
                 throw new PlcInvalidTagException("Transfer size code '" + transferSizeCode +
                     "' doesn't match specified data type '" + dataType.name() + "'");
             }
-
-            return new S7StringTag(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements, stringLength);
+            String stringEncoding = matcher.group(STRING_ENCODING);
+            if (stringEncoding==null || "".equals(stringEncoding))
+            {
+                stringEncoding = "UTF-8";
+                if (dataType == TransportSize.WSTRING || dataType == TransportSize.WCHAR)
+                {
+                    stringEncoding = "UTF-16";
+                }
+            }
+            return new S7StringTag(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements, stringLength, stringEncoding);
         } else if ((matcher = DATA_BLOCK_STRING_SHORT_PATTERN.matcher(tagString)).matches()) {
             TransportSize dataType = TransportSize.valueOf(matcher.group(DATA_TYPE));
             int stringLength = Integer.parseInt(matcher.group(STRING_LENGTH));
@@ -186,9 +202,17 @@ public class S7Tag implements PlcTag, Serializable {
             if (matcher.group(NUM_ELEMENTS) != null) {
                 numElements = Integer.parseInt(matcher.group(NUM_ELEMENTS));
             }
-
+            String stringEncoding = matcher.group(STRING_ENCODING);
+            if (stringEncoding==null || "".equals(stringEncoding))
+            {
+                stringEncoding = "UTF-8";
+                if (dataType == TransportSize.WSTRING || dataType == TransportSize.WCHAR)
+                {
+                    stringEncoding = "UTF-16";
+                }
+            }
             return new S7StringTag(dataType, memoryArea, blockNumber,
-                byteOffset, bitOffset, numElements, stringLength);
+                byteOffset, bitOffset, numElements, stringLength, stringEncoding);
         } else if ((matcher = DATA_BLOCK_ADDRESS_PATTERN.matcher(tagString)).matches()) {
             TransportSize dataType = TransportSize.valueOf(matcher.group(DATA_TYPE));
             MemoryArea memoryArea = MemoryArea.DATA_BLOCKS;
@@ -210,8 +234,16 @@ public class S7Tag implements PlcTag, Serializable {
                 throw new PlcInvalidTagException("Transfer size code '" + transferSizeCode +
                     "' doesn't match specified data type '" + dataType.name() + "'");
             }
-
-            return new S7Tag(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements);
+            String stringEncoding = matcher.group(STRING_ENCODING);
+            if (stringEncoding==null || "".equals(stringEncoding))
+            {
+                stringEncoding = "UTF-8";
+                if (dataType == TransportSize.WSTRING || dataType == TransportSize.WCHAR)
+                {
+                    stringEncoding = "UTF-16";
+                }
+            }
+            return new S7Tag(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements, stringEncoding);
         } else if ((matcher = DATA_BLOCK_SHORT_PATTERN.matcher(tagString)).matches()) {
             TransportSize dataType = TransportSize.valueOf(matcher.group(DATA_TYPE));
             MemoryArea memoryArea = MemoryArea.DATA_BLOCKS;
@@ -221,15 +253,23 @@ public class S7Tag implements PlcTag, Serializable {
             if (matcher.group(BIT_OFFSET) != null) {
                 bitOffset = Byte.parseByte(matcher.group(BIT_OFFSET));
             } else if (dataType == TransportSize.BOOL) {
-                throw new PlcInvalidTagException("Expected bit offset for BOOL parameters.");
+                //throw new PlcInvalidTagException("Expected bit offset for BOOL parameters.");
             }
             int numElements = 1;
             if (matcher.group(NUM_ELEMENTS) != null) {
                 numElements = Integer.parseInt(matcher.group(NUM_ELEMENTS));
             }
-
-            return new S7Tag(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements);
-        } else if (PLC_PROXY_ADDRESS_PATTERN.matcher(tagString).matches()) {
+            String stringEncoding = matcher.group(STRING_ENCODING);
+            if (stringEncoding==null || "".equals(stringEncoding))
+            {
+                stringEncoding = "UTF-8";
+                if (dataType == TransportSize.WSTRING || dataType == TransportSize.WCHAR)
+                {
+                    stringEncoding = "UTF-16";
+                }
+            }
+            return new S7Tag(dataType, memoryArea, blockNumber, byteOffset, bitOffset, numElements, stringEncoding);
+        } else if ((matcher = PLC_PROXY_ADDRESS_PATTERN.matcher(tagString)).matches()) {
             try {
                 byte[] addressData = Hex.decodeHex(tagString.replaceAll("[-]", ""));
                 ReadBuffer rb = new ReadBufferByteBased(addressData);
@@ -240,10 +280,18 @@ public class S7Tag implements PlcTag, Serializable {
                     if ((s7AddressAny.getTransportSize() != TransportSize.BOOL) && s7AddressAny.getBitAddress() != 0) {
                         throw new PlcInvalidTagException("A bit offset other than 0 is only supported for type BOOL");
                     }
-
+                    String stringEncoding = matcher.group(STRING_ENCODING);
+                    if (stringEncoding==null || "".equals(stringEncoding))
+                    {
+                        stringEncoding = "UTF-8";
+                        if (s7AddressAny.getTransportSize() == TransportSize.WSTRING || s7AddressAny.getTransportSize() == TransportSize.WCHAR)
+                        {
+                            stringEncoding = "UTF-16";
+                        }
+                    }
                     return new S7Tag(s7AddressAny.getTransportSize(), s7AddressAny.getArea(),
                         s7AddressAny.getDbNumber(), s7AddressAny.getByteAddress(),
-                        s7AddressAny.getBitAddress(), s7AddressAny.getNumberOfElements());
+                        s7AddressAny.getBitAddress(), s7AddressAny.getNumberOfElements(), stringEncoding);
                 } else {
                     throw new PlcInvalidTagException("Unsupported address type.");
                 }
@@ -259,7 +307,7 @@ public class S7Tag implements PlcTag, Serializable {
             if (matcher.group(BIT_OFFSET) != null) {
                 bitOffset = Byte.parseByte(matcher.group(BIT_OFFSET));
             } else if (dataType == TransportSize.BOOL) {
-                throw new PlcInvalidTagException("Expected bit offset for BOOL parameters.");
+                //throw new PlcInvalidTagException("Expected bit offset for BOOL parameters.");
             }
             int numElements = 1;
             if (matcher.group(NUM_ELEMENTS) != null) {
@@ -273,8 +321,17 @@ public class S7Tag implements PlcTag, Serializable {
             if ((dataType != TransportSize.BOOL) && bitOffset != 0) {
                 throw new PlcInvalidTagException("A bit offset other than 0 is only supported for type BOOL");
             }
+            String stringEncoding = matcher.group(STRING_ENCODING);
+            if (stringEncoding==null || "".equals(stringEncoding))
+            {
+                stringEncoding = "UTF-8";
+                if (dataType == TransportSize.WSTRING || dataType == TransportSize.WCHAR)
+                {
+                    stringEncoding = "UTF-16";
+                }
+            }
 
-            return new S7Tag(dataType, memoryArea, (short) 0, byteOffset, bitOffset, numElements);
+            return new S7Tag(dataType, memoryArea, (short) 0, byteOffset, bitOffset, numElements, stringEncoding);
         }
         throw new PlcInvalidTagException("Unable to parse address: " + tagString);
     }
diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/utils/StaticHelper.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/utils/StaticHelper.java
index 3fda942897..f1ab55296d 100644
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/utils/StaticHelper.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/utils/StaticHelper.java
@@ -36,14 +36,22 @@ import org.apache.plc4x.java.spi.generation.ParseException;
 import org.apache.plc4x.java.spi.generation.ReadBuffer;
 import org.apache.plc4x.java.spi.generation.SerializationException;
 import org.apache.plc4x.java.spi.generation.WriteBuffer;
+import org.apache.plc4x.java.spi.values.PlcList;
+import org.apache.plc4x.java.spi.values.PlcWCHAR;
 
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+import java.nio.ByteBuffer;
+import java.nio.charset.CharacterCodingException;
 import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
 import java.nio.charset.StandardCharsets;
 import java.time.Duration;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.temporal.ChronoUnit;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.logging.Level;
@@ -127,6 +135,87 @@ import java.util.regex.Pattern;
  */
 
 public class StaticHelper {
+    private static final String[] DEFAULTCHARSETS = {"ASCII", "UTF-8", "GBK", "GB2312", "BIG5", "GB18030"};
+
+    public static Charset detectCharset(String firstMaTch, byte[] bytes) {
+
+        Charset charset = null;
+        if (firstMaTch!=null && !"".equals(firstMaTch))
+        {
+            try {
+                charset = Charset.forName(firstMaTch.replaceAll("[^a-zA-Z0-9]", ""));
+            }catch (Exception ignored) {
+            }
+            return charset;
+        }
+        for (String charsetName : DEFAULTCHARSETS) {
+            charset = detectCharset(bytes, Charset.forName(charsetName), bytes.length);
+            if (charset != null) {
+                break;
+            }
+        }
+
+        return charset;
+    }
+
+    private static Charset detectCharset(byte[] bytes, Charset charset, int length) {
+        try {
+            BufferedInputStream input = new BufferedInputStream(new ByteArrayInputStream(bytes, 0, length));
+
+            CharsetDecoder decoder = charset.newDecoder();
+            decoder.reset();
+
+            byte[] buffer = new byte[512];
+            boolean identified = false;
+            while (input.read(buffer) != -1 && !identified) {
+                identified = identify(buffer, decoder);
+            }
+
+            input.close();
+
+            if (identified) {
+                return charset;
+            } else {
+                return null;
+            }
+
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    private static boolean identify(byte[] bytes, CharsetDecoder decoder) {
+        try {
+            decoder.decode(ByteBuffer.wrap(bytes));
+        } catch (CharacterCodingException e) {
+            return false;
+        }
+        return true;
+    }
+    public static Charset getEncoding(String firstMaTch, String str) {
+        if (str == null || str.trim().length() < 1) {
+            return null;
+        }
+        Charset charset = null;
+        if (firstMaTch!=null && !"".equals(firstMaTch))
+        {
+            try {
+                charset = Charset.forName(firstMaTch.replaceAll("[^a-zA-Z0-9]", ""));
+            }catch (Exception ignored) {
+            }
+            return charset;
+        }
+        for (String encode : DEFAULTCHARSETS) {
+            try {
+                Charset charset1 = Charset.forName(encode);
+                if (str.equals(new String(str.getBytes(charset1), charset1))) {
+                    return charset1;
+                }
+            } catch (Exception er) {
+            }
+        }
+        return null;
+    }
 
     public enum OB {
         FREE_CYC(0X0000, "OB1 Free cycle"),
@@ -1931,7 +2020,7 @@ public class StaticHelper {
         throw new NotImplementedException("Serializing DATE_AND_TIME not implemented");
     }
 
-    public static String parseS7Char(ReadBuffer io, String encoding) throws ParseException {
+    public static String parseS7Char(ReadBuffer io, String encoding, String stringEncoding) throws ParseException{
         if ("UTF-8".equalsIgnoreCase(encoding)) {
             return io.readString(8, WithOption.WithEncoding(encoding));
         } else if ("UTF-16".equalsIgnoreCase(encoding)) {
@@ -1941,14 +2030,14 @@ public class StaticHelper {
         }
     }
 
-    public static String parseS7String(ReadBuffer io, int stringLength, String encoding) {
+    public static String parseS7String(ReadBuffer io, int stringLength, String encoding, String stringEncoding) {
         try {
             if ("UTF-8".equalsIgnoreCase(encoding)) {
                 // This is the maximum number of bytes a string can be long.
                 short maxLength = io.readUnsignedShort(8);
                 // This is the total length of the string on the PLC (Not necessarily the number of characters read)
                 short totalStringLength = io.readUnsignedShort(8);
-
+                totalStringLength = (short) Math.min(maxLength, totalStringLength);
                 final byte[] byteArray = new byte[totalStringLength];
                 for (int i = 0; (i < stringLength) && io.hasMore(8); i++) {
                     final byte curByte = io.readByte();
@@ -1963,13 +2052,25 @@ public class StaticHelper {
                         break;
                     }
                 }
-                return new String(byteArray, StandardCharsets.UTF_8);
+                Charset charset = detectCharset(null,byteArray);
+                if (charset == null) {
+                    try {
+                        charset = Charset.forName(stringEncoding.replaceAll("[^a-zA-Z0-9]", ""));
+                    }catch (Exception ignored) {
+                    }
+                    if (charset == null) {
+                        charset = StandardCharsets.UTF_8;
+                    }
+                }
+                String substr = new String(byteArray, charset);
+                substr = substr.replaceAll("[^\u0020-\u9FA5]", "");
+                return substr;
             } else if ("UTF-16".equalsIgnoreCase(encoding)) {
                 // This is the maximum number of bytes a string can be long.
                 int maxLength = io.readUnsignedInt(16);
                 // This is the total length of the string on the PLC (Not necessarily the number of characters read)
                 int totalStringLength = io.readUnsignedInt(16);
-
+                totalStringLength = Math.min(maxLength, totalStringLength);
                 final byte[] byteArray = new byte[totalStringLength * 2];
                 for (int i = 0; (i < stringLength) && io.hasMore(16); i++) {
                     final short curShort = io.readShort(16);
@@ -1985,7 +2086,17 @@ public class StaticHelper {
                         break;
                     }
                 }
-                return new String(byteArray, StandardCharsets.UTF_16);
+                Charset charset = detectCharset(stringEncoding,byteArray);
+                if (charset == null) {
+                    try {
+                        charset = Charset.forName(stringEncoding.replaceAll("[^a-zA-Z0-9]", ""));
+                    }catch (Exception ignored) {
+                    }
+                    if (charset == null) {
+                        charset = StandardCharsets.UTF_16;
+                    }
+                }
+                return new String(byteArray, charset);
             } else {
                 throw new PlcRuntimeException("Unsupported string encoding " + encoding);
             }
@@ -1997,12 +2108,29 @@ public class StaticHelper {
     /*
      * A variable of data type CHAR (character) occupies one byte.
      */
-    public static void serializeS7Char(WriteBuffer io, PlcValue value, String encoding) {
-        // TODO: Need to implement the serialization or we can't write strings
+    public static void serializeS7Char(WriteBuffer io, PlcValue value, String encoding, String stringEncoding) {
+        if (value instanceof PlcList) {
+            PlcList list = (PlcList) value;
+            list.getList().forEach(v -> writeChar(io, v, encoding,stringEncoding));
+        } else {
+            writeChar(io, value, encoding,stringEncoding);
+        }
+    }
+    private static void writeChar(WriteBuffer io, PlcValue value, String encoding, String stringEncoding) {
         if ("UTF-8".equalsIgnoreCase(encoding)) {
-            //return io.readString(8, encoding);
+            try {
+                byte valueByte = value.getByte();
+                io.writeByte(valueByte);
+            } catch (SerializationException e) {
+                throw new PlcRuntimeException("writeChar error");
+            }
         } else if ("UTF-16".equalsIgnoreCase(encoding)) {
-            //return io.readString(16, encoding);
+            try {
+                byte[] bytes = ((PlcWCHAR) value).getBytes();
+                io.writeByteArray(bytes);
+            } catch (SerializationException e) {
+                throw new PlcRuntimeException("writeWChar error");
+            }
         } else {
             throw new PlcRuntimeException("Unsupported encoding");
         }
@@ -2032,23 +2160,57 @@ public class StaticHelper {
      * If your application does not handle S7string, you can handle
      * the String as char arrays from your application.
      */
-    public static void serializeS7String(WriteBuffer io, PlcValue value, int stringLength, String encoding) {
-        int k = 0xFF & ((stringLength > 250) ? 250 : stringLength);
-        int m = 0xFF & value.getString().length();
-        m = (m > k) ? k : m;
-        byte[] chars = new byte[m];
-        for (int i = 0; i < m; ++i) {
-            char c = value.getString().charAt(i);
-            chars[i] = (byte) c;
+    public static void serializeS7String(WriteBuffer io, PlcValue value, int stringLength, String encoding, String stringEncoding) {
+        stringLength = Math.min(stringLength, 254);
+        String valueString = (String) value.getObject();
+        valueString = valueString == null ? "" : valueString;
+        if ("AUTO".equalsIgnoreCase(stringEncoding))
+        {
+            stringEncoding = null;
+        }
+        Charset charsetTemp = getEncoding(stringEncoding,valueString);
+        if ("UTF-8".equalsIgnoreCase(encoding)) {
+            if (charsetTemp == null) {
+                charsetTemp = StandardCharsets.UTF_8;
+            }
+            final byte[] raw = valueString.getBytes(charsetTemp);
+            try {
+                io.writeByte((byte) stringLength);
+                io.writeByte((byte) raw.length);
+                for (int i = 0; i < stringLength; i++) {
+                    if (i >= raw.length) {
+                        io.writeByte((byte) 0x00);
+                    } else {
+                        io.writeByte( raw[i]);
+                    }
+                }
+            }
+            catch (SerializationException ex) {
+                Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex);
+            }
+        } else if ("UTF-16".equalsIgnoreCase(encoding)) {
+            if (charsetTemp == null) {
+                charsetTemp = StandardCharsets.UTF_16;
+            }
+            final byte[] raw = valueString.getBytes(charsetTemp);
+            try {
+                io.writeUnsignedInt(16, stringLength);
+                io.writeUnsignedInt(16, raw.length / 2);
+                for (int i = 0; i < stringLength * 2; i++) {
+                    if (i >= raw.length) {
+                        io.writeByte((byte) 0x00);
+                    } else {
+                        io.writeByte( raw[i]);
+                    }
+                }
+            }
+            catch (SerializationException ex) {
+                Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex);
+            }
+        } else {
+            throw new PlcRuntimeException("Unsupported string encoding " + encoding);
         }
 
-        try {
-            io.writeByte((byte)(k & 0xFF));
-            io.writeByte((byte)(m & 0xFF));
-            io.writeByteArray(chars);
-        } catch (SerializationException ex) {
-            Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex);
-        }
     }
 
 }
diff --git a/plc4j/drivers/s7/src/test/java/S7IoTest.java b/plc4j/drivers/s7/src/test/java/S7IoTest.java
index a9ceea4a72..2c23628e3d 100644
--- a/plc4j/drivers/s7/src/test/java/S7IoTest.java
+++ b/plc4j/drivers/s7/src/test/java/S7IoTest.java
@@ -331,7 +331,7 @@ public class S7IoTest {
 
         TPKTPacket tpktPacket = new TPKTPacket(
             new COTPPacketData(
-                Collections.singletonList(new COTPParameterTpduSize(COTPTpduSize.SIZE_4096, (short) 0)),
+                Collections.singletonList(new COTPParameterTpduSize(COTPTpduSize.SIZE_4096)),
                 new S7MessageResponseData(
                     11,
                     new S7ParameterReadVarResponse((short) 1),
@@ -340,16 +340,15 @@ public class S7IoTest {
                             new S7VarPayloadDataItem(
                                 DataTransportErrorCode.OK,
                                 DataTransportSize.BIT,
-                                new byte[]{0x1},
-                                    false
+                                new byte[]{0x1}
                             )
-                        ), null
+                        )
                     ),
                     (short) 0,
                     (short) 0
                 ),
                 false,
-                (short) 13, 0
+                (short) 13
             )
         );
         // To string
diff --git a/plc4j/drivers/s7/src/test/resources/logback-test.xml b/plc4j/drivers/s7/src/test/resources/logback-test.xml
index 33ae65561c..3020916362 100644
--- a/plc4j/drivers/s7/src/test/resources/logback-test.xml
+++ b/plc4j/drivers/s7/src/test/resources/logback-test.xml
@@ -27,7 +27,7 @@
     </encoder>
   </appender>
 
-  <root level="error">
+  <root level="debug">
     <appender-ref ref="STDOUT" />
   </root>
 
diff --git a/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedConnection.java b/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedConnection.java
index 515d3e1eb1..b533477fd3 100644
--- a/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedConnection.java
+++ b/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedConnection.java
@@ -18,31 +18,16 @@
  */
 package org.apache.plc4x.java.simulated.connection;
 
-import org.apache.plc4x.java.api.messages.PlcReadRequest;
-import org.apache.plc4x.java.api.messages.PlcReadResponse;
-import org.apache.plc4x.java.api.messages.PlcSubscriptionEvent;
-import org.apache.plc4x.java.api.messages.PlcSubscriptionRequest;
-import org.apache.plc4x.java.api.messages.PlcSubscriptionResponse;
-import org.apache.plc4x.java.api.messages.PlcUnsubscriptionRequest;
-import org.apache.plc4x.java.api.messages.PlcUnsubscriptionResponse;
-import org.apache.plc4x.java.api.messages.PlcWriteRequest;
-import org.apache.plc4x.java.api.messages.PlcWriteResponse;
+import org.apache.plc4x.java.api.messages.*;
 import org.apache.plc4x.java.api.model.PlcConsumerRegistration;
-import org.apache.plc4x.java.api.model.PlcSubscriptionTag;
 import org.apache.plc4x.java.api.model.PlcSubscriptionHandle;
+import org.apache.plc4x.java.api.model.PlcSubscriptionTag;
 import org.apache.plc4x.java.api.types.PlcResponseCode;
 import org.apache.plc4x.java.api.value.PlcValue;
 import org.apache.plc4x.java.simulated.tag.SimulatedTag;
 import org.apache.plc4x.java.simulated.tag.SimulatedTagHandler;
 import org.apache.plc4x.java.spi.connection.AbstractPlcConnection;
-import org.apache.plc4x.java.spi.messages.DefaultPlcReadResponse;
-import org.apache.plc4x.java.spi.messages.DefaultPlcSubscriptionEvent;
-import org.apache.plc4x.java.spi.messages.DefaultPlcSubscriptionResponse;
-import org.apache.plc4x.java.spi.messages.DefaultPlcUnsubscriptionResponse;
-import org.apache.plc4x.java.spi.messages.DefaultPlcWriteResponse;
-import org.apache.plc4x.java.spi.messages.PlcReader;
-import org.apache.plc4x.java.spi.messages.PlcSubscriber;
-import org.apache.plc4x.java.spi.messages.PlcWriter;
+import org.apache.plc4x.java.spi.messages.*;
 import org.apache.plc4x.java.spi.messages.utils.ResponseItem;
 import org.apache.plc4x.java.spi.model.DefaultPlcConsumerRegistration;
 import org.apache.plc4x.java.spi.model.DefaultPlcSubscriptionHandle;
@@ -51,12 +36,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.time.Instant;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.function.Consumer;
@@ -65,7 +45,7 @@ import java.util.function.Consumer;
  * Connection to a test device.
  * This class is not thread-safe.
  */
-public class SimulatedConnection extends AbstractPlcConnection implements PlcReader, PlcWriter, PlcSubscriber {
+public class SimulatedConnection extends AbstractPlcConnection {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(SimulatedConnection.class);
 
diff --git a/plc4j/examples/hello-connectivity-mqtt/src/main/java/org/apache/plc4x/java/examples/connectivity/mqtt/MqttConnector.java b/plc4j/examples/hello-connectivity-mqtt/src/main/java/org/apache/plc4x/java/examples/connectivity/mqtt/MqttConnector.java
index 54c2b203c4..09d036d93c 100644
--- a/plc4j/examples/hello-connectivity-mqtt/src/main/java/org/apache/plc4x/java/examples/connectivity/mqtt/MqttConnector.java
+++ b/plc4j/examples/hello-connectivity-mqtt/src/main/java/org/apache/plc4x/java/examples/connectivity/mqtt/MqttConnector.java
@@ -24,10 +24,10 @@ import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
 import com.hivemq.client.mqtt.MqttClient;
 import com.hivemq.client.mqtt.datatypes.MqttQos;
-import com.hivemq.client.mqtt.mqtt3.Mqtt3RxClient;
-import com.hivemq.client.mqtt.mqtt3.message.connect.connack.Mqtt3ConnAck;
-import com.hivemq.client.mqtt.mqtt3.message.publish.Mqtt3Publish;
-import com.hivemq.client.mqtt.mqtt3.message.publish.Mqtt3PublishResult;
+import com.hivemq.client.mqtt.mqtt5.Mqtt5RxClient;
+import com.hivemq.client.mqtt.mqtt5.message.connect.connack.Mqtt5ConnAck;
+import com.hivemq.client.mqtt.mqtt5.message.publish.Mqtt5Publish;
+import com.hivemq.client.mqtt.mqtt5.message.publish.Mqtt5PublishResult;
 import io.reactivex.Flowable;
 import io.reactivex.Single;
 import org.apache.commons.lang3.StringUtils;
@@ -43,6 +43,7 @@ import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
+import java.net.URL;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
@@ -53,14 +54,18 @@ public class MqttConnector {
     private Configuration config;
 
     private MqttConnector(String propsPath) {
-        if(StringUtils.isEmpty(propsPath)) {
+        if (StringUtils.isEmpty(propsPath)) {
             logger.error("Empty configuration file parameter");
             throw new IllegalArgumentException("Empty configuration file parameter");
         }
         File propsFile = new File(propsPath);
-        if(!(propsFile.exists() && propsFile.isFile())) {
-            logger.error("Invalid configuration file {}", propsFile.getPath());
-            throw new IllegalArgumentException("Invalid configuration file " + propsFile.getPath());
+        if (!(propsFile.exists() && propsFile.isFile())) {
+            URL url = getClass().getClassLoader().getResource(propsPath);
+            if (url == null) {
+                logger.error("Invalid configuration file {}", propsFile.getPath());
+                throw new IllegalArgumentException("Invalid configuration file " + propsFile.getPath());
+            }
+            propsFile = new File(url.getFile());
         }
         ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
         try {
@@ -72,15 +77,15 @@ public class MqttConnector {
 
     private void run() throws PlcException {
         // Create a new MQTT client.
-        final Mqtt3RxClient client = MqttClient.builder()
+        final Mqtt5RxClient client = MqttClient.builder()
             .identifier(UUID.randomUUID().toString())
             .serverHost(config.getMqttConfig().getServerHost())
             .serverPort(config.getMqttConfig().getServerPort())
-            .useMqttVersion3()
+            .useMqttVersion5()
             .buildRx();
 
         // Connect to the MQTT broker.
-        final Single<Mqtt3ConnAck> connAckSingle = client.connect().timeout(10, TimeUnit.SECONDS);
+        final Single<Mqtt5ConnAck> connAckSingle = client.connect().timeout(10, TimeUnit.SECONDS);
 
         // Connect to the PLC.
         try (PlcConnection plcConnection = PlcDriverManager.getDefault().getConnectionManager().getConnection(config.getPlcConfig().getConnection())) {
@@ -99,30 +104,36 @@ public class MqttConnector {
             PlcReadRequest readRequest = builder.build();
 
             // Send a message containing the PLC read response.
-            Flowable<Mqtt3Publish> messagesToPublish = Flowable.generate(emitter -> {
-                PlcReadResponse response = readRequest.execute().get();
-                String jsonPayload = getPayload(response);
-                final Mqtt3Publish publishMessage = Mqtt3Publish.builder()
-                    .topic(config.getMqttConfig().getTopicName())
-                    .qos(MqttQos.AT_LEAST_ONCE)
-                    .payload(jsonPayload.getBytes())
-                    .build();
-                emitter.onNext(publishMessage);
+            Flowable<Mqtt5Publish> messagesToPublish = Flowable.generate(emitter -> {
+                readRequest.execute().whenComplete((response, err) -> {
+                    String jsonPayload = new JsonObject().toString();
+                    if (err == null) {
+                        jsonPayload = getPayload(response);
+                    }
+
+                    final Mqtt5Publish publishMessage = Mqtt5Publish.builder()
+                        .topic(config.getMqttConfig().getTopicName())
+                        .qos(MqttQos.AT_LEAST_ONCE)
+                        .payload(jsonPayload.getBytes())
+                        .build();
+                    emitter.onNext(publishMessage);
+                });
+
             });
 
             // Emit 1 message only every 100 milliseconds.
             messagesToPublish = messagesToPublish.zipWith(Flowable.interval(
                 config.getPollingInterval(), TimeUnit.MILLISECONDS), (publish, aLong) -> publish);
 
-            final Single<Mqtt3ConnAck> connectScenario = connAckSingle
-                .doOnSuccess(connAck -> System.out.println("Connected with return code " + connAck.getReturnCode()))
+            final Single<Mqtt5ConnAck> connectScenario = connAckSingle
+                .doOnSuccess(connAck -> System.out.println("Connected with return code " + connAck.getReasonCode()))
                 .doOnError(throwable -> System.out.println("Connection failed, " + throwable.getMessage()));
 
-            final Flowable<Mqtt3PublishResult> publishScenario = client.publish(messagesToPublish)
+            final Flowable<Mqtt5PublishResult> publishScenario = client.publish(messagesToPublish)
                 .doOnNext(publishResult -> System.out.println(
                     "Publish acknowledged: " + new String(publishResult.getPublish().getPayloadAsBytes())));
 
-            connectScenario.toCompletable().andThen(publishScenario).blockingSubscribe();
+            connectScenario.ignoreElement().andThen(publishScenario).blockingSubscribe();
         } catch (Exception e) {
             throw new PlcException("Error creating connection to " + config.getPlcConfig().getConnection(), e);
         }
@@ -143,10 +154,11 @@ public class MqttConnector {
     }
 
     public static void main(String[] args) throws Exception {
-        if(args.length != 1) {
-            System.out.println("Usage: MqttConnector {path-to-mqtt-connector.yml}");
+        String fileName = "mqtt-connector.yml";
+        if (args.length >= 1) {
+            fileName = args[0];
         }
-        MqttConnector mqttConnector = new MqttConnector(args[0]);
+        MqttConnector mqttConnector = new MqttConnector(fileName);
         mqttConnector.run();
     }
 
diff --git a/plc4j/examples/hello-connectivity-mqtt/src/main/resources/mqtt-connector.yml b/plc4j/examples/hello-connectivity-mqtt/src/main/resources/mqtt-connector.yml
new file mode 100644
index 0000000000..1bccd427a9
--- /dev/null
+++ b/plc4j/examples/hello-connectivity-mqtt/src/main/resources/mqtt-connector.yml
@@ -0,0 +1,35 @@
+# ----------------------------------------------------------------------------
+# 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
+#
+#    https://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.
+# ----------------------------------------------------------------------------
+---
+mqtt:
+  topic-name: plc4x/test-topic
+  server-host: test.mosquitto.org
+  server-port: 1883
+plc:
+  connection: simulated://127.0.0.1
+  addresses:
+    - name: intParam
+      address: RANDOM/foo:INT
+      size: 1
+      type: java.lang.Integer
+    - name: intParam2
+      address: RANDOM/bar:INT
+      size: 1
+      type: java.lang.Integer
+polling-interval: 2000
diff --git a/plc4j/examples/hello-influx-data-collection/src/main/java/org/apache/plc4x/java/examples/helloinflux/HelloInflux.java b/plc4j/examples/hello-influx-data-collection/src/main/java/org/apache/plc4x/java/examples/helloinflux/HelloInflux.java
index d89e4d35ea..1cd49b5e1b 100644
--- a/plc4j/examples/hello-influx-data-collection/src/main/java/org/apache/plc4x/java/examples/helloinflux/HelloInflux.java
+++ b/plc4j/examples/hello-influx-data-collection/src/main/java/org/apache/plc4x/java/examples/helloinflux/HelloInflux.java
@@ -61,7 +61,7 @@ public class HelloInflux {
 
     public void run() {
         InfluxDBClient dbConnection = connectToDb();
-        WriteApi writeApi = dbConnection.getWriteApi();
+        WriteApi writeApi = dbConnection.makeWriteApi();
         try {
             PlcConnection plcConnection = connectToPlc();
 
diff --git a/plc4j/examples/hello-world-kotlin/pom.xml b/plc4j/examples/hello-world-kotlin/pom.xml
index 6931049aa0..771e2e82bf 100644
--- a/plc4j/examples/hello-world-kotlin/pom.xml
+++ b/plc4j/examples/hello-world-kotlin/pom.xml
@@ -54,7 +54,7 @@
     <!--dependency>
       <groupId>org.apache.plc4x</groupId>
       <artifactId>plc4j-driver-modbus</artifactId>
-      <version>0.10.0-SNAPSHOT</version>
+      <version>0.11.0-SNAPSHOT</version>
       <scope>runtime</scope>
     </dependency-->
 
diff --git a/plc4j/integrations/apache-kafka/pom.xml b/plc4j/integrations/apache-kafka/pom.xml
index 6f6fcebc12..75fd02e15f 100644
--- a/plc4j/integrations/apache-kafka/pom.xml
+++ b/plc4j/integrations/apache-kafka/pom.xml
@@ -32,7 +32,7 @@
   <description>Integration module for integrating PLC4X into Apache Kafka (Kafka-Connect-Plugin)</description>
 
   <properties>
-    <kafka.version>3.2.0</kafka.version>
+    <kafka.version>3.2.3</kafka.version>
     <kafka.connect.maven.plugin.version>0.12.0</kafka.connect.maven.plugin.version>
   </properties>
 
diff --git a/plc4j/integrations/opcua-server/pom.xml b/plc4j/integrations/opcua-server/pom.xml
index ee1a38db54..17ef31bfce 100644
--- a/plc4j/integrations/opcua-server/pom.xml
+++ b/plc4j/integrations/opcua-server/pom.xml
@@ -168,18 +168,18 @@
       <scope>runtime</scope>
     </dependency>
 
-    <!-- Logging dependancies -->
+    <!-- Logging dependencies -->
     <dependency>
       <groupId>org.bouncycastle</groupId>
-      <artifactId>bcmail-jdk15on</artifactId>
+      <artifactId>bcmail-jdk18on</artifactId>
     </dependency>
     <dependency>
       <groupId>org.bouncycastle</groupId>
-      <artifactId>bcpkix-jdk15on</artifactId>
+      <artifactId>bcpkix-jdk18on</artifactId>
     </dependency>
     <dependency>
       <groupId>org.bouncycastle</groupId>
-      <artifactId>bcprov-jdk15on</artifactId>
+      <artifactId>bcprov-jdk18on</artifactId>
     </dependency>
 
     <dependency>
diff --git a/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java b/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java
index e2ff465107..e7c5a81dc3 100644
--- a/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java
+++ b/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java
@@ -18,7 +18,9 @@
  */
 package org.apache.plc4x.java.opcuaserver.backend;
 
+import org.apache.plc4x.java.DefaultPlcDriverManager;
 import org.apache.plc4x.java.api.PlcConnection;
+import org.apache.plc4x.java.api.PlcConnectionManager;
 import org.apache.plc4x.java.api.PlcDriverManager;
 import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
 import org.apache.plc4x.java.api.messages.PlcReadRequest;
@@ -53,9 +55,7 @@ import static org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.Unsigned.
 
 
 public class Plc4xCommunication extends AbstractLifecycle {
-
-    private PlcDriverManager driverManager;
-    private CachedPlcConnectionManager cachedPlcConnectionManager;
+    private PlcConnectionManager plcConnectionManager;
     private final Logger logger = LoggerFactory.getLogger(getClass());
     private final Integer DEFAULT_TIMEOUT = 1000000;
     private final Integer DEFAULT_RETRY_BACKOFF = 5000;
@@ -71,7 +71,7 @@ public class Plc4xCommunication extends AbstractLifecycle {
 
     @Override
     protected void onStartup() {
-        setDriverManager(PlcDriverManager.getDefault());
+        setConnectionManager(CachedPlcConnectionManager.getBuilder(new DefaultPlcDriverManager()).build());
     }
 
     @Override
@@ -79,17 +79,16 @@ public class Plc4xCommunication extends AbstractLifecycle {
         //Do Nothing
     }
 
-    public PlcDriverManager getDriverManager() {
-        return driverManager;
+    public PlcConnectionManager getConnectionManager() {
+        return plcConnectionManager;
     }
 
-    public void setDriverManager(PlcDriverManager driverManager) {
-        this.driverManager = driverManager;
-        this.cachedPlcConnectionManager = CachedPlcConnectionManager.getBuilder(driverManager.getConnectionManager()).build();
+    public void setConnectionManager(PlcConnectionManager connectionManager) {
+        this.plcConnectionManager = connectionManager;
     }
 
     public PlcTag getTag(String tag, String connectionString) throws PlcConnectionException {
-        return driverManager.getDriverForUrl(connectionString).prepareTag(tag);
+        return plcConnectionManager.getDriverManager().getDriverForUrl(connectionString).prepareTag(tag);
     }
 
     public void addTag(DataItem item) {
@@ -156,7 +155,7 @@ public class Plc4xCommunication extends AbstractLifecycle {
 
             //Try to connect to PLC
             try {
-                connection = cachedPlcConnectionManager.getConnection(connectionString);
+                connection = plcConnectionManager.getConnection(connectionString);
                 logger.debug(connectionString + " Connected");
             } catch (PlcConnectionException e) {
                 logger.error("Failed to connect to device, error raised - " + e);
@@ -248,7 +247,7 @@ public class Plc4xCommunication extends AbstractLifecycle {
     }
 
     public void setValue(String tag, String value, String connectionString) {
-        try (PlcConnection connection = cachedPlcConnectionManager.getConnection(connectionString)) {
+        try (PlcConnection connection = plcConnectionManager.getConnection(connectionString)) {
             if (!connection.getMetadata().canWrite()) {
                 logger.error("This connection doesn't support writing.");
                 return;
diff --git a/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xNamespace.java b/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xNamespace.java
index fd4d6e9188..87f2fe6047 100644
--- a/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xNamespace.java
+++ b/plc4j/integrations/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xNamespace.java
@@ -23,6 +23,7 @@ import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
 import org.apache.plc4x.java.opcuaserver.configuration.Configuration;
 import org.apache.plc4x.java.opcuaserver.configuration.DeviceConfiguration;
 import org.apache.plc4x.java.opcuaserver.configuration.Tag;
+import org.apache.plc4x.java.utils.cache.CachedPlcConnectionManager;
 import org.eclipse.milo.opcua.sdk.core.AccessLevel;
 import org.eclipse.milo.opcua.sdk.core.Reference;
 import org.eclipse.milo.opcua.sdk.core.ValueRank;
@@ -184,9 +185,9 @@ public class Plc4xNamespace extends ManagedNamespaceWithLifecycle {
         for (DataItem item : dataItems) {
             plc4xServer.addTag(item);
 
-            if (plc4xServer.getDriverManager() == null) {
+            if (plc4xServer.getConnectionManager() == null) {
                 plc4xServer.removeTag(item);
-                plc4xServer.setDriverManager(new DefaultPlcDriverManager());
+                plc4xServer.setConnectionManager(CachedPlcConnectionManager.getBuilder(new DefaultPlcDriverManager()).build());
             }
         }
 
diff --git a/plc4j/pom.xml b/plc4j/pom.xml
index 192b24edba..4af3e39966 100644
--- a/plc4j/pom.xml
+++ b/plc4j/pom.xml
@@ -126,6 +126,9 @@
               <goal>check</goal>
             </goals>
             <configuration>
+              <excludes>
+                <exclude>**/Identifiers</exclude>
+              </excludes>
               <!-- TODO: Turn this on as soon as possible. -->
               <haltOnFailure>false</haltOnFailure>
               <rules>
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java
index 33ef316673..e6007b9a50 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java
@@ -22,6 +22,9 @@ import io.netty.channel.Channel;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.channel.ChannelPipeline;
 import io.netty.handler.codec.MessageToMessageCodec;
+import io.netty.util.HashedWheelTimer;
+import io.netty.util.Timeout;
+import io.netty.util.Timer;
 import io.vavr.control.Either;
 import org.apache.plc4x.java.api.authentication.PlcAuthentication;
 import org.apache.plc4x.java.spi.configuration.Configuration;
@@ -39,6 +42,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Queue;
 import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.function.Consumer;
 import java.util.function.Function;
@@ -53,13 +57,12 @@ public class Plc4xNettyWrapper<T> extends MessageToMessageCodec<T, Object> {
     private final PlcAuthentication authentication;
 
     private final Queue<HandlerRegistration> registeredHandlers;
-    private final ChannelPipeline pipeline;
+    private Timer timer = null;
     private final boolean passive;
 
     public Plc4xNettyWrapper(ChannelPipeline pipeline, boolean passive, Plc4xProtocolBase<T> protocol,
                              PlcAuthentication authentication, Class<T> clazz) {
         super(clazz, Object.class);
-        this.pipeline = pipeline;
         this.passive = passive;
         this.registeredHandlers = new ConcurrentLinkedQueue<>();
         this.protocolBase = protocol;
@@ -105,6 +108,7 @@ public class Plc4xNettyWrapper<T> extends MessageToMessageCodec<T, Object> {
             public SendRequestContext<T> sendRequest(T packet) {
                 return new DefaultSendRequestContext<>(handler -> {
                     logger.trace("Adding Response Handler ...");
+                    handler.setTimeoutHandle(createTimeout(handler));
                     registeredHandlers.add(handler);
                 }, packet, this);
             }
@@ -113,13 +117,33 @@ public class Plc4xNettyWrapper<T> extends MessageToMessageCodec<T, Object> {
             public ExpectRequestContext<T> expectRequest(Class<T> clazz, Duration timeout) {
                 return new DefaultExpectRequestContext<>(handler -> {
                     logger.trace("Adding Request Handler ...");
+                    handler.setTimeoutHandle(createTimeout(handler));
                     registeredHandlers.add(handler);
                 }, clazz, timeout, this);
             }
 
         });
     }
-
+    private Timeout createTimeout(HandlerRegistration handler)
+    {
+        Timer createdTimer = this.protocolBase.timer;
+        if(createdTimer==null) {
+            if(this.timer == null) {
+                this.timer = new HashedWheelTimer();
+            }
+            createdTimer = this.timer;
+        }
+        return createdTimer.newTimeout(tt -> {
+            if (tt.isCancelled()) {
+                return;
+            }
+            if( registeredHandlers.remove(handler))
+            {
+                handler.cancel();
+                handler.getOnTimeoutConsumer().accept(new TimeoutException());
+            }
+        }, handler.getTimeout().toMillis(), TimeUnit.MILLISECONDS);
+    }
     @Override
     protected void encode(ChannelHandlerContext channelHandlerContext, Object msg, List<Object> list) throws Exception {
 //        logger.trace("Encoding {}", plcRequestContainer);
@@ -145,21 +169,15 @@ public class Plc4xNettyWrapper<T> extends MessageToMessageCodec<T, Object> {
             HandlerRegistration registration = iter.next();
             // Check if the handler can still be used or should be removed
             // Was cancelled?
+            if(registration.getTimeoutHandle()!=null && !registration.getTimeoutHandle().isCancelled()) {
+                registration.getTimeoutHandle().cancel();
+            }
             if (registration.isCancelled()) {
                 logger.debug("Removing {} as it was cancelled!", registration);
                 iter.remove();
                 continue;
             }
-            // Timeout?
-            final Instant now = Instant.now();
-            if (registration.getTimeoutAt().isBefore(now)) {
-                logger.debug("Removing {} as its timed out (timeout of {} was set till {} and now is {})",
-                    registration, registration.getTimeout(), registration.getTimeoutAt(), now);
-                // pass timeout back to caller so it can do ie. transaction compensation
-                registration.getOnTimeoutConsumer().accept(new TimeoutException());
-                iter.remove();
-                continue;
-            }
+
             logger.trace("Checking handler {} for Object of type {}", registration, t.getClass().getSimpleName());
             if (registration.getExpectClazz().isInstance(t)) {
                 logger.trace("Handler {} has right expected type {}, checking condition", registration, registration.getExpectClazz().getSimpleName());
@@ -207,6 +225,10 @@ public class Plc4xNettyWrapper<T> extends MessageToMessageCodec<T, Object> {
             this.protocolBase.onDiscover(new DefaultConversationContext<>(ctx, authentication, passive));
         } else if (evt instanceof CloseConnectionEvent) {
             this.protocolBase.close(new DefaultConversationContext<>(ctx, authentication, passive));
+            if(this.timer!=null) {
+                this.timer.stop();
+                this.timer = null;
+            }
         } else {
             super.userEventTriggered(ctx, evt);
         }
@@ -268,6 +290,7 @@ public class Plc4xNettyWrapper<T> extends MessageToMessageCodec<T, Object> {
         public SendRequestContext<T1> sendRequest(T1 packet) {
             return new DefaultSendRequestContext<>(handler -> {
                 logger.trace("Adding Response Handler ...");
+                handler.setTimeoutHandle(createTimeout(handler));
                 registeredHandlers.add(handler);
             }, packet, this);
         }
@@ -276,6 +299,7 @@ public class Plc4xNettyWrapper<T> extends MessageToMessageCodec<T, Object> {
         public ExpectRequestContext<T1> expectRequest(Class<T1> clazz, Duration timeout) {
             return new DefaultExpectRequestContext<>(handler -> {
                 logger.trace("Adding Request Handler ...");
+                handler.setTimeoutHandle(createTimeout(handler));
                 registeredHandlers.add(handler);
             }, clazz, timeout, this);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xProtocolBase.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xProtocolBase.java
index dbbabb51e8..cf7bf45811 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xProtocolBase.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xProtocolBase.java
@@ -18,6 +18,7 @@
  */
 package org.apache.plc4x.java.spi;
 
+import io.netty.util.Timer;
 import org.apache.commons.lang3.NotImplementedException;
 import org.apache.plc4x.java.api.messages.*;
 import org.apache.plc4x.java.spi.context.DriverContext;
@@ -28,6 +29,8 @@ public abstract class Plc4xProtocolBase<T> {
 
     protected ConversationContext<T> context;
 
+    protected Timer timer;
+
     protected DriverContext driverContext;
 
     public void setDriverContext(DriverContext driverContext) {
@@ -42,6 +45,10 @@ public abstract class Plc4xProtocolBase<T> {
         this.context = context;
     }
 
+    public void setTimer(Timer timer) {
+        this.timer = timer;
+    }
+
     public void onConnect(ConversationContext<T> context) {
         // Intentionally do nothing here
     }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/ChannelFactory.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/ChannelFactory.java
index cd034bda35..69801c3908 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/ChannelFactory.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/ChannelFactory.java
@@ -21,10 +21,11 @@ package org.apache.plc4x.java.spi.connection;
 import io.netty.channel.Channel;
 import io.netty.channel.ChannelHandler;
 import io.netty.channel.ChannelPipeline;
+import io.netty.util.Timer;
 import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
 
 public interface ChannelFactory {
-
+    Timer getTimer();
     Channel createChannel(ChannelHandler channelHandler) throws PlcConnectionException;
 
     boolean isPassive();
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnection.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnection.java
index 7e30104318..e2221492d0 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnection.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnection.java
@@ -28,6 +28,7 @@ import org.apache.plc4x.java.api.exceptions.PlcIoException;
 import org.apache.plc4x.java.api.listener.ConnectionStateListener;
 import org.apache.plc4x.java.api.listener.EventListener;
 import org.apache.plc4x.java.api.value.PlcValueHandler;
+import org.apache.plc4x.java.spi.Plc4xProtocolBase;
 import org.apache.plc4x.java.spi.configuration.Configuration;
 import org.apache.plc4x.java.spi.configuration.ConfigurationFactory;
 import org.apache.plc4x.java.spi.events.*;
@@ -123,6 +124,7 @@ public class DefaultNettyPlcConnection extends AbstractPlcConnection implements
             channel = channelFactory.createChannel(getChannelHandler(sessionSetupCompleteFuture, sessionDisconnectCompleteFuture, sessionDiscoveredCompleteFuture));
             channel.closeFuture().addListener(future -> {
                 if (!sessionSetupCompleteFuture.isDone()) {
+                    channel.pipeline().fireUserEventTriggered(new CloseConnectionEvent());
                     sessionSetupCompleteFuture.completeExceptionally(
                         new PlcIoException("Connection terminated by remote"));
                 }
@@ -152,6 +154,11 @@ public class DefaultNettyPlcConnection extends AbstractPlcConnection implements
      */
     @Override
     public void close() throws PlcConnectionException {
+        if(channel == null)
+        {
+            connected = false;
+            return;
+        }
         logger.debug("Closing connection to PLC, await for disconnect = {}", awaitSessionDisconnectComplete);
         channel.pipeline().fireUserEventTriggered(new DisconnectEvent());
         try {
@@ -212,22 +219,45 @@ public class DefaultNettyPlcConnection extends AbstractPlcConnection implements
                         } else if (evt instanceof DisconnectedEvent) {
                             sessionDisconnectCompleteFuture.complete(null);
                             eventListeners.forEach(ConnectionStateListener::disconnected);
+                            super.userEventTriggered(ctx, evt);
                         } else if (evt instanceof DiscoveredEvent) {
                             sessionDiscoverCompleteFuture.complete(((DiscoveredEvent) evt).getConfiguration());
+                        } else if (evt instanceof ConnectEvent) {
+                            if (!sessionSetupCompleteFuture.isCompletedExceptionally()) {
+                                if (awaitSessionSetupComplete) {
+                                    setProtocol(stackConfigurer.configurePipeline(configuration, pipeline,  getAuthentication(),
+                                        channelFactory.isPassive()));
+                                }
+                                super.userEventTriggered(ctx, evt);
+                            }
                         } else {
                             super.userEventTriggered(ctx, evt);
                         }
                     }
                 });
+                pipeline.addLast(new ChannelInboundHandlerAdapter() {
+                                     @Override
+                                     public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws PlcConnectionException {
+                                         logger.error("unknown error, close the connection", cause);
+                                         close();
+                                     }
+                                 }
+                );
                 // Initialize via Transport Layer
                 channelFactory.initializePipeline(pipeline);
                 // Initialize Protocol Layer
-                setProtocol(stackConfigurer.configurePipeline(configuration, pipeline, getAuthentication(),
-                    channelFactory.isPassive()));
+                if (!awaitSessionSetupComplete) {
+                    setProtocol(stackConfigurer.configurePipeline(configuration, pipeline, getAuthentication(),
+                        channelFactory.isPassive()));
+                }
             }
         };
     }
-
+    @Override
+    public void setProtocol(Plc4xProtocolBase<?> protocol) {
+        super.setProtocol(protocol);
+        protocol.setTimer(channelFactory.getTimer());
+    }
     protected void sendChannelCreatedEvent() {
         logger.trace("Channel was created, firing ChannelCreated Event");
         // Send an event to the pipeline telling the Protocol filters what's going on.
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java
index 8c9d6f9128..8220ae60d1 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java
@@ -24,6 +24,8 @@ import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelHandler;
 import io.netty.channel.EventLoopGroup;
 import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.util.HashedWheelTimer;
+import io.netty.util.Timer;
 import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -42,6 +44,14 @@ public abstract class NettyChannelFactory implements ChannelFactory {
 
     private static final Logger logger = LoggerFactory.getLogger(NettyChannelFactory.class);
 
+    protected static HashedWheelTimer timer = new HashedWheelTimer();
+    @Override
+    public Timer getTimer(){
+        if(timer==null){
+            timer = new HashedWheelTimer();
+        }
+        return timer;
+    }
     private final Map<Channel, EventLoopGroup> eventLoops = new ConcurrentHashMap<>();
 
     /**
@@ -151,6 +161,8 @@ public abstract class NettyChannelFactory implements ChannelFactory {
             EventLoopGroup eventExecutors = eventLoops.get(channel);
             eventLoops.remove(channel);
             eventExecutors.shutdownGracefully().awaitUninterruptibly();
+            timer.stop();
+            timer = null;
             logger.info("Worker Group was closed successfully!");
         } else {
             logger.warn("Trying to remove EventLoop for Channel {} but have none stored", channel);
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/WriteBufferByteBased.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/WriteBufferByteBased.java
index 9f918cdc81..2c28e8608b 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/WriteBufferByteBased.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/WriteBufferByteBased.java
@@ -45,10 +45,12 @@ public class WriteBufferByteBased implements WriteBuffer, BufferCommons {
         this.byteOrder = byteOrder;
     }
 
+    @Override
     public ByteOrder getByteOrder() {
         return byteOrder;
     }
 
+    @Override
     public void setByteOrder(ByteOrder byteOrder) {
         this.byteOrder = byteOrder;
     }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/internal/HandlerRegistration.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/internal/HandlerRegistration.java
index 7dc9216d8b..bef8bc6f07 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/internal/HandlerRegistration.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/internal/HandlerRegistration.java
@@ -18,13 +18,12 @@
  */
 package org.apache.plc4x.java.spi.internal;
 
+import io.netty.util.Timeout;
 import io.vavr.control.Either;
 
 import java.time.Duration;
-import java.time.Instant;
 import java.util.Deque;
 import java.util.concurrent.TimeoutException;
-import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.BiConsumer;
 import java.util.function.Consumer;
 import java.util.function.Function;
@@ -46,7 +45,7 @@ public class HandlerRegistration {
 
     private final BiConsumer<?, ? extends Throwable> errorConsumer;
     private final Duration timeout;
-    private final Instant timeoutAt;
+    private Timeout timeoutHandle;
 
     private volatile boolean cancelled = false;
     private volatile boolean handled = false;
@@ -58,7 +57,6 @@ public class HandlerRegistration {
         this.onTimeoutConsumer = onTimeoutConsumer;
         this.errorConsumer = errorConsumer;
         this.timeout = timeout;
-        this.timeoutAt = Instant.now().plus(timeout);
     }
 
     public Deque<Either<Function<?, ?>, Predicate<?>>> getCommands() {
@@ -85,8 +83,12 @@ public class HandlerRegistration {
         return timeout;
     }
 
-    public Instant getTimeoutAt() {
-        return timeoutAt;
+    public void setTimeoutHandle(Timeout timeoutHandle) {
+        this.timeoutHandle = timeoutHandle;
+    }
+
+    public Timeout getTimeoutHandle() {
+        return timeoutHandle;
     }
 
     public void cancel() {
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java
index 2a5b2953e4..91f2605b67 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java
@@ -27,6 +27,7 @@ import org.apache.plc4x.java.api.exceptions.PlcRuntimeException;
 import org.apache.plc4x.java.api.messages.PlcWriteRequest;
 import org.apache.plc4x.java.api.messages.PlcWriteResponse;
 import org.apache.plc4x.java.api.model.PlcTag;
+import org.apache.plc4x.java.api.types.PlcValueType;
 import org.apache.plc4x.java.spi.codegen.WithOption;
 import org.apache.plc4x.java.spi.generation.SerializationException;
 import org.apache.plc4x.java.spi.generation.WriteBuffer;
@@ -93,6 +94,7 @@ public class DefaultPlcWriteRequest implements PlcWriteRequest, Serializable {
         return tags.values().stream().map(TagValueItem::getTag).collect(Collectors.toCollection(LinkedList::new));
     }
 
+    @Override
     @JsonIgnore
     public PlcValue getPlcValue(String name) {
         return tags.get(name).getValue();
@@ -194,6 +196,9 @@ public class DefaultPlcWriteRequest implements PlcWriteRequest, Serializable {
                 PlcTag tag = tagValues.getLeft().get();
                 Object[] value = tagValues.getRight();
                 PlcValue plcValue = valueHandler.newPlcValue(tag, value);
+                if(tag.getPlcValueType()== PlcValueType.NULL){
+                    tag.setPlcValueType(plcValue.getPlcValueType());
+                }
                 parsedTags.put(name, new TagValueItem(tag, plcValue));
             });
             return new DefaultPlcWriteRequest(writer, parsedTags);
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/DefaultPlcSubscriptionTag.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/DefaultPlcSubscriptionTag.java
index 8d4f3d41f5..9fb29c0246 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/DefaultPlcSubscriptionTag.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/DefaultPlcSubscriptionTag.java
@@ -59,7 +59,7 @@ public class DefaultPlcSubscriptionTag implements PlcSubscriptionTag {
     public List<ArrayInfo> getArrayInfo() {
         return plcTag.getArrayInfo();
     }
-
+    @Override
     public PlcSubscriptionType getPlcSubscriptionType() {
         return plcSubscriptionType;
     }
@@ -67,7 +67,7 @@ public class DefaultPlcSubscriptionTag implements PlcSubscriptionTag {
     public PlcTag getTag() {
         return plcTag;
     }
-
+    @Override
     public Optional<Duration> getDuration() {
         return Optional.ofNullable(duration);
     }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transaction/RequestTransactionManager.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transaction/RequestTransactionManager.java
index 3592ff2e55..4fba021075 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transaction/RequestTransactionManager.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transaction/RequestTransactionManager.java
@@ -18,21 +18,16 @@
  */
 package org.apache.plc4x.java.spi.transaction;
 
+import org.apache.commons.lang3.concurrent.BasicThreadFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
 
 import java.util.Objects;
 import java.util.Queue;
 import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentLinkedQueue;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
+import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Consumer;
-import org.apache.commons.lang3.concurrent.BasicThreadFactory;
 
 /**
  * This is a limited Queue of Requests, a Protocol can use.
@@ -49,25 +44,23 @@ public class RequestTransactionManager {
     private static final Logger logger = LoggerFactory.getLogger(RequestTransactionManager.class);
 
     /** Executor that performs all operations */
-    //static final ExecutorService executor = Executors.newScheduledThreadPool(4);
-
-    final ExecutorService executor = Executors.newFixedThreadPool(4, new BasicThreadFactory.Builder()
-                                                    .namingPattern("plc4x-tm-thread-%d")
-                                                    .daemon(true)
-                                                    .priority(Thread.MAX_PRIORITY)
-                                                    .build());    
-    
+    private final ExecutorService executor;
     private final Set<RequestTransaction> runningRequests;
     /** How many Transactions are allowed to run at the same time? */
     private int numberOfConcurrentRequests;
     /** Assigns each request a Unique Transaction Id, especially important for failure handling */
-    private AtomicInteger transactionId = new AtomicInteger(0);
+    private final AtomicInteger transactionId = new AtomicInteger(0);
     /** Important, this is a FIFO Queue for Fairness! */
-    private Queue<RequestTransaction> workLog = new ConcurrentLinkedQueue<>();
+    private final Queue<RequestTransaction> workLog = new ConcurrentLinkedQueue<>();
 
     public RequestTransactionManager(int numberOfConcurrentRequests) {
         this.numberOfConcurrentRequests = numberOfConcurrentRequests;
         // Immutable Map
+        executor = new ThreadPoolExecutor(0, numberOfConcurrentRequests,
+            0L, TimeUnit.MILLISECONDS,
+            new LinkedBlockingQueue<>(1024),
+            new BasicThreadFactory.Builder().namingPattern("RequestTransactionManager-pool-%d").daemon(true).build(),
+            new ThreadPoolExecutor.AbortPolicy());;
         runningRequests = ConcurrentHashMap.newKeySet();
     }
 
@@ -91,13 +84,13 @@ public class RequestTransactionManager {
         // As we might have increased the number, try to send some more requests.
         processWorklog();
     }
-    
+
     /*
     * It allows the sequential shutdown of the associated driver.
     */
     public void shutdown(){
         executor.shutdown();
-    }    
+    }
 
     public void submit(Consumer<RequestTransaction> context) {
         RequestTransaction transaction = startRequest();
@@ -114,7 +107,7 @@ public class RequestTransactionManager {
         processWorklog();
     }
 
-    private void processWorklog() {
+    private synchronized void processWorklog() {
         while (runningRequests.size() < getNumberOfConcurrentRequests() && !workLog.isEmpty()) {
             RequestTransaction next = workLog.poll();
             if (next != null) {
@@ -219,11 +212,11 @@ public class RequestTransactionManager {
             this.delegate = delegate;
         }
 
-        //TODO: Check MDC used. Created exception in Hop application        
+        //TODO: Check MDC used. Created exception in Hop application
         @Override
         public void run() {
             //try (final MDC.MDCCloseable closeable = MDC.putCloseable("plc4x.transactionId", Integer.toString(transactionId))) {
-            try{    
+            try{
                 logger.trace("Start execution of transaction {}", transactionId);
                 delegate.run();
                 logger.trace("Completed execution of transaction {}", transactionId);
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBOOL.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBOOL.java
index ed8e9b4b7f..6ebac62822 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBOOL.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBOOL.java
@@ -56,6 +56,8 @@ public class PlcBOOL extends PlcIECValue<Boolean> {
             return new PlcBOOL((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcBOOL((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcBOOL(((Number) value).intValue());
         } else {
             return new PlcBOOL((String) value);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBYTE.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBYTE.java
index c950f4cc76..0f5b0ddff0 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBYTE.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBYTE.java
@@ -57,6 +57,8 @@ public class PlcBYTE extends PlcIECValue<Short> {
             return new PlcBYTE((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcBYTE((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcBYTE(((Number) value).intValue());
         } else {
             return new PlcBYTE((String) value);
         }
@@ -69,9 +71,9 @@ public class PlcBYTE extends PlcIECValue<Short> {
     }
 
     public PlcBYTE(Byte value) {
-        if ((value < minValue) || (value > maxValue)) {
-            throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
-        }
+        //if ((value < minValue) || (value > maxValue)) {
+        //    throw new PlcInvalidFieldException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
+        //}
         this.value = value.shortValue();
         this.isNullable = false;
     }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcCHAR.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcCHAR.java
index 54da8290b8..317633c8f5 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcCHAR.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcCHAR.java
@@ -58,6 +58,8 @@ public class PlcCHAR extends PlcIECValue<Short> {
             return new PlcCHAR((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcCHAR((BigDecimal) value);
+        } else if (value instanceof Character) {
+            return new PlcCHAR((Character) value);
         } else {
             return new PlcCHAR((String) value);
         }
@@ -72,92 +74,128 @@ public class PlcCHAR extends PlcIECValue<Short> {
     public PlcCHAR(Character value) {
         super();
         Integer val = (int) value;
+        this.value = val.shortValue();
+        this.isNullable = false;
+        /*
         if ((val >= minValue) && (val <= maxValue)) {
             this.value = val.shortValue();
             this.isNullable = false;
         } else {
             throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
         }
+        */
     }
 
     public PlcCHAR(Byte value) {
         super();
+        this.value = value.shortValue();
+        this.isNullable = false;
+        /*
         if ((value >= minValue) && (value <= maxValue)) {
             this.value = value.shortValue();
             this.isNullable = false;
         } else {
             throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
         }
+        */
     }
 
     public PlcCHAR(Short value) {
         super();
+        this.value = value;
+        this.isNullable = false;
+        /*
         if ((value >= minValue) && (value <= maxValue)) {
             this.value = value;
             this.isNullable = false;
         } else {
             throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
         }
+        */
     }
 
     public PlcCHAR(Integer value) {
         super();
+        this.value = value.shortValue();
+        this.isNullable = false;
+        /*
         if ((value >= minValue) && (value <= maxValue)) {
             this.value = value.shortValue();
             this.isNullable = false;
         } else {
             throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
         }
+        */
     }
 
     public PlcCHAR(Long value) {
         super();
+        this.value = value.shortValue();
+        this.isNullable = false;
+        /*
         if ((value >= minValue) && (value <= maxValue)) {
             this.value = value.shortValue();
             this.isNullable = false;
         } else {
             throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
         }
+        */
     }
 
     public PlcCHAR(Float value) {
         super();
+        this.value = value.shortValue();
+        this.isNullable = false;
+        /*
         if ((value >= minValue) && (value <= maxValue) && (value % 1 == 0)) {
             this.value = value.shortValue();
             this.isNullable = false;
         } else {
             throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
         }
+        */
     }
 
     public PlcCHAR(Double value) {
         super();
+        this.value = value.shortValue();
+        this.isNullable = false;
+        /*
         if ((value >= minValue) && (value <= maxValue) && (value % 1 == 0)) {
             this.value = value.shortValue();
             this.isNullable = false;
         } else {
             throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
         }
+        */
     }
 
     public PlcCHAR(BigInteger value) {
         super();
+        this.value = value.shortValue();
+        this.isNullable = true;
+        /*
         if ((value.compareTo(BigInteger.valueOf(minValue)) >= 0) && (value.compareTo(BigInteger.valueOf(maxValue)) <= 0)) {
             this.value = value.shortValue();
             this.isNullable = true;
         } else {
             throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
         }
+        */
     }
 
     public PlcCHAR(BigDecimal value) {
         super();
+        this.value = value.shortValue();
+        this.isNullable = true;
+        /*
         if ((value.compareTo(BigDecimal.valueOf(minValue)) >= 0) && (value.compareTo(BigDecimal.valueOf(maxValue)) <= 0) && (value.scale() <= 0)) {
             this.value = value.shortValue();
             this.isNullable = true;
         } else {
             throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
         }
+        */
     }
 
     public PlcCHAR(String value) {
@@ -169,12 +207,15 @@ public class PlcCHAR extends PlcIECValue<Short> {
                 s = " ";
             }
             short val = (short) s.charAt(0);
+            this.isNullable = false;
+            /*
             if ((val >= minValue) && (val <= maxValue)) {
                 this.value = val;
                 this.isNullable = false;
             } else {
                 throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
             }
+            */
         } catch (Exception e) {
             throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
         }
@@ -183,12 +224,16 @@ public class PlcCHAR extends PlcIECValue<Short> {
     @JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
     public PlcCHAR(@JsonProperty("value") short value) {
         super();
+        this.value = value;
+        this.isNullable = false;
+        /*
         if ((value >= minValue) && (value <= maxValue)) {
             this.value = value;
             this.isNullable = false;
         } else {
             throw new PlcInvalidTagException(String.format(VALUE_OUT_OF_RANGE, value, minValue, maxValue, this.getClass().getSimpleName()));
         }
+        */
     }
 
     @Override
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java
index 03863dd3b0..3498ee73fe 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java
@@ -30,6 +30,8 @@ import org.apache.plc4x.java.spi.generation.WriteBuffer;
 
 import java.nio.charset.StandardCharsets;
 import java.time.*;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
 
 @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className")
 public class PlcDATE_AND_TIME extends PlcSimpleValue<LocalDateTime> {
@@ -41,6 +43,37 @@ public class PlcDATE_AND_TIME extends PlcSimpleValue<LocalDateTime> {
             return new PlcDATE_AND_TIME(LocalDateTime.ofInstant(
                 Instant.ofEpochSecond((long) value), ZoneId.systemDefault()));
         }
+        if (value instanceof Instant) {
+            return new PlcDATE_AND_TIME(((Instant) value).toEpochMilli());
+        }
+        if (value instanceof LocalDate) {
+            return new PlcDATE_AND_TIME(((LocalDate) value).atStartOfDay(ZoneId.of("UTC")).toLocalDateTime());
+        } else if (value instanceof String) {
+            String strValue = (String) value;
+            LocalDateTime date;
+            try {
+                date = LocalDateTime.parse(strValue);
+            } catch (DateTimeParseException e) {
+                try {
+                    date = LocalDateTime.parse(strValue, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+                } catch (DateTimeParseException e1) {
+                    try {
+                        date = LocalDateTime.parse(strValue, DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss"));
+                    } catch (DateTimeParseException e2) {
+                        try {
+                            date = LocalDateTime.parse(strValue, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+                        } catch (DateTimeParseException e3) {
+                            try {
+                                date = LocalDateTime.parse(strValue, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                            } catch (DateTimeParseException e4) {
+                                date = LocalDateTime.parse(strValue, DateTimeFormatter.ofPattern("yyyyMMdd"));
+                            }
+                        }
+                    }
+                }
+            }
+            return new PlcDATE_AND_TIME(date);
+        }
         throw new PlcRuntimeException("Invalid value type");
     }
 
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDINT.java
index 5bedf773f1..8f689d9731 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDINT.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDINT.java
@@ -56,6 +56,8 @@ public class PlcDINT extends PlcIECValue<Integer> {
             return new PlcDINT((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcDINT((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcDINT(((Number) value).intValue());
         } else {
             return new PlcDINT((String) value);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDWORD.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDWORD.java
index b3649f686c..94b973d37a 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDWORD.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDWORD.java
@@ -57,6 +57,8 @@ public class PlcDWORD extends PlcIECValue<Long> {
             return new PlcDWORD((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcDWORD((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcDWORD(((Number) value).longValue());
         } else {
             return new PlcDWORD((String) value);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcINT.java
index eafd49ba48..1286f40c0d 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcINT.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcINT.java
@@ -56,6 +56,8 @@ public class PlcINT extends PlcIECValue<Short> {
             return new PlcINT((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcINT((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcINT(((Number) value).intValue());
         } else {
             return new PlcINT((String) value);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLINT.java
index dcdea8c6de..1f787b7fe8 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLINT.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLINT.java
@@ -56,6 +56,8 @@ public class PlcLINT extends PlcIECValue<Long> {
             return new PlcLINT((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcLINT((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcLINT(((Number) value).intValue());
         } else {
             return new PlcLINT((String) value);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLREAL.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLREAL.java
index 23d6cc8f75..2938b02939 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLREAL.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLREAL.java
@@ -56,6 +56,8 @@ public class PlcLREAL extends PlcIECValue<Double> {
             return new PlcLREAL((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcLREAL((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcLREAL(((Number) value).doubleValue());
         } else {
             return new PlcLREAL((String) value);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java
index 60502992ce..2cecf53ac0 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java
@@ -28,9 +28,12 @@ import org.apache.plc4x.java.spi.codegen.WithOption;
 import org.apache.plc4x.java.spi.generation.SerializationException;
 import org.apache.plc4x.java.spi.generation.WriteBuffer;
 
+import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.nio.charset.StandardCharsets;
 import java.time.Duration;
+import java.time.Period;
+import java.time.format.DateTimeParseException;
 import java.time.temporal.ChronoUnit;
 
 @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className")
@@ -46,6 +49,19 @@ public class PlcLTIME extends PlcSimpleValue<Duration> {
         } else if(value instanceof BigInteger) {
             // TODO: Not 100% correct, we're loosing precision here
             return new PlcLTIME(Duration.of(((BigInteger) value).longValue(), ChronoUnit.NANOS));
+        } else if (value instanceof Number) {
+            return new PlcLTIME(((Number) value).longValue());
+        } else if (value instanceof String) {
+            try {
+                return new PlcLTIME(Duration.parse((String) value));
+            } catch (DateTimeParseException e) {
+                try {
+                    return new PlcLTIME(Period.parse((String) value).get(ChronoUnit.NANOS));
+                }catch (DateTimeParseException e1)
+                {
+                    return new PlcLTIME(new BigDecimal((String) value).longValue());
+                }
+            }
         }
         throw new PlcRuntimeException("Invalid value type");
     }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLWORD.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLWORD.java
index e4959ec3c9..c5c941853a 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLWORD.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLWORD.java
@@ -55,6 +55,8 @@ public class PlcLWORD extends PlcIECValue<BigInteger> {
             return new PlcLWORD((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcLWORD((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcLWORD(((Number) value).longValue());
         } else {
             return new PlcLWORD((String) value);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSINT.java
index 96c067d467..99842a9ae5 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSINT.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSINT.java
@@ -56,6 +56,8 @@ public class PlcSINT extends PlcIECValue<Byte> {
             return new PlcSINT((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcSINT((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcSINT(((Number) value).longValue());
         } else {
             return new PlcSINT((String) value);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java
index 23fb48004e..90482c3b9a 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java
@@ -28,8 +28,11 @@ import org.apache.plc4x.java.spi.codegen.WithOption;
 import org.apache.plc4x.java.spi.generation.SerializationException;
 import org.apache.plc4x.java.spi.generation.WriteBuffer;
 
+import java.math.BigDecimal;
 import java.nio.charset.StandardCharsets;
 import java.time.Duration;
+import java.time.Period;
+import java.time.format.DateTimeParseException;
 import java.time.temporal.ChronoUnit;
 
 @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className")
@@ -42,6 +45,19 @@ public class PlcTIME extends PlcSimpleValue<Duration> {
             return new PlcTIME(Duration.of((long) value, ChronoUnit.MILLIS));
         } else if (value instanceof Long) {
             return new PlcTIME(Duration.of((long) value, ChronoUnit.MILLIS));
+        } else if (value instanceof Number) {
+            return new PlcTIME(((Number) value).longValue());
+        } else if (value instanceof String) {
+            try {
+                return new PlcTIME(Duration.parse((String) value));
+            } catch (DateTimeParseException e) {
+                try {
+                    return new PlcTIME(Period.parse((String) value).get(ChronoUnit.MILLIS));
+                }catch (DateTimeParseException e1)
+                {
+                    return new PlcTIME(new BigDecimal((String) value).longValue());
+                }
+            }
         }
         throw new PlcRuntimeException("Invalid value type");
     }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java
index 17aae62d54..551d511b66 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java
@@ -29,7 +29,9 @@ import org.apache.plc4x.java.spi.generation.SerializationException;
 import org.apache.plc4x.java.spi.generation.WriteBuffer;
 
 import java.nio.charset.StandardCharsets;
+import java.time.Instant;
 import java.time.LocalTime;
+import java.time.ZoneId;
 
 @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className")
 public class PlcTIME_OF_DAY extends PlcSimpleValue<LocalTime> {
@@ -39,6 +41,8 @@ public class PlcTIME_OF_DAY extends PlcSimpleValue<LocalTime> {
             return new PlcTIME_OF_DAY((LocalTime) value);
         } else if(value instanceof Long) {
             return new PlcTIME_OF_DAY((Long) value);
+        } else if (value instanceof Number) {
+            return new PlcTIME_OF_DAY(((Number) value).longValue());
         }
         throw new PlcRuntimeException("Invalid value type");
     }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUDINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUDINT.java
index e93a1cc45f..2eb2ec45da 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUDINT.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUDINT.java
@@ -56,6 +56,8 @@ public class PlcUDINT extends PlcIECValue<Long> {
             return new PlcUDINT((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcUDINT((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcUDINT(((Number) value).longValue());
         } else {
             return new PlcUDINT((String) value);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUINT.java
index e1561e004f..6e43ca5732 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUINT.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUINT.java
@@ -56,6 +56,8 @@ public class PlcUINT extends PlcIECValue<Integer> {
             return new PlcUINT((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcUINT((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcUINT(((Number) value).longValue());
         } else {
             return new PlcUINT((String) value);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcULINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcULINT.java
index 8a951fb774..f24daba875 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcULINT.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcULINT.java
@@ -54,6 +54,8 @@ public class PlcULINT extends PlcIECValue<BigInteger> {
             return new PlcULINT((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcULINT((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcULINT(((Number) value).longValue());
         } else {
             return new PlcULINT((String) value);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUSINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUSINT.java
index 6a5a076e2a..ab4cf79e9d 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUSINT.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUSINT.java
@@ -56,6 +56,8 @@ public class PlcUSINT extends PlcIECValue<Short> {
             return new PlcUSINT((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcUSINT((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcUSINT(((Number) value).intValue());
         } else {
             return new PlcUSINT((String) value);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValueHandler.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValueHandler.java
index d1691f051b..1d22cc4352 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValueHandler.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValueHandler.java
@@ -18,17 +18,23 @@
  */
 package org.apache.plc4x.java.spi.values;
 
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.plc4x.java.api.exceptions.PlcInvalidTagException;
 import org.apache.plc4x.java.api.exceptions.PlcRuntimeException;
 import org.apache.plc4x.java.api.exceptions.PlcUnsupportedDataTypeException;
 import org.apache.plc4x.java.api.model.PlcTag;
 import org.apache.plc4x.java.api.value.PlcValue;
 
+import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.time.Duration;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
+import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 public class PlcValueHandler implements org.apache.plc4x.java.api.value.PlcValueHandler {
 
@@ -58,6 +64,15 @@ public class PlcValueHandler implements org.apache.plc4x.java.api.value.PlcValue
 
     public static PlcValue of(Object[] values) {
         if (values.length != 1) {
+            Object vo = ((Object[]) values)[0];
+            if (vo instanceof PlcCHAR) {
+                String v = Arrays.stream(values).map(Objects::toString).collect(Collectors.joining());
+                return PlcSTRING.of(v);
+            }
+            if (vo instanceof PlcWCHAR) {
+                String v = Arrays.stream(values).map(Objects::toString).collect(Collectors.joining());
+                return PlcSTRING.of(v);
+            }
             PlcList list = new PlcList();
             for (Object value : values) {
                 list.add(of(new Object[]{value}));
@@ -83,6 +98,16 @@ public class PlcValueHandler implements org.apache.plc4x.java.api.value.PlcValue
         if (value instanceof Long) {
             return PlcLINT.of(value);
         }
+        if (value instanceof BigInteger) {
+            try {
+                return new PlcLINT((BigInteger) value);
+            }catch (PlcInvalidTagException e) {
+                return new PlcULINT((BigInteger) value);
+            }
+        }
+        if (value instanceof BigDecimal) {
+            return new PlcLINT((BigDecimal) value);
+        }
         if (value instanceof Float) {
             return PlcREAL.of(value);
         }
@@ -116,13 +141,12 @@ public class PlcValueHandler implements org.apache.plc4x.java.api.value.PlcValue
         return of(tag, new Object[]{value});
     }
 
-
     public static PlcValue of(PlcTag tag, Object[] values) {
         if (values.length == 1) {
             Object value = values[0];
-            if(tag.getPlcValueType() == null) {
+            if (tag.getPlcValueType() == null) {
                 // TODO: This is a hacky shortcut ..
-                if(value instanceof PlcValue) {
+                if (value instanceof PlcValue) {
                     return (PlcValue) value;
                 }
                 return new PlcNull();
@@ -131,16 +155,14 @@ public class PlcValueHandler implements org.apache.plc4x.java.api.value.PlcValue
                 case BOOL:
                     return PlcBOOL.of(value);
                 case BYTE:
-                    if(value instanceof Short) {
-                        return new PlcBYTE((short) value);
-                    } else if(value instanceof Integer) {
-                        return new PlcBYTE(((Integer) value).shortValue());
-                    } else if(value instanceof Long) {
-                        return new PlcBYTE(((Long) value).shortValue());
-                    } else if(value instanceof BigInteger) {
-                        return new PlcBYTE(((BigInteger) value).shortValue());
+                    if (tag.getNumberOfElements() > 1) {
+                        if (value instanceof byte[]) {
+                            return of(tag, ArrayUtils.toObject((byte[]) value));
+                        } else if (value instanceof String && ((String) value).contains(",")) {
+                            return of(tag, stringToByteArray((String) value));
+                        }
                     }
-                    throw new PlcRuntimeException("BYTE requires short");
+                    return PlcBYTE.of(value);
                 case SINT:
                     return PlcSINT.of(value);
                 case USINT:
@@ -150,13 +172,13 @@ public class PlcValueHandler implements org.apache.plc4x.java.api.value.PlcValue
                 case UINT:
                     return PlcUINT.of(value);
                 case WORD:
-                    if(value instanceof Short) {
+                    if (value instanceof Short) {
                         return new PlcWORD((int) value);
-                    } else if(value instanceof Integer) {
+                    } else if (value instanceof Integer) {
                         return new PlcWORD((int) value);
-                    } else if(value instanceof Long) {
+                    } else if (value instanceof Long) {
                         return new PlcWORD(((Long) value).intValue());
-                    } else if(value instanceof BigInteger) {
+                    } else if (value instanceof BigInteger) {
                         return new PlcWORD(((BigInteger) value).intValue());
                     }
                     throw new PlcRuntimeException("WORD requires int");
@@ -165,13 +187,13 @@ public class PlcValueHandler implements org.apache.plc4x.java.api.value.PlcValue
                 case UDINT:
                     return PlcUDINT.of(value);
                 case DWORD:
-                    if(value instanceof Short) {
+                    if (value instanceof Short) {
                         return new PlcDWORD((long) value);
-                    } else if(value instanceof Integer) {
+                    } else if (value instanceof Integer) {
                         return new PlcDWORD((long) value);
-                    } else if(value instanceof Long) {
+                    } else if (value instanceof Long) {
                         return new PlcDWORD((long) value);
-                    } else if(value instanceof BigInteger) {
+                    } else if (value instanceof BigInteger) {
                         return new PlcDWORD(((BigInteger) value).longValue());
                     }
                     throw new PlcRuntimeException("DWORD requires long");
@@ -180,13 +202,13 @@ public class PlcValueHandler implements org.apache.plc4x.java.api.value.PlcValue
                 case ULINT:
                     return PlcULINT.of(value);
                 case LWORD:
-                    if(value instanceof Short) {
+                    if (value instanceof Short) {
                         return new PlcLWORD(BigInteger.valueOf((long) value));
-                    } else if(value instanceof Integer) {
+                    } else if (value instanceof Integer) {
                         return new PlcLWORD(BigInteger.valueOf((long) value));
-                    } else if(value instanceof Long) {
+                    } else if (value instanceof Long) {
                         return new PlcLWORD(BigInteger.valueOf((long) value));
-                    } else if(value instanceof BigInteger) {
+                    } else if (value instanceof BigInteger) {
                         return new PlcLWORD((BigInteger) value);
                     }
                     throw new PlcRuntimeException("LWORD requires BigInteger");
@@ -225,4 +247,15 @@ public class PlcValueHandler implements org.apache.plc4x.java.api.value.PlcValue
     public static PlcValue customDataType(Object[] values) {
         return of(values);
     }
+
+    private static byte[] stringToByteArray(String stringBytes) {
+        String[] byteValues = stringBytes.substring(1, stringBytes.length() - 1).split(",");
+        byte[] bytes = new byte[byteValues.length];
+
+        for (int i = 0, len = bytes.length; i < len; i++) {
+            int intvalue = Integer.parseInt(byteValues[i].trim());
+            bytes[i] = (byte) (intvalue & 0xff);
+        }
+        return bytes;
+    }
 }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWCHAR.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWCHAR.java
index 927cc2b348..9bfabd9e90 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWCHAR.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWCHAR.java
@@ -58,6 +58,8 @@ public class PlcWCHAR extends PlcIECValue<Integer> {
             return new PlcWCHAR((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcWCHAR((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcWCHAR(((Number) value).intValue());
         } else {
             return new PlcWCHAR((String) value);
         }
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWORD.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWORD.java
index dcebcb8e8d..b4ace8ebc0 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWORD.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWORD.java
@@ -57,6 +57,8 @@ public class PlcWORD extends PlcIECValue<Integer> {
             return new PlcWORD((BigInteger) value);
         } else if (value instanceof BigDecimal) {
             return new PlcWORD((BigDecimal) value);
+        } else if (value instanceof Number) {
+            return new PlcWORD(((Number) value).longValue());
         } else {
             return new PlcWORD((String) value);
         }
diff --git a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/Plc4xNettyWrapperTest.java b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/Plc4xNettyWrapperTest.java
index 3b360c3b91..4ac51ce8e9 100644
--- a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/Plc4xNettyWrapperTest.java
+++ b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/Plc4xNettyWrapperTest.java
@@ -90,8 +90,8 @@ class Plc4xNettyWrapperTest {
 
         Thread.sleep(750);
 
-        verify(false, false, false);
-        wrapper.decode(channelHandlerContext, new Date(), new ArrayList<>());
+        //verify(false, false, false);
+        //wrapper.decode(channelHandlerContext, new Date(), new ArrayList<>());
         verify(true, false, false);
 
     }
diff --git a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/optimizer/RequestTransactionManagerTest.java b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/optimizer/RequestTransactionManagerTest.java
index 186b358ce0..a8aabcc76d 100644
--- a/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/optimizer/RequestTransactionManagerTest.java
+++ b/plc4j/spi/src/test/java/org/apache/plc4x/java/spi/optimizer/RequestTransactionManagerTest.java
@@ -27,7 +27,7 @@ import org.slf4j.LoggerFactory;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.*;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class RequestTransactionManagerTest {
@@ -124,11 +124,10 @@ public class RequestTransactionManagerTest {
     }
 
     @Test
-    @Disabled("This test is randomly failing on Jenkins")
+    //@Disabled("This test is randomly failing on Jenkins")
     public void abortTransactionFromExternally() throws ExecutionException, InterruptedException {
         CompletableFuture<Void> sendRequest = new CompletableFuture<>();
         CompletableFuture<Void> receiveResponse = new CompletableFuture<>();
-        CompletableFuture<Void> transactionIsFinished = new CompletableFuture<>();
 
         RequestTransactionManager tm = new RequestTransactionManager();
         RequestTransactionManager.RequestTransaction handle = tm.startRequest();
@@ -136,10 +135,16 @@ public class RequestTransactionManagerTest {
             // ...
             sendRequest.complete(null);
             // Receive
-            receiveResponse.thenAccept((n) -> {
-                handle.endRequest();
-                transactionIsFinished.complete(null);
+            receiveResponse.whenComplete((n,e) -> {
+                // never execute
+                fail();
             });
+            //Wait that the fail is handled internally surely and then interrupt this block execute
+            try {
+                receiveResponse.get();
+            } catch (Exception e) {
+                assertInstanceOf(InterruptedException.class,e);
+            }
         });
 
         // Assert that there is a request going on
@@ -149,13 +154,14 @@ public class RequestTransactionManagerTest {
         handle.failRequest(new RuntimeException());
 
         // Wait that the fail is handled internally surely
-        Thread.sleep(100);
+        //Thread.sleep(100);
 
         // Assert that no requests are active
         assertEquals(0, tm.getNumberOfActiveRequests());
 
         // Assert that its cancelled
         assertTrue(handle.getCompletionFuture().isCancelled());
+        assertFalse(receiveResponse.isDone());
     }
 
     private void sendRequest(RequestTransactionManager tm, CompletableFuture<Void> sendRequest, CompletableFuture<Void> endRequest, CompletableFuture<Void> requestIsEnded) {
diff --git a/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/CachedPlcConnectionManager.java b/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/CachedPlcConnectionManager.java
index 650d976c85..ae30a14d4c 100644
--- a/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/CachedPlcConnectionManager.java
+++ b/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/CachedPlcConnectionManager.java
@@ -21,6 +21,7 @@ package org.apache.plc4x.java.utils.cache;
 import org.apache.plc4x.java.DefaultPlcDriverManager;
 import org.apache.plc4x.java.api.PlcConnection;
 import org.apache.plc4x.java.api.PlcConnectionManager;
+import org.apache.plc4x.java.api.PlcDriverManager;
 import org.apache.plc4x.java.api.authentication.PlcAuthentication;
 import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
 import org.slf4j.Logger;
@@ -58,17 +59,26 @@ public class CachedPlcConnectionManager implements PlcConnectionManager {
         this.connectionContainers = new HashMap<>();
     }
 
+    @Override
     public PlcConnection getConnection(String url) throws PlcConnectionException {
+        return getConnection(url,null);
+    }
+
+    @Override
+    public PlcConnection getConnection(String url, PlcAuthentication authentication) throws PlcConnectionException {
         ConnectionContainer connectionContainer;
         synchronized (connectionContainers) {
             connectionContainer = connectionContainers.get(url);
-            if (connectionContainers.get(url) == null) {
+            if (connectionContainer == null) {
                 LOG.debug("Creating new connection");
 
                 // Establish the real connection to the plc
-                PlcConnection connection = connectionManager.getConnection(url);
-
-                // Crate a connection container to manage handling this connection
+                PlcConnection connection;
+                if(authentication!=null) {
+                    connection = connectionManager.getConnection(url,authentication);
+                } else{
+                    connection = connectionManager.getConnection(url);
+                }
                 connectionContainer = new ConnectionContainer(connection, maxLeaseTime);
                 connectionContainers.put(url, connectionContainer);
             } else {
@@ -85,8 +95,9 @@ public class CachedPlcConnectionManager implements PlcConnectionManager {
         }
     }
 
-    public PlcConnection getConnection(String url, PlcAuthentication authentication) throws PlcConnectionException {
-        throw new PlcConnectionException("the cached driver manager currently doesn't support authentication");
+    @Override
+    public PlcDriverManager getDriverManager() {
+        return connectionManager.getDriverManager();
     }
 
     public static class Builder {
diff --git a/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/LeasedPlcConnection.java b/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/LeasedPlcConnection.java
index 662dd294c4..7dcbd42d64 100644
--- a/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/LeasedPlcConnection.java
+++ b/plc4j/tools/connection-cache/src/main/java/org/apache/plc4x/java/utils/cache/LeasedPlcConnection.java
@@ -34,13 +34,13 @@ import java.util.concurrent.CompletableFuture;
 
 public class LeasedPlcConnection implements PlcConnection {
 
-    private final ConnectionContainer connectionContainer;
+    private ConnectionContainer connectionContainer;
     private PlcConnection connection;
-
+    private Timer usageTimer;
     public LeasedPlcConnection(ConnectionContainer connectionContainer, PlcConnection connection, Duration maxUseTime) {
         this.connectionContainer = connectionContainer;
         this.connection = connection;
-        Timer usageTimer = new Timer();
+        usageTimer = new Timer();
         usageTimer.schedule(new TimerTask() {
             @Override
             public void run() {
@@ -51,11 +51,18 @@ public class LeasedPlcConnection implements PlcConnection {
 
     @Override
     public synchronized void close() {
-        // Make the connection unusable.
-        connection = null;
-
+        if(usageTimer != null){
+            usageTimer.cancel();
+            usageTimer = null;
+        }
+        if(connectionContainer == null) {
+            return;
+        }
         // Tell the connection container that the connection is free to be reused.
         connectionContainer.returnConnection(this);
+        // Make the connection unusable.
+        connection = null;
+        connectionContainer = null;
     }
 
     @Override
diff --git a/plc4j/tools/plc4x-server/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java b/plc4j/tools/plc4x-server/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java
index 6d856ea448..07c90775b6 100644
--- a/plc4j/tools/plc4x-server/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java
+++ b/plc4j/tools/plc4x-server/src/main/generated/org/apache/plc4x/java/plc4x/readwrite/Plc4xValue.java
@@ -158,6 +158,24 @@ public class Plc4xValue {
       String value = /*TODO: migrate me*/ /*TODO: migrate me*/
           readBuffer.readString("", 16, WithOption.WithEncoding("UTF-16"));
 
+      return new PlcSTRING(value);
+    } else if (EvaluationHelper.equals(valueType, Plc4xValueType.STRING)) { // STRING
+
+      // Manual Field (value)
+      String value =
+          (String)
+              (org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.parseString(
+                  readBuffer, "UTF-8"));
+
+      return new PlcSTRING(value);
+    } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WSTRING)) { // STRING
+
+      // Manual Field (value)
+      String value =
+          (String)
+              (org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.parseString(
+                  readBuffer, "UTF-16"));
+
       return new PlcSTRING(value);
     } else if (EvaluationHelper.equals(valueType, Plc4xValueType.TIME)) { // TIME
 
@@ -325,6 +343,14 @@ public class Plc4xValue {
       /*TODO: migrate me*/
       /*TODO: migrate me*/ writeBuffer.writeString(
           "", 16, (String) (value), WithOption.WithEncoding("UTF-16"));
+    } else if (EvaluationHelper.equals(valueType, Plc4xValueType.STRING)) { // STRING
+      // Manual Field (value)
+      org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.serializeString(
+          writeBuffer, _value, "UTF-8");
+    } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WSTRING)) { // STRING
+      // Manual Field (value)
+      org.apache.plc4x.java.plc4x.readwrite.utils.StaticHelper.serializeString(
+          writeBuffer, _value, "UTF-16");
     } else if (EvaluationHelper.equals(valueType, Plc4xValueType.TIME)) { // TIME
       // Simple Field (milliseconds)
       long milliseconds = (long) _value.getLong();
@@ -436,6 +462,12 @@ public class Plc4xValue {
     } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WCHAR)) { // STRING
       // Simple Field (value)
       sizeInBits += 16;
+    } else if (EvaluationHelper.equals(valueType, Plc4xValueType.STRING)) { // STRING
+      // Manual Field (value)
+      sizeInBits += (((STR_LEN(_value)) + (1))) * (8);
+    } else if (EvaluationHelper.equals(valueType, Plc4xValueType.WSTRING)) { // STRING
+      // Manual Field (value)
+      sizeInBits += (((STR_LEN(_value)) + (1))) * (16);
     } else if (EvaluationHelper.equals(valueType, Plc4xValueType.TIME)) { // TIME
       // Simple Field (milliseconds)
       sizeInBits += 32;
diff --git a/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/plc4x/readwrite/utils/StaticHelper.java b/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/plc4x/readwrite/utils/StaticHelper.java
new file mode 100644
index 0000000000..6ef16fd01c
--- /dev/null
+++ b/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/plc4x/readwrite/utils/StaticHelper.java
@@ -0,0 +1,94 @@
+/*
+ * 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
+ *
+ *   https://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.plc4x.readwrite.utils;
+
+import org.apache.plc4x.java.api.exceptions.PlcRuntimeException;
+import org.apache.plc4x.java.api.value.PlcValue;
+import org.apache.plc4x.java.spi.generation.ParseException;
+import org.apache.plc4x.java.spi.generation.ReadBuffer;
+import org.apache.plc4x.java.spi.generation.SerializationException;
+import org.apache.plc4x.java.spi.generation.WriteBuffer;
+
+import java.nio.charset.StandardCharsets;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class StaticHelper {
+
+    public static String parseString(ReadBuffer io,  String encoding) {
+        try {
+            if ("UTF-8".equalsIgnoreCase(encoding)) {
+                // This is the maximum number of bytes a string can be long.
+                short stringLength = io.readUnsignedShort(8);
+                // This is the total length of the string on the PLC (Not necessarily the number of characters read)
+                final byte[] byteArray = new byte[stringLength];
+                for (int i = 0; (i < stringLength) && io.hasMore(8); i++) {
+                    final byte curByte = io.readByte();
+                    byteArray[i] = curByte;
+                }
+                return new String(byteArray, StandardCharsets.UTF_8);
+            } else if ("UTF-16".equalsIgnoreCase(encoding)) {
+                // This is the maximum number of bytes a string can be long.
+                int stringLength = io.readUnsignedInt(16);
+                final byte[] byteArray = new byte[stringLength * 2];
+                for (int i = 0; (i < stringLength) && io.hasMore(16); i++) {
+                    final short curShort = io.readShort(16);
+                    byteArray[i * 2] = (byte) (curShort >>> 8);
+                    byteArray[(i * 2) + 1] = (byte) (curShort & 0xFF);
+                }
+                return new String(byteArray, StandardCharsets.UTF_16);
+            } else {
+                throw new PlcRuntimeException("Unsupported string encoding " + encoding);
+            }
+        } catch (ParseException e) {
+            throw new PlcRuntimeException("Error parsing string", e);
+        }
+    }
+    public static void serializeString(WriteBuffer io, PlcValue value, String encoding) {
+        String valueString = value.getString();
+        valueString = valueString == null ? "" : valueString;
+
+        if ("UTF-8".equalsIgnoreCase(encoding)) {
+            final byte[] raw = valueString.getBytes(StandardCharsets.UTF_8);
+            try {
+                io.writeByte((byte) raw.length);
+                for (byte b : raw) {
+                    io.writeByte(b);
+                }
+            }
+            catch (SerializationException ex) {
+                Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex);
+            }
+        } else if ("UTF-16".equalsIgnoreCase(encoding)) {
+            final byte[] raw = valueString.getBytes(StandardCharsets.UTF_16);
+            try {
+                io.writeUnsignedInt(16, raw.length);
+                for (int i = 0; i < raw.length; i++) {
+                    io.writeByte( raw[i]);
+                }
+            }
+            catch (SerializationException ex) {
+                Logger.getLogger(StaticHelper.class.getName()).log(Level.SEVERE, null, ex);
+            }
+        } else {
+            throw new PlcRuntimeException("Unsupported string encoding " + encoding);
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/tools/plc4xserver/protocol/Plc4xServerAdapter.java b/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/tools/plc4xserver/protocol/Plc4xServerAdapter.java
index 7194b24ffc..f410a2f9c9 100644
--- a/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/tools/plc4xserver/protocol/Plc4xServerAdapter.java
+++ b/plc4j/tools/plc4x-server/src/main/java/org/apache/plc4x/java/tools/plc4xserver/protocol/Plc4xServerAdapter.java
@@ -57,7 +57,8 @@ public class Plc4xServerAdapter extends ChannelInboundHandlerAdapter {
     public void channelRead(ChannelHandlerContext ctx, Object msg) {
         if (msg instanceof Plc4xMessage) {
             final Plc4xMessage plc4xMessage = (Plc4xMessage) msg;
-            switch (plc4xMessage.getRequestType()) {
+            Plc4xRequestType plc4xRequestType = plc4xMessage.getRequestType();
+            switch (plc4xRequestType) {
                 case CONNECT_REQUEST: {
                     Plc4xConnectRequest request = (Plc4xConnectRequest) plc4xMessage;
                     try (final PlcConnection ignored = connectionManager.getConnection(request.getConnectionString())) {
@@ -169,6 +170,8 @@ public class Plc4xServerAdapter extends ChannelInboundHandlerAdapter {
                         ctx.writeAndFlush(response);
                     }
                     break;
+                default:
+                    logger.error("Error executing plc4xRequestType: {}", plc4xRequestType);
             }
         }
     }
diff --git a/plc4j/transports/pom.xml b/plc4j/transports/pom.xml
index 04a8ddfb94..60fe78f266 100644
--- a/plc4j/transports/pom.xml
+++ b/plc4j/transports/pom.xml
@@ -45,5 +45,19 @@
     <module>virtualcan</module>
     <module>test</module>
   </modules>
-
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <SPI-Provider>
+              *
+            </SPI-Provider>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>
\ No newline at end of file
diff --git a/plc4j/utils/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/s7/protocol/S7Step7ServerAdapter.java b/plc4j/utils/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/s7/protocol/S7Step7ServerAdapter.java
index 1fc1bedf39..efb79bc962 100644
--- a/plc4j/utils/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/s7/protocol/S7Step7ServerAdapter.java
+++ b/plc4j/utils/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/s7/protocol/S7Step7ServerAdapter.java
@@ -100,11 +100,11 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
 
                     // Prepare a response and send it back to the remote.
                     List<COTPParameter> parameters = new ArrayList<>();
-                    parameters.add(new COTPParameterCalledTsap(remoteTsapId, (short) 0));
-                    parameters.add(new COTPParameterCallingTsap(localTsapId, (short) 0));
-                    parameters.add(new COTPParameterTpduSize(tpduSize, (short) 0));
+                    parameters.add(new COTPParameterCalledTsap(remoteTsapId));
+                    parameters.add(new COTPParameterCallingTsap(localTsapId));
+                    parameters.add(new COTPParameterTpduSize(tpduSize));
                     COTPPacketConnectionResponse response = new COTPPacketConnectionResponse(
-                        parameters, null, remoteReference, localReference, protocolClass, 0
+                        parameters, null, remoteReference, localReference, protocolClass
                     );
                     ctx.writeAndFlush(new TPKTPacket(response));
 
@@ -143,7 +143,7 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
                     // TODO should send S7MessageResponseData
                     S7MessageResponseData s7MessageResponse = new S7MessageResponseData(
                         s7TpduReference, s7ParameterSetupCommunicationResponse, null, (short) 0, (short) 0);
-                    ctx.writeAndFlush(new TPKTPacket(new COTPPacketData(null, s7MessageResponse, true, cotpTpduRef, 0)));
+                    ctx.writeAndFlush(new TPKTPacket(new COTPPacketData(null, s7MessageResponse, true, cotpTpduRef)));
 
                     state = State.S7_CONNECTED;
                     break;
@@ -204,11 +204,11 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
                                                 List<S7PayloadUserDataItem> responsePayloadItems = new ArrayList<>();
                                                 responsePayloadItems.add(readSzlResponsePayload);
                                                 S7PayloadUserData responsePayloadUserData =
-                                                    new S7PayloadUserData(responsePayloadItems, null);
+                                                    new S7PayloadUserData(responsePayloadItems);
 
                                                 S7Message s7ResponseMessage = new S7MessageUserData(s7TpduReference,
                                                     responseParameterUserData, responsePayloadUserData);
-                                                ctx.writeAndFlush(new TPKTPacket(new COTPPacketData(null, s7ResponseMessage, true, cotpTpduRef, 0)));
+                                                ctx.writeAndFlush(new TPKTPacket(new COTPPacketData(null, s7ResponseMessage, true, cotpTpduRef)));
                                             } else {
                                                 LOGGER.error("Not able to respond to the given request Read SZL with SZL type class " +
                                                     szlId.getTypeClass().name() + " and SZL sublist " + szlId.getSublistList().name());
@@ -254,7 +254,7 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
                                                     final byte bitAddress = addressAny.getBitAddress();
                                                     switch (addressAny.getTransportSize()) {
                                                         case BOOL:
-                                                            payloadItems.add(new S7VarPayloadDataItem(DataTransportErrorCode.OK, DataTransportSize.BIT, new byte[]{1} , true));
+                                                            payloadItems.add(new S7VarPayloadDataItem(DataTransportErrorCode.OK, DataTransportSize.BIT, new byte[]{1}));
                                                             break;
                                                         case INT:
                                                         case UINT: {
@@ -264,7 +264,7 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
                                                             byte[] data = new byte[2];
                                                             data[1] = (byte) (shortValue & 0xff);
                                                             data[0] = (byte) ((shortValue >> 8) & 0xff);
-                                                            payloadItems.add(new S7VarPayloadDataItem(DataTransportErrorCode.OK, DataTransportSize.BYTE_WORD_DWORD, data , true));
+                                                            payloadItems.add(new S7VarPayloadDataItem(DataTransportErrorCode.OK, DataTransportSize.BYTE_WORD_DWORD, data));
                                                             break;
                                                         }
                                                         default: {
@@ -280,7 +280,7 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
                                                         addressAny.getNumberOfElements() : addressAny.getTransportSize().getSizeInBytes() * 8;
                                                     final BitSet bitSet = toBitSet(context.getDigitalInputs(), ioNumber, numElements);
                                                     final byte[] data = Arrays.copyOf(bitSet.toByteArray(), (numElements + 7) / 8);
-                                                    payloadItems.add(new S7VarPayloadDataItem(DataTransportErrorCode.OK, DataTransportSize.BYTE_WORD_DWORD, data , true));
+                                                    payloadItems.add(new S7VarPayloadDataItem(DataTransportErrorCode.OK, DataTransportSize.BYTE_WORD_DWORD, data));
                                                     break;
                                                 }
                                             }
@@ -288,10 +288,10 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
                                     }
                                 }
                                 S7ParameterReadVarResponse readVarResponseParameter = new S7ParameterReadVarResponse((short) items.size());
-                                S7PayloadReadVarResponse readVarResponsePayload = new S7PayloadReadVarResponse(payloadItems, null);
+                                S7PayloadReadVarResponse readVarResponsePayload = new S7PayloadReadVarResponse(payloadItems);
                                 S7MessageResponseData response = new S7MessageResponseData(request.getTpduReference(),
                                     readVarResponseParameter, readVarResponsePayload, (short) 0x00, (short) 0x00);
-                                ctx.writeAndFlush(new TPKTPacket(new COTPPacketData(null, response, true, cotpTpduRef, 0)));
+                                ctx.writeAndFlush(new TPKTPacket(new COTPPacketData(null, response, true, cotpTpduRef)));
                             } else if (request.getParameter() instanceof S7ParameterWriteVarRequest) {
                                 S7ParameterWriteVarRequest writeVarRequestParameter =
                                     (S7ParameterWriteVarRequest) request.getParameter();
diff --git a/pom.xml b/pom.xml
index cb1e177863..55477ffa75 100644
--- a/pom.xml
+++ b/pom.xml
@@ -107,7 +107,7 @@
     <awaitility.version>4.2.0</awaitility.version>
     <!-- The currently available version is 2.0.5 and anything above 1.4.3 is no longer compatible with our code -->
     <bit-io.version>1.4.3</bit-io.version>
-    <bouncycastle.version>1.70</bouncycastle.version>
+    <bouncycastle.version>1.71</bouncycastle.version>
     <byte-buddy.version>1.12.22</byte-buddy.version>
     <!-- Be sure to keep this version set to the version of the cmake-maven-plugin -->
     <cmake-version>3.22.1</cmake-version>
@@ -475,17 +475,17 @@
 
       <dependency>
         <groupId>org.bouncycastle</groupId>
-        <artifactId>bcmail-jdk15on</artifactId>
+        <artifactId>bcmail-jdk18on</artifactId>
         <version>${bouncycastle.version}</version>
       </dependency>
       <dependency>
         <groupId>org.bouncycastle</groupId>
-        <artifactId>bcpkix-jdk15on</artifactId>
+        <artifactId>bcpkix-jdk18on</artifactId>
         <version>${bouncycastle.version}</version>
       </dependency>
       <dependency>
         <groupId>org.bouncycastle</groupId>
-        <artifactId>bcprov-jdk15on</artifactId>
+        <artifactId>bcprov-jdk18on</artifactId>
         <version>${bouncycastle.version}</version>
       </dependency>
 
@@ -509,6 +509,16 @@
         <groupId>org.eclipse.milo</groupId>
         <artifactId>stack-core</artifactId>
         <version>${milo.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcprov-jdk15on</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcpkix-jdk15on</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.eclipse.milo</groupId>
diff --git a/protocols/opcua/downloads/Opc.Ua.NodeIds.Services.csv b/protocols/opcua/downloads/Opc.Ua.NodeIds.Services.csv
new file mode 100644
index 0000000000..c98a20b083
--- /dev/null
+++ b/protocols/opcua/downloads/Opc.Ua.NodeIds.Services.csv
@@ -0,0 +1,1749 @@
+AccessLevelExType,15406,DataType
+AccessLevelType,15031,DataType
+AccessRestrictionType,95,DataType
+AcknowledgeableConditionType,2881,ObjectType
+ActivateSessionRequest,465,DataType
+ActivateSessionRequest_Encoding_DefaultBinary,467,Object
+ActivateSessionRequest_Encoding_DefaultJson,15145,Object
+ActivateSessionRequest_Encoding_DefaultXml,466,Object
+ActivateSessionResponse,468,DataType
+ActivateSessionResponse_Encoding_DefaultBinary,470,Object
+ActivateSessionResponse_Encoding_DefaultJson,15146,Object
+ActivateSessionResponse_Encoding_DefaultXml,469,Object
+AdditionalParametersType,16313,DataType
+AdditionalParametersType_Encoding_DefaultBinary,17537,Object
+AdditionalParametersType_Encoding_DefaultJson,17547,Object
+AdditionalParametersType_Encoding_DefaultXml,17541,Object
+AddNodesItem,376,DataType
+AddNodesItem_Encoding_DefaultBinary,378,Object
+AddNodesItem_Encoding_DefaultJson,15165,Object
+AddNodesItem_Encoding_DefaultXml,377,Object
+AddNodesRequest,486,DataType
+AddNodesRequest_Encoding_DefaultBinary,488,Object
+AddNodesRequest_Encoding_DefaultJson,15167,Object
+AddNodesRequest_Encoding_DefaultXml,487,Object
+AddNodesResponse,489,DataType
+AddNodesResponse_Encoding_DefaultBinary,491,Object
+AddNodesResponse_Encoding_DefaultJson,15168,Object
+AddNodesResponse_Encoding_DefaultXml,490,Object
+AddNodesResult,483,DataType
+AddNodesResult_Encoding_DefaultBinary,485,Object
+AddNodesResult_Encoding_DefaultJson,15166,Object
+AddNodesResult_Encoding_DefaultXml,484,Object
+AddReferencesItem,379,DataType
+AddReferencesItem_Encoding_DefaultBinary,381,Object
+AddReferencesItem_Encoding_DefaultJson,15169,Object
+AddReferencesItem_Encoding_DefaultXml,380,Object
+AddReferencesRequest,492,DataType
+AddReferencesRequest_Encoding_DefaultBinary,494,Object
+AddReferencesRequest_Encoding_DefaultJson,15170,Object
+AddReferencesRequest_Encoding_DefaultXml,493,Object
+AddReferencesResponse,495,DataType
+AddReferencesResponse_Encoding_DefaultBinary,497,Object
+AddReferencesResponse_Encoding_DefaultJson,15171,Object
+AddReferencesResponse_Encoding_DefaultXml,496,Object
+AddressSpaceFileType,11595,ObjectType
+AggregateConfiguration,948,DataType
+AggregateConfiguration_Encoding_DefaultBinary,950,Object
+AggregateConfiguration_Encoding_DefaultJson,15304,Object
+AggregateConfiguration_Encoding_DefaultXml,949,Object
+AggregateConfigurationType,11187,ObjectType
+AggregateFilter,728,DataType
+AggregateFilter_Encoding_DefaultBinary,730,Object
+AggregateFilter_Encoding_DefaultJson,15312,Object
+AggregateFilter_Encoding_DefaultXml,729,Object
+AggregateFilterResult,737,DataType
+AggregateFilterResult_Encoding_DefaultBinary,739,Object
+AggregateFilterResult_Encoding_DefaultJson,15315,Object
+AggregateFilterResult_Encoding_DefaultXml,738,Object
+AggregateFunction_AnnotationCount,2351,Object
+AggregateFunction_Average,2342,Object
+AggregateFunction_Count,2352,Object
+AggregateFunction_Delta,2359,Object
+AggregateFunction_DeltaBounds,11507,Object
+AggregateFunction_DurationBad,2361,Object
+AggregateFunction_DurationGood,2360,Object
+AggregateFunction_DurationInStateNonZero,11308,Object
+AggregateFunction_DurationInStateZero,11307,Object
+AggregateFunction_End,2358,Object
+AggregateFunction_EndBound,11506,Object
+AggregateFunction_Interpolative,2341,Object
+AggregateFunction_Maximum,2347,Object
+AggregateFunction_Maximum2,11287,Object
+AggregateFunction_MaximumActualTime,2349,Object
+AggregateFunction_MaximumActualTime2,11306,Object
+AggregateFunction_Minimum,2346,Object
+AggregateFunction_Minimum2,11286,Object
+AggregateFunction_MinimumActualTime,2348,Object
+AggregateFunction_MinimumActualTime2,11305,Object
+AggregateFunction_NumberOfTransitions,2355,Object
+AggregateFunction_PercentBad,2363,Object
+AggregateFunction_PercentGood,2362,Object
+AggregateFunction_Range,2350,Object
+AggregateFunction_Range2,11288,Object
+AggregateFunction_StandardDeviationPopulation,11427,Object
+AggregateFunction_StandardDeviationSample,11426,Object
+AggregateFunction_Start,2357,Object
+AggregateFunction_StartBound,11505,Object
+AggregateFunction_TimeAverage,2343,Object
+AggregateFunction_TimeAverage2,11285,Object
+AggregateFunction_Total,2344,Object
+AggregateFunction_Total2,11304,Object
+AggregateFunction_VariancePopulation,11429,Object
+AggregateFunction_VarianceSample,11428,Object
+AggregateFunction_WorstQuality,2364,Object
+AggregateFunction_WorstQuality2,11292,Object
+AggregateFunctionType,2340,ObjectType
+Aggregates,44,ReferenceType
+AlarmConditionType,2915,ObjectType
+AlarmGroupMember,16362,ReferenceType
+AlarmGroupType,16405,ObjectType
+AlarmMetricsType,17279,ObjectType
+AlarmRateVariableType,17277,VariableType
+Aliases,23470,Object
+AliasFor,23469,ReferenceType
+AliasNameCategoryType,23456,ObjectType
+AliasNameDataType,23468,DataType
+AliasNameDataType_Encoding_DefaultBinary,23499,Object
+AliasNameDataType_Encoding_DefaultJson,23511,Object
+AliasNameDataType_Encoding_DefaultXml,23505,Object
+AliasNameType,23455,ObjectType
+AllowNulls,3070,Variable
+AlwaysGeneratesEvent,3065,ReferenceType
+AnalogItemType,2368,VariableType
+AnalogUnitRangeType,17570,VariableType
+AnalogUnitType,17497,VariableType
+Annotation,891,DataType
+Annotation_Encoding_DefaultBinary,893,Object
+Annotation_Encoding_DefaultJson,15382,Object
+Annotation_Encoding_DefaultXml,892,Object
+Annotations,11214,Variable
+AnonymousIdentityToken,319,DataType
+AnonymousIdentityToken_Encoding_DefaultBinary,321,Object
+AnonymousIdentityToken_Encoding_DefaultJson,15141,Object
+AnonymousIdentityToken_Encoding_DefaultXml,320,Object
+ApplicationCertificateType,12557,ObjectType
+ApplicationDescription,308,DataType
+ApplicationDescription_Encoding_DefaultBinary,310,Object
+ApplicationDescription_Encoding_DefaultJson,15087,Object
+ApplicationDescription_Encoding_DefaultXml,309,Object
+ApplicationInstanceCertificate,311,DataType
+ApplicationType,307,DataType
+Argument,296,DataType
+Argument_Encoding_DefaultBinary,298,Object
+Argument_Encoding_DefaultJson,15081,Object
+Argument_Encoding_DefaultXml,297,Object
+ArrayItemType,12021,VariableType
+AttributeOperand,598,DataType
+AttributeOperand_Encoding_DefaultBinary,600,Object
+AttributeOperand_Encoding_DefaultJson,15209,Object
+AttributeOperand_Encoding_DefaultXml,599,Object
+AttributeWriteMask,347,DataType
+AudioDataType,16307,DataType
+AudioVariableType,17986,VariableType
+AuditActivateSessionEventType,2075,ObjectType
+AuditAddNodesEventType,2091,ObjectType
+AuditAddReferencesEventType,2095,ObjectType
+AuditCancelEventType,2078,ObjectType
+AuditCertificateDataMismatchEventType,2082,ObjectType
+AuditCertificateEventType,2080,ObjectType
+AuditCertificateExpiredEventType,2085,ObjectType
+AuditCertificateInvalidEventType,2086,ObjectType
+AuditCertificateMismatchEventType,2089,ObjectType
+AuditCertificateRevokedEventType,2088,ObjectType
+AuditCertificateUntrustedEventType,2087,ObjectType
+AuditChannelEventType,2059,ObjectType
+AuditConditionAcknowledgeEventType,8944,ObjectType
+AuditConditionCommentEventType,2829,ObjectType
+AuditConditionConfirmEventType,8961,ObjectType
+AuditConditionEnableEventType,2803,ObjectType
+AuditConditionEventType,2790,ObjectType
+AuditConditionOutOfServiceEventType,17259,ObjectType
+AuditConditionResetEventType,15013,ObjectType
+AuditConditionRespondEventType,8927,ObjectType
+AuditConditionShelvingEventType,11093,ObjectType
+AuditConditionSilenceEventType,17242,ObjectType
+AuditConditionSuppressionEventType,17225,ObjectType
+AuditCreateSessionEventType,2071,ObjectType
+AuditDeleteNodesEventType,2093,ObjectType
+AuditDeleteReferencesEventType,2097,ObjectType
+AuditEventType,2052,ObjectType
+AuditHistoryAnnotationUpdateEventType,19095,ObjectType
+AuditHistoryAtTimeDeleteEventType,3019,ObjectType
+AuditHistoryDeleteEventType,3012,ObjectType
+AuditHistoryEventDeleteEventType,3022,ObjectType
+AuditHistoryEventUpdateEventType,2999,ObjectType
+AuditHistoryRawModifyDeleteEventType,3014,ObjectType
+AuditHistoryUpdateEventType,2104,ObjectType
+AuditHistoryValueUpdateEventType,3006,ObjectType
+AuditNodeManagementEventType,2090,ObjectType
+AuditOpenSecureChannelEventType,2060,ObjectType
+AuditProgramTransitionEventType,11856,ObjectType
+AuditSecurityEventType,2058,ObjectType
+AuditSessionEventType,2069,ObjectType
+AuditUpdateEventType,2099,ObjectType
+AuditUpdateMethodEventType,2127,ObjectType
+AuditUpdateStateEventType,2315,ObjectType
+AuditUrlMismatchEventType,2748,ObjectType
+AuditWriteUpdateEventType,2100,ObjectType
+AuthorizationServiceConfigurationType,17852,ObjectType
+AuthorizationServices,17732,Object
+AuthorizationServicesConfigurationFolderType,23556,ObjectType
+AxisInformation,12079,DataType
+AxisInformation_Encoding_DefaultBinary,12089,Object
+AxisInformation_Encoding_DefaultJson,15379,Object
+AxisInformation_Encoding_DefaultXml,12081,Object
+AxisScaleEnumeration,12077,DataType
+BaseAnalogType,15318,VariableType
+BaseConditionClassType,11163,ObjectType
+BaseDataType,24,DataType
+BaseDataVariableType,63,VariableType
+BaseEventType,2041,ObjectType
+BaseInterfaceType,17602,ObjectType
+BaseModelChangeEventType,2132,ObjectType
+BaseObjectType,58,ObjectType
+BaseVariableType,62,VariableType
+BitFieldMaskDataType,11737,DataType
+Boolean,1,DataType
+BrokerConnectionTransportDataType,15007,DataType
+BrokerConnectionTransportDataType_Encoding_DefaultBinary,15479,Object
+BrokerConnectionTransportDataType_Encoding_DefaultJson,15726,Object
+BrokerConnectionTransportDataType_Encoding_DefaultXml,15579,Object
+BrokerConnectionTransportType,15155,ObjectType
+BrokerDataSetReaderTransportDataType,15670,DataType
+BrokerDataSetReaderTransportDataType_Encoding_DefaultBinary,15733,Object
+BrokerDataSetReaderTransportDataType_Encoding_DefaultJson,16526,Object
+BrokerDataSetReaderTransportDataType_Encoding_DefaultXml,16023,Object
+BrokerDataSetReaderTransportType,21142,ObjectType
+BrokerDataSetWriterTransportDataType,15669,DataType
+BrokerDataSetWriterTransportDataType_Encoding_DefaultBinary,15729,Object
+BrokerDataSetWriterTransportDataType_Encoding_DefaultJson,16525,Object
+BrokerDataSetWriterTransportDataType_Encoding_DefaultXml,16022,Object
+BrokerDataSetWriterTransportType,21138,ObjectType
+BrokerTransportQualityOfService,15008,DataType
+BrokerWriterGroupTransportDataType,15667,DataType
+BrokerWriterGroupTransportDataType_Encoding_DefaultBinary,15727,Object
+BrokerWriterGroupTransportDataType_Encoding_DefaultJson,16524,Object
+BrokerWriterGroupTransportDataType_Encoding_DefaultXml,16021,Object
+BrokerWriterGroupTransportType,21136,ObjectType
+BrowseDescription,514,DataType
+BrowseDescription_Encoding_DefaultBinary,516,Object
+BrowseDescription_Encoding_DefaultJson,15180,Object
+BrowseDescription_Encoding_DefaultXml,515,Object
+BrowseDirection,510,DataType
+BrowseNextRequest,531,DataType
+BrowseNextRequest_Encoding_DefaultBinary,533,Object
+BrowseNextRequest_Encoding_DefaultJson,15186,Object
+BrowseNextRequest_Encoding_DefaultXml,532,Object
+BrowseNextResponse,534,DataType
+BrowseNextResponse_Encoding_DefaultBinary,536,Object
+BrowseNextResponse_Encoding_DefaultJson,15187,Object
+BrowseNextResponse_Encoding_DefaultXml,535,Object
+BrowsePath,543,DataType
+BrowsePath_Encoding_DefaultBinary,545,Object
+BrowsePath_Encoding_DefaultJson,15190,Object
+BrowsePath_Encoding_DefaultXml,544,Object
+BrowsePathResult,549,DataType
+BrowsePathResult_Encoding_DefaultBinary,551,Object
+BrowsePathResult_Encoding_DefaultJson,15192,Object
+BrowsePathResult_Encoding_DefaultXml,550,Object
+BrowsePathTarget,546,DataType
+BrowsePathTarget_Encoding_DefaultBinary,548,Object
+BrowsePathTarget_Encoding_DefaultJson,15191,Object
+BrowsePathTarget_Encoding_DefaultXml,547,Object
+BrowseRequest,525,DataType
+BrowseRequest_Encoding_DefaultBinary,527,Object
+BrowseRequest_Encoding_DefaultJson,15184,Object
+BrowseRequest_Encoding_DefaultXml,526,Object
+BrowseResponse,528,DataType
+BrowseResponse_Encoding_DefaultBinary,530,Object
+BrowseResponse_Encoding_DefaultJson,15185,Object
+BrowseResponse_Encoding_DefaultXml,529,Object
+BrowseResult,522,DataType
+BrowseResult_Encoding_DefaultBinary,524,Object
+BrowseResult_Encoding_DefaultJson,15183,Object
+BrowseResult_Encoding_DefaultXml,523,Object
+BrowseResultMask,517,DataType
+BuildInfo,338,DataType
+BuildInfo_Encoding_DefaultBinary,340,Object
+BuildInfo_Encoding_DefaultJson,15361,Object
+BuildInfo_Encoding_DefaultXml,339,Object
+BuildInfoType,3051,VariableType
+Byte,3,DataType
+ByteString,15,DataType
+CallMethodRequest,704,DataType
+CallMethodRequest_Encoding_DefaultBinary,706,Object
+CallMethodRequest_Encoding_DefaultJson,15289,Object
+CallMethodRequest_Encoding_DefaultXml,705,Object
+CallMethodResult,707,DataType
+CallMethodResult_Encoding_DefaultBinary,709,Object
+CallMethodResult_Encoding_DefaultJson,15290,Object
+CallMethodResult_Encoding_DefaultXml,708,Object
+CallRequest,710,DataType
+CallRequest_Encoding_DefaultBinary,712,Object
+CallRequest_Encoding_DefaultJson,15291,Object
+CallRequest_Encoding_DefaultXml,711,Object
+CallResponse,713,DataType
+CallResponse_Encoding_DefaultBinary,715,Object
+CallResponse_Encoding_DefaultJson,15292,Object
+CallResponse_Encoding_DefaultXml,714,Object
+CancelRequest,477,DataType
+CancelRequest_Encoding_DefaultBinary,479,Object
+CancelRequest_Encoding_DefaultJson,15149,Object
+CancelRequest_Encoding_DefaultXml,478,Object
+CancelResponse,480,DataType
+CancelResponse_Encoding_DefaultBinary,482,Object
+CancelResponse_Encoding_DefaultJson,15150,Object
+CancelResponse_Encoding_DefaultXml,481,Object
+CartesianCoordinates,18809,DataType
+CartesianCoordinates_Encoding_DefaultBinary,18818,Object
+CartesianCoordinates_Encoding_DefaultJson,19067,Object
+CartesianCoordinates_Encoding_DefaultXml,18854,Object
+CartesianCoordinatesType,18772,VariableType
+CertificateExpirationAlarmType,13225,ObjectType
+CertificateGroupFolderType,13813,ObjectType
+CertificateGroupType,12555,ObjectType
+CertificateType,12556,ObjectType
+CertificateUpdatedAuditEventType,12620,ObjectType
+ChannelSecurityToken,441,DataType
+ChannelSecurityToken_Encoding_DefaultBinary,443,Object
+ChannelSecurityToken_Encoding_DefaultJson,15131,Object
+ChannelSecurityToken_Encoding_DefaultXml,442,Object
+ChoiceStateType,15109,ObjectType
+CloseSecureChannelRequest,450,DataType
+CloseSecureChannelRequest_Encoding_DefaultBinary,452,Object
+CloseSecureChannelRequest_Encoding_DefaultJson,15134,Object
+CloseSecureChannelRequest_Encoding_DefaultXml,451,Object
+CloseSecureChannelResponse,453,DataType
+CloseSecureChannelResponse_Encoding_DefaultBinary,455,Object
+CloseSecureChannelResponse_Encoding_DefaultJson,15135,Object
+CloseSecureChannelResponse_Encoding_DefaultXml,454,Object
+CloseSessionRequest,471,DataType
+CloseSessionRequest_Encoding_DefaultBinary,473,Object
+CloseSessionRequest_Encoding_DefaultJson,15147,Object
+CloseSessionRequest_Encoding_DefaultXml,472,Object
+CloseSessionResponse,474,DataType
+CloseSessionResponse_Encoding_DefaultBinary,476,Object
+CloseSessionResponse_Encoding_DefaultJson,15148,Object
+CloseSessionResponse_Encoding_DefaultXml,475,Object
+Communication,24227,Object
+ComplexNumberType,12171,DataType
+ComplexNumberType_Encoding_DefaultBinary,12181,Object
+ComplexNumberType_Encoding_DefaultJson,15377,Object
+ComplexNumberType_Encoding_DefaultXml,12173,Object
+ConditionType,2782,ObjectType
+ConditionVariableType,9002,VariableType
+ConfigurationVersionDataType,14593,DataType
+ConfigurationVersionDataType_Encoding_DefaultBinary,14847,Object
+ConfigurationVersionDataType_Encoding_DefaultJson,15049,Object
+ConfigurationVersionDataType_Encoding_DefaultXml,14803,Object
+ConnectionTransportDataType,15618,DataType
+ConnectionTransportDataType_Encoding_DefaultBinary,15695,Object
+ConnectionTransportDataType_Encoding_DefaultJson,16282,Object
+ConnectionTransportDataType_Encoding_DefaultXml,15993,Object
+ConnectionTransportType,17721,ObjectType
+ContentFilter,586,DataType
+ContentFilter_Encoding_DefaultBinary,588,Object
+ContentFilter_Encoding_DefaultJson,15205,Object
+ContentFilter_Encoding_DefaultXml,587,Object
+ContentFilterElement,583,DataType
+ContentFilterElement_Encoding_DefaultBinary,585,Object
+ContentFilterElement_Encoding_DefaultJson,15204,Object
+ContentFilterElement_Encoding_DefaultXml,584,Object
+ContentFilterElementResult,604,DataType
+ContentFilterElementResult_Encoding_DefaultBinary,606,Object
+ContentFilterElementResult_Encoding_DefaultJson,15211,Object
+ContentFilterElementResult_Encoding_DefaultXml,605,Object
+ContentFilterResult,607,DataType
+ContentFilterResult_Encoding_DefaultBinary,609,Object
+ContentFilterResult_Encoding_DefaultJson,15228,Object
+ContentFilterResult_Encoding_DefaultXml,608,Object
+ContinuationPoint,521,DataType
+Counter,289,DataType
+CreateMonitoredItemsRequest,749,DataType
+CreateMonitoredItemsRequest_Encoding_DefaultBinary,751,Object
+CreateMonitoredItemsRequest_Encoding_DefaultJson,15323,Object
+CreateMonitoredItemsRequest_Encoding_DefaultXml,750,Object
+CreateMonitoredItemsResponse,752,DataType
+CreateMonitoredItemsResponse_Encoding_DefaultBinary,754,Object
+CreateMonitoredItemsResponse_Encoding_DefaultJson,15324,Object
+CreateMonitoredItemsResponse_Encoding_DefaultXml,753,Object
+CreateSessionRequest,459,DataType
+CreateSessionRequest_Encoding_DefaultBinary,461,Object
+CreateSessionRequest_Encoding_DefaultJson,15138,Object
+CreateSessionRequest_Encoding_DefaultXml,460,Object
+CreateSessionResponse,462,DataType
+CreateSessionResponse_Encoding_DefaultBinary,464,Object
+CreateSessionResponse_Encoding_DefaultJson,15139,Object
+CreateSessionResponse_Encoding_DefaultXml,463,Object
+CreateSubscriptionRequest,785,DataType
+CreateSubscriptionRequest_Encoding_DefaultBinary,787,Object
+CreateSubscriptionRequest_Encoding_DefaultJson,15337,Object
+CreateSubscriptionRequest_Encoding_DefaultXml,786,Object
+CreateSubscriptionResponse,788,DataType
+CreateSubscriptionResponse_Encoding_DefaultBinary,790,Object
+CreateSubscriptionResponse_Encoding_DefaultJson,15338,Object
+CreateSubscriptionResponse_Encoding_DefaultXml,789,Object
+CubeItemType,12057,VariableType
+CurrencyUnit,23501,Variable
+CurrencyUnitType,23498,DataType
+CurrencyUnitType_Encoding_DefaultBinary,23507,Object
+CurrencyUnitType_Encoding_DefaultJson,23528,Object
+CurrencyUnitType_Encoding_DefaultXml,23520,Object
+DataChangeFilter,722,DataType
+DataChangeFilter_Encoding_DefaultBinary,724,Object
+DataChangeFilter_Encoding_DefaultJson,15294,Object
+DataChangeFilter_Encoding_DefaultXml,723,Object
+DataChangeNotification,809,DataType
+DataChangeNotification_Encoding_DefaultBinary,811,Object
+DataChangeNotification_Encoding_DefaultJson,15345,Object
+DataChangeNotification_Encoding_DefaultXml,810,Object
+DataChangeTrigger,717,DataType
+DatagramConnectionTransportDataType,17467,DataType
+DatagramConnectionTransportDataType_Encoding_DefaultBinary,17468,Object
+DatagramConnectionTransportDataType_Encoding_DefaultJson,17476,Object
+DatagramConnectionTransportDataType_Encoding_DefaultXml,17472,Object
+DatagramConnectionTransportType,15064,ObjectType
+DatagramWriterGroupTransportDataType,15532,DataType
+DatagramWriterGroupTransportDataType_Encoding_DefaultBinary,21155,Object
+DatagramWriterGroupTransportDataType_Encoding_DefaultJson,21203,Object
+DatagramWriterGroupTransportDataType_Encoding_DefaultXml,21179,Object
+DatagramWriterGroupTransportType,21133,ObjectType
+DataItemType,2365,VariableType
+DataSetFieldContentMask,15583,DataType
+DataSetFieldFlags,15904,DataType
+DataSetFolderType,14477,ObjectType
+DataSetMetaDataType,14523,DataType
+DataSetMetaDataType_Encoding_DefaultBinary,124,Object
+DataSetMetaDataType_Encoding_DefaultJson,15050,Object
+DataSetMetaDataType_Encoding_DefaultXml,14794,Object
+DataSetOrderingType,20408,DataType
+DataSetReaderDataType,15623,DataType
+DataSetReaderDataType_Encoding_DefaultBinary,15703,Object
+DataSetReaderDataType_Encoding_DefaultJson,16286,Object
+DataSetReaderDataType_Encoding_DefaultXml,16007,Object
+DataSetReaderMessageDataType,15629,DataType
+DataSetReaderMessageDataType_Encoding_DefaultBinary,15706,Object
+DataSetReaderMessageDataType_Encoding_DefaultJson,16288,Object
+DataSetReaderMessageDataType_Encoding_DefaultXml,16009,Object
+DataSetReaderMessageType,21104,ObjectType
+DataSetReaderTransportDataType,15628,DataType
+DataSetReaderTransportDataType_Encoding_DefaultBinary,15705,Object
+DataSetReaderTransportDataType_Encoding_DefaultJson,16287,Object
+DataSetReaderTransportDataType_Encoding_DefaultXml,16008,Object
+DataSetReaderTransportType,15319,ObjectType
+DataSetReaderType,15306,ObjectType
+DataSetToWriter,14936,ReferenceType
+DataSetWriterDataType,15597,DataType
+DataSetWriterDataType_Encoding_DefaultBinary,15682,Object
+DataSetWriterDataType_Encoding_DefaultJson,16156,Object
+DataSetWriterDataType_Encoding_DefaultXml,15955,Object
+DataSetWriterMessageDataType,15605,DataType
+DataSetWriterMessageDataType_Encoding_DefaultBinary,15688,Object
+DataSetWriterMessageDataType_Encoding_DefaultJson,16158,Object
+DataSetWriterMessageDataType_Encoding_DefaultXml,15987,Object
+DataSetWriterMessageType,21096,ObjectType
+DataSetWriterTransportDataType,15598,DataType
+DataSetWriterTransportDataType_Encoding_DefaultBinary,15683,Object
+DataSetWriterTransportDataType_Encoding_DefaultJson,16157,Object
+DataSetWriterTransportDataType_Encoding_DefaultXml,15956,Object
+DataSetWriterTransportType,15305,ObjectType
+DataSetWriterType,15298,ObjectType
+DataTypeAttributes,370,DataType
+DataTypeAttributes_Encoding_DefaultBinary,372,Object
+DataTypeAttributes_Encoding_DefaultJson,15161,Object
+DataTypeAttributes_Encoding_DefaultXml,371,Object
+DataTypeDefinition,97,DataType
+DataTypeDefinition_Encoding_DefaultBinary,121,Object
+DataTypeDefinition_Encoding_DefaultJson,15063,Object
+DataTypeDefinition_Encoding_DefaultXml,14797,Object
+DataTypeDescription,14525,DataType
+DataTypeDescription_Encoding_DefaultBinary,125,Object
+DataTypeDescription_Encoding_DefaultJson,15057,Object
+DataTypeDescription_Encoding_DefaultXml,14796,Object
+DataTypeDescriptionType,69,VariableType
+DataTypeDictionaryType,72,VariableType
+DataTypeEncodingType,76,ObjectType
+DataTypeNode,282,DataType
+DataTypeNode_Encoding_DefaultBinary,284,Object
+DataTypeNode_Encoding_DefaultJson,15079,Object
+DataTypeNode_Encoding_DefaultXml,283,Object
+DataTypeSchemaHeader,15534,DataType
+DataTypeSchemaHeader_Encoding_DefaultBinary,15676,Object
+DataTypeSchemaHeader_Encoding_DefaultJson,16151,Object
+DataTypeSchemaHeader_Encoding_DefaultXml,15950,Object
+DataTypesFolder,90,Object
+DataTypeSystemType,75,ObjectType
+DataValue,23,DataType
+Date,293,DataType
+DateString,12881,DataType
+DateTime,13,DataType
+DeadbandType,718,DataType
+Decimal,50,DataType
+DecimalDataType,17861,DataType
+DecimalDataType_Encoding_DefaultBinary,17863,Object
+DecimalDataType_Encoding_DefaultJson,15045,Object
+DecimalDataType_Encoding_DefaultXml,17862,Object
+DecimalString,12878,DataType
+DefaultBinary,3062,Object
+DefaultInstanceBrowseName,17605,Variable
+DefaultXml,3063,Object
+DeleteAtTimeDetails,689,DataType
+DeleteAtTimeDetails_Encoding_DefaultBinary,691,Object
+DeleteAtTimeDetails_Encoding_DefaultJson,15284,Object
+DeleteAtTimeDetails_Encoding_DefaultXml,690,Object
+DeleteEventDetails,692,DataType
+DeleteEventDetails_Encoding_DefaultBinary,694,Object
+DeleteEventDetails_Encoding_DefaultJson,15285,Object
+DeleteEventDetails_Encoding_DefaultXml,693,Object
+DeleteMonitoredItemsRequest,779,DataType
+DeleteMonitoredItemsRequest_Encoding_DefaultBinary,781,Object
+DeleteMonitoredItemsRequest_Encoding_DefaultJson,15335,Object
+DeleteMonitoredItemsRequest_Encoding_DefaultXml,780,Object
+DeleteMonitoredItemsResponse,782,DataType
+DeleteMonitoredItemsResponse_Encoding_DefaultBinary,784,Object
+DeleteMonitoredItemsResponse_Encoding_DefaultJson,15336,Object
+DeleteMonitoredItemsResponse_Encoding_DefaultXml,783,Object
+DeleteNodesItem,382,DataType
+DeleteNodesItem_Encoding_DefaultBinary,384,Object
+DeleteNodesItem_Encoding_DefaultJson,15172,Object
+DeleteNodesItem_Encoding_DefaultXml,383,Object
+DeleteNodesRequest,498,DataType
+DeleteNodesRequest_Encoding_DefaultBinary,500,Object
+DeleteNodesRequest_Encoding_DefaultJson,15173,Object
+DeleteNodesRequest_Encoding_DefaultXml,499,Object
+DeleteNodesResponse,501,DataType
+DeleteNodesResponse_Encoding_DefaultBinary,503,Object
+DeleteNodesResponse_Encoding_DefaultJson,15174,Object
+DeleteNodesResponse_Encoding_DefaultXml,502,Object
+DeleteRawModifiedDetails,686,DataType
+DeleteRawModifiedDetails_Encoding_DefaultBinary,688,Object
+DeleteRawModifiedDetails_Encoding_DefaultJson,15283,Object
+DeleteRawModifiedDetails_Encoding_DefaultXml,687,Object
+DeleteReferencesItem,385,DataType
+DeleteReferencesItem_Encoding_DefaultBinary,387,Object
+DeleteReferencesItem_Encoding_DefaultJson,15175,Object
+DeleteReferencesItem_Encoding_DefaultXml,386,Object
+DeleteReferencesRequest,504,DataType
+DeleteReferencesRequest_Encoding_DefaultBinary,506,Object
+DeleteReferencesRequest_Encoding_DefaultJson,15176,Object
+DeleteReferencesRequest_Encoding_DefaultXml,505,Object
+DeleteReferencesResponse,507,DataType
+DeleteReferencesResponse_Encoding_DefaultBinary,509,Object
+DeleteReferencesResponse_Encoding_DefaultJson,15177,Object
+DeleteReferencesResponse_Encoding_DefaultXml,508,Object
+DeleteSubscriptionsRequest,845,DataType
+DeleteSubscriptionsRequest_Encoding_DefaultBinary,847,Object
+DeleteSubscriptionsRequest_Encoding_DefaultJson,15359,Object
+DeleteSubscriptionsRequest_Encoding_DefaultXml,846,Object
+DeleteSubscriptionsResponse,848,DataType
+DeleteSubscriptionsResponse_Encoding_DefaultBinary,850,Object
+DeleteSubscriptionsResponse_Encoding_DefaultJson,15360,Object
+DeleteSubscriptionsResponse_Encoding_DefaultXml,849,Object
+DeviceFailureEventType,2131,ObjectType
+DiagnosticInfo,25,DataType
+DiagnosticsLevel,19723,DataType
+DialogConditionType,2830,ObjectType
+Dictionaries,17594,Object
+DictionaryEntryType,17589,ObjectType
+DictionaryFolderType,17591,ObjectType
+DiscoveryConfiguration,12890,DataType
+DiscoveryConfiguration_Encoding_DefaultBinary,12900,Object
+DiscoveryConfiguration_Encoding_DefaultJson,15105,Object
+DiscoveryConfiguration_Encoding_DefaultXml,12892,Object
+DiscrepancyAlarmType,17080,ObjectType
+DiscreteAlarmType,10523,ObjectType
+DiscreteItemType,2372,VariableType
+Double,11,DataType
+DoubleComplexNumberType,12172,DataType
+DoubleComplexNumberType_Encoding_DefaultBinary,12182,Object
+DoubleComplexNumberType_Encoding_DefaultJson,15378,Object
+DoubleComplexNumberType_Encoding_DefaultXml,12174,Object
+Duplex,24210,DataType
+Duration,290,DataType
+DurationString,12879,DataType
+EccApplicationCertificateType,23537,ObjectType
+EccBrainpoolP256r1ApplicationCertificateType,23540,ObjectType
+EccBrainpoolP384r1ApplicationCertificateType,23541,ObjectType
+EccCurve25519ApplicationCertificateType,23542,ObjectType
+EccCurve448ApplicationCertificateType,23543,ObjectType
+EccEncryptedSecret,17546,DataType
+EccNistP256ApplicationCertificateType,23538,ObjectType
+EccNistP384ApplicationCertificateType,23539,ObjectType
+ElementOperand,592,DataType
+ElementOperand_Encoding_DefaultBinary,594,Object
+ElementOperand_Encoding_DefaultJson,15207,Object
+ElementOperand_Encoding_DefaultXml,593,Object
+ElseGuardVariableType,15317,VariableType
+EndpointConfiguration,331,DataType
+EndpointConfiguration_Encoding_DefaultBinary,333,Object
+EndpointConfiguration_Encoding_DefaultJson,15199,Object
+EndpointConfiguration_Encoding_DefaultXml,332,Object
+EndpointDescription,312,DataType
+EndpointDescription_Encoding_DefaultBinary,314,Object
+EndpointDescription_Encoding_DefaultJson,15099,Object
+EndpointDescription_Encoding_DefaultXml,313,Object
+EndpointType,15528,DataType
+EndpointType_Encoding_DefaultBinary,15671,Object
+EndpointType_Encoding_DefaultJson,16150,Object
+EndpointType_Encoding_DefaultXml,15949,Object
+EndpointUrlListDataType,11943,DataType
+EndpointUrlListDataType_Encoding_DefaultBinary,11957,Object
+EndpointUrlListDataType_Encoding_DefaultJson,15363,Object
+EndpointUrlListDataType_Encoding_DefaultXml,11949,Object
+EngineeringUnits,11513,Variable
+EnumDefinition,100,DataType
+EnumDefinition_Encoding_DefaultBinary,123,Object
+EnumDefinition_Encoding_DefaultJson,15067,Object
+EnumDefinition_Encoding_DefaultXml,14799,Object
+EnumDescription,15488,DataType
+EnumDescription_Encoding_DefaultBinary,127,Object
+EnumDescription_Encoding_DefaultJson,15059,Object
+EnumDescription_Encoding_DefaultXml,15590,Object
+Enumeration,29,DataType
+EnumField,102,DataType
+EnumField_Encoding_DefaultBinary,14845,Object
+EnumField_Encoding_DefaultJson,15083,Object
+EnumField_Encoding_DefaultXml,14801,Object
+EnumStrings,11432,Variable
+EnumValues,3071,Variable
+EnumValueType,7594,DataType
+EnumValueType_Encoding_DefaultBinary,8251,Object
+EnumValueType_Encoding_DefaultJson,15082,Object
+EnumValueType_Encoding_DefaultXml,7616,Object
+EphemeralKeyType,17548,DataType
+EphemeralKeyType_Encoding_DefaultBinary,17549,Object
+EphemeralKeyType_Encoding_DefaultJson,17557,Object
+EphemeralKeyType_Encoding_DefaultXml,17553,Object
+EUInformation,887,DataType
+EUInformation_Encoding_DefaultBinary,889,Object
+EUInformation_Encoding_DefaultJson,15376,Object
+EUInformation_Encoding_DefaultXml,888,Object
+EventFieldList,917,DataType
+EventFieldList_Encoding_DefaultBinary,919,Object
+EventFieldList_Encoding_DefaultJson,15348,Object
+EventFieldList_Encoding_DefaultXml,918,Object
+EventFilter,725,DataType
+EventFilter_Encoding_DefaultBinary,727,Object
+EventFilter_Encoding_DefaultJson,15295,Object
+EventFilter_Encoding_DefaultXml,726,Object
+EventFilterResult,734,DataType
+EventFilterResult_Encoding_DefaultBinary,736,Object
+EventFilterResult_Encoding_DefaultJson,15314,Object
+EventFilterResult_Encoding_DefaultXml,735,Object
+EventNotificationList,914,DataType
+EventNotificationList_Encoding_DefaultBinary,916,Object
+EventNotificationList_Encoding_DefaultJson,15347,Object
+EventNotificationList_Encoding_DefaultXml,915,Object
+EventNotifierType,15033,DataType
+EventQueueOverflowEventType,3035,ObjectType
+EventTypesFolder,3048,Object
+ExceptionDeviationFormat,890,DataType
+ExclusiveDeviationAlarmType,9764,ObjectType
+ExclusiveLevelAlarmType,9482,ObjectType
+ExclusiveLimitAlarmType,9341,ObjectType
+ExclusiveLimitStateMachineType,9318,ObjectType
+ExclusiveRateOfChangeAlarmType,9623,ObjectType
+ExpandedNodeId,18,DataType
+ExpressionGuardVariableType,15128,VariableType
+ExtensionFieldsType,15489,ObjectType
+FieldMetaData,14524,DataType
+FieldMetaData_Encoding_DefaultBinary,14839,Object
+FieldMetaData_Encoding_DefaultJson,15051,Object
+FieldMetaData_Encoding_DefaultXml,14795,Object
+FieldTargetDataType,14744,DataType
+FieldTargetDataType_Encoding_DefaultBinary,14848,Object
+FieldTargetDataType_Encoding_DefaultJson,15061,Object
+FieldTargetDataType_Encoding_DefaultXml,14804,Object
+FileDirectoryType,13353,ObjectType
+FileSystem,16314,Object
+FileTransferStateMachineType,15803,ObjectType
+FileType,11575,ObjectType
+FilterOperand,589,DataType
+FilterOperand_Encoding_DefaultBinary,591,Object
+FilterOperand_Encoding_DefaultJson,15206,Object
+FilterOperand_Encoding_DefaultXml,590,Object
+FilterOperator,576,DataType
+FindServersOnNetworkRequest,12190,DataType
+FindServersOnNetworkRequest_Encoding_DefaultBinary,12208,Object
+FindServersOnNetworkRequest_Encoding_DefaultJson,15096,Object
+FindServersOnNetworkRequest_Encoding_DefaultXml,12196,Object
+FindServersOnNetworkResponse,12191,DataType
+FindServersOnNetworkResponse_Encoding_DefaultBinary,12209,Object
+FindServersOnNetworkResponse_Encoding_DefaultJson,15097,Object
+FindServersOnNetworkResponse_Encoding_DefaultXml,12197,Object
+FindServersRequest,420,DataType
+FindServersRequest_Encoding_DefaultBinary,422,Object
+FindServersRequest_Encoding_DefaultJson,15093,Object
+FindServersRequest_Encoding_DefaultXml,421,Object
+FindServersResponse,423,DataType
+FindServersResponse_Encoding_DefaultBinary,425,Object
+FindServersResponse_Encoding_DefaultJson,15094,Object
+FindServersResponse_Encoding_DefaultXml,424,Object
+FiniteStateMachineType,2771,ObjectType
+FiniteStateVariableType,2760,VariableType
+FiniteTransitionVariableType,2767,VariableType
+Float,10,DataType
+FolderType,61,ObjectType
+Frame,18813,DataType
+Frame_Encoding_DefaultBinary,18822,Object
+Frame_Encoding_DefaultJson,19071,Object
+Frame_Encoding_DefaultXml,18858,Object
+FrameType,18786,VariableType
+FromState,51,ReferenceType
+GeneralModelChangeEventType,2133,ObjectType
+GeneratesEvent,41,ReferenceType
+GenericAttributes,17607,DataType
+GenericAttributes_Encoding_DefaultBinary,17611,Object
+GenericAttributes_Encoding_DefaultJson,15164,Object
+GenericAttributes_Encoding_DefaultXml,17609,Object
+GenericAttributeValue,17606,DataType
+GenericAttributeValue_Encoding_DefaultBinary,17610,Object
+GenericAttributeValue_Encoding_DefaultJson,15163,Object
+GenericAttributeValue_Encoding_DefaultXml,17608,Object
+GetEndpointsRequest,426,DataType
+GetEndpointsRequest_Encoding_DefaultBinary,428,Object
+GetEndpointsRequest_Encoding_DefaultJson,15100,Object
+GetEndpointsRequest_Encoding_DefaultXml,427,Object
+GetEndpointsResponse,429,DataType
+GetEndpointsResponse_Encoding_DefaultBinary,431,Object
+GetEndpointsResponse_Encoding_DefaultJson,15101,Object
+GetEndpointsResponse_Encoding_DefaultXml,430,Object
+GuardVariableType,15113,VariableType
+Guid,14,DataType
+HAConfiguration,11202,Object
+HasAddIn,17604,ReferenceType
+HasAlarmSuppressionGroup,16361,ReferenceType
+HasArgumentDescription,129,ReferenceType
+HasCause,53,ReferenceType
+HasChild,34,ReferenceType
+HasComponent,47,ReferenceType
+HasCondition,9006,ReferenceType
+HasDataSetReader,15297,ReferenceType
+HasDataSetWriter,15296,ReferenceType
+HasDescription,39,ReferenceType
+HasDictionaryEntry,17597,ReferenceType
+HasEffect,54,ReferenceType
+HasEffectDisable,17276,ReferenceType
+HasEffectEnable,17983,ReferenceType
+HasEffectSuppressed,17984,ReferenceType
+HasEffectUnsuppressed,17985,ReferenceType
+HasEncoding,38,ReferenceType
+HasEventSource,36,ReferenceType
+HasFalseSubState,9005,ReferenceType
+HasGuard,15112,ReferenceType
+HasHistoricalConfiguration,56,ReferenceType
+HasInterface,17603,ReferenceType
+HasModellingRule,37,ReferenceType
+HasNotifier,48,ReferenceType
+HasOptionalInputArgumentDescription,131,ReferenceType
+HasOrderedComponent,49,ReferenceType
+HasProperty,46,ReferenceType
+HasPubSubConnection,14476,ReferenceType
+HasReaderGroup,18805,ReferenceType
+HasSubStateMachine,117,ReferenceType
+HasSubtype,45,ReferenceType
+HasTrueSubState,9004,ReferenceType
+HasTypeDefinition,40,ReferenceType
+HasWriterGroup,18804,ReferenceType
+HierarchicalReferences,33,ReferenceType
+HighlyManagedAlarmConditionClassType,17219,ObjectType
+HistoricalDataConfigurationType,2318,ObjectType
+HistoricalEventFilter,11215,Variable
+HistoryData,656,DataType
+HistoryData_Encoding_DefaultBinary,658,Object
+HistoryData_Encoding_DefaultJson,15270,Object
+HistoryData_Encoding_DefaultXml,657,Object
+HistoryEvent,659,DataType
+HistoryEvent_Encoding_DefaultBinary,661,Object
+HistoryEvent_Encoding_DefaultJson,15273,Object
+HistoryEvent_Encoding_DefaultXml,660,Object
+HistoryEventFieldList,920,DataType
+HistoryEventFieldList_Encoding_DefaultBinary,922,Object
+HistoryEventFieldList_Encoding_DefaultJson,15349,Object
+HistoryEventFieldList_Encoding_DefaultXml,921,Object
+HistoryModifiedData,11217,DataType
+HistoryModifiedData_Encoding_DefaultBinary,11227,Object
+HistoryModifiedData_Encoding_DefaultJson,15272,Object
+HistoryModifiedData_Encoding_DefaultXml,11219,Object
+HistoryReadDetails,641,DataType
+HistoryReadDetails_Encoding_DefaultBinary,643,Object
+HistoryReadDetails_Encoding_DefaultJson,15261,Object
+HistoryReadDetails_Encoding_DefaultXml,642,Object
+HistoryReadRequest,662,DataType
+HistoryReadRequest_Encoding_DefaultBinary,664,Object
+HistoryReadRequest_Encoding_DefaultJson,15274,Object
+HistoryReadRequest_Encoding_DefaultXml,663,Object
+HistoryReadResponse,665,DataType
+HistoryReadResponse_Encoding_DefaultBinary,667,Object
+HistoryReadResponse_Encoding_DefaultJson,15275,Object
+HistoryReadResponse_Encoding_DefaultXml,666,Object
+HistoryReadResult,638,DataType
+HistoryReadResult_Encoding_DefaultBinary,640,Object
+HistoryReadResult_Encoding_DefaultJson,15260,Object
+HistoryReadResult_Encoding_DefaultXml,639,Object
+HistoryReadValueId,635,DataType
+HistoryReadValueId_Encoding_DefaultBinary,637,Object
+HistoryReadValueId_Encoding_DefaultJson,15259,Object
+HistoryReadValueId_Encoding_DefaultXml,636,Object
+HistoryServerCapabilities,11192,Object
+HistoryServerCapabilitiesType,2330,ObjectType
+HistoryUpdateDetails,677,DataType
+HistoryUpdateDetails_Encoding_DefaultBinary,679,Object
+HistoryUpdateDetails_Encoding_DefaultJson,15279,Object
+HistoryUpdateDetails_Encoding_DefaultXml,678,Object
+HistoryUpdateRequest,698,DataType
+HistoryUpdateRequest_Encoding_DefaultBinary,700,Object
+HistoryUpdateRequest_Encoding_DefaultJson,15287,Object
+HistoryUpdateRequest_Encoding_DefaultXml,699,Object
+HistoryUpdateResponse,701,DataType
+HistoryUpdateResponse_Encoding_DefaultBinary,703,Object
+HistoryUpdateResponse_Encoding_DefaultJson,15288,Object
+HistoryUpdateResponse_Encoding_DefaultXml,702,Object
+HistoryUpdateResult,695,DataType
+HistoryUpdateResult_Encoding_DefaultBinary,697,Object
+HistoryUpdateResult_Encoding_DefaultJson,15286,Object
+HistoryUpdateResult_Encoding_DefaultXml,696,Object
+HistoryUpdateType,11234,DataType
+HttpsCertificateType,12558,ObjectType
+IBaseEthernetCapabilitiesType,24167,ObjectType
+Icon,3067,Variable
+IdentityCriteriaType,15632,DataType
+IdentityMappingRuleType,15634,DataType
+IdentityMappingRuleType_Encoding_DefaultBinary,15736,Object
+IdentityMappingRuleType_Encoding_DefaultJson,15042,Object
+IdentityMappingRuleType_Encoding_DefaultXml,15728,Object
+IdType,256,DataType
+IIeeeAutoNegotiationStatusType,24233,ObjectType
+IIeeeBaseEthernetPortType,24158,ObjectType
+IIeeeBaseTsnStatusStreamType,24183,ObjectType
+IIeeeBaseTsnStreamType,24173,ObjectType
+IIeeeBaseTsnTrafficSpecificationType,24179,ObjectType
+IIeeeTsnInterfaceConfigurationListenerType,24195,ObjectType
+IIeeeTsnInterfaceConfigurationTalkerType,24191,ObjectType
+IIeeeTsnInterfaceConfigurationType,24188,ObjectType
+IIeeeTsnMacAddressType,24199,ObjectType
+IIeeeTsnVlanTagType,24202,ObjectType
+IIetfBaseNetworkInterfaceType,24148,ObjectType
+Image,30,DataType
+ImageBMP,2000,DataType
+ImageGIF,2001,DataType
+ImageItemType,12047,VariableType
+ImageJPG,2002,DataType
+ImagePNG,2003,DataType
+Index,17588,DataType
+InitialStateType,2309,ObjectType
+InputArguments,3072,Variable
+InstanceNode,11879,DataType
+InstanceNode_Encoding_DefaultBinary,11889,Object
+InstanceNode_Encoding_DefaultJson,15069,Object
+InstanceNode_Encoding_DefaultXml,11887,Object
+InstrumentDiagnosticAlarmType,18347,ObjectType
+Int16,4,DataType
+Int32,6,DataType
+Int64,8,DataType
+Integer,27,DataType
+IntegerId,288,DataType
+InterfaceAdminStatus,24212,DataType
+InterfaceOperStatus,24214,DataType
+InterfaceTypes,17708,Object
+IOrderedObjectType,23513,ObjectType
+IPriorityMappingEntryType,24205,ObjectType
+IrdiDictionaryEntryType,17598,ObjectType
+ISrClassType,24169,ObjectType
+IssuedIdentityToken,938,DataType
+IssuedIdentityToken_Encoding_DefaultBinary,940,Object
+IssuedIdentityToken_Encoding_DefaultJson,15144,Object
+IssuedIdentityToken_Encoding_DefaultXml,939,Object
+JsonDataSetMessageContentMask,15658,DataType
+JsonDataSetReaderMessageDataType,15665,DataType
+JsonDataSetReaderMessageDataType_Encoding_DefaultBinary,15725,Object
+JsonDataSetReaderMessageDataType_Encoding_DefaultJson,16404,Object
+JsonDataSetReaderMessageDataType_Encoding_DefaultXml,16019,Object
+JsonDataSetReaderMessageType,21130,ObjectType
+JsonDataSetWriterMessageDataType,15664,DataType
+JsonDataSetWriterMessageDataType_Encoding_DefaultBinary,15724,Object
+JsonDataSetWriterMessageDataType_Encoding_DefaultJson,16394,Object
+JsonDataSetWriterMessageDataType_Encoding_DefaultXml,16018,Object
+JsonDataSetWriterMessageType,21128,ObjectType
+JsonNetworkMessageContentMask,15654,DataType
+JsonWriterGroupMessageDataType,15657,DataType
+JsonWriterGroupMessageDataType_Encoding_DefaultBinary,15719,Object
+JsonWriterGroupMessageDataType_Encoding_DefaultJson,16393,Object
+JsonWriterGroupMessageDataType_Encoding_DefaultXml,16017,Object
+JsonWriterGroupMessageType,21126,ObjectType
+KeyCredentialAuditEventType,18011,ObjectType
+KeyCredentialConfiguration,18155,Object
+KeyCredentialConfigurationFolderType,17496,ObjectType
+KeyCredentialConfigurationType,18001,ObjectType
+KeyCredentialDeletedAuditEventType,18047,ObjectType
+KeyCredentialUpdatedAuditEventType,18029,ObjectType
+KeyValuePair,14533,DataType
+KeyValuePair_Encoding_DefaultBinary,14846,Object
+KeyValuePair_Encoding_DefaultJson,15041,Object
+KeyValuePair_Encoding_DefaultXml,14802,Object
+LimitAlarmType,2955,ObjectType
+ListenerStreams,24232,Object
+LiteralOperand,595,DataType
+LiteralOperand_Encoding_DefaultBinary,597,Object
+LiteralOperand_Encoding_DefaultJson,15208,Object
+LiteralOperand_Encoding_DefaultXml,596,Object
+LocaleId,295,DataType
+LocalizedText,21,DataType
+LocalTime,3069,Variable
+MaintenanceConditionClassType,11165,ObjectType
+MappingTables,24228,Object
+MaxArrayLength,11512,Variable
+MaxByteStringLength,12908,Variable
+MaxCharacters,15002,Variable
+MaxStringLength,11498,Variable
+MdnsDiscoveryConfiguration,12891,DataType
+MdnsDiscoveryConfiguration_Encoding_DefaultBinary,12901,Object
+MdnsDiscoveryConfiguration_Encoding_DefaultJson,15106,Object
+MdnsDiscoveryConfiguration_Encoding_DefaultXml,12893,Object
+MessageSecurityMode,302,DataType
+MethodAttributes,358,DataType
+MethodAttributes_Encoding_DefaultBinary,360,Object
+MethodAttributes_Encoding_DefaultJson,15157,Object
+MethodAttributes_Encoding_DefaultXml,359,Object
+MethodNode,276,DataType
+MethodNode_Encoding_DefaultBinary,278,Object
+MethodNode_Encoding_DefaultJson,15077,Object
+MethodNode_Encoding_DefaultXml,277,Object
+ModelChangeStructureDataType,877,DataType
+ModelChangeStructureDataType_Encoding_DefaultBinary,879,Object
+ModelChangeStructureDataType_Encoding_DefaultJson,15373,Object
+ModelChangeStructureDataType_Encoding_DefaultXml,878,Object
+ModelChangeStructureVerbMask,11941,DataType
+ModellingRule_ExposesItsArray,83,Object
+ModellingRule_Mandatory,78,Object
+ModellingRule_MandatoryPlaceholder,11510,Object
+ModellingRule_Optional,80,Object
+ModellingRule_OptionalPlaceholder,11508,Object
+ModellingRuleType,77,ObjectType
+ModificationInfo,11216,DataType
+ModificationInfo_Encoding_DefaultBinary,11226,Object
+ModificationInfo_Encoding_DefaultJson,15271,Object
+ModificationInfo_Encoding_DefaultXml,11218,Object
+ModifyMonitoredItemsRequest,761,DataType
+ModifyMonitoredItemsRequest_Encoding_DefaultBinary,763,Object
+ModifyMonitoredItemsRequest_Encoding_DefaultJson,15327,Object
+ModifyMonitoredItemsRequest_Encoding_DefaultXml,762,Object
+ModifyMonitoredItemsResponse,764,DataType
+ModifyMonitoredItemsResponse_Encoding_DefaultBinary,766,Object
+ModifyMonitoredItemsResponse_Encoding_DefaultJson,15328,Object
+ModifyMonitoredItemsResponse_Encoding_DefaultXml,765,Object
+ModifySubscriptionRequest,791,DataType
+ModifySubscriptionRequest_Encoding_DefaultBinary,793,Object
+ModifySubscriptionRequest_Encoding_DefaultJson,15339,Object
+ModifySubscriptionRequest_Encoding_DefaultXml,792,Object
+ModifySubscriptionResponse,794,DataType
+ModifySubscriptionResponse_Encoding_DefaultBinary,796,Object
+ModifySubscriptionResponse_Encoding_DefaultJson,15340,Object
+ModifySubscriptionResponse_Encoding_DefaultXml,795,Object
+MonitoredItemCreateRequest,743,DataType
+MonitoredItemCreateRequest_Encoding_DefaultBinary,745,Object
+MonitoredItemCreateRequest_Encoding_DefaultJson,15321,Object
+MonitoredItemCreateRequest_Encoding_DefaultXml,744,Object
+MonitoredItemCreateResult,746,DataType
+MonitoredItemCreateResult_Encoding_DefaultBinary,748,Object
+MonitoredItemCreateResult_Encoding_DefaultJson,15322,Object
+MonitoredItemCreateResult_Encoding_DefaultXml,747,Object
+MonitoredItemModifyRequest,755,DataType
+MonitoredItemModifyRequest_Encoding_DefaultBinary,757,Object
+MonitoredItemModifyRequest_Encoding_DefaultJson,15325,Object
+MonitoredItemModifyRequest_Encoding_DefaultXml,756,Object
+MonitoredItemModifyResult,758,DataType
+MonitoredItemModifyResult_Encoding_DefaultBinary,760,Object
+MonitoredItemModifyResult_Encoding_DefaultJson,15326,Object
+MonitoredItemModifyResult_Encoding_DefaultXml,759,Object
+MonitoredItemNotification,806,DataType
+MonitoredItemNotification_Encoding_DefaultBinary,808,Object
+MonitoredItemNotification_Encoding_DefaultJson,15346,Object
+MonitoredItemNotification_Encoding_DefaultXml,807,Object
+MonitoringFilter,719,DataType
+MonitoringFilter_Encoding_DefaultBinary,721,Object
+MonitoringFilter_Encoding_DefaultJson,15293,Object
+MonitoringFilter_Encoding_DefaultXml,720,Object
+MonitoringFilterResult,731,DataType
+MonitoringFilterResult_Encoding_DefaultBinary,733,Object
+MonitoringFilterResult_Encoding_DefaultJson,15313,Object
+MonitoringFilterResult_Encoding_DefaultXml,732,Object
+MonitoringMode,716,DataType
+MonitoringParameters,740,DataType
+MonitoringParameters_Encoding_DefaultBinary,742,Object
+MonitoringParameters_Encoding_DefaultJson,15320,Object
+MonitoringParameters_Encoding_DefaultXml,741,Object
+MultiStateDictionaryEntryDiscreteBaseType,19077,VariableType
+MultiStateDictionaryEntryDiscreteType,19084,VariableType
+MultiStateDiscreteType,2376,VariableType
+MultiStateValueDiscreteType,11238,VariableType
+NamespaceMetadataType,11616,ObjectType
+NamespacesType,11645,ObjectType
+NamingRuleType,120,DataType
+NDimensionArrayItemType,12068,VariableType
+NegotiationStatus,24216,DataType
+NetworkAddressDataType,15502,DataType
+NetworkAddressDataType_Encoding_DefaultBinary,21151,Object
+NetworkAddressDataType_Encoding_DefaultJson,21199,Object
+NetworkAddressDataType_Encoding_DefaultXml,21175,Object
+NetworkAddressType,21145,ObjectType
+NetworkAddressUrlDataType,15510,DataType
+NetworkAddressUrlDataType_Encoding_DefaultBinary,21152,Object
+NetworkAddressUrlDataType_Encoding_DefaultJson,21200,Object
+NetworkAddressUrlDataType_Encoding_DefaultXml,21176,Object
+NetworkAddressUrlType,21147,ObjectType
+NetworkGroupDataType,11944,DataType
+NetworkGroupDataType_Encoding_DefaultBinary,11958,Object
+NetworkGroupDataType_Encoding_DefaultJson,15364,Object
+NetworkGroupDataType_Encoding_DefaultXml,11950,Object
+NetworkInterfaces,24229,Object
+Node,258,DataType
+Node_Encoding_DefaultBinary,260,Object
+Node_Encoding_DefaultJson,15068,Object
+Node_Encoding_DefaultXml,259,Object
+NodeAttributes,349,DataType
+NodeAttributes_Encoding_DefaultBinary,351,Object
+NodeAttributes_Encoding_DefaultJson,15151,Object
+NodeAttributes_Encoding_DefaultXml,350,Object
+NodeAttributesMask,348,DataType
+NodeClass,257,DataType
+NodeId,17,DataType
+NodeReference,580,DataType
+NodeReference_Encoding_DefaultBinary,582,Object
+NodeReference_Encoding_DefaultJson,15203,Object
+NodeReference_Encoding_DefaultXml,581,Object
+NodeTypeDescription,573,DataType
+NodeTypeDescription_Encoding_DefaultBinary,575,Object
+NodeTypeDescription_Encoding_DefaultJson,15201,Object
+NodeTypeDescription_Encoding_DefaultXml,574,Object
+NodeVersion,3068,Variable
+NonExclusiveDeviationAlarmType,10368,ObjectType
+NonExclusiveLevelAlarmType,10060,ObjectType
+NonExclusiveLimitAlarmType,9906,ObjectType
+NonExclusiveRateOfChangeAlarmType,10214,ObjectType
+NonHierarchicalReferences,32,ReferenceType
+NonTransparentNetworkRedundancyType,11945,ObjectType
+NonTransparentRedundancyType,2039,ObjectType
+NormalizedString,12877,DataType
+NotificationData,945,DataType
+NotificationData_Encoding_DefaultBinary,947,Object
+NotificationData_Encoding_DefaultJson,15344,Object
+NotificationData_Encoding_DefaultXml,946,Object
+NotificationMessage,803,DataType
+NotificationMessage_Encoding_DefaultBinary,805,Object
+NotificationMessage_Encoding_DefaultJson,15343,Object
+NotificationMessage_Encoding_DefaultXml,804,Object
+Number,26,DataType
+NumericRange,291,DataType
+ObjectAttributes,352,DataType
+ObjectAttributes_Encoding_DefaultBinary,354,Object
+ObjectAttributes_Encoding_DefaultJson,15152,Object
+ObjectAttributes_Encoding_DefaultXml,353,Object
+ObjectNode,261,DataType
+ObjectNode_Encoding_DefaultBinary,263,Object
+ObjectNode_Encoding_DefaultJson,15071,Object
+ObjectNode_Encoding_DefaultXml,262,Object
+ObjectsFolder,85,Object
+ObjectTypeAttributes,361,DataType
+ObjectTypeAttributes_Encoding_DefaultBinary,363,Object
+ObjectTypeAttributes_Encoding_DefaultJson,15158,Object
+ObjectTypeAttributes_Encoding_DefaultXml,362,Object
+ObjectTypeNode,264,DataType
+ObjectTypeNode_Encoding_DefaultBinary,266,Object
+ObjectTypeNode_Encoding_DefaultJson,15073,Object
+ObjectTypeNode_Encoding_DefaultXml,265,Object
+ObjectTypesFolder,88,Object
+OffNormalAlarmType,10637,ObjectType
+OPCBinarySchema_TypeSystem,93,Object
+OpcUa_BinarySchema,7617,Variable
+OpcUa_XmlSchema,8252,Variable
+OPCUANamespaceMetadata,15957,Object
+OpenFileMode,11939,DataType
+OpenSecureChannelRequest,444,DataType
+OpenSecureChannelRequest_Encoding_DefaultBinary,446,Object
+OpenSecureChannelRequest_Encoding_DefaultJson,15132,Object
+OpenSecureChannelRequest_Encoding_DefaultXml,445,Object
+OpenSecureChannelResponse,447,DataType
+OpenSecureChannelResponse_Encoding_DefaultBinary,449,Object
+OpenSecureChannelResponse_Encoding_DefaultJson,15133,Object
+OpenSecureChannelResponse_Encoding_DefaultXml,448,Object
+OperationLimitsType,11564,ObjectType
+OptionSet,12755,DataType
+OptionSet_Encoding_DefaultBinary,12765,Object
+OptionSet_Encoding_DefaultJson,15084,Object
+OptionSet_Encoding_DefaultXml,12757,Object
+OptionSetType,11487,VariableType
+OptionSetValues,12745,Variable
+OrderedListType,23518,ObjectType
+Organizes,35,ReferenceType
+Orientation,18811,DataType
+Orientation_Encoding_DefaultBinary,18820,Object
+Orientation_Encoding_DefaultJson,19069,Object
+Orientation_Encoding_DefaultXml,18856,Object
+OrientationType,18779,VariableType
+OutputArguments,3073,Variable
+OverrideValueHandling,15874,DataType
+ParsingResult,610,DataType
+ParsingResult_Encoding_DefaultBinary,612,Object
+ParsingResult_Encoding_DefaultJson,15236,Object
+ParsingResult_Encoding_DefaultXml,611,Object
+PerformUpdateType,11293,DataType
+PermissionType,94,DataType
+ProcessConditionClassType,11164,ObjectType
+ProgramDiagnostic2DataType,24033,DataType
+ProgramDiagnostic2DataType_Encoding_DefaultBinary,24034,Object
+ProgramDiagnostic2DataType_Encoding_DefaultJson,24042,Object
+ProgramDiagnostic2DataType_Encoding_DefaultXml,24038,Object
+ProgramDiagnostic2Type,15383,VariableType
+ProgramDiagnosticDataType,894,DataType
+ProgramDiagnosticDataType_Encoding_DefaultBinary,896,Object
+ProgramDiagnosticDataType_Encoding_DefaultJson,15381,Object
+ProgramDiagnosticDataType_Encoding_DefaultXml,895,Object
+ProgramDiagnosticType,2380,VariableType
+ProgramStateMachineType,2391,ObjectType
+ProgramTransitionAuditEventType,3806,ObjectType
+ProgramTransitionEventType,2378,ObjectType
+ProgressEventType,11436,ObjectType
+PropertyType,68,VariableType
+PublishedDataItemsDataType,15581,DataType
+PublishedDataItemsDataType_Encoding_DefaultBinary,15679,Object
+PublishedDataItemsDataType_Encoding_DefaultJson,16154,Object
+PublishedDataItemsDataType_Encoding_DefaultXml,15953,Object
+PublishedDataItemsType,14534,ObjectType
+PublishedDataSetDataType,15578,DataType
+PublishedDataSetDataType_Encoding_DefaultBinary,15677,Object
+PublishedDataSetDataType_Encoding_DefaultJson,16152,Object
+PublishedDataSetDataType_Encoding_DefaultXml,15951,Object
+PublishedDataSetSourceDataType,15580,DataType
+PublishedDataSetSourceDataType_Encoding_DefaultBinary,15678,Object
+PublishedDataSetSourceDataType_Encoding_DefaultJson,16153,Object
+PublishedDataSetSourceDataType_Encoding_DefaultXml,15952,Object
+PublishedDataSetType,14509,ObjectType
+PublishedEventsDataType,15582,DataType
+PublishedEventsDataType_Encoding_DefaultBinary,15681,Object
+PublishedEventsDataType_Encoding_DefaultJson,16155,Object
+PublishedEventsDataType_Encoding_DefaultXml,15954,Object
+PublishedEventsType,14572,ObjectType
+PublishedVariableDataType,14273,DataType
+PublishedVariableDataType_Encoding_DefaultBinary,14323,Object
+PublishedVariableDataType_Encoding_DefaultJson,15060,Object
+PublishedVariableDataType_Encoding_DefaultXml,14319,Object
+PublishRequest,824,DataType
+PublishRequest_Encoding_DefaultBinary,826,Object
+PublishRequest_Encoding_DefaultJson,15352,Object
+PublishRequest_Encoding_DefaultXml,825,Object
+PublishResponse,827,DataType
+PublishResponse_Encoding_DefaultBinary,829,Object
+PublishResponse_Encoding_DefaultJson,15353,Object
+PublishResponse_Encoding_DefaultXml,828,Object
+PublishSubscribe,14443,Object
+PublishSubscribeType,14416,ObjectType
+PubSubCommunicationFailureEventType,15563,ObjectType
+PubSubConfigurationDataType,15530,DataType
+PubSubConfigurationDataType_Encoding_DefaultBinary,21154,Object
+PubSubConfigurationDataType_Encoding_DefaultJson,21202,Object
+PubSubConfigurationDataType_Encoding_DefaultXml,21178,Object
+PubSubConnectionDataType,15617,DataType
+PubSubConnectionDataType_Encoding_DefaultBinary,15694,Object
+PubSubConnectionDataType_Encoding_DefaultJson,16281,Object
+PubSubConnectionDataType_Encoding_DefaultXml,15992,Object
+PubSubConnectionType,14209,ObjectType
+PubSubDiagnosticsConnectionType,19786,ObjectType
+PubSubDiagnosticsCounterClassification,19730,DataType
+PubSubDiagnosticsCounterType,19725,VariableType
+PubSubDiagnosticsDataSetReaderType,20027,ObjectType
+PubSubDiagnosticsDataSetWriterType,19968,ObjectType
+PubSubDiagnosticsReaderGroupType,19903,ObjectType
+PubSubDiagnosticsRootType,19732,ObjectType
+PubSubDiagnosticsType,19677,ObjectType
+PubSubDiagnosticsWriterGroupType,19834,ObjectType
+PubSubGroupDataType,15609,DataType
+PubSubGroupDataType_Encoding_DefaultBinary,15689,Object
+PubSubGroupDataType_Encoding_DefaultJson,16159,Object
+PubSubGroupDataType_Encoding_DefaultXml,15988,Object
+PubSubGroupType,14232,ObjectType
+PubSubKeyServiceType,15906,ObjectType
+PubSubState,14647,DataType
+PubSubStatusEventType,15535,ObjectType
+PubSubStatusType,14643,ObjectType
+PubSubTransportLimitsExceedEventType,15548,ObjectType
+QualifiedName,20,DataType
+QueryDataDescription,570,DataType
+QueryDataDescription_Encoding_DefaultBinary,572,Object
+QueryDataDescription_Encoding_DefaultJson,15200,Object
+QueryDataDescription_Encoding_DefaultXml,571,Object
+QueryDataSet,577,DataType
+QueryDataSet_Encoding_DefaultBinary,579,Object
+QueryDataSet_Encoding_DefaultJson,15202,Object
+QueryDataSet_Encoding_DefaultXml,578,Object
+QueryFirstRequest,613,DataType
+QueryFirstRequest_Encoding_DefaultBinary,615,Object
+QueryFirstRequest_Encoding_DefaultJson,15244,Object
+QueryFirstRequest_Encoding_DefaultXml,614,Object
+QueryFirstResponse,616,DataType
+QueryFirstResponse_Encoding_DefaultBinary,618,Object
+QueryFirstResponse_Encoding_DefaultJson,15252,Object
+QueryFirstResponse_Encoding_DefaultXml,617,Object
+QueryNextRequest,619,DataType
+QueryNextRequest_Encoding_DefaultBinary,621,Object
+QueryNextRequest_Encoding_DefaultJson,15254,Object
+QueryNextRequest_Encoding_DefaultXml,620,Object
+QueryNextResponse,622,DataType
+QueryNextResponse_Encoding_DefaultBinary,624,Object
+QueryNextResponse_Encoding_DefaultJson,15255,Object
+QueryNextResponse_Encoding_DefaultXml,623,Object
+Range,884,DataType
+Range_Encoding_DefaultBinary,886,Object
+Range_Encoding_DefaultJson,15375,Object
+Range_Encoding_DefaultXml,885,Object
+RationalNumber,18806,DataType
+RationalNumber_Encoding_DefaultBinary,18815,Object
+RationalNumber_Encoding_DefaultJson,19064,Object
+RationalNumber_Encoding_DefaultXml,18851,Object
+RationalNumberType,17709,VariableType
+ReadAnnotationDataDetails,23497,DataType
+ReadAnnotationDataDetails_Encoding_DefaultBinary,23500,Object
+ReadAnnotationDataDetails_Encoding_DefaultJson,23512,Object
+ReadAnnotationDataDetails_Encoding_DefaultXml,23506,Object
+ReadAtTimeDetails,653,DataType
+ReadAtTimeDetails_Encoding_DefaultBinary,655,Object
+ReadAtTimeDetails_Encoding_DefaultJson,15269,Object
+ReadAtTimeDetails_Encoding_DefaultXml,654,Object
+ReaderGroupDataType,15520,DataType
+ReaderGroupDataType_Encoding_DefaultBinary,21153,Object
+ReaderGroupDataType_Encoding_DefaultJson,21201,Object
+ReaderGroupDataType_Encoding_DefaultXml,21177,Object
+ReaderGroupMessageDataType,15622,DataType
+ReaderGroupMessageDataType_Encoding_DefaultBinary,15702,Object
+ReaderGroupMessageDataType_Encoding_DefaultJson,16285,Object
+ReaderGroupMessageDataType_Encoding_DefaultXml,15996,Object
+ReaderGroupMessageType,21091,ObjectType
+ReaderGroupTransportDataType,15621,DataType
+ReaderGroupTransportDataType_Encoding_DefaultBinary,15701,Object
+ReaderGroupTransportDataType_Encoding_DefaultJson,16284,Object
+ReaderGroupTransportDataType_Encoding_DefaultXml,15995,Object
+ReaderGroupTransportType,21090,ObjectType
+ReaderGroupType,17999,ObjectType
+ReadEventDetails,644,DataType
+ReadEventDetails_Encoding_DefaultBinary,646,Object
+ReadEventDetails_Encoding_DefaultJson,15262,Object
+ReadEventDetails_Encoding_DefaultXml,645,Object
+ReadProcessedDetails,650,DataType
+ReadProcessedDetails_Encoding_DefaultBinary,652,Object
+ReadProcessedDetails_Encoding_DefaultJson,15264,Object
+ReadProcessedDetails_Encoding_DefaultXml,651,Object
+ReadRawModifiedDetails,647,DataType
+ReadRawModifiedDetails_Encoding_DefaultBinary,649,Object
+ReadRawModifiedDetails_Encoding_DefaultJson,15263,Object
+ReadRawModifiedDetails_Encoding_DefaultXml,648,Object
+ReadRequest,629,DataType
+ReadRequest_Encoding_DefaultBinary,631,Object
+ReadRequest_Encoding_DefaultJson,15257,Object
+ReadRequest_Encoding_DefaultXml,630,Object
+ReadResponse,632,DataType
+ReadResponse_Encoding_DefaultBinary,634,Object
+ReadResponse_Encoding_DefaultJson,15258,Object
+ReadResponse_Encoding_DefaultXml,633,Object
+ReadValueId,626,DataType
+ReadValueId_Encoding_DefaultBinary,628,Object
+ReadValueId_Encoding_DefaultJson,15256,Object
+ReadValueId_Encoding_DefaultXml,627,Object
+RedundancySupport,851,DataType
+RedundantServerDataType,853,DataType
+RedundantServerDataType_Encoding_DefaultBinary,855,Object
+RedundantServerDataType_Encoding_DefaultJson,15362,Object
+RedundantServerDataType_Encoding_DefaultXml,854,Object
+ReferenceDescription,518,DataType
+ReferenceDescription_Encoding_DefaultBinary,520,Object
+ReferenceDescription_Encoding_DefaultJson,15182,Object
+ReferenceDescription_Encoding_DefaultXml,519,Object
+ReferenceNode,285,DataType
+ReferenceNode_Encoding_DefaultBinary,287,Object
+ReferenceNode_Encoding_DefaultJson,15080,Object
+ReferenceNode_Encoding_DefaultXml,286,Object
+References,31,ReferenceType
+ReferenceTypeAttributes,367,DataType
+ReferenceTypeAttributes_Encoding_DefaultBinary,369,Object
+ReferenceTypeAttributes_Encoding_DefaultJson,15160,Object
+ReferenceTypeAttributes_Encoding_DefaultXml,368,Object
+ReferenceTypeNode,273,DataType
+ReferenceTypeNode_Encoding_DefaultBinary,275,Object
+ReferenceTypeNode_Encoding_DefaultJson,15076,Object
+ReferenceTypeNode_Encoding_DefaultXml,274,Object
+ReferenceTypesFolder,91,Object
+RefreshEndEventType,2788,ObjectType
+RefreshRequiredEventType,2789,ObjectType
+RefreshStartEventType,2787,ObjectType
+RegisteredServer,432,DataType
+RegisteredServer_Encoding_DefaultBinary,434,Object
+RegisteredServer_Encoding_DefaultJson,15102,Object
+RegisteredServer_Encoding_DefaultXml,433,Object
+RegisterNodesRequest,558,DataType
+RegisterNodesRequest_Encoding_DefaultBinary,560,Object
+RegisterNodesRequest_Encoding_DefaultJson,15195,Object
+RegisterNodesRequest_Encoding_DefaultXml,559,Object
+RegisterNodesResponse,561,DataType
+RegisterNodesResponse_Encoding_DefaultBinary,563,Object
+RegisterNodesResponse_Encoding_DefaultJson,15196,Object
+RegisterNodesResponse_Encoding_DefaultXml,562,Object
+RegisterServer2Request,12193,DataType
+RegisterServer2Request_Encoding_DefaultBinary,12211,Object
+RegisterServer2Request_Encoding_DefaultJson,15107,Object
+RegisterServer2Request_Encoding_DefaultXml,12199,Object
+RegisterServer2Response,12194,DataType
+RegisterServer2Response_Encoding_DefaultBinary,12212,Object
+RegisterServer2Response_Encoding_DefaultJson,15130,Object
+RegisterServer2Response_Encoding_DefaultXml,12200,Object
+RegisterServerRequest,435,DataType
+RegisterServerRequest_Encoding_DefaultBinary,437,Object
+RegisterServerRequest_Encoding_DefaultJson,15103,Object
+RegisterServerRequest_Encoding_DefaultXml,436,Object
+RegisterServerResponse,438,DataType
+RegisterServerResponse_Encoding_DefaultBinary,440,Object
+RegisterServerResponse_Encoding_DefaultJson,15104,Object
+RegisterServerResponse_Encoding_DefaultXml,439,Object
+RelativePath,540,DataType
+RelativePath_Encoding_DefaultBinary,542,Object
+RelativePath_Encoding_DefaultJson,15189,Object
+RelativePath_Encoding_DefaultXml,541,Object
+RelativePathElement,537,DataType
+RelativePathElement_Encoding_DefaultBinary,539,Object
+RelativePathElement_Encoding_DefaultJson,15188,Object
+RelativePathElement_Encoding_DefaultXml,538,Object
+RepublishRequest,830,DataType
+RepublishRequest_Encoding_DefaultBinary,832,Object
+RepublishRequest_Encoding_DefaultJson,15354,Object
+RepublishRequest_Encoding_DefaultXml,831,Object
+RepublishResponse,833,DataType
+RepublishResponse_Encoding_DefaultBinary,835,Object
+RepublishResponse_Encoding_DefaultJson,15355,Object
+RepublishResponse_Encoding_DefaultXml,834,Object
+RequestHeader,389,DataType
+RequestHeader_Encoding_DefaultBinary,391,Object
+RequestHeader_Encoding_DefaultJson,15088,Object
+RequestHeader_Encoding_DefaultXml,390,Object
+Resources,24226,Object
+ResponseHeader,392,DataType
+ResponseHeader_Encoding_DefaultBinary,394,Object
+ResponseHeader_Encoding_DefaultJson,15089,Object
+ResponseHeader_Encoding_DefaultXml,393,Object
+RoleMappingRuleChangedAuditEventType,17641,ObjectType
+RolePermissionType,96,DataType
+RolePermissionType_Encoding_DefaultBinary,128,Object
+RolePermissionType_Encoding_DefaultJson,15062,Object
+RolePermissionType_Encoding_DefaultXml,16126,Object
+RoleSetType,15607,ObjectType
+RoleType,15620,ObjectType
+RootFolder,84,Object
+RsaEncryptedSecret,17545,DataType
+RsaMinApplicationCertificateType,12559,ObjectType
+RsaSha256ApplicationCertificateType,12560,ObjectType
+SafetyConditionClassType,17218,ObjectType
+SamplingIntervalDiagnosticsArrayType,2164,VariableType
+SamplingIntervalDiagnosticsDataType,856,DataType
+SamplingIntervalDiagnosticsDataType_Encoding_DefaultBinary,858,Object
+SamplingIntervalDiagnosticsDataType_Encoding_DefaultJson,15365,Object
+SamplingIntervalDiagnosticsDataType_Encoding_DefaultXml,857,Object
+SamplingIntervalDiagnosticsType,2165,VariableType
+SByte,2,DataType
+SecurityGroupFolderType,15452,ObjectType
+SecurityGroupType,15471,ObjectType
+SecurityTokenRequestType,315,DataType
+SelectionListType,16309,VariableType
+SemanticChangeEventType,2738,ObjectType
+SemanticChangeStructureDataType,897,DataType
+SemanticChangeStructureDataType_Encoding_DefaultBinary,899,Object
+SemanticChangeStructureDataType_Encoding_DefaultJson,15374,Object
+SemanticChangeStructureDataType_Encoding_DefaultXml,898,Object
+Server,2253,Object
+Server_ServerRedundancy_CurrentServerId,11312,Variable
+Server_ServerRedundancy_RedundantServerArray,11313,Variable
+Server_ServerRedundancy_ServerNetworkGroups,14415,Variable
+Server_ServerRedundancy_ServerUriArray,11314,Variable
+ServerCapabilitiesType,2013,ObjectType
+ServerConfiguration,12637,Object
+ServerConfigurationType,12581,ObjectType
+ServerDiagnosticsSummaryDataType,859,DataType
+ServerDiagnosticsSummaryDataType_Encoding_DefaultBinary,861,Object
+ServerDiagnosticsSummaryDataType_Encoding_DefaultJson,15366,Object
+ServerDiagnosticsSummaryDataType_Encoding_DefaultXml,860,Object
+ServerDiagnosticsSummaryType,2150,VariableType
+ServerDiagnosticsType,2020,ObjectType
+ServerOnNetwork,12189,DataType
+ServerOnNetwork_Encoding_DefaultBinary,12207,Object
+ServerOnNetwork_Encoding_DefaultJson,15095,Object
+ServerOnNetwork_Encoding_DefaultXml,12195,Object
+ServerRedundancyType,2034,ObjectType
+ServerState,852,DataType
+ServerStatusDataType,862,DataType
+ServerStatusDataType_Encoding_DefaultBinary,864,Object
+ServerStatusDataType_Encoding_DefaultJson,15367,Object
+ServerStatusDataType_Encoding_DefaultXml,863,Object
+ServerStatusType,2138,VariableType
+ServerType,2004,ObjectType
+ServerVendorCapabilityType,2137,VariableType
+ServiceCounterDataType,871,DataType
+ServiceCounterDataType_Encoding_DefaultBinary,873,Object
+ServiceCounterDataType_Encoding_DefaultJson,15370,Object
+ServiceCounterDataType_Encoding_DefaultXml,872,Object
+ServiceFault,395,DataType
+ServiceFault_Encoding_DefaultBinary,397,Object
+ServiceFault_Encoding_DefaultJson,15090,Object
+ServiceFault_Encoding_DefaultXml,396,Object
+SessionAuthenticationToken,388,DataType
+SessionDiagnosticsArrayType,2196,VariableType
+SessionDiagnosticsDataType,865,DataType
+SessionDiagnosticsDataType_Encoding_DefaultBinary,867,Object
+SessionDiagnosticsDataType_Encoding_DefaultJson,15368,Object
+SessionDiagnosticsDataType_Encoding_DefaultXml,866,Object
+SessionDiagnosticsObjectType,2029,ObjectType
+SessionDiagnosticsVariableType,2197,VariableType
+SessionlessInvokeRequestType,15901,DataType
+SessionlessInvokeRequestType_Encoding_DefaultBinary,15903,Object
+SessionlessInvokeRequestType_Encoding_DefaultJson,15091,Object
+SessionlessInvokeRequestType_Encoding_DefaultXml,15902,Object
+SessionlessInvokeResponseType,20999,DataType
+SessionlessInvokeResponseType_Encoding_DefaultBinary,21001,Object
+SessionlessInvokeResponseType_Encoding_DefaultJson,15092,Object
+SessionlessInvokeResponseType_Encoding_DefaultXml,21000,Object
+SessionsDiagnosticsSummaryType,2026,ObjectType
+SessionSecurityDiagnosticsArrayType,2243,VariableType
+SessionSecurityDiagnosticsDataType,868,DataType
+SessionSecurityDiagnosticsDataType_Encoding_DefaultBinary,870,Object
+SessionSecurityDiagnosticsDataType_Encoding_DefaultJson,15369,Object
+SessionSecurityDiagnosticsDataType_Encoding_DefaultXml,869,Object
+SessionSecurityDiagnosticsType,2244,VariableType
+SetMonitoringModeRequest,767,DataType
+SetMonitoringModeRequest_Encoding_DefaultBinary,769,Object
+SetMonitoringModeRequest_Encoding_DefaultJson,15329,Object
+SetMonitoringModeRequest_Encoding_DefaultXml,768,Object
+SetMonitoringModeResponse,770,DataType
+SetMonitoringModeResponse_Encoding_DefaultBinary,772,Object
+SetMonitoringModeResponse_Encoding_DefaultJson,15331,Object
+SetMonitoringModeResponse_Encoding_DefaultXml,771,Object
+SetPublishingModeRequest,797,DataType
+SetPublishingModeRequest_Encoding_DefaultBinary,799,Object
+SetPublishingModeRequest_Encoding_DefaultJson,15341,Object
+SetPublishingModeRequest_Encoding_DefaultXml,798,Object
+SetPublishingModeResponse,800,DataType
+SetPublishingModeResponse_Encoding_DefaultBinary,802,Object
+SetPublishingModeResponse_Encoding_DefaultJson,15342,Object
+SetPublishingModeResponse_Encoding_DefaultXml,801,Object
+SetTriggeringRequest,773,DataType
+SetTriggeringRequest_Encoding_DefaultBinary,775,Object
+SetTriggeringRequest_Encoding_DefaultJson,15332,Object
+SetTriggeringRequest_Encoding_DefaultXml,774,Object
+SetTriggeringResponse,776,DataType
+SetTriggeringResponse_Encoding_DefaultBinary,778,Object
+SetTriggeringResponse_Encoding_DefaultJson,15333,Object
+SetTriggeringResponse_Encoding_DefaultXml,777,Object
+ShelvedStateMachineType,2929,ObjectType
+SignatureData,456,DataType
+SignatureData_Encoding_DefaultBinary,458,Object
+SignatureData_Encoding_DefaultJson,15137,Object
+SignatureData_Encoding_DefaultXml,457,Object
+SignedSoftwareCertificate,344,DataType
+SignedSoftwareCertificate_Encoding_DefaultBinary,346,Object
+SignedSoftwareCertificate_Encoding_DefaultJson,15136,Object
+SignedSoftwareCertificate_Encoding_DefaultXml,345,Object
+SimpleAttributeOperand,601,DataType
+SimpleAttributeOperand_Encoding_DefaultBinary,603,Object
+SimpleAttributeOperand_Encoding_DefaultJson,15210,Object
+SimpleAttributeOperand_Encoding_DefaultXml,602,Object
+SimpleTypeDescription,15005,DataType
+SimpleTypeDescription_Encoding_DefaultBinary,15421,Object
+SimpleTypeDescription_Encoding_DefaultJson,15700,Object
+SimpleTypeDescription_Encoding_DefaultXml,15529,Object
+StateMachineType,2299,ObjectType
+StateType,2307,ObjectType
+StateVariableType,2755,VariableType
+StatisticalConditionClassType,18665,ObjectType
+StatusChangeNotification,818,DataType
+StatusChangeNotification_Encoding_DefaultBinary,820,Object
+StatusChangeNotification_Encoding_DefaultJson,15350,Object
+StatusChangeNotification_Encoding_DefaultXml,819,Object
+StatusCode,19,DataType
+StatusResult,299,DataType
+StatusResult_Encoding_DefaultBinary,301,Object
+StatusResult_Encoding_DefaultJson,15371,Object
+StatusResult_Encoding_DefaultXml,300,Object
+Streams,24230,Object
+String,12,DataType
+Structure,22,DataType
+StructureDefinition,99,DataType
+StructureDefinition_Encoding_DefaultBinary,122,Object
+StructureDefinition_Encoding_DefaultJson,15066,Object
+StructureDefinition_Encoding_DefaultXml,14798,Object
+StructureDescription,15487,DataType
+StructureDescription_Encoding_DefaultBinary,126,Object
+StructureDescription_Encoding_DefaultJson,15058,Object
+StructureDescription_Encoding_DefaultXml,15589,Object
+StructureField,101,DataType
+StructureField_Encoding_DefaultBinary,14844,Object
+StructureField_Encoding_DefaultJson,15065,Object
+StructureField_Encoding_DefaultXml,14800,Object
+StructureType,98,DataType
+SubscribedDataSetDataType,15630,DataType
+SubscribedDataSetDataType_Encoding_DefaultBinary,15707,Object
+SubscribedDataSetDataType_Encoding_DefaultJson,16308,Object
+SubscribedDataSetDataType_Encoding_DefaultXml,16010,Object
+SubscribedDataSetMirrorDataType,15635,DataType
+SubscribedDataSetMirrorDataType_Encoding_DefaultBinary,15713,Object
+SubscribedDataSetMirrorDataType_Encoding_DefaultJson,16311,Object
+SubscribedDataSetMirrorDataType_Encoding_DefaultXml,16012,Object
+SubscribedDataSetMirrorType,15127,ObjectType
+SubscribedDataSetType,15108,ObjectType
+SubscriptionAcknowledgement,821,DataType
+SubscriptionAcknowledgement_Encoding_DefaultBinary,823,Object
+SubscriptionAcknowledgement_Encoding_DefaultJson,15351,Object
+SubscriptionAcknowledgement_Encoding_DefaultXml,822,Object
+SubscriptionDiagnosticsArrayType,2171,VariableType
+SubscriptionDiagnosticsDataType,874,DataType
+SubscriptionDiagnosticsDataType_Encoding_DefaultBinary,876,Object
+SubscriptionDiagnosticsDataType_Encoding_DefaultJson,15372,Object
+SubscriptionDiagnosticsDataType_Encoding_DefaultXml,875,Object
+SubscriptionDiagnosticsType,2172,VariableType
+SystemConditionClassType,11166,ObjectType
+SystemDiagnosticAlarmType,18496,ObjectType
+SystemEventType,2130,ObjectType
+SystemOffNormalAlarmType,11753,ObjectType
+SystemStatusChangeEventType,11446,ObjectType
+TagVariables,23479,Object
+TalkerStreams,24231,Object
+TargetVariablesDataType,15631,DataType
+TargetVariablesDataType_Encoding_DefaultBinary,15712,Object
+TargetVariablesDataType_Encoding_DefaultJson,16310,Object
+TargetVariablesDataType_Encoding_DefaultXml,16011,Object
+TargetVariablesType,15111,ObjectType
+TemporaryFileTransferType,15744,ObjectType
+TestingConditionSubClassType,17221,ObjectType
+ThreeDCartesianCoordinates,18810,DataType
+ThreeDCartesianCoordinates_Encoding_DefaultBinary,18819,Object
+ThreeDCartesianCoordinates_Encoding_DefaultJson,19068,Object
+ThreeDCartesianCoordinates_Encoding_DefaultXml,18855,Object
+ThreeDCartesianCoordinatesType,18774,VariableType
+ThreeDFrame,18814,DataType
+ThreeDFrame_Encoding_DefaultBinary,18823,Object
+ThreeDFrame_Encoding_DefaultJson,19072,Object
+ThreeDFrame_Encoding_DefaultXml,18859,Object
+ThreeDFrameType,18791,VariableType
+ThreeDOrientation,18812,DataType
+ThreeDOrientation_Encoding_DefaultBinary,18821,Object
+ThreeDOrientation_Encoding_DefaultJson,19070,Object
+ThreeDOrientation_Encoding_DefaultXml,18857,Object
+ThreeDOrientationType,18781,VariableType
+ThreeDVector,18808,DataType
+ThreeDVector_Encoding_DefaultBinary,18817,Object
+ThreeDVector_Encoding_DefaultJson,19066,Object
+ThreeDVector_Encoding_DefaultXml,18853,Object
+ThreeDVectorType,17716,VariableType
+Time,292,DataType
+TimestampsToReturn,625,DataType
+TimeString,12880,DataType
+TimeZoneDataType,8912,DataType
+TimeZoneDataType_Encoding_DefaultBinary,8917,Object
+TimeZoneDataType_Encoding_DefaultJson,15086,Object
+TimeZoneDataType_Encoding_DefaultXml,8913,Object
+Topics,23488,Object
+ToState,52,ReferenceType
+TrainingConditionClassType,17220,ObjectType
+TransferResult,836,DataType
+TransferResult_Encoding_DefaultBinary,838,Object
+TransferResult_Encoding_DefaultJson,15356,Object
+TransferResult_Encoding_DefaultXml,837,Object
+TransferSubscriptionsRequest,839,DataType
+TransferSubscriptionsRequest_Encoding_DefaultBinary,841,Object
+TransferSubscriptionsRequest_Encoding_DefaultJson,15357,Object
+TransferSubscriptionsRequest_Encoding_DefaultXml,840,Object
+TransferSubscriptionsResponse,842,DataType
+TransferSubscriptionsResponse_Encoding_DefaultBinary,844,Object
+TransferSubscriptionsResponse_Encoding_DefaultJson,15358,Object
+TransferSubscriptionsResponse_Encoding_DefaultXml,843,Object
+TransitionEventType,2311,ObjectType
+TransitionType,2310,ObjectType
+TransitionVariableType,2762,VariableType
+TranslateBrowsePathsToNodeIdsRequest,552,DataType
+TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary,554,Object
+TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultJson,15193,Object
+TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultXml,553,Object
+TranslateBrowsePathsToNodeIdsResponse,555,DataType
+TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary,557,Object
+TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultJson,15194,Object
+TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultXml,556,Object
+TransparentRedundancyType,2036,ObjectType
+TripAlarmType,10751,ObjectType
+TrustListDataType,12554,DataType
+TrustListDataType_Encoding_DefaultBinary,12680,Object
+TrustListDataType_Encoding_DefaultJson,15044,Object
+TrustListDataType_Encoding_DefaultXml,12676,Object
+TrustListMasks,12552,DataType
+TrustListOutOfDateAlarmType,19297,ObjectType
+TrustListType,12522,ObjectType
+TrustListUpdatedAuditEventType,12561,ObjectType
+TsnFailureCode,24218,DataType
+TsnListenerStatus,24224,DataType
+TsnStreamState,24220,DataType
+TsnTalkerStatus,24222,DataType
+TwoStateDiscreteType,2373,VariableType
+TwoStateVariableType,8995,VariableType
+TypeNode,11880,DataType
+TypeNode_Encoding_DefaultBinary,11890,Object
+TypeNode_Encoding_DefaultJson,15070,Object
+TypeNode_Encoding_DefaultXml,11888,Object
+TypesFolder,86,Object
+UABinaryFileDataType,15006,DataType
+UABinaryFileDataType_Encoding_DefaultBinary,15422,Object
+UABinaryFileDataType_Encoding_DefaultJson,15714,Object
+UABinaryFileDataType_Encoding_DefaultXml,15531,Object
+UadpDataSetMessageContentMask,15646,DataType
+UadpDataSetReaderMessageDataType,15653,DataType
+UadpDataSetReaderMessageDataType_Encoding_DefaultBinary,15718,Object
+UadpDataSetReaderMessageDataType_Encoding_DefaultJson,16392,Object
+UadpDataSetReaderMessageDataType_Encoding_DefaultXml,16016,Object
+UadpDataSetReaderMessageType,21116,ObjectType
+UadpDataSetWriterMessageDataType,15652,DataType
+UadpDataSetWriterMessageDataType_Encoding_DefaultBinary,15717,Object
+UadpDataSetWriterMessageDataType_Encoding_DefaultJson,16391,Object
+UadpDataSetWriterMessageDataType_Encoding_DefaultXml,16015,Object
+UadpDataSetWriterMessageType,21111,ObjectType
+UadpNetworkMessageContentMask,15642,DataType
+UadpWriterGroupMessageDataType,15645,DataType
+UadpWriterGroupMessageDataType_Encoding_DefaultBinary,15715,Object
+UadpWriterGroupMessageDataType_Encoding_DefaultJson,16323,Object
+UadpWriterGroupMessageDataType_Encoding_DefaultXml,16014,Object
+UadpWriterGroupMessageType,21105,ObjectType
+UInt16,5,DataType
+UInt32,7,DataType
+UInt64,9,DataType
+UInteger,28,DataType
+Union,12756,DataType
+Union_Encoding_DefaultBinary,12766,Object
+Union_Encoding_DefaultJson,15085,Object
+Union_Encoding_DefaultXml,12758,Object
+UnregisterNodesRequest,564,DataType
+UnregisterNodesRequest_Encoding_DefaultBinary,566,Object
+UnregisterNodesRequest_Encoding_DefaultJson,15197,Object
+UnregisterNodesRequest_Encoding_DefaultXml,565,Object
+UnregisterNodesResponse,567,DataType
+UnregisterNodesResponse_Encoding_DefaultBinary,569,Object
+UnregisterNodesResponse_Encoding_DefaultJson,15198,Object
+UnregisterNodesResponse_Encoding_DefaultXml,568,Object
+UnsignedRationalNumber,24107,DataType
+UnsignedRationalNumber_Encoding_DefaultBinary,24110,Object
+UnsignedRationalNumber_Encoding_DefaultJson,24134,Object
+UnsignedRationalNumber_Encoding_DefaultXml,24122,Object
+UpdateDataDetails,680,DataType
+UpdateDataDetails_Encoding_DefaultBinary,682,Object
+UpdateDataDetails_Encoding_DefaultJson,15280,Object
+UpdateDataDetails_Encoding_DefaultXml,681,Object
+UpdateEventDetails,683,DataType
+UpdateEventDetails_Encoding_DefaultBinary,685,Object
+UpdateEventDetails_Encoding_DefaultJson,15282,Object
+UpdateEventDetails_Encoding_DefaultXml,684,Object
+UpdateStructureDataDetails,11295,DataType
+UpdateStructureDataDetails_Encoding_DefaultBinary,11300,Object
+UpdateStructureDataDetails_Encoding_DefaultJson,15281,Object
+UpdateStructureDataDetails_Encoding_DefaultXml,11296,Object
+UriDictionaryEntryType,17600,ObjectType
+UserCredentialCertificateType,15181,ObjectType
+UserIdentityToken,316,DataType
+UserIdentityToken_Encoding_DefaultBinary,318,Object
+UserIdentityToken_Encoding_DefaultJson,15140,Object
+UserIdentityToken_Encoding_DefaultXml,317,Object
+UserNameIdentityToken,322,DataType
+UserNameIdentityToken_Encoding_DefaultBinary,324,Object
+UserNameIdentityToken_Encoding_DefaultJson,15142,Object
+UserNameIdentityToken_Encoding_DefaultXml,323,Object
+UserTokenPolicy,304,DataType
+UserTokenPolicy_Encoding_DefaultBinary,306,Object
+UserTokenPolicy_Encoding_DefaultJson,15098,Object
+UserTokenPolicy_Encoding_DefaultXml,305,Object
+UserTokenType,303,DataType
+UtcTime,294,DataType
+ValueAsText,11433,Variable
+VariableAttributes,355,DataType
+VariableAttributes_Encoding_DefaultBinary,357,Object
+VariableAttributes_Encoding_DefaultJson,15153,Object
+VariableAttributes_Encoding_DefaultXml,356,Object
+VariableNode,267,DataType
+VariableNode_Encoding_DefaultBinary,269,Object
+VariableNode_Encoding_DefaultJson,15074,Object
+VariableNode_Encoding_DefaultXml,268,Object
+VariableTypeAttributes,364,DataType
+VariableTypeAttributes_Encoding_DefaultBinary,366,Object
+VariableTypeAttributes_Encoding_DefaultJson,15159,Object
+VariableTypeAttributes_Encoding_DefaultXml,365,Object
+VariableTypeNode,270,DataType
+VariableTypeNode_Encoding_DefaultBinary,272,Object
+VariableTypeNode_Encoding_DefaultJson,15075,Object
+VariableTypeNode_Encoding_DefaultXml,271,Object
+VariableTypesFolder,89,Object
+Vector,18807,DataType
+Vector_Encoding_DefaultBinary,18816,Object
+Vector_Encoding_DefaultJson,19065,Object
+Vector_Encoding_DefaultXml,18852,Object
+VectorType,17714,VariableType
+VendorServerInfoType,2033,ObjectType
+VersionTime,20998,DataType
+ViewAttributes,373,DataType
+ViewAttributes_Encoding_DefaultBinary,375,Object
+ViewAttributes_Encoding_DefaultJson,15162,Object
+ViewAttributes_Encoding_DefaultXml,374,Object
+ViewDescription,511,DataType
+ViewDescription_Encoding_DefaultBinary,513,Object
+ViewDescription_Encoding_DefaultJson,15179,Object
+ViewDescription_Encoding_DefaultXml,512,Object
+ViewNode,279,DataType
+ViewNode_Encoding_DefaultBinary,281,Object
+ViewNode_Encoding_DefaultJson,15078,Object
+ViewNode_Encoding_DefaultXml,280,Object
+ViewsFolder,87,Object
+ViewVersion,12170,Variable
+WellKnownRole_Anonymous,15644,Object
+WellKnownRole_AuthenticatedUser,15656,Object
+WellKnownRole_ConfigureAdmin,15716,Object
+WellKnownRole_Engineer,16036,Object
+WellKnownRole_Observer,15668,Object
+WellKnownRole_Operator,15680,Object
+WellKnownRole_SecurityAdmin,15704,Object
+WellKnownRole_Supervisor,15692,Object
+WriteRequest,671,DataType
+WriteRequest_Encoding_DefaultBinary,673,Object
+WriteRequest_Encoding_DefaultJson,15277,Object
+WriteRequest_Encoding_DefaultXml,672,Object
+WriteResponse,674,DataType
+WriteResponse_Encoding_DefaultBinary,676,Object
+WriteResponse_Encoding_DefaultJson,15278,Object
+WriteResponse_Encoding_DefaultXml,675,Object
+WriterGroupDataType,15480,DataType
+WriterGroupDataType_Encoding_DefaultBinary,21150,Object
+WriterGroupDataType_Encoding_DefaultJson,21198,Object
+WriterGroupDataType_Encoding_DefaultXml,21174,Object
+WriterGroupMessageDataType,15616,DataType
+WriterGroupMessageDataType_Encoding_DefaultBinary,15693,Object
+WriterGroupMessageDataType_Encoding_DefaultJson,16280,Object
+WriterGroupMessageDataType_Encoding_DefaultXml,15991,Object
+WriterGroupMessageType,17998,ObjectType
+WriterGroupTransportDataType,15611,DataType
+WriterGroupTransportDataType_Encoding_DefaultBinary,15691,Object
+WriterGroupTransportDataType_Encoding_DefaultJson,16161,Object
+WriterGroupTransportDataType_Encoding_DefaultXml,15990,Object
+WriterGroupTransportType,17997,ObjectType
+WriterGroupType,17725,ObjectType
+WriteValue,668,DataType
+WriteValue_Encoding_DefaultBinary,670,Object
+WriteValue_Encoding_DefaultJson,15276,Object
+WriteValue_Encoding_DefaultXml,669,Object
+X509IdentityToken,325,DataType
+X509IdentityToken_Encoding_DefaultBinary,327,Object
+X509IdentityToken_Encoding_DefaultJson,15143,Object
+X509IdentityToken_Encoding_DefaultXml,326,Object
+XmlElement,16,DataType
+XmlSchema_TypeSystem,92,Object
+XVType,12080,DataType
+XVType_Encoding_DefaultBinary,12090,Object
+XVType_Encoding_DefaultJson,15380,Object
+XVType_Encoding_DefaultXml,12082,Object
+XYArrayItemType,12038,VariableType
+YArrayItemType,12029,VariableType
diff --git a/protocols/opcua/downloads/Opc.Ua.NodeSet2.Services.xml b/protocols/opcua/downloads/Opc.Ua.NodeSet2.Services.xml
new file mode 100644
index 0000000000..d37964bb2f
--- /dev/null
+++ b/protocols/opcua/downloads/Opc.Ua.NodeSet2.Services.xml
@@ -0,0 +1,63477 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ * Copyright (c) 2005-2021 The OPC Foundation, Inc. All rights reserved.
+ *
+ * OPC Foundation MIT License 1.00
+ * 
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ * 
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * The complete license agreement can be found here:
+ * http://opcfoundation.org/License/MIT/1.00/
+-->
+
+<UANodeSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" LastModified="2021-09-15T00:00:00Z" xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd">
+  <Models>
+    <Model ModelUri="http://opcfoundation.org/UA/" Version="1.04.10" PublicationDate="2021-09-15T00:00:00Z" />
+  </Models>
+  <Aliases>
+    <Alias Alias="Boolean">i=1</Alias>
+    <Alias Alias="SByte">i=2</Alias>
+    <Alias Alias="Byte">i=3</Alias>
+    <Alias Alias="Int16">i=4</Alias>
+    <Alias Alias="UInt16">i=5</Alias>
+    <Alias Alias="Int32">i=6</Alias>
+    <Alias Alias="UInt32">i=7</Alias>
+    <Alias Alias="Int64">i=8</Alias>
+    <Alias Alias="UInt64">i=9</Alias>
+    <Alias Alias="Float">i=10</Alias>
+    <Alias Alias="Double">i=11</Alias>
+    <Alias Alias="DateTime">i=13</Alias>
+    <Alias Alias="String">i=12</Alias>
+    <Alias Alias="ByteString">i=15</Alias>
+    <Alias Alias="Guid">i=14</Alias>
+    <Alias Alias="XmlElement">i=16</Alias>
+    <Alias Alias="NodeId">i=17</Alias>
+    <Alias Alias="ExpandedNodeId">i=18</Alias>
+    <Alias Alias="QualifiedName">i=20</Alias>
+    <Alias Alias="LocalizedText">i=21</Alias>
+    <Alias Alias="StatusCode">i=19</Alias>
+    <Alias Alias="Structure">i=22</Alias>
+    <Alias Alias="Number">i=26</Alias>
+    <Alias Alias="Integer">i=27</Alias>
+    <Alias Alias="UInteger">i=28</Alias>
+    <Alias Alias="HasComponent">i=47</Alias>
+    <Alias Alias="HasProperty">i=46</Alias>
+    <Alias Alias="Organizes">i=35</Alias>
+    <Alias Alias="HasEventSource">i=36</Alias>
+    <Alias Alias="HasNotifier">i=48</Alias>
+    <Alias Alias="HasSubtype">i=45</Alias>
+    <Alias Alias="HasTypeDefinition">i=40</Alias>
+    <Alias Alias="HasModellingRule">i=37</Alias>
+    <Alias Alias="HasEncoding">i=38</Alias>
+    <Alias Alias="HasDescription">i=39</Alias>
+    <Alias Alias="HasCause">i=53</Alias>
+    <Alias Alias="ToState">i=52</Alias>
+    <Alias Alias="FromState">i=51</Alias>
+    <Alias Alias="HasEffect">i=54</Alias>
+    <Alias Alias="HasTrueSubState">i=9004</Alias>
+    <Alias Alias="HasFalseSubState">i=9005</Alias>
+    <Alias Alias="HasDictionaryEntry">i=17597</Alias>
+    <Alias Alias="HasCondition">i=9006</Alias>
+    <Alias Alias="HasGuard">i=15112</Alias>
+    <Alias Alias="HasAddIn">i=17604</Alias>
+    <Alias Alias="HasInterface">i=17603</Alias>
+  </Aliases>
+  <UAObject NodeId="i=3062" BrowseName="Default Binary" SymbolicName="DefaultBinary">
+    <DisplayName>Default Binary</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=58</Reference>
+    </References>
+  </UAObject>
+  <UAObject NodeId="i=3063" BrowseName="Default XML" SymbolicName="DefaultXml">
+    <DisplayName>Default XML</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=58</Reference>
+    </References>
+  </UAObject>
+  <UADataType NodeId="i=24" BrowseName="BaseDataType" IsAbstract="true">
+    <DisplayName>BaseDataType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2</Documentation>
+    <References />
+  </UADataType>
+  <UADataType NodeId="i=26" BrowseName="Number" IsAbstract="true">
+    <DisplayName>Number</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=27" BrowseName="Integer" IsAbstract="true">
+    <DisplayName>Integer</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=26</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=28" BrowseName="UInteger" IsAbstract="true">
+    <DisplayName>UInteger</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=26</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=29" BrowseName="Enumeration" IsAbstract="true">
+    <DisplayName>Enumeration</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Part22/docs/5.3.1</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+    <Definition Name="Enumeration" />
+  </UADataType>
+  <UADataType NodeId="i=1" BrowseName="Boolean">
+    <DisplayName>Boolean</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.8</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=2" BrowseName="SByte">
+    <DisplayName>SByte</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.17</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=27</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=3" BrowseName="Byte">
+    <DisplayName>Byte</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.9</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=28</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=4" BrowseName="Int16">
+    <DisplayName>Int16</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.25</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=27</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=5" BrowseName="UInt16">
+    <DisplayName>UInt16</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.35</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=28</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=6" BrowseName="Int32">
+    <DisplayName>Int32</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.26</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=27</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=7" BrowseName="UInt32">
+    <DisplayName>UInt32</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.36</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=28</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=8" BrowseName="Int64">
+    <DisplayName>Int64</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.27</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=27</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=9" BrowseName="UInt64">
+    <DisplayName>UInt64</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=28</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=10" BrowseName="Float">
+    <DisplayName>Float</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.15</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=26</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=11" BrowseName="Double">
+    <DisplayName>Double</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=26</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=12" BrowseName="String">
+    <DisplayName>String</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=13" BrowseName="DateTime">
+    <DisplayName>DateTime</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=14" BrowseName="Guid">
+    <DisplayName>Guid</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.16</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=15" BrowseName="ByteString">
+    <DisplayName>ByteString</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=16" BrowseName="XmlElement">
+    <DisplayName>XmlElement</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.39</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=17" BrowseName="NodeId">
+    <DisplayName>NodeId</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/5.2.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=18" BrowseName="ExpandedNodeId">
+    <DisplayName>ExpandedNodeId</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part4/7.11</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=19" BrowseName="StatusCode">
+    <DisplayName>StatusCode</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part4/7.34.1</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=20" BrowseName="QualifiedName">
+    <DisplayName>QualifiedName</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.3</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=21" BrowseName="LocalizedText">
+    <DisplayName>LocalizedText</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.5</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=22" BrowseName="Structure" IsAbstract="true">
+    <DisplayName>Structure</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Part22/docs/5.3.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=23" BrowseName="DataValue">
+    <DisplayName>DataValue</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part4/7.7.1</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=25" BrowseName="DiagnosticInfo">
+    <DisplayName>DiagnosticInfo</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part4/7.8</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=24</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=30" BrowseName="Image" IsAbstract="true">
+    <DisplayName>Image</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/12.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=15</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=50" BrowseName="Decimal">
+    <DisplayName>Decimal</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.54</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=26</Reference>
+    </References>
+  </UADataType>
+  <UAReferenceType NodeId="i=31" BrowseName="References" IsAbstract="true" Symmetric="true">
+    <DisplayName>References</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.1</Documentation>
+    <References />
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=32" BrowseName="NonHierarchicalReferences" IsAbstract="true" Symmetric="true">
+    <DisplayName>NonHierarchicalReferences</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.3</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=31</Reference>
+    </References>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=33" BrowseName="HierarchicalReferences" IsAbstract="true">
+    <DisplayName>HierarchicalReferences</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=31</Reference>
+    </References>
+    <InverseName>HierarchicalReferences</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=34" BrowseName="HasChild" IsAbstract="true">
+    <DisplayName>HasChild</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.4</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=33</Reference>
+    </References>
+    <InverseName>ChildOf</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=35" BrowseName="Organizes">
+    <DisplayName>Organizes</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.6</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=33</Reference>
+    </References>
+    <InverseName>OrganizedBy</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=36" BrowseName="HasEventSource">
+    <DisplayName>HasEventSource</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.14</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=33</Reference>
+    </References>
+    <InverseName>EventSourceOf</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=37" BrowseName="HasModellingRule">
+    <DisplayName>HasModellingRule</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.11</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
+    </References>
+    <InverseName>ModellingRuleOf</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=38" BrowseName="HasEncoding">
+    <DisplayName>HasEncoding</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.13</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
+    </References>
+    <InverseName>EncodingOf</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=39" BrowseName="HasDescription">
+    <DisplayName>HasDescription</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/D.5.1</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
+    </References>
+    <InverseName>DescriptionOf</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=40" BrowseName="HasTypeDefinition">
+    <DisplayName>HasTypeDefinition</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.12</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
+    </References>
+    <InverseName>TypeDefinitionOf</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=41" BrowseName="GeneratesEvent">
+    <DisplayName>GeneratesEvent</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.16</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
+    </References>
+    <InverseName>GeneratedBy</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=3065" BrowseName="AlwaysGeneratesEvent">
+    <DisplayName>AlwaysGeneratesEvent</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.17</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=41</Reference>
+    </References>
+    <InverseName>AlwaysGeneratedBy</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=44" BrowseName="Aggregates" IsAbstract="true">
+    <DisplayName>Aggregates</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.5</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=34</Reference>
+    </References>
+    <InverseName>AggregatedBy</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=45" BrowseName="HasSubtype">
+    <DisplayName>HasSubtype</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.10</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=34</Reference>
+    </References>
+    <InverseName>SubtypeOf</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=46" BrowseName="HasProperty">
+    <DisplayName>HasProperty</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.9</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=44</Reference>
+    </References>
+    <InverseName>PropertyOf</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=47" BrowseName="HasComponent">
+    <DisplayName>HasComponent</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.7</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=44</Reference>
+    </References>
+    <InverseName>ComponentOf</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=48" BrowseName="HasNotifier">
+    <DisplayName>HasNotifier</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.15</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=36</Reference>
+    </References>
+    <InverseName>NotifierOf</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=49" BrowseName="HasOrderedComponent">
+    <DisplayName>HasOrderedComponent</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/11.8</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=47</Reference>
+    </References>
+    <InverseName>OrderedComponentOf</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=51" BrowseName="FromState">
+    <DisplayName>FromState</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.11</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
+    </References>
+    <InverseName>ToTransition</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=52" BrowseName="ToState">
+    <DisplayName>ToState</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.12</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
+    </References>
+    <InverseName>FromTransition</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=53" BrowseName="HasCause">
+    <DisplayName>HasCause</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.13</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
+    </References>
+    <InverseName>MayBeCausedBy</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=54" BrowseName="HasEffect">
+    <DisplayName>HasEffect</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.14</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
+    </References>
+    <InverseName>MayBeEffectedBy</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=117" BrowseName="HasSubStateMachine">
+    <DisplayName>HasSubStateMachine</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/B.4.15</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=32</Reference>
+    </References>
+    <InverseName>SubStateMachineOf</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=56" BrowseName="HasHistoricalConfiguration">
+    <DisplayName>HasHistoricalConfiguration</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part11/5.2.3</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=44</Reference>
+    </References>
+    <InverseName>HistoricalConfigurationOf</InverseName>
+  </UAReferenceType>
+  <UAObjectType NodeId="i=58" BrowseName="BaseObjectType">
+    <DisplayName>BaseObjectType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/6.2</Documentation>
+    <References />
+  </UAObjectType>
+  <UAObjectType NodeId="i=61" BrowseName="FolderType">
+    <DisplayName>FolderType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/6.6</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=58</Reference>
+    </References>
+  </UAObjectType>
+  <UAVariableType NodeId="i=62" BrowseName="BaseVariableType" IsAbstract="true" ValueRank="-2">
+    <DisplayName>BaseVariableType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/7.2</Documentation>
+    <References />
+  </UAVariableType>
+  <UAVariableType NodeId="i=63" BrowseName="BaseDataVariableType" ValueRank="-2">
+    <DisplayName>BaseDataVariableType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/7.4</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=62</Reference>
+    </References>
+  </UAVariableType>
+  <UAVariableType NodeId="i=68" BrowseName="PropertyType" ValueRank="-2">
+    <DisplayName>PropertyType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/7.3</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=62</Reference>
+    </References>
+  </UAVariableType>
+  <UAVariableType NodeId="i=69" BrowseName="DataTypeDescriptionType" ReleaseStatus="Deprecated" DataType="String">
+    <DisplayName>DataTypeDescriptionType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/D.5.3</Documentation>
+    <References>
+      <Reference ReferenceType="HasProperty">i=104</Reference>
+      <Reference ReferenceType="HasProperty">i=105</Reference>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=63</Reference>
+    </References>
+  </UAVariableType>
+  <UAVariable NodeId="i=104" BrowseName="DataTypeVersion" ReleaseStatus="Deprecated" ParentNodeId="i=69" DataType="String">
+    <DisplayName>DataTypeVersion</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=80</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=69</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=105" BrowseName="DictionaryFragment" ReleaseStatus="Deprecated" ParentNodeId="i=69" DataType="ByteString">
+    <DisplayName>DictionaryFragment</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=80</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=69</Reference>
+    </References>
+  </UAVariable>
+  <UAVariableType NodeId="i=72" BrowseName="DataTypeDictionaryType" ReleaseStatus="Deprecated" DataType="ByteString">
+    <DisplayName>DataTypeDictionaryType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/D.5.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasProperty">i=106</Reference>
+      <Reference ReferenceType="HasProperty">i=107</Reference>
+      <Reference ReferenceType="HasProperty">i=15001</Reference>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=63</Reference>
+    </References>
+  </UAVariableType>
+  <UAVariable NodeId="i=106" BrowseName="DataTypeVersion" ReleaseStatus="Deprecated" ParentNodeId="i=72" DataType="String">
+    <DisplayName>DataTypeVersion</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=80</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=72</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=107" BrowseName="NamespaceUri" ReleaseStatus="Deprecated" ParentNodeId="i=72" DataType="String">
+    <DisplayName>NamespaceUri</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=80</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=72</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=15001" BrowseName="Deprecated" ReleaseStatus="Deprecated" ParentNodeId="i=72" DataType="Boolean">
+    <DisplayName>Deprecated</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=80</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=72</Reference>
+    </References>
+  </UAVariable>
+  <UAObjectType NodeId="i=75" BrowseName="DataTypeSystemType" ReleaseStatus="Deprecated">
+    <DisplayName>DataTypeSystemType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/D.5.4</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=58</Reference>
+    </References>
+  </UAObjectType>
+  <UAObjectType NodeId="i=76" BrowseName="DataTypeEncodingType">
+    <DisplayName>DataTypeEncodingType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/6.7</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=58</Reference>
+    </References>
+  </UAObjectType>
+  <UADataType NodeId="i=120" BrowseName="NamingRuleType">
+    <DisplayName>NamingRuleType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.29</Documentation>
+    <References>
+      <Reference ReferenceType="HasProperty">i=12169</Reference>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=29</Reference>
+    </References>
+    <Definition Name="NamingRuleType">
+      <Field Name="Mandatory" Value="1">
+        <Description>The BrowseName must appear in all instances of the type.</Description>
+      </Field>
+      <Field Name="Optional" Value="2">
+        <Description>The BrowseName may appear in an instance of the type.</Description>
+      </Field>
+      <Field Name="Constraint" Value="3">
+        <Description>The modelling rule defines a constraint and the BrowseName is not used in an instance of the type.</Description>
+      </Field>
+    </Definition>
+  </UADataType>
+  <UAVariable NodeId="i=12169" BrowseName="EnumValues" ParentNodeId="i=120" DataType="i=7594" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>EnumValues</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=120</Reference>
+    </References>
+    <Value>
+      <ListOfExtensionObject xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
+        <ExtensionObject>
+          <TypeId>
+            <Identifier>i=7616</Identifier>
+          </TypeId>
+          <Body>
+            <EnumValueType>
+              <Value>1</Value>
+              <DisplayName>
+                <Text>Mandatory</Text>
+              </DisplayName>
+              <Description>
+                <Text>The BrowseName must appear in all instances of the type.</Text>
+              </Description>
+            </EnumValueType>
+          </Body>
+        </ExtensionObject>
+        <ExtensionObject>
+          <TypeId>
+            <Identifier>i=7616</Identifier>
+          </TypeId>
+          <Body>
+            <EnumValueType>
+              <Value>2</Value>
+              <DisplayName>
+                <Text>Optional</Text>
+              </DisplayName>
+              <Description>
+                <Text>The BrowseName may appear in an instance of the type.</Text>
+              </Description>
+            </EnumValueType>
+          </Body>
+        </ExtensionObject>
+        <ExtensionObject>
+          <TypeId>
+            <Identifier>i=7616</Identifier>
+          </TypeId>
+          <Body>
+            <EnumValueType>
+              <Value>3</Value>
+              <DisplayName>
+                <Text>Constraint</Text>
+              </DisplayName>
+              <Description>
+                <Text>The modelling rule defines a constraint and the BrowseName is not used in an instance of the type.</Text>
+              </Description>
+            </EnumValueType>
+          </Body>
+        </ExtensionObject>
+      </ListOfExtensionObject>
+    </Value>
+  </UAVariable>
+  <UAObjectType NodeId="i=77" BrowseName="ModellingRuleType">
+    <DisplayName>ModellingRuleType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/6.5</Documentation>
+    <References>
+      <Reference ReferenceType="HasProperty">i=111</Reference>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=58</Reference>
+    </References>
+  </UAObjectType>
+  <UAVariable NodeId="i=111" BrowseName="NamingRule" ParentNodeId="i=77" DataType="i=120">
+    <DisplayName>NamingRule</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=77</Reference>
+    </References>
+    <Value>
+      <Int32 xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">1</Int32>
+    </Value>
+  </UAVariable>
+  <UAObject NodeId="i=78" BrowseName="Mandatory" SymbolicName="ModellingRule_Mandatory">
+    <DisplayName>Mandatory</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/8.4.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasProperty">i=112</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=77</Reference>
+    </References>
+  </UAObject>
+  <UAVariable NodeId="i=112" BrowseName="NamingRule" ParentNodeId="i=78" DataType="i=120">
+    <DisplayName>NamingRule</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=78</Reference>
+    </References>
+    <Value>
+      <Int32 xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">1</Int32>
+    </Value>
+  </UAVariable>
+  <UAObject NodeId="i=80" BrowseName="Optional" SymbolicName="ModellingRule_Optional">
+    <DisplayName>Optional</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/8.4.3</Documentation>
+    <References>
+      <Reference ReferenceType="HasProperty">i=113</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=77</Reference>
+    </References>
+  </UAObject>
+  <UAVariable NodeId="i=113" BrowseName="NamingRule" ParentNodeId="i=80" DataType="i=120">
+    <DisplayName>NamingRule</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=80</Reference>
+    </References>
+    <Value>
+      <Int32 xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">2</Int32>
+    </Value>
+  </UAVariable>
+  <UAObject NodeId="i=83" BrowseName="ExposesItsArray" SymbolicName="ModellingRule_ExposesItsArray">
+    <DisplayName>ExposesItsArray</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/8.4.1</Documentation>
+    <References>
+      <Reference ReferenceType="HasProperty">i=114</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=77</Reference>
+    </References>
+  </UAObject>
+  <UAVariable NodeId="i=114" BrowseName="NamingRule" ParentNodeId="i=83" DataType="i=120">
+    <DisplayName>NamingRule</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=83</Reference>
+    </References>
+    <Value>
+      <Int32 xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">3</Int32>
+    </Value>
+  </UAVariable>
+  <UAObject NodeId="i=11508" BrowseName="OptionalPlaceholder" SymbolicName="ModellingRule_OptionalPlaceholder">
+    <DisplayName>OptionalPlaceholder</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/8.4.4</Documentation>
+    <References>
+      <Reference ReferenceType="HasProperty">i=11509</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=77</Reference>
+    </References>
+  </UAObject>
+  <UAVariable NodeId="i=11509" BrowseName="NamingRule" ParentNodeId="i=11508" DataType="i=120">
+    <DisplayName>NamingRule</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=11508</Reference>
+    </References>
+    <Value>
+      <Int32 xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">2</Int32>
+    </Value>
+  </UAVariable>
+  <UAObject NodeId="i=11510" BrowseName="MandatoryPlaceholder" SymbolicName="ModellingRule_MandatoryPlaceholder">
+    <DisplayName>MandatoryPlaceholder</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/8.4.5</Documentation>
+    <References>
+      <Reference ReferenceType="HasProperty">i=11511</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=77</Reference>
+    </References>
+  </UAObject>
+  <UAVariable NodeId="i=11511" BrowseName="NamingRule" ParentNodeId="i=11510" DataType="i=120">
+    <DisplayName>NamingRule</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=11510</Reference>
+    </References>
+    <Value>
+      <Int32 xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">1</Int32>
+    </Value>
+  </UAVariable>
+  <UAObject NodeId="i=84" BrowseName="Root" SymbolicName="RootFolder">
+    <DisplayName>Root</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.2</Documentation>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=61</Reference>
+    </References>
+  </UAObject>
+  <UAObject NodeId="i=85" BrowseName="Objects" SymbolicName="ObjectsFolder">
+    <DisplayName>Objects</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.4</Documentation>
+    <References>
+      <Reference ReferenceType="Organizes" IsForward="false">i=84</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=61</Reference>
+    </References>
+  </UAObject>
+  <UAObject NodeId="i=86" BrowseName="Types" SymbolicName="TypesFolder">
+    <DisplayName>Types</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.5</Documentation>
+    <References>
+      <Reference ReferenceType="Organizes" IsForward="false">i=84</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=61</Reference>
+    </References>
+  </UAObject>
+  <UAObject NodeId="i=87" BrowseName="Views" SymbolicName="ViewsFolder">
+    <DisplayName>Views</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.3</Documentation>
+    <References>
+      <Reference ReferenceType="Organizes" IsForward="false">i=84</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=61</Reference>
+    </References>
+  </UAObject>
+  <UAObject NodeId="i=88" BrowseName="ObjectTypes" SymbolicName="ObjectTypesFolder">
+    <DisplayName>ObjectTypes</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.6</Documentation>
+    <References>
+      <Reference ReferenceType="Organizes" IsForward="false">i=86</Reference>
+      <Reference ReferenceType="Organizes">i=58</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=61</Reference>
+    </References>
+  </UAObject>
+  <UAObject NodeId="i=89" BrowseName="VariableTypes" SymbolicName="VariableTypesFolder">
+    <DisplayName>VariableTypes</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.7</Documentation>
+    <References>
+      <Reference ReferenceType="Organizes" IsForward="false">i=86</Reference>
+      <Reference ReferenceType="Organizes">i=62</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=61</Reference>
+    </References>
+  </UAObject>
+  <UAObject NodeId="i=90" BrowseName="DataTypes" SymbolicName="DataTypesFolder">
+    <DisplayName>DataTypes</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.9</Documentation>
+    <References>
+      <Reference ReferenceType="Organizes" IsForward="false">i=86</Reference>
+      <Reference ReferenceType="Organizes">i=24</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=61</Reference>
+    </References>
+  </UAObject>
+  <UAObject NodeId="i=91" BrowseName="ReferenceTypes" SymbolicName="ReferenceTypesFolder">
+    <DisplayName>ReferenceTypes</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/8.2.8</Documentation>
+    <References>
+      <Reference ReferenceType="Organizes" IsForward="false">i=86</Reference>
+      <Reference ReferenceType="Organizes">i=31</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=61</Reference>
+    </References>
+  </UAObject>
+  <UAObject NodeId="i=92" BrowseName="XML Schema" SymbolicName="XmlSchema_TypeSystem" ReleaseStatus="Deprecated">
+    <DisplayName>XML Schema</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/D.5.6</Documentation>
+    <References>
+      <Reference ReferenceType="Organizes" IsForward="false">i=90</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=75</Reference>
+    </References>
+  </UAObject>
+  <UAObject NodeId="i=93" BrowseName="OPC Binary" SymbolicName="OPCBinarySchema_TypeSystem" ReleaseStatus="Deprecated">
+    <DisplayName>OPC Binary</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/D.5.5</Documentation>
+    <References>
+      <Reference ReferenceType="Organizes" IsForward="false">i=90</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=75</Reference>
+    </References>
+  </UAObject>
+  <UAReferenceType NodeId="i=129" BrowseName="HasArgumentDescription">
+    <DisplayName>HasArgumentDescription</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Amendment3/11.18</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=47</Reference>
+    </References>
+    <InverseName>ArgumentDescriptionOf</InverseName>
+  </UAReferenceType>
+  <UAReferenceType NodeId="i=131" BrowseName="HasOptionalInputArgumentDescription">
+    <DisplayName>HasOptionalInputArgumentDescription</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Amendment3/11.19</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=129</Reference>
+    </References>
+    <InverseName>OptionalInputArgumentDescriptionOf</InverseName>
+  </UAReferenceType>
+  <UAObject NodeId="i=15957" BrowseName="0:http://opcfoundation.org/UA/" SymbolicName="OPCUANamespaceMetadata">
+    <DisplayName>http://opcfoundation.org/UA/</DisplayName>
+    <References>
+      <Reference ReferenceType="HasProperty">i=15958</Reference>
+      <Reference ReferenceType="HasProperty">i=15959</Reference>
+      <Reference ReferenceType="HasProperty">i=15960</Reference>
+      <Reference ReferenceType="HasProperty">i=15961</Reference>
+      <Reference ReferenceType="HasProperty">i=15962</Reference>
+      <Reference ReferenceType="HasProperty">i=15963</Reference>
+      <Reference ReferenceType="HasProperty">i=15964</Reference>
+      <Reference ReferenceType="HasProperty">i=16134</Reference>
+      <Reference ReferenceType="HasProperty">i=16135</Reference>
+      <Reference ReferenceType="HasProperty">i=16136</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=11715</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=11616</Reference>
+    </References>
+  </UAObject>
+  <UAVariable NodeId="i=15958" BrowseName="NamespaceUri" ParentNodeId="i=15957" DataType="String">
+    <DisplayName>NamespaceUri</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=15957</Reference>
+    </References>
+    <Value>
+      <String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">http://opcfoundation.org/UA/</String>
+    </Value>
+  </UAVariable>
+  <UAVariable NodeId="i=15959" BrowseName="NamespaceVersion" ParentNodeId="i=15957" DataType="String">
+    <DisplayName>NamespaceVersion</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=15957</Reference>
+    </References>
+    <Value>
+      <String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">1.04.10</String>
+    </Value>
+  </UAVariable>
+  <UAVariable NodeId="i=15960" BrowseName="NamespacePublicationDate" ParentNodeId="i=15957" DataType="DateTime">
+    <DisplayName>NamespacePublicationDate</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=15957</Reference>
+    </References>
+    <Value>
+      <DateTime xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">2021-09-15T00:00:00Z</DateTime>
+    </Value>
+  </UAVariable>
+  <UAVariable NodeId="i=15961" BrowseName="IsNamespaceSubset" ParentNodeId="i=15957" DataType="Boolean">
+    <DisplayName>IsNamespaceSubset</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=15957</Reference>
+    </References>
+    <Value>
+      <Boolean xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">false</Boolean>
+    </Value>
+  </UAVariable>
+  <UAVariable NodeId="i=15962" BrowseName="StaticNodeIdTypes" ParentNodeId="i=15957" DataType="i=256" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>StaticNodeIdTypes</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=15957</Reference>
+    </References>
+    <Value>
+      <ListOfInt32 xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
+        <Int32>0</Int32>
+      </ListOfInt32>
+    </Value>
+  </UAVariable>
+  <UAVariable NodeId="i=15963" BrowseName="StaticNumericNodeIdRange" ParentNodeId="i=15957" DataType="i=291" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>StaticNumericNodeIdRange</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=15957</Reference>
+    </References>
+    <Value>
+      <ListOfString xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
+        <String>1:2252</String>
+        <String>2270</String>
+        <String>2273</String>
+        <String>2280</String>
+        <String>2283</String>
+        <String>2291:2293</String>
+        <String>2297:2734</String>
+        <String>2738:2991</String>
+        <String>2995</String>
+        <String>2998:3703</String>
+        <String>3710:11191</String>
+        <String>11194:11195</String>
+        <String>11202:11241</String>
+        <String>11243:11272</String>
+        <String>11276:11280</String>
+        <String>11284:11311</String>
+        <String>11315:11491</String>
+        <String>11495:11501</String>
+        <String>11503:11701</String>
+        <String>11706</String>
+        <String>11708</String>
+        <String>11716:12164</String>
+        <String>12169:12748</String>
+        <String>12752:12872</String>
+        <String>12875:12884</String>
+        <String>12888:12910</String>
+        <String>12912:14414</String>
+        <String>14416:15003</String>
+        <String>15005:15605</String>
+        <String>15607:16300</String>
+        <String>16306:17633</String>
+        <String>17635:19090</String>
+        <String>19092:2147483647</String>
+      </ListOfString>
+    </Value>
+  </UAVariable>
+  <UAVariable NodeId="i=15964" BrowseName="StaticStringNodeIdPattern" ParentNodeId="i=15957" DataType="String">
+    <DisplayName>StaticStringNodeIdPattern</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=15957</Reference>
+    </References>
+    <Value>
+      <String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd" />
+    </Value>
+  </UAVariable>
+  <UAVariable NodeId="i=16134" BrowseName="DefaultRolePermissions" ParentNodeId="i=15957" DataType="i=96" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>DefaultRolePermissions</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=15957</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=16135" BrowseName="DefaultUserRolePermissions" ParentNodeId="i=15957" DataType="i=96" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>DefaultUserRolePermissions</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=15957</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=16136" BrowseName="DefaultAccessRestrictions" ParentNodeId="i=15957" DataType="i=95">
+    <DisplayName>DefaultAccessRestrictions</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=15957</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3068" BrowseName="NodeVersion" DataType="String">
+    <DisplayName>NodeVersion</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=12170" BrowseName="ViewVersion" DataType="UInt32">
+    <DisplayName>ViewVersion</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3067" BrowseName="Icon" DataType="i=30">
+    <DisplayName>Icon</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3069" BrowseName="LocalTime" DataType="i=8912">
+    <DisplayName>LocalTime</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3070" BrowseName="AllowNulls" DataType="Boolean">
+    <DisplayName>AllowNulls</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=11433" BrowseName="ValueAsText" DataType="LocalizedText">
+    <DisplayName>ValueAsText</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=11498" BrowseName="MaxStringLength" DataType="UInt32">
+    <DisplayName>MaxStringLength</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=15002" BrowseName="MaxCharacters" DataType="UInt32">
+    <DisplayName>MaxCharacters</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=12908" BrowseName="MaxByteStringLength" DataType="UInt32">
+    <DisplayName>MaxByteStringLength</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=11512" BrowseName="MaxArrayLength" DataType="UInt32">
+    <DisplayName>MaxArrayLength</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=11513" BrowseName="EngineeringUnits" DataType="i=887">
+    <DisplayName>EngineeringUnits</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=11432" BrowseName="EnumStrings" DataType="LocalizedText" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>EnumStrings</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3071" BrowseName="EnumValues" DataType="i=7594" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>EnumValues</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=12745" BrowseName="OptionSetValues" DataType="LocalizedText" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>OptionSetValues</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3072" BrowseName="InputArguments" DataType="i=296" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>InputArguments</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3073" BrowseName="OutputArguments" DataType="i=296" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>OutputArguments</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=17605" BrowseName="DefaultInstanceBrowseName" DataType="QualifiedName">
+    <DisplayName>DefaultInstanceBrowseName</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+    </References>
+  </UAVariable>
+  <UADataType NodeId="i=2000" BrowseName="ImageBMP">
+    <DisplayName>ImageBMP</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.20</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=30</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=2001" BrowseName="ImageGIF">
+    <DisplayName>ImageGIF</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.21</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=30</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=2002" BrowseName="ImageJPG">
+    <DisplayName>ImageJPG</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.22</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=30</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=2003" BrowseName="ImagePNG">
+    <DisplayName>ImagePNG</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.23</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=30</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=16307" BrowseName="AudioDataType">
+    <DisplayName>AudioDataType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.53</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=15</Reference>
+    </References>
+  </UADataType>
+  <UADataType NodeId="i=12756" BrowseName="Union" IsAbstract="true">
+    <DisplayName>Union</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part3/8.42</Documentation>
+    <References>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=22</Reference>
+    </References>
+    <Definition Name="Union" />
+  </UADataType>
+  <UAObjectType NodeId="i=2004" BrowseName="ServerType">
+    <DisplayName>ServerType</DisplayName>
+    <Documentation>https://reference.opcfoundation.org/v104/Core/docs/Part5/6.3.1</Documentation>
+    <References>
+      <Reference ReferenceType="HasProperty">i=2005</Reference>
+      <Reference ReferenceType="HasProperty">i=2006</Reference>
+      <Reference ReferenceType="HasProperty">i=15003</Reference>
+      <Reference ReferenceType="HasComponent">i=2007</Reference>
+      <Reference ReferenceType="HasProperty">i=2008</Reference>
+      <Reference ReferenceType="HasProperty">i=2742</Reference>
+      <Reference ReferenceType="HasProperty">i=12882</Reference>
+      <Reference ReferenceType="HasProperty">i=17612</Reference>
+      <Reference ReferenceType="HasComponent">i=2009</Reference>
+      <Reference ReferenceType="HasComponent">i=2010</Reference>
+      <Reference ReferenceType="HasComponent">i=2011</Reference>
+      <Reference ReferenceType="HasComponent">i=2012</Reference>
+      <Reference ReferenceType="HasComponent">i=11527</Reference>
+      <Reference ReferenceType="HasComponent">i=11489</Reference>
+      <Reference ReferenceType="HasComponent">i=12871</Reference>
+      <Reference ReferenceType="HasComponent">i=12746</Reference>
+      <Reference ReferenceType="HasComponent">i=12883</Reference>
+      <Reference ReferenceType="HasSubtype" IsForward="false">i=58</Reference>
+    </References>
+  </UAObjectType>
+  <UAVariable NodeId="i=2005" BrowseName="ServerArray" ParentNodeId="i=2004" DataType="String" ValueRank="1" ArrayDimensions="0" MinimumSamplingInterval="1000">
+    <DisplayName>ServerArray</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2004</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=2006" BrowseName="NamespaceArray" ParentNodeId="i=2004" DataType="String" ValueRank="1" ArrayDimensions="0" MinimumSamplingInterval="1000">
+    <DisplayName>NamespaceArray</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2004</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=15003" BrowseName="UrisVersion" ParentNodeId="i=2004" DataType="i=20998" MinimumSamplingInterval="1000">
+    <DisplayName>UrisVersion</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=80</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2004</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=2007" BrowseName="ServerStatus" ParentNodeId="i=2004" DataType="i=862" MinimumSamplingInterval="1000">
+    <DisplayName>ServerStatus</DisplayName>
+    <References>
+      <Reference ReferenceType="HasComponent">i=3074</Reference>
+      <Reference ReferenceType="HasComponent">i=3075</Reference>
+      <Reference ReferenceType="HasComponent">i=3076</Reference>
+      <Reference ReferenceType="HasComponent">i=3077</Reference>
+      <Reference ReferenceType="HasComponent">i=3084</Reference>
+      <Reference ReferenceType="HasComponent">i=3085</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=2138</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2004</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3074" BrowseName="StartTime" ParentNodeId="i=2007" DataType="i=294">
+    <DisplayName>StartTime</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2007</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3075" BrowseName="CurrentTime" ParentNodeId="i=2007" DataType="i=294">
+    <DisplayName>CurrentTime</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2007</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3076" BrowseName="State" ParentNodeId="i=2007" DataType="i=852">
+    <DisplayName>State</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2007</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3077" BrowseName="BuildInfo" ParentNodeId="i=2007" DataType="i=338">
+    <DisplayName>BuildInfo</DisplayName>
+    <References>
+      <Reference ReferenceType="HasComponent">i=3078</Reference>
+      <Reference ReferenceType="HasComponent">i=3079</Reference>
+      <Reference ReferenceType="HasComponent">i=3080</Reference>
+      <Reference ReferenceType="HasComponent">i=3081</Reference>
+      <Reference ReferenceType="HasComponent">i=3082</Reference>
+      <Reference ReferenceType="HasComponent">i=3083</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=3051</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2007</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3078" BrowseName="ProductUri" ParentNodeId="i=3077" DataType="String" MinimumSamplingInterval="1000">
+    <DisplayName>ProductUri</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3077</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3079" BrowseName="ManufacturerName" ParentNodeId="i=3077" DataType="String" MinimumSamplingInterval="1000">
+    <DisplayName>ManufacturerName</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3077</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3080" BrowseName="ProductName" ParentNodeId="i=3077" DataType="String" MinimumSamplingInterval="1000">
+    <DisplayName>ProductName</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3077</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3081" BrowseName="SoftwareVersion" ParentNodeId="i=3077" DataType="String" MinimumSamplingInterval="1000">
+    <DisplayName>SoftwareVersion</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3077</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3082" BrowseName="BuildNumber" ParentNodeId="i=3077" DataType="String" MinimumSamplingInterval="1000">
+    <DisplayName>BuildNumber</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3077</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3083" BrowseName="BuildDate" ParentNodeId="i=3077" DataType="i=294" MinimumSamplingInterval="1000">
+    <DisplayName>BuildDate</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3077</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3084" BrowseName="SecondsTillShutdown" ParentNodeId="i=2007" DataType="UInt32">
+    <DisplayName>SecondsTillShutdown</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2007</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3085" BrowseName="ShutdownReason" ParentNodeId="i=2007" DataType="LocalizedText">
+    <DisplayName>ShutdownReason</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2007</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=2008" BrowseName="ServiceLevel" ParentNodeId="i=2004" DataType="Byte" MinimumSamplingInterval="1000">
+    <DisplayName>ServiceLevel</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2004</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=2742" BrowseName="Auditing" ParentNodeId="i=2004" DataType="Boolean" MinimumSamplingInterval="1000">
+    <DisplayName>Auditing</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2004</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=12882" BrowseName="EstimatedReturnTime" ParentNodeId="i=2004" DataType="DateTime" MinimumSamplingInterval="1000">
+    <DisplayName>EstimatedReturnTime</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=80</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2004</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=17612" BrowseName="LocalTime" ParentNodeId="i=2004" DataType="i=8912" MinimumSamplingInterval="1000">
+    <DisplayName>LocalTime</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=80</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2004</Reference>
+    </References>
+  </UAVariable>
+  <UAObject NodeId="i=2009" BrowseName="ServerCapabilities" ParentNodeId="i=2004">
+    <DisplayName>ServerCapabilities</DisplayName>
+    <References>
+      <Reference ReferenceType="HasProperty">i=3086</Reference>
+      <Reference ReferenceType="HasProperty">i=3087</Reference>
+      <Reference ReferenceType="HasProperty">i=3088</Reference>
+      <Reference ReferenceType="HasProperty">i=3089</Reference>
+      <Reference ReferenceType="HasProperty">i=3090</Reference>
+      <Reference ReferenceType="HasProperty">i=3091</Reference>
+      <Reference ReferenceType="HasProperty">i=3092</Reference>
+      <Reference ReferenceType="HasComponent">i=3093</Reference>
+      <Reference ReferenceType="HasComponent">i=3094</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=2013</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2004</Reference>
+    </References>
+  </UAObject>
+  <UAVariable NodeId="i=3086" BrowseName="ServerProfileArray" ParentNodeId="i=2009" DataType="String" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>ServerProfileArray</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2009</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3087" BrowseName="LocaleIdArray" ParentNodeId="i=2009" DataType="i=295" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>LocaleIdArray</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2009</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3088" BrowseName="MinSupportedSampleRate" ParentNodeId="i=2009" DataType="i=290">
+    <DisplayName>MinSupportedSampleRate</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2009</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3089" BrowseName="MaxBrowseContinuationPoints" ParentNodeId="i=2009" DataType="UInt16">
+    <DisplayName>MaxBrowseContinuationPoints</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2009</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3090" BrowseName="MaxQueryContinuationPoints" ParentNodeId="i=2009" DataType="UInt16">
+    <DisplayName>MaxQueryContinuationPoints</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2009</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3091" BrowseName="MaxHistoryContinuationPoints" ParentNodeId="i=2009" DataType="UInt16">
+    <DisplayName>MaxHistoryContinuationPoints</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2009</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3092" BrowseName="SoftwareCertificates" ParentNodeId="i=2009" DataType="i=344" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>SoftwareCertificates</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2009</Reference>
+    </References>
+  </UAVariable>
+  <UAObject NodeId="i=3093" BrowseName="ModellingRules" ParentNodeId="i=2009">
+    <DisplayName>ModellingRules</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=61</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2009</Reference>
+    </References>
+  </UAObject>
+  <UAObject NodeId="i=3094" BrowseName="AggregateFunctions" ParentNodeId="i=2009">
+    <DisplayName>AggregateFunctions</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=61</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2009</Reference>
+    </References>
+  </UAObject>
+  <UAObject NodeId="i=2010" BrowseName="ServerDiagnostics" ParentNodeId="i=2004">
+    <DisplayName>ServerDiagnostics</DisplayName>
+    <References>
+      <Reference ReferenceType="HasComponent">i=3095</Reference>
+      <Reference ReferenceType="HasComponent">i=3110</Reference>
+      <Reference ReferenceType="HasComponent">i=3111</Reference>
+      <Reference ReferenceType="HasProperty">i=3114</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=2020</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2004</Reference>
+    </References>
+  </UAObject>
+  <UAVariable NodeId="i=3095" BrowseName="ServerDiagnosticsSummary" ParentNodeId="i=2010" DataType="i=859">
+    <DisplayName>ServerDiagnosticsSummary</DisplayName>
+    <References>
+      <Reference ReferenceType="HasComponent">i=3096</Reference>
+      <Reference ReferenceType="HasComponent">i=3097</Reference>
+      <Reference ReferenceType="HasComponent">i=3098</Reference>
+      <Reference ReferenceType="HasComponent">i=3099</Reference>
+      <Reference ReferenceType="HasComponent">i=3100</Reference>
+      <Reference ReferenceType="HasComponent">i=3101</Reference>
+      <Reference ReferenceType="HasComponent">i=3102</Reference>
+      <Reference ReferenceType="HasComponent">i=3104</Reference>
+      <Reference ReferenceType="HasComponent">i=3105</Reference>
+      <Reference ReferenceType="HasComponent">i=3106</Reference>
+      <Reference ReferenceType="HasComponent">i=3107</Reference>
+      <Reference ReferenceType="HasComponent">i=3108</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=2150</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2010</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3096" BrowseName="ServerViewCount" ParentNodeId="i=3095" DataType="UInt32">
+    <DisplayName>ServerViewCount</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3095</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3097" BrowseName="CurrentSessionCount" ParentNodeId="i=3095" DataType="UInt32">
+    <DisplayName>CurrentSessionCount</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3095</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3098" BrowseName="CumulatedSessionCount" ParentNodeId="i=3095" DataType="UInt32">
+    <DisplayName>CumulatedSessionCount</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3095</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3099" BrowseName="SecurityRejectedSessionCount" ParentNodeId="i=3095" DataType="UInt32">
+    <DisplayName>SecurityRejectedSessionCount</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3095</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3100" BrowseName="RejectedSessionCount" ParentNodeId="i=3095" DataType="UInt32">
+    <DisplayName>RejectedSessionCount</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3095</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3101" BrowseName="SessionTimeoutCount" ParentNodeId="i=3095" DataType="UInt32">
+    <DisplayName>SessionTimeoutCount</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3095</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3102" BrowseName="SessionAbortCount" ParentNodeId="i=3095" DataType="UInt32">
+    <DisplayName>SessionAbortCount</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3095</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3104" BrowseName="PublishingIntervalCount" ParentNodeId="i=3095" DataType="UInt32">
+    <DisplayName>PublishingIntervalCount</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3095</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3105" BrowseName="CurrentSubscriptionCount" ParentNodeId="i=3095" DataType="UInt32">
+    <DisplayName>CurrentSubscriptionCount</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3095</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3106" BrowseName="CumulatedSubscriptionCount" ParentNodeId="i=3095" DataType="UInt32">
+    <DisplayName>CumulatedSubscriptionCount</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3095</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3107" BrowseName="SecurityRejectedRequestsCount" ParentNodeId="i=3095" DataType="UInt32">
+    <DisplayName>SecurityRejectedRequestsCount</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3095</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3108" BrowseName="RejectedRequestsCount" ParentNodeId="i=3095" DataType="UInt32">
+    <DisplayName>RejectedRequestsCount</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3095</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3110" BrowseName="SubscriptionDiagnosticsArray" ParentNodeId="i=2010" DataType="i=874" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>SubscriptionDiagnosticsArray</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=2171</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2010</Reference>
+    </References>
+  </UAVariable>
+  <UAObject NodeId="i=3111" BrowseName="SessionsDiagnosticsSummary" ParentNodeId="i=2010">
+    <DisplayName>SessionsDiagnosticsSummary</DisplayName>
+    <References>
+      <Reference ReferenceType="HasComponent">i=3112</Reference>
+      <Reference ReferenceType="HasComponent">i=3113</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=2026</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2010</Reference>
+    </References>
+  </UAObject>
+  <UAVariable NodeId="i=3112" BrowseName="SessionDiagnosticsArray" ParentNodeId="i=3111" DataType="i=865" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>SessionDiagnosticsArray</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=2196</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3111</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3113" BrowseName="SessionSecurityDiagnosticsArray" ParentNodeId="i=3111" DataType="i=868" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>SessionSecurityDiagnosticsArray</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=2243</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=3111</Reference>
+    </References>
+  </UAVariable>
+  <UAVariable NodeId="i=3114" BrowseName="EnabledFlag" ParentNodeId="i=2010" DataType="Boolean" AccessLevel="3">
+    <DisplayName>EnabledFlag</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2010</Reference>
+    </References>
+  </UAVariable>
+  <UAObject NodeId="i=2011" BrowseName="VendorServerInfo" ParentNodeId="i=2004">
+    <DisplayName>VendorServerInfo</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=2033</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2004</Reference>
+    </References>
+  </UAObject>
+  <UAObject NodeId="i=2012" BrowseName="ServerRedundancy" ParentNodeId="i=2004">
+    <DisplayName>ServerRedundancy</DisplayName>
+    <References>
+      <Reference ReferenceType="HasProperty">i=3115</Reference>
+      <Reference ReferenceType="HasTypeDefinition">i=2034</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2004</Reference>
+    </References>
+  </UAObject>
+  <UAVariable NodeId="i=3115" BrowseName="RedundancySupport" ParentNodeId="i=2012" DataType="i=851">
+    <DisplayName>RedundancySupport</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=2012</Reference>
+    </References>
+  </UAVariable>
+  <UAObject NodeId="i=11527" BrowseName="Namespaces" ParentNodeId="i=2004">
+    <DisplayName>Namespaces</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=11645</Reference>
+      <Reference ReferenceType="HasModellingRule">i=80</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2004</Reference>
+    </References>
+  </UAObject>
+  <UAMethod NodeId="i=11489" BrowseName="GetMonitoredItems" ParentNodeId="i=2004">
+    <DisplayName>GetMonitoredItems</DisplayName>
+    <References>
+      <Reference ReferenceType="HasProperty">i=11490</Reference>
+      <Reference ReferenceType="HasProperty">i=11491</Reference>
+      <Reference ReferenceType="HasModellingRule">i=80</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2004</Reference>
+    </References>
+  </UAMethod>
+  <UAVariable NodeId="i=11490" BrowseName="InputArguments" ParentNodeId="i=11489" DataType="i=296" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>InputArguments</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=11489</Reference>
+    </References>
+    <Value>
+      <ListOfExtensionObject xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
+        <ExtensionObject>
+          <TypeId>
+            <Identifier>i=297</Identifier>
+          </TypeId>
+          <Body>
+            <Argument>
+              <Name>SubscriptionId</Name>
+              <DataType>
+                <Identifier>i=7</Identifier>
+              </DataType>
+              <ValueRank>-1</ValueRank>
+              <ArrayDimensions />
+            </Argument>
+          </Body>
+        </ExtensionObject>
+      </ListOfExtensionObject>
+    </Value>
+  </UAVariable>
+  <UAVariable NodeId="i=11491" BrowseName="OutputArguments" ParentNodeId="i=11489" DataType="i=296" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>OutputArguments</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=11489</Reference>
+    </References>
+    <Value>
+      <ListOfExtensionObject xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
+        <ExtensionObject>
+          <TypeId>
+            <Identifier>i=297</Identifier>
+          </TypeId>
+          <Body>
+            <Argument>
+              <Name>ServerHandles</Name>
+              <DataType>
+                <Identifier>i=7</Identifier>
+              </DataType>
+              <ValueRank>1</ValueRank>
+              <ArrayDimensions>
+                <UInt32>0</UInt32>
+              </ArrayDimensions>
+            </Argument>
+          </Body>
+        </ExtensionObject>
+        <ExtensionObject>
+          <TypeId>
+            <Identifier>i=297</Identifier>
+          </TypeId>
+          <Body>
+            <Argument>
+              <Name>ClientHandles</Name>
+              <DataType>
+                <Identifier>i=7</Identifier>
+              </DataType>
+              <ValueRank>1</ValueRank>
+              <ArrayDimensions>
+                <UInt32>0</UInt32>
+              </ArrayDimensions>
+            </Argument>
+          </Body>
+        </ExtensionObject>
+      </ListOfExtensionObject>
+    </Value>
+  </UAVariable>
+  <UAMethod NodeId="i=12871" BrowseName="ResendData" ParentNodeId="i=2004">
+    <DisplayName>ResendData</DisplayName>
+    <References>
+      <Reference ReferenceType="HasProperty">i=12872</Reference>
+      <Reference ReferenceType="HasModellingRule">i=80</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2004</Reference>
+    </References>
+  </UAMethod>
+  <UAVariable NodeId="i=12872" BrowseName="InputArguments" ParentNodeId="i=12871" DataType="i=296" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>InputArguments</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=12871</Reference>
+    </References>
+    <Value>
+      <ListOfExtensionObject xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
+        <ExtensionObject>
+          <TypeId>
+            <Identifier>i=297</Identifier>
+          </TypeId>
+          <Body>
+            <Argument>
+              <Name>SubscriptionId</Name>
+              <DataType>
+                <Identifier>i=7</Identifier>
+              </DataType>
+              <ValueRank>-1</ValueRank>
+              <ArrayDimensions />
+            </Argument>
+          </Body>
+        </ExtensionObject>
+      </ListOfExtensionObject>
+    </Value>
+  </UAVariable>
+  <UAMethod NodeId="i=12746" BrowseName="SetSubscriptionDurable" ParentNodeId="i=2004">
+    <DisplayName>SetSubscriptionDurable</DisplayName>
+    <References>
+      <Reference ReferenceType="HasProperty">i=12747</Reference>
+      <Reference ReferenceType="HasProperty">i=12748</Reference>
+      <Reference ReferenceType="HasModellingRule">i=80</Reference>
+      <Reference ReferenceType="HasComponent" IsForward="false">i=2004</Reference>
+    </References>
+  </UAMethod>
+  <UAVariable NodeId="i=12747" BrowseName="InputArguments" ParentNodeId="i=12746" DataType="i=296" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>InputArguments</DisplayName>
+    <References>
+      <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
+      <Reference ReferenceType="HasModellingRule">i=78</Reference>
+      <Reference ReferenceType="HasProperty" IsForward="false">i=12746</Reference>
+    </References>
+    <Value>
+      <ListOfExtensionObject xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
+        <ExtensionObject>
+          <TypeId>
+            <Identifier>i=297</Identifier>
+          </TypeId>
+          <Body>
+            <Argument>
+              <Name>SubscriptionId</Name>
+              <DataType>
+                <Identifier>i=7</Identifier>
+              </DataType>
+              <ValueRank>-1</ValueRank>
+              <ArrayDimensions />
+            </Argument>
+          </Body>
+        </ExtensionObject>
+        <ExtensionObject>
+          <TypeId>
+            <Identifier>i=297</Identifier>
+          </TypeId>
+          <Body>
+            <Argument>
+              <Name>LifetimeInHours</Name>
+              <DataType>
+                <Identifier>i=7</Identifier>
+              </DataType>
+              <ValueRank>-1</ValueRank>
+              <ArrayDimensions />
+            </Argument>
+          </Body>
+        </ExtensionObject>
+      </ListOfExtensionObject>
+    </Value>
+  </UAVariable>
+  <UAVariable NodeId="i=12748" BrowseName="OutputArguments" ParentNodeId="i=12746" DataType="i=296" ValueRank="1" ArrayDimensions="0">
+    <DisplayName>OutputArguments</DisplayName>
+    <References>
... 65304 lines suppressed ...


[plc4x] 02/02: Merge remote-tracking branch 'origin/develop' into refactor/cdutz/global-changes-of-spnettech-repo

Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch refactor/cdutz/global-changes-of-spnettech-repo
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit bc4f2a10913878f3aefcd949909388c313167d4d
Merge: 1e8ec2ee3d 258f420304
Author: Christofer Dutz <ch...@rivian.com>
AuthorDate: Sat Feb 4 13:36:41 2023 +0100

    Merge remote-tracking branch 'origin/develop' into refactor/cdutz/global-changes-of-spnettech-repo
    
    # Conflicts:
    #       plc4c/drivers/s7/src/driver_s7_sm_read.c
    #       plc4c/generated-sources/s7/include/data_item.h
    #       plc4c/generated-sources/s7/src/data_item.c
    #       plc4go/internal/s7/Reader.go
    #       plc4go/protocols/abeth/readwrite/XmlParserHelper.go
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/CheckPeers.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/EndOfLldp.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/Ethernet_FramePayload_LLDP.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/IODWriteRequestHeader.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/IODWriteResponseHeader.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/LldpUnit.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/Lldp_Pdu.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PDInterfaceAdjust.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PDPortDataCheck.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PascalString.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnDcp_Block_DevicePropertiesNameOfStation.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnDcp_Pdu_AlarmLow.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCM_Block_Request.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCM_Block_Response.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Control_Request.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Control_Response.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_DataUnitDataObject.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_DataUnitIoCs.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Submodule_InputData.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Submodule_OutputData.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIo_CyclicServiceDataUnit.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvChassisId.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvManagementAddress.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvOrgSpecificIeee8023.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvOrgSpecificProfibus.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvOrgSpecificProfibusUnit.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvOrganizationSpecific.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvOrganizationSpecificUnit.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvPortId.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvProfibusSubTypeChassisMac.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvProfibusSubTypePortStatus.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/TlvTimeToLive.java
    #       plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/UserData.java
    #       plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetDevice.java
    #       plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/gsdml/ProfinetDataItem.java
    #       plc4j/examples/hello-connectivity-mqtt/src/main/resources/mqtt-connector.yml

 .../plc4x/language/c/CLanguageTemplateHelper.java  |   12 +-
 .../templates/c/complex-type-template.c.ftlh       |   47 +-
 .../templates/c/complex-type-template.h.ftlh       |    9 +-
 .../resources/templates/c/data-io-template.c.ftlh  |   10 +-
 .../resources/templates/c/data-io-template.h.ftlh  |    9 +-
 .../resources/templates/c/enum-template.c.ftlh     |   10 +-
 .../resources/templates/c/enum-template.h.ftlh     |    9 +-
 .../language/go/GoLanguageTemplateHelper.java      |   34 +-
 .../templates/go/complex-type-template.go.ftlh     |  145 ++-
 .../templates/go/data-io-template.go.ftlh          |   11 +-
 .../resources/templates/go/enum-template.go.ftlh   |   17 +-
 .../templates/go/parser-factory-template.go.ftlh   |    4 +-
 .../go/xml-parser-factory-template.go.ftlh         |   10 +-
 .../templates/java/complex-type-template.java.ftlh |    7 +-
 .../parser-serializer-testcase-generator.xsl       |    4 +-
 plc4c/drivers/modbus/src/driver_modbus_packets.c   |    6 +-
 plc4c/drivers/modbus/src/driver_modbus_sm_read.c   |    2 +-
 plc4c/drivers/plc4x/src/driver_plc4x_packets.c     |    7 +-
 plc4c/drivers/s7/src/driver_s7_encode_decode.c     |    2 +-
 plc4c/drivers/s7/src/driver_s7_packets.c           |    6 +-
 plc4c/drivers/s7/src/driver_s7_sm_read.c           |    4 +-
 plc4c/drivers/s7/test/s7_test.c                    |   16 +-
 plc4c/generated-sources/modbus/include/data_item.h |    9 +-
 .../generated-sources/modbus/include/driver_type.h |    9 +-
 .../generated-sources/modbus/include/modbus_adu.h  |    9 +-
 .../modbus/include/modbus_constants.h              |    9 +-
 .../modbus/include/modbus_data_type.h              |    9 +-
 .../modbus_device_information_conformity_level.h   |    9 +-
 .../include/modbus_device_information_level.h      |    9 +-
 .../modbus_device_information_more_follows.h       |    9 +-
 .../include/modbus_device_information_object.h     |    9 +-
 .../modbus/include/modbus_error_code.h             |    9 +-
 .../generated-sources/modbus/include/modbus_pdu.h  |    9 +-
 .../modbus_pdu_read_file_record_request_item.h     |    9 +-
 .../modbus_pdu_read_file_record_response_item.h    |    9 +-
 .../modbus_pdu_write_file_record_request_item.h    |    9 +-
 .../modbus_pdu_write_file_record_response_item.h   |    9 +-
 plc4c/generated-sources/modbus/src/data_item.c     |   10 +-
 plc4c/generated-sources/modbus/src/driver_type.c   |   10 +-
 plc4c/generated-sources/modbus/src/modbus_adu.c    |   31 +-
 .../modbus/src/modbus_constants.c                  |   11 +-
 .../modbus/src/modbus_data_type.c                  |   10 +-
 .../modbus_device_information_conformity_level.c   |   10 +-
 .../modbus/src/modbus_device_information_level.c   |   10 +-
 .../src/modbus_device_information_more_follows.c   |   10 +-
 .../modbus/src/modbus_device_information_object.c  |   13 +-
 .../modbus/src/modbus_error_code.c                 |   10 +-
 plc4c/generated-sources/modbus/src/modbus_pdu.c    |  129 +-
 .../src/modbus_pdu_read_file_record_request_item.c |   11 +-
 .../modbus_pdu_read_file_record_response_item.c    |   12 +-
 .../modbus_pdu_write_file_record_request_item.c    |   12 +-
 .../modbus_pdu_write_file_record_response_item.c   |   12 +-
 .../plc4x/include/plc4x_constants.h                |    9 +-
 .../plc4x/include/plc4x_message.h                  |    9 +-
 .../plc4x/include/plc4x_request_type.h             |    9 +-
 .../plc4x/include/plc4x_response_code.h            |    9 +-
 .../plc4x/include/plc4x_subscription_type.h        |    9 +-
 plc4c/generated-sources/plc4x/include/plc4x_tag.h  |    9 +-
 .../plc4x/include/plc4x_tag_request.h              |    9 +-
 .../plc4x/include/plc4x_tag_response.h             |    9 +-
 .../plc4x/include/plc4x_tag_value_request.h        |    9 +-
 .../plc4x/include/plc4x_tag_value_response.h       |    9 +-
 .../generated-sources/plc4x/include/plc4x_value.h  |    9 +-
 .../plc4x/include/plc4x_value_type.h               |    9 +-
 .../generated-sources/plc4x/src/plc4x_constants.c  |   11 +-
 plc4c/generated-sources/plc4x/src/plc4x_message.c  |   91 +-
 .../plc4x/src/plc4x_request_type.c                 |   10 +-
 .../plc4x/src/plc4x_response_code.c                |   10 +-
 .../plc4x/src/plc4x_subscription_type.c            |   10 +-
 plc4c/generated-sources/plc4x/src/plc4x_tag.c      |   11 +-
 .../plc4x/src/plc4x_tag_request.c                  |   17 +-
 .../plc4x/src/plc4x_tag_response.c                 |   23 +-
 .../plc4x/src/plc4x_tag_value_request.c            |   29 +-
 .../plc4x/src/plc4x_tag_value_response.c           |   35 +-
 plc4c/generated-sources/plc4x/src/plc4x_value.c    |   10 +-
 .../generated-sources/plc4x/src/plc4x_value_type.c |   10 +-
 .../plc4x/test/ParserSerializerTestsuite.c         |   32 +-
 .../include/alarm_message_ack_object_push_type.h   |    9 +-
 .../s7/include/alarm_message_ack_push_type.h       |    9 +-
 .../s7/include/alarm_message_ack_response_type.h   |    9 +-
 .../s7/include/alarm_message_ack_type.h            |    9 +-
 .../s7/include/alarm_message_object_ack_type.h     |    9 +-
 .../s7/include/alarm_message_object_push_type.h    |    9 +-
 .../s7/include/alarm_message_object_query_type.h   |    9 +-
 .../s7/include/alarm_message_push_type.h           |    9 +-
 .../s7/include/alarm_message_query_type.h          |    9 +-
 .../s7/include/alarm_state_type.h                  |    9 +-
 plc4c/generated-sources/s7/include/alarm_type.h    |    9 +-
 .../s7/include/associated_value_type.h             |    9 +-
 plc4c/generated-sources/s7/include/cotp_packet.h   |    9 +-
 .../generated-sources/s7/include/cotp_parameter.h  |    9 +-
 .../s7/include/cotp_protocol_class.h               |    9 +-
 .../generated-sources/s7/include/cotp_tpdu_size.h  |    9 +-
 .../s7/include/cpu_subscribe_events.h              |    9 +-
 plc4c/generated-sources/s7/include/data_item.h     |    9 +-
 .../s7/include/data_transport_error_code.h         |    9 +-
 .../s7/include/data_transport_size.h               |    9 +-
 plc4c/generated-sources/s7/include/date_and_time.h |    9 +-
 plc4c/generated-sources/s7/include/device_group.h  |    9 +-
 plc4c/generated-sources/s7/include/event_type.h    |    9 +-
 plc4c/generated-sources/s7/include/memory_area.h   |    9 +-
 .../s7/include/mode_transition_type.h              |    9 +-
 plc4c/generated-sources/s7/include/query_type.h    |    9 +-
 plc4c/generated-sources/s7/include/s7_address.h    |    9 +-
 .../s7/include/s7_data_alarm_message.h             |    9 +-
 plc4c/generated-sources/s7/include/s7_message.h    |    9 +-
 plc4c/generated-sources/s7/include/s7_parameter.h  |    9 +-
 .../s7/include/s7_parameter_user_data_item.h       |    9 +-
 plc4c/generated-sources/s7/include/s7_payload.h    |    9 +-
 .../s7/include/s7_payload_user_data_item.h         |    9 +-
 .../s7/include/s7_var_payload_data_item.h          |    9 +-
 .../s7/include/s7_var_payload_status_item.h        |    9 +-
 .../s7/include/s7_var_request_parameter_item.h     |    9 +-
 plc4c/generated-sources/s7/include/state.h         |    9 +-
 .../generated-sources/s7/include/syntax_id_type.h  |    9 +-
 .../s7/include/szl_data_tree_item.h                |    9 +-
 plc4c/generated-sources/s7/include/szl_id.h        |    9 +-
 .../s7/include/szl_module_type_class.h             |    9 +-
 plc4c/generated-sources/s7/include/szl_sublist.h   |    9 +-
 plc4c/generated-sources/s7/include/tpkt_packet.h   |    9 +-
 .../generated-sources/s7/include/transport_size.h  |    9 +-
 .../s7/src/alarm_message_ack_object_push_type.c    |   29 +-
 .../s7/src/alarm_message_ack_push_type.c           |   31 +-
 .../s7/src/alarm_message_ack_response_type.c       |   13 +-
 .../s7/src/alarm_message_ack_type.c                |   25 +-
 .../s7/src/alarm_message_object_ack_type.c         |   29 +-
 .../s7/src/alarm_message_object_push_type.c        |   55 +-
 .../s7/src/alarm_message_object_query_type.c       |   53 +-
 .../s7/src/alarm_message_push_type.c               |   31 +-
 .../s7/src/alarm_message_query_type.c              |   37 +-
 plc4c/generated-sources/s7/src/alarm_state_type.c  |   10 +-
 plc4c/generated-sources/s7/src/alarm_type.c        |   10 +-
 .../s7/src/associated_value_type.c                 |   25 +-
 plc4c/generated-sources/s7/src/cotp_packet.c       |   50 +-
 plc4c/generated-sources/s7/src/cotp_parameter.c    |   21 +-
 .../generated-sources/s7/src/cotp_protocol_class.c |   10 +-
 plc4c/generated-sources/s7/src/cotp_tpdu_size.c    |   10 +-
 .../s7/src/cpu_subscribe_events.c                  |   10 +-
 plc4c/generated-sources/s7/src/data_item.c         |   10 +-
 .../s7/src/data_transport_error_code.c             |   10 +-
 .../generated-sources/s7/src/data_transport_size.c |   10 +-
 plc4c/generated-sources/s7/src/date_and_time.c     |   11 +-
 plc4c/generated-sources/s7/src/device_group.c      |   10 +-
 plc4c/generated-sources/s7/src/event_type.c        |   10 +-
 plc4c/generated-sources/s7/src/memory_area.c       |   10 +-
 .../s7/src/mode_transition_type.c                  |   10 +-
 plc4c/generated-sources/s7/src/query_type.c        |   10 +-
 plc4c/generated-sources/s7/src/s7_address.c        |   17 +-
 .../s7/src/s7_data_alarm_message.c                 |   41 +-
 plc4c/generated-sources/s7/src/s7_message.c        |   27 +-
 plc4c/generated-sources/s7/src/s7_parameter.c      |   55 +-
 .../s7/src/s7_parameter_user_data_item.c           |   13 +-
 plc4c/generated-sources/s7/src/s7_payload.c        |   67 +-
 .../s7/src/s7_payload_user_data_item.c             |  157 ++-
 .../s7/src/s7_var_payload_data_item.c              |   31 +-
 .../s7/src/s7_var_payload_status_item.c            |   17 +-
 .../s7/src/s7_var_request_parameter_item.c         |   19 +-
 plc4c/generated-sources/s7/src/state.c             |   11 +-
 plc4c/generated-sources/s7/src/syntax_id_type.c    |   10 +-
 .../generated-sources/s7/src/szl_data_tree_item.c  |   13 +-
 plc4c/generated-sources/s7/src/szl_id.c            |   23 +-
 .../s7/src/szl_module_type_class.c                 |   10 +-
 plc4c/generated-sources/s7/src/szl_sublist.c       |   10 +-
 plc4c/generated-sources/s7/src/tpkt_packet.c       |   19 +-
 plc4c/generated-sources/s7/src/transport_size.c    |   10 +-
 .../s7/test/ParserSerializerTestsuite.c            |   48 +-
 plc4c/spi/CMakeLists.txt                           |    1 +
 plc4c/spi/include/plc4c/spi/context.h              |   42 +
 plc4c/spi/src/context.c                            |   46 +
 .../testing/protocols/s7/DriverTestsuite.xml       |    3 +-
 .../protocols/s7/ParserSerializerTestsuite.xml     |   14 +-
 plc4go/internal/ads/Connection.go                  |    4 +-
 plc4go/internal/ads/MessageCodec.go                |    5 +-
 plc4go/internal/ads/Reader.go                      |    2 +-
 plc4go/internal/ads/Writer.go                      |    2 +-
 plc4go/internal/bacnetip/ApplicationLayer.go       |   29 +-
 plc4go/internal/bacnetip/Discoverer.go             |   11 +-
 plc4go/internal/bacnetip/MessageCodec.go           |    7 +-
 plc4go/internal/bacnetip/Reader.go                 |    2 +-
 .../internal/bacnetip/UDPCommunicationsModule.go   |    5 +-
 plc4go/internal/cbus/MessageCodec.go               |    3 +-
 plc4go/internal/cbus/Query.go                      |   12 +-
 plc4go/internal/cbus/Reader.go                     |    2 +-
 plc4go/internal/cbus/Subscriber.go                 |    2 +-
 plc4go/internal/cbus/Tag.go                        |   73 +-
 plc4go/internal/eip/MessageCodec.go                |    4 +-
 plc4go/internal/eip/Reader.go                      |    4 +-
 plc4go/internal/eip/Writer.go                      |    4 +-
 .../knxnetip/ConnectionDriverSpecificOperations.go |    8 +-
 plc4go/internal/knxnetip/Reader.go                 |    6 +-
 plc4go/internal/knxnetip/Subscriber.go             |    4 +-
 plc4go/internal/knxnetip/ValueDecoder.go           |    4 +-
 plc4go/internal/modbus/Reader.go                   |    2 +-
 plc4go/internal/s7/Reader.go                       |    2 +-
 plc4go/internal/s7/s7Io_test.go                    |   70 +-
 plc4go/internal/simulated/Device.go                |    3 +-
 plc4go/protocols/abeth/readwrite/ParserHelper.go   |   10 +-
 .../protocols/abeth/readwrite/XmlParserHelper.go   |   14 +-
 .../model/CIPEncapsulationConnectionRequest.go     |   27 +-
 .../model/CIPEncapsulationConnectionResponse.go    |   27 +-
 .../readwrite/model/CIPEncapsulationPacket.go      |   42 +-
 .../readwrite/model/CIPEncapsulationReadRequest.go |   33 +-
 .../model/CIPEncapsulationReadResponse.go          |   33 +-
 .../readwrite/model/DF1CommandRequestMessage.go    |   33 +-
 ...mandResponseMessageProtectedTypedLogicalRead.go |   30 +-
 .../abeth/readwrite/model/DF1RequestCommand.go     |   22 +-
 .../abeth/readwrite/model/DF1RequestMessage.go     |   22 +-
 .../model/DF1RequestProtectedTypedLogicalRead.go   |   27 +-
 .../abeth/readwrite/model/DF1ResponseMessage.go    |   22 +-
 .../ads/discovery/readwrite/ParserHelper.go        |   12 +-
 .../ads/discovery/readwrite/XmlParserHelper.go     |   16 +-
 .../ads/discovery/readwrite/model/AdsDiscovery.go  |   63 +-
 .../discovery/readwrite/model/AdsDiscoveryBlock.go |   42 +-
 .../readwrite/model/AdsDiscoveryBlockAmsNetId.go   |   33 +-
 .../model/AdsDiscoveryBlockFingerprint.go          |   27 +-
 .../readwrite/model/AdsDiscoveryBlockHostName.go   |   33 +-
 .../readwrite/model/AdsDiscoveryBlockOsData.go     |   27 +-
 .../readwrite/model/AdsDiscoveryBlockPassword.go   |   33 +-
 .../readwrite/model/AdsDiscoveryBlockRouteName.go  |   33 +-
 .../readwrite/model/AdsDiscoveryBlockStatus.go     |   31 +-
 .../readwrite/model/AdsDiscoveryBlockType.go       |   17 +-
 .../readwrite/model/AdsDiscoveryBlockUserName.go   |   33 +-
 .../readwrite/model/AdsDiscoveryBlockVersion.go    |   27 +-
 .../readwrite/model/AdsDiscoveryConstants.go       |   23 +-
 .../discovery/readwrite/model/AdsPortNumbers.go    |   17 +-
 .../ads/discovery/readwrite/model/AmsNetId.go      |   23 +-
 .../ads/discovery/readwrite/model/AmsString.go     |   23 +-
 .../ads/discovery/readwrite/model/Operation.go     |   17 +-
 .../ads/discovery/readwrite/model/Status.go        |   17 +-
 plc4go/protocols/ads/readwrite/ParserHelper.go     |   34 +-
 plc4go/protocols/ads/readwrite/XmlParserHelper.go  |   38 +-
 .../model/AdsAddDeviceNotificationRequest.go       |   31 +-
 .../model/AdsAddDeviceNotificationResponse.go      |   31 +-
 .../protocols/ads/readwrite/model/AdsConstants.go  |   23 +-
 .../protocols/ads/readwrite/model/AdsDataType.go   |   17 +-
 .../ads/readwrite/model/AdsDataTypeArrayInfo.go    |   27 +-
 .../readwrite/model/AdsDataTypeTableChildEntry.go  |   74 +-
 .../ads/readwrite/model/AdsDataTypeTableEntry.go   |   74 +-
 .../model/AdsDeleteDeviceNotificationRequest.go    |   27 +-
 .../model/AdsDeleteDeviceNotificationResponse.go   |   31 +-
 .../model/AdsDeviceNotificationRequest.go          |   53 +-
 .../model/AdsDeviceNotificationResponse.go         |   27 +-
 .../ads/readwrite/model/AdsInvalidRequest.go       |   27 +-
 .../ads/readwrite/model/AdsInvalidResponse.go      |   27 +-
 .../ads/readwrite/model/AdsMultiRequestItem.go     |   26 +-
 .../ads/readwrite/model/AdsMultiRequestItemRead.go |   27 +-
 .../model/AdsMultiRequestItemReadWrite.go          |   27 +-
 .../readwrite/model/AdsMultiRequestItemWrite.go    |   27 +-
 .../ads/readwrite/model/AdsNotificationSample.go   |   23 +-
 .../readwrite/model/AdsReadDeviceInfoRequest.go    |   27 +-
 .../readwrite/model/AdsReadDeviceInfoResponse.go   |   31 +-
 .../ads/readwrite/model/AdsReadRequest.go          |   27 +-
 .../ads/readwrite/model/AdsReadResponse.go         |   31 +-
 .../ads/readwrite/model/AdsReadStateRequest.go     |   27 +-
 .../ads/readwrite/model/AdsReadStateResponse.go    |   31 +-
 .../ads/readwrite/model/AdsReadWriteRequest.go     |   53 +-
 .../ads/readwrite/model/AdsReadWriteResponse.go    |   31 +-
 .../ads/readwrite/model/AdsStampHeader.go          |   49 +-
 .../ads/readwrite/model/AdsSymbolTableEntry.go     |   23 +-
 .../protocols/ads/readwrite/model/AdsTableSizes.go |   23 +-
 .../protocols/ads/readwrite/model/AdsTransMode.go  |   17 +-
 .../ads/readwrite/model/AdsWriteControlRequest.go  |   27 +-
 .../ads/readwrite/model/AdsWriteControlResponse.go |   31 +-
 .../ads/readwrite/model/AdsWriteRequest.go         |   27 +-
 .../ads/readwrite/model/AdsWriteResponse.go        |   31 +-
 plc4go/protocols/ads/readwrite/model/AmsNetId.go   |   23 +-
 plc4go/protocols/ads/readwrite/model/AmsPacket.go  |   80 +-
 .../readwrite/model/AmsSerialAcknowledgeFrame.go   |   23 +-
 .../ads/readwrite/model/AmsSerialFrame.go          |   29 +-
 .../ads/readwrite/model/AmsSerialResetFrame.go     |   23 +-
 .../protocols/ads/readwrite/model/AmsTCPPacket.go  |   31 +-
 plc4go/protocols/ads/readwrite/model/CommandId.go  |   17 +-
 plc4go/protocols/ads/readwrite/model/DataItem.go   |   11 +-
 .../ads/readwrite/model/DefaultAmsPorts.go         |   17 +-
 .../protocols/ads/readwrite/model/ErrorResponse.go |   27 +-
 .../protocols/ads/readwrite/model/PlcValueType.go  |   17 +-
 .../ads/readwrite/model/ReservedIndexGroups.go     |   17 +-
 plc4go/protocols/ads/readwrite/model/ReturnCode.go |   17 +-
 .../protocols/bacnetip/readwrite/ParserHelper.go   |  580 ++++-----
 .../bacnetip/readwrite/XmlParserHelper.go          |  584 ++++-----
 plc4go/protocols/bacnetip/readwrite/model/APDU.go  |   42 +-
 .../bacnetip/readwrite/model/APDUAbort.go          |   33 +-
 .../bacnetip/readwrite/model/APDUComplexAck.go     |   45 +-
 .../readwrite/model/APDUConfirmedRequest.go        |   53 +-
 .../bacnetip/readwrite/model/APDUError.go          |   37 +-
 .../bacnetip/readwrite/model/APDUReject.go         |   33 +-
 .../bacnetip/readwrite/model/APDUSegmentAck.go     |   27 +-
 .../bacnetip/readwrite/model/APDUSimpleAck.go      |   31 +-
 .../readwrite/model/APDUUnconfirmedRequest.go      |   33 +-
 .../bacnetip/readwrite/model/APDUUnknown.go        |   27 +-
 .../protocols/bacnetip/readwrite/model/ApduType.go |   17 +-
 .../bacnetip/readwrite/model/BACnetAbortReason.go  |   17 +-
 .../readwrite/model/BACnetAbortReasonTagged.go     |   27 +-
 .../BACnetAccessAuthenticationFactorDisable.go     |   17 +-
 ...ACnetAccessAuthenticationFactorDisableTagged.go |   33 +-
 .../model/BACnetAccessCredentialDisable.go         |   17 +-
 .../model/BACnetAccessCredentialDisableReason.go   |   17 +-
 .../BACnetAccessCredentialDisableReasonTagged.go   |   33 +-
 .../model/BACnetAccessCredentialDisableTagged.go   |   33 +-
 .../bacnetip/readwrite/model/BACnetAccessEvent.go  |   17 +-
 .../readwrite/model/BACnetAccessEventTagged.go     |   33 +-
 .../readwrite/model/BACnetAccessPassbackMode.go    |   17 +-
 .../model/BACnetAccessPassbackModeTagged.go        |   29 +-
 .../bacnetip/readwrite/model/BACnetAccessRule.go   |   53 +-
 .../model/BACnetAccessRuleLocationSpecifier.go     |   17 +-
 .../BACnetAccessRuleLocationSpecifierTagged.go     |   29 +-
 .../model/BACnetAccessRuleTimeRangeSpecifier.go    |   17 +-
 .../BACnetAccessRuleTimeRangeSpecifierTagged.go    |   29 +-
 .../readwrite/model/BACnetAccessThreatLevel.go     |   29 +-
 .../readwrite/model/BACnetAccessUserType.go        |   17 +-
 .../readwrite/model/BACnetAccessUserTypeTagged.go  |   33 +-
 .../model/BACnetAccessZoneOccupancyState.go        |   17 +-
 .../model/BACnetAccessZoneOccupancyStateTagged.go  |   33 +-
 .../readwrite/model/BACnetAccumulatorRecord.go     |   47 +-
 .../BACnetAccumulatorRecordAccumulatorStatus.go    |   17 +-
 ...CnetAccumulatorRecordAccumulatorStatusTagged.go |   29 +-
 .../bacnetip/readwrite/model/BACnetAction.go       |   17 +-
 .../readwrite/model/BACnetActionCommand.go         |   77 +-
 .../bacnetip/readwrite/model/BACnetActionList.go   |   47 +-
 .../bacnetip/readwrite/model/BACnetActionTagged.go |   29 +-
 .../bacnetip/readwrite/model/BACnetAddress.go      |   47 +-
 .../readwrite/model/BACnetAddressBinding.go        |   35 +-
 .../readwrite/model/BACnetAddressEnclosed.go       |   41 +-
 .../readwrite/model/BACnetApplicationTag.go        |   60 +-
 .../model/BACnetApplicationTagBitString.go         |   33 +-
 .../readwrite/model/BACnetApplicationTagBoolean.go |   37 +-
 .../model/BACnetApplicationTagCharacterString.go   |   37 +-
 .../readwrite/model/BACnetApplicationTagDate.go    |   33 +-
 .../readwrite/model/BACnetApplicationTagDouble.go  |   37 +-
 .../model/BACnetApplicationTagEnumerated.go        |   37 +-
 .../readwrite/model/BACnetApplicationTagNull.go    |   27 +-
 .../model/BACnetApplicationTagObjectIdentifier.go  |   41 +-
 .../model/BACnetApplicationTagOctetString.go       |   33 +-
 .../readwrite/model/BACnetApplicationTagReal.go    |   37 +-
 .../model/BACnetApplicationTagSignedInteger.go     |   37 +-
 .../readwrite/model/BACnetApplicationTagTime.go    |   33 +-
 .../model/BACnetApplicationTagUnsignedInteger.go   |   37 +-
 .../readwrite/model/BACnetAssignedAccessRights.go  |   35 +-
 .../readwrite/model/BACnetAssignedLandingCalls.go  |   29 +-
 .../BACnetAssignedLandingCallsLandingCallsList.go  |   47 +-
 ...netAssignedLandingCallsLandingCallsListEntry.go |   35 +-
 .../readwrite/model/BACnetAuthenticationFactor.go  |   41 +-
 .../model/BACnetAuthenticationFactorEnclosed.go    |   41 +-
 .../model/BACnetAuthenticationFactorFormat.go      |   41 +-
 .../model/BACnetAuthenticationFactorType.go        |   17 +-
 .../model/BACnetAuthenticationFactorTypeTagged.go  |   29 +-
 .../readwrite/model/BACnetAuthenticationPolicy.go  |   41 +-
 .../model/BACnetAuthenticationPolicyList.go        |   47 +-
 .../model/BACnetAuthenticationPolicyListEntry.go   |   35 +-
 .../readwrite/model/BACnetAuthenticationStatus.go  |   17 +-
 .../model/BACnetAuthenticationStatusTagged.go      |   29 +-
 .../model/BACnetAuthorizationExemption.go          |   17 +-
 .../model/BACnetAuthorizationExemptionTagged.go    |   33 +-
 .../readwrite/model/BACnetAuthorizationMode.go     |   17 +-
 .../model/BACnetAuthorizationModeTagged.go         |   33 +-
 .../bacnetip/readwrite/model/BACnetBDTEntry.go     |   35 +-
 .../bacnetip/readwrite/model/BACnetBackupState.go  |   17 +-
 .../readwrite/model/BACnetBackupStateTagged.go     |   29 +-
 .../readwrite/model/BACnetBinaryLightingPV.go      |   17 +-
 .../model/BACnetBinaryLightingPVTagged.go          |   33 +-
 .../bacnetip/readwrite/model/BACnetBinaryPV.go     |   17 +-
 .../readwrite/model/BACnetBinaryPVTagged.go        |   29 +-
 .../model/BACnetCOVMultipleSubscription.go         |   53 +-
 ...bscriptionListOfCovSubscriptionSpecification.go |   47 +-
 ...ptionListOfCovSubscriptionSpecificationEntry.go |   35 +-
 ...riptionSpecificationEntryListOfCovReferences.go |   47 +-
 ...onSpecificationEntryListOfCovReferencesEntry.go |   41 +-
 .../readwrite/model/BACnetCOVSubscription.go       |   53 +-
 .../readwrite/model/BACnetCalendarEntry.go         |   32 +-
 .../readwrite/model/BACnetCalendarEntryDate.go     |   33 +-
 .../model/BACnetCalendarEntryDateRange.go          |   33 +-
 .../readwrite/model/BACnetCalendarEntryEnclosed.go |   41 +-
 .../readwrite/model/BACnetCalendarEntryWeekNDay.go |   33 +-
 .../bacnetip/readwrite/model/BACnetChannelValue.go |   58 +-
 .../readwrite/model/BACnetChannelValueBitString.go |   33 +-
 .../readwrite/model/BACnetChannelValueBoolean.go   |   33 +-
 .../model/BACnetChannelValueCharacterString.go     |   33 +-
 .../readwrite/model/BACnetChannelValueDate.go      |   33 +-
 .../readwrite/model/BACnetChannelValueDouble.go    |   33 +-
 .../model/BACnetChannelValueEnumerated.go          |   33 +-
 .../readwrite/model/BACnetChannelValueInteger.go   |   33 +-
 .../model/BACnetChannelValueLightingCommand.go     |   33 +-
 .../readwrite/model/BACnetChannelValueNull.go      |   33 +-
 .../model/BACnetChannelValueObjectidentifier.go    |   33 +-
 .../model/BACnetChannelValueOctetString.go         |   33 +-
 .../readwrite/model/BACnetChannelValueReal.go      |   33 +-
 .../readwrite/model/BACnetChannelValueTime.go      |   33 +-
 .../readwrite/model/BACnetChannelValueUnsigned.go  |   33 +-
 .../readwrite/model/BACnetCharacterEncoding.go     |   17 +-
 .../bacnetip/readwrite/model/BACnetClientCOV.go    |   30 +-
 .../readwrite/model/BACnetClientCOVNone.go         |   33 +-
 .../readwrite/model/BACnetClientCOVObject.go       |   33 +-
 .../bacnetip/readwrite/model/BACnetClosingTag.go   |   29 +-
 .../model/BACnetConfirmedServiceChoice.go          |   17 +-
 .../model/BACnetConfirmedServiceRequest.go         |   92 +-
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go |   63 +-
 .../BACnetConfirmedServiceRequestAddListElement.go |   51 +-
 .../BACnetConfirmedServiceRequestAtomicReadFile.go |   39 +-
 ...tConfirmedServiceRequestAtomicReadFileRecord.go |   39 +-
 ...tConfirmedServiceRequestAtomicReadFileStream.go |   39 +-
 ...edServiceRequestAtomicReadFileStreamOrRecord.go |   42 +-
 ...BACnetConfirmedServiceRequestAtomicWriteFile.go |   57 +-
 .../BACnetConfirmedServiceRequestAuthenticate.go   |   27 +-
 ...firmedServiceRequestConfirmedCOVNotification.go |   57 +-
 ...rviceRequestConfirmedCOVNotificationMultiple.go |   57 +-
 ...rmedServiceRequestConfirmedEventNotification.go |  105 +-
 ...firmedServiceRequestConfirmedPrivateTransfer.go |   45 +-
 ...tConfirmedServiceRequestConfirmedTextMessage.go |   51 +-
 ...rviceRequestConfirmedTextMessageMessageClass.go |   42 +-
 ...estConfirmedTextMessageMessageClassCharacter.go |   33 +-
 ...questConfirmedTextMessageMessageClassNumeric.go |   33 +-
 ...ceRequestConfirmedTextMessageMessagePriority.go |   17 +-
 ...estConfirmedTextMessageMessagePriorityTagged.go |   29 +-
 .../BACnetConfirmedServiceRequestCreateObject.go   |   39 +-
 ...medServiceRequestCreateObjectObjectSpecifier.go |   59 +-
 .../BACnetConfirmedServiceRequestDeleteObject.go   |   33 +-
 ...rmedServiceRequestDeviceCommunicationControl.go |   45 +-
 ...questDeviceCommunicationControlEnableDisable.go |   17 +-
 ...eviceCommunicationControlEnableDisableTagged.go |   29 +-
 ...tConfirmedServiceRequestGetEnrollmentSummary.go |   63 +-
 ...estGetEnrollmentSummaryAcknowledgementFilter.go |   17 +-
 ...EnrollmentSummaryAcknowledgementFilterTagged.go |   29 +-
 ...eRequestGetEnrollmentSummaryEventStateFilter.go |   17 +-
 ...stGetEnrollmentSummaryEventStateFilterTagged.go |   29 +-
 ...iceRequestGetEnrollmentSummaryPriorityFilter.go |   47 +-
 ...etConfirmedServiceRequestGetEventInformation.go |   33 +-
 ...etConfirmedServiceRequestLifeSafetyOperation.go |   51 +-
 .../BACnetConfirmedServiceRequestReadProperty.go   |   45 +-
 ...nfirmedServiceRequestReadPropertyConditional.go |   27 +-
 ...tConfirmedServiceRequestReadPropertyMultiple.go |   39 +-
 .../BACnetConfirmedServiceRequestReadRange.go      |   51 +-
 .../BACnetConfirmedServiceRequestReadRangeRange.go |   44 +-
 ...firmedServiceRequestReadRangeRangeByPosition.go |   39 +-
 ...ServiceRequestReadRangeRangeBySequenceNumber.go |   39 +-
 ...tConfirmedServiceRequestReadRangeRangeByTime.go |   39 +-
 ...netConfirmedServiceRequestReinitializeDevice.go |   39 +-
 ...ReinitializeDeviceReinitializedStateOfDevice.go |   17 +-
 ...ializeDeviceReinitializedStateOfDeviceTagged.go |   29 +-
 ...CnetConfirmedServiceRequestRemoveListElement.go |   51 +-
 .../BACnetConfirmedServiceRequestRequestKey.go     |   27 +-
 .../BACnetConfirmedServiceRequestSubscribeCOV.go   |   51 +-
 ...tConfirmedServiceRequestSubscribeCOVProperty.go |   63 +-
 ...edServiceRequestSubscribeCOVPropertyMultiple.go |   57 +-
 ...yMultipleListOfCovSubscriptionSpecifications.go |   53 +-
 ...tipleListOfCovSubscriptionSpecificationsList.go |   47 +-
 ...ListOfCovSubscriptionSpecificationsReference.go |   41 +-
 .../model/BACnetConfirmedServiceRequestUnknown.go  |   27 +-
 .../model/BACnetConfirmedServiceRequestVTClose.go  |   39 +-
 .../model/BACnetConfirmedServiceRequestVTData.go   |   45 +-
 .../model/BACnetConfirmedServiceRequestVTOpen.go   |   39 +-
 .../BACnetConfirmedServiceRequestWriteProperty.go  |   57 +-
 ...ConfirmedServiceRequestWritePropertyMultiple.go |   39 +-
 .../readwrite/model/BACnetConstructedData.go       | 1354 ++++++++++----------
 .../model/BACnetConstructedDataAPDULength.go       |   37 +-
 .../BACnetConstructedDataAPDUSegmentTimeout.go     |   37 +-
 .../model/BACnetConstructedDataAPDUTimeout.go      |   37 +-
 .../model/BACnetConstructedDataAbsenteeLimit.go    |   37 +-
 .../model/BACnetConstructedDataAcceptedModes.go    |   39 +-
 .../BACnetConstructedDataAccessAlarmEvents.go      |   39 +-
 .../BACnetConstructedDataAccessCredentialAll.go    |   27 +-
 .../BACnetConstructedDataAccessDoorAlarmValues.go  |   39 +-
 .../model/BACnetConstructedDataAccessDoorAll.go    |   27 +-
 .../BACnetConstructedDataAccessDoorFaultValues.go  |   39 +-
 .../BACnetConstructedDataAccessDoorPresentValue.go |   37 +-
 ...etConstructedDataAccessDoorRelinquishDefault.go |   37 +-
 .../model/BACnetConstructedDataAccessDoors.go      |   49 +-
 .../model/BACnetConstructedDataAccessEvent.go      |   37 +-
 ...nstructedDataAccessEventAuthenticationFactor.go |   37 +-
 .../BACnetConstructedDataAccessEventCredential.go  |   37 +-
 .../model/BACnetConstructedDataAccessEventTag.go   |   37 +-
 .../model/BACnetConstructedDataAccessEventTime.go  |   37 +-
 .../model/BACnetConstructedDataAccessPointAll.go   |   27 +-
 .../model/BACnetConstructedDataAccessRightsAll.go  |   27 +-
 ...BACnetConstructedDataAccessTransactionEvents.go |   39 +-
 .../model/BACnetConstructedDataAccessUserAll.go    |   27 +-
 .../BACnetConstructedDataAccessZoneAdjustValue.go  |   37 +-
 .../BACnetConstructedDataAccessZoneAlarmValues.go  |   39 +-
 .../model/BACnetConstructedDataAccessZoneAll.go    |   27 +-
 .../model/BACnetConstructedDataAccompaniment.go    |   37 +-
 .../BACnetConstructedDataAccompanimentTime.go      |   37 +-
 .../model/BACnetConstructedDataAccumulatorAll.go   |   27 +-
 ...CnetConstructedDataAccumulatorFaultHighLimit.go |   37 +-
 ...ACnetConstructedDataAccumulatorFaultLowLimit.go |   37 +-
 .../BACnetConstructedDataAccumulatorHighLimit.go   |   37 +-
 .../BACnetConstructedDataAccumulatorLowLimit.go    |   37 +-
 ...BACnetConstructedDataAccumulatorMaxPresValue.go |   37 +-
 ...BACnetConstructedDataAccumulatorMinPresValue.go |   37 +-
 .../model/BACnetConstructedDataAckRequired.go      |   37 +-
 .../model/BACnetConstructedDataAckedTransitions.go |   37 +-
 .../readwrite/model/BACnetConstructedDataAction.go |   49 +-
 .../model/BACnetConstructedDataActionText.go       |   49 +-
 .../model/BACnetConstructedDataActivationTime.go   |   37 +-
 ...netConstructedDataActiveAuthenticationPolicy.go |   37 +-
 ...onstructedDataActiveCOVMultipleSubscriptions.go |   39 +-
 .../BACnetConstructedDataActiveCOVSubscriptions.go |   39 +-
 .../model/BACnetConstructedDataActiveText.go       |   37 +-
 .../model/BACnetConstructedDataActiveVTSessions.go |   39 +-
 .../model/BACnetConstructedDataActualShedLevel.go  |   37 +-
 .../model/BACnetConstructedDataAdjustValue.go      |   37 +-
 .../model/BACnetConstructedDataAlarmValue.go       |   37 +-
 .../model/BACnetConstructedDataAlarmValues.go      |   49 +-
 .../BACnetConstructedDataAlertEnrollmentAll.go     |   27 +-
 ...etConstructedDataAlertEnrollmentPresentValue.go |   37 +-
 .../model/BACnetConstructedDataAlignIntervals.go   |   37 +-
 .../BACnetConstructedDataAllWritesSuccessful.go    |   37 +-
 .../BACnetConstructedDataAllowGroupDelayInhibit.go |   37 +-
 .../model/BACnetConstructedDataAnalogInputAll.go   |   27 +-
 ...CnetConstructedDataAnalogInputFaultHighLimit.go |   37 +-
 ...ACnetConstructedDataAnalogInputFaultLowLimit.go |   37 +-
 ...CnetConstructedDataAnalogInputInterfaceValue.go |   37 +-
 ...BACnetConstructedDataAnalogInputMaxPresValue.go |   37 +-
 ...BACnetConstructedDataAnalogInputPresentValue.go |   37 +-
 .../model/BACnetConstructedDataAnalogOutputAll.go  |   27 +-
 ...netConstructedDataAnalogOutputInterfaceValue.go |   37 +-
 ...ACnetConstructedDataAnalogOutputMaxPresValue.go |   37 +-
 ...ACnetConstructedDataAnalogOutputPresentValue.go |   37 +-
 ...ConstructedDataAnalogOutputRelinquishDefault.go |   37 +-
 .../model/BACnetConstructedDataAnalogValueAll.go   |   27 +-
 ...CnetConstructedDataAnalogValueFaultHighLimit.go |   37 +-
 ...ACnetConstructedDataAnalogValueFaultLowLimit.go |   37 +-
 ...BACnetConstructedDataAnalogValueMaxPresValue.go |   37 +-
 ...BACnetConstructedDataAnalogValuePresentValue.go |   37 +-
 ...tConstructedDataAnalogValueRelinquishDefault.go |   37 +-
 ...netConstructedDataApplicationSoftwareVersion.go |   37 +-
 .../model/BACnetConstructedDataArchive.go          |   37 +-
 .../BACnetConstructedDataAssignedAccessRights.go   |   49 +-
 .../BACnetConstructedDataAssignedLandingCalls.go   |   49 +-
 .../model/BACnetConstructedDataAttemptedSamples.go |   37 +-
 .../BACnetConstructedDataAuthenticationFactors.go  |   49 +-
 ...ACnetConstructedDataAuthenticationPolicyList.go |   49 +-
 ...CnetConstructedDataAuthenticationPolicyNames.go |   49 +-
 .../BACnetConstructedDataAuthenticationStatus.go   |   37 +-
 ...BACnetConstructedDataAuthorizationExemptions.go |   39 +-
 .../BACnetConstructedDataAuthorizationMode.go      |   37 +-
 .../BACnetConstructedDataAutoSlaveDiscovery.go     |   37 +-
 .../model/BACnetConstructedDataAverageValue.go     |   37 +-
 .../model/BACnetConstructedDataAveragingAll.go     |   27 +-
 .../BACnetConstructedDataBACnetIPGlobalAddress.go  |   37 +-
 .../model/BACnetConstructedDataBACnetIPMode.go     |   37 +-
 ...ACnetConstructedDataBACnetIPMulticastAddress.go |   37 +-
 .../BACnetConstructedDataBACnetIPNATTraversal.go   |   37 +-
 .../model/BACnetConstructedDataBACnetIPUDPPort.go  |   37 +-
 .../model/BACnetConstructedDataBACnetIPv6Mode.go   |   37 +-
 ...netConstructedDataBACnetIPv6MulticastAddress.go |   37 +-
 .../BACnetConstructedDataBACnetIPv6UDPPort.go      |   37 +-
 ...CnetConstructedDataBBMDAcceptFDRegistrations.go |   37 +-
 ...onstructedDataBBMDBroadcastDistributionTable.go |   39 +-
 .../BACnetConstructedDataBBMDForeignDeviceTable.go |   39 +-
 .../BACnetConstructedDataBackupAndRestoreState.go  |   37 +-
 .../BACnetConstructedDataBackupFailureTimeout.go   |   37 +-
 .../BACnetConstructedDataBackupPreparationTime.go  |   37 +-
 ...ACnetConstructedDataBaseDeviceSecurityPolicy.go |   37 +-
 .../model/BACnetConstructedDataBelongsTo.go        |   37 +-
 .../readwrite/model/BACnetConstructedDataBias.go   |   37 +-
 .../model/BACnetConstructedDataBinaryInputAll.go   |   27 +-
 ...CnetConstructedDataBinaryInputInterfaceValue.go |   37 +-
 ...BACnetConstructedDataBinaryInputPresentValue.go |   37 +-
 ...BACnetConstructedDataBinaryLightingOutputAll.go |   27 +-
 ...tructedDataBinaryLightingOutputFeedbackValue.go |   37 +-
 ...structedDataBinaryLightingOutputPresentValue.go |   37 +-
 ...tedDataBinaryLightingOutputRelinquishDefault.go |   37 +-
 .../model/BACnetConstructedDataBinaryOutputAll.go  |   27 +-
 ...CnetConstructedDataBinaryOutputFeedbackValue.go |   37 +-
 ...netConstructedDataBinaryOutputInterfaceValue.go |   37 +-
 ...ACnetConstructedDataBinaryOutputPresentValue.go |   37 +-
 ...ConstructedDataBinaryOutputRelinquishDefault.go |   37 +-
 .../model/BACnetConstructedDataBinaryValueAll.go   |   27 +-
 ...BACnetConstructedDataBinaryValuePresentValue.go |   37 +-
 ...tConstructedDataBinaryValueRelinquishDefault.go |   37 +-
 .../model/BACnetConstructedDataBitMask.go          |   37 +-
 ...CnetConstructedDataBitStringValueAlarmValues.go |   49 +-
 ...netConstructedDataBitStringValuePresentValue.go |   37 +-
 ...nstructedDataBitStringValueRelinquishDefault.go |   37 +-
 .../model/BACnetConstructedDataBitText.go          |   49 +-
 .../BACnetConstructedDataBitstringValueAll.go      |   27 +-
 .../model/BACnetConstructedDataBlinkWarnEnable.go  |   37 +-
 .../model/BACnetConstructedDataBufferSize.go       |   37 +-
 .../model/BACnetConstructedDataCOVIncrement.go     |   37 +-
 .../model/BACnetConstructedDataCOVPeriod.go        |   37 +-
 ...CnetConstructedDataCOVResubscriptionInterval.go |   37 +-
 .../model/BACnetConstructedDataCOVUPeriod.go       |   37 +-
 .../model/BACnetConstructedDataCOVURecipients.go   |   39 +-
 .../model/BACnetConstructedDataCalendarAll.go      |   27 +-
 .../BACnetConstructedDataCalendarPresentValue.go   |   37 +-
 .../BACnetConstructedDataCarAssignedDirection.go   |   37 +-
 .../model/BACnetConstructedDataCarDoorCommand.go   |   49 +-
 .../model/BACnetConstructedDataCarDoorStatus.go    |   49 +-
 .../model/BACnetConstructedDataCarDoorText.go      |   49 +-
 .../model/BACnetConstructedDataCarDoorZone.go      |   37 +-
 .../model/BACnetConstructedDataCarDriveStatus.go   |   37 +-
 .../model/BACnetConstructedDataCarLoad.go          |   37 +-
 .../model/BACnetConstructedDataCarLoadUnits.go     |   37 +-
 .../model/BACnetConstructedDataCarMode.go          |   37 +-
 .../BACnetConstructedDataCarMovingDirection.go     |   37 +-
 .../model/BACnetConstructedDataCarPosition.go      |   37 +-
 .../BACnetConstructedDataChangeOfStateCount.go     |   37 +-
 .../BACnetConstructedDataChangeOfStateTime.go      |   37 +-
 .../model/BACnetConstructedDataChangesPending.go   |   37 +-
 .../model/BACnetConstructedDataChannelAll.go       |   27 +-
 ...tedDataChannelListOfObjectPropertyReferences.go |   49 +-
 .../model/BACnetConstructedDataChannelNumber.go    |   37 +-
 .../BACnetConstructedDataChannelPresentValue.go    |   37 +-
 ...nstructedDataCharacterStringValueAlarmValues.go |   49 +-
 ...nstructedDataCharacterStringValueFaultValues.go |   49 +-
 ...structedDataCharacterStringValuePresentValue.go |   37 +-
 ...tedDataCharacterStringValueRelinquishDefault.go |   37 +-
 ...BACnetConstructedDataCharacterstringValueAll.go |   27 +-
 .../BACnetConstructedDataClientCOVIncrement.go     |   37 +-
 .../model/BACnetConstructedDataCommand.go          |   37 +-
 .../model/BACnetConstructedDataCommandAction.go    |   49 +-
 .../model/BACnetConstructedDataCommandAll.go       |   27 +-
 .../model/BACnetConstructedDataCommandTimeArray.go |   49 +-
 .../BACnetConstructedDataConfigurationFiles.go     |   49 +-
 .../model/BACnetConstructedDataControlGroups.go    |   49 +-
 ...etConstructedDataControlledVariableReference.go |   37 +-
 ...BACnetConstructedDataControlledVariableUnits.go |   37 +-
 ...BACnetConstructedDataControlledVariableValue.go |   37 +-
 .../readwrite/model/BACnetConstructedDataCount.go  |   37 +-
 .../BACnetConstructedDataCountBeforeChange.go      |   37 +-
 .../model/BACnetConstructedDataCountChangeTime.go  |   37 +-
 .../BACnetConstructedDataCredentialDataInputAll.go |   27 +-
 ...nstructedDataCredentialDataInputPresentValue.go |   37 +-
 ...ConstructedDataCredentialDataInputUpdateTime.go |   37 +-
 .../BACnetConstructedDataCredentialDisable.go      |   37 +-
 .../model/BACnetConstructedDataCredentialStatus.go |   37 +-
 .../model/BACnetConstructedDataCredentials.go      |   39 +-
 .../BACnetConstructedDataCredentialsInZone.go      |   39 +-
 .../BACnetConstructedDataCurrentCommandPriority.go |   37 +-
 .../model/BACnetConstructedDataDatabaseRevision.go |   37 +-
 .../model/BACnetConstructedDataDateList.go         |   39 +-
 ...tConstructedDataDatePatternValuePresentValue.go |   37 +-
 ...tructedDataDatePatternValueRelinquishDefault.go |   37 +-
 ...structedDataDateTimePatternValuePresentValue.go |   37 +-
 ...tedDataDateTimePatternValueRelinquishDefault.go |   37 +-
 ...CnetConstructedDataDateTimeValuePresentValue.go |   37 +-
 ...onstructedDataDateTimeValueRelinquishDefault.go |   37 +-
 .../model/BACnetConstructedDataDateValueAll.go     |   27 +-
 .../BACnetConstructedDataDateValuePresentValue.go  |   37 +-
 ...netConstructedDataDateValueRelinquishDefault.go |   37 +-
 .../BACnetConstructedDataDatepatternValueAll.go    |   27 +-
 .../model/BACnetConstructedDataDatetimeValueAll.go |   27 +-
 ...BACnetConstructedDataDatetimepatternValueAll.go |   27 +-
 .../BACnetConstructedDataDaylightSavingsStatus.go  |   37 +-
 .../model/BACnetConstructedDataDaysRemaining.go    |   37 +-
 .../model/BACnetConstructedDataDeadband.go         |   37 +-
 .../model/BACnetConstructedDataDefaultFadeTime.go  |   37 +-
 .../model/BACnetConstructedDataDefaultRampRate.go  |   37 +-
 .../BACnetConstructedDataDefaultStepIncrement.go   |   37 +-
 ...onstructedDataDefaultSubordinateRelationship.go |   37 +-
 .../model/BACnetConstructedDataDefaultTimeout.go   |   37 +-
 ...BACnetConstructedDataDeployedProfileLocation.go |   37 +-
 .../BACnetConstructedDataDerivativeConstant.go     |   37 +-
 ...BACnetConstructedDataDerivativeConstantUnits.go |   37 +-
 .../model/BACnetConstructedDataDescription.go      |   37 +-
 .../BACnetConstructedDataDescriptionOfHalt.go      |   37 +-
 .../BACnetConstructedDataDeviceAddressBinding.go   |   39 +-
 .../model/BACnetConstructedDataDeviceAll.go        |   27 +-
 .../BACnetConstructedDataDeviceMaxInfoFrames.go    |   37 +-
 .../model/BACnetConstructedDataDeviceMaxMaster.go  |   37 +-
 .../model/BACnetConstructedDataDeviceType.go       |   37 +-
 .../model/BACnetConstructedDataDirectReading.go    |   37 +-
 ...BACnetConstructedDataDistributionKeyRevision.go |   37 +-
 .../model/BACnetConstructedDataDoNotHide.go        |   37 +-
 .../model/BACnetConstructedDataDoorAlarmState.go   |   37 +-
 .../BACnetConstructedDataDoorExtendedPulseTime.go  |   37 +-
 .../model/BACnetConstructedDataDoorMembers.go      |   49 +-
 .../BACnetConstructedDataDoorOpenTooLongTime.go    |   37 +-
 .../model/BACnetConstructedDataDoorPulseTime.go    |   37 +-
 .../model/BACnetConstructedDataDoorStatus.go       |   37 +-
 .../BACnetConstructedDataDoorUnlockDelayTime.go    |   37 +-
 .../model/BACnetConstructedDataDutyWindow.go       |   37 +-
 .../model/BACnetConstructedDataEffectivePeriod.go  |   37 +-
 .../model/BACnetConstructedDataEgressActive.go     |   37 +-
 .../model/BACnetConstructedDataEgressTime.go       |   37 +-
 .../BACnetConstructedDataElapsedActiveTime.go      |   37 +-
 .../model/BACnetConstructedDataElement.go          |   59 +-
 .../model/BACnetConstructedDataElevatorGroup.go    |   37 +-
 .../model/BACnetConstructedDataElevatorGroupAll.go |   27 +-
 ...CnetConstructedDataElevatorGroupGroupMembers.go |   49 +-
 .../readwrite/model/BACnetConstructedDataEnable.go |   37 +-
 .../model/BACnetConstructedDataEnergyMeter.go      |   37 +-
 .../model/BACnetConstructedDataEnergyMeterRef.go   |   37 +-
 .../model/BACnetConstructedDataEntryPoints.go      |   39 +-
 .../model/BACnetConstructedDataErrorLimit.go       |   37 +-
 .../model/BACnetConstructedDataEscalatorAll.go     |   27 +-
 .../BACnetConstructedDataEscalatorFaultSignals.go  |   39 +-
 .../model/BACnetConstructedDataEscalatorMode.go    |   37 +-
 .../BACnetConstructedDataEventAlgorithmInhibit.go  |   37 +-
 ...ACnetConstructedDataEventAlgorithmInhibitRef.go |   37 +-
 .../BACnetConstructedDataEventDetectionEnable.go   |   37 +-
 .../model/BACnetConstructedDataEventEnable.go      |   37 +-
 .../BACnetConstructedDataEventEnrollmentAll.go     |   27 +-
 .../model/BACnetConstructedDataEventLogAll.go      |   27 +-
 .../BACnetConstructedDataEventLogLogBuffer.go      |   39 +-
 .../BACnetConstructedDataEventMessageTexts.go      |   61 +-
 ...BACnetConstructedDataEventMessageTextsConfig.go |   61 +-
 .../model/BACnetConstructedDataEventParameters.go  |   37 +-
 .../model/BACnetConstructedDataEventState.go       |   37 +-
 .../model/BACnetConstructedDataEventTimeStamps.go  |   61 +-
 .../model/BACnetConstructedDataEventType.go        |   37 +-
 .../BACnetConstructedDataExceptionSchedule.go      |   49 +-
 .../model/BACnetConstructedDataExecutionDelay.go   |   49 +-
 .../model/BACnetConstructedDataExitPoints.go       |   39 +-
 .../BACnetConstructedDataExpectedShedLevel.go      |   37 +-
 .../model/BACnetConstructedDataExpirationTime.go   |   37 +-
 .../BACnetConstructedDataExtendedTimeEnable.go     |   37 +-
 .../model/BACnetConstructedDataFDBBMDAddress.go    |   37 +-
 .../BACnetConstructedDataFDSubscriptionLifetime.go |   37 +-
 .../BACnetConstructedDataFailedAttemptEvents.go    |   39 +-
 .../model/BACnetConstructedDataFailedAttempts.go   |   37 +-
 .../BACnetConstructedDataFailedAttemptsTime.go     |   37 +-
 .../model/BACnetConstructedDataFaultHighLimit.go   |   37 +-
 .../model/BACnetConstructedDataFaultLowLimit.go    |   37 +-
 .../model/BACnetConstructedDataFaultParameters.go  |   37 +-
 .../model/BACnetConstructedDataFaultSignals.go     |   39 +-
 .../model/BACnetConstructedDataFaultType.go        |   37 +-
 .../model/BACnetConstructedDataFaultValues.go      |   49 +-
 .../model/BACnetConstructedDataFileAccessMethod.go |   37 +-
 .../model/BACnetConstructedDataFileAll.go          |   27 +-
 .../model/BACnetConstructedDataFileRecordCount.go  |   37 +-
 .../model/BACnetConstructedDataFileSize.go         |   37 +-
 .../model/BACnetConstructedDataFileType.go         |   37 +-
 .../model/BACnetConstructedDataFirmwareRevision.go |   37 +-
 .../model/BACnetConstructedDataFloorText.go        |   49 +-
 .../model/BACnetConstructedDataFullDutyBaseline.go |   37 +-
 .../model/BACnetConstructedDataGlobalGroupAll.go   |   27 +-
 ...BACnetConstructedDataGlobalGroupGroupMembers.go |   49 +-
 ...BACnetConstructedDataGlobalGroupPresentValue.go |   49 +-
 .../model/BACnetConstructedDataGlobalIdentifier.go |   37 +-
 .../model/BACnetConstructedDataGroupAll.go         |   27 +-
 .../model/BACnetConstructedDataGroupID.go          |   37 +-
 .../model/BACnetConstructedDataGroupMemberNames.go |   49 +-
 .../model/BACnetConstructedDataGroupMembers.go     |   49 +-
 .../model/BACnetConstructedDataGroupMode.go        |   37 +-
 .../BACnetConstructedDataGroupPresentValue.go      |   39 +-
 .../model/BACnetConstructedDataHighLimit.go        |   37 +-
 .../model/BACnetConstructedDataHigherDeck.go       |   37 +-
 .../model/BACnetConstructedDataIPAddress.go        |   37 +-
 .../model/BACnetConstructedDataIPDHCPEnable.go     |   37 +-
 .../model/BACnetConstructedDataIPDHCPLeaseTime.go  |   37 +-
 ...ACnetConstructedDataIPDHCPLeaseTimeRemaining.go |   37 +-
 .../model/BACnetConstructedDataIPDHCPServer.go     |   37 +-
 .../model/BACnetConstructedDataIPDNSServer.go      |   49 +-
 .../model/BACnetConstructedDataIPDefaultGateway.go |   37 +-
 .../model/BACnetConstructedDataIPSubnetMask.go     |   37 +-
 .../model/BACnetConstructedDataIPv6Address.go      |   37 +-
 ...ACnetConstructedDataIPv6AutoAddressingEnable.go |   37 +-
 .../BACnetConstructedDataIPv6DHCPLeaseTime.go      |   37 +-
 ...netConstructedDataIPv6DHCPLeaseTimeRemaining.go |   37 +-
 .../model/BACnetConstructedDataIPv6DHCPServer.go   |   37 +-
 .../model/BACnetConstructedDataIPv6DNSServer.go    |   49 +-
 .../BACnetConstructedDataIPv6DefaultGateway.go     |   37 +-
 .../model/BACnetConstructedDataIPv6PrefixLength.go |   37 +-
 .../model/BACnetConstructedDataIPv6ZoneIndex.go    |   37 +-
 .../model/BACnetConstructedDataInProcess.go        |   37 +-
 .../model/BACnetConstructedDataInProgress.go       |   37 +-
 .../model/BACnetConstructedDataInactiveText.go     |   37 +-
 .../model/BACnetConstructedDataInitialTimeout.go   |   37 +-
 .../model/BACnetConstructedDataInputReference.go   |   37 +-
 .../model/BACnetConstructedDataInstallationID.go   |   37 +-
 .../model/BACnetConstructedDataInstanceOf.go       |   37 +-
 .../BACnetConstructedDataInstantaneousPower.go     |   37 +-
 .../model/BACnetConstructedDataIntegerValueAll.go  |   27 +-
 ...ACnetConstructedDataIntegerValueCOVIncrement.go |   37 +-
 .../BACnetConstructedDataIntegerValueDeadband.go   |   37 +-
 ...netConstructedDataIntegerValueFaultHighLimit.go |   37 +-
 ...CnetConstructedDataIntegerValueFaultLowLimit.go |   37 +-
 .../BACnetConstructedDataIntegerValueHighLimit.go  |   37 +-
 .../BACnetConstructedDataIntegerValueLowLimit.go   |   37 +-
 ...ACnetConstructedDataIntegerValueMaxPresValue.go |   37 +-
 ...ACnetConstructedDataIntegerValueMinPresValue.go |   37 +-
 ...ACnetConstructedDataIntegerValuePresentValue.go |   37 +-
 ...ConstructedDataIntegerValueRelinquishDefault.go |   37 +-
 .../BACnetConstructedDataIntegerValueResolution.go |   37 +-
 .../model/BACnetConstructedDataIntegralConstant.go |   37 +-
 .../BACnetConstructedDataIntegralConstantUnits.go  |   37 +-
 .../model/BACnetConstructedDataIntervalOffset.go   |   37 +-
 .../readwrite/model/BACnetConstructedDataIsUTC.go  |   37 +-
 .../model/BACnetConstructedDataKeySets.go          |   49 +-
 .../BACnetConstructedDataLandingCallControl.go     |   37 +-
 .../model/BACnetConstructedDataLandingCalls.go     |   39 +-
 .../BACnetConstructedDataLandingDoorStatus.go      |   49 +-
 .../BACnetConstructedDataLargeAnalogValueAll.go    |   27 +-
 ...tConstructedDataLargeAnalogValueCOVIncrement.go |   37 +-
 ...ACnetConstructedDataLargeAnalogValueDeadband.go |   37 +-
 ...onstructedDataLargeAnalogValueFaultHighLimit.go |   37 +-
 ...ConstructedDataLargeAnalogValueFaultLowLimit.go |   37 +-
 ...CnetConstructedDataLargeAnalogValueHighLimit.go |   37 +-
 ...ACnetConstructedDataLargeAnalogValueLowLimit.go |   37 +-
 ...tConstructedDataLargeAnalogValueMaxPresValue.go |   37 +-
 ...tConstructedDataLargeAnalogValueMinPresValue.go |   37 +-
 ...tConstructedDataLargeAnalogValuePresentValue.go |   37 +-
 ...tructedDataLargeAnalogValueRelinquishDefault.go |   37 +-
 ...netConstructedDataLargeAnalogValueResolution.go |   37 +-
 .../model/BACnetConstructedDataLastAccessEvent.go  |   37 +-
 .../model/BACnetConstructedDataLastAccessPoint.go  |   37 +-
 .../model/BACnetConstructedDataLastCommandTime.go  |   37 +-
 .../BACnetConstructedDataLastCredentialAdded.go    |   37 +-
 ...BACnetConstructedDataLastCredentialAddedTime.go |   37 +-
 .../BACnetConstructedDataLastCredentialRemoved.go  |   37 +-
 ...CnetConstructedDataLastCredentialRemovedTime.go |   37 +-
 .../model/BACnetConstructedDataLastKeyServer.go    |   37 +-
 .../model/BACnetConstructedDataLastNotifyRecord.go |   37 +-
 .../model/BACnetConstructedDataLastPriority.go     |   37 +-
 .../BACnetConstructedDataLastRestartReason.go      |   37 +-
 .../model/BACnetConstructedDataLastRestoreTime.go  |   37 +-
 .../model/BACnetConstructedDataLastStateChange.go  |   37 +-
 .../model/BACnetConstructedDataLastUseTime.go      |   37 +-
 .../BACnetConstructedDataLifeSafetyAlarmValues.go  |   39 +-
 ...netConstructedDataLifeSafetyPointAlarmValues.go |   39 +-
 .../BACnetConstructedDataLifeSafetyPointAll.go     |   27 +-
 ...netConstructedDataLifeSafetyPointFaultValues.go |   39 +-
 ...etConstructedDataLifeSafetyPointPresentValue.go |   37 +-
 ...CnetConstructedDataLifeSafetyZoneAlarmValues.go |   39 +-
 .../BACnetConstructedDataLifeSafetyZoneAll.go      |   27 +-
 ...CnetConstructedDataLifeSafetyZoneFaultValues.go |   39 +-
 ...tructedDataLifeSafetyZoneMaintenanceRequired.go |   37 +-
 ...netConstructedDataLifeSafetyZonePresentValue.go |   37 +-
 .../model/BACnetConstructedDataLiftAll.go          |   27 +-
 .../model/BACnetConstructedDataLiftFaultSignals.go |   39 +-
 .../model/BACnetConstructedDataLightingCommand.go  |   37 +-
 ...onstructedDataLightingCommandDefaultPriority.go |   37 +-
 .../BACnetConstructedDataLightingOutputAll.go      |   27 +-
 ...etConstructedDataLightingOutputFeedbackValue.go |   37 +-
 ...netConstructedDataLightingOutputPresentValue.go |   37 +-
 ...nstructedDataLightingOutputRelinquishDefault.go |   37 +-
 ...etConstructedDataLightingOutputTrackingValue.go |   37 +-
 .../model/BACnetConstructedDataLimitEnable.go      |   37 +-
 ...BACnetConstructedDataLimitMonitoringInterval.go |   37 +-
 .../model/BACnetConstructedDataLinkSpeed.go        |   37 +-
 .../BACnetConstructedDataLinkSpeedAutonegotiate.go |   37 +-
 .../model/BACnetConstructedDataLinkSpeeds.go       |   49 +-
 .../BACnetConstructedDataListOfGroupMembers.go     |   39 +-
 ...onstructedDataListOfObjectPropertyReferences.go |   39 +-
 .../model/BACnetConstructedDataLoadControlAll.go   |   27 +-
 ...BACnetConstructedDataLoadControlPresentValue.go |   37 +-
 .../model/BACnetConstructedDataLocalDate.go        |   37 +-
 .../BACnetConstructedDataLocalForwardingOnly.go    |   37 +-
 .../model/BACnetConstructedDataLocalTime.go        |   37 +-
 .../model/BACnetConstructedDataLocation.go         |   37 +-
 .../model/BACnetConstructedDataLockStatus.go       |   37 +-
 .../model/BACnetConstructedDataLockout.go          |   37 +-
 .../BACnetConstructedDataLockoutRelinquishTime.go  |   37 +-
 .../model/BACnetConstructedDataLogBuffer.go        |   49 +-
 ...BACnetConstructedDataLogDeviceObjectProperty.go |   37 +-
 .../model/BACnetConstructedDataLogInterval.go      |   37 +-
 .../model/BACnetConstructedDataLoggingObject.go    |   37 +-
 .../model/BACnetConstructedDataLoggingRecord.go    |   37 +-
 .../model/BACnetConstructedDataLoggingType.go      |   37 +-
 .../model/BACnetConstructedDataLoopAction.go       |   37 +-
 .../model/BACnetConstructedDataLoopAll.go          |   27 +-
 .../model/BACnetConstructedDataLoopPresentValue.go |   37 +-
 .../model/BACnetConstructedDataLowDiffLimit.go     |   37 +-
 .../model/BACnetConstructedDataLowLimit.go         |   37 +-
 .../model/BACnetConstructedDataLowerDeck.go        |   37 +-
 .../model/BACnetConstructedDataMACAddress.go       |   37 +-
 .../model/BACnetConstructedDataMachineRoomID.go    |   37 +-
 .../BACnetConstructedDataMaintenanceRequired.go    |   37 +-
 .../model/BACnetConstructedDataMakingCarCall.go    |   49 +-
 ...tConstructedDataManipulatedVariableReference.go |   37 +-
 ...CnetConstructedDataManualSlaveAddressBinding.go |   39 +-
 .../BACnetConstructedDataMaskedAlarmValues.go      |   39 +-
 .../BACnetConstructedDataMaxAPDULengthAccepted.go  |   37 +-
 .../model/BACnetConstructedDataMaxActualValue.go   |   37 +-
 .../BACnetConstructedDataMaxFailedAttempts.go      |   37 +-
 .../model/BACnetConstructedDataMaxInfoFrames.go    |   37 +-
 .../model/BACnetConstructedDataMaxMaster.go        |   37 +-
 .../model/BACnetConstructedDataMaxPresValue.go     |   37 +-
 .../BACnetConstructedDataMaxSegmentsAccepted.go    |   37 +-
 .../model/BACnetConstructedDataMaximumOutput.go    |   37 +-
 .../model/BACnetConstructedDataMaximumValue.go     |   37 +-
 .../BACnetConstructedDataMaximumValueTimestamp.go  |   37 +-
 .../model/BACnetConstructedDataMemberOf.go         |   39 +-
 .../BACnetConstructedDataMemberStatusFlags.go      |   37 +-
 .../model/BACnetConstructedDataMembers.go          |   39 +-
 .../model/BACnetConstructedDataMinActualValue.go   |   37 +-
 .../model/BACnetConstructedDataMinPresValue.go     |   37 +-
 .../model/BACnetConstructedDataMinimumOffTime.go   |   37 +-
 .../model/BACnetConstructedDataMinimumOnTime.go    |   37 +-
 .../model/BACnetConstructedDataMinimumOutput.go    |   37 +-
 .../model/BACnetConstructedDataMinimumValue.go     |   37 +-
 .../BACnetConstructedDataMinimumValueTimestamp.go  |   37 +-
 .../readwrite/model/BACnetConstructedDataMode.go   |   37 +-
 .../model/BACnetConstructedDataModelName.go        |   37 +-
 .../model/BACnetConstructedDataModificationDate.go |   37 +-
 ...netConstructedDataMultiStateInputAlarmValues.go |   39 +-
 .../BACnetConstructedDataMultiStateInputAll.go     |   27 +-
 ...netConstructedDataMultiStateInputFaultValues.go |   39 +-
 ...ConstructedDataMultiStateInputInterfaceValue.go |   37 +-
 .../BACnetConstructedDataMultiStateOutputAll.go    |   27 +-
 ...ConstructedDataMultiStateOutputFeedbackValue.go |   37 +-
 ...onstructedDataMultiStateOutputInterfaceValue.go |   37 +-
 ...tructedDataMultiStateOutputRelinquishDefault.go |   37 +-
 ...netConstructedDataMultiStateValueAlarmValues.go |   39 +-
 .../BACnetConstructedDataMultiStateValueAll.go     |   27 +-
 ...netConstructedDataMultiStateValueFaultValues.go |   39 +-
 ...structedDataMultiStateValueRelinquishDefault.go |   37 +-
 .../model/BACnetConstructedDataMusterPoint.go      |   37 +-
 .../BACnetConstructedDataNegativeAccessRules.go    |   49 +-
 ...ConstructedDataNetworkAccessSecurityPolicies.go |   49 +-
 .../BACnetConstructedDataNetworkInterfaceName.go   |   37 +-
 .../model/BACnetConstructedDataNetworkNumber.go    |   37 +-
 .../BACnetConstructedDataNetworkNumberQuality.go   |   37 +-
 .../model/BACnetConstructedDataNetworkPortAll.go   |   27 +-
 ...ACnetConstructedDataNetworkPortMaxInfoFrames.go |   37 +-
 .../BACnetConstructedDataNetworkPortMaxMaster.go   |   37 +-
 .../BACnetConstructedDataNetworkSecurityAll.go     |   27 +-
 .../model/BACnetConstructedDataNetworkType.go      |   37 +-
 .../BACnetConstructedDataNextStoppingFloor.go      |   37 +-
 .../model/BACnetConstructedDataNodeSubtype.go      |   37 +-
 .../model/BACnetConstructedDataNodeType.go         |   37 +-
 .../BACnetConstructedDataNotificationClass.go      |   37 +-
 .../BACnetConstructedDataNotificationClassAll.go   |   27 +-
 ...ACnetConstructedDataNotificationForwarderAll.go |   27 +-
 .../BACnetConstructedDataNotificationThreshold.go  |   37 +-
 .../model/BACnetConstructedDataNotifyType.go       |   37 +-
 .../BACnetConstructedDataNumberOfAPDURetries.go    |   37 +-
 ...onstructedDataNumberOfAuthenticationPolicies.go |   37 +-
 .../model/BACnetConstructedDataNumberOfStates.go   |   37 +-
 .../model/BACnetConstructedDataObjectIdentifier.go |   37 +-
 .../model/BACnetConstructedDataObjectList.go       |   49 +-
 .../model/BACnetConstructedDataObjectName.go       |   37 +-
 ...BACnetConstructedDataObjectPropertyReference.go |   37 +-
 .../model/BACnetConstructedDataObjectType.go       |   37 +-
 .../model/BACnetConstructedDataOccupancyCount.go   |   37 +-
 .../BACnetConstructedDataOccupancyCountAdjust.go   |   37 +-
 .../BACnetConstructedDataOccupancyCountEnable.go   |   37 +-
 .../BACnetConstructedDataOccupancyLowerLimit.go    |   37 +-
 ...etConstructedDataOccupancyLowerLimitEnforced.go |   37 +-
 .../model/BACnetConstructedDataOccupancyState.go   |   37 +-
 .../BACnetConstructedDataOccupancyUpperLimit.go    |   37 +-
 ...etConstructedDataOccupancyUpperLimitEnforced.go |   37 +-
 ...tConstructedDataOctetStringValuePresentValue.go |   37 +-
 ...tructedDataOctetStringValueRelinquishDefault.go |   37 +-
 .../BACnetConstructedDataOctetstringValueAll.go    |   27 +-
 .../BACnetConstructedDataOperationDirection.go     |   37 +-
 .../BACnetConstructedDataOperationExpected.go      |   37 +-
 .../model/BACnetConstructedDataOptional.go         |   27 +-
 .../model/BACnetConstructedDataOutOfService.go     |   37 +-
 .../model/BACnetConstructedDataOutputUnits.go      |   37 +-
 .../BACnetConstructedDataPacketReorderTime.go      |   37 +-
 .../model/BACnetConstructedDataPassbackMode.go     |   37 +-
 .../model/BACnetConstructedDataPassbackTimeout.go  |   37 +-
 .../model/BACnetConstructedDataPassengerAlarm.go   |   37 +-
 .../model/BACnetConstructedDataPolarity.go         |   37 +-
 .../model/BACnetConstructedDataPortFilter.go       |   49 +-
 .../BACnetConstructedDataPositiveAccessRules.go    |   49 +-
 ...BACnetConstructedDataPositiveIntegerValueAll.go |   27 +-
 ...structedDataPositiveIntegerValueCOVIncrement.go |   37 +-
 ...tConstructedDataPositiveIntegerValueDeadband.go |   37 +-
 ...ructedDataPositiveIntegerValueFaultHighLimit.go |   37 +-
 ...tructedDataPositiveIntegerValueFaultLowLimit.go |   37 +-
 ...ConstructedDataPositiveIntegerValueHighLimit.go |   37 +-
 ...tConstructedDataPositiveIntegerValueLowLimit.go |   37 +-
 ...structedDataPositiveIntegerValueMaxPresValue.go |   37 +-
 ...structedDataPositiveIntegerValueMinPresValue.go |   37 +-
 ...tedDataPositiveIntegerValueRelinquishDefault.go |   37 +-
 ...onstructedDataPositiveIntegerValueResolution.go |   37 +-
 .../readwrite/model/BACnetConstructedDataPower.go  |   37 +-
 .../model/BACnetConstructedDataPowerMode.go        |   37 +-
 .../model/BACnetConstructedDataPrescale.go         |   37 +-
 .../model/BACnetConstructedDataPresentValue.go     |   37 +-
 .../model/BACnetConstructedDataPriority.go         |   49 +-
 .../model/BACnetConstructedDataPriorityArray.go    |   37 +-
 .../BACnetConstructedDataPriorityForWriting.go     |   37 +-
 .../BACnetConstructedDataProcessIdentifier.go      |   37 +-
 ...BACnetConstructedDataProcessIdentifierFilter.go |   37 +-
 .../model/BACnetConstructedDataProfileLocation.go  |   37 +-
 .../model/BACnetConstructedDataProfileName.go      |   37 +-
 .../model/BACnetConstructedDataProgramAll.go       |   27 +-
 .../model/BACnetConstructedDataProgramChange.go    |   37 +-
 .../model/BACnetConstructedDataProgramLocation.go  |   37 +-
 .../model/BACnetConstructedDataProgramState.go     |   37 +-
 .../model/BACnetConstructedDataPropertyList.go     |   49 +-
 .../BACnetConstructedDataProportionalConstant.go   |   37 +-
 ...CnetConstructedDataProportionalConstantUnits.go |   37 +-
 .../model/BACnetConstructedDataProtocolLevel.go    |   37 +-
 ...tConstructedDataProtocolObjectTypesSupported.go |   37 +-
 .../model/BACnetConstructedDataProtocolRevision.go |   37 +-
 ...CnetConstructedDataProtocolServicesSupported.go |   37 +-
 .../model/BACnetConstructedDataProtocolVersion.go  |   37 +-
 ...CnetConstructedDataPulseConverterAdjustValue.go |   37 +-
 .../BACnetConstructedDataPulseConverterAll.go      |   27 +-
 ...netConstructedDataPulseConverterPresentValue.go |   37 +-
 .../model/BACnetConstructedDataPulseRate.go        |   37 +-
 .../model/BACnetConstructedDataReadOnly.go         |   37 +-
 .../model/BACnetConstructedDataReasonForDisable.go |   39 +-
 .../model/BACnetConstructedDataReasonForHalt.go    |   37 +-
 .../model/BACnetConstructedDataRecipientList.go    |   39 +-
 .../model/BACnetConstructedDataRecordCount.go      |   37 +-
 ...ACnetConstructedDataRecordsSinceNotification.go |   37 +-
 .../model/BACnetConstructedDataReferencePort.go    |   37 +-
 .../BACnetConstructedDataRegisteredCarCall.go      |   49 +-
 .../model/BACnetConstructedDataReliability.go      |   37 +-
 ...tConstructedDataReliabilityEvaluationInhibit.go |   37 +-
 .../BACnetConstructedDataRelinquishDefault.go      |   37 +-
 .../model/BACnetConstructedDataRepresents.go       |   37 +-
 .../BACnetConstructedDataRequestedShedLevel.go     |   37 +-
 ...BACnetConstructedDataRequestedUpdateInterval.go |   37 +-
 .../model/BACnetConstructedDataRequired.go         |   27 +-
 .../model/BACnetConstructedDataResolution.go       |   37 +-
 ...ConstructedDataRestartNotificationRecipients.go |   39 +-
 .../BACnetConstructedDataRestoreCompletionTime.go  |   37 +-
 .../BACnetConstructedDataRestorePreparationTime.go |   37 +-
 .../model/BACnetConstructedDataRoutingTable.go     |   39 +-
 .../readwrite/model/BACnetConstructedDataScale.go  |   37 +-
 .../model/BACnetConstructedDataScaleFactor.go      |   37 +-
 .../model/BACnetConstructedDataScheduleAll.go      |   27 +-
 .../model/BACnetConstructedDataScheduleDefault.go  |   37 +-
 .../BACnetConstructedDataSchedulePresentValue.go   |   37 +-
 .../model/BACnetConstructedDataSecuredStatus.go    |   37 +-
 .../BACnetConstructedDataSecurityPDUTimeout.go     |   37 +-
 .../BACnetConstructedDataSecurityTimeWindow.go     |   37 +-
 .../BACnetConstructedDataSegmentationSupported.go  |   37 +-
 .../model/BACnetConstructedDataSerialNumber.go     |   37 +-
 .../model/BACnetConstructedDataSetpoint.go         |   37 +-
 .../BACnetConstructedDataSetpointReference.go      |   37 +-
 .../model/BACnetConstructedDataSetting.go          |   37 +-
 .../model/BACnetConstructedDataShedDuration.go     |   37 +-
 .../BACnetConstructedDataShedLevelDescriptions.go  |   49 +-
 .../model/BACnetConstructedDataShedLevels.go       |   49 +-
 .../model/BACnetConstructedDataSilenced.go         |   37 +-
 .../BACnetConstructedDataSlaveAddressBinding.go    |   39 +-
 .../model/BACnetConstructedDataSlaveProxyEnable.go |   37 +-
 .../model/BACnetConstructedDataStartTime.go        |   37 +-
 .../BACnetConstructedDataStateChangeValues.go      |   49 +-
 .../model/BACnetConstructedDataStateDescription.go |   37 +-
 .../model/BACnetConstructedDataStateText.go        |   49 +-
 .../model/BACnetConstructedDataStatusFlags.go      |   37 +-
 .../model/BACnetConstructedDataStopTime.go         |   37 +-
 .../model/BACnetConstructedDataStopWhenFull.go     |   37 +-
 .../model/BACnetConstructedDataStrikeCount.go      |   37 +-
 .../BACnetConstructedDataStructuredObjectList.go   |   49 +-
 .../BACnetConstructedDataStructuredViewAll.go      |   27 +-
 .../BACnetConstructedDataSubordinateAnnotations.go |   49 +-
 .../model/BACnetConstructedDataSubordinateList.go  |   49 +-
 .../BACnetConstructedDataSubordinateNodeTypes.go   |   49 +-
 ...ACnetConstructedDataSubordinateRelationships.go |   49 +-
 .../model/BACnetConstructedDataSubordinateTags.go  |   49 +-
 .../BACnetConstructedDataSubscribedRecipients.go   |   39 +-
 .../BACnetConstructedDataSupportedFormatClasses.go |   49 +-
 .../model/BACnetConstructedDataSupportedFormats.go |   49 +-
 ...etConstructedDataSupportedSecurityAlgorithms.go |   39 +-
 .../model/BACnetConstructedDataSystemStatus.go     |   37 +-
 .../readwrite/model/BACnetConstructedDataTags.go   |   49 +-
 .../model/BACnetConstructedDataThreatAuthority.go  |   37 +-
 .../model/BACnetConstructedDataThreatLevel.go      |   37 +-
 .../model/BACnetConstructedDataTimeDelay.go        |   37 +-
 .../model/BACnetConstructedDataTimeDelayNormal.go  |   37 +-
 .../BACnetConstructedDataTimeOfActiveTimeReset.go  |   37 +-
 .../BACnetConstructedDataTimeOfDeviceRestart.go    |   37 +-
 .../BACnetConstructedDataTimeOfStateCountReset.go  |   37 +-
 .../BACnetConstructedDataTimeOfStrikeCountReset.go |   37 +-
 ...tConstructedDataTimePatternValuePresentValue.go |   37 +-
 ...tructedDataTimePatternValueRelinquishDefault.go |   37 +-
 ...etConstructedDataTimeSynchronizationInterval.go |   37 +-
 ...ConstructedDataTimeSynchronizationRecipients.go |   39 +-
 .../model/BACnetConstructedDataTimeValueAll.go     |   27 +-
 .../BACnetConstructedDataTimeValuePresentValue.go  |   37 +-
 ...netConstructedDataTimeValueRelinquishDefault.go |   37 +-
 .../BACnetConstructedDataTimepatternValueAll.go    |   27 +-
 .../model/BACnetConstructedDataTimerAlarmValues.go |   39 +-
 .../model/BACnetConstructedDataTimerAll.go         |   27 +-
 .../BACnetConstructedDataTimerMaxPresValue.go      |   37 +-
 .../BACnetConstructedDataTimerMinPresValue.go      |   37 +-
 .../model/BACnetConstructedDataTimerResolution.go  |   37 +-
 .../model/BACnetConstructedDataTimerRunning.go     |   37 +-
 .../model/BACnetConstructedDataTimerState.go       |   37 +-
 .../model/BACnetConstructedDataTotalRecordCount.go |   37 +-
 .../model/BACnetConstructedDataTraceFlag.go        |   37 +-
 .../model/BACnetConstructedDataTrackingValue.go    |   37 +-
 ...tConstructedDataTransactionNotificationClass.go |   37 +-
 .../model/BACnetConstructedDataTransition.go       |   37 +-
 .../model/BACnetConstructedDataTrendLogAll.go      |   27 +-
 .../BACnetConstructedDataTrendLogLogBuffer.go      |   39 +-
 ...nstructedDataTrendLogLogDeviceObjectProperty.go |   37 +-
 .../BACnetConstructedDataTrendLogMultipleAll.go    |   27 +-
 ...CnetConstructedDataTrendLogMultipleLogBuffer.go |   39 +-
 ...dDataTrendLogMultipleLogDeviceObjectProperty.go |   49 +-
 .../model/BACnetConstructedDataTrigger.go          |   37 +-
 .../model/BACnetConstructedDataUTCOffset.go        |   37 +-
 ...structedDataUTCTimeSynchronizationRecipients.go |   39 +-
 .../readwrite/model/BACnetConstructedDataUnits.go  |   37 +-
 .../model/BACnetConstructedDataUnspecified.go      |   49 +-
 .../model/BACnetConstructedDataUpdateInterval.go   |   37 +-
 .../BACnetConstructedDataUpdateKeySetTimeout.go    |   37 +-
 .../model/BACnetConstructedDataUpdateTime.go       |   37 +-
 .../BACnetConstructedDataUserExternalIdentifier.go |   37 +-
 ...ACnetConstructedDataUserInformationReference.go |   37 +-
 .../model/BACnetConstructedDataUserName.go         |   37 +-
 .../model/BACnetConstructedDataUserType.go         |   37 +-
 .../model/BACnetConstructedDataUsesRemaining.go    |   37 +-
 .../BACnetConstructedDataVTClassesSupported.go     |   39 +-
 .../model/BACnetConstructedDataValidSamples.go     |   37 +-
 .../BACnetConstructedDataValueBeforeChange.go      |   37 +-
 .../model/BACnetConstructedDataValueChangeTime.go  |   37 +-
 .../model/BACnetConstructedDataValueSet.go         |   37 +-
 .../model/BACnetConstructedDataValueSource.go      |   37 +-
 .../model/BACnetConstructedDataValueSourceArray.go |   49 +-
 .../model/BACnetConstructedDataVarianceValue.go    |   37 +-
 .../model/BACnetConstructedDataVendorIdentifier.go |   37 +-
 .../model/BACnetConstructedDataVendorName.go       |   37 +-
 .../model/BACnetConstructedDataVerificationTime.go |   37 +-
 .../BACnetConstructedDataVirtualMACAddressTable.go |   39 +-
 .../model/BACnetConstructedDataWeeklySchedule.go   |   49 +-
 .../model/BACnetConstructedDataWindowInterval.go   |   37 +-
 .../model/BACnetConstructedDataWindowSamples.go    |   37 +-
 .../model/BACnetConstructedDataWriteStatus.go      |   37 +-
 .../model/BACnetConstructedDataZoneFrom.go         |   37 +-
 .../model/BACnetConstructedDataZoneMembers.go      |   39 +-
 .../readwrite/model/BACnetConstructedDataZoneTo.go |   37 +-
 .../bacnetip/readwrite/model/BACnetContextTag.go   |   62 +-
 .../readwrite/model/BACnetContextTagBitString.go   |   33 +-
 .../readwrite/model/BACnetContextTagBoolean.go     |   37 +-
 .../model/BACnetContextTagCharacterString.go       |   37 +-
 .../readwrite/model/BACnetContextTagDate.go        |   33 +-
 .../readwrite/model/BACnetContextTagDouble.go      |   37 +-
 .../readwrite/model/BACnetContextTagEnumerated.go  |   37 +-
 .../readwrite/model/BACnetContextTagNull.go        |   27 +-
 .../model/BACnetContextTagObjectIdentifier.go      |   41 +-
 .../readwrite/model/BACnetContextTagOctetString.go |   33 +-
 .../readwrite/model/BACnetContextTagReal.go        |   37 +-
 .../model/BACnetContextTagSignedInteger.go         |   37 +-
 .../readwrite/model/BACnetContextTagTime.go        |   33 +-
 .../readwrite/model/BACnetContextTagUnknown.go     |   27 +-
 .../model/BACnetContextTagUnsignedInteger.go       |   37 +-
 .../model/BACnetCredentialAuthenticationFactor.go  |   35 +-
 .../readwrite/model/BACnetDailySchedule.go         |   47 +-
 .../bacnetip/readwrite/model/BACnetDataType.go     |   17 +-
 .../bacnetip/readwrite/model/BACnetDateRange.go    |   35 +-
 .../readwrite/model/BACnetDateRangeEnclosed.go     |   41 +-
 .../bacnetip/readwrite/model/BACnetDateTime.go     |   35 +-
 .../readwrite/model/BACnetDateTimeEnclosed.go      |   41 +-
 .../bacnetip/readwrite/model/BACnetDaysOfWeek.go   |   17 +-
 .../readwrite/model/BACnetDaysOfWeekTagged.go      |   63 +-
 .../bacnetip/readwrite/model/BACnetDestination.go  |   65 +-
 .../model/BACnetDeviceObjectPropertyReference.go   |   47 +-
 .../BACnetDeviceObjectPropertyReferenceEnclosed.go |   41 +-
 .../readwrite/model/BACnetDeviceObjectReference.go |   35 +-
 .../model/BACnetDeviceObjectReferenceEnclosed.go   |   41 +-
 .../bacnetip/readwrite/model/BACnetDeviceStatus.go |   17 +-
 .../readwrite/model/BACnetDeviceStatusTagged.go    |   33 +-
 .../readwrite/model/BACnetDoorAlarmState.go        |   17 +-
 .../readwrite/model/BACnetDoorAlarmStateTagged.go  |   33 +-
 .../readwrite/model/BACnetDoorSecuredStatus.go     |   17 +-
 .../model/BACnetDoorSecuredStatusTagged.go         |   29 +-
 .../bacnetip/readwrite/model/BACnetDoorStatus.go   |   17 +-
 .../readwrite/model/BACnetDoorStatusTagged.go      |   33 +-
 .../bacnetip/readwrite/model/BACnetDoorValue.go    |   17 +-
 .../readwrite/model/BACnetDoorValueTagged.go       |   29 +-
 .../readwrite/model/BACnetEngineeringUnits.go      |   17 +-
 .../model/BACnetEngineeringUnitsTagged.go          |   33 +-
 .../bacnetip/readwrite/model/BACnetError.go        |   36 +-
 .../bacnetip/readwrite/model/BACnetErrorGeneral.go |   33 +-
 .../readwrite/model/BACnetEscalatorFault.go        |   17 +-
 .../readwrite/model/BACnetEscalatorFaultTagged.go  |   33 +-
 .../readwrite/model/BACnetEscalatorMode.go         |   17 +-
 .../readwrite/model/BACnetEscalatorModeTagged.go   |   33 +-
 .../model/BACnetEscalatorOperationDirection.go     |   17 +-
 .../BACnetEscalatorOperationDirectionTagged.go     |   33 +-
 .../readwrite/model/BACnetEventLogRecord.go        |   35 +-
 .../model/BACnetEventLogRecordLogDatum.go          |   44 +-
 .../model/BACnetEventLogRecordLogDatumLogStatus.go |   33 +-
 .../BACnetEventLogRecordLogDatumNotification.go    |   45 +-
 .../BACnetEventLogRecordLogDatumTimeChange.go      |   33 +-
 .../model/BACnetEventNotificationSubscription.go   |   47 +-
 .../readwrite/model/BACnetEventParameter.go        |   64 +-
 .../model/BACnetEventParameterAccessEvent.go       |   51 +-
 ...tEventParameterAccessEventListOfAccessEvents.go |   47 +-
 .../model/BACnetEventParameterBufferReady.go       |   51 +-
 .../model/BACnetEventParameterChangeOfBitstring.go |   57 +-
 ...ameterChangeOfBitstringListOfBitstringValues.go |   47 +-
 .../BACnetEventParameterChangeOfCharacterString.go |   51 +-
 ...eterChangeOfCharacterStringListOfAlarmValues.go |   47 +-
 .../BACnetEventParameterChangeOfDiscreteValue.go   |   45 +-
 .../BACnetEventParameterChangeOfLifeSavety.go      |   63 +-
 ...ParameterChangeOfLifeSavetyListOfAlarmValues.go |   47 +-
 ...hangeOfLifeSavetyListOfLifeSavetyAlarmValues.go |   47 +-
 .../model/BACnetEventParameterChangeOfState.go     |   51 +-
 ...ACnetEventParameterChangeOfStateListOfValues.go |   47 +-
 .../BACnetEventParameterChangeOfStatusFlags.go     |   51 +-
 .../model/BACnetEventParameterChangeOfTimer.go     |   57 +-
 .../BACnetEventParameterChangeOfTimerAlarmValue.go |   47 +-
 .../model/BACnetEventParameterChangeOfValue.go     |   51 +-
 ...BACnetEventParameterChangeOfValueCivCriteria.go |   42 +-
 ...ventParameterChangeOfValueCivCriteriaBitmask.go |   33 +-
 ...fValueCivCriteriaReferencedPropertyIncrement.go |   33 +-
 .../model/BACnetEventParameterCommandFailure.go    |   51 +-
 .../model/BACnetEventParameterDoubleOutOfRange.go  |   63 +-
 .../model/BACnetEventParameterExtended.go          |   57 +-
 .../BACnetEventParameterExtendedParameters.go      |  133 +-
 .../model/BACnetEventParameterFloatingLimit.go     |   69 +-
 .../readwrite/model/BACnetEventParameterNone.go    |   33 +-
 .../model/BACnetEventParameterOutOfRange.go        |   63 +-
 .../model/BACnetEventParameterSignedOutOfRange.go  |   63 +-
 .../BACnetEventParameterUnsignedOutOfRange.go      |   63 +-
 .../model/BACnetEventParameterUnsignedRange.go     |   57 +-
 .../readwrite/model/BACnetEventPriorities.go       |   53 +-
 .../bacnetip/readwrite/model/BACnetEventState.go   |   17 +-
 .../readwrite/model/BACnetEventStateTagged.go      |   33 +-
 .../readwrite/model/BACnetEventSummariesList.go    |   47 +-
 .../bacnetip/readwrite/model/BACnetEventSummary.go |   65 +-
 .../readwrite/model/BACnetEventTimestamps.go       |   41 +-
 .../model/BACnetEventTimestampsEnclosed.go         |   41 +-
 .../readwrite/model/BACnetEventTransitionBits.go   |   17 +-
 .../model/BACnetEventTransitionBitsTagged.go       |   47 +-
 .../bacnetip/readwrite/model/BACnetEventType.go    |   17 +-
 .../readwrite/model/BACnetEventTypeTagged.go       |   33 +-
 .../readwrite/model/BACnetFaultParameter.go        |   42 +-
 .../BACnetFaultParameterFaultCharacterString.go    |   45 +-
 ...rameterFaultCharacterStringListOfFaultValues.go |   47 +-
 .../model/BACnetFaultParameterFaultExtended.go     |   57 +-
 .../BACnetFaultParameterFaultExtendedParameters.go |   47 +-
 ...etFaultParameterFaultExtendedParametersEntry.go |   58 +-
 ...rameterFaultExtendedParametersEntryBitString.go |   33 +-
 ...ParameterFaultExtendedParametersEntryBoolean.go |   33 +-
 ...rFaultExtendedParametersEntryCharacterString.go |   33 +-
 ...ultParameterFaultExtendedParametersEntryDate.go |   33 +-
 ...tParameterFaultExtendedParametersEntryDouble.go |   33 +-
 ...ameterFaultExtendedParametersEntryEnumerated.go |   33 +-
 ...ParameterFaultExtendedParametersEntryInteger.go |   33 +-
 ...ultParameterFaultExtendedParametersEntryNull.go |   33 +-
 ...FaultExtendedParametersEntryObjectidentifier.go |   33 +-
 ...meterFaultExtendedParametersEntryOctetString.go |   33 +-
 ...ultParameterFaultExtendedParametersEntryReal.go |   33 +-
 ...rameterFaultExtendedParametersEntryReference.go |   33 +-
 ...ultParameterFaultExtendedParametersEntryTime.go |   33 +-
 ...arameterFaultExtendedParametersEntryUnsigned.go |   33 +-
 .../model/BACnetFaultParameterFaultLifeSafety.go   |   51 +-
 ...ultParameterFaultLifeSafetyListOfFaultValues.go |   47 +-
 .../model/BACnetFaultParameterFaultListed.go       |   45 +-
 .../model/BACnetFaultParameterFaultOutOfRange.go   |   51 +-
 ...tFaultParameterFaultOutOfRangeMaxNormalValue.go |   46 +-
 ...ParameterFaultOutOfRangeMaxNormalValueDouble.go |   33 +-
 ...arameterFaultOutOfRangeMaxNormalValueInteger.go |   33 +-
 ...ltParameterFaultOutOfRangeMaxNormalValueReal.go |   33 +-
 ...rameterFaultOutOfRangeMaxNormalValueUnsigned.go |   33 +-
 ...tFaultParameterFaultOutOfRangeMinNormalValue.go |   46 +-
 ...ParameterFaultOutOfRangeMinNormalValueDouble.go |   33 +-
 ...arameterFaultOutOfRangeMinNormalValueInteger.go |   33 +-
 ...ltParameterFaultOutOfRangeMinNormalValueReal.go |   33 +-
 ...rameterFaultOutOfRangeMinNormalValueUnsigned.go |   33 +-
 .../model/BACnetFaultParameterFaultState.go        |   45 +-
 ...netFaultParameterFaultStateListOfFaultValues.go |   47 +-
 .../model/BACnetFaultParameterFaultStatusFlags.go  |   45 +-
 .../readwrite/model/BACnetFaultParameterNone.go    |   33 +-
 .../bacnetip/readwrite/model/BACnetFaultType.go    |   17 +-
 .../readwrite/model/BACnetFaultTypeTagged.go       |   29 +-
 .../readwrite/model/BACnetFileAccessMethod.go      |   17 +-
 .../model/BACnetFileAccessMethodTagged.go          |   29 +-
 .../readwrite/model/BACnetGroupChannelValue.go     |   41 +-
 .../readwrite/model/BACnetGroupChannelValueList.go |   47 +-
 .../bacnetip/readwrite/model/BACnetHostAddress.go  |   32 +-
 .../readwrite/model/BACnetHostAddressEnclosed.go   |   41 +-
 .../readwrite/model/BACnetHostAddressIpAddress.go  |   33 +-
 .../readwrite/model/BACnetHostAddressName.go       |   33 +-
 .../readwrite/model/BACnetHostAddressNull.go       |   33 +-
 .../bacnetip/readwrite/model/BACnetHostNPort.go    |   35 +-
 .../readwrite/model/BACnetHostNPortEnclosed.go     |   41 +-
 .../bacnetip/readwrite/model/BACnetIPMode.go       |   17 +-
 .../bacnetip/readwrite/model/BACnetIPModeTagged.go |   29 +-
 .../readwrite/model/BACnetKeyIdentifier.go         |   35 +-
 .../readwrite/model/BACnetLandingCallStatus.go     |   41 +-
 .../model/BACnetLandingCallStatusCommand.go        |   30 +-
 .../BACnetLandingCallStatusCommandDestination.go   |   33 +-
 .../BACnetLandingCallStatusCommandDirection.go     |   33 +-
 .../readwrite/model/BACnetLandingDoorStatus.go     |   29 +-
 .../BACnetLandingDoorStatusLandingDoorsList.go     |   47 +-
 ...BACnetLandingDoorStatusLandingDoorsListEntry.go |   35 +-
 .../readwrite/model/BACnetLifeSafetyMode.go        |   17 +-
 .../readwrite/model/BACnetLifeSafetyModeTagged.go  |   33 +-
 .../readwrite/model/BACnetLifeSafetyOperation.go   |   17 +-
 .../model/BACnetLifeSafetyOperationTagged.go       |   33 +-
 .../readwrite/model/BACnetLifeSafetyState.go       |   17 +-
 .../readwrite/model/BACnetLifeSafetyStateTagged.go |   33 +-
 .../readwrite/model/BACnetLiftCarCallList.go       |   29 +-
 .../model/BACnetLiftCarCallListFloorList.go        |   47 +-
 .../readwrite/model/BACnetLiftCarDirection.go      |   17 +-
 .../model/BACnetLiftCarDirectionTagged.go          |   33 +-
 .../readwrite/model/BACnetLiftCarDoorCommand.go    |   17 +-
 .../model/BACnetLiftCarDoorCommandTagged.go        |   29 +-
 .../readwrite/model/BACnetLiftCarDriveStatus.go    |   17 +-
 .../model/BACnetLiftCarDriveStatusTagged.go        |   33 +-
 .../bacnetip/readwrite/model/BACnetLiftCarMode.go  |   17 +-
 .../readwrite/model/BACnetLiftCarModeTagged.go     |   33 +-
 .../bacnetip/readwrite/model/BACnetLiftFault.go    |   17 +-
 .../readwrite/model/BACnetLiftFaultTagged.go       |   33 +-
 .../readwrite/model/BACnetLiftGroupMode.go         |   17 +-
 .../readwrite/model/BACnetLiftGroupModeTagged.go   |   29 +-
 .../readwrite/model/BACnetLightingCommand.go       |   59 +-
 .../model/BACnetLightingCommandEnclosed.go         |   41 +-
 .../readwrite/model/BACnetLightingInProgress.go    |   17 +-
 .../model/BACnetLightingInProgressTagged.go        |   29 +-
 .../readwrite/model/BACnetLightingOperation.go     |   17 +-
 .../model/BACnetLightingOperationTagged.go         |   33 +-
 .../readwrite/model/BACnetLightingTransition.go    |   17 +-
 .../model/BACnetLightingTransitionTagged.go        |   33 +-
 .../bacnetip/readwrite/model/BACnetLimitEnable.go  |   17 +-
 .../readwrite/model/BACnetLimitEnableTagged.go     |   43 +-
 .../bacnetip/readwrite/model/BACnetLockStatus.go   |   17 +-
 .../readwrite/model/BACnetLockStatusTagged.go      |   29 +-
 .../bacnetip/readwrite/model/BACnetLogData.go      |   44 +-
 .../readwrite/model/BACnetLogDataLogData.go        |   51 +-
 .../readwrite/model/BACnetLogDataLogDataEntry.go   |   44 +-
 .../model/BACnetLogDataLogDataEntryAnyValue.go     |   33 +-
 .../BACnetLogDataLogDataEntryBitStringValue.go     |   33 +-
 .../model/BACnetLogDataLogDataEntryBooleanValue.go |   33 +-
 .../BACnetLogDataLogDataEntryEnumeratedValue.go    |   33 +-
 .../model/BACnetLogDataLogDataEntryFailure.go      |   33 +-
 .../model/BACnetLogDataLogDataEntryIntegerValue.go |   33 +-
 .../model/BACnetLogDataLogDataEntryNullValue.go    |   33 +-
 .../model/BACnetLogDataLogDataEntryRealValue.go    |   33 +-
 .../BACnetLogDataLogDataEntryUnsignedValue.go      |   33 +-
 .../model/BACnetLogDataLogDataTimeChange.go        |   33 +-
 .../readwrite/model/BACnetLogDataLogStatus.go      |   33 +-
 .../readwrite/model/BACnetLogMultipleRecord.go     |   35 +-
 .../bacnetip/readwrite/model/BACnetLogRecord.go    |   41 +-
 .../readwrite/model/BACnetLogRecordLogDatum.go     |   60 +-
 .../model/BACnetLogRecordLogDatumAnyValue.go       |   33 +-
 .../model/BACnetLogRecordLogDatumBitStringValue.go |   33 +-
 .../model/BACnetLogRecordLogDatumBooleanValue.go   |   33 +-
 .../BACnetLogRecordLogDatumEnumeratedValue.go      |   33 +-
 .../model/BACnetLogRecordLogDatumFailure.go        |   33 +-
 .../model/BACnetLogRecordLogDatumIntegerValue.go   |   33 +-
 .../model/BACnetLogRecordLogDatumLogStatus.go      |   33 +-
 .../model/BACnetLogRecordLogDatumNullValue.go      |   33 +-
 .../model/BACnetLogRecordLogDatumRealValue.go      |   33 +-
 .../model/BACnetLogRecordLogDatumTimeChange.go     |   33 +-
 .../model/BACnetLogRecordLogDatumUnsignedValue.go  |   33 +-
 .../bacnetip/readwrite/model/BACnetLogStatus.go    |   17 +-
 .../readwrite/model/BACnetLogStatusTagged.go       |   47 +-
 .../bacnetip/readwrite/model/BACnetLoggingType.go  |   17 +-
 .../readwrite/model/BACnetLoggingTypeTagged.go     |   33 +-
 .../bacnetip/readwrite/model/BACnetMaintenance.go  |   17 +-
 .../readwrite/model/BACnetMaintenanceTagged.go     |   33 +-
 .../bacnetip/readwrite/model/BACnetNameValue.go    |   35 +-
 .../readwrite/model/BACnetNameValueCollection.go   |   47 +-
 .../readwrite/model/BACnetNetworkNumberQuality.go  |   17 +-
 .../model/BACnetNetworkNumberQualityTagged.go      |   29 +-
 .../readwrite/model/BACnetNetworkPortCommand.go    |   17 +-
 .../model/BACnetNetworkPortCommandTagged.go        |   33 +-
 .../readwrite/model/BACnetNetworkSecurityPolicy.go |   35 +-
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |   17 +-
 .../readwrite/model/BACnetNetworkTypeTagged.go     |   33 +-
 .../bacnetip/readwrite/model/BACnetNodeType.go     |   17 +-
 .../readwrite/model/BACnetNodeTypeTagged.go        |   29 +-
 .../model/BACnetNotificationParameters.go          |   78 +-
 .../BACnetNotificationParametersAccessEvent.go     |   75 +-
 .../BACnetNotificationParametersBufferReady.go     |   57 +-
 ...ACnetNotificationParametersChangeOfBitString.go |   51 +-
 ...otificationParametersChangeOfCharacterString.go |   57 +-
 ...tNotificationParametersChangeOfDiscreteValue.go |   51 +-
 ...ationParametersChangeOfDiscreteValueNewValue.go |   62 +-
 ...rametersChangeOfDiscreteValueNewValueBoolean.go |   33 +-
 ...ChangeOfDiscreteValueNewValueCharacterString.go |   33 +-
 ...ametersChangeOfDiscreteValueNewValueDatetime.go |   33 +-
 ...etersChangeOfDiscreteValueNewValueEnumerated.go |   33 +-
 ...rametersChangeOfDiscreteValueNewValueInteger.go |   33 +-
 ...hangeOfDiscreteValueNewValueObjectidentifier.go |   33 +-
 ...metersChangeOfDiscreteValueNewValueOctetDate.go |   33 +-
 ...tersChangeOfDiscreteValueNewValueOctetString.go |   33 +-
 ...metersChangeOfDiscreteValueNewValueOctetTime.go |   33 +-
 ...ametersChangeOfDiscreteValueNewValueUnsigned.go |   33 +-
 ...CnetNotificationParametersChangeOfLifeSafety.go |   63 +-
 ...netNotificationParametersChangeOfReliability.go |   57 +-
 .../BACnetNotificationParametersChangeOfState.go   |   51 +-
 ...netNotificationParametersChangeOfStatusFlags.go |   51 +-
 .../BACnetNotificationParametersChangeOfTimer.go   |   75 +-
 .../BACnetNotificationParametersChangeOfValue.go   |   51 +-
 ...tNotificationParametersChangeOfValueNewValue.go |   42 +-
 ...onParametersChangeOfValueNewValueChangedBits.go |   33 +-
 ...nParametersChangeOfValueNewValueChangedValue.go |   33 +-
 .../BACnetNotificationParametersCommandFailure.go  |   57 +-
 ...BACnetNotificationParametersComplexEventType.go |   33 +-
 ...BACnetNotificationParametersDoubleOutOfRange.go |   63 +-
 .../model/BACnetNotificationParametersExtended.go  |   57 +-
 ...CnetNotificationParametersExtendedParameters.go |  133 +-
 .../BACnetNotificationParametersFloatingLimit.go   |   63 +-
 .../BACnetNotificationParametersOutOfRange.go      |   63 +-
 ...BACnetNotificationParametersSignedOutOfRange.go |   63 +-
 ...CnetNotificationParametersUnsignedOutOfRange.go |   63 +-
 .../BACnetNotificationParametersUnsignedRange.go   |   57 +-
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |   17 +-
 .../readwrite/model/BACnetNotifyTypeTagged.go      |   29 +-
 .../model/BACnetObjectPropertyReference.go         |   41 +-
 .../model/BACnetObjectPropertyReferenceEnclosed.go |   41 +-
 .../bacnetip/readwrite/model/BACnetObjectType.go   |   17 +-
 .../readwrite/model/BACnetObjectTypeTagged.go      |   33 +-
 .../readwrite/model/BACnetObjectTypesSupported.go  |   17 +-
 .../model/BACnetObjectTypesSupportedTagged.go      |   75 +-
 .../bacnetip/readwrite/model/BACnetOpeningTag.go   |   29 +-
 .../readwrite/model/BACnetOptionalBinaryPV.go      |   30 +-
 .../readwrite/model/BACnetOptionalBinaryPVNull.go  |   33 +-
 .../readwrite/model/BACnetOptionalBinaryPVValue.go |   33 +-
 .../model/BACnetOptionalCharacterString.go         |   30 +-
 .../model/BACnetOptionalCharacterStringNull.go     |   33 +-
 .../model/BACnetOptionalCharacterStringValue.go    |   33 +-
 .../bacnetip/readwrite/model/BACnetOptionalREAL.go |   30 +-
 .../readwrite/model/BACnetOptionalREALNull.go      |   33 +-
 .../readwrite/model/BACnetOptionalREALValue.go     |   33 +-
 .../readwrite/model/BACnetOptionalUnsigned.go      |   30 +-
 .../readwrite/model/BACnetOptionalUnsignedNull.go  |   33 +-
 .../readwrite/model/BACnetOptionalUnsignedValue.go |   33 +-
 .../bacnetip/readwrite/model/BACnetPolarity.go     |   17 +-
 .../readwrite/model/BACnetPolarityTagged.go        |   29 +-
 .../readwrite/model/BACnetPortPermission.go        |   35 +-
 .../bacnetip/readwrite/model/BACnetPrescale.go     |   35 +-
 .../readwrite/model/BACnetPriorityArray.go         |  117 +-
 .../readwrite/model/BACnetPriorityValue.go         |   60 +-
 .../model/BACnetPriorityValueBitString.go          |   33 +-
 .../readwrite/model/BACnetPriorityValueBoolean.go  |   33 +-
 .../model/BACnetPriorityValueCharacterString.go    |   33 +-
 .../model/BACnetPriorityValueConstructedValue.go   |   33 +-
 .../readwrite/model/BACnetPriorityValueDate.go     |   33 +-
 .../readwrite/model/BACnetPriorityValueDateTime.go |   33 +-
 .../readwrite/model/BACnetPriorityValueDouble.go   |   33 +-
 .../model/BACnetPriorityValueEnumerated.go         |   33 +-
 .../readwrite/model/BACnetPriorityValueInteger.go  |   33 +-
 .../readwrite/model/BACnetPriorityValueNull.go     |   33 +-
 .../model/BACnetPriorityValueObjectidentifier.go   |   33 +-
 .../model/BACnetPriorityValueOctetString.go        |   33 +-
 .../readwrite/model/BACnetPriorityValueReal.go     |   33 +-
 .../readwrite/model/BACnetPriorityValueTime.go     |   33 +-
 .../readwrite/model/BACnetPriorityValueUnsigned.go |   33 +-
 .../readwrite/model/BACnetProcessIdSelection.go    |   30 +-
 .../model/BACnetProcessIdSelectionNull.go          |   33 +-
 .../model/BACnetProcessIdSelectionValue.go         |   33 +-
 .../bacnetip/readwrite/model/BACnetProgramError.go |   17 +-
 .../readwrite/model/BACnetProgramErrorTagged.go    |   33 +-
 .../readwrite/model/BACnetProgramRequest.go        |   17 +-
 .../readwrite/model/BACnetProgramRequestTagged.go  |   29 +-
 .../bacnetip/readwrite/model/BACnetProgramState.go |   17 +-
 .../readwrite/model/BACnetProgramStateTagged.go    |   29 +-
 .../readwrite/model/BACnetPropertyAccessResult.go  |   53 +-
 .../BACnetPropertyAccessResultAccessResult.go      |   30 +-
 ...yAccessResultAccessResultPropertyAccessError.go |   33 +-
 ...ropertyAccessResultAccessResultPropertyValue.go |   33 +-
 .../readwrite/model/BACnetPropertyIdentifier.go    |   17 +-
 .../model/BACnetPropertyIdentifierTagged.go        |   33 +-
 .../readwrite/model/BACnetPropertyReference.go     |   35 +-
 .../model/BACnetPropertyReferenceEnclosed.go       |   41 +-
 .../model/BACnetPropertyStateActionUnknown.go      |   33 +-
 .../readwrite/model/BACnetPropertyStates.go        |  144 ++-
 .../BACnetPropertyStatesAccessCredentialDisable.go |   33 +-
 ...tPropertyStatesAccessCredentialDisableReason.go |   33 +-
 .../model/BACnetPropertyStatesAccessEvent.go       |   33 +-
 .../readwrite/model/BACnetPropertyStatesAction.go  |   33 +-
 .../BACnetPropertyStatesAuthenticationStatus.go    |   33 +-
 .../model/BACnetPropertyStatesBackupState.go       |   33 +-
 .../model/BACnetPropertyStatesBacnetIpMode.go      |   33 +-
 .../BACnetPropertyStatesBinaryLightningValue.go    |   33 +-
 .../model/BACnetPropertyStatesBinaryValue.go       |   33 +-
 .../readwrite/model/BACnetPropertyStatesBoolean.go |   33 +-
 .../model/BACnetPropertyStatesDoorAlarmState.go    |   33 +-
 .../model/BACnetPropertyStatesDoorSecuredStatus.go |   33 +-
 .../model/BACnetPropertyStatesDoorStatus.go        |   33 +-
 .../model/BACnetPropertyStatesDoorValue.go         |   33 +-
 .../model/BACnetPropertyStatesEnclosed.go          |   41 +-
 .../model/BACnetPropertyStatesEscalatorFault.go    |   33 +-
 .../model/BACnetPropertyStatesEscalatorMode.go     |   33 +-
 ...netPropertyStatesEscalatorOperationDirection.go |   33 +-
 .../model/BACnetPropertyStatesEventType.go         |   33 +-
 .../model/BACnetPropertyStatesExtendedValue.go     |   33 +-
 .../model/BACnetPropertyStatesFileAccessMethod.go  |   33 +-
 .../model/BACnetPropertyStatesIntegerValue.go      |   33 +-
 .../model/BACnetPropertyStatesLifeSafetyMode.go    |   33 +-
 .../BACnetPropertyStatesLifeSafetyOperations.go    |   33 +-
 .../model/BACnetPropertyStatesLifeSafetyState.go   |   33 +-
 .../model/BACnetPropertyStatesLiftCarDirection.go  |   33 +-
 .../BACnetPropertyStatesLiftCarDoorCommand.go      |   33 +-
 .../BACnetPropertyStatesLiftCarDriveStatus.go      |   33 +-
 .../model/BACnetPropertyStatesLiftCarMode.go       |   33 +-
 .../model/BACnetPropertyStatesLiftFault.go         |   33 +-
 .../model/BACnetPropertyStatesLiftGroupMode.go     |   33 +-
 .../BACnetPropertyStatesLightningInProgress.go     |   33 +-
 .../BACnetPropertyStatesLightningOperation.go      |   33 +-
 .../BACnetPropertyStatesLightningTransition.go     |   33 +-
 .../model/BACnetPropertyStatesLockStatus.go        |   33 +-
 .../model/BACnetPropertyStatesMaintenance.go       |   33 +-
 .../BACnetPropertyStatesNetworkNumberQuality.go    |   33 +-
 .../BACnetPropertyStatesNetworkPortCommand.go      |   33 +-
 .../model/BACnetPropertyStatesNetworkType.go       |   33 +-
 .../model/BACnetPropertyStatesNodeType.go          |   33 +-
 .../model/BACnetPropertyStatesNotifyType.go        |   33 +-
 .../model/BACnetPropertyStatesPolarity.go          |   33 +-
 .../model/BACnetPropertyStatesProgramChange.go     |   33 +-
 .../model/BACnetPropertyStatesProtocolLevel.go     |   33 +-
 .../model/BACnetPropertyStatesReasonForHalt.go     |   33 +-
 .../model/BACnetPropertyStatesReliability.go       |   33 +-
 .../model/BACnetPropertyStatesRestartReason.go     |   33 +-
 .../model/BACnetPropertyStatesSecurityLevel.go     |   33 +-
 .../model/BACnetPropertyStatesShedState.go         |   33 +-
 .../model/BACnetPropertyStatesSilencedState.go     |   33 +-
 .../readwrite/model/BACnetPropertyStatesState.go   |   33 +-
 .../model/BACnetPropertyStatesSystemStatus.go      |   33 +-
 .../model/BACnetPropertyStatesTimerState.go        |   33 +-
 .../model/BACnetPropertyStatesTimerTransition.go   |   33 +-
 .../readwrite/model/BACnetPropertyStatesUnits.go   |   33 +-
 .../model/BACnetPropertyStatesWriteStatus.go       |   33 +-
 .../model/BACnetPropertyStatesZoneOccupanyState.go |   33 +-
 .../readwrite/model/BACnetPropertyValue.go         |   47 +-
 .../readwrite/model/BACnetPropertyValues.go        |   47 +-
 .../model/BACnetPropertyWriteDefinition.go         |   47 +-
 .../readwrite/model/BACnetProtocolLevel.go         |   17 +-
 .../readwrite/model/BACnetProtocolLevelTagged.go   |   29 +-
 .../readwrite/model/BACnetReadAccessProperty.go    |   41 +-
 .../model/BACnetReadAccessPropertyReadResult.go    |   41 +-
 .../readwrite/model/BACnetReadAccessResult.go      |   35 +-
 .../model/BACnetReadAccessResultListOfResults.go   |   47 +-
 .../model/BACnetReadAccessSpecification.go         |   53 +-
 .../bacnetip/readwrite/model/BACnetRecipient.go    |   30 +-
 .../readwrite/model/BACnetRecipientAddress.go      |   33 +-
 .../readwrite/model/BACnetRecipientDevice.go       |   33 +-
 .../readwrite/model/BACnetRecipientEnclosed.go     |   41 +-
 .../readwrite/model/BACnetRecipientProcess.go      |   35 +-
 .../model/BACnetRecipientProcessEnclosed.go        |   41 +-
 .../bacnetip/readwrite/model/BACnetRejectReason.go |   17 +-
 .../readwrite/model/BACnetRejectReasonTagged.go    |   27 +-
 .../bacnetip/readwrite/model/BACnetRelationship.go |   17 +-
 .../readwrite/model/BACnetRelationshipTagged.go    |   33 +-
 .../bacnetip/readwrite/model/BACnetReliability.go  |   17 +-
 .../readwrite/model/BACnetReliabilityTagged.go     |   33 +-
 .../readwrite/model/BACnetRestartReason.go         |   17 +-
 .../readwrite/model/BACnetRestartReasonTagged.go   |   33 +-
 .../bacnetip/readwrite/model/BACnetResultFlags.go  |   17 +-
 .../readwrite/model/BACnetResultFlagsTagged.go     |   47 +-
 .../bacnetip/readwrite/model/BACnetRouterEntry.go  |   47 +-
 .../readwrite/model/BACnetRouterEntryStatus.go     |   17 +-
 .../model/BACnetRouterEntryStatusTagged.go         |   29 +-
 .../bacnetip/readwrite/model/BACnetScale.go        |   30 +-
 .../readwrite/model/BACnetScaleFloatScale.go       |   33 +-
 .../readwrite/model/BACnetScaleIntegerScale.go     |   33 +-
 .../readwrite/model/BACnetSecurityKeySet.go        |   47 +-
 .../readwrite/model/BACnetSecurityKeySetKeyIds.go  |   47 +-
 .../readwrite/model/BACnetSecurityLevel.go         |   17 +-
 .../readwrite/model/BACnetSecurityLevelTagged.go   |   29 +-
 .../readwrite/model/BACnetSecurityPolicy.go        |   17 +-
 .../readwrite/model/BACnetSecurityPolicyTagged.go  |   29 +-
 .../bacnetip/readwrite/model/BACnetSegmentation.go |   17 +-
 .../readwrite/model/BACnetSegmentationTagged.go    |   29 +-
 .../bacnetip/readwrite/model/BACnetServiceAck.go   |   58 +-
 .../model/BACnetServiceAckAtomicReadFile.go        |   39 +-
 .../model/BACnetServiceAckAtomicReadFileRecord.go  |   65 +-
 .../model/BACnetServiceAckAtomicReadFileStream.go  |   39 +-
 ...BACnetServiceAckAtomicReadFileStreamOrRecord.go |   42 +-
 .../model/BACnetServiceAckAtomicWriteFile.go       |   33 +-
 .../model/BACnetServiceAckAuthenticate.go          |   27 +-
 .../BACnetServiceAckConfirmedPrivateTransfer.go    |   45 +-
 .../model/BACnetServiceAckCreateObject.go          |   33 +-
 .../model/BACnetServiceAckGetAlarmSummary.go       |   45 +-
 .../model/BACnetServiceAckGetEnrollmentSummary.go  |   57 +-
 .../model/BACnetServiceAckGetEventInformation.go   |   39 +-
 .../model/BACnetServiceAckReadProperty.go          |   51 +-
 .../BACnetServiceAckReadPropertyConditional.go     |   27 +-
 .../model/BACnetServiceAckReadPropertyMultiple.go  |   39 +-
 .../readwrite/model/BACnetServiceAckReadRange.go   |   69 +-
 .../readwrite/model/BACnetServiceAckRequestKey.go  |   27 +-
 .../readwrite/model/BACnetServiceAckVTData.go      |   45 +-
 .../readwrite/model/BACnetServiceAckVTOpen.go      |   33 +-
 .../readwrite/model/BACnetServicesSupported.go     |   17 +-
 .../model/BACnetServicesSupportedTagged.go         |   75 +-
 .../readwrite/model/BACnetSetpointReference.go     |   29 +-
 .../bacnetip/readwrite/model/BACnetShedLevel.go    |   32 +-
 .../readwrite/model/BACnetShedLevelAmount.go       |   33 +-
 .../readwrite/model/BACnetShedLevelLevel.go        |   33 +-
 .../readwrite/model/BACnetShedLevelPercent.go      |   33 +-
 .../bacnetip/readwrite/model/BACnetShedState.go    |   17 +-
 .../readwrite/model/BACnetShedStateTagged.go       |   29 +-
 .../readwrite/model/BACnetSilencedState.go         |   17 +-
 .../readwrite/model/BACnetSilencedStateTagged.go   |   33 +-
 .../bacnetip/readwrite/model/BACnetSpecialEvent.go |   41 +-
 .../model/BACnetSpecialEventListOfTimeValues.go    |   47 +-
 .../readwrite/model/BACnetSpecialEventPeriod.go    |   30 +-
 .../model/BACnetSpecialEventPeriodCalendarEntry.go |   33 +-
 .../BACnetSpecialEventPeriodCalendarReference.go   |   33 +-
 .../bacnetip/readwrite/model/BACnetStatusFlags.go  |   17 +-
 .../readwrite/model/BACnetStatusFlagsTagged.go     |   51 +-
 .../bacnetip/readwrite/model/BACnetTagHeader.go    |   47 +-
 .../readwrite/model/BACnetTagPayloadBitString.go   |   46 +-
 .../readwrite/model/BACnetTagPayloadBoolean.go     |   35 +-
 .../model/BACnetTagPayloadCharacterString.go       |   31 +-
 .../readwrite/model/BACnetTagPayloadDate.go        |   67 +-
 .../readwrite/model/BACnetTagPayloadDouble.go      |   23 +-
 .../readwrite/model/BACnetTagPayloadEnumerated.go  |   27 +-
 .../model/BACnetTagPayloadObjectIdentifier.go      |   27 +-
 .../readwrite/model/BACnetTagPayloadOctetString.go |   23 +-
 .../readwrite/model/BACnetTagPayloadReal.go        |   23 +-
 .../model/BACnetTagPayloadSignedInteger.go         |   59 +-
 .../readwrite/model/BACnetTagPayloadTime.go        |   43 +-
 .../model/BACnetTagPayloadUnsignedInteger.go       |   59 +-
 .../bacnetip/readwrite/model/BACnetTimeStamp.go    |   32 +-
 .../readwrite/model/BACnetTimeStampDateTime.go     |   33 +-
 .../readwrite/model/BACnetTimeStampEnclosed.go     |   41 +-
 .../readwrite/model/BACnetTimeStampSequence.go     |   33 +-
 .../readwrite/model/BACnetTimeStampTime.go         |   33 +-
 .../readwrite/model/BACnetTimeStampsEnclosed.go    |   47 +-
 .../bacnetip/readwrite/model/BACnetTimeValue.go    |   35 +-
 .../bacnetip/readwrite/model/BACnetTimerState.go   |   17 +-
 .../readwrite/model/BACnetTimerStateChangeValue.go |   64 +-
 .../model/BACnetTimerStateChangeValueBitString.go  |   33 +-
 .../model/BACnetTimerStateChangeValueBoolean.go    |   33 +-
 .../BACnetTimerStateChangeValueCharacterString.go  |   33 +-
 .../BACnetTimerStateChangeValueConstructedValue.go |   33 +-
 .../model/BACnetTimerStateChangeValueDate.go       |   33 +-
 .../model/BACnetTimerStateChangeValueDateTime.go   |   33 +-
 .../model/BACnetTimerStateChangeValueDouble.go     |   33 +-
 .../model/BACnetTimerStateChangeValueEnumerated.go |   33 +-
 .../model/BACnetTimerStateChangeValueInteger.go    |   33 +-
 .../BACnetTimerStateChangeValueLightingCommand.go  |   33 +-
 .../model/BACnetTimerStateChangeValueNoValue.go    |   33 +-
 .../model/BACnetTimerStateChangeValueNull.go       |   33 +-
 .../BACnetTimerStateChangeValueObjectidentifier.go |   33 +-
 .../BACnetTimerStateChangeValueOctetString.go      |   33 +-
 .../model/BACnetTimerStateChangeValueReal.go       |   33 +-
 .../model/BACnetTimerStateChangeValueTime.go       |   33 +-
 .../model/BACnetTimerStateChangeValueUnsigned.go   |   33 +-
 .../readwrite/model/BACnetTimerStateTagged.go      |   29 +-
 .../readwrite/model/BACnetTimerTransition.go       |   17 +-
 .../readwrite/model/BACnetTimerTransitionTagged.go |   29 +-
 .../model/BACnetUnconfirmedServiceChoice.go        |   17 +-
 .../model/BACnetUnconfirmedServiceChoiceTagged.go  |   29 +-
 .../model/BACnetUnconfirmedServiceRequest.go       |   50 +-
 .../model/BACnetUnconfirmedServiceRequestIAm.go    |   51 +-
 .../model/BACnetUnconfirmedServiceRequestIHave.go  |   45 +-
 ...UnconfirmedServiceRequestTimeSynchronization.go |   39 +-
 ...onfirmedServiceRequestUTCTimeSynchronization.go |   39 +-
 ...rmedServiceRequestUnconfirmedCOVNotification.go |   57 +-
 ...iceRequestUnconfirmedCOVNotificationMultiple.go |   57 +-
 ...edServiceRequestUnconfirmedEventNotification.go |  105 +-
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go |   45 +-
 ...onfirmedServiceRequestUnconfirmedTextMessage.go |   51 +-
 .../BACnetUnconfirmedServiceRequestUnknown.go      |   27 +-
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go |   45 +-
 .../BACnetUnconfirmedServiceRequestWhoHasObject.go |   30 +-
 ...onfirmedServiceRequestWhoHasObjectIdentifier.go |   33 +-
 ...netUnconfirmedServiceRequestWhoHasObjectName.go |   33 +-
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go  |   39 +-
 .../BACnetUnconfirmedServiceRequestWriteGroup.go   |   51 +-
 .../bacnetip/readwrite/model/BACnetVMACEntry.go    |   35 +-
 .../bacnetip/readwrite/model/BACnetVTClass.go      |   17 +-
 .../readwrite/model/BACnetVTClassTagged.go         |   33 +-
 .../bacnetip/readwrite/model/BACnetVTSession.go    |   41 +-
 .../bacnetip/readwrite/model/BACnetValueSource.go  |   32 +-
 .../readwrite/model/BACnetValueSourceAddress.go    |   33 +-
 .../readwrite/model/BACnetValueSourceNone.go       |   33 +-
 .../readwrite/model/BACnetValueSourceObject.go     |   33 +-
 .../bacnetip/readwrite/model/BACnetVendorId.go     |   17 +-
 .../readwrite/model/BACnetVendorIdTagged.go        |   33 +-
 .../bacnetip/readwrite/model/BACnetWeekNDay.go     |   23 +-
 .../readwrite/model/BACnetWeekNDayTagged.go        |   85 +-
 .../model/BACnetWriteAccessSpecification.go        |   53 +-
 .../bacnetip/readwrite/model/BACnetWriteStatus.go  |   17 +-
 .../readwrite/model/BACnetWriteStatusTagged.go     |   29 +-
 plc4go/protocols/bacnetip/readwrite/model/BVLC.go  |   54 +-
 .../model/BVLCBroadcastDistributionTableEntry.go   |   46 +-
 .../model/BVLCDeleteForeignDeviceTableEntry.go     |   39 +-
 .../model/BVLCDistributeBroadcastToNetwork.go      |   33 +-
 .../readwrite/model/BVLCForeignDeviceTableEntry.go |   35 +-
 .../bacnetip/readwrite/model/BVLCForwardedNPDU.go  |   45 +-
 .../readwrite/model/BVLCOriginalBroadcastNPDU.go   |   33 +-
 .../readwrite/model/BVLCOriginalUnicastNPDU.go     |   33 +-
 .../model/BVLCReadBroadcastDistributionTable.go    |   27 +-
 .../model/BVLCReadBroadcastDistributionTableAck.go |   39 +-
 .../readwrite/model/BVLCReadForeignDeviceTable.go  |   27 +-
 .../model/BVLCReadForeignDeviceTableAck.go         |   39 +-
 .../readwrite/model/BVLCRegisterForeignDevice.go   |   27 +-
 .../bacnetip/readwrite/model/BVLCResult.go         |   31 +-
 .../bacnetip/readwrite/model/BVLCResultCode.go     |   17 +-
 .../readwrite/model/BVLCResultCodeTagged.go        |   29 +-
 .../bacnetip/readwrite/model/BVLCSecureBVLL.go     |   27 +-
 .../model/BVLCWriteBroadcastDistributionTable.go   |   39 +-
 .../bacnetip/readwrite/model/BacnetConstants.go    |   23 +-
 .../bacnetip/readwrite/model/ChangeListAddError.go |   39 +-
 .../readwrite/model/ChangeListRemoveError.go       |   39 +-
 .../model/ConfirmedEventNotificationRequest.go     |  101 +-
 .../model/ConfirmedPrivateTransferError.go         |   51 +-
 .../bacnetip/readwrite/model/CreateObjectError.go  |   39 +-
 plc4go/protocols/bacnetip/readwrite/model/Error.go |   35 +-
 .../bacnetip/readwrite/model/ErrorClass.go         |   17 +-
 .../bacnetip/readwrite/model/ErrorClassTagged.go   |   33 +-
 .../bacnetip/readwrite/model/ErrorCode.go          |   17 +-
 .../bacnetip/readwrite/model/ErrorCodeTagged.go    |   33 +-
 .../bacnetip/readwrite/model/ErrorEnclosed.go      |   41 +-
 .../readwrite/model/ListOfCovNotifications.go      |   53 +-
 .../readwrite/model/ListOfCovNotificationsList.go  |   47 +-
 .../readwrite/model/ListOfCovNotificationsValue.go |   47 +-
 .../readwrite/model/MaxApduLengthAccepted.go       |   17 +-
 .../readwrite/model/MaxApduLengthAcceptedTagged.go |  238 ----
 .../readwrite/model/MaxSegmentsAccepted.go         |   17 +-
 .../readwrite/model/MaxSegmentsAcceptedTagged.go   |  238 ----
 plc4go/protocols/bacnetip/readwrite/model/NLM.go   |   68 +-
 .../readwrite/model/NLMChallengeRequest.go         |   27 +-
 .../model/NLMDisconnectConnectionToNetwork.go      |   27 +-
 .../model/NLMEstablishConnectionToNetwork.go       |   27 +-
 .../readwrite/model/NLMIAmRouterToNetwork.go       |   30 +-
 .../readwrite/model/NLMICouldBeRouterToNetwork.go  |   27 +-
 .../readwrite/model/NLMInitalizeRoutingTable.go    |   53 +-
 .../readwrite/model/NLMInitalizeRoutingTableAck.go |   53 +-
 .../model/NLMInitalizeRoutingTablePortMapping.go   |   23 +-
 .../bacnetip/readwrite/model/NLMNetworkNumberIs.go |   27 +-
 .../readwrite/model/NLMRejectRouterToNetwork.go    |   31 +-
 .../model/NLMRejectRouterToNetworkRejectReason.go  |   17 +-
 .../readwrite/model/NLMRequestKeyUpdate.go         |   27 +-
 .../readwrite/model/NLMRequestMasterKey.go         |   27 +-
 .../bacnetip/readwrite/model/NLMReserved.go        |   27 +-
 .../readwrite/model/NLMRouterAvailableToNetwork.go |   30 +-
 .../readwrite/model/NLMRouterBusyToNetwork.go      |   30 +-
 .../bacnetip/readwrite/model/NLMSecurityPayload.go |   27 +-
 .../readwrite/model/NLMSecurityResponse.go         |   31 +-
 .../bacnetip/readwrite/model/NLMSetMasterKey.go    |   33 +-
 .../readwrite/model/NLMUpdateKeyDistributionKey.go |   33 +-
 .../bacnetip/readwrite/model/NLMUpdateKeyUpdate.go |   84 +-
 .../model/NLMUpdateKeyUpdateControlFlags.go        |   23 +-
 .../readwrite/model/NLMUpdateKeyUpdateKeyEntry.go  |   23 +-
 .../readwrite/model/NLMVendorProprietaryMessage.go |   31 +-
 .../readwrite/model/NLMWhatIsNetworkNumber.go      |   27 +-
 .../readwrite/model/NLMWhoIsRouterToNetwork.go     |   27 +-
 plc4go/protocols/bacnetip/readwrite/model/NPDU.go  |   76 +-
 .../bacnetip/readwrite/model/NPDUControl.go        |   27 +-
 .../readwrite/model/NPDUNetworkPriority.go         |   17 +-
 .../readwrite/model/NPDUNetworkPriorityTagged.go   |   29 +-
 .../readwrite/model/SecurityResponseCode.go        |   17 +-
 .../readwrite/model/SecurityResponseCodeTagged.go  |   29 +-
 .../model/SubscribeCOVPropertyMultipleError.go     |   39 +-
 ...PropertyMultipleErrorFirstFailedSubscription.go |   53 +-
 .../protocols/bacnetip/readwrite/model/TagClass.go |   17 +-
 .../bacnetip/readwrite/model/VTCloseError.go       |   39 +-
 .../VTCloseErrorListOfVTSessionIdentifiers.go      |   47 +-
 .../readwrite/model/WritePropertyMultipleError.go  |   39 +-
 plc4go/protocols/cbus/readwrite/ParserHelper.go    |  156 +--
 plc4go/protocols/cbus/readwrite/XmlParserHelper.go |  160 +--
 .../cbus/readwrite/model/AccessControlCategory.go  |   17 +-
 .../readwrite/model/AccessControlCommandType.go    |   17 +-
 .../model/AccessControlCommandTypeContainer.go     |   17 +-
 .../cbus/readwrite/model/AccessControlData.go      |   44 +-
 .../model/AccessControlDataAccessPointClosed.go    |   27 +-
 .../AccessControlDataAccessPointForcedOpen.go      |   27 +-
 .../model/AccessControlDataAccessPointLeftOpen.go  |   27 +-
 .../model/AccessControlDataCloseAccessPoint.go     |   27 +-
 .../model/AccessControlDataInvalidAccessRequest.go |   31 +-
 .../model/AccessControlDataLockAccessPoint.go      |   27 +-
 .../model/AccessControlDataRequestToExit.go        |   27 +-
 .../model/AccessControlDataValidAccessRequest.go   |   31 +-
 .../cbus/readwrite/model/AccessControlDirection.go |   17 +-
 .../readwrite/model/AirConditioningCommandType.go  |   17 +-
 .../model/AirConditioningCommandTypeContainer.go   |   17 +-
 .../cbus/readwrite/model/AirConditioningData.go    |   66 +-
 .../AirConditioningDataHumidityScheduleEntry.go    |   57 +-
 .../model/AirConditioningDataHvacScheduleEntry.go  |   57 +-
 .../readwrite/model/AirConditioningDataRefresh.go  |   27 +-
 ...irConditioningDataSetHumidityLowerGuardLimit.go |   45 +-
 .../AirConditioningDataSetHumiditySetbackLimit.go  |   45 +-
 ...irConditioningDataSetHumidityUpperGuardLimit.go |   45 +-
 .../AirConditioningDataSetHvacLowerGuardLimit.go   |   45 +-
 .../AirConditioningDataSetHvacSetbackLimit.go      |   45 +-
 .../AirConditioningDataSetHvacUpperGuardLimit.go   |   45 +-
 .../AirConditioningDataSetPlantHumidityLevel.go    |   61 +-
 .../model/AirConditioningDataSetPlantHvacLevel.go  |   61 +-
 .../model/AirConditioningDataSetZoneGroupOff.go    |   27 +-
 .../model/AirConditioningDataSetZoneGroupOn.go     |   27 +-
 .../AirConditioningDataSetZoneHumidityMode.go      |   61 +-
 .../model/AirConditioningDataSetZoneHvacMode.go    |   61 +-
 .../model/AirConditioningDataZoneHumidity.go       |   43 +-
 .../AirConditioningDataZoneHumidityPlantStatus.go  |   47 +-
 .../AirConditioningDataZoneHvacPlantStatus.go      |   47 +-
 .../model/AirConditioningDataZoneTemperature.go    |   43 +-
 plc4go/protocols/cbus/readwrite/model/Alpha.go     |   23 +-
 .../cbus/readwrite/model/ApplicationAddress1.go    |   27 +-
 .../cbus/readwrite/model/ApplicationAddress2.go    |   27 +-
 .../cbus/readwrite/model/ApplicationId.go          |   17 +-
 .../cbus/readwrite/model/ApplicationIdContainer.go |   17 +-
 plc4go/protocols/cbus/readwrite/model/Attribute.go |   17 +-
 .../cbus/readwrite/model/BaudRateSelector.go       |   17 +-
 .../cbus/readwrite/model/BridgeAddress.go          |   23 +-
 .../cbus/readwrite/model/CALCommandType.go         |   17 +-
 .../readwrite/model/CALCommandTypeContainer.go     |   17 +-
 plc4go/protocols/cbus/readwrite/model/CALData.go   |   58 +-
 .../cbus/readwrite/model/CALDataAcknowledge.go     |   31 +-
 .../cbus/readwrite/model/CALDataGetStatus.go       |   31 +-
 .../cbus/readwrite/model/CALDataIdentify.go        |   31 +-
 .../cbus/readwrite/model/CALDataIdentifyReply.go   |   37 +-
 .../cbus/readwrite/model/CALDataRecall.go          |   31 +-
 .../protocols/cbus/readwrite/model/CALDataReply.go |   37 +-
 .../protocols/cbus/readwrite/model/CALDataReset.go |   27 +-
 .../cbus/readwrite/model/CALDataStatus.go          |   57 +-
 .../cbus/readwrite/model/CALDataStatusExtended.go  |   94 +-
 .../protocols/cbus/readwrite/model/CALDataWrite.go |   37 +-
 plc4go/protocols/cbus/readwrite/model/CALReply.go  |   30 +-
 .../protocols/cbus/readwrite/model/CALReplyLong.go |   55 +-
 .../cbus/readwrite/model/CALReplyShort.go          |   27 +-
 .../protocols/cbus/readwrite/model/CBusCommand.go  |   42 +-
 .../readwrite/model/CBusCommandDeviceManagement.go |   31 +-
 .../model/CBusCommandPointToMultiPoint.go          |   33 +-
 .../readwrite/model/CBusCommandPointToPoint.go     |   33 +-
 .../model/CBusCommandPointToPointToMultiPoint.go   |   33 +-
 .../cbus/readwrite/model/CBusConstants.go          |   23 +-
 .../protocols/cbus/readwrite/model/CBusHeader.go   |   31 +-
 .../protocols/cbus/readwrite/model/CBusMessage.go  |   24 +-
 .../cbus/readwrite/model/CBusMessageToClient.go    |   33 +-
 .../cbus/readwrite/model/CBusMessageToServer.go    |   33 +-
 .../protocols/cbus/readwrite/model/CBusOptions.go  |   23 +-
 .../model/CBusPointToMultiPointCommand.go          |   24 +-
 .../model/CBusPointToMultiPointCommandNormal.go    |   37 +-
 .../model/CBusPointToMultiPointCommandStatus.go    |   33 +-
 .../readwrite/model/CBusPointToPointCommand.go     |   34 +-
 .../model/CBusPointToPointCommandDirect.go         |   33 +-
 .../model/CBusPointToPointCommandIndirect.go       |   45 +-
 .../model/CBusPointToPointToMultiPointCommand.go   |   36 +-
 .../CBusPointToPointToMultiPointCommandNormal.go   |   37 +-
 .../CBusPointToPointToMultiPointCommandStatus.go   |   33 +-
 .../cbus/readwrite/model/ChannelStatus.go          |   17 +-
 plc4go/protocols/cbus/readwrite/model/Checksum.go  |   23 +-
 .../model/ClockAndTimekeepingCommandType.go        |   17 +-
 .../ClockAndTimekeepingCommandTypeContainer.go     |   17 +-
 .../readwrite/model/ClockAndTimekeepingData.go     |   34 +-
 .../model/ClockAndTimekeepingDataRequestRefresh.go |   27 +-
 .../model/ClockAndTimekeepingDataUpdateDate.go     |   27 +-
 .../model/ClockAndTimekeepingDataUpdateTime.go     |   43 +-
 .../protocols/cbus/readwrite/model/Confirmation.go |   43 +-
 .../cbus/readwrite/model/ConfirmationType.go       |   17 +-
 .../cbus/readwrite/model/CustomManufacturer.go     |   23 +-
 .../protocols/cbus/readwrite/model/CustomTypes.go  |   23 +-
 .../cbus/readwrite/model/DestinationAddressType.go |   17 +-
 .../cbus/readwrite/model/DialInFailureReason.go    |   17 +-
 .../cbus/readwrite/model/DialOutFailureReason.go   |   17 +-
 .../readwrite/model/EnableControlCommandType.go    |   17 +-
 .../model/EnableControlCommandTypeContainer.go     |   17 +-
 .../cbus/readwrite/model/EnableControlData.go      |   31 +-
 .../protocols/cbus/readwrite/model/EncodedReply.go |   28 +-
 .../cbus/readwrite/model/EncodedReplyCALReply.go   |   33 +-
 .../readwrite/model/ErrorReportingCommandType.go   |   17 +-
 .../model/ErrorReportingCommandTypeContainer.go    |   17 +-
 .../cbus/readwrite/model/ErrorReportingData.go     |   30 +-
 .../readwrite/model/ErrorReportingDataGeneric.go   |   49 +-
 .../cbus/readwrite/model/ErrorReportingSeverity.go |   17 +-
 .../model/ErrorReportingSystemCategory.go          |   37 +-
 .../model/ErrorReportingSystemCategoryClass.go     |   17 +-
 .../model/ErrorReportingSystemCategoryType.go      |   32 +-
 ...gSystemCategoryTypeBuildingManagementSystems.go |   31 +-
 ...eportingSystemCategoryTypeClimateControllers.go |   31 +-
 ...stemCategoryTypeForBuildingManagementSystems.go |   17 +-
 ...rtingSystemCategoryTypeForClimateControllers.go |   17 +-
 ...rrorReportingSystemCategoryTypeForInputUnits.go |   17 +-
 ...rorReportingSystemCategoryTypeForOutputUnits.go |   17 +-
 ...orReportingSystemCategoryTypeForSupportUnits.go |   17 +-
 .../ErrorReportingSystemCategoryTypeInputUnits.go  |   31 +-
 .../ErrorReportingSystemCategoryTypeOutputUnits.go |   31 +-
 .../ErrorReportingSystemCategoryTypeReserved.go    |   27 +-
 ...ErrorReportingSystemCategoryTypeSupportUnits.go |   31 +-
 .../model/ErrorReportingSystemCategoryVariant.go   |   17 +-
 plc4go/protocols/cbus/readwrite/model/GAVState.go  |   17 +-
 .../cbus/readwrite/model/HVACAuxiliaryLevel.go     |   39 +-
 plc4go/protocols/cbus/readwrite/model/HVACError.go |   17 +-
 .../protocols/cbus/readwrite/model/HVACHumidity.go |   27 +-
 .../cbus/readwrite/model/HVACHumidityError.go      |   17 +-
 .../readwrite/model/HVACHumidityModeAndFlags.go    |   59 +-
 .../model/HVACHumidityModeAndFlagsMode.go          |   17 +-
 .../readwrite/model/HVACHumidityStatusFlags.go     |   31 +-
 .../cbus/readwrite/model/HVACHumidityType.go       |   17 +-
 .../cbus/readwrite/model/HVACModeAndFlags.go       |   59 +-
 .../cbus/readwrite/model/HVACModeAndFlagsMode.go   |   17 +-
 .../cbus/readwrite/model/HVACRawLevels.go          |   27 +-
 .../cbus/readwrite/model/HVACSensorStatus.go       |   17 +-
 .../cbus/readwrite/model/HVACStartTime.go          |   43 +-
 .../cbus/readwrite/model/HVACStatusFlags.go        |   31 +-
 .../cbus/readwrite/model/HVACTemperature.go        |   27 +-
 plc4go/protocols/cbus/readwrite/model/HVACType.go  |   17 +-
 .../protocols/cbus/readwrite/model/HVACZoneList.go |   27 +-
 .../cbus/readwrite/model/IdentifyReplyCommand.go   |   56 +-
 .../IdentifyReplyCommandCurrentSenseLevels.go      |   27 +-
 .../model/IdentifyReplyCommandDSIStatus.go         |   63 +-
 .../readwrite/model/IdentifyReplyCommandDelays.go  |   27 +-
 ...dentifyReplyCommandExtendedDiagnosticSummary.go |   39 +-
 .../model/IdentifyReplyCommandFirmwareVersion.go   |   27 +-
 .../IdentifyReplyCommandGAVPhysicalAddresses.go    |   27 +-
 .../model/IdentifyReplyCommandGAVValuesCurrent.go  |   27 +-
 .../model/IdentifyReplyCommandGAVValuesStored.go   |   27 +-
 .../model/IdentifyReplyCommandLogicalAssignment.go |   53 +-
 .../model/IdentifyReplyCommandManufacturer.go      |   27 +-
 .../model/IdentifyReplyCommandMaximumLevels.go     |   27 +-
 .../model/IdentifyReplyCommandMinimumLevels.go     |   27 +-
 .../IdentifyReplyCommandNetworkTerminalLevels.go   |   27 +-
 .../model/IdentifyReplyCommandNetworkVoltage.go    |   27 +-
 .../model/IdentifyReplyCommandOutputUnitSummary.go |   33 +-
 .../readwrite/model/IdentifyReplyCommandSummary.go |   27 +-
 .../model/IdentifyReplyCommandTerminalLevels.go    |   27 +-
 .../readwrite/model/IdentifyReplyCommandType.go    |   27 +-
 .../model/IdentifyReplyCommandUnitSummary.go       |   23 +-
 .../cbus/readwrite/model/InterfaceOptions1.go      |   23 +-
 .../model/InterfaceOptions1PowerUpSettings.go      |   29 +-
 .../cbus/readwrite/model/InterfaceOptions2.go      |   23 +-
 .../cbus/readwrite/model/InterfaceOptions3.go      |   23 +-
 plc4go/protocols/cbus/readwrite/model/Language.go  |   17 +-
 .../cbus/readwrite/model/LevelInformation.go       |   58 +-
 .../cbus/readwrite/model/LevelInformationAbsent.go |   27 +-
 .../readwrite/model/LevelInformationCorrupted.go   |   27 +-
 .../readwrite/model/LevelInformationNibblePair.go  |   17 +-
 .../cbus/readwrite/model/LevelInformationNormal.go |   43 +-
 .../cbus/readwrite/model/LightingCommandType.go    |   17 +-
 .../model/LightingCommandTypeContainer.go          |   17 +-
 .../cbus/readwrite/model/LightingCompatible.go     |   17 +-
 .../protocols/cbus/readwrite/model/LightingData.go |   38 +-
 .../cbus/readwrite/model/LightingDataLabel.go      |   37 +-
 .../cbus/readwrite/model/LightingDataOff.go        |   27 +-
 .../cbus/readwrite/model/LightingDataOn.go         |   27 +-
 .../readwrite/model/LightingDataRampToLevel.go     |   27 +-
 .../readwrite/model/LightingDataTerminateRamp.go   |   27 +-
 .../cbus/readwrite/model/LightingLabelFlavour.go   |   17 +-
 .../cbus/readwrite/model/LightingLabelOptions.go   |   31 +-
 .../cbus/readwrite/model/LightingLabelType.go      |   17 +-
 .../cbus/readwrite/model/LineOffHookReason.go      |   17 +-
 .../cbus/readwrite/model/LogicAssignment.go        |   23 +-
 .../cbus/readwrite/model/MeasurementCommandType.go |   17 +-
 .../model/MeasurementCommandTypeContainer.go       |   17 +-
 .../cbus/readwrite/model/MeasurementData.go        |   30 +-
 .../model/MeasurementDataChannelMeasurementData.go |   39 +-
 .../cbus/readwrite/model/MeasurementUnits.go       |   17 +-
 .../model/MediaTransportControlCommandType.go      |   17 +-
 .../MediaTransportControlCommandTypeContainer.go   |   17 +-
 .../readwrite/model/MediaTransportControlData.go   |   70 +-
 .../model/MediaTransportControlDataCategoryName.go |   27 +-
 ...ontrolDataEnumerateCategoriesSelectionTracks.go |   43 +-
 .../MediaTransportControlDataEnumerationsSize.go   |   43 +-
 .../model/MediaTransportControlDataFastForward.go  |   59 +-
 ...ediaTransportControlDataNextPreviousCategory.go |   35 +-
 ...diaTransportControlDataNextPreviousSelection.go |   35 +-
 .../MediaTransportControlDataNextPreviousTrack.go  |   35 +-
 .../model/MediaTransportControlDataPauseResume.go  |   35 +-
 .../model/MediaTransportControlDataPlay.go         |   27 +-
 .../model/MediaTransportControlDataRepeatOnOff.go  |   39 +-
 .../model/MediaTransportControlDataRewind.go       |   59 +-
 .../MediaTransportControlDataSelectionName.go      |   27 +-
 .../model/MediaTransportControlDataSetCategory.go  |   27 +-
 .../model/MediaTransportControlDataSetSelection.go |   27 +-
 .../model/MediaTransportControlDataSetTrack.go     |   27 +-
 .../model/MediaTransportControlDataShuffleOnOff.go |   35 +-
 .../MediaTransportControlDataSourcePowerControl.go |   35 +-
 .../MediaTransportControlDataStatusRequest.go      |   27 +-
 .../model/MediaTransportControlDataStop.go         |   27 +-
 .../model/MediaTransportControlDataTotalTracks.go  |   27 +-
 .../model/MediaTransportControlDataTrackName.go    |   27 +-
 .../cbus/readwrite/model/MeteringCommandType.go    |   17 +-
 .../model/MeteringCommandTypeContainer.go          |   17 +-
 .../protocols/cbus/readwrite/model/MeteringData.go |   48 +-
 .../model/MeteringDataDrinkingWaterConsumption.go  |   27 +-
 .../model/MeteringDataElectricityConsumption.go    |   27 +-
 .../readwrite/model/MeteringDataGasConsumption.go  |   27 +-
 .../model/MeteringDataMeasureDrinkingWater.go      |   27 +-
 .../model/MeteringDataMeasureElectricity.go        |   27 +-
 .../cbus/readwrite/model/MeteringDataMeasureGas.go |   27 +-
 .../cbus/readwrite/model/MeteringDataMeasureOil.go |   27 +-
 .../model/MeteringDataMeasureOtherWater.go         |   27 +-
 .../readwrite/model/MeteringDataOilConsumption.go  |   27 +-
 .../model/MeteringDataOtherWaterConsumption.go     |   27 +-
 .../protocols/cbus/readwrite/model/MonitoredSAL.go |   24 +-
 .../model/MonitoredSALLongFormSmartMode.go         |   59 +-
 .../cbus/readwrite/model/MonitoredSALReply.go      |   33 +-
 .../model/MonitoredSALShortFormBasicMode.go        |   37 +-
 .../model/NetworkProtocolControlInformation.go     |   23 +-
 .../protocols/cbus/readwrite/model/NetworkRoute.go |   55 +-
 .../protocols/cbus/readwrite/model/PanicStatus.go  |   35 +-
 plc4go/protocols/cbus/readwrite/model/Parameter.go |   17 +-
 .../cbus/readwrite/model/ParameterChange.go        |   23 +-
 .../cbus/readwrite/model/ParameterChangeReply.go   |   33 +-
 .../cbus/readwrite/model/ParameterType.go          |   17 +-
 .../cbus/readwrite/model/ParameterValue.go         |   42 +-
 .../model/ParameterValueApplicationAddress1.go     |   33 +-
 .../model/ParameterValueApplicationAddress2.go     |   33 +-
 .../model/ParameterValueBaudRateSelector.go        |   31 +-
 .../model/ParameterValueCustomManufacturer.go      |   33 +-
 .../readwrite/model/ParameterValueCustomTypes.go   |   33 +-
 .../model/ParameterValueInterfaceOptions1.go       |   33 +-
 ...rameterValueInterfaceOptions1PowerUpSettings.go |   33 +-
 .../model/ParameterValueInterfaceOptions2.go       |   33 +-
 .../model/ParameterValueInterfaceOptions3.go       |   33 +-
 .../cbus/readwrite/model/ParameterValueRaw.go      |   27 +-
 .../readwrite/model/ParameterValueSerialNumber.go  |   33 +-
 plc4go/protocols/cbus/readwrite/model/PowerUp.go   |   23 +-
 .../protocols/cbus/readwrite/model/PowerUpReply.go |   33 +-
 .../cbus/readwrite/model/PriorityClass.go          |   17 +-
 .../cbus/readwrite/model/ProtectionLevel.go        |   17 +-
 plc4go/protocols/cbus/readwrite/model/Reply.go     |   26 +-
 .../cbus/readwrite/model/ReplyEncodedReply.go      |   37 +-
 .../protocols/cbus/readwrite/model/ReplyNetwork.go |   35 +-
 .../cbus/readwrite/model/ReplyOrConfirmation.go    |   30 +-
 .../model/ReplyOrConfirmationConfirmation.go       |   39 +-
 .../readwrite/model/ReplyOrConfirmationReply.go    |   39 +-
 plc4go/protocols/cbus/readwrite/model/Request.go   |   56 +-
 .../cbus/readwrite/model/RequestCommand.go         |   43 +-
 .../cbus/readwrite/model/RequestContext.go         |   23 +-
 .../readwrite/model/RequestDirectCommandAccess.go  |   39 +-
 .../protocols/cbus/readwrite/model/RequestEmpty.go |   27 +-
 .../protocols/cbus/readwrite/model/RequestNull.go  |   27 +-
 .../cbus/readwrite/model/RequestObsolete.go        |   39 +-
 .../protocols/cbus/readwrite/model/RequestReset.go |   39 +-
 .../readwrite/model/RequestSmartConnectShortcut.go |   29 +-
 .../cbus/readwrite/model/RequestTermination.go     |   23 +-
 .../protocols/cbus/readwrite/model/RequestType.go  |   17 +-
 .../cbus/readwrite/model/ResponseTermination.go    |   23 +-
 plc4go/protocols/cbus/readwrite/model/SALData.go   |   72 +-
 .../cbus/readwrite/model/SALDataAccessControl.go   |   33 +-
 .../cbus/readwrite/model/SALDataAirConditioning.go |   33 +-
 .../cbus/readwrite/model/SALDataAudioAndVideo.go   |   33 +-
 .../readwrite/model/SALDataClockAndTimekeeping.go  |   33 +-
 .../cbus/readwrite/model/SALDataEnableControl.go   |   33 +-
 .../cbus/readwrite/model/SALDataErrorReporting.go  |   33 +-
 .../cbus/readwrite/model/SALDataFreeUsage.go       |   27 +-
 .../cbus/readwrite/model/SALDataHeating.go         |   33 +-
 .../cbus/readwrite/model/SALDataHvacActuator.go    |   33 +-
 .../readwrite/model/SALDataIrrigationControl.go    |   33 +-
 .../cbus/readwrite/model/SALDataLighting.go        |   33 +-
 .../cbus/readwrite/model/SALDataMeasurement.go     |   33 +-
 .../cbus/readwrite/model/SALDataMediaTransport.go  |   33 +-
 .../cbus/readwrite/model/SALDataMetering.go        |   33 +-
 .../model/SALDataPoolsSpasPondsFountainsControl.go |   33 +-
 .../cbus/readwrite/model/SALDataReserved.go        |   27 +-
 .../readwrite/model/SALDataRoomControlSystem.go    |   27 +-
 .../cbus/readwrite/model/SALDataSecurity.go        |   33 +-
 .../model/SALDataTelephonyStatusAndControl.go      |   33 +-
 .../readwrite/model/SALDataTemperatureBroadcast.go |   33 +-
 .../cbus/readwrite/model/SALDataTesting.go         |   27 +-
 .../cbus/readwrite/model/SALDataTriggerControl.go  |   33 +-
 .../cbus/readwrite/model/SALDataVentilation.go     |   33 +-
 .../cbus/readwrite/model/SecurityArmCode.go        |   43 +-
 .../cbus/readwrite/model/SecurityCommandType.go    |   17 +-
 .../model/SecurityCommandTypeContainer.go          |   17 +-
 .../protocols/cbus/readwrite/model/SecurityData.go |  124 +-
 .../cbus/readwrite/model/SecurityDataAlarmOff.go   |   27 +-
 .../cbus/readwrite/model/SecurityDataAlarmOn.go    |   27 +-
 .../model/SecurityDataArmFailedCleared.go          |   27 +-
 .../readwrite/model/SecurityDataArmFailedRaised.go |   27 +-
 .../model/SecurityDataArmReadyNotReady.go          |   27 +-
 .../cbus/readwrite/model/SecurityDataArmSystem.go  |   51 +-
 .../model/SecurityDataCurrentAlarmType.go          |   27 +-
 .../readwrite/model/SecurityDataDisplayMessage.go  |   27 +-
 .../cbus/readwrite/model/SecurityDataDropTamper.go |   27 +-
 .../readwrite/model/SecurityDataEmulatedKeypad.go  |   71 +-
 .../model/SecurityDataEntryDelayStarted.go         |   27 +-
 .../cbus/readwrite/model/SecurityDataEvent.go      |   27 +-
 .../model/SecurityDataExitDelayStarted.go          |   27 +-
 .../model/SecurityDataFireAlarmCleared.go          |   27 +-
 .../readwrite/model/SecurityDataFireAlarmRaised.go |   27 +-
 .../readwrite/model/SecurityDataGasAlarmCleared.go |   27 +-
 .../readwrite/model/SecurityDataGasAlarmRaised.go  |   27 +-
 .../model/SecurityDataLineCutAlarmCleared.go       |   27 +-
 .../model/SecurityDataLineCutAlarmRaised.go        |   27 +-
 .../model/SecurityDataLowBatteryCharging.go        |   35 +-
 .../model/SecurityDataLowBatteryCorrected.go       |   27 +-
 .../model/SecurityDataLowBatteryDetected.go        |   27 +-
 .../readwrite/model/SecurityDataMainsFailure.go    |   27 +-
 .../model/SecurityDataMainsRestoredOrApplied.go    |   27 +-
 .../cbus/readwrite/model/SecurityDataOff.go        |   27 +-
 .../cbus/readwrite/model/SecurityDataOn.go         |   27 +-
 .../model/SecurityDataOtherAlarmCleared.go         |   27 +-
 .../model/SecurityDataOtherAlarmRaised.go          |   27 +-
 .../readwrite/model/SecurityDataPanicActivated.go  |   27 +-
 .../readwrite/model/SecurityDataPanicCleared.go    |   27 +-
 .../model/SecurityDataPasswordEntryStatus.go       |   47 +-
 .../cbus/readwrite/model/SecurityDataRaiseAlarm.go |   27 +-
 .../readwrite/model/SecurityDataRaiseTamper.go     |   27 +-
 .../readwrite/model/SecurityDataRequestZoneName.go |   27 +-
 .../readwrite/model/SecurityDataStatus1Request.go  |   27 +-
 .../readwrite/model/SecurityDataStatus2Request.go  |   27 +-
 .../readwrite/model/SecurityDataStatusReport1.go   |   71 +-
 .../readwrite/model/SecurityDataStatusReport2.go   |   53 +-
 .../model/SecurityDataSystemArmedDisarmed.go       |   33 +-
 .../readwrite/model/SecurityDataSystemDisarmed.go  |   27 +-
 .../cbus/readwrite/model/SecurityDataTamperOff.go  |   27 +-
 .../cbus/readwrite/model/SecurityDataTamperOn.go   |   27 +-
 .../readwrite/model/SecurityDataZoneIsolated.go    |   27 +-
 .../cbus/readwrite/model/SecurityDataZoneName.go   |   27 +-
 .../cbus/readwrite/model/SecurityDataZoneOpen.go   |   27 +-
 .../cbus/readwrite/model/SecurityDataZoneSealed.go |   27 +-
 .../cbus/readwrite/model/SecurityDataZoneShort.go  |   27 +-
 .../readwrite/model/SecurityDataZoneUnsealed.go    |   27 +-
 .../cbus/readwrite/model/SerialInterfaceAddress.go |   23 +-
 .../protocols/cbus/readwrite/model/SerialNumber.go |   23 +-
 .../cbus/readwrite/model/ServerErrorReply.go       |   27 +-
 .../protocols/cbus/readwrite/model/StatusByte.go   |   39 +-
 .../protocols/cbus/readwrite/model/StatusCoding.go |   17 +-
 .../cbus/readwrite/model/StatusRequest.go          |   26 +-
 .../readwrite/model/StatusRequestBinaryState.go    |   31 +-
 .../model/StatusRequestBinaryStateDeprecated.go    |   31 +-
 .../cbus/readwrite/model/StatusRequestLevel.go     |   31 +-
 .../protocols/cbus/readwrite/model/TamperStatus.go |   35 +-
 .../cbus/readwrite/model/TelephonyCommandType.go   |   17 +-
 .../model/TelephonyCommandTypeContainer.go         |   17 +-
 .../cbus/readwrite/model/TelephonyData.go          |   52 +-
 .../readwrite/model/TelephonyDataClearDiversion.go |   27 +-
 .../readwrite/model/TelephonyDataDialInFailure.go  |   31 +-
 .../readwrite/model/TelephonyDataDialOutFailure.go |   31 +-
 .../cbus/readwrite/model/TelephonyDataDivert.go    |   27 +-
 .../TelephonyDataInternetConnectionRequestMade.go  |   27 +-
 .../model/TelephonyDataIsolateSecondaryOutlet.go   |   35 +-
 .../readwrite/model/TelephonyDataLineOffHook.go    |   31 +-
 .../readwrite/model/TelephonyDataLineOnHook.go     |   27 +-
 .../model/TelephonyDataRecallLastNumber.go         |   35 +-
 .../model/TelephonyDataRecallLastNumberRequest.go  |   35 +-
 .../model/TelephonyDataRejectIncomingCall.go       |   27 +-
 .../cbus/readwrite/model/TelephonyDataRinging.go   |   27 +-
 .../model/TemperatureBroadcastCommandType.go       |   17 +-
 .../TemperatureBroadcastCommandTypeContainer.go    |   17 +-
 .../readwrite/model/TemperatureBroadcastData.go    |   35 +-
 .../readwrite/model/TriggerControlCommandType.go   |   17 +-
 .../model/TriggerControlCommandTypeContainer.go    |   17 +-
 .../cbus/readwrite/model/TriggerControlData.go     |   42 +-
 .../model/TriggerControlDataIndicatorKill.go       |   27 +-
 .../readwrite/model/TriggerControlDataLabel.go     |   37 +-
 .../model/TriggerControlDataTriggerEvent.go        |   27 +-
 .../model/TriggerControlDataTriggerMax.go          |   27 +-
 .../model/TriggerControlDataTriggerMin.go          |   27 +-
 .../readwrite/model/TriggerControlLabelFlavour.go  |   17 +-
 .../readwrite/model/TriggerControlLabelOptions.go  |   31 +-
 .../readwrite/model/TriggerControlLabelType.go     |   17 +-
 .../protocols/cbus/readwrite/model/UnitAddress.go  |   23 +-
 .../protocols/cbus/readwrite/model/UnitStatus.go   |   17 +-
 .../protocols/cbus/readwrite/model/ZoneStatus.go   |   27 +-
 .../cbus/readwrite/model/ZoneStatusTemp.go         |   17 +-
 plc4go/protocols/df1/readwrite/ParserHelper.go     |    6 +-
 plc4go/protocols/df1/readwrite/XmlParserHelper.go  |   10 +-
 plc4go/protocols/df1/readwrite/model/DF1Command.go |   24 +-
 plc4go/protocols/df1/readwrite/model/DF1Symbol.go  |   26 +-
 .../df1/readwrite/model/DF1SymbolMessageFrame.go   |   33 +-
 .../readwrite/model/DF1SymbolMessageFrameACK.go    |   27 +-
 .../readwrite/model/DF1SymbolMessageFrameNAK.go    |   27 +-
 .../readwrite/model/DF1UnprotectedReadRequest.go   |   27 +-
 .../readwrite/model/DF1UnprotectedReadResponse.go  |   27 +-
 plc4go/protocols/eip/readwrite/ParserHelper.go     |   10 +-
 plc4go/protocols/eip/readwrite/XmlParserHelper.go  |   14 +-
 .../eip/readwrite/model/CIPDataTypeCode.go         |   17 +-
 .../eip/readwrite/model/CIPStructTypeCode.go       |   17 +-
 .../protocols/eip/readwrite/model/CipExchange.go   |   31 +-
 plc4go/protocols/eip/readwrite/model/CipRRData.go  |   33 +-
 .../eip/readwrite/model/CipReadRequest.go          |   27 +-
 .../eip/readwrite/model/CipReadResponse.go         |   31 +-
 plc4go/protocols/eip/readwrite/model/CipService.go |   34 +-
 .../eip/readwrite/model/CipUnconnectedRequest.go   |   35 +-
 .../eip/readwrite/model/CipWriteRequest.go         |   31 +-
 .../eip/readwrite/model/CipWriteResponse.go        |   27 +-
 plc4go/protocols/eip/readwrite/model/EiPCommand.go |   17 +-
 .../eip/readwrite/model/EipConnectionRequest.go    |   27 +-
 .../eip/readwrite/model/EipDisconnectRequest.go    |   27 +-
 plc4go/protocols/eip/readwrite/model/EipPacket.go  |   40 +-
 .../eip/readwrite/model/MultipleServiceRequest.go  |   33 +-
 .../eip/readwrite/model/MultipleServiceResponse.go |   39 +-
 plc4go/protocols/eip/readwrite/model/Services.go   |   60 +-
 plc4go/protocols/firmata/readwrite/ParserHelper.go |    8 +-
 .../protocols/firmata/readwrite/XmlParserHelper.go |   12 +-
 .../firmata/readwrite/model/FirmataCommand.go      |   30 +-
 .../model/FirmataCommandProtocolVersion.go         |   27 +-
 .../model/FirmataCommandSetDigitalPinValue.go      |   27 +-
 .../readwrite/model/FirmataCommandSetPinMode.go    |   31 +-
 .../firmata/readwrite/model/FirmataCommandSysex.go |   33 +-
 .../readwrite/model/FirmataCommandSystemReset.go   |   27 +-
 .../firmata/readwrite/model/FirmataMessage.go      |   30 +-
 .../readwrite/model/FirmataMessageAnalogIO.go      |   39 +-
 .../readwrite/model/FirmataMessageCommand.go       |   33 +-
 .../readwrite/model/FirmataMessageDigitalIO.go     |   39 +-
 .../model/FirmataMessageSubscribeAnalogPinValue.go |   27 +-
 .../FirmataMessageSubscribeDigitalPinValue.go      |   27 +-
 .../protocols/firmata/readwrite/model/PinMode.go   |   17 +-
 .../firmata/readwrite/model/SysexCommand.go        |   50 +-
 .../model/SysexCommandAnalogMappingQueryRequest.go |   27 +-
 .../SysexCommandAnalogMappingQueryResponse.go      |   27 +-
 .../model/SysexCommandAnalogMappingResponse.go     |   27 +-
 .../readwrite/model/SysexCommandCapabilityQuery.go |   27 +-
 .../model/SysexCommandCapabilityResponse.go        |   27 +-
 .../readwrite/model/SysexCommandExtendedAnalog.go  |   27 +-
 .../readwrite/model/SysexCommandExtendedId.go      |   39 +-
 .../readwrite/model/SysexCommandPinStateQuery.go   |   27 +-
 .../model/SysexCommandPinStateResponse.go          |   27 +-
 .../model/SysexCommandReportFirmwareRequest.go     |   27 +-
 .../model/SysexCommandReportFirmwareResponse.go    |   27 +-
 .../model/SysexCommandSamplingInterval.go          |   27 +-
 .../readwrite/model/SysexCommandStringData.go      |   27 +-
 .../model/SysexCommandSysexNonRealtime.go          |   27 +-
 .../readwrite/model/SysexCommandSysexRealtime.go   |   27 +-
 .../protocols/knxnetip/readwrite/ParserHelper.go   |   76 +-
 .../knxnetip/readwrite/XmlParserHelper.go          |   80 +-
 .../knxnetip/readwrite/model/AccessLevel.go        |   17 +-
 plc4go/protocols/knxnetip/readwrite/model/Apdu.go  |   24 +-
 .../knxnetip/readwrite/model/ApduControl.go        |   28 +-
 .../knxnetip/readwrite/model/ApduControlAck.go     |   27 +-
 .../knxnetip/readwrite/model/ApduControlConnect.go |   27 +-
 .../readwrite/model/ApduControlContainer.go        |   33 +-
 .../readwrite/model/ApduControlDisconnect.go       |   27 +-
 .../knxnetip/readwrite/model/ApduControlNack.go    |   27 +-
 .../protocols/knxnetip/readwrite/model/ApduData.go |   52 +-
 .../knxnetip/readwrite/model/ApduDataAdcRead.go    |   27 +-
 .../readwrite/model/ApduDataAdcResponse.go         |   27 +-
 .../knxnetip/readwrite/model/ApduDataContainer.go  |   33 +-
 .../model/ApduDataDeviceDescriptorRead.go          |   27 +-
 .../model/ApduDataDeviceDescriptorResponse.go      |   27 +-
 .../knxnetip/readwrite/model/ApduDataExt.go        |  102 +-
 .../readwrite/model/ApduDataExtAuthorizeRequest.go |   27 +-
 .../model/ApduDataExtAuthorizeResponse.go          |   27 +-
 .../model/ApduDataExtDomainAddressRead.go          |   27 +-
 .../model/ApduDataExtDomainAddressResponse.go      |   27 +-
 .../model/ApduDataExtDomainAddressSelectiveRead.go |   27 +-
 .../ApduDataExtDomainAddressSerialNumberRead.go    |   27 +-
 ...ApduDataExtDomainAddressSerialNumberResponse.go |   27 +-
 .../ApduDataExtDomainAddressSerialNumberWrite.go   |   27 +-
 .../model/ApduDataExtDomainAddressWrite.go         |   27 +-
 .../model/ApduDataExtFileStreamInfoReport.go       |   27 +-
 .../ApduDataExtGroupPropertyValueInfoReport.go     |   27 +-
 .../model/ApduDataExtGroupPropertyValueRead.go     |   27 +-
 .../model/ApduDataExtGroupPropertyValueResponse.go |   27 +-
 .../model/ApduDataExtGroupPropertyValueWrite.go    |   27 +-
 ...ApduDataExtIndividualAddressSerialNumberRead.go |   27 +-
 ...DataExtIndividualAddressSerialNumberResponse.go |   27 +-
 ...pduDataExtIndividualAddressSerialNumberWrite.go |   27 +-
 .../readwrite/model/ApduDataExtKeyResponse.go      |   27 +-
 .../readwrite/model/ApduDataExtKeyWrite.go         |   27 +-
 .../readwrite/model/ApduDataExtLinkRead.go         |   27 +-
 .../readwrite/model/ApduDataExtLinkResponse.go     |   27 +-
 .../readwrite/model/ApduDataExtLinkWrite.go        |   27 +-
 .../readwrite/model/ApduDataExtMemoryBitWrite.go   |   27 +-
 .../model/ApduDataExtNetworkParameterRead.go       |   27 +-
 .../model/ApduDataExtNetworkParameterResponse.go   |   27 +-
 .../model/ApduDataExtNetworkParameterWrite.go      |   27 +-
 .../model/ApduDataExtOpenRoutingTableRequest.go    |   27 +-
 .../model/ApduDataExtPropertyDescriptionRead.go    |   27 +-
 .../ApduDataExtPropertyDescriptionResponse.go      |   39 +-
 .../model/ApduDataExtPropertyValueRead.go          |   27 +-
 .../model/ApduDataExtPropertyValueResponse.go      |   27 +-
 .../model/ApduDataExtPropertyValueWrite.go         |   27 +-
 .../model/ApduDataExtReadRouterMemoryRequest.go    |   27 +-
 .../model/ApduDataExtReadRouterMemoryResponse.go   |   27 +-
 .../model/ApduDataExtReadRouterStatusRequest.go    |   27 +-
 .../model/ApduDataExtReadRouterStatusResponse.go   |   27 +-
 .../model/ApduDataExtReadRoutingTableRequest.go    |   27 +-
 .../model/ApduDataExtReadRoutingTableResponse.go   |   27 +-
 .../model/ApduDataExtWriteRouterMemoryRequest.go   |   27 +-
 .../model/ApduDataExtWriteRouterStatusRequest.go   |   27 +-
 .../model/ApduDataExtWriteRoutingTableRequest.go   |   27 +-
 .../readwrite/model/ApduDataGroupValueRead.go      |   27 +-
 .../readwrite/model/ApduDataGroupValueResponse.go  |   27 +-
 .../readwrite/model/ApduDataGroupValueWrite.go     |   27 +-
 .../model/ApduDataIndividualAddressRead.go         |   27 +-
 .../model/ApduDataIndividualAddressResponse.go     |   27 +-
 .../model/ApduDataIndividualAddressWrite.go        |   27 +-
 .../knxnetip/readwrite/model/ApduDataMemoryRead.go |   27 +-
 .../readwrite/model/ApduDataMemoryResponse.go      |   27 +-
 .../readwrite/model/ApduDataMemoryWrite.go         |   27 +-
 .../knxnetip/readwrite/model/ApduDataOther.go      |   33 +-
 .../knxnetip/readwrite/model/ApduDataRestart.go    |   27 +-
 .../readwrite/model/ApduDataUserMessage.go         |   27 +-
 plc4go/protocols/knxnetip/readwrite/model/CEMI.go  |   66 +-
 .../readwrite/model/CEMIAdditionalInformation.go   |   24 +-
 .../CEMIAdditionalInformationBusmonitorInfo.go     |   27 +-
 .../CEMIAdditionalInformationRelativeTimestamp.go  |   33 +-
 .../knxnetip/readwrite/model/CEMIPriority.go       |   17 +-
 .../knxnetip/readwrite/model/ChannelInformation.go |   23 +-
 .../knxnetip/readwrite/model/ComObjectTable.go     |   26 +-
 .../readwrite/model/ComObjectTableAddresses.go     |   17 +-
 .../model/ComObjectTableRealisationType1.go        |   53 +-
 .../model/ComObjectTableRealisationType2.go        |   53 +-
 .../model/ComObjectTableRealisationType6.go        |   33 +-
 .../knxnetip/readwrite/model/ComObjectValueType.go |   17 +-
 .../knxnetip/readwrite/model/ConnectionRequest.go  |   45 +-
 .../model/ConnectionRequestInformation.go          |   26 +-
 ...ConnectionRequestInformationDeviceManagement.go |   27 +-
 ...ConnectionRequestInformationTunnelConnection.go |   31 +-
 .../knxnetip/readwrite/model/ConnectionResponse.go |   43 +-
 .../readwrite/model/ConnectionResponseDataBlock.go |   26 +-
 .../ConnectionResponseDataBlockDeviceManagement.go |   27 +-
 .../ConnectionResponseDataBlockTunnelConnection.go |   33 +-
 .../readwrite/model/ConnectionStateRequest.go      |   33 +-
 .../readwrite/model/ConnectionStateResponse.go     |   31 +-
 .../knxnetip/readwrite/model/DIBDeviceInfo.go      |   59 +-
 .../knxnetip/readwrite/model/DIBSuppSvcFamilies.go |   37 +-
 .../knxnetip/readwrite/model/DescriptionRequest.go |   33 +-
 .../readwrite/model/DescriptionResponse.go         |   39 +-
 .../readwrite/model/DeviceConfigurationAck.go      |   33 +-
 .../model/DeviceConfigurationAckDataBlock.go       |   29 +-
 .../readwrite/model/DeviceConfigurationRequest.go  |   39 +-
 .../model/DeviceConfigurationRequestDataBlock.go   |   25 +-
 .../knxnetip/readwrite/model/DeviceDescriptor.go   |   17 +-
 .../readwrite/model/DeviceDescriptorMediumType.go  |   17 +-
 .../readwrite/model/DeviceDescriptorType2.go       |   47 +-
 .../knxnetip/readwrite/model/DeviceStatus.go       |   23 +-
 .../knxnetip/readwrite/model/DisconnectRequest.go  |   33 +-
 .../knxnetip/readwrite/model/DisconnectResponse.go |   31 +-
 .../knxnetip/readwrite/model/FirmwareType.go       |   17 +-
 .../model/GroupObjectDescriptorRealisationType1.go |   31 +-
 .../model/GroupObjectDescriptorRealisationType2.go |   31 +-
 .../model/GroupObjectDescriptorRealisationType6.go |   23 +-
 .../model/GroupObjectDescriptorRealisationType7.go |   31 +-
 .../model/GroupObjectDescriptorRealisationTypeB.go |   31 +-
 .../readwrite/model/HPAIControlEndpoint.go         |   35 +-
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |   35 +-
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |   35 +-
 .../knxnetip/readwrite/model/HostProtocolCode.go   |   17 +-
 .../knxnetip/readwrite/model/IPAddress.go          |   23 +-
 .../knxnetip/readwrite/model/KnxAddress.go         |   23 +-
 .../knxnetip/readwrite/model/KnxDatapoint.go       |   11 +-
 .../readwrite/model/KnxDatapointMainType.go        |   17 +-
 .../knxnetip/readwrite/model/KnxDatapointType.go   |   17 +-
 .../knxnetip/readwrite/model/KnxGroupAddress.go    |   26 +-
 .../readwrite/model/KnxGroupAddress2Level.go       |   27 +-
 .../readwrite/model/KnxGroupAddress3Level.go       |   27 +-
 .../readwrite/model/KnxGroupAddressFreeLevel.go    |   27 +-
 .../readwrite/model/KnxInterfaceObjectProperty.go  |   17 +-
 .../readwrite/model/KnxInterfaceObjectType.go      |   17 +-
 .../protocols/knxnetip/readwrite/model/KnxLayer.go |   17 +-
 .../knxnetip/readwrite/model/KnxManufacturer.go    |   17 +-
 .../knxnetip/readwrite/model/KnxMedium.go          |   17 +-
 .../knxnetip/readwrite/model/KnxNetIpCore.go       |   27 +-
 .../readwrite/model/KnxNetIpDeviceManagement.go    |   27 +-
 .../knxnetip/readwrite/model/KnxNetIpMessage.go    |   54 +-
 .../knxnetip/readwrite/model/KnxNetIpRouting.go    |   27 +-
 .../knxnetip/readwrite/model/KnxNetIpTunneling.go  |   27 +-
 .../knxnetip/readwrite/model/KnxNetObjectServer.go |   27 +-
 .../model/KnxNetRemoteConfigurationAndDiagnosis.go |   27 +-
 .../readwrite/model/KnxNetRemoteLogging.go         |   27 +-
 .../knxnetip/readwrite/model/KnxProperty.go        |   11 +-
 .../readwrite/model/KnxPropertyDataType.go         |   17 +-
 .../knxnetip/readwrite/model/LBusmonInd.go         |   45 +-
 .../protocols/knxnetip/readwrite/model/LDataCon.go |   45 +-
 .../knxnetip/readwrite/model/LDataExtended.go      |   41 +-
 .../knxnetip/readwrite/model/LDataFrame.go         |   30 +-
 .../knxnetip/readwrite/model/LDataFrameACK.go      |   27 +-
 .../protocols/knxnetip/readwrite/model/LDataInd.go |   45 +-
 .../protocols/knxnetip/readwrite/model/LDataReq.go |   45 +-
 .../knxnetip/readwrite/model/LPollData.go          |   33 +-
 .../knxnetip/readwrite/model/LPollDataCon.go       |   27 +-
 .../knxnetip/readwrite/model/LPollDataReq.go       |   27 +-
 .../protocols/knxnetip/readwrite/model/LRawCon.go  |   27 +-
 .../protocols/knxnetip/readwrite/model/LRawInd.go  |   27 +-
 .../protocols/knxnetip/readwrite/model/LRawReq.go  |   27 +-
 .../knxnetip/readwrite/model/MACAddress.go         |   23 +-
 .../readwrite/model/MFuncPropCommandReq.go         |   27 +-
 .../knxnetip/readwrite/model/MFuncPropCon.go       |   27 +-
 .../readwrite/model/MFuncPropStateReadReq.go       |   27 +-
 .../knxnetip/readwrite/model/MPropInfoInd.go       |   27 +-
 .../knxnetip/readwrite/model/MPropReadCon.go       |   27 +-
 .../knxnetip/readwrite/model/MPropReadReq.go       |   27 +-
 .../knxnetip/readwrite/model/MPropWriteCon.go      |   27 +-
 .../knxnetip/readwrite/model/MPropWriteReq.go      |   27 +-
 .../knxnetip/readwrite/model/MResetInd.go          |   27 +-
 .../knxnetip/readwrite/model/MResetReq.go          |   27 +-
 .../model/ProjectInstallationIdentifier.go         |   23 +-
 .../knxnetip/readwrite/model/RelativeTimestamp.go  |   23 +-
 .../knxnetip/readwrite/model/RoutingIndication.go  |   27 +-
 .../knxnetip/readwrite/model/SearchRequest.go      |   33 +-
 .../knxnetip/readwrite/model/SearchResponse.go     |   45 +-
 .../knxnetip/readwrite/model/ServiceId.go          |   34 +-
 .../protocols/knxnetip/readwrite/model/Status.go   |   17 +-
 .../readwrite/model/SupportedPhysicalMedia.go      |   17 +-
 .../knxnetip/readwrite/model/TDataConnectedInd.go  |   27 +-
 .../knxnetip/readwrite/model/TDataConnectedReq.go  |   27 +-
 .../knxnetip/readwrite/model/TDataIndividualInd.go |   27 +-
 .../knxnetip/readwrite/model/TDataIndividualReq.go |   27 +-
 .../knxnetip/readwrite/model/TunnelingRequest.go   |   39 +-
 .../readwrite/model/TunnelingRequestDataBlock.go   |   25 +-
 .../knxnetip/readwrite/model/TunnelingResponse.go  |   33 +-
 .../readwrite/model/TunnelingResponseDataBlock.go  |   29 +-
 .../knxnetip/readwrite/model/UnknownMessage.go     |   27 +-
 plc4go/protocols/modbus/readwrite/ParserHelper.go  |   20 +-
 .../protocols/modbus/readwrite/XmlParserHelper.go  |   24 +-
 .../protocols/modbus/readwrite/model/DataItem.go   |   11 +-
 .../protocols/modbus/readwrite/model/DriverType.go |   17 +-
 .../protocols/modbus/readwrite/model/ModbusADU.go  |   26 +-
 .../modbus/readwrite/model/ModbusAsciiADU.go       |   33 +-
 .../modbus/readwrite/model/ModbusConstants.go      |   23 +-
 .../modbus/readwrite/model/ModbusDataType.go       |   17 +-
 .../ModbusDeviceInformationConformityLevel.go      |   17 +-
 .../model/ModbusDeviceInformationLevel.go          |   17 +-
 .../model/ModbusDeviceInformationMoreFollows.go    |   17 +-
 .../model/ModbusDeviceInformationObject.go         |   23 +-
 .../modbus/readwrite/model/ModbusErrorCode.go      |   17 +-
 .../protocols/modbus/readwrite/model/ModbusPDU.go  |   98 +-
 .../readwrite/model/ModbusPDUDiagnosticRequest.go  |   27 +-
 .../readwrite/model/ModbusPDUDiagnosticResponse.go |   27 +-
 .../modbus/readwrite/model/ModbusPDUError.go       |   31 +-
 .../model/ModbusPDUGetComEventCounterRequest.go    |   27 +-
 .../model/ModbusPDUGetComEventCounterResponse.go   |   27 +-
 .../model/ModbusPDUGetComEventLogRequest.go        |   27 +-
 .../model/ModbusPDUGetComEventLogResponse.go       |   27 +-
 .../ModbusPDUMaskWriteHoldingRegisterRequest.go    |   27 +-
 .../ModbusPDUMaskWriteHoldingRegisterResponse.go   |   27 +-
 .../readwrite/model/ModbusPDUReadCoilsRequest.go   |   27 +-
 .../readwrite/model/ModbusPDUReadCoilsResponse.go  |   27 +-
 .../ModbusPDUReadDeviceIdentificationRequest.go    |   31 +-
 .../ModbusPDUReadDeviceIdentificationResponse.go   |   65 +-
 .../model/ModbusPDUReadDiscreteInputsRequest.go    |   27 +-
 .../model/ModbusPDUReadDiscreteInputsResponse.go   |   27 +-
 .../model/ModbusPDUReadExceptionStatusRequest.go   |   27 +-
 .../model/ModbusPDUReadExceptionStatusResponse.go  |   27 +-
 .../model/ModbusPDUReadFifoQueueRequest.go         |   27 +-
 .../model/ModbusPDUReadFifoQueueResponse.go        |   39 +-
 .../model/ModbusPDUReadFileRecordRequest.go        |   41 +-
 .../model/ModbusPDUReadFileRecordRequestItem.go    |   23 +-
 .../model/ModbusPDUReadFileRecordResponse.go       |   41 +-
 .../model/ModbusPDUReadFileRecordResponseItem.go   |   23 +-
 .../model/ModbusPDUReadHoldingRegistersRequest.go  |   27 +-
 .../model/ModbusPDUReadHoldingRegistersResponse.go |   27 +-
 .../model/ModbusPDUReadInputRegistersRequest.go    |   27 +-
 .../model/ModbusPDUReadInputRegistersResponse.go   |   27 +-
 ...sPDUReadWriteMultipleHoldingRegistersRequest.go |   27 +-
 ...PDUReadWriteMultipleHoldingRegistersResponse.go |   27 +-
 .../model/ModbusPDUReportServerIdRequest.go        |   27 +-
 .../model/ModbusPDUReportServerIdResponse.go       |   27 +-
 .../model/ModbusPDUWriteFileRecordRequest.go       |   41 +-
 .../model/ModbusPDUWriteFileRecordRequestItem.go   |   23 +-
 .../model/ModbusPDUWriteFileRecordResponse.go      |   41 +-
 .../model/ModbusPDUWriteFileRecordResponseItem.go  |   23 +-
 .../model/ModbusPDUWriteMultipleCoilsRequest.go    |   27 +-
 .../model/ModbusPDUWriteMultipleCoilsResponse.go   |   27 +-
 ...odbusPDUWriteMultipleHoldingRegistersRequest.go |   27 +-
 ...dbusPDUWriteMultipleHoldingRegistersResponse.go |   27 +-
 .../model/ModbusPDUWriteSingleCoilRequest.go       |   27 +-
 .../model/ModbusPDUWriteSingleCoilResponse.go      |   27 +-
 .../model/ModbusPDUWriteSingleRegisterRequest.go   |   27 +-
 .../model/ModbusPDUWriteSingleRegisterResponse.go  |   27 +-
 .../modbus/readwrite/model/ModbusRtuADU.go         |   33 +-
 .../modbus/readwrite/model/ModbusTcpADU.go         |   35 +-
 plc4go/protocols/s7/readwrite/ParserHelper.go      |   58 +-
 plc4go/protocols/s7/readwrite/XmlParserHelper.go   |   62 +-
 .../model/AlarmMessageAckObjectPushType.go         |   39 +-
 .../s7/readwrite/model/AlarmMessageAckPushType.go  |   55 +-
 .../readwrite/model/AlarmMessageAckResponseType.go |   35 +-
 .../s7/readwrite/model/AlarmMessageAckType.go      |   49 +-
 .../readwrite/model/AlarmMessageObjectAckType.go   |   39 +-
 .../readwrite/model/AlarmMessageObjectPushType.go  |   77 +-
 .../readwrite/model/AlarmMessageObjectQueryType.go |   65 +-
 .../s7/readwrite/model/AlarmMessagePushType.go     |   55 +-
 .../s7/readwrite/model/AlarmMessageQueryType.go    |   57 +-
 .../protocols/s7/readwrite/model/AlarmStateType.go |   17 +-
 plc4go/protocols/s7/readwrite/model/AlarmType.go   |   17 +-
 .../s7/readwrite/model/AssociatedValueType.go      |   43 +-
 plc4go/protocols/s7/readwrite/model/COTPPacket.go  |   52 +-
 .../readwrite/model/COTPPacketConnectionRequest.go |   31 +-
 .../model/COTPPacketConnectionResponse.go          |   31 +-
 .../protocols/s7/readwrite/model/COTPPacketData.go |   27 +-
 .../readwrite/model/COTPPacketDisconnectRequest.go |   31 +-
 .../model/COTPPacketDisconnectResponse.go          |   27 +-
 .../s7/readwrite/model/COTPPacketTpduError.go      |   27 +-
 .../protocols/s7/readwrite/model/COTPParameter.go  |   32 +-
 .../s7/readwrite/model/COTPParameterCalledTsap.go  |   27 +-
 .../s7/readwrite/model/COTPParameterCallingTsap.go |   27 +-
 .../s7/readwrite/model/COTPParameterChecksum.go    |   27 +-
 ...COTPParameterDisconnectAdditionalInformation.go |   27 +-
 .../s7/readwrite/model/COTPParameterTpduSize.go    |   31 +-
 .../s7/readwrite/model/COTPProtocolClass.go        |   17 +-
 .../protocols/s7/readwrite/model/COTPTpduSize.go   |   17 +-
 .../s7/readwrite/model/CpuSubscribeEvents.go       |   17 +-
 plc4go/protocols/s7/readwrite/model/DataItem.go    |   11 +-
 .../s7/readwrite/model/DataTransportErrorCode.go   |   17 +-
 .../s7/readwrite/model/DataTransportSize.go        |   17 +-
 plc4go/protocols/s7/readwrite/model/DateAndTime.go |   23 +-
 plc4go/protocols/s7/readwrite/model/DeviceGroup.go |   17 +-
 plc4go/protocols/s7/readwrite/model/EventType.go   |   17 +-
 plc4go/protocols/s7/readwrite/model/MemoryArea.go  |   17 +-
 .../s7/readwrite/model/ModeTransitionType.go       |   17 +-
 plc4go/protocols/s7/readwrite/model/QueryType.go   |   17 +-
 plc4go/protocols/s7/readwrite/model/S7Address.go   |   22 +-
 .../protocols/s7/readwrite/model/S7AddressAny.go   |   31 +-
 .../s7/readwrite/model/S7DataAlarmMessage.go       |   24 +-
 plc4go/protocols/s7/readwrite/model/S7Message.go   |   44 +-
 .../s7/readwrite/model/S7MessageObjectRequest.go   |   39 +-
 .../s7/readwrite/model/S7MessageObjectResponse.go  |   35 +-
 .../s7/readwrite/model/S7MessageRequest.go         |   27 +-
 .../s7/readwrite/model/S7MessageResponse.go        |   27 +-
 .../s7/readwrite/model/S7MessageResponseData.go    |   27 +-
 .../s7/readwrite/model/S7MessageUserData.go        |   27 +-
 plc4go/protocols/s7/readwrite/model/S7Parameter.go |   34 +-
 .../readwrite/model/S7ParameterModeTransition.go   |   29 +-
 .../readwrite/model/S7ParameterReadVarRequest.go   |   53 +-
 .../readwrite/model/S7ParameterReadVarResponse.go  |   27 +-
 .../model/S7ParameterSetupCommunication.go         |   27 +-
 .../s7/readwrite/model/S7ParameterUserData.go      |   53 +-
 .../s7/readwrite/model/S7ParameterUserDataItem.go  |   22 +-
 .../model/S7ParameterUserDataItemCPUFunctions.go   |   29 +-
 .../readwrite/model/S7ParameterWriteVarRequest.go  |   53 +-
 .../readwrite/model/S7ParameterWriteVarResponse.go |   27 +-
 plc4go/protocols/s7/readwrite/model/S7Payload.go   |   28 +-
 .../s7/readwrite/model/S7PayloadAlarm8.go          |   33 +-
 .../s7/readwrite/model/S7PayloadAlarmAckInd.go     |   33 +-
 .../s7/readwrite/model/S7PayloadAlarmS.go          |   33 +-
 .../s7/readwrite/model/S7PayloadAlarmSC.go         |   33 +-
 .../s7/readwrite/model/S7PayloadAlarmSQ.go         |   33 +-
 .../readwrite/model/S7PayloadDiagnosticMessage.go  |   33 +-
 .../s7/readwrite/model/S7PayloadNotify.go          |   33 +-
 .../s7/readwrite/model/S7PayloadNotify8.go         |   33 +-
 .../s7/readwrite/model/S7PayloadReadVarResponse.go |   53 +-
 .../s7/readwrite/model/S7PayloadUserData.go        |   53 +-
 .../s7/readwrite/model/S7PayloadUserDataItem.go    |   66 +-
 .../S7PayloadUserDataItemCpuFunctionAlarmAck.go    |   53 +-
 ...yloadUserDataItemCpuFunctionAlarmAckResponse.go |   39 +-
 .../S7PayloadUserDataItemCpuFunctionAlarmQuery.go  |   39 +-
 ...oadUserDataItemCpuFunctionAlarmQueryResponse.go |   35 +-
 ...ayloadUserDataItemCpuFunctionMsgSubscription.go |   31 +-
 ...aItemCpuFunctionMsgSubscriptionAlarmResponse.go |   31 +-
 ...erDataItemCpuFunctionMsgSubscriptionResponse.go |   27 +-
 ...ataItemCpuFunctionMsgSubscriptionSysResponse.go |   27 +-
 ...PayloadUserDataItemCpuFunctionReadSzlRequest.go |   33 +-
 ...ayloadUserDataItemCpuFunctionReadSzlResponse.go |   59 +-
 .../s7/readwrite/model/S7PayloadWriteVarRequest.go |   53 +-
 .../readwrite/model/S7PayloadWriteVarResponse.go   |   53 +-
 .../s7/readwrite/model/S7VarPayloadDataItem.go     |   38 +-
 .../s7/readwrite/model/S7VarPayloadStatusItem.go   |   27 +-
 .../readwrite/model/S7VarRequestParameterItem.go   |   22 +-
 .../model/S7VarRequestParameterItemAddress.go      |   35 +-
 plc4go/protocols/s7/readwrite/model/State.go       |   23 +-
 .../protocols/s7/readwrite/model/SyntaxIdType.go   |   17 +-
 .../s7/readwrite/model/SzlDataTreeItem.go          |   23 +-
 plc4go/protocols/s7/readwrite/model/SzlId.go       |   31 +-
 .../s7/readwrite/model/SzlModuleTypeClass.go       |   17 +-
 plc4go/protocols/s7/readwrite/model/SzlSublist.go  |   17 +-
 plc4go/protocols/s7/readwrite/model/TPKTPacket.go  |   31 +-
 .../protocols/s7/readwrite/model/TransportSize.go  |   17 +-
 .../protocols/simulated/readwrite/ParserHelper.go  |    6 +-
 .../simulated/readwrite/XmlParserHelper.go         |   10 +-
 .../simulated/readwrite/model/DataItem.go          |   11 +-
 .../protocols/simulated/readwrite/model/Dummy.go   |   23 +-
 .../readwrite/model/SimulatedDataTypeSizes.go      |   17 +-
 plc4go/spi/Message.go                              |   10 +-
 plc4go/spi/context/ArrayContext.go                 |   61 +
 plc4go/spi/model/DefaultPlcBrowseEvent_plc4xgen.go |   11 +-
 plc4go/spi/model/DefaultPlcBrowseItem_plc4xgen.go  |   13 +-
 .../DefaultPlcBrowseRequestResult_plc4xgen.go      |   11 +-
 .../spi/model/DefaultPlcBrowseRequest_plc4xgen.go  |   13 +-
 plc4go/spi/model/DefaultPlcBrowseResponse.go       |   11 +-
 .../DefaultPlcConsumerRegistration_plc4xgen.go     |   11 +-
 .../model/DefaultPlcReadRequestBuilder_plc4xgen.go |   15 +-
 .../model/DefaultPlcReadRequestResult_plc4xgen.go  |   11 +-
 plc4go/spi/model/DefaultPlcReadRequest_plc4xgen.go |   13 +-
 .../spi/model/DefaultPlcReadResponse_plc4xgen.go   |   13 +-
 plc4go/spi/model/DefaultPlcRequest.go              |    7 +-
 .../model/DefaultPlcSubscriptionEvent_plc4xgen.go  |   15 +-
 .../model/DefaultPlcSubscriptionHandle_plc4xgen.go |    9 +-
 ...efaultPlcSubscriptionRequestBuilder_plc4xgen.go |   17 +-
 ...DefaultPlcSubscriptionRequestResult_plc4xgen.go |   11 +-
 .../DefaultPlcSubscriptionRequest_plc4xgen.go      |   13 +-
 .../DefaultPlcSubscriptionResponse_plc4xgen.go     |   13 +-
 plc4go/spi/model/DefaultPlcTagRequest_plc4xgen.go  |    9 +-
 ...faultPlcUnsubscriptionRequestResult_plc4xgen.go |   11 +-
 .../DefaultPlcWriteRequestBuilder_plc4xgen.go      |   17 +-
 .../model/DefaultPlcWriteRequestResult_plc4xgen.go |   11 +-
 .../spi/model/DefaultPlcWriteRequest_plc4xgen.go   |   15 +-
 .../spi/model/DefaultPlcWriteResponse_plc4xgen.go  |   11 +-
 plc4go/spi/model/DefaultResponse_plc4xgen.go       |    9 +-
 plc4go/spi/testutils/DriverTestRunner.go           |    9 +-
 plc4go/spi/testutils/ParserSerializerTestRunner.go |   14 +-
 plc4go/spi/utils/LengthAware.go                    |    6 +-
 plc4go/spi/utils/Serializable.go                   |    4 +-
 plc4go/spi/utils/WriteBuffer.go                    |    5 +-
 plc4go/spi/utils/WriteBufferBoxBased.go            |    9 +-
 plc4go/spi/utils/WriteBufferByteBased.go           |    7 +-
 plc4go/spi/utils/WriteBufferByteBased_test.go      |   10 +-
 plc4go/spi/utils/WriteBufferJsonBased.go           |   10 +-
 plc4go/spi/utils/WriteBufferXmlBased.go            |   13 +-
 plc4go/spi/values/PlcList.go                       |    7 +-
 plc4go/spi/values/PlcStruct.go                     |    7 +-
 plc4go/spi/values/WriteBufferPlcValueBased.go      |    7 +-
 plc4go/tests/drivers/tests/ads_driver_test.go      |    3 +-
 plc4go/tests/drivers/tests/eip_driver_test.go      |    6 +-
 plc4go/tests/drivers/tests/knxnetip_driver_test.go |    6 +-
 plc4go/tests/drivers/tests/manual_bacnet_test.go   |    3 +-
 plc4go/tests/drivers/tests/modbus_driver_test.go   |    6 +-
 plc4go/tests/drivers/tests/s7_driver_test.go       |    6 +-
 plc4go/tools/plc4xgenerator/gen.go                 |   13 +-
 .../internal/cbusanalyzer/analyzer.go              |    5 +-
 .../CIPEncapsulationConnectionRequest.java         |    3 +
 .../CIPEncapsulationConnectionResponse.java        |    3 +
 .../abeth/readwrite/CIPEncapsulationPacket.java    |    3 +
 .../readwrite/CIPEncapsulationReadRequest.java     |    3 +
 .../readwrite/CIPEncapsulationReadResponse.java    |    3 +
 .../abeth/readwrite/DF1CommandRequestMessage.java  |    3 +
 ...ndResponseMessageProtectedTypedLogicalRead.java |    3 +
 .../java/abeth/readwrite/DF1RequestCommand.java    |    3 +
 .../java/abeth/readwrite/DF1RequestMessage.java    |    3 +
 .../DF1RequestProtectedTypedLogicalRead.java       |    3 +
 .../java/abeth/readwrite/DF1ResponseMessage.java   |    3 +
 .../java/ads/discovery/readwrite/AdsDiscovery.java |    5 +-
 .../ads/discovery/readwrite/AdsDiscoveryBlock.java |    3 +
 .../readwrite/AdsDiscoveryBlockAmsNetId.java       |    3 +
 .../readwrite/AdsDiscoveryBlockFingerprint.java    |    3 +
 .../readwrite/AdsDiscoveryBlockHostName.java       |    3 +
 .../readwrite/AdsDiscoveryBlockOsData.java         |    3 +
 .../readwrite/AdsDiscoveryBlockPassword.java       |    3 +
 .../readwrite/AdsDiscoveryBlockRouteName.java      |    3 +
 .../readwrite/AdsDiscoveryBlockStatus.java         |    3 +
 .../readwrite/AdsDiscoveryBlockUserName.java       |    3 +
 .../readwrite/AdsDiscoveryBlockVersion.java        |    3 +
 .../discovery/readwrite/AdsDiscoveryConstants.java |    3 +
 .../java/ads/discovery/readwrite/AmsNetId.java     |    3 +
 .../java/ads/discovery/readwrite/AmsString.java    |    3 +
 .../readwrite/AdsAddDeviceNotificationRequest.java |    3 +
 .../AdsAddDeviceNotificationResponse.java          |    3 +
 .../plc4x/java/ads/readwrite/AdsConstants.java     |    3 +
 .../java/ads/readwrite/AdsDataTypeArrayInfo.java   |    3 +
 .../ads/readwrite/AdsDataTypeTableChildEntry.java  |    7 +-
 .../java/ads/readwrite/AdsDataTypeTableEntry.java  |    7 +-
 .../AdsDeleteDeviceNotificationRequest.java        |    3 +
 .../AdsDeleteDeviceNotificationResponse.java       |    3 +
 .../readwrite/AdsDeviceNotificationRequest.java    |    5 +-
 .../readwrite/AdsDeviceNotificationResponse.java   |    3 +
 .../java/ads/readwrite/AdsInvalidRequest.java      |    3 +
 .../java/ads/readwrite/AdsInvalidResponse.java     |    3 +
 .../java/ads/readwrite/AdsMultiRequestItem.java    |    3 +
 .../ads/readwrite/AdsMultiRequestItemRead.java     |    3 +
 .../readwrite/AdsMultiRequestItemReadWrite.java    |    3 +
 .../ads/readwrite/AdsMultiRequestItemWrite.java    |    3 +
 .../java/ads/readwrite/AdsNotificationSample.java  |    3 +
 .../ads/readwrite/AdsReadDeviceInfoRequest.java    |    3 +
 .../ads/readwrite/AdsReadDeviceInfoResponse.java   |    3 +
 .../plc4x/java/ads/readwrite/AdsReadRequest.java   |    3 +
 .../plc4x/java/ads/readwrite/AdsReadResponse.java  |    3 +
 .../java/ads/readwrite/AdsReadStateRequest.java    |    3 +
 .../java/ads/readwrite/AdsReadStateResponse.java   |    3 +
 .../java/ads/readwrite/AdsReadWriteRequest.java    |    5 +-
 .../java/ads/readwrite/AdsReadWriteResponse.java   |    3 +
 .../plc4x/java/ads/readwrite/AdsStampHeader.java   |    5 +-
 .../java/ads/readwrite/AdsSymbolTableEntry.java    |    3 +
 .../plc4x/java/ads/readwrite/AdsTableSizes.java    |    3 +
 .../java/ads/readwrite/AdsWriteControlRequest.java |    3 +
 .../ads/readwrite/AdsWriteControlResponse.java     |    3 +
 .../plc4x/java/ads/readwrite/AdsWriteRequest.java  |    3 +
 .../plc4x/java/ads/readwrite/AdsWriteResponse.java |    3 +
 .../apache/plc4x/java/ads/readwrite/AmsNetId.java  |    3 +
 .../apache/plc4x/java/ads/readwrite/AmsPacket.java |    3 +
 .../ads/readwrite/AmsSerialAcknowledgeFrame.java   |    3 +
 .../plc4x/java/ads/readwrite/AmsSerialFrame.java   |    3 +
 .../java/ads/readwrite/AmsSerialResetFrame.java    |    3 +
 .../plc4x/java/ads/readwrite/AmsTCPPacket.java     |    3 +
 .../plc4x/java/ads/readwrite/ErrorResponse.java    |    3 +
 .../apache/plc4x/java/bacnetip/readwrite/APDU.java |    3 +
 .../plc4x/java/bacnetip/readwrite/APDUAbort.java   |    3 +
 .../java/bacnetip/readwrite/APDUComplexAck.java    |    3 +
 .../bacnetip/readwrite/APDUConfirmedRequest.java   |    3 +
 .../plc4x/java/bacnetip/readwrite/APDUError.java   |    3 +
 .../plc4x/java/bacnetip/readwrite/APDUReject.java  |    3 +
 .../java/bacnetip/readwrite/APDUSegmentAck.java    |    3 +
 .../java/bacnetip/readwrite/APDUSimpleAck.java     |    3 +
 .../bacnetip/readwrite/APDUUnconfirmedRequest.java |    3 +
 .../plc4x/java/bacnetip/readwrite/APDUUnknown.java |    3 +
 .../readwrite/BACnetAbortReasonTagged.java         |    3 +
 ...netAccessAuthenticationFactorDisableTagged.java |    3 +
 .../BACnetAccessCredentialDisableReasonTagged.java |    3 +
 .../BACnetAccessCredentialDisableTagged.java       |    3 +
 .../readwrite/BACnetAccessEventTagged.java         |    3 +
 .../readwrite/BACnetAccessPassbackModeTagged.java  |    3 +
 .../java/bacnetip/readwrite/BACnetAccessRule.java  |    3 +
 .../BACnetAccessRuleLocationSpecifierTagged.java   |    3 +
 .../BACnetAccessRuleTimeRangeSpecifierTagged.java  |    3 +
 .../readwrite/BACnetAccessThreatLevel.java         |    3 +
 .../readwrite/BACnetAccessUserTypeTagged.java      |    3 +
 .../BACnetAccessZoneOccupancyStateTagged.java      |    3 +
 .../readwrite/BACnetAccumulatorRecord.java         |    3 +
 ...etAccumulatorRecordAccumulatorStatusTagged.java |    3 +
 .../bacnetip/readwrite/BACnetActionCommand.java    |    3 +
 .../java/bacnetip/readwrite/BACnetActionList.java  |    3 +
 .../bacnetip/readwrite/BACnetActionTagged.java     |    3 +
 .../java/bacnetip/readwrite/BACnetAddress.java     |    3 +
 .../bacnetip/readwrite/BACnetAddressBinding.java   |    3 +
 .../bacnetip/readwrite/BACnetAddressEnclosed.java  |    3 +
 .../bacnetip/readwrite/BACnetApplicationTag.java   |    3 +
 .../readwrite/BACnetApplicationTagBitString.java   |    3 +
 .../readwrite/BACnetApplicationTagBoolean.java     |    3 +
 .../BACnetApplicationTagCharacterString.java       |    3 +
 .../readwrite/BACnetApplicationTagDate.java        |    3 +
 .../readwrite/BACnetApplicationTagDouble.java      |    3 +
 .../readwrite/BACnetApplicationTagEnumerated.java  |    3 +
 .../readwrite/BACnetApplicationTagNull.java        |    3 +
 .../BACnetApplicationTagObjectIdentifier.java      |    3 +
 .../readwrite/BACnetApplicationTagOctetString.java |    3 +
 .../readwrite/BACnetApplicationTagReal.java        |    3 +
 .../BACnetApplicationTagSignedInteger.java         |    3 +
 .../readwrite/BACnetApplicationTagTime.java        |    3 +
 .../BACnetApplicationTagUnsignedInteger.java       |    3 +
 .../readwrite/BACnetAssignedAccessRights.java      |    3 +
 .../readwrite/BACnetAssignedLandingCalls.java      |    3 +
 ...BACnetAssignedLandingCallsLandingCallsList.java |    3 +
 ...tAssignedLandingCallsLandingCallsListEntry.java |    3 +
 .../readwrite/BACnetAuthenticationFactor.java      |    3 +
 .../BACnetAuthenticationFactorEnclosed.java        |    3 +
 .../BACnetAuthenticationFactorFormat.java          |    3 +
 .../BACnetAuthenticationFactorTypeTagged.java      |    3 +
 .../readwrite/BACnetAuthenticationPolicy.java      |    3 +
 .../readwrite/BACnetAuthenticationPolicyList.java  |    3 +
 .../BACnetAuthenticationPolicyListEntry.java       |    3 +
 .../BACnetAuthenticationStatusTagged.java          |    3 +
 .../BACnetAuthorizationExemptionTagged.java        |    3 +
 .../readwrite/BACnetAuthorizationModeTagged.java   |    3 +
 .../java/bacnetip/readwrite/BACnetBDTEntry.java    |    3 +
 .../readwrite/BACnetBackupStateTagged.java         |    3 +
 .../readwrite/BACnetBinaryLightingPVTagged.java    |    3 +
 .../bacnetip/readwrite/BACnetBinaryPVTagged.java   |    3 +
 .../readwrite/BACnetCOVMultipleSubscription.java   |    3 +
 ...criptionListOfCovSubscriptionSpecification.java |    3 +
 ...ionListOfCovSubscriptionSpecificationEntry.java |    3 +
 ...ptionSpecificationEntryListOfCovReferences.java |    3 +
 ...SpecificationEntryListOfCovReferencesEntry.java |    3 +
 .../bacnetip/readwrite/BACnetCOVSubscription.java  |    3 +
 .../bacnetip/readwrite/BACnetCalendarEntry.java    |    3 +
 .../readwrite/BACnetCalendarEntryDate.java         |    3 +
 .../readwrite/BACnetCalendarEntryDateRange.java    |    3 +
 .../readwrite/BACnetCalendarEntryEnclosed.java     |    3 +
 .../readwrite/BACnetCalendarEntryWeekNDay.java     |    3 +
 .../bacnetip/readwrite/BACnetChannelValue.java     |    3 +
 .../readwrite/BACnetChannelValueBitString.java     |    3 +
 .../readwrite/BACnetChannelValueBoolean.java       |    3 +
 .../BACnetChannelValueCharacterString.java         |    3 +
 .../bacnetip/readwrite/BACnetChannelValueDate.java |    3 +
 .../readwrite/BACnetChannelValueDouble.java        |    3 +
 .../readwrite/BACnetChannelValueEnumerated.java    |    3 +
 .../readwrite/BACnetChannelValueInteger.java       |    3 +
 .../BACnetChannelValueLightingCommand.java         |    3 +
 .../bacnetip/readwrite/BACnetChannelValueNull.java |    3 +
 .../BACnetChannelValueObjectidentifier.java        |    3 +
 .../readwrite/BACnetChannelValueOctetString.java   |    3 +
 .../bacnetip/readwrite/BACnetChannelValueReal.java |    3 +
 .../bacnetip/readwrite/BACnetChannelValueTime.java |    3 +
 .../readwrite/BACnetChannelValueUnsigned.java      |    3 +
 .../java/bacnetip/readwrite/BACnetClientCOV.java   |    3 +
 .../bacnetip/readwrite/BACnetClientCOVNone.java    |    3 +
 .../bacnetip/readwrite/BACnetClientCOVObject.java  |    3 +
 .../java/bacnetip/readwrite/BACnetClosingTag.java  |    3 +
 .../readwrite/BACnetConfirmedServiceRequest.java   |    3 +
 ...netConfirmedServiceRequestAcknowledgeAlarm.java |    3 +
 ...ACnetConfirmedServiceRequestAddListElement.java |    3 +
 ...ACnetConfirmedServiceRequestAtomicReadFile.java |    3 +
 ...onfirmedServiceRequestAtomicReadFileRecord.java |    3 +
 ...onfirmedServiceRequestAtomicReadFileStream.java |    3 +
 ...ServiceRequestAtomicReadFileStreamOrRecord.java |    3 +
 ...CnetConfirmedServiceRequestAtomicWriteFile.java |    3 +
 .../BACnetConfirmedServiceRequestAuthenticate.java |    3 +
 ...rmedServiceRequestConfirmedCOVNotification.java |    3 +
 ...iceRequestConfirmedCOVNotificationMultiple.java |    3 +
 ...edServiceRequestConfirmedEventNotification.java |    3 +
 ...rmedServiceRequestConfirmedPrivateTransfer.java |    3 +
 ...onfirmedServiceRequestConfirmedTextMessage.java |    3 +
 ...iceRequestConfirmedTextMessageMessageClass.java |    3 +
 ...tConfirmedTextMessageMessageClassCharacter.java |    3 +
 ...estConfirmedTextMessageMessageClassNumeric.java |    3 +
 ...tConfirmedTextMessageMessagePriorityTagged.java |    3 +
 .../BACnetConfirmedServiceRequestCreateObject.java |    3 +
 ...dServiceRequestCreateObjectObjectSpecifier.java |    3 +
 .../BACnetConfirmedServiceRequestDeleteObject.java |    3 +
 ...edServiceRequestDeviceCommunicationControl.java |    3 +
 ...iceCommunicationControlEnableDisableTagged.java |    3 +
 ...onfirmedServiceRequestGetEnrollmentSummary.java |    3 +
 ...rollmentSummaryAcknowledgementFilterTagged.java |    3 +
 ...GetEnrollmentSummaryEventStateFilterTagged.java |    3 +
 ...eRequestGetEnrollmentSummaryPriorityFilter.java |    3 +
 ...ConfirmedServiceRequestGetEventInformation.java |    3 +
 ...ConfirmedServiceRequestLifeSafetyOperation.java |    3 +
 .../BACnetConfirmedServiceRequestReadProperty.java |    3 +
 ...irmedServiceRequestReadPropertyConditional.java |    3 +
 ...onfirmedServiceRequestReadPropertyMultiple.java |    3 +
 .../BACnetConfirmedServiceRequestReadRange.java    |    3 +
 ...ACnetConfirmedServiceRequestReadRangeRange.java |    3 +
 ...rmedServiceRequestReadRangeRangeByPosition.java |    3 +
 ...rviceRequestReadRangeRangeBySequenceNumber.java |    3 +
 ...onfirmedServiceRequestReadRangeRangeByTime.java |    3 +
 ...tConfirmedServiceRequestReinitializeDevice.java |    3 +
 ...lizeDeviceReinitializedStateOfDeviceTagged.java |    3 +
 ...etConfirmedServiceRequestRemoveListElement.java |    3 +
 .../BACnetConfirmedServiceRequestRequestKey.java   |    3 +
 .../BACnetConfirmedServiceRequestSubscribeCOV.java |    3 +
 ...onfirmedServiceRequestSubscribeCOVProperty.java |    3 +
 ...ServiceRequestSubscribeCOVPropertyMultiple.java |    3 +
 ...ultipleListOfCovSubscriptionSpecifications.java |    3 +
 ...pleListOfCovSubscriptionSpecificationsList.java |    3 +
 ...stOfCovSubscriptionSpecificationsReference.java |    3 +
 .../BACnetConfirmedServiceRequestUnknown.java      |    3 +
 .../BACnetConfirmedServiceRequestVTClose.java      |    3 +
 .../BACnetConfirmedServiceRequestVTData.java       |    3 +
 .../BACnetConfirmedServiceRequestVTOpen.java       |    3 +
 ...BACnetConfirmedServiceRequestWriteProperty.java |    3 +
 ...nfirmedServiceRequestWritePropertyMultiple.java |    3 +
 .../bacnetip/readwrite/BACnetConstructedData.java  |    3 +
 .../readwrite/BACnetConstructedDataAPDULength.java |    3 +
 .../BACnetConstructedDataAPDUSegmentTimeout.java   |    3 +
 .../BACnetConstructedDataAPDUTimeout.java          |    3 +
 .../BACnetConstructedDataAbsenteeLimit.java        |    3 +
 .../BACnetConstructedDataAcceptedModes.java        |    3 +
 .../BACnetConstructedDataAccessAlarmEvents.java    |    3 +
 .../BACnetConstructedDataAccessCredentialAll.java  |    3 +
 ...BACnetConstructedDataAccessDoorAlarmValues.java |    3 +
 .../BACnetConstructedDataAccessDoorAll.java        |    3 +
 ...BACnetConstructedDataAccessDoorFaultValues.java |    3 +
 ...ACnetConstructedDataAccessDoorPresentValue.java |    3 +
 ...ConstructedDataAccessDoorRelinquishDefault.java |    3 +
 .../BACnetConstructedDataAccessDoors.java          |    3 +
 .../BACnetConstructedDataAccessEvent.java          |    3 +
 ...tructedDataAccessEventAuthenticationFactor.java |    3 +
 ...BACnetConstructedDataAccessEventCredential.java |    3 +
 .../BACnetConstructedDataAccessEventTag.java       |    3 +
 .../BACnetConstructedDataAccessEventTime.java      |    3 +
 .../BACnetConstructedDataAccessPointAll.java       |    3 +
 .../BACnetConstructedDataAccessRightsAll.java      |    3 +
 ...CnetConstructedDataAccessTransactionEvents.java |    3 +
 .../BACnetConstructedDataAccessUserAll.java        |    3 +
 ...BACnetConstructedDataAccessZoneAdjustValue.java |    3 +
 ...BACnetConstructedDataAccessZoneAlarmValues.java |    3 +
 .../BACnetConstructedDataAccessZoneAll.java        |    3 +
 .../BACnetConstructedDataAccompaniment.java        |    3 +
 .../BACnetConstructedDataAccompanimentTime.java    |    3 +
 .../BACnetConstructedDataAccumulatorAll.java       |    3 +
 ...etConstructedDataAccumulatorFaultHighLimit.java |    3 +
 ...netConstructedDataAccumulatorFaultLowLimit.java |    3 +
 .../BACnetConstructedDataAccumulatorHighLimit.java |    3 +
 .../BACnetConstructedDataAccumulatorLowLimit.java  |    3 +
 ...CnetConstructedDataAccumulatorMaxPresValue.java |    3 +
 ...CnetConstructedDataAccumulatorMinPresValue.java |    3 +
 .../BACnetConstructedDataAckRequired.java          |    3 +
 .../BACnetConstructedDataAckedTransitions.java     |    3 +
 .../readwrite/BACnetConstructedDataAction.java     |    3 +
 .../readwrite/BACnetConstructedDataActionText.java |    3 +
 .../BACnetConstructedDataActivationTime.java       |    3 +
 ...tConstructedDataActiveAuthenticationPolicy.java |    3 +
 ...structedDataActiveCOVMultipleSubscriptions.java |    3 +
 ...ACnetConstructedDataActiveCOVSubscriptions.java |    3 +
 .../readwrite/BACnetConstructedDataActiveText.java |    3 +
 .../BACnetConstructedDataActiveVTSessions.java     |    3 +
 .../BACnetConstructedDataActualShedLevel.java      |    3 +
 .../BACnetConstructedDataAdjustValue.java          |    3 +
 .../readwrite/BACnetConstructedDataAlarmValue.java |    3 +
 .../BACnetConstructedDataAlarmValues.java          |    3 +
 .../BACnetConstructedDataAlertEnrollmentAll.java   |    3 +
 ...ConstructedDataAlertEnrollmentPresentValue.java |    3 +
 .../BACnetConstructedDataAlignIntervals.java       |    3 +
 .../BACnetConstructedDataAllWritesSuccessful.java  |    3 +
 ...ACnetConstructedDataAllowGroupDelayInhibit.java |    3 +
 .../BACnetConstructedDataAnalogInputAll.java       |    3 +
 ...etConstructedDataAnalogInputFaultHighLimit.java |    3 +
 ...netConstructedDataAnalogInputFaultLowLimit.java |    3 +
 ...etConstructedDataAnalogInputInterfaceValue.java |    3 +
 ...CnetConstructedDataAnalogInputMaxPresValue.java |    3 +
 ...CnetConstructedDataAnalogInputPresentValue.java |    3 +
 .../BACnetConstructedDataAnalogOutputAll.java      |    3 +
 ...tConstructedDataAnalogOutputInterfaceValue.java |    3 +
 ...netConstructedDataAnalogOutputMaxPresValue.java |    3 +
 ...netConstructedDataAnalogOutputPresentValue.java |    3 +
 ...nstructedDataAnalogOutputRelinquishDefault.java |    3 +
 .../BACnetConstructedDataAnalogValueAll.java       |    3 +
 ...etConstructedDataAnalogValueFaultHighLimit.java |    3 +
 ...netConstructedDataAnalogValueFaultLowLimit.java |    3 +
 ...CnetConstructedDataAnalogValueMaxPresValue.java |    3 +
 ...CnetConstructedDataAnalogValuePresentValue.java |    3 +
 ...onstructedDataAnalogValueRelinquishDefault.java |    3 +
 ...tConstructedDataApplicationSoftwareVersion.java |    3 +
 .../readwrite/BACnetConstructedDataArchive.java    |    3 +
 .../BACnetConstructedDataAssignedAccessRights.java |    3 +
 .../BACnetConstructedDataAssignedLandingCalls.java |    3 +
 .../BACnetConstructedDataAttemptedSamples.java     |    3 +
 ...BACnetConstructedDataAuthenticationFactors.java |    3 +
 ...netConstructedDataAuthenticationPolicyList.java |    3 +
 ...etConstructedDataAuthenticationPolicyNames.java |    3 +
 .../BACnetConstructedDataAuthenticationStatus.java |    3 +
 ...CnetConstructedDataAuthorizationExemptions.java |    3 +
 .../BACnetConstructedDataAuthorizationMode.java    |    3 +
 .../BACnetConstructedDataAutoSlaveDiscovery.java   |    3 +
 .../BACnetConstructedDataAverageValue.java         |    3 +
 .../BACnetConstructedDataAveragingAll.java         |    3 +
 ...BACnetConstructedDataBACnetIPGlobalAddress.java |    3 +
 .../BACnetConstructedDataBACnetIPMode.java         |    3 +
 ...netConstructedDataBACnetIPMulticastAddress.java |    3 +
 .../BACnetConstructedDataBACnetIPNATTraversal.java |    3 +
 .../BACnetConstructedDataBACnetIPUDPPort.java      |    3 +
 .../BACnetConstructedDataBACnetIPv6Mode.java       |    3 +
 ...tConstructedDataBACnetIPv6MulticastAddress.java |    3 +
 .../BACnetConstructedDataBACnetIPv6UDPPort.java    |    3 +
 ...etConstructedDataBBMDAcceptFDRegistrations.java |    3 +
 ...structedDataBBMDBroadcastDistributionTable.java |    3 +
 ...ACnetConstructedDataBBMDForeignDeviceTable.java |    3 +
 ...BACnetConstructedDataBackupAndRestoreState.java |    3 +
 .../BACnetConstructedDataBackupFailureTimeout.java |    3 +
 ...BACnetConstructedDataBackupPreparationTime.java |    3 +
 ...netConstructedDataBaseDeviceSecurityPolicy.java |    3 +
 .../readwrite/BACnetConstructedDataBelongsTo.java  |    3 +
 .../readwrite/BACnetConstructedDataBias.java       |    3 +
 .../BACnetConstructedDataBinaryInputAll.java       |    3 +
 ...etConstructedDataBinaryInputInterfaceValue.java |    3 +
 ...CnetConstructedDataBinaryInputPresentValue.java |    3 +
 ...CnetConstructedDataBinaryLightingOutputAll.java |    3 +
 ...uctedDataBinaryLightingOutputFeedbackValue.java |    3 +
 ...ructedDataBinaryLightingOutputPresentValue.java |    3 +
 ...dDataBinaryLightingOutputRelinquishDefault.java |    3 +
 .../BACnetConstructedDataBinaryOutputAll.java      |    3 +
 ...etConstructedDataBinaryOutputFeedbackValue.java |    3 +
 ...tConstructedDataBinaryOutputInterfaceValue.java |    3 +
 ...netConstructedDataBinaryOutputPresentValue.java |    3 +
 ...nstructedDataBinaryOutputRelinquishDefault.java |    3 +
 .../BACnetConstructedDataBinaryValueAll.java       |    3 +
 ...CnetConstructedDataBinaryValuePresentValue.java |    3 +
 ...onstructedDataBinaryValueRelinquishDefault.java |    3 +
 .../readwrite/BACnetConstructedDataBitMask.java    |    3 +
 ...etConstructedDataBitStringValueAlarmValues.java |    3 +
 ...tConstructedDataBitStringValuePresentValue.java |    3 +
 ...tructedDataBitStringValueRelinquishDefault.java |    3 +
 .../readwrite/BACnetConstructedDataBitText.java    |    3 +
 .../BACnetConstructedDataBitstringValueAll.java    |    3 +
 .../BACnetConstructedDataBlinkWarnEnable.java      |    3 +
 .../readwrite/BACnetConstructedDataBufferSize.java |    3 +
 .../BACnetConstructedDataCOVIncrement.java         |    3 +
 .../readwrite/BACnetConstructedDataCOVPeriod.java  |    3 +
 ...etConstructedDataCOVResubscriptionInterval.java |    3 +
 .../readwrite/BACnetConstructedDataCOVUPeriod.java |    3 +
 .../BACnetConstructedDataCOVURecipients.java       |    3 +
 .../BACnetConstructedDataCalendarAll.java          |    3 +
 .../BACnetConstructedDataCalendarPresentValue.java |    3 +
 .../BACnetConstructedDataCarAssignedDirection.java |    3 +
 .../BACnetConstructedDataCarDoorCommand.java       |    3 +
 .../BACnetConstructedDataCarDoorStatus.java        |    3 +
 .../BACnetConstructedDataCarDoorText.java          |    3 +
 .../BACnetConstructedDataCarDoorZone.java          |    3 +
 .../BACnetConstructedDataCarDriveStatus.java       |    3 +
 .../readwrite/BACnetConstructedDataCarLoad.java    |    3 +
 .../BACnetConstructedDataCarLoadUnits.java         |    3 +
 .../readwrite/BACnetConstructedDataCarMode.java    |    3 +
 .../BACnetConstructedDataCarMovingDirection.java   |    3 +
 .../BACnetConstructedDataCarPosition.java          |    3 +
 .../BACnetConstructedDataChangeOfStateCount.java   |    3 +
 .../BACnetConstructedDataChangeOfStateTime.java    |    3 +
 .../BACnetConstructedDataChangesPending.java       |    3 +
 .../readwrite/BACnetConstructedDataChannelAll.java |    3 +
 ...dDataChannelListOfObjectPropertyReferences.java |    3 +
 .../BACnetConstructedDataChannelNumber.java        |    3 +
 .../BACnetConstructedDataChannelPresentValue.java  |    3 +
 ...tructedDataCharacterStringValueAlarmValues.java |    3 +
 ...tructedDataCharacterStringValueFaultValues.java |    3 +
 ...ructedDataCharacterStringValuePresentValue.java |    3 +
 ...dDataCharacterStringValueRelinquishDefault.java |    3 +
 ...CnetConstructedDataCharacterstringValueAll.java |    3 +
 .../BACnetConstructedDataClientCOVIncrement.java   |    3 +
 .../readwrite/BACnetConstructedDataCommand.java    |    3 +
 .../BACnetConstructedDataCommandAction.java        |    3 +
 .../readwrite/BACnetConstructedDataCommandAll.java |    3 +
 .../BACnetConstructedDataCommandTimeArray.java     |    3 +
 .../BACnetConstructedDataConfigurationFiles.java   |    3 +
 .../BACnetConstructedDataControlGroups.java        |    3 +
 ...ConstructedDataControlledVariableReference.java |    3 +
 ...CnetConstructedDataControlledVariableUnits.java |    3 +
 ...CnetConstructedDataControlledVariableValue.java |    3 +
 .../readwrite/BACnetConstructedDataCount.java      |    3 +
 .../BACnetConstructedDataCountBeforeChange.java    |    3 +
 .../BACnetConstructedDataCountChangeTime.java      |    3 +
 ...ACnetConstructedDataCredentialDataInputAll.java |    3 +
 ...tructedDataCredentialDataInputPresentValue.java |    3 +
 ...nstructedDataCredentialDataInputUpdateTime.java |    3 +
 .../BACnetConstructedDataCredentialDisable.java    |    3 +
 .../BACnetConstructedDataCredentialStatus.java     |    3 +
 .../BACnetConstructedDataCredentials.java          |    3 +
 .../BACnetConstructedDataCredentialsInZone.java    |    3 +
 ...ACnetConstructedDataCurrentCommandPriority.java |    3 +
 .../BACnetConstructedDataDatabaseRevision.java     |    3 +
 .../readwrite/BACnetConstructedDataDateList.java   |    3 +
 ...onstructedDataDatePatternValuePresentValue.java |    3 +
 ...uctedDataDatePatternValueRelinquishDefault.java |    3 +
 ...ructedDataDateTimePatternValuePresentValue.java |    3 +
 ...dDataDateTimePatternValueRelinquishDefault.java |    3 +
 ...etConstructedDataDateTimeValuePresentValue.java |    3 +
 ...structedDataDateTimeValueRelinquishDefault.java |    3 +
 .../BACnetConstructedDataDateValueAll.java         |    3 +
 ...BACnetConstructedDataDateValuePresentValue.java |    3 +
 ...tConstructedDataDateValueRelinquishDefault.java |    3 +
 .../BACnetConstructedDataDatepatternValueAll.java  |    3 +
 .../BACnetConstructedDataDatetimeValueAll.java     |    3 +
 ...CnetConstructedDataDatetimepatternValueAll.java |    3 +
 ...BACnetConstructedDataDaylightSavingsStatus.java |    3 +
 .../BACnetConstructedDataDaysRemaining.java        |    3 +
 .../readwrite/BACnetConstructedDataDeadband.java   |    3 +
 .../BACnetConstructedDataDefaultFadeTime.java      |    3 +
 .../BACnetConstructedDataDefaultRampRate.java      |    3 +
 .../BACnetConstructedDataDefaultStepIncrement.java |    3 +
 ...structedDataDefaultSubordinateRelationship.java |    3 +
 .../BACnetConstructedDataDefaultTimeout.java       |    3 +
 ...CnetConstructedDataDeployedProfileLocation.java |    3 +
 .../BACnetConstructedDataDerivativeConstant.java   |    3 +
 ...CnetConstructedDataDerivativeConstantUnits.java |    3 +
 .../BACnetConstructedDataDescription.java          |    3 +
 .../BACnetConstructedDataDescriptionOfHalt.java    |    3 +
 .../BACnetConstructedDataDeviceAddressBinding.java |    3 +
 .../readwrite/BACnetConstructedDataDeviceAll.java  |    3 +
 .../BACnetConstructedDataDeviceMaxInfoFrames.java  |    3 +
 .../BACnetConstructedDataDeviceMaxMaster.java      |    3 +
 .../readwrite/BACnetConstructedDataDeviceType.java |    3 +
 .../BACnetConstructedDataDirectReading.java        |    3 +
 ...CnetConstructedDataDistributionKeyRevision.java |    3 +
 .../readwrite/BACnetConstructedDataDoNotHide.java  |    3 +
 .../BACnetConstructedDataDoorAlarmState.java       |    3 +
 ...BACnetConstructedDataDoorExtendedPulseTime.java |    3 +
 .../BACnetConstructedDataDoorMembers.java          |    3 +
 .../BACnetConstructedDataDoorOpenTooLongTime.java  |    3 +
 .../BACnetConstructedDataDoorPulseTime.java        |    3 +
 .../readwrite/BACnetConstructedDataDoorStatus.java |    3 +
 .../BACnetConstructedDataDoorUnlockDelayTime.java  |    3 +
 .../readwrite/BACnetConstructedDataDutyWindow.java |    3 +
 .../BACnetConstructedDataEffectivePeriod.java      |    3 +
 .../BACnetConstructedDataEgressActive.java         |    3 +
 .../readwrite/BACnetConstructedDataEgressTime.java |    3 +
 .../BACnetConstructedDataElapsedActiveTime.java    |    3 +
 .../readwrite/BACnetConstructedDataElement.java    |    3 +
 .../BACnetConstructedDataElevatorGroup.java        |    3 +
 .../BACnetConstructedDataElevatorGroupAll.java     |    3 +
 ...etConstructedDataElevatorGroupGroupMembers.java |    3 +
 .../readwrite/BACnetConstructedDataEnable.java     |    3 +
 .../BACnetConstructedDataEnergyMeter.java          |    3 +
 .../BACnetConstructedDataEnergyMeterRef.java       |    3 +
 .../BACnetConstructedDataEntryPoints.java          |    3 +
 .../readwrite/BACnetConstructedDataErrorLimit.java |    3 +
 .../BACnetConstructedDataEscalatorAll.java         |    3 +
 ...BACnetConstructedDataEscalatorFaultSignals.java |    3 +
 .../BACnetConstructedDataEscalatorMode.java        |    3 +
 ...BACnetConstructedDataEventAlgorithmInhibit.java |    3 +
 ...netConstructedDataEventAlgorithmInhibitRef.java |    3 +
 .../BACnetConstructedDataEventDetectionEnable.java |    3 +
 .../BACnetConstructedDataEventEnable.java          |    3 +
 .../BACnetConstructedDataEventEnrollmentAll.java   |    3 +
 .../BACnetConstructedDataEventLogAll.java          |    3 +
 .../BACnetConstructedDataEventLogLogBuffer.java    |    3 +
 .../BACnetConstructedDataEventMessageTexts.java    |    3 +
 ...CnetConstructedDataEventMessageTextsConfig.java |    3 +
 .../BACnetConstructedDataEventParameters.java      |    3 +
 .../readwrite/BACnetConstructedDataEventState.java |    3 +
 .../BACnetConstructedDataEventTimeStamps.java      |    3 +
 .../readwrite/BACnetConstructedDataEventType.java  |    3 +
 .../BACnetConstructedDataExceptionSchedule.java    |    3 +
 .../BACnetConstructedDataExecutionDelay.java       |    3 +
 .../readwrite/BACnetConstructedDataExitPoints.java |    3 +
 .../BACnetConstructedDataExpectedShedLevel.java    |    3 +
 .../BACnetConstructedDataExpirationTime.java       |    3 +
 .../BACnetConstructedDataExtendedTimeEnable.java   |    3 +
 .../BACnetConstructedDataFDBBMDAddress.java        |    3 +
 ...ACnetConstructedDataFDSubscriptionLifetime.java |    3 +
 .../BACnetConstructedDataFailedAttemptEvents.java  |    3 +
 .../BACnetConstructedDataFailedAttempts.java       |    3 +
 .../BACnetConstructedDataFailedAttemptsTime.java   |    3 +
 .../BACnetConstructedDataFaultHighLimit.java       |    3 +
 .../BACnetConstructedDataFaultLowLimit.java        |    3 +
 .../BACnetConstructedDataFaultParameters.java      |    3 +
 .../BACnetConstructedDataFaultSignals.java         |    3 +
 .../readwrite/BACnetConstructedDataFaultType.java  |    3 +
 .../BACnetConstructedDataFaultValues.java          |    3 +
 .../BACnetConstructedDataFileAccessMethod.java     |    3 +
 .../readwrite/BACnetConstructedDataFileAll.java    |    3 +
 .../BACnetConstructedDataFileRecordCount.java      |    3 +
 .../readwrite/BACnetConstructedDataFileSize.java   |    3 +
 .../readwrite/BACnetConstructedDataFileType.java   |    3 +
 .../BACnetConstructedDataFirmwareRevision.java     |    3 +
 .../readwrite/BACnetConstructedDataFloorText.java  |    3 +
 .../BACnetConstructedDataFullDutyBaseline.java     |    3 +
 .../BACnetConstructedDataGlobalGroupAll.java       |    3 +
 ...CnetConstructedDataGlobalGroupGroupMembers.java |    3 +
 ...CnetConstructedDataGlobalGroupPresentValue.java |    3 +
 .../BACnetConstructedDataGlobalIdentifier.java     |    3 +
 .../readwrite/BACnetConstructedDataGroupAll.java   |    3 +
 .../readwrite/BACnetConstructedDataGroupID.java    |    3 +
 .../BACnetConstructedDataGroupMemberNames.java     |    3 +
 .../BACnetConstructedDataGroupMembers.java         |    3 +
 .../readwrite/BACnetConstructedDataGroupMode.java  |    3 +
 .../BACnetConstructedDataGroupPresentValue.java    |    3 +
 .../readwrite/BACnetConstructedDataHighLimit.java  |    3 +
 .../readwrite/BACnetConstructedDataHigherDeck.java |    3 +
 .../readwrite/BACnetConstructedDataIPAddress.java  |    3 +
 .../BACnetConstructedDataIPDHCPEnable.java         |    3 +
 .../BACnetConstructedDataIPDHCPLeaseTime.java      |    3 +
 ...netConstructedDataIPDHCPLeaseTimeRemaining.java |    3 +
 .../BACnetConstructedDataIPDHCPServer.java         |    3 +
 .../BACnetConstructedDataIPDNSServer.java          |    3 +
 .../BACnetConstructedDataIPDefaultGateway.java     |    3 +
 .../BACnetConstructedDataIPSubnetMask.java         |    3 +
 .../BACnetConstructedDataIPv6Address.java          |    3 +
 ...netConstructedDataIPv6AutoAddressingEnable.java |    3 +
 .../BACnetConstructedDataIPv6DHCPLeaseTime.java    |    3 +
 ...tConstructedDataIPv6DHCPLeaseTimeRemaining.java |    3 +
 .../BACnetConstructedDataIPv6DHCPServer.java       |    3 +
 .../BACnetConstructedDataIPv6DNSServer.java        |    3 +
 .../BACnetConstructedDataIPv6DefaultGateway.java   |    3 +
 .../BACnetConstructedDataIPv6PrefixLength.java     |    3 +
 .../BACnetConstructedDataIPv6ZoneIndex.java        |    3 +
 .../readwrite/BACnetConstructedDataInProcess.java  |    3 +
 .../readwrite/BACnetConstructedDataInProgress.java |    3 +
 .../BACnetConstructedDataInactiveText.java         |    3 +
 .../BACnetConstructedDataInitialTimeout.java       |    3 +
 .../BACnetConstructedDataInputReference.java       |    3 +
 .../BACnetConstructedDataInstallationID.java       |    3 +
 .../readwrite/BACnetConstructedDataInstanceOf.java |    3 +
 .../BACnetConstructedDataInstantaneousPower.java   |    3 +
 .../BACnetConstructedDataIntegerValueAll.java      |    3 +
 ...netConstructedDataIntegerValueCOVIncrement.java |    3 +
 .../BACnetConstructedDataIntegerValueDeadband.java |    3 +
 ...tConstructedDataIntegerValueFaultHighLimit.java |    3 +
 ...etConstructedDataIntegerValueFaultLowLimit.java |    3 +
 ...BACnetConstructedDataIntegerValueHighLimit.java |    3 +
 .../BACnetConstructedDataIntegerValueLowLimit.java |    3 +
 ...netConstructedDataIntegerValueMaxPresValue.java |    3 +
 ...netConstructedDataIntegerValueMinPresValue.java |    3 +
 ...netConstructedDataIntegerValuePresentValue.java |    3 +
 ...nstructedDataIntegerValueRelinquishDefault.java |    3 +
 ...ACnetConstructedDataIntegerValueResolution.java |    3 +
 .../BACnetConstructedDataIntegralConstant.java     |    3 +
 ...BACnetConstructedDataIntegralConstantUnits.java |    3 +
 .../BACnetConstructedDataIntervalOffset.java       |    3 +
 .../readwrite/BACnetConstructedDataIsUTC.java      |    3 +
 .../readwrite/BACnetConstructedDataKeySets.java    |    3 +
 .../BACnetConstructedDataLandingCallControl.java   |    3 +
 .../BACnetConstructedDataLandingCalls.java         |    3 +
 .../BACnetConstructedDataLandingDoorStatus.java    |    3 +
 .../BACnetConstructedDataLargeAnalogValueAll.java  |    3 +
 ...onstructedDataLargeAnalogValueCOVIncrement.java |    3 +
 ...netConstructedDataLargeAnalogValueDeadband.java |    3 +
 ...structedDataLargeAnalogValueFaultHighLimit.java |    3 +
 ...nstructedDataLargeAnalogValueFaultLowLimit.java |    3 +
 ...etConstructedDataLargeAnalogValueHighLimit.java |    3 +
 ...netConstructedDataLargeAnalogValueLowLimit.java |    3 +
 ...onstructedDataLargeAnalogValueMaxPresValue.java |    3 +
 ...onstructedDataLargeAnalogValueMinPresValue.java |    3 +
 ...onstructedDataLargeAnalogValuePresentValue.java |    3 +
 ...uctedDataLargeAnalogValueRelinquishDefault.java |    3 +
 ...tConstructedDataLargeAnalogValueResolution.java |    3 +
 .../BACnetConstructedDataLastAccessEvent.java      |    3 +
 .../BACnetConstructedDataLastAccessPoint.java      |    3 +
 .../BACnetConstructedDataLastCommandTime.java      |    3 +
 .../BACnetConstructedDataLastCredentialAdded.java  |    3 +
 ...CnetConstructedDataLastCredentialAddedTime.java |    3 +
 ...BACnetConstructedDataLastCredentialRemoved.java |    3 +
 ...etConstructedDataLastCredentialRemovedTime.java |    3 +
 .../BACnetConstructedDataLastKeyServer.java        |    3 +
 .../BACnetConstructedDataLastNotifyRecord.java     |    3 +
 .../BACnetConstructedDataLastPriority.java         |    3 +
 .../BACnetConstructedDataLastRestartReason.java    |    3 +
 .../BACnetConstructedDataLastRestoreTime.java      |    3 +
 .../BACnetConstructedDataLastStateChange.java      |    3 +
 .../BACnetConstructedDataLastUseTime.java          |    3 +
 ...BACnetConstructedDataLifeSafetyAlarmValues.java |    3 +
 ...tConstructedDataLifeSafetyPointAlarmValues.java |    3 +
 .../BACnetConstructedDataLifeSafetyPointAll.java   |    3 +
 ...tConstructedDataLifeSafetyPointFaultValues.java |    3 +
 ...ConstructedDataLifeSafetyPointPresentValue.java |    3 +
 ...etConstructedDataLifeSafetyZoneAlarmValues.java |    3 +
 .../BACnetConstructedDataLifeSafetyZoneAll.java    |    3 +
 ...etConstructedDataLifeSafetyZoneFaultValues.java |    3 +
 ...uctedDataLifeSafetyZoneMaintenanceRequired.java |    3 +
 ...tConstructedDataLifeSafetyZonePresentValue.java |    3 +
 .../readwrite/BACnetConstructedDataLiftAll.java    |    3 +
 .../BACnetConstructedDataLiftFaultSignals.java     |    3 +
 .../BACnetConstructedDataLightingCommand.java      |    3 +
 ...structedDataLightingCommandDefaultPriority.java |    3 +
 .../BACnetConstructedDataLightingOutputAll.java    |    3 +
 ...ConstructedDataLightingOutputFeedbackValue.java |    3 +
 ...tConstructedDataLightingOutputPresentValue.java |    3 +
 ...tructedDataLightingOutputRelinquishDefault.java |    3 +
 ...ConstructedDataLightingOutputTrackingValue.java |    3 +
 .../BACnetConstructedDataLimitEnable.java          |    3 +
 ...CnetConstructedDataLimitMonitoringInterval.java |    3 +
 .../readwrite/BACnetConstructedDataLinkSpeed.java  |    3 +
 ...ACnetConstructedDataLinkSpeedAutonegotiate.java |    3 +
 .../readwrite/BACnetConstructedDataLinkSpeeds.java |    3 +
 .../BACnetConstructedDataListOfGroupMembers.java   |    3 +
 ...structedDataListOfObjectPropertyReferences.java |    3 +
 .../BACnetConstructedDataLoadControlAll.java       |    3 +
 ...CnetConstructedDataLoadControlPresentValue.java |    3 +
 .../readwrite/BACnetConstructedDataLocalDate.java  |    3 +
 .../BACnetConstructedDataLocalForwardingOnly.java  |    3 +
 .../readwrite/BACnetConstructedDataLocalTime.java  |    3 +
 .../readwrite/BACnetConstructedDataLocation.java   |    3 +
 .../readwrite/BACnetConstructedDataLockStatus.java |    3 +
 .../readwrite/BACnetConstructedDataLockout.java    |    3 +
 ...BACnetConstructedDataLockoutRelinquishTime.java |    3 +
 .../readwrite/BACnetConstructedDataLogBuffer.java  |    3 +
 ...CnetConstructedDataLogDeviceObjectProperty.java |    3 +
 .../BACnetConstructedDataLogInterval.java          |    3 +
 .../BACnetConstructedDataLoggingObject.java        |    3 +
 .../BACnetConstructedDataLoggingRecord.java        |    3 +
 .../BACnetConstructedDataLoggingType.java          |    3 +
 .../readwrite/BACnetConstructedDataLoopAction.java |    3 +
 .../readwrite/BACnetConstructedDataLoopAll.java    |    3 +
 .../BACnetConstructedDataLoopPresentValue.java     |    3 +
 .../BACnetConstructedDataLowDiffLimit.java         |    3 +
 .../readwrite/BACnetConstructedDataLowLimit.java   |    3 +
 .../readwrite/BACnetConstructedDataLowerDeck.java  |    3 +
 .../readwrite/BACnetConstructedDataMACAddress.java |    3 +
 .../BACnetConstructedDataMachineRoomID.java        |    3 +
 .../BACnetConstructedDataMaintenanceRequired.java  |    3 +
 .../BACnetConstructedDataMakingCarCall.java        |    3 +
 ...onstructedDataManipulatedVariableReference.java |    3 +
 ...etConstructedDataManualSlaveAddressBinding.java |    3 +
 .../BACnetConstructedDataMaskedAlarmValues.java    |    3 +
 ...BACnetConstructedDataMaxAPDULengthAccepted.java |    3 +
 .../BACnetConstructedDataMaxActualValue.java       |    3 +
 .../BACnetConstructedDataMaxFailedAttempts.java    |    3 +
 .../BACnetConstructedDataMaxInfoFrames.java        |    3 +
 .../readwrite/BACnetConstructedDataMaxMaster.java  |    3 +
 .../BACnetConstructedDataMaxPresValue.java         |    3 +
 .../BACnetConstructedDataMaxSegmentsAccepted.java  |    3 +
 .../BACnetConstructedDataMaximumOutput.java        |    3 +
 .../BACnetConstructedDataMaximumValue.java         |    3 +
 ...BACnetConstructedDataMaximumValueTimestamp.java |    3 +
 .../readwrite/BACnetConstructedDataMemberOf.java   |    3 +
 .../BACnetConstructedDataMemberStatusFlags.java    |    3 +
 .../readwrite/BACnetConstructedDataMembers.java    |    3 +
 .../BACnetConstructedDataMinActualValue.java       |    3 +
 .../BACnetConstructedDataMinPresValue.java         |    3 +
 .../BACnetConstructedDataMinimumOffTime.java       |    3 +
 .../BACnetConstructedDataMinimumOnTime.java        |    3 +
 .../BACnetConstructedDataMinimumOutput.java        |    3 +
 .../BACnetConstructedDataMinimumValue.java         |    3 +
 ...BACnetConstructedDataMinimumValueTimestamp.java |    3 +
 .../readwrite/BACnetConstructedDataMode.java       |    3 +
 .../readwrite/BACnetConstructedDataModelName.java  |    3 +
 .../BACnetConstructedDataModificationDate.java     |    3 +
 ...tConstructedDataMultiStateInputAlarmValues.java |    3 +
 .../BACnetConstructedDataMultiStateInputAll.java   |    3 +
 ...tConstructedDataMultiStateInputFaultValues.java |    3 +
 ...nstructedDataMultiStateInputInterfaceValue.java |    3 +
 .../BACnetConstructedDataMultiStateOutputAll.java  |    3 +
 ...nstructedDataMultiStateOutputFeedbackValue.java |    3 +
 ...structedDataMultiStateOutputInterfaceValue.java |    3 +
 ...uctedDataMultiStateOutputRelinquishDefault.java |    3 +
 ...tConstructedDataMultiStateValueAlarmValues.java |    3 +
 .../BACnetConstructedDataMultiStateValueAll.java   |    3 +
 ...tConstructedDataMultiStateValueFaultValues.java |    3 +
 ...ructedDataMultiStateValueRelinquishDefault.java |    3 +
 .../BACnetConstructedDataMusterPoint.java          |    3 +
 .../BACnetConstructedDataNegativeAccessRules.java  |    3 +
 ...nstructedDataNetworkAccessSecurityPolicies.java |    3 +
 .../BACnetConstructedDataNetworkInterfaceName.java |    3 +
 .../BACnetConstructedDataNetworkNumber.java        |    3 +
 .../BACnetConstructedDataNetworkNumberQuality.java |    3 +
 .../BACnetConstructedDataNetworkPortAll.java       |    3 +
 ...netConstructedDataNetworkPortMaxInfoFrames.java |    3 +
 .../BACnetConstructedDataNetworkPortMaxMaster.java |    3 +
 .../BACnetConstructedDataNetworkSecurityAll.java   |    3 +
 .../BACnetConstructedDataNetworkType.java          |    3 +
 .../BACnetConstructedDataNextStoppingFloor.java    |    3 +
 .../BACnetConstructedDataNodeSubtype.java          |    3 +
 .../readwrite/BACnetConstructedDataNodeType.java   |    3 +
 .../BACnetConstructedDataNotificationClass.java    |    3 +
 .../BACnetConstructedDataNotificationClassAll.java |    3 +
 ...netConstructedDataNotificationForwarderAll.java |    3 +
 ...BACnetConstructedDataNotificationThreshold.java |    3 +
 .../readwrite/BACnetConstructedDataNotifyType.java |    3 +
 .../BACnetConstructedDataNumberOfAPDURetries.java  |    3 +
 ...structedDataNumberOfAuthenticationPolicies.java |    3 +
 .../BACnetConstructedDataNumberOfStates.java       |    3 +
 .../BACnetConstructedDataObjectIdentifier.java     |    3 +
 .../readwrite/BACnetConstructedDataObjectList.java |    3 +
 .../readwrite/BACnetConstructedDataObjectName.java |    3 +
 ...CnetConstructedDataObjectPropertyReference.java |    3 +
 .../readwrite/BACnetConstructedDataObjectType.java |    3 +
 .../BACnetConstructedDataOccupancyCount.java       |    3 +
 .../BACnetConstructedDataOccupancyCountAdjust.java |    3 +
 .../BACnetConstructedDataOccupancyCountEnable.java |    3 +
 .../BACnetConstructedDataOccupancyLowerLimit.java  |    3 +
 ...ConstructedDataOccupancyLowerLimitEnforced.java |    3 +
 .../BACnetConstructedDataOccupancyState.java       |    3 +
 .../BACnetConstructedDataOccupancyUpperLimit.java  |    3 +
 ...ConstructedDataOccupancyUpperLimitEnforced.java |    3 +
 ...onstructedDataOctetStringValuePresentValue.java |    3 +
 ...uctedDataOctetStringValueRelinquishDefault.java |    3 +
 .../BACnetConstructedDataOctetstringValueAll.java  |    3 +
 .../BACnetConstructedDataOperationDirection.java   |    3 +
 .../BACnetConstructedDataOperationExpected.java    |    3 +
 .../readwrite/BACnetConstructedDataOptional.java   |    3 +
 .../BACnetConstructedDataOutOfService.java         |    3 +
 .../BACnetConstructedDataOutputUnits.java          |    3 +
 .../BACnetConstructedDataPacketReorderTime.java    |    3 +
 .../BACnetConstructedDataPassbackMode.java         |    3 +
 .../BACnetConstructedDataPassbackTimeout.java      |    3 +
 .../BACnetConstructedDataPassengerAlarm.java       |    3 +
 .../readwrite/BACnetConstructedDataPolarity.java   |    3 +
 .../readwrite/BACnetConstructedDataPortFilter.java |    3 +
 .../BACnetConstructedDataPositiveAccessRules.java  |    3 +
 ...CnetConstructedDataPositiveIntegerValueAll.java |    3 +
 ...ructedDataPositiveIntegerValueCOVIncrement.java |    3 +
 ...onstructedDataPositiveIntegerValueDeadband.java |    3 +
 ...ctedDataPositiveIntegerValueFaultHighLimit.java |    3 +
 ...uctedDataPositiveIntegerValueFaultLowLimit.java |    3 +
 ...nstructedDataPositiveIntegerValueHighLimit.java |    3 +
 ...onstructedDataPositiveIntegerValueLowLimit.java |    3 +
 ...ructedDataPositiveIntegerValueMaxPresValue.java |    3 +
 ...ructedDataPositiveIntegerValueMinPresValue.java |    3 +
 ...dDataPositiveIntegerValueRelinquishDefault.java |    3 +
 ...structedDataPositiveIntegerValueResolution.java |    3 +
 .../readwrite/BACnetConstructedDataPower.java      |    3 +
 .../readwrite/BACnetConstructedDataPowerMode.java  |    3 +
 .../readwrite/BACnetConstructedDataPrescale.java   |    3 +
 .../BACnetConstructedDataPresentValue.java         |    3 +
 .../readwrite/BACnetConstructedDataPriority.java   |    3 +
 .../BACnetConstructedDataPriorityArray.java        |    3 +
 .../BACnetConstructedDataPriorityForWriting.java   |    3 +
 .../BACnetConstructedDataProcessIdentifier.java    |    3 +
 ...CnetConstructedDataProcessIdentifierFilter.java |    3 +
 .../BACnetConstructedDataProfileLocation.java      |    3 +
 .../BACnetConstructedDataProfileName.java          |    3 +
 .../readwrite/BACnetConstructedDataProgramAll.java |    3 +
 .../BACnetConstructedDataProgramChange.java        |    3 +
 .../BACnetConstructedDataProgramLocation.java      |    3 +
 .../BACnetConstructedDataProgramState.java         |    3 +
 .../BACnetConstructedDataPropertyList.java         |    3 +
 .../BACnetConstructedDataProportionalConstant.java |    3 +
 ...etConstructedDataProportionalConstantUnits.java |    3 +
 .../BACnetConstructedDataProtocolLevel.java        |    3 +
 ...onstructedDataProtocolObjectTypesSupported.java |    3 +
 .../BACnetConstructedDataProtocolRevision.java     |    3 +
 ...etConstructedDataProtocolServicesSupported.java |    3 +
 .../BACnetConstructedDataProtocolVersion.java      |    3 +
 ...etConstructedDataPulseConverterAdjustValue.java |    3 +
 .../BACnetConstructedDataPulseConverterAll.java    |    3 +
 ...tConstructedDataPulseConverterPresentValue.java |    3 +
 .../readwrite/BACnetConstructedDataPulseRate.java  |    3 +
 .../readwrite/BACnetConstructedDataReadOnly.java   |    3 +
 .../BACnetConstructedDataReasonForDisable.java     |    3 +
 .../BACnetConstructedDataReasonForHalt.java        |    3 +
 .../BACnetConstructedDataRecipientList.java        |    3 +
 .../BACnetConstructedDataRecordCount.java          |    3 +
 ...netConstructedDataRecordsSinceNotification.java |    3 +
 .../BACnetConstructedDataReferencePort.java        |    3 +
 .../BACnetConstructedDataRegisteredCarCall.java    |    3 +
 .../BACnetConstructedDataReliability.java          |    3 +
 ...onstructedDataReliabilityEvaluationInhibit.java |    3 +
 .../BACnetConstructedDataRelinquishDefault.java    |    3 +
 .../readwrite/BACnetConstructedDataRepresents.java |    3 +
 .../BACnetConstructedDataRequestedShedLevel.java   |    3 +
 ...CnetConstructedDataRequestedUpdateInterval.java |    3 +
 .../readwrite/BACnetConstructedDataRequired.java   |    3 +
 .../readwrite/BACnetConstructedDataResolution.java |    3 +
 ...nstructedDataRestartNotificationRecipients.java |    3 +
 ...BACnetConstructedDataRestoreCompletionTime.java |    3 +
 ...ACnetConstructedDataRestorePreparationTime.java |    3 +
 .../BACnetConstructedDataRoutingTable.java         |    3 +
 .../readwrite/BACnetConstructedDataScale.java      |    3 +
 .../BACnetConstructedDataScaleFactor.java          |    3 +
 .../BACnetConstructedDataScheduleAll.java          |    3 +
 .../BACnetConstructedDataScheduleDefault.java      |    3 +
 .../BACnetConstructedDataSchedulePresentValue.java |    3 +
 .../BACnetConstructedDataSecuredStatus.java        |    3 +
 .../BACnetConstructedDataSecurityPDUTimeout.java   |    3 +
 .../BACnetConstructedDataSecurityTimeWindow.java   |    3 +
 ...BACnetConstructedDataSegmentationSupported.java |    3 +
 .../BACnetConstructedDataSerialNumber.java         |    3 +
 .../readwrite/BACnetConstructedDataSetpoint.java   |    3 +
 .../BACnetConstructedDataSetpointReference.java    |    3 +
 .../readwrite/BACnetConstructedDataSetting.java    |    3 +
 .../BACnetConstructedDataShedDuration.java         |    3 +
 ...BACnetConstructedDataShedLevelDescriptions.java |    3 +
 .../readwrite/BACnetConstructedDataShedLevels.java |    3 +
 .../readwrite/BACnetConstructedDataSilenced.java   |    3 +
 .../BACnetConstructedDataSlaveAddressBinding.java  |    3 +
 .../BACnetConstructedDataSlaveProxyEnable.java     |    3 +
 .../readwrite/BACnetConstructedDataStartTime.java  |    3 +
 .../BACnetConstructedDataStateChangeValues.java    |    3 +
 .../BACnetConstructedDataStateDescription.java     |    3 +
 .../readwrite/BACnetConstructedDataStateText.java  |    3 +
 .../BACnetConstructedDataStatusFlags.java          |    3 +
 .../readwrite/BACnetConstructedDataStopTime.java   |    3 +
 .../BACnetConstructedDataStopWhenFull.java         |    3 +
 .../BACnetConstructedDataStrikeCount.java          |    3 +
 .../BACnetConstructedDataStructuredObjectList.java |    3 +
 .../BACnetConstructedDataStructuredViewAll.java    |    3 +
 ...ACnetConstructedDataSubordinateAnnotations.java |    3 +
 .../BACnetConstructedDataSubordinateList.java      |    3 +
 .../BACnetConstructedDataSubordinateNodeTypes.java |    3 +
 ...netConstructedDataSubordinateRelationships.java |    3 +
 .../BACnetConstructedDataSubordinateTags.java      |    3 +
 .../BACnetConstructedDataSubscribedRecipients.java |    3 +
 ...ACnetConstructedDataSupportedFormatClasses.java |    3 +
 .../BACnetConstructedDataSupportedFormats.java     |    3 +
 ...ConstructedDataSupportedSecurityAlgorithms.java |    3 +
 .../BACnetConstructedDataSystemStatus.java         |    3 +
 .../readwrite/BACnetConstructedDataTags.java       |    3 +
 .../BACnetConstructedDataThreatAuthority.java      |    3 +
 .../BACnetConstructedDataThreatLevel.java          |    3 +
 .../readwrite/BACnetConstructedDataTimeDelay.java  |    3 +
 .../BACnetConstructedDataTimeDelayNormal.java      |    3 +
 ...BACnetConstructedDataTimeOfActiveTimeReset.java |    3 +
 .../BACnetConstructedDataTimeOfDeviceRestart.java  |    3 +
 ...BACnetConstructedDataTimeOfStateCountReset.java |    3 +
 ...ACnetConstructedDataTimeOfStrikeCountReset.java |    3 +
 ...onstructedDataTimePatternValuePresentValue.java |    3 +
 ...uctedDataTimePatternValueRelinquishDefault.java |    3 +
 ...ConstructedDataTimeSynchronizationInterval.java |    3 +
 ...nstructedDataTimeSynchronizationRecipients.java |    3 +
 .../BACnetConstructedDataTimeValueAll.java         |    3 +
 ...BACnetConstructedDataTimeValuePresentValue.java |    3 +
 ...tConstructedDataTimeValueRelinquishDefault.java |    3 +
 .../BACnetConstructedDataTimepatternValueAll.java  |    3 +
 .../BACnetConstructedDataTimerAlarmValues.java     |    3 +
 .../readwrite/BACnetConstructedDataTimerAll.java   |    3 +
 .../BACnetConstructedDataTimerMaxPresValue.java    |    3 +
 .../BACnetConstructedDataTimerMinPresValue.java    |    3 +
 .../BACnetConstructedDataTimerResolution.java      |    3 +
 .../BACnetConstructedDataTimerRunning.java         |    3 +
 .../readwrite/BACnetConstructedDataTimerState.java |    3 +
 .../BACnetConstructedDataTotalRecordCount.java     |    3 +
 .../readwrite/BACnetConstructedDataTraceFlag.java  |    3 +
 .../BACnetConstructedDataTrackingValue.java        |    3 +
 ...onstructedDataTransactionNotificationClass.java |    3 +
 .../readwrite/BACnetConstructedDataTransition.java |    3 +
 .../BACnetConstructedDataTrendLogAll.java          |    3 +
 .../BACnetConstructedDataTrendLogLogBuffer.java    |    3 +
 ...tructedDataTrendLogLogDeviceObjectProperty.java |    3 +
 .../BACnetConstructedDataTrendLogMultipleAll.java  |    3 +
 ...etConstructedDataTrendLogMultipleLogBuffer.java |    3 +
 ...ataTrendLogMultipleLogDeviceObjectProperty.java |    3 +
 .../readwrite/BACnetConstructedDataTrigger.java    |    3 +
 .../readwrite/BACnetConstructedDataUTCOffset.java  |    3 +
 ...ructedDataUTCTimeSynchronizationRecipients.java |    3 +
 .../readwrite/BACnetConstructedDataUnits.java      |    3 +
 .../BACnetConstructedDataUnspecified.java          |    3 +
 .../BACnetConstructedDataUpdateInterval.java       |    3 +
 .../BACnetConstructedDataUpdateKeySetTimeout.java  |    3 +
 .../readwrite/BACnetConstructedDataUpdateTime.java |    3 +
 ...ACnetConstructedDataUserExternalIdentifier.java |    3 +
 ...netConstructedDataUserInformationReference.java |    3 +
 .../readwrite/BACnetConstructedDataUserName.java   |    3 +
 .../readwrite/BACnetConstructedDataUserType.java   |    3 +
 .../BACnetConstructedDataUsesRemaining.java        |    3 +
 .../BACnetConstructedDataVTClassesSupported.java   |    3 +
 .../BACnetConstructedDataValidSamples.java         |    3 +
 .../BACnetConstructedDataValueBeforeChange.java    |    3 +
 .../BACnetConstructedDataValueChangeTime.java      |    3 +
 .../readwrite/BACnetConstructedDataValueSet.java   |    3 +
 .../BACnetConstructedDataValueSource.java          |    3 +
 .../BACnetConstructedDataValueSourceArray.java     |    3 +
 .../BACnetConstructedDataVarianceValue.java        |    3 +
 .../BACnetConstructedDataVendorIdentifier.java     |    3 +
 .../readwrite/BACnetConstructedDataVendorName.java |    3 +
 .../BACnetConstructedDataVerificationTime.java     |    3 +
 ...ACnetConstructedDataVirtualMACAddressTable.java |    3 +
 .../BACnetConstructedDataWeeklySchedule.java       |    3 +
 .../BACnetConstructedDataWindowInterval.java       |    3 +
 .../BACnetConstructedDataWindowSamples.java        |    3 +
 .../BACnetConstructedDataWriteStatus.java          |    3 +
 .../readwrite/BACnetConstructedDataZoneFrom.java   |    3 +
 .../BACnetConstructedDataZoneMembers.java          |    3 +
 .../readwrite/BACnetConstructedDataZoneTo.java     |    3 +
 .../java/bacnetip/readwrite/BACnetContextTag.java  |    3 +
 .../readwrite/BACnetContextTagBitString.java       |    3 +
 .../readwrite/BACnetContextTagBoolean.java         |    3 +
 .../readwrite/BACnetContextTagCharacterString.java |    3 +
 .../bacnetip/readwrite/BACnetContextTagDate.java   |    3 +
 .../bacnetip/readwrite/BACnetContextTagDouble.java |    3 +
 .../readwrite/BACnetContextTagEnumerated.java      |    3 +
 .../bacnetip/readwrite/BACnetContextTagNull.java   |    3 +
 .../BACnetContextTagObjectIdentifier.java          |    3 +
 .../readwrite/BACnetContextTagOctetString.java     |    3 +
 .../bacnetip/readwrite/BACnetContextTagReal.java   |    3 +
 .../readwrite/BACnetContextTagSignedInteger.java   |    3 +
 .../bacnetip/readwrite/BACnetContextTagTime.java   |    3 +
 .../readwrite/BACnetContextTagUnknown.java         |    3 +
 .../readwrite/BACnetContextTagUnsignedInteger.java |    3 +
 .../BACnetCredentialAuthenticationFactor.java      |    3 +
 .../bacnetip/readwrite/BACnetDailySchedule.java    |    3 +
 .../java/bacnetip/readwrite/BACnetDateRange.java   |    3 +
 .../readwrite/BACnetDateRangeEnclosed.java         |    3 +
 .../java/bacnetip/readwrite/BACnetDateTime.java    |    3 +
 .../bacnetip/readwrite/BACnetDateTimeEnclosed.java |    3 +
 .../bacnetip/readwrite/BACnetDaysOfWeekTagged.java |    3 +
 .../java/bacnetip/readwrite/BACnetDestination.java |    3 +
 .../BACnetDeviceObjectPropertyReference.java       |    3 +
 ...ACnetDeviceObjectPropertyReferenceEnclosed.java |    3 +
 .../readwrite/BACnetDeviceObjectReference.java     |    3 +
 .../BACnetDeviceObjectReferenceEnclosed.java       |    3 +
 .../readwrite/BACnetDeviceStatusTagged.java        |    3 +
 .../readwrite/BACnetDoorAlarmStateTagged.java      |    3 +
 .../readwrite/BACnetDoorSecuredStatusTagged.java   |    3 +
 .../bacnetip/readwrite/BACnetDoorStatusTagged.java |    3 +
 .../bacnetip/readwrite/BACnetDoorValueTagged.java  |    3 +
 .../readwrite/BACnetEngineeringUnitsTagged.java    |    3 +
 .../plc4x/java/bacnetip/readwrite/BACnetError.java |    3 +
 .../bacnetip/readwrite/BACnetErrorGeneral.java     |    3 +
 .../readwrite/BACnetEscalatorFaultTagged.java      |    3 +
 .../readwrite/BACnetEscalatorModeTagged.java       |    3 +
 .../BACnetEscalatorOperationDirectionTagged.java   |    3 +
 .../bacnetip/readwrite/BACnetEventLogRecord.java   |    3 +
 .../readwrite/BACnetEventLogRecordLogDatum.java    |    3 +
 .../BACnetEventLogRecordLogDatumLogStatus.java     |    3 +
 .../BACnetEventLogRecordLogDatumNotification.java  |    3 +
 .../BACnetEventLogRecordLogDatumTimeChange.java    |    3 +
 .../BACnetEventNotificationSubscription.java       |    3 +
 .../bacnetip/readwrite/BACnetEventParameter.java   |    3 +
 .../readwrite/BACnetEventParameterAccessEvent.java |    3 +
 ...ventParameterAccessEventListOfAccessEvents.java |    3 +
 .../readwrite/BACnetEventParameterBufferReady.java |    3 +
 .../BACnetEventParameterChangeOfBitstring.java     |    3 +
 ...eterChangeOfBitstringListOfBitstringValues.java |    3 +
 ...ACnetEventParameterChangeOfCharacterString.java |    3 +
 ...erChangeOfCharacterStringListOfAlarmValues.java |    3 +
 .../BACnetEventParameterChangeOfDiscreteValue.java |    3 +
 .../BACnetEventParameterChangeOfLifeSavety.java    |    3 +
 ...rameterChangeOfLifeSavetyListOfAlarmValues.java |    3 +
 ...ngeOfLifeSavetyListOfLifeSavetyAlarmValues.java |    3 +
 .../BACnetEventParameterChangeOfState.java         |    3 +
 ...netEventParameterChangeOfStateListOfValues.java |    3 +
 .../BACnetEventParameterChangeOfStatusFlags.java   |    3 +
 .../BACnetEventParameterChangeOfTimer.java         |    3 +
 ...ACnetEventParameterChangeOfTimerAlarmValue.java |    3 +
 .../BACnetEventParameterChangeOfValue.java         |    3 +
 ...CnetEventParameterChangeOfValueCivCriteria.java |    3 +
 ...ntParameterChangeOfValueCivCriteriaBitmask.java |    3 +
 ...alueCivCriteriaReferencedPropertyIncrement.java |    3 +
 .../BACnetEventParameterCommandFailure.java        |    3 +
 .../BACnetEventParameterDoubleOutOfRange.java      |    3 +
 .../readwrite/BACnetEventParameterExtended.java    |    3 +
 .../BACnetEventParameterExtendedParameters.java    |    3 +
 .../BACnetEventParameterFloatingLimit.java         |    3 +
 .../readwrite/BACnetEventParameterNone.java        |    3 +
 .../readwrite/BACnetEventParameterOutOfRange.java  |    3 +
 .../BACnetEventParameterSignedOutOfRange.java      |    3 +
 .../BACnetEventParameterUnsignedOutOfRange.java    |    3 +
 .../BACnetEventParameterUnsignedRange.java         |    3 +
 .../bacnetip/readwrite/BACnetEventPriorities.java  |    3 +
 .../bacnetip/readwrite/BACnetEventStateTagged.java |    3 +
 .../readwrite/BACnetEventSummariesList.java        |    3 +
 .../bacnetip/readwrite/BACnetEventSummary.java     |    3 +
 .../bacnetip/readwrite/BACnetEventTimestamps.java  |    3 +
 .../readwrite/BACnetEventTimestampsEnclosed.java   |    3 +
 .../readwrite/BACnetEventTransitionBitsTagged.java |    3 +
 .../bacnetip/readwrite/BACnetEventTypeTagged.java  |    3 +
 .../bacnetip/readwrite/BACnetFaultParameter.java   |    3 +
 .../BACnetFaultParameterFaultCharacterString.java  |    3 +
 ...meterFaultCharacterStringListOfFaultValues.java |    3 +
 .../BACnetFaultParameterFaultExtended.java         |    3 +
 ...ACnetFaultParameterFaultExtendedParameters.java |    3 +
 ...FaultParameterFaultExtendedParametersEntry.java |    3 +
 ...meterFaultExtendedParametersEntryBitString.java |    3 +
 ...rameterFaultExtendedParametersEntryBoolean.java |    3 +
 ...aultExtendedParametersEntryCharacterString.java |    3 +
 ...tParameterFaultExtendedParametersEntryDate.java |    3 +
 ...arameterFaultExtendedParametersEntryDouble.java |    3 +
 ...eterFaultExtendedParametersEntryEnumerated.java |    3 +
 ...rameterFaultExtendedParametersEntryInteger.java |    3 +
 ...tParameterFaultExtendedParametersEntryNull.java |    3 +
 ...ultExtendedParametersEntryObjectidentifier.java |    3 +
 ...terFaultExtendedParametersEntryOctetString.java |    3 +
 ...tParameterFaultExtendedParametersEntryReal.java |    3 +
 ...meterFaultExtendedParametersEntryReference.java |    3 +
 ...tParameterFaultExtendedParametersEntryTime.java |    3 +
 ...ameterFaultExtendedParametersEntryUnsigned.java |    3 +
 .../BACnetFaultParameterFaultLifeSafety.java       |    3 +
 ...tParameterFaultLifeSafetyListOfFaultValues.java |    3 +
 .../readwrite/BACnetFaultParameterFaultListed.java |    3 +
 .../BACnetFaultParameterFaultOutOfRange.java       |    3 +
 ...aultParameterFaultOutOfRangeMaxNormalValue.java |    3 +
 ...rameterFaultOutOfRangeMaxNormalValueDouble.java |    3 +
 ...ameterFaultOutOfRangeMaxNormalValueInteger.java |    3 +
 ...ParameterFaultOutOfRangeMaxNormalValueReal.java |    3 +
 ...meterFaultOutOfRangeMaxNormalValueUnsigned.java |    3 +
 ...aultParameterFaultOutOfRangeMinNormalValue.java |    3 +
 ...rameterFaultOutOfRangeMinNormalValueDouble.java |    3 +
 ...ameterFaultOutOfRangeMinNormalValueInteger.java |    3 +
 ...ParameterFaultOutOfRangeMinNormalValueReal.java |    3 +
 ...meterFaultOutOfRangeMinNormalValueUnsigned.java |    3 +
 .../readwrite/BACnetFaultParameterFaultState.java  |    3 +
 ...tFaultParameterFaultStateListOfFaultValues.java |    3 +
 .../BACnetFaultParameterFaultStatusFlags.java      |    3 +
 .../readwrite/BACnetFaultParameterNone.java        |    3 +
 .../bacnetip/readwrite/BACnetFaultTypeTagged.java  |    3 +
 .../readwrite/BACnetFileAccessMethodTagged.java    |    3 +
 .../readwrite/BACnetGroupChannelValue.java         |    3 +
 .../readwrite/BACnetGroupChannelValueList.java     |    3 +
 .../java/bacnetip/readwrite/BACnetHostAddress.java |    3 +
 .../readwrite/BACnetHostAddressEnclosed.java       |    3 +
 .../readwrite/BACnetHostAddressIpAddress.java      |    3 +
 .../bacnetip/readwrite/BACnetHostAddressName.java  |    3 +
 .../bacnetip/readwrite/BACnetHostAddressNull.java  |    3 +
 .../java/bacnetip/readwrite/BACnetHostNPort.java   |    3 +
 .../readwrite/BACnetHostNPortEnclosed.java         |    3 +
 .../bacnetip/readwrite/BACnetIPModeTagged.java     |    3 +
 .../bacnetip/readwrite/BACnetKeyIdentifier.java    |    3 +
 .../readwrite/BACnetLandingCallStatus.java         |    3 +
 .../readwrite/BACnetLandingCallStatusCommand.java  |    3 +
 .../BACnetLandingCallStatusCommandDestination.java |    3 +
 .../BACnetLandingCallStatusCommandDirection.java   |    3 +
 .../readwrite/BACnetLandingDoorStatus.java         |    3 +
 .../BACnetLandingDoorStatusLandingDoorsList.java   |    3 +
 ...CnetLandingDoorStatusLandingDoorsListEntry.java |    3 +
 .../readwrite/BACnetLifeSafetyModeTagged.java      |    3 +
 .../readwrite/BACnetLifeSafetyOperationTagged.java |    3 +
 .../readwrite/BACnetLifeSafetyStateTagged.java     |    3 +
 .../bacnetip/readwrite/BACnetLiftCarCallList.java  |    3 +
 .../readwrite/BACnetLiftCarCallListFloorList.java  |    3 +
 .../readwrite/BACnetLiftCarDirectionTagged.java    |    3 +
 .../readwrite/BACnetLiftCarDoorCommandTagged.java  |    3 +
 .../readwrite/BACnetLiftCarDriveStatusTagged.java  |    3 +
 .../readwrite/BACnetLiftCarModeTagged.java         |    3 +
 .../bacnetip/readwrite/BACnetLiftFaultTagged.java  |    3 +
 .../readwrite/BACnetLiftGroupModeTagged.java       |    3 +
 .../bacnetip/readwrite/BACnetLightingCommand.java  |    3 +
 .../readwrite/BACnetLightingCommandEnclosed.java   |    3 +
 .../readwrite/BACnetLightingInProgressTagged.java  |    3 +
 .../readwrite/BACnetLightingOperationTagged.java   |    3 +
 .../readwrite/BACnetLightingTransitionTagged.java  |    3 +
 .../readwrite/BACnetLimitEnableTagged.java         |    3 +
 .../bacnetip/readwrite/BACnetLockStatusTagged.java |    3 +
 .../java/bacnetip/readwrite/BACnetLogData.java     |    3 +
 .../bacnetip/readwrite/BACnetLogDataLogData.java   |    3 +
 .../readwrite/BACnetLogDataLogDataEntry.java       |    3 +
 .../BACnetLogDataLogDataEntryAnyValue.java         |    3 +
 .../BACnetLogDataLogDataEntryBitStringValue.java   |    3 +
 .../BACnetLogDataLogDataEntryBooleanValue.java     |    3 +
 .../BACnetLogDataLogDataEntryEnumeratedValue.java  |    3 +
 .../BACnetLogDataLogDataEntryFailure.java          |    3 +
 .../BACnetLogDataLogDataEntryIntegerValue.java     |    3 +
 .../BACnetLogDataLogDataEntryNullValue.java        |    3 +
 .../BACnetLogDataLogDataEntryRealValue.java        |    3 +
 .../BACnetLogDataLogDataEntryUnsignedValue.java    |    3 +
 .../readwrite/BACnetLogDataLogDataTimeChange.java  |    3 +
 .../bacnetip/readwrite/BACnetLogDataLogStatus.java |    3 +
 .../readwrite/BACnetLogMultipleRecord.java         |    3 +
 .../java/bacnetip/readwrite/BACnetLogRecord.java   |    3 +
 .../readwrite/BACnetLogRecordLogDatum.java         |    3 +
 .../readwrite/BACnetLogRecordLogDatumAnyValue.java |    3 +
 .../BACnetLogRecordLogDatumBitStringValue.java     |    3 +
 .../BACnetLogRecordLogDatumBooleanValue.java       |    3 +
 .../BACnetLogRecordLogDatumEnumeratedValue.java    |    3 +
 .../readwrite/BACnetLogRecordLogDatumFailure.java  |    3 +
 .../BACnetLogRecordLogDatumIntegerValue.java       |    3 +
 .../BACnetLogRecordLogDatumLogStatus.java          |    3 +
 .../BACnetLogRecordLogDatumNullValue.java          |    3 +
 .../BACnetLogRecordLogDatumRealValue.java          |    3 +
 .../BACnetLogRecordLogDatumTimeChange.java         |    3 +
 .../BACnetLogRecordLogDatumUnsignedValue.java      |    3 +
 .../bacnetip/readwrite/BACnetLogStatusTagged.java  |    3 +
 .../readwrite/BACnetLoggingTypeTagged.java         |    3 +
 .../readwrite/BACnetMaintenanceTagged.java         |    3 +
 .../java/bacnetip/readwrite/BACnetNameValue.java   |    3 +
 .../readwrite/BACnetNameValueCollection.java       |    3 +
 .../BACnetNetworkNumberQualityTagged.java          |    3 +
 .../readwrite/BACnetNetworkPortCommandTagged.java  |    3 +
 .../readwrite/BACnetNetworkSecurityPolicy.java     |    3 +
 .../readwrite/BACnetNetworkTypeTagged.java         |    3 +
 .../bacnetip/readwrite/BACnetNodeTypeTagged.java   |    3 +
 .../readwrite/BACnetNotificationParameters.java    |    3 +
 .../BACnetNotificationParametersAccessEvent.java   |    3 +
 .../BACnetNotificationParametersBufferReady.java   |    3 +
 ...netNotificationParametersChangeOfBitString.java |    3 +
 ...ificationParametersChangeOfCharacterString.java |    3 +
 ...otificationParametersChangeOfDiscreteValue.java |    3 +
 ...ionParametersChangeOfDiscreteValueNewValue.java |    3 +
 ...metersChangeOfDiscreteValueNewValueBoolean.java |    3 +
 ...angeOfDiscreteValueNewValueCharacterString.java |    3 +
 ...etersChangeOfDiscreteValueNewValueDatetime.java |    3 +
 ...ersChangeOfDiscreteValueNewValueEnumerated.java |    3 +
 ...metersChangeOfDiscreteValueNewValueInteger.java |    3 +
 ...ngeOfDiscreteValueNewValueObjectidentifier.java |    3 +
 ...tersChangeOfDiscreteValueNewValueOctetDate.java |    3 +
 ...rsChangeOfDiscreteValueNewValueOctetString.java |    3 +
 ...tersChangeOfDiscreteValueNewValueOctetTime.java |    3 +
 ...etersChangeOfDiscreteValueNewValueUnsigned.java |    3 +
 ...etNotificationParametersChangeOfLifeSafety.java |    3 +
 ...tNotificationParametersChangeOfReliability.java |    3 +
 .../BACnetNotificationParametersChangeOfState.java |    3 +
 ...tNotificationParametersChangeOfStatusFlags.java |    3 +
 .../BACnetNotificationParametersChangeOfTimer.java |    3 +
 .../BACnetNotificationParametersChangeOfValue.java |    3 +
 ...otificationParametersChangeOfValueNewValue.java |    3 +
 ...ParametersChangeOfValueNewValueChangedBits.java |    3 +
 ...arametersChangeOfValueNewValueChangedValue.java |    3 +
 ...BACnetNotificationParametersCommandFailure.java |    3 +
 ...CnetNotificationParametersComplexEventType.java |    3 +
 ...CnetNotificationParametersDoubleOutOfRange.java |    3 +
 .../BACnetNotificationParametersExtended.java      |    3 +
 ...etNotificationParametersExtendedParameters.java |    3 +
 .../BACnetNotificationParametersFloatingLimit.java |    3 +
 .../BACnetNotificationParametersOutOfRange.java    |    3 +
 ...CnetNotificationParametersSignedOutOfRange.java |    3 +
 ...etNotificationParametersUnsignedOutOfRange.java |    3 +
 .../BACnetNotificationParametersUnsignedRange.java |    3 +
 .../bacnetip/readwrite/BACnetNotifyTypeTagged.java |    3 +
 .../readwrite/BACnetObjectPropertyReference.java   |    3 +
 .../BACnetObjectPropertyReferenceEnclosed.java     |    3 +
 .../bacnetip/readwrite/BACnetObjectTypeTagged.java |    3 +
 .../BACnetObjectTypesSupportedTagged.java          |    3 +
 .../java/bacnetip/readwrite/BACnetOpeningTag.java  |    3 +
 .../bacnetip/readwrite/BACnetOptionalBinaryPV.java |    3 +
 .../readwrite/BACnetOptionalBinaryPVNull.java      |    3 +
 .../readwrite/BACnetOptionalBinaryPVValue.java     |    3 +
 .../readwrite/BACnetOptionalCharacterString.java   |    3 +
 .../BACnetOptionalCharacterStringNull.java         |    3 +
 .../BACnetOptionalCharacterStringValue.java        |    3 +
 .../bacnetip/readwrite/BACnetOptionalREAL.java     |    3 +
 .../bacnetip/readwrite/BACnetOptionalREALNull.java |    3 +
 .../readwrite/BACnetOptionalREALValue.java         |    3 +
 .../bacnetip/readwrite/BACnetOptionalUnsigned.java |    3 +
 .../readwrite/BACnetOptionalUnsignedNull.java      |    3 +
 .../readwrite/BACnetOptionalUnsignedValue.java     |    3 +
 .../bacnetip/readwrite/BACnetPolarityTagged.java   |    3 +
 .../bacnetip/readwrite/BACnetPortPermission.java   |    3 +
 .../java/bacnetip/readwrite/BACnetPrescale.java    |    3 +
 .../bacnetip/readwrite/BACnetPriorityArray.java    |    3 +
 .../bacnetip/readwrite/BACnetPriorityValue.java    |    3 +
 .../readwrite/BACnetPriorityValueBitString.java    |    3 +
 .../readwrite/BACnetPriorityValueBoolean.java      |    3 +
 .../BACnetPriorityValueCharacterString.java        |    3 +
 .../BACnetPriorityValueConstructedValue.java       |    3 +
 .../readwrite/BACnetPriorityValueDate.java         |    3 +
 .../readwrite/BACnetPriorityValueDateTime.java     |    3 +
 .../readwrite/BACnetPriorityValueDouble.java       |    3 +
 .../readwrite/BACnetPriorityValueEnumerated.java   |    3 +
 .../readwrite/BACnetPriorityValueInteger.java      |    3 +
 .../readwrite/BACnetPriorityValueNull.java         |    3 +
 .../BACnetPriorityValueObjectidentifier.java       |    3 +
 .../readwrite/BACnetPriorityValueOctetString.java  |    3 +
 .../readwrite/BACnetPriorityValueReal.java         |    3 +
 .../readwrite/BACnetPriorityValueTime.java         |    3 +
 .../readwrite/BACnetPriorityValueUnsigned.java     |    3 +
 .../readwrite/BACnetProcessIdSelection.java        |    3 +
 .../readwrite/BACnetProcessIdSelectionNull.java    |    3 +
 .../readwrite/BACnetProcessIdSelectionValue.java   |    3 +
 .../readwrite/BACnetProgramErrorTagged.java        |    3 +
 .../readwrite/BACnetProgramRequestTagged.java      |    3 +
 .../readwrite/BACnetProgramStateTagged.java        |    3 +
 .../readwrite/BACnetPropertyAccessResult.java      |    3 +
 .../BACnetPropertyAccessResultAccessResult.java    |    3 +
 ...ccessResultAccessResultPropertyAccessError.java |    3 +
 ...pertyAccessResultAccessResultPropertyValue.java |    3 +
 .../readwrite/BACnetPropertyIdentifierTagged.java  |    3 +
 .../readwrite/BACnetPropertyReference.java         |    3 +
 .../readwrite/BACnetPropertyReferenceEnclosed.java |    3 +
 .../BACnetPropertyStateActionUnknown.java          |    3 +
 .../bacnetip/readwrite/BACnetPropertyStates.java   |    3 +
 ...ACnetPropertyStatesAccessCredentialDisable.java |    3 +
 ...ropertyStatesAccessCredentialDisableReason.java |    3 +
 .../readwrite/BACnetPropertyStatesAccessEvent.java |    3 +
 .../readwrite/BACnetPropertyStatesAction.java      |    3 +
 .../BACnetPropertyStatesAuthenticationStatus.java  |    3 +
 .../readwrite/BACnetPropertyStatesBackupState.java |    3 +
 .../BACnetPropertyStatesBacnetIpMode.java          |    3 +
 .../BACnetPropertyStatesBinaryLightningValue.java  |    3 +
 .../readwrite/BACnetPropertyStatesBinaryValue.java |    3 +
 .../readwrite/BACnetPropertyStatesBoolean.java     |    3 +
 .../BACnetPropertyStatesDoorAlarmState.java        |    3 +
 .../BACnetPropertyStatesDoorSecuredStatus.java     |    3 +
 .../readwrite/BACnetPropertyStatesDoorStatus.java  |    3 +
 .../readwrite/BACnetPropertyStatesDoorValue.java   |    3 +
 .../readwrite/BACnetPropertyStatesEnclosed.java    |    3 +
 .../BACnetPropertyStatesEscalatorFault.java        |    3 +
 .../BACnetPropertyStatesEscalatorMode.java         |    3 +
 ...tPropertyStatesEscalatorOperationDirection.java |    3 +
 .../readwrite/BACnetPropertyStatesEventType.java   |    3 +
 .../BACnetPropertyStatesExtendedValue.java         |    3 +
 .../BACnetPropertyStatesFileAccessMethod.java      |    3 +
 .../BACnetPropertyStatesIntegerValue.java          |    3 +
 .../BACnetPropertyStatesLifeSafetyMode.java        |    3 +
 .../BACnetPropertyStatesLifeSafetyOperations.java  |    3 +
 .../BACnetPropertyStatesLifeSafetyState.java       |    3 +
 .../BACnetPropertyStatesLiftCarDirection.java      |    3 +
 .../BACnetPropertyStatesLiftCarDoorCommand.java    |    3 +
 .../BACnetPropertyStatesLiftCarDriveStatus.java    |    3 +
 .../readwrite/BACnetPropertyStatesLiftCarMode.java |    3 +
 .../readwrite/BACnetPropertyStatesLiftFault.java   |    3 +
 .../BACnetPropertyStatesLiftGroupMode.java         |    3 +
 .../BACnetPropertyStatesLightningInProgress.java   |    3 +
 .../BACnetPropertyStatesLightningOperation.java    |    3 +
 .../BACnetPropertyStatesLightningTransition.java   |    3 +
 .../readwrite/BACnetPropertyStatesLockStatus.java  |    3 +
 .../readwrite/BACnetPropertyStatesMaintenance.java |    3 +
 .../BACnetPropertyStatesNetworkNumberQuality.java  |    3 +
 .../BACnetPropertyStatesNetworkPortCommand.java    |    3 +
 .../readwrite/BACnetPropertyStatesNetworkType.java |    3 +
 .../readwrite/BACnetPropertyStatesNodeType.java    |    3 +
 .../readwrite/BACnetPropertyStatesNotifyType.java  |    3 +
 .../readwrite/BACnetPropertyStatesPolarity.java    |    3 +
 .../BACnetPropertyStatesProgramChange.java         |    3 +
 .../BACnetPropertyStatesProtocolLevel.java         |    3 +
 .../BACnetPropertyStatesReasonForHalt.java         |    3 +
 .../readwrite/BACnetPropertyStatesReliability.java |    3 +
 .../BACnetPropertyStatesRestartReason.java         |    3 +
 .../BACnetPropertyStatesSecurityLevel.java         |    3 +
 .../readwrite/BACnetPropertyStatesShedState.java   |    3 +
 .../BACnetPropertyStatesSilencedState.java         |    3 +
 .../readwrite/BACnetPropertyStatesState.java       |    3 +
 .../BACnetPropertyStatesSystemStatus.java          |    3 +
 .../readwrite/BACnetPropertyStatesTimerState.java  |    3 +
 .../BACnetPropertyStatesTimerTransition.java       |    3 +
 .../readwrite/BACnetPropertyStatesUnits.java       |    3 +
 .../readwrite/BACnetPropertyStatesWriteStatus.java |    3 +
 .../BACnetPropertyStatesZoneOccupanyState.java     |    3 +
 .../bacnetip/readwrite/BACnetPropertyValue.java    |    3 +
 .../bacnetip/readwrite/BACnetPropertyValues.java   |    3 +
 .../readwrite/BACnetPropertyWriteDefinition.java   |    3 +
 .../readwrite/BACnetProtocolLevelTagged.java       |    3 +
 .../readwrite/BACnetReadAccessProperty.java        |    3 +
 .../BACnetReadAccessPropertyReadResult.java        |    3 +
 .../bacnetip/readwrite/BACnetReadAccessResult.java |    3 +
 .../BACnetReadAccessResultListOfResults.java       |    3 +
 .../readwrite/BACnetReadAccessSpecification.java   |    3 +
 .../java/bacnetip/readwrite/BACnetRecipient.java   |    3 +
 .../bacnetip/readwrite/BACnetRecipientAddress.java |    3 +
 .../bacnetip/readwrite/BACnetRecipientDevice.java  |    3 +
 .../readwrite/BACnetRecipientEnclosed.java         |    3 +
 .../bacnetip/readwrite/BACnetRecipientProcess.java |    3 +
 .../readwrite/BACnetRecipientProcessEnclosed.java  |    3 +
 .../readwrite/BACnetRejectReasonTagged.java        |    3 +
 .../readwrite/BACnetRelationshipTagged.java        |    3 +
 .../readwrite/BACnetReliabilityTagged.java         |    3 +
 .../readwrite/BACnetRestartReasonTagged.java       |    3 +
 .../readwrite/BACnetResultFlagsTagged.java         |    3 +
 .../java/bacnetip/readwrite/BACnetRouterEntry.java |    3 +
 .../readwrite/BACnetRouterEntryStatusTagged.java   |    3 +
 .../plc4x/java/bacnetip/readwrite/BACnetScale.java |    3 +
 .../bacnetip/readwrite/BACnetScaleFloatScale.java  |    3 +
 .../readwrite/BACnetScaleIntegerScale.java         |    3 +
 .../bacnetip/readwrite/BACnetSecurityKeySet.java   |    3 +
 .../readwrite/BACnetSecurityKeySetKeyIds.java      |    3 +
 .../readwrite/BACnetSecurityLevelTagged.java       |    3 +
 .../readwrite/BACnetSecurityPolicyTagged.java      |    3 +
 .../readwrite/BACnetSegmentationTagged.java        |    3 +
 .../java/bacnetip/readwrite/BACnetServiceAck.java  |    3 +
 .../readwrite/BACnetServiceAckAtomicReadFile.java  |    3 +
 .../BACnetServiceAckAtomicReadFileRecord.java      |    5 +-
 .../BACnetServiceAckAtomicReadFileStream.java      |    3 +
 ...CnetServiceAckAtomicReadFileStreamOrRecord.java |    3 +
 .../readwrite/BACnetServiceAckAtomicWriteFile.java |    3 +
 .../readwrite/BACnetServiceAckAuthenticate.java    |    3 +
 .../BACnetServiceAckConfirmedPrivateTransfer.java  |    3 +
 .../readwrite/BACnetServiceAckCreateObject.java    |    3 +
 .../readwrite/BACnetServiceAckGetAlarmSummary.java |    3 +
 .../BACnetServiceAckGetEnrollmentSummary.java      |    3 +
 .../BACnetServiceAckGetEventInformation.java       |    3 +
 .../readwrite/BACnetServiceAckReadProperty.java    |    3 +
 .../BACnetServiceAckReadPropertyConditional.java   |    3 +
 .../BACnetServiceAckReadPropertyMultiple.java      |    3 +
 .../readwrite/BACnetServiceAckReadRange.java       |    3 +
 .../readwrite/BACnetServiceAckRequestKey.java      |    3 +
 .../bacnetip/readwrite/BACnetServiceAckVTData.java |    3 +
 .../bacnetip/readwrite/BACnetServiceAckVTOpen.java |    3 +
 .../readwrite/BACnetServicesSupportedTagged.java   |    3 +
 .../readwrite/BACnetSetpointReference.java         |    3 +
 .../java/bacnetip/readwrite/BACnetShedLevel.java   |    3 +
 .../bacnetip/readwrite/BACnetShedLevelAmount.java  |    3 +
 .../bacnetip/readwrite/BACnetShedLevelLevel.java   |    3 +
 .../bacnetip/readwrite/BACnetShedLevelPercent.java |    3 +
 .../bacnetip/readwrite/BACnetShedStateTagged.java  |    3 +
 .../readwrite/BACnetSilencedStateTagged.java       |    3 +
 .../bacnetip/readwrite/BACnetSpecialEvent.java     |    3 +
 .../BACnetSpecialEventListOfTimeValues.java        |    3 +
 .../readwrite/BACnetSpecialEventPeriod.java        |    3 +
 .../BACnetSpecialEventPeriodCalendarEntry.java     |    3 +
 .../BACnetSpecialEventPeriodCalendarReference.java |    3 +
 .../readwrite/BACnetStatusFlagsTagged.java         |    3 +
 .../java/bacnetip/readwrite/BACnetTagHeader.java   |    3 +
 .../readwrite/BACnetTagPayloadBitString.java       |    3 +
 .../readwrite/BACnetTagPayloadBoolean.java         |    3 +
 .../readwrite/BACnetTagPayloadCharacterString.java |    3 +
 .../bacnetip/readwrite/BACnetTagPayloadDate.java   |    3 +
 .../bacnetip/readwrite/BACnetTagPayloadDouble.java |    3 +
 .../readwrite/BACnetTagPayloadEnumerated.java      |    3 +
 .../BACnetTagPayloadObjectIdentifier.java          |    3 +
 .../readwrite/BACnetTagPayloadOctetString.java     |    3 +
 .../bacnetip/readwrite/BACnetTagPayloadReal.java   |    3 +
 .../readwrite/BACnetTagPayloadSignedInteger.java   |    3 +
 .../bacnetip/readwrite/BACnetTagPayloadTime.java   |    3 +
 .../readwrite/BACnetTagPayloadUnsignedInteger.java |    3 +
 .../java/bacnetip/readwrite/BACnetTimeStamp.java   |    3 +
 .../readwrite/BACnetTimeStampDateTime.java         |    3 +
 .../readwrite/BACnetTimeStampEnclosed.java         |    3 +
 .../readwrite/BACnetTimeStampSequence.java         |    3 +
 .../bacnetip/readwrite/BACnetTimeStampTime.java    |    3 +
 .../readwrite/BACnetTimeStampsEnclosed.java        |    3 +
 .../java/bacnetip/readwrite/BACnetTimeValue.java   |    3 +
 .../readwrite/BACnetTimerStateChangeValue.java     |    3 +
 .../BACnetTimerStateChangeValueBitString.java      |    3 +
 .../BACnetTimerStateChangeValueBoolean.java        |    3 +
 ...BACnetTimerStateChangeValueCharacterString.java |    3 +
 ...ACnetTimerStateChangeValueConstructedValue.java |    3 +
 .../readwrite/BACnetTimerStateChangeValueDate.java |    3 +
 .../BACnetTimerStateChangeValueDateTime.java       |    3 +
 .../BACnetTimerStateChangeValueDouble.java         |    3 +
 .../BACnetTimerStateChangeValueEnumerated.java     |    3 +
 .../BACnetTimerStateChangeValueInteger.java        |    3 +
 ...BACnetTimerStateChangeValueLightingCommand.java |    3 +
 .../BACnetTimerStateChangeValueNoValue.java        |    3 +
 .../readwrite/BACnetTimerStateChangeValueNull.java |    3 +
 ...ACnetTimerStateChangeValueObjectidentifier.java |    3 +
 .../BACnetTimerStateChangeValueOctetString.java    |    3 +
 .../readwrite/BACnetTimerStateChangeValueReal.java |    3 +
 .../readwrite/BACnetTimerStateChangeValueTime.java |    3 +
 .../BACnetTimerStateChangeValueUnsigned.java       |    3 +
 .../bacnetip/readwrite/BACnetTimerStateTagged.java |    3 +
 .../readwrite/BACnetTimerTransitionTagged.java     |    3 +
 .../BACnetUnconfirmedServiceChoiceTagged.java      |    3 +
 .../readwrite/BACnetUnconfirmedServiceRequest.java |    3 +
 .../BACnetUnconfirmedServiceRequestIAm.java        |    3 +
 .../BACnetUnconfirmedServiceRequestIHave.java      |    3 +
 ...confirmedServiceRequestTimeSynchronization.java |    3 +
 ...firmedServiceRequestUTCTimeSynchronization.java |    3 +
 ...edServiceRequestUnconfirmedCOVNotification.java |    3 +
 ...eRequestUnconfirmedCOVNotificationMultiple.java |    3 +
 ...ServiceRequestUnconfirmedEventNotification.java |    3 +
 ...edServiceRequestUnconfirmedPrivateTransfer.java |    3 +
 ...firmedServiceRequestUnconfirmedTextMessage.java |    3 +
 .../BACnetUnconfirmedServiceRequestUnknown.java    |    3 +
 .../BACnetUnconfirmedServiceRequestWhoHas.java     |    3 +
 ...ACnetUnconfirmedServiceRequestWhoHasObject.java |    3 +
 ...firmedServiceRequestWhoHasObjectIdentifier.java |    3 +
 ...tUnconfirmedServiceRequestWhoHasObjectName.java |    3 +
 .../BACnetUnconfirmedServiceRequestWhoIs.java      |    3 +
 .../BACnetUnconfirmedServiceRequestWriteGroup.java |    3 +
 .../java/bacnetip/readwrite/BACnetVMACEntry.java   |    3 +
 .../bacnetip/readwrite/BACnetVTClassTagged.java    |    3 +
 .../java/bacnetip/readwrite/BACnetVTSession.java   |    3 +
 .../java/bacnetip/readwrite/BACnetValueSource.java |    3 +
 .../readwrite/BACnetValueSourceAddress.java        |    3 +
 .../bacnetip/readwrite/BACnetValueSourceNone.java  |    3 +
 .../readwrite/BACnetValueSourceObject.java         |    3 +
 .../bacnetip/readwrite/BACnetVendorIdTagged.java   |    3 +
 .../java/bacnetip/readwrite/BACnetWeekNDay.java    |    3 +
 .../bacnetip/readwrite/BACnetWeekNDayTagged.java   |    3 +
 .../readwrite/BACnetWriteAccessSpecification.java  |    3 +
 .../readwrite/BACnetWriteStatusTagged.java         |    3 +
 .../apache/plc4x/java/bacnetip/readwrite/BVLC.java |    3 +
 .../BVLCBroadcastDistributionTableEntry.java       |    3 +
 .../BVLCDeleteForeignDeviceTableEntry.java         |    3 +
 .../BVLCDistributeBroadcastToNetwork.java          |    3 +
 .../readwrite/BVLCForeignDeviceTableEntry.java     |    3 +
 .../java/bacnetip/readwrite/BVLCForwardedNPDU.java |    3 +
 .../readwrite/BVLCOriginalBroadcastNPDU.java       |    3 +
 .../readwrite/BVLCOriginalUnicastNPDU.java         |    3 +
 .../BVLCReadBroadcastDistributionTable.java        |    3 +
 .../BVLCReadBroadcastDistributionTableAck.java     |    3 +
 .../readwrite/BVLCReadForeignDeviceTable.java      |    3 +
 .../readwrite/BVLCReadForeignDeviceTableAck.java   |    3 +
 .../readwrite/BVLCRegisterForeignDevice.java       |    3 +
 .../plc4x/java/bacnetip/readwrite/BVLCResult.java  |    3 +
 .../bacnetip/readwrite/BVLCResultCodeTagged.java   |    3 +
 .../java/bacnetip/readwrite/BVLCSecureBVLL.java    |    3 +
 .../BVLCWriteBroadcastDistributionTable.java       |    3 +
 .../java/bacnetip/readwrite/BacnetConstants.java   |    3 +
 .../bacnetip/readwrite/ChangeListAddError.java     |    3 +
 .../bacnetip/readwrite/ChangeListRemoveError.java  |    3 +
 .../ConfirmedEventNotificationRequest.java         |    3 +
 .../readwrite/ConfirmedPrivateTransferError.java   |    3 +
 .../java/bacnetip/readwrite/CreateObjectError.java |    3 +
 .../plc4x/java/bacnetip/readwrite/Error.java       |    3 +
 .../java/bacnetip/readwrite/ErrorClassTagged.java  |    3 +
 .../java/bacnetip/readwrite/ErrorCodeTagged.java   |    3 +
 .../java/bacnetip/readwrite/ErrorEnclosed.java     |    3 +
 .../bacnetip/readwrite/ListOfCovNotifications.java |    3 +
 .../readwrite/ListOfCovNotificationsList.java      |    3 +
 .../readwrite/ListOfCovNotificationsValue.java     |    3 +
 .../apache/plc4x/java/bacnetip/readwrite/NLM.java  |    3 +
 .../bacnetip/readwrite/NLMChallengeRequest.java    |    3 +
 .../NLMDisconnectConnectionToNetwork.java          |    3 +
 .../readwrite/NLMEstablishConnectionToNetwork.java |    3 +
 .../bacnetip/readwrite/NLMIAmRouterToNetwork.java  |    3 +
 .../readwrite/NLMICouldBeRouterToNetwork.java      |    3 +
 .../readwrite/NLMInitalizeRoutingTable.java        |    5 +-
 .../readwrite/NLMInitalizeRoutingTableAck.java     |    5 +-
 .../NLMInitalizeRoutingTablePortMapping.java       |    3 +
 .../bacnetip/readwrite/NLMNetworkNumberIs.java     |    3 +
 .../readwrite/NLMRejectRouterToNetwork.java        |    3 +
 .../bacnetip/readwrite/NLMRequestKeyUpdate.java    |    3 +
 .../bacnetip/readwrite/NLMRequestMasterKey.java    |    3 +
 .../plc4x/java/bacnetip/readwrite/NLMReserved.java |    3 +
 .../readwrite/NLMRouterAvailableToNetwork.java     |    3 +
 .../bacnetip/readwrite/NLMRouterBusyToNetwork.java |    3 +
 .../bacnetip/readwrite/NLMSecurityPayload.java     |    3 +
 .../bacnetip/readwrite/NLMSecurityResponse.java    |    3 +
 .../java/bacnetip/readwrite/NLMSetMasterKey.java   |    3 +
 .../readwrite/NLMUpdateKeyDistributionKey.java     |    3 +
 .../bacnetip/readwrite/NLMUpdateKeyUpdate.java     |    7 +-
 .../readwrite/NLMUpdateKeyUpdateControlFlags.java  |    3 +
 .../readwrite/NLMUpdateKeyUpdateKeyEntry.java      |    3 +
 .../readwrite/NLMVendorProprietaryMessage.java     |    3 +
 .../bacnetip/readwrite/NLMWhatIsNetworkNumber.java |    3 +
 .../readwrite/NLMWhoIsRouterToNetwork.java         |    3 +
 .../apache/plc4x/java/bacnetip/readwrite/NPDU.java |    3 +
 .../plc4x/java/bacnetip/readwrite/NPDUControl.java |    3 +
 .../readwrite/NPDUNetworkPriorityTagged.java       |    3 +
 .../readwrite/SecurityResponseCodeTagged.java      |    3 +
 .../SubscribeCOVPropertyMultipleError.java         |    3 +
 ...opertyMultipleErrorFirstFailedSubscription.java |    3 +
 .../java/bacnetip/readwrite/VTCloseError.java      |    3 +
 .../VTCloseErrorListOfVTSessionIdentifiers.java    |    3 +
 .../readwrite/WritePropertyMultipleError.java      |    3 +
 .../java/cbus/readwrite/AccessControlData.java     |    3 +
 .../AccessControlDataAccessPointClosed.java        |    3 +
 .../AccessControlDataAccessPointForcedOpen.java    |    3 +
 .../AccessControlDataAccessPointLeftOpen.java      |    3 +
 .../AccessControlDataCloseAccessPoint.java         |    3 +
 .../AccessControlDataInvalidAccessRequest.java     |    3 +
 .../AccessControlDataLockAccessPoint.java          |    3 +
 .../readwrite/AccessControlDataRequestToExit.java  |    3 +
 .../AccessControlDataValidAccessRequest.java       |    3 +
 .../java/cbus/readwrite/AirConditioningData.java   |    3 +
 .../AirConditioningDataHumidityScheduleEntry.java  |    3 +
 .../AirConditioningDataHvacScheduleEntry.java      |    3 +
 .../cbus/readwrite/AirConditioningDataRefresh.java |    3 +
 ...ConditioningDataSetHumidityLowerGuardLimit.java |    3 +
 ...AirConditioningDataSetHumiditySetbackLimit.java |    3 +
 ...ConditioningDataSetHumidityUpperGuardLimit.java |    3 +
 .../AirConditioningDataSetHvacLowerGuardLimit.java |    3 +
 .../AirConditioningDataSetHvacSetbackLimit.java    |    3 +
 .../AirConditioningDataSetHvacUpperGuardLimit.java |    3 +
 .../AirConditioningDataSetPlantHumidityLevel.java  |    3 +
 .../AirConditioningDataSetPlantHvacLevel.java      |    3 +
 .../AirConditioningDataSetZoneGroupOff.java        |    3 +
 .../AirConditioningDataSetZoneGroupOn.java         |    3 +
 .../AirConditioningDataSetZoneHumidityMode.java    |    3 +
 .../AirConditioningDataSetZoneHvacMode.java        |    3 +
 .../readwrite/AirConditioningDataZoneHumidity.java |    3 +
 ...AirConditioningDataZoneHumidityPlantStatus.java |    3 +
 .../AirConditioningDataZoneHvacPlantStatus.java    |    3 +
 .../AirConditioningDataZoneTemperature.java        |    3 +
 .../apache/plc4x/java/cbus/readwrite/Alpha.java    |    3 +
 .../java/cbus/readwrite/ApplicationAddress1.java   |    3 +
 .../java/cbus/readwrite/ApplicationAddress2.java   |    3 +
 .../plc4x/java/cbus/readwrite/BridgeAddress.java   |    3 +
 .../apache/plc4x/java/cbus/readwrite/CALData.java  |    3 +
 .../java/cbus/readwrite/CALDataAcknowledge.java    |    3 +
 .../java/cbus/readwrite/CALDataGetStatus.java      |    3 +
 .../plc4x/java/cbus/readwrite/CALDataIdentify.java |    3 +
 .../java/cbus/readwrite/CALDataIdentifyReply.java  |    3 +
 .../plc4x/java/cbus/readwrite/CALDataRecall.java   |    3 +
 .../plc4x/java/cbus/readwrite/CALDataReply.java    |    3 +
 .../plc4x/java/cbus/readwrite/CALDataReset.java    |    3 +
 .../plc4x/java/cbus/readwrite/CALDataStatus.java   |    5 +-
 .../java/cbus/readwrite/CALDataStatusExtended.java |    7 +-
 .../plc4x/java/cbus/readwrite/CALDataWrite.java    |    3 +
 .../apache/plc4x/java/cbus/readwrite/CALReply.java |    3 +
 .../plc4x/java/cbus/readwrite/CALReplyLong.java    |    3 +
 .../plc4x/java/cbus/readwrite/CALReplyShort.java   |    3 +
 .../plc4x/java/cbus/readwrite/CBusCommand.java     |    3 +
 .../readwrite/CBusCommandDeviceManagement.java     |    3 +
 .../readwrite/CBusCommandPointToMultiPoint.java    |    3 +
 .../cbus/readwrite/CBusCommandPointToPoint.java    |    3 +
 .../CBusCommandPointToPointToMultiPoint.java       |    3 +
 .../plc4x/java/cbus/readwrite/CBusConstants.java   |    3 +
 .../plc4x/java/cbus/readwrite/CBusHeader.java      |    3 +
 .../plc4x/java/cbus/readwrite/CBusMessage.java     |    3 +
 .../java/cbus/readwrite/CBusMessageToClient.java   |    3 +
 .../java/cbus/readwrite/CBusMessageToServer.java   |    3 +
 .../plc4x/java/cbus/readwrite/CBusOptions.java     |    3 +
 .../readwrite/CBusPointToMultiPointCommand.java    |    3 +
 .../CBusPointToMultiPointCommandNormal.java        |    3 +
 .../CBusPointToMultiPointCommandStatus.java        |    3 +
 .../cbus/readwrite/CBusPointToPointCommand.java    |    3 +
 .../readwrite/CBusPointToPointCommandDirect.java   |    3 +
 .../readwrite/CBusPointToPointCommandIndirect.java |    3 +
 .../CBusPointToPointToMultiPointCommand.java       |    3 +
 .../CBusPointToPointToMultiPointCommandNormal.java |    3 +
 .../CBusPointToPointToMultiPointCommandStatus.java |    3 +
 .../apache/plc4x/java/cbus/readwrite/Checksum.java |    3 +
 .../cbus/readwrite/ClockAndTimekeepingData.java    |    3 +
 .../ClockAndTimekeepingDataRequestRefresh.java     |    3 +
 .../ClockAndTimekeepingDataUpdateDate.java         |    3 +
 .../ClockAndTimekeepingDataUpdateTime.java         |    3 +
 .../plc4x/java/cbus/readwrite/Confirmation.java    |    3 +
 .../java/cbus/readwrite/CustomManufacturer.java    |    3 +
 .../plc4x/java/cbus/readwrite/CustomTypes.java     |    3 +
 .../java/cbus/readwrite/EnableControlData.java     |    3 +
 .../plc4x/java/cbus/readwrite/EncodedReply.java    |    3 +
 .../java/cbus/readwrite/EncodedReplyCALReply.java  |    3 +
 .../java/cbus/readwrite/ErrorReportingData.java    |    3 +
 .../cbus/readwrite/ErrorReportingDataGeneric.java  |    3 +
 .../readwrite/ErrorReportingSystemCategory.java    |    3 +
 .../ErrorReportingSystemCategoryType.java          |    3 +
 ...ystemCategoryTypeBuildingManagementSystems.java |    3 +
 ...ortingSystemCategoryTypeClimateControllers.java |    3 +
 ...ErrorReportingSystemCategoryTypeInputUnits.java |    3 +
 ...rrorReportingSystemCategoryTypeOutputUnits.java |    3 +
 .../ErrorReportingSystemCategoryTypeReserved.java  |    3 +
 ...rorReportingSystemCategoryTypeSupportUnits.java |    3 +
 .../java/cbus/readwrite/HVACAuxiliaryLevel.java    |    3 +
 .../plc4x/java/cbus/readwrite/HVACHumidity.java    |    3 +
 .../cbus/readwrite/HVACHumidityModeAndFlags.java   |    3 +
 .../cbus/readwrite/HVACHumidityStatusFlags.java    |    3 +
 .../java/cbus/readwrite/HVACModeAndFlags.java      |    3 +
 .../plc4x/java/cbus/readwrite/HVACRawLevels.java   |    3 +
 .../plc4x/java/cbus/readwrite/HVACStartTime.java   |    3 +
 .../plc4x/java/cbus/readwrite/HVACStatusFlags.java |    3 +
 .../plc4x/java/cbus/readwrite/HVACTemperature.java |    3 +
 .../plc4x/java/cbus/readwrite/HVACZoneList.java    |    3 +
 .../java/cbus/readwrite/IdentifyReplyCommand.java  |    3 +
 .../IdentifyReplyCommandCurrentSenseLevels.java    |    3 +
 .../readwrite/IdentifyReplyCommandDSIStatus.java   |    3 +
 .../cbus/readwrite/IdentifyReplyCommandDelays.java |    3 +
 ...ntifyReplyCommandExtendedDiagnosticSummary.java |    3 +
 .../IdentifyReplyCommandFirmwareVersion.java       |    3 +
 .../IdentifyReplyCommandGAVPhysicalAddresses.java  |    3 +
 .../IdentifyReplyCommandGAVValuesCurrent.java      |    3 +
 .../IdentifyReplyCommandGAVValuesStored.java       |    3 +
 .../IdentifyReplyCommandLogicalAssignment.java     |    5 +-
 .../IdentifyReplyCommandManufacturer.java          |    3 +
 .../IdentifyReplyCommandMaximumLevels.java         |    3 +
 .../IdentifyReplyCommandMinimumLevels.java         |    3 +
 .../IdentifyReplyCommandNetworkTerminalLevels.java |    3 +
 .../IdentifyReplyCommandNetworkVoltage.java        |    3 +
 .../IdentifyReplyCommandOutputUnitSummary.java     |    3 +
 .../readwrite/IdentifyReplyCommandSummary.java     |    3 +
 .../IdentifyReplyCommandTerminalLevels.java        |    3 +
 .../cbus/readwrite/IdentifyReplyCommandType.java   |    3 +
 .../readwrite/IdentifyReplyCommandUnitSummary.java |    3 +
 .../java/cbus/readwrite/InterfaceOptions1.java     |    3 +
 .../InterfaceOptions1PowerUpSettings.java          |    3 +
 .../java/cbus/readwrite/InterfaceOptions2.java     |    3 +
 .../java/cbus/readwrite/InterfaceOptions3.java     |    3 +
 .../java/cbus/readwrite/LevelInformation.java      |    3 +
 .../cbus/readwrite/LevelInformationAbsent.java     |    3 +
 .../cbus/readwrite/LevelInformationCorrupted.java  |    3 +
 .../cbus/readwrite/LevelInformationNormal.java     |    3 +
 .../plc4x/java/cbus/readwrite/LightingData.java    |    3 +
 .../java/cbus/readwrite/LightingDataLabel.java     |    3 +
 .../plc4x/java/cbus/readwrite/LightingDataOff.java |    3 +
 .../plc4x/java/cbus/readwrite/LightingDataOn.java  |    3 +
 .../cbus/readwrite/LightingDataRampToLevel.java    |    3 +
 .../cbus/readwrite/LightingDataTerminateRamp.java  |    3 +
 .../java/cbus/readwrite/LightingLabelOptions.java  |    3 +
 .../plc4x/java/cbus/readwrite/LogicAssignment.java |    3 +
 .../plc4x/java/cbus/readwrite/MeasurementData.java |    3 +
 .../MeasurementDataChannelMeasurementData.java     |    3 +
 .../cbus/readwrite/MediaTransportControlData.java  |    3 +
 .../MediaTransportControlDataCategoryName.java     |    3 +
 ...trolDataEnumerateCategoriesSelectionTracks.java |    3 +
 .../MediaTransportControlDataEnumerationsSize.java |    3 +
 .../MediaTransportControlDataFastForward.java      |    3 +
 ...iaTransportControlDataNextPreviousCategory.java |    3 +
 ...aTransportControlDataNextPreviousSelection.java |    3 +
 ...MediaTransportControlDataNextPreviousTrack.java |    3 +
 .../MediaTransportControlDataPauseResume.java      |    3 +
 .../readwrite/MediaTransportControlDataPlay.java   |    3 +
 .../MediaTransportControlDataRepeatOnOff.java      |    3 +
 .../readwrite/MediaTransportControlDataRewind.java |    3 +
 .../MediaTransportControlDataSelectionName.java    |    3 +
 .../MediaTransportControlDataSetCategory.java      |    3 +
 .../MediaTransportControlDataSetSelection.java     |    3 +
 .../MediaTransportControlDataSetTrack.java         |    3 +
 .../MediaTransportControlDataShuffleOnOff.java     |    3 +
 ...ediaTransportControlDataSourcePowerControl.java |    3 +
 .../MediaTransportControlDataStatusRequest.java    |    3 +
 .../readwrite/MediaTransportControlDataStop.java   |    3 +
 .../MediaTransportControlDataTotalTracks.java      |    3 +
 .../MediaTransportControlDataTrackName.java        |    3 +
 .../plc4x/java/cbus/readwrite/MeteringData.java    |    3 +
 .../MeteringDataDrinkingWaterConsumption.java      |    3 +
 .../MeteringDataElectricityConsumption.java        |    3 +
 .../cbus/readwrite/MeteringDataGasConsumption.java |    3 +
 .../MeteringDataMeasureDrinkingWater.java          |    3 +
 .../readwrite/MeteringDataMeasureElectricity.java  |    3 +
 .../cbus/readwrite/MeteringDataMeasureGas.java     |    3 +
 .../cbus/readwrite/MeteringDataMeasureOil.java     |    3 +
 .../readwrite/MeteringDataMeasureOtherWater.java   |    3 +
 .../cbus/readwrite/MeteringDataOilConsumption.java |    3 +
 .../MeteringDataOtherWaterConsumption.java         |    3 +
 .../plc4x/java/cbus/readwrite/MonitoredSAL.java    |    3 +
 .../readwrite/MonitoredSALLongFormSmartMode.java   |    3 +
 .../java/cbus/readwrite/MonitoredSALReply.java     |    3 +
 .../readwrite/MonitoredSALShortFormBasicMode.java  |    3 +
 .../NetworkProtocolControlInformation.java         |    3 +
 .../plc4x/java/cbus/readwrite/NetworkRoute.java    |    5 +-
 .../plc4x/java/cbus/readwrite/PanicStatus.java     |    3 +
 .../plc4x/java/cbus/readwrite/ParameterChange.java |    3 +
 .../java/cbus/readwrite/ParameterChangeReply.java  |    3 +
 .../plc4x/java/cbus/readwrite/ParameterValue.java  |    3 +
 .../ParameterValueApplicationAddress1.java         |    3 +
 .../ParameterValueApplicationAddress2.java         |    3 +
 .../readwrite/ParameterValueBaudRateSelector.java  |    3 +
 .../ParameterValueCustomManufacturer.java          |    3 +
 .../cbus/readwrite/ParameterValueCustomTypes.java  |    3 +
 .../readwrite/ParameterValueInterfaceOptions1.java |    3 +
 ...meterValueInterfaceOptions1PowerUpSettings.java |    3 +
 .../readwrite/ParameterValueInterfaceOptions2.java |    3 +
 .../readwrite/ParameterValueInterfaceOptions3.java |    3 +
 .../java/cbus/readwrite/ParameterValueRaw.java     |    3 +
 .../cbus/readwrite/ParameterValueSerialNumber.java |    3 +
 .../apache/plc4x/java/cbus/readwrite/PowerUp.java  |    3 +
 .../plc4x/java/cbus/readwrite/PowerUpReply.java    |    3 +
 .../apache/plc4x/java/cbus/readwrite/Reply.java    |    3 +
 .../java/cbus/readwrite/ReplyEncodedReply.java     |    3 +
 .../plc4x/java/cbus/readwrite/ReplyNetwork.java    |    3 +
 .../java/cbus/readwrite/ReplyOrConfirmation.java   |    3 +
 .../readwrite/ReplyOrConfirmationConfirmation.java |    3 +
 .../cbus/readwrite/ReplyOrConfirmationReply.java   |    3 +
 .../apache/plc4x/java/cbus/readwrite/Request.java  |    3 +
 .../plc4x/java/cbus/readwrite/RequestCommand.java  |    3 +
 .../plc4x/java/cbus/readwrite/RequestContext.java  |    3 +
 .../cbus/readwrite/RequestDirectCommandAccess.java |    3 +
 .../plc4x/java/cbus/readwrite/RequestEmpty.java    |    3 +
 .../plc4x/java/cbus/readwrite/RequestNull.java     |    3 +
 .../plc4x/java/cbus/readwrite/RequestObsolete.java |    3 +
 .../plc4x/java/cbus/readwrite/RequestReset.java    |    3 +
 .../readwrite/RequestSmartConnectShortcut.java     |    3 +
 .../java/cbus/readwrite/RequestTermination.java    |    3 +
 .../java/cbus/readwrite/ResponseTermination.java   |    3 +
 .../apache/plc4x/java/cbus/readwrite/SALData.java  |    3 +
 .../java/cbus/readwrite/SALDataAccessControl.java  |    3 +
 .../cbus/readwrite/SALDataAirConditioning.java     |    3 +
 .../java/cbus/readwrite/SALDataAudioAndVideo.java  |    3 +
 .../cbus/readwrite/SALDataClockAndTimekeeping.java |    3 +
 .../java/cbus/readwrite/SALDataEnableControl.java  |    3 +
 .../java/cbus/readwrite/SALDataErrorReporting.java |    3 +
 .../java/cbus/readwrite/SALDataFreeUsage.java      |    3 +
 .../plc4x/java/cbus/readwrite/SALDataHeating.java  |    3 +
 .../java/cbus/readwrite/SALDataHvacActuator.java   |    3 +
 .../cbus/readwrite/SALDataIrrigationControl.java   |    3 +
 .../plc4x/java/cbus/readwrite/SALDataLighting.java |    3 +
 .../java/cbus/readwrite/SALDataMeasurement.java    |    3 +
 .../java/cbus/readwrite/SALDataMediaTransport.java |    3 +
 .../plc4x/java/cbus/readwrite/SALDataMetering.java |    3 +
 .../SALDataPoolsSpasPondsFountainsControl.java     |    3 +
 .../plc4x/java/cbus/readwrite/SALDataReserved.java |    3 +
 .../cbus/readwrite/SALDataRoomControlSystem.java   |    3 +
 .../plc4x/java/cbus/readwrite/SALDataSecurity.java |    3 +
 .../SALDataTelephonyStatusAndControl.java          |    3 +
 .../readwrite/SALDataTemperatureBroadcast.java     |    3 +
 .../plc4x/java/cbus/readwrite/SALDataTesting.java  |    3 +
 .../java/cbus/readwrite/SALDataTriggerControl.java |    3 +
 .../java/cbus/readwrite/SALDataVentilation.java    |    3 +
 .../plc4x/java/cbus/readwrite/SecurityArmCode.java |    3 +
 .../plc4x/java/cbus/readwrite/SecurityData.java    |    3 +
 .../java/cbus/readwrite/SecurityDataAlarmOff.java  |    3 +
 .../java/cbus/readwrite/SecurityDataAlarmOn.java   |    3 +
 .../readwrite/SecurityDataArmFailedCleared.java    |    3 +
 .../readwrite/SecurityDataArmFailedRaised.java     |    3 +
 .../readwrite/SecurityDataArmReadyNotReady.java    |    3 +
 .../java/cbus/readwrite/SecurityDataArmSystem.java |    3 +
 .../readwrite/SecurityDataCurrentAlarmType.java    |    3 +
 .../cbus/readwrite/SecurityDataDisplayMessage.java |    3 +
 .../cbus/readwrite/SecurityDataDropTamper.java     |    3 +
 .../cbus/readwrite/SecurityDataEmulatedKeypad.java |    3 +
 .../readwrite/SecurityDataEntryDelayStarted.java   |    3 +
 .../java/cbus/readwrite/SecurityDataEvent.java     |    3 +
 .../readwrite/SecurityDataExitDelayStarted.java    |    3 +
 .../readwrite/SecurityDataFireAlarmCleared.java    |    3 +
 .../readwrite/SecurityDataFireAlarmRaised.java     |    3 +
 .../readwrite/SecurityDataGasAlarmCleared.java     |    3 +
 .../cbus/readwrite/SecurityDataGasAlarmRaised.java |    3 +
 .../readwrite/SecurityDataLineCutAlarmCleared.java |    3 +
 .../readwrite/SecurityDataLineCutAlarmRaised.java  |    3 +
 .../readwrite/SecurityDataLowBatteryCharging.java  |    3 +
 .../readwrite/SecurityDataLowBatteryCorrected.java |    3 +
 .../readwrite/SecurityDataLowBatteryDetected.java  |    3 +
 .../cbus/readwrite/SecurityDataMainsFailure.java   |    3 +
 .../SecurityDataMainsRestoredOrApplied.java        |    3 +
 .../plc4x/java/cbus/readwrite/SecurityDataOff.java |    3 +
 .../plc4x/java/cbus/readwrite/SecurityDataOn.java  |    3 +
 .../readwrite/SecurityDataOtherAlarmCleared.java   |    3 +
 .../readwrite/SecurityDataOtherAlarmRaised.java    |    3 +
 .../cbus/readwrite/SecurityDataPanicActivated.java |    3 +
 .../cbus/readwrite/SecurityDataPanicCleared.java   |    3 +
 .../readwrite/SecurityDataPasswordEntryStatus.java |    3 +
 .../cbus/readwrite/SecurityDataRaiseAlarm.java     |    3 +
 .../cbus/readwrite/SecurityDataRaiseTamper.java    |    3 +
 .../readwrite/SecurityDataRequestZoneName.java     |    3 +
 .../cbus/readwrite/SecurityDataStatus1Request.java |    3 +
 .../cbus/readwrite/SecurityDataStatus2Request.java |    3 +
 .../cbus/readwrite/SecurityDataStatusReport1.java  |    5 +-
 .../cbus/readwrite/SecurityDataStatusReport2.java  |    5 +-
 .../readwrite/SecurityDataSystemArmedDisarmed.java |    3 +
 .../cbus/readwrite/SecurityDataSystemDisarmed.java |    3 +
 .../java/cbus/readwrite/SecurityDataTamperOff.java |    3 +
 .../java/cbus/readwrite/SecurityDataTamperOn.java  |    3 +
 .../cbus/readwrite/SecurityDataZoneIsolated.java   |    3 +
 .../java/cbus/readwrite/SecurityDataZoneName.java  |    3 +
 .../java/cbus/readwrite/SecurityDataZoneOpen.java  |    3 +
 .../cbus/readwrite/SecurityDataZoneSealed.java     |    3 +
 .../java/cbus/readwrite/SecurityDataZoneShort.java |    3 +
 .../cbus/readwrite/SecurityDataZoneUnsealed.java   |    3 +
 .../cbus/readwrite/SerialInterfaceAddress.java     |    3 +
 .../plc4x/java/cbus/readwrite/SerialNumber.java    |    3 +
 .../java/cbus/readwrite/ServerErrorReply.java      |    3 +
 .../plc4x/java/cbus/readwrite/StatusByte.java      |    3 +
 .../plc4x/java/cbus/readwrite/StatusRequest.java   |    3 +
 .../cbus/readwrite/StatusRequestBinaryState.java   |    3 +
 .../StatusRequestBinaryStateDeprecated.java        |    3 +
 .../java/cbus/readwrite/StatusRequestLevel.java    |    3 +
 .../plc4x/java/cbus/readwrite/TamperStatus.java    |    3 +
 .../plc4x/java/cbus/readwrite/TelephonyData.java   |    3 +
 .../readwrite/TelephonyDataClearDiversion.java     |    3 +
 .../cbus/readwrite/TelephonyDataDialInFailure.java |    3 +
 .../readwrite/TelephonyDataDialOutFailure.java     |    3 +
 .../java/cbus/readwrite/TelephonyDataDivert.java   |    3 +
 ...TelephonyDataInternetConnectionRequestMade.java |    3 +
 .../TelephonyDataIsolateSecondaryOutlet.java       |    3 +
 .../cbus/readwrite/TelephonyDataLineOffHook.java   |    3 +
 .../cbus/readwrite/TelephonyDataLineOnHook.java    |    3 +
 .../readwrite/TelephonyDataRecallLastNumber.java   |    3 +
 .../TelephonyDataRecallLastNumberRequest.java      |    3 +
 .../readwrite/TelephonyDataRejectIncomingCall.java |    3 +
 .../java/cbus/readwrite/TelephonyDataRinging.java  |    3 +
 .../cbus/readwrite/TemperatureBroadcastData.java   |    3 +
 .../java/cbus/readwrite/TriggerControlData.java    |    3 +
 .../readwrite/TriggerControlDataIndicatorKill.java |    3 +
 .../cbus/readwrite/TriggerControlDataLabel.java    |    3 +
 .../readwrite/TriggerControlDataTriggerEvent.java  |    3 +
 .../readwrite/TriggerControlDataTriggerMax.java    |    3 +
 .../readwrite/TriggerControlDataTriggerMin.java    |    3 +
 .../cbus/readwrite/TriggerControlLabelOptions.java |    3 +
 .../plc4x/java/cbus/readwrite/UnitAddress.java     |    3 +
 .../plc4x/java/cbus/readwrite/ZoneStatus.java      |    3 +
 .../plc4x/java/canopen/readwrite/CANOpenFrame.java |    3 +
 .../canopen/readwrite/CANOpenHeartbeatPayload.java |    3 +
 .../plc4x/java/canopen/readwrite/CANOpenMPDO.java  |    3 +
 .../canopen/readwrite/CANOpenNetworkPayload.java   |    3 +
 .../plc4x/java/canopen/readwrite/CANOpenPDO.java   |    3 +
 .../java/canopen/readwrite/CANOpenPDOPayload.java  |    3 +
 .../java/canopen/readwrite/CANOpenPayload.java     |    3 +
 .../java/canopen/readwrite/CANOpenSDORequest.java  |    3 +
 .../java/canopen/readwrite/CANOpenSDOResponse.java |    3 +
 .../plc4x/java/canopen/readwrite/CANOpenTime.java  |    3 +
 .../readwrite/CANOpenTimeSynchronization.java      |    3 +
 .../plc4x/java/canopen/readwrite/IndexAddress.java |    3 +
 .../plc4x/java/canopen/readwrite/SDOAbort.java     |    3 +
 .../java/canopen/readwrite/SDOAbortRequest.java    |    3 +
 .../java/canopen/readwrite/SDOAbortResponse.java   |    3 +
 .../plc4x/java/canopen/readwrite/SDOBlockData.java |    3 +
 .../java/canopen/readwrite/SDOBlockRequest.java    |    3 +
 .../java/canopen/readwrite/SDOBlockResponse.java   |    3 +
 .../readwrite/SDOInitiateDownloadRequest.java      |    3 +
 .../readwrite/SDOInitiateDownloadResponse.java     |    3 +
 .../SDOInitiateExpeditedUploadResponse.java        |    3 +
 .../SDOInitiateSegmentedReservedResponse.java      |    3 +
 .../SDOInitiateSegmentedUploadResponse.java        |    3 +
 .../readwrite/SDOInitiateUploadRequest.java        |    3 +
 .../readwrite/SDOInitiateUploadResponse.java       |    3 +
 .../SDOInitiateUploadResponsePayload.java          |    3 +
 .../plc4x/java/canopen/readwrite/SDORequest.java   |    3 +
 .../plc4x/java/canopen/readwrite/SDOResponse.java  |    3 +
 .../plc4x/java/canopen/readwrite/SDOSegment.java   |    3 +
 .../readwrite/SDOSegmentDownloadRequest.java       |    3 +
 .../readwrite/SDOSegmentDownloadResponse.java      |    3 +
 .../canopen/readwrite/SDOSegmentUploadRequest.java |    3 +
 .../readwrite/SDOSegmentUploadResponse.java        |    3 +
 .../java/firmata/readwrite/FirmataCommand.java     |    3 +
 .../readwrite/FirmataCommandProtocolVersion.java   |    3 +
 .../FirmataCommandSetDigitalPinValue.java          |    3 +
 .../readwrite/FirmataCommandSetPinMode.java        |    3 +
 .../firmata/readwrite/FirmataCommandSysex.java     |    3 +
 .../readwrite/FirmataCommandSystemReset.java       |    3 +
 .../java/firmata/readwrite/FirmataMessage.java     |    3 +
 .../firmata/readwrite/FirmataMessageAnalogIO.java  |    3 +
 .../firmata/readwrite/FirmataMessageCommand.java   |    3 +
 .../firmata/readwrite/FirmataMessageDigitalIO.java |    3 +
 .../FirmataMessageSubscribeAnalogPinValue.java     |    3 +
 .../FirmataMessageSubscribeDigitalPinValue.java    |    3 +
 .../plc4x/java/firmata/readwrite/SysexCommand.java |    3 +
 .../SysexCommandAnalogMappingQueryRequest.java     |    3 +
 .../SysexCommandAnalogMappingQueryResponse.java    |    3 +
 .../SysexCommandAnalogMappingResponse.java         |    3 +
 .../readwrite/SysexCommandCapabilityQuery.java     |    3 +
 .../readwrite/SysexCommandCapabilityResponse.java  |    3 +
 .../readwrite/SysexCommandExtendedAnalog.java      |    3 +
 .../firmata/readwrite/SysexCommandExtendedId.java  |    3 +
 .../readwrite/SysexCommandPinStateQuery.java       |    3 +
 .../readwrite/SysexCommandPinStateResponse.java    |    3 +
 .../SysexCommandReportFirmwareRequest.java         |    3 +
 .../SysexCommandReportFirmwareResponse.java        |    3 +
 .../readwrite/SysexCommandSamplingInterval.java    |    3 +
 .../firmata/readwrite/SysexCommandStringData.java  |    3 +
 .../readwrite/SysexCommandSysexNonRealtime.java    |    3 +
 .../readwrite/SysexCommandSysexRealtime.java       |    3 +
 .../apache/plc4x/java/knxnetip/readwrite/Apdu.java |    3 +
 .../plc4x/java/knxnetip/readwrite/ApduControl.java |    3 +
 .../java/knxnetip/readwrite/ApduControlAck.java    |    3 +
 .../knxnetip/readwrite/ApduControlConnect.java     |    3 +
 .../knxnetip/readwrite/ApduControlContainer.java   |    3 +
 .../knxnetip/readwrite/ApduControlDisconnect.java  |    3 +
 .../java/knxnetip/readwrite/ApduControlNack.java   |    3 +
 .../plc4x/java/knxnetip/readwrite/ApduData.java    |    3 +
 .../java/knxnetip/readwrite/ApduDataAdcRead.java   |    3 +
 .../knxnetip/readwrite/ApduDataAdcResponse.java    |    3 +
 .../java/knxnetip/readwrite/ApduDataContainer.java |    3 +
 .../readwrite/ApduDataDeviceDescriptorRead.java    |    3 +
 .../ApduDataDeviceDescriptorResponse.java          |    3 +
 .../plc4x/java/knxnetip/readwrite/ApduDataExt.java |    3 +
 .../readwrite/ApduDataExtAuthorizeRequest.java     |    3 +
 .../readwrite/ApduDataExtAuthorizeResponse.java    |    3 +
 .../readwrite/ApduDataExtDomainAddressRead.java    |    3 +
 .../ApduDataExtDomainAddressResponse.java          |    3 +
 .../ApduDataExtDomainAddressSelectiveRead.java     |    3 +
 .../ApduDataExtDomainAddressSerialNumberRead.java  |    3 +
 ...duDataExtDomainAddressSerialNumberResponse.java |    3 +
 .../ApduDataExtDomainAddressSerialNumberWrite.java |    3 +
 .../readwrite/ApduDataExtDomainAddressWrite.java   |    3 +
 .../readwrite/ApduDataExtFileStreamInfoReport.java |    3 +
 .../ApduDataExtGroupPropertyValueInfoReport.java   |    3 +
 .../ApduDataExtGroupPropertyValueRead.java         |    3 +
 .../ApduDataExtGroupPropertyValueResponse.java     |    3 +
 .../ApduDataExtGroupPropertyValueWrite.java        |    3 +
 ...duDataExtIndividualAddressSerialNumberRead.java |    3 +
 ...taExtIndividualAddressSerialNumberResponse.java |    3 +
 ...uDataExtIndividualAddressSerialNumberWrite.java |    3 +
 .../knxnetip/readwrite/ApduDataExtKeyResponse.java |    3 +
 .../knxnetip/readwrite/ApduDataExtKeyWrite.java    |    3 +
 .../knxnetip/readwrite/ApduDataExtLinkRead.java    |    3 +
 .../readwrite/ApduDataExtLinkResponse.java         |    3 +
 .../knxnetip/readwrite/ApduDataExtLinkWrite.java   |    3 +
 .../readwrite/ApduDataExtMemoryBitWrite.java       |    3 +
 .../readwrite/ApduDataExtNetworkParameterRead.java |    3 +
 .../ApduDataExtNetworkParameterResponse.java       |    3 +
 .../ApduDataExtNetworkParameterWrite.java          |    3 +
 .../ApduDataExtOpenRoutingTableRequest.java        |    3 +
 .../ApduDataExtPropertyDescriptionRead.java        |    3 +
 .../ApduDataExtPropertyDescriptionResponse.java    |    3 +
 .../readwrite/ApduDataExtPropertyValueRead.java    |    3 +
 .../ApduDataExtPropertyValueResponse.java          |    3 +
 .../readwrite/ApduDataExtPropertyValueWrite.java   |    3 +
 .../ApduDataExtReadRouterMemoryRequest.java        |    3 +
 .../ApduDataExtReadRouterMemoryResponse.java       |    3 +
 .../ApduDataExtReadRouterStatusRequest.java        |    3 +
 .../ApduDataExtReadRouterStatusResponse.java       |    3 +
 .../ApduDataExtReadRoutingTableRequest.java        |    3 +
 .../ApduDataExtReadRoutingTableResponse.java       |    3 +
 .../ApduDataExtWriteRouterMemoryRequest.java       |    3 +
 .../ApduDataExtWriteRouterStatusRequest.java       |    3 +
 .../ApduDataExtWriteRoutingTableRequest.java       |    3 +
 .../knxnetip/readwrite/ApduDataGroupValueRead.java |    3 +
 .../readwrite/ApduDataGroupValueResponse.java      |    3 +
 .../readwrite/ApduDataGroupValueWrite.java         |    3 +
 .../readwrite/ApduDataIndividualAddressRead.java   |    3 +
 .../ApduDataIndividualAddressResponse.java         |    3 +
 .../readwrite/ApduDataIndividualAddressWrite.java  |    3 +
 .../knxnetip/readwrite/ApduDataMemoryRead.java     |    3 +
 .../knxnetip/readwrite/ApduDataMemoryResponse.java |    3 +
 .../knxnetip/readwrite/ApduDataMemoryWrite.java    |    3 +
 .../java/knxnetip/readwrite/ApduDataOther.java     |    3 +
 .../java/knxnetip/readwrite/ApduDataRestart.java   |    3 +
 .../knxnetip/readwrite/ApduDataUserMessage.java    |    3 +
 .../apache/plc4x/java/knxnetip/readwrite/CEMI.java |    3 +
 .../readwrite/CEMIAdditionalInformation.java       |    3 +
 .../CEMIAdditionalInformationBusmonitorInfo.java   |    3 +
 ...CEMIAdditionalInformationRelativeTimestamp.java |    3 +
 .../knxnetip/readwrite/ChannelInformation.java     |    3 +
 .../java/knxnetip/readwrite/ComObjectTable.java    |    3 +
 .../readwrite/ComObjectTableRealisationType1.java  |    5 +-
 .../readwrite/ComObjectTableRealisationType2.java  |    5 +-
 .../readwrite/ComObjectTableRealisationType6.java  |    3 +
 .../java/knxnetip/readwrite/ConnectionRequest.java |    3 +
 .../readwrite/ConnectionRequestInformation.java    |    3 +
 ...nnectionRequestInformationDeviceManagement.java |    3 +
 ...nnectionRequestInformationTunnelConnection.java |    3 +
 .../knxnetip/readwrite/ConnectionResponse.java     |    3 +
 .../readwrite/ConnectionResponseDataBlock.java     |    3 +
 ...onnectionResponseDataBlockDeviceManagement.java |    3 +
 ...onnectionResponseDataBlockTunnelConnection.java |    3 +
 .../knxnetip/readwrite/ConnectionStateRequest.java |    3 +
 .../readwrite/ConnectionStateResponse.java         |    3 +
 .../java/knxnetip/readwrite/DIBDeviceInfo.java     |    3 +
 .../knxnetip/readwrite/DIBSuppSvcFamilies.java     |    3 +
 .../knxnetip/readwrite/DescriptionRequest.java     |    3 +
 .../knxnetip/readwrite/DescriptionResponse.java    |    3 +
 .../knxnetip/readwrite/DeviceConfigurationAck.java |    3 +
 .../readwrite/DeviceConfigurationAckDataBlock.java |    3 +
 .../readwrite/DeviceConfigurationRequest.java      |    3 +
 .../DeviceConfigurationRequestDataBlock.java       |    3 +
 .../knxnetip/readwrite/DeviceDescriptorType2.java  |    3 +
 .../java/knxnetip/readwrite/DeviceStatus.java      |    3 +
 .../java/knxnetip/readwrite/DisconnectRequest.java |    3 +
 .../knxnetip/readwrite/DisconnectResponse.java     |    3 +
 .../GroupObjectDescriptorRealisationType1.java     |    3 +
 .../GroupObjectDescriptorRealisationType2.java     |    3 +
 .../GroupObjectDescriptorRealisationType6.java     |    3 +
 .../GroupObjectDescriptorRealisationType7.java     |    3 +
 .../GroupObjectDescriptorRealisationTypeB.java     |    3 +
 .../knxnetip/readwrite/HPAIControlEndpoint.java    |    3 +
 .../java/knxnetip/readwrite/HPAIDataEndpoint.java  |    3 +
 .../knxnetip/readwrite/HPAIDiscoveryEndpoint.java  |    3 +
 .../plc4x/java/knxnetip/readwrite/IPAddress.java   |    3 +
 .../plc4x/java/knxnetip/readwrite/KnxAddress.java  |    3 +
 .../java/knxnetip/readwrite/KnxGroupAddress.java   |    3 +
 .../knxnetip/readwrite/KnxGroupAddress2Level.java  |    3 +
 .../knxnetip/readwrite/KnxGroupAddress3Level.java  |    3 +
 .../readwrite/KnxGroupAddressFreeLevel.java        |    3 +
 .../java/knxnetip/readwrite/KnxNetIpCore.java      |    3 +
 .../readwrite/KnxNetIpDeviceManagement.java        |    3 +
 .../java/knxnetip/readwrite/KnxNetIpMessage.java   |    3 +
 .../java/knxnetip/readwrite/KnxNetIpRouting.java   |    3 +
 .../java/knxnetip/readwrite/KnxNetIpTunneling.java |    3 +
 .../knxnetip/readwrite/KnxNetObjectServer.java     |    3 +
 .../KnxNetRemoteConfigurationAndDiagnosis.java     |    3 +
 .../knxnetip/readwrite/KnxNetRemoteLogging.java    |    3 +
 .../plc4x/java/knxnetip/readwrite/LBusmonInd.java  |    3 +
 .../plc4x/java/knxnetip/readwrite/LDataCon.java    |    3 +
 .../java/knxnetip/readwrite/LDataExtended.java     |    3 +
 .../plc4x/java/knxnetip/readwrite/LDataFrame.java  |    3 +
 .../java/knxnetip/readwrite/LDataFrameACK.java     |    3 +
 .../plc4x/java/knxnetip/readwrite/LDataInd.java    |    3 +
 .../plc4x/java/knxnetip/readwrite/LDataReq.java    |    3 +
 .../plc4x/java/knxnetip/readwrite/LPollData.java   |    3 +
 .../java/knxnetip/readwrite/LPollDataCon.java      |    3 +
 .../java/knxnetip/readwrite/LPollDataReq.java      |    3 +
 .../plc4x/java/knxnetip/readwrite/LRawCon.java     |    3 +
 .../plc4x/java/knxnetip/readwrite/LRawInd.java     |    3 +
 .../plc4x/java/knxnetip/readwrite/LRawReq.java     |    3 +
 .../plc4x/java/knxnetip/readwrite/MACAddress.java  |    3 +
 .../knxnetip/readwrite/MFuncPropCommandReq.java    |    3 +
 .../java/knxnetip/readwrite/MFuncPropCon.java      |    3 +
 .../knxnetip/readwrite/MFuncPropStateReadReq.java  |    3 +
 .../java/knxnetip/readwrite/MPropInfoInd.java      |    3 +
 .../java/knxnetip/readwrite/MPropReadCon.java      |    3 +
 .../java/knxnetip/readwrite/MPropReadReq.java      |    3 +
 .../java/knxnetip/readwrite/MPropWriteCon.java     |    3 +
 .../java/knxnetip/readwrite/MPropWriteReq.java     |    3 +
 .../plc4x/java/knxnetip/readwrite/MResetInd.java   |    3 +
 .../plc4x/java/knxnetip/readwrite/MResetReq.java   |    3 +
 .../readwrite/ProjectInstallationIdentifier.java   |    3 +
 .../java/knxnetip/readwrite/RelativeTimestamp.java |    3 +
 .../java/knxnetip/readwrite/RoutingIndication.java |    3 +
 .../java/knxnetip/readwrite/SearchRequest.java     |    3 +
 .../java/knxnetip/readwrite/SearchResponse.java    |    3 +
 .../plc4x/java/knxnetip/readwrite/ServiceId.java   |    3 +
 .../java/knxnetip/readwrite/TDataConnectedInd.java |    3 +
 .../java/knxnetip/readwrite/TDataConnectedReq.java |    3 +
 .../knxnetip/readwrite/TDataIndividualInd.java     |    3 +
 .../knxnetip/readwrite/TDataIndividualReq.java     |    3 +
 .../java/knxnetip/readwrite/TunnelingRequest.java  |    3 +
 .../readwrite/TunnelingRequestDataBlock.java       |    3 +
 .../java/knxnetip/readwrite/TunnelingResponse.java |    3 +
 .../readwrite/TunnelingResponseDataBlock.java      |    3 +
 .../java/knxnetip/readwrite/UnknownMessage.java    |    3 +
 .../plc4x/java/modbus/readwrite/ModbusADU.java     |    3 +
 .../java/modbus/readwrite/ModbusAsciiADU.java      |    3 +
 .../java/modbus/readwrite/ModbusConstants.java     |    3 +
 .../readwrite/ModbusDeviceInformationObject.java   |    3 +
 .../plc4x/java/modbus/readwrite/ModbusPDU.java     |    3 +
 .../readwrite/ModbusPDUDiagnosticRequest.java      |    3 +
 .../readwrite/ModbusPDUDiagnosticResponse.java     |    3 +
 .../java/modbus/readwrite/ModbusPDUError.java      |    3 +
 .../ModbusPDUGetComEventCounterRequest.java        |    3 +
 .../ModbusPDUGetComEventCounterResponse.java       |    3 +
 .../readwrite/ModbusPDUGetComEventLogRequest.java  |    3 +
 .../readwrite/ModbusPDUGetComEventLogResponse.java |    3 +
 .../ModbusPDUMaskWriteHoldingRegisterRequest.java  |    3 +
 .../ModbusPDUMaskWriteHoldingRegisterResponse.java |    3 +
 .../readwrite/ModbusPDUReadCoilsRequest.java       |    3 +
 .../readwrite/ModbusPDUReadCoilsResponse.java      |    3 +
 .../ModbusPDUReadDeviceIdentificationRequest.java  |    3 +
 .../ModbusPDUReadDeviceIdentificationResponse.java |    5 +-
 .../ModbusPDUReadDiscreteInputsRequest.java        |    3 +
 .../ModbusPDUReadDiscreteInputsResponse.java       |    3 +
 .../ModbusPDUReadExceptionStatusRequest.java       |    3 +
 .../ModbusPDUReadExceptionStatusResponse.java      |    3 +
 .../readwrite/ModbusPDUReadFifoQueueRequest.java   |    3 +
 .../readwrite/ModbusPDUReadFifoQueueResponse.java  |    3 +
 .../readwrite/ModbusPDUReadFileRecordRequest.java  |    3 +
 .../ModbusPDUReadFileRecordRequestItem.java        |    3 +
 .../readwrite/ModbusPDUReadFileRecordResponse.java |    3 +
 .../ModbusPDUReadFileRecordResponseItem.java       |    3 +
 .../ModbusPDUReadHoldingRegistersRequest.java      |    3 +
 .../ModbusPDUReadHoldingRegistersResponse.java     |    3 +
 .../ModbusPDUReadInputRegistersRequest.java        |    3 +
 .../ModbusPDUReadInputRegistersResponse.java       |    3 +
 ...DUReadWriteMultipleHoldingRegistersRequest.java |    3 +
 ...UReadWriteMultipleHoldingRegistersResponse.java |    3 +
 .../readwrite/ModbusPDUReportServerIdRequest.java  |    3 +
 .../readwrite/ModbusPDUReportServerIdResponse.java |    3 +
 .../readwrite/ModbusPDUWriteFileRecordRequest.java |    3 +
 .../ModbusPDUWriteFileRecordRequestItem.java       |    3 +
 .../ModbusPDUWriteFileRecordResponse.java          |    3 +
 .../ModbusPDUWriteFileRecordResponseItem.java      |    3 +
 .../ModbusPDUWriteMultipleCoilsRequest.java        |    3 +
 .../ModbusPDUWriteMultipleCoilsResponse.java       |    3 +
 ...busPDUWriteMultipleHoldingRegistersRequest.java |    3 +
 ...usPDUWriteMultipleHoldingRegistersResponse.java |    3 +
 .../readwrite/ModbusPDUWriteSingleCoilRequest.java |    3 +
 .../ModbusPDUWriteSingleCoilResponse.java          |    3 +
 .../ModbusPDUWriteSingleRegisterRequest.java       |    3 +
 .../ModbusPDUWriteSingleRegisterResponse.java      |    3 +
 .../plc4x/java/modbus/readwrite/ModbusRtuADU.java  |    3 +
 .../plc4x/java/modbus/readwrite/ModbusTcpADU.java  |    3 +
 .../opcua/readwrite/ActivateSessionRequest.java    |    7 +-
 .../opcua/readwrite/ActivateSessionResponse.java   |    7 +-
 .../plc4x/java/opcua/readwrite/AddNodesItem.java   |    3 +
 .../java/opcua/readwrite/AddNodesRequest.java      |    5 +-
 .../java/opcua/readwrite/AddNodesResponse.java     |    7 +-
 .../plc4x/java/opcua/readwrite/AddNodesResult.java |    3 +
 .../java/opcua/readwrite/AddReferencesItem.java    |    3 +
 .../java/opcua/readwrite/AddReferencesRequest.java |    5 +-
 .../opcua/readwrite/AddReferencesResponse.java     |    7 +-
 .../opcua/readwrite/AdditionalParametersType.java  |    5 +-
 .../opcua/readwrite/AggregateConfiguration.java    |    3 +
 .../java/opcua/readwrite/AliasNameDataType.java    |    5 +-
 .../plc4x/java/opcua/readwrite/Annotation.java     |    3 +
 .../opcua/readwrite/AnonymousIdentityToken.java    |    3 +
 .../opcua/readwrite/ApplicationDescription.java    |    5 +-
 .../readwrite/ApplicationInstanceCertificate.java  |    3 +
 .../plc4x/java/opcua/readwrite/Argument.java       |    3 +
 .../plc4x/java/opcua/readwrite/AudioDataType.java  |    3 +
 .../java/opcua/readwrite/AxisInformation.java      |    3 +
 .../java/opcua/readwrite/BitFieldMaskDataType.java |    3 +
 .../java/opcua/readwrite/BrowseDescription.java    |    3 +
 .../java/opcua/readwrite/BrowseNextRequest.java    |    5 +-
 .../java/opcua/readwrite/BrowseNextResponse.java   |    7 +-
 .../plc4x/java/opcua/readwrite/BrowsePath.java     |    3 +
 .../java/opcua/readwrite/BrowsePathResult.java     |    5 +-
 .../java/opcua/readwrite/BrowsePathTarget.java     |    3 +
 .../plc4x/java/opcua/readwrite/BrowseRequest.java  |    5 +-
 .../plc4x/java/opcua/readwrite/BrowseResponse.java |    7 +-
 .../plc4x/java/opcua/readwrite/BrowseResult.java   |    5 +-
 .../plc4x/java/opcua/readwrite/BuildInfo.java      |    3 +
 .../java/opcua/readwrite/ByteStringArray.java      |    3 +
 .../java/opcua/readwrite/ByteStringNodeId.java     |    3 +
 .../java/opcua/readwrite/CallMethodRequest.java    |    5 +-
 .../java/opcua/readwrite/CallMethodResult.java     |    9 +-
 .../plc4x/java/opcua/readwrite/CallRequest.java    |    5 +-
 .../plc4x/java/opcua/readwrite/CallResponse.java   |    7 +-
 .../plc4x/java/opcua/readwrite/CancelRequest.java  |    3 +
 .../plc4x/java/opcua/readwrite/CancelResponse.java |    3 +
 .../java/opcua/readwrite/CartesianCoordinates.java |    3 +
 .../java/opcua/readwrite/ChannelSecurityToken.java |    3 +
 .../opcua/readwrite/CloseSecureChannelRequest.java |    3 +
 .../readwrite/CloseSecureChannelResponse.java      |    3 +
 .../java/opcua/readwrite/CloseSessionRequest.java  |    3 +
 .../java/opcua/readwrite/CloseSessionResponse.java |    3 +
 .../java/opcua/readwrite/ComplexNumberType.java    |    3 +
 .../readwrite/ConfigurationVersionDataType.java    |    3 +
 .../readwrite/ConnectionTransportDataType.java     |    3 +
 .../plc4x/java/opcua/readwrite/ContentFilter.java  |    5 +-
 .../java/opcua/readwrite/ContentFilterElement.java |    5 +-
 .../readwrite/ContentFilterElementResult.java      |    7 +-
 .../java/opcua/readwrite/ContentFilterResult.java  |    7 +-
 .../java/opcua/readwrite/ContinuationPoint.java    |    3 +
 .../apache/plc4x/java/opcua/readwrite/Counter.java |    3 +
 .../readwrite/CreateMonitoredItemsRequest.java     |    5 +-
 .../readwrite/CreateMonitoredItemsResponse.java    |    7 +-
 .../java/opcua/readwrite/CreateSessionRequest.java |    3 +
 .../opcua/readwrite/CreateSessionResponse.java     |    7 +-
 .../opcua/readwrite/CreateSubscriptionRequest.java |    3 +
 .../readwrite/CreateSubscriptionResponse.java      |    3 +
 .../java/opcua/readwrite/CurrencyUnitType.java     |    3 +
 .../opcua/readwrite/DataChangeNotification.java    |    7 +-
 .../readwrite/DataSetReaderMessageDataType.java    |    3 +
 .../readwrite/DataSetReaderTransportDataType.java  |    3 +
 .../opcua/readwrite/DataSetWriterDataType.java     |    5 +-
 .../readwrite/DataSetWriterMessageDataType.java    |    3 +
 .../readwrite/DataSetWriterTransportDataType.java  |    3 +
 .../java/opcua/readwrite/DataTypeDefinition.java   |    3 +
 .../java/opcua/readwrite/DataTypeDescription.java  |    3 +
 .../java/opcua/readwrite/DataTypeSchemaHeader.java |   11 +-
 .../plc4x/java/opcua/readwrite/DataValue.java      |    3 +
 .../apache/plc4x/java/opcua/readwrite/Date.java    |    3 +
 .../plc4x/java/opcua/readwrite/DateString.java     |    3 +
 .../java/opcua/readwrite/DecimalDataType.java      |    3 +
 .../plc4x/java/opcua/readwrite/DecimalString.java  |    3 +
 .../readwrite/DeleteMonitoredItemsRequest.java     |    3 +
 .../readwrite/DeleteMonitoredItemsResponse.java    |    7 +-
 .../java/opcua/readwrite/DeleteNodesItem.java      |    3 +
 .../java/opcua/readwrite/DeleteNodesRequest.java   |    5 +-
 .../java/opcua/readwrite/DeleteNodesResponse.java  |    7 +-
 .../java/opcua/readwrite/DeleteReferencesItem.java |    3 +
 .../opcua/readwrite/DeleteReferencesRequest.java   |    5 +-
 .../opcua/readwrite/DeleteReferencesResponse.java  |    7 +-
 .../readwrite/DeleteSubscriptionsRequest.java      |    3 +
 .../readwrite/DeleteSubscriptionsResponse.java     |    7 +-
 .../plc4x/java/opcua/readwrite/DiagnosticInfo.java |    3 +
 .../opcua/readwrite/DiscoveryConfiguration.java    |    3 +
 .../opcua/readwrite/DoubleComplexNumberType.java   |    3 +
 .../plc4x/java/opcua/readwrite/DurationString.java |    3 +
 .../plc4x/java/opcua/readwrite/EUInformation.java  |    3 +
 .../java/opcua/readwrite/EccEncryptedSecret.java   |    3 +
 .../opcua/readwrite/EndpointConfiguration.java     |    3 +
 .../java/opcua/readwrite/EndpointDescription.java  |    5 +-
 .../plc4x/java/opcua/readwrite/EndpointType.java   |    3 +
 .../opcua/readwrite/EndpointUrlListDataType.java   |    5 +-
 .../plc4x/java/opcua/readwrite/EnumValueType.java  |    3 +
 .../java/opcua/readwrite/EphemeralKeyType.java     |    3 +
 .../plc4x/java/opcua/readwrite/EventFieldList.java |    5 +-
 .../opcua/readwrite/EventNotificationList.java     |    5 +-
 .../plc4x/java/opcua/readwrite/ExpandedNodeId.java |    3 +
 .../java/opcua/readwrite/ExtensionHeader.java      |    3 +
 .../java/opcua/readwrite/ExtensionObject.java      |    3 +
 .../opcua/readwrite/ExtensionObjectDefinition.java |    3 +
 .../readwrite/ExtensionObjectEncodingMask.java     |    3 +
 .../plc4x/java/opcua/readwrite/FieldMetaData.java  |    5 +-
 .../java/opcua/readwrite/FieldTargetDataType.java  |    3 +
 .../plc4x/java/opcua/readwrite/FilterOperand.java  |    3 +
 .../readwrite/FindServersOnNetworkRequest.java     |    5 +-
 .../readwrite/FindServersOnNetworkResponse.java    |    5 +-
 .../java/opcua/readwrite/FindServersRequest.java   |    7 +-
 .../java/opcua/readwrite/FindServersResponse.java  |    5 +-
 .../plc4x/java/opcua/readwrite/FourByteNodeId.java |    3 +
 .../apache/plc4x/java/opcua/readwrite/Frame.java   |    3 +
 .../opcua/readwrite/GenericAttributeValue.java     |    3 +
 .../java/opcua/readwrite/GetEndpointsRequest.java  |    7 +-
 .../java/opcua/readwrite/GetEndpointsResponse.java |    5 +-
 .../plc4x/java/opcua/readwrite/GuidNodeId.java     |    3 +
 .../plc4x/java/opcua/readwrite/GuidValue.java      |    3 +
 .../plc4x/java/opcua/readwrite/HistoryData.java    |    5 +-
 .../plc4x/java/opcua/readwrite/HistoryEvent.java   |    5 +-
 .../opcua/readwrite/HistoryEventFieldList.java     |    5 +-
 .../java/opcua/readwrite/HistoryReadDetails.java   |    3 +
 .../java/opcua/readwrite/HistoryReadRequest.java   |    5 +-
 .../java/opcua/readwrite/HistoryReadResponse.java  |    7 +-
 .../java/opcua/readwrite/HistoryReadResult.java    |    3 +
 .../java/opcua/readwrite/HistoryReadValueId.java   |    3 +
 .../java/opcua/readwrite/HistoryUpdateDetails.java |    3 +
 .../java/opcua/readwrite/HistoryUpdateRequest.java |    5 +-
 .../opcua/readwrite/HistoryUpdateResponse.java     |    7 +-
 .../java/opcua/readwrite/HistoryUpdateResult.java  |    7 +-
 .../opcua/readwrite/IdentityMappingRuleType.java   |    3 +
 .../plc4x/java/opcua/readwrite/ImageBMP.java       |    3 +
 .../plc4x/java/opcua/readwrite/ImageGIF.java       |    3 +
 .../plc4x/java/opcua/readwrite/ImageJPG.java       |    3 +
 .../plc4x/java/opcua/readwrite/ImagePNG.java       |    3 +
 .../apache/plc4x/java/opcua/readwrite/Index.java   |    3 +
 .../plc4x/java/opcua/readwrite/IntegerId.java      |    3 +
 .../java/opcua/readwrite/IssuedIdentityToken.java  |    3 +
 .../plc4x/java/opcua/readwrite/KeyValuePair.java   |    3 +
 .../plc4x/java/opcua/readwrite/LocaleId.java       |    3 +
 .../plc4x/java/opcua/readwrite/LocalizedText.java  |    3 +
 .../plc4x/java/opcua/readwrite/MessagePDU.java     |    3 +
 .../readwrite/ModelChangeStructureDataType.java    |    3 +
 .../java/opcua/readwrite/ModificationInfo.java     |    3 +
 .../readwrite/ModifyMonitoredItemsRequest.java     |    5 +-
 .../readwrite/ModifyMonitoredItemsResponse.java    |    7 +-
 .../opcua/readwrite/ModifySubscriptionRequest.java |    3 +
 .../readwrite/ModifySubscriptionResponse.java      |    3 +
 .../readwrite/MonitoredItemCreateRequest.java      |    3 +
 .../opcua/readwrite/MonitoredItemCreateResult.java |    3 +
 .../readwrite/MonitoredItemModifyRequest.java      |    3 +
 .../opcua/readwrite/MonitoredItemModifyResult.java |    3 +
 .../opcua/readwrite/MonitoredItemNotification.java |    3 +
 .../java/opcua/readwrite/MonitoringFilter.java     |    3 +
 .../opcua/readwrite/MonitoringFilterResult.java    |    3 +
 .../java/opcua/readwrite/MonitoringParameters.java |    3 +
 .../opcua/readwrite/NetworkAddressDataType.java    |    3 +
 .../java/opcua/readwrite/NetworkGroupDataType.java |    5 +-
 .../apache/plc4x/java/opcua/readwrite/Node.java    |    9 +-
 .../plc4x/java/opcua/readwrite/NodeAttributes.java |    3 +
 .../apache/plc4x/java/opcua/readwrite/NodeId.java  |    3 +
 .../java/opcua/readwrite/NodeIdByteString.java     |    3 +
 .../plc4x/java/opcua/readwrite/NodeIdFourByte.java |    3 +
 .../plc4x/java/opcua/readwrite/NodeIdGuid.java     |    3 +
 .../plc4x/java/opcua/readwrite/NodeIdNumeric.java  |    3 +
 .../plc4x/java/opcua/readwrite/NodeIdString.java   |    3 +
 .../plc4x/java/opcua/readwrite/NodeIdTwoByte.java  |    3 +
 .../java/opcua/readwrite/NodeIdTypeDefinition.java |    3 +
 .../plc4x/java/opcua/readwrite/NodeReference.java  |    5 +-
 .../java/opcua/readwrite/NodeTypeDescription.java  |    5 +-
 .../java/opcua/readwrite/NormalizedString.java     |    3 +
 .../java/opcua/readwrite/NotificationData.java     |    3 +
 .../java/opcua/readwrite/NotificationMessage.java  |    5 +-
 .../plc4x/java/opcua/readwrite/NullExtension.java  |    3 +
 .../plc4x/java/opcua/readwrite/NumericNodeId.java  |    3 +
 .../plc4x/java/opcua/readwrite/NumericRange.java   |    3 +
 .../plc4x/java/opcua/readwrite/OpcuaAPU.java       |    3 +
 .../opcua/readwrite/OpcuaAcknowledgeResponse.java  |    3 +
 .../java/opcua/readwrite/OpcuaCloseRequest.java    |    3 +
 .../java/opcua/readwrite/OpcuaHelloRequest.java    |    3 +
 .../java/opcua/readwrite/OpcuaMessageRequest.java  |    3 +
 .../java/opcua/readwrite/OpcuaMessageResponse.java |    3 +
 .../java/opcua/readwrite/OpcuaOpenRequest.java     |    3 +
 .../java/opcua/readwrite/OpcuaOpenResponse.java    |    3 +
 .../plc4x/java/opcua/readwrite/OpcuaVector.java    |    3 +
 .../opcua/readwrite/OpenSecureChannelRequest.java  |    3 +
 .../opcua/readwrite/OpenSecureChannelResponse.java |    3 +
 .../plc4x/java/opcua/readwrite/OptionSet.java      |    3 +
 .../plc4x/java/opcua/readwrite/Orientation.java    |    3 +
 .../plc4x/java/opcua/readwrite/ParsingResult.java  |    7 +-
 .../java/opcua/readwrite/PascalByteString.java     |    3 +
 .../plc4x/java/opcua/readwrite/PascalString.java   |    3 +
 .../readwrite/ProgramDiagnostic2DataType.java      |   11 +-
 .../opcua/readwrite/ProgramDiagnosticDataType.java |    7 +-
 .../readwrite/PubSubConfigurationDataType.java     |    7 +-
 .../opcua/readwrite/PubSubConnectionDataType.java  |    9 +-
 .../java/opcua/readwrite/PubSubGroupDataType.java  |    7 +-
 .../plc4x/java/opcua/readwrite/PublishRequest.java |    5 +-
 .../java/opcua/readwrite/PublishResponse.java      |    7 +-
 .../readwrite/PublishedDataSetSourceDataType.java  |    3 +
 .../opcua/readwrite/PublishedVariableDataType.java |    5 +-
 .../plc4x/java/opcua/readwrite/QualifiedName.java  |    3 +
 .../java/opcua/readwrite/QueryDataDescription.java |    3 +
 .../plc4x/java/opcua/readwrite/QueryDataSet.java   |    5 +-
 .../java/opcua/readwrite/QueryFirstRequest.java    |    5 +-
 .../java/opcua/readwrite/QueryFirstResponse.java   |    9 +-
 .../java/opcua/readwrite/QueryNextRequest.java     |    3 +
 .../java/opcua/readwrite/QueryNextResponse.java    |    5 +-
 .../apache/plc4x/java/opcua/readwrite/Range.java   |    3 +
 .../plc4x/java/opcua/readwrite/RationalNumber.java |    3 +
 .../plc4x/java/opcua/readwrite/ReadRequest.java    |    5 +-
 .../plc4x/java/opcua/readwrite/ReadResponse.java   |    7 +-
 .../plc4x/java/opcua/readwrite/ReadValueId.java    |    3 +
 .../readwrite/ReaderGroupMessageDataType.java      |    3 +
 .../readwrite/ReaderGroupTransportDataType.java    |    3 +
 .../opcua/readwrite/RedundantServerDataType.java   |    3 +
 .../java/opcua/readwrite/ReferenceDescription.java |    3 +
 .../plc4x/java/opcua/readwrite/ReferenceNode.java  |    3 +
 .../java/opcua/readwrite/RegisterNodesRequest.java |    5 +-
 .../opcua/readwrite/RegisterNodesResponse.java     |    5 +-
 .../opcua/readwrite/RegisterServer2Request.java    |    5 +-
 .../opcua/readwrite/RegisterServer2Response.java   |    7 +-
 .../opcua/readwrite/RegisterServerRequest.java     |    3 +
 .../opcua/readwrite/RegisterServerResponse.java    |    3 +
 .../java/opcua/readwrite/RegisteredServer.java     |    7 +-
 .../plc4x/java/opcua/readwrite/RelativePath.java   |    5 +-
 .../java/opcua/readwrite/RelativePathElement.java  |    3 +
 .../java/opcua/readwrite/RepublishRequest.java     |    3 +
 .../java/opcua/readwrite/RepublishResponse.java    |    3 +
 .../plc4x/java/opcua/readwrite/RequestHeader.java  |    3 +
 .../plc4x/java/opcua/readwrite/ResponseHeader.java |    5 +-
 .../java/opcua/readwrite/RolePermissionType.java   |    3 +
 .../java/opcua/readwrite/RsaEncryptedSecret.java   |    3 +
 .../SamplingIntervalDiagnosticsDataType.java       |    3 +
 .../readwrite/SemanticChangeStructureDataType.java |    3 +
 .../ServerDiagnosticsSummaryDataType.java          |    3 +
 .../java/opcua/readwrite/ServerOnNetwork.java      |    5 +-
 .../java/opcua/readwrite/ServerStatusDataType.java |    3 +
 .../opcua/readwrite/ServiceCounterDataType.java    |    3 +
 .../plc4x/java/opcua/readwrite/ServiceFault.java   |    3 +
 .../readwrite/SessionAuthenticationToken.java      |    3 +
 .../readwrite/SessionDiagnosticsDataType.java      |    5 +-
 .../SessionSecurityDiagnosticsDataType.java        |    5 +-
 .../readwrite/SessionlessInvokeRequestType.java    |    9 +-
 .../readwrite/SessionlessInvokeResponseType.java   |    7 +-
 .../opcua/readwrite/SetMonitoringModeRequest.java  |    3 +
 .../opcua/readwrite/SetMonitoringModeResponse.java |    7 +-
 .../opcua/readwrite/SetPublishingModeRequest.java  |    3 +
 .../opcua/readwrite/SetPublishingModeResponse.java |    7 +-
 .../java/opcua/readwrite/SetTriggeringRequest.java |    3 +
 .../opcua/readwrite/SetTriggeringResponse.java     |   11 +-
 .../plc4x/java/opcua/readwrite/SignatureData.java  |    3 +
 .../opcua/readwrite/SignedSoftwareCertificate.java |    3 +
 .../opcua/readwrite/StatusChangeNotification.java  |    3 +
 .../plc4x/java/opcua/readwrite/StatusCode.java     |    3 +
 .../plc4x/java/opcua/readwrite/StatusResult.java   |    3 +
 .../plc4x/java/opcua/readwrite/StringNodeId.java   |    3 +
 .../plc4x/java/opcua/readwrite/Structure.java      |    3 +
 .../plc4x/java/opcua/readwrite/StructureField.java |    3 +
 .../opcua/readwrite/SubscribedDataSetDataType.java |    3 +
 .../readwrite/SubscriptionAcknowledgement.java     |    3 +
 .../readwrite/SubscriptionDiagnosticsDataType.java |    3 +
 .../apache/plc4x/java/opcua/readwrite/Time.java    |    3 +
 .../plc4x/java/opcua/readwrite/TimeString.java     |    3 +
 .../java/opcua/readwrite/TimeZoneDataType.java     |    3 +
 .../plc4x/java/opcua/readwrite/TransferResult.java |    3 +
 .../readwrite/TransferSubscriptionsRequest.java    |    3 +
 .../readwrite/TransferSubscriptionsResponse.java   |    7 +-
 .../TranslateBrowsePathsToNodeIdsRequest.java      |    5 +-
 .../TranslateBrowsePathsToNodeIdsResponse.java     |    7 +-
 .../java/opcua/readwrite/TrustListDataType.java    |   11 +-
 .../plc4x/java/opcua/readwrite/TwoByteNodeId.java  |    3 +
 .../apache/plc4x/java/opcua/readwrite/Union.java   |    3 +
 .../opcua/readwrite/UnregisterNodesRequest.java    |    5 +-
 .../opcua/readwrite/UnregisterNodesResponse.java   |    3 +
 .../opcua/readwrite/UnsignedRationalNumber.java    |    3 +
 .../java/opcua/readwrite/UserIdentityToken.java    |    3 +
 .../readwrite/UserIdentityTokenDefinition.java     |    3 +
 .../opcua/readwrite/UserNameIdentityToken.java     |    3 +
 .../java/opcua/readwrite/UserTokenPolicy.java      |    3 +
 .../apache/plc4x/java/opcua/readwrite/UtcTime.java |    3 +
 .../apache/plc4x/java/opcua/readwrite/Variant.java |    3 +
 .../plc4x/java/opcua/readwrite/VariantBoolean.java |    3 +
 .../plc4x/java/opcua/readwrite/VariantByte.java    |    3 +
 .../java/opcua/readwrite/VariantByteString.java    |    5 +-
 .../java/opcua/readwrite/VariantDataValue.java     |    5 +-
 .../java/opcua/readwrite/VariantDateTime.java      |    3 +
 .../opcua/readwrite/VariantDiagnosticInfo.java     |    5 +-
 .../plc4x/java/opcua/readwrite/VariantDouble.java  |    3 +
 .../opcua/readwrite/VariantExpandedNodeId.java     |    5 +-
 .../opcua/readwrite/VariantExtensionObject.java    |    5 +-
 .../plc4x/java/opcua/readwrite/VariantFloat.java   |    3 +
 .../plc4x/java/opcua/readwrite/VariantGuid.java    |    5 +-
 .../plc4x/java/opcua/readwrite/VariantInt16.java   |    3 +
 .../plc4x/java/opcua/readwrite/VariantInt32.java   |    3 +
 .../plc4x/java/opcua/readwrite/VariantInt64.java   |    3 +
 .../java/opcua/readwrite/VariantLocalizedText.java |    5 +-
 .../plc4x/java/opcua/readwrite/VariantNodeId.java  |    5 +-
 .../java/opcua/readwrite/VariantQualifiedName.java |    5 +-
 .../plc4x/java/opcua/readwrite/VariantSByte.java   |    3 +
 .../java/opcua/readwrite/VariantStatusCode.java    |    5 +-
 .../plc4x/java/opcua/readwrite/VariantString.java  |    5 +-
 .../plc4x/java/opcua/readwrite/VariantUInt16.java  |    3 +
 .../plc4x/java/opcua/readwrite/VariantUInt32.java  |    3 +
 .../plc4x/java/opcua/readwrite/VariantUInt64.java  |    3 +
 .../plc4x/java/opcua/readwrite/VariantVariant.java |    5 +-
 .../java/opcua/readwrite/VariantXmlElement.java    |    5 +-
 .../plc4x/java/opcua/readwrite/VersionTime.java    |    3 +
 .../java/opcua/readwrite/ViewDescription.java      |    3 +
 .../plc4x/java/opcua/readwrite/WriteRequest.java   |    5 +-
 .../plc4x/java/opcua/readwrite/WriteResponse.java  |    7 +-
 .../plc4x/java/opcua/readwrite/WriteValue.java     |    3 +
 .../readwrite/WriterGroupMessageDataType.java      |    3 +
 .../readwrite/WriterGroupTransportDataType.java    |    3 +
 .../java/opcua/readwrite/X509IdentityToken.java    |    3 +
 .../apache/plc4x/java/opcua/readwrite/XVType.java  |    3 +
 .../plc4x/java/opcua/readwrite/XmlElement.java     |    3 +
 .../java/openprotocol/readwrite/Constants.java     |    3 +
 .../readwrite/OpenProtocolMessage.java             |    3 +
 .../readwrite/OpenProtocolMessageAlarm.java        |    3 +
 .../OpenProtocolMessageAlarmAcknowledge.java       |    3 +
 .../OpenProtocolMessageAlarmAcknowledgeRev1.java   |    3 +
 .../readwrite/OpenProtocolMessageAlarmRev1.java    |    3 +
 .../readwrite/OpenProtocolMessageAlarmRev2.java    |    3 +
 .../readwrite/OpenProtocolMessageAlarmStatus.java  |    3 +
 .../OpenProtocolMessageAlarmStatusAcknowledge.java |    3 +
 ...nProtocolMessageAlarmStatusAcknowledgeRev1.java |    3 +
 .../OpenProtocolMessageAlarmStatusRev1.java        |    3 +
 .../OpenProtocolMessageAlarmStatusRev2.java        |    3 +
 .../OpenProtocolMessageAlarmSubscribe.java         |    3 +
 .../OpenProtocolMessageAlarmSubscribeRev1.java     |    3 +
 .../OpenProtocolMessageAlarmUnsubscribe.java       |    3 +
 .../OpenProtocolMessageAlarmUnsubscribeRev1.java   |    3 +
 ...nProtocolMessageApplicationCommandAccepted.java |    3 +
 ...tocolMessageApplicationCommandAcceptedRev1.java |    3 +
 ...OpenProtocolMessageApplicationCommandError.java |    3 +
 ...ProtocolMessageApplicationCommandErrorRev1.java |    3 +
 ...otocolMessageApplicationCommunicationStart.java |    3 +
 ...geApplicationCommunicationStartAcknowledge.java |    3 +
 ...plicationCommunicationStartAcknowledgeRev1.java |    3 +
 ...plicationCommunicationStartAcknowledgeRev2.java |    3 +
 ...plicationCommunicationStartAcknowledgeRev3.java |    3 +
 ...plicationCommunicationStartAcknowledgeRev4.java |    3 +
 ...plicationCommunicationStartAcknowledgeRev5.java |    3 +
 ...plicationCommunicationStartAcknowledgeRev6.java |    3 +
 ...rotocolMessageApplicationCommunicationStop.java |    3 +
 ...otocolMessageApplicationGenericDataRequest.java |    3 +
 ...olMessageApplicationGenericDataRequestRev1.java |    3 +
 ...tocolMessageApplicationGenericSubscription.java |    3 +
 ...lMessageApplicationGenericSubscriptionRev1.java |    3 +
 ...otocolMessageApplicationGenericUnsubscribe.java |    3 +
 ...olMessageApplicationGenericUnsubscribeRev1.java |    3 +
 .../readwrite/OpenProtocolMessageDisableTool.java  |    3 +
 .../OpenProtocolMessageDisableToolRev1.java        |    3 +
 .../OpenProtocolMessageDynamicPsetSelection.java   |    3 +
 ...penProtocolMessageDynamicPsetSelectionRev1.java |    5 +-
 .../readwrite/OpenProtocolMessageEnableTool.java   |    3 +
 .../OpenProtocolMessageEnableToolRev1.java         |    3 +
 ...penProtocolMessageExecuteDynamicJobRequest.java |    3 +
 ...rotocolMessageExecuteDynamicJobRequestRev1.java |    3 +
 ...tocolMessageExecuteDynamicJobRequestRev999.java |    3 +
 ...enProtocolMessageIdentifierDownloadRequest.java |    3 +
 ...otocolMessageIdentifierDownloadRequestRev1.java |    3 +
 ...lMessageKeepAliveOpenProtocolCommunication.java |    3 +
 ...sageKeepAliveOpenProtocolCommunicationRev1.java |    3 +
 ...penProtocolMessageLastTighteningResultData.java |    3 +
 ...rotocolMessageLastTighteningResultDataRev1.java |    3 +
 ...rotocolMessageLastTighteningResultDataRev2.java |    3 +
 ...rotocolMessageLastTighteningResultDataRev3.java |    3 +
 ...rotocolMessageLastTighteningResultDataRev4.java |    3 +
 ...rotocolMessageLastTighteningResultDataRev5.java |    3 +
 ...rotocolMessageLastTighteningResultDataRev6.java |    3 +
 ...rotocolMessageLastTighteningResultDataRev7.java |    3 +
 ...tocolMessageLastTighteningResultDataRev998.java |    5 +-
 ...MessageLastTighteningResultDataRev999Light.java |    3 +
 ...olMessageLastTighteningResultDataSubscribe.java |    3 +
 ...ssageLastTighteningResultDataSubscribeRev1.java |    3 +
 ...rotocolMessageLinkLevelNegativeAcknowledge.java |    3 +
 ...colMessageLinkLevelNegativeAcknowledgeRev1.java |    3 +
 ...rotocolMessageLinkLevelPositiveAcknowledge.java |    3 +
 ...colMessageLinkLevelPositiveAcknowledgeRev1.java |    3 +
 ...penProtocolMessageLockAtBatchDoneSubscribe.java |    3 +
 ...rotocolMessageLockAtBatchDoneSubscribeRev1.java |    3 +
 ...nProtocolMessageLockAtBatchDoneUnsubscribe.java |    3 +
 ...tocolMessageLockAtBatchDoneUnsubscribeRev1.java |    3 +
 .../OpenProtocolMessageLockAtBatchDoneUpload.java  |    3 +
 ...colMessageLockAtBatchDoneUploadAcknowledge.java |    3 +
 ...essageLockAtBatchDoneUploadAcknowledgeRev1.java |    3 +
 ...enProtocolMessageLockAtBatchDoneUploadRev1.java |    3 +
 ...ProtocolMessageParameterSetDataUploadReply.java |    3 +
 ...ocolMessageParameterSetDataUploadReplyRev1.java |    3 +
 ...ocolMessageParameterSetDataUploadReplyRev2.java |    3 +
 ...otocolMessageParameterSetDataUploadRequest.java |    3 +
 ...olMessageParameterSetDataUploadRequestRev1.java |    3 +
 ...olMessageParameterSetDataUploadRequestRev2.java |    3 +
 ...enProtocolMessageParameterSetIdUploadReply.java |    3 +
 ...otocolMessageParameterSetIdUploadReplyRev1.java |    3 +
 ...otocolMessageParameterSetIdUploadReplyRev2.java |    3 +
 ...otocolMessageParameterSetIdUploadReplyRev3.java |    3 +
 ...ProtocolMessageParameterSetIdUploadRequest.java |    3 +
 ...ocolMessageParameterSetIdUploadRequestRev1.java |    3 +
 .../OpenProtocolMessageParameterSetSelected.java   |    3 +
 ...ocolMessageParameterSetSelectedAcknowledge.java |    3 +
 ...MessageParameterSetSelectedAcknowledgeRev1.java |    3 +
 ...penProtocolMessageParameterSetSelectedRev1.java |    3 +
 ...penProtocolMessageParameterSetSelectedRev2.java |    3 +
 ...otocolMessageParameterSetSelectedSubscribe.java |    3 +
 ...olMessageParameterSetSelectedSubscribeRev1.java |    3 +
 ...ocolMessageParameterSetSelectedUnsubscribe.java |    3 +
 ...MessageParameterSetSelectedUnsubscribeRev1.java |    3 +
 ...colMessageProgramPsetSelectionInDynamicJob.java |    3 +
 ...essageProgramPsetSelectionInDynamicJobRev1.java |    3 +
 ...otocolMessageResetParameterSetBatchCounter.java |    3 +
 ...olMessageResetParameterSetBatchCounterRev1.java |    3 +
 .../OpenProtocolMessageResultTracesCurve.java      |    3 +
 ...enProtocolMessageResultTracesCurvePlotData.java |    3 +
 ...otocolMessageResultTracesCurvePlotDataRev1.java |    5 +-
 .../OpenProtocolMessageResultTracesCurveRev1.java  |    3 +
 .../OpenProtocolMessageSelectParameterSet.java     |    3 +
 .../OpenProtocolMessageSelectParameterSetRev1.java |    3 +
 ...penProtocolMessageSetParameterSetBatchSize.java |    3 +
 ...rotocolMessageSetParameterSetBatchSizeRev1.java |    3 +
 .../readwrite/OpenProtocolMessageSetTime.java      |    3 +
 .../readwrite/OpenProtocolMessageSetTimeRev1.java  |    3 +
 .../java/openprotocol/readwrite/StageResult.java   |    3 +
 .../openprotocol/readwrite/VariableDataField.java  |    3 +
 .../java/plc4x/readwrite/Plc4xConnectRequest.java  |    3 +
 .../java/plc4x/readwrite/Plc4xConnectResponse.java |    3 +
 .../plc4x/java/plc4x/readwrite/Plc4xConstants.java |    3 +
 .../plc4x/java/plc4x/readwrite/Plc4xMessage.java   |    3 +
 .../java/plc4x/readwrite/Plc4xReadRequest.java     |    5 +-
 .../java/plc4x/readwrite/Plc4xReadResponse.java    |    5 +-
 .../plc4x/java/plc4x/readwrite/Plc4xTag.java       |    3 +
 .../java/plc4x/readwrite/Plc4xTagRequest.java      |    3 +
 .../java/plc4x/readwrite/Plc4xTagResponse.java     |    3 +
 .../java/plc4x/readwrite/Plc4xTagValueRequest.java |    3 +
 .../plc4x/readwrite/Plc4xTagValueResponse.java     |    3 +
 .../java/plc4x/readwrite/Plc4xWriteRequest.java    |    5 +-
 .../java/plc4x/readwrite/Plc4xWriteResponse.java   |    5 +-
 .../plc4x/java/profinet/readwrite/CheckPeers.java  |    3 +
 .../profinet/readwrite/DceRpc_ActivityUuid.java    |    3 +
 .../profinet/readwrite/DceRpc_InterfaceUuid.java   |    3 +
 .../DceRpc_InterfaceUuid_ControllerInterface.java  |    3 +
 .../DceRpc_InterfaceUuid_DeviceInterface.java      |    3 +
 .../DceRpc_InterfaceUuid_ParameterInterface.java   |    3 +
 .../DceRpc_InterfaceUuid_SupervisorInterface.java  |    3 +
 .../java/profinet/readwrite/DceRpc_ObjectUuid.java |    3 +
 .../java/profinet/readwrite/DceRpc_Packet.java     |    3 +
 .../plc4x/java/profinet/readwrite/EndOfLldp.java   |    3 +
 .../java/profinet/readwrite/Ethernet_Frame.java    |    3 +
 .../profinet/readwrite/Ethernet_FramePayload.java  |    3 +
 .../readwrite/Ethernet_FramePayload_IPv4.java      |    3 +
 .../readwrite/Ethernet_FramePayload_LLDP.java      |    3 +
 .../readwrite/Ethernet_FramePayload_PnDcp.java     |    3 +
 .../Ethernet_FramePayload_VirtualLan.java          |    3 +
 .../profinet/readwrite/IODWriteRequestHeader.java  |    3 +
 .../profinet/readwrite/IODWriteResponseHeader.java |    3 +
 .../plc4x/java/profinet/readwrite/IpAddress.java   |    3 +
 .../plc4x/java/profinet/readwrite/LldpUnit.java    |    3 +
 .../plc4x/java/profinet/readwrite/Lldp_Pdu.java    |    3 +
 .../plc4x/java/profinet/readwrite/MacAddress.java  |    3 +
 .../java/profinet/readwrite/PDInterfaceAdjust.java |    3 +
 .../java/profinet/readwrite/PDPortDataCheck.java   |    3 +
 .../java/profinet/readwrite/PascalString.java      |    3 +
 .../profinet/readwrite/PcDcp_Pdu_DelayReq.java     |    3 +
 .../plc4x/java/profinet/readwrite/PnDcp_Block.java |    3 +
 .../readwrite/PnDcp_Block_ALLSelector.java         |    3 +
 .../PnDcp_Block_ControlOptionFactoryReset.java     |    3 +
 .../PnDcp_Block_ControlOptionResetToFactory.java   |    3 +
 .../PnDcp_Block_ControlOptionResponse.java         |    3 +
 .../readwrite/PnDcp_Block_ControlOptionSignal.java |    3 +
 .../readwrite/PnDcp_Block_ControlOptionStart.java  |    3 +
 .../readwrite/PnDcp_Block_ControlOptionStop.java   |    3 +
 .../PnDcp_Block_DeviceInitiativeOption.java        |    3 +
 .../PnDcp_Block_DevicePropertiesAliasName.java     |    3 +
 .../PnDcp_Block_DevicePropertiesDeviceId.java      |    3 +
 ...PnDcp_Block_DevicePropertiesDeviceInstance.java |    3 +
 .../PnDcp_Block_DevicePropertiesDeviceOptions.java |    3 +
 .../PnDcp_Block_DevicePropertiesDeviceRole.java    |    3 +
 .../PnDcp_Block_DevicePropertiesDeviceVendor.java  |    3 +
 .../PnDcp_Block_DevicePropertiesNameOfStation.java |   25 +-
 .../PnDcp_Block_DevicePropertiesOemDeviceId.java   |    3 +
 ...nDcp_Block_DevicePropertiesStandardGateway.java |    3 +
 .../PnDcp_Block_DhcpOptionClassIdentifier.java     |    3 +
 ...PnDcp_Block_DhcpOptionDhcpClientIdentifier.java |    3 +
 ...p_Block_DhcpOptionFullyQualifiedDomainName.java |    3 +
 .../readwrite/PnDcp_Block_DhcpOptionHostName.java  |    3 +
 ...PnDcp_Block_DhcpOptionParameterRequestList.java |    3 +
 .../PnDcp_Block_DhcpOptionServerIdentifier.java    |    3 +
 .../PnDcp_Block_DhcpOptionUuidBasedClient.java     |    3 +
 ..._Block_DhcpOptionVendorSpecificInformation.java |    3 +
 .../readwrite/PnDcp_Block_FullIpSuite.java         |    3 +
 .../readwrite/PnDcp_Block_IpMacAddress.java        |    3 +
 .../readwrite/PnDcp_Block_IpParameter.java         |    3 +
 .../plc4x/java/profinet/readwrite/PnDcp_Pdu.java   |    3 +
 .../profinet/readwrite/PnDcp_Pdu_AlarmLow.java     |    3 +
 .../profinet/readwrite/PnDcp_Pdu_IdentifyReq.java  |    3 +
 .../profinet/readwrite/PnDcp_Pdu_IdentifyRes.java  |    3 +
 .../readwrite/PnDcp_Pdu_IdentifyRes_Payload.java   |    3 +
 .../readwrite/PnDcp_Pdu_RealTimeCyclic.java        |   15 +
 .../java/profinet/readwrite/PnDcp_ServiceType.java |    3 +
 .../readwrite/PnDcp_SupportedDeviceOption.java     |    3 +
 .../profinet/readwrite/PnIoCM_Block_Request.java   |    3 +
 .../profinet/readwrite/PnIoCM_Block_Response.java  |    3 +
 .../java/profinet/readwrite/PnIoCm_Block.java      |    3 +
 .../readwrite/PnIoCm_Block_AlarmCrReq.java         |   30 +
 .../readwrite/PnIoCm_Block_AlarmCrRes.java         |   30 +
 .../profinet/readwrite/PnIoCm_Block_ArReq.java     |   30 +
 .../profinet/readwrite/PnIoCm_Block_ArRes.java     |   30 +
 .../profinet/readwrite/PnIoCm_Block_ArServer.java  |   50 +
 .../PnIoCm_Block_ExpectedSubmoduleReq.java         |   32 +-
 .../profinet/readwrite/PnIoCm_Block_IoCrReq.java   |   32 +-
 .../profinet/readwrite/PnIoCm_Block_IoCrRes.java   |   30 +
 .../readwrite/PnIoCm_Block_ModuleDiff.java         |   32 +-
 .../profinet/readwrite/PnIoCm_Control_Request.java |    3 +
 .../readwrite/PnIoCm_Control_Response.java         |    3 +
 .../readwrite/PnIoCm_DataUnitDataObject.java       |    3 +
 .../profinet/readwrite/PnIoCm_DataUnitIoCs.java    |    3 +
 .../PnIoCm_ExpectedSubmoduleBlockReqApi.java       |    5 +-
 .../profinet/readwrite/PnIoCm_IoCrBlockReqApi.java |    7 +-
 .../plc4x/java/profinet/readwrite/PnIoCm_IoCs.java |    3 +
 .../profinet/readwrite/PnIoCm_IoDataObject.java    |    3 +
 .../readwrite/PnIoCm_ModuleDiffBlockApi.java       |    5 +-
 .../PnIoCm_ModuleDiffBlockApi_Module.java          |    5 +-
 .../PnIoCm_ModuleDiffBlockApi_Submodule.java       |    3 +
 .../java/profinet/readwrite/PnIoCm_Packet.java     |    3 +
 .../java/profinet/readwrite/PnIoCm_Packet_Rej.java |    3 +
 .../java/profinet/readwrite/PnIoCm_Packet_Req.java |    3 +
 .../java/profinet/readwrite/PnIoCm_Packet_Res.java |    3 +
 .../java/profinet/readwrite/PnIoCm_Submodule.java  |    3 +
 .../PnIoCm_Submodule_InputAndOutputData.java       |    3 +
 .../readwrite/PnIoCm_Submodule_InputData.java      |    3 +
 .../PnIoCm_Submodule_NoInputNoOutputData.java      |    3 +
 .../readwrite/PnIoCm_Submodule_OutputData.java     |    3 +
 .../readwrite/PnIo_CyclicServiceDataUnit.java      |    3 +
 .../java/profinet/readwrite/TlvChassisId.java      |    3 +
 .../profinet/readwrite/TlvManagementAddress.java   |    3 +
 .../profinet/readwrite/TlvOrgSpecificIeee8023.java |    3 +
 .../profinet/readwrite/TlvOrgSpecificProfibus.java |    3 +
 .../readwrite/TlvOrgSpecificProfibusUnit.java      |    3 +
 .../readwrite/TlvOrganizationSpecific.java         |    3 +
 .../readwrite/TlvOrganizationSpecificUnit.java     |    3 +
 .../plc4x/java/profinet/readwrite/TlvPortId.java   |    3 +
 .../readwrite/TlvProfibusSubTypeChassisMac.java    |    3 +
 .../readwrite/TlvProfibusSubTypePortStatus.java    |    3 +
 .../java/profinet/readwrite/TlvTimeToLive.java     |    3 +
 .../plc4x/java/profinet/readwrite/UserData.java    |    3 +
 .../apache/plc4x/java/profinet/readwrite/Uuid.java |    3 +
 .../plc4x/java/profinet/device/ProfinetDevice.java |   10 +-
 .../java/profinet/gsdml/ProfinetDataItem.java      |    7 +
 .../readwrite/AlarmMessageAckObjectPushType.java   |    3 +
 .../java/s7/readwrite/AlarmMessageAckPushType.java |    5 +-
 .../s7/readwrite/AlarmMessageAckResponseType.java  |    3 +
 .../java/s7/readwrite/AlarmMessageAckType.java     |    5 +-
 .../s7/readwrite/AlarmMessageObjectAckType.java    |    3 +
 .../s7/readwrite/AlarmMessageObjectPushType.java   |    5 +-
 .../s7/readwrite/AlarmMessageObjectQueryType.java  |    3 +
 .../java/s7/readwrite/AlarmMessagePushType.java    |    5 +-
 .../java/s7/readwrite/AlarmMessageQueryType.java   |    5 +-
 .../java/s7/readwrite/AssociatedValueType.java     |    3 +
 .../apache/plc4x/java/s7/readwrite/COTPPacket.java |    3 +
 .../s7/readwrite/COTPPacketConnectionRequest.java  |    3 +
 .../s7/readwrite/COTPPacketConnectionResponse.java |    3 +
 .../plc4x/java/s7/readwrite/COTPPacketData.java    |    3 +
 .../s7/readwrite/COTPPacketDisconnectRequest.java  |    3 +
 .../s7/readwrite/COTPPacketDisconnectResponse.java |    3 +
 .../java/s7/readwrite/COTPPacketTpduError.java     |    3 +
 .../plc4x/java/s7/readwrite/COTPParameter.java     |    3 +
 .../java/s7/readwrite/COTPParameterCalledTsap.java |    3 +
 .../s7/readwrite/COTPParameterCallingTsap.java     |    3 +
 .../java/s7/readwrite/COTPParameterChecksum.java   |    3 +
 ...TPParameterDisconnectAdditionalInformation.java |    3 +
 .../java/s7/readwrite/COTPParameterTpduSize.java   |    3 +
 .../plc4x/java/s7/readwrite/DateAndTime.java       |    3 +
 .../apache/plc4x/java/s7/readwrite/S7Address.java  |    3 +
 .../plc4x/java/s7/readwrite/S7AddressAny.java      |    3 +
 .../java/s7/readwrite/S7DataAlarmMessage.java      |    3 +
 .../apache/plc4x/java/s7/readwrite/S7Message.java  |    3 +
 .../java/s7/readwrite/S7MessageObjectRequest.java  |    3 +
 .../java/s7/readwrite/S7MessageObjectResponse.java |    3 +
 .../plc4x/java/s7/readwrite/S7MessageRequest.java  |    3 +
 .../plc4x/java/s7/readwrite/S7MessageResponse.java |    3 +
 .../java/s7/readwrite/S7MessageResponseData.java   |    3 +
 .../plc4x/java/s7/readwrite/S7MessageUserData.java |    3 +
 .../plc4x/java/s7/readwrite/S7Parameter.java       |    3 +
 .../s7/readwrite/S7ParameterModeTransition.java    |    3 +
 .../s7/readwrite/S7ParameterReadVarRequest.java    |    5 +-
 .../s7/readwrite/S7ParameterReadVarResponse.java   |    3 +
 .../readwrite/S7ParameterSetupCommunication.java   |    3 +
 .../java/s7/readwrite/S7ParameterUserData.java     |    5 +-
 .../java/s7/readwrite/S7ParameterUserDataItem.java |    3 +
 .../S7ParameterUserDataItemCPUFunctions.java       |    3 +
 .../s7/readwrite/S7ParameterWriteVarRequest.java   |    5 +-
 .../s7/readwrite/S7ParameterWriteVarResponse.java  |    3 +
 .../apache/plc4x/java/s7/readwrite/S7Payload.java  |    3 +
 .../plc4x/java/s7/readwrite/S7PayloadAlarm8.java   |    3 +
 .../java/s7/readwrite/S7PayloadAlarmAckInd.java    |    3 +
 .../plc4x/java/s7/readwrite/S7PayloadAlarmS.java   |    3 +
 .../plc4x/java/s7/readwrite/S7PayloadAlarmSC.java  |    3 +
 .../plc4x/java/s7/readwrite/S7PayloadAlarmSQ.java  |    3 +
 .../s7/readwrite/S7PayloadDiagnosticMessage.java   |    3 +
 .../plc4x/java/s7/readwrite/S7PayloadNotify.java   |    3 +
 .../plc4x/java/s7/readwrite/S7PayloadNotify8.java  |    3 +
 .../s7/readwrite/S7PayloadReadVarResponse.java     |    5 +-
 .../plc4x/java/s7/readwrite/S7PayloadUserData.java |    5 +-
 .../java/s7/readwrite/S7PayloadUserDataItem.java   |    3 +
 .../S7PayloadUserDataItemCpuFunctionAlarmAck.java  |    5 +-
 ...oadUserDataItemCpuFunctionAlarmAckResponse.java |    3 +
 ...S7PayloadUserDataItemCpuFunctionAlarmQuery.java |    3 +
 ...dUserDataItemCpuFunctionAlarmQueryResponse.java |    3 +
 ...loadUserDataItemCpuFunctionMsgSubscription.java |    3 +
 ...temCpuFunctionMsgSubscriptionAlarmResponse.java |    3 +
 ...DataItemCpuFunctionMsgSubscriptionResponse.java |    3 +
 ...aItemCpuFunctionMsgSubscriptionSysResponse.java |    3 +
 ...yloadUserDataItemCpuFunctionReadSzlRequest.java |    3 +
 ...loadUserDataItemCpuFunctionReadSzlResponse.java |    5 +-
 .../s7/readwrite/S7PayloadWriteVarRequest.java     |    5 +-
 .../s7/readwrite/S7PayloadWriteVarResponse.java    |    5 +-
 .../java/s7/readwrite/S7VarPayloadDataItem.java    |   13 +-
 .../java/s7/readwrite/S7VarPayloadStatusItem.java  |    3 +
 .../s7/readwrite/S7VarRequestParameterItem.java    |    3 +
 .../S7VarRequestParameterItemAddress.java          |    3 +
 .../org/apache/plc4x/java/s7/readwrite/State.java  |    3 +
 .../plc4x/java/s7/readwrite/SzlDataTreeItem.java   |    3 +
 .../org/apache/plc4x/java/s7/readwrite/SzlId.java  |    3 +
 .../apache/plc4x/java/s7/readwrite/TPKTPacket.java |    3 +
 plc4j/drivers/s7/src/test/java/S7IoTest.java       |   36 +-
 .../plc4x/java/simulated/readwrite/Dummy.java      |    3 +
 .../helloads/telemetry/DeviceManagerConstants.java |   55 +
 .../helloads/telemetry/EtherCatDevice.java         |   56 +
 .../telemetry/EtherCatMasterConstants.java         |  100 ++
 .../telemetry/HelloAdsEtherCatTelemetry.java       |  164 +--
 .../helloads/telemetry/HelloAdsTelemetry.java      |   48 +-
 .../examples/helloplc4x/read/HelloPlc4xRead.java   |   30 +-
 .../plc4x/java/spi/codegen/ThreadLocalHelper.java  |    9 +-
 .../java/spi/codegen/fields/FieldReaderArray.java  |    2 +
 .../java/spi/codegen/fields/FieldWriterArray.java  |    9 +-
 .../java/plc4x/readwrite/Plc4xConnectRequest.java  |    3 +
 .../java/plc4x/readwrite/Plc4xConnectResponse.java |    3 +
 .../plc4x/java/plc4x/readwrite/Plc4xConstants.java |    3 +
 .../plc4x/java/plc4x/readwrite/Plc4xMessage.java   |    3 +
 .../java/plc4x/readwrite/Plc4xReadRequest.java     |    5 +-
 .../java/plc4x/readwrite/Plc4xReadResponse.java    |    5 +-
 .../plc4x/java/plc4x/readwrite/Plc4xTag.java       |    3 +
 .../java/plc4x/readwrite/Plc4xTagRequest.java      |    3 +
 .../java/plc4x/readwrite/Plc4xTagResponse.java     |    3 +
 .../java/plc4x/readwrite/Plc4xTagValueRequest.java |    3 +
 .../plc4x/readwrite/Plc4xTagValueResponse.java     |    3 +
 .../java/plc4x/readwrite/Plc4xWriteRequest.java    |    5 +-
 .../java/plc4x/readwrite/Plc4xWriteResponse.java   |    5 +-
 .../java/socketcan/readwrite/SocketCANFrame.java   |    3 +
 .../s7/src/main/resources/protocols/s7/s7.mspec    |    3 +-
 .../resources/protocols/s7/DriverTestsuite.xml     |    3 +-
 .../protocols/s7/ParserSerializerTestsuite.xml     |   14 +-
 .../plc4py/protocols/modbus/readwrite/DataItem.py  |   48 -
 .../plc4py/protocols/modbus/readwrite/ModbusADU.py |    3 -
 .../plc4py/protocols/modbus/readwrite/ModbusPDU.py |   39 -
 .../protocols/simulated/readwrite/DataItem.py      |   55 -
 .../plc4x/java/df1/readwrite/DF1Command.java       |    3 +
 .../apache/plc4x/java/df1/readwrite/DF1Symbol.java |    3 +
 .../java/df1/readwrite/DF1SymbolMessageFrame.java  |    3 +
 .../df1/readwrite/DF1SymbolMessageFrameACK.java    |    3 +
 .../df1/readwrite/DF1SymbolMessageFrameNAK.java    |    3 +
 .../df1/readwrite/DF1UnprotectedReadRequest.java   |    3 +
 .../df1/readwrite/DF1UnprotectedReadResponse.java  |    3 +
 5222 files changed, 50806 insertions(+), 45170 deletions(-)

diff --cc plc4c/drivers/s7/src/driver_s7_sm_read.c
index 2a07026a47,abc8d59f64..6aa23f8b8e
--- a/plc4c/drivers/s7/src/driver_s7_sm_read.c
+++ b/plc4c/drivers/s7/src/driver_s7_sm_read.c
@@@ -260,12 -257,12 +260,12 @@@ plc4c_return_code plc4c_driver_s7_parse
        all_data_item = plc4c_data_create_list_data(all_list);
        free(all_list);
        for (idx = 0; idx < num_elements ; idx++) {
-         plc4c_s7_read_write_data_item_parse(read_buffer, data_protocol_id, string_length, string_encoding, &data_item);
 -        plc4c_s7_read_write_data_item_parse(plc4x_spi_context_background(), read_buffer, data_protocol_id, string_length, &data_item);
 -        plc4c_utils_list_insert_head_value(all_data_item->data.list_value, (void*)data_item);
++        plc4c_s7_read_write_data_item_parse(plc4x_spi_context_background(), read_buffer, data_protocol_id, string_length, string_encoding, &data_item);
 +        plc4c_utils_list_insert_head_value(&all_data_item->data.list_value, (void*)data_item);
        }
        data_item = all_data_item;
      } else {
-       plc4c_s7_read_write_data_item_parse(read_buffer, data_protocol_id, string_length,string_encoding, &data_item);
 -      plc4c_s7_read_write_data_item_parse(plc4x_spi_context_background(), read_buffer, data_protocol_id, string_length, &data_item);
++      plc4c_s7_read_write_data_item_parse(plc4x_spi_context_background(), read_buffer, data_protocol_id, string_length,string_encoding, &data_item);
      }
  
      // Create a new response value-item
diff --cc plc4c/generated-sources/s7/include/data_item.h
index a7f40affcc,32893bb96b..26527f78bf
--- a/plc4c/generated-sources/s7/include/data_item.h
+++ b/plc4c/generated-sources/s7/include/data_item.h
@@@ -27,12 -28,12 +28,12 @@@
  
  // Code generated by code-generation. DO NOT EDIT.
  
- plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item);
 -plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4x_spi_context ctx, plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item);
++plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4x_spi_context ctx, plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item);
  
- plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item);
 -plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4x_spi_context ctx, plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item);
++plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4x_spi_context ctx, plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item);
  
- uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4c_data* data_item, char* dataProtocolId, int32_t stringLength, char* stringEncoding);
 -uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4x_spi_context ctx, plc4c_data* data_item, char* dataProtocolId, int32_t stringLength);
++uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4x_spi_context ctx, plc4c_data* data_item, char* dataProtocolId, int32_t stringLength, char* stringEncoding);
  
- uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4c_data* data_item, char* dataProtocolId, int32_t stringLength, char* stringEncoding);
 -uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4x_spi_context ctx, plc4c_data* data_item, char* dataProtocolId, int32_t stringLength);
++uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4x_spi_context ctx, plc4c_data* data_item, char* dataProtocolId, int32_t stringLength, char* stringEncoding);
  
  #endif  // PLC4C_S7_READ_WRITE_DATA_ITEM_H_
diff --cc plc4c/generated-sources/s7/src/data_item.c
index 2ef40e710c,c0e09c4108..fd94f5a49e
--- a/plc4c/generated-sources/s7/src/data_item.c
+++ b/plc4c/generated-sources/s7/src/data_item.c
@@@ -31,7 -31,7 +31,7 @@@
  // Code generated by code-generation. DO NOT EDIT.
  
  // Parse function.
- plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item) {
 -plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4x_spi_context ctx, plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item) {
++plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4x_spi_context ctx, plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item) {
      uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
      uint16_t curPos;
      plc4c_return_code _res = OK;
@@@ -382,7 -390,7 +382,7 @@@
    return OK;
  }
  
- plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item) {
 -plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4x_spi_context ctx, plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item) {
++plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4x_spi_context ctx, plc4c_spi_write_buffer* writeBuffer, char* dataProtocolId, int32_t stringLength, char* stringEncoding, plc4c_data** data_item) {
    plc4c_return_code _res = OK;
          if(strcmp(dataProtocolId, "IEC61131_BOOL") == 0) { /* BOOL */
  
@@@ -591,11 -607,11 +591,11 @@@
    return OK;
  }
  
- uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4c_data* data_item, char* data_protocol_id, int32_t string_length, char* string_encoding) {
-   return plc4c_s7_read_write_data_item_length_in_bits(data_item, data_protocol_id, string_length, string_encoding) / 8;
 -uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4x_spi_context ctx, plc4c_data* data_item, char* data_protocol_id, int32_t string_length) {
 -  return plc4c_s7_read_write_data_item_length_in_bits(ctx, data_item, data_protocol_id, string_length) / 8;
++uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4x_spi_context ctx, plc4c_data* data_item, char* data_protocol_id, int32_t string_length, char* string_encoding) {
++  return plc4c_s7_read_write_data_item_length_in_bits(ctx, data_item, data_protocol_id, string_length, string_encoding) / 8;
  }
  
- uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4c_data* data_item, char* dataProtocolId, int32_t stringLength, char* stringEncoding) {
 -uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4x_spi_context ctx, plc4c_data* data_item, char* dataProtocolId, int32_t stringLength) {
++uint16_t plc4c_s7_read_write_data_item_length_in_bits(plc4x_spi_context ctx, plc4c_data* data_item, char* dataProtocolId, int32_t stringLength, char* stringEncoding) {
    uint16_t lengthInBits = 0;
      if(strcmp(dataProtocolId, "IEC61131_BOOL") == 0) { /* BOOL */
  
diff --cc plc4go/internal/s7/Reader.go
index 7df4362469,a0c3aca945..15b5fd76fd
--- a/plc4go/internal/s7/Reader.go
+++ b/plc4go/internal/s7/Reader.go
@@@ -219,7 -216,7 +219,7 @@@ func (m *Reader) ToPlc4xReadResponse(re
  		log.Trace().Msg("decode data")
  		responseCodes[tagName] = responseCode
  		if responseCode == model.PlcResponseCode_OK {
- 			plcValue, err := readWriteModel.DataItemParse(payloadItem.GetData(), tag.GetDataType().DataProtocolId(), int32(stringLength), tag.GetStringEncoding())
 -			plcValue, err := readWriteModel.DataItemParse(context.Background(), payloadItem.GetData(), tag.GetDataType().DataProtocolId(), int32(tag.GetNumElements()))
++			plcValue, err := readWriteModel.DataItemParse(context.Background(), payloadItem.GetData(), tag.GetDataType().DataProtocolId(), int32(stringLength), tag.GetStringEncoding())
  			if err != nil {
  				return nil, errors.Wrap(err, "Error parsing data item")
  			}
diff --cc plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnDcp_Pdu_RealTimeCyclic.java
index 1acea8a638,9ed532a12d..d54442408a
--- a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnDcp_Pdu_RealTimeCyclic.java
+++ b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnDcp_Pdu_RealTimeCyclic.java
@@@ -173,10 -174,11 +174,14 @@@ public class PnDcp_Pdu_RealTimeCyclic e
    public int getLengthInBits() {
      int lengthInBits = super.getLengthInBits();
      PnDcp_Pdu_RealTimeCyclic _value = this;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
+     // Manual Field (dataUnit)
+     lengthInBits += ((dataUnit.getLengthInBytes())) * (8);
  
 +    // Manual Field (dataUnit)
 +    lengthInBits += ((dataUnit.getLengthInBytes())) * (8);
 +
      // Simple field (cycleCounter)
      lengthInBits += 16;
  
@@@ -216,8 -218,9 +221,18 @@@
      PositionAware positionAware = readBuffer;
      int startPos = positionAware.getPos();
      int curPos;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
+     PnIo_CyclicServiceDataUnit dataUnit =
++        readManualField(
++            "dataUnit",
++            readBuffer,
++            () ->
++                (PnIo_CyclicServiceDataUnit)
++                    (org.apache.plc4x.java.profinet.readwrite.utils.StaticHelper.readDataUnit(
++                        readBuffer)));
 +
 +    PnIo_CyclicServiceDataUnit dataUnit =
          readManualField(
              "dataUnit",
              readBuffer,
diff --cc plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_AlarmCrReq.java
index 410da9f80a,ea08b3e6cc..7078d7d432
--- a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_AlarmCrReq.java
+++ b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_AlarmCrReq.java
@@@ -257,16 -258,17 +258,26 @@@ public class PnIoCm_Block_AlarmCrReq ex
    public int getLengthInBits() {
      int lengthInBits = super.getLengthInBits();
      PnIoCm_Block_AlarmCrReq _value = this;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
+     // Implicit Field (blockLength)
+     lengthInBits += 16;
+ 
+     // Simple field (blockVersionHigh)
+     lengthInBits += 8;
+ 
+     // Simple field (blockVersionLow)
+     lengthInBits += 8;
  
 +    // Implicit Field (blockLength)
 +    lengthInBits += 16;
 +
 +    // Simple field (blockVersionHigh)
 +    lengthInBits += 8;
 +
 +    // Simple field (blockVersionLow)
 +    lengthInBits += 8;
 +
      // Simple field (alarmType)
      lengthInBits += 16;
  
@@@ -309,7 -311,8 +320,26 @@@
      PositionAware positionAware = readBuffer;
      int startPos = positionAware.getPos();
      int curPos;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
++    int blockLength =
++        readImplicitField(
++            "blockLength",
++            readUnsignedInt(readBuffer, 16),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionHigh =
++        readSimpleField(
++            "blockVersionHigh",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionLow =
++        readSimpleField(
++            "blockVersionLow",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 +
      int blockLength =
          readImplicitField(
              "blockLength",
diff --cc plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_AlarmCrRes.java
index 9cdf91aaeb,b20e3da94f..1bbe50aca5
--- a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_AlarmCrRes.java
+++ b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_AlarmCrRes.java
@@@ -149,16 -150,17 +150,26 @@@ public class PnIoCm_Block_AlarmCrRes ex
    public int getLengthInBits() {
      int lengthInBits = super.getLengthInBits();
      PnIoCm_Block_AlarmCrRes _value = this;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
+     // Implicit Field (blockLength)
+     lengthInBits += 16;
+ 
+     // Simple field (blockVersionHigh)
+     lengthInBits += 8;
+ 
+     // Simple field (blockVersionLow)
+     lengthInBits += 8;
  
 +    // Implicit Field (blockLength)
 +    lengthInBits += 16;
 +
 +    // Simple field (blockVersionHigh)
 +    lengthInBits += 8;
 +
 +    // Simple field (blockVersionLow)
 +    lengthInBits += 8;
 +
      // Simple field (alarmType)
      lengthInBits += 16;
  
@@@ -177,7 -179,8 +188,26 @@@
      PositionAware positionAware = readBuffer;
      int startPos = positionAware.getPos();
      int curPos;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
++    int blockLength =
++        readImplicitField(
++            "blockLength",
++            readUnsignedInt(readBuffer, 16),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionHigh =
++        readSimpleField(
++            "blockVersionHigh",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionLow =
++        readSimpleField(
++            "blockVersionLow",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 +
      int blockLength =
          readImplicitField(
              "blockLength",
diff --cc plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ArReq.java
index c23cc115ba,6c88f4746f..760d7bad26
--- a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ArReq.java
+++ b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ArReq.java
@@@ -376,16 -377,17 +377,26 @@@ public class PnIoCm_Block_ArReq extend
    public int getLengthInBits() {
      int lengthInBits = super.getLengthInBits();
      PnIoCm_Block_ArReq _value = this;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
+     // Implicit Field (blockLength)
+     lengthInBits += 16;
+ 
+     // Simple field (blockVersionHigh)
+     lengthInBits += 8;
+ 
+     // Simple field (blockVersionLow)
+     lengthInBits += 8;
  
 +    // Implicit Field (blockLength)
 +    lengthInBits += 16;
 +
 +    // Simple field (blockVersionHigh)
 +    lengthInBits += 8;
 +
 +    // Simple field (blockVersionLow)
 +    lengthInBits += 8;
 +
      // Simple field (arType)
      lengthInBits += 16;
  
@@@ -455,7 -457,8 +466,26 @@@
      PositionAware positionAware = readBuffer;
      int startPos = positionAware.getPos();
      int curPos;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
++    int blockLength =
++        readImplicitField(
++            "blockLength",
++            readUnsignedInt(readBuffer, 16),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionHigh =
++        readSimpleField(
++            "blockVersionHigh",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionLow =
++        readSimpleField(
++            "blockVersionLow",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 +
      int blockLength =
          readImplicitField(
              "blockLength",
diff --cc plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ArRes.java
index a2dd45cf1b,8c14bfcd4e..47fdfe0900
--- a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ArRes.java
+++ b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ArRes.java
@@@ -175,16 -176,17 +176,26 @@@ public class PnIoCm_Block_ArRes extend
    public int getLengthInBits() {
      int lengthInBits = super.getLengthInBits();
      PnIoCm_Block_ArRes _value = this;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
+     // Implicit Field (blockLength)
+     lengthInBits += 16;
+ 
+     // Simple field (blockVersionHigh)
+     lengthInBits += 8;
+ 
+     // Simple field (blockVersionLow)
+     lengthInBits += 8;
  
 +    // Implicit Field (blockLength)
 +    lengthInBits += 16;
 +
 +    // Simple field (blockVersionHigh)
 +    lengthInBits += 8;
 +
 +    // Simple field (blockVersionLow)
 +    lengthInBits += 8;
 +
      // Simple field (arType)
      lengthInBits += 16;
  
@@@ -209,7 -211,8 +220,26 @@@
      PositionAware positionAware = readBuffer;
      int startPos = positionAware.getPos();
      int curPos;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
++    int blockLength =
++        readImplicitField(
++            "blockLength",
++            readUnsignedInt(readBuffer, 16),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionHigh =
++        readSimpleField(
++            "blockVersionHigh",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionLow =
++        readSimpleField(
++            "blockVersionLow",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 +
      int blockLength =
          readImplicitField(
              "blockLength",
diff --cc plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ArServer.java
index 060a4aa889,d6c6943859..3b182b394b
--- a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ArServer.java
+++ b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ArServer.java
@@@ -123,25 -124,26 +124,44 @@@ public class PnIoCm_Block_ArServer exte
    public int getLengthInBits() {
      int lengthInBits = super.getLengthInBits();
      PnIoCm_Block_ArServer _value = this;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
+     // Implicit Field (blockLength)
+     lengthInBits += 16;
+ 
+     // Simple field (blockVersionHigh)
+     lengthInBits += 8;
+ 
+     // Simple field (blockVersionLow)
+     lengthInBits += 8;
+ 
+     // Simple field (stationName)
+     lengthInBits += stationName.getLengthInBits();
+ 
+     // Padding Field (padding)
+     int _timesPadding = (int) (((20) - (6)) - ((stationName.getStringLength())));
+     while (_timesPadding-- > 0) {
+       lengthInBits += 8;
+     }
  
 +    // Implicit Field (blockLength)
 +    lengthInBits += 16;
 +
 +    // Simple field (blockVersionHigh)
 +    lengthInBits += 8;
 +
 +    // Simple field (blockVersionLow)
 +    lengthInBits += 8;
 +
 +    // Simple field (stationName)
 +    lengthInBits += stationName.getLengthInBits();
 +
 +    // Padding Field (padding)
 +    int _timesPadding = (int) (((20) - (6)) - ((stationName.getStringLength())));
 +    while (_timesPadding-- > 0) {
 +      lengthInBits += 8;
 +    }
 +
      return lengthInBits;
    }
  
@@@ -151,32 -153,33 +171,62 @@@
      PositionAware positionAware = readBuffer;
      int startPos = positionAware.getPos();
      int curPos;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
+     int blockLength =
+         readImplicitField(
+             "blockLength",
+             readUnsignedInt(readBuffer, 16),
+             WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
+ 
+     short blockVersionHigh =
+         readSimpleField(
+             "blockVersionHigh",
+             readUnsignedShort(readBuffer, 8),
+             WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
+ 
+     short blockVersionLow =
+         readSimpleField(
+             "blockVersionLow",
+             readUnsignedShort(readBuffer, 8),
+             WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
+ 
+     PascalString stationName =
+         readSimpleField(
+             "stationName",
+             new DataReaderComplexDefault<>(() -> PascalString.staticParse(readBuffer), readBuffer),
+             WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
+ 
+     readPaddingField(
++        readUnsignedShort(readBuffer, 8),
++        (int) (((20) - (6)) - ((stationName.getStringLength()))),
++        WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 +
 +    int blockLength =
 +        readImplicitField(
 +            "blockLength",
 +            readUnsignedInt(readBuffer, 16),
 +            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 +
 +    short blockVersionHigh =
 +        readSimpleField(
 +            "blockVersionHigh",
 +            readUnsignedShort(readBuffer, 8),
 +            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 +
 +    short blockVersionLow =
 +        readSimpleField(
 +            "blockVersionLow",
 +            readUnsignedShort(readBuffer, 8),
 +            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 +
 +    PascalString stationName =
 +        readSimpleField(
 +            "stationName",
 +            new DataReaderComplexDefault<>(() -> PascalString.staticParse(readBuffer), readBuffer),
 +            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 +
 +    readPaddingField(
          readUnsignedShort(readBuffer, 8),
          (int) (((20) - (6)) - ((stationName.getStringLength()))),
          WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
diff --cc plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ExpectedSubmoduleReq.java
index f60a061b8b,6259486614..46a1790760
--- a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ExpectedSubmoduleReq.java
+++ b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ExpectedSubmoduleReq.java
@@@ -123,16 -124,17 +124,26 @@@ public class PnIoCm_Block_ExpectedSubmo
    public int getLengthInBits() {
      int lengthInBits = super.getLengthInBits();
      PnIoCm_Block_ExpectedSubmoduleReq _value = this;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
+     // Implicit Field (blockLength)
+     lengthInBits += 16;
+ 
+     // Simple field (blockVersionHigh)
+     lengthInBits += 8;
+ 
+     // Simple field (blockVersionLow)
+     lengthInBits += 8;
  
 +    // Implicit Field (blockLength)
 +    lengthInBits += 16;
 +
 +    // Simple field (blockVersionHigh)
 +    lengthInBits += 8;
 +
 +    // Simple field (blockVersionLow)
 +    lengthInBits += 8;
 +
      // Implicit Field (numberOfApis)
      lengthInBits += 16;
  
@@@ -154,7 -156,8 +165,26 @@@
      PositionAware positionAware = readBuffer;
      int startPos = positionAware.getPos();
      int curPos;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
++    int blockLength =
++        readImplicitField(
++            "blockLength",
++            readUnsignedInt(readBuffer, 16),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionHigh =
++        readSimpleField(
++            "blockVersionHigh",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionLow =
++        readSimpleField(
++            "blockVersionLow",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 +
      int blockLength =
          readImplicitField(
              "blockLength",
diff --cc plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_IoCrReq.java
index 64a9209658,47e22bf4bd..95ae7110f2
--- a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_IoCrReq.java
+++ b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_IoCrReq.java
@@@ -411,16 -412,17 +412,26 @@@ public class PnIoCm_Block_IoCrReq exten
    public int getLengthInBits() {
      int lengthInBits = super.getLengthInBits();
      PnIoCm_Block_IoCrReq _value = this;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
+     // Implicit Field (blockLength)
+     lengthInBits += 16;
+ 
+     // Simple field (blockVersionHigh)
+     lengthInBits += 8;
+ 
+     // Simple field (blockVersionLow)
+     lengthInBits += 8;
  
 +    // Implicit Field (blockLength)
 +    lengthInBits += 16;
 +
 +    // Simple field (blockVersionHigh)
 +    lengthInBits += 8;
 +
 +    // Simple field (blockVersionLow)
 +    lengthInBits += 8;
 +
      // Simple field (ioCrType)
      lengthInBits += 16;
  
@@@ -505,7 -507,8 +516,26 @@@
      PositionAware positionAware = readBuffer;
      int startPos = positionAware.getPos();
      int curPos;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
++    int blockLength =
++        readImplicitField(
++            "blockLength",
++            readUnsignedInt(readBuffer, 16),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionHigh =
++        readSimpleField(
++            "blockVersionHigh",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionLow =
++        readSimpleField(
++            "blockVersionLow",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 +
      int blockLength =
          readImplicitField(
              "blockLength",
diff --cc plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_IoCrRes.java
index 4916352768,44492f5c1c..73501eeb3e
--- a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_IoCrRes.java
+++ b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_IoCrRes.java
@@@ -147,16 -148,17 +148,26 @@@ public class PnIoCm_Block_IoCrRes exten
    public int getLengthInBits() {
      int lengthInBits = super.getLengthInBits();
      PnIoCm_Block_IoCrRes _value = this;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
+     // Implicit Field (blockLength)
+     lengthInBits += 16;
+ 
+     // Simple field (blockVersionHigh)
+     lengthInBits += 8;
+ 
+     // Simple field (blockVersionLow)
+     lengthInBits += 8;
  
 +    // Implicit Field (blockLength)
 +    lengthInBits += 16;
 +
 +    // Simple field (blockVersionHigh)
 +    lengthInBits += 8;
 +
 +    // Simple field (blockVersionLow)
 +    lengthInBits += 8;
 +
      // Simple field (ioCrType)
      lengthInBits += 16;
  
@@@ -175,7 -177,8 +186,26 @@@
      PositionAware positionAware = readBuffer;
      int startPos = positionAware.getPos();
      int curPos;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
++    int blockLength =
++        readImplicitField(
++            "blockLength",
++            readUnsignedInt(readBuffer, 16),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionHigh =
++        readSimpleField(
++            "blockVersionHigh",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionLow =
++        readSimpleField(
++            "blockVersionLow",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 +
      int blockLength =
          readImplicitField(
              "blockLength",
diff --cc plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ModuleDiff.java
index ab6f2fcc81,533dabe367..6bee067640
--- a/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ModuleDiff.java
+++ b/plc4j/drivers/profinet/src/main/generated/org/apache/plc4x/java/profinet/readwrite/PnIoCm_Block_ModuleDiff.java
@@@ -121,16 -122,17 +122,26 @@@ public class PnIoCm_Block_ModuleDiff ex
    public int getLengthInBits() {
      int lengthInBits = super.getLengthInBits();
      PnIoCm_Block_ModuleDiff _value = this;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
+     // Implicit Field (blockLength)
+     lengthInBits += 16;
+ 
+     // Simple field (blockVersionHigh)
+     lengthInBits += 8;
+ 
+     // Simple field (blockVersionLow)
+     lengthInBits += 8;
  
 +    // Implicit Field (blockLength)
 +    lengthInBits += 16;
 +
 +    // Simple field (blockVersionHigh)
 +    lengthInBits += 8;
 +
 +    // Simple field (blockVersionLow)
 +    lengthInBits += 8;
 +
      // Implicit Field (numberOfApis)
      lengthInBits += 16;
  
@@@ -152,7 -154,8 +163,26 @@@
      PositionAware positionAware = readBuffer;
      int startPos = positionAware.getPos();
      int curPos;
+     boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
+ 
++    int blockLength =
++        readImplicitField(
++            "blockLength",
++            readUnsignedInt(readBuffer, 16),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionHigh =
++        readSimpleField(
++            "blockVersionHigh",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
++
++    short blockVersionLow =
++        readSimpleField(
++            "blockVersionLow",
++            readUnsignedShort(readBuffer, 8),
++            WithOption.WithByteOrder(ByteOrder.BIG_ENDIAN));
 +
      int blockLength =
          readImplicitField(
              "blockLength",