motion-master-client 0.0.89 → 0.0.91
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 +1 -1
- package/src/lib/integro-encoder-calibration.d.ts +1 -1
- package/src/lib/integro-encoder-calibration.js +12 -12
- package/src/lib/integro-encoder-calibration.js.map +1 -1
- package/src/lib/somanet-product.d.ts +8 -0
- package/src/lib/somanet-product.js +18 -1
- package/src/lib/somanet-product.js.map +1 -1
package/package.json
CHANGED
|
@@ -22,7 +22,7 @@ export declare class IntegroEncoderCalibration {
|
|
|
22
22
|
/**
|
|
23
23
|
* Set velocity profile.
|
|
24
24
|
*/
|
|
25
|
-
setVelocityProfile(velocityProfile: VelocityProfile): Promise<void>;
|
|
25
|
+
setVelocityProfile(velocityProfile: VelocityProfile, accMultiplier?: number): Promise<void>;
|
|
26
26
|
/**
|
|
27
27
|
* Write encoder register value and validate response.
|
|
28
28
|
*/
|
|
@@ -20,13 +20,13 @@ class IntegroEncoderCalibration {
|
|
|
20
20
|
};
|
|
21
21
|
this.lookupTableVelocityProfileDirection1 = {
|
|
22
22
|
target: 3000,
|
|
23
|
-
acceleration:
|
|
24
|
-
deceleration:
|
|
23
|
+
acceleration: 6000,
|
|
24
|
+
deceleration: 6000, // RPM/s
|
|
25
25
|
};
|
|
26
26
|
this.lookupTableVelocityProfileDirection2 = {
|
|
27
27
|
target: -3000,
|
|
28
|
-
acceleration:
|
|
29
|
-
deceleration:
|
|
28
|
+
acceleration: 6000,
|
|
29
|
+
deceleration: 6000, // RPM/s
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
start() {
|
|
@@ -41,7 +41,7 @@ class IntegroEncoderCalibration {
|
|
|
41
41
|
this.notifications$.next('Triggering automatic calibration of the POA by setting register 0x25 to 0x09.');
|
|
42
42
|
yield this.writeEncoderRegisterValueAndValidateResponse(0x25, 0x09);
|
|
43
43
|
// Convert the POE calibration velocity profile values and update the device.
|
|
44
|
-
yield this.setVelocityProfile(this.poeCalibrationVelocityProfile);
|
|
44
|
+
yield this.setVelocityProfile(this.poeCalibrationVelocityProfile, 4);
|
|
45
45
|
this.notifications$.next('Setting modes of operation to Profile velocity mode and transitioning to Operation enabled CiA402 state.');
|
|
46
46
|
yield (0, rxjs_1.lastValueFrom)(this.client.request.setModesOfOperation(deviceRef, cia402_1.ModesOfOperation.PROFILE_VELOCITY_MODE));
|
|
47
47
|
yield this.client.request.transitionToCia402State(deviceRef, cia402_1.Cia402State.OPERATION_ENABLED);
|
|
@@ -60,20 +60,20 @@ class IntegroEncoderCalibration {
|
|
|
60
60
|
yield this.writeEncoderRegisterValueAndValidateResponse(0x25, 0x00);
|
|
61
61
|
this.notifications$.next('Running the motor at a constant speed in one direction.');
|
|
62
62
|
// Run the motor at constant speed in one direction.
|
|
63
|
-
this.setVelocityProfile(this.lookupTableVelocityProfileDirection1);
|
|
63
|
+
this.setVelocityProfile(this.lookupTableVelocityProfileDirection1, 2);
|
|
64
64
|
yield (0, util_1.resolveAfter)(500);
|
|
65
65
|
this.notifications$.next('Writing 0x00C2 to the encoder register 0x50.');
|
|
66
66
|
yield this.writeEncoderRegisterValueAndValidateResponse(0x50, 0x00C2, 2);
|
|
67
|
-
yield (0, util_1.resolveAfter)(
|
|
67
|
+
yield (0, util_1.resolveAfter)(3000);
|
|
68
68
|
yield this.client.request.download(this.deviceRef, 0x60FF, 0, 0);
|
|
69
69
|
yield (0, util_1.resolveAfter)(500);
|
|
70
70
|
this.notifications$.next('Reversing the rotation direction.');
|
|
71
71
|
// Reverse the rotation direction.
|
|
72
|
-
this.setVelocityProfile(this.lookupTableVelocityProfileDirection2);
|
|
72
|
+
this.setVelocityProfile(this.lookupTableVelocityProfileDirection2, 2);
|
|
73
73
|
yield (0, util_1.resolveAfter)(500);
|
|
74
74
|
this.notifications$.next('Writing 0x00C2 to the encoder register 0x50.');
|
|
75
75
|
yield this.writeEncoderRegisterValueAndValidateResponse(0x50, 0x00C2, 2);
|
|
76
|
-
yield (0, util_1.resolveAfter)(
|
|
76
|
+
yield (0, util_1.resolveAfter)(3000);
|
|
77
77
|
yield this.client.request.download(this.deviceRef, 0x60FF, 0, 0);
|
|
78
78
|
yield (0, util_1.resolveAfter)(500);
|
|
79
79
|
this.notifications$.next('Re-enabling POA by writing 0x01 to the encoder register 0x25.');
|
|
@@ -151,7 +151,7 @@ class IntegroEncoderCalibration {
|
|
|
151
151
|
/**
|
|
152
152
|
* Set velocity profile.
|
|
153
153
|
*/
|
|
154
|
-
setVelocityProfile(velocityProfile) {
|
|
154
|
+
setVelocityProfile(velocityProfile, accMultiplier = 2) {
|
|
155
155
|
var _a, _b;
|
|
156
156
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
157
157
|
const vp = Object.assign({}, velocityProfile); // make a copy
|
|
@@ -162,8 +162,8 @@ class IntegroEncoderCalibration {
|
|
|
162
162
|
// If it's higher than the maximum motor speed, set it to 95% of the maximum motor speed and update acceleration and deceleration accordingly.
|
|
163
163
|
if (maxMotorSpeed < vp.target) {
|
|
164
164
|
vp.target = maxMotorSpeed * 0.95;
|
|
165
|
-
vp.acceleration = vp.target *
|
|
166
|
-
vp.
|
|
165
|
+
vp.acceleration = vp.target * accMultiplier;
|
|
166
|
+
vp.deceleration = vp.target * accMultiplier;
|
|
167
167
|
}
|
|
168
168
|
// Convert the velocity profile values using the user-configured SI unit velocity and Feed constant.
|
|
169
169
|
for (let [key, value] of Object.entries(vp)) {
|
|
@@ -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,uDAAsD;AAQtD,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;;YACT,yJAAyJ;YACzJ,yDAAyD;YACzD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAEjC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;YACvG,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,sCAAsC,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAElH,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,CAAC,CAAC;
|
|
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,uDAAsD;AAQtD,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;;YACT,yJAAyJ;YACzJ,yDAAyD;YACzD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAEjC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;YACvG,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,sCAAsC,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAElH,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,SAAS,EAAE,yBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAChH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,oBAAW,CAAC,iBAAiB,CAAC,CAAC;YAE5F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;YAE1H,0GAA0G;YAC1G,MAAM,iBAAiB,GAAG,MAAM,IAAA,oBAAa,EAC3C,IAAA,YAAK,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAC/H,IAAA,aAAM,EAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EACjC,IAAA,gBAAS,EAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,mBAAmB,MAAK,IAAI,EAAE,IAAI,CAAC,CACtF,CAAC,CACH,CAAC;YAEF,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,8CAAiC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAEzG,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,qFAAqF,CAAC,CAAC;YAChH,MAAM,IAAI,CAAC,4CAA4C,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEpE,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,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACzE,MAAM,IAAI,CAAC,4CAA4C,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAEzE,MAAM,IAAA,mBAAY,EAAC,IAAI,CAAC,CAAC;YAEzB,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,mCAAmC,CAAC,CAAC;YAE9D,kCAAkC;YAElC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;YAEtE,MAAM,IAAA,mBAAY,EAAC,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACzE,MAAM,IAAI,CAAC,4CAA4C,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAEzE,MAAM,IAAA,mBAAY,EAAC,IAAI,CAAC,CAAC;YAEzB,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,+DAA+D,CAAC,CAAC;YAC1F,MAAM,IAAI,CAAC,4CAA4C,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEpE,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,SAAS,CAAC,CAAC;YAE/C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;YAC1G,MAAM,IAAA,oBAAa,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,sCAAsC,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACpH,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,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,sBAAsB,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,0CAAE,MAAM,0CAAE,YAAY,EAAE,CAAC,CAAC;YAEpG,yBAAyB;YACzB,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;aACvF;YAED,8BAA8B;YAC9B,IAAI,CAAC,IAAA,mCAAiB,EAAC,MAAA,MAAA,MAAM,CAAC,mBAAmB,0CAAE,MAAM,0CAAE,EAAE,EAAE,SAAS,CAAC,EAAE;gBACzE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;aAC/E;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAEjC,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;aAC9F;YAED,gGAAgG;YAChG,MAAM,+BAA+B,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC/F,IAAI,+BAA+B,KAAK,CAAC,EAAE;gBACzC,MAAM,yBAAyB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBACzF,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,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC/F,IAAI,+BAA+B,KAAK,CAAC,EAAE;oBACzC,MAAM,yBAAyB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;oBACzF,IAAI,yBAAyB,KAAK,CAAC,EAAE;wBACnC,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;qBAChH;iBACF;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,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9F,IAAI,6BAA6B,KAAK,CAAC,EAAE;gBACvC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;aACzF;YAED,sDAAsD;YACtD,MAAM,+BAA+B,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC/F,IAAI,+BAA+B,KAAK,CAAC,EAAE;gBACzC,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;aACtF;YAED,sCAAsC;YACtC,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACtF,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,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACpF,IAAI,oBAAoB,IAAI,CAAC,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;aACvG;;KACF;IAED;;OAEG;IACG,kBAAkB,CAAC,eAAgC,EAAE,aAAa,GAAG,CAAC;;;YAC1E,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,aAAa,GAAG,EAAE,CAAC,MAAM,EAAE;gBAC7B,EAAE,CAAC,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC;gBACjC,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,MAAM,GAAG,aAAa,CAAC;gBAC5C,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,MAAM,GAAG,aAAa,CAAC;aAC7C;YAED,oGAAoG;YACpG,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAsC,EAAE;gBAChF,EAAE,CAAC,GAAG,CAAC,GAAG,MAAA,IAAA,2CAAkC,EAAC,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,mCAAI,KAAK,CAAC;gBACzF,EAAE,CAAC,GAAG,CAAC,GAAG,MAAA,IAAA,iDAAwC,EAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,mCAAI,KAAK,CAAC;aAC9F;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;;KACH;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,wCAAwC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;aACnH;QACH,CAAC;KAAA;CAEF;AAzOD,8DAyOC"}
|
|
@@ -24,6 +24,8 @@ export declare const somanetCirculoVariants: SomanetCirculoVariant[];
|
|
|
24
24
|
* Whether the encoder port is internal or not depends on the port position and product ID.
|
|
25
25
|
*
|
|
26
26
|
* Circulo has internal encoders, specifically at port positions 1 and 2.
|
|
27
|
+
* Note that for Circulo variants that lack internal encoders on port positions 1 and 2, this function will return false.
|
|
28
|
+
*
|
|
27
29
|
* Integro will have an internal encoder only at port position 1.
|
|
28
30
|
*/
|
|
29
31
|
export declare function isEncoderPortInternal(port: number, productId?: string | number | null): boolean;
|
|
@@ -34,4 +36,10 @@ export declare function isEncoderPortInternal(port: number, productId?: string |
|
|
|
34
36
|
* or having no internal encoders at all. If internal encoder port 1 is used, then external encoder port 1 cannot be used, and so on.
|
|
35
37
|
*/
|
|
36
38
|
export declare function isEncoderPortUsable(port: number, productId?: string | number | null): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* This function only considers the internal encoder ports of Circulo and Integro, specifically ports at positions 1 and 2.
|
|
41
|
+
* It will return false for other port positions because they cannot serve as internal encoders.
|
|
42
|
+
* The usability of encoder ports depends on the Circulo variant.
|
|
43
|
+
*/
|
|
44
|
+
export declare function isInternalEncoderPortUsable(port: number, productId?: string | number | null): boolean;
|
|
37
45
|
export declare function getEncoderPortName(port: number, productId?: string | number | null): string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getEncoderPortName = exports.isEncoderPortUsable = exports.isEncoderPortInternal = exports.somanetCirculoVariants = exports.usableCirculoEncoderPortProductIds = exports.ECDB_E1_IDS = exports.ECDL_IDS = exports.ECNN_IDS = exports.ECBN_IDS = exports.ECAN_IDS = exports.ECDN_E1_IDS = exports.isProductIdOfType = exports.findSomanetProductById = exports.somanetProducts = void 0;
|
|
3
|
+
exports.getEncoderPortName = exports.isInternalEncoderPortUsable = exports.isEncoderPortUsable = exports.isEncoderPortInternal = exports.somanetCirculoVariants = exports.usableCirculoEncoderPortProductIds = exports.ECDB_E1_IDS = exports.ECDL_IDS = exports.ECNN_IDS = exports.ECBN_IDS = exports.ECAN_IDS = exports.ECDN_E1_IDS = exports.isProductIdOfType = exports.findSomanetProductById = exports.somanetProducts = void 0;
|
|
4
4
|
;
|
|
5
5
|
exports.somanetProducts = [
|
|
6
6
|
{ name: 'Circulo', idRange: [8500, 8599] },
|
|
@@ -58,6 +58,8 @@ exports.somanetCirculoVariants = [
|
|
|
58
58
|
* Whether the encoder port is internal or not depends on the port position and product ID.
|
|
59
59
|
*
|
|
60
60
|
* Circulo has internal encoders, specifically at port positions 1 and 2.
|
|
61
|
+
* Note that for Circulo variants that lack internal encoders on port positions 1 and 2, this function will return false.
|
|
62
|
+
*
|
|
61
63
|
* Integro will have an internal encoder only at port position 1.
|
|
62
64
|
*/
|
|
63
65
|
function isEncoderPortInternal(port, productId) {
|
|
@@ -98,6 +100,21 @@ function isEncoderPortUsable(port, productId) {
|
|
|
98
100
|
return true;
|
|
99
101
|
}
|
|
100
102
|
exports.isEncoderPortUsable = isEncoderPortUsable;
|
|
103
|
+
/**
|
|
104
|
+
* This function only considers the internal encoder ports of Circulo and Integro, specifically ports at positions 1 and 2.
|
|
105
|
+
* It will return false for other port positions because they cannot serve as internal encoders.
|
|
106
|
+
* The usability of encoder ports depends on the Circulo variant.
|
|
107
|
+
*/
|
|
108
|
+
function isInternalEncoderPortUsable(port, productId) {
|
|
109
|
+
if (isProductIdOfType(productId, 'Circulo All') && (port === 1 || port === 2)) {
|
|
110
|
+
return isEncoderPortUsable(port, productId);
|
|
111
|
+
}
|
|
112
|
+
else if (isProductIdOfType(productId, 'Integro') && port === 1) {
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
exports.isInternalEncoderPortUsable = isInternalEncoderPortUsable;
|
|
101
118
|
function getEncoderPortName(port, productId) {
|
|
102
119
|
if (isProductIdOfType(productId, 'Circulo All')) {
|
|
103
120
|
if (port === 1 || port === 2) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"somanet-product.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/somanet-product.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"somanet-product.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/somanet-product.ts"],"names":[],"mappings":"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"}
|