You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2021/03/11 16:41:41 UTC

[plc4x] branch develop updated: plc4go: severall fixes regarding code generation + math/big import will only be rendered when required + generated code will now contain a comment which will be interpreted by the IDE + reformated code with tabs again. We need to adjust code generation here somehow + added prober .editorconfig for .go

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

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


The following commit(s) were added to refs/heads/develop by this push:
     new f011bd1  plc4go: severall fixes regarding code generation + math/big import will only be rendered when required + generated code will now contain a comment which will be interpreted by the IDE + reformated code with tabs again. We need to adjust code generation here somehow + added prober .editorconfig for .go
f011bd1 is described below

commit f011bd1979ddb2bd0d83ddece454dcba53c0b2fd
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Mar 11 17:41:22 2021 +0100

    plc4go: severall fixes regarding code generation
    + math/big import will only be rendered when required
    + generated code will now contain a comment which will be interpreted by the IDE
    + reformated code with tabs again. We need to adjust code generation here somehow
    + added prober .editorconfig for .go
---
 .editorconfig                                      |   3 +
 .../language/go/GoLanguageTemplateHelper.java      |  12 +-
 .../resources/templates/go/data-io-template.ftlh   |   2 +
 .../main/resources/templates/go/enum-template.ftlh |   2 +
 .../resources/templates/go/model-template.ftlh     |   2 +
 .../templates/go/parser-factory-template.ftlh      |   2 +
 .../templates/go/xml-parser-factory-template.ftlh  |   2 +
 .../internal/plc4go/ads/readwrite/ParserHelper.go  |   2 +
 .../plc4go/ads/readwrite/XmlParserHelper.go        |   2 +
 .../model/AdsAddDeviceNotificationRequest.go       |   1 +
 .../plc4go/ads/readwrite/model/AdsDataType.go      |   2 +
 .../ads/readwrite/model/AdsMultiRequestItem.go     | 273 ++++++++--------
 .../ads/readwrite/model/AdsMultiRequestItemRead.go | 296 +++++++++--------
 .../model/AdsMultiRequestItemReadWrite.go          | 350 ++++++++++-----------
 .../readwrite/model/AdsMultiRequestItemWrite.go    | 296 +++++++++--------
 .../plc4go/ads/readwrite/model/CommandId.go        |   2 +
 .../plc4go/ads/readwrite/model/DataItem.go         |   2 +
 .../ads/readwrite/model/ReservedIndexGroups.go     |   2 +
 .../plc4go/ads/readwrite/model/ReturnCode.go       |   2 +
 .../plc4go/bacnetip/readwrite/ParserHelper.go      |   2 +
 .../plc4go/bacnetip/readwrite/XmlParserHelper.go   |   2 +
 .../bacnetip/readwrite/model/ApplicationTag.go     |   2 +
 ...firmedServiceRequestConfirmedCOVNotification.go |   2 +
 .../BACnetConfirmedServiceRequestReadProperty.go   |   2 +
 .../BACnetConfirmedServiceRequestSubscribeCOV.go   |   2 +
 .../BACnetConfirmedServiceRequestWriteProperty.go  |   2 +
 .../readwrite/model/BACnetErrorReadProperty.go     |   2 +
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |   2 +
 .../bacnetip/readwrite/model/BACnetNodeType.go     |   2 +
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |   2 +
 .../bacnetip/readwrite/model/BACnetObjectType.go   |   2 +
 .../model/BACnetServiceAckReadProperty.go          |   2 +
 .../readwrite/model/BACnetTagWithContent.go        |   2 +
 .../model/BACnetUnconfirmedServiceRequestIAm.go    |   2 +
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go |   2 +
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go |   2 +
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go  |   2 +
 .../plc4go/bacnetip/readwrite/model/BVLC.go        |   2 +
 .../plc4go/knxnetip/readwrite/ParserHelper.go      |   2 +
 .../plc4go/knxnetip/readwrite/XmlParserHelper.go   |   2 +
 .../plc4go/knxnetip/readwrite/model/AccessLevel.go |   2 +
 .../CEMIAdditionalInformationBusmonitorInfo.go     |   2 +
 .../CEMIAdditionalInformationRelativeTimestamp.go  |   2 +
 .../knxnetip/readwrite/model/CEMIPriority.go       |   2 +
 .../readwrite/model/ComObjectTableAddresses.go     |   2 +
 .../knxnetip/readwrite/model/ComObjectValueType.go |   2 +
 .../knxnetip/readwrite/model/DeviceDescriptor.go   |   2 +
 .../readwrite/model/DeviceDescriptorMediumType.go  |   2 +
 .../knxnetip/readwrite/model/FirmwareType.go       |   2 +
 .../knxnetip/readwrite/model/HostProtocolCode.go   |   2 +
 .../knxnetip/readwrite/model/KnxDatapoint.go       |   2 +
 .../readwrite/model/KnxDatapointMainType.go        |   2 +
 .../knxnetip/readwrite/model/KnxDatapointType.go   |   4 +-
 .../readwrite/model/KnxInterfaceObjectProperty.go  |   2 +
 .../readwrite/model/KnxInterfaceObjectType.go      |   2 +
 .../plc4go/knxnetip/readwrite/model/KnxLayer.go    |   2 +
 .../knxnetip/readwrite/model/KnxManufacturer.go    | 116 ++++++-
 .../plc4go/knxnetip/readwrite/model/KnxMedium.go   |   2 +
 .../knxnetip/readwrite/model/KnxNetIpMessage.go    |   2 +
 .../plc4go/knxnetip/readwrite/model/KnxProperty.go |   2 +
 .../readwrite/model/KnxPropertyDataType.go         |   2 +
 .../plc4go/knxnetip/readwrite/model/Status.go      |   2 +
 .../readwrite/model/SupportedPhysicalMedia.go      |   2 +
 .../plc4go/modbus/readwrite/ParserHelper.go        |   2 +
 .../plc4go/modbus/readwrite/XmlParserHelper.go     |   2 +
 .../plc4go/modbus/readwrite/model/DataItem.go      |   2 +
 .../modbus/readwrite/model/ModbusConstants.go      |   2 +
 .../modbus/readwrite/model/ModbusDataType.go       |   2 +
 .../modbus/readwrite/model/ModbusErrorCode.go      |   2 +
 .../plc4go/modbus/readwrite/model/ModbusTcpADU.go  |   2 +
 .../internal/plc4go/s7/readwrite/ParserHelper.go   |   2 +
 .../plc4go/s7/readwrite/XmlParserHelper.go         |   2 +
 .../plc4go/s7/readwrite/model/COTPProtocolClass.go |   2 +
 .../plc4go/s7/readwrite/model/COTPTpduSize.go      |   2 +
 .../internal/plc4go/s7/readwrite/model/DataItem.go |   2 +
 .../s7/readwrite/model/DataTransportErrorCode.go   |   2 +
 .../plc4go/s7/readwrite/model/DataTransportSize.go |   2 +
 .../plc4go/s7/readwrite/model/DeviceGroup.go       |   2 +
 .../plc4go/s7/readwrite/model/MemoryArea.go        |   2 +
 .../plc4go/s7/readwrite/model/S7Message.go         |   2 +
 ...ayloadUserDataItemCpuFunctionReadSzlResponse.go |   2 +
 .../s7/readwrite/model/SzlModuleTypeClass.go       |   2 +
 .../plc4go/s7/readwrite/model/SzlSublist.go        |   2 +
 .../plc4go/s7/readwrite/model/TPKTPacket.go        |   2 +
 .../plc4go/s7/readwrite/model/TransportSize.go     |   2 +
 plc4go/internal/plc4go/spi/utils/CastUtils.go      |   8 +
 86 files changed, 886 insertions(+), 625 deletions(-)

diff --git a/.editorconfig b/.editorconfig
index df7383c..da14ec1 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -29,3 +29,6 @@ indent_size=2
 [*.xml]
 indent_style=space
 indent_size=2
+
+[*.go]
+indent_style = tab
\ No newline at end of file
diff --git a/build-utils/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java b/build-utils/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
index 4f9d7aa..f68b6c3 100644
--- a/build-utils/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
+++ b/build-utils/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
@@ -392,7 +392,7 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
         switch (languageTypeName) {
             case "*big.Int":
             case "*big.Float":
-                return "reserved.Cmp("+ getReservedValue(reservedField)+") != 0";
+                return "reserved.Cmp(" + getReservedValue(reservedField) + ") != 0";
             default:
                 return "reserved != " + getReservedValue(reservedField);
         }
@@ -843,6 +843,16 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
             imports.add("\"strings\"");
         }
 
+        if (complexTypeDefinition.getFields().stream()
+            .filter(field -> field instanceof TypedField)
+            .map(TypedField.class::cast)
+            .map(TypedField::getType)
+            .filter(type -> type instanceof SimpleTypeReference)
+            .map(SimpleTypeReference.class::cast)
+            .anyMatch((simpleTypeReference) -> simpleTypeReference.getSizeInBits() > 64)) {
+            imports.add("\"math/big\"");
+        }
+
         return imports;
     }
 
