You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2025/09/05 17:53:47 UTC
(plc4x) 01/03: fix: Fixed some slightly off types in bacnet (uint was used where int was appropriate)
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit e8d7def7de049ced5f83063dc81aea70320d47da
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Fri Sep 5 19:52:53 2025 +0200
fix: Fixed some slightly off types in bacnet (uint was used where int was appropriate)
---
.../model/BACnetApplicationTagSignedInteger.go | 8 ++--
.../model/BACnetContextTagSignedInteger.go | 8 ++--
.../model/BACnetTagPayloadSignedInteger.go | 56 +++++++++++-----------
.../BACnetApplicationTagSignedInteger.java | 12 ++---
.../readwrite/BACnetContextTagSignedInteger.java | 12 ++---
.../readwrite/BACnetTagPayloadSignedInteger.java | 19 ++++----
.../plc4x/java/bacnetip/RandomPackagesTest.java | 6 +--
.../resources/protocols/bacnetip/bacnet-tags.mspec | 6 +--
8 files changed, 59 insertions(+), 68 deletions(-)
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
index b71e98b7d6..2bc12469c4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
@@ -44,7 +44,7 @@ type BACnetApplicationTagSignedInteger interface {
// GetPayload returns Payload (property field)
GetPayload() BACnetTagPayloadSignedInteger
// GetActualValue returns ActualValue (virtual field)
- GetActualValue() uint64
+ GetActualValue() int64
// IsBACnetApplicationTagSignedInteger is a marker method to prevent unintentional type checks (interfaces of same signature)
IsBACnetApplicationTagSignedInteger()
// CreateBuilder creates a BACnetApplicationTagSignedIntegerBuilder
@@ -216,10 +216,10 @@ func (m *_BACnetApplicationTagSignedInteger) GetPayload() BACnetTagPayloadSigned
/////////////////////// Accessors for virtual fields.
///////////////////////
-func (m *_BACnetApplicationTagSignedInteger) GetActualValue() uint64 {
+func (m *_BACnetApplicationTagSignedInteger) GetActualValue() int64 {
ctx := context.Background()
_ = ctx
- return uint64(m.GetPayload().GetActualValue())
+ return int64(m.GetPayload().GetActualValue())
}
///////////////////////
@@ -274,7 +274,7 @@ func (m *_BACnetApplicationTagSignedInteger) parse(ctx context.Context, readBuff
}
m.Payload = payload
- actualValue, err := ReadVirtualField[uint64](ctx, "actualValue", (*uint64)(nil), payload.GetActualValue())
+ actualValue, err := ReadVirtualField[int64](ctx, "actualValue", (*int64)(nil), payload.GetActualValue())
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'actualValue' field"))
}
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go
index 63cd59fcbc..b3bba374e8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go
@@ -44,7 +44,7 @@ type BACnetContextTagSignedInteger interface {
// GetPayload returns Payload (property field)
GetPayload() BACnetTagPayloadSignedInteger
// GetActualValue returns ActualValue (virtual field)
- GetActualValue() uint64
+ GetActualValue() int64
// IsBACnetContextTagSignedInteger is a marker method to prevent unintentional type checks (interfaces of same signature)
IsBACnetContextTagSignedInteger()
// CreateBuilder creates a BACnetContextTagSignedIntegerBuilder
@@ -220,10 +220,10 @@ func (m *_BACnetContextTagSignedInteger) GetPayload() BACnetTagPayloadSignedInte
/////////////////////// Accessors for virtual fields.
///////////////////////
-func (m *_BACnetContextTagSignedInteger) GetActualValue() uint64 {
+func (m *_BACnetContextTagSignedInteger) GetActualValue() int64 {
ctx := context.Background()
_ = ctx
- return uint64(m.GetPayload().GetActualValue())
+ return int64(m.GetPayload().GetActualValue())
}
///////////////////////
@@ -278,7 +278,7 @@ func (m *_BACnetContextTagSignedInteger) parse(ctx context.Context, readBuffer u
}
m.Payload = payload
- actualValue, err := ReadVirtualField[uint64](ctx, "actualValue", (*uint64)(nil), payload.GetActualValue())
+ actualValue, err := ReadVirtualField[int64](ctx, "actualValue", (*int64)(nil), payload.GetActualValue())
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'actualValue' field"))
}
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetTagPayloadSignedInteger.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetTagPayloadSignedInteger.go
index 27a5f6e5b8..ef661186bf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetTagPayloadSignedInteger.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetTagPayloadSignedInteger.go
@@ -75,7 +75,7 @@ type BACnetTagPayloadSignedInteger interface {
// GetIsInt64 returns IsInt64 (virtual field)
GetIsInt64() bool
// GetActualValue returns ActualValue (virtual field)
- GetActualValue() uint64
+ GetActualValue() int64
// IsBACnetTagPayloadSignedInteger is a marker method to prevent unintentional type checks (interfaces of same signature)
IsBACnetTagPayloadSignedInteger()
// CreateBuilder creates a BACnetTagPayloadSignedIntegerBuilder
@@ -460,7 +460,7 @@ func (m *_BACnetTagPayloadSignedInteger) GetIsInt64() bool {
return bool(bool((m.GetActualLength()) == (8)))
}
-func (m *_BACnetTagPayloadSignedInteger) GetActualValue() uint64 {
+func (m *_BACnetTagPayloadSignedInteger) GetActualValue() int64 {
ctx := context.Background()
_ = ctx
valueInt8 := m.GetValueInt8()
@@ -479,19 +479,19 @@ func (m *_BACnetTagPayloadSignedInteger) GetActualValue() uint64 {
_ = valueInt56
valueInt64 := m.GetValueInt64()
_ = valueInt64
- return uint64(utils.InlineIf(m.GetIsInt8(), func() any { return uint64((*m.GetValueInt8())) }, func() any {
- return uint64((utils.InlineIf(m.GetIsInt16(), func() any { return uint64((*m.GetValueInt16())) }, func() any {
- return uint64((utils.InlineIf(m.GetIsInt24(), func() any { return uint64((*m.GetValueInt24())) }, func() any {
- return uint64((utils.InlineIf(m.GetIsInt32(), func() any { return uint64((*m.GetValueInt32())) }, func() any {
- return uint64((utils.InlineIf(m.GetIsInt40(), func() any { return uint64((*m.GetValueInt40())) }, func() any {
- return uint64((utils.InlineIf(m.GetIsInt48(), func() any { return uint64((*m.GetValueInt48())) }, func() any {
- return uint64((utils.InlineIf(m.GetIsInt56(), func() any { return uint64((*m.GetValueInt56())) }, func() any { return uint64((*m.GetValueInt64())) }).(uint64)))
- }).(uint64)))
- }).(uint64)))
- }).(uint64)))
- }).(uint64)))
- }).(uint64)))
- }).(uint64))
+ return int64(utils.InlineIf(m.GetIsInt8(), func() any { return int64((*m.GetValueInt8())) }, func() any {
+ return int64((utils.InlineIf(m.GetIsInt16(), func() any { return int64((*m.GetValueInt16())) }, func() any {
+ return int64((utils.InlineIf(m.GetIsInt24(), func() any { return int64((*m.GetValueInt24())) }, func() any {
+ return int64((utils.InlineIf(m.GetIsInt32(), func() any { return int64((*m.GetValueInt32())) }, func() any {
+ return int64((utils.InlineIf(m.GetIsInt40(), func() any { return int64((*m.GetValueInt40())) }, func() any {
+ return int64((utils.InlineIf(m.GetIsInt48(), func() any { return int64((*m.GetValueInt48())) }, func() any {
+ return int64((utils.InlineIf(m.GetIsInt56(), func() any { return int64((*m.GetValueInt56())) }, func() any { return int64((*m.GetValueInt64())) }).(int64)))
+ }).(int64)))
+ }).(int64)))
+ }).(int64)))
+ }).(int64)))
+ }).(int64)))
+ }).(int64))
}
///////////////////////
@@ -719,19 +719,19 @@ func (m *_BACnetTagPayloadSignedInteger) parse(ctx context.Context, readBuffer u
return nil, errors.WithStack(utils.ParseValidationError{Message: "unmapped integer length"})
}
- actualValue, err := ReadVirtualField[uint64](ctx, "actualValue", (*uint64)(nil), utils.InlineIf(isInt8, func() any { return uint64((*valueInt8)) }, func() any {
- return uint64((utils.InlineIf(isInt16, func() any { return uint64((*valueInt16)) }, func() any {
- return uint64((utils.InlineIf(isInt24, func() any { return uint64((*valueInt24)) }, func() any {
- return uint64((utils.InlineIf(isInt32, func() any { return uint64((*valueInt32)) }, func() any {
- return uint64((utils.InlineIf(isInt40, func() any { return uint64((*valueInt40)) }, func() any {
- return uint64((utils.InlineIf(isInt48, func() any { return uint64((*valueInt48)) }, func() any {
- return uint64((utils.InlineIf(isInt56, func() any { return uint64((*valueInt56)) }, func() any { return uint64((*valueInt64)) }).(uint64)))
- }).(uint64)))
- }).(uint64)))
- }).(uint64)))
- }).(uint64)))
- }).(uint64)))
- }).(uint64))
+ actualValue, err := ReadVirtualField[int64](ctx, "actualValue", (*int64)(nil), utils.InlineIf(isInt8, func() any { return int64((*valueInt8)) }, func() any {
+ return int64((utils.InlineIf(isInt16, func() any { return int64((*valueInt16)) }, func() any {
+ return int64((utils.InlineIf(isInt24, func() any { return int64((*valueInt24)) }, func() any {
+ return int64((utils.InlineIf(isInt32, func() any { return int64((*valueInt32)) }, func() any {
+ return int64((utils.InlineIf(isInt40, func() any { return int64((*valueInt40)) }, func() any {
+ return int64((utils.InlineIf(isInt48, func() any { return int64((*valueInt48)) }, func() any {
+ return int64((utils.InlineIf(isInt56, func() any { return int64((*valueInt56)) }, func() any { return int64((*valueInt64)) }).(int64)))
+ }).(int64)))
+ }).(int64)))
+ }).(int64)))
+ }).(int64)))
+ }).(int64)))
+ }).(int64))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'actualValue' field"))
}
diff --git a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetApplicationTagSignedInteger.java b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetApplicationTagSignedInteger.java
index 1b6c2ef88c..eb1822976c 100644
--- a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetApplicationTagSignedInteger.java
+++ b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetApplicationTagSignedInteger.java
@@ -24,7 +24,6 @@ import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*;
import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*;
import static org.apache.plc4x.java.spi.generation.StaticHelper.*;
-import java.math.BigInteger;
import java.time.*;
import java.util.*;
import org.apache.plc4x.java.api.exceptions.*;
@@ -53,10 +52,8 @@ public class BACnetApplicationTagSignedInteger extends BACnetApplicationTag impl
return payload;
}
- public BigInteger getActualValue() {
- Object o = getPayload().getActualValue();
- if (o instanceof BigInteger) return (BigInteger) o;
- return BigInteger.valueOf(((Number) o).longValue());
+ public long getActualValue() {
+ return (long) (getPayload().getActualValue());
}
@Override
@@ -70,7 +67,7 @@ public class BACnetApplicationTagSignedInteger extends BACnetApplicationTag impl
writeSimpleField("payload", payload, writeComplex(writeBuffer));
// Virtual field (doesn't serialize anything, just makes the value available)
- BigInteger actualValue = getActualValue();
+ long actualValue = getActualValue();
writeBuffer.writeVirtual("actualValue", actualValue);
writeBuffer.popContext("BACnetApplicationTagSignedInteger");
@@ -109,8 +106,7 @@ public class BACnetApplicationTagSignedInteger extends BACnetApplicationTag impl
BACnetTagPayloadSignedInteger.staticParse(
readBuffer, (long) (header.getActualLength())),
readBuffer));
- BigInteger actualValue =
- readVirtualField("actualValue", BigInteger.class, payload.getActualValue());
+ long actualValue = readVirtualField("actualValue", long.class, payload.getActualValue());
readBuffer.closeContext("BACnetApplicationTagSignedInteger");
// Create the instance
diff --git a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetContextTagSignedInteger.java b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetContextTagSignedInteger.java
index 999eabf205..8fb8dd57f8 100644
--- a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetContextTagSignedInteger.java
+++ b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetContextTagSignedInteger.java
@@ -24,7 +24,6 @@ import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*;
import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*;
import static org.apache.plc4x.java.spi.generation.StaticHelper.*;
-import java.math.BigInteger;
import java.time.*;
import java.util.*;
import org.apache.plc4x.java.api.exceptions.*;
@@ -56,10 +55,8 @@ public class BACnetContextTagSignedInteger extends BACnetContextTag implements M
return payload;
}
- public BigInteger getActualValue() {
- Object o = getPayload().getActualValue();
- if (o instanceof BigInteger) return (BigInteger) o;
- return BigInteger.valueOf(((Number) o).longValue());
+ public long getActualValue() {
+ return (long) (getPayload().getActualValue());
}
@Override
@@ -73,7 +70,7 @@ public class BACnetContextTagSignedInteger extends BACnetContextTag implements M
writeSimpleField("payload", payload, writeComplex(writeBuffer));
// Virtual field (doesn't serialize anything, just makes the value available)
- BigInteger actualValue = getActualValue();
+ long actualValue = getActualValue();
writeBuffer.writeVirtual("actualValue", actualValue);
writeBuffer.popContext("BACnetContextTagSignedInteger");
@@ -116,8 +113,7 @@ public class BACnetContextTagSignedInteger extends BACnetContextTag implements M
BACnetTagPayloadSignedInteger.staticParse(
readBuffer, (long) (header.getActualLength())),
readBuffer));
- BigInteger actualValue =
- readVirtualField("actualValue", BigInteger.class, payload.getActualValue());
+ long actualValue = readVirtualField("actualValue", long.class, payload.getActualValue());
readBuffer.closeContext("BACnetContextTagSignedInteger");
// Create the instance
diff --git a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetTagPayloadSignedInteger.java b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetTagPayloadSignedInteger.java
index cbeea75230..065b15152f 100644
--- a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetTagPayloadSignedInteger.java
+++ b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetTagPayloadSignedInteger.java
@@ -24,7 +24,6 @@ import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*;
import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*;
import static org.apache.plc4x.java.spi.generation.StaticHelper.*;
-import java.math.BigInteger;
import java.time.*;
import java.util.*;
import org.apache.plc4x.java.api.exceptions.*;
@@ -139,9 +138,9 @@ public class BACnetTagPayloadSignedInteger implements Message {
return (boolean) ((actualLength) == (8));
}
- public BigInteger getActualValue() {
- Object o =
- ((getIsInt8())
+ public long getActualValue() {
+ return (long)
+ (((getIsInt8())
? getValueInt8()
: (((getIsInt16())
? getValueInt16()
@@ -153,9 +152,9 @@ public class BACnetTagPayloadSignedInteger implements Message {
? getValueInt40()
: (((getIsInt48())
? getValueInt48()
- : (((getIsInt56()) ? getValueInt56() : getValueInt64())))))))))))));
- if (o instanceof BigInteger) return (BigInteger) o;
- return BigInteger.valueOf(((Number) o).longValue());
+ : (((getIsInt56())
+ ? getValueInt56()
+ : getValueInt64()))))))))))))));
}
public void serialize(WriteBuffer writeBuffer) throws SerializationException {
@@ -220,7 +219,7 @@ public class BACnetTagPayloadSignedInteger implements Message {
writeOptionalField("valueInt64", valueInt64, writeSignedLong(writeBuffer, 64));
// Virtual field (doesn't serialize anything, just makes the value available)
- BigInteger actualValue = getActualValue();
+ long actualValue = getActualValue();
writeBuffer.writeVirtual("actualValue", actualValue);
writeBuffer.popContext("BACnetTagPayloadSignedInteger");
@@ -333,10 +332,10 @@ public class BACnetTagPayloadSignedInteger implements Message {
|| (isInt64))) {
throw new ParseValidationException("unmapped integer length");
}
- BigInteger actualValue =
+ long actualValue =
readVirtualField(
"actualValue",
- BigInteger.class,
+ long.class,
((isInt8)
? valueInt8
: (((isInt16)
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 643aaecce4..6c2760539d 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
@@ -3580,7 +3580,7 @@ public class RandomPackagesTest {
.asInstanceOf(InstanceOfAssertFactories.type(BACnetApplicationTagSignedInteger.class))
.extracting(BACnetApplicationTagSignedInteger::getPayload)
.extracting(BACnetTagPayloadSignedInteger::getActualValue)
- .isEqualTo(BigInteger.valueOf(0));
+ .isEqualTo(0L);
assertThat(baCnetConfirmedServiceRequestAtomicReadFileStream)
.extracting(BACnetConfirmedServiceRequestAtomicReadFileStream::getRequestOctetCount)
.asInstanceOf(InstanceOfAssertFactories.type(BACnetApplicationTagUnsignedInteger.class))
@@ -4235,7 +4235,7 @@ public class RandomPackagesTest {
assertEquals(201, baCnetServiceAckReadProperty.getObjectIdentifier().getInstanceNumber());
assertEquals(BACnetPropertyIdentifier.UTC_OFFSET, baCnetServiceAckReadProperty.getPropertyIdentifier().getValue());
BACnetApplicationTagSignedInteger value = ((BACnetConstructedDataUTCOffset) baCnetServiceAckReadProperty.getValues()).getUtcOffset();
- assertEquals(0, value.getPayload().getActualValue().longValue());
+ assertEquals(0, value.getPayload().getActualValue());
}),
DynamicTest.dynamicTest("No. 47 - Confirmed-REQ readProperty[ 47] device,201 daylights-savings-status",
() -> {
@@ -5013,7 +5013,7 @@ public class RandomPackagesTest {
assertEquals(61, baCnetServiceAckReadProperty.getObjectIdentifier().getInstanceNumber());
assertEquals(BACnetPropertyIdentifier.UTC_OFFSET, baCnetServiceAckReadProperty.getPropertyIdentifier().getValue());
BACnetApplicationTagSignedInteger value = ((BACnetConstructedDataUTCOffset) baCnetServiceAckReadProperty.getValues()).getUtcOffset();
- assertEquals(BigInteger.valueOf(-300), value.getPayload().getActualValue());
+ assertEquals(-300L, value.getPayload().getActualValue());
}),
DynamicTest.dynamicTest("No. 103 - Confirmed-REQ readProperty[ 75] device,61 daylights-savings-status",
() -> {
diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-tags.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-tags.mspec
index e38f7749e1..040332b615 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-tags.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-tags.mspec
@@ -55,7 +55,7 @@
['0x3' *SignedInteger(BACnetTagHeader header)
[simple BACnetTagPayloadSignedInteger('header.actualLength')
payload ]
- [virtual uint 64 actualValue 'payload.actualValue' ]
+ [virtual int 64 actualValue 'payload.actualValue' ]
]
['0x4' *Real
[simple BACnetTagPayloadReal
@@ -134,7 +134,7 @@
['SIGNED_INTEGER' *SignedInteger(BACnetTagHeader header)
[simple BACnetTagPayloadSignedInteger('header.actualLength')
payload ]
- [virtual uint 64 actualValue 'payload.actualValue' ]
+ [virtual int 64 actualValue 'payload.actualValue' ]
]
['REAL' *Real
[simple BACnetTagPayloadReal
@@ -249,7 +249,7 @@
[virtual bit isInt64 'actualLength == 8' ]
[optional int 64 valueInt64 'isInt64' ]
[validation 'isInt8 || isInt16 || isInt24 || isInt32 || isInt40 || isInt48 || isInt56 || isInt64' "unmapped integer length"]
- [virtual uint 64 actualValue 'isInt8?valueInt8:(isInt16?valueInt16:(isInt24?valueInt24:(isInt32?valueInt32:(isInt40?valueInt40:(isInt48?valueInt48:(isInt56?valueInt56:valueInt64))))))']
+ [virtual int 64 actualValue 'isInt8?valueInt8:(isInt16?valueInt16:(isInt24?valueInt24:(isInt32?valueInt32:(isInt40?valueInt40:(isInt48?valueInt48:(isInt56?valueInt56:valueInt64))))))']
]
[type BACnetTagPayloadReal