You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2023/02/19 17:14:30 UTC

[plc4x] branch fix/cdutz/reenable-golang-driver-testsuites updated: chore(driver/eip): Started porting the Go version of the EIP driver and started documenting the state-machine of the driver itself, based on the Java implementation.

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

cdutz pushed a commit to branch fix/cdutz/reenable-golang-driver-testsuites
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/fix/cdutz/reenable-golang-driver-testsuites by this push:
     new 3bbd414e2a chore(driver/eip): Started porting the Go version of the EIP driver and started documenting the state-machine of the driver itself, based on the Java implementation.
3bbd414e2a is described below

commit 3bbd414e2afef6dbdf138986453dcd67f6f2337c
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Sun Feb 19 18:14:21 2023 +0100

    chore(driver/eip): Started porting the Go version of the EIP driver and started documenting the state-machine of the driver itself, based on the Java implementation.
---
 .../language/go/GoLanguageTemplateHelper.java      |  15 ++-
 plc4go/internal/eip/Connection.go                  |   5 +-
 plc4go/internal/eip/MessageCodec.go                |   2 +-
 .../readwrite/model/AnsiExtendedSymbolSegment.go   |   2 +-
 .../eip/readwrite/model/CipConnectedRequest.go     |   2 +-
 .../eip/readwrite/model/CipConnectedResponse.go    |   2 +-
 .../model/CipConnectionManagerCloseRequest.go      |   2 +-
 .../model/CipConnectionManagerCloseResponse.go     |   2 +-
 .../readwrite/model/CipConnectionManagerRequest.go |   2 +-
 .../model/CipConnectionManagerResponse.go          |   2 +-
 plc4go/protocols/eip/readwrite/model/CipRRData.go  |   2 +-
 .../eip/readwrite/model/CipReadRequest.go          |   2 +-
 .../eip/readwrite/model/CipReadResponse.go         |   2 +-
 .../eip/readwrite/model/CipUnconnectedRequest.go   |   2 +-
 .../eip/readwrite/model/CipWriteRequest.go         |   2 +-
 .../eip/readwrite/model/CipWriteResponse.go        |   2 +-
 plc4go/protocols/eip/readwrite/model/ClassID.go    |   2 +-
 .../protocols/eip/readwrite/model/ClassSegment.go  |   2 +-
 .../eip/readwrite/model/ConnectedAddressItem.go    |   2 +-
 .../eip/readwrite/model/ConnectedDataItem.go       |   2 +-
 .../protocols/eip/readwrite/model/DataSegment.go   |   2 +-
 .../eip/readwrite/model/EipConnectionRequest.go    |   2 +-
 .../eip/readwrite/model/EipConnectionResponse.go   |   2 +-
 .../eip/readwrite/model/EipDisconnectRequest.go    |   2 +-
 .../eip/readwrite/model/GetAttributeAllRequest.go  |   2 +-
 .../eip/readwrite/model/GetAttributeAllResponse.go |   2 +-
 plc4go/protocols/eip/readwrite/model/InstanceID.go |   2 +-
 .../eip/readwrite/model/InstanceSegment.go         |   2 +-
 .../eip/readwrite/model/ListServicesRequest.go     |   2 +-
 .../eip/readwrite/model/ListServicesResponse.go    |   2 +-
 .../eip/readwrite/model/LogicalSegment.go          |   2 +-
 plc4go/protocols/eip/readwrite/model/MemberID.go   |   2 +-
 .../eip/readwrite/model/MultipleServiceRequest.go  |   2 +-
 .../eip/readwrite/model/MultipleServiceResponse.go |   2 +-
 .../readwrite/model/NetworkConnectionParameters.go |   2 +-
 .../eip/readwrite/model/NullAddressItem.go         |   2 +-
 .../eip/readwrite/model/NullCommandRequest.go      |   2 +-
 .../eip/readwrite/model/NullCommandResponse.go     |   2 +-
 .../readwrite/model/NullEipConnectionResponse.go   |   2 +-
 .../readwrite/model/NullListServicesResponse.go    |   2 +-
 .../protocols/eip/readwrite/model/PortSegment.go   |   2 +-
 .../protocols/eip/readwrite/model/SendUnitData.go  |   2 +-
 plc4go/protocols/eip/readwrite/model/Services.go   |   2 +-
 .../eip/readwrite/model/ServicesResponse.go        |   2 +-
 .../protocols/eip/readwrite/model/TransportType.go |   2 +-
 .../eip/readwrite/model/UnConnectedDataItem.go     |   2 +-
 .../developers/protocols/eip/protocol.adoc         | 132 +++++++++++++++++++++
 47 files changed, 188 insertions(+), 52 deletions(-)