diff --git a/build-utils/language-go/src/main/resources/templates/go/data-io-template.ftlh b/build-utils/language-go/src/main/resources/templates/go/data-io-template.ftlh
index db869ae..829b882 100644
--- a/build-utils/language-go/src/main/resources/templates/go/data-io-template.ftlh
+++ b/build-utils/language-go/src/main/resources/templates/go/data-io-template.ftlh
@@ -70,6 +70,8 @@ import (
     </#if>
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 func ${type.name}Parse(io *utils.ReadBuffer<#if type.parserArguments?has_content>, <#list type.parserArguments as parserArgument>${parserArgument.name} <#if helper.isComplexTypeReference(parserArgument.type) && !helper.isEnumTypeReference(parserArgument.type)>I</#if>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)}<#sep>, </#sep></#list></#if>) (api.PlcValue, error) {
     switch {
     <#list type.switchField.cases as case>
diff --git a/build-utils/language-go/src/main/resources/templates/go/enum-template.ftlh b/build-utils/language-go/src/main/resources/templates/go/enum-template.ftlh
index 2b76ef6..6746172 100644
--- a/build-utils/language-go/src/main/resources/templates/go/enum-template.ftlh
+++ b/build-utils/language-go/src/main/resources/templates/go/enum-template.ftlh
@@ -51,6 +51,8 @@ import (
     "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type ${type.name} <#if type.type?has_content>${helper.getLanguageTypeNameForTypeReference(type.type)}<#else>string</#if>
 
 type I${type.name} interface {
diff --git a/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh b/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh
index 4619d9e..b9ff8aa 100644
--- a/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh
+++ b/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh
@@ -71,6 +71,8 @@ import (
 )
 <#if type.constFields?has_content>
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
     <#list type.constFields as field>
 const ${type.name}_${field.name?upper_case} ${helper.getLanguageTypeNameForField(field)} = ${field.referenceValue}
diff --git a/build-utils/language-go/src/main/resources/templates/go/parser-factory-template.ftlh b/build-utils/language-go/src/main/resources/templates/go/parser-factory-template.ftlh
index c764a90..1b033e8 100644
--- a/build-utils/language-go/src/main/resources/templates/go/parser-factory-template.ftlh
+++ b/build-utils/language-go/src/main/resources/templates/go/parser-factory-template.ftlh
@@ -69,6 +69,8 @@ import (
     "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type ${protocolName?cap_first}ParserHelper struct {
 }
 
diff --git a/build-utils/language-go/src/main/resources/templates/go/xml-parser-factory-template.ftlh b/build-utils/language-go/src/main/resources/templates/go/xml-parser-factory-template.ftlh
index a67a1fa..ac95a18 100644
--- a/build-utils/language-go/src/main/resources/templates/go/xml-parser-factory-template.ftlh
+++ b/build-utils/language-go/src/main/resources/templates/go/xml-parser-factory-template.ftlh
@@ -69,6 +69,8 @@ import (
     "github.com/apache/plc4x/plc4go/internal/plc4go/spi"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type ${protocolName?cap_first}XmlParserHelper struct {
 }
 
diff --git a/plc4go/internal/plc4go/ads/readwrite/ParserHelper.go b/plc4go/internal/plc4go/ads/readwrite/ParserHelper.go
index c65c1e3..d6efe9e 100644
--- a/plc4go/internal/plc4go/ads/readwrite/ParserHelper.go
+++ b/plc4go/internal/plc4go/ads/readwrite/ParserHelper.go
@@ -25,6 +25,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type AdsParserHelper struct {
 }
 
diff --git a/plc4go/internal/plc4go/ads/readwrite/XmlParserHelper.go b/plc4go/internal/plc4go/ads/readwrite/XmlParserHelper.go
index 83c32c1..3ee4293 100644
--- a/plc4go/internal/plc4go/ads/readwrite/XmlParserHelper.go
+++ b/plc4go/internal/plc4go/ads/readwrite/XmlParserHelper.go
@@ -25,6 +25,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type AdsXmlParserHelper struct {
 }
 
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
index be0ab91..4d0657e 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
@@ -24,6 +24,7 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	log "github.com/sirupsen/logrus"
 	"io"
+	"math/big"
 )
 
 // The data-structure of this message
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go
index aa6d56a..632b1fc 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type AdsDataType int8
 
 type IAdsDataType interface {
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
index 0f85551..7470567 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
@@ -19,190 +19,189 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
-    "reflect"
-    "strings"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
+	"reflect"
+	"strings"
 )
 
 // The data-structure of this message
 type AdsMultiRequestItem struct {
-    Child IAdsMultiRequestItemChild
-    IAdsMultiRequestItem
-    IAdsMultiRequestItemParent
+	Child IAdsMultiRequestItemChild
+	IAdsMultiRequestItem
+	IAdsMultiRequestItemParent
 }
 
 // The corresponding interface
 type IAdsMultiRequestItem interface {
-    IndexGroup() uint32
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	IndexGroup() uint32
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 type IAdsMultiRequestItemParent interface {
-    SerializeParent(io utils.WriteBuffer, child IAdsMultiRequestItem, serializeChildFunction func() error) error
-    GetTypeName() string
+	SerializeParent(io utils.WriteBuffer, child IAdsMultiRequestItem, serializeChildFunction func() error) error
+	GetTypeName() string
 }
 
 type IAdsMultiRequestItemChild interface {
-    Serialize(io utils.WriteBuffer) error
-    InitializeParent(parent *AdsMultiRequestItem)
-    GetTypeName() string
-    IAdsMultiRequestItem
+	Serialize(io utils.WriteBuffer) error
+	InitializeParent(parent *AdsMultiRequestItem)
+	GetTypeName() string
+	IAdsMultiRequestItem
 }
 
 func NewAdsMultiRequestItem() *AdsMultiRequestItem {
-    return &AdsMultiRequestItem{}
+	return &AdsMultiRequestItem{}
 }
 
 func CastAdsMultiRequestItem(structType interface{}) *AdsMultiRequestItem {
-    castFunc := func(typ interface{}) *AdsMultiRequestItem {
-        if casted, ok := typ.(AdsMultiRequestItem); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*AdsMultiRequestItem); ok {
-            return casted
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *AdsMultiRequestItem {
+		if casted, ok := typ.(AdsMultiRequestItem); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*AdsMultiRequestItem); ok {
+			return casted
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *AdsMultiRequestItem) GetTypeName() string {
-    return "AdsMultiRequestItem"
+	return "AdsMultiRequestItem"
 }
 
 func (m *AdsMultiRequestItem) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Length of sub-type elements will be added by sub-type...
-    lengthInBits += m.Child.LengthInBits()
+	// Length of sub-type elements will be added by sub-type...
+	lengthInBits += m.Child.LengthInBits()
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *AdsMultiRequestItem) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func AdsMultiRequestItemParse(io *utils.ReadBuffer, indexGroup uint32) (*AdsMultiRequestItem, error) {
 
-    // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
-    var _parent *AdsMultiRequestItem
-    var typeSwitchError error
-    switch {
-    case indexGroup == 61568L:
-        _parent, typeSwitchError = AdsMultiRequestItemReadParse(io)
-    case indexGroup == 61569L:
-        _parent, typeSwitchError = AdsMultiRequestItemWriteParse(io)
-    case indexGroup == 61570L:
-        _parent, typeSwitchError = AdsMultiRequestItemReadWriteParse(io)
-    }
-    if typeSwitchError != nil {
-        return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
-    }
-
-    // Finish initializing
-    _parent.Child.InitializeParent(_parent)
-    return _parent, nil
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *AdsMultiRequestItem
+	var typeSwitchError error
+	switch {
+	case indexGroup == 61568:
+		_parent, typeSwitchError = AdsMultiRequestItemReadParse(io)
+	case indexGroup == 61569:
+		_parent, typeSwitchError = AdsMultiRequestItemWriteParse(io)
+	case indexGroup == 61570:
+		_parent, typeSwitchError = AdsMultiRequestItemReadWriteParse(io)
+	}
+	if typeSwitchError != nil {
+		return nil, errors.New("Error parsing sub-type for type-switch. " + typeSwitchError.Error())
+	}
+
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent)
+	return _parent, nil
 }
 
 func (m *AdsMultiRequestItem) Serialize(io utils.WriteBuffer) error {
-    return m.Child.Serialize(io)
+	return m.Child.Serialize(io)
 }
 
 func (m *AdsMultiRequestItem) SerializeParent(io utils.WriteBuffer, child IAdsMultiRequestItem, serializeChildFunction func() error) error {
 
-    // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
-    _typeSwitchErr := serializeChildFunction()
-    if _typeSwitchErr != nil {
-        return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
-    }
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	_typeSwitchErr := serializeChildFunction()
+	if _typeSwitchErr != nil {
+		return errors.New("Error serializing sub-type field " + _typeSwitchErr.Error())
+	}
 
-    return nil
+	return nil
 }
 
 func (m *AdsMultiRequestItem) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    for {
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            default:
-                switch start.Attr[0].Value {
-                    case "org.apache.plc4x.java.ads.readwrite.AdsMultiRequestItemRead":
-                        var dt *AdsMultiRequestItemRead
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsMultiRequestItemRead)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsMultiRequestItemWrite":
-                        var dt *AdsMultiRequestItemWrite
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsMultiRequestItemWrite)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                    case "org.apache.plc4x.java.ads.readwrite.AdsMultiRequestItemReadWrite":
-                        var dt *AdsMultiRequestItemReadWrite
-                        if m.Child != nil {
-                            dt = m.Child.(*AdsMultiRequestItemReadWrite)
-                        }
-                        if err := d.DecodeElement(&dt, &tok); err != nil {
-                            return err
-                        }
-                        if m.Child == nil {
-                            dt.Parent = m
-                            m.Child = dt
-                        }
-                }
-            }
-        }
-    }
+	var token xml.Token
+	var err error
+	for {
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			default:
+				switch start.Attr[0].Value {
+				case "org.apache.plc4x.java.ads.readwrite.AdsMultiRequestItemRead":
+					var dt *AdsMultiRequestItemRead
+					if m.Child != nil {
+						dt = m.Child.(*AdsMultiRequestItemRead)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsMultiRequestItemWrite":
+					var dt *AdsMultiRequestItemWrite
+					if m.Child != nil {
+						dt = m.Child.(*AdsMultiRequestItemWrite)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				case "org.apache.plc4x.java.ads.readwrite.AdsMultiRequestItemReadWrite":
+					var dt *AdsMultiRequestItemReadWrite
+					if m.Child != nil {
+						dt = m.Child.(*AdsMultiRequestItemReadWrite)
+					}
+					if err := d.DecodeElement(&dt, &tok); err != nil {
+						return err
+					}
+					if m.Child == nil {
+						dt.Parent = m
+						m.Child = dt
+					}
+				}
+			}
+		}
+	}
 }
 
 func (m *AdsMultiRequestItem) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    className := reflect.TypeOf(m.Child).String()
-    className = "org.apache.plc4x.java.ads.readwrite." + className[strings.LastIndex(className, ".") + 1:]
-    if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
-            {Name: xml.Name{Local: "className"}, Value: className},
-        }}); err != nil {
-        return err
-    }
-    marshaller, ok := m.Child.(xml.Marshaler)
-    if !ok {
-        return errors.New("child is not castable to Marshaler")
-    }
-    if err := marshaller.MarshalXML(e, start); err != nil {
-        return err
-    }
-    if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
-        return err
-    }
-    return nil
+	className := reflect.TypeOf(m.Child).String()
+	className = "org.apache.plc4x.java.ads.readwrite." + className[strings.LastIndex(className, ".")+1:]
+	if err := e.EncodeToken(xml.StartElement{Name: start.Name, Attr: []xml.Attr{
+		{Name: xml.Name{Local: "className"}, Value: className},
+	}}); err != nil {
+		return err
+	}
+	marshaller, ok := m.Child.(xml.Marshaler)
+	if !ok {
+		return errors.New("child is not castable to Marshaler")
+	}
+	if err := marshaller.MarshalXML(e, start); err != nil {
+		return err
+	}
+	if err := e.EncodeToken(xml.EndElement{Name: start.Name}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
index d1baab1..50b7552 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
@@ -19,202 +19,200 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
 )
 
 // The data-structure of this message
 type AdsMultiRequestItemRead struct {
-    ItemIndexGroup uint32
-    ItemIndexOffset uint32
-    ItemReadLength uint32
-    Parent *AdsMultiRequestItem
-    IAdsMultiRequestItemRead
+	ItemIndexGroup  uint32
+	ItemIndexOffset uint32
+	ItemReadLength  uint32
+	Parent          *AdsMultiRequestItem
+	IAdsMultiRequestItemRead
 }
 
 // The corresponding interface
 type IAdsMultiRequestItemRead interface {
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 ///////////////////////////////////////////////////////////
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *AdsMultiRequestItemRead) IndexGroup() uint32 {
-    return 61568L
+	return 61568
 }
 
