You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by hu...@apache.org on 2020/12/10 12:12:27 UTC
[plc4x] branch bug/driver-opcua-read-arrays updated: [BROKEN] Last
failed attempt at working around missing datatype. :(
This is an automated email from the ASF dual-hosted git repository.
hutcheb pushed a commit to branch bug/driver-opcua-read-arrays
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/bug/driver-opcua-read-arrays by this push:
new 3da8806 [BROKEN] Last failed attempt at working around missing datatype. :(
3da8806 is described below
commit 3da8806c28830c6af9707681ab165cbb0af97828
Author: hutcheb <be...@gmail.com>
AuthorDate: Thu Dec 10 07:11:36 2020 -0500
[BROKEN] Last failed attempt at working around missing datatype. :(
---
.../opcua/connection/OpcuaTcpPlcConnection.java | 42 ++++++-
.../apache/plc4x/java/opcua/ManualPLC4XOpcua.java | 39 ++++++-
.../plc4x/java/opcua/OpcuaPlcDriverTest.java | 123 ++++++++++++++++++---
3 files changed, 180 insertions(+), 24 deletions(-)
diff --git a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/connection/OpcuaTcpPlcConnection.java b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/connection/OpcuaTcpPlcConnection.java
index 6bc566a..ac05854 100644
--- a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/connection/OpcuaTcpPlcConnection.java
+++ b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/connection/OpcuaTcpPlcConnection.java
@@ -47,6 +47,7 @@ import org.eclipse.milo.opcua.stack.core.security.SecurityPolicy;
import org.eclipse.milo.opcua.stack.core.types.builtin.*;
import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger;
import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UShort;
+import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UByte;
import org.eclipse.milo.opcua.stack.core.types.enumerated.MonitoringMode;
import org.eclipse.milo.opcua.stack.core.types.enumerated.TimestampsToReturn;
import org.eclipse.milo.opcua.stack.core.types.structured.*;
@@ -54,6 +55,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.math.BigInteger;
+import java.math.BigDecimal;
+import java.util.stream.Collectors;
import java.net.InetAddress;
import java.time.Duration;
import java.util.*;
@@ -113,7 +116,7 @@ public class OpcuaTcpPlcConnection extends BaseOpcuaPlcConnection {
public static PlcValue encodePlcValue(DataValue value) {
ExpandedNodeId typeNode = value.getValue().getDataType().get();
- Object objValue = value.getValue().getValue();
+ Object objValue = value.getValue().getValue();
if (objValue.getClass().isArray()) {
Object[] objArray = (Object[]) objValue;
@@ -541,8 +544,41 @@ public class OpcuaTcpPlcConnection extends BaseOpcuaPlcConnection {
Object valueObject = writeRequest.getPlcValue(fieldName).getObject();
// Added small work around for handling BigIntegers as input type for UInt64
if (valueObject instanceof BigInteger) valueObject = ulong((BigInteger) valueObject);
- Variant var = new Variant(valueObject);
- DataValue value = new DataValue(var, null, null, null);
+ Variant var = null;
+ if (valueObject instanceof ArrayList) {
+ List<PlcValue> plcValueList = (List<PlcValue>) valueObject;
+ if (plcValueList.get(0) instanceof PlcBOOL) {
+ List<Boolean> valueList = (plcValueList).stream().map(x -> ((PlcBOOL) x).getBoolean()).collect(Collectors.toList());
+ var = new Variant(valueList.toArray(new Boolean[valueList.size()]));
+ } else if (plcValueList.get(0) instanceof PlcSINT) {
+ List<UByte> valueList = (List<UByte>) (plcValueList).stream().map(x -> UByte.valueOf(((PlcSINT) x).getByte())).collect(Collectors.toList());
+ var = new Variant(valueList.toArray(new UByte[valueList.size()]));
+ } else if (plcValueList.get(0) instanceof PlcINT) {
+ List<Short> valueList = (plcValueList).stream().map(x -> ((PlcINT) x).getShort()).collect(Collectors.toList());
+ var = new Variant(valueList.toArray(new Short[valueList.size()]));
+ } else if (plcValueList.get(0) instanceof PlcDINT) {
+ List<Integer> valueList = (plcValueList).stream().map(x -> ((PlcDINT) x).getInteger()).collect(Collectors.toList());
+ var = new Variant(valueList.toArray(new Integer[valueList.size()]));
+ } else if (plcValueList.get(0) instanceof PlcLINT) {
+ List<Long> valueList = (plcValueList).stream().map(x -> ((PlcLINT) x).getLong()).collect(Collectors.toList());
+ var = new Variant(valueList.toArray(new Long[valueList.size()]));
+ } else if (plcValueList.get(0) instanceof PlcREAL) {
+ List<Float> valueList = (plcValueList).stream().map(x -> ((PlcREAL) x).getFloat()).collect(Collectors.toList());
+ var = new Variant(valueList.toArray(new Float[valueList.size()]));
+ } else if (plcValueList.get(0) instanceof PlcLREAL) {
+ List<Double> valueList = (plcValueList).stream().map(x -> ((PlcLREAL) x).getDouble()).collect(Collectors.toList());
+ var = new Variant(valueList.toArray(new Double[valueList.size()]));
+ } else if (plcValueList.get(0) instanceof PlcSTRING) {
+ List<String> valueList = (plcValueList).stream().map(x -> ((PlcSTRING) x).getString()).collect(Collectors.toList());
+ var = new Variant(valueList.toArray(new String[valueList.size()]));
+ } else {
+ logger.warn("Unsupported data type : {}", plcValueList.get(0).getClass());
+ }
+ } else {
+ var = new Variant(valueObject);
+ }
+
+ DataValue value = new DataValue(var);
ids.add(idNode);
names.add(fieldName);
values.add(value);
diff --git a/plc4j/drivers/opcua/src/test/java/org/apache/plc4x/java/opcua/ManualPLC4XOpcua.java b/plc4j/drivers/opcua/src/test/java/org/apache/plc4x/java/opcua/ManualPLC4XOpcua.java
index edc3614..6407b42 100644
--- a/plc4j/drivers/opcua/src/test/java/org/apache/plc4x/java/opcua/ManualPLC4XOpcua.java
+++ b/plc4j/drivers/opcua/src/test/java/org/apache/plc4x/java/opcua/ManualPLC4XOpcua.java
@@ -63,6 +63,25 @@ public class ManualPLC4XOpcua {
private static final String UINT32_IDENTIFIER = "ns=2;s=HelloWorld/ScalarTypes/UInt32";
private static final String UINT64_IDENTIFIER = "ns=2;s=HelloWorld/ScalarTypes/UInt64";
private static final String UINTEGER_IDENTIFIER = "ns=2;s=HelloWorld/ScalarTypes/UInteger";
+
+ //Arrays
+ private static final String BOOL_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/BooleanArray";
+ private static final String BYTE_STRING_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/ByteStringArray";
+ private static final String BYTE_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/ByteArray";
+ private static final String DOUBLE_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/DoubleArray";
+ private static final String FLOAT_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/FloatArray";
+ private static final String INT16_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/Int16Array";
+ private static final String INT32_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/Int32Array";
+ private static final String INT64_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/Int64Array";
+ private static final String INTEGER_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/IntegerArray";
+ private static final String SBYTE_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/SByteArray";
+ private static final String STRING_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/StringArray";
+ private static final String UINT16_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/UInt16Array";
+ private static final String UINT32_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/UInt32Array";
+ private static final String UINT64_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/UInt64Array";
+ private static final String UINTEGER_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/UIntegerArray";
+
+ //Don't exists
private static final String DOES_NOT_EXIST_IDENTIFIER = "ns=2;i=12512623";
public static void main(String args[]) {
@@ -78,7 +97,7 @@ public class ManualPLC4XOpcua {
PlcField field = fieldH.createField(BOOL_IDENTIFIER);
try {
opcuaConnection = (OpcuaTcpPlcConnection)
- new PlcDriverManager().getConnection("opcua:tcp://127.0.0.1:12686/milo?discovery=false");
+ new PlcDriverManager().getConnection("opcua:tcp://127.0.0.1:12685/milo?discovery=false");
} catch (PlcConnectionException e) {
e.printStackTrace();
@@ -105,6 +124,22 @@ public class ManualPLC4XOpcua {
builder.addItem("UInt64", UINT64_IDENTIFIER);
builder.addItem("UInteger", UINTEGER_IDENTIFIER);
+ builder.addItem("BoolArray", BOOL_ARRAY_IDENTIFIER);
+ builder.addItem("ByteStringArray", BYTE_STRING_ARRAY_IDENTIFIER);
+ builder.addItem("ByteArray", BYTE_ARRAY_IDENTIFIER);
+ builder.addItem("DoubleArray", DOUBLE_ARRAY_IDENTIFIER);
+ builder.addItem("FloatArray", FLOAT_ARRAY_IDENTIFIER);
+ builder.addItem("Int16Array", INT16_ARRAY_IDENTIFIER);
+ builder.addItem("Int32Array", INT32_ARRAY_IDENTIFIER);
+ builder.addItem("Int64Array", INT64_ARRAY_IDENTIFIER);
+ builder.addItem("IntegerArray", INTEGER_ARRAY_IDENTIFIER);
+ builder.addItem("SByteArray", SBYTE_ARRAY_IDENTIFIER);
+ builder.addItem("StringArray", STRING_ARRAY_IDENTIFIER);
+ builder.addItem("UInt16Array", UINT16_ARRAY_IDENTIFIER);
+ builder.addItem("UInt32Array", UINT32_ARRAY_IDENTIFIER);
+ builder.addItem("UInt64Array", UINT64_ARRAY_IDENTIFIER);
+ builder.addItem("UIntegerArray", UINTEGER_ARRAY_IDENTIFIER);
+
builder.addItem("DoesNotExists", DOES_NOT_EXIST_IDENTIFIER);
PlcReadRequest request = builder.build();
@@ -197,5 +232,3 @@ public class ManualPLC4XOpcua {
}
}
}
-
-
diff --git a/plc4j/drivers/opcua/src/test/java/org/apache/plc4x/java/opcua/OpcuaPlcDriverTest.java b/plc4j/drivers/opcua/src/test/java/org/apache/plc4x/java/opcua/OpcuaPlcDriverTest.java
index e30438d..8ce7f62 100644
--- a/plc4j/drivers/opcua/src/test/java/org/apache/plc4x/java/opcua/OpcuaPlcDriverTest.java
+++ b/plc4j/drivers/opcua/src/test/java/org/apache/plc4x/java/opcua/OpcuaPlcDriverTest.java
@@ -32,6 +32,8 @@ import org.eclipse.milo.examples.server.ExampleServer;
import org.junit.jupiter.api.*;
import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
@@ -40,9 +42,16 @@ import static org.apache.plc4x.java.opcua.OpcuaPlcDriver.OPCUA_URI_PATTERN;
import static org.apache.plc4x.java.opcua.UtilsTest.assertMatching;
import static org.assertj.core.api.Assertions.fail;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
*/
public class OpcuaPlcDriverTest {
+
+ private static final Logger logger = LoggerFactory.getLogger(OpcuaPlcDriverTest.class);
+
+
// Read only variables of milo example server of version 3.6
private static final String BOOL_IDENTIFIER_READ_WRITE = "ns=2;s=HelloWorld/ScalarTypes/Boolean";
private static final String BYTE_IDENTIFIER_READ_WRITE = "ns=2;s=HelloWorld/ScalarTypes/Byte";
@@ -59,6 +68,7 @@ public class OpcuaPlcDriverTest {
private static final String UINT64_IDENTIFIER_READ_WRITE = "ns=2;s=HelloWorld/ScalarTypes/UInt64";
private static final String UINTEGER_IDENTIFIER_READ_WRITE = "ns=2;s=HelloWorld/ScalarTypes/UInteger";
private static final String DOES_NOT_EXIST_IDENTIFIER_READ_WRITE = "ns=2;i=12512623";
+
// At the moment not used in PLC4X or in the OPC UA driver
private static final String BYTE_STRING_IDENTIFIER_READ_WRITE = "ns=2;s=HelloWorld/ScalarTypes/ByteString";
private static final String DATE_TIME_READ_WRITE = "ns=2;s=HelloWorld/ScalarTypes/DateTime";
@@ -70,6 +80,25 @@ public class OpcuaPlcDriverTest {
private static final String UTC_TIME_READ_WRITE = "ns=2;s=HelloWorld/ScalarTypes/UtcTime";
private static final String VARIANT_READ_WRITE = "ns=2;s=HelloWorld/ScalarTypes/Variant";
private static final String XML_ELEMENT_READ_WRITE = "ns=2;s=HelloWorld/ScalarTypes/XmlElement";
+
+ //Arrays
+ private static final String BOOL_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/BooleanArray";
+ private static final String BYTE_STRING_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/ByteStringArray";
+ private static final String BYTE_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/ByteArray";
+ private static final String DOUBLE_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/DoubleArray";
+ private static final String FLOAT_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/FloatArray";
+ private static final String INT16_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/Int16Array";
+ private static final String INT32_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/Int32Array";
+ private static final String INT64_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/Int64Array";
+ private static final String INTEGER_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/IntegerArray";
+ private static final String SBYTE_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/SByteArray";
+ private static final String STRING_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/StringArray";
+ private static final String UINT16_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/UInt16Array";
+ private static final String UINT32_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/UInt32Array";
+ private static final String UINT64_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/UInt64Array";
+ private static final String UINTEGER_ARRAY_IDENTIFIER = "ns=2;s=HelloWorld/ArrayTypes/UIntegerArray";
+
+
// Address of local milo server
private String miloLocalAddress = "127.0.0.1:12686/milo";
//Tcp pattern of OPC UA
@@ -177,6 +206,21 @@ public class OpcuaPlcDriverTest {
builder.addItem("UInt64", UINT64_IDENTIFIER_READ_WRITE);
builder.addItem("UInteger", UINTEGER_IDENTIFIER_READ_WRITE);
+ builder.addItem("BoolArray", BOOL_ARRAY_IDENTIFIER);
+ builder.addItem("ByteStringArray", BYTE_STRING_ARRAY_IDENTIFIER);
+ builder.addItem("ByteArray", BYTE_ARRAY_IDENTIFIER);
+ builder.addItem("DoubleArray", DOUBLE_ARRAY_IDENTIFIER);
+ builder.addItem("FloatArray", FLOAT_ARRAY_IDENTIFIER);
+ builder.addItem("Int16Array", INT16_ARRAY_IDENTIFIER);
+ builder.addItem("Int32Array", INT32_ARRAY_IDENTIFIER);
+ builder.addItem("Int64Array", INT64_ARRAY_IDENTIFIER);
+ builder.addItem("SByteArray", SBYTE_ARRAY_IDENTIFIER);
+ builder.addItem("StringArray", STRING_ARRAY_IDENTIFIER);
+ builder.addItem("UInt16Array", UINT16_ARRAY_IDENTIFIER);
+ builder.addItem("UInt32Array", UINT32_ARRAY_IDENTIFIER);
+ builder.addItem("UInt64Array", UINT64_ARRAY_IDENTIFIER);
+ builder.addItem("UIntegerArray", UINTEGER_ARRAY_IDENTIFIER);
+
builder.addItem("DoesNotExists", DOES_NOT_EXIST_IDENTIFIER_READ_WRITE);
PlcReadRequest request = builder.build();
@@ -196,6 +240,19 @@ public class OpcuaPlcDriverTest {
assert response.getResponseCode("UInt64").equals(PlcResponseCode.OK);
assert response.getResponseCode("UInteger").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("BoolArray").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("ByteArray").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("DoubleArray").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("FloatArray").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("Int16Array").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("Int32Array").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("Int64Array").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("SByteArray").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("StringArray").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("UInt16Array").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("UInt32Array").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("UInt64Array").equals(PlcResponseCode.OK);
+
assert response.getResponseCode("DoesNotExists").equals(PlcResponseCode.NOT_FOUND);
opcuaConnection.close();
@@ -212,40 +269,70 @@ public class OpcuaPlcDriverTest {
assert opcuaConnection.isConnected();
PlcWriteRequest.Builder builder = opcuaConnection.writeRequestBuilder();
- builder.addItem("Bool", BOOL_IDENTIFIER_READ_WRITE, true);
+// builder.addItem("Bool", BOOL_IDENTIFIER_READ_WRITE, true);
// builder.addItem("Byte", BYTE_IDENTIFIER_READ_WRITE);
- builder.addItem("Double", DOUBLE_IDENTIFIER_READ_WRITE, 0.5d);
- builder.addItem("Float", FLOAT_IDENTIFIER_READ_WRITE, 0.5f);
+// builder.addItem("Double", DOUBLE_IDENTIFIER_READ_WRITE, 0.5d);
+// builder.addItem("Float", FLOAT_IDENTIFIER_READ_WRITE, 0.5f);
// builder.addItem("Int16", INT16_IDENTIFIER_READ_WRITE);
- builder.addItem("Int32", INT32_IDENTIFIER_READ_WRITE, 42);
- builder.addItem("Int64", INT64_IDENTIFIER_READ_WRITE, 42L);
- builder.addItem("Integer", INTEGER_IDENTIFIER_READ_WRITE, 42);
+// builder.addItem("Int32", INT32_IDENTIFIER_READ_WRITE, 42);
+// builder.addItem("Int64", INT64_IDENTIFIER_READ_WRITE, 42L);
+// builder.addItem("Integer", INTEGER_IDENTIFIER_READ_WRITE, 42);
// builder.addItem("SByte", SBYTE_IDENTIFIER_READ_WRITE);
- builder.addItem("String", STRING_IDENTIFIER_READ_WRITE, "Helllo Toddy!");
+// builder.addItem("String", STRING_IDENTIFIER_READ_WRITE, "Helllo Toddy!");
// builder.addItem("UInt16", UINT16_IDENTIFIER_READ_WRITE);
// builder.addItem("UInt32", UINT32_IDENTIFIER_READ_WRITE);
- builder.addItem("UInt64", UINT64_IDENTIFIER_READ_WRITE, new BigInteger("1337"));
+// builder.addItem("UInt64", UINT64_IDENTIFIER_READ_WRITE, new BigInteger("1337"));
// builder.addItem("UInteger", UINTEGER_IDENTIFIER_READ_WRITE);
-// builder.addItem("DoesNotExists", DOES_NOT_EXIST_IDENTIFIER_READ_WRITE);
+
+ builder.addItem("BooleanArray", BOOL_ARRAY_IDENTIFIER, new Boolean[] {true, true, true, true, true});
+ builder.addItem("ByteArray", BYTE_ARRAY_IDENTIFIER, new Byte[] {1, -100, 100, -123, 123});
+ builder.addItem("DoubleArray", DOUBLE_ARRAY_IDENTIFIER, new Double[] {1.0,2.0,3.0,4.0,5.0});
+ builder.addItem("FloatArray", FLOAT_ARRAY_IDENTIFIER, new Float[] {1.0F,2.0F,3.0F,4.0F,5.0F});
+ builder.addItem("Int16Array", INT16_ARRAY_IDENTIFIER, new Short[] {1,2,3,4,5});
+ builder.addItem("Int32Array", INT32_ARRAY_IDENTIFIER, new Integer[] {1,2,3,4,5});
+ builder.addItem("Int64Array", INT64_ARRAY_IDENTIFIER, new Long[] {1L,2L,3L,4L,5L});
+ builder.addItem("IntegerArray", INT32_ARRAY_IDENTIFIER, new Integer[] {1,2,3,4,5});
+ //builder.addItem("SByteArray", SBYTE_ARRAY_IDENTIFIER, new Byte[] {1,2,3,4,5});
+ builder.addItem("StringArray", STRING_ARRAY_IDENTIFIER, new String[] {"1","2","3","4","5"});
+
+ // builder.addItem("DoesNotExists", DOES_NOT_EXIST_IDENTIFIER_READ_WRITE);
PlcWriteRequest request = builder.build();
PlcWriteResponse response = request.execute().get();
- assert response.getResponseCode("Bool").equals(PlcResponseCode.OK);
+// logger.info(response.getResponseCode("Bool").toString());
+// assert response.getResponseCode("Bool").equals(PlcResponseCode.OK);
// assert response.getResponseCode("Byte").equals(PlcResponseCode.OK);
- assert response.getResponseCode("Double").equals(PlcResponseCode.OK);
- assert response.getResponseCode("Float").equals(PlcResponseCode.OK);
+// assert response.getResponseCode("Double").equals(PlcResponseCode.OK);
+// assert response.getResponseCode("Float").equals(PlcResponseCode.OK);
// assert response.getResponseCode("Int16").equals(PlcResponseCode.OK);
- assert response.getResponseCode("Int32").equals(PlcResponseCode.OK);
- assert response.getResponseCode("Int64").equals(PlcResponseCode.OK);
- assert response.getResponseCode("Integer").equals(PlcResponseCode.OK);
+// assert response.getResponseCode("Int32").equals(PlcResponseCode.OK);
+// assert response.getResponseCode("Int64").equals(PlcResponseCode.OK);
+// assert response.getResponseCode("Integer").equals(PlcResponseCode.OK);
// assert response.getResponseCode("SByte").equals(PlcResponseCode.OK);
- assert response.getResponseCode("String").equals(PlcResponseCode.OK);
+// assert response.getResponseCode("String").equals(PlcResponseCode.OK);
// assert response.getResponseCode("UInt16").equals(PlcResponseCode.OK);
// assert response.getResponseCode("UInt32").equals(PlcResponseCode.OK);
- assert response.getResponseCode("UInt64").equals(PlcResponseCode.OK);
+// assert response.getResponseCode("UInt64").equals(PlcResponseCode.OK);
// assert response.getResponseCode("UInteger").equals(PlcResponseCode.OK);
-//
+
+ assert response.getResponseCode("BooleanArray").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("ByteArray").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("DoubleArray").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("FloatArray").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("Int16Array").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("Int32Array").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("Int64Array").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("IntegerArray").equals(PlcResponseCode.OK);
+// assert response.getResponseCode("SByteArray").equals(PlcResponseCode.OK);
+ assert response.getResponseCode("StringArray").equals(PlcResponseCode.OK);
+// assert response.getResponseCode("UInt16Array").equals(PlcResponseCode.OK);
+// assert response.getResponseCode("UInt32Array").equals(PlcResponseCode.OK);
+// assert response.getResponseCode("UInt64Array").equals(PlcResponseCode.OK);
+// assert response.getResponseCode("UIntegerArray").equals(PlcResponseCode.OK);
+
+ assert response.getResponseCode("StringArray").equals(PlcResponseCode.OK);
+
// assert response.getResponseCode("DoesNotExists").equals(PlcResponseCode.NOT_FOUND);
opcuaConnection.close();