]> git.basschouten.com Git - openhab-addons.git/commitdiff
[modbus] Clarifying error messages with invalid configuration (#11292)
authorSami Salonen <ssalonen@gmail.com>
Mon, 11 Oct 2021 10:41:35 +0000 (13:41 +0300)
committerGitHub <noreply@github.com>
Mon, 11 Oct 2021 10:41:35 +0000 (12:41 +0200)
Resolves #10814

Signed-off-by: Sami Salonen <ssalonen@gmail.com>
bundles/org.openhab.binding.modbus/src/main/java/org/openhab/binding/modbus/internal/handler/ModbusDataThingHandler.java

index d1b03d1c1da98a763dc16442e37b3f9e5674479c..4a83ef83a7f4bc1c0a0468fff53b86d312450a8d 100644 (file)
@@ -718,11 +718,14 @@ public class ModbusDataThingHandler extends BaseThingHandler {
         }
 
         if (valueTypeBitCount >= 16 && readSubIndex.isPresent()) {
-            String errmsg = String
-                    .format("readStart=X.Y is not allowed to be used with value types larger than 16bit!");
+            String errmsg = String.format(
+                    "readStart=X.Y notation is not allowed to be used with value types larger than 16bit! Use readStart=X instead.");
             throw new ModbusConfigurationException(errmsg);
         } else if (!bitQuery && valueTypeBitCount < 16 && !readSubIndex.isPresent()) {
-            String errmsg = String.format("readStart=X.Y must be used with value types less than 16bit!");
+            // User has specified value type which is less than register width (16 bits).
+            // readStart=X.Y notation must be used to define which data to extract from the 16 bit register.
+            String errmsg = String
+                    .format("readStart=X.Y must be used with value types (readValueType) less than 16bit!");
             throw new ModbusConfigurationException(errmsg);
         } else if (readSubIndex.isPresent() && (readSubIndex.get() + 1) * valueTypeBitCount > 16) {
             // the sub index Y (in X.Y) is above the register limits