@ya-modbus/cli 0.6.0 → 0.7.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/dist/cjs/bin/ya-modbus.d.ts.map +1 -0
- package/dist/cjs/bin/ya-modbus.js +12 -0
- package/dist/cjs/bin/ya-modbus.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/src/commands/discover.d.ts.map +1 -0
- package/dist/cjs/src/commands/discover.js +196 -0
- package/dist/cjs/src/commands/discover.js.map +1 -0
- package/dist/cjs/src/commands/list-devices.d.ts.map +1 -0
- package/dist/cjs/src/commands/list-devices.js +79 -0
- package/dist/cjs/src/commands/list-devices.js.map +1 -0
- package/dist/cjs/src/commands/read.d.ts.map +1 -0
- package/dist/cjs/src/commands/read.js +79 -0
- package/dist/cjs/src/commands/read.js.map +1 -0
- package/dist/cjs/src/commands/show-defaults.d.ts.map +1 -0
- package/dist/cjs/src/commands/show-defaults.js +51 -0
- package/dist/cjs/src/commands/show-defaults.js.map +1 -0
- package/dist/cjs/src/commands/write.d.ts.map +1 -0
- package/dist/cjs/src/commands/write.js +65 -0
- package/dist/cjs/src/commands/write.js.map +1 -0
- package/dist/cjs/src/discovery/constants.d.ts.map +1 -0
- package/dist/cjs/src/discovery/constants.js +48 -0
- package/dist/cjs/src/discovery/constants.js.map +1 -0
- package/dist/cjs/src/discovery/device-identifier.d.ts.map +1 -0
- package/dist/cjs/src/discovery/device-identifier.js +196 -0
- package/dist/cjs/src/discovery/device-identifier.js.map +1 -0
- package/dist/cjs/src/discovery/parameter-generator-utils.d.ts.map +1 -0
- package/dist/cjs/src/discovery/parameter-generator-utils.js +63 -0
- package/dist/cjs/src/discovery/parameter-generator-utils.js.map +1 -0
- package/dist/cjs/src/discovery/parameter-generator.d.ts.map +1 -0
- package/dist/cjs/src/discovery/parameter-generator.js +188 -0
- package/dist/cjs/src/discovery/parameter-generator.js.map +1 -0
- package/dist/cjs/src/discovery/progress.d.ts.map +1 -0
- package/dist/cjs/src/discovery/progress.js +59 -0
- package/dist/cjs/src/discovery/progress.js.map +1 -0
- package/dist/cjs/src/discovery/scanner.d.ts.map +1 -0
- package/dist/cjs/src/discovery/scanner.js +147 -0
- package/dist/cjs/src/discovery/scanner.js.map +1 -0
- package/dist/cjs/src/formatters/discovery-results.d.ts.map +1 -0
- package/dist/cjs/src/formatters/discovery-results.js +62 -0
- package/dist/cjs/src/formatters/discovery-results.js.map +1 -0
- package/dist/cjs/src/formatters/json.d.ts.map +1 -0
- package/dist/cjs/src/formatters/json.js +36 -0
- package/dist/cjs/src/formatters/json.js.map +1 -0
- package/dist/cjs/src/formatters/performance.d.ts.map +1 -0
- package/dist/cjs/src/formatters/performance.js +28 -0
- package/dist/cjs/src/formatters/performance.js.map +1 -0
- package/dist/cjs/src/formatters/table.d.ts.map +1 -0
- package/dist/cjs/src/formatters/table.js +95 -0
- package/dist/cjs/src/formatters/table.js.map +1 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/cjs/src/index.js +157 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/cjs/src/utils/commands.d.ts.map +1 -0
- package/dist/cjs/src/utils/commands.js +421 -0
- package/dist/cjs/src/utils/commands.js.map +1 -0
- package/dist/cjs/src/utils/object-utils.d.ts.map +1 -0
- package/dist/cjs/src/utils/object-utils.js +31 -0
- package/dist/cjs/src/utils/object-utils.js.map +1 -0
- package/dist/cjs/src/utils/validation.d.ts.map +1 -0
- package/dist/cjs/src/utils/validation.js +165 -0
- package/dist/cjs/src/utils/validation.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/esm/bin/ya-modbus.d.ts +9 -0
- package/dist/esm/bin/ya-modbus.d.ts.map +1 -0
- package/dist/esm/bin/ya-modbus.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/src/commands/discover.d.ts +25 -0
- package/dist/esm/src/commands/discover.d.ts.map +1 -0
- package/dist/esm/src/commands/discover.js.map +1 -0
- package/dist/esm/src/commands/list-devices.d.ts +21 -0
- package/dist/esm/src/commands/list-devices.d.ts.map +1 -0
- package/dist/esm/src/commands/list-devices.js.map +1 -0
- package/dist/esm/src/commands/read.d.ts +25 -0
- package/dist/esm/src/commands/read.d.ts.map +1 -0
- package/dist/esm/src/commands/read.js.map +1 -0
- package/dist/esm/src/commands/show-defaults.d.ts +21 -0
- package/dist/esm/src/commands/show-defaults.d.ts.map +1 -0
- package/dist/esm/src/commands/show-defaults.js.map +1 -0
- package/dist/esm/src/commands/write.d.ts +26 -0
- package/dist/esm/src/commands/write.d.ts.map +1 -0
- package/dist/esm/src/commands/write.js.map +1 -0
- package/dist/esm/src/discovery/constants.d.ts +37 -0
- package/dist/esm/src/discovery/constants.d.ts.map +1 -0
- package/dist/esm/src/discovery/constants.js.map +1 -0
- package/dist/esm/src/discovery/device-identifier.d.ts +52 -0
- package/dist/esm/src/discovery/device-identifier.d.ts.map +1 -0
- package/dist/esm/src/discovery/device-identifier.js.map +1 -0
- package/dist/esm/src/discovery/parameter-generator-utils.d.ts +29 -0
- package/dist/esm/src/discovery/parameter-generator-utils.d.ts.map +1 -0
- package/dist/esm/src/discovery/parameter-generator-utils.js.map +1 -0
- package/dist/esm/src/discovery/parameter-generator.d.ts +97 -0
- package/dist/esm/src/discovery/parameter-generator.d.ts.map +1 -0
- package/dist/esm/src/discovery/parameter-generator.js.map +1 -0
- package/dist/esm/src/discovery/progress.d.ts +24 -0
- package/dist/esm/src/discovery/progress.d.ts.map +1 -0
- package/dist/{src → esm/src}/discovery/progress.js +2 -4
- package/dist/esm/src/discovery/progress.js.map +1 -0
- package/dist/esm/src/discovery/scanner.d.ts +46 -0
- package/dist/esm/src/discovery/scanner.d.ts.map +1 -0
- package/dist/esm/src/discovery/scanner.js.map +1 -0
- package/dist/esm/src/formatters/discovery-results.d.ts +10 -0
- package/dist/esm/src/formatters/discovery-results.d.ts.map +1 -0
- package/dist/esm/src/formatters/discovery-results.js.map +1 -0
- package/dist/esm/src/formatters/json.d.ts +30 -0
- package/dist/esm/src/formatters/json.d.ts.map +1 -0
- package/dist/esm/src/formatters/json.js.map +1 -0
- package/dist/esm/src/formatters/performance.d.ts +19 -0
- package/dist/esm/src/formatters/performance.d.ts.map +1 -0
- package/dist/esm/src/formatters/performance.js.map +1 -0
- package/dist/esm/src/formatters/table.d.ts +10 -0
- package/dist/esm/src/formatters/table.d.ts.map +1 -0
- package/dist/esm/src/formatters/table.js.map +1 -0
- package/dist/esm/src/index.d.ts +5 -0
- package/dist/esm/src/index.d.ts.map +1 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/utils/commands.d.ts +191 -0
- package/dist/esm/src/utils/commands.d.ts.map +1 -0
- package/dist/esm/src/utils/commands.js.map +1 -0
- package/dist/esm/src/utils/object-utils.d.ts +20 -0
- package/dist/esm/src/utils/object-utils.d.ts.map +1 -0
- package/dist/esm/src/utils/object-utils.js.map +1 -0
- package/dist/esm/src/utils/validation.d.ts +70 -0
- package/dist/esm/src/utils/validation.d.ts.map +1 -0
- package/dist/{src → esm/src}/utils/validation.js +0 -3
- package/dist/esm/src/utils/validation.js.map +1 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +26 -9
- package/dist/bin/ya-modbus.d.ts.map +0 -1
- package/dist/bin/ya-modbus.js.map +0 -1
- package/dist/src/commands/discover.d.ts.map +0 -1
- package/dist/src/commands/discover.js.map +0 -1
- package/dist/src/commands/list-devices.d.ts.map +0 -1
- package/dist/src/commands/list-devices.js.map +0 -1
- package/dist/src/commands/read.d.ts.map +0 -1
- package/dist/src/commands/read.js.map +0 -1
- package/dist/src/commands/show-defaults.d.ts.map +0 -1
- package/dist/src/commands/show-defaults.js.map +0 -1
- package/dist/src/commands/write.d.ts.map +0 -1
- package/dist/src/commands/write.js.map +0 -1
- package/dist/src/discovery/constants.d.ts.map +0 -1
- package/dist/src/discovery/constants.js.map +0 -1
- package/dist/src/discovery/device-identifier.d.ts.map +0 -1
- package/dist/src/discovery/device-identifier.js.map +0 -1
- package/dist/src/discovery/parameter-generator-utils.d.ts.map +0 -1
- package/dist/src/discovery/parameter-generator-utils.js.map +0 -1
- package/dist/src/discovery/parameter-generator.d.ts.map +0 -1
- package/dist/src/discovery/parameter-generator.js.map +0 -1
- package/dist/src/discovery/progress.d.ts.map +0 -1
- package/dist/src/discovery/progress.js.map +0 -1
- package/dist/src/discovery/scanner.d.ts.map +0 -1
- package/dist/src/discovery/scanner.js.map +0 -1
- package/dist/src/formatters/discovery-results.d.ts.map +0 -1
- package/dist/src/formatters/discovery-results.js.map +0 -1
- package/dist/src/formatters/json.d.ts.map +0 -1
- package/dist/src/formatters/json.js.map +0 -1
- package/dist/src/formatters/performance.d.ts.map +0 -1
- package/dist/src/formatters/performance.js.map +0 -1
- package/dist/src/formatters/table.d.ts.map +0 -1
- package/dist/src/formatters/table.js.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/utils/commands.d.ts.map +0 -1
- package/dist/src/utils/commands.js.map +0 -1
- package/dist/src/utils/object-utils.d.ts.map +0 -1
- package/dist/src/utils/object-utils.js.map +0 -1
- package/dist/src/utils/validation.d.ts.map +0 -1
- package/dist/src/utils/validation.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{bin → cjs/bin}/ya-modbus.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/discover.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/list-devices.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/read.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/show-defaults.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/write.d.ts +0 -0
- /package/dist/{src → cjs/src}/discovery/constants.d.ts +0 -0
- /package/dist/{src → cjs/src}/discovery/device-identifier.d.ts +0 -0
- /package/dist/{src → cjs/src}/discovery/parameter-generator-utils.d.ts +0 -0
- /package/dist/{src → cjs/src}/discovery/parameter-generator.d.ts +0 -0
- /package/dist/{src → cjs/src}/discovery/progress.d.ts +0 -0
- /package/dist/{src → cjs/src}/discovery/scanner.d.ts +0 -0
- /package/dist/{src → cjs/src}/formatters/discovery-results.d.ts +0 -0
- /package/dist/{src → cjs/src}/formatters/json.d.ts +0 -0
- /package/dist/{src → cjs/src}/formatters/performance.d.ts +0 -0
- /package/dist/{src → cjs/src}/formatters/table.d.ts +0 -0
- /package/dist/{src → cjs/src}/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/utils/commands.d.ts +0 -0
- /package/dist/{src → cjs/src}/utils/object-utils.d.ts +0 -0
- /package/dist/{src → cjs/src}/utils/validation.d.ts +0 -0
- /package/dist/{bin → esm/bin}/ya-modbus.js +0 -0
- /package/dist/{src → esm/src}/commands/discover.js +0 -0
- /package/dist/{src → esm/src}/commands/list-devices.js +0 -0
- /package/dist/{src → esm/src}/commands/read.js +0 -0
- /package/dist/{src → esm/src}/commands/show-defaults.js +0 -0
- /package/dist/{src → esm/src}/commands/write.js +0 -0
- /package/dist/{src → esm/src}/discovery/constants.js +0 -0
- /package/dist/{src → esm/src}/discovery/device-identifier.js +0 -0
- /package/dist/{src → esm/src}/discovery/parameter-generator-utils.js +0 -0
- /package/dist/{src → esm/src}/discovery/parameter-generator.js +0 -0
- /package/dist/{src → esm/src}/discovery/scanner.js +0 -0
- /package/dist/{src → esm/src}/formatters/discovery-results.js +0 -0
- /package/dist/{src → esm/src}/formatters/json.js +0 -0
- /package/dist/{src → esm/src}/formatters/performance.js +0 -0
- /package/dist/{src → esm/src}/formatters/table.js +0 -0
- /package/dist/{src → esm/src}/index.js +0 -0
- /package/dist/{src → esm/src}/utils/commands.js +0 -0
- /package/dist/{src → esm/src}/utils/object-utils.js +0 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type ModbusRTU from 'modbus-serial';
|
|
2
|
+
/**
|
|
3
|
+
* Device identification result from discovery attempt
|
|
4
|
+
* Provides comprehensive information about device presence and capabilities
|
|
5
|
+
*/
|
|
6
|
+
export interface DeviceIdentificationResult {
|
|
7
|
+
/** Whether a Modbus device is present at this address/configuration */
|
|
8
|
+
present: boolean;
|
|
9
|
+
/** Response time in milliseconds */
|
|
10
|
+
responseTimeMs: number;
|
|
11
|
+
/** Vendor/manufacturer name (from FC43) */
|
|
12
|
+
vendorName?: string;
|
|
13
|
+
/** Product code/identifier (from FC43) */
|
|
14
|
+
productCode?: string;
|
|
15
|
+
/** Model name (from FC43) */
|
|
16
|
+
modelName?: string;
|
|
17
|
+
/** Firmware/hardware revision (from FC43) */
|
|
18
|
+
revision?: string;
|
|
19
|
+
/** Whether device supports FC43 (Read Device Identification) */
|
|
20
|
+
supportsFC43?: boolean;
|
|
21
|
+
/** Device present but returned Modbus exception code */
|
|
22
|
+
exceptionCode?: number;
|
|
23
|
+
/** Request timed out (no response) */
|
|
24
|
+
timeout?: boolean;
|
|
25
|
+
/** CRC check failed (wrong serial parameters) */
|
|
26
|
+
crcError?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Attempt to identify a Modbus device at the current client configuration
|
|
30
|
+
*
|
|
31
|
+
* Uses FC43 (Read Device Identification) to probe for device presence.
|
|
32
|
+
* Any Modbus response (including exceptions) indicates a device is present.
|
|
33
|
+
* Only timeouts and CRC errors mean no device with these parameters.
|
|
34
|
+
*
|
|
35
|
+
* @param client - Configured ModbusRTU client (address, serial params, and timeout already set)
|
|
36
|
+
* @returns Device identification result
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const client = new ModbusRTU()
|
|
41
|
+
* await client.connectRTUBuffered('/dev/ttyUSB0', { baudRate: 9600 })
|
|
42
|
+
* client.setID(1)
|
|
43
|
+
* client.setTimeout(1000)
|
|
44
|
+
*
|
|
45
|
+
* const result = await identifyDevice(client)
|
|
46
|
+
* if (result.present) {
|
|
47
|
+
* console.log(`Found device: ${result.vendorName ?? 'Unknown'}`)
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function identifyDevice(client: ModbusRTU): Promise<DeviceIdentificationResult>;
|
|
52
|
+
//# sourceMappingURL=device-identifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-identifier.d.ts","sourceRoot":"","sources":["../../../../src/discovery/device-identifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,eAAe,CAAA;AAsC1C;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,uEAAuE;IACvE,OAAO,EAAE,OAAO,CAAA;IAEhB,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAA;IAGtB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAA;IAGjB,gEAAgE;IAChE,YAAY,CAAC,EAAE,OAAO,CAAA;IAGtB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAgID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAgC3F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-identifier.js","sourceRoot":"","sources":["../../../../src/discovery/device-identifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { BaudRate, DataBits, Parity, StopBits, SupportedSerialConfig } from '@ya-modbus/driver-types';
|
|
2
|
+
import type { DiscoveryStrategy, GeneratorOptions } from './parameter-generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* Get parameter arrays based on strategy and configuration
|
|
5
|
+
*/
|
|
6
|
+
export declare function getParameterArrays(strategy: DiscoveryStrategy, supportedConfig?: SupportedSerialConfig): {
|
|
7
|
+
baudRates: readonly BaudRate[];
|
|
8
|
+
parities: readonly Parity[];
|
|
9
|
+
dataBits: readonly DataBits[];
|
|
10
|
+
stopBits: readonly StopBits[];
|
|
11
|
+
addressRange: readonly [number, number];
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Count the total number of parameter combinations without materializing them
|
|
15
|
+
*
|
|
16
|
+
* This is much more efficient than Array.from(generateParameterCombinations()).length
|
|
17
|
+
* as it calculates the count mathematically instead of generating all combinations.
|
|
18
|
+
*
|
|
19
|
+
* @param options - Generator options
|
|
20
|
+
* @returns Total number of combinations that will be generated
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const count = countParameterCombinations({ strategy: 'quick' })
|
|
25
|
+
* console.log(`Will test ${count} combinations`) // Will test 3952 combinations
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function countParameterCombinations(options: GeneratorOptions): number;
|
|
29
|
+
//# sourceMappingURL=parameter-generator-utils.d.ts.map
|
|
@@ -0,0 +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,CAc5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameter-generator-utils.js","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator-utils.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AAGvB;;GAEG;AACH,MAAM,UAAU,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,iBAAiB;YAC9D,QAAQ,EAAE,eAAe,CAAC,WAAW,IAAI,eAAe;YACxD,QAAQ,EAAE,eAAe,CAAC,aAAa,IAAI,kBAAkB;YAC7D,QAAQ,EAAE,eAAe,CAAC,aAAa,IAAI,kBAAkB;YAC7D,YAAY,EAAE,eAAe,CAAC,iBAAiB,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC;SAChF,CAAA;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,6EAA6E;QAC7E,OAAO;YACL,SAAS,EAAE,eAAe,EAAE,cAAc,IAAI,mBAAmB;YACjE,QAAQ,EAAE,eAAe,EAAE,WAAW,IAAI,eAAe;YACzD,QAAQ,EAAE,eAAe,EAAE,aAAa,IAAI,kBAAkB;YAC9D,QAAQ,EAAE,eAAe,EAAE,aAAa,IAAI,kBAAkB;YAC9D,YAAY,EAAE,eAAe,EAAE,iBAAiB,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC;SACjF,CAAA;IACH,CAAC;IAED,0DAA0D;IAC1D,OAAO;QACL,SAAS,EAAE,iBAAiB;QAC5B,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,gBAAgB;QAC1B,YAAY,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;KAC3C,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAyB;IAClE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAA;IAE7C,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAClF,QAAQ,EACR,eAAe,CAChB,CAAA;IAED,0BAA0B;IAC1B,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,YAAY,CAAA;IACnC,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,CAAA;IAEtC,iFAAiF;IACjF,OAAO,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;AAC9F,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { BaudRate, DataBits, DefaultSerialConfig, Parity, StopBits, SupportedSerialConfig } from '@ya-modbus/driver-types';
|
|
2
|
+
/**
|
|
3
|
+
* Parameter combination for discovery testing
|
|
4
|
+
* Represents a complete set of Modbus RTU serial parameters
|
|
5
|
+
*/
|
|
6
|
+
export interface ParameterCombination {
|
|
7
|
+
slaveId: number;
|
|
8
|
+
baudRate: BaudRate;
|
|
9
|
+
parity: Parity;
|
|
10
|
+
dataBits: DataBits;
|
|
11
|
+
stopBits: StopBits;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Discovery strategy type
|
|
15
|
+
*
|
|
16
|
+
* - quick: Tests only driver-supported parameters (5-10 minutes)
|
|
17
|
+
* - thorough: Tests all standard Modbus parameters (30-60 minutes)
|
|
18
|
+
*/
|
|
19
|
+
export type DiscoveryStrategy = 'quick' | 'thorough';
|
|
20
|
+
/**
|
|
21
|
+
* Options for parameter combination generation
|
|
22
|
+
*/
|
|
23
|
+
export interface GeneratorOptions {
|
|
24
|
+
/** Discovery strategy to use */
|
|
25
|
+
strategy: DiscoveryStrategy;
|
|
26
|
+
/** Driver-provided default configuration (prioritized first) */
|
|
27
|
+
defaultConfig?: DefaultSerialConfig;
|
|
28
|
+
/** Driver-provided supported configuration constraints */
|
|
29
|
+
supportedConfig?: SupportedSerialConfig;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Group of parameter combinations that share the same serial configuration
|
|
33
|
+
*/
|
|
34
|
+
export interface ParameterGroup {
|
|
35
|
+
/** Serial parameters shared by all combinations in this group */
|
|
36
|
+
serialParams: {
|
|
37
|
+
baudRate: BaudRate;
|
|
38
|
+
parity: Parity;
|
|
39
|
+
dataBits: DataBits;
|
|
40
|
+
stopBits: StopBits;
|
|
41
|
+
};
|
|
42
|
+
/** All parameter combinations for this serial configuration (different slave IDs) */
|
|
43
|
+
combinations: ParameterCombination[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Generate parameter combinations grouped by serial configuration
|
|
47
|
+
*
|
|
48
|
+
* This is a memory-efficient alternative to materializing all combinations.
|
|
49
|
+
* Instead of creating all ~1500+ combinations at once, this generator yields
|
|
50
|
+
* groups of ~247 combinations at a time (one per serial config).
|
|
51
|
+
*
|
|
52
|
+
* Each group shares the same serial parameters (baud, parity, data bits, stop bits)
|
|
53
|
+
* but has different slave IDs. This matches how the scanner works - it creates
|
|
54
|
+
* one connection per serial config and tests all slave IDs with that connection.
|
|
55
|
+
*
|
|
56
|
+
* @param options - Generation options
|
|
57
|
+
* @yields Parameter groups to test
|
|
58
|
+
*
|
|
59
|
+
* @example Iterate over groups without materializing all combinations
|
|
60
|
+
* ```typescript
|
|
61
|
+
* for (const group of generateParameterGroups(options)) {
|
|
62
|
+
* // Only this group's ~247 combinations are in memory
|
|
63
|
+
* const { serialParams, combinations } = group
|
|
64
|
+
* // ... use combinations ...
|
|
65
|
+
* }
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function generateParameterGroups(options: GeneratorOptions): Generator<ParameterGroup>;
|
|
69
|
+
/**
|
|
70
|
+
* Generate all parameter combinations for Modbus device discovery
|
|
71
|
+
*
|
|
72
|
+
* Produces combinations in priority order:
|
|
73
|
+
* 1. Default configuration (if provided) tested first
|
|
74
|
+
* 2. Common slave addresses (1, 2) before others
|
|
75
|
+
* 3. Common baud rates before exotic ones
|
|
76
|
+
*
|
|
77
|
+
* @param options - Generation options
|
|
78
|
+
* @yields Parameter combinations to test
|
|
79
|
+
*
|
|
80
|
+
* @example Quick discovery with driver config
|
|
81
|
+
* ```typescript
|
|
82
|
+
* const combinations = generateParameterCombinations({
|
|
83
|
+
* strategy: 'quick',
|
|
84
|
+
* defaultConfig: { baudRate: 9600, parity: 'even', ... },
|
|
85
|
+
* supportedConfig: { validBaudRates: [9600, 19200], ... }
|
|
86
|
+
* })
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* @example Thorough discovery without driver
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const combinations = generateParameterCombinations({
|
|
92
|
+
* strategy: 'thorough'
|
|
93
|
+
* })
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare function generateParameterCombinations(options: GeneratorOptions): Generator<ParameterCombination>;
|
|
97
|
+
//# sourceMappingURL=parameter-generator.d.ts.map
|
|
@@ -0,0 +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;CACxC;AAqED;;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,CA8C7F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAiB,6BAA6B,CAC5C,OAAO,EAAE,gBAAgB,GACxB,SAAS,CAAC,oBAAoB,CAAC,CAsCjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameter-generator.js","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple progress tracker for discovery operations
|
|
3
|
+
*/
|
|
4
|
+
export declare class ProgressTracker {
|
|
5
|
+
private readonly totalCombinations;
|
|
6
|
+
private startTime;
|
|
7
|
+
private lastUpdateTime;
|
|
8
|
+
private readonly updateIntervalMs;
|
|
9
|
+
constructor(totalCombinations: number);
|
|
10
|
+
/**
|
|
11
|
+
* Update progress and return formatted status string
|
|
12
|
+
* Only returns a new string if enough time has passed since last update
|
|
13
|
+
*
|
|
14
|
+
* @param current - Current combination index
|
|
15
|
+
* @param devicesFound - Number of devices found so far
|
|
16
|
+
* @returns Progress string or null if no update needed
|
|
17
|
+
*/
|
|
18
|
+
update(current: number, devicesFound: number): string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Format duration in seconds to human-readable string
|
|
21
|
+
*/
|
|
22
|
+
private formatDuration;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../../src/discovery/progress.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,eAAe;IAKd,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAJ9C,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAe;gBAEnB,iBAAiB,EAAE,MAAM;IAItD;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAyB5D;;OAEG;IACH,OAAO,CAAC,cAAc;CAgBvB"}
|
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
* Simple progress tracker for discovery operations
|
|
3
3
|
*/
|
|
4
4
|
export class ProgressTracker {
|
|
5
|
-
totalCombinations;
|
|
6
|
-
startTime;
|
|
7
|
-
lastUpdateTime = 0;
|
|
8
|
-
updateIntervalMs = 1000; // Update every second
|
|
9
5
|
constructor(totalCombinations) {
|
|
10
6
|
this.totalCombinations = totalCombinations;
|
|
7
|
+
this.lastUpdateTime = 0;
|
|
8
|
+
this.updateIntervalMs = 1000; // Update every second
|
|
11
9
|
this.startTime = Date.now();
|
|
12
10
|
}
|
|
13
11
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../../src/discovery/progress.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,eAAe;IAK1B,YAA6B,iBAAyB;QAAzB,sBAAiB,GAAjB,iBAAiB,CAAQ;QAH9C,mBAAc,GAAW,CAAC,CAAA;QACjB,qBAAgB,GAAW,IAAI,CAAA,CAAC,sBAAsB;QAGrE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC7B,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,OAAe,EAAE,YAAoB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAEtB,qDAAqD;QACrD,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,IAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1F,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,GAAG,CAAA;QAEzB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC,CAAA;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAA;QAEzD,gBAAgB;QAChB,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,CAAA;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAA;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;YAC/C,GAAG,GAAG,WAAW,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAA;QACpD,CAAC;QAED,OAAO,aAAa,UAAU,MAAM,OAAO,IAAI,IAAI,CAAC,iBAAiB,sBAAsB,YAAY,eAAe,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAA;IAC5J,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAAe;QACpC,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;YACjB,OAAO,GAAG,OAAO,GAAG,CAAA;QACtB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;QACxC,MAAM,gBAAgB,GAAG,OAAO,GAAG,EAAE,CAAA;QAErC,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;YACjB,OAAO,GAAG,OAAO,KAAK,gBAAgB,GAAG,CAAA;QAC3C,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;QACtC,MAAM,gBAAgB,GAAG,OAAO,GAAG,EAAE,CAAA;QACrC,OAAO,GAAG,KAAK,KAAK,gBAAgB,GAAG,CAAA;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type DeviceIdentificationResult } from './device-identifier.js';
|
|
2
|
+
import { type GeneratorOptions, type ParameterCombination } from './parameter-generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* Discovered device with full configuration
|
|
5
|
+
*/
|
|
6
|
+
export interface DiscoveredDevice extends ParameterCombination {
|
|
7
|
+
/** Device identification result */
|
|
8
|
+
identification: DeviceIdentificationResult;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Scanner options
|
|
12
|
+
*/
|
|
13
|
+
export interface ScanOptions {
|
|
14
|
+
/** Serial port path (e.g., /dev/ttyUSB0) */
|
|
15
|
+
port: string;
|
|
16
|
+
/** Response timeout in milliseconds */
|
|
17
|
+
timeout: number;
|
|
18
|
+
/** Delay between attempts in milliseconds */
|
|
19
|
+
delayMs: number;
|
|
20
|
+
/** Maximum number of devices to find (0 for unlimited, default: 1) */
|
|
21
|
+
maxDevices?: number;
|
|
22
|
+
/** Verbose progress - show current parameters being tested */
|
|
23
|
+
verbose?: boolean;
|
|
24
|
+
/** Progress callback (current index, total combinations, devices found) */
|
|
25
|
+
onProgress?: (current: number, total: number, devicesFound: number) => void;
|
|
26
|
+
/** Device found callback */
|
|
27
|
+
onDeviceFound?: (device: DiscoveredDevice) => void;
|
|
28
|
+
/** Verbose progress callback - called for each test attempt */
|
|
29
|
+
onTestAttempt?: (params: ParameterCombination, result: 'testing' | 'found' | 'not-found') => void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Scan for Modbus devices using given parameter combinations
|
|
33
|
+
*
|
|
34
|
+
* **Performance Optimization**: Uses grouped generator to avoid materializing
|
|
35
|
+
* all combinations. Groups by serial parameters to reuse connections,
|
|
36
|
+
* reducing overhead from ~600ms to ~100ms per test.
|
|
37
|
+
*
|
|
38
|
+
* **Memory Efficiency**: Only materializes one group (~247 combinations) at a time
|
|
39
|
+
* instead of all ~1500+ combinations.
|
|
40
|
+
*
|
|
41
|
+
* @param generatorOptions - Options for parameter combination generation
|
|
42
|
+
* @param scanOptions - Scanning options
|
|
43
|
+
* @returns Array of discovered devices
|
|
44
|
+
*/
|
|
45
|
+
export declare function scanForDevices(generatorOptions: GeneratorOptions, scanOptions: ScanOptions): Promise<DiscoveredDevice[]>;
|
|
46
|
+
//# sourceMappingURL=scanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../../src/discovery/scanner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAExF,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAA;AAEjC;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC5D,mCAAmC;IACnC,cAAc,EAAE,0BAA0B,CAAA;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAA;IAEZ,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAA;IAEf,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAA;IAEf,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;IAE3E,4BAA4B;IAC5B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAElD,+DAA+D;IAC/D,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,KAAK,IAAI,CAAA;CAClG;AAsCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAClC,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAsH7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../../src/discovery/scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DiscoveredDevice } from '../discovery/scanner.js';
|
|
2
|
+
/**
|
|
3
|
+
* Format discovered devices as a table
|
|
4
|
+
*/
|
|
5
|
+
export declare function formatDiscoveryTable(devices: DiscoveredDevice[]): string;
|
|
6
|
+
/**
|
|
7
|
+
* Format discovered devices as JSON
|
|
8
|
+
*/
|
|
9
|
+
export declare function formatDiscoveryJSON(devices: DiscoveredDevice[]): string;
|
|
10
|
+
//# sourceMappingURL=discovery-results.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery-results.d.ts","sourceRoot":"","sources":["../../../../src/formatters/discovery-results.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE/D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAqCxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAkBvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery-results.js","sourceRoot":"","sources":["../../../../src/formatters/discovery-results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAA;AAI9B;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA2B;IAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,mBAAmB,CAAA;IAC5B,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC;QACrF,KAAK,EAAE;YACL,IAAI,EAAE,CAAC,MAAM,CAAC;SACf;KACF,CAAC,CAAA;IAEF,mBAAmB;IACnB,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;IAEjE,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CAAA;QAEhF,MAAM,UAAU,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QAC1E,MAAM,QAAQ,GAAG,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,EAAE,CAAA;QAEtD,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,IAAI,GAAG,CAAA;QAC/C,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,IAAI,cAAc,CAAC,WAAW,IAAI,GAAG,CAAA;QAC3E,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAA;QAErE,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,CAAC,QAAQ,EAAE;YAClB,QAAQ,CAAC,QAAQ,EAAE;YACnB,UAAU;YACV,QAAQ;YACR,YAAY;YACZ,MAAM;YACN,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA2B;IAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,cAAc;QACpD,cAAc,EAAE;YACd,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,UAAU;YAC5C,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC,WAAW;YAC9C,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,SAAS;YAC1C,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ;YACxC,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC,YAAY;SACjD;KACF,CAAC,CAAC,CAAA;IAEH,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AAC3C,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { DataPoint } from '@ya-modbus/driver-types';
|
|
2
|
+
/**
|
|
3
|
+
* Metadata for JSON output
|
|
4
|
+
*/
|
|
5
|
+
export interface JSONMetadata {
|
|
6
|
+
/** Driver package name */
|
|
7
|
+
driver?: string | undefined;
|
|
8
|
+
/** Connection details */
|
|
9
|
+
connection?: {
|
|
10
|
+
port?: string | undefined;
|
|
11
|
+
host?: string | undefined;
|
|
12
|
+
slaveId?: number | undefined;
|
|
13
|
+
} | undefined;
|
|
14
|
+
/** Performance metrics */
|
|
15
|
+
performance?: {
|
|
16
|
+
responseTimeMs: number;
|
|
17
|
+
operations: number;
|
|
18
|
+
errors: number;
|
|
19
|
+
} | undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Format data point results as JSON
|
|
23
|
+
*
|
|
24
|
+
* @param dataPoints - Data point definitions
|
|
25
|
+
* @param values - Data point values (keyed by ID)
|
|
26
|
+
* @param metadata - Additional metadata to include
|
|
27
|
+
* @returns Formatted JSON string with 2-space indentation
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatJSON(dataPoints: ReadonlyArray<DataPoint>, values: Record<string, unknown>, metadata: JSONMetadata): string;
|
|
30
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../../src/formatters/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,yBAAyB;IACzB,UAAU,CAAC,EACP;QACE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC7B,GACD,SAAS,CAAA;IACb,0BAA0B;IAC1B,WAAW,CAAC,EACR;QACE,cAAc,EAAE,MAAM,CAAA;QACtB,UAAU,EAAE,MAAM,CAAA;QAClB,MAAM,EAAE,MAAM,CAAA;KACf,GACD,SAAS,CAAA;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,EACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,YAAY,GACrB,MAAM,CAyBR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../../src/formatters/json.ts"],"names":[],"mappings":"AA0BA;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CACxB,UAAoC,EACpC,MAA+B,EAC/B,QAAsB;IAEtB,sCAAsC;IACtC,MAAM,oBAAoB,GAAG,UAAU;SACpC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC;SAC/B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACZ,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QACpB,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,QAAQ,EAAE,EAAE,CAAC,QAAQ;KACtB,CAAC,CAAC,CAAA;IAEL,sBAAsB;IACtB,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QACnD,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC/D,UAAU,EAAE,oBAAoB;QAChC,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;KACnE,CAAA;IAED,sDAAsD;IACtD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACxC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Performance metrics
|
|
3
|
+
*/
|
|
4
|
+
export interface PerformanceMetrics {
|
|
5
|
+
/** Total response time in milliseconds */
|
|
6
|
+
responseTimeMs: number;
|
|
7
|
+
/** Number of operations performed */
|
|
8
|
+
operations: number;
|
|
9
|
+
/** Number of errors encountered */
|
|
10
|
+
errors: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Format performance metrics for display
|
|
14
|
+
*
|
|
15
|
+
* @param metrics - Performance metrics
|
|
16
|
+
* @returns Formatted string with performance info
|
|
17
|
+
*/
|
|
18
|
+
export declare function formatPerformance(metrics: PerformanceMetrics): string;
|
|
19
|
+
//# sourceMappingURL=performance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../../../../src/formatters/performance.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAA;IACtB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAiBrE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.js","sourceRoot":"","sources":["../../../../src/formatters/performance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAEtD,MAAM,KAAK,GAAG;QACZ,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC5B,oBAAoB,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QACjD,iBAAiB,UAAU,EAAE;KAC9B,CAAA;IAED,8BAA8B;IAC9B,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DataPoint } from '@ya-modbus/driver-types';
|
|
2
|
+
/**
|
|
3
|
+
* Format data point results as a table
|
|
4
|
+
*
|
|
5
|
+
* @param dataPoints - Data point definitions
|
|
6
|
+
* @param values - Data point values (keyed by ID)
|
|
7
|
+
* @returns Formatted table string
|
|
8
|
+
*/
|
|
9
|
+
export declare function formatTable(dataPoints: ReadonlyArray<DataPoint>, values: Record<string, unknown>): string;
|
|
10
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/formatters/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AA0ExD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,EACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAuBR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/formatters/table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +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;AAqI7B,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|