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