motion-master-client 0.0.336 → 0.0.337

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "motion-master-client",
3
- "version": "0.0.336",
3
+ "version": "0.0.337",
4
4
  "type": "commonjs",
5
5
  "description": "A library and CLI program used for communicating with Motion Master.",
6
6
  "dependencies": {
@@ -3,10 +3,13 @@ import { MonitoringConfig } from './monitoring-config';
3
3
  import { MotionMasterClient } from './motion-master-client';
4
4
  import { DeviceParameterIds, ParameterValueType } from './types';
5
5
  /**
6
- * The DataMonitoring class tracks and collects device parameter values.
6
+ * Tracks and collects device parameter values over time.
7
7
  *
8
- * Unlike {@link MotionMasterClient#startMonitoring}, which returns an observable that never completes on its own,
9
- * this class provides a `stop()` method to complete the monitoring observable, enabling the use of operators like `toArray()` as intended.
8
+ * Unlike {@link MotionMasterClient#startMonitoring}, which returns an
9
+ * observable that does not complete on its own, this class provides
10
+ * explicit control over starting, stopping, and collecting monitoring
11
+ * data. It supports exporting the data in CSV format and provides
12
+ * statistical analysis of the sampling intervals.
10
13
  */
11
14
  export declare class DataMonitoring {
12
15
  readonly client: MotionMasterClient;
@@ -14,71 +17,136 @@ export declare class DataMonitoring {
14
17
  readonly monitoringInterval: number;
15
18
  readonly config?: MonitoringConfig | undefined;
16
19
  /**
17
- * The collected data.
20
+ * Stores the collected monitoring data.
18
21
  *
19
- * Use the `clear()` method before starting a new monitoring if you want to collect a fresh set of data.
22
+ * Each element of the outer array represents a single monitoring sample,
23
+ * which is an array of parameter values corresponding to {@link ids}.
24
+ * Use {@link clear} to reset this array before starting a new monitoring session.
20
25
  */
21
26
  readonly data: ParameterValueType[][];
22
27
  /**
23
- * Besides emitting monitored data through the observable created by the {@link #start()} method,
24
- * an instance of this class will also collect data as it arrives.
28
+ * Determines whether incoming monitoring data should be collected.
29
+ *
30
+ * When `true`, each emitted value from the monitoring observable is
31
+ * appended to the {@link data} array. Set to `false` to receive data
32
+ * without storing it.
25
33
  */
26
34
  collect: boolean;
27
35
  /**
28
- * Emit a value to stop the ongoing monitoring.
36
+ * Internal flag indicating whether monitoring has been stopped.
37
+ *
38
+ * Used by {@link start} and {@link stop} to control the observable pipeline.
39
+ * When `true`, the observable returned by `start` completes on the next emission.
40
+ */
41
+ private stopped;
42
+ /**
43
+ * The internal RxJS subscription used to manage the monitoring stream
44
+ * started by {@link start}.
45
+ *
46
+ * This reference is used by {@link stop} to ensure a clean unsubscribe.
47
+ */
48
+ private subscription?;
49
+ /**
50
+ * Creates a new `DataMonitoring` instance for collecting device parameter values.
51
+ *
52
+ * @param client - The Motion Master client used to communicate with the device.
53
+ * @param ids - An array of device parameter IDs to monitor. Each ID can be a string
54
+ * or a tuple `[deviceRef, index, subindex]`.
55
+ * @param monitoringInterval - The interval, in milliseconds, at which parameter
56
+ * values should be sampled.
57
+ * @param config - Optional monitoring configuration, such as filters or buffering
58
+ * options.
29
59
  */
30
- private finalize$;
31
60
  constructor(client: MotionMasterClient, ids: DeviceParameterIds, monitoringInterval: number, config?: MonitoringConfig | undefined);
32
61
  /**
33
- * Generates a CSV header string using the provided device parameter IDs.
62
+ * Indicates whether monitoring has been stopped.
63
+ *
64
+ * @returns `true` if {@link stop} has been called and the internal
65
+ * stop flag is set, otherwise `false`.
66
+ */
67
+ get isStopped(): boolean;
68
+ /**
69
+ * Indicates whether monitoring is currently active.
70
+ *
71
+ * @returns `true` if monitoring has been started via {@link start} and
72
+ * has not yet been stopped, otherwise `false`.
73
+ */
74
+ get isStarted(): boolean;
75
+ /**
76
+ * Generates a CSV header string from the monitored parameter IDs.
77
+ *
78
+ * Each parameter ID in {@link ids} is converted to a string representation
79
+ * using {@link makeParameterId}. String IDs are parsed with
80
+ * {@link splitDeviceParameterId}, while tuple IDs `[deviceRef, index, subindex]`
81
+ * are converted directly.
34
82
  *
35
83
  * @example
36
- * 0x6040:00,0x6060:00,0x6071:00,0x607A:00,0x60FF:00
84
+ * // Possible output: "0x6040:00,0x6060:00,0x6071:00,0x607A:00,0x60FF:00"
85
+ *
86
+ * @returns A comma-separated string representing the header for CSV export.
37
87
  */
38
88
  get header(): string;
39
89
  /**
40
- * Converts the collected data to CSV format.
90
+ * Converts the collected monitoring data into CSV (Comma-Separated Values) format.
91
+ *
92
+ * The first row contains the CSV header generated from {@link header},
93
+ * followed by one row per collected sample in {@link data}. Each row
94
+ * represents the parameter values at a given monitoring interval.
95
+ *
96
+ * @returns A string representing the collected data in CSV format,
97
+ * ready for export or analysis.
41
98
  */
42
99
  get csv(): string;
43
100
  /**
44
- * Finds the index of the timestamp field in the `ids` array.
101
+ * Finds the zero-based index of the timestamp field in the monitored parameters.
45
102
  *
46
- * The timestamp field is identified by object 0x20F0 and subindex 0x00.
47
- * IDs may be strings (parsed using `splitDeviceParameterId`) or tuples
48
- * in the form `[deviceRef, index, subindex]`.
103
+ * The timestamp field is identified as object 0x20F0 with subindex 0x00.
104
+ * Parameter IDs in {@link ids} may be strings (parsed using
105
+ * {@link splitDeviceParameterId}) or tuples in the form `[deviceRef, index, subindex]`.
49
106
  *
50
- * @returns The zero-based index of the timestamp field in `ids`,
51
- * or `-1` if no timestamp entry exists.
107
+ * @returns The index of the timestamp entry in {@link ids}, or `-1` if
108
+ * no timestamp field exists.
52
109
  */
53
110
  get timestampIndex(): number;
54
111
  /**
55
- * Extracts the timestamp column from the monitoring data.
112
+ * Extracts the timestamp values from the collected monitoring data.
56
113
  *
57
- * Each entry of `data` contains an array of values aligned with `ids`.
58
- * If no timestamp index exists, an empty array is returned.
114
+ * The timestamp column is determined by {@link timestampIndex}, which
115
+ * locates the entry corresponding to object 0x20F0:00 in the monitored
116
+ * parameter list. If no timestamp index is found, an empty array is
117
+ * returned.
59
118
  *
60
- * @returns An array of numeric timestamps extracted from the monitoring data.
119
+ * @returns An array of numeric timestamps aligned with the collected
120
+ * monitoring samples, or an empty array if no timestamp field
121
+ * is configured.
61
122
  */
62
123
  get timestamps(): number[];
63
124
  /**
64
- * Returns an array of durations (in milliseconds) between consecutive timestamps.
125
+ * Returns the time differences (in milliseconds) between consecutive
126
+ * timestamp values.
127
+ *
128
+ * Each duration is computed as:
129
+ *
130
+ * `durations[i] = timestamps[i] - timestamps[i - 1]`
65
131
  *
66
- * Each duration is calculated as:
67
- * timestamps[i] - timestamps[i - 1]
132
+ * If fewer than two timestamps are available, an empty array is
133
+ * returned.
68
134
  *
69
- * If there are fewer than two timestamps, an empty array is returned.
135
+ * @returns An array of durations representing the time between
136
+ * successive timestamp samples.
70
137
  */
71
138
  get durations(): number[];
72
139
  /**
73
- * Returns a full analysis of the durations between timestamps.
140
+ * Returns a statistical analysis of the measured timestamp durations.
74
141
  *
75
- * Uses `analyzeTimeDurations` to compute statistics such as:
76
- * - min, max, mean, median, standard deviation
77
- * - percentiles (p95, q1, q3)
78
- * - interquartile range (IQR)
79
- * - filtered durations and filtered statistics (outlier removal via IQR rule)
142
+ * The analysis is computed by {@link analyzeTimeDurations}, which
143
+ * includes a variety of metrics such as minimum, maximum, mean,
144
+ * median, standard deviation, percentiles, and interquartile range.
145
+ * It also provides filtered statistics based on outlier removal using
146
+ * the IQR method.
80
147
  *
81
- * @returns An object containing both raw and filtered statistics for the measured durations.
148
+ * @returns An object containing both raw and filtered duration
149
+ * statistics for the monitoring session.
82
150
  */
83
151
  get analysis(): {
84
152
  count: number;
@@ -109,17 +177,45 @@ export declare class DataMonitoring {
109
177
  };
110
178
  };
111
179
  /**
112
- * Clears the previously collected data.
180
+ * Clears all previously collected monitoring data.
181
+ *
182
+ * This resets the {@link data} array to an empty state. Call this
183
+ * method before {@link start} if you want to begin a new monitoring
184
+ * session with no existing samples.
113
185
  */
114
186
  clear(): void;
115
187
  /**
116
- * Starts monitoring and, if specified, collects data until `finalize$` emits a value.
188
+ * Starts a new monitoring session and returns an observable that emits
189
+ * device parameter values as they arrive.
190
+ *
191
+ * This method first calls {@link stop} to ensure any existing session is cleanly
192
+ * terminated. It then resets the internal state and, if `clear` is true,
193
+ * removes all previously collected data.
194
+ *
195
+ * The returned observable emits values until {@link stop} is called,
196
+ * at which point the internal {@link stopped} flag is set, causing the stream to
197
+ * complete on its next emission via `takeWhile()`. This mechanism ensures that
198
+ * all internal and external subscriptions are cleanly shut down, preventing
199
+ * resource leaks.
117
200
  *
118
- * NOTE: To receive and collect data, you must subscribe to the returned observable.
201
+ * If {@link collect} is enabled, each emitted value is also appended to the
202
+ * {@link data} array for later retrieval or analysis.
203
+ *
204
+ * @param clear - Whether to clear previously collected data in {@link data} before
205
+ * starting the monitoring session. Defaults to `false`.
206
+ * @returns An observable that emits arrays of parameter values until
207
+ * the monitoring is stopped or the source observable completes.
119
208
  */
120
- start(): Observable<ParameterValueType[]>;
209
+ start(clear?: boolean): Observable<ParameterValueType[]>;
121
210
  /**
122
- * Emits a value on `finalize$` to properly stop monitoring and complete the observable.
211
+ * Stops the active monitoring session and unsubscribes from the source observable.
212
+ *
213
+ * This method sets the internal stop flag, causing the observable created in {@link start}
214
+ * to complete on its next emission. If a subscription was created during `start()`,
215
+ * it is explicitly unsubscribed and cleared. This ensures that no monitoring pipeline
216
+ * remains active and prevents resource leaks when creating new `DataMonitoring` instances.
217
+ *
218
+ * Calling this method has no effect if monitoring is not currently active.
123
219
  */
124
220
  stop(): void;
125
221
  }
@@ -6,38 +6,85 @@ const device_parameter_1 = require("./device-parameter");
6
6
  const parameter_1 = require("./parameter");
7
7
  const util_1 = require("./util");
8
8
  /**
9
- * The DataMonitoring class tracks and collects device parameter values.
9
+ * Tracks and collects device parameter values over time.
10
10
  *
11
- * Unlike {@link MotionMasterClient#startMonitoring}, which returns an observable that never completes on its own,
12
- * this class provides a `stop()` method to complete the monitoring observable, enabling the use of operators like `toArray()` as intended.
11
+ * Unlike {@link MotionMasterClient#startMonitoring}, which returns an
12
+ * observable that does not complete on its own, this class provides
13
+ * explicit control over starting, stopping, and collecting monitoring
14
+ * data. It supports exporting the data in CSV format and provides
15
+ * statistical analysis of the sampling intervals.
13
16
  */
14
17
  class DataMonitoring {
18
+ /**
19
+ * Creates a new `DataMonitoring` instance for collecting device parameter values.
20
+ *
21
+ * @param client - The Motion Master client used to communicate with the device.
22
+ * @param ids - An array of device parameter IDs to monitor. Each ID can be a string
23
+ * or a tuple `[deviceRef, index, subindex]`.
24
+ * @param monitoringInterval - The interval, in milliseconds, at which parameter
25
+ * values should be sampled.
26
+ * @param config - Optional monitoring configuration, such as filters or buffering
27
+ * options.
28
+ */
15
29
  constructor(client, ids, monitoringInterval, config) {
16
30
  this.client = client;
17
31
  this.ids = ids;
18
32
  this.monitoringInterval = monitoringInterval;
19
33
  this.config = config;
20
34
  /**
21
- * The collected data.
35
+ * Stores the collected monitoring data.
22
36
  *
23
- * Use the `clear()` method before starting a new monitoring if you want to collect a fresh set of data.
37
+ * Each element of the outer array represents a single monitoring sample,
38
+ * which is an array of parameter values corresponding to {@link ids}.
39
+ * Use {@link clear} to reset this array before starting a new monitoring session.
24
40
  */
25
41
  this.data = [];
26
42
  /**
27
- * Besides emitting monitored data through the observable created by the {@link #start()} method,
28
- * an instance of this class will also collect data as it arrives.
43
+ * Determines whether incoming monitoring data should be collected.
44
+ *
45
+ * When `true`, each emitted value from the monitoring observable is
46
+ * appended to the {@link data} array. Set to `false` to receive data
47
+ * without storing it.
29
48
  */
30
49
  this.collect = true;
31
50
  /**
32
- * Emit a value to stop the ongoing monitoring.
51
+ * Internal flag indicating whether monitoring has been stopped.
52
+ *
53
+ * Used by {@link start} and {@link stop} to control the observable pipeline.
54
+ * When `true`, the observable returned by `start` completes on the next emission.
33
55
  */
34
- this.finalize$ = new rxjs_1.Subject();
56
+ this.stopped = false;
35
57
  }
36
58
  /**
37
- * Generates a CSV header string using the provided device parameter IDs.
59
+ * Indicates whether monitoring has been stopped.
60
+ *
61
+ * @returns `true` if {@link stop} has been called and the internal
62
+ * stop flag is set, otherwise `false`.
63
+ */
64
+ get isStopped() {
65
+ return this.stopped;
66
+ }
67
+ /**
68
+ * Indicates whether monitoring is currently active.
69
+ *
70
+ * @returns `true` if monitoring has been started via {@link start} and
71
+ * has not yet been stopped, otherwise `false`.
72
+ */
73
+ get isStarted() {
74
+ return !this.stopped;
75
+ }
76
+ /**
77
+ * Generates a CSV header string from the monitored parameter IDs.
78
+ *
79
+ * Each parameter ID in {@link ids} is converted to a string representation
80
+ * using {@link makeParameterId}. String IDs are parsed with
81
+ * {@link splitDeviceParameterId}, while tuple IDs `[deviceRef, index, subindex]`
82
+ * are converted directly.
38
83
  *
39
84
  * @example
40
- * 0x6040:00,0x6060:00,0x6071:00,0x607A:00,0x60FF:00
85
+ * // Possible output: "0x6040:00,0x6060:00,0x6071:00,0x607A:00,0x60FF:00"
86
+ *
87
+ * @returns A comma-separated string representing the header for CSV export.
41
88
  */
42
89
  get header() {
43
90
  return this.ids
@@ -53,21 +100,28 @@ class DataMonitoring {
53
100
  .join(',');
54
101
  }
55
102
  /**
56
- * Converts the collected data to CSV format.
103
+ * Converts the collected monitoring data into CSV (Comma-Separated Values) format.
104
+ *
105
+ * The first row contains the CSV header generated from {@link header},
106
+ * followed by one row per collected sample in {@link data}. Each row
107
+ * represents the parameter values at a given monitoring interval.
108
+ *
109
+ * @returns A string representing the collected data in CSV format,
110
+ * ready for export or analysis.
57
111
  */
58
112
  get csv() {
59
113
  const rows = this.data.map((values) => values.join(','));
60
114
  return [this.header, ...rows].join('\n');
61
115
  }
62
116
  /**
63
- * Finds the index of the timestamp field in the `ids` array.
117
+ * Finds the zero-based index of the timestamp field in the monitored parameters.
64
118
  *
65
- * The timestamp field is identified by object 0x20F0 and subindex 0x00.
66
- * IDs may be strings (parsed using `splitDeviceParameterId`) or tuples
67
- * in the form `[deviceRef, index, subindex]`.
119
+ * The timestamp field is identified as object 0x20F0 with subindex 0x00.
120
+ * Parameter IDs in {@link ids} may be strings (parsed using
121
+ * {@link splitDeviceParameterId}) or tuples in the form `[deviceRef, index, subindex]`.
68
122
  *
69
- * @returns The zero-based index of the timestamp field in `ids`,
70
- * or `-1` if no timestamp entry exists.
123
+ * @returns The index of the timestamp entry in {@link ids}, or `-1` if
124
+ * no timestamp field exists.
71
125
  */
72
126
  get timestampIndex() {
73
127
  const indexOfTimestamp = this.ids.findIndex((id) => {
@@ -82,12 +136,16 @@ class DataMonitoring {
82
136
  return indexOfTimestamp;
83
137
  }
84
138
  /**
85
- * Extracts the timestamp column from the monitoring data.
139
+ * Extracts the timestamp values from the collected monitoring data.
86
140
  *
87
- * Each entry of `data` contains an array of values aligned with `ids`.
88
- * If no timestamp index exists, an empty array is returned.
141
+ * The timestamp column is determined by {@link timestampIndex}, which
142
+ * locates the entry corresponding to object 0x20F0:00 in the monitored
143
+ * parameter list. If no timestamp index is found, an empty array is
144
+ * returned.
89
145
  *
90
- * @returns An array of numeric timestamps extracted from the monitoring data.
146
+ * @returns An array of numeric timestamps aligned with the collected
147
+ * monitoring samples, or an empty array if no timestamp field
148
+ * is configured.
91
149
  */
92
150
  get timestamps() {
93
151
  if (this.timestampIndex === -1) {
@@ -96,12 +154,18 @@ class DataMonitoring {
96
154
  return this.data.map((values) => values[this.timestampIndex]);
97
155
  }
98
156
  /**
99
- * Returns an array of durations (in milliseconds) between consecutive timestamps.
157
+ * Returns the time differences (in milliseconds) between consecutive
158
+ * timestamp values.
159
+ *
160
+ * Each duration is computed as:
161
+ *
162
+ * `durations[i] = timestamps[i] - timestamps[i - 1]`
100
163
  *
101
- * Each duration is calculated as:
102
- * timestamps[i] - timestamps[i - 1]
164
+ * If fewer than two timestamps are available, an empty array is
165
+ * returned.
103
166
  *
104
- * If there are fewer than two timestamps, an empty array is returned.
167
+ * @returns An array of durations representing the time between
168
+ * successive timestamp samples.
105
169
  */
106
170
  get durations() {
107
171
  if (this.timestamps.length < 2) {
@@ -114,45 +178,98 @@ class DataMonitoring {
114
178
  return durations;
115
179
  }
116
180
  /**
117
- * Returns a full analysis of the durations between timestamps.
181
+ * Returns a statistical analysis of the measured timestamp durations.
118
182
  *
119
- * Uses `analyzeTimeDurations` to compute statistics such as:
120
- * - min, max, mean, median, standard deviation
121
- * - percentiles (p95, q1, q3)
122
- * - interquartile range (IQR)
123
- * - filtered durations and filtered statistics (outlier removal via IQR rule)
183
+ * The analysis is computed by {@link analyzeTimeDurations}, which
184
+ * includes a variety of metrics such as minimum, maximum, mean,
185
+ * median, standard deviation, percentiles, and interquartile range.
186
+ * It also provides filtered statistics based on outlier removal using
187
+ * the IQR method.
124
188
  *
125
- * @returns An object containing both raw and filtered statistics for the measured durations.
189
+ * @returns An object containing both raw and filtered duration
190
+ * statistics for the monitoring session.
126
191
  */
127
192
  get analysis() {
128
193
  return (0, util_1.analyzeTimeDurations)(this.durations);
129
194
  }
130
195
  /**
131
- * Clears the previously collected data.
196
+ * Clears all previously collected monitoring data.
197
+ *
198
+ * This resets the {@link data} array to an empty state. Call this
199
+ * method before {@link start} if you want to begin a new monitoring
200
+ * session with no existing samples.
132
201
  */
133
202
  clear() {
134
203
  this.data.length = 0;
135
204
  }
136
205
  /**
137
- * Starts monitoring and, if specified, collects data until `finalize$` emits a value.
206
+ * Starts a new monitoring session and returns an observable that emits
207
+ * device parameter values as they arrive.
208
+ *
209
+ * This method first calls {@link stop} to ensure any existing session is cleanly
210
+ * terminated. It then resets the internal state and, if `clear` is true,
211
+ * removes all previously collected data.
212
+ *
213
+ * The returned observable emits values until {@link stop} is called,
214
+ * at which point the internal {@link stopped} flag is set, causing the stream to
215
+ * complete on its next emission via `takeWhile()`. This mechanism ensures that
216
+ * all internal and external subscriptions are cleanly shut down, preventing
217
+ * resource leaks.
138
218
  *
139
- * NOTE: To receive and collect data, you must subscribe to the returned observable.
219
+ * If {@link collect} is enabled, each emitted value is also appended to the
220
+ * {@link data} array for later retrieval or analysis.
221
+ *
222
+ * @param clear - Whether to clear previously collected data in {@link data} before
223
+ * starting the monitoring session. Defaults to `false`.
224
+ * @returns An observable that emits arrays of parameter values until
225
+ * the monitoring is stopped or the source observable completes.
140
226
  */
141
- start() {
142
- if (this.collect) {
143
- return this.client.startMonitoring(this.ids, this.monitoringInterval, this.config, 5000).pipe((0, rxjs_1.tap)((values) => this.data.push(values)), (0, rxjs_1.takeUntil)(this.finalize$));
144
- }
145
- else {
146
- return this.client
147
- .startMonitoring(this.ids, this.monitoringInterval, this.config, 5000)
148
- .pipe((0, rxjs_1.takeUntil)(this.finalize$));
149
- }
227
+ start(clear = false) {
228
+ this.stop(); // Ensure any previous monitoring is stopped
229
+ this.stopped = false;
230
+ if (clear)
231
+ this.clear();
232
+ const source$ = this.client.startMonitoring(this.ids, this.monitoringInterval, this.config, 5000);
233
+ const monitored$ = this.collect
234
+ ? source$.pipe((0, rxjs_1.tap)((values) => this.data.push(values)), (0, rxjs_1.takeWhile)(() => !this.stopped))
235
+ : source$.pipe((0, rxjs_1.takeWhile)(() => !this.stopped));
236
+ // Defensive cleanup: Guarantees that the subscription reference is cleared
237
+ // and the state flag (this.stopped) is set to true on *any* stream
238
+ // completion, protecting against unexpected termination of the source observable.
239
+ this.subscription = monitored$.subscribe({
240
+ complete: () => {
241
+ var _a;
242
+ (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
243
+ this.subscription = undefined;
244
+ this.stopped = true;
245
+ },
246
+ error: (err) => {
247
+ var _a;
248
+ console.error('DataMonitoring stream terminated by error:', err);
249
+ (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
250
+ this.subscription = undefined;
251
+ this.stopped = true;
252
+ },
253
+ });
254
+ // Return observable for external subscription
255
+ return monitored$;
150
256
  }
151
257
  /**
152
- * Emits a value on `finalize$` to properly stop monitoring and complete the observable.
258
+ * Stops the active monitoring session and unsubscribes from the source observable.
259
+ *
260
+ * This method sets the internal stop flag, causing the observable created in {@link start}
261
+ * to complete on its next emission. If a subscription was created during `start()`,
262
+ * it is explicitly unsubscribed and cleared. This ensures that no monitoring pipeline
263
+ * remains active and prevents resource leaks when creating new `DataMonitoring` instances.
264
+ *
265
+ * Calling this method has no effect if monitoring is not currently active.
153
266
  */
154
267
  stop() {
155
- this.finalize$.next();
268
+ this.stopped = true;
269
+ if (this.subscription) {
270
+ this.subscription.unsubscribe();
271
+ this.subscription = undefined;
272
+ }
156
273
  }
157
274
  }
158
275
  exports.DataMonitoring = DataMonitoring;
@@ -1 +1 @@
1
- {"version":3,"file":"data-monitoring.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/data-monitoring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-monitoring.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/data-monitoring.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Subject } from 'rxjs';
1
+ import { Subject, Subscription } from 'rxjs';
2
2
  import { MotionMasterClient } from './motion-master-client';
3
3
  import { ChirpSignalOptions } from './os-command';
4
4
  import { DeviceRef } from './types';
@@ -47,6 +47,10 @@ export declare class LimitedRangeSystemIdentification {
47
47
  * Indicates whether the system identification procedure is currently running.
48
48
  */
49
49
  isRunning: boolean;
50
+ /**
51
+ * Subscription for data monitoring during the procedure.
52
+ */
53
+ dataMonitoringSubscription?: Subscription;
50
54
  /**
51
55
  * Creates a new instance of the limited-range system identification routine.
52
56
  *
@@ -73,6 +73,7 @@ class LimitedRangeSystemIdentification {
73
73
  * @throws Will throw an error if any of the device requests fail.
74
74
  */
75
75
  start() {
76
+ var _a, _b;
76
77
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
77
78
  // Small delay to ensure subscribers to notifications$ are ready
78
79
  yield (0, util_1.resolveAfter)(1);
@@ -107,6 +108,7 @@ class LimitedRangeSystemIdentification {
107
108
  [this.deviceRef, 0x6064, 0x00], // Position actual value
108
109
  ], 1000 // 1 ms interval
109
110
  );
111
+ dataMonitoring.collect = false;
110
112
  let positionFeedbackFilterType;
111
113
  let pKp;
112
114
  let pKi;
@@ -253,9 +255,8 @@ class LimitedRangeSystemIdentification {
253
255
  // Stop data monitoring
254
256
  this.notifications$.next('Stopping data monitoring...');
255
257
  dataMonitoring.stop();
258
+ (_a = this.dataMonitoringSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
256
259
  this.notifications$.next('Data monitoring stopped.');
257
- const analysis = dataMonitoring.analysis;
258
- this.notifications$.next(`Data monitoring analysis: ${JSON.stringify(analysis.filteredStats, null, 2)}`);
259
260
  // Start the system identification procedure without the chirp signal in order to only compute the plant model
260
261
  this.notifications$.next('Starting system identification procedure on Motion Master to compute plant model...');
261
262
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(this.deviceRef);
@@ -273,6 +274,7 @@ class LimitedRangeSystemIdentification {
273
274
  // Stop data monitoring
274
275
  this.notifications$.next('Stopping data monitoring...');
275
276
  dataMonitoring.stop();
277
+ (_b = this.dataMonitoringSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();
276
278
  this.notifications$.next('Data monitoring stopped.');
277
279
  // Ensure the drive is in the "Switch On Disabled" after the procedure
278
280
  this.notifications$.next('Transitioning to "Switch On Disabled" state...');
@@ -1 +1 @@
1
- {"version":3,"file":"limited-range-system-identification.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/limited-range-system-identification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"limited-range-system-identification.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/limited-range-system-identification.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Observable, UnaryFunction } from 'rxjs';
1
+ import { Observable, UnaryFunction, MonoTypeOperatorFunction } from 'rxjs';
2
2
  import { IMotionMasterMessage, MotionMasterMessage, ParameterValueType, StatusKey } from './types';
3
3
  import { DeviceParameter } from './device-parameter';
4
4
  import { MotionMasterReqResClient } from './motion-master-req-res-client';
@@ -18,3 +18,4 @@ export declare function selectMotionMasterMessageByTopic<T>(topic: string): Unar
18
18
  export declare function selectMotionMasterMessageStatusByKey<T>(key: keyof MotionMasterMessage.IStatus): UnaryFunction<Observable<IMotionMasterMessage>, Observable<T>>;
19
19
  export declare function mapMonitoringParameterValuesStatusMessageToParameterValues(): UnaryFunction<Observable<IMotionMasterMessage>, Observable<ParameterValueType[]>>;
20
20
  export declare function mapMonitoringParameterValuesStatusMessageToDeviceParameters(request: MotionMasterReqResClient): UnaryFunction<Observable<IMotionMasterMessage>, Observable<DeviceParameter[]>>;
21
+ export declare function takeUntilCompleteOrError<T>(notifier$: Observable<any>): MonoTypeOperatorFunction<T>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mapMonitoringParameterValuesStatusMessageToDeviceParameters = exports.mapMonitoringParameterValuesStatusMessageToParameterValues = exports.selectMotionMasterMessageStatusByKey = exports.selectMotionMasterMessageByTopic = exports.transformMotionMasterMessageToStatus = exports.extendStatus = exports.selectMotionMasterMessageStatusByMessageId = void 0;
3
+ exports.takeUntilCompleteOrError = exports.mapMonitoringParameterValuesStatusMessageToDeviceParameters = exports.mapMonitoringParameterValuesStatusMessageToParameterValues = exports.selectMotionMasterMessageStatusByKey = exports.selectMotionMasterMessageByTopic = exports.transformMotionMasterMessageToStatus = exports.extendStatus = exports.selectMotionMasterMessageStatusByMessageId = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  const request_status_resolver_1 = require("./request-status-resolver");
6
6
  const parameter_1 = require("./parameter");
@@ -80,4 +80,12 @@ function mapMonitoringParameterValuesStatusMessageToDeviceParameters(request) {
80
80
  }));
81
81
  }
82
82
  exports.mapMonitoringParameterValuesStatusMessageToDeviceParameters = mapMonitoringParameterValuesStatusMessageToDeviceParameters;
83
+ function takeUntilCompleteOrError(notifier$) {
84
+ // Transform notifier to emit a value on complete or error
85
+ const stop$ = notifier$.pipe((0, rxjs_1.materialize)(), // Convert next/error/complete to Notification objects
86
+ (0, rxjs_1.filter)((n) => n.kind === 'C' || n.kind === 'E') // Only react to complete or error
87
+ );
88
+ return (0, rxjs_1.takeUntil)(stop$);
89
+ }
90
+ exports.takeUntilCompleteOrError = takeUntilCompleteOrError;
83
91
  //# sourceMappingURL=operators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"operators.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/operators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operators.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/operators.ts"],"names":[],"mappings":";;;AAAA,+BAac;AACd,uEAAkE;AAIlE,2CAAiE;AAEjE,SAAgB,0CAA0C,CAAI,GAAc,EAAE,EAAW;IACvF,OAAO,IAAA,WAAI,EACT,IAAA,aAAM,EAAC,CAAC,OAA6B,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAC5D,IAAA,UAAG,EAAC,CAAC,OAAO,EAAE,EAAE;;QACd,gHAAgH;QAChH,kHAAkH;QAClH,IAAI,CAAA,MAAA,OAAO,CAAC,MAAM,0CAAE,WAAW,KAAI,GAAG,KAAK,aAAa,EAAE;YACxD,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE;gBACpC,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAA,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,mCAAI,EAAE,EAAE,CAAC,CAAC;aAC/F;iBAAM;gBACL,MAAM,IAAI,KAAK,CACb,8DAA8D,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAC5G,CAAC;aACH;SACF;QACD,OAAO,MAAA,OAAO,CAAC,MAAM,0CAAG,GAAG,CAAM,CAAC;IACpC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAlBD,gGAkBC;AAED,SAAgB,YAAY,CAAI,IAAiD;IAC/E,OAAO,IAAA,WAAI,EACT,IAAA,UAAG,EAAC,CAAC,MAAS,EAAE,EAAE;;QAChB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QACtC,MAAM,OAAO,GAAG,MAAA,+CAAqB,CAAC,SAAS,CAAC,gGAAM,MAAM,CAAC,CAAC;QAC9D,uCAAY,MAAM,KAAE,SAAS,EAAE,OAAO,IAAG;IAC3C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AARD,oCAQC;AAED,SAAgB,oCAAoC,CAClD,SAAoB,EACpB,cAAsB,EACtB,SAAiB;IAEjB,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,0BAA0B,cAAc,iBAAiB,SAAS,EAAE,CAAC,CAAC;KACvF;IAED,OAAO,IAAA,WAAI,EACT,0CAA0C,CAAI,SAAS,EAAE,SAAS,CAAC,EACnE,IAAA,cAAO,EAAC,cAAc,CAAC,EACvB,YAAY,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EACtC,IAAA,gBAAS,EAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,IAAI,CAAC,CAC3F,CAAC;AACJ,CAAC;AAfD,oFAeC;AAED,SAAgB,gCAAgC,CAAI,KAAa;IAC/D,OAAO,IAAA,WAAI,EACT,IAAA,aAAM,EAAC,CAAC,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,EACzC,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CACxB,CAAC;AACJ,CAAC;AALD,4EAKC;AAED,SAAgB,oCAAoC,CAAI,GAAsC;IAC5F,OAAO,IAAA,WAAI,EACT,IAAA,aAAM,EAAC,CAAC,OAA6B,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EACpF,IAAA,UAAG,EAAC,CAAC,OAAO,EAAE,EAAE,WAAC,OAAA,MAAA,OAAO,CAAC,MAAM,0CAAG,GAAG,CAAM,CAAA,EAAA,CAAC,CAC7C,CAAC;AACJ,CAAC;AALD,oFAKC;AAED,SAAgB,0DAA0D;IAIxE,OAAO,IAAA,WAAI,EACT,IAAA,UAAG,EAAC,CAAC,OAA6B,EAAE,EAAE;;QACpC,IAAI,MAAA,OAAO,CAAC,MAAM,0CAAE,yBAAyB,EAAE;YAC7C,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC;YAC3E,IAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,eAAe,EAAE;gBAC1C,OAAO,qBAAqB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAA,6BAAiB,EAAC,cAAc,CAAC,CAAC,CAAC;aACzG;SACF;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAfD,gIAeC;AAED,SAAgB,2DAA2D,CACzE,OAAiC;IAEjC,OAAO,IAAA,WAAI,EACT,IAAA,eAAQ,EAAC,CAAC,OAA6B,EAAE,EAAE;;QACzC,MAAM,eAAe,GAAG,MAAA,MAAA,MAAA,OAAO,CAAC,MAAM,0CAAE,yBAAyB,0CAAE,qBAAqB,0CAAE,eAAe,CAAC;QAE1G,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO,IAAA,SAAE,EAAC,EAAE,CAAC,CAAC;SACf;QAED,MAAM,aAAa,GAAG,MAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,yBAAyB,0CAAE,qBAAqB,0CAAE,aAAc,CAAC;QAExG,OAAO,OAAO,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC,IAAI,CAC9D,IAAA,UAAG,EAAC,CAAC,OAAO,EAAE,EAAE;YACd,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;;gBACvC,MAAM,KAAK,GAAG,MAAA,SAAS,CAAC,KAAK,mCAAI,MAAM,CAAC;gBACxC,MAAM,QAAQ,GAAG,MAAA,SAAS,CAAC,QAAQ,mCAAI,IAAI,CAAC;gBAC5C,MAAM,EAAE,GAAG,IAAA,2BAAe,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAE5C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAEtC,MAAM,KAAK,GAAG,IAAA,6BAAiB,EAAC,SAAS,CAAC,CAAC;gBAE3C,OAAO,8BAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,IAAK,aAAa,KAAE,KAAK,GAAqB,CAAC;YAC7E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AA9BD,kIA8BC;AAED,SAAgB,wBAAwB,CAAI,SAA0B;IACpE,0DAA0D;IAC1D,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAC1B,IAAA,kBAAW,GAAE,EAAE,sDAAsD;IACrE,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,kCAAkC;KACnF,CAAC;IAEF,OAAO,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AARD,4DAQC"}
package/src/lib/util.d.ts CHANGED
@@ -552,3 +552,39 @@ export declare function analyzeTimeDurations(durations: number[]): {
552
552
  iqr: number;
553
553
  };
554
554
  };
555
+ /**
556
+ * Creates a function to normalize unsigned counter timestamps relative to an initial value,
557
+ * correctly handling wrap-around for counters with any bit width from 1 to 32 bits.
558
+ *
559
+ * This is useful when timestamps from a hardware or software counter may wrap around,
560
+ * and you want strictly increasing normalized timestamps starting from zero.
561
+ *
562
+ * @param initial - The first timestamp received. This value will normalize to 0.
563
+ * @param bits - The bit width of the counter (1..32). Determines the maximum value before wrap-around.
564
+ *
565
+ * @returns A function that takes a timestamp and returns a normalized, strictly increasing timestamp.
566
+ *
567
+ * @example
568
+ * // 8-bit counter
569
+ * const normalize8 = makeNormalizeTimestampFn(100, 8);
570
+ * console.log(normalize8(100)); // 0
571
+ * console.log(normalize8(255)); // 155
572
+ * console.log(normalize8(3)); // 159
573
+ *
574
+ * @example
575
+ * // 16-bit counter
576
+ * const normalize16 = makeNormalizeTimestampFn(1000, 16);
577
+ * console.log(normalize16(1000)); // 0
578
+ * console.log(normalize16(65535)); // 64535
579
+ * console.log(normalize16(10)); // 65546
580
+ *
581
+ * @example
582
+ * // 32-bit counter (microseconds)
583
+ * const normalize32 = makeNormalizeTimestampFn(100, 32);
584
+ * console.log(normalize32(100)); // 0
585
+ * console.log(normalize32(4294967295)); // 4294967195
586
+ * console.log(normalize32(3)); // 4294967299
587
+ *
588
+ * @throws {Error} If bits is not in the range 1..32
589
+ */
590
+ export declare function makeNormalizeTimestampFn(initial: number, bits: number): (timestamp: number) => number;
package/src/lib/util.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.analyzeTimeDurations = exports.withTimeDifference = exports.fromQ = exports.convertIpv4 = exports.convertValueToHexString = exports.hexDecValueToNumber = exports.convertCTypeToStructFormatCharacter = exports.mapByProperty = exports.groupByProperty = exports.uniqueItems = exports.mergeUint8Arrays = exports.parseUnitValue = exports.isElectronContext = exports.isElectronApp = exports.convertBlobToBase64 = exports.toFixedFormat = exports.updateBit = exports.clearBit = exports.setBit = exports.isBitOn = exports.getBit = exports.setBitHigh = exports.setBitLow = exports.camelCaseToWords = exports.findDuplicates = exports.getMapKeyByValue = exports.createRandomColor = exports.convertRgbToLedColor = exports.resolveAfter = exports.decodeTextContent = exports.convertMotionMasterMessageToLoggerContext = exports.createPlainObjectFromMotionMasterMessage = exports.diffSystemLogContents = exports.parseSystemLogContent = exports.parseSystemLogLine = void 0;
3
+ exports.makeNormalizeTimestampFn = exports.analyzeTimeDurations = exports.withTimeDifference = exports.fromQ = exports.convertIpv4 = exports.convertValueToHexString = exports.hexDecValueToNumber = exports.convertCTypeToStructFormatCharacter = exports.mapByProperty = exports.groupByProperty = exports.uniqueItems = exports.mergeUint8Arrays = exports.parseUnitValue = exports.isElectronContext = exports.isElectronApp = exports.convertBlobToBase64 = exports.toFixedFormat = exports.updateBit = exports.clearBit = exports.setBit = exports.isBitOn = exports.getBit = exports.setBitHigh = exports.setBitLow = exports.camelCaseToWords = exports.findDuplicates = exports.getMapKeyByValue = exports.createRandomColor = exports.convertRgbToLedColor = exports.resolveAfter = exports.decodeTextContent = exports.convertMotionMasterMessageToLoggerContext = exports.createPlainObjectFromMotionMasterMessage = exports.diffSystemLogContents = exports.parseSystemLogContent = exports.parseSystemLogLine = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const rxjs_1 = require("rxjs");
6
6
  const types_1 = require("./types");
@@ -945,4 +945,57 @@ function analyzeTimeDurations(durations) {
945
945
  };
946
946
  }
947
947
  exports.analyzeTimeDurations = analyzeTimeDurations;
948
+ /**
949
+ * Creates a function to normalize unsigned counter timestamps relative to an initial value,
950
+ * correctly handling wrap-around for counters with any bit width from 1 to 32 bits.
951
+ *
952
+ * This is useful when timestamps from a hardware or software counter may wrap around,
953
+ * and you want strictly increasing normalized timestamps starting from zero.
954
+ *
955
+ * @param initial - The first timestamp received. This value will normalize to 0.
956
+ * @param bits - The bit width of the counter (1..32). Determines the maximum value before wrap-around.
957
+ *
958
+ * @returns A function that takes a timestamp and returns a normalized, strictly increasing timestamp.
959
+ *
960
+ * @example
961
+ * // 8-bit counter
962
+ * const normalize8 = makeNormalizeTimestampFn(100, 8);
963
+ * console.log(normalize8(100)); // 0
964
+ * console.log(normalize8(255)); // 155
965
+ * console.log(normalize8(3)); // 159
966
+ *
967
+ * @example
968
+ * // 16-bit counter
969
+ * const normalize16 = makeNormalizeTimestampFn(1000, 16);
970
+ * console.log(normalize16(1000)); // 0
971
+ * console.log(normalize16(65535)); // 64535
972
+ * console.log(normalize16(10)); // 65546
973
+ *
974
+ * @example
975
+ * // 32-bit counter (microseconds)
976
+ * const normalize32 = makeNormalizeTimestampFn(100, 32);
977
+ * console.log(normalize32(100)); // 0
978
+ * console.log(normalize32(4294967295)); // 4294967195
979
+ * console.log(normalize32(3)); // 4294967299
980
+ *
981
+ * @throws {Error} If bits is not in the range 1..32
982
+ */
983
+ function makeNormalizeTimestampFn(initial, bits) {
984
+ if (bits < 1 || bits > 32) {
985
+ throw new Error('Bits must be between 1 and 32.');
986
+ }
987
+ const MAX = Math.pow(2, bits) - 1;
988
+ const MODULO = MAX + 1;
989
+ let lastNormalized = -1;
990
+ return (timestamp) => {
991
+ let normalized = (timestamp - initial + MODULO) % MODULO;
992
+ if (normalized <= lastNormalized) {
993
+ const wraps = Math.floor((lastNormalized - normalized) / MODULO) + 1;
994
+ normalized += wraps * MODULO;
995
+ }
996
+ lastNormalized = normalized;
997
+ return normalized;
998
+ };
999
+ }
1000
+ exports.makeNormalizeTimestampFn = makeNormalizeTimestampFn;
948
1001
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/util.ts"],"names":[],"mappings":"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"}