motion-master-client 0.0.118 → 0.0.119

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.118",
3
+ "version": "0.0.119",
4
4
  "type": "commonjs",
5
5
  "description": "A library and CLI program used for communicating with Motion Master.",
6
6
  "dependencies": {
package/src/api.js CHANGED
@@ -14,13 +14,15 @@ let client;
14
14
  function errmsg(err) {
15
15
  return err instanceof Error ? err.message : 'Unknown error';
16
16
  }
17
+ // Middleware to parse raw binary data
18
+ app.use(express_1.default.raw({ type: 'application/octet-stream', limit: '10mb' }));
17
19
  // Middleware to handle a non-existing instance of a client
18
20
  app.use((req, res, next) => {
19
21
  if (req.path.startsWith('/api/connect') || req.path === '/api/disconnect') {
20
22
  return next();
21
23
  }
22
24
  if (!client) {
23
- res.status(400).send('Client has not been created. Please connect using GET /api/connect/:hostname? before making requests to Motion Master.');
25
+ res.status(400).send({ error: 'Client has not been created. Please connect using GET /api/connect/:hostname? before making requests to Motion Master.' });
24
26
  return;
25
27
  }
26
28
  next();
@@ -41,7 +43,7 @@ const asyncHandler = (fn) => (req, res, next) => tslib_1.__awaiter(void 0, void
41
43
  app.get('/api/connect/:hostname?', (req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
42
44
  var _a;
43
45
  if (client) {
44
- res.status(400).send('Client has already been created. Please disconnect (GET /api/disconnect) before creating a new client.');
46
+ res.status(409).send({ error: 'Client has already been created. Please disconnect (GET /api/disconnect) before creating a new client.' });
45
47
  return;
46
48
  }
47
49
  const hostname = (_a = req.params['hostname']) !== null && _a !== void 0 ? _a : '127.0.0.1';
@@ -62,23 +64,14 @@ app.get('/api/disconnect', (_req, res) => {
62
64
  client = undefined;
63
65
  res.status(204).send();
64
66
  });
65
- app.get('/api/get-system-version', asyncHandler((_req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
67
+ app.get('/api/system-version', asyncHandler((_req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
66
68
  const status = yield (0, rxjs_1.lastValueFrom)(client.request.getSystemVersion(5000));
67
- res.send(status);
68
- })));
69
- app.get('/api/get-device-info', asyncHandler((_req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
70
- const status = yield (0, rxjs_1.lastValueFrom)(client.request.getDeviceInfo(5000));
71
- res.send(status);
69
+ res.send({ version: status.version });
72
70
  })));
73
71
  app.get('/api/devices', asyncHandler((_req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
74
72
  const devices = yield (0, rxjs_1.lastValueFrom)(client.request.getDevices(10000));
75
73
  res.send(devices);
76
74
  })));
77
- app.get('/api/devices/:deviceRef/get-device-file-list', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
78
- const deviceRefObj = (0, device_1.makeDeviceRefObj)(req.params['deviceRef']);
79
- const status = yield (0, rxjs_1.lastValueFrom)(client.request.getDeviceFileList(deviceRefObj, 5000));
80
- res.send(status);
81
- })));
82
75
  app.get('/api/devices/:deviceRef/upload/:index/:subindex', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
83
76
  const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
84
77
  const index = parseInt(req.params['index'], 16);
@@ -94,6 +87,31 @@ app.get('/api/devices/:deviceRef/download/:index/:subindex/:value', asyncHandler
94
87
  yield client.request.download(deviceRef, index, subindex, value);
95
88
  res.status(204).send();
96
89
  })));
90
+ app.get('/api/devices/:deviceRef/files', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
91
+ const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
92
+ const value = yield (0, rxjs_1.lastValueFrom)(client.request.getFiles(deviceRef));
93
+ res.send(value);
94
+ })));
95
+ app.get('/api/devices/:deviceRef/files/:filename', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
96
+ const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
97
+ const filename = req.params['filename'];
98
+ const value = yield (0, rxjs_1.lastValueFrom)(client.request.getDecodedFile(deviceRef, filename));
99
+ res.send(value);
100
+ })));
101
+ app.post('/api/devices/:deviceRef/files/:filename', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
102
+ const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
103
+ const filename = req.params['filename'];
104
+ const buffer = req.body;
105
+ const content = new Uint8Array(buffer);
106
+ yield (0, rxjs_1.lastValueFrom)(client.request.setFile(deviceRef, filename, content, true, 30000));
107
+ res.send();
108
+ })));
109
+ app.delete('/api/devices/:deviceRef/files/:filename', asyncHandler((req, res) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
110
+ const deviceRef = (0, device_1.ensureDeviceRef)(req.params['deviceRef']);
111
+ const filename = req.params['filename'];
112
+ yield (0, rxjs_1.lastValueFrom)(client.request.deleteFile(deviceRef, filename));
113
+ res.send();
114
+ })));
97
115
  app.listen(port, () => {
98
116
  log(`API server is now running on port ${port}.`);
99
117
  });
