motion-master-client 0.0.377 → 0.0.379

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/src/api.js CHANGED
@@ -114,8 +114,8 @@ const asyncHandler = (fn) => (req, res, next) => tslib_1.__awaiter(void 0, void
114
114
  app.get('/api/version', (_req, res) => {
115
115
  res.send({ version: package_json_1.default.version });
116
116
  });
117
- app.get('/api/connect/:hostname?', (req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
118
- var _b, _c;
117
+ app.get('/api/connect/config', (req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
118
+ var _b, _c, _d, _e, _f, _g;
119
119
  const requestTimeout = parseInt(((_b = req.query['request-timeout']) !== null && _b !== void 0 ? _b : '10000'));
120
120
  if (client) {
121
121
  res.status(409).send({
@@ -123,7 +123,40 @@ app.get('/api/connect/:hostname?', (req, res) => tslib_1.__awaiter(void 0, void
123
123
  });
124
124
  return;
125
125
  }
126
- const hostname = (_c = req.params['hostname']) !== null && _c !== void 0 ? _c : '127.0.0.1';
126
+ const hostname = ((_c = req.query['hostname']) !== null && _c !== void 0 ? _c : '127.0.0.1');
127
+ const reqResPort = parseInt(((_d = req.query['req-res-port']) !== null && _d !== void 0 ? _d : '63524'));
128
+ const pubSubPort = parseInt(((_e = req.query['pub-sub-port']) !== null && _e !== void 0 ? _e : '63525'));
129
+ const pingSystemInterval = parseInt(((_f = req.query['ping-system-interval']) !== null && _f !== void 0 ? _f : '250'));
130
+ const systemAliveTimeout = parseInt(((_g = req.query['system-alive-timeout']) !== null && _g !== void 0 ? _g : '1000'));
131
+ const clientAliveTimeoutStr = req.query['client-alive-timeout'];
132
+ const clientAliveTimeout = clientAliveTimeoutStr ? parseInt(clientAliveTimeoutStr) : undefined;
133
+ const secure = asBoolean(req.query['secure']);
134
+ const config = Object.assign(Object.assign({ hostname,
135
+ reqResPort,
136
+ pubSubPort,
137
+ pingSystemInterval,
138
+ systemAliveTimeout }, (clientAliveTimeout !== undefined && { clientAliveTimeout })), { secure });
139
+ log(`Creating an instance of Motion Master client with config: ${JSON.stringify(config)}`);
140
+ client = (0, motion_master_client_1.createMotionMasterClient)(config);
141
+ try {
142
+ yield client.whenReady(requestTimeout);
143
+ res.send({ reqResUrl: client.reqResSocket.url, pubSubUrl: client.pubSubSocket.url });
144
+ }
145
+ catch (err) {
146
+ client = undefined;
147
+ res.status(500).send({ message: errmsg(err) });
148
+ }
149
+ }));
150
+ app.get('/api/connect/:hostname?', (req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
151
+ var _h, _j;
152
+ const requestTimeout = parseInt(((_h = req.query['request-timeout']) !== null && _h !== void 0 ? _h : '10000'));
153
+ if (client) {
154
+ res.status(409).send({
155
+ message: 'Client has already been created. Please disconnect (GET /api/disconnect) before creating a new client.',
156
+ });
157
+ return;
158
+ }
159
+ const hostname = (_j = req.params['hostname']) !== null && _j !== void 0 ? _j : '127.0.0.1';
127
160
  log(`Creating an instance of Motion Master client and connecting to ${hostname}.`);
128
161
  client = (0, motion_master_client_1.createMotionMasterClient)(hostname);
129
162
  try {
@@ -144,53 +177,53 @@ app.get('/api/disconnect', (_req, res) => {
144
177
  res.send();
145
178
  });
146
179
  app.get('/api/system-version', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
147
- var _d;
148
- const requestTimeout = parseInt(((_d = req.query['request-timeout']) !== null && _d !== void 0 ? _d : '5000'));
180
+ var _k;
181
+ const requestTimeout = parseInt(((_k = req.query['request-timeout']) !== null && _k !== void 0 ? _k : '5000'));
149
182
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.getSystemVersion(requestTimeout));
150
183
  res.send({ version: status.version });
151
184
  })));
152
185
  app.get('/api/system-log', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
153
- var _e;
154
- const requestTimeout = parseInt(((_e = req.query['request-timeout']) !== null && _e !== void 0 ? _e : '5000'));
186
+ var _l;
187
+ const requestTimeout = parseInt(((_l = req.query['request-timeout']) !== null && _l !== void 0 ? _l : '5000'));
155
188
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.getSystemLog(requestTimeout));
156
189
  res.send({ content: status.content, runEnv: status.runEnv });
157
190
  })));
158
191
  app.get('/api/set-system-client-timeout/:timeout', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
159
- var _f;
160
- const timeoutMs = parseInt(((_f = req.params['timeout']) !== null && _f !== void 0 ? _f : '1000'));
192
+ var _m;
193
+ const timeoutMs = parseInt(((_m = req.params['timeout']) !== null && _m !== void 0 ? _m : '1000'));
161
194
  yield (0, rxjs_1.lastValueFrom)(client.request.setSystemClientTimeout({ timeoutMs }));
162
195
  res.send();
163
196
  })));
164
197
  app.get('/api/devices', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
165
- var _g;
166
- const requestTimeout = parseInt(((_g = req.query['request-timeout']) !== null && _g !== void 0 ? _g : '10000'));
198
+ var _o;
199
+ const requestTimeout = parseInt(((_o = req.query['request-timeout']) !== null && _o !== void 0 ? _o : '10000'));
167
200
  const devices = yield (0, rxjs_1.lastValueFrom)(client.request.getDevices(requestTimeout));
168
201
  res.send(devices);
169
202
  })));
170
203
  app.get('/api/devices/:deviceRef/parameter-info', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
171
- var _h;
204
+ var _p;
172
205
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
173
206
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
174
- const requestTimeout = parseInt(((_h = req.query['request-timeout']) !== null && _h !== void 0 ? _h : '5000'));
207
+ const requestTimeout = parseInt(((_p = req.query['request-timeout']) !== null && _p !== void 0 ? _p : '5000'));
175
208
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.getDeviceParameterInfo(deviceRefObj, requestTimeout));
176
209
  res.send(status === null || status === void 0 ? void 0 : status.parameters);
177
210
  })));
178
211
  app.get('/api/devices/:deviceRef/upload/:index/:subindex', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
179
- var _j;
212
+ var _q;
180
213
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
181
214
  const index = parseInt(req.params['index'], 16);
182
215
  const subindex = parseInt(req.params['subindex'], 16);
183
216
  const loadFromCache = asBoolean(req.query['load-from-cache']);
184
- const requestTimeout = parseInt(((_j = req.query['request-timeout']) !== null && _j !== void 0 ? _j : '1000'));
217
+ const requestTimeout = parseInt(((_q = req.query['request-timeout']) !== null && _q !== void 0 ? _q : '1000'));
185
218
  const value = yield client.request.upload(deviceRef, index, subindex, loadFromCache, requestTimeout);
186
219
  res.send({ value });
187
220
  })));
188
221
  app.post('/api/devices/:deviceRef/get-parameter-values', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
189
- var _k;
222
+ var _r;
190
223
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
191
224
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
192
225
  let parameters = req.body;
193
- const requestTimeout = parseInt(((_k = req.query['request-timeout']) !== null && _k !== void 0 ? _k : '9000'));
226
+ const requestTimeout = parseInt(((_r = req.query['request-timeout']) !== null && _r !== void 0 ? _r : '9000'));
194
227
  parameters = parameters.map((parameter) => {
195
228
  var _a, _b, _c;
196
229
  return {
@@ -203,10 +236,10 @@ app.post('/api/devices/:deviceRef/get-parameter-values', asyncHandler((req, res)
203
236
  res.send({ parameterValues: status.parameterValues });
204
237
  })));
205
238
  app.post('/api/devices/get-multi-device-parameter-values', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
206
- var _l;
239
+ var _s;
207
240
  let collection = req.body;
208
241
  const loadFromCache = asBoolean(req.query['load-from-cache']);
209
- const requestTimeout = parseInt(((_l = req.query['request-timeout']) !== null && _l !== void 0 ? _l : '9000'));
242
+ const requestTimeout = parseInt(((_s = req.query['request-timeout']) !== null && _s !== void 0 ? _s : '9000'));
210
243
  collection.map((c) => {
211
244
  var _a;
212
245
  (_a = c.parameters) === null || _a === void 0 ? void 0 : _a.map((parameter) => {
@@ -219,62 +252,62 @@ app.post('/api/devices/get-multi-device-parameter-values', asyncHandler((req, re
219
252
  res.send({ collection: status.collection });
220
253
  })));
221
254
  app.get('/api/devices/:deviceRef/parameters', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
222
- var _m;
255
+ var _t;
223
256
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
224
257
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
225
258
  const loadFromCache = asBoolean(req.query['load-from-cache']);
226
- const requestTimeout = parseInt(((_m = req.query['request-timeout']) !== null && _m !== void 0 ? _m : '10000'));
259
+ const requestTimeout = parseInt(((_t = req.query['request-timeout']) !== null && _t !== void 0 ? _t : '10000'));
227
260
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.getDeviceParameters(Object.assign({ loadFromCache }, deviceRefObj), requestTimeout));
228
261
  res.send({ parameters: status.parameters });
229
262
  })));
230
263
  app.get('/api/devices/:deviceRef/download/:index/:subindex/:value', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
231
- var _o;
264
+ var _u;
232
265
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
233
266
  const index = parseInt(req.params['index'], 16);
234
267
  const subindex = parseInt(req.params['subindex'], 16);
235
268
  const value = req.params['value'];
236
- const requestTimeout = parseInt(((_o = req.query['request-timeout']) !== null && _o !== void 0 ? _o : '1000'));
269
+ const requestTimeout = parseInt(((_u = req.query['request-timeout']) !== null && _u !== void 0 ? _u : '1000'));
237
270
  yield client.request.download(deviceRef, index, subindex, value, undefined, requestTimeout);
238
271
  res.send();
239
272
  })));
