use of org.apache.plc4x.java.PlcDriverManager in project plc4x by apache.
the class GenericCANDriverTest method testConnection.
@Test
void testConnection() throws PlcConnectionException {
PlcConnection connection = new PlcDriverManager().getConnection("genericcan:virtualcan://");
assertNotNull(connection);
assertTrue(connection.isConnected());
assertFalse(connection.getMetadata().canRead());
assertTrue(connection.getMetadata().canWrite());
assertTrue(connection.getMetadata().canSubscribe());
}
use of org.apache.plc4x.java.PlcDriverManager in project plc4x by apache.
the class OpcuaPlcDriverTest method connectionNoParams.
@Test
public void connectionNoParams() {
connectionStringValidSet.forEach(connectionString -> {
try {
PlcConnection opcuaConnection = new PlcDriverManager().getConnection(connectionString);
Condition<PlcConnection> is_connected = new Condition<>(PlcConnection::isConnected, "is connected");
assertThat(opcuaConnection).is(is_connected);
opcuaConnection.close();
assertThat(opcuaConnection).isNot(is_connected);
} catch (PlcConnectionException e) {
fail("Exception during connectionNoParams while connecting Test EXCEPTION: " + e.getMessage());
} catch (Exception e) {
fail("Exception during connectionNoParams while closing Test EXCEPTION: " + e.getMessage());
}
});
}
use of org.apache.plc4x.java.PlcDriverManager in project plc4x by apache.
the class OpcuaPlcDriverTest method writeVariables.
@Test
public void writeVariables() throws Exception {
PlcConnection opcuaConnection = new PlcDriverManager().getConnection(tcpConnectionAddress);
Condition<PlcConnection> is_connected = new Condition<>(PlcConnection::isConnected, "is connected");
assertThat(opcuaConnection).is(is_connected);
PlcWriteRequest.Builder builder = opcuaConnection.writeRequestBuilder();
builder.addItem("Bool", BOOL_IDENTIFIER_READ_WRITE, true);
builder.addItem("Byte", BYTE_IDENTIFIER_READ_WRITE + ";BYTE", (short) 3);
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 + "", (short) 1);
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 + ";SINT", -127);
builder.addItem("String", STRING_IDENTIFIER_READ_WRITE, "Helllo Toddy!");
builder.addItem("UInt16", UINT16_IDENTIFIER_READ_WRITE + ";UINT", 65535);
builder.addItem("UInt32", UINT32_IDENTIFIER_READ_WRITE + ";UDINT", 101010101L);
builder.addItem("UInt64", UINT64_IDENTIFIER_READ_WRITE + ";ULINT", new BigInteger("1337"));
builder.addItem("UInteger", UINTEGER_IDENTIFIER_READ_WRITE + ";UDINT", 102020202L);
builder.addItem("BooleanArray", BOOL_ARRAY_IDENTIFIER, new Boolean[] { true, true, true, true, true });
builder.addItem("ByteArray", BYTE_ARRAY_IDENTIFIER + ";BYTE", new Short[] { 1, 100, 100, 255, 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("UInt16Array", UINT16_ARRAY_IDENTIFIER + ";UINT", new Short[] { 1, 2, 3, 4, 5 });
builder.addItem("UInt32Array", UINT32_ARRAY_IDENTIFIER + ";UDINT", new Integer[] { 1, 2, 3, 4, 5 });
builder.addItem("UInt64Array", UINT64_ARRAY_IDENTIFIER + ";ULINT", new Long[] { 1L, 2L, 3L, 4L, 5L });
builder.addItem("DoesNotExists", DOES_NOT_EXIST_IDENTIFIER_READ_WRITE, "11");
PlcWriteRequest request = builder.build();
PlcWriteResponse response = request.execute().get();
assertThat(response.getResponseCode("Bool")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("Byte")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("Double")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("Float")).isEqualTo(PlcResponseCode.OK);
// assertThat(response.getResponseCode("Int16")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("Int32")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("Int64")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("Integer")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("SByte")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("String")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("UInt16")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("UInt32")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("UInt64")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("UInteger")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("BooleanArray")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("ByteArray")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("DoubleArray")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("FloatArray")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("Int16Array")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("Int32Array")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("Int64Array")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("IntegerArray")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("SByteArray")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("StringArray")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("UInt16Array")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("UInt32Array")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("UInt64Array")).isEqualTo(PlcResponseCode.OK);
assertThat(response.getResponseCode("DoesNotExists")).isEqualTo(PlcResponseCode.NOT_FOUND);
opcuaConnection.close();
assert !opcuaConnection.isConnected();
}
use of org.apache.plc4x.java.PlcDriverManager in project plc4x by apache.
the class OpcuaPlcDriverTest method connectionWithDiscoveryParam.
@Test
public void connectionWithDiscoveryParam() {
connectionStringValidSet.forEach(connectionAddress -> {
discoveryParamValidSet.forEach(discoveryParam -> {
String connectionString = connectionAddress + paramSectionDivider + discoveryParam;
try {
PlcConnection opcuaConnection = new PlcDriverManager().getConnection(connectionString);
Condition<PlcConnection> is_connected = new Condition<>(PlcConnection::isConnected, "is connected");
assertThat(opcuaConnection).is(is_connected);
opcuaConnection.close();
assertThat(opcuaConnection).isNot(is_connected);
} catch (PlcConnectionException e) {
fail("Exception during connectionWithDiscoveryParam while connecting Test EXCEPTION: " + e.getMessage());
} catch (Exception e) {
fail("Exception during connectionWithDiscoveryParam while closing Test EXCEPTION: " + e.getMessage());
}
});
});
}
use of org.apache.plc4x.java.PlcDriverManager in project plc4x by apache.
the class OpcuaSubscriptionHandleTest method setup.
@BeforeAll
public static void setup() {
try {
// When switching JDK versions from a newer to an older version,
// this can cause the server to not start correctly.
// Deleting the directory makes sure the key-store is initialized correctly.
Path securityBaseDir = Paths.get(System.getProperty("java.io.tmpdir"), "server", "security");
try {
Files.delete(securityBaseDir);
} catch (Exception e) {
// Ignore this ...
}
exampleServer = new ExampleServer();
exampleServer.startup().get();
// Connect
opcuaConnection = new PlcDriverManager().getConnection(tcpConnectionAddress);
assert opcuaConnection.isConnected();
} catch (Exception e) {
e.printStackTrace();
try {
exampleServer.shutdown().get();
} catch (Exception j) {
j.printStackTrace();
}
}
}
Aggregations