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 08:48:01 UTC

[plc4x] 14/17: DLC-207 first mspec definition

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 0e884ea405a3115d16d1652abbd37d0778e8d5df
Author: v.emmert <v....@pragmaticminds.de>
AuthorDate: Tue Aug 6 11:04:11 2019 +0200

    DLC-207  first mspec definition
---
 .../plc4x/protocol/df1/BenchmarkGeneratedDf1.java  | 69 +++++++++++++------
 ...rkGeneratedDf1.java => BenchmarkManualDf1.java} | 78 +++++++++++++---------
 2 files changed, 95 insertions(+), 52 deletions(-)

diff --git a/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/protocol/df1/BenchmarkGeneratedDf1.java b/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/protocol/df1/BenchmarkGeneratedDf1.java
index 9f760fa..cc292fa 100644
--- a/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/protocol/df1/BenchmarkGeneratedDf1.java
+++ b/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/protocol/df1/BenchmarkGeneratedDf1.java
@@ -23,8 +23,12 @@ import com.fazecast.jSerialComm.SerialPort;
 import org.apache.commons.codec.binary.Hex;
 //import org.apache.plc4x.java.df1.TPKTPacket;
 //import org.apache.plc4x.java.df1.io.TPKTPacketIO;
-//import org.apache.plc4x.java.utils.ReadBuffer;
-//import org.apache.plc4x.java.utils.WriteBuffer;
+import org.apache.plc4x.java.df1.DF1Command;
+import org.apache.plc4x.java.df1.DF1SymbolMessageFrameStart;
+import org.apache.plc4x.java.utils.ReadBuffer;
+import org.apache.plc4x.java.utils.WriteBuffer;
+import org.apache.plc4x.java.df1.DF1Symbol;
+import org.apache.plc4x.java.df1.io.DF1SymbolIO;
 import purejavacomm.CommPortIdentifier;
 
 import java.io.InputStream;
@@ -79,16 +83,19 @@ public class BenchmarkGeneratedDf1 {
 //        }
 
 
-//         neu
+        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);
 
-//        int[] bccmsg = {0x08, 0x09, 0x06, 0x10, 0x10, 0x04, 0x03};
-//        int c_BCC = CalcBCC(bccmsg);
-//        System.out.println("hex: " + Integer.toHexString(c_BCC));
-//        int[] bccmsg2 = {0x08, 0x09, 0x06, 0x02, 0x04, 0x03};
-//        int c_BCC2 = CalcBCC(bccmsg2);
-//        System.out.println("hex: " + Integer.toHexString(c_BCC2));
-//
-//        System.exit(0);
 
 
         SerialPort comPort = SerialPort.getCommPorts()[0];
