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