public void setValue()

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);
        }
    }