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

[plc4x] 01/01: fix(plc4go): Stated fixing the driver testsuite to run properly

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

commit 3062da027ecaa8730ccc2ef3fbeb6062cb1dd9b3
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Sat Feb 4 18:54:11 2023 +0100

    fix(plc4go): Stated fixing the driver testsuite to run properly
---
 plc4go/internal/s7/Connection.go         | 2 +-
 plc4go/spi/testutils/DriverTestRunner.go | 9 +++++----
 plc4go/spi/values/PlcBOOL.go             | 5 +++--
 plc4go/spi/values/PlcBYTE.go             | 5 +++--
 plc4go/spi/values/PlcCHAR.go             | 5 +++--
 plc4go/spi/values/PlcDATE.go             | 5 +++--
 plc4go/spi/values/PlcDATE_AND_TIME.go    | 5 +++--
 plc4go/spi/values/PlcDINT.go             | 5 +++--
 plc4go/spi/values/PlcDWORD.go            | 5 +++--
 plc4go/spi/values/PlcINT.go              | 5 +++--
 plc4go/spi/values/PlcLDATE.go            | 5 +++--
 plc4go/spi/values/PlcLDATE_AND_TIME.go   | 5 +++--
 plc4go/spi/values/PlcLINT.go             | 5 +++--
 plc4go/spi/values/PlcLREAL.go            | 5 +++--
 plc4go/spi/values/PlcLTIME.go            | 5 +++--
 plc4go/spi/values/PlcLTIME_OF_DAY.go     | 5 +++--
 plc4go/spi/values/PlcLWORD.go            | 5 +++--
 plc4go/spi/values/PlcREAL.go             | 5 +++--
 plc4go/spi/values/PlcRawByteArray.go     | 5 +++--
 plc4go/spi/values/PlcSINT.go             | 5 +++--
 plc4go/spi/values/PlcSTRING.go           | 5 +++--
 plc4go/spi/values/PlcTIME.go             | 5 +++--
 plc4go/spi/values/PlcTIME_OF_DAY.go      | 5 +++--
 plc4go/spi/values/PlcUDINT.go            | 5 +++--
 plc4go/spi/values/PlcUINT.go             | 5 +++--
 plc4go/spi/values/PlcULINT.go            | 5 +++--
 plc4go/spi/values/PlcUSINT.go            | 5 +++--
 plc4go/spi/values/PlcWCHAR.go            | 5 +++--
 plc4go/spi/values/PlcWORD.go             | 5 +++--
 plc4go/spi/values/PlcWSTRING.go          | 5 +++--
 30 files changed, 90 insertions(+), 61 deletions(-)

