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:49 UTC

[plc4x] 05/06: Merge branch 'feature/implement-df1-driver' of github.com:vemmert/plc4x into feature/implement-df1-driver

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 1e73e208c9bd96db506d4752d51b7711d36211b7
Merge: 376101d c495592
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Wed Aug 7 16:27:21 2019 +0200

    Merge branch 'feature/implement-df1-driver' of github.com:vemmert/plc4x into feature/implement-df1-driver

 .../java/base/connection/SerialChannelFactory.java |  5 ++--
 pom.xml                                            |  2 +-
 sandbox/test-java-df1-driver/pom.xml               | 17 ++++++++++-
 .../org/apache/plc4x/java/df1/DF1PlcDriver.java    |  4 +--
 .../java/org/apache/plc4x/java/df1/Df1Field.java   | 33 ++++++++++++++++++++
 .../plc4x/java/df1/protocol/Df1Protocol.java       | 10 +++++++
 .../plc4x/java/df1/protocol/Plc4XDf1Protocol.java  | 30 +++++++++++++++++--
 .../plc4x/java/df1/util/Df1FieldHandler.java       |  3 +-
 .../apache/plc4x/java/df1/DF1PlcDriverTest.java    | 26 ++++++++++++++++
 .../plc4x/protocol/df1/BenchmarkManualDf1.java     | 35 ++++++++++++----------
 .../apache/plc4x/protocol/df1/EndToEndTest.java    |  6 ++--
 11 files changed, 143 insertions(+), 28 deletions(-)

diff --cc sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/protocol/Df1Protocol.java
index 31a9024,1015a7e..92ae07d
--- a/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/protocol/Df1Protocol.java
+++ b/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/protocol/Df1Protocol.java
@@@ -50,14 -50,18 +50,18 @@@ public class Df1Protocol extends PlcByt
      }
  
      @Override
+     public void channelActive(ChannelHandlerContext ctx) throws Exception {
+     }
+ 
+     @Override
      protected void encode(ChannelHandlerContext ctx, DF1Symbol msg, ByteBuf out) throws Exception {
          // Remember the size of the request as we need this to decode the response.
 -        if(msg instanceof DF1SymbolMessageFrameStart) {
 -            DF1SymbolMessageFrameStart frameStart = (DF1SymbolMessageFrameStart) msg;
 -            if(frameStart.getCommand() instanceof DF1ReadRequest) {
 -                DF1ReadRequest readRequest = (DF1ReadRequest) frameStart.getCommand();
 -                int transactionCounter = readRequest.getTransactionCounter();
 -                readRequestSizes.put(transactionCounter, readRequest.getSize());
 +        if(msg instanceof DF1SymbolMessageFrame) {
 +            DF1SymbolMessageFrame frame = (DF1SymbolMessageFrame) msg;
 +            if(frame.getCommand() instanceof DF1UnprotectedReadRequest) {
 +                DF1UnprotectedReadRequest unprotectedReadRequest = (DF1UnprotectedReadRequest) frame.getCommand();
 +                int transactionCounter = unprotectedReadRequest.getTransactionCounter();
 +                readRequestSizes.put(transactionCounter, unprotectedReadRequest.getSize());
              }
          }
  
diff --cc sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/protocol/df1/EndToEndTest.java
index e35fcce,4a52437..08b7b89
--- 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
@@@ -24,10 -24,8 +24,9 @@@ import org.apache.plc4x.java.api.PlcCon
  import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
  import org.apache.plc4x.java.api.messages.PlcReadRequest;
  import org.apache.plc4x.java.api.messages.PlcReadResponse;
 +import org.junit.jupiter.api.Test;
  
  import java.util.concurrent.TimeUnit;
- 
  /**
   * TODO write comment
   *
@@@ -36,11 -34,12 +35,12 @@@
   */
  public class EndToEndTest {
  
 -    @org.junit.Test
 +    @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")
+                 .addItem("zweites", "17:INTEGER")
                  .build();
  
              PlcReadResponse response = request.execute().get(1, TimeUnit.SECONDS);