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 <[email protected]> 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();