diff --git a/plc4go/internal/s7/Connection.go b/plc4go/internal/s7/Connection.go
index 924335dd4b..8db697b784 100644
--- a/plc4go/internal/s7/Connection.go
+++ b/plc4go/internal/s7/Connection.go
@@ -413,8 +413,8 @@ func (m *Connection) createCOTPConnectionRequest() readWriteModel.COTPPacket {
 		0x000F,
 		readWriteModel.COTPProtocolClass_CLASS_0,
 		[]readWriteModel.COTPParameter{
-			readWriteModel.NewCOTPParameterCalledTsap(m.driverContext.CalledTsapId, 0),
 			readWriteModel.NewCOTPParameterCallingTsap(m.driverContext.CallingTsapId, 0),
+			readWriteModel.NewCOTPParameterCalledTsap(m.driverContext.CalledTsapId, 0),
 			readWriteModel.NewCOTPParameterTpduSize(m.driverContext.CotpTpduSize, 0),
 		},
 		nil,
diff --git a/plc4go/spi/testutils/DriverTestRunner.go b/plc4go/spi/testutils/DriverTestRunner.go
index 284d939d90..4f0830c45a 100644
--- a/plc4go/spi/testutils/DriverTestRunner.go
+++ b/plc4go/spi/testutils/DriverTestRunner.go
@@ -101,16 +101,17 @@ func (m DriverTestsuite) Run(driverManager plc4go.PlcDriverManager, testcase Tes
 	connectionChan := driverManager.GetConnection(m.driverName + ":test://hurz" + optionsString)
 	connectionResult := <-connectionChan
 
-	if connectionResult.GetConnection() != nil {
+	if connectionResult.GetErr() != nil {
 		return errors.Wrap(connectionResult.GetErr(), "error getting a connection")
 	}
+	connection := connectionResult.GetConnection()
 
 	log.Info().Msgf("\n-------------------------------------------------------\nExecuting testcase: %s \n-------------------------------------------------------\n", testcase.name)
 
 	// Run the setup steps
 	log.Info().Msgf("\n-------------------------------------------------------\nPerforming setup for: %s \n-------------------------------------------------------\n", testcase.name)
 	for _, testStep := range m.setupSteps {
-		err := m.ExecuteStep(connectionResult.GetConnection(), &testcase, testStep)
+		err := m.ExecuteStep(connection, &testcase, testStep)
 		if err != nil {
 			return errors.Wrap(err, "error in setup step "+testStep.name)
 		}
@@ -121,7 +122,7 @@ func (m DriverTestsuite) Run(driverManager plc4go.PlcDriverManager, testcase Tes
 	// Run the actual scenario steps
 	log.Info().Msgf("\n-------------------------------------------------------\nRunning testcases for: %s \n-------------------------------------------------------\n", testcase.name)
 	for _, testStep := range testcase.steps {
-		err := m.ExecuteStep(connectionResult.GetConnection(), &testcase, testStep)
+		err := m.ExecuteStep(connection, &testcase, testStep)
 		if err != nil {
 			return errors.Wrap(err, "error in step "+testStep.name)
 		}
@@ -130,7 +131,7 @@ func (m DriverTestsuite) Run(driverManager plc4go.PlcDriverManager, testcase Tes
 	// Run the teardown steps
 	log.Info().Msgf("\n-------------------------------------------------------\nPerforming teardown for: %s \n-------------------------------------------------------\n", testcase.name)
 	for _, testStep := range m.teardownSteps {
-		err := m.ExecuteStep(connectionResult.GetConnection(), &testcase, testStep)
+		err := m.ExecuteStep(connection, &testcase, testStep)
 		if err != nil {
 			return errors.Wrap(err, "error in teardown step "+testStep.name)
 		}
diff --git a/plc4go/spi/values/PlcBOOL.go b/plc4go/spi/values/PlcBOOL.go
index 0a4707702f..f0b3627949 100644
--- a/plc4go/spi/values/PlcBOOL.go
+++ b/plc4go/spi/values/PlcBOOL.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 
@@ -86,13 +87,13 @@ func (m PlcBOOL) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcBOOL) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcBOOL) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcBOOL) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteBit("PlcBOOL", m.value)
 }
 
diff --git a/plc4go/spi/values/PlcBYTE.go b/plc4go/spi/values/PlcBYTE.go
index da34e2224e..f3ef41ec3e 100644
--- a/plc4go/spi/values/PlcBYTE.go
+++ b/plc4go/spi/values/PlcBYTE.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"math"
@@ -151,13 +152,13 @@ func (m PlcBYTE) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcBYTE) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcBYTE) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcBYTE) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteByte("PlcBYTE", m.value)
 }
 
diff --git a/plc4go/spi/values/PlcCHAR.go b/plc4go/spi/values/PlcCHAR.go
index 550efce23e..6c7a72e2a3 100644
--- a/plc4go/spi/values/PlcCHAR.go
+++ b/plc4go/spi/values/PlcCHAR.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 
@@ -57,13 +58,13 @@ func (m PlcCHAR) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcCHAR) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcCHAR) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcCHAR) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteString("PlcCHAR", 8, "UTF-8", m.value)
 }
 
diff --git a/plc4go/spi/values/PlcDATE.go b/plc4go/spi/values/PlcDATE.go
index 02b6a1d0bb..c01e537ab3 100644
--- a/plc4go/spi/values/PlcDATE.go
+++ b/plc4go/spi/values/PlcDATE.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"time"
@@ -104,13 +105,13 @@ func (m PlcDATE) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcDATE) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcDATE) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcDATE) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteString("PlcDATE", uint32(len([]rune(m.GetString()))*8), "UTF-8", m.GetString())
 }
 
diff --git a/plc4go/spi/values/PlcDATE_AND_TIME.go b/plc4go/spi/values/PlcDATE_AND_TIME.go
index 5658201658..794b9bc7aa 100644
--- a/plc4go/spi/values/PlcDATE_AND_TIME.go
+++ b/plc4go/spi/values/PlcDATE_AND_TIME.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"time"
@@ -106,13 +107,13 @@ func (m PlcDATE_AND_TIME) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcDATE_AND_TIME) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcDATE_AND_TIME) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcDATE_AND_TIME) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteString("PlcDATE_AND_TIME", uint32(len([]rune(m.GetString()))*8), "UTF-8", m.GetString())
 }
 