240
273
  app.put('/api/devices/:deviceRef/download/:index/:subindex', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
241
- var _p;
274
+ var _v;
242
275
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
243
276
  const index = parseInt(req.params['index'], 16);
244
277
  const subindex = parseInt(req.params['subindex'], 16);
245
278
  const buffer = req.body;
246
279
  const value = new Uint8Array(buffer);
247
- const requestTimeout = parseInt(((_p = req.query['request-timeout']) !== null && _p !== void 0 ? _p : '5000'));
280
+ const requestTimeout = parseInt(((_v = req.query['request-timeout']) !== null && _v !== void 0 ? _v : '5000'));
248
281
  yield client.request.download(deviceRef, index, subindex, value, undefined, requestTimeout);
249
282
  res.send();
250
283
  })));
251
284
  app.post('/api/devices/:deviceRef/set-parameter-values', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
252
- var _q;
285
+ var _w;
253
286
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
254
287
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
255
288
  let parameterValues = req.body;
256
- const requestTimeout = parseInt(((_q = req.query['request-timeout']) !== null && _q !== void 0 ? _q : '3000'));
289
+ const requestTimeout = parseInt(((_w = req.query['request-timeout']) !== null && _w !== void 0 ? _w : '3000'));
257
290
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.setDeviceParameterValues(Object.assign(Object.assign({}, deviceRefObj), { parameterValues }), requestTimeout));
258
291
  res.send({ parameterValues: status.parameterValues });
259
292
  })));
260
293
  app.post('/api/devices/set-multi-device-parameter-values', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
261
- var _r;
294
+ var _x;
262
295
  let collection = req.body;
263
- const requestTimeout = parseInt(((_r = req.query['request-timeout']) !== null && _r !== void 0 ? _r : '3000'));
296
+ const requestTimeout = parseInt(((_x = req.query['request-timeout']) !== null && _x !== void 0 ? _x : '3000'));
264
297
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.setMultiDeviceParameterValues({ collection }, requestTimeout));
265
298
  res.send({ collection: status.collection });
266
299
  })));
267
300
  app.get('/api/devices/:deviceRef/files', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
268
- var _s;
301
+ var _y;
269
302
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
270
- const requestTimeout = parseInt(((_s = req.query['request-timeout']) !== null && _s !== void 0 ? _s : '30000'));
303
+ const requestTimeout = parseInt(((_y = req.query['request-timeout']) !== null && _y !== void 0 ? _y : '30000'));
271
304
  const value = yield (0, rxjs_1.lastValueFrom)(client.request.getFiles(deviceRef, requestTimeout));
272
305
  res.send(value);
273
306
  })));
274
307
  app.get('/api/devices/:deviceRef/files/unlock', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
275
- var _t;
308
+ var _z;
276
309
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
277
- const requestTimeout = parseInt(((_t = req.query['request-timeout']) !== null && _t !== void 0 ? _t : '5000'));
310
+ const requestTimeout = parseInt(((_z = req.query['request-timeout']) !== null && _z !== void 0 ? _z : '5000'));
278
311
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.unlockProtectedFiles(deviceRef, requestTimeout));
279
312
  if (status.request === 'succeeded') {
280
313
  res.send();
@@ -284,10 +317,10 @@ app.get('/api/devices/:deviceRef/files/unlock', asyncHandler((req, res) => tslib
284
317
  }
285
318
  })));
286
319
  app.get('/api/devices/:deviceRef/files/:filename', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
287
- var _u;
320
+ var _0;
288
321
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
289
322
  const filename = req.params['filename'];
290
- const requestTimeout = parseInt(((_u = req.query['request-timeout']) !== null && _u !== void 0 ? _u : '30000'));
323
+ const requestTimeout = parseInt(((_0 = req.query['request-timeout']) !== null && _0 !== void 0 ? _0 : '30000'));
291
324
  try {
292
325
  // Try to get the file as decoded text
293
326
  const value = yield (0, rxjs_1.lastValueFrom)(client.request.getDecodedFile(deviceRef, filename, requestTimeout));
@@ -311,12 +344,12 @@ app.get('/api/devices/:deviceRef/files/:filename', asyncHandler((req, res) => ts
311
344
  }
312
345
  })));
313
346
  app.put('/api/devices/:deviceRef/files/:filename', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
314
- var _v;
347
+ var _1;
315
348
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
316
349
  const filename = req.params['filename'];
317
350
  const buffer = req.body;
318
351
  const content = new Uint8Array(buffer);
319
- const requestTimeout = parseInt(((_v = req.query['request-timeout']) !== null && _v !== void 0 ? _v : '30000'));
352
+ const requestTimeout = parseInt(((_1 = req.query['request-timeout']) !== null && _1 !== void 0 ? _1 : '30000'));
320
353
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.setFile(deviceRef, filename, content, true, requestTimeout));
321
354
  if (status.request === 'succeeded') {
322
355
  res.send();
@@ -326,10 +359,10 @@ app.put('/api/devices/:deviceRef/files/:filename', asyncHandler((req, res) => ts
326
359
  }
327
360
  })));
328
361
  app.delete('/api/devices/:deviceRef/files/:filename', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
329
- var _w;
362
+ var _2;
330
363
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
331
364
  const filename = req.params['filename'];
332
- const requestTimeout = parseInt(((_w = req.query['request-timeout']) !== null && _w !== void 0 ? _w : '3000'));
365
+ const requestTimeout = parseInt(((_2 = req.query['request-timeout']) !== null && _2 !== void 0 ? _2 : '3000'));
333
366
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.deleteFile(deviceRef, filename, requestTimeout));
334
367
  if (status.request === 'succeeded') {
335
368
  res.send();
@@ -350,13 +383,13 @@ app.get('/api/devices/:deviceRef/reset-fault', asyncHandler((req, res) => tslib_
350
383
  res.send();
351
384
  })));
352
385
  app.post('/api/devices/:deviceRef/start-firmware-installation', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
353
- var _x;
386
+ var _3;
354
387
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
355
388
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
356
389
  const buffer = req.body;
357
390
  const firmwarePackageContent = new Uint8Array(buffer);
358
391
  const skipSiiInstallation = asBoolean(req.query['skip-sii-installation']);
359
- const requestTimeout = parseInt(((_x = req.query['request-timeout']) !== null && _x !== void 0 ? _x : '180000'));
392
+ const requestTimeout = parseInt(((_3 = req.query['request-timeout']) !== null && _3 !== void 0 ? _3 : '180000'));
360
393
  const skipFilesParam = req.query['skip-files'];
361
394
  let skipFiles = null;
362
395
  if (Array.isArray(skipFilesParam)) {
@@ -374,41 +407,41 @@ app.post('/api/devices/:deviceRef/start-firmware-installation', asyncHandler((re
374
407
  }
375
408
  })));
376
409
  app.get('/api/devices/:deviceRef/log', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
377
- var _y;
410
+ var _4;
378
411
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
379
412
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
380
- const requestTimeout = parseInt(((_y = req.query['request-timeout']) !== null && _y !== void 0 ? _y : '10000'));
413
+ const requestTimeout = parseInt(((_4 = req.query['request-timeout']) !== null && _4 !== void 0 ? _4 : '10000'));
381
414
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.getDeviceLog(deviceRefObj, requestTimeout));
382
415
  res.send(status.content);
383
416
  })));
384
417
  app.get('/api/devices/:deviceRef/start-cogging-torque-recording', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
385
- var _z, _0, _1;
418
+ var _5, _6, _7;
386
419
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
387
420
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
388
421
  const skipAutoTuning = asBoolean(req.query['skip-auto-tuning']);
389
- const requestTimeout = parseInt(((_z = req.query['request-timeout']) !== null && _z !== void 0 ? _z : '180000'));
422
+ const requestTimeout = parseInt(((_5 = req.query['request-timeout']) !== null && _5 !== void 0 ? _5 : '180000'));
390
423
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.startCoggingTorqueRecording(Object.assign(Object.assign({}, deviceRefObj), { skipAutoTuning }), requestTimeout));
391
424
  if (status.request === 'succeeded') {
392
425
  const value = yield (0, rxjs_1.lastValueFrom)(client.request.getCoggingTorqueData(deviceRefObj, 10000));
393
- res.send((_1 = (_0 = value.table) === null || _0 === void 0 ? void 0 : _0.data) !== null && _1 !== void 0 ? _1 : []);
426
+ res.send((_7 = (_6 = value.table) === null || _6 === void 0 ? void 0 : _6.data) !== null && _7 !== void 0 ? _7 : []);
394
427
  }
395
428
  else {
396
429
  res.status(500).send(status.error);
397
430
  }
398
431
  })));
