You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2018/01/11 08:27:44 UTC
[incubator-plc4x] branch refactoring/java_generify updated (6a3da68
-> d6497dc)
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a change to branch refactoring/java_generify
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git.
from 6a3da68 comment surefire back in
new b86dc42 fixed one more builder bug
add ff882df fix up switch and endless loops
add 04245aa refactor to reduce complexity and fix endless loops
add 4383c38 log exception
add 1e853eb add @override
add 79f031d unneeded brackets
add 7df5be8 SONAR Make the programs terminate (getting rid of the two blocker issues)
add 464d125 SONAR Some further fixing of issues sonarqube reported
add 74617fc mask slot number
add ecba61f add calling parameter test
add 7b849a1 get rid of a level of nesting
add 5ad5d2d no real need to calculate size/length every time through the loop
add bd85953 add more encode and decode parameter tests
add 44e01ea Sort divided by a int is always an int no need to round up with Math.ceil
add 25a752c Enable coverage checks (Report warnings but don't break the build for now)
add 85fb9cb may need a extra byte if not on byte boundry
add 06fd936 Coverage shows this should be Byte not Byte[]
add 9e04f92 Add support for Stings
add ab2c1d8 multiple string is a little broken add TODOs so don't forget
add 5378c4a support for multiple strings
add 3e19b41 chars not bytes and add another check to stop running off end of buffer
new 2267211 Merge branch 'master' into refactoring/java_generify
new d6497dc link response into request to retrieve a typed response.
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
applications/iotree/pom.xml | 5 +
.../plc4x/java/applications/iotree/IoTree.java | 18 +-
applications/plclogger/pom.xml | 5 +
.../java/applications/plclogger/PlcLogger.java | 18 +-
.../java/org/apache/plc4x/camel/PLC4XProducer.java | 2 +
.../plc4x/java/api/messages/PlcWriteRequest.java | 2 +-
.../java/api/messages/items/ReadRequestItem.java | 13 +
.../java/api/messages/items/ReadResponseItem.java | 3 +-
.../java/api/messages/items/WriteRequestItem.java | 12 +
.../java/api/messages/items/WriteResponseItem.java | 1 +
plc4j/pom.xml | 31 ---
.../plc4x/java/isotp/netty/IsoTPProtocol.java | 152 +++++------
.../plc4x/java/s7/netty/Plc4XS7Protocol.java | 85 +++---
.../org/apache/plc4x/java/s7/netty/S7Protocol.java | 112 ++++----
.../plc4x/java/isotp/netty/IsoTPProtocolTest.java | 294 ++++++++++++++++++++-
.../apache/plc4x/java/s7/S7PlcReaderSample.java | 2 +-
.../plc4x/java/s7/netty/Plc4XS7ProtocolTest.java | 8 +-
pom.xml | 36 ++-
18 files changed, 581 insertions(+), 218 deletions(-)
--
To stop receiving notification emails like this one, please contact
['"commits@plc4x.apache.org" <co...@plc4x.apache.org>'].
[incubator-plc4x] 02/03: Merge branch 'master' into
refactoring/java_generify
Posted by sr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch refactoring/java_generify
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit 2267211e5123dd3033bad13c063750348f44109e
Merge: b86dc42 3e19b41
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Jan 11 08:55:33 2018 +0100
Merge branch 'master' into refactoring/java_generify
# Conflicts:
# plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
applications/iotree/pom.xml | 5 +
.../plc4x/java/applications/iotree/IoTree.java | 18 +-
applications/plclogger/pom.xml | 5 +
.../java/applications/plclogger/PlcLogger.java | 18 +-
.../java/org/apache/plc4x/camel/PLC4XProducer.java | 2 +
plc4j/pom.xml | 31 ---
.../plc4x/java/isotp/netty/IsoTPProtocol.java | 152 +++++------
.../plc4x/java/s7/netty/Plc4XS7Protocol.java | 85 +++---
.../org/apache/plc4x/java/s7/netty/S7Protocol.java | 112 ++++----
.../plc4x/java/isotp/netty/IsoTPProtocolTest.java | 294 ++++++++++++++++++++-
.../apache/plc4x/java/s7/S7PlcReaderSample.java | 2 +-
.../plc4x/java/s7/netty/Plc4XS7ProtocolTest.java | 8 +-
pom.xml | 36 ++-
13 files changed, 552 insertions(+), 216 deletions(-)
diff --cc plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
index 3ff2e63,b364990..cc1faf1
--- a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
+++ b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
@@@ -295,7 -288,8 +297,8 @@@ public class Plc4XS7Protocol extends Me
}
private byte[] encodeData(Object[] values) {
- if (values.length == 0) {
- final int length = values.length;
++ final int length =values.length;
+ if (length == 0) {
return new byte[]{};
}
byte[] result = null;
@@@ -350,44 -356,56 +365,54 @@@
////////////////////////////////////////////////////////////////////////////////
private ResponseCode decodeResponseCode(DataTransportErrorCode dataTransportErrorCode) {
- if (dataTransportErrorCode != null) {
- switch (dataTransportErrorCode) {
- case OK:
- return ResponseCode.OK;
- case NOT_FOUND:
- return ResponseCode.NOT_FOUND;
- case INVALID_ADDRESS:
- return ResponseCode.INVALID_ADDRESS;
- }
+ if (dataTransportErrorCode == null) {
+ return ResponseCode.INTERNAL_ERROR;
+ }
+ switch (dataTransportErrorCode) {
+ case OK:
+ return ResponseCode.OK;
+ case NOT_FOUND:
+ return ResponseCode.NOT_FOUND;
+ case INVALID_ADDRESS:
+ return ResponseCode.INVALID_ADDRESS;
+ default:
+ return ResponseCode.INTERNAL_ERROR;
}
- return ResponseCode.INTERNAL_ERROR;
}
- private List<Object> decodeData(Class<?> datatype, byte[] s7Data) throws PlcProtocolException {
+ @SuppressWarnings("unchecked")private <T>List<T> decodeData(Class<T> datatype, byte[] s7Data) throws PlcProtocolException {
+
List<Object> result = new LinkedList<>();
- for (int i = 0; i < s7Data.length; ) {
- int i = 0;
- final int length = s7Data.length;
-
- while (i < length) {
++ int i = 0; final int length = s7Data.length;while (i < length) {
if (datatype == Boolean.class) {
result.add((s7Data[i] & 0x01) == 0x01);
- i+=1;
+ i += 1;
} else if (datatype == Byte.class) {
result.add(s7Data[i]);
- i+=1;
+ i += 1;
} else if (datatype == Short.class) {
- result.add((short) (((s7Data[i] & 0xff) << 8) | (s7Data[i+1] & 0xff)));
- i+=2;
+ result.add((short) (((s7Data[i] & 0xff) << 8) | (s7Data[i + 1] & 0xff)));
+ i += 2;
} else if (datatype == Integer.class) {
- result.add((((s7Data[i] & 0xff) << 24) | ((s7Data[i + 1] & 0xff) << 16) |
- ((s7Data[i + 2] & 0xff) << 8) | (s7Data[i + 3] & 0xff)));
+ result.add(((s7Data[i] & 0xff) << 24) | ((s7Data[i + 1] & 0xff) << 16) |
+ ((s7Data[i + 2] & 0xff) << 8) | (s7Data[i + 3] & 0xff));
- i+=4;
+ i += 4;
} else if (datatype == Float.class) {
// Description of the Real number format:
// https://www.sps-lehrgang.de/zahlenformate-step7/#c144
// https://de.wikipedia.org/wiki/IEEE_754
- int intValue = (((s7Data[i] & 0xff) << 24) | ((s7Data[i + 1] & 0xff) << 16) |
- ((s7Data[i + 2] & 0xff) << 8) | (s7Data[i + 3] & 0xff));
+ int intValue = ((s7Data[i] & 0xff) << 24) | ((s7Data[i + 1] & 0xff) << 16) |
+ ((s7Data[i + 2] & 0xff) << 8) | (s7Data[i + 3] & 0xff);
result.add(Float.intBitsToFloat(intValue));
- i+=4;
+ i += 4;
+ } else if (datatype == String.class) {
+ StringBuilder builder = new StringBuilder();
+ while (s7Data[i] != (byte) 0x0 && i < length) {
+ builder.append((char)s7Data[i]);
+ i++;
+ }
+ i++; // skip terminating character
+ result.add(builder.toString());
} else {
throw new PlcProtocolException("Unsupported datatype " + datatype.getSimpleName());
}
--
To stop receiving notification emails like this one, please contact
"commits@plc4x.apache.org" <co...@plc4x.apache.org>.
[incubator-plc4x] 03/03: link response into request to retrieve a
typed response.
Posted by sr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch refactoring/java_generify
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit d6497dc7fa7dc0b34bf7169318fe241e4341a084
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Jan 11 09:27:21 2018 +0100
link response into request to retrieve a typed response.
---
.../plc4x/java/api/messages/items/ReadRequestItem.java | 13 +++++++++++++
.../plc4x/java/api/messages/items/ReadResponseItem.java | 3 ++-
.../plc4x/java/api/messages/items/WriteRequestItem.java | 12 ++++++++++++
.../plc4x/java/api/messages/items/WriteResponseItem.java | 1 +
4 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java
index 6086959..fe3bc25 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java
@@ -20,6 +20,8 @@ package org.apache.plc4x.java.api.messages.items;
import org.apache.plc4x.java.api.model.Address;
+import java.util.Optional;
+
public class ReadRequestItem<T> {
private final Class<T> datatype;
@@ -28,16 +30,20 @@ public class ReadRequestItem<T> {
private final int size;
+ private ReadResponseItem<T> responseItem;
+
public ReadRequestItem(Class<T> datatype, Address address) {
this.datatype = datatype;
this.address = address;
this.size = 1;
+ this.responseItem = null;
}
public ReadRequestItem(Class<T> datatype, Address address, int size) {
this.datatype = datatype;
this.address = address;
this.size = size;
+ this.responseItem = null;
}
public Class<T> getDatatype() {
@@ -52,4 +58,11 @@ public class ReadRequestItem<T> {
return size;
}
+ public Optional<ReadResponseItem<T>> getResponseItem() {
+ return Optional.ofNullable(responseItem);
+ }
+
+ protected void setResponseItem(ReadResponseItem<T> responseItem) {
+ this.responseItem = responseItem;
+ }
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java
index 286fb64..876d4ec 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java
@@ -34,9 +34,10 @@ public class ReadResponseItem<T> {
this.requestItem = requestItem;
this.responseCode = responseCode;
this.values = values;
+ requestItem.setResponseItem(this);
}
- public ReadRequestItem getRequestItem() {
+ public ReadRequestItem<T> getRequestItem() {
return requestItem;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java
index 44111ae..33aa544 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java
@@ -21,6 +21,7 @@ package org.apache.plc4x.java.api.messages.items;
import org.apache.plc4x.java.api.model.Address;
import java.lang.reflect.Array;
+import java.util.Optional;
public class WriteRequestItem<T> {
@@ -30,18 +31,22 @@ public class WriteRequestItem<T> {
private final T[] values;
+ private WriteResponseItem<T> responseItem;
+
@SuppressWarnings("unchecked")
public WriteRequestItem(Class<T> datatype, Address address, T value) {
this.datatype = datatype;
this.address = address;
this.values = (T[]) Array.newInstance(datatype, 1);
this.values[0] = value;
+ responseItem = null;
}
public WriteRequestItem(Class<T> datatype, Address address, T[] values) {
this.datatype = datatype;
this.address = address;
this.values = values;
+ responseItem = null;
}
public Class<T> getDatatype() {
@@ -56,4 +61,11 @@ public class WriteRequestItem<T> {
return values;
}
+ public Optional<WriteResponseItem<T>> getResponseItem() {
+ return Optional.ofNullable(responseItem);
+ }
+
+ protected void setResponseItem(WriteResponseItem<T> responseItem) {
+ this.responseItem = responseItem;
+ }
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteResponseItem.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteResponseItem.java
index 524f68f..1e3995c 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteResponseItem.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteResponseItem.java
@@ -29,6 +29,7 @@ public class WriteResponseItem<T> {
public WriteResponseItem(WriteRequestItem<T> requestItem, ResponseCode responseCode) {
this.requestItem = requestItem;
this.responseCode = responseCode;
+ requestItem.setResponseItem(this);
}
public WriteRequestItem<T> getRequestItem() {
--
To stop receiving notification emails like this one, please contact
"commits@plc4x.apache.org" <co...@plc4x.apache.org>.
[incubator-plc4x] 01/03: fixed one more builder bug
Posted by sr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch refactoring/java_generify
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit b86dc4211a2a46e0a40d34f3a150380241e2244b
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Mon Jan 8 09:45:00 2018 +0100
fixed one more builder bug
---
.../main/java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java
index 7d8a9e9..c663be5 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java
@@ -72,7 +72,7 @@ public interface PlcWriteRequest extends PlcRequest {
}
private void checkType(Class dataType) {
- if (firstType != null) {
+ if (firstType == null) {
firstType = dataType;
}
if (firstType != dataType) {
--
To stop receiving notification emails like this one, please contact
"commits@plc4x.apache.org" <co...@plc4x.apache.org>.