You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cg...@apache.org on 2023/02/01 01:58:49 UTC

[plc4x] 02/03: Test for S7VarPayloadItem.

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

cgarcia pushed a commit to branch issue-701
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit fe81684dfba1ed3eff0da3bf7b41340b8fd0792e
Author: César García <ce...@ceos.com.ve>
AuthorDate: Sun Jan 29 17:11:55 2023 -0400

    Test for S7VarPayloadItem.
---
 .../java/bacnetip/readwrite/BACnetVendorId.java    |  3 --
 .../java/s7/readwrite/S7VarPayloadDataItem.java    | 35 ++++++++++++++++++----
 .../s7/src/main/resources/protocols/s7/s7.mspec    |  1 +
 3 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java
index 5330ed6b2d..55d0bef9b4 100644
--- a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java
+++ b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java
@@ -1607,9 +1607,6 @@ public enum BACnetVendorId {
   KOMFORTIQ_INC((int) 1397, (int) 1397, (String) "Komfort IQ, Inc."),
   COOL_TERA_LIMITED((int) 1398, (int) 1398, (String) "CoolTera Limited"),
   HADRON_SOLUTIONS_SRLS((int) 1399, (int) 1399, (String) "Hadron Solutions S.r.l.s"),
-  BITPOOL((int) 1401, (int) 1401, (String) "Bitpool"),
-  SONICULLC((int) 1402, (int) 1402, (String) "Sonicu, LLC"),
-  RISHABH_INSTRUMENTS_LIMITED((int) 1403, (int) 1403, (String) "Rishabh Instruments Limited"),
   UNKNOWN_VENDOR((int) 0xFFFF, (int) 0xFFFF, (String) "Unknown");
   private static final Map<Integer, BACnetVendorId> map;
 
diff --git a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/S7VarPayloadDataItem.java b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/S7VarPayloadDataItem.java
index 8334154158..466ddce64e 100644
--- a/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/S7VarPayloadDataItem.java
+++ b/plc4j/drivers/s7/src/main/generated/org/apache/plc4x/java/s7/readwrite/S7VarPayloadDataItem.java
@@ -41,13 +41,18 @@ public class S7VarPayloadDataItem implements Message {
   protected final DataTransportErrorCode returnCode;
   protected final DataTransportSize transportSize;
   protected final byte[] data;
+  protected final Boolean hasNext;
 
   public S7VarPayloadDataItem(
-      DataTransportErrorCode returnCode, DataTransportSize transportSize, byte[] data) {
+      DataTransportErrorCode returnCode,
+      DataTransportSize transportSize,
+      byte[] data,
+      Boolean hasNext) {
     super();
     this.returnCode = returnCode;
     this.transportSize = transportSize;
     this.data = data;
+    this.hasNext = hasNext;
   }
 
   public DataTransportErrorCode getReturnCode() {
@@ -62,6 +67,10 @@ public class S7VarPayloadDataItem implements Message {
     return data;
   }
 
+  public Boolean getHasNext() {
+    return hasNext;
+  }
+
   public void serialize(WriteBuffer writeBuffer) throws SerializationException {
     PositionAware positionAware = writeBuffer;
     int startPos = positionAware.getPos();
@@ -100,9 +109,15 @@ public class S7VarPayloadDataItem implements Message {
     // Array Field (data)
     writeByteArrayField("data", data, writeByteArray(writeBuffer, 8));
 
+    // Optional Field (hasNext) (Can be skipped, if the value is null)
+    writeOptionalField("hasNext", hasNext, writeBoolean(writeBuffer));
+
     // Padding Field (padding)
     writePaddingField(
-        "padding", (int) (((COUNT(data)) % (2))), (short) 0x00, writeUnsignedShort(writeBuffer, 8));
+        "padding",
+        (int) (((PADCOUNT(data, hasNext)) % (2))),
+        (short) 0x00,
+        writeUnsignedShort(writeBuffer, 8));
 
     writeBuffer.popContext("S7VarPayloadDataItem");
   }
@@ -131,8 +146,13 @@ public class S7VarPayloadDataItem implements Message {
       lengthInBits += 8 * data.length;
     }
 
+    // Optional Field (hasNext)
+    if (hasNext != null) {
+      lengthInBits += 1;
+    }
+
     // Padding Field (padding)
-    int _timesPadding = (int) (((COUNT(data)) % (2)));
+    int _timesPadding = (int) (((PADCOUNT(data, hasNext)) % (2)));
     while (_timesPadding-- > 0) {
       lengthInBits += 8;
     }
@@ -174,12 +194,14 @@ public class S7VarPayloadDataItem implements Message {
             Math.toIntExact(
                 ((transportSize.getSizeInBits()) ? CEIL((dataLength) / (8.0)) : dataLength)));
 
-    readPaddingField(readUnsignedShort(readBuffer, 8), (int) (((COUNT(data)) % (2))));
+    Boolean hasNext = readOptionalField("hasNext", readBoolean(readBuffer), (dataLength) < (-(1)));
+
+    readPaddingField(readUnsignedShort(readBuffer, 8), (int) (((PADCOUNT(data, hasNext)) % (2))));
 
     readBuffer.closeContext("S7VarPayloadDataItem");
     // Create the instance
     S7VarPayloadDataItem _s7VarPayloadDataItem;
-    _s7VarPayloadDataItem = new S7VarPayloadDataItem(returnCode, transportSize, data);
+    _s7VarPayloadDataItem = new S7VarPayloadDataItem(returnCode, transportSize, data, hasNext);
     return _s7VarPayloadDataItem;
   }
 
@@ -195,12 +217,13 @@ public class S7VarPayloadDataItem implements Message {
     return (getReturnCode() == that.getReturnCode())
         && (getTransportSize() == that.getTransportSize())
         && (getData() == that.getData())
+        && (getHasNext() == that.getHasNext())
         && true;
   }
 
   @Override
   public int hashCode() {
-    return Objects.hash(getReturnCode(), getTransportSize(), getData());
+    return Objects.hash(getReturnCode(), getTransportSize(), getData(), getHasNext());
   }
 
   @Override
diff --git a/protocols/s7/src/main/resources/protocols/s7/s7.mspec b/protocols/s7/src/main/resources/protocols/s7/s7.mspec
index 39da1854c2..e0e5d380d6 100644
--- a/protocols/s7/src/main/resources/protocols/s7/s7.mspec
+++ b/protocols/s7/src/main/resources/protocols/s7/s7.mspec
@@ -247,6 +247,7 @@
     [array    byte                   data       count 'transportSize.sizeInBits ? CEIL(dataLength / 8.0) : dataLength']
     [padding  uint 8                 pad        '0x00' '(COUNT(data) % 2)']
     //[padding  uint 8                 pad        '0x00' '(PADCOUNT(data, hasNext) % 2)']
+
 ]
 
 [type S7VarPayloadStatusItem