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 97c28ee21c fix(bacnet): fixed BACnetReadAccessProperty
97c28ee21c is described below

commit 97c28ee21c2877f4be557cae73c5da12a0a3a5ac
Author: Sebastian Rühl <[email protected]>
AuthorDate: Fri Apr 22 18:08:44 2022 +0200

    fix(bacnet): fixed BACnetReadAccessProperty
---
 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go | 2 +-
 .../bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go  | 4 ++--
 .../plc4go/bacnetip/readwrite/model/BACnetReadAccessProperty.go   | 4 ++--
 .../java/org/apache/plc4x/java/bacnetip/ManualBacNetDecoder.java  | 2 +-
 .../bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec | 8 ++++----
 5 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
index 8067857bcb..85820d6dc4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
@@ -290,7 +290,7 @@ func APDUComplexAckParse(readBuffer utils.ReadBuffer, 
apduLength uint16) (*APDUC
                if pullErr := readBuffer.PullContext("serviceAck"); pullErr != 
nil {
                        return nil, pullErr
                }
-               _val, _err := BACnetServiceAckParse(readBuffer, 
uint16(apduLength)-uint16(uint16(uint16(uint16(2))+uint16(uint16(utils.InlineIf(segmentedMessage,
 func() interface{} { return uint16(uint16(2)) }, func() interface{} { return 
uint16(uint16(0)) }).(uint16))))))
+               _val, _err := BACnetServiceAckParse(readBuffer, 
uint16(apduLength)-uint16(uint16(uint16(uint16(3))+uint16(uint16(utils.InlineIf(segmentedMessage,
 func() interface{} { return uint16(uint16(2)) }, func() interface{} { return 
uint16(uint16(0)) }).(uint16))))))
                switch {
                case errors.Is(_err, utils.ParseAssertError{}) || 
errors.Is(_err, io.EOF):
                        readBuffer.Reset(currentPos)
diff --git 
a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go
 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go
index 7c27699ee5..268a10f257 100644
--- 
a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go
+++ 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go
@@ -112,7 +112,7 @@ func (m *BACnetConstructedDataUnspecified) GetHasData() 
bool {
        _ = propertyIdentifier
        content := m.Content
        _ = content
-       return bool(bool((len(m.GetData())) == (0)))
+       return bool(bool((len(m.GetData())) != (0)))
 }
 
 ///////////////////////
@@ -213,7 +213,7 @@ func BACnetConstructedDataUnspecifiedParse(readBuffer 
utils.ReadBuffer, tagNumbe
        }
 
        // Virtual field
-       _hasData := bool((len(data)) == (0))
+       _hasData := bool((len(data)) != (0))
        hasData := bool(_hasData)
        _ = hasData
 
diff --git 
a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessProperty.go 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessProperty.go
index 3b0a520bed..a7c357eb4b 100644
--- 
a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessProperty.go
+++ 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessProperty.go
@@ -144,7 +144,7 @@ func BACnetReadAccessPropertyParse(readBuffer 
utils.ReadBuffer, objectType BACne
        if pullErr := readBuffer.PullContext("propertyIdentifier"); pullErr != 
nil {
                return nil, pullErr
        }
-       _propertyIdentifier, _propertyIdentifierErr := 
BACnetContextTagParse(readBuffer, uint8(uint8(0)), 
BACnetDataType(BACnetDataType_BACNET_PROPERTY_IDENTIFIER))
+       _propertyIdentifier, _propertyIdentifierErr := 
BACnetContextTagParse(readBuffer, uint8(uint8(2)), 
BACnetDataType(BACnetDataType_BACNET_PROPERTY_IDENTIFIER))
        if _propertyIdentifierErr != nil {
                return nil, errors.Wrap(_propertyIdentifierErr, "Error parsing 
'propertyIdentifier' field")
        }
@@ -160,7 +160,7 @@ func BACnetReadAccessPropertyParse(readBuffer 
utils.ReadBuffer, objectType BACne
                if pullErr := readBuffer.PullContext("arrayIndex"); pullErr != 
nil {
                        return nil, pullErr
                }
-               _val, _err := BACnetContextTagParse(readBuffer, uint8(1), 
BACnetDataType_UNSIGNED_INTEGER)
+               _val, _err := BACnetContextTagParse(readBuffer, uint8(3), 
BACnetDataType_UNSIGNED_INTEGER)
                switch {
                case errors.Is(_err, utils.ParseAssertError{}) || 
errors.Is(_err, io.EOF):
                        readBuffer.Reset(currentPos)
diff --git 
a/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/ManualBacNetDecoder.java
 
b/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/ManualBacNetDecoder.java
index 7aba82b35f..2593b88833 100644
--- 
a/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/ManualBacNetDecoder.java
+++ 
b/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/ManualBacNetDecoder.java
@@ -26,7 +26,7 @@ import 
org.apache.plc4x.java.spi.generation.ReadBufferByteBased;
 public class ManualBacNetDecoder {
 
     public static void main(String[] args) throws Exception {
-        final byte[] bytes = 
Hex.decodeHex("810a002b01040205790109011c020000142c000002f93a06b24e09552e44434a00002f096f2e8204002f4f");
+        final byte[] bytes = 
Hex.decodeHex("810a001b010030030e0c020000011e294c39014ec4020000014f1f");
         ReadBuffer readBuffer = new ReadBufferByteBased(bytes);
         final BVLC packet = BVLC.staticParse(readBuffer);
         System.out.println(packet);
diff --git 
a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec 
b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
index a3d40bcdb4..eefac12b1c 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
@@ -213,7 +213,7 @@
             [simple   uint 8    originalInvokeId                        ]
             [optional uint 8    sequenceNumber     'segmentedMessage'   ]
             [optional uint 8    proposedWindowSize 'segmentedMessage'   ]
-            [optional BACnetServiceAck('apduLength - (2 + (segmentedMessage ? 
2 : 0))')
+            [optional BACnetServiceAck('apduLength - (3 + (segmentedMessage ? 
2 : 0))')
                                 serviceAck         '!segmentedMessage'  ]
             // TODO: maybe we should put this in the discriminated types below
             [optional uint 8    segmentServiceChoice 'segmentedMessage && 
sequenceNumber != 0']
@@ -639,9 +639,9 @@
 ]
 
 [type BACnetReadAccessProperty(BACnetObjectType objectType)
-    [simple     BACnetContextTagPropertyIdentifier('0', 
'BACnetDataType.BACNET_PROPERTY_IDENTIFIER')
+    [simple     BACnetContextTagPropertyIdentifier('2', 
'BACnetDataType.BACNET_PROPERTY_IDENTIFIER')
                     propertyIdentifier              ]
-    [optional   BACnetContextTagUnsignedInteger('1', 
'BACnetDataType.UNSIGNED_INTEGER')
+    [optional   BACnetContextTagUnsignedInteger('3', 
'BACnetDataType.UNSIGNED_INTEGER')
                     arrayIndex                      ]
     [optional   BACnetConstructedData('4', 'objectType', 'propertyIdentifier')
                     propertyValue                   ]
@@ -1576,7 +1576,7 @@
                                 data
                             terminated
                             'STATIC_CALL("isBACnetConstructedDataClosingTag", 
readBuffer, false, tagNumber)'    ]
-            [virtual    bit     hasData 'COUNT(data) == 0']
+            [virtual    bit     hasData 'COUNT(data) != 0']
             [optional       BACnetContextTagPropertyIdentifier('0', 
'BACnetDataType.BACNET_PROPERTY_IDENTIFIER')
                             propertyIdentifier
                             'hasData'                                          
                                 ]

Reply via email to