motion-master-client 0.0.335 → 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.335",
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 { BehaviorSubject, 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';
@@ -48,9 +48,9 @@ export declare class LimitedRangeSystemIdentification {
48
48
  */
49
49
  isRunning: boolean;
50
50
  /**
51
- * Emits `true` when the chirp signal portion of the procedure has completed.
51
+ * Subscription for data monitoring during the procedure.
52
52
  */
53
- chirpSignalCompleted$: BehaviorSubject<boolean>;
53
+ dataMonitoringSubscription?: Subscription;
54
54
  /**
55
55
  * Creates a new instance of the limited-range system identification routine.
56
56
  *
@@ -56,10 +56,6 @@ class LimitedRangeSystemIdentification {
56
56
  * Indicates whether the system identification procedure is currently running.
57
57
  */
58
58
  this.isRunning = false;
59
- /**
60
- * Emits `true` when the chirp signal portion of the procedure has completed.
61
- */
62
- this.chirpSignalCompleted$ = new rxjs_1.BehaviorSubject(false);
63
59
  }
64
60
  /**
65
61
  * Starts the limited-range system identification procedure.
@@ -77,6 +73,7 @@ class LimitedRangeSystemIdentification {
77
73
  * @throws Will throw an error if any of the device requests fail.
78
74
  */
79
75
  start() {
76
+ var _a, _b;
80
77
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
81
78
  // Small delay to ensure subscribers to notifications$ are ready
82
79
  yield (0, util_1.resolveAfter)(1);
@@ -111,6 +108,7 @@ class LimitedRangeSystemIdentification {
111
108
  [this.deviceRef, 0x6064, 0x00], // Position actual value
112
109
  ], 1000 // 1 ms interval
113
110
  );
111
+ dataMonitoring.collect = false;
114
112
  let positionFeedbackFilterType;
115
113
  let pKp;
116
114
  let pKi;
@@ -196,28 +194,24 @@ class LimitedRangeSystemIdentification {
196
194
  this.notifications$.next('On-demand parameters update forced.');
197
195
  // Variable to track if a fault occurred during the procedure
198
196
  let hasFault = false;
199
- // Start data monitoring for position actual value (0x6064:00) and update Kp based on position error
200
- this.notifications$.next('Starting data monitoring for position actual value...');
201
- const posRef = yield this.client.request.upload(this.deviceRef, 0x6064, 0x00);
202
- dataMonitoring.start().subscribe();
203
- this.notifications$.next('Data monitoring started.');
197
+ // Previous Kp value to minimize downloads
204
198
  let prevKp = 0;
205
- // Reset chirp signal completion status
206
- this.chirpSignalCompleted$.next(false);
207
- (0, rxjs_1.interval)(1)
208
- .pipe((0, rxjs_1.takeWhile)(() => this.isRunning && !hasFault && !this.chirpSignalCompleted$.getValue()),
209
- // exhaustMap ignores new emissions until the previous observable completes
210
- (0, rxjs_1.exhaustMap)(() => {
211
- // If no data has been collected yet, skip this iteration
212
- if (dataMonitoring.data.length === 0) {
213
- return rxjs_1.EMPTY;
214
- }
215
- // Get the latest monitored values
216
- const values = dataMonitoring.data[dataMonitoring.data.length - 1];
217
- // Extract the statusword and determine the CiA 402 state
199
+ // Get the reference position before starting data monitoring
200
+ this.notifications$.next('Retrieving reference position...');
201
+ const posRef = yield this.client.request.upload(this.deviceRef, 0x6064, 0x00);
202
+ this.notifications$.next(`Reference position: ${posRef}`);
203
+ // Start data monitoring for position actual value (0x6064:00) and update Kp based on position error
204
+ this.notifications$.next('Starting data monitoring and updating Kp based on position error...');
205
+ dataMonitoring
206
+ .start()
207
+ .pipe(
208
+ // Continue while the procedure is running and no fault has occurred
209
+ (0, rxjs_1.takeWhile)(() => this.isRunning && !hasFault),
210
+ // Convert each emitted actual position into a download request to update the position loop Kp,
211
+ // ignoring new emissions until the previous request completes
212
+ (0, rxjs_1.exhaustMap)((values) => {
218
213
  const statusword = values[1];
219
214
  const cia402State = (0, cia402_1.getCia402State)(statusword);
220
- // Update Kp only if the drive is in OPERATION_ENABLED state
221
215
  if (cia402State === cia402_1.Cia402State.OPERATION_ENABLED) {
222
216
  const positionActualValue = values[2];
223
217
  const e = posRef - positionActualValue;
@@ -231,11 +225,7 @@ class LimitedRangeSystemIdentification {
231
225
  // Update Kp only if it has changed to minimize downloads
232
226
  if (kp !== prevKp) {
233
227
  prevKp = kp;
234
- // NOTE: We're intentionally not awaiting this promise because the download
235
- // call to receive the message can currently take ~10 ms, which would noticeably
236
- // slow down the update rate. This is a temporary workaround until Motion Master
237
- // improves the call performance.
238
- this.client.request.download(this.deviceRef, 0x2012, 0x01, kp);
228
+ return (0, rxjs_1.from)(this.client.request.download(this.deviceRef, 0x2012, 0x01, kp));
239
229
  }
240
230
  }
241
231
  else if ((0, cia402_1.getCia402State)(statusword) === cia402_1.Cia402State.FAULT_REACTION_ACTIVE ||
@@ -246,9 +236,10 @@ class LimitedRangeSystemIdentification {
246
236
  }))
247
237
  .subscribe({
248
238
  complete: () => {
249
- this.notifications$.next('Kp updates based on position error completed.');
239
+ this.notifications$.next('Data monitoring and Kp updating have stopped.');
250
240
  },
251
241
  });
242
+ this.notifications$.next('Data monitoring started.');
252
243
  // Read the current position and set it as the target position to prevent sudden movement
253
244
  this.notifications$.next('Setting current position as target position...');
254
245
  const positionActualValue = yield this.client.request.upload(this.deviceRef, 0x6064, 0x00);
@@ -257,7 +248,6 @@ class LimitedRangeSystemIdentification {
257
248
  // Run the chirp signal on the device
258
249
  this.notifications$.next('Running the chirp signal...');
259
250
  yield (0, rxjs_1.lastValueFrom)(this.client.request.runChirpSignal(this.deviceRef, this.options));
260
- this.chirpSignalCompleted$.next(true);
261
251
  this.notifications$.next('Chirp signal procedure completed.');
262
252
  if (hasFault) {
263
253
  throw new Error('Device entered FAULT state during chirp signal execution.');
@@ -265,9 +255,8 @@ class LimitedRangeSystemIdentification {
265
255
  // Stop data monitoring
266
256
  this.notifications$.next('Stopping data monitoring...');
267
257
  dataMonitoring.stop();
258
+ (_a = this.dataMonitoringSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
268
259
  this.notifications$.next('Data monitoring stopped.');
269
- const analysis = dataMonitoring.analysis;
270
- this.notifications$.next(`Data monitoring analysis: ${JSON.stringify(analysis.filteredStats, null, 2)}`);
271
260
  // Start the system identification procedure without the chirp signal in order to only compute the plant model
272
261
  this.notifications$.next('Starting system identification procedure on Motion Master to compute plant model...');
273
262
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(this.deviceRef);
@@ -282,11 +271,10 @@ class LimitedRangeSystemIdentification {
282
271
  finally {
283
272
  // Mark the procedure as not running
284
273
  this.isRunning = false;
285
- // Notify that the chirp signal has completed (in case of early termination)
286
- this.chirpSignalCompleted$.next(true);
287
274
  // Stop data monitoring
288
275
  this.notifications$.next('Stopping data monitoring...');
289
276
  dataMonitoring.stop();
277
+ (_b = this.dataMonitoringSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();
290
278
  this.notifications$.next('Data monitoring stopped.');
291
279
  // Ensure the drive is in the "Switch On Disabled" after the procedure
292
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":"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"}
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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"}