package/src/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../libs/motion-master-client/src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../libs/motion-master-client/src/api.ts"],"names":[],"mappings":";;;AAAA,0DAA0B;AAC1B,8DAAgF;AAChF,+BAAqC;AACrC,yCAA+C;AAC/C,qEAA0F;AAE1F,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAExD,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,OAAO,CAAC,CAAC;AAE3B,MAAM,GAAG,GAAgB,IAAA,iBAAO,GAAE,CAAC;AACnC,MAAM,IAAI,GAAG,KAAK,CAAC;AAEnB,IAAI,MAAsC,CAAC;AAE3C,SAAS,MAAM,CAAC,GAAY;IAC1B,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;AAC9D,CAAC;AAED,sCAAsC;AACtC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAE1E,2DAA2D;AAC3D,GAAG,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;IAChE,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,EAAE;QACzE,OAAO,IAAI,EAAE,CAAC;KACf;IAED,IAAI,CAAC,MAAM,EAAE;QACX,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wHAAwH,EAAE,CAAC,CAAC;QAC1J,OAAO;KACR;IAED,IAAI,EAAE,CAAC;AACT,CAAC,CAAC,CAAC;AAEH,8BAA8B;AAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,GAAU,EAAE,IAAa,EAAE,GAAa,EAAE,KAAmB,EAAQ,EAAE;IAC9E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAIH,kCAAkC;AAClC,MAAM,YAAY,GAAG,CAAC,EAAwB,EAAE,EAAE,CAAC,CAAO,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IAC3G,IAAI;QACF,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;KAC1B;IAAC,OAAO,GAAG,EAAE;QACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KAC9C;AACH,CAAC,CAAA,CAAC;AAEF,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAO,GAAY,EAAE,GAAa,EAAE,EAAE;;IACvE,IAAI,MAAM,EAAE;QACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wGAAwG,EAAE,CAAC,CAAC;QAC1I,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,MAAA,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,mCAAI,WAAW,CAAC;IACvD,GAAG,CAAC,kEAAkE,QAAQ,GAAG,CAAC,CAAC;IACnF,MAAM,GAAG,IAAA,+CAAwB,EAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI;QACF,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;KACtF;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KAC9C;AACH,CAAC,CAAA,CAAC,CAAC;AAEH,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;IAC1D,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAChC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,EAAE,CAAC;IACvB,MAAM,GAAG,SAAS,CAAC;IACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAO,IAAa,EAAE,GAAa,EAAE,EAAE;IACjF,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAa,EAAC,MAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3E,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AACxC,CAAC,CAAA,CAAC,CAAC,CAAC;AAEJ,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAO,IAAa,EAAE,GAAa,EAAE,EAAE;IAC1E,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAa,EAAC,MAAO,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpB,CAAC,CAAA,CAAC,CAAC,CAAC;AAEJ,GAAG,CAAC,GAAG,CAAC,iDAAiD,EAAE,YAAY,CAAC,CAAO,GAAY,EAAE,GAAa,EAAE,EAAE;IAC5G,MAAM,SAAS,GAAG,IAAA,wBAAe,EAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAEtD,MAAM,KAAK,GAAG,MAAM,MAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAEvE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACtB,CAAC,CAAA,CAAC,CAAC,CAAC;AAEJ,GAAG,CAAC,GAAG,CAAC,0DAA0D,EAAE,YAAY,CAAC,CAAO,GAAY,EAAE,GAAa,EAAE,EAAE;IACrH,MAAM,SAAS,GAAG,IAAA,wBAAe,EAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElC,MAAM,MAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAElE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC,CAAA,CAAC,CAAC,CAAC;AAEJ,GAAG,CAAC,GAAG,CAAC,+BAA+B,EAAE,YAAY,CAAC,CAAO,GAAY,EAAE,GAAa,EAAE,EAAE;IAC1F,MAAM,SAAS,GAAG,IAAA,wBAAe,EAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAG,MAAM,IAAA,oBAAa,EAAC,MAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAEvE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC,CAAA,CAAC,CAAC,CAAC;AAEJ,GAAG,CAAC,GAAG,CAAC,yCAAyC,EAAE,YAAY,CAAC,CAAO,GAAY,EAAE,GAAa,EAAE,EAAE;IACpG,MAAM,SAAS,GAAG,IAAA,wBAAe,EAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,MAAM,IAAA,oBAAa,EAAC,MAAO,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvF,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC,CAAA,CAAC,CAAC,CAAC;AAEJ,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE,YAAY,CAAC,CAAO,GAAY,EAAE,GAAa,EAAE,EAAE;IACrG,MAAM,SAAS,GAAG,IAAA,wBAAe,EAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,MAAM,GAAW,GAAG,CAAC,IAAc,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAEvC,MAAM,IAAA,oBAAa,EAAC,MAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAExF,GAAG,CAAC,IAAI,EAAE,CAAC;AACb,CAAC,CAAA,CAAC,CAAC,CAAC;AAEJ,GAAG,CAAC,MAAM,CAAC,yCAAyC,EAAE,YAAY,CAAC,CAAO,GAAY,EAAE,GAAa,EAAE,EAAE;IACvG,MAAM,SAAS,GAAG,IAAA,wBAAe,EAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAExC,MAAM,IAAA,oBAAa,EAAC,MAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAErE,GAAG,CAAC,IAAI,EAAE,CAAC;AACb,CAAC,CAAA,CAAC,CAAC,CAAC;AAEJ,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;IACpB,GAAG,CAAC,qCAAqC,IAAI,GAAG,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC"}
package/src/index.d.ts CHANGED
@@ -25,6 +25,7 @@ export * from './lib/os-command';
25
25
  export * from './lib/parameter';
26
26
  export * from './lib/product';
27
27
  export * from './lib/request-status-resolver';
28
+ export * from './lib/sii';
28
29
  export * from './lib/system-log-line';
29
30
  export * from './lib/types';
30
31
  export * from './lib/urls';
package/src/index.js CHANGED
@@ -28,6 +28,7 @@ tslib_1.__exportStar(require("./lib/os-command"), exports);
28
28
  tslib_1.__exportStar(require("./lib/parameter"), exports);
29
29
  tslib_1.__exportStar(require("./lib/product"), exports);
30
30
  tslib_1.__exportStar(require("./lib/request-status-resolver"), exports);
31
+ tslib_1.__exportStar(require("./lib/sii"), exports);
31
32
  tslib_1.__exportStar(require("./lib/system-log-line"), exports);
32
33
  tslib_1.__exportStar(require("./lib/types"), exports);
33
34
  tslib_1.__exportStar(require("./lib/urls"), exports);
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/motion-master-client/src/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B;AAC7B,4DAAkC;AAClC,gEAAsC;AACtC,uDAA6B;AAC7B,gEAAsC;AACtC,iEAAuC;AACvC,wDAA8B;AAC9B,qEAA2C;AAC3C,gEAAsC;AACtC,4EAAkD;AAClD,kEAAwC;AACxC,iEAAuC;AACvC,qEAA2C;AAC3C,6EAAmD;AACnD,6EAAmD;AACnD,iFAAuD;AACvD,oFAA0D;AAC1D,6EAAmD;AACnD,6EAAmD;AACnD,iFAAuD;AACvD,oFAA0D;AAC1D,0DAAgC;AAChC,wDAA8B;AAC9B,2DAAiC;AACjC,0DAAgC;AAChC,wDAA8B;AAC9B,wEAA8C;AAC9C,gEAAsC;AACtC,sDAA4B;AAC5B,qDAA2B;AAC3B,qDAA2B;AAC3B,kFAAwD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/motion-master-client/src/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B;AAC7B,4DAAkC;AAClC,gEAAsC;AACtC,uDAA6B;AAC7B,gEAAsC;AACtC,iEAAuC;AACvC,wDAA8B;AAC9B,qEAA2C;AAC3C,gEAAsC;AACtC,4EAAkD;AAClD,kEAAwC;AACxC,iEAAuC;AACvC,qEAA2C;AAC3C,6EAAmD;AACnD,6EAAmD;AACnD,iFAAuD;AACvD,oFAA0D;AAC1D,6EAAmD;AACnD,6EAAmD;AACnD,iFAAuD;AACvD,oFAA0D;AAC1D,0DAAgC;AAChC,wDAA8B;AAC9B,2DAAiC;AACjC,0DAAgC;AAChC,wDAA8B;AAC9B,wEAA8C;AAC9C,oDAA0B;AAC1B,gEAAsC;AACtC,sDAA4B;AAC5B,qDAA2B;AAC3B,qDAA2B;AAC3B,kFAAwD"}
@@ -19,7 +19,7 @@ export interface CirculoEncoderBatteryMode {
19
19
  maxCurrent: number;
20
20
  value: number;
21
21
  }