diff --git a/plc4go/spi/values/PlcDINT.go b/plc4go/spi/values/PlcDINT.go
index 4dd1ba75cd..0a138ae23d 100644
--- a/plc4go/spi/values/PlcDINT.go
+++ b/plc4go/spi/values/PlcDINT.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"math"
@@ -154,13 +155,13 @@ func (m PlcDINT) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcDINT) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcDINT) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcDINT) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteInt32("PlcDINT", 32, m.value)
 }
 
diff --git a/plc4go/spi/values/PlcDWORD.go b/plc4go/spi/values/PlcDWORD.go
index ef68ea3887..16cdae2398 100644
--- a/plc4go/spi/values/PlcDWORD.go
+++ b/plc4go/spi/values/PlcDWORD.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"math"
@@ -192,13 +193,13 @@ func (m PlcDWORD) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcDWORD) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcDWORD) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcDWORD) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint32("PlcDINT", 32, m.value)
 }
 
diff --git a/plc4go/spi/values/PlcINT.go b/plc4go/spi/values/PlcINT.go
index e2fba65705..66bea560ff 100644
--- a/plc4go/spi/values/PlcINT.go
+++ b/plc4go/spi/values/PlcINT.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"math"
@@ -147,13 +148,13 @@ func (m PlcINT) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcINT) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcINT) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcINT) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteInt16("PlcINT", 16, m.value)
 }
 
diff --git a/plc4go/spi/values/PlcLDATE.go b/plc4go/spi/values/PlcLDATE.go
index 9fad90eb35..5ce8c3d7a3 100644
--- a/plc4go/spi/values/PlcLDATE.go
+++ b/plc4go/spi/values/PlcLDATE.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"time"
@@ -82,13 +83,13 @@ func (m PlcLDATE) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcLDATE) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcLDATE) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcLDATE) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteString("PlcLDATE", uint32(len([]rune(m.GetString()))*8), "UTF-8", m.GetString())
 }
 
diff --git a/plc4go/spi/values/PlcLDATE_AND_TIME.go b/plc4go/spi/values/PlcLDATE_AND_TIME.go
index cae271c81b..99b5fc7d44 100644
--- a/plc4go/spi/values/PlcLDATE_AND_TIME.go
+++ b/plc4go/spi/values/PlcLDATE_AND_TIME.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"time"
@@ -81,13 +82,13 @@ func (m PlcLDATE_AND_TIME) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcLDATE_AND_TIME) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcLDATE_AND_TIME) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcLDATE_AND_TIME) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteString("PlcLDATE_AND_TIME", uint32(len([]rune(m.GetString()))*8), "UTF-8", m.GetString())
 }
 
diff --git a/plc4go/spi/values/PlcLINT.go b/plc4go/spi/values/PlcLINT.go
index 3d0d559b0b..7710453960 100644
--- a/plc4go/spi/values/PlcLINT.go
+++ b/plc4go/spi/values/PlcLINT.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"math"
@@ -161,13 +162,13 @@ func (m PlcLINT) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcLINT) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcLINT) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcLINT) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteInt64("PlcLINT", 64, m.value)
 }
 
diff --git a/plc4go/spi/values/PlcLREAL.go b/plc4go/spi/values/PlcLREAL.go
index 846929e033..c2a06989f8 100644
--- a/plc4go/spi/values/PlcLREAL.go
+++ b/plc4go/spi/values/PlcLREAL.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"math"
@@ -168,13 +169,13 @@ func (m PlcLREAL) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcLREAL) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcLREAL) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcLREAL) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteFloat64("PlcLREAL", 64, m.value)
 }
 
diff --git a/plc4go/spi/values/PlcLTIME.go b/plc4go/spi/values/PlcLTIME.go
index 1f011ec500..8f2ebf13db 100644
--- a/plc4go/spi/values/PlcLTIME.go
+++ b/plc4go/spi/values/PlcLTIME.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"time"
@@ -74,13 +75,13 @@ func (m PlcLTIME) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcLTIME) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcLTIME) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcLTIME) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteString("PlcLTIME", uint32(len([]rune(m.GetString()))*8), "UTF-8", m.GetString())
 }
 
