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/09/26 15:52:40 UTC

[plc4x] 02/10: Tidying up.

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

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

commit 83957d36556b9fe03b31fe2d98755c8b628b7245
Author: hutcheb <be...@gmail.com>
AuthorDate: Sun Sep 20 17:18:37 2020 -0400

    Tidying up.
---
 .../org/apache/plc4x/java/api/value/PlcCHAR.java   |  5 ++++
 .../org/apache/plc4x/java/api/value/PlcWCHAR.java  |  5 ++++
 .../java/modbus/field/ModbusExtendedRegister.java  |  4 +--
 .../plc4x/java/modbus/field/ModbusField.java       | 31 +---------------------
 .../plc4x/java/modbus/field/ModbusFieldCoil.java   |  4 +--
 .../modbus/field/ModbusFieldDiscreteInput.java     |  4 +--
 .../modbus/field/ModbusFieldHoldingRegister.java   |  4 +--
 .../modbus/field/ModbusFieldInputRegister.java     |  4 +--
 8 files changed, 21 insertions(+), 40 deletions(-)

diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcCHAR.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcCHAR.java
index de42328..b39a63e 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcCHAR.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcCHAR.java
@@ -203,6 +203,11 @@ public class PlcCHAR extends PlcIECValue<Short> {
     }
 
     @Override
