@ya-modbus/transport 0.14.1 → 0.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +14 -1
- package/dist/cjs/src/client-config.d.ts +12 -0
- package/dist/cjs/src/client-config.d.ts.map +1 -1
- package/dist/cjs/src/client-config.js +22 -0
- package/dist/cjs/src/client-config.js.map +1 -1
- package/dist/cjs/src/create-modbus-transport.d.ts +2 -1
- package/dist/cjs/src/create-modbus-transport.d.ts.map +1 -1
- package/dist/cjs/src/create-modbus-transport.js +10 -9
- package/dist/cjs/src/create-modbus-transport.js.map +1 -1
- package/dist/cjs/src/manager.d.ts.map +1 -1
- package/dist/cjs/src/manager.js +2 -2
- package/dist/cjs/src/manager.js.map +1 -1
- package/dist/cjs/src/retry.d.ts +2 -1
- package/dist/cjs/src/retry.d.ts.map +1 -1
- package/dist/cjs/src/retry.js +3 -2
- package/dist/cjs/src/retry.js.map +1 -1
- package/dist/cjs/src/rtu-transport.d.ts +2 -0
- package/dist/cjs/src/rtu-transport.d.ts.map +1 -1
- package/dist/cjs/src/rtu-transport.js +2 -3
- package/dist/cjs/src/rtu-transport.js.map +1 -1
- package/dist/cjs/src/slave-transport.d.ts +3 -1
- package/dist/cjs/src/slave-transport.d.ts.map +1 -1
- package/dist/cjs/src/slave-transport.js +4 -2
- package/dist/cjs/src/slave-transport.js.map +1 -1
- package/dist/cjs/src/tcp-transport.d.ts +2 -0
- package/dist/cjs/src/tcp-transport.d.ts.map +1 -1
- package/dist/cjs/src/tcp-transport.js +1 -1
- package/dist/cjs/src/tcp-transport.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/client-config.d.ts +12 -0
- package/dist/esm/src/client-config.d.ts.map +1 -1
- package/dist/esm/src/client-config.js +21 -0
- package/dist/esm/src/client-config.js.map +1 -1
- package/dist/esm/src/create-modbus-transport.d.ts +2 -1
- package/dist/esm/src/create-modbus-transport.d.ts.map +1 -1
- package/dist/esm/src/create-modbus-transport.js +10 -9
- package/dist/esm/src/create-modbus-transport.js.map +1 -1
- package/dist/esm/src/manager.d.ts.map +1 -1
- package/dist/esm/src/manager.js +3 -3
- package/dist/esm/src/manager.js.map +1 -1
- package/dist/esm/src/retry.d.ts +2 -1
- package/dist/esm/src/retry.d.ts.map +1 -1
- package/dist/esm/src/retry.js +3 -2
- package/dist/esm/src/retry.js.map +1 -1
- package/dist/esm/src/rtu-transport.d.ts +2 -0
- package/dist/esm/src/rtu-transport.d.ts.map +1 -1
- package/dist/esm/src/rtu-transport.js +3 -4
- package/dist/esm/src/rtu-transport.js.map +1 -1
- package/dist/esm/src/slave-transport.d.ts +3 -1
- package/dist/esm/src/slave-transport.d.ts.map +1 -1
- package/dist/esm/src/slave-transport.js +4 -2
- package/dist/esm/src/slave-transport.js.map +1 -1
- package/dist/esm/src/tcp-transport.d.ts +2 -0
- package/dist/esm/src/tcp-transport.d.ts.map +1 -1
- package/dist/esm/src/tcp-transport.js +1 -1
- package/dist/esm/src/tcp-transport.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.15.1](https://github.com/groupsky/ya-modbus/compare/@ya-modbus/transport@0.15.0...@ya-modbus/transport@0.15.1) (2026-11-10)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **transport:** a port that cannot be opened prints 'Error:' once ([#763](https://github.com/groupsky/ya-modbus/issues/763)) ([c9468c9](https://github.com/groupsky/ya-modbus/commit/c9468c955a7fac62d3751b759f592b0682ffa11c)), closes [#748](https://github.com/groupsky/ya-modbus/issues/748)
|
|
11
|
+
|
|
12
|
+
# [0.15.0](https://github.com/groupsky/ya-modbus/compare/@ya-modbus/transport@0.14.1...@ya-modbus/transport@0.15.0) (2026-11-04)
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
- set request attempts and retry delay from the CLI and the bridge config ([#736](https://github.com/groupsky/ya-modbus/issues/736)) ([42963d0](https://github.com/groupsky/ya-modbus/commit/42963d0ea295a073bb731f08ad0d436c6c3616bf)), closes [#624](https://github.com/groupsky/ya-modbus/issues/624)
|
|
17
|
+
|
|
6
18
|
## [0.14.1](https://github.com/groupsky/ya-modbus/compare/@ya-modbus/transport@0.14.0...@ya-modbus/transport@0.14.1) (2026-10-20)
|
|
7
19
|
|
|
8
20
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -44,6 +44,19 @@ const tcpTransport = await createTransport({
|
|
|
44
44
|
await rtuTransport.readHoldingRegisters(0, 10)
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
+
A failed request is sent again: up to `maxRetries` times in total (default: 3, `1` for no retry),
|
|
48
|
+
with `retryDelay` ms between the tries (default: 100). `logger` is called for each retry:
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
const transport = await createTransport({
|
|
52
|
+
host: '192.168.1.100',
|
|
53
|
+
slaveId: 1,
|
|
54
|
+
maxRetries: 2,
|
|
55
|
+
retryDelay: 500,
|
|
56
|
+
logger: (attempt, error) => console.warn(`Try ${attempt} failed: ${error.message}`),
|
|
57
|
+
})
|
|
58
|
+
```
|
|
59
|
+
|
|
47
60
|
## Several devices on one connection
|
|
48
61
|
|
|
49
62
|
`TransportManager` shares one connection between the devices on a serial port with the same
|
|
@@ -182,7 +195,7 @@ for example when a USB adapter is not plugged in. A long-running program can sta
|
|
|
182
195
|
`new TransportManager({ startLost: true })`. Then `getTransport()` returns the transport, and
|
|
183
196
|
its connection starts lost with the error of the failed open. Requests reject with a
|
|
184
197
|
`ConnectionLostError` with a message like
|
|
185
|
-
`Could not open /dev/ttyUSB0:
|
|
198
|
+
`Could not open /dev/ttyUSB0: No such file or directory, cannot open /dev/ttyUSB0`, until
|
|
186
199
|
the port opens for the first time. The port is opened again after the same delays as above.
|
|
187
200
|
`getConnectionError(config)` returns the error while the connection is lost, and `undefined`
|
|
188
201
|
while it works. The MQTT bridge uses this, so one missing adapter does not stop the other
|
|
@@ -27,4 +27,16 @@ export declare function configureClient(client: ModbusRTU, slaveId: number, time
|
|
|
27
27
|
* @param timeout - Connect timeout in milliseconds (default: DEFAULT_TIMEOUT_MS)
|
|
28
28
|
*/
|
|
29
29
|
export declare function connectTCP(client: ModbusRTU, host: string, port: number, timeout?: number): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Connect a modbus-serial client to a serial port
|
|
32
|
+
*
|
|
33
|
+
* The serial port library starts the message of a port that cannot be opened with "Error: "
|
|
34
|
+
* ("Error: No such file or directory, cannot open /dev/ttyUSB0"). Callers that print
|
|
35
|
+
* `Error: ${message}` would show it twice, so this removes it.
|
|
36
|
+
*
|
|
37
|
+
* @param client - New modbus-serial client
|
|
38
|
+
* @param port - Serial port path
|
|
39
|
+
* @param options - Serial settings
|
|
40
|
+
*/
|
|
41
|
+
export declare function connectRTU(client: ModbusRTU, port: string, options: Parameters<ModbusRTU['connectRTUBuffered']>[1]): Promise<void>;
|
|
30
42
|
//# sourceMappingURL=client-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-config.d.ts","sourceRoot":"","sources":["../../../src/client-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,SAAS,MAAM,eAAe,CAAA;AAE1C,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,OAAO,CAAA;AAEtC;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAG1F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,SAAqB,GAC3B,OAAO,CAAC,IAAI,CAAC,CASf"}
|
|
1
|
+
{"version":3,"file":"client-config.d.ts","sourceRoot":"","sources":["../../../src/client-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,SAAS,MAAM,eAAe,CAAA;AAE1C,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,OAAO,CAAA;AAEtC;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAG1F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,SAAqB,GAC3B,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,GACtD,OAAO,CAAC,IAAI,CAAC,CAOf"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.DEFAULT_TIMEOUT_MS = void 0;
|
|
7
7
|
exports.configureClient = configureClient;
|
|
8
8
|
exports.connectTCP = connectTCP;
|
|
9
|
+
exports.connectRTU = connectRTU;
|
|
9
10
|
/** Default response timeout for Modbus operations in milliseconds */
|
|
10
11
|
exports.DEFAULT_TIMEOUT_MS = 1000;
|
|
11
12
|
/**
|
|
@@ -44,4 +45,25 @@ async function connectTCP(client, host, port, timeout = exports.DEFAULT_TIMEOUT_
|
|
|
44
45
|
throw error;
|
|
45
46
|
}
|
|
46
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Connect a modbus-serial client to a serial port
|
|
50
|
+
*
|
|
51
|
+
* The serial port library starts the message of a port that cannot be opened with "Error: "
|
|
52
|
+
* ("Error: No such file or directory, cannot open /dev/ttyUSB0"). Callers that print
|
|
53
|
+
* `Error: ${message}` would show it twice, so this removes it.
|
|
54
|
+
*
|
|
55
|
+
* @param client - New modbus-serial client
|
|
56
|
+
* @param port - Serial port path
|
|
57
|
+
* @param options - Serial settings
|
|
58
|
+
*/
|
|
59
|
+
async function connectRTU(client, port, options) {
|
|
60
|
+
try {
|
|
61
|
+
await client.connectRTUBuffered(port, options);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
if (error instanceof Error)
|
|
65
|
+
error.message = error.message.replace(/^Error: /, '');
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
47
69
|
//# sourceMappingURL=client-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-config.js","sourceRoot":"","sources":["../../../src/client-config.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAcH,0CAGC;AAgBD,gCAcC;
|
|
1
|
+
{"version":3,"file":"client-config.js","sourceRoot":"","sources":["../../../src/client-config.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAcH,0CAGC;AAgBD,gCAcC;AAaD,gCAWC;AAnED,qEAAqE;AACxD,QAAA,kBAAkB,GAAG,IAAI,CAAA;AAEtC;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,MAAiB,EAAE,OAAe,EAAE,OAAgB;IAClF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACrB,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,0BAAkB,CAAC,CAAA;AAClD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,UAAU,CAC9B,MAAiB,EACjB,IAAY,EACZ,IAAY,EACZ,OAAO,GAAG,0BAAkB;IAE5B,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sFAAsF;QACtF,yCAAyC;QACzC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAC/B,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACI,KAAK,UAAU,UAAU,CAC9B,MAAiB,EACjB,IAAY,EACZ,OAAuD;IAEvD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK;YAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QACjF,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
|
|
@@ -12,7 +12,8 @@ import { type RetryLogger } from './retry.js';
|
|
|
12
12
|
* @param client - Configured ModbusRTU client instance, or a ModbusConnection that can reopen it
|
|
13
13
|
* @param maxRetries - Maximum retry attempts (default: 3, use 1 for discovery to disable retries)
|
|
14
14
|
* @param logger - Optional callback to log retry attempts for debugging
|
|
15
|
+
* @param retryDelay - Pause between attempts in milliseconds (default: 100)
|
|
15
16
|
* @returns Transport implementation
|
|
16
17
|
*/
|
|
17
|
-
export declare function createModbusTransport(client: ModbusRTU | ModbusConnection, maxRetries?: number, logger?: RetryLogger): Transport;
|
|
18
|
+
export declare function createModbusTransport(client: ModbusRTU | ModbusConnection, maxRetries?: number, logger?: RetryLogger, retryDelay?: number): Transport;
|
|
18
19
|
//# sourceMappingURL=create-modbus-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-modbus-transport.d.ts","sourceRoot":"","sources":["../../../src/create-modbus-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,SAAS,MAAM,eAAe,CAAA;AAG1C,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAExD
|
|
1
|
+
{"version":3,"file":"create-modbus-transport.d.ts","sourceRoot":"","sources":["../../../src/create-modbus-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,SAAS,MAAM,eAAe,CAAA;AAG1C,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAExD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,GAAG,gBAAgB,EACpC,UAAU,GAAE,MAAU,EACtB,MAAM,CAAC,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,SAAS,CAoHX"}
|
|
@@ -14,49 +14,50 @@ const retry_js_1 = require("./retry.js");
|
|
|
14
14
|
* @param client - Configured ModbusRTU client instance, or a ModbusConnection that can reopen it
|
|
15
15
|
* @param maxRetries - Maximum retry attempts (default: 3, use 1 for discovery to disable retries)
|
|
16
16
|
* @param logger - Optional callback to log retry attempts for debugging
|
|
17
|
+
* @param retryDelay - Pause between attempts in milliseconds (default: 100)
|
|
17
18
|
* @returns Transport implementation
|
|
18
19
|
*/
|
|
19
|
-
function createModbusTransport(client, maxRetries = 3, logger) {
|
|
20
|
+
function createModbusTransport(client, maxRetries = 3, logger, retryDelay) {
|
|
20
21
|
const connection = (0, connection_js_1.toConnection)(client);
|
|
21
22
|
return {
|
|
22
23
|
async readHoldingRegisters(address, count) {
|
|
23
24
|
return (0, retry_js_1.withRetry)(() => connection.run(async (modbus) => {
|
|
24
25
|
const result = await modbus.readHoldingRegisters(address, count);
|
|
25
26
|
return (0, answer_length_js_1.checkLength)(result.buffer, count * 2);
|
|
26
|
-
}), maxRetries, logger);
|
|
27
|
+
}), maxRetries, logger, retryDelay);
|
|
27
28
|
},
|
|
28
29
|
async readInputRegisters(address, count) {
|
|
29
30
|
return (0, retry_js_1.withRetry)(() => connection.run(async (modbus) => {
|
|
30
31
|
const result = await modbus.readInputRegisters(address, count);
|
|
31
32
|
return (0, answer_length_js_1.checkLength)(result.buffer, count * 2);
|
|
32
|
-
}), maxRetries, logger);
|
|
33
|
+
}), maxRetries, logger, retryDelay);
|
|
33
34
|
},
|
|
34
35
|
async readCoils(address, count) {
|
|
35
36
|
return (0, retry_js_1.withRetry)(() => connection.run(async (modbus) => {
|
|
36
37
|
const result = await modbus.readCoils(address, count);
|
|
37
38
|
return (0, answer_length_js_1.checkLength)(result.buffer, Math.ceil(count / 8));
|
|
38
|
-
}), maxRetries, logger);
|
|
39
|
+
}), maxRetries, logger, retryDelay);
|
|
39
40
|
},
|
|
40
41
|
async readDiscreteInputs(address, count) {
|
|
41
42
|
return (0, retry_js_1.withRetry)(() => connection.run(async (modbus) => {
|
|
42
43
|
const result = await modbus.readDiscreteInputs(address, count);
|
|
43
44
|
return (0, answer_length_js_1.checkLength)(result.buffer, Math.ceil(count / 8));
|
|
44
|
-
}), maxRetries, logger);
|
|
45
|
+
}), maxRetries, logger, retryDelay);
|
|
45
46
|
},
|
|
46
47
|
async writeSingleRegister(address, value) {
|
|
47
48
|
return (0, retry_js_1.withRetry)(() => connection.run(async (modbus) => {
|
|
48
49
|
await modbus.writeRegister(address, value);
|
|
49
|
-
}), maxRetries, logger);
|
|
50
|
+
}), maxRetries, logger, retryDelay);
|
|
50
51
|
},
|
|
51
52
|
async writeMultipleRegisters(address, values) {
|
|
52
53
|
return (0, retry_js_1.withRetry)(() => connection.run(async (modbus) => {
|
|
53
54
|
await modbus.writeRegisters(address, values);
|
|
54
|
-
}), maxRetries, logger);
|
|
55
|
+
}), maxRetries, logger, retryDelay);
|
|
55
56
|
},
|
|
56
57
|
async writeSingleCoil(address, value) {
|
|
57
58
|
return (0, retry_js_1.withRetry)(() => connection.run(async (modbus) => {
|
|
58
59
|
await modbus.writeCoil(address, value);
|
|
59
|
-
}), maxRetries, logger);
|
|
60
|
+
}), maxRetries, logger, retryDelay);
|
|
60
61
|
},
|
|
61
62
|
async writeMultipleCoils(address, values) {
|
|
62
63
|
return (0, retry_js_1.withRetry)(() => connection.run(async (modbus) => {
|
|
@@ -69,7 +70,7 @@ function createModbusTransport(client, maxRetries = 3, logger) {
|
|
|
69
70
|
bools.push((byte & (1 << bitIndex)) !== 0);
|
|
70
71
|
}
|
|
71
72
|
await modbus.writeCoils(address, bools);
|
|
72
|
-
}), maxRetries, logger);
|
|
73
|
+
}), maxRetries, logger, retryDelay);
|
|
73
74
|
},
|
|
74
75
|
async close() {
|
|
75
76
|
return connection.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-modbus-transport.js","sourceRoot":"","sources":["../../../src/create-modbus-transport.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"create-modbus-transport.js","sourceRoot":"","sources":["../../../src/create-modbus-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMxD,OAAO,KAAK,EAAwB,eAAe,EAAE,MAAM,cAAc,CAAA;AAEzE,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAgB7E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,gBAAgB;IAOf,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqC;IAEjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IAEtE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;gBAEtB,OAAO,GAAE,uBAA4B;IAElE;;;;;;;;;OASG;IACG,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMxD,OAAO,KAAK,EAAwB,eAAe,EAAE,MAAM,cAAc,CAAA;AAEzE,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAgB7E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,gBAAgB;IAOf,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqC;IAEjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IAEtE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;gBAEtB,OAAO,GAAE,uBAA4B;IAElE;;;;;;;;;OASG;IACG,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAgC/D;;;;;;;;;;;OAWG;IACG,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3D;;;;;;OAMG;YACW,cAAc;IA4B5B;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,GAAG,SAAS;IAIpE;;;;OAIG;IACH,QAAQ,IAAI,cAAc;IAS1B;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAc/B;;;;;OAKG;YACW,eAAe;IAQ7B;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAShC;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAIjB;;;;;;OAMG;YACW,eAAe;IAe7B;;;;;;OAMG;YACW,eAAe;IAU7B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CAGpB"}
|
package/dist/cjs/src/manager.js
CHANGED
|
@@ -76,7 +76,7 @@ class TransportManager {
|
|
|
76
76
|
entry = await opening;
|
|
77
77
|
}
|
|
78
78
|
// Return a new SlaveTransport for this specific slave
|
|
79
|
-
const transport = new slave_transport_js_1.SlaveTransport(config.slaveId, entry.connection, entry.mutex, config.maxRetries ?? 3, config.logger, this.isRTUConfig(config) ? config.interDeviceDelay : undefined, entry.lastRequest);
|
|
79
|
+
const transport = new slave_transport_js_1.SlaveTransport(config.slaveId, entry.connection, entry.mutex, config.maxRetries ?? 3, config.logger, this.isRTUConfig(config) ? config.interDeviceDelay : undefined, entry.lastRequest, config.retryDelay);
|
|
80
80
|
const target = this.getTarget(config);
|
|
81
81
|
const where = this.isRTUConfig(config) ? `${target} ${(0, request_context_js_1.formatSerialSettings)(config)}` : target;
|
|
82
82
|
const described = (0, request_context_js_1.withRequestContext)(transport, `${where}, slave ${config.slaveId}`);
|
|
@@ -231,7 +231,7 @@ class TransportManager {
|
|
|
231
231
|
*/
|
|
232
232
|
async createRTUClient(config) {
|
|
233
233
|
const client = new modbus_serial_1.default();
|
|
234
|
-
await
|
|
234
|
+
await (0, client_config_js_1.connectRTU)(client, config.port, {
|
|
235
235
|
baudRate: config.baudRate,
|
|
236
236
|
dataBits: config.dataBits,
|
|
237
237
|
parity: config.parity,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/manager.ts"],"names":[],"mappings":";;;;AACA,6CAAmC;AACnC,0EAAqC;AAErC,
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/src/retry.d.ts
CHANGED
|
@@ -26,9 +26,10 @@ export type RetryLogger = (attempt: number, error: ModbusError) => void;
|
|
|
26
26
|
* @param fn - The async function to retry
|
|
27
27
|
* @param maxRetries - Maximum number of attempts (default: MAX_RETRIES)
|
|
28
28
|
* @param logger - Optional callback to log retry attempts
|
|
29
|
+
* @param retryDelay - Pause between attempts in milliseconds (default: RETRY_DELAY_MS)
|
|
29
30
|
* @returns Promise resolving to the function's return value
|
|
30
31
|
* @throws The last error encountered if all retries are exhausted, as an Error
|
|
31
32
|
* with the diagnostic properties of the original (see normalizeModbusError)
|
|
32
33
|
*/
|
|
33
|
-
export declare function withRetry<T>(fn: () => Promise<T>, maxRetries?: number, logger?: RetryLogger): Promise<T>;
|
|
34
|
+
export declare function withRetry<T>(fn: () => Promise<T>, maxRetries?: number, logger?: RetryLogger, retryDelay?: number): Promise<T>;
|
|
34
35
|
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/retry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAE7E,6DAA6D;AAC7D,eAAO,MAAM,WAAW,IAAI,CAAA;AAE5B,mDAAmD;AACnD,eAAO,MAAM,cAAc,MAAM,CAAA;AAEjC;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;AAEvE
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/retry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAE7E,6DAA6D;AAC7D,eAAO,MAAM,WAAW,IAAI,CAAA;AAE5B,mDAAmD;AACnD,eAAO,MAAM,cAAc,MAAM,CAAA;AAEjC;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;AAEvE;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,GAAE,MAAoB,EAChC,MAAM,CAAC,EAAE,WAAW,EACpB,UAAU,GAAE,MAAuB,GAClC,OAAO,CAAC,CAAC,CAAC,CAqBZ"}
|
package/dist/cjs/src/retry.js
CHANGED
|
@@ -26,11 +26,12 @@ function sleep(ms) {
|
|
|
26
26
|
* @param fn - The async function to retry
|
|
27
27
|
* @param maxRetries - Maximum number of attempts (default: MAX_RETRIES)
|
|
28
28
|
* @param logger - Optional callback to log retry attempts
|
|
29
|
+
* @param retryDelay - Pause between attempts in milliseconds (default: RETRY_DELAY_MS)
|
|
29
30
|
* @returns Promise resolving to the function's return value
|
|
30
31
|
* @throws The last error encountered if all retries are exhausted, as an Error
|
|
31
32
|
* with the diagnostic properties of the original (see normalizeModbusError)
|
|
32
33
|
*/
|
|
33
|
-
async function withRetry(fn, maxRetries = exports.MAX_RETRIES, logger) {
|
|
34
|
+
async function withRetry(fn, maxRetries = exports.MAX_RETRIES, logger, retryDelay = exports.RETRY_DELAY_MS) {
|
|
34
35
|
let lastError = new Error('No retry attempts were made');
|
|
35
36
|
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
36
37
|
try {
|
|
@@ -44,7 +45,7 @@ async function withRetry(fn, maxRetries = exports.MAX_RETRIES, logger) {
|
|
|
44
45
|
if (logger) {
|
|
45
46
|
logger(attempt, lastError);
|
|
46
47
|
}
|
|
47
|
-
await sleep(
|
|
48
|
+
await sleep(retryDelay);
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/retry.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAgBH,sBAEC;
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/retry.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAgBH,sBAEC;AAqBD,8BA0BC;AA/DD,6DAA6E;AAE7E,6DAA6D;AAChD,QAAA,WAAW,GAAG,CAAC,CAAA;AAE5B,mDAAmD;AACtC,QAAA,cAAc,GAAG,GAAG,CAAA;AAEjC;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAC1D,CAAC;AAUD;;;;;;;;;;GAUG;AACI,KAAK,UAAU,SAAS,CAC7B,EAAoB,EACpB,aAAqB,mBAAW,EAChC,MAAoB,EACpB,aAAqB,sBAAc;IAEnC,IAAI,SAAS,GAAgB,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAErE,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,IAAA,yCAAoB,EAAC,KAAK,CAAC,CAAA;YAEvC,kCAAkC;YAClC,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;gBACzB,8CAA8C;gBAC9C,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;gBAC5B,CAAC;gBACD,MAAM,KAAK,CAAC,UAAU,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAA;AACjB,CAAC"}
|
|
@@ -20,6 +20,8 @@ export interface RTUConfig {
|
|
|
20
20
|
timeout?: number | undefined;
|
|
21
21
|
/** Maximum retry attempts (default: 3, use 1 to disable retries) */
|
|
22
22
|
maxRetries?: number | undefined;
|
|
23
|
+
/** Pause between attempts in milliseconds (default: 100) */
|
|
24
|
+
retryDelay?: number | undefined;
|
|
23
25
|
/** Optional callback to log retry attempts for debugging */
|
|
24
26
|
logger?: RetryLogger | undefined;
|
|
25
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtu-transport.d.ts","sourceRoot":"","sources":["../../../src/rtu-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAO9F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,gBAAgB;IAChB,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB;IAChB,QAAQ,EAAE,QAAQ,CAAA;IAClB,aAAa;IACb,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB;IAChB,QAAQ,EAAE,QAAQ,CAAA;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAChC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACtC;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"rtu-transport.d.ts","sourceRoot":"","sources":["../../../src/rtu-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAO9F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,gBAAgB;IAChB,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB;IAChB,QAAQ,EAAE,QAAQ,CAAA;IAClB,aAAa;IACb,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB;IAChB,QAAQ,EAAE,QAAQ,CAAA;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAChC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACtC;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAoB9E"}
|
|
@@ -20,8 +20,7 @@ const request_context_js_1 = require("./request-context.js");
|
|
|
20
20
|
async function createRTUTransport(config) {
|
|
21
21
|
const open = async () => {
|
|
22
22
|
const client = new modbus_serial_1.default();
|
|
23
|
-
|
|
24
|
-
await client.connectRTUBuffered(config.port, {
|
|
23
|
+
await (0, client_config_js_1.connectRTU)(client, config.port, {
|
|
25
24
|
baudRate: config.baudRate,
|
|
26
25
|
dataBits: config.dataBits,
|
|
27
26
|
parity: config.parity,
|
|
@@ -31,6 +30,6 @@ async function createRTUTransport(config) {
|
|
|
31
30
|
return client;
|
|
32
31
|
};
|
|
33
32
|
const connection = new connection_js_1.ModbusConnection(await open(), config.port, open);
|
|
34
|
-
return (0, request_context_js_1.withRequestContext)((0, create_modbus_transport_js_1.createModbusTransport)(connection, config.maxRetries, config.logger), `${config.port} ${(0, request_context_js_1.formatSerialSettings)(config)}, slave ${config.slaveId}`);
|
|
33
|
+
return (0, request_context_js_1.withRequestContext)((0, create_modbus_transport_js_1.createModbusTransport)(connection, config.maxRetries, config.logger, config.retryDelay), `${config.port} ${(0, request_context_js_1.formatSerialSettings)(config)}, slave ${config.slaveId}`);
|
|
35
34
|
}
|
|
36
35
|
//# sourceMappingURL=rtu-transport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtu-transport.js","sourceRoot":"","sources":["../../../src/rtu-transport.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"rtu-transport.js","sourceRoot":"","sources":["../../../src/rtu-transport.ts"],"names":[],"mappings":";;AAoDA,gDAoBC;;AAvED,0EAAqC;AAErC,yDAAgE;AAChE,mDAAkD;AAClD,6EAAoE;AACpE,6DAA+E;AAoC/E;;;;;;;;;GASG;AACI,KAAK,UAAU,kBAAkB,CAAC,MAAiB;IACxD,MAAM,IAAI,GAAG,KAAK,IAAwB,EAAE;QAC1C,MAAM,MAAM,GAAG,IAAI,uBAAS,EAAE,CAAA;QAE9B,MAAM,IAAA,6BAAU,EAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;YACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAA;QAEF,IAAA,kCAAe,EAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACvD,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,IAAI,gCAAgB,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACxE,OAAO,IAAA,uCAAkB,EACvB,IAAA,kDAAqB,EAAC,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,EACtF,GAAG,MAAM,CAAC,IAAI,IAAI,IAAA,yCAAoB,EAAC,MAAM,CAAC,WAAW,MAAM,CAAC,OAAO,EAAE,CAC1E,CAAA;AACH,CAAC"}
|
|
@@ -41,6 +41,7 @@ export declare class SlaveTransport implements Transport {
|
|
|
41
41
|
private readonly logger?;
|
|
42
42
|
private readonly interDeviceDelay;
|
|
43
43
|
private readonly lastRequest;
|
|
44
|
+
private readonly retryDelay?;
|
|
44
45
|
private readonly connection;
|
|
45
46
|
/**
|
|
46
47
|
* @param slaveId - Modbus slave/unit ID for this device
|
|
@@ -53,8 +54,9 @@ export declare class SlaveTransport implements Transport {
|
|
|
53
54
|
* request (default: 0, no pause)
|
|
54
55
|
* @param lastRequest - Last request on the connection, the same for all transports that share
|
|
55
56
|
* the mutex. interDeviceDelay needs it.
|
|
57
|
+
* @param retryDelay - Pause between attempts in milliseconds (default: 100)
|
|
56
58
|
*/
|
|
57
|
-
constructor(slaveId: number, client: ModbusConnection | ModbusRTU, mutex: Mutex, maxRetries?: number, logger?: RetryLogger | undefined, interDeviceDelay?: number, lastRequest?: LastRequest);
|
|
59
|
+
constructor(slaveId: number, client: ModbusConnection | ModbusRTU, mutex: Mutex, maxRetries?: number, logger?: RetryLogger | undefined, interDeviceDelay?: number, lastRequest?: LastRequest, retryDelay?: number | undefined);
|
|
58
60
|
readHoldingRegisters(address: number, count: number): Promise<Buffer>;
|
|
59
61
|
readInputRegisters(address: number, count: number): Promise<Buffer>;
|
|
60
62
|
readCoils(address: number, count: number): Promise<Buffer>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slave-transport.d.ts","sourceRoot":"","sources":["../../../src/slave-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,SAAS,MAAM,eAAe,CAAA;AAG1C,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,cAAe,YAAW,SAAS;
|
|
1
|
+
{"version":3,"file":"slave-transport.d.ts","sourceRoot":"","sources":["../../../src/slave-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,SAAS,MAAM,eAAe,CAAA;AAG1C,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,cAAe,YAAW,SAAS;IAiB5C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAvB9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAE7C;;;;;;;;;;;;OAYG;gBAEgB,OAAO,EAAE,MAAM,EAChC,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACnB,KAAK,EAAE,KAAK,EACZ,UAAU,GAAE,MAAU,EACtB,MAAM,CAAC,EAAE,WAAW,YAAA,EACpB,gBAAgB,GAAE,MAAU,EAC5B,WAAW,GAAE,WAA+B,EAC5C,UAAU,CAAC,EAAE,MAAM,YAAA;IAKhC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOrE,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOnE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO1D,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOnE,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlE,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxE;;;;;;;;;;OAUG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;;OAGG;IACH,OAAO,CAAC,OAAO;CAmBhB"}
|
|
@@ -47,14 +47,16 @@ class SlaveTransport {
|
|
|
47
47
|
* request (default: 0, no pause)
|
|
48
48
|
* @param lastRequest - Last request on the connection, the same for all transports that share
|
|
49
49
|
* the mutex. interDeviceDelay needs it.
|
|
50
|
+
* @param retryDelay - Pause between attempts in milliseconds (default: 100)
|
|
50
51
|
*/
|
|
51
|
-
constructor(slaveId, client, mutex, maxRetries = 3, logger, interDeviceDelay = 0, lastRequest = new last_request_js_1.LastRequest()) {
|
|
52
|
+
constructor(slaveId, client, mutex, maxRetries = 3, logger, interDeviceDelay = 0, lastRequest = new last_request_js_1.LastRequest(), retryDelay) {
|
|
52
53
|
this.slaveId = slaveId;
|
|
53
54
|
this.mutex = mutex;
|
|
54
55
|
this.maxRetries = maxRetries;
|
|
55
56
|
this.logger = logger;
|
|
56
57
|
this.interDeviceDelay = interDeviceDelay;
|
|
57
58
|
this.lastRequest = lastRequest;
|
|
59
|
+
this.retryDelay = retryDelay;
|
|
58
60
|
this.connection = (0, connection_js_1.toConnection)(client);
|
|
59
61
|
}
|
|
60
62
|
async readHoldingRegisters(address, count) {
|
|
@@ -135,7 +137,7 @@ class SlaveTransport {
|
|
|
135
137
|
return await (0, retry_js_1.withRetry)(() => this.connection.run(async (client) => {
|
|
136
138
|
client.setID(this.slaveId);
|
|
137
139
|
return send(client);
|
|
138
|
-
}), this.maxRetries, this.logger);
|
|
140
|
+
}), this.maxRetries, this.logger, this.retryDelay);
|
|
139
141
|
}
|
|
140
142
|
finally {
|
|
141
143
|
this.lastRequest.ended(this.slaveId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slave-transport.js","sourceRoot":"","sources":["../../../src/slave-transport.ts"],"names":[],"mappings":";;;AAIA,yDAAgD;AAChD,mDAAqE;AACrE,uDAA+C;AAC/C,yCAAwD;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAa,cAAc;IAGzB
|
|
1
|
+
{"version":3,"file":"slave-transport.js","sourceRoot":"","sources":["../../../src/slave-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,8 @@ export interface TCPConfig {
|
|
|
14
14
|
timeout?: number | undefined;
|
|
15
15
|
/** Maximum retry attempts (default: 3, use 1 to disable retries) */
|
|
16
16
|
maxRetries?: number | undefined;
|
|
17
|
+
/** Pause between attempts in milliseconds (default: 100) */
|
|
18
|
+
retryDelay?: number | undefined;
|
|
17
19
|
/** Optional callback to log retry attempts for debugging */
|
|
18
20
|
logger?: RetryLogger | undefined;
|
|
19
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tcp-transport.d.ts","sourceRoot":"","sources":["../../../src/tcp-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAOxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAiB9E"}
|
|
1
|
+
{"version":3,"file":"tcp-transport.d.ts","sourceRoot":"","sources":["../../../src/tcp-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAOxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAiB9E"}
|
|
@@ -26,6 +26,6 @@ async function createTCPTransport(config) {
|
|
|
26
26
|
return client;
|
|
27
27
|
};
|
|
28
28
|
const connection = new connection_js_1.ModbusConnection(await open(), `${config.host}:${port}`, open);
|
|
29
|
-
return (0, request_context_js_1.withRequestContext)((0, create_modbus_transport_js_1.createModbusTransport)(connection, config.maxRetries, config.logger), `${config.host}:${port}, slave ${config.slaveId}`);
|
|
29
|
+
return (0, request_context_js_1.withRequestContext)((0, create_modbus_transport_js_1.createModbusTransport)(connection, config.maxRetries, config.logger, config.retryDelay), `${config.host}:${port}, slave ${config.slaveId}`);
|
|
30
30
|
}
|
|
31
31
|
//# sourceMappingURL=tcp-transport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tcp-transport.js","sourceRoot":"","sources":["../../../src/tcp-transport.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"tcp-transport.js","sourceRoot":"","sources":["../../../src/tcp-transport.ts"],"names":[],"mappings":";;AAsCA,gDAiBC;;AAtDD,0EAAqC;AAErC,yDAAgE;AAChE,mDAAkD;AAClD,6EAAoE;AACpE,6DAAyD;AAuBzD;;;;;;;;GAQG;AACI,KAAK,UAAU,kBAAkB,CAAC,MAAiB;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAA;IAC/B,MAAM,IAAI,GAAG,KAAK,IAAwB,EAAE;QAC1C,MAAM,MAAM,GAAG,IAAI,uBAAS,EAAE,CAAA;QAE9B,wBAAwB;QACxB,MAAM,IAAA,6BAAU,EAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAE3D,IAAA,kCAAe,EAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACvD,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,IAAI,gCAAgB,CAAC,MAAM,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;IACrF,OAAO,IAAA,uCAAkB,EACvB,IAAA,kDAAqB,EAAC,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,EACtF,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,WAAW,MAAM,CAAC,OAAO,EAAE,CAClD,CAAA;AACH,CAAC"}
|