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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "motion-master-client",
3
- "version": "0.0.412",
3
+ "version": "0.0.414",
4
4
  "type": "commonjs",
5
5
  "description": "A library and CLI program used for communicating with Motion Master.",
6
6
  "dependencies": {
@@ -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
- get isSmmConfigFile(): boolean;
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;
@@ -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
- get isSmmConfigFile() {
49
- for (const parameter of this.parameters) {
50
- if ((0, parameter_1.isSmmParameterIndex)(parameter.index)) {
51
- return true;
52
- }
53
- }
54
- return false;
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":"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"}
1
+ {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/config-file.ts"],"names":[],"mappings":"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"}
@@ -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
  */
@@ -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 versions in descending order.
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
  /**
@@ -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
- return filenames.reduce((firmwares, packageFilename) => {
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 sortByVersion ? firmwares.sort((a, b) => a.version.localeCompare(b.version)).reverse() : firmwares;
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
- * Compares two firmware versions in descending order.
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 compareFirmwarePackagesByVersionDesc(a, b) {
359
- const re = /_v(.*).zip$/;
360
- const m1 = a.match(re);
361
- const m2 = b.match(re);
362
- if (m1 && m2) {
363
- return (0, semver_1.rcompare)(m1[1], m2[1]);
403
+ function extractFirmwareVersionOrEmpty(filename) {
404
+ try {
405
+ return extractFirmwareVersionFromFirmwarePackageFilename(filename);
406
+ }
407
+ catch (err) {
408
+ return '';
364
409
  }
365
- return 0;
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
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"firmware.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/firmware.ts"],"names":[],"mappings":"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"}
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
- export type GpioVoltageLevelOptions = Record<ProductFamily, {
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;
@@ -1 +1 @@
1
- {"version":3,"file":"gpio.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/gpio.ts"],"names":[],"mappings":";;;AAIa,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"}
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.