motion-master-client 0.0.412 → 0.0.414
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/config-file.d.ts +29 -1
- package/src/lib/config-file.js +39 -8
- package/src/lib/config-file.js.map +1 -1
- package/src/lib/encoder.d.ts +1 -1
- package/src/lib/firmware.d.ts +29 -1
- package/src/lib/firmware.js +66 -11
- package/src/lib/firmware.js.map +1 -1
- package/src/lib/gpio.d.ts +16 -2
- package/src/lib/gpio.js.map +1 -1
- package/src/lib/motion-master-req-res-client.js +1 -6
- package/src/lib/motion-master-req-res-client.js.map +1 -1
- package/src/lib/parameter.d.ts +19 -1
- package/src/lib/parameter.js +52 -8
- package/src/lib/parameter.js.map +1 -1
- package/src/lib/product-id-range.d.ts +2 -0
- package/src/lib/product-id-range.js +2 -0
- package/src/lib/product-id-range.js.map +1 -1
- package/src/lib/product.d.ts +4 -3
- package/src/lib/product.js +23 -0
- package/src/lib/product.js.map +1 -1
- package/src/lib/smm.d.ts +34 -0
- package/src/lib/smm.js +43 -1
- package/src/lib/smm.js.map +1 -1
package/package.json
CHANGED
package/src/lib/config-file.d.ts
CHANGED
|
@@ -2,6 +2,25 @@ import { ParseResult } from 'papaparse';
|
|
|
2
2
|
import { Parameter } from './parameter';
|
|
3
3
|
import { Optional } from './types';
|
|
4
4
|
export type ConfigParameter = Optional<Parameter, 'name' | 'typeValueKey' | 'id'>;
|
|
5
|
+
/**
|
|
6
|
+
* Whether a configuration file has to be loaded through the SMM Setup Wizard rather than through the
|
|
7
|
+
* ordinary drive parameter path.
|
|
8
|
+
*
|
|
9
|
+
* Two things decide it. A configuration only needs the wizard if it carries safety parameters at all,
|
|
10
|
+
* and the wizard only applies to a device that keeps its safety configuration on a detachable module —
|
|
11
|
+
* where those parameters live in a separate parameter space, which is what the wizard and its
|
|
12
|
+
* verification and validation steps exist for.
|
|
13
|
+
*
|
|
14
|
+
* A device with no such module keeps its safety parameters in its own object dictionary and writes them
|
|
15
|
+
* into the same config.csv as everything else, so for it they are drive parameters. That is a Circulo NG:
|
|
16
|
+
* sending the operator to the wizard would send that configuration somewhere it does not belong, and
|
|
17
|
+
* leave the drive with no way to be configured from a file at all.
|
|
18
|
+
*
|
|
19
|
+
* `deviceSupportsSafetyModule` comes from {@link supportsSafetyModule}, which reads the device's own
|
|
20
|
+
* dictionary. Pass `true` when it is not known: refusing a load that would have been allowed is
|
|
21
|
+
* recoverable, and loading safety parameters down a path that cannot verify them is not.
|
|
22
|
+
*/
|
|
23
|
+
export declare function requiresSmmSetupWizard(parameterIndexes: readonly number[], deviceSupportsSafetyModule: boolean): boolean;
|
|
5
24
|
/**
|
|
6
25
|
* Parses the contents of configuration files such as config.csv, .factory_config, and .assembly_config.
|
|
7
26
|
*/
|
|
@@ -15,7 +34,16 @@ export declare class ConfigFile {
|
|
|
15
34
|
parameters: ConfigParameter[];
|
|
16
35
|
constructor(content: string, file?: Pick<File, "name" | "type" | "size" | "lastModified"> | undefined);
|
|
17
36
|
get firmwareId(): string | undefined;
|
|
18
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Whether the file carries any safety parameter. Says nothing about how it has to be loaded —
|
|
39
|
+
* see {@link requiresSmmSetupWizard} for that.
|
|
40
|
+
*/
|
|
41
|
+
get containsSmmParameters(): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Whether this file has to be loaded through the SMM Setup Wizard on a device that keeps its safety
|
|
44
|
+
* configuration on a detachable module. See {@link requiresSmmSetupWizard}.
|
|
45
|
+
*/
|
|
46
|
+
requiresSmmSetupWizard(deviceSupportsSafetyModule: boolean): boolean;
|
|
19
47
|
get hasParseErrors(): boolean;
|
|
20
48
|
get numberOfParameters(): number;
|
|
21
49
|
toString(): string;
|
package/src/lib/config-file.js
CHANGED
|
@@ -1,8 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ConfigFile = void 0;
|
|
3
|
+
exports.ConfigFile = exports.requiresSmmSetupWizard = void 0;
|
|
4
4
|
const papaparse_1 = require("papaparse");
|
|
5
5
|
const parameter_1 = require("./parameter");
|
|
6
|
+
/**
|
|
7
|
+
* Whether a configuration file has to be loaded through the SMM Setup Wizard rather than through the
|
|
8
|
+
* ordinary drive parameter path.
|
|
9
|
+
*
|
|
10
|
+
* Two things decide it. A configuration only needs the wizard if it carries safety parameters at all,
|
|
11
|
+
* and the wizard only applies to a device that keeps its safety configuration on a detachable module —
|
|
12
|
+
* where those parameters live in a separate parameter space, which is what the wizard and its
|
|
13
|
+
* verification and validation steps exist for.
|
|
14
|
+
*
|
|
15
|
+
* A device with no such module keeps its safety parameters in its own object dictionary and writes them
|
|
16
|
+
* into the same config.csv as everything else, so for it they are drive parameters. That is a Circulo NG:
|
|
17
|
+
* sending the operator to the wizard would send that configuration somewhere it does not belong, and
|
|
18
|
+
* leave the drive with no way to be configured from a file at all.
|
|
19
|
+
*
|
|
20
|
+
* `deviceSupportsSafetyModule` comes from {@link supportsSafetyModule}, which reads the device's own
|
|
21
|
+
* dictionary. Pass `true` when it is not known: refusing a load that would have been allowed is
|
|
22
|
+
* recoverable, and loading safety parameters down a path that cannot verify them is not.
|
|
23
|
+
*/
|
|
24
|
+
function requiresSmmSetupWizard(parameterIndexes, deviceSupportsSafetyModule) {
|
|
25
|
+
if (!parameterIndexes.some(parameter_1.isSmmParameterIndex)) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
return deviceSupportsSafetyModule;
|
|
29
|
+
}
|
|
30
|
+
exports.requiresSmmSetupWizard = requiresSmmSetupWizard;
|
|
6
31
|
/**
|
|
7
32
|
* Parses the contents of configuration files such as config.csv, .factory_config, and .assembly_config.
|
|
8
33
|
*/
|
|
@@ -45,13 +70,19 @@ class ConfigFile {
|
|
|
45
70
|
get firmwareId() {
|
|
46
71
|
return this.apiId;
|
|
47
72
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Whether the file carries any safety parameter. Says nothing about how it has to be loaded —
|
|
75
|
+
* see {@link requiresSmmSetupWizard} for that.
|
|
76
|
+
*/
|
|
77
|
+
get containsSmmParameters() {
|
|
78
|
+
return this.parameters.some((parameter) => (0, parameter_1.isSmmParameterIndex)(parameter.index));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Whether this file has to be loaded through the SMM Setup Wizard on a device that keeps its safety
|
|
82
|
+
* configuration on a detachable module. See {@link requiresSmmSetupWizard}.
|
|
83
|
+
*/
|
|
84
|
+
requiresSmmSetupWizard(deviceSupportsSafetyModule) {
|
|
85
|
+
return requiresSmmSetupWizard(this.parameters.map((parameter) => parameter.index), deviceSupportsSafetyModule);
|
|
55
86
|
}
|
|
56
87
|
get hasParseErrors() {
|
|
57
88
|
var _a, _b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-file.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/config-file.ts"],"names":[],"mappings":";;;AAAA,yCAA+C;AAC/C,2CAAkF;AAKlF;;GAEG;AACH,MAAa,UAAU;IAQrB,YACkB,OAAe,EACf,IAA4D;;QAD5D,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAwD;QAE5E,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAE5D,IAAI,CAAC,WAAW,GAAG,IAAA,iBAAK,EAAW,iBAAiB,EAAE;YACpD,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;SAC3C,CAAC,CAAC;QAEH,IAAI,CAAA,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,0CAAE,MAAM,IAAG,CAAC,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;SAChF;QAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAClF,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;SAC5B;QAED,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACrE,IAAI,oBAAoB,EAAE;YACxB,IAAI,CAAC,eAAe,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;SAChD;QAED,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,KAAK,EAAE;YACjC,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;SAC5E;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI;aACpC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;YACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACpC,CAAC,CAAC;aACD,IAAI,CAAC,+BAAmB,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,
|
|
1
|
+
{"version":3,"file":"config-file.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/config-file.ts"],"names":[],"mappings":"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"}
|
package/src/lib/encoder.d.ts
CHANGED
|
@@ -82,7 +82,7 @@ export interface CirculoEncoderBatteryMode {
|
|
|
82
82
|
* Battery modes specify constraints such as maximum acceleration and current,
|
|
83
83
|
* along with a raw encoded `value` representing the mode setting.
|
|
84
84
|
*/
|
|
85
|
-
export declare const circuloEncoderBatteryModeMap: Map<"Node 400" | "Node 1000" | "Node 2000" | "Circulo 7" | "Circulo 9" | "Integro 60" | "Integro 80" | "ACTILINK-S Integro 60" | "ACTILINK-S Integro 80" | "ACTILINK-JD 8" | "ACTILINK-JD 9" | "ACTILINK-JD 10" | "ACTILINK-JD 12" | "ACTILINK-JD Duo 10" | "ACTILINK-JD Duo 12", CirculoEncoderBatteryMode[]>;
|
|
85
|
+
export declare const circuloEncoderBatteryModeMap: Map<"Node 400" | "Node 1000" | "Node 2000" | "Circulo 7" | "Circulo 9" | "Circulo NG 60" | "Circulo NG 70" | "Circulo NG 80" | "Circulo NG 85" | "Circulo NG 100" | "Integro 60" | "Integro 80" | "ACTILINK-S Integro 60" | "ACTILINK-S Integro 80" | "ACTILINK-JD 8" | "ACTILINK-JD 9" | "ACTILINK-JD 10" | "ACTILINK-JD 12" | "ACTILINK-JD Duo 10" | "ACTILINK-JD Duo 12", CirculoEncoderBatteryMode[]>;
|
|
86
86
|
/**
|
|
87
87
|
* Represents the possible types of encoder shafts.
|
|
88
88
|
*/
|
package/src/lib/firmware.d.ts
CHANGED
|
@@ -198,6 +198,18 @@ export declare function firmwareVersionSatisfies(version: string, range: string,
|
|
|
198
198
|
* @param calibration If a string, it will be treated as a range. Otherwise, the function returns the boolean value of `calibration`.
|
|
199
199
|
*/
|
|
200
200
|
export declare function isFirmwareVersionInRange(version: string, range?: string | null, calibration?: boolean | string): boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Checks whether a firmware version is Jasper, the firmware the Circulo NG boards run.
|
|
203
|
+
*
|
|
204
|
+
* Jasper versions start at v10.0.0, chosen so that they never collide with SOMANET Software v5.6.x and so
|
|
205
|
+
* that the version alone says which firmware a drive is running without having to name it. That makes the
|
|
206
|
+
* version the right thing to key firmware differences off: it covers every product that runs Jasper,
|
|
207
|
+
* including the Custom Projects boards, where a product ID range would only cover the ones it lists.
|
|
208
|
+
*
|
|
209
|
+
* The lower bound is a prerelease so that a v10.0.0 release candidate is recognised too — `>=v10.0.0`
|
|
210
|
+
* alone excludes `v10.0.0-rc.1`, because a prerelease sorts below the release it leads to.
|
|
211
|
+
*/
|
|
212
|
+
export declare function isJasperFirmware(version?: string): boolean;
|
|
201
213
|
/**
|
|
202
214
|
* Checks if the provided firmware version includes the new encoder configuration objects (0x2110 and 0x2112).
|
|
203
215
|
* Firmware versions starting from v5.0.0-rc.5 and v0.4.0-calibration include these objects.
|
|
@@ -218,6 +230,17 @@ export declare function isEncoderConfigurationFirmware(version?: string): boolea
|
|
|
218
230
|
* @returns A list of compatible firmware packages, each with its filename and version.
|
|
219
231
|
*/
|
|
220
232
|
export declare function resolveInstallableFirmwares(filenames: string[], firmwareIdOrDevice: string | Pick<Device, 'hardwareDescription' | 'stackInfo' | 'integroVariant'>, sortByVersion?: boolean): Firmware[];
|
|
233
|
+
/**
|
|
234
|
+
* Compares two firmware versions so that the newest sorts first, for use as an `Array#sort` comparator.
|
|
235
|
+
*
|
|
236
|
+
* Firmware versions have to be compared per numeric component rather than as text: a major version of 10
|
|
237
|
+
* or above precedes every 5.x.x version alphabetically, so comparing the strings ranks it as the oldest.
|
|
238
|
+
*
|
|
239
|
+
* Older firmware versions sometimes included invalid build metadata, which is removed before comparing,
|
|
240
|
+
* the same way {@link firmwareVersionSatisfies} does. A version that is still not valid SemVer afterwards
|
|
241
|
+
* sorts last, so one unparseable package filename cannot throw and take the ordering of the rest with it.
|
|
242
|
+
*/
|
|
243
|
+
export declare function compareFirmwareVersionsDesc(a: string, b: string): number;
|
|
221
244
|
/**
|
|
222
245
|
* Parses the Integro firmware version and returns an object with the date, day, month, year, version.
|
|
223
246
|
*
|
|
@@ -233,7 +256,12 @@ export declare function parseIntegroFirmwareVersion(value: number): {
|
|
|
233
256
|
year: string;
|
|
234
257
|
};
|
|
235
258
|
/**
|
|
236
|
-
* Compares two firmware
|
|
259
|
+
* Compares two firmware package filenames by the firmware version they carry so that the newest sorts first,
|
|
260
|
+
* for use as an `Array#sort` comparator.
|
|
261
|
+
*
|
|
262
|
+
* The version is read with {@link extractFirmwareVersionFromFirmwarePackageFilename}, which knows both the new
|
|
263
|
+
* and the old filename format and normalises the version, and compared with {@link compareFirmwareVersionsDesc}.
|
|
264
|
+
* A filename carrying no readable version sorts last.
|
|
237
265
|
*/
|
|
238
266
|
export declare function compareFirmwarePackagesByVersionDesc(a: string, b: string): number;
|
|
239
267
|
/**
|
package/src/lib/firmware.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mapPackagesToFilenameAndBuffer = exports.compareFirmwarePackagesByVersionDesc = exports.parseIntegroFirmwareVersion = exports.resolveInstallableFirmwares = exports.isEncoderConfigurationFirmware = exports.isFirmwareVersionInRange = exports.firmwareVersionSatisfies = exports.removeInvalidBuildMetadataFromFirmwareVersion = exports.isCalibrationFirmware = exports.extractFirmwareVersionFromFirmwarePackageFilename = exports.extractFirmwareId = exports.isFirmwarePackageFilenameCompatibleWithDevice = exports.parseOldFirmwarePackageFilename = exports.extractDeviceComponentsFromOldFirmwarePackageFilename = exports.parseNewFirmwarePackageFilename = exports.isOldFirmwarePackageFilename = exports.isNewFirmwarePackageFilename = exports.parseFirmwareId = exports.oldFirmwarePackageFilenameRegExp = exports.newFirmwarePackageFilenameRegExp = exports.firmwareIdRegExp = void 0;
|
|
3
|
+
exports.mapPackagesToFilenameAndBuffer = exports.compareFirmwarePackagesByVersionDesc = exports.parseIntegroFirmwareVersion = exports.compareFirmwareVersionsDesc = exports.resolveInstallableFirmwares = exports.isEncoderConfigurationFirmware = exports.isJasperFirmware = exports.isFirmwareVersionInRange = exports.firmwareVersionSatisfies = exports.removeInvalidBuildMetadataFromFirmwareVersion = exports.isCalibrationFirmware = exports.extractFirmwareVersionFromFirmwarePackageFilename = exports.extractFirmwareId = exports.isFirmwarePackageFilenameCompatibleWithDevice = exports.parseOldFirmwarePackageFilename = exports.extractDeviceComponentsFromOldFirmwarePackageFilename = exports.parseNewFirmwarePackageFilename = exports.isOldFirmwarePackageFilename = exports.isNewFirmwarePackageFilename = exports.parseFirmwareId = exports.oldFirmwarePackageFilenameRegExp = exports.newFirmwarePackageFilenameRegExp = exports.firmwareIdRegExp = void 0;
|
|
4
4
|
const hardware_description_1 = require("./hardware-description");
|
|
5
5
|
const semver_1 = require("semver");
|
|
6
6
|
exports.firmwareIdRegExp = /\d{4}-\d{2}(-\d{4})?(-\d+)*/;
|
|
@@ -293,6 +293,24 @@ function isFirmwareVersionInRange(version, range, calibration) {
|
|
|
293
293
|
return result;
|
|
294
294
|
}
|
|
295
295
|
exports.isFirmwareVersionInRange = isFirmwareVersionInRange;
|
|
296
|
+
/**
|
|
297
|
+
* Checks whether a firmware version is Jasper, the firmware the Circulo NG boards run.
|
|
298
|
+
*
|
|
299
|
+
* Jasper versions start at v10.0.0, chosen so that they never collide with SOMANET Software v5.6.x and so
|
|
300
|
+
* that the version alone says which firmware a drive is running without having to name it. That makes the
|
|
301
|
+
* version the right thing to key firmware differences off: it covers every product that runs Jasper,
|
|
302
|
+
* including the Custom Projects boards, where a product ID range would only cover the ones it lists.
|
|
303
|
+
*
|
|
304
|
+
* The lower bound is a prerelease so that a v10.0.0 release candidate is recognised too — `>=v10.0.0`
|
|
305
|
+
* alone excludes `v10.0.0-rc.1`, because a prerelease sorts below the release it leads to.
|
|
306
|
+
*/
|
|
307
|
+
function isJasperFirmware(version) {
|
|
308
|
+
if (!version) {
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
return firmwareVersionSatisfies(version, '>=v10.0.0-0');
|
|
312
|
+
}
|
|
313
|
+
exports.isJasperFirmware = isJasperFirmware;
|
|
296
314
|
/**
|
|
297
315
|
* Checks if the provided firmware version includes the new encoder configuration objects (0x2110 and 0x2112).
|
|
298
316
|
* Firmware versions starting from v5.0.0-rc.5 and v0.4.0-calibration include these objects.
|
|
@@ -324,7 +342,7 @@ exports.isEncoderConfigurationFirmware = isEncoderConfigurationFirmware;
|
|
|
324
342
|
* @returns A list of compatible firmware packages, each with its filename and version.
|
|
325
343
|
*/
|
|
326
344
|
function resolveInstallableFirmwares(filenames, firmwareIdOrDevice, sortByVersion = false) {
|
|
327
|
-
|
|
345
|
+
const firmwares = filenames.reduce((firmwares, packageFilename) => {
|
|
328
346
|
try {
|
|
329
347
|
if (isFirmwarePackageFilenameCompatibleWithDevice(packageFilename, firmwareIdOrDevice)) {
|
|
330
348
|
const version = extractFirmwareVersionFromFirmwarePackageFilename(packageFilename);
|
|
@@ -332,10 +350,36 @@ function resolveInstallableFirmwares(filenames, firmwareIdOrDevice, sortByVersio
|
|
|
332
350
|
}
|
|
333
351
|
}
|
|
334
352
|
catch (err) { }
|
|
335
|
-
return
|
|
353
|
+
return firmwares;
|
|
336
354
|
}, []);
|
|
355
|
+
return sortByVersion ? firmwares.sort((a, b) => compareFirmwareVersionsDesc(a.version, b.version)) : firmwares;
|
|
337
356
|
}
|
|
338
357
|
exports.resolveInstallableFirmwares = resolveInstallableFirmwares;
|
|
358
|
+
/**
|
|
359
|
+
* Compares two firmware versions so that the newest sorts first, for use as an `Array#sort` comparator.
|
|
360
|
+
*
|
|
361
|
+
* Firmware versions have to be compared per numeric component rather than as text: a major version of 10
|
|
362
|
+
* or above precedes every 5.x.x version alphabetically, so comparing the strings ranks it as the oldest.
|
|
363
|
+
*
|
|
364
|
+
* Older firmware versions sometimes included invalid build metadata, which is removed before comparing,
|
|
365
|
+
* the same way {@link firmwareVersionSatisfies} does. A version that is still not valid SemVer afterwards
|
|
366
|
+
* sorts last, so one unparseable package filename cannot throw and take the ordering of the rest with it.
|
|
367
|
+
*/
|
|
368
|
+
function compareFirmwareVersionsDesc(a, b) {
|
|
369
|
+
const versionA = (0, semver_1.valid)(removeInvalidBuildMetadataFromFirmwareVersion(a), { loose: true });
|
|
370
|
+
const versionB = (0, semver_1.valid)(removeInvalidBuildMetadataFromFirmwareVersion(b), { loose: true });
|
|
371
|
+
if (versionA === null && versionB === null) {
|
|
372
|
+
return 0;
|
|
373
|
+
}
|
|
374
|
+
if (versionA === null) {
|
|
375
|
+
return 1;
|
|
376
|
+
}
|
|
377
|
+
if (versionB === null) {
|
|
378
|
+
return -1;
|
|
379
|
+
}
|
|
380
|
+
return (0, semver_1.rcompare)(versionA, versionB, { loose: true });
|
|
381
|
+
}
|
|
382
|
+
exports.compareFirmwareVersionsDesc = compareFirmwareVersionsDesc;
|
|
339
383
|
/**
|
|
340
384
|
* Parses the Integro firmware version and returns an object with the date, day, month, year, version.
|
|
341
385
|
*
|
|
@@ -353,16 +397,27 @@ function parseIntegroFirmwareVersion(value) {
|
|
|
353
397
|
}
|
|
354
398
|
exports.parseIntegroFirmwareVersion = parseIntegroFirmwareVersion;
|
|
355
399
|
/**
|
|
356
|
-
*
|
|
400
|
+
* Reads the firmware version out of a package filename, or returns an empty string if the filename does not
|
|
401
|
+
* carry one. An empty string is not a valid version, so it sorts last in {@link compareFirmwareVersionsDesc}.
|
|
357
402
|
*/
|
|
358
|
-
function
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
return
|
|
403
|
+
function extractFirmwareVersionOrEmpty(filename) {
|
|
404
|
+
try {
|
|
405
|
+
return extractFirmwareVersionFromFirmwarePackageFilename(filename);
|
|
406
|
+
}
|
|
407
|
+
catch (err) {
|
|
408
|
+
return '';
|
|
364
409
|
}
|
|
365
|
-
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Compares two firmware package filenames by the firmware version they carry so that the newest sorts first,
|
|
413
|
+
* for use as an `Array#sort` comparator.
|
|
414
|
+
*
|
|
415
|
+
* The version is read with {@link extractFirmwareVersionFromFirmwarePackageFilename}, which knows both the new
|
|
416
|
+
* and the old filename format and normalises the version, and compared with {@link compareFirmwareVersionsDesc}.
|
|
417
|
+
* A filename carrying no readable version sorts last.
|
|
418
|
+
*/
|
|
419
|
+
function compareFirmwarePackagesByVersionDesc(a, b) {
|
|
420
|
+
return compareFirmwareVersionsDesc(extractFirmwareVersionOrEmpty(a), extractFirmwareVersionOrEmpty(b));
|
|
366
421
|
}
|
|
367
422
|
exports.compareFirmwarePackagesByVersionDesc = compareFirmwarePackagesByVersionDesc;
|
|
368
423
|
/**
|
package/src/lib/firmware.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firmware.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/firmware.ts"],"names":[],"mappings":";;;AAAA,iEAAsH;AACtH,
|
|
1
|
+
{"version":3,"file":"firmware.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/firmware.ts"],"names":[],"mappings":"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"}
|
package/src/lib/gpio.d.ts
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import { ProductFamily } from "./product";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Device-specific GPIO voltage level labels, by product family.
|
|
4
|
+
*
|
|
5
|
+
* These take precedence over the options the ESI declares for 0x2214:01, and
|
|
6
|
+
* are the only source of them for a family whose ESI declares none.
|
|
7
|
+
*
|
|
8
|
+
* A family is left out when its levels are unknown, or when the parameter should
|
|
9
|
+
* stay a plain numeric input -- Circulo NG is left out for that reason, and its
|
|
10
|
+
* ESI declares no options either, so nothing offers a selection for it.
|
|
11
|
+
*
|
|
12
|
+
* Leave such a family out rather than giving it an empty entry: an absent family
|
|
13
|
+
* falls through to whatever the ESI declares, whereas an empty object is not
|
|
14
|
+
* nullish and would blank the option list.
|
|
15
|
+
*/
|
|
16
|
+
export type GpioVoltageLevelOptions = Partial<Record<ProductFamily, {
|
|
3
17
|
[key: string]: number;
|
|
4
|
-
}
|
|
18
|
+
}>>;
|
|
5
19
|
export declare const gpioVoltageLevelOptions: GpioVoltageLevelOptions;
|
package/src/lib/gpio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gpio.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/gpio.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"gpio.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/gpio.ts"],"names":[],"mappings":";;;AAkBa,QAAA,uBAAuB,GAA4B;IAC9D,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE,yBAAyB,EAAE,CAAC,EAAE;IACtC,OAAO,EAAE,EAAE,yBAAyB,EAAE,CAAC,EAAE,2BAA2B,EAAE,CAAC,EAAE;IACzE,OAAO,EAAE,EAAE,wBAAwB,EAAE,CAAC,EAAE;IACxC,iBAAiB,EAAG,EAAE,yBAAyB,EAAE,CAAC,EAAE,2BAA2B,EAAE,CAAC,EAAE;IACpF,aAAa,EAAG,EAAE,yBAAyB,EAAE,CAAC,EAAE,2BAA2B,EAAE,CAAC,EAAE;IAChF,oBAAoB,EAAE,EAAE,wBAAwB,EAAE,CAAC,EAAE;CACtD,CAAC"}
|
|
@@ -1765,12 +1765,7 @@ class MotionMasterReqResClient {
|
|
|
1765
1765
|
const deviceParameter = Object.assign(Object.assign({ id }, base), { index, subindex });
|
|
1766
1766
|
const esiExtension = esi
|
|
1767
1767
|
? (0, parameter_1.getParameterEsiExtension)(deviceParameter, esi === null || esi === void 0 ? void 0 : esi.value, productCode)
|
|
1768
|
-
:
|
|
1769
|
-
inputType: 'text',
|
|
1770
|
-
mandatory: false,
|
|
1771
|
-
min: Number.MIN_SAFE_INTEGER,
|
|
1772
|
-
max: Number.MAX_SAFE_INTEGER,
|
|
1773
|
-
};
|
|
1768
|
+
: (0, parameter_1.getParameterEsiExtensionFallback)(deviceParameter);
|
|
1774
1769
|
/**
|
|
1775
1770
|
* Configure GPIO voltage (obj 0x2214:1) with device-aware labels.
|
|
1776
1771
|
* Circulo supports 3.3V/5.0V selection; Node is fixed at 3.3V; Integro is fixed at 24V.
|