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 ...