399
432
  app.get('/api/devices/:deviceRef/cogging-torque-data', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
400
- var _2, _3, _4;
433
+ var _8, _9, _10;
401
434
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
402
435
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
403
- const requestTimeout = parseInt(((_2 = req.query['request-timeout']) !== null && _2 !== void 0 ? _2 : '10000'));
436
+ const requestTimeout = parseInt(((_8 = req.query['request-timeout']) !== null && _8 !== void 0 ? _8 : '10000'));
404
437
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.getCoggingTorqueData(deviceRefObj, requestTimeout));
405
- res.send((_4 = (_3 = status.table) === null || _3 === void 0 ? void 0 : _3.data) !== null && _4 !== void 0 ? _4 : []);
438
+ res.send((_10 = (_9 = status.table) === null || _9 === void 0 ? void 0 : _9.data) !== null && _10 !== void 0 ? _10 : []);
406
439
  })));
407
440
  app.get('/api/devices/:deviceRef/start-offset-detection', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
408
- var _5;
441
+ var _11;
409
442
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
410
443
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
411
- const requestTimeout = parseInt(((_5 = req.query['request-timeout']) !== null && _5 !== void 0 ? _5 : '120000'));
444
+ const requestTimeout = parseInt(((_11 = req.query['request-timeout']) !== null && _11 !== void 0 ? _11 : '120000'));
412
445
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.startOffsetDetection(deviceRefObj, requestTimeout));
413
446
  if (status.request === 'succeeded') {
414
447
  const commutationAngleOffset = yield client.request.upload(deviceRef, 0x2001, 0);
@@ -426,12 +459,12 @@ app.get('/api/devices/:deviceRef/set-motion-controller-parameters', asyncHandler
426
459
  res.send();
427
460
  })));
428
461
  app.get('/api/devices/:deviceRef/enable-motion-controller/:controllerType', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
429
- var _6, _7;
462
+ var _12, _13;
430
463
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
431
464
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
432
- const controllerType = (_6 = types_1.MotionMasterMessage.Request.EnableMotionController.ControllerType[req.params['controllerType'].toUpperCase()]) !== null && _6 !== void 0 ? _6 : types_1.MotionMasterMessage.Request.EnableMotionController.ControllerType.UNSPECIFIED;
465
+ const controllerType = (_12 = types_1.MotionMasterMessage.Request.EnableMotionController.ControllerType[req.params['controllerType'].toUpperCase()]) !== null && _12 !== void 0 ? _12 : types_1.MotionMasterMessage.Request.EnableMotionController.ControllerType.UNSPECIFIED;
433
466
  const filter = asBoolean(req.query['filter']);
434
- const requestTimeout = parseInt(((_7 = req.query['request-timeout']) !== null && _7 !== void 0 ? _7 : '3000'));
467
+ const requestTimeout = parseInt(((_13 = req.query['request-timeout']) !== null && _13 !== void 0 ? _13 : '3000'));
435
468
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.enableMotionController(Object.assign(Object.assign({}, deviceRefObj), { controllerType, filter }), requestTimeout));
436
469
  if (status.request === 'succeeded') {
437
470
  res.send();
@@ -441,10 +474,10 @@ app.get('/api/devices/:deviceRef/enable-motion-controller/:controllerType', asyn
441
474
  }
442
475
  })));
443
476
  app.get('/api/devices/:deviceRef/disable-motion-controller', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
444
- var _8;
477
+ var _14;
445
478
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
446
479
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
447
- const requestTimeout = parseInt(((_8 = req.query['request-timeout']) !== null && _8 !== void 0 ? _8 : '3000'));
480
+ const requestTimeout = parseInt(((_14 = req.query['request-timeout']) !== null && _14 !== void 0 ? _14 : '3000'));
448
481
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.disableMotionController(Object.assign({}, deviceRefObj), requestTimeout));
449
482
  if (status.request === 'succeeded') {
450
483
  res.send();
@@ -454,10 +487,10 @@ app.get('/api/devices/:deviceRef/disable-motion-controller', asyncHandler((req,
454
487
  }
455
488
  })));
456
489
  app.get('/api/devices/:deviceRef/get-ethercat-network-state', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
457
- var _9;
490
+ var _15;
458
491
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
459
492
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
460
- const requestTimeout = parseInt(((_9 = req.query['request-timeout']) !== null && _9 !== void 0 ? _9 : '3000'));
493
+ const requestTimeout = parseInt(((_15 = req.query['request-timeout']) !== null && _15 !== void 0 ? _15 : '3000'));
461
494
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.getEthercatNetworkState(Object.assign({}, deviceRefObj), requestTimeout));
462
495
  if (status.request === 'succeeded') {
463
496
  res.send({ state: status.state });
@@ -467,11 +500,11 @@ app.get('/api/devices/:deviceRef/get-ethercat-network-state', asyncHandler((req,
467
500
  }
468
501
  })));
469
502
  app.get('/api/devices/:deviceRef/set-ethercat-network-state/:state', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
470
- var _10, _11;
503
+ var _16, _17;
471
504
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
472
505
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
473
- const state = (_10 = types_1.MotionMasterMessage.Request.SetEthercatNetworkState.State[req.params['state'].toUpperCase()]) !== null && _10 !== void 0 ? _10 : types_1.MotionMasterMessage.Request.SetEthercatNetworkState.State.UNSPECIFIED;
474
- const requestTimeout = parseInt(((_11 = req.query['request-timeout']) !== null && _11 !== void 0 ? _11 : '3000'));
506
+ const state = (_16 = types_1.MotionMasterMessage.Request.SetEthercatNetworkState.State[req.params['state'].toUpperCase()]) !== null && _16 !== void 0 ? _16 : types_1.MotionMasterMessage.Request.SetEthercatNetworkState.State.UNSPECIFIED;
507
+ const requestTimeout = parseInt(((_17 = req.query['request-timeout']) !== null && _17 !== void 0 ? _17 : '3000'));
475
508
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.setEthercatNetworkState(Object.assign(Object.assign({}, deviceRefObj), { state }), requestTimeout));
476
509
  if (status.request === 'succeeded') {
477
510
  res.send();
@@ -481,15 +514,15 @@ app.get('/api/devices/:deviceRef/set-ethercat-network-state/:state', asyncHandle
481
514
  }
482
515
  })));
483
516
  app.get('/api/devices/:deviceRef/start-system-identification', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
484
- var _12, _13, _14, _15, _16;
517
+ var _18, _19, _20, _21, _22;
485
518
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
486
519
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
487
- const durationSeconds = parseFloat(((_12 = req.query['duration-seconds']) !== null && _12 !== void 0 ? _12 : '3.0'));
488
- const torqueAmplitude = parseInt(((_13 = req.query['torque-amplitude']) !== null && _13 !== void 0 ? _13 : '300'));
489
- const startFrequency = parseInt(((_14 = req.query['start-frequency']) !== null && _14 !== void 0 ? _14 : '2'));
490
- const endFrequency = parseInt(((_15 = req.query['end-frequency']) !== null && _15 !== void 0 ? _15 : '60'));
520
+ const durationSeconds = parseFloat(((_18 = req.query['duration-seconds']) !== null && _18 !== void 0 ? _18 : '3.0'));
521
+ const torqueAmplitude = parseInt(((_19 = req.query['torque-amplitude']) !== null && _19 !== void 0 ? _19 : '300'));
522
+ const startFrequency = parseInt(((_20 = req.query['start-frequency']) !== null && _20 !== void 0 ? _20 : '2'));
523
+ const endFrequency = parseInt(((_21 = req.query['end-frequency']) !== null && _21 !== void 0 ? _21 : '60'));
491
524
  const nextGenSysId = asBoolean(req.query['next-gen-sys-id']);
492
- const requestTimeout = parseInt(((_16 = req.query['request-timeout']) !== null && _16 !== void 0 ? _16 : '30000'));
525
+ const requestTimeout = parseInt(((_22 = req.query['request-timeout']) !== null && _22 !== void 0 ? _22 : '30000'));
493
526
  const props = Object.assign(Object.assign({}, deviceRefObj), { durationSeconds,
494
527
  torqueAmplitude,
495
528
  startFrequency,
@@ -505,9 +538,9 @@ app.get('/api/devices/:deviceRef/start-system-identification', asyncHandler((req
505
538
  }
506
539
  })));
507
540
  app.get('/api/devices/:deviceRef/set-modes-of-operation/:modesOfOperation', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
508
- var _17;
541
+ var _23;
509
542
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
510
- const modesOfOperation = parseInt((_17 = req.params['modesOfOperation']) !== null && _17 !== void 0 ? _17 : '0');
543
+ const modesOfOperation = parseInt((_23 = req.params['modesOfOperation']) !== null && _23 !== void 0 ? _23 : '0');
511
544
  yield (0, rxjs_1.lastValueFrom)(client.request.setModesOfOperation(deviceRef, modesOfOperation));
512
545
  res.send();
513
546
  })));
@@ -518,9 +551,9 @@ app.get('/api/devices/:deviceRef/transition-to-cia402-state/:state', asyncHandle
518
551
  res.send();
519
552
  })));
520
553
  app.get('/api/devices/:deviceRef/cia402-state', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
521
- var _18;
554
+ var _24;
522
555
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
523
- const requestTimeout = parseInt(((_18 = req.query['request-timeout']) !== null && _18 !== void 0 ? _18 : '5000'));
556
+ const requestTimeout = parseInt(((_24 = req.query['request-timeout']) !== null && _24 !== void 0 ? _24 : '5000'));
524
557
  const state = yield (0, rxjs_1.lastValueFrom)(client.request.getCia402State(deviceRef, requestTimeout));
525
558
  res.send({ state });
526
559
  })));
