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 2020/03/05 09:44:30 UTC

[plc4x] branch develop updated (103b45b -> 9e6a786)

This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git.


    from 103b45b  - Added a new page listing up a lot of slides, videos and blog posts on plc4x
     new 5c32c9d  - Added a "getPlcValue" method to the PlcReadResponse
     new 9e6a786  - Added a config option to the pcap replay channel to allow looping of the replay.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../plc4x/java/api/messages/PlcReadResponse.java       |  2 ++
 .../java/spi/messages/DefaultPlcReadResponse.java      |  5 +++++
 .../pcapreplay/PcapReplayTransportConfiguration.java   |  4 ++++
 .../netty/config/PcapReplayChannelConfig.java          | 18 ++++++++++++++++--
 .../netty/config/PcapReplayChannelOption.java          |  7 +++++++
 5 files changed, 34 insertions(+), 2 deletions(-)


[plc4x] 01/02: - Added a "getPlcValue" method to the PlcReadResponse

Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit 5c32c9db2cd41a25ca84fd599b5624bade049a1e
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Mar 5 10:43:31 2020 +0100

    - Added a "getPlcValue" method to the PlcReadResponse
---
 .../java/org/apache/plc4x/java/api/messages/PlcReadResponse.java     | 2 ++
 .../org/apache/plc4x/java/spi/messages/DefaultPlcReadResponse.java   | 5 +++++
 2 files changed, 7 insertions(+)

diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadResponse.java
index 3514a48..b131159 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadResponse.java
@@ -39,6 +39,8 @@ public interface PlcReadResponse extends PlcFieldResponse {
     @Experimental
     PlcValue getAsPlcValue();
 
+    PlcValue getPlcValue(String name);
+
     int getNumberOfValues(String name);
 
     Object getObject(String name);
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadResponse.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadResponse.java
index f469b2d..cea79b9 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadResponse.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadResponse.java
@@ -59,6 +59,11 @@ public class DefaultPlcReadResponse implements InternalPlcReadResponse, PlcReadR
     }
 
     @Override
+    public PlcValue getPlcValue(String name) {
+        return values.getOrDefault(name, Pair.of(null, null)).getRight();
+    }
+
+    @Override
     public int getNumberOfValues(String name) {
         PlcValue fieldInternal = getFieldInternal(name);
         if(fieldInternal instanceof PlcList) {


[plc4x] 02/02: - Added a config option to the pcap replay channel to allow looping of the replay.

Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit 9e6a78630a73ae68a30b7aa63f389c4ae81a193d
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Mar 5 10:44:22 2020 +0100

    - Added a config option to the pcap replay channel to allow looping of the replay.
---
 .../pcapreplay/PcapReplayTransportConfiguration.java   |  4 ++++
 .../netty/config/PcapReplayChannelConfig.java          | 18 ++++++++++++++++--
 .../netty/config/PcapReplayChannelOption.java          |  7 +++++++
 3 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/plc4j/transports/pcap-replay/src/main/java/org/apache/plc4x/java/transport/pcapreplay/PcapReplayTransportConfiguration.java b/plc4j/transports/pcap-replay/src/main/java/org/apache/plc4x/java/transport/pcapreplay/PcapReplayTransportConfiguration.java
index cd22d2e..c606428 100644
--- a/plc4j/transports/pcap-replay/src/main/java/org/apache/plc4x/java/transport/pcapreplay/PcapReplayTransportConfiguration.java
+++ b/plc4j/transports/pcap-replay/src/main/java/org/apache/plc4x/java/transport/pcapreplay/PcapReplayTransportConfiguration.java
@@ -26,4 +26,8 @@ public interface PcapReplayTransportConfiguration extends PcapTransportConfigura
         return 1;
     }
 
+    default boolean isLoop() {
+        return false;
+    }
+
 }
diff --git a/plc4j/utils/pcap-replay/src/main/java/org/apache/plc4x/java/utils/pcapreplay/netty/config/PcapReplayChannelConfig.java b/plc4j/utils/pcap-replay/src/main/java/org/apache/plc4x/java/utils/pcapreplay/netty/config/PcapReplayChannelConfig.java
index 41a4a55..1ac5ed5 100644
--- a/plc4j/utils/pcap-replay/src/main/java/org/apache/plc4x/java/utils/pcapreplay/netty/config/PcapReplayChannelConfig.java
+++ b/plc4j/utils/pcap-replay/src/main/java/org/apache/plc4x/java/utils/pcapreplay/netty/config/PcapReplayChannelConfig.java
@@ -21,7 +21,6 @@ package org.apache.plc4x.java.utils.pcapreplay.netty.config;
 import io.netty.channel.Channel;
 import io.netty.channel.ChannelOption;
 import org.apache.plc4x.java.utils.pcap.netty.config.PcapChannelConfig;
-import org.apache.plc4x.java.utils.pcap.netty.config.PcapChannelOption;
 
 import java.util.Map;
 
@@ -33,6 +32,7 @@ public class PcapReplayChannelConfig extends PcapChannelConfig {
     public static float SPEED_FAST_FULL = 0f;
 
     private float speedFactor = SPEED_REALTIME;
+    private boolean loop = false;
 
     public PcapReplayChannelConfig(Channel channel) {
         super(channel);
@@ -46,11 +46,17 @@ public class PcapReplayChannelConfig extends PcapChannelConfig {
     @Override
     public <T> boolean setOption(ChannelOption<T> option, T value) {
         if(option == PcapReplayChannelOption.SPEED_FACTOR) {
-            if(value instanceof Float) {
+            if (value instanceof Float) {
                 speedFactor = (Float) value;
                 return speedFactor > 0;
             }
             return false;
+        } else if(option == PcapReplayChannelOption.LOOP) {
+            if (value instanceof Boolean) {
+                loop = (Boolean) value;
+                return true;
+            }
+            return false;
         } else {
             return super.setOption(option, value);
         }
@@ -64,4 +70,12 @@ public class PcapReplayChannelConfig extends PcapChannelConfig {
         this.speedFactor = speedFactor;
     }
 
+    public boolean isLoop() {
+        return loop;
+    }
+
+    public void setLoop(boolean loop) {
+        this.loop = loop;
+    }
+
 }
diff --git a/plc4j/utils/pcap-replay/src/main/java/org/apache/plc4x/java/utils/pcapreplay/netty/config/PcapReplayChannelOption.java b/plc4j/utils/pcap-replay/src/main/java/org/apache/plc4x/java/utils/pcapreplay/netty/config/PcapReplayChannelOption.java
index ce72b5b..ddeaac5 100644
--- a/plc4j/utils/pcap-replay/src/main/java/org/apache/plc4x/java/utils/pcapreplay/netty/config/PcapReplayChannelOption.java
+++ b/plc4j/utils/pcap-replay/src/main/java/org/apache/plc4x/java/utils/pcapreplay/netty/config/PcapReplayChannelOption.java
@@ -30,4 +30,11 @@ public class PcapReplayChannelOption extends PcapChannelOption {
     public static final ChannelOption<Float> SPEED_FACTOR =
         ChannelOption.valueOf(Float.class, "SPEED_FACTOR");
 
+    /**
+     * Option to tell the playback to automatically restart at the
+     * beginning as soon as the end of the playback is reached.
+     */
+    public static final ChannelOption<Boolean> LOOP =
+        ChannelOption.valueOf(Boolean.class, "LOOP");
+
 }