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