@@ -530,22 +563,22 @@ app.get('/api/devices/:deviceRef/save-config', asyncHandler((req, res) => tslib_
530
563
  res.send();
531
564
  })));
532
565
  app.put('/api/devices/:deviceRef/load-config', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
533
- var _19;
566
+ var _25;
534
567
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
535
568
  const buffer = req.body;
536
569
  const content = new Uint8Array(buffer);
537
570
  const refresh = asBoolean(req.query['refresh']);
538
- const strategy = (_19 = req.query['strategy']) !== null && _19 !== void 0 ? _19 : 'replace';
571
+ const strategy = (_25 = req.query['strategy']) !== null && _25 !== void 0 ? _25 : 'replace';
539
572
  yield (0, rxjs_1.lastValueFrom)(client.request.loadConfig(deviceRef, content, strategy, { count: 20, delay: 500 }, refresh));
540
573
  res.send();
541
574
  })));
542
575
  app.get('/api/devices/:deviceRef/compute-auto-tuning-gains/velocity', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
543
- var _20, _21, _22;
576
+ var _26, _27, _28;
544
577
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
545
578
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
546
- const velocityLoopBandwidth = parseFloat(((_20 = req.query['velocity-loop-bandwidth']) !== null && _20 !== void 0 ? _20 : '5'));
547
- const velocityDamping = parseFloat(((_21 = req.query['velocity-damping']) !== null && _21 !== void 0 ? _21 : '0.7'));
548
- const requestTimeout = parseInt(((_22 = req.query['request-timeout']) !== null && _22 !== void 0 ? _22 : '120000'));
579
+ const velocityLoopBandwidth = parseFloat(((_26 = req.query['velocity-loop-bandwidth']) !== null && _26 !== void 0 ? _26 : '5'));
580
+ const velocityDamping = parseFloat(((_27 = req.query['velocity-damping']) !== null && _27 !== void 0 ? _27 : '0.7'));
581
+ const requestTimeout = parseInt(((_28 = req.query['request-timeout']) !== null && _28 !== void 0 ? _28 : '120000'));
549
582
  const velocityParameters = { velocityLoopBandwidth, velocityDamping };
550
583
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.computeAutoTuningGains(Object.assign(Object.assign({}, deviceRefObj), { velocityParameters }), requestTimeout));
551
584
  if (status.request === 'succeeded') {
@@ -556,17 +589,17 @@ app.get('/api/devices/:deviceRef/compute-auto-tuning-gains/velocity', asyncHandl
556
589
  }
557
590
  })));
558
591
  app.get('/api/devices/:deviceRef/compute-auto-tuning-gains/position', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
559
- var _23, _24, _25, _26, _27, _28, _29, _30, _31;
592
+ var _29, _30, _31, _32, _33, _34, _35, _36, _37;
560
593
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
561
594
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
562
- const controllerType = (_24 = types_1.MotionMasterMessage.Request.ComputeAutoTuningGains.PositionParameters.ControllerType[((_23 = req.query['controller-type']) !== null && _23 !== void 0 ? _23 : 'UNSPECIFIED')]) !== null && _24 !== void 0 ? _24 : types_1.MotionMasterMessage.Request.ComputeAutoTuningGains.PositionParameters.ControllerType.UNSPECIFIED;
563
- const settlingTime = parseFloat(((_25 = req.query['settling-time']) !== null && _25 !== void 0 ? _25 : '0.2'));
564
- const positionDamping = parseFloat(((_26 = req.query['position-damping']) !== null && _26 !== void 0 ? _26 : '1'));
565
- const alphaMult = parseInt(((_27 = req.query['alpha-mult']) !== null && _27 !== void 0 ? _27 : '1'));
566
- const order = parseInt(((_28 = req.query['order']) !== null && _28 !== void 0 ? _28 : '0'));
567
- const lb = parseInt(((_29 = req.query['lb']) !== null && _29 !== void 0 ? _29 : '1'));
568
- const ub = parseInt(((_30 = req.query['ub']) !== null && _30 !== void 0 ? _30 : '1001'));
569
- const requestTimeout = parseInt(((_31 = req.query['request-timeout']) !== null && _31 !== void 0 ? _31 : '120000'));
595
+ const controllerType = (_30 = types_1.MotionMasterMessage.Request.ComputeAutoTuningGains.PositionParameters.ControllerType[((_29 = req.query['controller-type']) !== null && _29 !== void 0 ? _29 : 'UNSPECIFIED')]) !== null && _30 !== void 0 ? _30 : types_1.MotionMasterMessage.Request.ComputeAutoTuningGains.PositionParameters.ControllerType.UNSPECIFIED;
596
+ const settlingTime = parseFloat(((_31 = req.query['settling-time']) !== null && _31 !== void 0 ? _31 : '0.2'));
597
+ const positionDamping = parseFloat(((_32 = req.query['position-damping']) !== null && _32 !== void 0 ? _32 : '1'));
598
+ const alphaMult = parseInt(((_33 = req.query['alpha-mult']) !== null && _33 !== void 0 ? _33 : '1'));
599
+ const order = parseInt(((_34 = req.query['order']) !== null && _34 !== void 0 ? _34 : '0'));
600
+ const lb = parseInt(((_35 = req.query['lb']) !== null && _35 !== void 0 ? _35 : '1'));
601
+ const ub = parseInt(((_36 = req.query['ub']) !== null && _36 !== void 0 ? _36 : '1001'));
602
+ const requestTimeout = parseInt(((_37 = req.query['request-timeout']) !== null && _37 !== void 0 ? _37 : '120000'));
570
603
  const positionParameters = { controllerType, settlingTime, positionDamping, alphaMult, order, lb, ub };
571
604
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.computeAutoTuningGains(Object.assign(Object.assign({}, deviceRefObj), { positionParameters }), requestTimeout));
572
605
  if (status.request === 'succeeded') {
@@ -577,15 +610,15 @@ app.get('/api/devices/:deviceRef/compute-auto-tuning-gains/position', asyncHandl
577
610
  }
578
611
  })));
579
612
  app.get('/api/devices/:deviceRef/start-open-loop-field-control', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
580
- var _32, _33, _34, _35, _36, _37;
613
+ var _38, _39, _40, _41, _42, _43;
581
614
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
582
615
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
583
- const angle = parseInt(((_32 = req.query['angle']) !== null && _32 !== void 0 ? _32 : '360'));
584
- const velocity = parseInt(((_33 = req.query['velocity']) !== null && _33 !== void 0 ? _33 : '5'));
585
- const acceleration = parseInt(((_34 = req.query['acceleration']) !== null && _34 !== void 0 ? _34 : '1000'));
586
- const torque = parseInt(((_35 = req.query['torque']) !== null && _35 !== void 0 ? _35 : '1000'));
587
- const torqueSpeed = parseInt(((_36 = req.query['torqueSpeed']) !== null && _36 !== void 0 ? _36 : '10000'));
588
- const requestTimeout = parseInt(((_37 = req.query['request-timeout']) !== null && _37 !== void 0 ? _37 : '120000'));
616
+ const angle = parseInt(((_38 = req.query['angle']) !== null && _38 !== void 0 ? _38 : '360'));
617
+ const velocity = parseInt(((_39 = req.query['velocity']) !== null && _39 !== void 0 ? _39 : '5'));
618
+ const acceleration = parseInt(((_40 = req.query['acceleration']) !== null && _40 !== void 0 ? _40 : '1000'));
619
+ const torque = parseInt(((_41 = req.query['torque']) !== null && _41 !== void 0 ? _41 : '1000'));
620
+ const torqueSpeed = parseInt(((_42 = req.query['torqueSpeed']) !== null && _42 !== void 0 ? _42 : '10000'));
621
+ const requestTimeout = parseInt(((_43 = req.query['request-timeout']) !== null && _43 !== void 0 ? _43 : '120000'));
589
622
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.startOpenLoopFieldControl(Object.assign(Object.assign({}, deviceRefObj), { angle, velocity, acceleration, torque, torqueSpeed }), requestTimeout));
590
623
  if (status.request === 'succeeded') {
591
624
  res.send();
@@ -595,17 +628,17 @@ app.get('/api/devices/:deviceRef/start-open-loop-field-control', asyncHandler((r
595
628
  }
596
629
  })));
597
630
  app.get('/api/devices/:deviceRef/start-full-auto-tuning/velocity', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
598
- var _38, _39, _40, _41;
631
+ var _44, _45, _46, _47;
599
632
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
600
633
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
601
634
  const type = types_1.MotionMasterMessage.Request.StartFullAutoTuning.Type.VELOCITY;
602
- const requestTimeout = parseInt(((_38 = req.query['request-timeout']) !== null && _38 !== void 0 ? _38 : '60000'));
635
+ const requestTimeout = parseInt(((_44 = req.query['request-timeout']) !== null && _44 !== void 0 ? _44 : '60000'));
603
636
  const props = Object.assign(Object.assign({}, deviceRefObj), { type });
604
637
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.startFullAutoTuning(props, requestTimeout));
605
638
  if (status.request === 'succeeded') {
606
- const dampingRatio = (_39 = status.dampingRatio) !== null && _39 !== void 0 ? _39 : 0;
607
- const settlingTime = (_40 = status.settlingTime) !== null && _40 !== void 0 ? _40 : 0;
608
- const bandwidth = (_41 = status.bandwidth) !== null && _41 !== void 0 ? _41 : 0;
639
+ const dampingRatio = (_45 = status.dampingRatio) !== null && _45 !== void 0 ? _45 : 0;
640
+ const settlingTime = (_46 = status.settlingTime) !== null && _46 !== void 0 ? _46 : 0;
641
+ const bandwidth = (_47 = status.bandwidth) !== null && _47 !== void 0 ? _47 : 0;
609
642
  const pidObj = {};
610
643
  for (let subidx = 1; subidx < 5; subidx++) {
611
644
  pidObj[(0, parameter_1.makeParameterId)(0x2011, subidx)] = yield client.request.upload(deviceRef, 0x2011, subidx);
@@ -620,17 +653,17 @@ app.get('/api/devices/:deviceRef/start-full-auto-tuning/velocity', asyncHandler(
620
653
  }
621
654
  })));
