This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git


The following commit(s) were added to refs/heads/master by this push:
     new 9b35217  - Fixed the decoding of read var responses
9b35217 is described below

commit 9b35217439d18177041049a7578c3fec1f717cca
Author: Christofer Dutz <christofer.d...@c-ware.de>
AuthorDate: Fri Jan 26 11:18:23 2018 +0100

    - Fixed the decoding of read var responses
---
 .../java/org/apache/plc4x/java/s7/netty/S7Protocol.java     | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git 
a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/S7Protocol.java
 
b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/S7Protocol.java
index db2d598..e42013b 100644
--- 
a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/S7Protocol.java
+++ 
b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/S7Protocol.java
@@ -320,9 +320,12 @@ public class S7Protocol extends 
MessageToMessageCodec<IsoTPMessage, S7Message> {
                 return null;
             case READ_VAR:
             case WRITE_VAR:
-                List<VarParameterItem> varParamameter = null;
-                if (isResponse) {
-                    varParamameter = parseReadWriteVarParameter(in);
+                List<VarParameterItem> varParamameter;
+                byte numItems = in.readByte();
+                if (!isResponse) {
+                    varParamameter = parseReadWriteVarParameter(in, numItems);
+                } else {
+                    varParamameter = Collections.emptyList();
                 }
                 return new VarParameter(parameterType, varParamameter);
             case SETUP_COMMUNICATION:
@@ -340,10 +343,8 @@ public class S7Protocol extends 
MessageToMessageCodec<IsoTPMessage, S7Message> {
         return null;
     }
 
-    private List<VarParameterItem> parseReadWriteVarParameter(ByteBuf in) {
+    private List<VarParameterItem> parseReadWriteVarParameter(ByteBuf in, byte 
numItems) {
         List<VarParameterItem> items = new LinkedList<>();
-        byte numItems = in.readByte();
-
         for (int i = 0; i < numItems; i++) {
             SpecificationType specificationType = 
SpecificationType.valueOf(in.readByte());
             // Length of the rest of this item.

-- 
To stop receiving notification emails like this one, please contact
cd...@apache.org.

Reply via email to