@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.
Files changed (81) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +85 -0
  3. package/dist/cjs/src/commands/discover.d.ts +2 -0
  4. package/dist/cjs/src/commands/discover.d.ts.map +1 -1
  5. package/dist/cjs/src/commands/discover.js +19 -11
  6. package/dist/cjs/src/commands/discover.js.map +1 -1
  7. package/dist/cjs/src/discovery/parameter-generator-utils.d.ts +5 -2
  8. package/dist/cjs/src/discovery/parameter-generator-utils.d.ts.map +1 -1
  9. package/dist/cjs/src/discovery/parameter-generator-utils.js +46 -25
  10. package/dist/cjs/src/discovery/parameter-generator-utils.js.map +1 -1
  11. package/dist/cjs/src/discovery/parameter-generator.d.ts +4 -0
  12. package/dist/cjs/src/discovery/parameter-generator.d.ts.map +1 -1
  13. package/dist/cjs/src/discovery/parameter-generator.js +20 -8
  14. package/dist/cjs/src/discovery/parameter-generator.js.map +1 -1
  15. package/dist/cjs/src/index.d.ts.map +1 -1
  16. package/dist/cjs/src/index.js +2 -0
  17. package/dist/cjs/src/index.js.map +1 -1
  18. package/dist/cjs/src/utils/merge-specs.d.ts +34 -0
  19. package/dist/cjs/src/utils/merge-specs.d.ts.map +1 -0
  20. package/dist/cjs/src/utils/merge-specs.js +53 -0
  21. package/dist/cjs/src/utils/merge-specs.js.map +1 -0
  22. package/dist/cjs/src/utils/parse-baud-rate.d.ts +14 -0
  23. package/dist/cjs/src/utils/parse-baud-rate.d.ts.map +1 -0
  24. package/dist/cjs/src/utils/parse-baud-rate.js +52 -0
  25. package/dist/cjs/src/utils/parse-baud-rate.js.map +1 -0
  26. package/dist/cjs/src/utils/parse-id-range.d.ts.map +1 -1
  27. package/dist/cjs/src/utils/parse-id-range.js +23 -48
  28. package/dist/cjs/src/utils/parse-id-range.js.map +1 -1
  29. package/dist/cjs/src/utils/parse-integer.d.ts +15 -0
  30. package/dist/cjs/src/utils/parse-integer.d.ts.map +1 -0
  31. package/dist/cjs/src/utils/parse-integer.js +27 -0
  32. package/dist/cjs/src/utils/parse-integer.js.map +1 -0
  33. package/dist/cjs/src/utils/parse-parity.d.ts +18 -0
  34. package/dist/cjs/src/utils/parse-parity.d.ts.map +1 -0
  35. package/dist/cjs/src/utils/parse-parity.js +46 -0
  36. package/dist/cjs/src/utils/parse-parity.js.map +1 -0
  37. package/dist/cjs/src/utils/parse-spec.d.ts +73 -0
  38. package/dist/cjs/src/utils/parse-spec.d.ts.map +1 -0
  39. package/dist/cjs/src/utils/parse-spec.js +47 -0
  40. package/dist/cjs/src/utils/parse-spec.js.map +1 -0
  41. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  42. package/dist/esm/src/commands/discover.d.ts +2 -0
  43. package/dist/esm/src/commands/discover.d.ts.map +1 -1
  44. package/dist/esm/src/commands/discover.js +19 -11
  45. package/dist/esm/src/commands/discover.js.map +1 -1
  46. package/dist/esm/src/discovery/parameter-generator-utils.d.ts +5 -2
  47. package/dist/esm/src/discovery/parameter-generator-utils.d.ts.map +1 -1
  48. package/dist/esm/src/discovery/parameter-generator-utils.js +46 -25
  49. package/dist/esm/src/discovery/parameter-generator-utils.js.map +1 -1
  50. package/dist/esm/src/discovery/parameter-generator.d.ts +4 -0
  51. package/dist/esm/src/discovery/parameter-generator.d.ts.map +1 -1
  52. package/dist/esm/src/discovery/parameter-generator.js +20 -8
  53. package/dist/esm/src/discovery/parameter-generator.js.map +1 -1
  54. package/dist/esm/src/index.d.ts.map +1 -1
  55. package/dist/esm/src/index.js +2 -0
  56. package/dist/esm/src/index.js.map +1 -1
  57. package/dist/esm/src/utils/merge-specs.d.ts +34 -0
  58. package/dist/esm/src/utils/merge-specs.d.ts.map +1 -0
  59. package/dist/esm/src/utils/merge-specs.js +50 -0
  60. package/dist/esm/src/utils/merge-specs.js.map +1 -0
  61. package/dist/esm/src/utils/parse-baud-rate.d.ts +14 -0
  62. package/dist/esm/src/utils/parse-baud-rate.d.ts.map +1 -0
  63. package/dist/esm/src/utils/parse-baud-rate.js +49 -0
  64. package/dist/esm/src/utils/parse-baud-rate.js.map +1 -0
  65. package/dist/esm/src/utils/parse-id-range.d.ts.map +1 -1
  66. package/dist/esm/src/utils/parse-id-range.js +23 -48
  67. package/dist/esm/src/utils/parse-id-range.js.map +1 -1
  68. package/dist/esm/src/utils/parse-integer.d.ts +15 -0
  69. package/dist/esm/src/utils/parse-integer.d.ts.map +1 -0
  70. package/dist/esm/src/utils/parse-integer.js +24 -0
  71. package/dist/esm/src/utils/parse-integer.js.map +1 -0
  72. package/dist/esm/src/utils/parse-parity.d.ts +18 -0
  73. package/dist/esm/src/utils/parse-parity.d.ts.map +1 -0
  74. package/dist/esm/src/utils/parse-parity.js +42 -0
  75. package/dist/esm/src/utils/parse-parity.js.map +1 -0
  76. package/dist/esm/src/utils/parse-spec.d.ts +73 -0
  77. package/dist/esm/src/utils/parse-spec.d.ts.map +1 -0
  78. package/dist/esm/src/utils/parse-spec.js +44 -0
  79. package/dist/esm/src/utils/parse-spec.js.map +1 -0
  80. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  81. 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`
@@ -10,6 +10,8 @@ export interface DiscoverOptions {
10
10
  delay?: number;
11
11
  maxDevices?: number;
12
12
  id?: string | string[];
13
+ parity?: string | string[];
14
+ baudRate?: string | string[];
13
15
  verbose?: boolean;
14
16
  silent?: boolean;
15
17
  format: 'table' | '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;AAM5E;;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,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,CAuL7E"}
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 ID specifications
59
- let slaveIds;
60
- if (options.id) {
61
- const idSpecs = Array.isArray(options.id) ? options.id : [options.id];
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":"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"}
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 configuration
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,GACtC;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,CA+BA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAmB5E"}
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 configuration
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
- return {
13
- baudRates: supportedConfig.validBaudRates ?? constants_js_1.COMMON_BAUD_RATES,
14
- parities: supportedConfig.validParity ?? constants_js_1.STANDARD_PARITY,
15
- dataBits: supportedConfig.validDataBits ?? constants_js_1.STANDARD_DATA_BITS,
16
- stopBits: supportedConfig.validStopBits ?? constants_js_1.STANDARD_STOP_BITS,
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
- return {
23
- baudRates: supportedConfig?.validBaudRates ?? constants_js_1.STANDARD_BAUD_RATES,
24
- parities: supportedConfig?.validParity ?? constants_js_1.STANDARD_PARITY,
25
- dataBits: supportedConfig?.validDataBits ?? constants_js_1.STANDARD_DATA_BITS,
26
- stopBits: supportedConfig?.validStopBits ?? constants_js_1.STANDARD_STOP_BITS,
27
- addressRange: supportedConfig?.validAddressRange ?? [constants_js_1.MIN_SLAVE_ID, constants_js_1.MAX_SLAVE_ID],
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: constants_js_1.COMMON_BAUD_RATES,
33
- parities: constants_js_1.STANDARD_PARITY,
34
- dataBits: constants_js_1.COMMON_DATA_BITS,
35
- stopBits: constants_js_1.COMMON_STOP_BITS,
36
- addressRange: [constants_js_1.MIN_SLAVE_ID, constants_js_1.MAX_SLAVE_ID],
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 { baudRates, parities, dataBits, stopBits, addressRange } = getParameterArrays(strategy, supportedConfig);
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,gDAwCC;AAiBD,gEAmBC;AA5FD,iDAUuB;AAGvB;;GAEG;AACH,SAAgB,kBAAkB,CAChC,QAA2B,EAC3B,eAAuC;IAQvC,IAAI,QAAQ,KAAK,OAAO,IAAI,eAAe,EAAE,CAAC;QAC5C,6EAA6E;QAC7E,OAAO;YACL,SAAS,EAAE,eAAe,CAAC,cAAc,IAAI,gCAAiB;YAC9D,QAAQ,EAAE,eAAe,CAAC,WAAW,IAAI,8BAAe;YACxD,QAAQ,EAAE,eAAe,CAAC,aAAa,IAAI,iCAAkB;YAC7D,QAAQ,EAAE,eAAe,CAAC,aAAa,IAAI,iCAAkB;YAC7D,YAAY,EAAE,eAAe,CAAC,iBAAiB,IAAI,CAAC,2BAAY,EAAE,2BAAY,CAAC;SAChF,CAAA;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,6EAA6E;QAC7E,OAAO;YACL,SAAS,EAAE,eAAe,EAAE,cAAc,IAAI,kCAAmB;YACjE,QAAQ,EAAE,eAAe,EAAE,WAAW,IAAI,8BAAe;YACzD,QAAQ,EAAE,eAAe,EAAE,aAAa,IAAI,iCAAkB;YAC9D,QAAQ,EAAE,eAAe,EAAE,aAAa,IAAI,iCAAkB;YAC9D,YAAY,EAAE,eAAe,EAAE,iBAAiB,IAAI,CAAC,2BAAY,EAAE,2BAAY,CAAC;SACjF,CAAA;IACH,CAAC;IAED,0DAA0D;IAC1D,OAAO;QACL,SAAS,EAAE,gCAAiB;QAC5B,QAAQ,EAAE,8BAAe;QACzB,QAAQ,EAAE,+BAAgB;QAC1B,QAAQ,EAAE,+BAAgB;QAC1B,YAAY,EAAE,CAAC,2BAAY,EAAE,2BAAY,CAAC;KAC3C,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,0BAA0B,CAAC,OAAyB;IAClE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IAEvD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAClF,QAAQ,EACR,eAAe,CAChB,CAAA;IAED,0BAA0B;IAC1B,IAAI,YAAoB,CAAA;IACxB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAA;IAChC,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,YAAY,CAAA;QACnC,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,CAAA;IAClC,CAAC;IAED,iFAAiF;IACjF,OAAO,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;AAC9F,CAAC"}
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,CAgD7F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAiB,6BAA6B,CAC5C,OAAO,EAAE,gBAAgB,GACxB,SAAS,CAAC,oBAAoB,CAAC,CAwCjC"}
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
- let { baudRates, parities, dataBits, stopBits } = (0, parameter_generator_utils_js_1.getParameterArrays)(strategy, supportedConfig);
103
- const { addressRange } = (0, parameter_generator_utils_js_1.getParameterArrays)(strategy, supportedConfig);
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
- let { baudRates, parities, dataBits, stopBits } = (0, parameter_generator_utils_js_1.getParameterArrays)(strategy, supportedConfig);
172
- const { addressRange } = (0, parameter_generator_utils_js_1.getParameterArrays)(strategy, supportedConfig);
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":"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"}
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;AAyI7B,OAAO,EAAE,OAAO,EAAE,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"}
@@ -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":"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"}
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"}