Fixes #12641.
Signed-off-by: Łukasz Dywicki <luke@code-house.org>
| `timeBetweenTransactionsMillis` | | integer | `60` | How long to delay we must have at minimum between two consecutive MODBUS transactions. In milliseconds. |
| `timeBetweenReconnectMillis` | | integer | `0` | How long to wait to before trying to establish a new connection after the previous one has been disconnected. In milliseconds. |
| `connectMaxTries` | | integer | `1` | How many times we try to establish the connection. Should be at least 1. |
+| `afterConnectionDelayMillis` | | integer | `0` | Connection warm-up time. Additional time which is spent on preparing connection which should be spent waiting while end device is getting ready to answer first modbus call. In milliseconds. |
| `reconnectAfterMillis` | | integer | `0` | The connection is kept open at least the time specified here. Value of zero means that connection is disconnected after every MODBUS transaction. In milliseconds. |
| `connectTimeoutMillis` | | integer | `10000` | The maximum time that is waited when establishing the connection. Value of zero means that system/OS default is respected. In milliseconds. |
| `enableDiscovery` | | boolean | false | Enable auto-discovery feature. Effective only if a supporting extension has been installed. |
| `flowControlOut` | | text | `"none"` | Type of flow control for sending. Valid values are: `"none"`, `"xon/xoff out"`, `"rts/cts out"`. |
| `timeBetweenTransactionsMillis` | | integer | `35` | How long to delay we must have at minimum between two consecutive MODBUS transactions. In milliseconds. |
| `connectMaxTries` | | integer | `1` | How many times we try to establish the connection. Should be at least 1. |
+| `afterConnectionDelayMillis` | | integer | `0` | Connection warm-up time. Additional time which is spent on preparing connection which should be spent waiting while end device is getting ready to answer first modbus call. In milliseconds. |
| `connectTimeoutMillis` | | integer | `10000` | The maximum time that is waited when establishing the connection. Value of zero means thatsystem/OS default is respected. In milliseconds. |
| `enableDiscovery` | | boolean | false | Enable auto-discovery feature. Effective only if a supporting extension has been installed. |
private String flowControlOut = "none";
private int timeBetweenTransactionsMillis = 35;
private int connectMaxTries = 1;
+ private int afterConnectionDelayMillis;
private int connectTimeoutMillis = 10_000;
private boolean enableDiscovery;
this.connectMaxTries = connectMaxTries;
}
+ public int getAfterConnectionDelayMillis() {
+ return afterConnectionDelayMillis;
+ }
+
+ public void setAfterConnectionDelayMillis(int afterConnectionDelayMillis) {
+ this.afterConnectionDelayMillis = afterConnectionDelayMillis;
+ }
+
public int getConnectTimeoutMillis() {
return connectTimeoutMillis;
}
private int timeBetweenReconnectMillis;
private int connectMaxTries = 1;
private int reconnectAfterMillis;
+ private int afterConnectionDelayMillis;
private int connectTimeoutMillis = 10_000;
private boolean enableDiscovery;
private boolean rtuEncoded;
this.reconnectAfterMillis = reconnectAfterMillis;
}
+ public int getAfterConnectionDelayMillis() {
+ return afterConnectionDelayMillis;
+ }
+
+ public void setAfterConnectionDelayMillis(int afterConnectionDelayMillis) {
+ this.afterConnectionDelayMillis = afterConnectionDelayMillis;
+ }
+
public int getConnectTimeoutMillis() {
return connectTimeoutMillis;
}
EndpointPoolConfiguration poolConfiguration = new EndpointPoolConfiguration();
this.poolConfiguration = poolConfiguration;
poolConfiguration.setConnectMaxTries(config.getConnectMaxTries());
+ poolConfiguration.setAfterConnectionDelayMillis(config.getAfterConnectionDelayMillis());
poolConfiguration.setConnectTimeoutMillis(config.getConnectTimeoutMillis());
poolConfiguration.setInterTransactionDelayMillis(config.getTimeBetweenTransactionsMillis());
EndpointPoolConfiguration poolConfiguration = new EndpointPoolConfiguration();
this.poolConfiguration = poolConfiguration;
poolConfiguration.setConnectMaxTries(config.getConnectMaxTries());
+ poolConfiguration.setAfterConnectionDelayMillis(config.getAfterConnectionDelayMillis());
poolConfiguration.setConnectTimeoutMillis(config.getConnectTimeoutMillis());
poolConfiguration.setInterConnectDelayMillis(config.getTimeBetweenReconnectMillis());
poolConfiguration.setInterTransactionDelayMillis(config.getTimeBetweenTransactionsMillis());
thing-type.config.modbus.poller.type.option.discrete = discrete input, or digital in (DI)
thing-type.config.modbus.poller.type.option.holding = holding register
thing-type.config.modbus.poller.type.option.input = input register
+thing-type.config.modbus.serial.afterConnectionDelayMillis.label = Connection warm-up time
+thing-type.config.modbus.serial.afterConnectionDelayMillis.description = Connection warm-up time. Additional time which is spent on preparing connection which should be spent waiting while end device is getting ready to answer first modbus call. In milliseconds.
thing-type.config.modbus.serial.baud.label = Baud
thing-type.config.modbus.serial.baud.description = Baud of the connection
thing-type.config.modbus.serial.baud.option.75 = 75
thing-type.config.modbus.serial.stopBits.option.2.0 = 2
thing-type.config.modbus.serial.timeBetweenTransactionsMillis.label = Time Between Transactions
thing-type.config.modbus.serial.timeBetweenTransactionsMillis.description = How long to delay we must have at minimum between two consecutive MODBUS transactions. In milliseconds.
+thing-type.config.modbus.tcp.afterConnectionDelayMillis.label = Connection warm-up time
+thing-type.config.modbus.tcp.afterConnectionDelayMillis.description = Connection warm-up time. Additional time which is spent on preparing connection which should be spent waiting while end device is getting ready to answer first modbus call. In milliseconds.
thing-type.config.modbus.tcp.connectMaxTries.label = Maximum Connection Tries
thing-type.config.modbus.tcp.connectMaxTries.description = How many times we try to establish the connection. Should be at least 1.
thing-type.config.modbus.tcp.connectTimeoutMillis.label = Timeout for Establishing the Connection
<default>1</default>
<advanced>true</advanced>
</parameter>
+ <parameter name="afterConnectionDelayMillis" type="integer" min="0" unit="ms">
+ <label>Connection warm-up time</label>
+ <description>Connection warm-up time. Additional time which is spent on preparing connection which should be spent
+ waiting while end device is getting ready to answer first modbus call. In milliseconds.</description>
+ <default>0</default>
+ <advanced>true</advanced>
+ </parameter>
<parameter name="connectTimeoutMillis" type="integer" min="0" unit="ms">
<label>Timeout for Establishing the Connection</label>
<description>The maximum time that is waited when establishing the connection. Value of zero means that system/OS
<default>1</default>
<advanced>true</advanced>
</parameter>
+ <parameter name="afterConnectionDelayMillis" type="integer" min="0" unit="ms">
+ <label>Connection warm-up time</label>
+ <description>Connection warm-up time. Additional time which is spent on preparing connection which should be spent
+ waiting while end device is getting ready to answer first modbus call. In milliseconds.</description>
+ <default>0</default>
+ <advanced>true</advanced>
+ </parameter>
<parameter name="reconnectAfterMillis" type="integer" min="0" unit="ms">
<label>Reconnect Again After</label>
<description>The connection is kept open at least the time specified here. Value of zero means that connection is