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/13 01:04:40 UTC

[plc4x] branch develop updated: plc4go: Partial test fix + un/marshal uses hex base output now + DriverTestsuite.xml still contains base64

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 d0f4754  plc4go: Partial test fix + un/marshal uses hex base output now + DriverTestsuite.xml still contains base64
d0f4754 is described below

commit d0f475407029af5260898a6a1b1f352fc2ffde6d
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Sat Mar 13 02:04:14 2021 +0100

    plc4go: Partial test fix
    + un/marshal uses hex base output now
    + DriverTestsuite.xml still contains base64
---
 .../plc4x/language/go/GoLanguageTemplateHelper.java   |  3 ++-
 .../main/resources/templates/go/model-template.ftlh   | 12 ++++++------
 .../testing/protocols/modbus/DriverTestsuite.xml      | 12 ++++++------
 .../ads/readwrite/model/AdsNotificationSample.go      | 11 ++++++-----
 .../ads/readwrite/model/AdsReadDeviceInfoResponse.go  | 11 ++++++-----
 .../plc4go/ads/readwrite/model/AdsReadResponse.go     | 11 ++++++-----
 .../plc4go/ads/readwrite/model/AdsReadWriteRequest.go | 11 ++++++-----
 .../ads/readwrite/model/AdsReadWriteResponse.go       | 11 ++++++-----
 .../ads/readwrite/model/AdsWriteControlRequest.go     | 11 ++++++-----
 .../plc4go/ads/readwrite/model/AdsWriteRequest.go     | 11 ++++++-----
 ...ConfirmedServiceRequestConfirmedCOVNotification.go | 11 ++++++-----
 .../BACnetConfirmedServiceRequestReadProperty.go      | 11 ++++++-----
 .../BACnetConfirmedServiceRequestSubscribeCOV.go      | 11 ++++++-----
 .../BACnetConfirmedServiceRequestWriteProperty.go     | 11 ++++++-----
 .../readwrite/model/BACnetErrorReadProperty.go        | 19 ++++++++++---------
 .../readwrite/model/BACnetServiceAckReadProperty.go   | 11 ++++++-----
 .../readwrite/model/BACnetTagApplicationBitString.go  | 11 ++++++-----
 .../readwrite/model/BACnetTagApplicationEnumerated.go | 11 ++++++-----
 .../model/BACnetTagApplicationSignedInteger.go        | 11 ++++++-----
 .../model/BACnetTagApplicationUnsignedInteger.go      | 11 ++++++-----
 .../bacnetip/readwrite/model/BACnetTagContext.go      | 11 ++++++-----
 .../model/BACnetUnconfirmedServiceRequestIAm.go       | 11 ++++++-----
 ...nfirmedServiceRequestUnconfirmedPrivateTransfer.go | 11 ++++++-----
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go    | 11 ++++++-----
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go     | 19 ++++++++++---------
 .../model/ApduDataDeviceDescriptorResponse.go         | 11 ++++++-----
 .../readwrite/model/ApduDataGroupValueResponse.go     | 11 ++++++-----
 .../readwrite/model/ApduDataGroupValueWrite.go        | 11 ++++++-----
 .../plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go  | 19 ++++++++++---------
 .../plc4go/knxnetip/readwrite/model/IPAddress.go      | 11 ++++++-----
 .../plc4go/knxnetip/readwrite/model/LDataExtended.go  | 11 ++++++-----
 .../plc4go/knxnetip/readwrite/model/LPollData.go      | 11 ++++++-----
 .../plc4go/knxnetip/readwrite/model/MACAddress.go     | 11 ++++++-----
 .../plc4go/knxnetip/readwrite/model/UnknownMessage.go | 11 ++++++-----
 .../model/ModbusPDUGetComEventLogResponse.go          | 11 ++++++-----
 .../readwrite/model/ModbusPDUReadCoilsResponse.go     | 11 ++++++-----
 .../model/ModbusPDUReadDiscreteInputsResponse.go      | 11 ++++++-----
 .../model/ModbusPDUReadFileRecordResponseItem.go      | 11 ++++++-----
 .../model/ModbusPDUReadHoldingRegistersResponse.go    | 11 ++++++-----
 .../model/ModbusPDUReadInputRegistersResponse.go      | 11 ++++++-----
 ...dbusPDUReadWriteMultipleHoldingRegistersRequest.go | 11 ++++++-----
 ...busPDUReadWriteMultipleHoldingRegistersResponse.go | 11 ++++++-----
 .../model/ModbusPDUReportServerIdResponse.go          | 11 ++++++-----
 .../model/ModbusPDUWriteFileRecordRequestItem.go      | 11 ++++++-----
 .../model/ModbusPDUWriteFileRecordResponseItem.go     | 11 ++++++-----
 .../model/ModbusPDUWriteMultipleCoilsRequest.go       | 11 ++++++-----
 .../ModbusPDUWriteMultipleHoldingRegistersRequest.go  | 11 ++++++-----
 .../plc4go/s7/readwrite/model/S7VarPayloadDataItem.go | 11 ++++++-----
 .../plc4go/s7/readwrite/model/SzlDataTreeItem.go      | 11 ++++++-----
 plc4go/internal/plc4go/spi/testutils/TestUtils.go     | 10 +++++-----
 50 files changed, 307 insertions(+), 260 deletions(-)

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 c6bfada..ab96f7f 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
@@ -805,7 +805,8 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
         List<String> imports = new ArrayList<>();
 
         if (complexTypeDefinition.getAllPropertyFields().stream().anyMatch(field -> isArrayField(field) && getLanguageTypeNameForField(field).equals("int8"))) {
-            imports.add("\"encoding/base64\"");
+            imports.add("\"encoding/hex\"");
+            imports.add("\"strings\"");
         }
 
         imports.add("\"encoding/xml\"");
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 2327c10..213d1c3 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
@@ -906,14 +906,14 @@ func (m *${type.name}) UnmarshalXML(d *xml.Decoder, start xml.StartElement) erro
 				<#assign hasSwitch = true>
 			<#elseif helper.isPropertyField(field) && !helper.isConstField(field) && !helper.isVirtualField(field)>
 			case "${field.name}":
-			<#-- int8 arrays are serialized in Base64 encoding -->
+			<#-- int8 arrays are serialized in hex encoding -->
 				<#if helper.isArrayField(field) && (helper.getLanguageTypeNameForField(field) == 'int8')>
 				var _encoded string
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+                _decoded, err := hex.DecodeString(_encoded)
+                _len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -1008,10 +1008,10 @@ func (m *${type.name}) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 	<#if type.fields?has_content>
 		<#list type.fields as field>
 			<#if helper.isPropertyField(field) && !helper.isConstField(field) && !helper.isVirtualField(field)>