+    public Object getObject() {
+        return Character.toString(Character.valueOf((char) ((short) value)));
+    }
+
+    @Override
     @JsonIgnore
     public String toString() {
         return Character.toString(Character.valueOf((char) ((short) value)));
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcWCHAR.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcWCHAR.java
index 558d75f..3c44e9d 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcWCHAR.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcWCHAR.java
@@ -187,6 +187,11 @@ public class PlcWCHAR extends PlcIECValue<Integer> {
     }
 
     @Override
+    public Object getObject() {
+        return Character.toString(Character.valueOf((char) ((int) value)));
+    }
+
+    @Override
     @JsonIgnore
     public String toString() {
         return Character.toString(Character.valueOf((char) ((int) value)));
diff --git a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusExtendedRegister.java b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusExtendedRegister.java
index 637b7b2..07557ac 100644
--- a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusExtendedRegister.java
+++ b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusExtendedRegister.java
@@ -32,7 +32,7 @@ public class ModbusExtendedRegister extends ModbusField {
     protected static final int REGISTER_MAXADDRESS = 655359999;
 
     protected ModbusExtendedRegister(int address, Integer quantity, String datatype) {
-        super(address, quantity, datatype);
+        super(address, quantity, datatype.toUpperCase());
     }
 
     public static boolean matches(String addressString) {
@@ -74,6 +74,6 @@ public class ModbusExtendedRegister extends ModbusField {
         String datatypeTemp = matcher.group("datatype");
         String datatype = datatypeTemp != null ? datatypeTemp : "INT";
 
-        return new ModbusExtendedRegister(address, quantity, datatype);
+        return new ModbusExtendedRegister(address, quantity, datatype.toUpperCase());
     }
 }
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 e767b30..bf6d933 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
@@ -34,33 +34,6 @@ public abstract class ModbusField implements PlcField {
 
     public static final Pattern ADDRESS_PATTERN = Pattern.compile("(?<address>\\d+):?(?<datatype>[a-zA-Z_]+)?(\\[(?<quantity>\\d+)])?");
     public static final Pattern FIXED_DIGIT_MODBUS_PATTERN = Pattern.compile("(?<address>\\d{4,5}):?(?<datatype>[a-zA-Z_]+)?(\\[(?<quantity>\\d+)])?");
-    public static final String[] DATATYPES = {"BOOL",
-                                              "BYTE",
-                                              "WORD",
-                                              "DWORD",
-                                              "LWORD",
-                                              "SINT",
-                                              "INT",
-                                              "DINT",
-                                              "LINT",
-                                              "USINT",
-                                              "UINT",
-                                              "UDINT",
-                                              "ULINT",
-                                              "REAL",
-                                              "LREAL",
-                                              "TIME",
-                                              "LTIME",
-                                              "DATE",
-                                              "LDATE",
-                                              "TIME_OF_DAY",
-                                              "LTIME_OF_DAY",
-                                              "DATE_TIME",
-                                              "LDATE_TIME",
-                                              "CHAR",
-                                              "WCHAR",
-                                              "STRING",
-                                              "WSTRING"};
 
     protected static final int PROTOCOL_ADDRESS_OFFSET = 1;
 
@@ -99,9 +72,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";
-        if (ArrayUtils.contains( DATATYPES, this.dataType.toUpperCase()) == false) {
-            throw new IllegalArgumentException("datatype must be an IEC-61131 listed datatype. Was " + this.dataType);
-        }
+        ModbusDataType.valueOf(this.dataType);
     }
 
     public int getAddress() {
diff --git a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldCoil.java b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldCoil.java
index 41db02a..37188e6 100644
--- a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldCoil.java
+++ b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldCoil.java
@@ -32,7 +32,7 @@ public class ModbusFieldCoil extends ModbusField {
     protected static final int REGISTER_MAXADDRESS = 65535;
 
     public ModbusFieldCoil(int address, Integer quantity, String datatype) {
-        super(address, quantity, datatype);
+        super(address, quantity, datatype.toUpperCase());
     }
 
     public static boolean matches(String addressString) {
@@ -74,7 +74,7 @@ public class ModbusFieldCoil extends ModbusField {
         String datatypeTemp = matcher.group("datatype");
         String datatype = datatypeTemp != null ? datatypeTemp : "BOOL";
 
-        return new ModbusFieldCoil(address, quantity, datatype);
+        return new ModbusFieldCoil(address, quantity, datatype.toUpperCase());
     }
 
 }
diff --git a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldDiscreteInput.java b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldDiscreteInput.java
index 9a2febc..0f390d1 100644
--- a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldDiscreteInput.java
+++ b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldDiscreteInput.java
@@ -32,7 +32,7 @@ public class ModbusFieldDiscreteInput extends ModbusField {
     protected static final int REGISTER_MAXADDRESS = 65535;
 
     public ModbusFieldDiscreteInput(int address, Integer quantity, String datatype) {
-        super(address, quantity, datatype);
+        super(address, quantity, datatype.toUpperCase());
     }
 
     public static boolean matches(String addressString) {
@@ -74,6 +74,6 @@ public class ModbusFieldDiscreteInput extends ModbusField {
         String datatypeTemp = matcher.group("datatype");
         String datatype = datatypeTemp != null ? datatypeTemp : "BOOL";
 
-        return new ModbusFieldDiscreteInput(address, quantity, datatype);
+        return new ModbusFieldDiscreteInput(address, quantity, datatype.toUpperCase());
     }
 }
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 53c5d64..dae3ce7 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
@@ -32,7 +32,7 @@ public class ModbusFieldHoldingRegister extends ModbusField {
     protected static final int REGISTER_MAXADDRESS = 65535;
 
     protected ModbusFieldHoldingRegister(int address, Integer quantity, String datatype) {
-        super(address, quantity, datatype);
+        super(address, quantity, datatype.toUpperCase());
     }
 
     public static boolean matches(String addressString) {
@@ -73,7 +73,7 @@ public class ModbusFieldHoldingRegister extends ModbusField {
         String datatypeTemp = matcher.group("datatype");
         String datatype = datatypeTemp != null ? datatypeTemp : "INT";
 
-        return new ModbusFieldHoldingRegister(address, quantity, datatype);
+        return new ModbusFieldHoldingRegister(address, quantity, datatype.toUpperCase());
     }
 
 }
diff --git a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldInputRegister.java b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldInputRegister.java
index e4f5340..199ccb2 100644
--- a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldInputRegister.java
+++ b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldInputRegister.java
@@ -32,7 +32,7 @@ public class ModbusFieldInputRegister extends ModbusField {
     protected static final int REGISTER_MAXADDRESS = 65535;
 
     protected ModbusFieldInputRegister(int address, Integer quantity, String datatype) {
-        super(address, quantity, datatype);
+        super(address, quantity, datatype.toUpperCase());
     }
 
     public static boolean matches(String addressString) {
@@ -73,6 +73,6 @@ public class ModbusFieldInputRegister extends ModbusField {
         String datatypeTemp = matcher.group("datatype");
         String datatype = datatypeTemp != null ? datatypeTemp : "INT";
 
-        return new ModbusFieldInputRegister(address, quantity, datatype);
+        return new ModbusFieldInputRegister(address, quantity, datatype.toUpperCase());
     }
 }