You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2022/02/26 10:39:05 UTC

[plc4x] 03/03: fix(bacnet/plc4j): enable uint64 support for virtual fields

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

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

commit f4901fa4c85daf0e36eccb6027560417f713fedb
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Sat Feb 26 11:38:55 2022 +0100

    fix(bacnet/plc4j): enable uint64 support for virtual fields
---
 .../model/BACnetApplicationTagSignedInteger.go     |  16 +
 .../model/BACnetApplicationTagUnsignedInteger.go   |  16 +
 .../model/BACnetContextTagSignedInteger.go         |  16 +
 .../model/BACnetContextTagUnsignedInteger.go       |  16 +
 .../model/BACnetTagPayloadSignedInteger.go         |   8 +-
 .../model/BACnetTagPayloadUnsignedInteger.go       | 352 +++++++++++++++++++--
 .../bacnetip/readwrite/model/StaticHelper.go       |   6 +-
 plc4j/drivers/bacnet/pom.xml                       |   8 +
 .../bacnetip/readwrite/utils/StaticHelper.java     |   6 +-
 .../plc4x/java/bacnetip/RandomPackagesTest.java    | 180 +++++------
 .../resources/protocols/bacnetip/bacnetip.mspec    |  78 +++--
 11 files changed, 544 insertions(+), 158 deletions(-)

diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
index 6c7a1a4..d8b6b44 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
@@ -36,6 +36,8 @@ type BACnetApplicationTagSignedInteger struct {
 type IBACnetApplicationTagSignedInteger interface {
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadSignedInteger
+	// GetActualValue returns ActualValue
+	GetActualValue() uint64
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -69,6 +71,9 @@ func (m *BACnetApplicationTagSignedInteger) GetPayload() *BACnetTagPayloadSigned
 ///////////////////////////////////////////////////////////
 // Accessors for virtual fields.
 ///////////////////////////////////////////////////////////
+func (m *BACnetApplicationTagSignedInteger) GetActualValue() uint64 {
+	return m.GetPayload().GetActualValue()
+}
 
 // NewBACnetApplicationTagSignedInteger factory function for BACnetApplicationTagSignedInteger
 func NewBACnetApplicationTagSignedInteger(payload *BACnetTagPayloadSignedInteger, header *BACnetTagHeader) *BACnetApplicationTag {
@@ -113,6 +118,8 @@ func (m *BACnetApplicationTagSignedInteger) GetLengthInBitsConditional(lastItem
 	// Simple field (payload)
 	lengthInBits += m.Payload.GetLengthInBits()
 
+	// A virtual field doesn't have any in- or output.
+
 	return lengthInBits
 }
 
@@ -138,6 +145,11 @@ func BACnetApplicationTagSignedIntegerParse(readBuffer utils.ReadBuffer, header
 		return nil, closeErr
 	}
 
+	// Virtual field
+	_actualValue := payload.GetActualValue()
+	actualValue := uint64(_actualValue)
+	_ = actualValue
+
 	if closeErr := readBuffer.CloseContext("BACnetApplicationTagSignedInteger"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -168,6 +180,10 @@ func (m *BACnetApplicationTagSignedInteger) Serialize(writeBuffer utils.WriteBuf
 		if _payloadErr != nil {
 			return errors.Wrap(_payloadErr, "Error serializing 'payload' field")
 		}
+		// Virtual field
+		if _actualValueErr := writeBuffer.WriteVirtual("actualValue", m.GetActualValue()); _actualValueErr != nil {
+			return errors.Wrap(_actualValueErr, "Error serializing 'actualValue' field")
+		}
 
 		if popErr := writeBuffer.PopContext("BACnetApplicationTagSignedInteger"); popErr != nil {
 			return popErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go
index ca857ec..36a5ad0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go
@@ -36,6 +36,8 @@ type BACnetApplicationTagUnsignedInteger struct {
 type IBACnetApplicationTagUnsignedInteger interface {
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadUnsignedInteger
+	// GetActualValue returns ActualValue
+	GetActualValue() uint64
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -69,6 +71,9 @@ func (m *BACnetApplicationTagUnsignedInteger) GetPayload() *BACnetTagPayloadUnsi
 ///////////////////////////////////////////////////////////
 // Accessors for virtual fields.
 ///////////////////////////////////////////////////////////
+func (m *BACnetApplicationTagUnsignedInteger) GetActualValue() uint64 {
+	return m.GetPayload().GetActualValue()
+}
 
 // NewBACnetApplicationTagUnsignedInteger factory function for BACnetApplicationTagUnsignedInteger
 func NewBACnetApplicationTagUnsignedInteger(payload *BACnetTagPayloadUnsignedInteger, header *BACnetTagHeader) *BACnetApplicationTag {
@@ -113,6 +118,8 @@ func (m *BACnetApplicationTagUnsignedInteger) GetLengthInBitsConditional(lastIte
 	// Simple field (payload)
 	lengthInBits += m.Payload.GetLengthInBits()
 
+	// A virtual field doesn't have any in- or output.
+
 	return lengthInBits
 }
 
@@ -138,6 +145,11 @@ func BACnetApplicationTagUnsignedIntegerParse(readBuffer utils.ReadBuffer, heade
 		return nil, closeErr
 	}
 
+	// Virtual field
+	_actualValue := payload.GetActualValue()
+	actualValue := uint64(_actualValue)
+	_ = actualValue
+
 	if closeErr := readBuffer.CloseContext("BACnetApplicationTagUnsignedInteger"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -168,6 +180,10 @@ func (m *BACnetApplicationTagUnsignedInteger) Serialize(writeBuffer utils.WriteB
 		if _payloadErr != nil {
 			return errors.Wrap(_payloadErr, "Error serializing 'payload' field")
 		}
+		// Virtual field
+		if _actualValueErr := writeBuffer.WriteVirtual("actualValue", m.GetActualValue()); _actualValueErr != nil {
+			return errors.Wrap(_actualValueErr, "Error serializing 'actualValue' field")
+		}
 
 		if popErr := writeBuffer.PopContext("BACnetApplicationTagUnsignedInteger"); popErr != nil {
 			return popErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go
index 3800d93..ea0c05c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go
@@ -40,6 +40,8 @@ type BACnetContextTagSignedInteger struct {
 type IBACnetContextTagSignedInteger interface {
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadSignedInteger
+	// GetActualValue returns ActualValue
+	GetActualValue() uint64
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -73,6 +75,9 @@ func (m *BACnetContextTagSignedInteger) GetPayload() *BACnetTagPayloadSignedInte
 ///////////////////////////////////////////////////////////
 // Accessors for virtual fields.
 ///////////////////////////////////////////////////////////
+func (m *BACnetContextTagSignedInteger) GetActualValue() uint64 {
+	return m.GetPayload().GetActualValue()
+}
 
 // NewBACnetContextTagSignedInteger factory function for BACnetContextTagSignedInteger
 func NewBACnetContextTagSignedInteger(payload *BACnetTagPayloadSignedInteger, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTag {
@@ -117,6 +122,8 @@ func (m *BACnetContextTagSignedInteger) GetLengthInBitsConditional(lastItem bool
 	// Simple field (payload)
 	lengthInBits += m.Payload.GetLengthInBits()
 
+	// A virtual field doesn't have any in- or output.
+
 	return lengthInBits
 }
 
@@ -147,6 +154,11 @@ func BACnetContextTagSignedIntegerParse(readBuffer utils.ReadBuffer, tagNumberAr
 		return nil, closeErr
 	}
 
+	// Virtual field
+	_actualValue := payload.GetActualValue()
+	actualValue := uint64(_actualValue)
+	_ = actualValue
+
 	if closeErr := readBuffer.CloseContext("BACnetContextTagSignedInteger"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -177,6 +189,10 @@ func (m *BACnetContextTagSignedInteger) Serialize(writeBuffer utils.WriteBuffer)
 		if _payloadErr != nil {
 			return errors.Wrap(_payloadErr, "Error serializing 'payload' field")
 		}
+		// Virtual field
+		if _actualValueErr := writeBuffer.WriteVirtual("actualValue", m.GetActualValue()); _actualValueErr != nil {
+			return errors.Wrap(_actualValueErr, "Error serializing 'actualValue' field")
+		}
 
 		if popErr := writeBuffer.PopContext("BACnetContextTagSignedInteger"); popErr != nil {
 			return popErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagUnsignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagUnsignedInteger.go
index a0eee15..b8dd3ed 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagUnsignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagUnsignedInteger.go
@@ -40,6 +40,8 @@ type BACnetContextTagUnsignedInteger struct {
 type IBACnetContextTagUnsignedInteger interface {
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadUnsignedInteger
+	// GetActualValue returns ActualValue
+	GetActualValue() uint64
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -73,6 +75,9 @@ func (m *BACnetContextTagUnsignedInteger) GetPayload() *BACnetTagPayloadUnsigned
 ///////////////////////////////////////////////////////////
 // Accessors for virtual fields.
 ///////////////////////////////////////////////////////////
+func (m *BACnetContextTagUnsignedInteger) GetActualValue() uint64 {
+	return m.GetPayload().GetActualValue()
+}
 
 // NewBACnetContextTagUnsignedInteger factory function for BACnetContextTagUnsignedInteger
 func NewBACnetContextTagUnsignedInteger(payload *BACnetTagPayloadUnsignedInteger, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTag {
@@ -117,6 +122,8 @@ func (m *BACnetContextTagUnsignedInteger) GetLengthInBitsConditional(lastItem bo
 	// Simple field (payload)
 	lengthInBits += m.Payload.GetLengthInBits()
 
+	// A virtual field doesn't have any in- or output.
+
 	return lengthInBits
 }
 
@@ -147,6 +154,11 @@ func BACnetContextTagUnsignedIntegerParse(readBuffer utils.ReadBuffer, tagNumber
 		return nil, closeErr
 	}
 
+	// Virtual field
+	_actualValue := payload.GetActualValue()
+	actualValue := uint64(_actualValue)
+	_ = actualValue
+
 	if closeErr := readBuffer.CloseContext("BACnetContextTagUnsignedInteger"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -177,6 +189,10 @@ func (m *BACnetContextTagUnsignedInteger) Serialize(writeBuffer utils.WriteBuffe
 		if _payloadErr != nil {
 			return errors.Wrap(_payloadErr, "Error serializing 'payload' field")
 		}
+		// Virtual field
+		if _actualValueErr := writeBuffer.WriteVirtual("actualValue", m.GetActualValue()); _actualValueErr != nil {
+			return errors.Wrap(_actualValueErr, "Error serializing 'actualValue' field")
+		}
 
 		if popErr := writeBuffer.PopContext("BACnetContextTagUnsignedInteger"); popErr != nil {
 			return popErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagPayloadSignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagPayloadSignedInteger.go
index ef42b77..5107202 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagPayloadSignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagPayloadSignedInteger.go
@@ -306,9 +306,7 @@ func (m *BACnetTagPayloadSignedInteger) GetActualValue() uint64 {
 				return uint64(uint64(utils.InlineIf(m.GetIsInt32(), func() interface{} { return uint64((*m.GetValueInt32())) }, func() interface{} {
 					return uint64(uint64(utils.InlineIf(m.GetIsInt40(), func() interface{} { return uint64((*m.GetValueInt40())) }, func() interface{} {
 						return uint64(uint64(utils.InlineIf(m.GetIsInt48(), func() interface{} { return uint64((*m.GetValueInt48())) }, func() interface{} {
-							return uint64(uint64(utils.InlineIf(m.GetIsInt56(), func() interface{} { return uint64((*m.GetValueInt56())) }, func() interface{} {
-								return uint64(uint64(utils.InlineIf(m.GetIsInt64(), func() interface{} { return uint64((*m.GetValueInt64())) }, func() interface{} { return uint64(uint64(0)) }).(uint64)))
-							}).(uint64)))
+							return uint64(uint64(utils.InlineIf(m.GetIsInt56(), func() interface{} { return uint64((*m.GetValueInt56())) }, func() interface{} { return uint64((*m.GetValueInt64())) }).(uint64)))
 						}).(uint64)))
 					}).(uint64)))
 				}).(uint64)))
@@ -543,9 +541,7 @@ func BACnetTagPayloadSignedIntegerParse(readBuffer utils.ReadBuffer, actualLengt
 				return uint64(uint64(utils.InlineIf(isInt32, func() interface{} { return uint64((*valueInt32)) }, func() interface{} {
 					return uint64(uint64(utils.InlineIf(isInt40, func() interface{} { return uint64((*valueInt40)) }, func() interface{} {
 						return uint64(uint64(utils.InlineIf(isInt48, func() interface{} { return uint64((*valueInt48)) }, func() interface{} {
-							return uint64(uint64(utils.InlineIf(isInt56, func() interface{} { return uint64((*valueInt56)) }, func() interface{} {
-								return uint64(uint64(utils.InlineIf(isInt64, func() interface{} { return uint64((*valueInt64)) }, func() interface{} { return uint64(uint64(0)) }).(uint64)))
-							}).(uint64)))
+							return uint64(uint64(utils.InlineIf(isInt56, func() interface{} { return uint64((*valueInt56)) }, func() interface{} { return uint64((*valueInt64)) }).(uint64)))
 						}).(uint64)))
 					}).(uint64)))
 				}).(uint64)))
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagPayloadUnsignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagPayloadUnsignedInteger.go
index 15b2e6d3..e7749fd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagPayloadUnsignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagPayloadUnsignedInteger.go
@@ -32,6 +32,10 @@ type BACnetTagPayloadUnsignedInteger struct {
 	ValueUint16 *uint16
 	ValueUint24 *uint32
 	ValueUint32 *uint32
+	ValueUint40 *uint64
+	ValueUint48 *uint64
+	ValueUint56 *uint64
+	ValueUint64 *uint64
 
 	// Arguments.
 	ActualLength uint32
@@ -47,6 +51,14 @@ type IBACnetTagPayloadUnsignedInteger interface {
 	GetValueUint24() *uint32
 	// GetValueUint32 returns ValueUint32
 	GetValueUint32() *uint32
+	// GetValueUint40 returns ValueUint40
+	GetValueUint40() *uint64
+	// GetValueUint48 returns ValueUint48
+	GetValueUint48() *uint64
+	// GetValueUint56 returns ValueUint56
+	GetValueUint56() *uint64
+	// GetValueUint64 returns ValueUint64
+	GetValueUint64() *uint64
 	// GetIsUint8 returns IsUint8
 	GetIsUint8() bool
 	// GetIsUint16 returns IsUint16
@@ -55,8 +67,16 @@ type IBACnetTagPayloadUnsignedInteger interface {
 	GetIsUint24() bool
 	// GetIsUint32 returns IsUint32
 	GetIsUint32() bool
+	// GetIsUint40 returns IsUint40
+	GetIsUint40() bool
+	// GetIsUint48 returns IsUint48
+	GetIsUint48() bool
+	// GetIsUint56 returns IsUint56
+	GetIsUint56() bool
+	// GetIsUint64 returns IsUint64
+	GetIsUint64() bool
 	// GetActualValue returns ActualValue
-	GetActualValue() uint32
+	GetActualValue() uint64
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -84,6 +104,22 @@ func (m *BACnetTagPayloadUnsignedInteger) GetValueUint32() *uint32 {
 	return m.ValueUint32
 }
 
+func (m *BACnetTagPayloadUnsignedInteger) GetValueUint40() *uint64 {
+	return m.ValueUint40
+}
+
+func (m *BACnetTagPayloadUnsignedInteger) GetValueUint48() *uint64 {
+	return m.ValueUint48
+}
+
+func (m *BACnetTagPayloadUnsignedInteger) GetValueUint56() *uint64 {
+	return m.ValueUint56
+}
+
+func (m *BACnetTagPayloadUnsignedInteger) GetValueUint64() *uint64 {
+	return m.ValueUint64
+}
+
 ///////////////////////////////////////////////////////////
 // Accessors for virtual fields.
 ///////////////////////////////////////////////////////////
@@ -96,6 +132,14 @@ func (m *BACnetTagPayloadUnsignedInteger) GetIsUint8() bool {
 	_ = valueUint24
 	valueUint32 := m.ValueUint32
 	_ = valueUint32
+	valueUint40 := m.ValueUint40
+	_ = valueUint40
+	valueUint48 := m.ValueUint48
+	_ = valueUint48
+	valueUint56 := m.ValueUint56
+	_ = valueUint56
+	valueUint64 := m.ValueUint64
+	_ = valueUint64
 	return bool((m.ActualLength) == (1))
 }
 
@@ -108,6 +152,14 @@ func (m *BACnetTagPayloadUnsignedInteger) GetIsUint16() bool {
 	_ = valueUint24
 	valueUint32 := m.ValueUint32
 	_ = valueUint32
+	valueUint40 := m.ValueUint40
+	_ = valueUint40
+	valueUint48 := m.ValueUint48
+	_ = valueUint48
+	valueUint56 := m.ValueUint56
+	_ = valueUint56
+	valueUint64 := m.ValueUint64
+	_ = valueUint64
 	return bool((m.ActualLength) == (2))
 }
 
@@ -120,6 +172,14 @@ func (m *BACnetTagPayloadUnsignedInteger) GetIsUint24() bool {
 	_ = valueUint24
 	valueUint32 := m.ValueUint32
 	_ = valueUint32
+	valueUint40 := m.ValueUint40
+	_ = valueUint40
+	valueUint48 := m.ValueUint48
+	_ = valueUint48
+	valueUint56 := m.ValueUint56
+	_ = valueUint56
+	valueUint64 := m.ValueUint64
+	_ = valueUint64
 	return bool((m.ActualLength) == (3))
 }
 
@@ -132,10 +192,98 @@ func (m *BACnetTagPayloadUnsignedInteger) GetIsUint32() bool {
 	_ = valueUint24
 	valueUint32 := m.ValueUint32
 	_ = valueUint32
+	valueUint40 := m.ValueUint40
+	_ = valueUint40
+	valueUint48 := m.ValueUint48
+	_ = valueUint48
+	valueUint56 := m.ValueUint56
+	_ = valueUint56
+	valueUint64 := m.ValueUint64
+	_ = valueUint64
 	return bool((m.ActualLength) == (4))
 }
 
-func (m *BACnetTagPayloadUnsignedInteger) GetActualValue() uint32 {
+func (m *BACnetTagPayloadUnsignedInteger) GetIsUint40() bool {
+	valueUint8 := m.ValueUint8
+	_ = valueUint8
+	valueUint16 := m.ValueUint16
+	_ = valueUint16
+	valueUint24 := m.ValueUint24
+	_ = valueUint24
+	valueUint32 := m.ValueUint32
+	_ = valueUint32
+	valueUint40 := m.ValueUint40
+	_ = valueUint40
+	valueUint48 := m.ValueUint48
+	_ = valueUint48
+	valueUint56 := m.ValueUint56
+	_ = valueUint56
+	valueUint64 := m.ValueUint64
+	_ = valueUint64
+	return bool((m.ActualLength) == (5))
+}
+
+func (m *BACnetTagPayloadUnsignedInteger) GetIsUint48() bool {
+	valueUint8 := m.ValueUint8
+	_ = valueUint8
+	valueUint16 := m.ValueUint16
+	_ = valueUint16
+	valueUint24 := m.ValueUint24
+	_ = valueUint24
+	valueUint32 := m.ValueUint32
+	_ = valueUint32
+	valueUint40 := m.ValueUint40
+	_ = valueUint40
+	valueUint48 := m.ValueUint48
+	_ = valueUint48
+	valueUint56 := m.ValueUint56
+	_ = valueUint56
+	valueUint64 := m.ValueUint64
+	_ = valueUint64
+	return bool((m.ActualLength) == (6))
+}
+
+func (m *BACnetTagPayloadUnsignedInteger) GetIsUint56() bool {
+	valueUint8 := m.ValueUint8
+	_ = valueUint8
+	valueUint16 := m.ValueUint16
+	_ = valueUint16
+	valueUint24 := m.ValueUint24
+	_ = valueUint24
+	valueUint32 := m.ValueUint32
+	_ = valueUint32
+	valueUint40 := m.ValueUint40
+	_ = valueUint40
+	valueUint48 := m.ValueUint48
+	_ = valueUint48
+	valueUint56 := m.ValueUint56
+	_ = valueUint56
+	valueUint64 := m.ValueUint64
+	_ = valueUint64
+	return bool((m.ActualLength) == (7))
+}
+
+func (m *BACnetTagPayloadUnsignedInteger) GetIsUint64() bool {
+	valueUint8 := m.ValueUint8
+	_ = valueUint8
+	valueUint16 := m.ValueUint16
+	_ = valueUint16
+	valueUint24 := m.ValueUint24
+	_ = valueUint24
+	valueUint32 := m.ValueUint32
+	_ = valueUint32
+	valueUint40 := m.ValueUint40
+	_ = valueUint40
+	valueUint48 := m.ValueUint48
+	_ = valueUint48
+	valueUint56 := m.ValueUint56
+	_ = valueUint56
+	valueUint64 := m.ValueUint64
+	_ = valueUint64
+	return bool((m.ActualLength) == (8))
+}
+
+func (m *BACnetTagPayloadUnsignedInteger) GetActualValue() uint64 {
 	valueUint8 := m.ValueUint8
 	_ = valueUint8
 	valueUint16 := m.ValueUint16
@@ -144,18 +292,32 @@ func (m *BACnetTagPayloadUnsignedInteger) GetActualValue() uint32 {
 	_ = valueUint24
 	valueUint32 := m.ValueUint32
 	_ = valueUint32
-	return utils.InlineIf(m.GetIsUint8(), func() interface{} { return uint32((*m.GetValueUint8())) }, func() interface{} {
-		return uint32(uint32(utils.InlineIf(m.GetIsUint16(), func() interface{} { return uint32((*m.GetValueUint16())) }, func() interface{} {
-			return uint32(uint32(utils.InlineIf(m.GetIsUint24(), func() interface{} { return uint32((*m.GetValueUint24())) }, func() interface{} {
-				return uint32(uint32(utils.InlineIf(m.GetIsUint32(), func() interface{} { return uint32((*m.GetValueUint32())) }, func() interface{} { return uint32(uint32(0)) }).(uint32)))
-			}).(uint32)))
-		}).(uint32)))
-	}).(uint32)
+	valueUint40 := m.ValueUint40
+	_ = valueUint40
+	valueUint48 := m.ValueUint48
+	_ = valueUint48
+	valueUint56 := m.ValueUint56
+	_ = valueUint56
+	valueUint64 := m.ValueUint64
+	_ = valueUint64
+	return utils.InlineIf(m.GetIsUint8(), func() interface{} { return uint64((*m.GetValueUint8())) }, func() interface{} {
+		return uint64(uint64(utils.InlineIf(m.GetIsUint16(), func() interface{} { return uint64((*m.GetValueUint16())) }, func() interface{} {
+			return uint64(uint64(utils.InlineIf(m.GetIsUint24(), func() interface{} { return uint64((*m.GetValueUint24())) }, func() interface{} {
+				return uint64(uint64(utils.InlineIf(m.GetIsUint32(), func() interface{} { return uint64((*m.GetValueUint32())) }, func() interface{} {
+					return uint64(uint64(utils.InlineIf(m.GetIsUint40(), func() interface{} { return uint64((*m.GetValueUint40())) }, func() interface{} {
+						return uint64(uint64(utils.InlineIf(m.GetIsUint48(), func() interface{} { return uint64((*m.GetValueUint48())) }, func() interface{} {
+							return uint64(uint64(utils.InlineIf(m.GetIsUint56(), func() interface{} { return uint64((*m.GetValueUint56())) }, func() interface{} { return uint64((*m.GetValueUint64())) }).(uint64)))
+						}).(uint64)))
+					}).(uint64)))
+				}).(uint64)))
+			}).(uint64)))
+		}).(uint64)))
+	}).(uint64)
 }
 
 // NewBACnetTagPayloadUnsignedInteger factory function for BACnetTagPayloadUnsignedInteger
-func NewBACnetTagPayloadUnsignedInteger(valueUint8 *uint8, valueUint16 *uint16, valueUint24 *uint32, valueUint32 *uint32, actualLength uint32) *BACnetTagPayloadUnsignedInteger {
-	return &BACnetTagPayloadUnsignedInteger{ValueUint8: valueUint8, ValueUint16: valueUint16, ValueUint24: valueUint24, ValueUint32: valueUint32, ActualLength: actualLength}
+func NewBACnetTagPayloadUnsignedInteger(valueUint8 *uint8, valueUint16 *uint16, valueUint24 *uint32, valueUint32 *uint32, valueUint40 *uint64, valueUint48 *uint64, valueUint56 *uint64, valueUint64 *uint64, actualLength uint32) *BACnetTagPayloadUnsignedInteger {
+	return &BACnetTagPayloadUnsignedInteger{ValueUint8: valueUint8, ValueUint16: valueUint16, ValueUint24: valueUint24, ValueUint32: valueUint32, ValueUint40: valueUint40, ValueUint48: valueUint48, ValueUint56: valueUint56, ValueUint64: valueUint64, ActualLength: actualLength}
 }
 
 func CastBACnetTagPayloadUnsignedInteger(structType interface{}) *BACnetTagPayloadUnsignedInteger {
@@ -212,6 +374,34 @@ func (m *BACnetTagPayloadUnsignedInteger) GetLengthInBitsConditional(lastItem bo
 
 	// A virtual field doesn't have any in- or output.
 
+	// Optional Field (valueUint40)
+	if m.ValueUint40 != nil {
+		lengthInBits += 40
+	}
+
+	// A virtual field doesn't have any in- or output.
+
+	// Optional Field (valueUint48)
+	if m.ValueUint48 != nil {
+		lengthInBits += 48
+	}
+
+	// A virtual field doesn't have any in- or output.
+
+	// Optional Field (valueUint56)
+	if m.ValueUint56 != nil {
+		lengthInBits += 56
+	}
+
+	// A virtual field doesn't have any in- or output.
+
+	// Optional Field (valueUint64)
+	if m.ValueUint64 != nil {
+		lengthInBits += 64
+	}
+
+	// A virtual field doesn't have any in- or output.
+
 	return lengthInBits
 }
 
@@ -285,14 +475,80 @@ func BACnetTagPayloadUnsignedIntegerParse(readBuffer utils.ReadBuffer, actualLen
 	}
 
 	// Virtual field
-	_actualValue := utils.InlineIf(isUint8, func() interface{} { return uint32((*valueUint8)) }, func() interface{} {
-		return uint32(uint32(utils.InlineIf(isUint16, func() interface{} { return uint32((*valueUint16)) }, func() interface{} {
-			return uint32(uint32(utils.InlineIf(isUint24, func() interface{} { return uint32((*valueUint24)) }, func() interface{} {
-				return uint32(uint32(utils.InlineIf(isUint32, func() interface{} { return uint32((*valueUint32)) }, func() interface{} { return uint32(uint32(0)) }).(uint32)))
-			}).(uint32)))
-		}).(uint32)))
-	}).(uint32)
-	actualValue := uint32(_actualValue)
+	_isUint40 := bool((actualLength) == (5))
+	isUint40 := bool(_isUint40)
+	_ = isUint40
+
+	// Optional Field (valueUint40) (Can be skipped, if a given expression evaluates to false)
+	var valueUint40 *uint64 = nil
+	if isUint40 {
+		_val, _err := readBuffer.ReadUint64("valueUint40", 40)
+		if _err != nil {
+			return nil, errors.Wrap(_err, "Error parsing 'valueUint40' field")
+		}
+		valueUint40 = &_val
+	}
+
+	// Virtual field
+	_isUint48 := bool((actualLength) == (6))
+	isUint48 := bool(_isUint48)
+	_ = isUint48
+
+	// Optional Field (valueUint48) (Can be skipped, if a given expression evaluates to false)
+	var valueUint48 *uint64 = nil
+	if isUint48 {
+		_val, _err := readBuffer.ReadUint64("valueUint48", 48)
+		if _err != nil {
+			return nil, errors.Wrap(_err, "Error parsing 'valueUint48' field")
+		}
+		valueUint48 = &_val
+	}
+
+	// Virtual field
+	_isUint56 := bool((actualLength) == (7))
+	isUint56 := bool(_isUint56)
+	_ = isUint56
+
+	// Optional Field (valueUint56) (Can be skipped, if a given expression evaluates to false)
+	var valueUint56 *uint64 = nil
+	if isUint56 {
+		_val, _err := readBuffer.ReadUint64("valueUint56", 56)
+		if _err != nil {
+			return nil, errors.Wrap(_err, "Error parsing 'valueUint56' field")
+		}
+		valueUint56 = &_val
+	}
+
+	// Virtual field
+	_isUint64 := bool((actualLength) == (8))
+	isUint64 := bool(_isUint64)
+	_ = isUint64
+
+	// Optional Field (valueUint64) (Can be skipped, if a given expression evaluates to false)
+	var valueUint64 *uint64 = nil
+	if isUint64 {
+		_val, _err := readBuffer.ReadUint64("valueUint64", 64)
+		if _err != nil {
+			return nil, errors.Wrap(_err, "Error parsing 'valueUint64' field")
+		}
+		valueUint64 = &_val
+	}
+
+	// Virtual field
+	_actualValue := utils.InlineIf(isUint8, func() interface{} { return uint64((*valueUint8)) }, func() interface{} {
+		return uint64(uint64(utils.InlineIf(isUint16, func() interface{} { return uint64((*valueUint16)) }, func() interface{} {
+			return uint64(uint64(utils.InlineIf(isUint24, func() interface{} { return uint64((*valueUint24)) }, func() interface{} {
+				return uint64(uint64(utils.InlineIf(isUint32, func() interface{} { return uint64((*valueUint32)) }, func() interface{} {
+					return uint64(uint64(utils.InlineIf(isUint40, func() interface{} { return uint64((*valueUint40)) }, func() interface{} {
+						return uint64(uint64(utils.InlineIf(isUint48, func() interface{} { return uint64((*valueUint48)) }, func() interface{} {
+							return uint64(uint64(utils.InlineIf(isUint56, func() interface{} { return uint64((*valueUint56)) }, func() interface{} { return uint64((*valueUint64)) }).(uint64)))
+						}).(uint64)))
+					}).(uint64)))
+				}).(uint64)))
+			}).(uint64)))
+		}).(uint64)))
+	}).(uint64)
+	actualValue := uint64(_actualValue)
 	_ = actualValue
 
 	if closeErr := readBuffer.CloseContext("BACnetTagPayloadUnsignedInteger"); closeErr != nil {
@@ -300,7 +556,7 @@ func BACnetTagPayloadUnsignedIntegerParse(readBuffer utils.ReadBuffer, actualLen
 	}
 
 	// Create the instance
-	return NewBACnetTagPayloadUnsignedInteger(valueUint8, valueUint16, valueUint24, valueUint32, actualLength), nil
+	return NewBACnetTagPayloadUnsignedInteger(valueUint8, valueUint16, valueUint24, valueUint32, valueUint40, valueUint48, valueUint56, valueUint64, actualLength), nil
 }
 
 func (m *BACnetTagPayloadUnsignedInteger) Serialize(writeBuffer utils.WriteBuffer) error {
@@ -364,6 +620,62 @@ func (m *BACnetTagPayloadUnsignedInteger) Serialize(writeBuffer utils.WriteBuffe
 		}
 	}
 	// Virtual field
+	if _isUint40Err := writeBuffer.WriteVirtual("isUint40", m.GetIsUint40()); _isUint40Err != nil {
+		return errors.Wrap(_isUint40Err, "Error serializing 'isUint40' field")
+	}
+
+	// Optional Field (valueUint40) (Can be skipped, if the value is null)
+	var valueUint40 *uint64 = nil
+	if m.ValueUint40 != nil {
+		valueUint40 = m.ValueUint40
+		_valueUint40Err := writeBuffer.WriteUint64("valueUint40", 40, *(valueUint40))
+		if _valueUint40Err != nil {
+			return errors.Wrap(_valueUint40Err, "Error serializing 'valueUint40' field")
+		}
+	}
+	// Virtual field
+	if _isUint48Err := writeBuffer.WriteVirtual("isUint48", m.GetIsUint48()); _isUint48Err != nil {
+		return errors.Wrap(_isUint48Err, "Error serializing 'isUint48' field")
+	}
+
+	// Optional Field (valueUint48) (Can be skipped, if the value is null)
+	var valueUint48 *uint64 = nil
+	if m.ValueUint48 != nil {
+		valueUint48 = m.ValueUint48
+		_valueUint48Err := writeBuffer.WriteUint64("valueUint48", 48, *(valueUint48))
+		if _valueUint48Err != nil {
+			return errors.Wrap(_valueUint48Err, "Error serializing 'valueUint48' field")
+		}
+	}
+	// Virtual field
+	if _isUint56Err := writeBuffer.WriteVirtual("isUint56", m.GetIsUint56()); _isUint56Err != nil {
+		return errors.Wrap(_isUint56Err, "Error serializing 'isUint56' field")
+	}
+
+	// Optional Field (valueUint56) (Can be skipped, if the value is null)
+	var valueUint56 *uint64 = nil
+	if m.ValueUint56 != nil {
+		valueUint56 = m.ValueUint56
+		_valueUint56Err := writeBuffer.WriteUint64("valueUint56", 56, *(valueUint56))
+		if _valueUint56Err != nil {
+			return errors.Wrap(_valueUint56Err, "Error serializing 'valueUint56' field")
+		}
+	}
+	// Virtual field
+	if _isUint64Err := writeBuffer.WriteVirtual("isUint64", m.GetIsUint64()); _isUint64Err != nil {
+		return errors.Wrap(_isUint64Err, "Error serializing 'isUint64' field")
+	}
+
+	// Optional Field (valueUint64) (Can be skipped, if the value is null)
+	var valueUint64 *uint64 = nil
+	if m.ValueUint64 != nil {
+		valueUint64 = m.ValueUint64
+		_valueUint64Err := writeBuffer.WriteUint64("valueUint64", 64, *(valueUint64))
+		if _valueUint64Err != nil {
+			return errors.Wrap(_valueUint64Err, "Error serializing 'valueUint64' field")
+		}
+	}
+	// Virtual field
 	if _actualValueErr := writeBuffer.WriteVirtual("actualValue", m.GetActualValue()); _actualValueErr != nil {
 		return errors.Wrap(_actualValueErr, "Error serializing 'actualValue' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go
index 8763ded..5f0c4d9 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go
@@ -421,6 +421,10 @@ func CreateUnsignedPayload(value uint32) (uint32, *BACnetTagPayloadUnsignedInteg
 	var valueUint16 *uint16
 	var valueUint24 *uint32
 	var valueUint32 *uint32
+	var valueUint40 *uint64
+	var valueUint48 *uint64
+	var valueUint56 *uint64
+	var valueUint64 *uint64
 	switch {
 	case value < 0x100:
 		length = 1
@@ -438,7 +442,7 @@ func CreateUnsignedPayload(value uint32) (uint32, *BACnetTagPayloadUnsignedInteg
 		length = 4
 		valueUint32 = &value
 	}
-	payload := NewBACnetTagPayloadUnsignedInteger(valueUint8, valueUint16, valueUint24, valueUint32, length)
+	payload := NewBACnetTagPayloadUnsignedInteger(valueUint8, valueUint16, valueUint24, valueUint32, valueUint40, valueUint48, valueUint56, valueUint64, length)
 	return length, payload
 }
 
diff --git a/plc4j/drivers/bacnet/pom.xml b/plc4j/drivers/bacnet/pom.xml
index 3ba535e..ad06dda 100644
--- a/plc4j/drivers/bacnet/pom.xml
+++ b/plc4j/drivers/bacnet/pom.xml
@@ -50,6 +50,14 @@
           </execution>
         </executions>
       </plugin>
+        <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-compiler-plugin</artifactId>
+            <configuration>
+                <source>11</source>
+                <target>11</target>
+            </configuration>
+        </plugin>
     </plugins>
   </build>
 
diff --git a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/readwrite/utils/StaticHelper.java b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/readwrite/utils/StaticHelper.java
index 6248ef0..0824c48 100644
--- a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/readwrite/utils/StaticHelper.java
+++ b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/readwrite/utils/StaticHelper.java
@@ -453,6 +453,10 @@ public class StaticHelper {
         Integer valueUint16 = null;
         Long valueUint24 = null;
         Long valueUint32 = null;
+        BigInteger valueUint40 = null;
+        BigInteger valueUint48 = null;
+        BigInteger valueUint56 = null;
+        BigInteger valueUint64 = null;
         if (value < 0x100) {
             length = 1;
             valueUint8 = (short) value;
@@ -466,7 +470,7 @@ public class StaticHelper {
             length = 4;
             valueUint32 = value;
         }
-        BACnetTagPayloadUnsignedInteger payload = new BACnetTagPayloadUnsignedInteger(valueUint8, valueUint16, valueUint24, valueUint32, length);
+        BACnetTagPayloadUnsignedInteger payload = new BACnetTagPayloadUnsignedInteger(valueUint8, valueUint16, valueUint24, valueUint32, valueUint40, valueUint48, valueUint56, valueUint64, length);
         return Pair.of(length, payload);
     }
 
diff --git a/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/RandomPackagesTest.java b/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/RandomPackagesTest.java
index 3fd5ce2..6e485d4 100644
--- a/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/RandomPackagesTest.java
+++ b/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/RandomPackagesTest.java
@@ -118,9 +118,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(123, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(1476, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(1476, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
-                    assertEquals(260, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(260, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 6 - Unconfirmed-REQ i-Am device,123",
                 () -> {
@@ -130,9 +130,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(123, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(1476, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(1476, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
-                    assertEquals(260, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(260, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 7 - Unconfirmed-REQ i-Am device,18",
                 () -> {
@@ -142,9 +142,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(18, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(1476, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(1476, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
-                    assertEquals(18, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(18, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 8 - Unconfirmed-REQ i-Am device,18",
                 () -> {
@@ -154,9 +154,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(18, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(1476, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(1476, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
-                    assertEquals(18, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(18, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 9 - Unconfirmed-REQ i-Am device,2401",
                 () -> {
@@ -166,9 +166,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(2401, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
-                    assertEquals(24, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(24, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 10 - Unconfirmed-REQ i-Am device,2401",
                 () -> {
@@ -178,9 +178,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(2401, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
-                    assertEquals(24, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(24, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 11 - Unconfirmed-REQ i-Am device,86114",
                 () -> {
@@ -190,9 +190,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(86114, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(50, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(50, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
-                    assertEquals(260, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(260, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 12 - Unconfirmed-REQ i-Am device,86114",
                 () -> {
@@ -202,9 +202,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(86114, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(50, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(50, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
-                    assertEquals(260, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(260, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 13 - Unconfirmed-REQ i-Am device,884456",
                 () -> {
@@ -214,9 +214,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(884456, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
-                    assertEquals(86, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(86, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 14 - Unconfirmed-REQ i-Am device,884456",
                 () -> {
@@ -226,9 +226,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(884456, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
-                    assertEquals(86, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(86, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 })
         );
     }
@@ -366,8 +366,8 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequest serviceRequest = apduUnconfirmedRequest.getServiceRequest();
                     assertNotNull(serviceRequest);
                     BACnetUnconfirmedServiceRequestWhoIs baCnetUnconfirmedServiceRequestWhoIs = (BACnetUnconfirmedServiceRequestWhoIs) serviceRequest;
-                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue());
-                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue());
+                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue().longValue());
+                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 2 - Unconfirmed-REQ who-Is 12345 12345",
                 () -> {
@@ -378,8 +378,8 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequest serviceRequest = apduUnconfirmedRequest.getServiceRequest();
                     assertNotNull(serviceRequest);
                     BACnetUnconfirmedServiceRequestWhoIs baCnetUnconfirmedServiceRequestWhoIs = (BACnetUnconfirmedServiceRequestWhoIs) serviceRequest;
-                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue());
-                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue());
+                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue().longValue());
+                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 3 - Unconfirmed-REQ i-Am device,12345",
                 () -> {
@@ -392,10 +392,10 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) serviceRequest;
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(12345, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     // TODO: change to enum
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
-                    assertEquals(260L, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(260L, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 4 - Unconfirmed-REQ who-Is 12345 12345",
                 () -> {
@@ -406,8 +406,8 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequest serviceRequest = apduUnconfirmedRequest.getServiceRequest();
                     assertNotNull(serviceRequest);
                     BACnetUnconfirmedServiceRequestWhoIs baCnetUnconfirmedServiceRequestWhoIs = (BACnetUnconfirmedServiceRequestWhoIs) serviceRequest;
-                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue());
-                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue());
+                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue().longValue());
+                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 5 - Unconfirmed-REQ who-Is 12345 12345",
                 () -> {
@@ -418,8 +418,8 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequest serviceRequest = apduUnconfirmedRequest.getServiceRequest();
                     assertNotNull(serviceRequest);
                     BACnetUnconfirmedServiceRequestWhoIs baCnetUnconfirmedServiceRequestWhoIs = (BACnetUnconfirmedServiceRequestWhoIs) serviceRequest;
-                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue());
-                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue());
+                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue().longValue());
+                    assertEquals(12345L, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 6 - Unconfirmed-REQ i-Am device,12345",
                 () -> {
@@ -432,10 +432,10 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) serviceRequest;
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(12345, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     // TODO: change to enum
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
-                    assertEquals(260L, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(260L, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 7 - Confirmed-REQ readProperty[ 1] analog-output,0 priority-array",
                 () -> {
@@ -597,7 +597,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagReal baCnetApplicationTagReal = (BACnetApplicationTagReal) ((BACnetConstructedDataUnspecified) baCnetConfirmedServiceRequestWriteProperty.getPropertyValue()).getData().get(0).getApplicationTag();
                     assertEquals(123.449997f, baCnetApplicationTagReal.getPayload().getValue());
                     BACnetContextTagUnsignedInteger priority = baCnetConfirmedServiceRequestWriteProperty.getPriority();
-                    assertEquals(10, priority.getPayload().getActualValue());
+                    assertEquals(10, priority.getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 88 - Error writeProperty[ 1]",
                 () -> {
@@ -631,7 +631,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagNull baCnetApplicationTagNull = (BACnetApplicationTagNull) ((BACnetConstructedDataUnspecified) baCnetConfirmedServiceRequestWriteProperty.getPropertyValue()).getData().get(0).getApplicationTag();
                     assertNotNull(baCnetApplicationTagNull);
                     BACnetContextTagUnsignedInteger priority = baCnetConfirmedServiceRequestWriteProperty.getPriority();
-                    assertEquals(1, priority.getPayload().getActualValue());
+                    assertEquals(1, priority.getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 144 - Simple-ACK writeProperty[ 1]", () -> {
                 BVLC bvlc = pcapEvaluator.nextBVLC();
@@ -699,13 +699,13 @@ public class RandomPackagesTest {
                     assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getEventObjectIdentifier().getInstanceNumber());
                     {
                         BACnetTimeStampSequence timestamp = (BACnetTimeStampSequence) baCnetConfirmedServiceRequestConfirmedEventNotification.getTimestamp();
-                        assertEquals(2, timestamp.getSequenceNumber().getPayload().getActualValue());
+                        assertEquals(2, timestamp.getSequenceNumber().getPayload().getActualValue().longValue());
                     }
                     {
-                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getNotificationClass().getPayload().getActualValue());
+                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getNotificationClass().getPayload().getActualValue().longValue());
                     }
                     {
-                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getPriority().getPayload().getActualValue());
+                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getPriority().getPayload().getActualValue().longValue());
                     }
                     {
                         assertEquals(BACnetEventType.UNSIGNED_RANGE, baCnetConfirmedServiceRequestConfirmedEventNotification.getEventType().getEventType());
@@ -727,12 +727,12 @@ public class RandomPackagesTest {
                     }
                     {
                         BACnetNotificationParametersUnsignedRange baCnetNotificationParametersUnsignedRange = (BACnetNotificationParametersUnsignedRange) baCnetConfirmedServiceRequestConfirmedEventNotification.getEventValues();
-                        assertEquals(50, baCnetNotificationParametersUnsignedRange.getSequenceNumber().getPayload().getActualValue());
+                        assertEquals(50, baCnetNotificationParametersUnsignedRange.getSequenceNumber().getPayload().getActualValue().longValue());
                         assertTrue(baCnetNotificationParametersUnsignedRange.getStatusFlags().getInAlarm());
                         assertFalse(baCnetNotificationParametersUnsignedRange.getStatusFlags().getFault());
                         assertFalse(baCnetNotificationParametersUnsignedRange.getStatusFlags().getOverriden());
                         assertFalse(baCnetNotificationParametersUnsignedRange.getStatusFlags().getOutOfService());
-                        assertEquals(40, baCnetNotificationParametersUnsignedRange.getExceededLimit().getPayload().getActualValue());
+                        assertEquals(40, baCnetNotificationParametersUnsignedRange.getExceededLimit().getPayload().getActualValue().longValue());
                     }
                 }),
             DynamicTest.dynamicTest("No. 2 - Simple-ACK      confirmedEventNotification[119]",
@@ -760,13 +760,13 @@ public class RandomPackagesTest {
                     assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getEventObjectIdentifier().getInstanceNumber());
                     {
                         BACnetTimeStampSequence timestamp = (BACnetTimeStampSequence) baCnetConfirmedServiceRequestConfirmedEventNotification.getTimestamp();
-                        assertEquals(2, timestamp.getSequenceNumber().getPayload().getActualValue());
+                        assertEquals(2, timestamp.getSequenceNumber().getPayload().getActualValue().longValue());
                     }
                     {
-                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getNotificationClass().getPayload().getActualValue());
+                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getNotificationClass().getPayload().getActualValue().longValue());
                     }
                     {
-                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getPriority().getPayload().getActualValue());
+                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getPriority().getPayload().getActualValue().longValue());
                     }
                     {
                         assertEquals(BACnetEventType.EXTENDED, baCnetConfirmedServiceRequestConfirmedEventNotification.getEventType().getEventType());
@@ -788,8 +788,8 @@ public class RandomPackagesTest {
                     }
                     {
                         BACnetNotificationParametersExtended baCnetNotificationParametersExtended = (BACnetNotificationParametersExtended) baCnetConfirmedServiceRequestConfirmedEventNotification.getEventValues();
-                        assertEquals(24, baCnetNotificationParametersExtended.getVendorId().getPayload().getActualValue());
-                        assertEquals(33, baCnetNotificationParametersExtended.getExtendedEventType().getPayload().getActualValue());
+                        assertEquals(24, baCnetNotificationParametersExtended.getVendorId().getPayload().getActualValue().longValue());
+                        assertEquals(33, baCnetNotificationParametersExtended.getExtendedEventType().getPayload().getActualValue().longValue());
                     }
                 }),
             DynamicTest.dynamicTest("No. 4 - Simple-ACK      confirmedEventNotification[120]",
@@ -808,8 +808,8 @@ public class RandomPackagesTest {
                     NPDU npdu = ((BVLCOriginalBroadcastNPDU) bvlc).getNpdu();
                     APDUUnconfirmedRequest apduUnconfirmedRequest = (APDUUnconfirmedRequest) npdu.getApdu();
                     BACnetUnconfirmedServiceRequestWhoIs baCnetUnconfirmedServiceRequestWhoIs = (BACnetUnconfirmedServiceRequestWhoIs) apduUnconfirmedRequest.getServiceRequest();
-                    assertEquals(140, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue());
-                    assertEquals(140, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue());
+                    assertEquals(140, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue().longValue());
+                    assertEquals(140, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 6 - Unconfirmed-REQ who-Is 140 140",
                 () -> {
@@ -818,8 +818,8 @@ public class RandomPackagesTest {
                     NPDU npdu = ((BVLCOriginalBroadcastNPDU) bvlc).getNpdu();
                     APDUUnconfirmedRequest apduUnconfirmedRequest = (APDUUnconfirmedRequest) npdu.getApdu();
                     BACnetUnconfirmedServiceRequestWhoIs baCnetUnconfirmedServiceRequestWhoIs = (BACnetUnconfirmedServiceRequestWhoIs) apduUnconfirmedRequest.getServiceRequest();
-                    assertEquals(140, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue());
-                    assertEquals(140, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue());
+                    assertEquals(140, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue().longValue());
+                    assertEquals(140, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 7 - Unconfirmed-REQ who-Is 871 871",
                 () -> {
@@ -828,8 +828,8 @@ public class RandomPackagesTest {
                     NPDU npdu = ((BVLCOriginalBroadcastNPDU) bvlc).getNpdu();
                     APDUUnconfirmedRequest apduUnconfirmedRequest = (APDUUnconfirmedRequest) npdu.getApdu();
                     BACnetUnconfirmedServiceRequestWhoIs baCnetUnconfirmedServiceRequestWhoIs = (BACnetUnconfirmedServiceRequestWhoIs) apduUnconfirmedRequest.getServiceRequest();
-                    assertEquals(871, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue());
-                    assertEquals(871, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue());
+                    assertEquals(871, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue().longValue());
+                    assertEquals(871, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 8 - Unconfirmed-REQ who-Is 871 871",
                 () -> {
@@ -838,8 +838,8 @@ public class RandomPackagesTest {
                     NPDU npdu = ((BVLCOriginalBroadcastNPDU) bvlc).getNpdu();
                     APDUUnconfirmedRequest apduUnconfirmedRequest = (APDUUnconfirmedRequest) npdu.getApdu();
                     BACnetUnconfirmedServiceRequestWhoIs baCnetUnconfirmedServiceRequestWhoIs = (BACnetUnconfirmedServiceRequestWhoIs) apduUnconfirmedRequest.getServiceRequest();
-                    assertEquals(871, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue());
-                    assertEquals(871, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue());
+                    assertEquals(871, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue().longValue());
+                    assertEquals(871, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeHighLimit().getPayload().getActualValue().longValue());
                 })
         );
     }
@@ -877,10 +877,10 @@ public class RandomPackagesTest {
                         assertEquals(0, baCnetTagPayloadTime.getFractional());
                     }
                     {
-                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getNotificationClass().getPayload().getActualValue());
+                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getNotificationClass().getPayload().getActualValue().longValue());
                     }
                     {
-                        assertEquals(15, baCnetConfirmedServiceRequestConfirmedEventNotification.getPriority().getPayload().getActualValue());
+                        assertEquals(15, baCnetConfirmedServiceRequestConfirmedEventNotification.getPriority().getPayload().getActualValue().longValue());
                     }
                     {
                         assertEquals(BACnetEventType.BUFFER_READY, baCnetConfirmedServiceRequestConfirmedEventNotification.getEventType().getEventType());
@@ -902,8 +902,8 @@ public class RandomPackagesTest {
                         assertEquals(BACnetObjectType.TREND_LOG, baCnetNotificationParametersBufferReady.getBufferProperty().getObjectIdentifier().getObjectType());
                         assertEquals(BACnetPropertyIdentifier.LOG_BUFFER, baCnetNotificationParametersBufferReady.getBufferProperty().getPropertyIdentifier().getPropertyIdentifier());
                         assertEquals(BACnetObjectType.DEVICE, baCnetNotificationParametersBufferReady.getBufferProperty().getDeviceIdentifier().getObjectType());
-                        assertEquals(1640, baCnetNotificationParametersBufferReady.getPreviousNotification().getPayload().getActualValue());
-                        assertEquals(1653, baCnetNotificationParametersBufferReady.getCurrentNotification().getPayload().getActualValue());
+                        assertEquals(1640, baCnetNotificationParametersBufferReady.getPreviousNotification().getPayload().getActualValue().longValue());
+                        assertEquals(1653, baCnetNotificationParametersBufferReady.getCurrentNotification().getPayload().getActualValue().longValue());
                     }
                 })
         );
@@ -927,7 +927,7 @@ public class RandomPackagesTest {
                     assertEquals(BACnetObjectType.BINARY_INPUT, baCnetConfirmedServiceRequestSubscribeCOV.getMonitoredObjectIdentifier().getObjectType());
                     assertEquals(0, baCnetConfirmedServiceRequestSubscribeCOV.getMonitoredObjectIdentifier().getInstanceNumber());
                     assertTrue(baCnetConfirmedServiceRequestSubscribeCOV.getIssueConfirmed().getPayload().getIsFalse());
-                    assertEquals(10, baCnetConfirmedServiceRequestSubscribeCOV.getLifetimeInSeconds().getPayload().getActualValue() / 60);
+                    assertEquals(10, baCnetConfirmedServiceRequestSubscribeCOV.getLifetimeInSeconds().getPayload().getActualValue().longValue() / 60);
                 }),
             DynamicTest.dynamicTest("No. 2 - Simple-ACK      subscribeCOV[ 10]",
                 () -> {
@@ -951,7 +951,7 @@ public class RandomPackagesTest {
                     assertEquals((long) 12345, baCnetUnconfirmedServiceRequestUnconfirmedCOVNotification.getInitiatingDeviceIdentifier().getInstanceNumber());
                     assertEquals(BACnetObjectType.BINARY_INPUT, baCnetUnconfirmedServiceRequestUnconfirmedCOVNotification.getMonitoredObjectIdentifier().getObjectType());
                     assertEquals(0, baCnetUnconfirmedServiceRequestUnconfirmedCOVNotification.getMonitoredObjectIdentifier().getInstanceNumber());
-                    assertEquals(9, baCnetUnconfirmedServiceRequestUnconfirmedCOVNotification.getLifetimeInSeconds().getPayload().getActualValue() / 60);
+                    assertEquals(9, baCnetUnconfirmedServiceRequestUnconfirmedCOVNotification.getLifetimeInSeconds().getPayload().getActualValue().longValue() / 60);
                     {
                         BACnetContextTagPropertyIdentifier baCnetContextTagPropertyIdentifier = baCnetUnconfirmedServiceRequestUnconfirmedCOVNotification.getListOfValues().getData().get(0).getPropertyIdentifier();
                         assertEquals(BACnetPropertyIdentifier.PRESENT_VALUE, baCnetContextTagPropertyIdentifier.getPropertyIdentifier());
@@ -996,13 +996,13 @@ public class RandomPackagesTest {
                     assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getEventObjectIdentifier().getInstanceNumber());
                     {
                         BACnetTimeStampSequence timestamp = (BACnetTimeStampSequence) baCnetConfirmedServiceRequestConfirmedEventNotification.getTimestamp();
-                        assertEquals(1, timestamp.getSequenceNumber().getPayload().getActualValue());
+                        assertEquals(1, timestamp.getSequenceNumber().getPayload().getActualValue().longValue());
                     }
                     {
-                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getNotificationClass().getPayload().getActualValue());
+                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getNotificationClass().getPayload().getActualValue().longValue());
                     }
                     {
-                        assertEquals(111, baCnetConfirmedServiceRequestConfirmedEventNotification.getPriority().getPayload().getActualValue());
+                        assertEquals(111, baCnetConfirmedServiceRequestConfirmedEventNotification.getPriority().getPayload().getActualValue().longValue());
                     }
                     {
                         assertEquals(BACnetEventType.CHANGE_OF_STATE, baCnetConfirmedServiceRequestConfirmedEventNotification.getEventType().getEventType());
@@ -1103,10 +1103,10 @@ public class RandomPackagesTest {
                         assertEquals(0, timestamp.getDateTimeValue().getTimeValue().getPayload().getFractional());
                     }
                     {
-                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getNotificationClass().getPayload().getActualValue());
+                        assertEquals(1, baCnetConfirmedServiceRequestConfirmedEventNotification.getNotificationClass().getPayload().getActualValue().longValue());
                     }
                     {
-                        assertEquals(200, baCnetConfirmedServiceRequestConfirmedEventNotification.getPriority().getPayload().getActualValue());
+                        assertEquals(200, baCnetConfirmedServiceRequestConfirmedEventNotification.getPriority().getPayload().getActualValue().longValue());
                     }
                     {
                         assertEquals(BACnetEventType.OUT_OF_RANGE, baCnetConfirmedServiceRequestConfirmedEventNotification.getEventType().getEventType());
@@ -1189,7 +1189,7 @@ public class RandomPackagesTest {
                             BACnetPropertyValue baCnetPropertyValue = baCnetNotificationParametersComplexEventType.getListOfValues().getData().get(9);
                             assertEquals(BACnetPropertyIdentifier.VENDOR_IDENTIFIER, baCnetPropertyValue.getPropertyIdentifier().getPropertyIdentifier());
                             BACnetApplicationTagUnsignedInteger baCnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) ((BACnetConstructedDataUnspecified) baCnetPropertyValue.getPropertyValue().getConstructedData()).getData().get(0).getApplicationTag();
-                            assertEquals(5, baCnetApplicationTagUnsignedInteger.getPayload().getActualValue());
+                            assertEquals(5, baCnetApplicationTagUnsignedInteger.getPayload().getActualValue().longValue());
                         }
                     }
                 })
@@ -1622,7 +1622,7 @@ public class RandomPackagesTest {
                     assertThat(serviceRequest.getPropertyIdentifier())
                         .extracting(BACnetContextTagPropertyIdentifier::getPropertyIdentifier)
                         .isEqualTo(BACnetPropertyIdentifier.EXCEPTION_SCHEDULE);
-                    assertThat(serviceRequest.getArrayIndex()).extracting("payload").extracting("actualValue").isEqualTo(0L);
+                    assertThat(serviceRequest.getArrayIndex()).extracting("payload").extracting("actualValue").isEqualTo(BigInteger.ZERO);
                 }),
             DynamicTest.dynamicTest("No. 2 - Complex-ACK     readProperty[ 74] schedule,1 exception-schedule",
                 () -> {
@@ -1638,7 +1638,7 @@ public class RandomPackagesTest {
                         .contains(BACnetObjectType.SCHEDULE, 1L);
                     assertEquals(BACnetPropertyIdentifier.EXCEPTION_SCHEDULE, baCnetServiceAckReadProperty.getPropertyIdentifier().getPropertyIdentifier());
                     List<BACnetConstructedDataElement> data = ((BACnetConstructedDataUnspecified) baCnetServiceAckReadProperty.getValues()).getData();
-                    assertThat(data.get(0).getApplicationTag()).extracting("payload").extracting("actualValue").isEqualTo(0L);
+                    assertThat(data.get(0).getApplicationTag()).extracting("payload").extracting("actualValue").isEqualTo(BigInteger.ZERO);
                 })
         );
     }
@@ -1690,7 +1690,7 @@ public class RandomPackagesTest {
                             .extracting(BACnetConfirmedServiceRequestReadProperty::getArrayIndex)
                             .extracting(BACnetContextTagUnsignedInteger::getPayload)
                             .extracting(BACnetTagPayloadUnsignedInteger::getActualValue)
-                            .isEqualTo(1L);
+                            .isEqualTo(BigInteger.ONE);
                     })),
             DynamicTest.dynamicTest("No. 2 - Complex-ACK     readProperty[107] command,1 action binary-value,0 present-value device,0 analog-value,1 present-value binary-value,2 present-value device,0 analog-value,3 present-value binary-value,4 present-value device,0 analog-value,5 present-value binary-value,6 present-value device,0 analog-value,7 present-value binary-value,8 present-value device,0 analog-value,9 present-value",
                 () -> assertThat(pcapEvaluator.nextBVLC())
@@ -2382,7 +2382,7 @@ public class RandomPackagesTest {
                                     .extracting(BACnetConstructedDataEventTimestamps::getToFault)
                                     .extracting(BACnetContextTagUnsignedInteger::getPayload)
                                     .extracting(BACnetTagPayloadUnsignedInteger::getActualValue)
-                                    .isEqualTo(0L)
+                                    .isEqualTo(BigInteger.ZERO)
                             )
                             .satisfies(baCnetConstructedDataEventTimestamps ->
                                 assertThat(baCnetConstructedDataEventTimestamps)
@@ -2815,7 +2815,7 @@ public class RandomPackagesTest {
                                     .asInstanceOf(InstanceOfAssertFactories.type(BACnetApplicationTagUnsignedInteger.class))
                                     .extracting(BACnetApplicationTagUnsignedInteger::getPayload)
                                     .extracting(BACnetTagPayloadUnsignedInteger::getActualValue)
-                                    .isEqualTo(2048L);
+                                    .isEqualTo(BigInteger.valueOf(2048L));
                             });
                     })),
             DynamicTest.dynamicTest("No. 4 - Complex-ACK     atomicReadFile[195]  (Message fragment 0)",
@@ -2910,9 +2910,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(111, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(50, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(50, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
-                    assertEquals(42, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(42, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 2 - Unconfirmed-REQ who-Is",
                 () -> {
@@ -2931,9 +2931,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(111, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(50, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(50, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertFalse(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedBoth());
-                    assertEquals(42, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(42, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 8 - Unconfirmed-REQ i-Am device,201",
                 () -> {
@@ -2944,9 +2944,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(201, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(1476, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(1476, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedBoth());
-                    assertEquals(18, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(18, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 8 - Unconfirmed-REQ i-Am device,61",
                 () -> {
@@ -2957,9 +2957,9 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(61, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedBoth());
-                    assertEquals(42, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(42, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 11 - Confirmed-REQ   readProperty[ 29] device,201 object-identifier",
                 () -> {
@@ -3240,7 +3240,7 @@ public class RandomPackagesTest {
                     assertEquals(BACnetPropertyIdentifier.PROTOCOL_VERSION, baCnetServiceAckReadProperty.getPropertyIdentifier().getPropertyIdentifier());
                     BACnetApplicationTag value = ((BACnetConstructedDataUnspecified) baCnetServiceAckReadProperty.getValues()).getData().get(0).getApplicationTag();
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
-                    assertEquals(1, BACnetApplicationTagUnsignedInteger.getPayload().getActualValue());
+                    assertEquals(1, BACnetApplicationTagUnsignedInteger.getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 31 - Confirmed-REQ   readProperty[ 39] device,201 protocol-conformance-class",
                 () -> {
@@ -3269,7 +3269,7 @@ public class RandomPackagesTest {
                     assertEquals(BACnetPropertyIdentifier.PROTOCOL_CONFORMANCE_CLASS, baCnetServiceAckReadProperty.getPropertyIdentifier().getPropertyIdentifier());
                     BACnetApplicationTag value = ((BACnetConstructedDataUnspecified) baCnetServiceAckReadProperty.getValues()).getData().get(0).getApplicationTag();
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
-                    assertEquals(3, BACnetApplicationTagUnsignedInteger.getPayload().getActualValue());
+                    assertEquals(3, BACnetApplicationTagUnsignedInteger.getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 33 - Confirmed-REQ   readProperty[ 40] device,201 protocol-services-supported",
                 () -> {
@@ -3356,7 +3356,7 @@ public class RandomPackagesTest {
                     assertEquals(BACnetPropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED, baCnetServiceAckReadProperty.getPropertyIdentifier().getPropertyIdentifier());
                     BACnetApplicationTag value = ((BACnetConstructedDataUnspecified) baCnetServiceAckReadProperty.getValues()).getData().get(0).getApplicationTag();
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
-                    assertEquals(1476, BACnetApplicationTagUnsignedInteger.getPayload().getActualValue());
+                    assertEquals(1476, BACnetApplicationTagUnsignedInteger.getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 39 - Confirmed-REQ   readProperty[ 43] device,201 segmentation-supported",
                 () -> {
@@ -3477,7 +3477,7 @@ public class RandomPackagesTest {
                     assertEquals(BACnetPropertyIdentifier.UTC_OFFSET, baCnetServiceAckReadProperty.getPropertyIdentifier().getPropertyIdentifier());
                     BACnetApplicationTag value = ((BACnetConstructedDataUnspecified) baCnetServiceAckReadProperty.getValues()).getData().get(0).getApplicationTag();
                     BACnetApplicationTagSignedInteger BACnetApplicationTagSignedInteger = (BACnetApplicationTagSignedInteger) value;
-                    assertEquals(BigInteger.ZERO, BACnetApplicationTagSignedInteger.getPayload().getActualValue());
+                    assertEquals(0, BACnetApplicationTagSignedInteger.getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 47 - Confirmed-REQ   readProperty[ 47] device,201 daylights-savings-status",
                 () -> {
@@ -4040,7 +4040,7 @@ public class RandomPackagesTest {
                     assertEquals(BACnetPropertyIdentifier.PROTOCOL_VERSION, baCnetServiceAckReadProperty.getPropertyIdentifier().getPropertyIdentifier());
                     BACnetApplicationTag value = ((BACnetConstructedDataUnspecified) baCnetServiceAckReadProperty.getValues()).getData().get(0).getApplicationTag();
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
-                    assertEquals(1, BACnetApplicationTagUnsignedInteger.getPayload().getActualValue());
+                    assertEquals(1, BACnetApplicationTagUnsignedInteger.getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 87 - Confirmed-REQ   readProperty[ 67] device,61 protocol-conformance-class",
                 () -> {
@@ -4069,7 +4069,7 @@ public class RandomPackagesTest {
                     assertEquals(BACnetPropertyIdentifier.PROTOCOL_CONFORMANCE_CLASS, baCnetServiceAckReadProperty.getPropertyIdentifier().getPropertyIdentifier());
                     BACnetApplicationTag value = ((BACnetConstructedDataUnspecified) baCnetServiceAckReadProperty.getValues()).getData().get(0).getApplicationTag();
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
-                    assertEquals(2, BACnetApplicationTagUnsignedInteger.getPayload().getActualValue());
+                    assertEquals(2, BACnetApplicationTagUnsignedInteger.getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 89 - Confirmed-REQ   readProperty[ 68] device,61 protocol-services-supported",
                 () -> {
@@ -4156,7 +4156,7 @@ public class RandomPackagesTest {
                     assertEquals(BACnetPropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED, baCnetServiceAckReadProperty.getPropertyIdentifier().getPropertyIdentifier());
                     BACnetApplicationTag value = ((BACnetConstructedDataUnspecified) baCnetServiceAckReadProperty.getValues()).getData().get(0).getApplicationTag();
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
-                    assertEquals(480, BACnetApplicationTagUnsignedInteger.getPayload().getActualValue());
+                    assertEquals(480, BACnetApplicationTagUnsignedInteger.getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 95 - Confirmed-REQ   readProperty[ 71] device,61 segmentation-supported",
                 () -> {
@@ -4842,8 +4842,8 @@ public class RandomPackagesTest {
                     BVLCOriginalBroadcastNPDU bvlcOriginalBroadcastNPDU = (BVLCOriginalBroadcastNPDU) bvlc;
                     APDUUnconfirmedRequest apduUnconfirmedRequest = (APDUUnconfirmedRequest) bvlcOriginalBroadcastNPDU.getNpdu().getApdu();
                     BACnetUnconfirmedServiceRequestWhoIs baCnetUnconfirmedServiceRequestWhoIs = (BACnetUnconfirmedServiceRequestWhoIs) apduUnconfirmedRequest.getServiceRequest();
-                    assertEquals(133, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue());
-                    assertEquals(133, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue());
+                    assertEquals(133, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue().longValue());
+                    assertEquals(133, baCnetUnconfirmedServiceRequestWhoIs.getDeviceInstanceRangeLowLimit().getPayload().getActualValue().longValue());
                 }),
             DynamicTest.dynamicTest("No. 2 - Unconfirmed-REQ who-Has device,133",
                 () -> {
@@ -4852,8 +4852,8 @@ public class RandomPackagesTest {
                     BVLCOriginalBroadcastNPDU bvlcOriginalBroadcastNPDU = (BVLCOriginalBroadcastNPDU) bvlc;
                     APDUUnconfirmedRequest apduUnconfirmedRequest = (APDUUnconfirmedRequest) bvlcOriginalBroadcastNPDU.getNpdu().getApdu();
                     BACnetUnconfirmedServiceRequestWhoHas baCnetUnconfirmedServiceRequestWhoHas = (BACnetUnconfirmedServiceRequestWhoHas) apduUnconfirmedRequest.getServiceRequest();
-                    assertEquals(133, baCnetUnconfirmedServiceRequestWhoHas.getDeviceInstanceRangeLowLimit().getPayload().getActualValue());
-                    assertEquals(133, baCnetUnconfirmedServiceRequestWhoHas.getDeviceInstanceRangeLowLimit().getPayload().getActualValue());
+                    assertEquals(133, baCnetUnconfirmedServiceRequestWhoHas.getDeviceInstanceRangeLowLimit().getPayload().getActualValue().longValue());
+                    assertEquals(133, baCnetUnconfirmedServiceRequestWhoHas.getDeviceInstanceRangeLowLimit().getPayload().getActualValue().longValue());
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestWhoHas.getObjectIdentifier().getObjectType());
                     assertEquals(133, baCnetUnconfirmedServiceRequestWhoHas.getObjectIdentifier().getInstanceNumber());
                 }),
@@ -4868,10 +4868,10 @@ public class RandomPackagesTest {
                     BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
                     assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
                     assertEquals(133, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
-                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue());
+                    assertEquals(480, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getPayload().getActualValue().longValue());
                     // TODO: we should use a enum here
                     assertTrue(baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedBoth());
-                    assertEquals(42, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue());
+                    assertEquals(42, baCnetUnconfirmedServiceRequestIAm.getVendorId().getPayload().getActualValue().longValue());
                 }),
             DynamicContainer.dynamicContainer("Confirmed-REQ atomicWriteFile 1-30", () -> {
                 Collection<DynamicNode> nodes = new LinkedList<>();
diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
index ac85676..1f5992f 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
@@ -1112,14 +1112,12 @@
         ['0x2' BACnetApplicationTagUnsignedInteger(BACnetTagHeader header)
             [simple BACnetTagPayloadUnsignedInteger('header.actualLength')
                                 payload                                                                                 ]
-            // TODO: doesn't work in java as source value is already BigInteger and there is a BigInteger.valueOf() which doesn't like Big integers
-            //[virtual    uint 64 actualValue 'payload.actualValue'                                                     ]
+            [virtual    uint 64 actualValue   'payload.actualValue'                                                     ]
         ]
         ['0x3' BACnetApplicationTagSignedInteger(BACnetTagHeader header)
             [simple BACnetTagPayloadSignedInteger('header.actualLength')
                                 payload                                                                                 ]
-            // TODO: doesn't work in java as source value is already BigInteger and there is a BigInteger.valueOf() which doesn't like Big integers
-            //[virtual    uint 64    actualValue 'payload.actualValue'                                                  ]
+            [virtual    uint 64    actualValue   'payload.actualValue'                                                  ]
         ]
         ['0x4' BACnetApplicationTagReal
             [simple BACnetTagPayloadReal
@@ -1193,15 +1191,13 @@
             [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag"                ]
             [simple BACnetTagPayloadUnsignedInteger('header.actualLength')
                                 payload                                                                                 ]
-            // TODO: doesn't work in java as source value is already BigInteger and there is a BigInteger.valueOf() which doesn't like Big integers
-            //[virtual    uint 64 actualValue 'payload.actualValue'                                                     ]
+            [virtual    uint 64 actualValue 'payload.actualValue'                                                     ]
         ]
         ['SIGNED_INTEGER' BACnetContextTagSignedInteger(bit isNotOpeningOrClosingTag, BACnetTagHeader header)
             [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag"                ]
             [simple BACnetTagPayloadSignedInteger('header.actualLength')
                                 payload                                                                                 ]
-            // TODO: doesn't work in java as source value is already BigInteger and there is a BigInteger.valueOf() which doesn't like Big integers
-            //[virtual    uint 64     actualValue 'payload.actualValue'                                                 ]
+            [virtual    uint 64     actualValue 'payload.actualValue'                                                 ]
         ]
         ['REAL' BACnetContextTagReal(bit isNotOpeningOrClosingTag)
             [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag"]
@@ -1332,41 +1328,43 @@
 ]
 
 [type BACnetTagPayloadUnsignedInteger(uint 32 actualLength)
-    [virtual    bit     isUint8     'actualLength == 1' ]
-    [optional   uint  8 valueUint8  'isUint8'           ]
-    [virtual    bit     isUint16    'actualLength == 2' ]
-    [optional   uint 16 valueUint16 'isUint16'          ]
-    [virtual    bit     isUint24    'actualLength == 3' ]
-    [optional   uint 24 valueUint24 'isUint24'          ]
-    [virtual    bit     isUint32    'actualLength == 4' ]
-    [optional   uint 32 valueUint32 'isUint32'          ]
-    // TODO: we only go up to uint32 till we have the BigInteger stuff in java solved
-    [virtual    uint 32 actualValue 'isUint8?valueUint8:(isUint16?valueUint16:(isUint24?valueUint24:(isUint32?valueUint32:0)))']
-    /*
-    [virtual    bit     isUint64    'actualLength == 4' ]
-    [optional   uint 64 valueUint64 'isUint64'          ]
-    [virtual    uint 64 actualValue 'isUint8?valueUint8:(isUint16?valueUint16:(isUint32?valueUint32:(isUint64?valueUint64:0)))']
-    */
+    [virtual    bit         isUint8         'actualLength == 1'  ]
+    [optional   uint  8     valueUint8      'isUint8'            ]
+    [virtual    bit         isUint16        'actualLength == 2'  ]
+    [optional   uint 16     valueUint16     'isUint16'           ]
+    [virtual    bit         isUint24        'actualLength == 3'  ]
+    [optional   uint 24     valueUint24     'isUint24'           ]
+    [virtual    bit         isUint32        'actualLength == 4'  ]
+    [optional   uint 32     valueUint32     'isUint32'           ]
+    [virtual    bit         isUint40        'actualLength == 5'  ]
+    [optional   uint 40     valueUint40     'isUint40'           ]
+    [virtual    bit         isUint48        'actualLength == 6'  ]
+    [optional   uint 48     valueUint48     'isUint48'           ]
+    [virtual    bit         isUint56        'actualLength == 7'  ]
+    [optional   uint 56     valueUint56     'isUint56'           ]
+    [virtual    bit         isUint64        'actualLength == 8'  ]
+    [optional   uint 64     valueUint64     'isUint64'           ]
+    [virtual    uint 64     actualValue     'isUint8?valueUint8:(isUint16?valueUint16:(isUint24?valueUint24:(isUint32?valueUint32:(isUint40?valueUint40:(isUint48?valueUint48:(isUint56?valueUint56:valueUint64))))))']
 ]
 
 [type BACnetTagPayloadSignedInteger(uint 32 actualLength)
-    [virtual    bit     isInt8          'actualLength == 1'  ]
-    [optional   int 8   valueInt8       'isInt8'             ]
-    [virtual    bit     isInt16         'actualLength == 2'  ]
-    [optional   int 16  valueInt16      'isInt16'            ]
-    [virtual    bit     isInt24         'actualLength == 3'  ]
-    [optional   int 24  valueInt24      'isInt24'            ]
-    [virtual    bit     isInt32         'actualLength == 4'  ]
-    [optional   int 32  valueInt32      'isInt32'            ]
-    [virtual    bit     isInt40         'actualLength == 5'  ]
-    [optional   int 40  valueInt40      'isInt40'            ]
-    [virtual    bit     isInt48         'actualLength == 6'  ]
-    [optional   int 48  valueInt48      'isInt48'            ]
-    [virtual    bit     isInt56         'actualLength == 7'  ]
-    [optional   int 56  valueInt56      'isInt56'            ]
-    [virtual    bit     isInt64         'actualLength == 8'  ]
-    [optional   int 64  valueInt64      'isInt64'            ]
-    [virtual    uint 64 actualValue     'isInt8?valueInt8:(isInt16?valueInt16:(isInt24?valueInt24:(isInt32?valueInt32:(isInt40?valueInt40:(isInt48?valueInt48:(isInt56?valueInt56:(isInt64?valueInt64:0)))))))']
+    [virtual    bit         isInt8          'actualLength == 1'  ]
+    [optional   int 8       valueInt8       'isInt8'             ]
+    [virtual    bit         isInt16         'actualLength == 2'  ]
+    [optional   int 16      valueInt16      'isInt16'            ]
+    [virtual    bit         isInt24         'actualLength == 3'  ]
+    [optional   int 24      valueInt24      'isInt24'            ]
+    [virtual    bit         isInt32         'actualLength == 4'  ]
+    [optional   int 32      valueInt32      'isInt32'            ]
+    [virtual    bit         isInt40         'actualLength == 5'  ]
+    [optional   int 40      valueInt40      'isInt40'            ]
+    [virtual    bit         isInt48         'actualLength == 6'  ]
+    [optional   int 48      valueInt48      'isInt48'            ]
+    [virtual    bit         isInt56         'actualLength == 7'  ]
+    [optional   int 56      valueInt56      'isInt56'            ]
+    [virtual    bit         isInt64         'actualLength == 8'  ]
+    [optional   int 64      valueInt64      'isInt64'            ]
+    [virtual    uint 64     actualValue     'isInt8?valueInt8:(isInt16?valueInt16:(isInt24?valueInt24:(isInt32?valueInt32:(isInt40?valueInt40:(isInt48?valueInt48:(isInt56?valueInt56:valueInt64))))))']
 ]
 
 [type BACnetTagPayloadReal