@ya-modbus/cli 0.8.0 → 0.9.0
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 +6 -0
- package/README.md +85 -0
- package/dist/cjs/src/commands/discover.d.ts +2 -0
- package/dist/cjs/src/commands/discover.d.ts.map +1 -1
- package/dist/cjs/src/commands/discover.js +19 -11
- package/dist/cjs/src/commands/discover.js.map +1 -1
- package/dist/cjs/src/discovery/parameter-generator-utils.d.ts +5 -2
- package/dist/cjs/src/discovery/parameter-generator-utils.d.ts.map +1 -1
- package/dist/cjs/src/discovery/parameter-generator-utils.js +46 -25
- package/dist/cjs/src/discovery/parameter-generator-utils.js.map +1 -1
- package/dist/cjs/src/discovery/parameter-generator.d.ts +4 -0
- package/dist/cjs/src/discovery/parameter-generator.d.ts.map +1 -1
- package/dist/cjs/src/discovery/parameter-generator.js +20 -8
- package/dist/cjs/src/discovery/parameter-generator.js.map +1 -1
- package/dist/cjs/src/index.d.ts.map +1 -1
- package/dist/cjs/src/index.js +2 -0
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/utils/merge-specs.d.ts +34 -0
- package/dist/cjs/src/utils/merge-specs.d.ts.map +1 -0
- package/dist/cjs/src/utils/merge-specs.js +53 -0
- package/dist/cjs/src/utils/merge-specs.js.map +1 -0
- package/dist/cjs/src/utils/parse-baud-rate.d.ts +14 -0
- package/dist/cjs/src/utils/parse-baud-rate.d.ts.map +1 -0
- package/dist/cjs/src/utils/parse-baud-rate.js +52 -0
- package/dist/cjs/src/utils/parse-baud-rate.js.map +1 -0
- package/dist/cjs/src/utils/parse-id-range.d.ts.map +1 -1
- package/dist/cjs/src/utils/parse-id-range.js +23 -48
- package/dist/cjs/src/utils/parse-id-range.js.map +1 -1
- package/dist/cjs/src/utils/parse-integer.d.ts +15 -0
- package/dist/cjs/src/utils/parse-integer.d.ts.map +1 -0
- package/dist/cjs/src/utils/parse-integer.js +27 -0
- package/dist/cjs/src/utils/parse-integer.js.map +1 -0
- package/dist/cjs/src/utils/parse-parity.d.ts +18 -0
- package/dist/cjs/src/utils/parse-parity.d.ts.map +1 -0
- package/dist/cjs/src/utils/parse-parity.js +46 -0
- package/dist/cjs/src/utils/parse-parity.js.map +1 -0
- package/dist/cjs/src/utils/parse-spec.d.ts +73 -0
- package/dist/cjs/src/utils/parse-spec.d.ts.map +1 -0
- package/dist/cjs/src/utils/parse-spec.js +47 -0
- package/dist/cjs/src/utils/parse-spec.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/commands/discover.d.ts +2 -0
- package/dist/esm/src/commands/discover.d.ts.map +1 -1
- package/dist/esm/src/commands/discover.js +19 -11
- package/dist/esm/src/commands/discover.js.map +1 -1
- package/dist/esm/src/discovery/parameter-generator-utils.d.ts +5 -2
- package/dist/esm/src/discovery/parameter-generator-utils.d.ts.map +1 -1
- package/dist/esm/src/discovery/parameter-generator-utils.js +46 -25
- package/dist/esm/src/discovery/parameter-generator-utils.js.map +1 -1
- package/dist/esm/src/discovery/parameter-generator.d.ts +4 -0
- package/dist/esm/src/discovery/parameter-generator.d.ts.map +1 -1
- package/dist/esm/src/discovery/parameter-generator.js +20 -8
- package/dist/esm/src/discovery/parameter-generator.js.map +1 -1
- package/dist/esm/src/index.d.ts.map +1 -1
- package/dist/esm/src/index.js +2 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/utils/merge-specs.d.ts +34 -0
- package/dist/esm/src/utils/merge-specs.d.ts.map +1 -0
- package/dist/esm/src/utils/merge-specs.js +50 -0
- package/dist/esm/src/utils/merge-specs.js.map +1 -0
- package/dist/esm/src/utils/parse-baud-rate.d.ts +14 -0
- package/dist/esm/src/utils/parse-baud-rate.d.ts.map +1 -0
- package/dist/esm/src/utils/parse-baud-rate.js +49 -0
- package/dist/esm/src/utils/parse-baud-rate.js.map +1 -0
- package/dist/esm/src/utils/parse-id-range.d.ts.map +1 -1
- package/dist/esm/src/utils/parse-id-range.js +23 -48
- package/dist/esm/src/utils/parse-id-range.js.map +1 -1
- package/dist/esm/src/utils/parse-integer.d.ts +15 -0
- package/dist/esm/src/utils/parse-integer.d.ts.map +1 -0
- package/dist/esm/src/utils/parse-integer.js +24 -0
- package/dist/esm/src/utils/parse-integer.js.map +1 -0
- package/dist/esm/src/utils/parse-parity.d.ts +18 -0
- package/dist/esm/src/utils/parse-parity.d.ts.map +1 -0
- package/dist/esm/src/utils/parse-parity.js +42 -0
- package/dist/esm/src/utils/parse-parity.js.map +1 -0
- package/dist/esm/src/utils/parse-spec.d.ts +73 -0
- package/dist/esm/src/utils/parse-spec.d.ts.map +1 -0
- package/dist/esm/src/utils/parse-spec.js +44 -0
- package/dist/esm/src/utils/parse-spec.js.map +1 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
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.9.0](https://github.com/groupsky/ya-modbus/compare/@ya-modbus/cli@0.8.0...@ya-modbus/cli@0.9.0) (2026-02-08)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **cli:** add --parity and --baud-rate filters to discover command ([#332](https://github.com/groupsky/ya-modbus/issues/332)) ([85beba8](https://github.com/groupsky/ya-modbus/commit/85beba8de2db2eb65e10905c2d8e8e3efe44150d))
|
|
11
|
+
|
|
6
12
|
# [0.8.0](https://github.com/groupsky/ya-modbus/compare/@ya-modbus/cli@0.7.1...@ya-modbus/cli@0.8.0) (2026-02-08)
|
|
7
13
|
|
|
8
14
|
### Features
|
package/README.md
CHANGED
|
@@ -196,6 +196,88 @@ ya-modbus discover \
|
|
|
196
196
|
--delay 50
|
|
197
197
|
```
|
|
198
198
|
|
|
199
|
+
**Filter specific slave IDs:**
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# Test only specific slave IDs (reduces scan time significantly)
|
|
203
|
+
ya-modbus discover \
|
|
204
|
+
--port /dev/ttyUSB0 \
|
|
205
|
+
--id 1,2,3
|
|
206
|
+
|
|
207
|
+
# Test a range of IDs
|
|
208
|
+
ya-modbus discover \
|
|
209
|
+
--port /dev/ttyUSB0 \
|
|
210
|
+
--id 1-10
|
|
211
|
+
|
|
212
|
+
# Combine ranges and individual IDs
|
|
213
|
+
ya-modbus discover \
|
|
214
|
+
--port /dev/ttyUSB0 \
|
|
215
|
+
--id "1-5,10,15-20"
|
|
216
|
+
|
|
217
|
+
# Multiple --id specifications are merged
|
|
218
|
+
ya-modbus discover \
|
|
219
|
+
--port /dev/ttyUSB0 \
|
|
220
|
+
--id 1,2 \
|
|
221
|
+
--id 5-10
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**Filter specific parities:**
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
# Test only specific parity modes
|
|
228
|
+
ya-modbus discover \
|
|
229
|
+
--port /dev/ttyUSB0 \
|
|
230
|
+
--parity none
|
|
231
|
+
|
|
232
|
+
# Test multiple parities
|
|
233
|
+
ya-modbus discover \
|
|
234
|
+
--port /dev/ttyUSB0 \
|
|
235
|
+
--parity "none,even"
|
|
236
|
+
|
|
237
|
+
# Multiple --parity specifications are merged
|
|
238
|
+
ya-modbus discover \
|
|
239
|
+
--port /dev/ttyUSB0 \
|
|
240
|
+
--parity none \
|
|
241
|
+
--parity even
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
**Filter specific baud rates:**
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# Test only specific baud rates
|
|
248
|
+
ya-modbus discover \
|
|
249
|
+
--port /dev/ttyUSB0 \
|
|
250
|
+
--baud-rate 9600
|
|
251
|
+
|
|
252
|
+
# Test multiple baud rates
|
|
253
|
+
ya-modbus discover \
|
|
254
|
+
--port /dev/ttyUSB0 \
|
|
255
|
+
--baud-rate "9600,19200"
|
|
256
|
+
|
|
257
|
+
# Test a range of baud rates (includes intermediate standard rates)
|
|
258
|
+
ya-modbus discover \
|
|
259
|
+
--port /dev/ttyUSB0 \
|
|
260
|
+
--baud-rate "9600-38400" # Tests 9600, 14400, 19200, 38400
|
|
261
|
+
|
|
262
|
+
# Multiple --baud-rate specifications are merged
|
|
263
|
+
ya-modbus discover \
|
|
264
|
+
--port /dev/ttyUSB0 \
|
|
265
|
+
--baud-rate 9600 \
|
|
266
|
+
--baud-rate "19200,38400"
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
**Combine filters for fastest discovery:**
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
# When you know the device configuration, combine filters dramatically
|
|
273
|
+
# reduces scan time. Example: ~30 seconds vs 25 minutes
|
|
274
|
+
ya-modbus discover \
|
|
275
|
+
--port /dev/ttyUSB0 \
|
|
276
|
+
--id 1-5 \
|
|
277
|
+
--parity none \
|
|
278
|
+
--baud-rate 9600
|
|
279
|
+
```
|
|
280
|
+
|
|
199
281
|
**Discovery Options:**
|
|
200
282
|
|
|
201
283
|
- `--strategy <type>` - Discovery strategy: `quick` (default) or `thorough`
|
|
@@ -205,6 +287,9 @@ ya-modbus discover \
|
|
|
205
287
|
- `--timeout <ms>` - Response timeout in milliseconds (default: 1000)
|
|
206
288
|
- `--delay <ms>` - Delay between attempts in milliseconds (default: 100)
|
|
207
289
|
- `--max-devices <count>` - Maximum number of devices to find (default: 1, use 0 for unlimited)
|
|
290
|
+
- `--id <spec>` - Limit search to specific slave IDs (e.g., "1,2,3-5"). Can be specified multiple times
|
|
291
|
+
- `--parity <spec>` - Limit search to specific parities (e.g., "none,even"). Can be specified multiple times
|
|
292
|
+
- `--baud-rate <spec>` - Limit search to specific baud rates (e.g., "9600,19200" or "9600-38400"). Can be specified multiple times
|
|
208
293
|
- `--verbose` - Show detailed progress with current parameters being tested
|
|
209
294
|
- `--silent` - Suppress all output except final result (useful for scripts)
|
|
210
295
|
- `--format <type>` - Output format: `table` (default) or `json`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../../src/commands/discover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../../src/commands/discover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAS5E;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B,IAAI,EAAE,MAAM,CAAA;IAGZ,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAGhB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA8L7E"}
|
|
@@ -38,7 +38,10 @@ const driver_loader_1 = require("@ya-modbus/driver-loader");
|
|
|
38
38
|
const progress_js_1 = require("../discovery/progress.js");
|
|
39
39
|
const scanner_js_1 = require("../discovery/scanner.js");
|
|
40
40
|
const discovery_results_js_1 = require("../formatters/discovery-results.js");
|
|
41
|
+
const merge_specs_js_1 = require("../utils/merge-specs.js");
|
|
42
|
+
const parse_baud_rate_js_1 = require("../utils/parse-baud-rate.js");
|
|
41
43
|
const parse_id_range_js_1 = require("../utils/parse-id-range.js");
|
|
44
|
+
const parse_parity_js_1 = require("../utils/parse-parity.js");
|
|
42
45
|
/**
|
|
43
46
|
* Discover command implementation
|
|
44
47
|
*
|
|
@@ -55,17 +58,10 @@ async function discoverCommand(options) {
|
|
|
55
58
|
const maxDevices = options.maxDevices ?? 1; // Default: stop after finding 1 device
|
|
56
59
|
const verbose = options.verbose ?? false;
|
|
57
60
|
const silent = options.silent ?? false;
|
|
58
|
-
// Parse and merge
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const allIds = new Set();
|
|
63
|
-
for (const spec of idSpecs) {
|
|
64
|
-
const ids = (0, parse_id_range_js_1.parseIdRange)(spec);
|
|
65
|
-
ids.forEach((id) => allIds.add(id));
|
|
66
|
-
}
|
|
67
|
-
slaveIds = Array.from(allIds).sort((a, b) => a - b);
|
|
68
|
-
}
|
|
61
|
+
// Parse and merge specifications from multiple CLI flags
|
|
62
|
+
const slaveIds = (0, merge_specs_js_1.mergeSpecs)(options.id, parse_id_range_js_1.parseIdRange, (items) => items.sort((a, b) => a - b));
|
|
63
|
+
const parities = (0, merge_specs_js_1.mergeSpecs)(options.parity, parse_parity_js_1.parseParity, parse_parity_js_1.sortParitiesInStandardOrder);
|
|
64
|
+
const baudRates = (0, merge_specs_js_1.mergeSpecs)(options.baudRate, parse_baud_rate_js_1.parseBaudRate, (items) => items.sort((a, b) => a - b));
|
|
69
65
|
if (!silent) {
|
|
70
66
|
console.log(`Starting Modbus device discovery on ${options.port}...`);
|
|
71
67
|
console.log(`Strategy: ${strategy}`);
|
|
@@ -76,6 +72,12 @@ async function discoverCommand(options) {
|
|
|
76
72
|
else {
|
|
77
73
|
console.log('Slave IDs: 1-247 (all)');
|
|
78
74
|
}
|
|
75
|
+
if (baudRates) {
|
|
76
|
+
console.log(`Baud rates: ${baudRates.join(', ')} (${baudRates.length} rates)`);
|
|
77
|
+
}
|
|
78
|
+
if (parities) {
|
|
79
|
+
console.log(`Parities: ${parities.join(', ')} (${parities.length} values)`);
|
|
80
|
+
}
|
|
79
81
|
if (maxDevices === 0) {
|
|
80
82
|
console.log('Mode: Find all devices');
|
|
81
83
|
}
|
|
@@ -132,6 +134,12 @@ async function discoverCommand(options) {
|
|
|
132
134
|
if (slaveIds) {
|
|
133
135
|
generatorOptions.slaveIds = slaveIds;
|
|
134
136
|
}
|
|
137
|
+
if (baudRates) {
|
|
138
|
+
generatorOptions.baudRates = baudRates;
|
|
139
|
+
}
|
|
140
|
+
if (parities) {
|
|
141
|
+
generatorOptions.parities = parities;
|
|
142
|
+
}
|
|
135
143
|
const totalCombinations = countParameterCombinations(generatorOptions);
|
|
136
144
|
const progress = new progress_js_1.ProgressTracker(totalCombinations);
|
|
137
145
|
if (!silent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../../src/commands/discover.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../../src/commands/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { BaudRate, DataBits, Parity, StopBits, SupportedSerialConfig } from '@ya-modbus/driver-types';
|
|
2
2
|
import type { DiscoveryStrategy, GeneratorOptions } from './parameter-generator.js';
|
|
3
3
|
/**
|
|
4
|
-
* Get parameter arrays based on strategy and
|
|
4
|
+
* Get parameter arrays based on strategy, configuration, and filters
|
|
5
5
|
*/
|
|
6
|
-
export declare function getParameterArrays(strategy: DiscoveryStrategy, supportedConfig?: SupportedSerialConfig
|
|
6
|
+
export declare function getParameterArrays(strategy: DiscoveryStrategy, supportedConfig?: SupportedSerialConfig, filters?: {
|
|
7
|
+
baudRates?: BaudRate[];
|
|
8
|
+
parities?: Parity[];
|
|
9
|
+
}): {
|
|
7
10
|
baudRates: readonly BaudRate[];
|
|
8
11
|
parities: readonly Parity[];
|
|
9
12
|
dataBits: readonly DataBits[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-generator-utils.d.ts","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,qBAAqB,EACtB,MAAM,yBAAyB,CAAA;AAahC,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEnF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,eAAe,CAAC,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"parameter-generator-utils.d.ts","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,qBAAqB,EACtB,MAAM,yBAAyB,CAAA;AAahC,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEnF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,eAAe,CAAC,EAAE,qBAAqB,EACvC,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB,GACA;IACD,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAA;IAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAA;IAC7B,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAA;IAC7B,YAAY,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACxC,CA6CA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAkC5E"}
|
|
@@ -4,36 +4,51 @@ exports.getParameterArrays = getParameterArrays;
|
|
|
4
4
|
exports.countParameterCombinations = countParameterCombinations;
|
|
5
5
|
const constants_js_1 = require("./constants.js");
|
|
6
6
|
/**
|
|
7
|
-
* Get parameter arrays based on strategy and
|
|
7
|
+
* Get parameter arrays based on strategy, configuration, and filters
|
|
8
8
|
*/
|
|
9
|
-
function getParameterArrays(strategy, supportedConfig) {
|
|
9
|
+
function getParameterArrays(strategy, supportedConfig, filters) {
|
|
10
|
+
let baudRates;
|
|
11
|
+
let parities;
|
|
12
|
+
let dataBits;
|
|
13
|
+
let stopBits;
|
|
14
|
+
let addressRange;
|
|
10
15
|
if (strategy === 'quick' && supportedConfig) {
|
|
11
16
|
// Quick mode with driver config: use supported values or fall back to common
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
addressRange: supportedConfig.validAddressRange ?? [constants_js_1.MIN_SLAVE_ID, constants_js_1.MAX_SLAVE_ID],
|
|
18
|
-
};
|
|
17
|
+
baudRates = supportedConfig.validBaudRates ?? constants_js_1.COMMON_BAUD_RATES;
|
|
18
|
+
parities = supportedConfig.validParity ?? constants_js_1.STANDARD_PARITY;
|
|
19
|
+
dataBits = supportedConfig.validDataBits ?? constants_js_1.STANDARD_DATA_BITS;
|
|
20
|
+
stopBits = supportedConfig.validStopBits ?? constants_js_1.STANDARD_STOP_BITS;
|
|
21
|
+
addressRange = supportedConfig.validAddressRange ?? [constants_js_1.MIN_SLAVE_ID, constants_js_1.MAX_SLAVE_ID];
|
|
19
22
|
}
|
|
20
|
-
if (strategy === 'thorough') {
|
|
23
|
+
else if (strategy === 'thorough') {
|
|
21
24
|
// Thorough mode: use supported config if provided, otherwise standard Modbus
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
baudRates = supportedConfig?.validBaudRates ?? constants_js_1.STANDARD_BAUD_RATES;
|
|
26
|
+
parities = supportedConfig?.validParity ?? constants_js_1.STANDARD_PARITY;
|
|
27
|
+
dataBits = supportedConfig?.validDataBits ?? constants_js_1.STANDARD_DATA_BITS;
|
|
28
|
+
stopBits = supportedConfig?.validStopBits ?? constants_js_1.STANDARD_STOP_BITS;
|
|
29
|
+
addressRange = supportedConfig?.validAddressRange ?? [constants_js_1.MIN_SLAVE_ID, constants_js_1.MAX_SLAVE_ID];
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// Quick mode without driver config: use common parameters
|
|
33
|
+
baudRates = constants_js_1.COMMON_BAUD_RATES;
|
|
34
|
+
parities = constants_js_1.STANDARD_PARITY;
|
|
35
|
+
dataBits = constants_js_1.COMMON_DATA_BITS;
|
|
36
|
+
stopBits = constants_js_1.COMMON_STOP_BITS;
|
|
37
|
+
addressRange = [constants_js_1.MIN_SLAVE_ID, constants_js_1.MAX_SLAVE_ID];
|
|
38
|
+
}
|
|
39
|
+
// Apply filters if provided (overrides strategy and driver config)
|
|
40
|
+
if (filters?.baudRates !== undefined) {
|
|
41
|
+
baudRates = filters.baudRates;
|
|
42
|
+
}
|
|
43
|
+
if (filters?.parities !== undefined) {
|
|
44
|
+
parities = filters.parities;
|
|
29
45
|
}
|
|
30
|
-
// Quick mode without driver config: use common parameters
|
|
31
46
|
return {
|
|
32
|
-
baudRates
|
|
33
|
-
parities
|
|
34
|
-
dataBits
|
|
35
|
-
stopBits
|
|
36
|
-
addressRange
|
|
47
|
+
baudRates,
|
|
48
|
+
parities,
|
|
49
|
+
dataBits,
|
|
50
|
+
stopBits,
|
|
51
|
+
addressRange,
|
|
37
52
|
};
|
|
38
53
|
}
|
|
39
54
|
/**
|
|
@@ -52,8 +67,14 @@ function getParameterArrays(strategy, supportedConfig) {
|
|
|
52
67
|
* ```
|
|
53
68
|
*/
|
|
54
69
|
function countParameterCombinations(options) {
|
|
55
|
-
const { strategy, supportedConfig, slaveIds } = options;
|
|
56
|
-
const
|
|
70
|
+
const { strategy, supportedConfig, slaveIds, baudRates: baudRateFilter, parities: parityFilter, } = options;
|
|
71
|
+
const filters = baudRateFilter !== undefined || parityFilter !== undefined
|
|
72
|
+
? {
|
|
73
|
+
...(baudRateFilter !== undefined && { baudRates: baudRateFilter }),
|
|
74
|
+
...(parityFilter !== undefined && { parities: parityFilter }),
|
|
75
|
+
}
|
|
76
|
+
: undefined;
|
|
77
|
+
const { baudRates, parities, dataBits, stopBits, addressRange } = getParameterArrays(strategy, supportedConfig, filters);
|
|
57
78
|
// Calculate address count
|
|
58
79
|
let addressCount;
|
|
59
80
|
if (slaveIds !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-generator-utils.js","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator-utils.ts"],"names":[],"mappings":";;AAwBA,
|
|
1
|
+
{"version":3,"file":"parameter-generator-utils.js","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,10 @@ export interface GeneratorOptions {
|
|
|
29
29
|
supportedConfig?: SupportedSerialConfig;
|
|
30
30
|
/** Optional list of specific slave IDs to test (overrides addressRange) */
|
|
31
31
|
slaveIds?: number[];
|
|
32
|
+
/** Optional list of specific baud rates to test (overrides strategy defaults) */
|
|
33
|
+
baudRates?: BaudRate[];
|
|
34
|
+
/** Optional list of specific parities to test (overrides strategy defaults) */
|
|
35
|
+
parities?: Parity[];
|
|
32
36
|
}
|
|
33
37
|
/**
|
|
34
38
|
* Group of parameter combinations that share the same serial configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-generator.d.ts","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,MAAM,EACN,QAAQ,EACR,qBAAqB,EACtB,MAAM,yBAAyB,CAAA;AAKhC;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,QAAQ,EAAE,iBAAiB,CAAA;IAE3B,gEAAgE;IAChE,aAAa,CAAC,EAAE,mBAAmB,CAAA;IAEnC,0DAA0D;IAC1D,eAAe,CAAC,EAAE,qBAAqB,CAAA;IAEvC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAmFD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,YAAY,EAAE;QACZ,QAAQ,EAAE,QAAQ,CAAA;QAClB,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,QAAQ,CAAA;QAClB,QAAQ,EAAE,QAAQ,CAAA;KACnB,CAAA;IACD,qFAAqF;IACrF,YAAY,EAAE,oBAAoB,EAAE,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAiB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"parameter-generator.d.ts","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,MAAM,EACN,QAAQ,EACR,qBAAqB,EACtB,MAAM,yBAAyB,CAAA;AAKhC;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,QAAQ,EAAE,iBAAiB,CAAA;IAE3B,gEAAgE;IAChE,aAAa,CAAC,EAAE,mBAAmB,CAAA;IAEnC,0DAA0D;IAC1D,eAAe,CAAC,EAAE,qBAAqB,CAAA;IAEvC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IAEnB,iFAAiF;IACjF,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IAEtB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAmFD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,YAAY,EAAE;QACZ,QAAQ,EAAE,QAAQ,CAAA;QAClB,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,QAAQ,CAAA;QAClB,QAAQ,EAAE,QAAQ,CAAA;KACnB,CAAA;IACD,qFAAqF;IACrF,YAAY,EAAE,oBAAoB,EAAE,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAiB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAC,cAAc,CAAC,CAmE7F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAiB,6BAA6B,CAC5C,OAAO,EAAE,gBAAgB,GACxB,SAAS,CAAC,oBAAoB,CAAC,CA2DjC"}
|
|
@@ -97,10 +97,16 @@ function prioritizeDefaults(array, defaultValue) {
|
|
|
97
97
|
* ```
|
|
98
98
|
*/
|
|
99
99
|
function* generateParameterGroups(options) {
|
|
100
|
-
const { strategy, defaultConfig, supportedConfig, slaveIds: slaveIdFilter } = options;
|
|
101
|
-
// Get parameter arrays
|
|
102
|
-
|
|
103
|
-
|
|
100
|
+
const { strategy, defaultConfig, supportedConfig, slaveIds: slaveIdFilter, baudRates: baudRateFilter, parities: parityFilter, } = options;
|
|
101
|
+
// Get parameter arrays (applying filters if provided)
|
|
102
|
+
const filters = baudRateFilter !== undefined || parityFilter !== undefined
|
|
103
|
+
? {
|
|
104
|
+
...(baudRateFilter !== undefined && { baudRates: baudRateFilter }),
|
|
105
|
+
...(parityFilter !== undefined && { parities: parityFilter }),
|
|
106
|
+
}
|
|
107
|
+
: undefined;
|
|
108
|
+
let { baudRates, parities, dataBits, stopBits } = (0, parameter_generator_utils_js_1.getParameterArrays)(strategy, supportedConfig, filters);
|
|
109
|
+
const { addressRange } = (0, parameter_generator_utils_js_1.getParameterArrays)(strategy, supportedConfig, filters);
|
|
104
110
|
// Prioritize default values to test them first
|
|
105
111
|
if (defaultConfig) {
|
|
106
112
|
baudRates = prioritizeDefaults(baudRates, defaultConfig.baudRate);
|
|
@@ -166,10 +172,16 @@ function* generateParameterGroups(options) {
|
|
|
166
172
|
* ```
|
|
167
173
|
*/
|
|
168
174
|
function* generateParameterCombinations(options) {
|
|
169
|
-
const { strategy, defaultConfig, supportedConfig, slaveIds: slaveIdFilter } = options;
|
|
170
|
-
// Get parameter arrays
|
|
171
|
-
|
|
172
|
-
|
|
175
|
+
const { strategy, defaultConfig, supportedConfig, slaveIds: slaveIdFilter, baudRates: baudRateFilter, parities: parityFilter, } = options;
|
|
176
|
+
// Get parameter arrays (applying filters if provided)
|
|
177
|
+
const filters = baudRateFilter !== undefined || parityFilter !== undefined
|
|
178
|
+
? {
|
|
179
|
+
...(baudRateFilter !== undefined && { baudRates: baudRateFilter }),
|
|
180
|
+
...(parityFilter !== undefined && { parities: parityFilter }),
|
|
181
|
+
}
|
|
182
|
+
: undefined;
|
|
183
|
+
let { baudRates, parities, dataBits, stopBits } = (0, parameter_generator_utils_js_1.getParameterArrays)(strategy, supportedConfig, filters);
|
|
184
|
+
const { addressRange } = (0, parameter_generator_utils_js_1.getParameterArrays)(strategy, supportedConfig, filters);
|
|
173
185
|
// Prioritize default values to test them first
|
|
174
186
|
if (defaultConfig) {
|
|
175
187
|
baudRates = prioritizeDefaults(baudRates, defaultConfig.baudRate);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-generator.js","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"parameter-generator.js","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmEnC,QAAA,MAAM,OAAO,SAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmEnC,QAAA,MAAM,OAAO,SAAgB,CAAA;AAiJ7B,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
package/dist/cjs/src/index.js
CHANGED
|
@@ -106,6 +106,8 @@ program
|
|
|
106
106
|
.option('--delay <ms>', 'Delay between attempts in milliseconds (default: 100)', parseInt)
|
|
107
107
|
.option('--max-devices <count>', 'Maximum number of devices to find (default: 1, use 0 for unlimited)', parseInt)
|
|
108
108
|
.option('--id <spec>', 'Limit search to specific slave IDs (e.g., "1,2,3-5"). Can be specified multiple times')
|
|
109
|
+
.option('--parity <spec>', 'Limit search to specific parities (e.g., "none,even"). Can be specified multiple times')
|
|
110
|
+
.option('--baud-rate <spec>', 'Limit search to specific baud rates (e.g., "9600,19200" or "9600-38400"). Can be specified multiple times')
|
|
109
111
|
.optionsGroup('Output Options:')
|
|
110
112
|
.option('--verbose', 'Show detailed progress with current parameters being tested')
|
|
111
113
|
.option('--silent', 'Suppress all output except final result (useful for scripts)')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;AAEA,yCAAmC;AAEnC,wDAA8E;AAC9E,gEAAwF;AACxF,gDAAkE;AAClE,kEAA2F;AAC3F,kDAAqE;AAErE;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,OAAgB;IAC5C,OAAO,CACL,OAAO;QACL,iBAAiB;SAChB,YAAY,CAAC,iBAAiB,CAAC;SAC/B,MAAM,CACL,wBAAwB,EACxB,8FAA8F,CAC/F;SACA,MAAM,CACL,gBAAgB,EAChB,kFAAkF,CACnF;QAED,qBAAqB;SACpB,YAAY,CAAC,qBAAqB,CAAC;SACnC,cAAc,CACb,qBAAqB,EACrB,8DAA8D,EAC9D,QAAQ,CACT;SACA,MAAM,CAAC,gBAAgB,EAAE,kDAAkD,EAAE,QAAQ,CAAC;QAEvF,iBAAiB;SAChB,YAAY,CAAC,sCAAsC,CAAC;SACpD,MAAM,CAAC,mBAAmB,EAAE,gDAAgD,CAAC;SAC7E,MAAM,CACL,wBAAwB,EACxB,4DAA4D,EAC5D,QAAQ,CACT;SACA,MAAM,CACL,iBAAiB,EACjB,0EAA0E,CAC3E;SACA,MAAM,CACL,oBAAoB,EACpB,oEAAoE,EACpE,QAAQ,CACT;SACA,MAAM,CACL,oBAAoB,EACpB,oEAAoE,EACpE,QAAQ,CACT;QAED,iBAAiB;SAChB,YAAY,CAAC,sCAAsC,CAAC;SACpD,MAAM,CAAC,mBAAmB,EAAE,+CAA+C,CAAC;SAC5E,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,QAAQ,CAAC,CACpE,CAAA;AACH,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merges multiple specification strings (from repeated CLI flags) into a
|
|
3
|
+
* single deduplicated, sorted array.
|
|
4
|
+
*
|
|
5
|
+
* Handles:
|
|
6
|
+
* - Single string or array of strings
|
|
7
|
+
* - Deduplication across all specifications
|
|
8
|
+
* - Custom sorting
|
|
9
|
+
*
|
|
10
|
+
* @param specs - Single spec string, array of spec strings, or undefined
|
|
11
|
+
* @param parser - Function that parses a single spec string
|
|
12
|
+
* @param sorter - Optional function to sort the final array
|
|
13
|
+
* @returns Merged and sorted array, or undefined if specs is undefined
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // Merge multiple --id specifications
|
|
17
|
+
* const ids = mergeSpecs(
|
|
18
|
+
* ['1,2', '3-5'],
|
|
19
|
+
* parseIdRange,
|
|
20
|
+
* (items) => items.sort((a, b) => a - b)
|
|
21
|
+
* )
|
|
22
|
+
* // Result: [1, 2, 3, 4, 5]
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* // Merge multiple --parity specifications
|
|
26
|
+
* const parities = mergeSpecs(
|
|
27
|
+
* ['none', 'even,odd'],
|
|
28
|
+
* parseParity,
|
|
29
|
+
* sortParitiesInStandardOrder
|
|
30
|
+
* )
|
|
31
|
+
* // Result: ['none', 'even', 'odd']
|
|
32
|
+
*/
|
|
33
|
+
export declare function mergeSpecs<T>(specs: string | string[] | undefined, parser: (spec: string) => T[], sorter?: (items: T[]) => T[]): T[] | undefined;
|
|
34
|
+
//# sourceMappingURL=merge-specs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-specs.d.ts","sourceRoot":"","sources":["../../../../src/utils/merge-specs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EACpC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,EAAE,EAC7B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,GAC3B,CAAC,EAAE,GAAG,SAAS,CAoBjB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mergeSpecs = mergeSpecs;
|
|
4
|
+
/**
|
|
5
|
+
* Merges multiple specification strings (from repeated CLI flags) into a
|
|
6
|
+
* single deduplicated, sorted array.
|
|
7
|
+
*
|
|
8
|
+
* Handles:
|
|
9
|
+
* - Single string or array of strings
|
|
10
|
+
* - Deduplication across all specifications
|
|
11
|
+
* - Custom sorting
|
|
12
|
+
*
|
|
13
|
+
* @param specs - Single spec string, array of spec strings, or undefined
|
|
14
|
+
* @param parser - Function that parses a single spec string
|
|
15
|
+
* @param sorter - Optional function to sort the final array
|
|
16
|
+
* @returns Merged and sorted array, or undefined if specs is undefined
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* // Merge multiple --id specifications
|
|
20
|
+
* const ids = mergeSpecs(
|
|
21
|
+
* ['1,2', '3-5'],
|
|
22
|
+
* parseIdRange,
|
|
23
|
+
* (items) => items.sort((a, b) => a - b)
|
|
24
|
+
* )
|
|
25
|
+
* // Result: [1, 2, 3, 4, 5]
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* // Merge multiple --parity specifications
|
|
29
|
+
* const parities = mergeSpecs(
|
|
30
|
+
* ['none', 'even,odd'],
|
|
31
|
+
* parseParity,
|
|
32
|
+
* sortParitiesInStandardOrder
|
|
33
|
+
* )
|
|
34
|
+
* // Result: ['none', 'even', 'odd']
|
|
35
|
+
*/
|
|
36
|
+
function mergeSpecs(specs, parser, sorter) {
|
|
37
|
+
if (specs === undefined) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
// Normalize to array
|
|
41
|
+
const specArray = Array.isArray(specs) ? specs : [specs];
|
|
42
|
+
// Parse and merge into Set for deduplication
|
|
43
|
+
const allValues = new Set();
|
|
44
|
+
for (const spec of specArray) {
|
|
45
|
+
const values = parser(spec);
|
|
46
|
+
values.forEach((value) => allValues.add(value));
|
|
47
|
+
}
|
|
48
|
+
// Convert to array
|
|
49
|
+
const result = Array.from(allValues);
|
|
50
|
+
// Apply custom sorter if provided, otherwise return unsorted
|
|
51
|
+
return sorter ? sorter(result) : result;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=merge-specs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-specs.js","sourceRoot":"","sources":["../../../../src/utils/merge-specs.ts"],"names":[],"mappings":";;AAgCA,gCAwBC;AAxDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,SAAgB,UAAU,CACxB,KAAoC,EACpC,MAA6B,EAC7B,MAA4B;IAE5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,qBAAqB;IACrB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAExD,6CAA6C;IAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAK,CAAA;IAC9B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAEpC,6DAA6D;IAC7D,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BaudRate } from '@ya-modbus/driver-types';
|
|
2
|
+
/**
|
|
3
|
+
* Parses a comma-separated list of baud rates and ranges into a sorted array of unique baud rates.
|
|
4
|
+
*
|
|
5
|
+
* @param spec - Baud rate specification string (e.g., "9600,19200" or "9600-38400")
|
|
6
|
+
* @returns Sorted array of unique baud rates from STANDARD_BAUD_RATES
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* parseBaudRate("9600,19200") // [9600, 19200]
|
|
10
|
+
* parseBaudRate("9600-19200") // [9600, 14400, 19200]
|
|
11
|
+
* parseBaudRate("19200,9600") // [9600, 19200]
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseBaudRate(spec: string): BaudRate[];
|
|
14
|
+
//# sourceMappingURL=parse-baud-rate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-baud-rate.d.ts","sourceRoot":"","sources":["../../../../src/utils/parse-baud-rate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAOvD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CA2BtD"}
|