diff --git a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
index 8c6a30a8b4..528d6fd90a 100644
--- a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
+++ b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
@@ -24,7 +24,6 @@ import org.apache.commons.text.CaseUtils;
 import org.apache.plc4x.plugins.codegenerator.language.mspec.model.definitions.DefaultArgument;
 import org.apache.plc4x.plugins.codegenerator.language.mspec.model.references.*;
 import org.apache.plc4x.plugins.codegenerator.language.mspec.model.terms.DefaultStringLiteral;
-import org.apache.plc4x.plugins.codegenerator.language.mspec.model.terms.DefaultTernaryTerm;
 import org.apache.plc4x.plugins.codegenerator.protocol.freemarker.BaseFreemarkerLanguageTemplateHelper;
 import org.apache.plc4x.plugins.codegenerator.protocol.freemarker.FreemarkerException;
 import org.apache.plc4x.plugins.codegenerator.protocol.freemarker.Tracer;
@@ -1602,11 +1601,15 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
         Optional<Term> byteOrder = thisType.getAttribute("byteOrder");
         if (byteOrder.isPresent()) {
             emitRequiredImport("encoding/binary");
-
-            String functionName = read ? "WithByteOrderForReadBufferByteBased" : "WithByteOrderForByteBasedBuffer";
-
-            String expression = toParseExpression(null, new DefaultByteOrderTypeReference(), byteOrder.orElseThrow(), parserArguments);
-            return (separatorPrefix ? ", " : "") + "utils." + functionName + "(" + expression + ")";
+            if(read) {
+                return (separatorPrefix ? ", " : "") + "utils.WithByteOrderForReadBufferByteBased(" +
+                    toParseExpression(null, new DefaultByteOrderTypeReference(), byteOrder.orElseThrow(), parserArguments) +
+                    ")";
+            } else {
+                return (separatorPrefix ? ", " : "") + "utils.WithByteOrderForByteBasedBuffer(" +
+                    toSerializationExpression(null, new DefaultByteOrderTypeReference(), byteOrder.orElseThrow(), parserArguments) +
+                    ")";
+            }
         }
         return "";
     }
