[modbus] Clarifying error messages with invalid configuration (#11292)
Resolves #10814 Signed-off-by: Sami Salonen <ssalonen@gmail.com>
This commit is contained in:
parent
01c0b199fd
commit
22e8a37ee9
|
@ -718,11 +718,14 @@ public class ModbusDataThingHandler extends BaseThingHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (valueTypeBitCount >= 16 && readSubIndex.isPresent()) {
|
if (valueTypeBitCount >= 16 && readSubIndex.isPresent()) {
|
||||||
String errmsg = String
|
String errmsg = String.format(
|
||||||
.format("readStart=X.Y is not allowed to be used with value types larger than 16bit!");
|
"readStart=X.Y notation is not allowed to be used with value types larger than 16bit! Use readStart=X instead.");
|
||||||
throw new ModbusConfigurationException(errmsg);
|
throw new ModbusConfigurationException(errmsg);
|
||||||
} else if (!bitQuery && valueTypeBitCount < 16 && !readSubIndex.isPresent()) {
|
} 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);
|
throw new ModbusConfigurationException(errmsg);
|
||||||
} else if (readSubIndex.isPresent() && (readSubIndex.get() + 1) * valueTypeBitCount > 16) {
|
} else if (readSubIndex.isPresent() && (readSubIndex.get() + 1) * valueTypeBitCount > 16) {
|
||||||
// the sub index Y (in X.Y) is above the register limits
|
// the sub index Y (in X.Y) is above the register limits
|
||||||
|
|
Loading…
Reference in New Issue