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 2019/08/07 14:58:45 UTC

[plc4x] 01/06: Matching pattern tests for serial/DF1 added

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

cdutz pushed a commit to branch feature/implement-df1-driver
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit f7ee2597f410f024770353c7e026586229ae3892
Author: v.emmert <v....@pragmaticminds.de>
AuthorDate: Wed Aug 7 10:39:51 2019 +0200

    Matching pattern tests for serial/DF1 added
---
 plc4j/examples/hello-world-plc4x/pom.xml           |  1 +
 .../org/apache/plc4x/java/df1/DF1PlcDriver.java    |  2 +-
 .../apache/plc4x/java/df1/DF1PlcDriverTest.java    | 26 +++++++++++++++++++
 .../plc4x/protocol/df1/BenchmarkManualDf1.java     | 30 ++++++++++++----------
 .../apache/plc4x/protocol/df1/EndToEndTest.java    |  2 +-
 5 files changed, 45 insertions(+), 16 deletions(-)

diff --git a/plc4j/examples/hello-world-plc4x/pom.xml b/plc4j/examples/hello-world-plc4x/pom.xml
index e3295da..eaee6fe 100644
--- a/plc4j/examples/hello-world-plc4x/pom.xml
+++ b/plc4j/examples/hello-world-plc4x/pom.xml
@@ -91,6 +91,7 @@
           <usedDependencies combine.children="append">
             <usedDependency>org.apache.plc4x:plc4j-driver-s7</usedDependency>
             <usedDependency>org.apache.plc4x:plc4j-driver-simulated</usedDependency>
+            <usedDependency>org.apache.plc4x.sandbox:test-java-df1-driver</usedDependency>
             <usedDependency>org.slf4j:log4j-over-slf4j</usedDependency>
           </usedDependencies>
         </configuration>
diff --git a/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/DF1PlcDriver.java b/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/DF1PlcDriver.java
index fd8e0c6..1988e72 100644
--- a/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/DF1PlcDriver.java
+++ b/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/DF1PlcDriver.java
@@ -31,7 +31,7 @@ import java.util.regex.Pattern;
 public class DF1PlcDriver implements PlcDriver {
 
     public static final Pattern INET_ADDRESS_PATTERN = Pattern.compile("tcp://(?<host>[\\w.]+)(:(?<port>\\d*))?");
-    public static final Pattern SERIAL_PATTERN = Pattern.compile("serial://(?<serialDefinition>((?!/\\d).)*)");
+    public static final Pattern SERIAL_PATTERN = Pattern.compile("serial://(?<serialDefinition>/?[a-zA-Z0-9/]*)");
     public static final Pattern DF1_URI_PATTERN = Pattern.compile("^df1:(" + INET_ADDRESS_PATTERN + "|" + SERIAL_PATTERN + ")/?" + "(?<params>\\?.*)?");
 
     @Override
diff --git a/sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/java/df1/DF1PlcDriverTest.java b/sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/java/df1/DF1PlcDriverTest.java
new file mode 100644
index 0000000..ae9e470
--- /dev/null
+++ b/sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/java/df1/DF1PlcDriverTest.java
@@ -0,0 +1,26 @@
+package org.apache.plc4x.java.df1;
+
+import org.junit.Test;
+
+import java.util.regex.Matcher;
+
+import static org.apache.plc4x.java.df1.DF1PlcDriver.DF1_URI_PATTERN;
+import static org.apache.plc4x.java.df1.DF1PlcDriver.SERIAL_PATTERN;
+import static org.junit.Assert.*;
+
+public class DF1PlcDriverTest {
+
+    @Test
+    public void matchExpression() {
+        Matcher matcher = SERIAL_PATTERN.matcher("serial:///COM4");
+
+        assertTrue(matcher.matches());
+    }
+
+    @Test
+    public void matchExpression2() {
+        Matcher matcher = DF1_URI_PATTERN.matcher("df1:serial:///COM4");
+
+        assertTrue(matcher.matches());
+    }
+}
\ No newline at end of file
diff --git a/sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/protocol/df1/BenchmarkManualDf1.java b/sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/protocol/df1/BenchmarkManualDf1.java
index c2571fe..3174170 100644
--- a/sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/protocol/df1/BenchmarkManualDf1.java
+++ b/sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/protocol/df1/BenchmarkManualDf1.java
@@ -76,18 +76,18 @@ public class BenchmarkManualDf1 {
 //        }
 
 
-        byte[] rData = {0x10, 0x02, 0x00, 0x09, 0x41, 0x00, 0x01, 0x00, 0x1F, 0x1F, 0x10, 0x03, 0x1A, 0x2B};
-
- /*       DF1SymbolIO df1SymbolIO = new DF1SymbolIO();
-        DF1Symbol packet;
-        ReadBuffer rBuf = new ReadBuffer(rData);
-        int statusWord = (rData[7]<<8) + rData[6];
-        DF1Command messageCommand = new DF1Command((short)rData[5]); //,(short)statusWord);
-        DF1SymbolMessageFrameStart messageStart = new DF1SymbolMessageFrameStart((short)rData[3],(short)rData[2], messageCommand);
-        packet = df1SymbolIO.parse(rBuf, (short) (rData.length-12), messageStart);
-
-        System.out.println("x: " + packet);
-        System.exit(0);
+//        byte[] rData = {0x10, 0x02, 0x00, 0x09, 0x41, 0x00, 0x01, 0x00, 0x1F, 0x1F, 0x10, 0x03, 0x1A, 0x2B};
+//
+//        DF1SymbolIO df1SymbolIO = new DF1SymbolIO();
+//        DF1Symbol packet;
+//        ReadBuffer rBuf = new ReadBuffer(rData);
+//        int statusWord = (rData[7]<<8) + rData[6];
+//        DF1Command messageCommand = new DF1Command((short)rData[5]); //,(short)statusWord);
+//        DF1SymbolMessageFrameStart messageStart = new DF1SymbolMessageFrameStart((short)rData[3],(short)rData[2], messageCommand);
+//        packet = df1SymbolIO.parse(rBuf, (short) (rData.length-12), messageStart);
+//
+//        System.out.println("x: " + packet);
+//        System.exit(0);
 
 
 
@@ -105,7 +105,9 @@ public class BenchmarkManualDf1 {
 //        System.out.println(comPort.getWriteTimeout());
 
 
-        DF1SymbolIO df1message = new DF1SymbolIO();
+        System.exit(0);
+
+//        DF1SymbolIO df1message = new DF1SymbolIO();
 
 
         byte[] c_STX = {0x02};
@@ -198,7 +200,7 @@ public class BenchmarkManualDf1 {
             System.out.print(Integer.toHexString(c_RCV2) + " | "); }
         System.out.println("");
 
-        comPort.closePort();*/
+        comPort.closePort();
 
     }
 
diff --git a/sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/protocol/df1/EndToEndTest.java b/sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/protocol/df1/EndToEndTest.java
index 954d092..3a5f96d 100644
--- a/sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/protocol/df1/EndToEndTest.java
+++ b/sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/protocol/df1/EndToEndTest.java
@@ -37,7 +37,7 @@ public class EndToEndTest {
 
     @org.junit.Test
     public void helloDf1() {
-        try (PlcConnection plcConnection = new PlcDriverManager().getConnection("df1:serial///dev/cu.usbserial-AL065SUZ")) {
+        try (PlcConnection plcConnection = new PlcDriverManager().getConnection("df1:serial:///COM4")) {
             PlcReadRequest request = plcConnection.readRequestBuilder()
                 .addItem("erstes", "17:INTEGER")
                 .build();