You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2018/10/17 16:48:16 UTC
[incubator-plc4x] 09/19: removed default methods from the api
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit 8da0bc27e1db6fae82612d65e44b738df9d740be
Author: Andrey Skorikov <an...@codecentric.de>
AuthorDate: Thu Oct 4 12:38:14 2018 +0200
removed default methods from the api
---
.../java/org/apache/plc4x/camel/Plc4XConsumer.java | 13 ++---
.../plc4x/java/api/connection/PlcConnection.java | 12 +++++
.../java/api/connection/PlcProprietarySender.java | 2 +-
.../plc4x/java/api/connection/PlcReader.java | 12 -----
.../plc4x/java/api/connection/PlcSubscriber.java | 59 ----------------------
.../plc4x/java/api/connection/PlcWriter.java | 12 -----
.../java/api/messages/PlcProprietaryResponse.java | 4 +-
.../java/ads/connection/AdsTcpPlcConnection.java | 7 +--
.../apache/plc4x/java/ads/ManualPlc4XAdsTest.java | 13 ++---
.../ads/connection/AdsSerialPlcConnectionTest.java | 4 +-
.../plc4x/java/modbus/ManualPlc4XModbusTest.java | 19 ++++---
.../connection/ModbusSerialPlcConnectionTest.java | 4 +-
12 files changed, 52 insertions(+), 109 deletions(-)
diff --git a/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XConsumer.java b/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XConsumer.java
index 42544f5..7887f02 100644
--- a/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XConsumer.java
+++ b/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XConsumer.java
@@ -26,10 +26,8 @@ import org.apache.camel.util.AsyncProcessorConverterHelper;
import org.apache.plc4x.java.api.connection.PlcConnection;
import org.apache.plc4x.java.api.connection.PlcSubscriber;
import org.apache.plc4x.java.api.exceptions.PlcException;
-import org.apache.plc4x.java.api.messages.PlcSubscriptionEvent;
-import org.apache.plc4x.java.api.messages.PlcSubscriptionRequest;
-import org.apache.plc4x.java.api.messages.PlcSubscriptionResponse;
-import org.apache.plc4x.java.api.messages.PlcUnsubscriptionResponse;
+import org.apache.plc4x.java.api.messages.*;
+import org.apache.plc4x.java.api.model.PlcSubscriptionHandle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -88,14 +86,17 @@ public class Plc4XConsumer extends ServiceSupport implements Consumer, java.util
// TODO: Is it correct to only support one field?
PlcSubscriptionRequest request = plcSubscriber.subscriptionRequestBuilder()
.addCyclicField("default", fieldQuery, Duration.of(3, ChronoUnit.SECONDS)).build();
- plcSubscriber.register(request, this);
+ PlcSubscriptionResponse plcSubscriptionResponse = plcSubscriber.subscribe(request).get();
+ // TODO: we need to return the plcSubscriptionResponse here too as we need this to unsubscribe...
+ plcSubscriber.register(this, plcSubscriptionResponse.getSubscriptionHandles());
}
@Override
protected void doStop() throws InterruptedException, ExecutionException, TimeoutException, PlcException {
PlcSubscriber plcSubscriber = plcConnection.getSubscriber().orElseThrow(
() -> new PlcException("Connection doesn't support subscriptions."));
- CompletableFuture<PlcUnsubscriptionResponse> unsubscriptionFuture = plcSubscriber.unsubscribe(builder -> builder.addHandles(subscriptionResponse.getSubscriptionHandles()));
+ PlcUnsubscriptionRequest request = plcSubscriber.unsubscriptionRequestBuilder().addHandles(subscriptionResponse.getSubscriptionHandles()).build();
+ CompletableFuture<PlcUnsubscriptionResponse> unsubscriptionFuture = plcSubscriber.unsubscribe(request);
PlcUnsubscriptionResponse unsubscriptionResponse = unsubscriptionFuture.get(5, TimeUnit.SECONDS);
// TODO: Handle the response ...
try {
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcConnection.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcConnection.java
index c508217..4c2b197 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcConnection.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcConnection.java
@@ -19,6 +19,10 @@ under the License.
package org.apache.plc4x.java.api.connection;
import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
+import org.apache.plc4x.java.api.messages.PlcReadRequest;
+import org.apache.plc4x.java.api.messages.PlcSubscriptionRequest;
+import org.apache.plc4x.java.api.messages.PlcUnsubscriptionRequest;
+import org.apache.plc4x.java.api.messages.PlcWriteRequest;
import java.util.Optional;
@@ -53,6 +57,14 @@ public interface PlcConnection extends AutoCloseable {
@Override
void close() throws Exception;
+ /*Optional<PlcReadRequest.Builder> readRequestBuilder();
+
+ Optional<PlcWriteRequest.Builder> writeRequestBuilder();
+
+ Optional<PlcSubscriptionRequest.Builder> subscriptionRequestBuilder();
+
+ Optional<PlcUnsubscriptionRequest.Builder> unsubscriptionRequestBuilder();*/
+
Optional<PlcReader> getReader();
Optional<PlcWriter> getWriter();
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcProprietarySender.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcProprietarySender.java
index 926b1bf..2a053cb 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcProprietarySender.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcProprietarySender.java
@@ -25,5 +25,5 @@ import java.util.concurrent.CompletableFuture;
public interface PlcProprietarySender {
- <PROP_RESPONSE> CompletableFuture<PlcProprietaryResponse<PROP_RESPONSE>> send(PlcProprietaryRequest proprietaryRequest);
+ <T> CompletableFuture<PlcProprietaryResponse<T>> send(PlcProprietaryRequest proprietaryRequest);
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcReader.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcReader.java
index bdded83..b78d306 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcReader.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcReader.java
@@ -37,18 +37,6 @@ public interface PlcReader {
*/
CompletableFuture<PlcReadResponse> read(PlcReadRequest readRequest);
- /**
- * Reads a requested value from a PLC.
- *
- * @param readRequestBuilderConsumer consumer which can be used to build requests.
- * @return a {@link CompletableFuture} giving async access to the returned value.
- */
- default CompletableFuture<PlcReadResponse> read(Consumer<PlcReadRequest.Builder> readRequestBuilderConsumer) {
- PlcReadRequest.Builder requestBuilder = readRequestBuilder();
- readRequestBuilderConsumer.accept(requestBuilder);
- return read(requestBuilder.build());
- }
-
PlcReadRequest.Builder readRequestBuilder();
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcSubscriber.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcSubscriber.java
index 0581bd6..1f582cb 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcSubscriber.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcSubscriber.java
@@ -42,18 +42,6 @@ public interface PlcSubscriber {
CompletableFuture<PlcSubscriptionResponse> subscribe(PlcSubscriptionRequest subscriptionRequest);
/**
- * Subscribes to fields on the PLC.
- *
- * @param plcSubscriptionRequestBuilderConsumer consumer which can be used to build requests.
- * @return subscription response containing a subscription response item for each subscription request item.
- */
- default CompletableFuture<PlcSubscriptionResponse> subscribe(Consumer<PlcSubscriptionRequest.Builder> plcSubscriptionRequestBuilderConsumer) {
- PlcSubscriptionRequest.Builder builder = subscriptionRequestBuilder();
- plcSubscriptionRequestBuilderConsumer.accept(builder);
- return subscribe(builder.build());
- }
-
- /**
* Unsubscribes from fields on the PLC. For unsubscribing the unsubscription request uses the subscription
* handle returned as part of the subscription response item.
*
@@ -63,59 +51,12 @@ public interface PlcSubscriber {
CompletableFuture<PlcUnsubscriptionResponse> unsubscribe(PlcUnsubscriptionRequest unsubscriptionRequest);
/**
- * Unsubscribes from fields on the PLC. For unsubscribing the unsubscription request uses the subscription
- * handle returned as part of the subscription response item.
- *
- * @param plcSubscriptionRequestBuilderConsumer consumer which can be used to build requests.
- * @return unsubscription response containing a unsubscription response item for each unsubscription request item.
- */
- default CompletableFuture<PlcUnsubscriptionResponse> unsubscribe(Consumer<PlcUnsubscriptionRequest.Builder> plcSubscriptionRequestBuilderConsumer) {
- PlcUnsubscriptionRequest.Builder builder = unsubscriptionRequestBuilder();
- plcSubscriptionRequestBuilderConsumer.accept(builder);
- return unsubscribe(builder.build());
- }
-
- /**
- * Convenience method to subscribe a {@link Consumer} to all fields of the subscription.
- *
- * @param subscriptionRequest subscription request
- * @param consumer consumer for all {@link PlcSubscriptionEvent}s
- * @return TODO: document me
- * @throws ExecutionException something went wrong.
- * @throws InterruptedException something went wrong.
- */
- default PlcConsumerRegistration register(PlcSubscriptionRequest subscriptionRequest, Consumer<PlcSubscriptionEvent> consumer) throws ExecutionException, InterruptedException {
- PlcSubscriptionResponse plcSubscriptionResponse = subscribe(subscriptionRequest).get();
- // TODO: we need to return the plcSubscriptionResponse here too as we need this to unsubscribe...
- return register(consumer, plcSubscriptionResponse.getSubscriptionHandles().toArray(new PlcSubscriptionHandle[0]));
- }
-
- /**
- * Convenience method to subscribe a {@link Consumer} to all fields of the subscription.
- *
- * @param subscriptionRequestBuilderConsumer consumer for building subscription request.
- * @param consumer consumer for all {@link PlcSubscriptionEvent}s
- * @return TODO: document me
- * @throws ExecutionException something went wrong.
- * @throws InterruptedException something went wrong.
- */
- default PlcConsumerRegistration register(Consumer<PlcSubscriptionRequest.Builder> subscriptionRequestBuilderConsumer, Consumer<PlcSubscriptionEvent> consumer) throws ExecutionException, InterruptedException {
- PlcSubscriptionRequest.Builder builder = subscriptionRequestBuilder();
- subscriptionRequestBuilderConsumer.accept(builder);
- return register(builder.build(), consumer);
- }
-
- /**
* @param consumer
* @param handles
* @return TODO: document me
*/
PlcConsumerRegistration register(Consumer<PlcSubscriptionEvent> consumer, Collection<PlcSubscriptionHandle> handles);
- default PlcConsumerRegistration register(Consumer<PlcSubscriptionEvent> consumer, PlcSubscriptionHandle... handles) {
- return register(consumer, Arrays.asList(handles));
- }
-
/**
* // TODO: document me.
*/
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcWriter.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcWriter.java
index ae94859..b22977f 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcWriter.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcWriter.java
@@ -37,18 +37,6 @@ public interface PlcWriter {
*/
CompletableFuture<PlcWriteResponse> write(PlcWriteRequest writeRequest);
- /**
- * Writes a given value to a PLC.
- *
- * @param writeRequestBuilderConsumer consumer which can be used to build requests.
- * @return a {@link CompletableFuture} giving async access to the response of the write operation.
- */
- default CompletableFuture<PlcWriteResponse> write(Consumer<PlcWriteRequest.Builder> writeRequestBuilderConsumer) {
- PlcWriteRequest.Builder requestBuilder = writeRequestBuilder();
- writeRequestBuilderConsumer.accept(requestBuilder);
- return write(requestBuilder.build());
- }
-
PlcWriteRequest.Builder writeRequestBuilder();
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcProprietaryResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcProprietaryResponse.java
index 9c03dba..3cd64d6 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcProprietaryResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcProprietaryResponse.java
@@ -18,6 +18,6 @@
*/
package org.apache.plc4x.java.api.messages;
-public interface PlcProprietaryResponse<RESPONSE> extends PlcResponse {
- RESPONSE getResponse();
+public interface PlcProprietaryResponse<T> extends PlcResponse {
+ T getResponse();
}
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java
index 8433526..d88dee7 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java
@@ -260,10 +260,11 @@ public class AdsTcpPlcConnection extends AdsAbstractPlcConnection implements Plc
@Override
public PlcConsumerRegistration register(Consumer<PlcSubscriptionEvent> consumer, Collection<PlcSubscriptionHandle> handles) {
- return register(consumer, handles.toArray(new PlcSubscriptionHandle[0]));
+ return register(consumer, handles);
}
- @Override
+ // TODO: figure out what this is
+ /*@Override
public InternalPlcConsumerRegistration register(Consumer<PlcSubscriptionEvent> consumer, PlcSubscriptionHandle... handles) {
Objects.requireNonNull(consumer);
Objects.requireNonNull(handles);
@@ -297,7 +298,7 @@ public class AdsTcpPlcConnection extends AdsAbstractPlcConnection implements Plc
getChannel().pipeline().get(Plc4x2AdsProtocol.class).addConsumer(adsDeviceNotificationRequestConsumer);
return internalPlcConsumerRegistration;
- }
+ }*/
@Override
public void unregister(PlcConsumerRegistration plcConsumerRegistration) {
diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ManualPlc4XAdsTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ManualPlc4XAdsTest.java
index bca72a5..ad56e01 100644
--- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ManualPlc4XAdsTest.java
+++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ManualPlc4XAdsTest.java
@@ -22,9 +22,7 @@ import org.apache.plc4x.java.PlcDriverManager;
import org.apache.plc4x.java.api.connection.PlcConnection;
import org.apache.plc4x.java.api.connection.PlcReader;
import org.apache.plc4x.java.api.connection.PlcSubscriber;
-import org.apache.plc4x.java.api.messages.PlcReadResponse;
-import org.apache.plc4x.java.api.messages.PlcSubscriptionResponse;
-import org.apache.plc4x.java.api.messages.PlcUnsubscriptionResponse;
+import org.apache.plc4x.java.api.messages.*;
import org.apache.plc4x.java.api.model.PlcConsumerRegistration;
import java.util.Collection;
@@ -47,7 +45,8 @@ public class ManualPlc4XAdsTest {
PlcReader reader = plcConnection.getReader().orElseThrow(() -> new RuntimeException("No Reader found"));
- CompletableFuture<PlcReadResponse> response = reader.read(builder -> builder.addItem("station", "Allgemein_S2.Station:BYTE"));
+ PlcReadRequest readRequest = reader.readRequestBuilder().addItem("station", "Allgemein_S2.Station:BYTE").build();
+ CompletableFuture<PlcReadResponse> response = reader.read(readRequest);
PlcReadResponse readResponse = response.get();
System.out.println("Response " + readResponse);
Collection<Integer> stations = readResponse.getAllIntegers("station");
@@ -55,7 +54,8 @@ public class ManualPlc4XAdsTest {
PlcSubscriber plcSubscriber = plcConnection.getSubscriber().orElseThrow(() -> new RuntimeException("Subscribe not available"));
- CompletableFuture<PlcSubscriptionResponse> subscribeResponse = plcSubscriber.subscribe(builder -> builder.addChangeOfStateField("stationChange", "Allgemein_S2.Station:BYTE"));
+ PlcSubscriptionRequest subscriptionRequest = plcSubscriber.subscriptionRequestBuilder().addChangeOfStateField("stationChange", "Allgemein_S2.Station:BYTE").build();
+ CompletableFuture<PlcSubscriptionResponse> subscribeResponse = plcSubscriber.subscribe(subscriptionRequest);
PlcSubscriptionResponse plcSubscriptionResponse = subscribeResponse.get();
PlcConsumerRegistration plcConsumerRegistration = plcSubscriber.register(System.out::println, plcSubscriptionResponse.getSubscriptionHandles());
@@ -63,7 +63,8 @@ public class ManualPlc4XAdsTest {
TimeUnit.SECONDS.sleep(5);
plcSubscriber.unregister(plcConsumerRegistration);
- CompletableFuture<PlcUnsubscriptionResponse> unsubscriptionResponse = plcSubscriber.unsubscribe(builder -> builder.addHandles(plcSubscriptionResponse.getSubscriptionHandles()));
+ PlcUnsubscriptionRequest unsubscriptionRequest = plcSubscriber.unsubscriptionRequestBuilder().addHandles(plcSubscriptionResponse.getSubscriptionHandles()).build();
+ CompletableFuture<PlcUnsubscriptionResponse> unsubscriptionResponse = plcSubscriber.unsubscribe(unsubscriptionRequest);
unsubscriptionResponse
.get(5, TimeUnit.SECONDS);
diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnectionTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnectionTest.java
index 9988da3..9b0a7f4 100644
--- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnectionTest.java
+++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnectionTest.java
@@ -28,6 +28,7 @@ import org.apache.plc4x.java.ads.api.generic.types.AmsPort;
import org.apache.plc4x.java.ads.api.serial.AmsSerialAcknowledgeFrame;
import org.apache.plc4x.java.ads.api.serial.AmsSerialFrame;
import org.apache.plc4x.java.ads.api.serial.types.*;
+import org.apache.plc4x.java.api.messages.PlcReadRequest;
import org.apache.plc4x.java.api.messages.PlcReadResponse;
import org.apache.plc4x.java.base.connection.AbstractPlcConnection;
import org.apache.plc4x.java.base.connection.SerialChannelFactory;
@@ -75,7 +76,8 @@ public class AdsSerialPlcConnectionTest {
@Test
public void testRead() throws Exception {
prepareSerialSimulator();
- CompletableFuture<PlcReadResponse> read = SUT.read(builder -> builder.addItem("test", "0/0:BYTE"));
+ PlcReadRequest request = SUT.readRequestBuilder().addItem("test", "0/0:BYTE").build();
+ CompletableFuture<PlcReadResponse> read = SUT.read(request);
PlcReadResponse plcReadResponse = read.get(30, TimeUnit.SECONDS);
assertNotNull(plcReadResponse);
}
diff --git a/plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/ManualPlc4XModbusTest.java b/plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/ManualPlc4XModbusTest.java
index 370840d..401c872 100644
--- a/plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/ManualPlc4XModbusTest.java
+++ b/plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/ManualPlc4XModbusTest.java
@@ -23,7 +23,9 @@ import org.apache.plc4x.java.PlcDriverManager;
import org.apache.plc4x.java.api.connection.PlcConnection;
import org.apache.plc4x.java.api.connection.PlcReader;
import org.apache.plc4x.java.api.connection.PlcWriter;
+import org.apache.plc4x.java.api.messages.PlcReadRequest;
import org.apache.plc4x.java.api.messages.PlcReadResponse;
+import org.apache.plc4x.java.api.messages.PlcWriteRequest;
import org.apache.plc4x.java.api.messages.PlcWriteResponse;
import org.apache.plc4x.java.base.util.HexUtil;
@@ -50,7 +52,8 @@ public class ManualPlc4XModbusTest {
{
PlcReader reader = plcConnection.getReader().orElseThrow(() -> new RuntimeException("No Reader found"));
- PlcReadResponse readResponse = reader.read(builder -> builder.addItem("randomRegister", "register:7[3]")).get();
+ PlcReadRequest readRequest = reader.readRequestBuilder().addItem("randomRegister", "register:7[3]").build();
+ PlcReadResponse readResponse = reader.read(readRequest).get();
System.out.println("Response " + readResponse);
readResponse.getAllByteArrays("randomRegister").stream()
.map(HexUtil::toHex)
@@ -63,7 +66,8 @@ public class ManualPlc4XModbusTest {
PlcReader reader = plcConnection.getReader().orElseThrow(() -> new RuntimeException("No Reader found"));
// Just dump the actual values
- PlcReadResponse readResponse = reader.read(builder -> builder.addItem("randomRegister", "register:3[2]")).get();
+ PlcReadRequest readRequest = reader.readRequestBuilder().addItem("randomRegister", "register:3[2]").build();
+ PlcReadResponse readResponse = reader.read(readRequest).get();
System.out.println("Response " + readResponse);
Collection<Byte[]> randomRegisters = readResponse.getAllByteArrays("randomRegister");
randomRegisters.stream()
@@ -86,13 +90,14 @@ public class ManualPlc4XModbusTest {
PlcReader reader = plcConnection.getReader().orElseThrow(() -> new RuntimeException("No Reader found"));
// Just dump the actual values
- PlcReadResponse readResponse = reader.read(builder -> builder
+ PlcReadRequest readRequest = reader.readRequestBuilder()
.addItem("randomRegister1", "register:1[2]")
.addItem("randomRegister2", "register:10[3]")
.addItem("randomRegister3", "register:20[4]")
.addItem("randomRegister4", "register:30[5]")
.addItem("randomRegister5", "register:40[6]")
- ).get();
+ .build();
+ PlcReadResponse readResponse = reader.read(readRequest).get();
System.out.println("Response " + readResponse);
IntStream.range(1, 6).forEach(i -> {
Collection<Byte[]> randomRegisters = readResponse.getAllByteArrays("randomRegister" + i);
@@ -115,7 +120,8 @@ public class ManualPlc4XModbusTest {
{
PlcReader reader = plcConnection.getReader().orElseThrow(() -> new RuntimeException("No Reader found"));
- PlcReadResponse readResponse = reader.read(builder -> builder.addItem("randomCoil", "coil:1[9]")).get();
+ PlcReadRequest readRequest = reader.readRequestBuilder().addItem("randomCoil", "coil:1[9]").build();
+ PlcReadResponse readResponse = reader.read(readRequest).get();
System.out.println("Response " + readResponse);
readResponse.getAllBooleans("randomCoil").stream()
.map(hex -> "Coil Value: " + hex)
@@ -125,7 +131,8 @@ public class ManualPlc4XModbusTest {
{
PlcWriter writer = plcConnection.getWriter().orElseThrow(() -> new RuntimeException("No Writer found"));
- PlcWriteResponse writeResponse = writer.write(builder -> builder.addItem("randomCoilField", "coil:1", true)).get();
+ PlcWriteRequest writeRequest = writer.writeRequestBuilder().addItem("randomCoilField", "coil:1", true).build();
+ PlcWriteResponse writeResponse = writer.write(writeRequest).get();
System.out.println("Response " + writeResponse);
}
} catch (Exception e) {
diff --git a/plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusSerialPlcConnectionTest.java b/plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusSerialPlcConnectionTest.java
index 68c2183..519d4b9 100644
--- a/plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusSerialPlcConnectionTest.java
+++ b/plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusSerialPlcConnectionTest.java
@@ -24,6 +24,7 @@ import io.netty.channel.embedded.EmbeddedChannel;
import io.netty.channel.jsc.JSerialCommDeviceAddress;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.commons.lang3.reflect.MethodUtils;
+import org.apache.plc4x.java.api.messages.PlcReadRequest;
import org.apache.plc4x.java.api.messages.PlcReadResponse;
import org.apache.plc4x.java.base.connection.AbstractPlcConnection;
import org.apache.plc4x.java.base.connection.SerialChannelFactory;
@@ -65,7 +66,8 @@ public class ModbusSerialPlcConnectionTest {
@Test
public void testRead() throws Exception {
prepareSerialSimulator();
- CompletableFuture<PlcReadResponse> read = SUT.read(builder -> builder.addItem("randomRead", "0/0"));
+ PlcReadRequest readRequest = SUT.readRequestBuilder().addItem("randomRead", "0/0").build();
+ CompletableFuture<PlcReadResponse> read = SUT.read(readRequest);
PlcReadResponse plcReadResponse = read.get(30, TimeUnit.SECONDS);
assertNotNull(plcReadResponse);
}