622
655
  app.get('/api/devices/:deviceRef/start-full-auto-tuning/position/:controllerType', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
623
- var _42, _43, _44, _45;
656
+ var _48, _49, _50, _51;
624
657
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
625
658
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
626
659
  const type = types_1.MotionMasterMessage.Request.StartFullAutoTuning.Type.POSITION;
627
660
  let controllerType = types_1.MotionMasterMessage.Request.StartFullAutoTuning.ControllerType[req.params['controllerType'].toUpperCase()] || types_1.MotionMasterMessage.Request.StartFullAutoTuning.ControllerType.UNSPECIFIED;
628
- const requestTimeout = parseInt(((_42 = req.query['request-timeout']) !== null && _42 !== void 0 ? _42 : '60000'));
661
+ const requestTimeout = parseInt(((_48 = req.query['request-timeout']) !== null && _48 !== void 0 ? _48 : '60000'));
629
662
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.startFullAutoTuning(Object.assign(Object.assign({}, deviceRefObj), { type, controllerType }), requestTimeout));
630
663
  if (status.request === 'succeeded') {
631
- const dampingRatio = (_43 = status.dampingRatio) !== null && _43 !== void 0 ? _43 : 0;
632
- const settlingTime = (_44 = status.settlingTime) !== null && _44 !== void 0 ? _44 : 0;
633
- const bandwidth = (_45 = status.bandwidth) !== null && _45 !== void 0 ? _45 : 0;
664
+ const dampingRatio = (_49 = status.dampingRatio) !== null && _49 !== void 0 ? _49 : 0;
665
+ const settlingTime = (_50 = status.settlingTime) !== null && _50 !== void 0 ? _50 : 0;
666
+ const bandwidth = (_51 = status.bandwidth) !== null && _51 !== void 0 ? _51 : 0;
634
667
  const pidObj = {};
635
668
  for (let subidx = 1; subidx < 9; subidx++) {
636
669
  pidObj[(0, parameter_1.makeParameterId)(0x2012, subidx)] = yield client.request.upload(deviceRef, 0x2012, subidx);
@@ -645,10 +678,10 @@ app.get('/api/devices/:deviceRef/start-full-auto-tuning/position/:controllerType
645
678
  }
646
679
  })));
647
680
  app.get('/api/devices/:deviceRef/stop-full-auto-tuning', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
648
- var _46;
681
+ var _52;
649
682
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
650
683
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
651
- const requestTimeout = parseInt(((_46 = req.query['request-timeout']) !== null && _46 !== void 0 ? _46 : '10000'));
684
+ const requestTimeout = parseInt(((_52 = req.query['request-timeout']) !== null && _52 !== void 0 ? _52 : '10000'));
652
685
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.stopFullAutoTuning(deviceRefObj, requestTimeout));
653
686
  if (status.request == 'succeeded') {
654
687
  res.send();
@@ -667,13 +700,17 @@ app.get('/api/devices/:deviceRef/set-halt-bit/:value', asyncHandler((req, res) =
667
700
  * @example curl "http://localhost:63500/api/devices/0/run-torque-profile?target=100&holding-duration=3000&skip-quick-stop=false&target-reach-timeout=5000&slope=50&window=30&window-time=1"
668
701
  */
669
702
  app.get('/api/devices/:deviceRef/run-torque-profile', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
670
- var _47, _48;
703
+ var _53, _54;
671
704
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
672
- const target = parseInt(((_47 = req.query['target']) !== null && _47 !== void 0 ? _47 : '100'));
705
+ const target = parseInt(((_53 = req.query['target']) !== null && _53 !== void 0 ? _53 : '100'));
673
706
  const holdingDuration = parseInt(req.query['holding-duration']) || undefined;
674
- const skipQuickStop = asBoolean(req.query['skip-quick-stop']);
707
+ const skipQuickStop = req.query['skip-quick-stop'] !== undefined ? asBoolean(req.query['skip-quick-stop']) : true;
675
708
  const targetReachTimeout = parseInt(req.query['target-reach-timeout']) || undefined;
676
- const slope = parseInt(((_48 = req.query['slope']) !== null && _48 !== void 0 ? _48 : '50'));
709
+ if (!skipQuickStop && !targetReachTimeout) {
710
+ res.status(400).send('target-reach-timeout is required when skip-quick-stop is false');
711
+ return;
712
+ }
713
+ const slope = parseInt(((_54 = req.query['slope']) !== null && _54 !== void 0 ? _54 : '50'));
677
714
  const window = parseInt(req.query['window']) || undefined;
678
715
  const windowTime = parseInt(req.query['window-time']) || undefined;
679
716
  const monitoringParameterIds = yield createDefaultDataMonitoringParameterIds(deviceRef);
@@ -701,14 +738,18 @@ app.get('/api/devices/:deviceRef/run-torque-profile', asyncHandler((req, res) =>
701
738
  * @example curl "http://localhost:63500/api/devices/0/run-velocity-profile?acceleration=5000&target=1000&deceleration=5000&holding-duration=2000&skip-quick-stop=false&target-reach-timeout=5000&window=10&window-time=1"
702
739
  */
703
740
  app.get('/api/devices/:deviceRef/run-velocity-profile', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
704
- var _49, _50, _51;
741
+ var _55, _56, _57;
705
742
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
706
- const acceleration = parseInt(((_49 = req.query['acceleration']) !== null && _49 !== void 0 ? _49 : '1000'));
707
- const target = parseInt(((_50 = req.query['target']) !== null && _50 !== void 0 ? _50 : '1000'));
708
- const deceleration = parseInt(((_51 = req.query['deceleration']) !== null && _51 !== void 0 ? _51 : '1000'));
743
+ const acceleration = parseInt(((_55 = req.query['acceleration']) !== null && _55 !== void 0 ? _55 : '1000'));
744
+ const target = parseInt(((_56 = req.query['target']) !== null && _56 !== void 0 ? _56 : '1000'));
745
+ const deceleration = parseInt(((_57 = req.query['deceleration']) !== null && _57 !== void 0 ? _57 : '1000'));
709
746
  const holdingDuration = parseInt(req.query['holding-duration']) || undefined;
710
- const skipQuickStop = asBoolean(req.query['skip-quick-stop']);
747
+ const skipQuickStop = req.query['skip-quick-stop'] !== undefined ? asBoolean(req.query['skip-quick-stop']) : true;
711
748
  const targetReachTimeout = parseInt(req.query['target-reach-timeout']) || undefined;
749
+ if (!skipQuickStop && !targetReachTimeout) {
750
+ res.status(400).send('target-reach-timeout is required when skip-quick-stop is false');
751
+ return;
752
+ }
712
753
  const window = parseInt(req.query['window']) || undefined;
713
754
  const windowTime = parseInt(req.query['window-time']) || undefined;
714
755
  const monitoringParameterIds = yield createDefaultDataMonitoringParameterIds(deviceRef);
@@ -737,16 +778,20 @@ app.get('/api/devices/:deviceRef/run-velocity-profile', asyncHandler((req, res)
737
778
  * @example curl "http://localhost:63500/api/devices/0/run-position-profile?acceleration=5000&target=10000&deceleration=5000&holding-duration=2000&relative=true&skip-quick-stop=false&target-reach-timeout=5000&velocity=2000&window=10&window-time=1"
738
779
  */
739
780
  app.get('/api/devices/:deviceRef/run-position-profile', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
740
- var _52, _53, _54, _55;
781
+ var _58, _59, _60, _61;
741
782
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
742
- const acceleration = parseInt(((_52 = req.query['acceleration']) !== null && _52 !== void 0 ? _52 : '1000'));
743
- const target = parseInt(((_53 = req.query['target']) !== null && _53 !== void 0 ? _53 : '1000'));
744
- const deceleration = parseInt(((_54 = req.query['deceleration']) !== null && _54 !== void 0 ? _54 : '1000'));
783
+ const acceleration = parseInt(((_58 = req.query['acceleration']) !== null && _58 !== void 0 ? _58 : '1000'));
784
+ const target = parseInt(((_59 = req.query['target']) !== null && _59 !== void 0 ? _59 : '1000'));
785
+ const deceleration = parseInt(((_60 = req.query['deceleration']) !== null && _60 !== void 0 ? _60 : '1000'));
745
786
  const holdingDuration = parseInt(req.query['holding-duration']) || undefined;
746
787
  const relative = asBoolean(req.query['relative']);
747
- const skipQuickStop = asBoolean(req.query['skip-quick-stop']);
788
+ const skipQuickStop = req.query['skip-quick-stop'] !== undefined ? asBoolean(req.query['skip-quick-stop']) : true;
748
789
  const targetReachTimeout = parseInt(req.query['target-reach-timeout']) || undefined;
749
- const velocity = parseInt(((_55 = req.query['velocity']) !== null && _55 !== void 0 ? _55 : '100'));
790
+ if (!skipQuickStop && !targetReachTimeout) {
791
+ res.status(400).send('target-reach-timeout is required when skip-quick-stop is false');
792
+ return;
793
+ }
794
+ const velocity = parseInt(((_61 = req.query['velocity']) !== null && _61 !== void 0 ? _61 : '100'));
750
795
  const window = parseInt(req.query['window']) || undefined;
751
796
  const windowTime = parseInt(req.query['window-time']) || undefined;
752
797
  const monitoringParameterIds = yield createDefaultDataMonitoringParameterIds(deviceRef);
@@ -784,14 +829,14 @@ app.get('/api/devices/:deviceRef/force-on-demand-parameters-update', asyncHandle
784
829
  res.send();
785
830
  })));
786
831
  app.get('/api/devices/:deviceRef/start-circulo-encoder-narrow-angle-calibration', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
787
- var _56, _57, _58;
832
+ var _62, _63, _64;
788
833
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
789
834
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
790
- const encoderOrdinal = parseInt(((_56 = req.query['encoder-ordinal']) !== null && _56 !== void 0 ? _56 : '1'));
835
+ const encoderOrdinal = parseInt(((_62 = req.query['encoder-ordinal']) !== null && _62 !== void 0 ? _62 : '1'));
791
836
  const activateHealthMonitoring = asBoolean(req.query['activate-health-monitoring']);
792
837
  const measurementOnly = asBoolean(req.query['measurement-only']);
793
- const externalEncoderType = parseInt(((_57 = req.query['external-encoder-type']) !== null && _57 !== void 0 ? _57 : '0'));
794
- const requestTimeout = parseInt(((_58 = req.query['request-timeout']) !== null && _58 !== void 0 ? _58 : '120000'));
838
+ const externalEncoderType = parseInt(((_63 = req.query['external-encoder-type']) !== null && _63 !== void 0 ? _63 : '0'));
839
+ const requestTimeout = parseInt(((_64 = req.query['request-timeout']) !== null && _64 !== void 0 ? _64 : '120000'));
795
840
  const statuses = yield (0, rxjs_1.lastValueFrom)(client.request
796
841
  .startCirculoEncoderNarrowAngleCalibrationProcedure(Object.assign(Object.assign({}, deviceRefObj), { encoderOrdinal, activateHealthMonitoring, measurementOnly, externalEncoderType }), requestTimeout)
797
842
  .pipe((0, rxjs_1.toArray)()));
@@ -841,13 +886,13 @@ app.get('/api/devices/:deviceRef/start-circulo-encoder-narrow-angle-calibration'
841
886
  }
842
887
  })));
843
888
  app.get('/api/devices/:deviceRef/start-circulo-encoder-configuration', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
844
- var _59, _60, _61, _62;
889
+ var _65, _66, _67, _68;
845
890
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
846
891
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
847
- const encoderOrdinal = parseInt(((_59 = req.query['encoder-ordinal']) !== null && _59 !== void 0 ? _59 : '1'));
848
- const batteryModeMaxAcceleration = parseInt(((_60 = req.query['battery-mode-max-acceleration']) !== null && _60 !== void 0 ? _60 : '0'));
849
- const externalCirculoType = parseInt(((_61 = req.query['external-circulo-type']) !== null && _61 !== void 0 ? _61 : '0'));
850
- const requestTimeout = parseInt(((_62 = req.query['request-timeout']) !== null && _62 !== void 0 ? _62 : '30000'));
892
+ const encoderOrdinal = parseInt(((_65 = req.query['encoder-ordinal']) !== null && _65 !== void 0 ? _65 : '1'));
893
+ const batteryModeMaxAcceleration = parseInt(((_66 = req.query['battery-mode-max-acceleration']) !== null && _66 !== void 0 ? _66 : '0'));
894
+ const externalCirculoType = parseInt(((_67 = req.query['external-circulo-type']) !== null && _67 !== void 0 ? _67 : '0'));
895
+ const requestTimeout = parseInt(((_68 = req.query['request-timeout']) !== null && _68 !== void 0 ? _68 : '30000'));
851
896
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.startCirculoEncoderConfiguration(Object.assign(Object.assign({}, deviceRefObj), { encoderOrdinal, batteryModeMaxAcceleration, externalCirculoType }), requestTimeout));
852
897
  if (status.request === 'succeeded') {
853
898
  res.send();
@@ -857,9 +902,9 @@ app.get('/api/devices/:deviceRef/start-circulo-encoder-configuration', asyncHand
857
902
  }
858
903
  })));
859
904
  app.get('/api/devices/:deviceRef/check-circulo-encoder-errors', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
860
- var _63;
905
+ var _69;
861
906
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
862
- const encoderOrdinal = parseInt(((_63 = req.query['encoder-ordinal']) !== null && _63 !== void 0 ? _63 : '1'));
907
+ const encoderOrdinal = parseInt(((_69 = req.query['encoder-ordinal']) !== null && _69 !== void 0 ? _69 : '1'));
863
908
  const result = yield (0, rxjs_1.lastValueFrom)(client.request.checkCirculoEncoderErrors(deviceRef, encoderOrdinal));
864
909
  res.send(result);
865
910
  })));