@@ -101,11 +108,13 @@ public class BenchmarkGeneratedDf1 {
         System.out.print(comPort.getPortDescription() + " | ");
         System.out.print(comPort.getDescriptivePortName() + " | Baud rate: ");
         System.out.println(comPort.getBaudRate());
-
 //        System.out.println(comPort.getReadTimeout());
 //        System.out.println(comPort.getWriteTimeout());
 
 
+        DF1SymbolIO df1message = new DF1SymbolIO();
+
+
         byte[] c_STX = {0x02};
         byte[] c_SOH = {0x01};
         byte[] c_ETX = {0x03};
@@ -117,7 +126,8 @@ public class BenchmarkGeneratedDf1 {
 
         byte[] c_DST = {0x09};
         byte[] c_SRC = {0x00};
-        byte[] c_CMD = {0x01};
+        byte[] c_CMD = {0x06};
+        byte[] c_FNC = {0x03};
         byte[] c_STS = {0x00};
         byte[] c_TNS = {0x01, 0x00};
         byte[] c_ADR = {0x11, 0x00};
@@ -147,13 +157,15 @@ public class BenchmarkGeneratedDf1 {
         comPort.writeBytes(c_CMD, 1);
         comPort.writeBytes(c_STS, 1);
         comPort.writeBytes(c_TNS, 2);
-        comPort.writeBytes(c_ADR, 2);
-        comPort.writeBytes(c_SZE, 1);
+        comPort.writeBytes(c_FNC, 1);
+//        comPort.writeBytes(c_ADR, 2);
+//        comPort.writeBytes(c_SZE, 1);
         comPort.writeBytes(c_DLE, 1);
         comPort.writeBytes(c_ETX, 1);
 
 
-        int[] crcmsg = {c_DST[0], c_SRC[0], c_CMD[0], c_STS[0], c_TNS[0], c_TNS[1], c_ADR[0], c_ADR[1], c_SZE[0], c_ETX[0]}; // fullduplex CRC
+//        int[] crcmsg = {c_DST[0], c_SRC[0], c_CMD[0], c_STS[0], c_TNS[0], c_TNS[1], c_ADR[0], c_ADR[1], c_SZE[0], c_ETX[0]}; // fullduplex CRC
+        int[] crcmsg = {c_DST[0], c_SRC[0], c_CMD[0], c_STS[0], c_TNS[0], c_TNS[1], c_FNC[0], c_ETX[0]};                       // diagnostic status request
 //        int[] crcmsg = {0x11, 0x02, 0x09, 0x00, 0x01, 0x00, 0x41, 0x00, 0x12, 0x00, 0x0c, 0x03}; // halfduplex CRC
 
         int[] c_CRC = CalcCRC(crcmsg);
@@ -172,13 +184,26 @@ public class BenchmarkGeneratedDf1 {
 
         for (byte c_RCV : readBuffer) {
             System.out.print(Integer.toHexString(c_RCV) + " | "); }
+        System.out.println("");
 
-        if (numRead > 1) {
-            if (readBuffer[1] != 0x15) {
-                comPort.writeBytes(c_DLE, 1);
-                comPort.writeBytes(c_ACK, 1);
-            }
-        }
+//        if (numRead > 1) {
+//            if (readBuffer[1] != 0x15) {
+//                comPort.writeBytes(c_DLE, 1);
+//                comPort.writeBytes(c_ACK, 1);
+//            }
+//        }
+
+        while (comPort.bytesAvailable() == 0) {
+            Thread.sleep(22); }
+
+
+        byte[] readBuffer2 = new byte[comPort.bytesAvailable()];
+        int numRead2 = comPort.readBytes(readBuffer2, readBuffer2.length);
+        System.out.println("Read " + numRead2 + " bytes.");
+
+        for (byte c_RCV2 : readBuffer2) {
+            System.out.print(Integer.toHexString(c_RCV2) + " | "); }
+        System.out.println("");
 
         comPort.closePort();
 
diff --git a/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/protocol/df1/BenchmarkGeneratedDf1.java b/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/protocol/df1/BenchmarkManualDf1.java
similarity index 77%
copy from sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/protocol/df1/BenchmarkGeneratedDf1.java
copy to sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/protocol/df1/BenchmarkManualDf1.java
index 9f760fa..5fa447e 100644
--- a/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/protocol/df1/BenchmarkGeneratedDf1.java
+++ b/sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/protocol/df1/BenchmarkManualDf1.java
@@ -20,19 +20,16 @@
 package org.apache.plc4x.protocol.df1;
 
 import com.fazecast.jSerialComm.SerialPort;
-import org.apache.commons.codec.binary.Hex;
+import org.apache.plc4x.java.df1.DF1Command;
+import org.apache.plc4x.java.df1.DF1Symbol;
+import org.apache.plc4x.java.df1.DF1SymbolMessageFrameStart;
+import org.apache.plc4x.java.df1.io.DF1SymbolIO;
+import org.apache.plc4x.java.utils.ReadBuffer;
+
 //import org.apache.plc4x.java.df1.TPKTPacket;
 //import org.apache.plc4x.java.df1.io.TPKTPacketIO;
-//import org.apache.plc4x.java.utils.ReadBuffer;
-//import org.apache.plc4x.java.utils.WriteBuffer;
-import purejavacomm.CommPortIdentifier;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Arrays;
-import java.util.BitSet;
 
-public class BenchmarkGeneratedDf1 {
+public class BenchmarkManualDf1 {
 
     public static void main(String[] args) throws Exception {
 //        byte[] rData = Hex.decodeHex("0300006702f080320100000001005600000407120a10060001032b84000160120a10020001032b840001a0120a10010001032b840001a9120a10050001032b84000150120a10020001032b84000198120a10040001032b84000140120a10020001032b84000190");
@@ -79,16 +76,19 @@ public class BenchmarkGeneratedDf1 {
 //        }
 
 
-//         neu
+        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);
 
-//        int[] bccmsg = {0x08, 0x09, 0x06, 0x10, 0x10, 0x04, 0x03};
-//        int c_BCC = CalcBCC(bccmsg);
-//        System.out.println("hex: " + Integer.toHexString(c_BCC));
-//        int[] bccmsg2 = {0x08, 0x09, 0x06, 0x02, 0x04, 0x03};
-//        int c_BCC2 = CalcBCC(bccmsg2);
-//        System.out.println("hex: " + Integer.toHexString(c_BCC2));
-//
-//        System.exit(0);
 
 
         SerialPort comPort = SerialPort.getCommPorts()[0];
@@ -101,11 +101,13 @@ public class BenchmarkGeneratedDf1 {
         System.out.print(comPort.getPortDescription() + " | ");
         System.out.print(comPort.getDescriptivePortName() + " | Baud rate: ");
         System.out.println(comPort.getBaudRate());
-
 //        System.out.println(comPort.getReadTimeout());
 //        System.out.println(comPort.getWriteTimeout());
 
 
+        DF1SymbolIO df1message = new DF1SymbolIO();
+
+
         byte[] c_STX = {0x02};
         byte[] c_SOH = {0x01};
         byte[] c_ETX = {0x03};
@@ -117,7 +119,8 @@ public class BenchmarkGeneratedDf1 {
 
         byte[] c_DST = {0x09};
         byte[] c_SRC = {0x00};
-        byte[] c_CMD = {0x01};
+        byte[] c_CMD = {0x06};
+        byte[] c_FNC = {0x03};
         byte[] c_STS = {0x00};
         byte[] c_TNS = {0x01, 0x00};
         byte[] c_ADR = {0x11, 0x00};
@@ -147,13 +150,15 @@ public class BenchmarkGeneratedDf1 {
         comPort.writeBytes(c_CMD, 1);
         comPort.writeBytes(c_STS, 1);
         comPort.writeBytes(c_TNS, 2);
-        comPort.writeBytes(c_ADR, 2);
-        comPort.writeBytes(c_SZE, 1);
+        comPort.writeBytes(c_FNC, 1);
+//        comPort.writeBytes(c_ADR, 2);
+//        comPort.writeBytes(c_SZE, 1);
         comPort.writeBytes(c_DLE, 1);
         comPort.writeBytes(c_ETX, 1);
 
 
-        int[] crcmsg = {c_DST[0], c_SRC[0], c_CMD[0], c_STS[0], c_TNS[0], c_TNS[1], c_ADR[0], c_ADR[1], c_SZE[0], c_ETX[0]}; // fullduplex CRC
+//        int[] crcmsg = {c_DST[0], c_SRC[0], c_CMD[0], c_STS[0], c_TNS[0], c_TNS[1], c_ADR[0], c_ADR[1], c_SZE[0], c_ETX[0]}; // fullduplex CRC
+        int[] crcmsg = {c_DST[0], c_SRC[0], c_CMD[0], c_STS[0], c_TNS[0], c_TNS[1], c_FNC[0], c_ETX[0]};                       // diagnostic status request
 //        int[] crcmsg = {0x11, 0x02, 0x09, 0x00, 0x01, 0x00, 0x41, 0x00, 0x12, 0x00, 0x0c, 0x03}; // halfduplex CRC
 
         int[] c_CRC = CalcCRC(crcmsg);
@@ -172,13 +177,26 @@ public class BenchmarkGeneratedDf1 {
 
         for (byte c_RCV : readBuffer) {
             System.out.print(Integer.toHexString(c_RCV) + " | "); }
+        System.out.println("");
 
-        if (numRead > 1) {
-            if (readBuffer[1] != 0x15) {
-                comPort.writeBytes(c_DLE, 1);
-                comPort.writeBytes(c_ACK, 1);
-            }
-        }
+//        if (numRead > 1) {
+//            if (readBuffer[1] != 0x15) {
+//                comPort.writeBytes(c_DLE, 1);
+//                comPort.writeBytes(c_ACK, 1);
+//            }
+//        }
+
+        while (comPort.bytesAvailable() == 0) {
+            Thread.sleep(22); }
+
+
+        byte[] readBuffer2 = new byte[comPort.bytesAvailable()];
+        int numRead2 = comPort.readBytes(readBuffer2, readBuffer2.length);
+        System.out.println("Read " + numRead2 + " bytes.");
+
+        for (byte c_RCV2 : readBuffer2) {
+            System.out.print(Integer.toHexString(c_RCV2) + " | "); }
+        System.out.println("");
 
         comPort.closePort();