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/12/28 08:01:46 UTC

[plc4x] 02/02: - Enabled the code for writing data

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

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

commit f76e9e15370f7a457bb508de2a1f803fed8342be
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Sat Dec 28 09:01:36 2019 +0100

    - Enabled the code for writing data
---
 .../plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java  | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java b/sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
index 9344c61..6f9b82f 100644
--- a/sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
+++ b/sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
@@ -180,9 +180,9 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> implements Ha
         List<S7VarPayloadDataItem> payloadItems = new ArrayList<>(request.getNumberOfFields());
         for (String fieldName : request.getFieldNames()) {
             final S7Field field = (S7Field) request.getField(fieldName);
-/*            final BaseDefaultFieldItem fieldItem = request.getFieldItem(fieldName);
+            final PlcValue fieldItem = request.getFieldItem(fieldName);
             parameterItems.add(new S7VarRequestParameterItemAddress(encodeS7Address(field)));
-            payloadItems.add(serializeFieldItem(field, fieldItem));*/
+            payloadItems.add(serializeFieldItem(field, fieldItem));
         }
         final int tpduId = tpduGenerator.getAndIncrement();
         TPKTPacket tpktPacket = new TPKTPacket(new COTPPacketData(null,
@@ -213,7 +213,7 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> implements Ha
 
     @Override
     public void close(ConversationContext<TPKTPacket> context) {
-        // TODO Implement Closing on Protocl Level
+        // TODO Implement Closing on Protocol Level
     }
 
     private void extractControllerTypeAndFireConnected(ConversationContext<TPKTPacket> context, S7PayloadUserData payloadUserData) {
@@ -307,7 +307,7 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> implements Ha
             if (responseCode == PlcResponseCode.OK) {
                 fieldItem = parseFieldItem(field, data);
             }
-            Pair<PlcResponseCode, PlcValue> result = new ImmutablePair(responseCode, fieldItem);
+            Pair<PlcResponseCode, PlcValue> result = new ImmutablePair<>(responseCode, fieldItem);
             values.put(fieldName, result);
             index++;
         }
@@ -345,8 +345,10 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> implements Ha
             DataTransportSize transportSize = (field.getDataType().getDataProtocolId() == 1) ?
                 DataTransportSize.BIT : DataTransportSize.BYTE_WORD_DWORD;
             WriteBuffer writeBuffer = DataItemIO.serialize(plcValue, field.getDataType().getDataProtocolId());
-            byte[] data = writeBuffer.getData();
-            return new S7VarPayloadDataItem(DataTransportErrorCode.OK, transportSize, data.length, data);
+            if(writeBuffer != null) {
+                byte[] data = writeBuffer.getData();
+                return new S7VarPayloadDataItem(DataTransportErrorCode.OK, transportSize, data.length, data);
+            }
         } catch (ParseException e) {
             logger.warn(String.format("Error serializing field item of type: '%s'", field.getDataType().name()), e);
         }