You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2021/09/17 18:58:54 UTC
[plc4x] branch develop updated: feat(pl4x): Added actualTagNumber
to bacnet for easier access to the tagnumber
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/develop by this push:
new d88ea3b feat(pl4x): Added actualTagNumber to bacnet for easier access to the tagnumber
d88ea3b is described below
commit d88ea3bf4b106e7a9812296ecbf20c1ff03ecff6
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri Sep 17 20:58:32 2021 +0200
feat(pl4x): Added actualTagNumber to bacnet for easier access to the tagnumber
+ fixed tag number be reliant on isPrimitiveAndNotBoolean
---
.../plc4go/bacnetip/readwrite/model/BACnetTag.go | 22 ++++++++++++++--------
.../model/BACnetTagApplicationBitString.go | 2 +-
.../readwrite/model/BACnetTagApplicationBoolean.go | 2 +-
.../model/BACnetTagApplicationCharacterString.go | 2 +-
.../readwrite/model/BACnetTagApplicationDate.go | 2 +-
.../readwrite/model/BACnetTagApplicationDouble.go | 2 +-
.../model/BACnetTagApplicationEnumerated.go | 2 +-
.../readwrite/model/BACnetTagApplicationNull.go | 2 +-
.../model/BACnetTagApplicationObjectIdentifier.go | 2 +-
.../model/BACnetTagApplicationOctetString.go | 2 +-
.../readwrite/model/BACnetTagApplicationReal.go | 2 +-
.../model/BACnetTagApplicationSignedInteger.go | 2 +-
.../readwrite/model/BACnetTagApplicationTime.go | 2 +-
.../model/BACnetTagApplicationUnsignedInteger.go | 2 +-
.../bacnetip/readwrite/model/BACnetTagContext.go | 2 +-
.../resources/protocols/bacnetip/bacnetip.mspec | 9 +++++----
.../bacnetip/protocol/BacNetIpProtocolLogic.java | 10 ++--------
17 files changed, 35 insertions(+), 34 deletions(-)
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
index 500de0d..5f585d5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
@@ -34,6 +34,7 @@ type BACnetTag struct {
ExtLength *uint8
ExtExtLength *uint16
ExtExtExtLength *uint32
+ ActualTagNumber uint8
IsPrimitiveAndNotBoolean bool
ActualLength uint32
Child IBACnetTagChild
@@ -54,7 +55,7 @@ type IBACnetTagParent interface {
type IBACnetTagChild interface {
Serialize(writeBuffer utils.WriteBuffer) error
- InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32)
+ InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32)
GetTypeName() string
IBACnetTag
}
@@ -99,13 +100,15 @@ func (m *BACnetTag) ParentLengthInBits() uint16 {
// Simple field (lengthValueType)
lengthInBits += 3
- // A virtual field doesn't have any in- or output.
-
// Optional Field (extTagNumber)
if m.ExtTagNumber != nil {
lengthInBits += 8
}
+ // A virtual field doesn't have any in- or output.
+
+ // A virtual field doesn't have any in- or output.
+
// Optional Field (extLength)
if m.ExtLength != nil {
lengthInBits += 8
@@ -154,12 +157,9 @@ func BACnetTagParse(readBuffer utils.ReadBuffer) (*BACnetTag, error) {
return nil, errors.Wrap(_lengthValueTypeErr, "Error parsing 'lengthValueType' field")
}
- // Virtual field
- isPrimitiveAndNotBoolean := bool(!(bool(bool(bool((tagClass) == (TagClass_CONTEXT_SPECIFIC_TAGS))) && bool(bool((lengthValueType) == (6)))))) && bool(bool((tagNumber) != (1)))
-
// Optional Field (extTagNumber) (Can be skipped, if a given expression evaluates to false)
var extTagNumber *uint8 = nil
- if bool(isPrimitiveAndNotBoolean) && bool(bool((tagNumber) == (15))) {
+ if bool((tagNumber) == (15)) {
_val, _err := readBuffer.ReadUint8("extTagNumber", 8)
if _err != nil {
return nil, errors.Wrap(_err, "Error parsing 'extTagNumber' field")
@@ -167,6 +167,12 @@ func BACnetTagParse(readBuffer utils.ReadBuffer) (*BACnetTag, error) {
extTagNumber = &_val
}
+ // Virtual field
+ actualTagNumber := utils.InlineIf(bool((tagNumber) < (15)), func() interface{} { return uint8(tagNumber) }, func() interface{} { return uint8((*extTagNumber)) }).(uint8)
+
+ // Virtual field
+ isPrimitiveAndNotBoolean := bool(!(bool(bool(bool((tagClass) == (TagClass_CONTEXT_SPECIFIC_TAGS))) && bool(bool((lengthValueType) == (6)))))) && bool(bool((tagNumber) != (1)))
+
// Optional Field (extLength) (Can be skipped, if a given expression evaluates to false)
var extLength *uint8 = nil
if bool(isPrimitiveAndNotBoolean) && bool(bool((lengthValueType) == (5))) {
@@ -251,7 +257,7 @@ func BACnetTagParse(readBuffer utils.ReadBuffer) (*BACnetTag, error) {
}
// Finish initializing
- _parent.Child.InitializeParent(_parent, tagNumber, lengthValueType, extTagNumber, extLength, extExtLength, extExtExtLength, isPrimitiveAndNotBoolean, actualLength)
+ _parent.Child.InitializeParent(_parent, tagNumber, lengthValueType, extTagNumber, extLength, extExtLength, extExtExtLength, actualTagNumber, isPrimitiveAndNotBoolean, actualLength)
return _parent, nil
}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
index 6878d56..c990294 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
@@ -47,7 +47,7 @@ func (m *BACnetTagApplicationBitString) TagClass() TagClass {
return TagClass_APPLICATION_TAGS
}
-func (m *BACnetTagApplicationBitString) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagApplicationBitString) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go
index c87c551..c3033a8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go
@@ -44,7 +44,7 @@ func (m *BACnetTagApplicationBoolean) TagClass() TagClass {
return TagClass_APPLICATION_TAGS
}
-func (m *BACnetTagApplicationBoolean) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagApplicationBoolean) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go
index ac7c05c..114cdbf 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go
@@ -44,7 +44,7 @@ func (m *BACnetTagApplicationCharacterString) TagClass() TagClass {
return TagClass_APPLICATION_TAGS
}
-func (m *BACnetTagApplicationCharacterString) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagApplicationCharacterString) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go
index 6fd8b3f..e8a0406 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go
@@ -44,7 +44,7 @@ func (m *BACnetTagApplicationDate) TagClass() TagClass {
return TagClass_APPLICATION_TAGS
}
-func (m *BACnetTagApplicationDate) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagApplicationDate) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go
index 282de13..cc12f5c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go
@@ -46,7 +46,7 @@ func (m *BACnetTagApplicationDouble) TagClass() TagClass {
return TagClass_APPLICATION_TAGS
}
-func (m *BACnetTagApplicationDouble) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagApplicationDouble) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
index 24b3589..1958d02 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
@@ -46,7 +46,7 @@ func (m *BACnetTagApplicationEnumerated) TagClass() TagClass {
return TagClass_APPLICATION_TAGS
}
-func (m *BACnetTagApplicationEnumerated) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagApplicationEnumerated) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go
index 44bf4ec..69e4d72 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go
@@ -44,7 +44,7 @@ func (m *BACnetTagApplicationNull) TagClass() TagClass {
return TagClass_APPLICATION_TAGS
}
-func (m *BACnetTagApplicationNull) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagApplicationNull) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go
index b593fd1..5279ded 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go
@@ -44,7 +44,7 @@ func (m *BACnetTagApplicationObjectIdentifier) TagClass() TagClass {
return TagClass_APPLICATION_TAGS
}
-func (m *BACnetTagApplicationObjectIdentifier) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagApplicationObjectIdentifier) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationOctetString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationOctetString.go
index dd33c8b..2a9ee2e 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationOctetString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationOctetString.go
@@ -44,7 +44,7 @@ func (m *BACnetTagApplicationOctetString) TagClass() TagClass {
return TagClass_APPLICATION_TAGS
}
-func (m *BACnetTagApplicationOctetString) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagApplicationOctetString) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationReal.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationReal.go
index d616879..14ebf50 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationReal.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationReal.go
@@ -46,7 +46,7 @@ func (m *BACnetTagApplicationReal) TagClass() TagClass {
return TagClass_APPLICATION_TAGS
}
-func (m *BACnetTagApplicationReal) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagApplicationReal) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go
index 534d40a..16c23ad 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go
@@ -46,7 +46,7 @@ func (m *BACnetTagApplicationSignedInteger) TagClass() TagClass {
return TagClass_APPLICATION_TAGS
}
-func (m *BACnetTagApplicationSignedInteger) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagApplicationSignedInteger) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationTime.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationTime.go
index ad79fb5..b515287 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationTime.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationTime.go
@@ -44,7 +44,7 @@ func (m *BACnetTagApplicationTime) TagClass() TagClass {
return TagClass_APPLICATION_TAGS
}
-func (m *BACnetTagApplicationTime) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagApplicationTime) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go
index 1453508..41d496b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go
@@ -46,7 +46,7 @@ func (m *BACnetTagApplicationUnsignedInteger) TagClass() TagClass {
return TagClass_APPLICATION_TAGS
}
-func (m *BACnetTagApplicationUnsignedInteger) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagApplicationUnsignedInteger) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go
index 2cfff48..2df3d9f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go
@@ -46,7 +46,7 @@ func (m *BACnetTagContext) TagClass() TagClass {
return TagClass_CONTEXT_SPECIFIC_TAGS
}
-func (m *BACnetTagContext) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, isPrimitiveAndNotBoolean bool, actualLength uint32) {
+func (m *BACnetTagContext) InitializeParent(parent *BACnetTag, tagNumber uint8, lengthValueType uint8, extTagNumber *uint8, extLength *uint8, extExtLength *uint16, extExtExtLength *uint32, actualTagNumber uint8, isPrimitiveAndNotBoolean bool, actualLength uint32) {
m.Parent.TagNumber = tagNumber
m.Parent.LengthValueType = lengthValueType
m.Parent.ExtTagNumber = extTagNumber
diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
index e15bc26..52b6747 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
@@ -492,11 +492,12 @@
]
[discriminatedType 'BACnetTag'
- [simple uint 4 'tagNumber' ]
- [discriminator TagClass 'tagClass' ]
- [simple uint 3 'lengthValueType' ]
+ [simple uint 4 'tagNumber' ]
+ [discriminator TagClass 'tagClass' ]
+ [simple uint 3 'lengthValueType' ]
+ [optional uint 8 'extTagNumber' 'tagNumber == 15' ]
+ [virtual uint 8 'actualTagNumber' 'tagNumber < 15 ? tagNumber : extTagNumber' ]
[virtual bit 'isPrimitiveAndNotBoolean' '!(tagClass == TagClass.CONTEXT_SPECIFIC_TAGS && lengthValueType == 6) && tagNumber != 1']
- [optional uint 8 'extTagNumber' 'isPrimitiveAndNotBoolean && tagNumber == 15' ]
[optional uint 8 'extLength' 'isPrimitiveAndNotBoolean && lengthValueType == 5' ]
[optional uint 16 'extExtLength' 'isPrimitiveAndNotBoolean && lengthValueType == 5 && extLength == 254' ]
[optional uint 32 'extExtExtLength' 'isPrimitiveAndNotBoolean && lengthValueType == 5 && extLength == 255' ]
diff --git a/sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/protocol/BacNetIpProtocolLogic.java b/sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/protocol/BacNetIpProtocolLogic.java
index cf9accb..fe60c2a 100644
--- a/sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/protocol/BacNetIpProtocolLogic.java
+++ b/sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/protocol/BacNetIpProtocolLogic.java
@@ -163,14 +163,8 @@ public class BacNetIpProtocolLogic extends Plc4xProtocolBase<BVLC> implements Ha
enrichedPlcValue.put("address", new PlcSTRING(toString(curField)));
// From the original BACNet tag
- short tagNumber = baCnetTag.getTagNumber() < 0b1111 ? baCnetTag.getTagNumber() : baCnetTag.getExtTagNumber();
- enrichedPlcValue.put("tagNumber", IEC61131ValueHandler.of(tagNumber));
- enrichedPlcValue.put("lengthValueType", IEC61131ValueHandler.of(baCnetTag.getLengthValueType()));
- if (baCnetTag.getExtLength() != null) {
- enrichedPlcValue.put("extLength", IEC61131ValueHandler.of(baCnetTag.getExtLength()));
- } else {
- enrichedPlcValue.put("extLength", new PlcNull());
- }
+ enrichedPlcValue.put("tagNumber", IEC61131ValueHandler.of(baCnetTag.getActualTagNumber()));
+ enrichedPlcValue.put("lengthValueType", IEC61131ValueHandler.of(baCnetTag.getActualLength()));
// Use the information in the edeModel to enrich the information.
if (edeModel != null) {