diff --git a/plc4go/internal/eip/Connection.go b/plc4go/internal/eip/Connection.go
index 74868fec77..fbf225a195 100644
--- a/plc4go/internal/eip/Connection.go
+++ b/plc4go/internal/eip/Connection.go
@@ -22,6 +22,7 @@ package eip
 import (
 	"context"
 	"fmt"
+
 	"github.com/apache/plc4x/plc4go/pkg/api"
 	apiModel "github.com/apache/plc4x/plc4go/pkg/api/model"
 	readWriteModel "github.com/apache/plc4x/plc4go/protocols/eip/readwrite/model"
@@ -117,7 +118,7 @@ func (m *Connection) Close() <-chan plc4go.PlcConnectionCloseResult {
 	result := make(chan plc4go.PlcConnectionCloseResult)
 	go func() {
 		log.Debug().Msg("Sending UnregisterSession EIP Packet")
-		_ = m.messageCodec.SendRequest(ctx, readWriteModel.NewEipDisconnectRequest(m.sessionHandle, 0, make([]byte, 8), 0), func(message spi.Message) bool {
+		_ = m.messageCodec.SendRequest(ctx, readWriteModel.NewEipDisconnectRequest(m.sessionHandle, 0, make([]byte, 8), 0, readWriteModel.IntegerEncoding_BIG_ENDIAN), func(message spi.Message) bool {
 			return true
 		}, func(message spi.Message) error {
 			return nil
@@ -131,7 +132,7 @@ func (m *Connection) Close() <-chan plc4go.PlcConnectionCloseResult {
 
 func (m *Connection) setupConnection(ctx context.Context, ch chan plc4go.PlcConnectionConnectResult) {
 	log.Debug().Msg("Sending EIP Connection Request")
-	if err := m.messageCodec.SendRequest(ctx, readWriteModel.NewEipConnectionRequest(0, 0, make([]byte, 8), 0), func(message spi.Message) bool {
+	if err := m.messageCodec.SendRequest(ctx, readWriteModel.NewEipConnectionRequest(0, 0, make([]byte, 8), 0, readWriteModel.IntegerEncoding_BIG_ENDIAN), func(message spi.Message) bool {
 		eipPacket := message.(readWriteModel.EipPacket)
 		if eipPacket == nil {
 			return false
diff --git a/plc4go/internal/eip/MessageCodec.go b/plc4go/internal/eip/MessageCodec.go
index ea67673c46..ff12bddafd 100644
--- a/plc4go/internal/eip/MessageCodec.go
+++ b/plc4go/internal/eip/MessageCodec.go
@@ -87,7 +87,7 @@ func (m *MessageCodec) Receive() (spi.Message, error) {
 			return nil, nil
 		}
 		rb := utils.NewReadBufferByteBased(data, utils.WithByteOrderForReadBufferByteBased(binary.LittleEndian))
-		eipPacket, err := model.EipPacketParseWithBuffer(context.Background(), rb)
+		eipPacket, err := model.EipPacketParseWithBuffer(context.Background(), rb, model.IntegerEncoding_BIG_ENDIAN, true)
 		if err != nil {
 			log.Warn().Err(err).Msg("error parsing")
 			// TODO: Possibly clean up ...
diff --git a/plc4go/protocols/eip/readwrite/model/AnsiExtendedSymbolSegment.go b/plc4go/protocols/eip/readwrite/model/AnsiExtendedSymbolSegment.go
index 08103a564b..5f524935bf 100644
--- a/plc4go/protocols/eip/readwrite/model/AnsiExtendedSymbolSegment.go
+++ b/plc4go/protocols/eip/readwrite/model/AnsiExtendedSymbolSegment.go
@@ -192,7 +192,7 @@ func AnsiExtendedSymbolSegmentParseWithBuffer(ctx context.Context, readBuffer ut
 }
 
 func (m *_AnsiExtendedSymbolSegment) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/CipConnectedRequest.go b/plc4go/protocols/eip/readwrite/model/CipConnectedRequest.go
index 07e9f98275..400dc1e6b2 100644
--- a/plc4go/protocols/eip/readwrite/model/CipConnectedRequest.go
+++ b/plc4go/protocols/eip/readwrite/model/CipConnectedRequest.go
@@ -223,7 +223,7 @@ func CipConnectedRequestParseWithBuffer(ctx context.Context, readBuffer utils.Re
 }
 
 func (m *_CipConnectedRequest) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/CipConnectedResponse.go b/plc4go/protocols/eip/readwrite/model/CipConnectedResponse.go
index 8fa8166148..b45025a59f 100644
--- a/plc4go/protocols/eip/readwrite/model/CipConnectedResponse.go
+++ b/plc4go/protocols/eip/readwrite/model/CipConnectedResponse.go
@@ -246,7 +246,7 @@ func CipConnectedResponseParseWithBuffer(ctx context.Context, readBuffer utils.R
 }
 
 func (m *_CipConnectedResponse) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/CipConnectionManagerCloseRequest.go b/plc4go/protocols/eip/readwrite/model/CipConnectionManagerCloseRequest.go
index bb6b9e56e4..d788d5c521 100644
--- a/plc4go/protocols/eip/readwrite/model/CipConnectionManagerCloseRequest.go
+++ b/plc4go/protocols/eip/readwrite/model/CipConnectionManagerCloseRequest.go
@@ -409,7 +409,7 @@ func CipConnectionManagerCloseRequestParseWithBuffer(ctx context.Context, readBu
 }
 
 func (m *_CipConnectionManagerCloseRequest) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/CipConnectionManagerCloseResponse.go b/plc4go/protocols/eip/readwrite/model/CipConnectionManagerCloseResponse.go
index a23d1d2a8c..73038c95f8 100644
--- a/plc4go/protocols/eip/readwrite/model/CipConnectionManagerCloseResponse.go
+++ b/plc4go/protocols/eip/readwrite/model/CipConnectionManagerCloseResponse.go
@@ -307,7 +307,7 @@ func CipConnectionManagerCloseResponseParseWithBuffer(ctx context.Context, readB
 }
 
 func (m *_CipConnectionManagerCloseResponse) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/CipConnectionManagerRequest.go b/plc4go/protocols/eip/readwrite/model/CipConnectionManagerRequest.go
index d3e6682c5b..187d04dea8 100644
--- a/plc4go/protocols/eip/readwrite/model/CipConnectionManagerRequest.go
+++ b/plc4go/protocols/eip/readwrite/model/CipConnectionManagerRequest.go
@@ -570,7 +570,7 @@ func CipConnectionManagerRequestParseWithBuffer(ctx context.Context, readBuffer
 }
 
 func (m *_CipConnectionManagerRequest) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/CipConnectionManagerResponse.go b/plc4go/protocols/eip/readwrite/model/CipConnectionManagerResponse.go
index 036e701245..5c27f0df58 100644
--- a/plc4go/protocols/eip/readwrite/model/CipConnectionManagerResponse.go
+++ b/plc4go/protocols/eip/readwrite/model/CipConnectionManagerResponse.go
@@ -336,7 +336,7 @@ func CipConnectionManagerResponseParseWithBuffer(ctx context.Context, readBuffer
 }
 
 func (m *_CipConnectionManagerResponse) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/CipRRData.go b/plc4go/protocols/eip/readwrite/model/CipRRData.go
index a7c66668aa..d9f03a6400 100644
--- a/plc4go/protocols/eip/readwrite/model/CipRRData.go
+++ b/plc4go/protocols/eip/readwrite/model/CipRRData.go
@@ -256,7 +256,7 @@ func CipRRDataParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer,
 }
 
 func (m *_CipRRData) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/CipReadRequest.go b/plc4go/protocols/eip/readwrite/model/CipReadRequest.go
index a03ad28f8b..756805dcac 100644
--- a/plc4go/protocols/eip/readwrite/model/CipReadRequest.go
+++ b/plc4go/protocols/eip/readwrite/model/CipReadRequest.go
@@ -197,7 +197,7 @@ func CipReadRequestParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuf
 }
 
 func (m *_CipReadRequest) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/CipReadResponse.go b/plc4go/protocols/eip/readwrite/model/CipReadResponse.go
index 088ae68aa0..5b5417a103 100644
--- a/plc4go/protocols/eip/readwrite/model/CipReadResponse.go
+++ b/plc4go/protocols/eip/readwrite/model/CipReadResponse.go
@@ -246,7 +246,7 @@ func CipReadResponseParseWithBuffer(ctx context.Context, readBuffer utils.ReadBu
 }
 
 func (m *_CipReadResponse) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/CipUnconnectedRequest.go b/plc4go/protocols/eip/readwrite/model/CipUnconnectedRequest.go
index 9c3835f32c..9f3f83bdb6 100644
--- a/plc4go/protocols/eip/readwrite/model/CipUnconnectedRequest.go
+++ b/plc4go/protocols/eip/readwrite/model/CipUnconnectedRequest.go
@@ -333,7 +333,7 @@ func CipUnconnectedRequestParseWithBuffer(ctx context.Context, readBuffer utils.
 }
 
 func (m *_CipUnconnectedRequest) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/CipWriteRequest.go b/plc4go/protocols/eip/readwrite/model/CipWriteRequest.go
index 5528bea959..0905d46c76 100644
--- a/plc4go/protocols/eip/readwrite/model/CipWriteRequest.go
+++ b/plc4go/protocols/eip/readwrite/model/CipWriteRequest.go
@@ -242,7 +242,7 @@ func CipWriteRequestParseWithBuffer(ctx context.Context, readBuffer utils.ReadBu
 }
 
 func (m *_CipWriteRequest) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/CipWriteResponse.go b/plc4go/protocols/eip/readwrite/model/CipWriteResponse.go
index 455e43740b..0a13056046 100644
--- a/plc4go/protocols/eip/readwrite/model/CipWriteResponse.go
+++ b/plc4go/protocols/eip/readwrite/model/CipWriteResponse.go
@@ -209,7 +209,7 @@ func CipWriteResponseParseWithBuffer(ctx context.Context, readBuffer utils.ReadB
 }
 
 func (m *_CipWriteResponse) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/ClassID.go b/plc4go/protocols/eip/readwrite/model/ClassID.go
index 0d27807149..128140c388 100644
--- a/plc4go/protocols/eip/readwrite/model/ClassID.go
+++ b/plc4go/protocols/eip/readwrite/model/ClassID.go
@@ -177,7 +177,7 @@ func ClassIDParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer, or
 }
 
 func (m *_ClassID) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/ClassSegment.go b/plc4go/protocols/eip/readwrite/model/ClassSegment.go
index 6b86193d9d..f824fffead 100644
--- a/plc4go/protocols/eip/readwrite/model/ClassSegment.go
+++ b/plc4go/protocols/eip/readwrite/model/ClassSegment.go
@@ -184,7 +184,7 @@ func ClassSegmentParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffe
 }
 
 func (m *_ClassSegment) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/ConnectedAddressItem.go b/plc4go/protocols/eip/readwrite/model/ConnectedAddressItem.go
index 198ebe2d2e..ec9954a16b 100644
--- a/plc4go/protocols/eip/readwrite/model/ConnectedAddressItem.go
+++ b/plc4go/protocols/eip/readwrite/model/ConnectedAddressItem.go
@@ -181,7 +181,7 @@ func ConnectedAddressItemParseWithBuffer(ctx context.Context, readBuffer utils.R
 }
 
 func (m *_ConnectedAddressItem) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/ConnectedDataItem.go b/plc4go/protocols/eip/readwrite/model/ConnectedDataItem.go
index 86dc6e505d..972a09b64b 100644
--- a/plc4go/protocols/eip/readwrite/model/ConnectedDataItem.go
+++ b/plc4go/protocols/eip/readwrite/model/ConnectedDataItem.go
@@ -193,7 +193,7 @@ func ConnectedDataItemParseWithBuffer(ctx context.Context, readBuffer utils.Read
 }
 
 func (m *_ConnectedDataItem) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/DataSegment.go b/plc4go/protocols/eip/readwrite/model/DataSegment.go
index 8e39ac842e..092ef73262 100644
--- a/plc4go/protocols/eip/readwrite/model/DataSegment.go
+++ b/plc4go/protocols/eip/readwrite/model/DataSegment.go
@@ -164,7 +164,7 @@ func DataSegmentParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer
 }
 
 func (m *_DataSegment) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/EipConnectionRequest.go b/plc4go/protocols/eip/readwrite/model/EipConnectionRequest.go
index 2da9ce8cf3..e44ff06a49 100644
--- a/plc4go/protocols/eip/readwrite/model/EipConnectionRequest.go
+++ b/plc4go/protocols/eip/readwrite/model/EipConnectionRequest.go
@@ -189,7 +189,7 @@ func EipConnectionRequestParseWithBuffer(ctx context.Context, readBuffer utils.R
 }
 
 func (m *_EipConnectionRequest) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/EipConnectionResponse.go b/plc4go/protocols/eip/readwrite/model/EipConnectionResponse.go
index ac79eb412e..037c406e74 100644
--- a/plc4go/protocols/eip/readwrite/model/EipConnectionResponse.go
+++ b/plc4go/protocols/eip/readwrite/model/EipConnectionResponse.go
@@ -189,7 +189,7 @@ func EipConnectionResponseParseWithBuffer(ctx context.Context, readBuffer utils.
 }
 
 func (m *_EipConnectionResponse) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/EipDisconnectRequest.go b/plc4go/protocols/eip/readwrite/model/EipDisconnectRequest.go
index 3f41c5ce67..590cb2cf06 100644
--- a/plc4go/protocols/eip/readwrite/model/EipDisconnectRequest.go
+++ b/plc4go/protocols/eip/readwrite/model/EipDisconnectRequest.go
@@ -142,7 +142,7 @@ func EipDisconnectRequestParseWithBuffer(ctx context.Context, readBuffer utils.R
 }
 
 func (m *_EipDisconnectRequest) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/GetAttributeAllRequest.go b/plc4go/protocols/eip/readwrite/model/GetAttributeAllRequest.go
index 4277062ace..ef3beff8df 100644
--- a/plc4go/protocols/eip/readwrite/model/GetAttributeAllRequest.go
+++ b/plc4go/protocols/eip/readwrite/model/GetAttributeAllRequest.go
@@ -208,7 +208,7 @@ func GetAttributeAllRequestParseWithBuffer(ctx context.Context, readBuffer utils
 }
 
 func (m *_GetAttributeAllRequest) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/GetAttributeAllResponse.go b/plc4go/protocols/eip/readwrite/model/GetAttributeAllResponse.go
index 71b764d1a4..a78655c8aa 100644
--- a/plc4go/protocols/eip/readwrite/model/GetAttributeAllResponse.go
+++ b/plc4go/protocols/eip/readwrite/model/GetAttributeAllResponse.go
@@ -246,7 +246,7 @@ func GetAttributeAllResponseParseWithBuffer(ctx context.Context, readBuffer util
 }
 
 func (m *_GetAttributeAllResponse) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/InstanceID.go b/plc4go/protocols/eip/readwrite/model/InstanceID.go
index 6d9905a533..bf19939e9a 100644
--- a/plc4go/protocols/eip/readwrite/model/InstanceID.go
+++ b/plc4go/protocols/eip/readwrite/model/InstanceID.go
@@ -177,7 +177,7 @@ func InstanceIDParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer,
 }
 
 func (m *_InstanceID) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/InstanceSegment.go b/plc4go/protocols/eip/readwrite/model/InstanceSegment.go
index d8d1c00c35..d8a9ce7def 100644
--- a/plc4go/protocols/eip/readwrite/model/InstanceSegment.go
+++ b/plc4go/protocols/eip/readwrite/model/InstanceSegment.go
@@ -184,7 +184,7 @@ func InstanceSegmentParseWithBuffer(ctx context.Context, readBuffer utils.ReadBu
 }
 
 func (m *_InstanceSegment) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/ListServicesRequest.go b/plc4go/protocols/eip/readwrite/model/ListServicesRequest.go
index 5613f81f9b..7c5e5b75ad 100644
--- a/plc4go/protocols/eip/readwrite/model/ListServicesRequest.go
+++ b/plc4go/protocols/eip/readwrite/model/ListServicesRequest.go
@@ -142,7 +142,7 @@ func ListServicesRequestParseWithBuffer(ctx context.Context, readBuffer utils.Re
 }
 
 func (m *_ListServicesRequest) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/ListServicesResponse.go b/plc4go/protocols/eip/readwrite/model/ListServicesResponse.go
index 7da81f9f5c..3d314be391 100644
--- a/plc4go/protocols/eip/readwrite/model/ListServicesResponse.go
+++ b/plc4go/protocols/eip/readwrite/model/ListServicesResponse.go
@@ -218,7 +218,7 @@ func ListServicesResponseParseWithBuffer(ctx context.Context, readBuffer utils.R
 }
 
 func (m *_ListServicesResponse) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/LogicalSegment.go b/plc4go/protocols/eip/readwrite/model/LogicalSegment.go
index 4b690f12f3..36fa4098f3 100644
--- a/plc4go/protocols/eip/readwrite/model/LogicalSegment.go
+++ b/plc4go/protocols/eip/readwrite/model/LogicalSegment.go
@@ -164,7 +164,7 @@ func LogicalSegmentParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuf
 }
 
 func (m *_LogicalSegment) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/MemberID.go b/plc4go/protocols/eip/readwrite/model/MemberID.go
index bc398f3340..ab61b18989 100644
--- a/plc4go/protocols/eip/readwrite/model/MemberID.go
+++ b/plc4go/protocols/eip/readwrite/model/MemberID.go
@@ -177,7 +177,7 @@ func MemberIDParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer, o
 }
 
 func (m *_MemberID) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/MultipleServiceRequest.go b/plc4go/protocols/eip/readwrite/model/MultipleServiceRequest.go
index ef35235711..dcd0dde712 100644
--- a/plc4go/protocols/eip/readwrite/model/MultipleServiceRequest.go
+++ b/plc4go/protocols/eip/readwrite/model/MultipleServiceRequest.go
@@ -219,7 +219,7 @@ func MultipleServiceRequestParseWithBuffer(ctx context.Context, readBuffer utils
 }
 
 func (m *_MultipleServiceRequest) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/MultipleServiceResponse.go b/plc4go/protocols/eip/readwrite/model/MultipleServiceResponse.go
index efec4f646e..fca47de24f 100644
--- a/plc4go/protocols/eip/readwrite/model/MultipleServiceResponse.go
+++ b/plc4go/protocols/eip/readwrite/model/MultipleServiceResponse.go
@@ -290,7 +290,7 @@ func MultipleServiceResponseParseWithBuffer(ctx context.Context, readBuffer util
 }
 
 func (m *_MultipleServiceResponse) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/NetworkConnectionParameters.go b/plc4go/protocols/eip/readwrite/model/NetworkConnectionParameters.go
index 578fc7e88b..c9a3350570 100644
--- a/plc4go/protocols/eip/readwrite/model/NetworkConnectionParameters.go
+++ b/plc4go/protocols/eip/readwrite/model/NetworkConnectionParameters.go
@@ -269,7 +269,7 @@ func NetworkConnectionParametersParseWithBuffer(ctx context.Context, readBuffer
 }
 
 func (m *_NetworkConnectionParameters) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/NullAddressItem.go b/plc4go/protocols/eip/readwrite/model/NullAddressItem.go
index 65fd2e7a49..007952df4b 100644
--- a/plc4go/protocols/eip/readwrite/model/NullAddressItem.go
+++ b/plc4go/protocols/eip/readwrite/model/NullAddressItem.go
@@ -152,7 +152,7 @@ func NullAddressItemParseWithBuffer(ctx context.Context, readBuffer utils.ReadBu
 }
 
 func (m *_NullAddressItem) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/NullCommandRequest.go b/plc4go/protocols/eip/readwrite/model/NullCommandRequest.go
index c8c6ce6da1..71d5aaefcd 100644
--- a/plc4go/protocols/eip/readwrite/model/NullCommandRequest.go
+++ b/plc4go/protocols/eip/readwrite/model/NullCommandRequest.go
@@ -142,7 +142,7 @@ func NullCommandRequestParseWithBuffer(ctx context.Context, readBuffer utils.Rea
 }
 
 func (m *_NullCommandRequest) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/NullCommandResponse.go b/plc4go/protocols/eip/readwrite/model/NullCommandResponse.go
index 09c1c97bfb..d973ff2056 100644
--- a/plc4go/protocols/eip/readwrite/model/NullCommandResponse.go
+++ b/plc4go/protocols/eip/readwrite/model/NullCommandResponse.go
@@ -142,7 +142,7 @@ func NullCommandResponseParseWithBuffer(ctx context.Context, readBuffer utils.Re
 }
 
 func (m *_NullCommandResponse) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/NullEipConnectionResponse.go b/plc4go/protocols/eip/readwrite/model/NullEipConnectionResponse.go
index f6336b81a0..6ebebead2f 100644
--- a/plc4go/protocols/eip/readwrite/model/NullEipConnectionResponse.go
+++ b/plc4go/protocols/eip/readwrite/model/NullEipConnectionResponse.go
@@ -142,7 +142,7 @@ func NullEipConnectionResponseParseWithBuffer(ctx context.Context, readBuffer ut
 }
 
 func (m *_NullEipConnectionResponse) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/NullListServicesResponse.go b/plc4go/protocols/eip/readwrite/model/NullListServicesResponse.go
index 88f2988e16..fd219fcf9d 100644
--- a/plc4go/protocols/eip/readwrite/model/NullListServicesResponse.go
+++ b/plc4go/protocols/eip/readwrite/model/NullListServicesResponse.go
@@ -142,7 +142,7 @@ func NullListServicesResponseParseWithBuffer(ctx context.Context, readBuffer uti
 }
 
 func (m *_NullListServicesResponse) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/PortSegment.go b/plc4go/protocols/eip/readwrite/model/PortSegment.go
index 5d1b650b1c..8726f003f3 100644
--- a/plc4go/protocols/eip/readwrite/model/PortSegment.go
+++ b/plc4go/protocols/eip/readwrite/model/PortSegment.go
@@ -164,7 +164,7 @@ func PortSegmentParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer
 }
 
 func (m *_PortSegment) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/SendUnitData.go b/plc4go/protocols/eip/readwrite/model/SendUnitData.go
index 6e5977642c..5c9ca2c9c4 100644
--- a/plc4go/protocols/eip/readwrite/model/SendUnitData.go
+++ b/plc4go/protocols/eip/readwrite/model/SendUnitData.go
@@ -266,7 +266,7 @@ func SendUnitDataParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffe
 }
 
 func (m *_SendUnitData) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/Services.go b/plc4go/protocols/eip/readwrite/model/Services.go
index 33102bfef1..ef586c756b 100644
--- a/plc4go/protocols/eip/readwrite/model/Services.go
+++ b/plc4go/protocols/eip/readwrite/model/Services.go
@@ -210,7 +210,7 @@ func ServicesParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer, s
 }
 
 func (m *_Services) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/ServicesResponse.go b/plc4go/protocols/eip/readwrite/model/ServicesResponse.go
index 3d136155e1..7bb11dc35e 100644
--- a/plc4go/protocols/eip/readwrite/model/ServicesResponse.go
+++ b/plc4go/protocols/eip/readwrite/model/ServicesResponse.go
@@ -271,7 +271,7 @@ func ServicesResponseParseWithBuffer(ctx context.Context, readBuffer utils.ReadB
 }
 
 func (m *_ServicesResponse) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/TransportType.go b/plc4go/protocols/eip/readwrite/model/TransportType.go
index 611135a6e6..3343e91cc0 100644
--- a/plc4go/protocols/eip/readwrite/model/TransportType.go
+++ b/plc4go/protocols/eip/readwrite/model/TransportType.go
@@ -166,7 +166,7 @@ func TransportTypeParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuff
 }
 
 func (m *_TransportType) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/plc4go/protocols/eip/readwrite/model/UnConnectedDataItem.go b/plc4go/protocols/eip/readwrite/model/UnConnectedDataItem.go
index 32ef923bac..82a5efb116 100644
--- a/plc4go/protocols/eip/readwrite/model/UnConnectedDataItem.go
+++ b/plc4go/protocols/eip/readwrite/model/UnConnectedDataItem.go
@@ -174,7 +174,7 @@ func UnConnectedDataItemParseWithBuffer(ctx context.Context, readBuffer utils.Re
 }
 
 func (m *_UnConnectedDataItem) Serialize() ([]byte, error) {
-	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
+	wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background()))), utils.WithByteOrderForByteBasedBuffer((utils.InlineIf(bool((m.Order) == (IntegerEncoding_BIG_ENDIAN)), func() interface{} { return binary.ByteOrder(binary.BigEndian) }, func() interface{} { return binary.ByteOrder(binary.LittleEndian) })).(binary.ByteOrder)))
 	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