diff --git a/plc4go/spi/values/PlcLTIME_OF_DAY.go b/plc4go/spi/values/PlcLTIME_OF_DAY.go
index 9edc93c138..9d8264138f 100644
--- a/plc4go/spi/values/PlcLTIME_OF_DAY.go
+++ b/plc4go/spi/values/PlcLTIME_OF_DAY.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"time"
@@ -87,13 +88,13 @@ func (m PlcLTIME_OF_DAY) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcLTIME_OF_DAY) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcLTIME_OF_DAY) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcLTIME_OF_DAY) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteString("PlcLTIME_OF_DAY", uint32(len([]rune(m.GetString()))*8), "UTF-8", m.GetString())
 }
 
diff --git a/plc4go/spi/values/PlcLWORD.go b/plc4go/spi/values/PlcLWORD.go
index f7eaf32815..6904162715 100644
--- a/plc4go/spi/values/PlcLWORD.go
+++ b/plc4go/spi/values/PlcLWORD.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"math"
@@ -222,13 +223,13 @@ func (m PlcLWORD) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcLWORD) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcLWORD) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcLWORD) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint64("PlcLWORD", 64, m.value)
 }
 
diff --git a/plc4go/spi/values/PlcREAL.go b/plc4go/spi/values/PlcREAL.go
index 56ee2df6fe..a7e2efcc61 100644
--- a/plc4go/spi/values/PlcREAL.go
+++ b/plc4go/spi/values/PlcREAL.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"math"
@@ -170,13 +171,13 @@ func (m PlcREAL) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcREAL) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcREAL) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcREAL) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteFloat32("PlcREAL", 32, m.value)
 }
 
diff --git a/plc4go/spi/values/PlcRawByteArray.go b/plc4go/spi/values/PlcRawByteArray.go
index e42376f73b..ffe8a9e47a 100644
--- a/plc4go/spi/values/PlcRawByteArray.go
+++ b/plc4go/spi/values/PlcRawByteArray.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 
 	apiValues "github.com/apache/plc4x/plc4go/pkg/api/values"
@@ -67,13 +68,13 @@ func (m PlcRawByteArray) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcRawByteArray) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcRawByteArray) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcRawByteArray) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	if err := writeBuffer.PushContext("PlcRawByteArray"); err != nil {
 		return err
 	}
diff --git a/plc4go/spi/values/PlcSINT.go b/plc4go/spi/values/PlcSINT.go
index d643d4d420..3100a82022 100644
--- a/plc4go/spi/values/PlcSINT.go
+++ b/plc4go/spi/values/PlcSINT.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"strconv"
@@ -139,13 +140,13 @@ func (m PlcSINT) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcSINT) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcSINT) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcSINT) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteInt8("PlcINT", 8, m.value)
 }
 
diff --git a/plc4go/spi/values/PlcSTRING.go b/plc4go/spi/values/PlcSTRING.go
index 94b3443488..74a1fcb7d9 100644
--- a/plc4go/spi/values/PlcSTRING.go
+++ b/plc4go/spi/values/PlcSTRING.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 
@@ -57,13 +58,13 @@ func (m PlcSTRING) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcSTRING) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcSTRING) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcSTRING) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteString("PlcSTRING", uint32(len([]rune(m.value))*8), "UTF-8", m.value)
 }
 
diff --git a/plc4go/spi/values/PlcTIME.go b/plc4go/spi/values/PlcTIME.go
index f7604c714b..d860e0c957 100644
--- a/plc4go/spi/values/PlcTIME.go
+++ b/plc4go/spi/values/PlcTIME.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"time"
@@ -74,13 +75,13 @@ func (m PlcTIME) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcTIME) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcTIME) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcTIME) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteString("PlcTIME", uint32(len([]rune(m.GetString()))*8), "UTF-8", m.GetString())
 }
 
diff --git a/plc4go/spi/values/PlcTIME_OF_DAY.go b/plc4go/spi/values/PlcTIME_OF_DAY.go
index c0404ee795..12d1d912f1 100644
--- a/plc4go/spi/values/PlcTIME_OF_DAY.go
+++ b/plc4go/spi/values/PlcTIME_OF_DAY.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"time"
@@ -88,13 +89,13 @@ func (m PlcTIME_OF_DAY) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcTIME_OF_DAY) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcTIME_OF_DAY) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcTIME_OF_DAY) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteString("PlcTIME_OF_DAY", uint32(len([]rune(m.GetString()))*8), "UTF-8", m.GetString())
 }
 
