@Override
    public CompletableFuture<PlcBrowseResponse> browse(PlcBrowseRequest browseRequest) {
        CompletableFuture<PlcBrowseResponse> future = new CompletableFuture<>();
        List<PlcBrowseItem> values = new ArrayList<>();
        Map<String, PlcResponseCode> codes = new HashMap<>();
        Map<String, List<PlcBrowseItem>> responseValues = new HashMap<>();

        for (Map.Entry<String, ProfinetDevice> device : devices.entrySet()) {
            device.getValue().browseTags(values);
        }

        for (String queryname : browseRequest.getQueryNames()) {
            responseValues.put(queryname, values);
        }

        DefaultPlcBrowseResponse response = new DefaultPlcBrowseResponse(browseRequest, codes, responseValues);
        future.complete(response);
        return future;
    }
Start a PN or LLDP discovery to find PN devices on the network.
We pass in a driverContext handler, that checks if an incoming response has the information needed for
connecting. It just ignores the rest ...

@throws InterruptedException
@throws PlcConnectionException
plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/protocol/ProfinetProtocolLogic.java