in plc4j/tools/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/backend/Plc4xCommunication.java [250:280]
public void setValue(String tag, String value, String connectionString) {
try (PlcConnection connection = cachedPlcConnectionManager.getConnection(connectionString)) {
if (!connection.getMetadata().isWriteSupported()) {
logger.error("This connection doesn't support writing.");
return;
}
// Create a new read request:
// - Give the single item requested an alias name
final PlcWriteRequest.Builder builder = connection.writeRequestBuilder();
//If an array value is passed instead of a single value then convert to a String array
if ((value.charAt(0) == '[') && (value.charAt(value.length() - 1) == ']')) {
String[] values = value.substring(1, value.length() - 1).split(",");
logger.info("Adding Tag " + Arrays.toString(values));
builder.addTagAddress(tag, tag, values);
} else {
builder.addTagAddress(tag, tag, value);
}
PlcWriteRequest writeRequest = builder.build();
try {
writeRequest.execute().get();
} catch (InterruptedException | ExecutionException e) {
logger.warn("Failed" + e);
}
} catch (Exception e) {
logger.warn("Failed" + e);
}
}