-
 func (m *AdsMultiRequestItemRead) InitializeParent(parent *AdsMultiRequestItem) {
 }
 
 func NewAdsMultiRequestItemRead(itemIndexGroup uint32, itemIndexOffset uint32, itemReadLength uint32) *AdsMultiRequestItem {
-    child := &AdsMultiRequestItemRead{
-        ItemIndexGroup: itemIndexGroup,
-        ItemIndexOffset: itemIndexOffset,
-        ItemReadLength: itemReadLength,
-        Parent: NewAdsMultiRequestItem(),
-    }
-    child.Parent.Child = child
-    return child.Parent
+	child := &AdsMultiRequestItemRead{
+		ItemIndexGroup:  itemIndexGroup,
+		ItemIndexOffset: itemIndexOffset,
+		ItemReadLength:  itemReadLength,
+		Parent:          NewAdsMultiRequestItem(),
+	}
+	child.Parent.Child = child
+	return child.Parent
 }
 
 func CastAdsMultiRequestItemRead(structType interface{}) *AdsMultiRequestItemRead {
-    castFunc := func(typ interface{}) *AdsMultiRequestItemRead {
-        if casted, ok := typ.(AdsMultiRequestItemRead); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*AdsMultiRequestItemRead); ok {
-            return casted
-        }
-        if casted, ok := typ.(AdsMultiRequestItem); ok {
-            return CastAdsMultiRequestItemRead(casted.Child)
-        }
-        if casted, ok := typ.(*AdsMultiRequestItem); ok {
-            return CastAdsMultiRequestItemRead(casted.Child)
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *AdsMultiRequestItemRead {
+		if casted, ok := typ.(AdsMultiRequestItemRead); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*AdsMultiRequestItemRead); ok {
+			return casted
+		}
+		if casted, ok := typ.(AdsMultiRequestItem); ok {
+			return CastAdsMultiRequestItemRead(casted.Child)
+		}
+		if casted, ok := typ.(*AdsMultiRequestItem); ok {
+			return CastAdsMultiRequestItemRead(casted.Child)
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *AdsMultiRequestItemRead) GetTypeName() string {
-    return "AdsMultiRequestItemRead"
+	return "AdsMultiRequestItemRead"
 }
 
 func (m *AdsMultiRequestItemRead) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Simple field (itemIndexGroup)
-    lengthInBits += 32
+	// Simple field (itemIndexGroup)
+	lengthInBits += 32
 
-    // Simple field (itemIndexOffset)
-    lengthInBits += 32
+	// Simple field (itemIndexOffset)
+	lengthInBits += 32
 
-    // Simple field (itemReadLength)
-    lengthInBits += 32
+	// Simple field (itemReadLength)
+	lengthInBits += 32
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *AdsMultiRequestItemRead) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func AdsMultiRequestItemReadParse(io *utils.ReadBuffer) (*AdsMultiRequestItem, error) {
 
-    // Simple Field (itemIndexGroup)
-    itemIndexGroup, _itemIndexGroupErr := io.ReadUint32(32)
-    if _itemIndexGroupErr != nil {
-        return nil, errors.New("Error parsing 'itemIndexGroup' field " + _itemIndexGroupErr.Error())
-    }
-
-    // Simple Field (itemIndexOffset)
-    itemIndexOffset, _itemIndexOffsetErr := io.ReadUint32(32)
-    if _itemIndexOffsetErr != nil {
-        return nil, errors.New("Error parsing 'itemIndexOffset' field " + _itemIndexOffsetErr.Error())
-    }
-
-    // Simple Field (itemReadLength)
-    itemReadLength, _itemReadLengthErr := io.ReadUint32(32)
-    if _itemReadLengthErr != nil {
-        return nil, errors.New("Error parsing 'itemReadLength' field " + _itemReadLengthErr.Error())
-    }
-
-    // Create a partially initialized instance
-    _child := &AdsMultiRequestItemRead{
-        ItemIndexGroup: itemIndexGroup,
-        ItemIndexOffset: itemIndexOffset,
-        ItemReadLength: itemReadLength,
-        Parent: &AdsMultiRequestItem{},
-    }
-    _child.Parent.Child = _child
-    return _child.Parent, nil
+	// Simple Field (itemIndexGroup)
+	itemIndexGroup, _itemIndexGroupErr := io.ReadUint32(32)
+	if _itemIndexGroupErr != nil {
+		return nil, errors.New("Error parsing 'itemIndexGroup' field " + _itemIndexGroupErr.Error())
+	}
+
+	// Simple Field (itemIndexOffset)
+	itemIndexOffset, _itemIndexOffsetErr := io.ReadUint32(32)
+	if _itemIndexOffsetErr != nil {
+		return nil, errors.New("Error parsing 'itemIndexOffset' field " + _itemIndexOffsetErr.Error())
+	}
+
+	// Simple Field (itemReadLength)
+	itemReadLength, _itemReadLengthErr := io.ReadUint32(32)
+	if _itemReadLengthErr != nil {
+		return nil, errors.New("Error parsing 'itemReadLength' field " + _itemReadLengthErr.Error())
+	}
+
+	// Create a partially initialized instance
+	_child := &AdsMultiRequestItemRead{
+		ItemIndexGroup:  itemIndexGroup,
+		ItemIndexOffset: itemIndexOffset,
+		ItemReadLength:  itemReadLength,
+		Parent:          &AdsMultiRequestItem{},
+	}
+	_child.Parent.Child = _child
+	return _child.Parent, nil
 }
 
 func (m *AdsMultiRequestItemRead) Serialize(io utils.WriteBuffer) error {
-    ser := func() error {
-
-    // Simple Field (itemIndexGroup)
-    itemIndexGroup := uint32(m.ItemIndexGroup)
-    _itemIndexGroupErr := io.WriteUint32(32, (itemIndexGroup))
-    if _itemIndexGroupErr != nil {
-        return errors.New("Error serializing 'itemIndexGroup' field " + _itemIndexGroupErr.Error())
-    }
-
-    // Simple Field (itemIndexOffset)
-    itemIndexOffset := uint32(m.ItemIndexOffset)
-    _itemIndexOffsetErr := io.WriteUint32(32, (itemIndexOffset))
-    if _itemIndexOffsetErr != nil {
-        return errors.New("Error serializing 'itemIndexOffset' field " + _itemIndexOffsetErr.Error())
-    }
-
-    // Simple Field (itemReadLength)
-    itemReadLength := uint32(m.ItemReadLength)
-    _itemReadLengthErr := io.WriteUint32(32, (itemReadLength))
-    if _itemReadLengthErr != nil {
-        return errors.New("Error serializing 'itemReadLength' field " + _itemReadLengthErr.Error())
-    }
-
-        return nil
-    }
-    return m.Parent.SerializeParent(io, m, ser)
+	ser := func() error {
+
+		// Simple Field (itemIndexGroup)
+		itemIndexGroup := uint32(m.ItemIndexGroup)
+		_itemIndexGroupErr := io.WriteUint32(32, (itemIndexGroup))
+		if _itemIndexGroupErr != nil {
+			return errors.New("Error serializing 'itemIndexGroup' field " + _itemIndexGroupErr.Error())
+		}
+
+		// Simple Field (itemIndexOffset)
+		itemIndexOffset := uint32(m.ItemIndexOffset)
+		_itemIndexOffsetErr := io.WriteUint32(32, (itemIndexOffset))
+		if _itemIndexOffsetErr != nil {
+			return errors.New("Error serializing 'itemIndexOffset' field " + _itemIndexOffsetErr.Error())
+		}
+
+		// Simple Field (itemReadLength)
+		itemReadLength := uint32(m.ItemReadLength)
+		_itemReadLengthErr := io.WriteUint32(32, (itemReadLength))
+		if _itemReadLengthErr != nil {
+			return errors.New("Error serializing 'itemReadLength' field " + _itemReadLengthErr.Error())
+		}
+
+		return nil
+	}
+	return m.Parent.SerializeParent(io, m, ser)
 }
 
 func (m *AdsMultiRequestItemRead) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    token = start
-    for {
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            case "itemIndexGroup":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.ItemIndexGroup = data
-            case "itemIndexOffset":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.ItemIndexOffset = data
-            case "itemReadLength":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.ItemReadLength = data
-            }
-        }
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-    }
+	var token xml.Token
+	var err error
+	token = start
+	for {
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			case "itemIndexGroup":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.ItemIndexGroup = data
+			case "itemIndexOffset":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.ItemIndexOffset = data
+			case "itemReadLength":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.ItemReadLength = data
+			}
+		}
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+	}
 }
 
 func (m *AdsMultiRequestItemRead) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    if err := e.EncodeElement(m.ItemIndexGroup, xml.StartElement{Name: xml.Name{Local: "itemIndexGroup"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.ItemIndexOffset, xml.StartElement{Name: xml.Name{Local: "itemIndexOffset"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.ItemReadLength, xml.StartElement{Name: xml.Name{Local: "itemReadLength"}}); err != nil {
-        return err
-    }
-    return nil
+	if err := e.EncodeElement(m.ItemIndexGroup, xml.StartElement{Name: xml.Name{Local: "itemIndexGroup"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.ItemIndexOffset, xml.StartElement{Name: xml.Name{Local: "itemIndexOffset"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.ItemReadLength, xml.StartElement{Name: xml.Name{Local: "itemReadLength"}}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
index 749d34e..99595b6 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
@@ -19,230 +19,228 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
 )
 
 // The data-structure of this message
 type AdsMultiRequestItemReadWrite struct {
-    ItemIndexGroup uint32
-    ItemIndexOffset uint32
-    ItemReadLength uint32
-    ItemWriteLength uint32
-    Parent *AdsMultiRequestItem
-    IAdsMultiRequestItemReadWrite
+	ItemIndexGroup  uint32
+	ItemIndexOffset uint32
+	ItemReadLength  uint32
+	ItemWriteLength uint32
+	Parent          *AdsMultiRequestItem
+	IAdsMultiRequestItemReadWrite
 }
 
 // The corresponding interface
 type IAdsMultiRequestItemReadWrite interface {
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 ///////////////////////////////////////////////////////////
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *AdsMultiRequestItemReadWrite) IndexGroup() uint32 {
-    return 61570L
+	return 61570
 }
 
-
 func (m *AdsMultiRequestItemReadWrite) InitializeParent(parent *AdsMultiRequestItem) {
 }
 
 func NewAdsMultiRequestItemReadWrite(itemIndexGroup uint32, itemIndexOffset uint32, itemReadLength uint32, itemWriteLength uint32) *AdsMultiRequestItem {
-    child := &AdsMultiRequestItemReadWrite{
-        ItemIndexGroup: itemIndexGroup,
-        ItemIndexOffset: itemIndexOffset,
-        ItemReadLength: itemReadLength,
-        ItemWriteLength: itemWriteLength,
-        Parent: NewAdsMultiRequestItem(),
-    }
-    child.Parent.Child = child
-    return child.Parent
+	child := &AdsMultiRequestItemReadWrite{
+		ItemIndexGroup:  itemIndexGroup,
+		ItemIndexOffset: itemIndexOffset,
+		ItemReadLength:  itemReadLength,
+		ItemWriteLength: itemWriteLength,
+		Parent:          NewAdsMultiRequestItem(),
+	}
+	child.Parent.Child = child
+	return child.Parent
 }
 
 func CastAdsMultiRequestItemReadWrite(structType interface{}) *AdsMultiRequestItemReadWrite {
-    castFunc := func(typ interface{}) *AdsMultiRequestItemReadWrite {
-        if casted, ok := typ.(AdsMultiRequestItemReadWrite); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*AdsMultiRequestItemReadWrite); ok {
-            return casted
-        }
-        if casted, ok := typ.(AdsMultiRequestItem); ok {
-            return CastAdsMultiRequestItemReadWrite(casted.Child)
-        }
-        if casted, ok := typ.(*AdsMultiRequestItem); ok {
-            return CastAdsMultiRequestItemReadWrite(casted.Child)
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *AdsMultiRequestItemReadWrite {
+		if casted, ok := typ.(AdsMultiRequestItemReadWrite); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*AdsMultiRequestItemReadWrite); ok {
+			return casted
+		}
+		if casted, ok := typ.(AdsMultiRequestItem); ok {
+			return CastAdsMultiRequestItemReadWrite(casted.Child)
+		}
+		if casted, ok := typ.(*AdsMultiRequestItem); ok {
+			return CastAdsMultiRequestItemReadWrite(casted.Child)
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *AdsMultiRequestItemReadWrite) GetTypeName() string {
-    return "AdsMultiRequestItemReadWrite"
+	return "AdsMultiRequestItemReadWrite"
 }
 
 func (m *AdsMultiRequestItemReadWrite) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Simple field (itemIndexGroup)
-    lengthInBits += 32
+	// Simple field (itemIndexGroup)
+	lengthInBits += 32
 
-    // Simple field (itemIndexOffset)
-    lengthInBits += 32
+	// Simple field (itemIndexOffset)
+	lengthInBits += 32
 
-    // Simple field (itemReadLength)
-    lengthInBits += 32
+	// Simple field (itemReadLength)
+	lengthInBits += 32
 
-    // Simple field (itemWriteLength)
-    lengthInBits += 32
+	// Simple field (itemWriteLength)
+	lengthInBits += 32
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *AdsMultiRequestItemReadWrite) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func AdsMultiRequestItemReadWriteParse(io *utils.ReadBuffer) (*AdsMultiRequestItem, error) {
 
-    // Simple Field (itemIndexGroup)
-    itemIndexGroup, _itemIndexGroupErr := io.ReadUint32(32)
-    if _itemIndexGroupErr != nil {
-        return nil, errors.New("Error parsing 'itemIndexGroup' field " + _itemIndexGroupErr.Error())
-    }
-
-    // Simple Field (itemIndexOffset)
-    itemIndexOffset, _itemIndexOffsetErr := io.ReadUint32(32)
-    if _itemIndexOffsetErr != nil {
-        return nil, errors.New("Error parsing 'itemIndexOffset' field " + _itemIndexOffsetErr.Error())
-    }
-
-    // Simple Field (itemReadLength)
-    itemReadLength, _itemReadLengthErr := io.ReadUint32(32)
-    if _itemReadLengthErr != nil {
-        return nil, errors.New("Error parsing 'itemReadLength' field " + _itemReadLengthErr.Error())
-    }
-
-    // Simple Field (itemWriteLength)
-    itemWriteLength, _itemWriteLengthErr := io.ReadUint32(32)
-    if _itemWriteLengthErr != nil {
-        return nil, errors.New("Error parsing 'itemWriteLength' field " + _itemWriteLengthErr.Error())
-    }
-
-    // Create a partially initialized instance
-    _child := &AdsMultiRequestItemReadWrite{
-        ItemIndexGroup: itemIndexGroup,
-        ItemIndexOffset: itemIndexOffset,
-        ItemReadLength: itemReadLength,
-        ItemWriteLength: itemWriteLength,
-        Parent: &AdsMultiRequestItem{},
-    }
-    _child.Parent.Child = _child
-    return _child.Parent, nil
+	// Simple Field (itemIndexGroup)
+	itemIndexGroup, _itemIndexGroupErr := io.ReadUint32(32)
+	if _itemIndexGroupErr != nil {
+		return nil, errors.New("Error parsing 'itemIndexGroup' field " + _itemIndexGroupErr.Error())
+	}
+
+	// Simple Field (itemIndexOffset)
+	itemIndexOffset, _itemIndexOffsetErr := io.ReadUint32(32)
+	if _itemIndexOffsetErr != nil {
+		return nil, errors.New("Error parsing 'itemIndexOffset' field " + _itemIndexOffsetErr.Error())
+	}
+
+	// Simple Field (itemReadLength)
+	itemReadLength, _itemReadLengthErr := io.ReadUint32(32)
+	if _itemReadLengthErr != nil {
+		return nil, errors.New("Error parsing 'itemReadLength' field " + _itemReadLengthErr.Error())
+	}
+
+	// Simple Field (itemWriteLength)
+	itemWriteLength, _itemWriteLengthErr := io.ReadUint32(32)
+	if _itemWriteLengthErr != nil {
+		return nil, errors.New("Error parsing 'itemWriteLength' field " + _itemWriteLengthErr.Error())
+	}
+
+	// Create a partially initialized instance
+	_child := &AdsMultiRequestItemReadWrite{
+		ItemIndexGroup:  itemIndexGroup,
+		ItemIndexOffset: itemIndexOffset,
+		ItemReadLength:  itemReadLength,
+		ItemWriteLength: itemWriteLength,
+		Parent:          &AdsMultiRequestItem{},
+	}
+	_child.Parent.Child = _child
+	return _child.Parent, nil
 }
 
 func (m *AdsMultiRequestItemReadWrite) Serialize(io utils.WriteBuffer) error {
-    ser := func() error {
-
-    // Simple Field (itemIndexGroup)
-    itemIndexGroup := uint32(m.ItemIndexGroup)
-    _itemIndexGroupErr := io.WriteUint32(32, (itemIndexGroup))
-    if _itemIndexGroupErr != nil {
-        return errors.New("Error serializing 'itemIndexGroup' field " + _itemIndexGroupErr.Error())
-    }
-
-    // Simple Field (itemIndexOffset)
-    itemIndexOffset := uint32(m.ItemIndexOffset)
-    _itemIndexOffsetErr := io.WriteUint32(32, (itemIndexOffset))
-    if _itemIndexOffsetErr != nil {
-        return errors.New("Error serializing 'itemIndexOffset' field " + _itemIndexOffsetErr.Error())
-    }
-
-    // Simple Field (itemReadLength)
-    itemReadLength := uint32(m.ItemReadLength)
-    _itemReadLengthErr := io.WriteUint32(32, (itemReadLength))
-    if _itemReadLengthErr != nil {
-        return errors.New("Error serializing 'itemReadLength' field " + _itemReadLengthErr.Error())
-    }
-
-    // Simple Field (itemWriteLength)
-    itemWriteLength := uint32(m.ItemWriteLength)
-    _itemWriteLengthErr := io.WriteUint32(32, (itemWriteLength))
-    if _itemWriteLengthErr != nil {
-        return errors.New("Error serializing 'itemWriteLength' field " + _itemWriteLengthErr.Error())
-    }
-
-        return nil
-    }
-    return m.Parent.SerializeParent(io, m, ser)
+	ser := func() error {
+
+		// Simple Field (itemIndexGroup)
+		itemIndexGroup := uint32(m.ItemIndexGroup)
+		_itemIndexGroupErr := io.WriteUint32(32, (itemIndexGroup))
+		if _itemIndexGroupErr != nil {
+			return errors.New("Error serializing 'itemIndexGroup' field " + _itemIndexGroupErr.Error())
+		}
+
+		// Simple Field (itemIndexOffset)
+		itemIndexOffset := uint32(m.ItemIndexOffset)
+		_itemIndexOffsetErr := io.WriteUint32(32, (itemIndexOffset))
+		if _itemIndexOffsetErr != nil {
+			return errors.New("Error serializing 'itemIndexOffset' field " + _itemIndexOffsetErr.Error())
+		}
+
+		// Simple Field (itemReadLength)
+		itemReadLength := uint32(m.ItemReadLength)
+		_itemReadLengthErr := io.WriteUint32(32, (itemReadLength))
+		if _itemReadLengthErr != nil {
+			return errors.New("Error serializing 'itemReadLength' field " + _itemReadLengthErr.Error())
+		}
+
+		// Simple Field (itemWriteLength)
+		itemWriteLength := uint32(m.ItemWriteLength)
+		_itemWriteLengthErr := io.WriteUint32(32, (itemWriteLength))
+		if _itemWriteLengthErr != nil {
+			return errors.New("Error serializing 'itemWriteLength' field " + _itemWriteLengthErr.Error())
+		}
+
+		return nil
+	}
+	return m.Parent.SerializeParent(io, m, ser)
 }
 
 func (m *AdsMultiRequestItemReadWrite) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    token = start
-    for {
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            case "itemIndexGroup":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.ItemIndexGroup = data
-            case "itemIndexOffset":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.ItemIndexOffset = data
-            case "itemReadLength":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.ItemReadLength = data
-            case "itemWriteLength":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.ItemWriteLength = data
-            }
-        }
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-    }
+	var token xml.Token
+	var err error
+	token = start
+	for {
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			case "itemIndexGroup":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.ItemIndexGroup = data
+			case "itemIndexOffset":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.ItemIndexOffset = data
+			case "itemReadLength":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.ItemReadLength = data
+			case "itemWriteLength":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.ItemWriteLength = data
+			}
+		}
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+	}
 }
 
 func (m *AdsMultiRequestItemReadWrite) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    if err := e.EncodeElement(m.ItemIndexGroup, xml.StartElement{Name: xml.Name{Local: "itemIndexGroup"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.ItemIndexOffset, xml.StartElement{Name: xml.Name{Local: "itemIndexOffset"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.ItemReadLength, xml.StartElement{Name: xml.Name{Local: "itemReadLength"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.ItemWriteLength, xml.StartElement{Name: xml.Name{Local: "itemWriteLength"}}); err != nil {
-        return err
-    }
-    return nil
+	if err := e.EncodeElement(m.ItemIndexGroup, xml.StartElement{Name: xml.Name{Local: "itemIndexGroup"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.ItemIndexOffset, xml.StartElement{Name: xml.Name{Local: "itemIndexOffset"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.ItemReadLength, xml.StartElement{Name: xml.Name{Local: "itemReadLength"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.ItemWriteLength, xml.StartElement{Name: xml.Name{Local: "itemWriteLength"}}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
index 0f8db34..e99f4df 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
@@ -19,202 +19,200 @@
 package model
 
 import (
-    "encoding/xml"
-    "errors"
-    "github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-    "io"
+	"encoding/xml"
+	"errors"
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"io"
 )
 
 // The data-structure of this message
 type AdsMultiRequestItemWrite struct {
-    ItemIndexGroup uint32
-    ItemIndexOffset uint32
-    ItemWriteLength uint32
-    Parent *AdsMultiRequestItem
-    IAdsMultiRequestItemWrite
+	ItemIndexGroup  uint32
+	ItemIndexOffset uint32
+	ItemWriteLength uint32
+	Parent          *AdsMultiRequestItem
+	IAdsMultiRequestItemWrite
 }
 
 // The corresponding interface
 type IAdsMultiRequestItemWrite interface {
-    LengthInBytes() uint16
-    LengthInBits() uint16
-    Serialize(io utils.WriteBuffer) error
-    xml.Marshaler
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(io utils.WriteBuffer) error
+	xml.Marshaler
 }
 
 ///////////////////////////////////////////////////////////
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *AdsMultiRequestItemWrite) IndexGroup() uint32 {
-    return 61569L
+	return 61569
 }
 
-
 func (m *AdsMultiRequestItemWrite) InitializeParent(parent *AdsMultiRequestItem) {
 }
 
 func NewAdsMultiRequestItemWrite(itemIndexGroup uint32, itemIndexOffset uint32, itemWriteLength uint32) *AdsMultiRequestItem {
-    child := &AdsMultiRequestItemWrite{
-        ItemIndexGroup: itemIndexGroup,
-        ItemIndexOffset: itemIndexOffset,
-        ItemWriteLength: itemWriteLength,
-        Parent: NewAdsMultiRequestItem(),
-    }
-    child.Parent.Child = child
-    return child.Parent
+	child := &AdsMultiRequestItemWrite{
+		ItemIndexGroup:  itemIndexGroup,
+		ItemIndexOffset: itemIndexOffset,
+		ItemWriteLength: itemWriteLength,
+		Parent:          NewAdsMultiRequestItem(),
+	}
+	child.Parent.Child = child
+	return child.Parent
 }
 
 func CastAdsMultiRequestItemWrite(structType interface{}) *AdsMultiRequestItemWrite {
-    castFunc := func(typ interface{}) *AdsMultiRequestItemWrite {
-        if casted, ok := typ.(AdsMultiRequestItemWrite); ok {
-            return &casted
-        }
-        if casted, ok := typ.(*AdsMultiRequestItemWrite); ok {
-            return casted
-        }
-        if casted, ok := typ.(AdsMultiRequestItem); ok {
-            return CastAdsMultiRequestItemWrite(casted.Child)
-        }
-        if casted, ok := typ.(*AdsMultiRequestItem); ok {
-            return CastAdsMultiRequestItemWrite(casted.Child)
-        }
-        return nil
-    }
-    return castFunc(structType)
+	castFunc := func(typ interface{}) *AdsMultiRequestItemWrite {
+		if casted, ok := typ.(AdsMultiRequestItemWrite); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*AdsMultiRequestItemWrite); ok {
+			return casted
+		}
+		if casted, ok := typ.(AdsMultiRequestItem); ok {
+			return CastAdsMultiRequestItemWrite(casted.Child)
+		}
+		if casted, ok := typ.(*AdsMultiRequestItem); ok {
+			return CastAdsMultiRequestItemWrite(casted.Child)
+		}
+		return nil
+	}
+	return castFunc(structType)
 }
 
 func (m *AdsMultiRequestItemWrite) GetTypeName() string {
-    return "AdsMultiRequestItemWrite"
+	return "AdsMultiRequestItemWrite"
 }
 
 func (m *AdsMultiRequestItemWrite) LengthInBits() uint16 {
-    lengthInBits := uint16(0)
+	lengthInBits := uint16(0)
 
-    // Simple field (itemIndexGroup)
-    lengthInBits += 32
+	// Simple field (itemIndexGroup)
+	lengthInBits += 32
 
-    // Simple field (itemIndexOffset)
-    lengthInBits += 32
+	// Simple field (itemIndexOffset)
+	lengthInBits += 32
 
-    // Simple field (itemWriteLength)
-    lengthInBits += 32
+	// Simple field (itemWriteLength)
+	lengthInBits += 32
 
-    return lengthInBits
+	return lengthInBits
 }
 
 func (m *AdsMultiRequestItemWrite) LengthInBytes() uint16 {
-    return m.LengthInBits() / 8
+	return m.LengthInBits() / 8
 }
 
 func AdsMultiRequestItemWriteParse(io *utils.ReadBuffer) (*AdsMultiRequestItem, error) {
 
-    // Simple Field (itemIndexGroup)
-    itemIndexGroup, _itemIndexGroupErr := io.ReadUint32(32)
-    if _itemIndexGroupErr != nil {
-        return nil, errors.New("Error parsing 'itemIndexGroup' field " + _itemIndexGroupErr.Error())
-    }
-
-    // Simple Field (itemIndexOffset)
-    itemIndexOffset, _itemIndexOffsetErr := io.ReadUint32(32)
-    if _itemIndexOffsetErr != nil {
-        return nil, errors.New("Error parsing 'itemIndexOffset' field " + _itemIndexOffsetErr.Error())
-    }
-
-    // Simple Field (itemWriteLength)
-    itemWriteLength, _itemWriteLengthErr := io.ReadUint32(32)
-    if _itemWriteLengthErr != nil {
-        return nil, errors.New("Error parsing 'itemWriteLength' field " + _itemWriteLengthErr.Error())
-    }
-
-    // Create a partially initialized instance
-    _child := &AdsMultiRequestItemWrite{
-        ItemIndexGroup: itemIndexGroup,
-        ItemIndexOffset: itemIndexOffset,
-        ItemWriteLength: itemWriteLength,
-        Parent: &AdsMultiRequestItem{},
-    }
-    _child.Parent.Child = _child
-    return _child.Parent, nil
+	// Simple Field (itemIndexGroup)
+	itemIndexGroup, _itemIndexGroupErr := io.ReadUint32(32)
+	if _itemIndexGroupErr != nil {
+		return nil, errors.New("Error parsing 'itemIndexGroup' field " + _itemIndexGroupErr.Error())
+	}
+
+	// Simple Field (itemIndexOffset)
+	itemIndexOffset, _itemIndexOffsetErr := io.ReadUint32(32)
+	if _itemIndexOffsetErr != nil {
+		return nil, errors.New("Error parsing 'itemIndexOffset' field " + _itemIndexOffsetErr.Error())
+	}
+
+	// Simple Field (itemWriteLength)
+	itemWriteLength, _itemWriteLengthErr := io.ReadUint32(32)
+	if _itemWriteLengthErr != nil {
+		return nil, errors.New("Error parsing 'itemWriteLength' field " + _itemWriteLengthErr.Error())
+	}
+
+	// Create a partially initialized instance
+	_child := &AdsMultiRequestItemWrite{
+		ItemIndexGroup:  itemIndexGroup,
+		ItemIndexOffset: itemIndexOffset,
+		ItemWriteLength: itemWriteLength,
+		Parent:          &AdsMultiRequestItem{},
+	}
+	_child.Parent.Child = _child
+	return _child.Parent, nil
 }
 
 func (m *AdsMultiRequestItemWrite) Serialize(io utils.WriteBuffer) error {
-    ser := func() error {
-
-    // Simple Field (itemIndexGroup)
-    itemIndexGroup := uint32(m.ItemIndexGroup)
-    _itemIndexGroupErr := io.WriteUint32(32, (itemIndexGroup))
-    if _itemIndexGroupErr != nil {
-        return errors.New("Error serializing 'itemIndexGroup' field " + _itemIndexGroupErr.Error())
-    }
-
-    // Simple Field (itemIndexOffset)
-    itemIndexOffset := uint32(m.ItemIndexOffset)
-    _itemIndexOffsetErr := io.WriteUint32(32, (itemIndexOffset))
-    if _itemIndexOffsetErr != nil {
-        return errors.New("Error serializing 'itemIndexOffset' field " + _itemIndexOffsetErr.Error())
-    }
-
-    // Simple Field (itemWriteLength)
-    itemWriteLength := uint32(m.ItemWriteLength)
-    _itemWriteLengthErr := io.WriteUint32(32, (itemWriteLength))
-    if _itemWriteLengthErr != nil {
-        return errors.New("Error serializing 'itemWriteLength' field " + _itemWriteLengthErr.Error())
-    }
-
-        return nil
-    }
-    return m.Parent.SerializeParent(io, m, ser)
+	ser := func() error {
+
+		// Simple Field (itemIndexGroup)
+		itemIndexGroup := uint32(m.ItemIndexGroup)
+		_itemIndexGroupErr := io.WriteUint32(32, (itemIndexGroup))
+		if _itemIndexGroupErr != nil {
+			return errors.New("Error serializing 'itemIndexGroup' field " + _itemIndexGroupErr.Error())
+		}
+
+		// Simple Field (itemIndexOffset)
+		itemIndexOffset := uint32(m.ItemIndexOffset)
+		_itemIndexOffsetErr := io.WriteUint32(32, (itemIndexOffset))
+		if _itemIndexOffsetErr != nil {
+			return errors.New("Error serializing 'itemIndexOffset' field " + _itemIndexOffsetErr.Error())
+		}
+
+		// Simple Field (itemWriteLength)
+		itemWriteLength := uint32(m.ItemWriteLength)
+		_itemWriteLengthErr := io.WriteUint32(32, (itemWriteLength))
+		if _itemWriteLengthErr != nil {
+			return errors.New("Error serializing 'itemWriteLength' field " + _itemWriteLengthErr.Error())
+		}
+
+		return nil
+	}
+	return m.Parent.SerializeParent(io, m, ser)
 }
 
 func (m *AdsMultiRequestItemWrite) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
-    var token xml.Token
-    var err error
-    token = start
-    for {
-        switch token.(type) {
-        case xml.StartElement:
-            tok := token.(xml.StartElement)
-            switch tok.Name.Local {
-            case "itemIndexGroup":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.ItemIndexGroup = data
-            case "itemIndexOffset":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.ItemIndexOffset = data
-            case "itemWriteLength":
-                var data uint32
-                if err := d.DecodeElement(&data, &tok); err != nil {
-                    return err
-                }
-                m.ItemWriteLength = data
-            }
-        }
-        token, err = d.Token()
-        if err != nil {
-            if err == io.EOF {
-                return nil
-            }
-            return err
-        }
-    }
+	var token xml.Token
+	var err error
+	token = start
+	for {
+		switch token.(type) {
+		case xml.StartElement:
+			tok := token.(xml.StartElement)
+			switch tok.Name.Local {
+			case "itemIndexGroup":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.ItemIndexGroup = data
+			case "itemIndexOffset":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.ItemIndexOffset = data
+			case "itemWriteLength":
+				var data uint32
+				if err := d.DecodeElement(&data, &tok); err != nil {
+					return err
+				}
+				m.ItemWriteLength = data
+			}
+		}
+		token, err = d.Token()
+		if err != nil {
+			if err == io.EOF {
+				return nil
+			}
+			return err
+		}
+	}
 }
 
 func (m *AdsMultiRequestItemWrite) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-    if err := e.EncodeElement(m.ItemIndexGroup, xml.StartElement{Name: xml.Name{Local: "itemIndexGroup"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.ItemIndexOffset, xml.StartElement{Name: xml.Name{Local: "itemIndexOffset"}}); err != nil {
-        return err
-    }
-    if err := e.EncodeElement(m.ItemWriteLength, xml.StartElement{Name: xml.Name{Local: "itemWriteLength"}}); err != nil {
-        return err
-    }
-    return nil
+	if err := e.EncodeElement(m.ItemIndexGroup, xml.StartElement{Name: xml.Name{Local: "itemIndexGroup"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.ItemIndexOffset, xml.StartElement{Name: xml.Name{Local: "itemIndexOffset"}}); err != nil {
+		return err
+	}
+	if err := e.EncodeElement(m.ItemWriteLength, xml.StartElement{Name: xml.Name{Local: "itemWriteLength"}}); err != nil {
+		return err
+	}
+	return nil
 }
-
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go b/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go
index 1dc16da..2def90b 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type CommandId uint16
 
 type ICommandId interface {
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/DataItem.go b/plc4go/internal/plc4go/ads/readwrite/model/DataItem.go
index febf6a0..da44188 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/DataItem.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/DataItem.go
@@ -25,6 +25,8 @@ import (
 	api "github.com/apache/plc4x/plc4go/pkg/plc4go/values"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 func DataItemParse(io *utils.ReadBuffer, dataFormatName string, stringLength int32) (api.PlcValue, error) {
 	switch {
 	case dataFormatName == "IEC61131_BOOL": // BOOL
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go b/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go
index 8471753..98bb081 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type ReservedIndexGroups uint32
 
 type IReservedIndexGroups interface {
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go b/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go
index 4b44950..92151f2 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type ReturnCode uint32
 
 type IReturnCode interface {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
index 8f92b40..2b18ea8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
@@ -25,6 +25,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type BacnetipParserHelper struct {
 }
 
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
index ae3fd5e..4faaecf 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
@@ -25,6 +25,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type BacnetipXmlParserHelper struct {
 }
 
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go
index 6677b6b..1924ce5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type ApplicationTag int8
 
 type IApplicationTag interface {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
index d10ced9..981cb81 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
@@ -27,6 +27,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const BACnetConfirmedServiceRequestConfirmedCOVNotification_SUBSCRIBERPROCESSIDENTIFIERHEADER uint8 = 0x09
 const BACnetConfirmedServiceRequestConfirmedCOVNotification_MONITOREDOBJECTIDENTIFIERHEADER uint8 = 0x1C
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
index b6be50a..479d337 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
@@ -27,6 +27,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const BACnetConfirmedServiceRequestReadProperty_OBJECTIDENTIFIERHEADER uint8 = 0x0C
 const BACnetConfirmedServiceRequestReadProperty_PROPERTYIDENTIFIERHEADER uint8 = 0x03
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
index c7b19ce..922f6d3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
@@ -27,6 +27,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const BACnetConfirmedServiceRequestSubscribeCOV_SUBSCRIBERPROCESSIDENTIFIERHEADER uint8 = 0x09
 const BACnetConfirmedServiceRequestSubscribeCOV_MONITOREDOBJECTIDENTIFIERHEADER uint8 = 0x1C
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
index 7b21061..04d824a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
@@ -27,6 +27,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const BACnetConfirmedServiceRequestWriteProperty_OBJECTIDENTIFIERHEADER uint8 = 0x0C
 const BACnetConfirmedServiceRequestWriteProperty_PROPERTYIDENTIFIERHEADER uint8 = 0x03
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
index b027650..16b1c30 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
@@ -27,6 +27,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const BACnetErrorReadProperty_ERRORCLASSHEADER uint8 = 0x12
 const BACnetErrorReadProperty_ERRORCODEHEADER uint8 = 0x12
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
index 0ca7dba..1d4bc73 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type BACnetNetworkType uint8
 
 type IBACnetNetworkType interface {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
index 50eb91a..bff92ee 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type BACnetNodeType uint8
 
 type IBACnetNodeType interface {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
index 02f0242..1000973 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type BACnetNotifyType uint8
 
 type IBACnetNotifyType interface {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
index 90fc865..537713d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type BACnetObjectType uint16
 
 type IBACnetObjectType interface {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
index 7e42cd6..335e6bb 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
@@ -27,6 +27,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const BACnetServiceAckReadProperty_OBJECTIDENTIFIERHEADER uint8 = 0x0C
 const BACnetServiceAckReadProperty_PROPERTYIDENTIFIERHEADER uint8 = 0x03
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go
index 31991ea..4930406 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go
@@ -26,6 +26,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const BACnetTagWithContent_OPENTAG uint8 = 0x2e
 const BACnetTagWithContent_CLOSINGTAG uint8 = 0x2f
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
index 9175314..6b74634 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
@@ -27,6 +27,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const BACnetUnconfirmedServiceRequestIAm_OBJECTIDENTIFIERHEADER uint8 = 0xC4
 const BACnetUnconfirmedServiceRequestIAm_MAXIMUMAPDULENGTHACCEPTEDHEADER uint8 = 0x04
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
index 2d6ee46..28b00b4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
@@ -27,6 +27,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer_VENDORIDHEADER uint8 = 0x09
 const BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer_SERVICENUMBERHEADER uint8 = 0x1A
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
index 4394f44..465e52e 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
@@ -27,6 +27,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const BACnetUnconfirmedServiceRequestWhoHas_DEVICEINSTANCELOWLIMITHEADER uint8 = 0x0B
 const BACnetUnconfirmedServiceRequestWhoHas_DEVICEINSTANCEHIGHLIMITHEADER uint8 = 0x1B
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
index 36de711..564fa41 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
@@ -27,6 +27,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const BACnetUnconfirmedServiceRequestWhoIs_DEVICEINSTANCERANGELOWLIMITHEADER uint8 = 0x01
 const BACnetUnconfirmedServiceRequestWhoIs_DEVICEINSTANCERANGEHIGHLIMITHEADER uint8 = 0x03
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
index 371e530..16b9654 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
@@ -28,6 +28,8 @@ import (
 	"strings"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const BVLC_BACNETTYPE uint8 = 0x81
 
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/ParserHelper.go b/plc4go/internal/plc4go/knxnetip/readwrite/ParserHelper.go
index 0e5f4c1..556e393 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/ParserHelper.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/ParserHelper.go
@@ -25,6 +25,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type KnxnetipParserHelper struct {
 }
 
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/XmlParserHelper.go b/plc4go/internal/plc4go/knxnetip/readwrite/XmlParserHelper.go
index 68cf241..c6caf04 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/XmlParserHelper.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/XmlParserHelper.go
@@ -25,6 +25,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type KnxnetipXmlParserHelper struct {
 }
 
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/AccessLevel.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/AccessLevel.go
index 8958f40..6e96fd0 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/AccessLevel.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/AccessLevel.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type AccessLevel uint8
 
 type IAccessLevel interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go
index bfaa53c..797106c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go
@@ -26,6 +26,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const CEMIAdditionalInformationBusmonitorInfo_LEN uint8 = 1
 
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
index f088308..3f15596 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
@@ -26,6 +26,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const CEMIAdditionalInformationRelativeTimestamp_LEN uint8 = 2
 
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPriority.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPriority.go
index 145856a..0688a5e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPriority.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPriority.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type CEMIPriority uint8
 
 type ICEMIPriority interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableAddresses.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableAddresses.go
index d4b40ad..3ae64e8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableAddresses.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableAddresses.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type ComObjectTableAddresses uint16
 
 type IComObjectTableAddresses interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectValueType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectValueType.go
index fe4b7a1..b25b7e4 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectValueType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectValueType.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type ComObjectValueType uint8
 
 type IComObjectValueType interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptor.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptor.go
index dfac377..cb99d63 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptor.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptor.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type DeviceDescriptor uint16
 
 type IDeviceDescriptor interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorMediumType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorMediumType.go
index fdad6ae..e130aab 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorMediumType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorMediumType.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type DeviceDescriptorMediumType uint8
 
 type IDeviceDescriptorMediumType interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/FirmwareType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/FirmwareType.go
index 9b6ed99..5c7e471 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/FirmwareType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/FirmwareType.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type FirmwareType uint16
 
 type IFirmwareType interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/HostProtocolCode.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/HostProtocolCode.go
index a504019..360542b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/HostProtocolCode.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/HostProtocolCode.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type HostProtocolCode uint8
 
 type IHostProtocolCode interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapoint.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapoint.go
index 91a29cf..54441ac 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapoint.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapoint.go
@@ -26,6 +26,8 @@ import (
 	"time"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 func KnxDatapointParse(io *utils.ReadBuffer, datapointType KnxDatapointType) (api.PlcValue, error) {
 	switch {
 	case datapointType == KnxDatapointType_BOOL: // BOOL
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointMainType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointMainType.go
index 57b25ee..ed6eb35 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointMainType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointMainType.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type KnxDatapointMainType uint16
 
 type IKnxDatapointMainType interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointType.go
index efed0cf..fa64b39 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointType.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type KnxDatapointType uint32
 
 type IKnxDatapointType interface {
@@ -1851,7 +1853,7 @@ func (e KnxDatapointType) Name() string {
 		}
 	case 112:
 		{ /* '112' */
-			return "power denisity (W/m²)"
+			return "power density (W/m²)"
 		}
 	case 113:
 		{ /* '113' */
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectProperty.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectProperty.go
index 07a951e..5107e01 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectProperty.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectProperty.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type KnxInterfaceObjectProperty uint32
 
 type IKnxInterfaceObjectProperty interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectType.go
index a1c5403..dd1217e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectType.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type KnxInterfaceObjectType uint16
 
 type IKnxInterfaceObjectType interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go
index c4725cd..cb7495e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type KnxLayer uint8
 
 type IKnxLayer interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxManufacturer.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxManufacturer.go
index 38b3389..90c694a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxManufacturer.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxManufacturer.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type KnxManufacturer uint16
 
 type IKnxManufacturer interface {
@@ -567,8 +569,14 @@ const (
 	KnxManufacturer_M_NIETIAN                                            KnxManufacturer = 533
 	KnxManufacturer_M_SUMSIR                                             KnxManufacturer = 534
 	KnxManufacturer_M_ORBIS_TECNOLOGIA_ELECTRICA_SA                      KnxManufacturer = 535
-	KnxManufacturer_M_ABB___RESERVED                                     KnxManufacturer = 536
-	KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED                    KnxManufacturer = 537
+	KnxManufacturer_M_NANJING_ZHONGYI_IOT_TECHNOLOGY_CO___LTD_           KnxManufacturer = 536
+	KnxManufacturer_M_ANLIPS                                             KnxManufacturer = 537
+	KnxManufacturer_M_GUANGDONG_PAK_CORPORATION_CO___LTD                 KnxManufacturer = 538
+	KnxManufacturer_M_BVK_TECHNOLOGY                                     KnxManufacturer = 539
+	KnxManufacturer_M_SOLOMIO_SRL                                        KnxManufacturer = 540
+	KnxManufacturer_M_DOMOTICA_LABS                                      KnxManufacturer = 541
+	KnxManufacturer_M_ABB___RESERVED                                     KnxManufacturer = 542
+	KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED                    KnxManufacturer = 543
 )
 
 func (e KnxManufacturer) Number() uint16 {
@@ -2519,16 +2527,40 @@ func (e KnxManufacturer) Number() uint16 {
 		}
 	case 536:
 		{ /* '536' */
-			return 43954
+			return 593
 		}
 	case 537:
 		{ /* '537' */
-			return 43959
+			return 594
+		}
+	case 538:
+		{ /* '538' */
+			return 595
+		}
+	case 539:
+		{ /* '539' */
+			return 596
 		}
 	case 54:
 		{ /* '54' */
 			return 92
 		}
+	case 540:
+		{ /* '540' */
+			return 597
+		}
+	case 541:
+		{ /* '541' */
+			return 598
+		}
+	case 542:
+		{ /* '542' */
+			return 43954
+		}
+	case 543:
+		{ /* '543' */
+			return 43959
+		}
 	case 55:
 		{ /* '55' */
 			return 93
@@ -4680,16 +4712,40 @@ func (e KnxManufacturer) Name() string {
 		}
 	case 536:
 		{ /* '536' */
-			return "ABB - reserved"
+			return "Nanjing Zhongyi IoT Technology Co., Ltd."
 		}
 	case 537:
 		{ /* '537' */
-			return "Busch-Jaeger Elektro - reserved"
+			return "Anlips"
+		}
+	case 538:
+		{ /* '538' */
+			return "GUANGDONG PAK CORPORATION CO., LTD"
+		}
+	case 539:
+		{ /* '539' */
+			return "BVK Technology"
 		}
 	case 54:
 		{ /* '54' */
 			return "DORMA GmbH + Co. KG"
 		}
+	case 540:
+		{ /* '540' */
+			return "Solomio srl"
+		}
+	case 541:
+		{ /* '541' */
+			return "Domotica Labs"
+		}
+	case 542:
+		{ /* '542' */
+			return "ABB - reserved"
+		}
+	case 543:
+		{ /* '543' */
+			return "Busch-Jaeger Elektro - reserved"
+		}
 	case 55:
 		{ /* '55' */
 			return "WindowMaster A/S"
@@ -5867,11 +5923,23 @@ func KnxManufacturerByValue(value uint16) KnxManufacturer {
 	case 535:
 		return KnxManufacturer_M_ORBIS_TECNOLOGIA_ELECTRICA_SA
 	case 536:
-		return KnxManufacturer_M_ABB___RESERVED
+		return KnxManufacturer_M_NANJING_ZHONGYI_IOT_TECHNOLOGY_CO___LTD_
 	case 537:
-		return KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED
+		return KnxManufacturer_M_ANLIPS
+	case 538:
+		return KnxManufacturer_M_GUANGDONG_PAK_CORPORATION_CO___LTD
+	case 539:
+		return KnxManufacturer_M_BVK_TECHNOLOGY
 	case 54:
 		return KnxManufacturer_M_DORMA_GMBH_Plus_CO__KG
+	case 540:
+		return KnxManufacturer_M_SOLOMIO_SRL
+	case 541:
+		return KnxManufacturer_M_DOMOTICA_LABS
+	case 542:
+		return KnxManufacturer_M_ABB___RESERVED
+	case 543:
+		return KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED
 	case 55:
 		return KnxManufacturer_M_WINDOWMASTER_AS
 	case 56:
@@ -6948,12 +7016,24 @@ func KnxManufacturerByName(value string) KnxManufacturer {
 		return KnxManufacturer_M_SUMSIR
 	case "M_ORBIS_TECNOLOGIA_ELECTRICA_SA":
 		return KnxManufacturer_M_ORBIS_TECNOLOGIA_ELECTRICA_SA
+	case "M_NANJING_ZHONGYI_IOT_TECHNOLOGY_CO___LTD_":
+		return KnxManufacturer_M_NANJING_ZHONGYI_IOT_TECHNOLOGY_CO___LTD_
+	case "M_ANLIPS":
+		return KnxManufacturer_M_ANLIPS
+	case "M_GUANGDONG_PAK_CORPORATION_CO___LTD":
+		return KnxManufacturer_M_GUANGDONG_PAK_CORPORATION_CO___LTD
+	case "M_BVK_TECHNOLOGY":
+		return KnxManufacturer_M_BVK_TECHNOLOGY
+	case "M_DORMA_GMBH_Plus_CO__KG":
+		return KnxManufacturer_M_DORMA_GMBH_Plus_CO__KG
+	case "M_SOLOMIO_SRL":
+		return KnxManufacturer_M_SOLOMIO_SRL
+	case "M_DOMOTICA_LABS":
+		return KnxManufacturer_M_DOMOTICA_LABS
 	case "M_ABB___RESERVED":
 		return KnxManufacturer_M_ABB___RESERVED
 	case "M_BUSCH_JAEGER_ELEKTRO___RESERVED":
 		return KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED
-	case "M_DORMA_GMBH_Plus_CO__KG":
-		return KnxManufacturer_M_DORMA_GMBH_Plus_CO__KG
 	case "M_WINDOWMASTER_AS":
 		return KnxManufacturer_M_WINDOWMASTER_AS
 	case "M_WALTHER_WERKE":
@@ -8061,12 +8141,24 @@ func (e KnxManufacturer) String() string {
 		return "M_SUMSIR"
 	case KnxManufacturer_M_ORBIS_TECNOLOGIA_ELECTRICA_SA:
 		return "M_ORBIS_TECNOLOGIA_ELECTRICA_SA"
+	case KnxManufacturer_M_NANJING_ZHONGYI_IOT_TECHNOLOGY_CO___LTD_:
+		return "M_NANJING_ZHONGYI_IOT_TECHNOLOGY_CO___LTD_"
+	case KnxManufacturer_M_ANLIPS:
+		return "M_ANLIPS"
+	case KnxManufacturer_M_GUANGDONG_PAK_CORPORATION_CO___LTD:
+		return "M_GUANGDONG_PAK_CORPORATION_CO___LTD"
+	case KnxManufacturer_M_BVK_TECHNOLOGY:
+		return "M_BVK_TECHNOLOGY"
+	case KnxManufacturer_M_DORMA_GMBH_Plus_CO__KG:
+		return "M_DORMA_GMBH_Plus_CO__KG"
+	case KnxManufacturer_M_SOLOMIO_SRL:
+		return "M_SOLOMIO_SRL"
+	case KnxManufacturer_M_DOMOTICA_LABS:
+		return "M_DOMOTICA_LABS"
 	case KnxManufacturer_M_ABB___RESERVED:
 		return "M_ABB___RESERVED"
 	case KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED:
 		return "M_BUSCH_JAEGER_ELEKTRO___RESERVED"
-	case KnxManufacturer_M_DORMA_GMBH_Plus_CO__KG:
-		return "M_DORMA_GMBH_Plus_CO__KG"
 	case KnxManufacturer_M_WINDOWMASTER_AS:
 		return "M_WINDOWMASTER_AS"
 	case KnxManufacturer_M_WALTHER_WERKE:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxMedium.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxMedium.go
index 67b24eb..193bd86 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxMedium.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxMedium.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type KnxMedium uint8
 
 type IKnxMedium interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go
index a8c9186..aa85c26 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go
@@ -28,6 +28,8 @@ import (
 	"strings"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const KnxNetIpMessage_PROTOCOLVERSION uint8 = 0x10
 
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxProperty.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxProperty.go
index ff60141..4cc4bbe 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxProperty.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxProperty.go
@@ -25,6 +25,8 @@ import (
 	api "github.com/apache/plc4x/plc4go/pkg/plc4go/values"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 func KnxPropertyParse(io *utils.ReadBuffer, propertyType KnxPropertyDataType, dataLengthInBytes uint8) (api.PlcValue, error) {
 	switch {
 	case propertyType == KnxPropertyDataType_PDT_CONTROL: // BOOL
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxPropertyDataType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxPropertyDataType.go
index fd3c169..f8f8b23 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxPropertyDataType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxPropertyDataType.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type KnxPropertyDataType uint8
 
 type IKnxPropertyDataType interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/Status.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/Status.go
index 06fc746..f49ee99 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/Status.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/Status.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type Status uint8
 
 type IStatus interface {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/SupportedPhysicalMedia.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/SupportedPhysicalMedia.go
index 6eb6128..442db6c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/SupportedPhysicalMedia.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/SupportedPhysicalMedia.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type SupportedPhysicalMedia uint8
 
 type ISupportedPhysicalMedia interface {
diff --git a/plc4go/internal/plc4go/modbus/readwrite/ParserHelper.go b/plc4go/internal/plc4go/modbus/readwrite/ParserHelper.go
index 67363e9..1ce6dcd 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/ParserHelper.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/ParserHelper.go
@@ -25,6 +25,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type ModbusParserHelper struct {
 }
 
diff --git a/plc4go/internal/plc4go/modbus/readwrite/XmlParserHelper.go b/plc4go/internal/plc4go/modbus/readwrite/XmlParserHelper.go
index 16d9d6d..5d21cb4 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/XmlParserHelper.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/XmlParserHelper.go
@@ -25,6 +25,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type ModbusXmlParserHelper struct {
 }
 
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/DataItem.go b/plc4go/internal/plc4go/modbus/readwrite/model/DataItem.go
index 20297ca..c6768c8 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/DataItem.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/DataItem.go
@@ -25,6 +25,8 @@ import (
 	api "github.com/apache/plc4x/plc4go/pkg/plc4go/values"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 func DataItemParse(io *utils.ReadBuffer, dataType ModbusDataType, numberOfValues uint16) (api.PlcValue, error) {
 	switch {
 	case dataType == ModbusDataType_BOOL && numberOfValues == 1: // BOOL
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusConstants.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusConstants.go
index b7866d1..19a431f 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusConstants.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusConstants.go
@@ -26,6 +26,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const ModbusConstants_MODBUSTCPDEFAULTPORT uint16 = 502
 
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusDataType.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusDataType.go
index ddf015a..b61b719 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusDataType.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusDataType.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type ModbusDataType uint8
 
 type IModbusDataType interface {
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusErrorCode.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusErrorCode.go
index 8d34c3c..310824e 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusErrorCode.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusErrorCode.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type ModbusErrorCode uint8
 
 type IModbusErrorCode interface {
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusTcpADU.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusTcpADU.go
index a388a95..9e22cc0 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusTcpADU.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusTcpADU.go
@@ -26,6 +26,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const ModbusTcpADU_PROTOCOLIDENTIFIER uint16 = 0x0000
 
diff --git a/plc4go/internal/plc4go/s7/readwrite/ParserHelper.go b/plc4go/internal/plc4go/s7/readwrite/ParserHelper.go
index 1a7b54d..2d1e19e 100644
--- a/plc4go/internal/plc4go/s7/readwrite/ParserHelper.go
+++ b/plc4go/internal/plc4go/s7/readwrite/ParserHelper.go
@@ -25,6 +25,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type S7ParserHelper struct {
 }
 
diff --git a/plc4go/internal/plc4go/s7/readwrite/XmlParserHelper.go b/plc4go/internal/plc4go/s7/readwrite/XmlParserHelper.go
index 6a5482a..a5e8dbb 100644
--- a/plc4go/internal/plc4go/s7/readwrite/XmlParserHelper.go
+++ b/plc4go/internal/plc4go/s7/readwrite/XmlParserHelper.go
@@ -25,6 +25,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type S7XmlParserHelper struct {
 }
 
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPProtocolClass.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPProtocolClass.go
index b3518e4..3192c12 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPProtocolClass.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPProtocolClass.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type COTPProtocolClass int8
 
 type ICOTPProtocolClass interface {
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPTpduSize.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPTpduSize.go
index e196843..118f475 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPTpduSize.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPTpduSize.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type COTPTpduSize int8
 
 type ICOTPTpduSize interface {
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/DataItem.go b/plc4go/internal/plc4go/s7/readwrite/model/DataItem.go
index a1247da..db91288 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/DataItem.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/DataItem.go
@@ -26,6 +26,8 @@ import (
 	"time"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 func DataItemParse(io *utils.ReadBuffer, dataProtocolId string, stringLength int32) (api.PlcValue, error) {
 	switch {
 	case dataProtocolId == "IEC61131_BOOL": // BOOL
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/DataTransportErrorCode.go b/plc4go/internal/plc4go/s7/readwrite/model/DataTransportErrorCode.go
index b0b97b0..84a8c09 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/DataTransportErrorCode.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/DataTransportErrorCode.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type DataTransportErrorCode uint8
 
 type IDataTransportErrorCode interface {
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/DataTransportSize.go b/plc4go/internal/plc4go/s7/readwrite/model/DataTransportSize.go
index 82a9e6b..3d95458 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/DataTransportSize.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/DataTransportSize.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type DataTransportSize uint8
 
 type IDataTransportSize interface {
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/DeviceGroup.go b/plc4go/internal/plc4go/s7/readwrite/model/DeviceGroup.go
index 95cf2eb..350a84f 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/DeviceGroup.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/DeviceGroup.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type DeviceGroup int8
 
 type IDeviceGroup interface {
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/MemoryArea.go b/plc4go/internal/plc4go/s7/readwrite/model/MemoryArea.go
index 647d1fb..a83a3b3 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/MemoryArea.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/MemoryArea.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type MemoryArea uint8
 
 type IMemoryArea interface {
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7Message.go b/plc4go/internal/plc4go/s7/readwrite/model/S7Message.go
index 9889ee6..167afee 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7Message.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7Message.go
@@ -29,6 +29,8 @@ import (
 	"strings"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const S7Message_PROTOCOLID uint8 = 0x32
 
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go
index ca96f84..49797ad 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go
@@ -26,6 +26,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const S7PayloadUserDataItemCpuFunctionReadSzlResponse_SZLITEMLENGTH uint16 = 28
 
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/SzlModuleTypeClass.go b/plc4go/internal/plc4go/s7/readwrite/model/SzlModuleTypeClass.go
index a0ef297..617c845 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/SzlModuleTypeClass.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/SzlModuleTypeClass.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type SzlModuleTypeClass uint8
 
 type ISzlModuleTypeClass interface {
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/SzlSublist.go b/plc4go/internal/plc4go/s7/readwrite/model/SzlSublist.go
index 641c229..32151a4 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/SzlSublist.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/SzlSublist.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type SzlSublist uint8
 
 type ISzlSublist interface {
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/TPKTPacket.go b/plc4go/internal/plc4go/s7/readwrite/model/TPKTPacket.go
index 0ab1b79..701d304 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/TPKTPacket.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/TPKTPacket.go
@@ -27,6 +27,8 @@ import (
 	"strconv"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 // Constant values.
 const TPKTPacket_PROTOCOLID uint8 = 0x03
 
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go b/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go
index cd00c3e..cdb4360 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go
@@ -22,6 +22,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
+// Code generated by build-utils. DO NOT EDIT.
+
 type TransportSize int8
 
 type ITransportSize interface {
diff --git a/plc4go/internal/plc4go/spi/utils/CastUtils.go b/plc4go/internal/plc4go/spi/utils/CastUtils.go
index 7a1c8ec..ccb9639 100644
--- a/plc4go/internal/plc4go/spi/utils/CastUtils.go
+++ b/plc4go/internal/plc4go/spi/utils/CastUtils.go
@@ -106,3 +106,11 @@ func StrToUint16(str string) (uint16, error) {
 	}
 	return uint16(intVal), nil
 }
+
+func StrToUint32(str string) (uint32, error) {
+	intVal, err := strconv.ParseInt(str, 10, 32)
+	if err != nil {
+		return 0, err
+	}
+	return uint32(intVal), nil
+}