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 2020/10/23 11:56:09 UTC

[plc4x] 01/02: - Quick-Fix to get the PLC4J Modbus working again ...

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

cdutz pushed a commit to branch feature/plc4go
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit bf34c28f3c407e5c259271148e246837828cc55d
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Fri Oct 23 13:51:41 2020 +0200

    - Quick-Fix to get the PLC4J Modbus working again ...
---
 .../src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java | 4 ++--
 .../apache/plc4x/java/modbus/field/ModbusFieldHoldingRegister.java    | 3 ++-
 .../org/apache/plc4x/java/modbus/protocol/ModbusProtocolLogic.java    | 2 +-
 .../java/org/apache/plc4x/java/examples/helloplc4x/HelloPlc4x.java    | 2 +-
 4 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java
index 9a47936..cff640f 100644
--- a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java
+++ b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java
@@ -67,7 +67,7 @@ public abstract class ModbusField implements PlcField {
             throw new IllegalArgumentException("quantity must be greater then zero. Was " + this.quantity);
         }
         this.dataType = dataType != null ? dataType : "INT";
-        ModbusDataTypeSizes.valueOf(this.dataType);
+        ModbusDataTypeSizes.enumForValue(this.dataType);
     }
 
     public int getAddress() {
@@ -83,7 +83,7 @@ public abstract class ModbusField implements PlcField {
     }
 
     public int getLengthWords() {
-        return (int) (quantity * ((float) ModbusDataType.valueOf(dataType).getDataTypeSize())/2.0f);
+        return (int) (quantity * ((float) ModbusDataTypeSizes.enumForValue(dataType).getDataTypeSize())/2.0f);
     }
 
     public String getDataType() {
diff --git a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldHoldingRegister.java b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldHoldingRegister.java
index f99061f..0783328 100644
--- a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldHoldingRegister.java
+++ b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldHoldingRegister.java
@@ -71,7 +71,8 @@ public class ModbusFieldHoldingRegister extends ModbusField {
         }
 
         String datatypeTemp = matcher.group("datatype");
-        String datatype = datatypeTemp != null ? datatypeTemp : "INT";
+        String datatype = "IEC61131_" + (datatypeTemp != null ? datatypeTemp : "INT");
+
 
         return new ModbusFieldHoldingRegister(address, quantity, datatype.toUpperCase());
     }
diff --git a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/protocol/ModbusProtocolLogic.java b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/protocol/ModbusProtocolLogic.java
index 9df1bac..3580c04 100644
--- a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/protocol/ModbusProtocolLogic.java
+++ b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/protocol/ModbusProtocolLogic.java
@@ -337,7 +337,7 @@ public class ModbusProtocolLogic extends Plc4xProtocolBase<ModbusTcpADU> impleme
     }
 
     private PlcValue toPlcValue(ModbusPDU request, ModbusPDU response, String dataType) throws ParseException {
-        Short fieldDataTypeSize = ModbusDataType.valueOf(dataType).getDataTypeSize();
+        Short fieldDataTypeSize = ModbusDataTypeSizes.enumForValue(dataType).getDataTypeSize();
 
         if (request instanceof ModbusPDUReadDiscreteInputsRequest) {
             if (!(response instanceof ModbusPDUReadDiscreteInputsResponse)) {
diff --git a/plc4j/examples/hello-world-plc4x/src/main/java/org/apache/plc4x/java/examples/helloplc4x/HelloPlc4x.java b/plc4j/examples/hello-world-plc4x/src/main/java/org/apache/plc4x/java/examples/helloplc4x/HelloPlc4x.java
index f9bed87..f5e40e6 100644
--- a/plc4j/examples/hello-world-plc4x/src/main/java/org/apache/plc4x/java/examples/helloplc4x/HelloPlc4x.java
+++ b/plc4j/examples/hello-world-plc4x/src/main/java/org/apache/plc4x/java/examples/helloplc4x/HelloPlc4x.java
@@ -74,7 +74,7 @@ public class HelloPlc4x {
             printResponse(syncResponse);
 
             PlcValue asPlcValue = syncResponse.getAsPlcValue();
-            System.out.println(asPlcValue);
+            System.out.println(asPlcValue.toString());
 
             //////////////////////////////////////////////////////////
             // Read asynchronously ...