motion-master-client 0.0.231 → 0.0.232

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.231",
3
+ "version": "0.0.232",
4
4
  "type": "commonjs",
5
5
  "description": "A library and CLI program used for communicating with Motion Master.",
6
6
  "dependencies": {
@@ -27,7 +27,7 @@ export interface SiUnitVelocity {
27
27
  /**
28
28
  * The type of the SI unit velocity object (minute or second).
29
29
  */
30
- type: 'minute' | 'second';
30
+ type?: 'minute' | 'second';
31
31
  }
32
32
  /**
33
33
  * Parses a given SI Unit Velocity value to extract its scale, type, and unit symbol.
@@ -124,3 +124,15 @@ export declare const unitConverterParameters: {
124
124
  * Get the unit converter for a given parameter index and subindex.
125
125
  */
126
126
  export declare function getUnitConverterForParameter(index: number, subindex: number): UnitConverter<any> | undefined;
127
+ /**
128
+ * Determines and formats the unit display for a given device parameter.
129
+ *
130
+ * @param {string} unit - The unit to be formatted (e.g., "rpm").
131
+ * @param {number} siUnitVelocityValue - The SI unit velocity value used to determine velocity or acceleration scaling.
132
+ * @param {boolean} feedConstantEnabled - A flag indicating if the feed constant is enabled.
133
+ * @param {string} feedConstantUnit - The unit of the feed constant (e.g., "millimeters").
134
+ * @param {UnitConverterId} [unitConverterId] - The type of the unit, which could be "position", "velocity", or "acceleration".
135
+ *
136
+ * @returns {string} The formatted unit display.
137
+ */
138
+ export declare function getFormattedUnitDisplay(unit: string, siUnitVelocityValue: number, feedConstantEnabled?: boolean, feedConstantUnit?: string, unitConverterId?: UnitConverterId): string;
package/src/lib/units.js CHANGED
@@ -1,29 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUnitConverterForParameter = exports.unitConverterParameters = exports.unitConverters = exports.convertVelocityAffectedValue = exports.convertFeedConstantAffectedVelocityValue = exports.convertFeedConstantAffectedPositionValue = exports.convertSiUnitVelocityAffectedValue = exports.parseSiUnitVelocityValue = exports.symbolToSiUnitVelocityValue = exports.siUnitVelocityValueToSymbol = void 0;
3
+ exports.getFormattedUnitDisplay = exports.getUnitConverterForParameter = exports.unitConverterParameters = exports.unitConverters = exports.convertVelocityAffectedValue = exports.convertFeedConstantAffectedVelocityValue = exports.convertFeedConstantAffectedPositionValue = exports.convertSiUnitVelocityAffectedValue = exports.parseSiUnitVelocityValue = exports.symbolToSiUnitVelocityValue = exports.siUnitVelocityValueToSymbol = void 0;
4
4
  const util_1 = require("./util");
5
5
  /**
6
6
  * Maps the SI unit velocity value to the corresponding unit symbol.
7
7
  */
8
8
  exports.siUnitVelocityValueToSymbol = {
9
9
  // RPM
10
- [0x0CB44700]: '1e12 RPM',
11
- [0x09B44700]: '1e9 RPM',
12
- [0x06B44700]: '1e6 RPM',
13
- [0x03B44700]: '1e3 RPM',
14
- [0x00B44700]: 'RPM',
15
- [0xFFB44700]: '1e-1 RPM',
16
- [0xFEB44700]: '1e-2 RPM',
17
- [0xFDB44700]: '1e-3 RPM',
10
+ [0x0cb44700]: '1e12 RPM',
11
+ [0x09b44700]: '1e9 RPM',
12
+ [0x06b44700]: '1e6 RPM',
13
+ [0x03b44700]: '1e3 RPM',
14
+ [0x00b44700]: 'RPM',
15
+ [0xffb44700]: '1e-1 RPM',
16
+ [0xfeb44700]: '1e-2 RPM',
17
+ [0xfdb44700]: '1e-3 RPM',
18
18
  // RPS
19
- [0x0CB40300]: '1e12 RPS',
20
- [0x09B40300]: '1e9 RPS',
21
- [0x06B40300]: '1e6 RPS',
22
- [0x03B40300]: '1e3 RPS',
23
- [0x00B40300]: 'RPS',
24
- [0xFFB40300]: '1e-1 RPS',
25
- [0xFEB40300]: '1e-2 RPS',
26
- [0xFDB40300]: '1e-3 RPS',
19
+ [0x0cb40300]: '1e12 RPS',
20
+ [0x09b40300]: '1e9 RPS',
21
+ [0x06b40300]: '1e6 RPS',
22
+ [0x03b40300]: '1e3 RPS',
23
+ [0x00b40300]: 'RPS',
24
+ [0xffb40300]: '1e-1 RPS',
25
+ [0xfeb40300]: '1e-2 RPS',
26
+ [0xfdb40300]: '1e-3 RPS',
27
27
  };
28
28
  exports.symbolToSiUnitVelocityValue = Object.fromEntries(Object.entries(exports.siUnitVelocityValueToSymbol).map(([key, value]) => [value, parseInt(key)]));
29
29
  /**
@@ -47,7 +47,7 @@ function parseSiUnitVelocityValue(value) {
47
47
  let { prefix, numerator, denominator } = (0, util_1.parseUnitValue)(value);
48
48
  // Check if the numerator value is valid for SI Unit Velocity.
49
49
  if (numerator !== 0xb4) {
50
- throw new Error(`Invalid numerator value for SI Unit Velocity: ${numerator}`);
50
+ console.warn(`The numerator value for the SI Unit Velocity should be revolution (0xb4), but it is: ${numerator}`);
51
51
  }
52
52
  // Determine the type (minute or second) based on the denominator value.
53
53
  let type;
@@ -57,17 +57,14 @@ function parseSiUnitVelocityValue(value) {
57
57
  else if (denominator === 0x03) {
58
58
  type = 'second';
59
59
  }
60
- else {
61
- throw new Error(`Invalid denominator value for SI Unit Velocity: ${denominator}`);
62
- }
63
60
  // Get a scale factor based on the prefix value.
64
- const scale = Math.pow(10, prefix > 0x7F ? prefix - 0x100 : prefix);
61
+ const scale = Math.pow(10, prefix > 0x7f ? prefix - 0x100 : prefix);
65
62
  // Determine the unit symbol based on the value.
66
63
  const unit = exports.siUnitVelocityValueToSymbol[value];
67
64
  const siUnitVelocity = {
68
65
  scale,
69
66
  type,
70
- unit,
67
+ unit: unit !== null && unit !== void 0 ? unit : '',
71
68
  value,
72
69
  };
73
70
  return siUnitVelocity;
@@ -81,13 +78,13 @@ function convertSiUnitVelocityAffectedValue(value, oldSiUnitVelocityValue, newSi
81
78
  const oldSiUnitVelocity = parseSiUnitVelocityValue(oldSiUnitVelocityValue);
82
79
  const newSiUnitVelocity = parseSiUnitVelocityValue(newSiUnitVelocityValue);
83
80
  if (oldSiUnitVelocity.type === newSiUnitVelocity.type) {
84
- value = oldSiUnitVelocity.scale / newSiUnitVelocity.scale * value;
81
+ value = (oldSiUnitVelocity.scale / newSiUnitVelocity.scale) * value;
85
82
  }
86
83
  else if (oldSiUnitVelocity.type === 'minute' && newSiUnitVelocity.type === 'second') {
87
- value = oldSiUnitVelocity.scale / newSiUnitVelocity.scale * value / 60;
84
+ value = ((oldSiUnitVelocity.scale / newSiUnitVelocity.scale) * value) / 60;
88
85
  }
89
86
  else if (oldSiUnitVelocity.type === 'second' && newSiUnitVelocity.type === 'minute') {
90
- value = oldSiUnitVelocity.scale / newSiUnitVelocity.scale * value * 60;
87
+ value = (oldSiUnitVelocity.scale / newSiUnitVelocity.scale) * value * 60;
91
88
  }
92
89
  return round ? Math.round(value) : value;
93
90
  }
@@ -98,14 +95,17 @@ exports.convertSiUnitVelocityAffectedValue = convertSiUnitVelocityAffectedValue;
98
95
  */
99
96
  function convertFeedConstantAffectedPositionValue(value, oldFeedConstant, newFeedConstant, resolution) {
100
97
  let out = value;
101
- if (oldFeedConstant === 0xFFFFFFFF && (newFeedConstant > 0 && newFeedConstant < 0xFFFFFFFF)) { // conversion
102
- out = Math.round(value * newFeedConstant / resolution);
98
+ if (oldFeedConstant === 0xffffffff && newFeedConstant > 0 && newFeedConstant < 0xffffffff) {
99
+ // conversion
100
+ out = Math.round((value * newFeedConstant) / resolution);
103
101
  }
104
- else if ((oldFeedConstant > 0 && oldFeedConstant < 0xFFFFFFFF) && (newFeedConstant > 0 && newFeedConstant < 0xFFFFFFFF)) { // scaling
105
- out = Math.round(newFeedConstant / oldFeedConstant * value);
102
+ else if (oldFeedConstant > 0 && oldFeedConstant < 0xffffffff && newFeedConstant > 0 && newFeedConstant < 0xffffffff) {
103
+ // scaling
104
+ out = Math.round((newFeedConstant / oldFeedConstant) * value);
106
105
  }
107
- else if ((oldFeedConstant > 0 && oldFeedConstant < 0xFFFFFFFF) && newFeedConstant === 0xFFFFFFFF) { // inversion
108
- out = Math.round(value / oldFeedConstant * resolution);
106
+ else if (oldFeedConstant > 0 && oldFeedConstant < 0xffffffff && newFeedConstant === 0xffffffff) {
107
+ // inversion
108
+ out = Math.round((value / oldFeedConstant) * resolution);
109
109
  }
110
110
  return out;
111
111
  }
@@ -116,13 +116,16 @@ exports.convertFeedConstantAffectedPositionValue = convertFeedConstantAffectedPo
116
116
  */
117
117
  function convertFeedConstantAffectedVelocityValue(value, oldFeedConstant, newFeedConstant) {
118
118
  let out = value;
119
- if (oldFeedConstant === 0xFFFFFFFF && (newFeedConstant > 0 && newFeedConstant < 0xFFFFFFFF)) { // conversion
119
+ if (oldFeedConstant === 0xffffffff && newFeedConstant > 0 && newFeedConstant < 0xffffffff) {
120
+ // conversion
120
121
  out = Math.round(value * newFeedConstant);
121
122
  }
122
- else if ((oldFeedConstant > 0 && oldFeedConstant < 0xFFFFFFFF) && (newFeedConstant > 0 && newFeedConstant < 0xFFFFFFFF)) { // scaling
123
- out = Math.round(newFeedConstant / oldFeedConstant * value);
123
+ else if (oldFeedConstant > 0 && oldFeedConstant < 0xffffffff && newFeedConstant > 0 && newFeedConstant < 0xffffffff) {
124
+ // scaling
125
+ out = Math.round((newFeedConstant / oldFeedConstant) * value);
124
126
  }
125
- else if ((oldFeedConstant > 0 && oldFeedConstant < 0xFFFFFFFF) && newFeedConstant === 0xFFFFFFFF) { // inversion
127
+ else if (oldFeedConstant > 0 && oldFeedConstant < 0xffffffff && newFeedConstant === 0xffffffff) {
128
+ // inversion
126
129
  out = Math.round(value / oldFeedConstant);
127
130
  }
128
131
  return out;
@@ -192,10 +195,10 @@ exports.unitConverters = {
192
195
  }
193
196
  const siUnitVelocity = parseSiUnitVelocityValue(data.siUnitVelocity);
194
197
  if (siUnitVelocity.type === 'minute') {
195
- return Math.round(value / (feed / 60) * (1 / siUnitVelocity.scale));
198
+ return Math.round((value / (feed / 60)) * (1 / siUnitVelocity.scale));
196
199
  }
197
200
  else if (siUnitVelocity.type === 'second') {
198
- return Math.round(value / feed * (1 / siUnitVelocity.scale));
201
+ return Math.round((value / feed) * (1 / siUnitVelocity.scale));
199
202
  }
200
203
  return Math.round(value);
201
204
  },
@@ -388,10 +391,10 @@ exports.unitConverters = {
388
391
  }
389
392
  const siUnitVelocity = parseSiUnitVelocityValue(data.siUnitVelocity);
390
393
  if (siUnitVelocity.type === 'minute') {
391
- return Math.round(value / (feed / 60) * (1 / siUnitVelocity.scale));
394
+ return Math.round((value / (feed / 60)) * (1 / siUnitVelocity.scale));
392
395
  }
393
396
  else if (siUnitVelocity.type === 'second') {
394
- return Math.round(value / feed * (1 / siUnitVelocity.scale));
397
+ return Math.round((value / feed) * (1 / siUnitVelocity.scale));
395
398
  }
396
399
  return Math.round(value);
397
400
  },
@@ -402,11 +405,9 @@ exports.unitConverterParameters = {
402
405
  [0x6083, 0],
403
406
  [0x6084, 0],
404
407
  [0x6085, 0],
405
- [0x609A, 0],
406
- ],
407
- current: [
408
- [0x6073, 0],
408
+ [0x609a, 0],
409
409
  ],
410
+ current: [[0x6073, 0]],
410
411
  friction: [],
411
412
  inertia: [],
412
413
  position: [
@@ -422,21 +423,21 @@ exports.unitConverterParameters = {
422
423
  [0x6064, 0],
423
424
  [0x6065, 0],
424
425
  [0x6067, 0],
425
- [0x607A, 0],
426
- [0x607B, 1],
427
- [0x607B, 2],
428
- [0x607C, 0],
429
- [0x607D, 1],
430
- [0x607D, 2],
431
- [0x60F4, 0],
432
- [0x60FC, 0],
426
+ [0x607a, 0],
427
+ [0x607b, 1],
428
+ [0x607b, 2],
429
+ [0x607c, 0],
430
+ [0x607d, 1],
431
+ [0x607d, 2],
432
+ [0x60f4, 0],
433
+ [0x60fc, 0],
433
434
  ],
434
435
  torque: [
435
436
  [0x6071, 0],
436
437
  [0x6072, 0],
437
438
  [0x6074, 0],
438
439
  [0x6077, 0],
439
- [0x60B2, 0],
440
+ [0x60b2, 0],
440
441
  ],
441
442
  velocity: [
442
443
  [0x2010, 6],
@@ -450,15 +451,15 @@ exports.unitConverterParameters = {
450
451
  [0x2018, 3],
451
452
  [0x2111, 3],
452
453
  [0x2113, 3],
453
- [0x606B, 0],
454
- [0x606C, 0],
455
- [0x606D, 0],
456
- [0x606F, 2],
454
+ [0x606b, 0],
455
+ [0x606c, 0],
456
+ [0x606d, 0],
457
+ [0x606f, 2],
457
458
  [0x6081, 0],
458
459
  [0x6099, 1],
459
460
  [0x6099, 2],
460
- [0x60B1, 0],
461
- [0x60FF, 0],
461
+ [0x60b1, 0],
462
+ [0x60ff, 0],
462
463
  ],
463
464
  };
464
465
  /**
@@ -475,4 +476,83 @@ function getUnitConverterForParameter(index, subindex) {
475
476
  return;
476
477
  }
477
478
  exports.getUnitConverterForParameter = getUnitConverterForParameter;
479
+ /**
480
+ * Determines and formats the unit display for a given device parameter.
481
+ *
482
+ * @param {string} unit - The unit to be formatted (e.g., "rpm").
483
+ * @param {number} siUnitVelocityValue - The SI unit velocity value used to determine velocity or acceleration scaling.
484
+ * @param {boolean} feedConstantEnabled - A flag indicating if the feed constant is enabled.
485
+ * @param {string} feedConstantUnit - The unit of the feed constant (e.g., "millimeters").
486
+ * @param {UnitConverterId} [unitConverterId] - The type of the unit, which could be "position", "velocity", or "acceleration".
487
+ *
488
+ * @returns {string} The formatted unit display.
489
+ */
490
+ function getFormattedUnitDisplay(unit, siUnitVelocityValue, feedConstantEnabled, feedConstantUnit, unitConverterId) {
491
+ if (!unit) {
492
+ return '';
493
+ }
494
+ let out = unit;
495
+ const lcunit = unit.toLowerCase();
496
+ const isPositionUnit = unitConverterId === 'position' || lcunit === 'inc';
497
+ const isVelocityUnit = unitConverterId === 'velocity' || lcunit === 'rpm';
498
+ const isAccelerationUnit = unitConverterId === 'acceleration' || lcunit === 'rpm/s';
499
+ const isRPM = (siUnitVelocityValue & 0x00ffff00) === 0x00b44700;
500
+ const isRPS = (siUnitVelocityValue & 0x00ffff00) === 0x00b40300;
501
+ const siUnitVelocity = parseSiUnitVelocityValue(siUnitVelocityValue);
502
+ if (feedConstantEnabled) {
503
+ if (isPositionUnit) {
504
+ return feedConstantUnit || 'feed';
505
+ }
506
+ else if (isVelocityUnit) {
507
+ out = '';
508
+ const { scale } = siUnitVelocity;
509
+ if (scale && scale !== 1) {
510
+ out = scale.toExponential() + ' '; // 1e-3
511
+ }
512
+ out += (feedConstantUnit || 'feed') + '/'; // 1e-3 feed/
513
+ if (isRPM) {
514
+ out += 'min'; // 1e3 feed/min
515
+ }
516
+ else if (isRPS) {
517
+ out += 's'; // 1e3 feed/s
518
+ }
519
+ return out;
520
+ }
521
+ else if (isAccelerationUnit) {
522
+ out = '';
523
+ const { scale } = siUnitVelocity;
524
+ if (scale && scale !== 1) {
525
+ out = scale.toExponential() + ' '; // 1e-3
526
+ }
527
+ out += (feedConstantUnit || 'feed') + '/'; // 1e-3 feed/
528
+ if (isRPM) {
529
+ out += 'min/s'; // 1e-3 feed/min/s
530
+ }
531
+ else if (isRPS) {
532
+ out += 's²'; // 1e-3 feed/s²
533
+ }
534
+ }
535
+ }
536
+ else {
537
+ if (lcunit === 'rpm' && siUnitVelocity.unit) {
538
+ out = siUnitVelocity.unit.toLowerCase();
539
+ }
540
+ else if (lcunit === 'rpm/s' && siUnitVelocity.unit) {
541
+ if (siUnitVelocity.type === 'minute') {
542
+ out = siUnitVelocity.unit.toLowerCase() + '/s';
543
+ }
544
+ else if (siUnitVelocity.type === 'second') {
545
+ out = siUnitVelocity.unit.toLowerCase().replace('rps', 'rps²');
546
+ }
547
+ }
548
+ else if (unitConverterId === 'velocity') {
549
+ out = lcunit + '/s';
550
+ }
551
+ else if (unitConverterId === 'acceleration') {
552
+ out = lcunit + '/s²';
553
+ }
554
+ }
555
+ return out;
556
+ }
557
+ exports.getFormattedUnitDisplay = getFormattedUnitDisplay;
478
558
  //# sourceMappingURL=units.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"units.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/units.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"units.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/units.ts"],"names":[],"mappings":"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"}