-			<#-- int8 arrays are serialized in Base64 encoding -->
+			<#-- int8 arrays are serialized in hex string encoding -->
 				<#if helper.isArrayField(field) && (helper.getLanguageTypeNameForField(field) == 'int8')>
-	_encoded${field.name?cap_first} := make([]byte, base64.StdEncoding.EncodedLen(len(m.${field.name?cap_first})))
-	base64.StdEncoding.Encode(_encoded${field.name?cap_first}, utils.Int8ArrayToByteArray(m.${field.name?cap_first}))
+	_encoded${field.name?cap_first} := hex.EncodeToString(utils.Int8ArrayToByteArray(m.${field.name?cap_first}))
+    _encoded${field.name?cap_first} = strings.ToUpper(_encoded${field.name?cap_first})
 	if err := e.EncodeElement(_encoded${field.name?cap_first}, xml.StartElement{Name: xml.Name{Local: "${field.name}"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/assets/testing/protocols/modbus/DriverTestsuite.xml b/plc4go/assets/testing/protocols/modbus/DriverTestsuite.xml
index 8b24ea5..e0d484c 100644
--- a/plc4go/assets/testing/protocols/modbus/DriverTestsuite.xml
+++ b/plc4go/assets/testing/protocols/modbus/DriverTestsuite.xml
@@ -60,7 +60,7 @@
           <transactionIdentifier>1</transactionIdentifier>
           <unitIdentifier>1</unitIdentifier>
           <pdu className="org.apache.plc4x.java.modbus.readwrite.ModbusPDUReadHoldingRegistersResponse">
-            <value>QEkP2w==</value>
+            <value>40490fdb</value>
           </pdu>
         </ModbusTcpADU>
       </incoming-plc-message>
@@ -121,7 +121,7 @@
           <transactionIdentifier>1</transactionIdentifier>
           <unitIdentifier>1</unitIdentifier>
           <pdu className="org.apache.plc4x.java.modbus.readwrite.ModbusPDUReadHoldingRegistersResponse">
-            <value>QEkP20BJD9s=</value>
+            <value>40490fdb40490fdb</value>
           </pdu>
         </ModbusTcpADU>
       </incoming-plc-message>
@@ -189,7 +189,7 @@
           <transactionIdentifier>1</transactionIdentifier>
           <unitIdentifier>1</unitIdentifier>
           <pdu className="org.apache.plc4x.java.modbus.readwrite.ModbusPDUReadHoldingRegistersResponse">
-            <value>QEkP2w==</value>
+            <value>40490fdb</value>
           </pdu>
         </ModbusTcpADU>
       </incoming-plc-message>
@@ -214,7 +214,7 @@
           <transactionIdentifier>2</transactionIdentifier>
           <unitIdentifier>1</unitIdentifier>
           <pdu className="org.apache.plc4x.java.modbus.readwrite.ModbusPDUReadHoldingRegistersResponse">
-            <value>QEkP2w==</value>
+            <value>40490fdb</value>
           </pdu>
         </ModbusTcpADU>
       </incoming-plc-message>
@@ -275,7 +275,7 @@
           <pdu className="org.apache.plc4x.java.modbus.readwrite.ModbusPDUWriteMultipleHoldingRegistersRequest">
             <startingAddress>0</startingAddress>
             <quantity>2</quantity>
-            <value>40490FDB</value>
+            <value>e34e3dd050c1</value>
           </pdu>
         </ModbusTcpADU>
       </outgoing-plc-message>
@@ -339,7 +339,7 @@
           <pdu className="org.apache.plc4x.java.modbus.readwrite.ModbusPDUWriteMultipleHoldingRegistersRequest">
             <startingAddress>0</startingAddress>
             <quantity>4</quantity>
-            <value>40490FDB40490FDB</value>
+            <value>e34e3dd050c1e34e3dd050c1</value>
           </pdu>
         </ModbusTcpADU>
       </outgoing-plc-message>
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsNotificationSample.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsNotificationSample.go
index 4945914..5f568a2 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsNotificationSample.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsNotificationSample.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -176,8 +177,8 @@ func (m *AdsNotificationSample) UnmarshalXML(d *xml.Decoder, start xml.StartElem
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -200,8 +201,8 @@ func (m *AdsNotificationSample) MarshalXML(e *xml.Encoder, start xml.StartElemen
 	if err := e.EncodeElement(m.SampleSize, xml.StartElement{Name: xml.Name{Local: "sampleSize"}}); err != nil {
 		return err
 	}
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
index 4369abf..b7a1e93 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -257,8 +258,8 @@ func (m *AdsReadDeviceInfoResponse) UnmarshalXML(d *xml.Decoder, start xml.Start
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -288,8 +289,8 @@ func (m *AdsReadDeviceInfoResponse) MarshalXML(e *xml.Encoder, start xml.StartEl
 	if err := e.EncodeElement(m.Version, xml.StartElement{Name: xml.Name{Local: "version"}}); err != nil {
 		return err
 	}
-	_encodedDevice := make([]byte, base64.StdEncoding.EncodedLen(len(m.Device)))
-	base64.StdEncoding.Encode(_encodedDevice, utils.Int8ArrayToByteArray(m.Device))
+	_encodedDevice := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Device))
+	_encodedDevice = strings.ToUpper(_encodedDevice)
 	if err := e.EncodeElement(_encodedDevice, xml.StartElement{Name: xml.Name{Local: "device"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
index 12ce2ed..08794d6 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -198,8 +199,8 @@ func (m *AdsReadResponse) UnmarshalXML(d *xml.Decoder, start xml.StartElement) e
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -220,8 +221,8 @@ func (m *AdsReadResponse) MarshalXML(e *xml.Encoder, start xml.StartElement) err
 	if err := e.EncodeElement(m.Result, xml.StartElement{Name: xml.Name{Local: "result"}}); err != nil {
 		return err
 	}
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
index 79ef873..99430dd 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -288,8 +289,8 @@ func (m *AdsReadWriteRequest) UnmarshalXML(d *xml.Decoder, start xml.StartElemen
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -325,8 +326,8 @@ func (m *AdsReadWriteRequest) MarshalXML(e *xml.Encoder, start xml.StartElement)
 	if err := e.EncodeToken(xml.EndElement{Name: xml.Name{Local: "items"}}); err != nil {
 		return err
 	}
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
index c9c7e16..cf1694e 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -198,8 +199,8 @@ func (m *AdsReadWriteResponse) UnmarshalXML(d *xml.Decoder, start xml.StartEleme
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -220,8 +221,8 @@ func (m *AdsReadWriteResponse) MarshalXML(e *xml.Encoder, start xml.StartElement
 	if err := e.EncodeElement(m.Result, xml.StartElement{Name: xml.Name{Local: "result"}}); err != nil {
 		return err
 	}
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
index a4a1196..6c49033 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -224,8 +225,8 @@ func (m *AdsWriteControlRequest) UnmarshalXML(d *xml.Decoder, start xml.StartEle
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -249,8 +250,8 @@ func (m *AdsWriteControlRequest) MarshalXML(e *xml.Encoder, start xml.StartEleme
 	if err := e.EncodeElement(m.DeviceState, xml.StartElement{Name: xml.Name{Local: "deviceState"}}); err != nil {
 		return err
 	}
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
index 129d841..45d7a01 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -224,8 +225,8 @@ func (m *AdsWriteRequest) UnmarshalXML(d *xml.Decoder, start xml.StartElement) e
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -249,8 +250,8 @@ func (m *AdsWriteRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) err
 	if err := e.EncodeElement(m.IndexOffset, xml.StartElement{Name: xml.Name{Local: "indexOffset"}}); err != nil {
 		return err
 	}
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
index 981cb81..1220aae 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
@@ -19,12 +19,13 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
 	"strconv"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -454,8 +455,8 @@ func (m *BACnetConfirmedServiceRequestConfirmedCOVNotification) UnmarshalXML(d *
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -497,8 +498,8 @@ func (m *BACnetConfirmedServiceRequestConfirmedCOVNotification) MarshalXML(e *xm
 	if err := e.EncodeElement(m.LifetimeLength, xml.StartElement{Name: xml.Name{Local: "lifetimeLength"}}); err != nil {
 		return err
 	}
-	_encodedLifetimeSeconds := make([]byte, base64.StdEncoding.EncodedLen(len(m.LifetimeSeconds)))
-	base64.StdEncoding.Encode(_encodedLifetimeSeconds, utils.Int8ArrayToByteArray(m.LifetimeSeconds))
+	_encodedLifetimeSeconds := hex.EncodeToString(utils.Int8ArrayToByteArray(m.LifetimeSeconds))
+	_encodedLifetimeSeconds = strings.ToUpper(_encodedLifetimeSeconds)
 	if err := e.EncodeElement(_encodedLifetimeSeconds, xml.StartElement{Name: xml.Name{Local: "lifetimeSeconds"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
index 479d337..3f6c151 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
@@ -19,12 +19,13 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
 	"strconv"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -270,8 +271,8 @@ func (m *BACnetConfirmedServiceRequestReadProperty) UnmarshalXML(d *xml.Decoder,
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -298,8 +299,8 @@ func (m *BACnetConfirmedServiceRequestReadProperty) MarshalXML(e *xml.Encoder, s
 	if err := e.EncodeElement(m.PropertyIdentifierLength, xml.StartElement{Name: xml.Name{Local: "propertyIdentifierLength"}}); err != nil {
 		return err
 	}
-	_encodedPropertyIdentifier := make([]byte, base64.StdEncoding.EncodedLen(len(m.PropertyIdentifier)))
-	base64.StdEncoding.Encode(_encodedPropertyIdentifier, utils.Int8ArrayToByteArray(m.PropertyIdentifier))
+	_encodedPropertyIdentifier := hex.EncodeToString(utils.Int8ArrayToByteArray(m.PropertyIdentifier))
+	_encodedPropertyIdentifier = strings.ToUpper(_encodedPropertyIdentifier)
 	if err := e.EncodeElement(_encodedPropertyIdentifier, xml.StartElement{Name: xml.Name{Local: "propertyIdentifier"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
index 922f6d3..95031a0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
@@ -19,12 +19,13 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
 	"strconv"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -377,8 +378,8 @@ func (m *BACnetConfirmedServiceRequestSubscribeCOV) UnmarshalXML(d *xml.Decoder,
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -411,8 +412,8 @@ func (m *BACnetConfirmedServiceRequestSubscribeCOV) MarshalXML(e *xml.Encoder, s
 	if err := e.EncodeElement(m.LifetimeLength, xml.StartElement{Name: xml.Name{Local: "lifetimeLength"}}); err != nil {
 		return err
 	}
-	_encodedLifetimeSeconds := make([]byte, base64.StdEncoding.EncodedLen(len(m.LifetimeSeconds)))
-	base64.StdEncoding.Encode(_encodedLifetimeSeconds, utils.Int8ArrayToByteArray(m.LifetimeSeconds))
+	_encodedLifetimeSeconds := hex.EncodeToString(utils.Int8ArrayToByteArray(m.LifetimeSeconds))
+	_encodedLifetimeSeconds = strings.ToUpper(_encodedLifetimeSeconds)
 	if err := e.EncodeElement(_encodedLifetimeSeconds, xml.StartElement{Name: xml.Name{Local: "lifetimeSeconds"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
index 04d824a..65a9de6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
@@ -19,12 +19,13 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
 	"strconv"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -357,8 +358,8 @@ func (m *BACnetConfirmedServiceRequestWriteProperty) UnmarshalXML(d *xml.Decoder
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -397,8 +398,8 @@ func (m *BACnetConfirmedServiceRequestWriteProperty) MarshalXML(e *xml.Encoder,
 	if err := e.EncodeElement(m.PropertyIdentifierLength, xml.StartElement{Name: xml.Name{Local: "propertyIdentifierLength"}}); err != nil {
 		return err
 	}
-	_encodedPropertyIdentifier := make([]byte, base64.StdEncoding.EncodedLen(len(m.PropertyIdentifier)))
-	base64.StdEncoding.Encode(_encodedPropertyIdentifier, utils.Int8ArrayToByteArray(m.PropertyIdentifier))
+	_encodedPropertyIdentifier := hex.EncodeToString(utils.Int8ArrayToByteArray(m.PropertyIdentifier))
+	_encodedPropertyIdentifier = strings.ToUpper(_encodedPropertyIdentifier)
 	if err := e.EncodeElement(_encodedPropertyIdentifier, xml.StartElement{Name: xml.Name{Local: "propertyIdentifier"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
index 16b1c30..dd026a2 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
@@ -19,12 +19,13 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
 	"strconv"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -268,8 +269,8 @@ func (m *BACnetErrorReadProperty) UnmarshalXML(d *xml.Decoder, start xml.StartEl
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -285,8 +286,8 @@ func (m *BACnetErrorReadProperty) UnmarshalXML(d *xml.Decoder, start xml.StartEl
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -307,16 +308,16 @@ func (m *BACnetErrorReadProperty) MarshalXML(e *xml.Encoder, start xml.StartElem
 	if err := e.EncodeElement(m.ErrorClassLength, xml.StartElement{Name: xml.Name{Local: "errorClassLength"}}); err != nil {
 		return err
 	}
-	_encodedErrorClass := make([]byte, base64.StdEncoding.EncodedLen(len(m.ErrorClass)))
-	base64.StdEncoding.Encode(_encodedErrorClass, utils.Int8ArrayToByteArray(m.ErrorClass))
+	_encodedErrorClass := hex.EncodeToString(utils.Int8ArrayToByteArray(m.ErrorClass))
+	_encodedErrorClass = strings.ToUpper(_encodedErrorClass)
 	if err := e.EncodeElement(_encodedErrorClass, xml.StartElement{Name: xml.Name{Local: "errorClass"}}); err != nil {
 		return err
 	}
 	if err := e.EncodeElement(m.ErrorCodeLength, xml.StartElement{Name: xml.Name{Local: "errorCodeLength"}}); err != nil {
 		return err
 	}
-	_encodedErrorCode := make([]byte, base64.StdEncoding.EncodedLen(len(m.ErrorCode)))
-	base64.StdEncoding.Encode(_encodedErrorCode, utils.Int8ArrayToByteArray(m.ErrorCode))
+	_encodedErrorCode := hex.EncodeToString(utils.Int8ArrayToByteArray(m.ErrorCode))
+	_encodedErrorCode = strings.ToUpper(_encodedErrorCode)
 	if err := e.EncodeElement(_encodedErrorCode, xml.StartElement{Name: xml.Name{Local: "errorCode"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
index 335e6bb..94f6a54 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
@@ -19,12 +19,13 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
 	"strconv"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -326,8 +327,8 @@ func (m *BACnetServiceAckReadProperty) UnmarshalXML(d *xml.Decoder, start xml.St
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -360,8 +361,8 @@ func (m *BACnetServiceAckReadProperty) MarshalXML(e *xml.Encoder, start xml.Star
 	if err := e.EncodeElement(m.PropertyIdentifierLength, xml.StartElement{Name: xml.Name{Local: "propertyIdentifierLength"}}); err != nil {
 		return err
 	}
-	_encodedPropertyIdentifier := make([]byte, base64.StdEncoding.EncodedLen(len(m.PropertyIdentifier)))
-	base64.StdEncoding.Encode(_encodedPropertyIdentifier, utils.Int8ArrayToByteArray(m.PropertyIdentifier))
+	_encodedPropertyIdentifier := hex.EncodeToString(utils.Int8ArrayToByteArray(m.PropertyIdentifier))
+	_encodedPropertyIdentifier = strings.ToUpper(_encodedPropertyIdentifier)
 	if err := e.EncodeElement(_encodedPropertyIdentifier, xml.StartElement{Name: xml.Name{Local: "propertyIdentifier"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
index 81267f9..34ba1c9 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -185,8 +186,8 @@ func (m *BACnetTagApplicationBitString) UnmarshalXML(d *xml.Decoder, start xml.S
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -207,8 +208,8 @@ func (m *BACnetTagApplicationBitString) MarshalXML(e *xml.Encoder, start xml.Sta
 	if err := e.EncodeElement(m.UnusedBits, xml.StartElement{Name: xml.Name{Local: "unusedBits"}}); err != nil {
 		return err
 	}
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
index 59f1f24..09798ef 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -160,8 +161,8 @@ func (m *BACnetTagApplicationEnumerated) UnmarshalXML(d *xml.Decoder, start xml.
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -179,8 +180,8 @@ func (m *BACnetTagApplicationEnumerated) UnmarshalXML(d *xml.Decoder, start xml.
 }
 
 func (m *BACnetTagApplicationEnumerated) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go
index 61300c0..cef7fa7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -160,8 +161,8 @@ func (m *BACnetTagApplicationSignedInteger) UnmarshalXML(d *xml.Decoder, start x
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -179,8 +180,8 @@ func (m *BACnetTagApplicationSignedInteger) UnmarshalXML(d *xml.Decoder, start x
 }
 
 func (m *BACnetTagApplicationSignedInteger) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go
index d7c04b8..819cf1d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -160,8 +161,8 @@ func (m *BACnetTagApplicationUnsignedInteger) UnmarshalXML(d *xml.Decoder, start
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -179,8 +180,8 @@ func (m *BACnetTagApplicationUnsignedInteger) UnmarshalXML(d *xml.Decoder, start
 }
 
 func (m *BACnetTagApplicationUnsignedInteger) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go
index 9d8bb40..789eef8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -160,8 +161,8 @@ func (m *BACnetTagContext) UnmarshalXML(d *xml.Decoder, start xml.StartElement)
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -179,8 +180,8 @@ func (m *BACnetTagContext) UnmarshalXML(d *xml.Decoder, start xml.StartElement)
 }
 
 func (m *BACnetTagContext) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
index 6b74634..bb13ecb 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
@@ -19,12 +19,13 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
 	"strconv"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -346,8 +347,8 @@ func (m *BACnetUnconfirmedServiceRequestIAm) UnmarshalXML(d *xml.Decoder, start
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -386,8 +387,8 @@ func (m *BACnetUnconfirmedServiceRequestIAm) MarshalXML(e *xml.Encoder, start xm
 	if err := e.EncodeElement(m.MaximumApduLengthAcceptedLength, xml.StartElement{Name: xml.Name{Local: "maximumApduLengthAcceptedLength"}}); err != nil {
 		return err
 	}
-	_encodedMaximumApduLengthAccepted := make([]byte, base64.StdEncoding.EncodedLen(len(m.MaximumApduLengthAccepted)))
-	base64.StdEncoding.Encode(_encodedMaximumApduLengthAccepted, utils.Int8ArrayToByteArray(m.MaximumApduLengthAccepted))
+	_encodedMaximumApduLengthAccepted := hex.EncodeToString(utils.Int8ArrayToByteArray(m.MaximumApduLengthAccepted))
+	_encodedMaximumApduLengthAccepted = strings.ToUpper(_encodedMaximumApduLengthAccepted)
 	if err := e.EncodeElement(_encodedMaximumApduLengthAccepted, xml.StartElement{Name: xml.Name{Local: "maximumApduLengthAccepted"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
index 28b00b4..61b08b3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
@@ -19,12 +19,13 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
 	"strconv"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -285,8 +286,8 @@ func (m *BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer) UnmarshalXML
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -310,8 +311,8 @@ func (m *BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer) MarshalXML(e
 	if err := e.EncodeElement(m.ServiceNumber, xml.StartElement{Name: xml.Name{Local: "serviceNumber"}}); err != nil {
 		return err
 	}
-	_encodedValues := make([]byte, base64.StdEncoding.EncodedLen(len(m.Values)))
-	base64.StdEncoding.Encode(_encodedValues, utils.Int8ArrayToByteArray(m.Values))
+	_encodedValues := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Values))
+	_encodedValues = strings.ToUpper(_encodedValues)
 	if err := e.EncodeElement(_encodedValues, xml.StartElement{Name: xml.Name{Local: "values"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
index 465e52e..e29306c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
@@ -19,12 +19,13 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
 	"strconv"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -307,8 +308,8 @@ func (m *BACnetUnconfirmedServiceRequestWhoHas) UnmarshalXML(d *xml.Decoder, sta
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -335,8 +336,8 @@ func (m *BACnetUnconfirmedServiceRequestWhoHas) MarshalXML(e *xml.Encoder, start
 	if err := e.EncodeElement(m.ObjectNameCharacterSet, xml.StartElement{Name: xml.Name{Local: "objectNameCharacterSet"}}); err != nil {
 		return err
 	}
-	_encodedObjectName := make([]byte, base64.StdEncoding.EncodedLen(len(m.ObjectName)))
-	base64.StdEncoding.Encode(_encodedObjectName, utils.Int8ArrayToByteArray(m.ObjectName))
+	_encodedObjectName := hex.EncodeToString(utils.Int8ArrayToByteArray(m.ObjectName))
+	_encodedObjectName = strings.ToUpper(_encodedObjectName)
 	if err := e.EncodeElement(_encodedObjectName, xml.StartElement{Name: xml.Name{Local: "objectName"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
index 564fa41..e36193d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
@@ -19,12 +19,13 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
 	"strconv"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -268,8 +269,8 @@ func (m *BACnetUnconfirmedServiceRequestWhoIs) UnmarshalXML(d *xml.Decoder, star
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -285,8 +286,8 @@ func (m *BACnetUnconfirmedServiceRequestWhoIs) UnmarshalXML(d *xml.Decoder, star
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -307,16 +308,16 @@ func (m *BACnetUnconfirmedServiceRequestWhoIs) MarshalXML(e *xml.Encoder, start
 	if err := e.EncodeElement(m.DeviceInstanceRangeLowLimitLength, xml.StartElement{Name: xml.Name{Local: "deviceInstanceRangeLowLimitLength"}}); err != nil {
 		return err
 	}
-	_encodedDeviceInstanceRangeLowLimit := make([]byte, base64.StdEncoding.EncodedLen(len(m.DeviceInstanceRangeLowLimit)))
-	base64.StdEncoding.Encode(_encodedDeviceInstanceRangeLowLimit, utils.Int8ArrayToByteArray(m.DeviceInstanceRangeLowLimit))
+	_encodedDeviceInstanceRangeLowLimit := hex.EncodeToString(utils.Int8ArrayToByteArray(m.DeviceInstanceRangeLowLimit))
+	_encodedDeviceInstanceRangeLowLimit = strings.ToUpper(_encodedDeviceInstanceRangeLowLimit)
 	if err := e.EncodeElement(_encodedDeviceInstanceRangeLowLimit, xml.StartElement{Name: xml.Name{Local: "deviceInstanceRangeLowLimit"}}); err != nil {
 		return err
 	}
 	if err := e.EncodeElement(m.DeviceInstanceRangeHighLimitLength, xml.StartElement{Name: xml.Name{Local: "deviceInstanceRangeHighLimitLength"}}); err != nil {
 		return err
 	}
-	_encodedDeviceInstanceRangeHighLimit := make([]byte, base64.StdEncoding.EncodedLen(len(m.DeviceInstanceRangeHighLimit)))
-	base64.StdEncoding.Encode(_encodedDeviceInstanceRangeHighLimit, utils.Int8ArrayToByteArray(m.DeviceInstanceRangeHighLimit))
+	_encodedDeviceInstanceRangeHighLimit := hex.EncodeToString(utils.Int8ArrayToByteArray(m.DeviceInstanceRangeHighLimit))
+	_encodedDeviceInstanceRangeHighLimit = strings.ToUpper(_encodedDeviceInstanceRangeHighLimit)
 	if err := e.EncodeElement(_encodedDeviceInstanceRangeHighLimit, xml.StartElement{Name: xml.Name{Local: "deviceInstanceRangeHighLimit"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go
index ebe05ff..3004d05 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -179,8 +180,8 @@ func (m *ApduDataDeviceDescriptorResponse) UnmarshalXML(d *xml.Decoder, start xm
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -201,8 +202,8 @@ func (m *ApduDataDeviceDescriptorResponse) MarshalXML(e *xml.Encoder, start xml.
 	if err := e.EncodeElement(m.DescriptorType, xml.StartElement{Name: xml.Name{Local: "descriptorType"}}); err != nil {
 		return err
 	}
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go
index b431512..192662f 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -179,8 +180,8 @@ func (m *ApduDataGroupValueResponse) UnmarshalXML(d *xml.Decoder, start xml.Star
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -201,8 +202,8 @@ func (m *ApduDataGroupValueResponse) MarshalXML(e *xml.Encoder, start xml.StartE
 	if err := e.EncodeElement(m.DataFirstByte, xml.StartElement{Name: xml.Name{Local: "dataFirstByte"}}); err != nil {
 		return err
 	}
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go
index 6662617..58fad4f 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -179,8 +180,8 @@ func (m *ApduDataGroupValueWrite) UnmarshalXML(d *xml.Decoder, start xml.StartEl
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -201,8 +202,8 @@ func (m *ApduDataGroupValueWrite) MarshalXML(e *xml.Encoder, start xml.StartElem
 	if err := e.EncodeElement(m.DataFirstByte, xml.StartElement{Name: xml.Name{Local: "dataFirstByte"}}); err != nil {
 		return err
 	}
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go
index 0124859..5854c8a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -316,8 +317,8 @@ func (m *DIBDeviceInfo) UnmarshalXML(d *xml.Decoder, start xml.StartElement) err
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -339,8 +340,8 @@ func (m *DIBDeviceInfo) UnmarshalXML(d *xml.Decoder, start xml.StartElement) err
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -372,8 +373,8 @@ func (m *DIBDeviceInfo) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 	if err := e.EncodeElement(m.ProjectInstallationIdentifier, xml.StartElement{Name: xml.Name{Local: "projectInstallationIdentifier"}}); err != nil {
 		return err
 	}
-	_encodedKnxNetIpDeviceSerialNumber := make([]byte, base64.StdEncoding.EncodedLen(len(m.KnxNetIpDeviceSerialNumber)))
-	base64.StdEncoding.Encode(_encodedKnxNetIpDeviceSerialNumber, utils.Int8ArrayToByteArray(m.KnxNetIpDeviceSerialNumber))
+	_encodedKnxNetIpDeviceSerialNumber := hex.EncodeToString(utils.Int8ArrayToByteArray(m.KnxNetIpDeviceSerialNumber))
+	_encodedKnxNetIpDeviceSerialNumber = strings.ToUpper(_encodedKnxNetIpDeviceSerialNumber)
 	if err := e.EncodeElement(_encodedKnxNetIpDeviceSerialNumber, xml.StartElement{Name: xml.Name{Local: "knxNetIpDeviceSerialNumber"}}); err != nil {
 		return err
 	}
@@ -383,8 +384,8 @@ func (m *DIBDeviceInfo) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 	if err := e.EncodeElement(m.KnxNetIpDeviceMacAddress, xml.StartElement{Name: xml.Name{Local: "knxNetIpDeviceMacAddress"}}); err != nil {
 		return err
 	}
-	_encodedDeviceFriendlyName := make([]byte, base64.StdEncoding.EncodedLen(len(m.DeviceFriendlyName)))
-	base64.StdEncoding.Encode(_encodedDeviceFriendlyName, utils.Int8ArrayToByteArray(m.DeviceFriendlyName))
+	_encodedDeviceFriendlyName := hex.EncodeToString(utils.Int8ArrayToByteArray(m.DeviceFriendlyName))
+	_encodedDeviceFriendlyName = strings.ToUpper(_encodedDeviceFriendlyName)
 	if err := e.EncodeElement(_encodedDeviceFriendlyName, xml.StartElement{Name: xml.Name{Local: "deviceFriendlyName"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/IPAddress.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/IPAddress.go
index acd7bf1..db1061b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/IPAddress.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/IPAddress.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -130,8 +131,8 @@ func (m *IPAddress) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -148,8 +149,8 @@ func (m *IPAddress) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 	}}); err != nil {
 		return err
 	}
-	_encodedAddr := make([]byte, base64.StdEncoding.EncodedLen(len(m.Addr)))
-	base64.StdEncoding.Encode(_encodedAddr, utils.Int8ArrayToByteArray(m.Addr))
+	_encodedAddr := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Addr))
+	_encodedAddr = strings.ToUpper(_encodedAddr)
 	if err := e.EncodeElement(_encodedAddr, xml.StartElement{Name: xml.Name{Local: "addr"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go
index 8092560..67c3295 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -296,8 +297,8 @@ func (m *LDataExtended) UnmarshalXML(d *xml.Decoder, start xml.StartElement) err
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -333,8 +334,8 @@ func (m *LDataExtended) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 	if err := e.EncodeElement(m.SourceAddress, xml.StartElement{Name: xml.Name{Local: "sourceAddress"}}); err != nil {
 		return err
 	}
-	_encodedDestinationAddress := make([]byte, base64.StdEncoding.EncodedLen(len(m.DestinationAddress)))
-	base64.StdEncoding.Encode(_encodedDestinationAddress, utils.Int8ArrayToByteArray(m.DestinationAddress))
+	_encodedDestinationAddress := hex.EncodeToString(utils.Int8ArrayToByteArray(m.DestinationAddress))
+	_encodedDestinationAddress = strings.ToUpper(_encodedDestinationAddress)
 	if err := e.EncodeElement(_encodedDestinationAddress, xml.StartElement{Name: xml.Name{Local: "destinationAddress"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go
index 84a98cc..43fdab7 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go
@@ -19,12 +19,13 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/rs/zerolog/log"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -232,8 +233,8 @@ func (m *LPollData) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -260,8 +261,8 @@ func (m *LPollData) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 	if err := e.EncodeElement(m.SourceAddress, xml.StartElement{Name: xml.Name{Local: "sourceAddress"}}); err != nil {
 		return err
 	}
-	_encodedTargetAddress := make([]byte, base64.StdEncoding.EncodedLen(len(m.TargetAddress)))
-	base64.StdEncoding.Encode(_encodedTargetAddress, utils.Int8ArrayToByteArray(m.TargetAddress))
+	_encodedTargetAddress := hex.EncodeToString(utils.Int8ArrayToByteArray(m.TargetAddress))
+	_encodedTargetAddress = strings.ToUpper(_encodedTargetAddress)
 	if err := e.EncodeElement(_encodedTargetAddress, xml.StartElement{Name: xml.Name{Local: "targetAddress"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go
index 0e187b5..1d6e595 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -130,8 +131,8 @@ func (m *MACAddress) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -148,8 +149,8 @@ func (m *MACAddress) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 	}}); err != nil {
 		return err
 	}
-	_encodedAddr := make([]byte, base64.StdEncoding.EncodedLen(len(m.Addr)))
-	base64.StdEncoding.Encode(_encodedAddr, utils.Int8ArrayToByteArray(m.Addr))
+	_encodedAddr := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Addr))
+	_encodedAddr = strings.ToUpper(_encodedAddr)
 	if err := e.EncodeElement(_encodedAddr, xml.StartElement{Name: xml.Name{Local: "addr"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
index ac802a0..601931d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -154,8 +155,8 @@ func (m *UnknownMessage) UnmarshalXML(d *xml.Decoder, start xml.StartElement) er
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -173,8 +174,8 @@ func (m *UnknownMessage) UnmarshalXML(d *xml.Decoder, start xml.StartElement) er
 }
 
 func (m *UnknownMessage) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	_encodedUnknownData := make([]byte, base64.StdEncoding.EncodedLen(len(m.UnknownData)))
-	base64.StdEncoding.Encode(_encodedUnknownData, utils.Int8ArrayToByteArray(m.UnknownData))
+	_encodedUnknownData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.UnknownData))
+	_encodedUnknownData = strings.ToUpper(_encodedUnknownData)
 	if err := e.EncodeElement(_encodedUnknownData, xml.StartElement{Name: xml.Name{Local: "unknownData"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
index 25cd989..872a565 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -253,8 +254,8 @@ func (m *ModbusPDUGetComEventLogResponse) UnmarshalXML(d *xml.Decoder, start xml
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -281,8 +282,8 @@ func (m *ModbusPDUGetComEventLogResponse) MarshalXML(e *xml.Encoder, start xml.S
 	if err := e.EncodeElement(m.MessageCount, xml.StartElement{Name: xml.Name{Local: "messageCount"}}); err != nil {
 		return err
 	}
-	_encodedEvents := make([]byte, base64.StdEncoding.EncodedLen(len(m.Events)))
-	base64.StdEncoding.Encode(_encodedEvents, utils.Int8ArrayToByteArray(m.Events))
+	_encodedEvents := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Events))
+	_encodedEvents = strings.ToUpper(_encodedEvents)
 	if err := e.EncodeElement(_encodedEvents, xml.StartElement{Name: xml.Name{Local: "events"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
index 7251ee9..d3bf57b 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -178,8 +179,8 @@ func (m *ModbusPDUReadCoilsResponse) UnmarshalXML(d *xml.Decoder, start xml.Star
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -197,8 +198,8 @@ func (m *ModbusPDUReadCoilsResponse) UnmarshalXML(d *xml.Decoder, start xml.Star
 }
 
 func (m *ModbusPDUReadCoilsResponse) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	_encodedValue := make([]byte, base64.StdEncoding.EncodedLen(len(m.Value)))
-	base64.StdEncoding.Encode(_encodedValue, utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue = strings.ToUpper(_encodedValue)
 	if err := e.EncodeElement(_encodedValue, xml.StartElement{Name: xml.Name{Local: "value"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go
index 90463fd..903b5ec 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -178,8 +179,8 @@ func (m *ModbusPDUReadDiscreteInputsResponse) UnmarshalXML(d *xml.Decoder, start
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -197,8 +198,8 @@ func (m *ModbusPDUReadDiscreteInputsResponse) UnmarshalXML(d *xml.Decoder, start
 }
 
 func (m *ModbusPDUReadDiscreteInputsResponse) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	_encodedValue := make([]byte, base64.StdEncoding.EncodedLen(len(m.Value)))
-	base64.StdEncoding.Encode(_encodedValue, utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue = strings.ToUpper(_encodedValue)
 	if err := e.EncodeElement(_encodedValue, xml.StartElement{Name: xml.Name{Local: "value"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponseItem.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponseItem.go
index 11c6561..a74798b 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponseItem.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponseItem.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -171,8 +172,8 @@ func (m *ModbusPDUReadFileRecordResponseItem) UnmarshalXML(d *xml.Decoder, start
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -192,8 +193,8 @@ func (m *ModbusPDUReadFileRecordResponseItem) MarshalXML(e *xml.Encoder, start x
 	if err := e.EncodeElement(m.ReferenceType, xml.StartElement{Name: xml.Name{Local: "referenceType"}}); err != nil {
 		return err
 	}
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go
index cd2f7dd..6d37f20 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -178,8 +179,8 @@ func (m *ModbusPDUReadHoldingRegistersResponse) UnmarshalXML(d *xml.Decoder, sta
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -197,8 +198,8 @@ func (m *ModbusPDUReadHoldingRegistersResponse) UnmarshalXML(d *xml.Decoder, sta
 }
 
 func (m *ModbusPDUReadHoldingRegistersResponse) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	_encodedValue := make([]byte, base64.StdEncoding.EncodedLen(len(m.Value)))
-	base64.StdEncoding.Encode(_encodedValue, utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue = strings.ToUpper(_encodedValue)
 	if err := e.EncodeElement(_encodedValue, xml.StartElement{Name: xml.Name{Local: "value"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go
index 3839f0f..1252c72 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -178,8 +179,8 @@ func (m *ModbusPDUReadInputRegistersResponse) UnmarshalXML(d *xml.Decoder, start
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -197,8 +198,8 @@ func (m *ModbusPDUReadInputRegistersResponse) UnmarshalXML(d *xml.Decoder, start
 }
 
 func (m *ModbusPDUReadInputRegistersResponse) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	_encodedValue := make([]byte, base64.StdEncoding.EncodedLen(len(m.Value)))
-	base64.StdEncoding.Encode(_encodedValue, utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue = strings.ToUpper(_encodedValue)
 	if err := e.EncodeElement(_encodedValue, xml.StartElement{Name: xml.Name{Local: "value"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go
index 3fcc40b..7540456 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -278,8 +279,8 @@ func (m *ModbusPDUReadWriteMultipleHoldingRegistersRequest) UnmarshalXML(d *xml.
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -309,8 +310,8 @@ func (m *ModbusPDUReadWriteMultipleHoldingRegistersRequest) MarshalXML(e *xml.En
 	if err := e.EncodeElement(m.WriteQuantity, xml.StartElement{Name: xml.Name{Local: "writeQuantity"}}); err != nil {
 		return err
 	}
-	_encodedValue := make([]byte, base64.StdEncoding.EncodedLen(len(m.Value)))
-	base64.StdEncoding.Encode(_encodedValue, utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue = strings.ToUpper(_encodedValue)
 	if err := e.EncodeElement(_encodedValue, xml.StartElement{Name: xml.Name{Local: "value"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go
index 7a49653..17ea555 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -178,8 +179,8 @@ func (m *ModbusPDUReadWriteMultipleHoldingRegistersResponse) UnmarshalXML(d *xml
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -197,8 +198,8 @@ func (m *ModbusPDUReadWriteMultipleHoldingRegistersResponse) UnmarshalXML(d *xml
 }
 
 func (m *ModbusPDUReadWriteMultipleHoldingRegistersResponse) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	_encodedValue := make([]byte, base64.StdEncoding.EncodedLen(len(m.Value)))
-	base64.StdEncoding.Encode(_encodedValue, utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue = strings.ToUpper(_encodedValue)
 	if err := e.EncodeElement(_encodedValue, xml.StartElement{Name: xml.Name{Local: "value"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go
index 24e8e07..1aba4a6 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -178,8 +179,8 @@ func (m *ModbusPDUReportServerIdResponse) UnmarshalXML(d *xml.Decoder, start xml
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -197,8 +198,8 @@ func (m *ModbusPDUReportServerIdResponse) UnmarshalXML(d *xml.Decoder, start xml
 }
 
 func (m *ModbusPDUReportServerIdResponse) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
-	_encodedValue := make([]byte, base64.StdEncoding.EncodedLen(len(m.Value)))
-	base64.StdEncoding.Encode(_encodedValue, utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue = strings.ToUpper(_encodedValue)
 	if err := e.EncodeElement(_encodedValue, xml.StartElement{Name: xml.Name{Local: "value"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequestItem.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequestItem.go
index 2722fad..78e24b1 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequestItem.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequestItem.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -217,8 +218,8 @@ func (m *ModbusPDUWriteFileRecordRequestItem) UnmarshalXML(d *xml.Decoder, start
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -244,8 +245,8 @@ func (m *ModbusPDUWriteFileRecordRequestItem) MarshalXML(e *xml.Encoder, start x
 	if err := e.EncodeElement(m.RecordNumber, xml.StartElement{Name: xml.Name{Local: "recordNumber"}}); err != nil {
 		return err
 	}
-	_encodedRecordData := make([]byte, base64.StdEncoding.EncodedLen(len(m.RecordData)))
-	base64.StdEncoding.Encode(_encodedRecordData, utils.Int8ArrayToByteArray(m.RecordData))
+	_encodedRecordData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.RecordData))
+	_encodedRecordData = strings.ToUpper(_encodedRecordData)
 	if err := e.EncodeElement(_encodedRecordData, xml.StartElement{Name: xml.Name{Local: "recordData"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponseItem.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponseItem.go
index 20120f6..3e2b6d6 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponseItem.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponseItem.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -217,8 +218,8 @@ func (m *ModbusPDUWriteFileRecordResponseItem) UnmarshalXML(d *xml.Decoder, star
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -244,8 +245,8 @@ func (m *ModbusPDUWriteFileRecordResponseItem) MarshalXML(e *xml.Encoder, start
 	if err := e.EncodeElement(m.RecordNumber, xml.StartElement{Name: xml.Name{Local: "recordNumber"}}); err != nil {
 		return err
 	}
-	_encodedRecordData := make([]byte, base64.StdEncoding.EncodedLen(len(m.RecordData)))
-	base64.StdEncoding.Encode(_encodedRecordData, utils.Int8ArrayToByteArray(m.RecordData))
+	_encodedRecordData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.RecordData))
+	_encodedRecordData = strings.ToUpper(_encodedRecordData)
 	if err := e.EncodeElement(_encodedRecordData, xml.StartElement{Name: xml.Name{Local: "recordData"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go
index a9a9c63..315996e 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -228,8 +229,8 @@ func (m *ModbusPDUWriteMultipleCoilsRequest) UnmarshalXML(d *xml.Decoder, start
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -253,8 +254,8 @@ func (m *ModbusPDUWriteMultipleCoilsRequest) MarshalXML(e *xml.Encoder, start xm
 	if err := e.EncodeElement(m.Quantity, xml.StartElement{Name: xml.Name{Local: "quantity"}}); err != nil {
 		return err
 	}
-	_encodedValue := make([]byte, base64.StdEncoding.EncodedLen(len(m.Value)))
-	base64.StdEncoding.Encode(_encodedValue, utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue = strings.ToUpper(_encodedValue)
 	if err := e.EncodeElement(_encodedValue, xml.StartElement{Name: xml.Name{Local: "value"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go
index 3d1ac7d..71bd596 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -228,8 +229,8 @@ func (m *ModbusPDUWriteMultipleHoldingRegistersRequest) UnmarshalXML(d *xml.Deco
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -253,8 +254,8 @@ func (m *ModbusPDUWriteMultipleHoldingRegistersRequest) MarshalXML(e *xml.Encode
 	if err := e.EncodeElement(m.Quantity, xml.StartElement{Name: xml.Name{Local: "quantity"}}); err != nil {
 		return err
 	}
-	_encodedValue := make([]byte, base64.StdEncoding.EncodedLen(len(m.Value)))
-	base64.StdEncoding.Encode(_encodedValue, utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Value))
+	_encodedValue = strings.ToUpper(_encodedValue)
 	if err := e.EncodeElement(_encodedValue, xml.StartElement{Name: xml.Name{Local: "value"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go b/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go
index 42a68e1..2951432 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go
@@ -19,12 +19,13 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
 	"math"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -223,8 +224,8 @@ func (m *S7VarPayloadDataItem) UnmarshalXML(d *xml.Decoder, start xml.StartEleme
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -247,8 +248,8 @@ func (m *S7VarPayloadDataItem) MarshalXML(e *xml.Encoder, start xml.StartElement
 	if err := e.EncodeElement(m.TransportSize, xml.StartElement{Name: xml.Name{Local: "transportSize"}}); err != nil {
 		return err
 	}
-	_encodedData := make([]byte, base64.StdEncoding.EncodedLen(len(m.Data)))
-	base64.StdEncoding.Encode(_encodedData, utils.Int8ArrayToByteArray(m.Data))
+	_encodedData := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Data))
+	_encodedData = strings.ToUpper(_encodedData)
 	if err := e.EncodeElement(_encodedData, xml.StartElement{Name: xml.Name{Local: "data"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/SzlDataTreeItem.go b/plc4go/internal/plc4go/s7/readwrite/model/SzlDataTreeItem.go
index 53ea9d4..9eacdb9 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/SzlDataTreeItem.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/SzlDataTreeItem.go
@@ -19,11 +19,12 @@
 package model
 
 import (
-	"encoding/base64"
+	"encoding/hex"
 	"encoding/xml"
 	"errors"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"io"
+	"strings"
 )
 
 // Code generated by build-utils. DO NOT EDIT.
@@ -204,8 +205,8 @@ func (m *SzlDataTreeItem) UnmarshalXML(d *xml.Decoder, start xml.StartElement) e
 				if err := d.DecodeElement(&_encoded, &tok); err != nil {
 					return err
 				}
-				_decoded := make([]byte, base64.StdEncoding.DecodedLen(len(_encoded)))
-				_len, err := base64.StdEncoding.Decode(_decoded, []byte(_encoded))
+				_decoded, err := hex.DecodeString(_encoded)
+				_len := len(_decoded)
 				if err != nil {
 					return err
 				}
@@ -243,8 +244,8 @@ func (m *SzlDataTreeItem) MarshalXML(e *xml.Encoder, start xml.StartElement) err
 	if err := e.EncodeElement(m.ItemIndex, xml.StartElement{Name: xml.Name{Local: "itemIndex"}}); err != nil {
 		return err
 	}
-	_encodedMlfb := make([]byte, base64.StdEncoding.EncodedLen(len(m.Mlfb)))
-	base64.StdEncoding.Encode(_encodedMlfb, utils.Int8ArrayToByteArray(m.Mlfb))
+	_encodedMlfb := hex.EncodeToString(utils.Int8ArrayToByteArray(m.Mlfb))
+	_encodedMlfb = strings.ToUpper(_encodedMlfb)
 	if err := e.EncodeElement(_encodedMlfb, xml.StartElement{Name: xml.Name{Local: "mlfb"}}); err != nil {
 		return err
 	}
diff --git a/plc4go/internal/plc4go/spi/testutils/TestUtils.go b/plc4go/internal/plc4go/spi/testutils/TestUtils.go
index a81d561..ce6f798 100644
--- a/plc4go/internal/plc4go/spi/testutils/TestUtils.go
+++ b/plc4go/internal/plc4go/spi/testutils/TestUtils.go
@@ -19,9 +19,9 @@
 package testutils
 
 import (
-	"errors"
 	"github.com/ajankovic/xdiff"
 	"github.com/ajankovic/xdiff/parser"
+	"github.com/pkg/errors"
 	"os"
 )
 
@@ -30,21 +30,21 @@ func CompareResults(actualString []byte, referenceString []byte) error {
 	p := parser.New()
 	actual, err := p.ParseBytes(actualString)
 	if err != nil {
-		return errors.New("Error parsing actual input: " + err.Error())
+		return errors.Wrap(err, "Error parsing actual input")
 	}
 	reference, err := p.ParseBytes(referenceString)
 	if err != nil {
-		return errors.New("Error parsing reference input: " + err.Error())
+		return errors.Wrap(err, "Error parsing reference input")
 	}
 	// Use XDiff to actually do the comparison
 	diff, err := xdiff.Compare(actual, reference)
 	if err != nil {
-		return errors.New("Error comparing xml trees: " + err.Error())
+		return errors.Wrap(err, "Error comparing xml trees")
 	}
 	if diff != nil {
 		enc := xdiff.NewTextEncoder(os.Stdout)
 		if err := enc.Encode(diff); err != nil {
-			return errors.New("Error outputting results: " + err.Error())
+			return errors.Wrap(err, "Error outputting results")
 		}
 		return errors.New("there were differences: Expected: \n" + string(referenceString) + "\nBut Got: \n" + string(actualString))
 	}