diff --git a/src/site/asciidoc/developers/protocols/eip/protocol.adoc b/src/site/asciidoc/developers/protocols/eip/protocol.adoc
new file mode 100644
index 0000000000..1cf6bbbc4c
--- /dev/null
+++ b/src/site/asciidoc/developers/protocols/eip/protocol.adoc
@@ -0,0 +1,132 @@
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      https://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+
+== EIP Protocol
+
+// https://plantuml.com/de/activity-diagram-legacy
+// https://deepu.js.org/svg-seq-diagram/Reference_Guide.pdf
+
+[plantuml,eip-statemachine,svg,opts="inline",svg-type="inline"]
+----
+@startuml
+
+(*) --> Connect
+
+partition "Connected" #EEEEEE {
+    ===Connected=== -->[API Browse Request] Browse
+    ===Connected=== -->[API Read Request] Read
+    ===Connected=== -->[API Write Request] Write
+    ===Connected=== -->[API Subscription Request] Subscribe
+    ===Connected=== -->[API Unsubscription Request] Unsubscribe
+    ===Connected=== -->[API Disconnect Request] Disconnect
+}
+
+partition Connect #EEEECC {
+    (*) --> "initializing"
+    "initializing" --> "Send ListServices request"
+    "Send ListServices request" ..> "Receive ListServices response"
+    "Receive ListServices response" -->[If successfull, extract 'CIP encapsulation support' setting] "Send EipConnectionRequest request"
+    "Send EipConnectionRequest request" ..> "Receive EipConnectionRequest response"
+    if "Response is an EipConnectionResponse"?
+        -->[true] "Send GetAllAttributes request"
+    else
+        -->[false] "Send OpenConnectionManager request"
+    endif
+    "Send GetAllAttributes request" ..> "Receive GetAllAttributes response"
+    if "Extract setting for 'useMessageRouter' and 'useConnectionManager'. If useConnectionManager"
+        -->[true] "Send OpenConnectionManager request"
+    else
+        -->[false] ===Connected===
+    endif
+    "Send OpenConnectionManager request" ..> "Receive OpenConnectionManager response"
+    "Receive OpenConnectionManager response" --> ===Connected===
+}
+
+partition Disconnect #EECCCC {
+    "Disconnect" --> ===DisconnectStart===
+    if "connectionId != 0"
+        -->[true] "Send ConnectionManagerClose request"
+    else
+        -->[false] "Send Disconnect request"
+    endif
+    "Send ConnectionManagerClose request" ..> "Receive ConnectionManagerClose response"
+    "Receive ConnectionManagerClose response" --> "Send Disconnect request"
+    "Send Disconnect request" ..> "Receive Disconnect response"
+    "Receive Disconnect response" --> ===Disconnected===
+}
+
+partition Browse #CCCCEE {
+    "Browse" --> ===BrowseStart===
+    ===BrowseStart=== --> ===Connected===
+}
+
+partition Read #CCEECC {
+    "Read" --> ===ReadStart===
+    if "useMessageRouter"
+        if "useConnectionManager"
+            -->[true] "readWithConnectionManager"
+        else
+            -->[false] "readWithoutConnectionManager"
+        endif
+    else
+        -->[false] "readWithoutMessageRouter"
+    endif
+    "readWithConnectionManager" --> "Send SendUnitData request"
+    "Send SendUnitData request" ..> "Receive SendUnitData response"
+    "Receive SendUnitData response" --> ===Connected===
+    "readWithoutConnectionManager" --> "Send CipRRData request"
+    "Send CipRRData request" ..> "Receive CipRRData response"
+    "Receive CipRRData response" --> ===Connected===
+    "readWithoutMessageRouter" --> "Send unconnected CipReadRequest request for each tag"
+    "Send unconnected CipReadRequest request for each tag" ..> "Receive unconnected CipReadRequest response"
+    "Receive unconnected CipReadRequest response" --> ===Connected===
+}
+
+partition Write #EECCCC {
+    "Write" --> ===WriteStart===
+    if "useMessageRouter"
+        if "useConnectionManager"
+            -->[true] "writeWithConnectionManager"
+        else
+            -->[false] "writeWithoutConnectionManager"
+        endif
+    else
+        -->[false] "writeWithoutMessageRouter"
+    endif
+    "writeWithConnectionManager" --> "Send SendUnitData request"
+    "Send SendUnitData request" ..> "Receive SendUnitData response"
+    "Receive SendUnitData response" --> ===Connected===
+    "writeWithoutConnectionManager" --> "Send CipRRData request"
+    "Send CipRRData request" ..> "Receive CipRRData response"
+    "Receive CipRRData response" --> ===Connected===
+    "writeWithoutMessageRouter" --> "Send unconnected CipWriteRequest request for each tag"
+    "Send unconnected CipWriteRequest request for each tag" ..> "Receive unconnected CipWriteRequest response"
+    "Receive unconnected CipWriteRequest response" --> ===Connected===
+}
+
+partition Subscribe #EECCEE {
+    "Subscribe" --> ===SubscribeStart===
+    ===SubscribeStart=== --> ===Connected===
+}
+
+partition Unsubscribe #LightSkyBlue {
+    "Unsubscribe" --> ===UnsubscribeStart===
+    ===UnsubscribeStart=== --> ===Connected===
+}
+
+@enduml
+----
\ No newline at end of file