@@ -869,12 +914,12 @@ app.get('/api/devices/:deviceRef/start-integro-encoder-calibration', asyncHandle
869
914
  res.send();
870
915
  })));
871
916
  app.get('/api/devices/:deviceRef/circulo-encoder-magnet-distance', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
872
- var _64, _65, _66;
917
+ var _70, _71, _72;
873
918
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
874
919
  const deviceRefObj = (0, device_1.makeDeviceRefObj)(deviceRef);
875
- const encoderOrdinal = parseInt(((_64 = req.query['encoder-ordinal']) !== null && _64 !== void 0 ? _64 : '1'));
876
- const ringRevision = parseInt(((_65 = req.query['ring-revision']) !== null && _65 !== void 0 ? _65 : '0'));
877
- const requestTimeout = parseInt(((_66 = req.query['request-timeout']) !== null && _66 !== void 0 ? _66 : '5000'));
920
+ const encoderOrdinal = parseInt(((_70 = req.query['encoder-ordinal']) !== null && _70 !== void 0 ? _70 : '1'));
921
+ const ringRevision = parseInt(((_71 = req.query['ring-revision']) !== null && _71 !== void 0 ? _71 : '0'));
922
+ const requestTimeout = parseInt(((_72 = req.query['request-timeout']) !== null && _72 !== void 0 ? _72 : '5000'));
878
923
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.getCirculoEncoderMagnetDistance(Object.assign(Object.assign({}, deviceRefObj), { encoderOrdinal, ringRevision }), requestTimeout));
879
924
  if (status.request === 'succeeded') {
880
925
  res.send({ distance: status.distance, position: status.position });
@@ -884,7 +929,7 @@ app.get('/api/devices/:deviceRef/circulo-encoder-magnet-distance', asyncHandler(
884
929
  }
885
930
  })));
886
931
  app.post('/api/devices/:deviceRef/run-os-command', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
887
- var _67, _68, _69, _70;
932
+ var _73, _74, _75, _76;
888
933
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
889
934
  const commandQuery = req.query['command'];
890
935
  if (!commandQuery) {
@@ -899,12 +944,12 @@ app.post('/api/devices/:deviceRef/run-os-command', asyncHandler((req, res) => ts
899
944
  return;
900
945
  }
901
946
  const commandArray = new Uint8Array(command);
902
- const commandTimeout = parseInt(((_67 = req.query['command-timeout']) !== null && _67 !== void 0 ? _67 : '10000'));
903
- const responsePollingInterval = parseInt(((_68 = req.query['response-polling-interval']) !== null && _68 !== void 0 ? _68 : '1000'));
947
+ const commandTimeout = parseInt(((_73 = req.query['command-timeout']) !== null && _73 !== void 0 ? _73 : '10000'));
948
+ const responsePollingInterval = parseInt(((_74 = req.query['response-polling-interval']) !== null && _74 !== void 0 ? _74 : '1000'));
904
949
  const osCommandModeQuery = req.query['os-command-mode'];
905
950
  const osCommandMode = osCommandModeQuery !== undefined && asBoolean(osCommandModeQuery)
906
951
  ? true
907
- : (_69 = os_command_1.OsCommandMode[osCommandModeQuery === null || osCommandModeQuery === void 0 ? void 0 : osCommandModeQuery.toUpperCase()]) !== null && _69 !== void 0 ? _69 : false;
952
+ : (_75 = os_command_1.OsCommandMode[osCommandModeQuery === null || osCommandModeQuery === void 0 ? void 0 : osCommandModeQuery.toUpperCase()]) !== null && _75 !== void 0 ? _75 : false;
908
953
  const readFsBuffer = asBoolean(req.query['read-fs-buffer']);
909
954
  const fsBufferContent = req.body;
910
955
  let fsBufferContentArray = undefined;
@@ -912,7 +957,7 @@ app.post('/api/devices/:deviceRef/run-os-command', asyncHandler((req, res) => ts
912
957
  fsBufferContentArray = new Uint8Array(fsBufferContent);
913
958
  }
914
959
  const fsBuffer = fsBufferContentArray !== null && fsBufferContentArray !== void 0 ? fsBufferContentArray : readFsBuffer;
915
- const fsBufferReadWriteTimeout = parseInt(((_70 = req.query['fs-buffer-read-write-timeout']) !== null && _70 !== void 0 ? _70 : '30000'));
960
+ const fsBufferReadWriteTimeout = parseInt(((_76 = req.query['fs-buffer-read-write-timeout']) !== null && _76 !== void 0 ? _76 : '30000'));
916
961
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.runOsCommand(deviceRef, commandArray, commandTimeout, responsePollingInterval, osCommandMode, fsBuffer, fsBufferReadWriteTimeout));
917
962
  if (status.request === 'succeeded') {
918
963
  res.send(status);
@@ -922,10 +967,10 @@ app.post('/api/devices/:deviceRef/run-os-command', asyncHandler((req, res) => ts
922
967
  }
923
968
  })));
924
969
  app.post('/api/devices/:deviceRef/configure-smm', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
925
- var _71, _72, _73;
970
+ var _77, _78, _79;
926
971
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
927
- const username = (_71 = req.query['username']) !== null && _71 !== void 0 ? _71 : 'Test';
928
- const password = (_72 = req.query['password']) !== null && _72 !== void 0 ? _72 : 'SomanetSMM';
972
+ const username = (_77 = req.query['username']) !== null && _77 !== void 0 ? _77 : 'Test';
973
+ const password = (_78 = req.query['password']) !== null && _78 !== void 0 ? _78 : 'SomanetSMM';
929
974
  let configString;
930
975
  if (Buffer.isBuffer(req.body)) {
931
976
  // application/octet-stream (or express.raw)
@@ -936,49 +981,49 @@ app.post('/api/devices/:deviceRef/configure-smm', asyncHandler((req, res) => tsl
936
981
  configString = req.body;
937
982
  }
938
983
  else {
939
- const contentType = (_73 = req.headers['content-type']) !== null && _73 !== void 0 ? _73 : '';
984
+ const contentType = (_79 = req.headers['content-type']) !== null && _79 !== void 0 ? _79 : '';
940
985
  throw new Error(`Unsupported body type for configure-smm: ${typeof req.body} (Content-Type: ${contentType})`);
941
986
  }
942
987
  const safetyParametersReport = yield (0, rxjs_1.lastValueFrom)(client.request.configureSmmFromFile(deviceRef, username, password, configString));
943
988
  res.send(safetyParametersReport);
944
989
  })));