22
- export declare const circuloEncoderBatteryModeMap: Map<"Node 400" | "Node 1000" | "Node 2000" | "Circulo 7" | "Circulo 9" | "Integro 60" | "Integro 80", CirculoEncoderBatteryMode[]>;
22
+ export declare const circuloEncoderBatteryModeMap: Map<"Node 400" | "Node 1000" | "Node 2000" | "Circulo 7" | "Circulo 9" | "Integro 60" | "Integro 80" | "Actilink 60" | "Actilink 80", CirculoEncoderBatteryMode[]>;
23
23
  export type EncoderShaft = 'motor' | 'driving';
24
24
  export declare function getCirculoEncoderBatteryModeOptions(productId: string | number, shaft?: EncoderShaft): {
25
25
  key: string;
@@ -6,13 +6,24 @@ interface VelocityProfile {
6
6
  acceleration: number;
7
7
  deceleration: number;
8
8
  }
9
+ export declare function parseIntegroEncoderFirmwareVersion(value: number): {
10
+ value: number;
11
+ major: string;
12
+ minor: string;
13
+ datestamp: string;
14
+ year: string;
15
+ month: string;
16
+ day: string;
17
+ };
9
18
  export declare class IntegroEncoderCalibration {
10
19
  private client;
11
20
  readonly deviceRef: DeviceRef;
12
21
  readonly notifications$: Subject<string>;
13
- private readonly poeCalibrationVelocityProfile;
14
- private readonly lookupTableVelocityProfileDirection1;
15
- private readonly lookupTableVelocityProfileDirection2;
22
+ feedConstant: number;
23
+ maxMotorSpeed: number;
24
+ siUnitVelocity: number;
25
+ private readonly ccwVelocityProfile;
26
+ private readonly cwVelocityProfile;
16
27
  constructor(client: MotionMasterClient, deviceRef: DeviceRef);
17
28
  start(debug?: boolean): Promise<void>;
18
29
  /**
@@ -22,13 +33,15 @@ export declare class IntegroEncoderCalibration {
22
33
  /**
23
34
  * Set velocity profile.
24
35
  */
25
- setVelocityProfile(velocityProfile: VelocityProfile, accelerationConstant?: number): Promise<void>;
36
+ setVelocityProfile(velocityProfile: VelocityProfile, accelerationConstant?: number): Promise<VelocityProfile>;
37
+ setVelocityWindow(value: number): Promise<number>;
38
+ setVelocityWindowTime(value: number): Promise<number>;
26
39
  /**
27
40
  * Write encoder register value and validate response.
28
41
  */
29
42
  writeEncoderRegisterValueAndValidateResponse(address: number, value: number, length?: number): Promise<void>;
30
43
  notifyParameterValue(index: number, subindex: number): Promise<void>;
31
- notifyExtendedErrorStatus(): Promise<void>;
44
+ notifyExtendedErrorStatusAndGetErrorCodes(): Promise<number[]>;
32
45
  notifyEncoderSpeeds(): Promise<void>;
33
46
  }
34
47
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IntegroEncoderCalibration = void 0;
3
+ exports.IntegroEncoderCalibration = exports.parseIntegroEncoderFirmwareVersion = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const rxjs_1 = require("rxjs");
6
6
  const device_1 = require("./device");
@@ -12,22 +12,31 @@ const parameter_1 = require("./parameter");
12
12
  function hex(value) {
13
13
  return `0x${value.toString(16).toUpperCase()}`;
14
14
  }
15
+ function parseIntegroEncoderFirmwareVersion(value) {
16
+ const str = String(value).padStart(10, '0');
17
+ const major = str.slice(0, 2);
18
+ const minor = str.slice(2, 4);
19
+ const datestamp = str.slice(4);
20
+ const year = datestamp.slice(0, 2);
21
+ const month = datestamp.slice(2, 4);
22
+ const day = datestamp.slice(4, 6);
23
+ return { value, major, minor, datestamp, year, month, day };
24
+ }
25
+ exports.parseIntegroEncoderFirmwareVersion = parseIntegroEncoderFirmwareVersion;
15
26
  class IntegroEncoderCalibration {
16
27
  constructor(client, deviceRef) {
17
28
  this.client = client;
18
29
  this.deviceRef = deviceRef;
19
30
  this.notifications$ = new rxjs_1.Subject();
20
- this.poeCalibrationVelocityProfile = {
21
- target: 1200,
22
- acceleration: 4800,
23
- deceleration: 4800, // RPM/s
24
- };
25
- this.lookupTableVelocityProfileDirection1 = {
31
+ this.feedConstant = 0;
32
+ this.maxMotorSpeed = 0;
33
+ this.siUnitVelocity = 0;
34
+ this.ccwVelocityProfile = {
26
35
  target: 3000,
27
36
  acceleration: 6000,
28
37
  deceleration: 6000, // RPM/s
29
38
  };
30
- this.lookupTableVelocityProfileDirection2 = {
39
+ this.cwVelocityProfile = {
31
40
  target: -3000,
32
41
  acceleration: 6000,
33
42
  deceleration: 6000, // RPM/s
@@ -39,26 +48,46 @@ class IntegroEncoderCalibration {
39
48
  // Tuning of the control loop should be done by the user.
40
49
  this.notifications$.next(`Validating the device (${this.deviceRef}) before starting the Integro encoder calibration.`);
41
50
  yield this.validateDevice();
51
+ this.feedConstant = yield (0, rxjs_1.lastValueFrom)(this.client.request.getFeedConstant(this.deviceRef));
52
+ this.maxMotorSpeed = yield this.client.request.upload(this.deviceRef, 0x6080, 0);
53
+ this.siUnitVelocity = yield this.client.request.upload(this.deviceRef, 0x60A9, 0);
54
+ // Retrieve the encoder firmware version and display it.
55
+ let osCommandResponse = yield (0, rxjs_1.lastValueFrom)(this.client.request.runKublerEncoderRegisterCommunicationOsCommand(this.deviceRef, 0, 0x04, 4, 0, 10000, 1000, false));
56
+ const encoderFirmwareVersion = parseIntegroEncoderFirmwareVersion(osCommandResponse.kublerRegisterValue);
57
+ this.notifications$.next(`The firmware version of the Integro encoder (register 0x04) is: Major=${encoderFirmwareVersion.major}, Minor=${encoderFirmwareVersion.minor}, Date=${encoderFirmwareVersion.datestamp}, Value=${encoderFirmwareVersion.value}.`);
42
58
  // Retrieve the encoder configuration index assigned to Port 1.
43
59
  const encoder1ConfigurationSensorPort = yield this.client.request.upload(this.deviceRef, 0x2110, 1);
44
60
  const encoderConfigurationIndex = encoder1ConfigurationSensorPort === 1 ? 0x2110 : 0x2112;
45
61
  this.notifications$.next(`Setting the integrated encoder sampling frequency to 16 kHz (${hex(encoderConfigurationIndex)}:28 = 1).`);
46
62
  yield this.client.request.download(this.deviceRef, encoderConfigurationIndex, 28, 1);
47
- yield (0, util_1.resolveAfter)(500);
63
+ yield (0, util_1.resolveAfter)(200);
64
+ // Configure the velocity profile window and time.
65
+ yield this.setVelocityWindow(120);
66
+ yield this.setVelocityWindowTime(500);
48
67
  this.notifications$.next('Switching the source of the velocity to the value provided by the encoder.');
49
68
  yield (0, rxjs_1.lastValueFrom)(this.client.request.runUseInternalEncoderVelocityOsCommand(this.deviceRef, 1, 10000, 1000, false));
50
69
  yield (0, util_1.resolveAfter)(200);
51
- // Trigger the POA automatic calibration with an OS command.
52
- this.notifications$.next('Triggering automatic calibration of the POA by setting register 0x25 to 0x09.');
53
- yield this.writeEncoderRegisterValueAndValidateResponse(0x25, 0x09);
54
70
  // Convert the POE calibration velocity profile values and update the device.
55
- yield this.setVelocityProfile(this.poeCalibrationVelocityProfile, 4);
71
+ let velocityProfile = yield this.setVelocityProfile(this.ccwVelocityProfile, 2);
56
72
  this.notifications$.next('Setting modes of operation to Profile velocity mode and transitioning to Operation enabled CiA402 state.');
57
73
  yield (0, rxjs_1.lastValueFrom)(this.client.request.setModesOfOperation(this.deviceRef, cia402_1.ModesOfOperation.PROFILE_VELOCITY_MODE));
58
74
  yield this.client.request.transitionToCia402State(this.deviceRef, cia402_1.Cia402State.OPERATION_ENABLED);
59
- this.notifications$.next('Polling the encoder register 0x24 until its value equals 0x11 or until 5 seconds have passed.');
60
- // Read the value of the encoder register 0x24 until its value equals 0x11 or until 5 seconds have passed.
61
- let osCommandResponse = yield (0, rxjs_1.lastValueFrom)((0, rxjs_1.defer)(() => this.client.request.runKublerEncoderRegisterCommunicationOsCommand(this.deviceRef, 0, 0x24, 1, 0, 10000, 1000, false).pipe((0, rxjs_1.repeat)({ count: 14, delay: 500 }), (0, rxjs_1.takeWhile)(osCommandResponse => {
75
+ try {
76
+ yield this.client.whenTargetReached(this.deviceRef, 500, 5000);
77
+ yield this.notifyParameterValue(0x606C, 0); // Velocity actual value
78
+ // Trigger the POA automatic calibration with an OS command.
79
+ this.notifications$.next('Triggering automatic calibration of the POA by setting register 0x25 to 0x09.');
80
+ yield this.writeEncoderRegisterValueAndValidateResponse(0x25, 0x09);
81
+ yield (0, util_1.resolveAfter)(500);
82
+ }
83
+ catch (_err) {
84
+ this.client.request.quickStop(this.deviceRef).catch();
85
+ this.notifications$.next(`Target velocity ${velocityProfile.target} can't be reached. Aborting the calibration procedure.`);
86
+ return;
87
+ }
88
+ this.notifications$.next('Polling the encoder register 0x24 until its value equals 0x11 or until 8 seconds have passed.');
89
+ // Read the value of the encoder register 0x24 until its value equals 0x11 or until 8 seconds have passed.
90
+ osCommandResponse = yield (0, rxjs_1.lastValueFrom)((0, rxjs_1.defer)(() => this.client.request.runKublerEncoderRegisterCommunicationOsCommand(this.deviceRef, 0, 0x24, 1, 0, 10000, 1000, false).pipe((0, rxjs_1.repeat)({ count: 16, delay: 500 }), (0, rxjs_1.takeWhile)(osCommandResponse => {
62
91
  if (debug) {
63
92
  this.notifications$.next(`Value read from the encoder register 0x24 is ${hex(osCommandResponse.kublerRegisterValue)}.`);
64
93
  }
@@ -70,20 +99,27 @@ class IntegroEncoderCalibration {
70
99
  else if (osCommandResponse.request === 'succeeded') {
71
100
  this.notifications$.next(`The last value retrieved from register 0x24 is ${osCommandResponse.kublerRegisterValue}: ${os_command_1.kublerEncoderRegisterValueMeaning[0x24][osCommandResponse.kublerRegisterValue]}`);
72
101
  }
73
- yield this.client.request.download(this.deviceRef, 0x60FF, 0, 0);
74
- yield (0, util_1.resolveAfter)(500);
75
- if (osCommandResponse.kublerRegisterValue === 0x09) {
76
- this.notifications$.next('The calibration of the integrated encoder analogue gains cannot converge. Writing 0x05 to the encoder register 0x25.');
77
- yield this.writeEncoderRegisterValueAndValidateResponse(0x25, 0x05);
102
+ if (osCommandResponse.kublerRegisterValue !== 0x11) {
103
+ this.notifications$.next('The analogue gains calibration did not converge. Please repeat the procedure.');
104
+ this.client.request.quickStop(this.deviceRef).catch();
105
+ return;
78
106
  }
107
+ yield (0, util_1.resolveAfter)(500);
79
108
  // Lookup table learning.
80
109
  this.notifications$.next('Running the motor at a constant speed in one direction.');
81
110
  // Run the motor at constant speed in one direction.
82
- this.setVelocityProfile(this.lookupTableVelocityProfileDirection1, 2);
83
- yield (0, util_1.resolveAfter)(2000);
84
- yield this.notifyParameterValue(0x606C, 0); // Velocity actual value
85
- this.notifications$.next('Writing 0x00C2 to the encoder register 0x50.');
86
- yield this.writeEncoderRegisterValueAndValidateResponse(0x50, 0x00C2, 2);
111
+ try {
112
+ yield this.client.whenTargetReached(this.deviceRef, 500, 5000);
113
+ yield this.notifyParameterValue(0x606C, 0); // Velocity actual value
114
+ this.notifications$.next('Writing 0x00C2 to the encoder register 0x50.');
115
+ yield this.writeEncoderRegisterValueAndValidateResponse(0x50, 0x00C2, 2);
116
+ yield (0, util_1.resolveAfter)(500);
117
+ }
118
+ catch (_err) {
119
+ this.client.request.quickStop(this.deviceRef).catch();
120
+ this.notifications$.next(`Target velocity ${velocityProfile.target} can't be reached. Aborting the calibration procedure.`);
121
+ return;
122
+ }
87
123
  // Read the value of the encoder register 0x52 until its value satisfies the following condition (bit 6 = 1) & (bit 8 = 0) or until 8 seconds have passed.
88
124
  osCommandResponse = yield (0, rxjs_1.lastValueFrom)((0, rxjs_1.defer)(() => this.client.request.runKublerEncoderRegisterCommunicationOsCommand(this.deviceRef, 0, 0x52, 2, 0, 10000, 1000, false).pipe((0, rxjs_1.repeat)({ count: 16, delay: 500 }), (0, rxjs_1.takeWhile)(osCommandResponse => {
89
125
  if (debug) {
@@ -98,25 +134,35 @@ class IntegroEncoderCalibration {
98
134
  this.notifications$.next(`The last value retrieved from register 0x52 is ${hex(osCommandResponse.kublerRegisterValue)}`);
99
135
  }
100
136
  yield this.client.request.download(this.deviceRef, 0x60FF, 0, 0);
101
- yield (0, util_1.resolveAfter)(1000);
137
+ yield (0, util_1.resolveAfter)(200);
102
138
  this.notifications$.next('Reversing the rotation direction.');
103
139
  // Reverse the rotation direction.
104
- if (debug) {
105
- try {
106
- yield this.notifyExtendedErrorStatus();
140
+ try {
141
+ const [ec1, ec2] = yield this.notifyExtendedErrorStatusAndGetErrorCodes();
142
+ if ((((ec1 >> 16) & 0xFF) === 0x0F) || (((ec2 >> 16) & 0xFF) === 0x0F)) {
143
+ this.notifications$.next('There was an error in recording the correction table. Please restart the procedure.');
144
+ return;
107
145
  }
108
- catch (err) {
109
- if (err instanceof Error) {
110
- this.notifications$.next(`Failed to notify the extended error status: ${err.message}`);
111
- }
146
+ }
147
+ catch (err) {
148
+ if (err instanceof Error) {
149
+ this.notifications$.next(`Failed to notify the extended error status: ${err.message}`);
112
150
  }
113
151
  }
114
- yield (0, util_1.resolveAfter)(1000);
115
- this.setVelocityProfile(this.lookupTableVelocityProfileDirection2, 2);
116
- yield (0, util_1.resolveAfter)(2000);
117
- yield this.notifyParameterValue(0x606C, 0); // Velocity actual value
118
- this.notifications$.next('Writing 0x00C2 to the encoder register 0x50.');
119
- yield this.writeEncoderRegisterValueAndValidateResponse(0x50, 0x00C2, 2);
152
+ velocityProfile = yield this.setVelocityProfile(this.cwVelocityProfile, 2);
153
+ try {
154
+ yield this.client.whenTargetReached(this.deviceRef, 500, 5000);
155
+ yield this.notifyParameterValue(0x606C, 0); // Velocity actual value
156
+ // Trigger the POA automatic calibration with an OS command.
157
+ this.notifications$.next('Writing 0x00C2 to the encoder register 0x50.');
158
+ yield this.writeEncoderRegisterValueAndValidateResponse(0x50, 0x00C2, 2);
159
+ yield (0, util_1.resolveAfter)(500);
160
+ }
161
+ catch (_err) {
162
+ this.client.request.quickStop(this.deviceRef).catch();
163
+ this.notifications$.next(`Target velocity ${velocityProfile.target} can't be reached. Aborting the calibration procedure.`);
164
+ return;
165
+ }
120
166
  // Read the value of the encoder register 0x52 until its value satisfies the following condition (bit 6 = 1) & (bit 8 = 0) or until 8 seconds have passed.
121
167
  osCommandResponse = yield (0, rxjs_1.lastValueFrom)((0, rxjs_1.defer)(() => this.client.request.runKublerEncoderRegisterCommunicationOsCommand(this.deviceRef, 0, 0x52, 2, 0, 10000, 1000, false).pipe((0, rxjs_1.repeat)({ count: 16, delay: 500 }), (0, rxjs_1.takeWhile)(osCommandResponse => {
122
168
  if (debug) {
@@ -131,30 +177,30 @@ class IntegroEncoderCalibration {
131
177
  this.notifications$.next(`The last value retrieved from register 0x52 is ${hex(osCommandResponse.kublerRegisterValue)}`);
132
178
  }
133
179
  yield this.client.request.download(this.deviceRef, 0x60FF, 0, 0);
134
- yield (0, util_1.resolveAfter)(500);
135
- this.notifications$.next('Saving the correction table by writing 0x00D0 to the encoder register 0x50.');
136
- yield this.writeEncoderRegisterValueAndValidateResponse(0x50, 0x00D0, 2);
137
- this.notifications$.next('Requesting Quick stop from device.');
138
- yield this.client.request.quickStop(this.deviceRef);
139
- yield (0, util_1.resolveAfter)(1000);
140
- if (debug) {
141
- try {
142
- yield this.notifyExtendedErrorStatus();
143
- }
144
- catch (err) {
145
- if (err instanceof Error) {
146
- this.notifications$.next(`Failed to notify the extended error status: ${err.message}`);
147
- }
180
+ yield (0, util_1.resolveAfter)(200);
181
+ try {
182
+ const [ec1, ec2] = yield this.notifyExtendedErrorStatusAndGetErrorCodes();
183
+ if ((((ec1 >> 16) & 0xFF) === 0x0F) || (((ec2 >> 16) & 0xFF) === 0x0F)) {
184
+ this.notifications$.next('There was an error in recording the correction table. Please restart the procedure.');
185
+ return;
148
186
  }
187
+ this.notifications$.next('Saving the correction table by writing 0x00D0 to the encoder register 0x50.');
188
+ yield this.writeEncoderRegisterValueAndValidateResponse(0x50, 0x00D0, 2);
149
189
  }
150
- if (debug) {
151
- try {
152
- yield this.notifyEncoderSpeeds();
190
+ catch (err) {
191
+ if (err instanceof Error) {
192
+ this.notifications$.next(`Failed to notify the extended error status: ${err.message}`);
153
193
  }
154
- catch (err) {
155
- if (err instanceof Error) {
156
- this.notifications$.next(`Failed to notify the encoder speeds: ${err.message}`);
157
- }
194
+ }
195
+ yield (0, util_1.resolveAfter)(500);
196
+ this.notifications$.next('Requesting Quick stop from device.');
197
+ this.client.request.quickStop(this.deviceRef).catch();
198
+ try {
199
+ yield this.notifyEncoderSpeeds();
200
+ }
201
+ catch (err) {
202
+ if (err instanceof Error) {
203
+ this.notifications$.next(`Failed to notify the encoder speeds: ${err.message}`);
158
204
  }
159
205
  }
160
206
  });
@@ -228,30 +274,46 @@ class IntegroEncoderCalibration {
228
274
  setVelocityProfile(velocityProfile, accelerationConstant = 2) {
229
275
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
230
276
  const vp = Object.assign({}, velocityProfile); // make a copy
231
- const maxMotorSpeed = yield this.client.request.upload(this.deviceRef, 0x6080, 0);
232
- const siUnitVelocity = yield this.client.request.upload(this.deviceRef, 0x60A9, 0);
233
- const feedConstant = yield (0, rxjs_1.lastValueFrom)(this.client.request.getFeedConstant(this.deviceRef));
234
277
  // The velocity target value should not exceed the maximum motor speed.
235
278
  // If it's higher than the maximum motor speed, set it to 95% of the maximum motor speed and update acceleration and deceleration accordingly.
236
- if (Math.abs(vp.target) > maxMotorSpeed) {
279
+ if (Math.abs(vp.target) > this.maxMotorSpeed) {
237
280
  const sgn = vp.target < 0 ? -1 : 1;
238
- vp.target = sgn * maxMotorSpeed * 0.95;
281
+ vp.target = sgn * this.maxMotorSpeed * 0.95;
239
282
  vp.acceleration = Math.abs(vp.target) * accelerationConstant;
240
283
  vp.deceleration = Math.abs(vp.target) * accelerationConstant;
241
284
  }
242
285
  // Convert the velocity profile values using the user-configured SI unit velocity and Feed constant.
243
286
  for (let [key, value] of Object.entries(vp)) {
244
- vp[key] = (0, device_1.convertSiUnitVelocityAffectedValue)(value, 0x00B44700, siUnitVelocity);
245
- vp[key] = (0, device_1.convertFeedConstantAffectedVelocityValue)(vp[key], 0xFFFFFFFF, feedConstant);
287
+ vp[key] = (0, device_1.convertSiUnitVelocityAffectedValue)(value, 0x00B44700, this.siUnitVelocity);
288
+ vp[key] = (0, device_1.convertFeedConstantAffectedVelocityValue)(vp[key], 0xFFFFFFFF, this.feedConstant);
246
289
  }
247
290
  // Update the velocity target, and profile acceleration and deceleration values.
248
- this.notifications$.next(`Setting velocity target value to ${vp.target}, with velocity profile acceleration and deceleration set to ${vp.acceleration} and ${vp.deceleration}, respectively.`);
291
+ this.notifications$.next(`Setting velocity target value (0x60FF:00) to ${vp.target}, with the velocity profile acceleration (0x6083:00) set to ${vp.acceleration} and deceleration (0x6084:00) set to ${vp.deceleration}.`);
249
292
  yield (0, rxjs_1.lastValueFrom)(this.client.request.setParameterValues([
250
293
  [this.deviceRef, 0x6083, 0, vp.acceleration],
251
294
  [this.deviceRef, 0x6084, 0, vp.deceleration],
252
295
  [this.deviceRef, 0x6086, 0, 0],
253
296
  [this.deviceRef, 0x60FF, 0, vp.target], // 0x60FF: Target velocity
254
297
  ]));
298
+ return vp;
299
+ });
300
+ }
301
+ setVelocityWindow(value) {
302
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
303
+ value = (0, device_1.convertSiUnitVelocityAffectedValue)(value, 0x00B44700, this.siUnitVelocity);
304
+ value = (0, device_1.convertFeedConstantAffectedVelocityValue)(value, 0xFFFFFFFF, this.feedConstant);
305
+ this.notifications$.next(`Setting the velocity window (0x606D:00) to ${value}.`);
306
+ yield this.client.request.download(this.deviceRef, 0x606D, 0, value);
307
+ return value;
308
+ });
309
+ }
310
+ setVelocityWindowTime(value) {
311
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
312
+ value = (0, device_1.convertSiUnitVelocityAffectedValue)(value, 0x00B44700, this.siUnitVelocity);
313
+ value = (0, device_1.convertFeedConstantAffectedVelocityValue)(value, 0xFFFFFFFF, this.feedConstant);
314
+ this.notifications$.next(`Setting the velocity window time (0x606E:00) to ${value}.`);
315
+ yield this.client.request.download(this.deviceRef, 0x606E, 0, value);
316
+ return value;
255
317
  });
256
318
  }
257
319
  /**
@@ -269,10 +331,10 @@ class IntegroEncoderCalibration {
269
331
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
270
332
  const id = (0, parameter_1.makeParameterId)(index, subindex);
271
333
  const value = yield this.client.request.upload(this.deviceRef, index, subindex);
272
- this.notifications$.next(`Value of ${id} is ${value}`);
334
+ this.notifications$.next(`Value of ${id} is ${value}.`);
273
335
  });
274
336
  }
275
- notifyExtendedErrorStatus() {
337
+ notifyExtendedErrorStatusAndGetErrorCodes() {
276
338
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
277
339
  const ec1Response = yield (0, rxjs_1.lastValueFrom)(this.client.request.runKublerEncoderRegisterCommunicationOsCommand(this.deviceRef, 0x00, 0x66, 0x04, 0, 10000, 1000, false));
278
340
  this.notifications$.next(`The value of register 0x66 (Error code 1) is ${hex(ec1Response.kublerRegisterValue)}.`);
@@ -280,6 +342,7 @@ class IntegroEncoderCalibration {
280
342
  this.notifications$.next(`The value of register 0x6A (Error code 2) is ${hex(ec2Response.kublerRegisterValue)}.`);
281
343
  this.notifications$.next(`Clearing the encoder errors by writing the value 0x02 to register 0x61.`);
282
344
  yield (0, rxjs_1.lastValueFrom)(this.client.request.runKublerEncoderRegisterCommunicationOsCommand(this.deviceRef, 0x01, 0x61, 0x01, 0x02, 10000, 1000, false));
345
+ return [ec1Response.kublerRegisterValue, ec2Response.kublerRegisterValue];
283
346
  });
284
347
  }
285
348
  notifyEncoderSpeeds() {
@@ -1 +1 @@
1
- {"version":3,"file":"integro-encoder-calibration.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/integro-encoder-calibration.ts"],"names":[],"mappings":";;;;AAAA,+BAAwE;AAExE,qCAAwG;AAExG,qCAAyD;AACzD,6CAAiE;AACjE,iCAAsC;AACtC,uCAAsD;AACtD,2CAA8C;AAQ9C,SAAS,GAAG,CAAC,KAAa;IACxB,OAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;AACjD,CAAC;AAED,MAAa,yBAAyB;IAsBpC,YACU,MAA0B,EAClB,SAAoB;QAD5B,WAAM,GAAN,MAAM,CAAoB;QAClB,cAAS,GAAT,SAAS,CAAW;QAtBtB,mBAAc,GAAG,IAAI,cAAO,EAAU,CAAC;QAEtC,kCAA6B,GAAoB;YAChE,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,IAAI,EAAE,QAAQ;SAC7B,CAAC;QAEe,yCAAoC,GAAoB;YACvE,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,IAAI,EAAE,QAAQ;SAC7B,CAAC;QAEe,yCAAoC,GAAoB;YACvE,MAAM,EAAE,CAAC,IAAI;YACb,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,IAAI,EAAE,QAAQ;SAC7B,CAAC;IAKE,CAAC;IAEC,KAAK,CAAC,KAAK,GAAG,KAAK;;YACvB,yJAAyJ;YACzJ,yDAAyD;YACzD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,SAAS,oDAAoD,CAAC,CAAC;YACvH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,+DAA+D;YAC/D,MAAM,+BAA+B,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACpG,MAAM,yBAAyB,GAAG,+BAA+B,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAE1F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gEAAgE,GAAG,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;YACpI,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACrF,MAAM,IAAA,mBAAY,EAAC,GAAG,CAAC,CAAC;YAExB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;YACvG,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,sCAAsC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACvH,MAAM,IAAA,mBAAY,EAAC,GAAG,CAAC,CAAC;YAExB,4DAA4D;YAC5D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;YAC1G,MAAM,IAAI,CAAC,4CAA4C,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEpE,6EAA6E;YAC7E,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;YAErE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,0GAA0G,CAAC,CAAA;YACpI,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACrH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAW,CAAC,iBAAiB,CAAC,CAAC;YAEjG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;YAE1H,0GAA0G;YAC1G,IAAI,iBAAiB,GAAG,MAAM,IAAA,oBAAa,EACzC,IAAA,YAAK,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CACpI,IAAA,aAAM,EAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EACjC,IAAA,gBAAS,EAAC,iBAAiB,CAAC,EAAE;gBAC5B,IAAI,KAAK,EAAE;oBACT,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gDAAgD,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;iBACzH;gBACD,OAAO,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,mBAAmB,MAAK,IAAI,CAAC;YACzD,CAAC,EAAE,IAAI,CAAC,CACT,CAAC,CACH,CAAC;YAEF,IAAI,iBAAiB,CAAC,OAAO,KAAK,QAAQ,EAAE;gBAC1C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,8CAA8C,iBAAiB,CAAC,SAAS,KAAK,iBAAiB,CAAC,SAAS,MAAM,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CAAC;aAC/K;iBAAM,IAAI,iBAAiB,CAAC,OAAO,KAAK,WAAW,EAAE;gBACpD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kDAAkD,iBAAiB,CAAC,mBAAmB,KAAK,8CAAiC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;aACxM;YAED,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,IAAA,mBAAY,EAAC,GAAG,CAAC,CAAC;YAExB,IAAI,iBAAiB,CAAC,mBAAmB,KAAK,IAAI,EAAE;gBAClD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,sHAAsH,CAAC,CAAC;gBACjJ,MAAM,IAAI,CAAC,4CAA4C,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACrE;YAED,yBAAyB;YAEzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YAEpF,oDAAoD;YAEpD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;YAEtE,MAAM,IAAA,mBAAY,EAAC,IAAI,CAAC,CAAC;YAEzB,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,wBAAwB;YAEpE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACzE,MAAM,IAAI,CAAC,4CAA4C,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAEzE,0JAA0J;YAC1J,iBAAiB,GAAG,MAAM,IAAA,oBAAa,EACrC,IAAA,YAAK,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CACpI,IAAA,aAAM,EAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EACjC,IAAA,gBAAS,EAAC,iBAAiB,CAAC,EAAE;gBAC5B,IAAI,KAAK,EAAE;oBACT,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gDAAgD,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;iBACzH;gBACD,OAAO,CAAC,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,mBAAmB,IAAG,WAAW,CAAC,KAAK,IAAI,CAAC;YACzE,CAAC,EAAE,IAAI,CAAC,CACT,CAAC,CACH,CAAC;YAEF,IAAI,iBAAiB,CAAC,OAAO,KAAK,QAAQ,EAAE;gBAC1C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,8CAA8C,iBAAiB,CAAC,SAAS,KAAK,iBAAiB,CAAC,SAAS,MAAM,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CAAC;aAC/K;iBAAM,IAAI,iBAAiB,CAAC,OAAO,KAAK,WAAW,EAAE;gBACpD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kDAAkD,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;aAC1H;YAED,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,IAAA,mBAAY,EAAC,IAAI,CAAC,CAAC;YAEzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAE9D,kCAAkC;YAElC,IAAI,KAAK,EAAE;gBACT,IAAI;oBACF,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;iBACxC;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAI,GAAG,YAAY,KAAK,EAAE;wBACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,+CAA+C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;qBACxF;iBACF;aACF;YAED,MAAM,IAAA,mBAAY,EAAC,IAAI,CAAC,CAAC;YAEzB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;YAEtE,MAAM,IAAA,mBAAY,EAAC,IAAI,CAAC,CAAC;YAEzB,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,wBAAwB;YAEpE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACzE,MAAM,IAAI,CAAC,4CAA4C,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAEzE,0JAA0J;YAC1J,iBAAiB,GAAG,MAAM,IAAA,oBAAa,EACrC,IAAA,YAAK,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CACpI,IAAA,aAAM,EAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EACjC,IAAA,gBAAS,EAAC,iBAAiB,CAAC,EAAE;gBAC5B,IAAI,KAAK,EAAE;oBACT,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gDAAgD,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;iBACzH;gBACD,OAAO,CAAC,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,mBAAmB,IAAG,WAAW,CAAC,KAAK,IAAI,CAAC;YACzE,CAAC,EAAE,IAAI,CAAC,CACT,CAAC,CACH,CAAC;YAEF,IAAI,iBAAiB,CAAC,OAAO,KAAK,QAAQ,EAAE;gBAC1C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,8CAA8C,iBAAiB,CAAC,SAAS,KAAK,iBAAiB,CAAC,SAAS,MAAM,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CAAC;aAC/K;iBAAM,IAAI,iBAAiB,CAAC,OAAO,KAAK,WAAW,EAAE;gBACpD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kDAAkD,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;aAC1H;YAED,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,IAAA,mBAAY,EAAC,GAAG,CAAC,CAAC;YAExB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;YACxG,MAAM,IAAI,CAAC,4CAA4C,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAEzE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAC/D,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEpD,MAAM,IAAA,mBAAY,EAAC,IAAI,CAAC,CAAC;YAEzB,IAAI,KAAK,EAAE;gBACT,IAAI;oBACF,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;iBACxC;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAI,GAAG,YAAY,KAAK,EAAE;wBACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,+CAA+C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;qBACxF;iBACF;aACF;YAED,IAAI,KAAK,EAAE;gBACT,IAAI;oBACF,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;iBAClC;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAI,GAAG,YAAY,KAAK,EAAE;wBACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,wCAAwC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;qBACjF;iBACF;aACF;QACH,CAAC;KAAA;IAED;;OAEG;IACG,cAAc;;;YAClB,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAEtF,yBAAyB;YACzB,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;aACvF;YAED,8BAA8B;YAC9B,MAAM,SAAS,GAAG,MAAA,MAAA,MAAM,CAAC,mBAAmB,0CAAE,MAAM,0CAAE,EAAE,CAAC;YACzD,IAAI,CAAC,IAAA,mCAAyB,EAAC,SAAS,EAAE,SAAS,CAAC,EAAE;gBACpD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;aAC/E;YAGD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;aAC9F;YAED,gGAAgG;YAChG,MAAM,+BAA+B,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACpG,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,IAAI,+BAA+B,KAAK,CAAC,EAAE;gBACzC,MAAM,yBAAyB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC9F,IAAI,yBAAyB,KAAK,CAAC,EAAE;oBACnC,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;iBAChH;aACF;iBAAM;gBACL,MAAM,+BAA+B,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBACpG,IAAI,+BAA+B,KAAK,CAAC,EAAE;oBACzC,MAAM,yBAAyB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;oBAC9F,IAAI,yBAAyB,KAAK,CAAC,EAAE;wBACnC,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;qBAChH;oBACD,aAAa,GAAG,CAAC,CAAC;iBACnB;qBAAM;oBACL,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;iBACpE;aACF;YAED,yDAAyD;YACzD,MAAM,6BAA6B,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACnG,IAAI,6BAA6B,KAAK,aAAa,EAAE;gBACnD,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;aACzF;YAED,sDAAsD;YACtD,MAAM,+BAA+B,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACpG,IAAI,+BAA+B,KAAK,aAAa,EAAE;gBACrD,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;aACtF;YAED,sCAAsC;YACtC,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC3F,IAAI,sBAAsB,KAAK,CAAC,EAAE;gBAChC,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;aAChH;YAED,yCAAyC;YACzC,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACzF,IAAI,oBAAoB,IAAI,CAAC,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;aACvG;;KACF;IAED;;OAEG;IACG,kBAAkB,CAAC,eAAgC,EAAE,oBAAoB,GAAG,CAAC;;YACjF,MAAM,EAAE,qBAAyB,eAAe,CAAE,CAAC,CAAC,cAAc;YAElE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAClF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACnF,MAAM,YAAY,GAAG,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAE9F,uEAAuE;YACvE,8IAA8I;YAC9I,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,aAAa,EAAE;gBACvC,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,EAAE,CAAC,MAAM,GAAG,GAAG,GAAG,aAAa,GAAG,IAAI,CAAC;gBACvC,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC;gBAC7D,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC;aAC9D;YAED,oGAAoG;YACpG,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAsC,EAAE;gBAChF,EAAE,CAAC,GAAG,CAAC,GAAG,IAAA,2CAAkC,EAAC,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;gBAChF,EAAE,CAAC,GAAG,CAAC,GAAG,IAAA,iDAAwC,EAAC,EAAE,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;aACvF;YAED,gFAAgF;YAChF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,oCAAoC,EAAE,CAAC,MAAM,gEAAgE,EAAE,CAAC,YAAY,QAAQ,EAAE,CAAC,YAAY,iBAAiB,CAAC,CAAC;YAC/L,MAAM,IAAA,oBAAa,EACjB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBACrC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;gBAC5C,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;gBAC5C,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9B,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,0BAA0B;aACnE,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;IAED;;OAEG;IACG,4CAA4C,CAAC,OAAe,EAAE,KAAa,EAAE,SAAiB,CAAC;;YACnG,IAAI,iBAAiB,GAAG,MAAM,IAAA,oBAAa,EACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAClI,CAAC;YAEF,IAAI,iBAAiB,CAAC,mBAAmB,KAAK,KAAK,EAAE;gBACnD,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAC/F;QACH,CAAC;KAAA;IAEK,oBAAoB,CAAC,KAAa,EAAE,QAAgB;;YACxD,MAAM,EAAE,GAAG,IAAA,2BAAe,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAChF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;KAAA;IAEK,yBAAyB;;YAC7B,MAAM,WAAW,GAAG,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACrK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gDAAgD,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAElH,MAAM,WAAW,GAAG,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACrK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gDAAgD,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAElH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;YACpG,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACtJ,CAAC;KAAA;IAEK,mBAAmB;;YACvB,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACvK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,mDAAmD,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAEvH,MAAM,WAAW,GAAG,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACrK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iDAAiD,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAEnH,MAAM,YAAY,GAAG,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACtK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kDAAkD,GAAG,CAAC,YAAY,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAErH,MAAM,UAAU,GAAG,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACpK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gDAAgD,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACnH,CAAC;KAAA;CACF;AA1VD,8DA0VC"}
1
+ {"version":3,"file":"integro-encoder-calibration.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/integro-encoder-calibration.ts"],"names":[],"mappings":"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"}
@@ -43,9 +43,16 @@ function parseIntegroVariantBuffer(buffer) {
43
43
  const operationMode = data[80];
44
44
  const reserved = data.slice(81, 91);
45
45
  // data[91] is Reserved for sw use
46
- // data[92] is Number of options
47
- const options = data.slice(93).map((value) => {
46
+ const numberOfOptionIds = data[92];
47
+ const optionIds = data.slice(93);
48
+ if (numberOfOptionIds !== optionIds.length) {
49
+ throw new Error(`The specified number of options (${numberOfOptionIds}) doesn't match the actual number of options (${optionIds.length}).`);
50
+ }
51
+ const options = optionIds.map((value, index) => {
48
52
  const optionId = value;
53
+ if (optionId < 0 || optionId > 28) {
54
+ throw new Error(`Invalid option ID (${optionId}) at position ${index}.`);
55
+ }
49
56
  return exports.integroVariantOptions.find((option) => option.id === optionId);
50
57
  });
51
58
  const selectedOptionId = {