diff --git a/plc4go/spi/values/PlcUDINT.go b/plc4go/spi/values/PlcUDINT.go
index 7ab5cdd647..b2ddac8005 100644
--- a/plc4go/spi/values/PlcUDINT.go
+++ b/plc4go/spi/values/PlcUDINT.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"math"
@@ -147,13 +148,13 @@ func (m PlcUDINT) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcUDINT) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcUDINT) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcUDINT) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint32("PlcUDINT", 32, m.value)
 }
 
diff --git a/plc4go/spi/values/PlcUINT.go b/plc4go/spi/values/PlcUINT.go
index e5c31250ea..8824d9a85e 100644
--- a/plc4go/spi/values/PlcUINT.go
+++ b/plc4go/spi/values/PlcUINT.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"math"
@@ -133,13 +134,13 @@ func (m PlcUINT) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcUINT) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcUINT) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcUINT) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint16("PlcUINT", 16, m.value)
 }
 
diff --git a/plc4go/spi/values/PlcULINT.go b/plc4go/spi/values/PlcULINT.go
index 85b60cd99b..df379b3eb6 100644
--- a/plc4go/spi/values/PlcULINT.go
+++ b/plc4go/spi/values/PlcULINT.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"math"
@@ -161,13 +162,13 @@ func (m PlcULINT) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcULINT) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcULINT) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcULINT) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint64("PlcUINT", 64, m.value)
 }
 
diff --git a/plc4go/spi/values/PlcUSINT.go b/plc4go/spi/values/PlcUSINT.go
index 315b6a1362..eaae0404c3 100644
--- a/plc4go/spi/values/PlcUSINT.go
+++ b/plc4go/spi/values/PlcUSINT.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"math"
@@ -119,13 +120,13 @@ func (m PlcUSINT) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcUSINT) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcUSINT) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcUSINT) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint8("PlcUSINT", 8, m.value)
 }
 
diff --git a/plc4go/spi/values/PlcWCHAR.go b/plc4go/spi/values/PlcWCHAR.go
index 4f66e441ab..d9ce75793c 100644
--- a/plc4go/spi/values/PlcWCHAR.go
+++ b/plc4go/spi/values/PlcWCHAR.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 
@@ -57,13 +58,13 @@ func (m PlcWCHAR) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcWCHAR) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcWCHAR) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcWCHAR) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteString("PlcWCHAR", uint32(16), "UTF-16", string(m.value))
 }
 
diff --git a/plc4go/spi/values/PlcWORD.go b/plc4go/spi/values/PlcWORD.go
index 7502d3f95d..a0594f39bd 100644
--- a/plc4go/spi/values/PlcWORD.go
+++ b/plc4go/spi/values/PlcWORD.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 	"math"
@@ -170,13 +171,13 @@ func (m PlcWORD) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcWORD) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcWORD) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcWORD) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteUint16("PlcWORD", 16, m.value)
 }
 
diff --git a/plc4go/spi/values/PlcWSTRING.go b/plc4go/spi/values/PlcWSTRING.go
index 2a4c77bea4..f49dd6073e 100644
--- a/plc4go/spi/values/PlcWSTRING.go
+++ b/plc4go/spi/values/PlcWSTRING.go
@@ -20,6 +20,7 @@
 package values
 
 import (
+	"context"
 	"encoding/binary"
 	"fmt"
 
@@ -57,13 +58,13 @@ func (m PlcWSTRING) GetPlcValueType() apiValues.PlcValueType {
 
 func (m PlcWSTRING) Serialize() ([]byte, error) {
 	wb := utils.NewWriteBufferByteBased(utils.WithByteOrderForByteBasedBuffer(binary.BigEndian))
-	if err := m.SerializeWithWriteBuffer(wb); err != nil {
+	if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil {
 		return nil, err
 	}
 	return wb.GetBytes(), nil
 }
 
-func (m PlcWSTRING) SerializeWithWriteBuffer(writeBuffer utils.WriteBuffer) error {
+func (m PlcWSTRING) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
 	return writeBuffer.WriteString("PlcSTRING", uint32(len(m.value)*8), "UTF-8", string(m.value))
 }