945
990
  app.post('/api/devices/:deviceRef/update-smm-software', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
946
- var _74, _75, _76, _77, _78, _79, _80;
991
+ var _80, _81, _82, _83, _84, _85, _86;
947
992
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
948
- const username = (_74 = req.query['username']) !== null && _74 !== void 0 ? _74 : 'Test';
949
- const password = (_75 = req.query['password']) !== null && _75 !== void 0 ? _75 : 'SomanetSMM';
950
- const crc = parseInt(((_76 = req.query['crc']) !== null && _76 !== void 0 ? _76 : ''), 16);
993
+ const username = (_80 = req.query['username']) !== null && _80 !== void 0 ? _80 : 'Test';
994
+ const password = (_81 = req.query['password']) !== null && _81 !== void 0 ? _81 : 'SomanetSMM';
995
+ const crc = parseInt(((_82 = req.query['crc']) !== null && _82 !== void 0 ? _82 : ''), 16);
951
996
  // Validate CRC
952
997
  if (Number.isNaN(crc)) {
953
998
  res.status(400).send('Invalid CRC format. Expected hexadecimal string.');
954
999
  return;
955
1000
  }
956
1001
  // Get optional parameters from query string
957
- const chunkSize = parseInt(((_77 = req.query['chunkSize']) !== null && _77 !== void 0 ? _77 : '1000'));
958
- const commandTimeout = parseInt(((_78 = req.query['commandTimeout']) !== null && _78 !== void 0 ? _78 : '30000'));
959
- const responsePollingInterval = parseInt(((_79 = req.query['responsePollingInterval']) !== null && _79 !== void 0 ? _79 : '1000'));
960
- const fsBufferReadWriteTimeout = parseInt(((_80 = req.query['fsBufferReadWriteTimeout']) !== null && _80 !== void 0 ? _80 : '120000'));
1002
+ const chunkSize = parseInt(((_83 = req.query['chunkSize']) !== null && _83 !== void 0 ? _83 : '1000'));
1003
+ const commandTimeout = parseInt(((_84 = req.query['commandTimeout']) !== null && _84 !== void 0 ? _84 : '30000'));
1004
+ const responsePollingInterval = parseInt(((_85 = req.query['responsePollingInterval']) !== null && _85 !== void 0 ? _85 : '1000'));
1005
+ const fsBufferReadWriteTimeout = parseInt(((_86 = req.query['fsBufferReadWriteTimeout']) !== null && _86 !== void 0 ? _86 : '120000'));
961
1006
  // Create buffer from request body
962
1007
  const buffer = new Uint8Array(req.body);
963
1008
  yield (0, rxjs_1.lastValueFrom)(client.request.updateSmmSoftware(deviceRef, username, password, buffer, crc, chunkSize, commandTimeout, responsePollingInterval, fsBufferReadWriteTimeout));
964
1009
  res.send();
965
1010
  })));
966
1011
  app.post('/api/devices/:deviceRef/update-smm-software-to-encrypted', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
967
- var _81, _82, _83, _84, _85, _86, _87;
1012
+ var _87, _88, _89, _90, _91, _92, _93;
968
1013
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
969
- const username = (_81 = req.query['username']) !== null && _81 !== void 0 ? _81 : 'Test';
970
- const password = (_82 = req.query['password']) !== null && _82 !== void 0 ? _82 : 'SomanetSMM';
971
- const crc = parseInt(((_83 = req.query['crc']) !== null && _83 !== void 0 ? _83 : ''), 16);
1014
+ const username = (_87 = req.query['username']) !== null && _87 !== void 0 ? _87 : 'Test';
1015
+ const password = (_88 = req.query['password']) !== null && _88 !== void 0 ? _88 : 'SomanetSMM';
1016
+ const crc = parseInt(((_89 = req.query['crc']) !== null && _89 !== void 0 ? _89 : ''), 16);
972
1017
  // Validate CRC
973
1018
  if (Number.isNaN(crc)) {
974
1019
  res.status(400).send('Invalid CRC format. Expected hexadecimal string.');
975
1020
  return;
976
1021
  }
977
1022
  // Get optional parameters from query string
978
- const chunkSize = parseInt(((_84 = req.query['chunkSize']) !== null && _84 !== void 0 ? _84 : '1000'));
979
- const commandTimeout = parseInt(((_85 = req.query['commandTimeout']) !== null && _85 !== void 0 ? _85 : '30000'));
980
- const responsePollingInterval = parseInt(((_86 = req.query['responsePollingInterval']) !== null && _86 !== void 0 ? _86 : '1000'));
981
- const fsBufferReadWriteTimeout = parseInt(((_87 = req.query['fsBufferReadWriteTimeout']) !== null && _87 !== void 0 ? _87 : '120000'));
1023
+ const chunkSize = parseInt(((_90 = req.query['chunkSize']) !== null && _90 !== void 0 ? _90 : '1000'));
1024
+ const commandTimeout = parseInt(((_91 = req.query['commandTimeout']) !== null && _91 !== void 0 ? _91 : '30000'));
1025
+ const responsePollingInterval = parseInt(((_92 = req.query['responsePollingInterval']) !== null && _92 !== void 0 ? _92 : '1000'));
1026
+ const fsBufferReadWriteTimeout = parseInt(((_93 = req.query['fsBufferReadWriteTimeout']) !== null && _93 !== void 0 ? _93 : '120000'));
982
1027
  // Create buffer from request body
983
1028
  const buffer = new Uint8Array(req.body);
984
1029
  yield (0, rxjs_1.lastValueFrom)(client.request.updateSmmSoftwareToEncrypted(deviceRef, username, password, buffer, crc, chunkSize, commandTimeout, responsePollingInterval, fsBufferReadWriteTimeout));
@@ -991,16 +1036,16 @@ app.get('/api/devices/:deviceRef/write-circulo-integrated-encoder-config-bin-fil
991
1036
  res.send(status);
992
1037
  })));
993
1038
  app.get('/api/devices/:deviceRef/run-chirp-signal', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
994
- var _88, _89, _90, _91, _92, _93, _94, _95;
1039
+ var _94, _95, _96, _97, _98, _99, _100, _101;
995
1040
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
996
- const hrdStreamingDuration = parseInt(((_88 = req.query['hrd-streaming-duration']) !== null && _88 !== void 0 ? _88 : '4000'));
997
- const modesOfOperation = parseInt(((_89 = req.query['modes-of-operation']) !== null && _89 !== void 0 ? _89 : '10'));
998
- const signalType = parseInt(((_90 = req.query['signal-type']) !== null && _90 !== void 0 ? _90 : '0'));
999
- const startFrequency = parseInt(((_91 = req.query['start-frequency']) !== null && _91 !== void 0 ? _91 : '2000'));
1000
- const startProcedure = parseInt(((_92 = req.query['start-procedure']) !== null && _92 !== void 0 ? _92 : '2'));
1001
- const targetAmplitude = parseInt(((_93 = req.query['target-amplitude']) !== null && _93 !== void 0 ? _93 : '300'));
1002
- const targetFrequency = parseInt(((_94 = req.query['target-frequency']) !== null && _94 !== void 0 ? _94 : '100000'));
1003
- const transitionTime = parseInt(((_95 = req.query['transition-time']) !== null && _95 !== void 0 ? _95 : '3000'));
1041
+ const hrdStreamingDuration = parseInt(((_94 = req.query['hrd-streaming-duration']) !== null && _94 !== void 0 ? _94 : '4000'));
1042
+ const modesOfOperation = parseInt(((_95 = req.query['modes-of-operation']) !== null && _95 !== void 0 ? _95 : '10'));
1043
+ const signalType = parseInt(((_96 = req.query['signal-type']) !== null && _96 !== void 0 ? _96 : '0'));
1044
+ const startFrequency = parseInt(((_97 = req.query['start-frequency']) !== null && _97 !== void 0 ? _97 : '2000'));
1045
+ const startProcedure = parseInt(((_98 = req.query['start-procedure']) !== null && _98 !== void 0 ? _98 : '2'));
1046
+ const targetAmplitude = parseInt(((_99 = req.query['target-amplitude']) !== null && _99 !== void 0 ? _99 : '300'));
1047
+ const targetFrequency = parseInt(((_100 = req.query['target-frequency']) !== null && _100 !== void 0 ? _100 : '100000'));
1048
+ const transitionTime = parseInt(((_101 = req.query['transition-time']) !== null && _101 !== void 0 ? _101 : '3000'));
1004
1049
  const options = {
1005
1050
  hrdStreamingDuration,
1006
1051
  modesOfOperation,
@@ -1021,18 +1066,18 @@ app.get('/api/devices/:deviceRef/run-chirp-signal', asyncHandler((req, res) => t
1021
1066
  }
1022
1067
  })));
1023
1068
  app.get('/api/devices/:deviceRef/start-limited-range-system-identification', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
1024
- var _96, _97, _98, _99, _100, _101, _102;
1069
+ var _102, _103, _104, _105, _106, _107, _108;
1025
1070
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
1026
- const hrdStreamingDuration = parseInt(((_96 = req.query['hrd-streaming-duration']) !== null && _96 !== void 0 ? _96 : '3200'));
1071
+ const hrdStreamingDuration = parseInt(((_102 = req.query['hrd-streaming-duration']) !== null && _102 !== void 0 ? _102 : '3200'));
1027
1072
  const modesOfOperation = cia402_1.ModesOfOperation.CYCLIC_SYNC_POSITION_MODE;
1028
- const rangeLimit = parseInt(((_97 = req.query['range-limit']) !== null && _97 !== void 0 ? _97 : '10000'));
1029
- const rangeLimitMin = parseInt(((_98 = req.query['range-limit-min']) !== null && _98 !== void 0 ? _98 : '1000'));
1073
+ const rangeLimit = parseInt(((_103 = req.query['range-limit']) !== null && _103 !== void 0 ? _103 : '10000'));
1074
+ const rangeLimitMin = parseInt(((_104 = req.query['range-limit-min']) !== null && _104 !== void 0 ? _104 : '1000'));
1030
1075
  const signalType = os_command_1.SystemIdentificationOsCommandSignalType.LINEAR_WITH_CONSTANT_AMPLITUDE;
1031
- const startFrequency = parseInt(((_99 = req.query['start-frequency']) !== null && _99 !== void 0 ? _99 : '1000'));
1076
+ const startFrequency = parseInt(((_105 = req.query['start-frequency']) !== null && _105 !== void 0 ? _105 : '1000'));
1032
1077
  const startProcedure = os_command_1.SystemIdentificationOsCommandStartProcedure.WAIT_FOR_HRD_STREAMING_TO_START;
1033
- const targetAmplitude = parseInt(((_100 = req.query['target-amplitude']) !== null && _100 !== void 0 ? _100 : '300'));
1034
- const targetFrequency = parseInt(((_101 = req.query['target-frequency']) !== null && _101 !== void 0 ? _101 : '10000'));
1035
- const transitionTime = parseInt(((_102 = req.query['transition-time']) !== null && _102 !== void 0 ? _102 : '3000'));
1078
+ const targetAmplitude = parseInt(((_106 = req.query['target-amplitude']) !== null && _106 !== void 0 ? _106 : '300'));
1079
+ const targetFrequency = parseInt(((_107 = req.query['target-frequency']) !== null && _107 !== void 0 ? _107 : '10000'));
1080
+ const transitionTime = parseInt(((_108 = req.query['transition-time']) !== null && _108 !== void 0 ? _108 : '3000'));
1036
1081
  const options = {
1037
1082
  hrdStreamingDuration,
1038
1083
  modesOfOperation,
@@ -1070,15 +1115,15 @@ app.get('/api/motion-composer/stop', asyncHandler((_req, res) => tslib_1.__await
1070
1115
  res.send();
1071
1116
  })));
1072
1117
  app.get('/api/devices/:deviceRef/run-kubler-encoder-register-communication-os-command', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
1073
- var _103, _104, _105, _106, _107, _108, _109;
1118
+ var _109, _110, _111, _112, _113, _114, _115;
1074
1119
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
1075
- const rw = parseInt(((_103 = req.query['rw']) !== null && _103 !== void 0 ? _103 : '0'));
1076
- const registerAddress = parseInt(((_104 = req.query['register-address']) !== null && _104 !== void 0 ? _104 : '0'));
1077
- const registerLength = parseInt(((_105 = req.query['register-length']) !== null && _105 !== void 0 ? _105 : '0'));
1078
- const registerWriteValue = parseInt(((_106 = req.query['register-write-value']) !== null && _106 !== void 0 ? _106 : '0'));
1079
- const commandTimeout = parseInt(((_107 = req.query['command-timeout']) !== null && _107 !== void 0 ? _107 : '10000'));
1080
- const responsePollingInterval = parseInt(((_108 = req.query['response-polling-interval']) !== null && _108 !== void 0 ? _108 : '1000'));
1081
- const osCommandMode = asBoolean(((_109 = req.query['os-command-mode']) !== null && _109 !== void 0 ? _109 : 'false'));
1120
+ const rw = parseInt(((_109 = req.query['rw']) !== null && _109 !== void 0 ? _109 : '0'));
1121
+ const registerAddress = parseInt(((_110 = req.query['register-address']) !== null && _110 !== void 0 ? _110 : '0'));
1122
+ const registerLength = parseInt(((_111 = req.query['register-length']) !== null && _111 !== void 0 ? _111 : '0'));
1123
+ const registerWriteValue = parseInt(((_112 = req.query['register-write-value']) !== null && _112 !== void 0 ? _112 : '0'));
1124
+ const commandTimeout = parseInt(((_113 = req.query['command-timeout']) !== null && _113 !== void 0 ? _113 : '10000'));
1125
+ const responsePollingInterval = parseInt(((_114 = req.query['response-polling-interval']) !== null && _114 !== void 0 ? _114 : '1000'));
1126
+ const osCommandMode = asBoolean(((_115 = req.query['os-command-mode']) !== null && _115 !== void 0 ? _115 : 'false'));
1082
1127
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.runKublerEncoderRegisterCommunicationOsCommand(deviceRef, rw, registerAddress, registerLength, registerWriteValue, commandTimeout, responsePollingInterval, osCommandMode));
1083
1128
  if (status.request === 'succeeded') {
1084
1129
  res.send(status);
@@ -1127,28 +1172,28 @@ app.get('/api/devices/:deviceRef/factory-reset', asyncHandler((req, res) => tsli
1127
1172
  }
1128
1173
  })));
1129
1174
  app.get('/api/devices/:deviceRef/monitoring/start', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
1130
- var _110;
1175
+ var _116;
1131
1176
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
1132
1177
  const device = yield (0, rxjs_1.lastValueFrom)(client.request.resolveDevice(deviceRef));
1133
1178
  const monitoringParameterIds = yield createDefaultDataMonitoringParameterIds(deviceRef);
1134
- (_110 = dataMonitoringMap.get(device.id)) === null || _110 === void 0 ? void 0 : _110.stop();
1179
+ (_116 = dataMonitoringMap.get(device.id)) === null || _116 === void 0 ? void 0 : _116.stop();
1135
1180
  const dataMonitoring = client.createDataMonitoring(monitoringParameterIds, 1000);
1136
1181
  dataMonitoring.start();
1137
1182
  dataMonitoringMap.set(device.id, dataMonitoring);
1138
1183
  res.send();
1139
1184
  })));
1140
1185
  app.get('/api/devices/:deviceRef/monitoring/data', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
1141
- var _111;
1186
+ var _117;
1142
1187
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
1143
1188
  const device = yield (0, rxjs_1.lastValueFrom)(client.request.resolveDevice(deviceRef));
1144
1189
  const dataMonitoring = dataMonitoringMap.get(device.id);
1145
- res.type('text/csv').send((_111 = dataMonitoring === null || dataMonitoring === void 0 ? void 0 : dataMonitoring.csv) !== null && _111 !== void 0 ? _111 : '');
1190
+ res.type('text/csv').send((_117 = dataMonitoring === null || dataMonitoring === void 0 ? void 0 : dataMonitoring.csv) !== null && _117 !== void 0 ? _117 : '');
1146
1191
  })));
1147
1192
  app.get('/api/devices/:deviceRef/monitoring/stop', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
1148
- var _112;
1193
+ var _118;
1149
1194
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
1150
1195
  const device = yield (0, rxjs_1.lastValueFrom)(client.request.resolveDevice(deviceRef));
1151
- (_112 = dataMonitoringMap.get(device.id)) === null || _112 === void 0 ? void 0 : _112.stop();
1196
+ (_118 = dataMonitoringMap.get(device.id)) === null || _118 === void 0 ? void 0 : _118.stop();
1152
1197
  res.send();
1153
1198
  })));
1154
1199
  app.listen(port, () => {