motion-master-client 0.0.287 → 0.0.289

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.
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parameterAddressToColor = exports.isParameterValueDisabled = exports.disabledValueParameters = exports.resolveParameterIndexAndSubindex = exports.createPdoParameterValues = exports.valueTypeToParameterTypeValueKeyMap = exports.mapValueTypeToBitSize = exports.mapParameterToPdoSubItemValue = exports.fillPdoParametersWithMappingEntries = exports.filterTxPdoParameters = exports.filterRxPdoParameters = exports.isPdoIndex = exports.isTxPdoIndex = exports.isRxPdoIndex = exports.isSmmParameterIndex = exports.mapParameterTypeValueToObject = exports.parseParameterValue = exports.getParameterValue = exports.getParameterTypeValue = exports.getParameterTypeValueDefault = exports.compareParameters = exports.intersectionParametersWithDifferentValues = exports.intersectionParameters = exports.differenceParameters = exports.parametersCompareFn = exports.isParameterId = exports.splitParameterId = exports.parameterIdRegExp = exports.makeParameterId = void 0;
3
+ exports.getParameterEsiExtension = exports.parameterAddressToColor = exports.isParameterValueDisabled = exports.disabledValueParameters = exports.resolveParameterIndexAndSubindex = exports.createPdoParameterValues = exports.valueTypeToParameterTypeValueKeyMap = exports.mapValueTypeToBitSize = exports.mapParameterToPdoSubItemValue = exports.fillPdoParametersWithMappingEntries = exports.filterTxPdoParameters = exports.filterRxPdoParameters = exports.isPdoIndex = exports.isTxPdoIndex = exports.isRxPdoIndex = exports.isSmmParameterIndex = exports.mapParameterTypeValueToObject = exports.parseParameterValue = exports.getParameterValue = exports.getParameterTypeValue = exports.getParameterTypeValueDefault = exports.compareParameters = exports.intersectionParametersWithDifferentValues = exports.intersectionParameters = exports.differenceParameters = exports.parametersCompareFn = exports.isParameterId = exports.splitParameterId = exports.parameterIdRegExp = exports.makeParameterId = void 0;
4
4
  const types_1 = require("./types");
5
5
  const lodash_1 = require("lodash");
6
+ const util_1 = require("./util");
6
7
  function makeParameterId(a, b) {
7
8
  let index = 0;
8
9
  let subindex = 0;
@@ -291,6 +292,32 @@ function filterTxPdoParameters(parameters, excludeSubIndex000 = false) {
291
292
  return parameters.filter((p) => isTxPdoIndex(p.index) && (excludeSubIndex000 ? p.subindex > 0 : true)); // TxPDOs: Index area 0x1A00 to 0x1BFF
292
293
  }
293
294
  exports.filterTxPdoParameters = filterTxPdoParameters;
295
+ /**
296
+ * Fills in missing PDO mapping entries for each parameter group that starts with a subindex of 0.
297
+ *
298
+ * For each group of parameters with the same `index` and starting at `subindex` 0, this function:
299
+ * 1. Adds the existing parameters to the output.
300
+ * 2. Appends placeholder `Parameter` entries with incremented subindexes until the total count reaches `entriesPerPdo`.
301
+ *
302
+ * This is useful for ensuring that each PDO mapping table has a consistent number of entries,
303
+ * even if some are unused and need to be filled with default placeholder values.
304
+ *
305
+ * @param parameters - The list of existing parameters to process.
306
+ * @param entriesPerPdo - The number of total entries (including placeholders) each PDO should have. Defaults to 10.
307
+ *
308
+ * @returns A new array of `Parameter` objects where each PDO group is filled with entries up to `entriesPerPdo`.
309
+ *
310
+ * @example
311
+ * ```ts
312
+ * const params: Parameter[] = [
313
+ * { index: 0x1600, subindex: 0, ... },
314
+ * { index: 0x1600, subindex: 1, ... },
315
+ * ];
316
+ *
317
+ * const filled = fillPdoParametersWithMappingEntries(params, 3);
318
+ * // filled will include the two original entries plus one default placeholder with subindex 2
319
+ * ```
320
+ */
294
321
  function fillPdoParametersWithMappingEntries(parameters, entriesPerPdo = 10) {
295
322
  const output = [];
296
323
  let i = 0;
@@ -511,4 +538,225 @@ exports.parameterAddressToColor = {
511
538
  '0x60F40000:02': '#D19147',
512
539
  '0x60F40000:03': '#E4CE86', // Torque following error
513
540
  };
541
+ /**
542
+ * Retrieves extended EtherCAT Slave Information (ESI) metadata for a given device parameter.
543
+ *
544
+ * This function extracts and constructs additional descriptive and validation
545
+ * information for a device parameter based on the ESI file data, including
546
+ * constraints, default values, units, descriptions, mapping capabilities,
547
+ * and input type hints.
548
+ *
549
+ * The returned object extends the base device parameter with ESI-specific
550
+ * metadata that can be used for validation, UI generation, and device
551
+ * communication mapping.
552
+ *
553
+ * @param parameter - Partial device parameter containing `index`, `subindex`, `typeValueKey`,
554
+ * and optionally `typeValue`. Identifies the parameter to extend.
555
+ * @param info - The EtherCAT master or module info object containing
556
+ * descriptions and device dictionaries as parsed from the ESI file.
557
+ * (Type from `ecatmod.EtherCATInfo` expected but typed as `any` here.)
558
+ * @param productCode - The EtherCAT device product code used to locate the matching device
559
+ * description within the ESI data.
560
+ * This product code can typically be read from the device's object dictionary
561
+ * at index `0x1018` (Identity Object), subindex `2`.
562
+ *
563
+ * @returns A {@link ParameterEsiExtension} object containing extended parameter metadata,
564
+ * such as mandatory flags, min/max constraints, default values,
565
+ * units, bit sizes, descriptions, options, PDO mapping flags, SMM module flag,
566
+ * group information, type keys, and UI input hints.
567
+ *
568
+ * @remarks
569
+ * - Supports parameter metadata extraction from both the main device profile dictionary
570
+ * and sub-modules (e.g., for modular devices like SMM LW2).
571
+ * - For STRING types, the maximum length is adjusted to accommodate firmware limitations.
572
+ * - Descriptions and options are parsed and cleaned from JSON-like strings.
573
+ * - Handles both variable data type objects and complex objects with sub-items.
574
+ * - Logs a warning if no matching device is found for the given product code.
575
+ * - Preserves original unit and options for reference or restoration.
576
+ */
577
+ function getParameterEsiExtension(parameter, info, productCode) {
578
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
579
+ const out = {};
580
+ // Find the EtherCAT device matching the given product code.
581
+ const ecatDevice = (_b = (_a = info.descriptions) === null || _a === void 0 ? void 0 : _a.devices) === null || _b === void 0 ? void 0 : _b.device.find((d) => {
582
+ var _a;
583
+ return (0, util_1.hexDecValueToNumber)((_a = d.type) === null || _a === void 0 ? void 0 : _a.productCode) === productCode;
584
+ });
585
+ // Assumes the device has only one profile.
586
+ // If the device has multiple profiles, this logic may need to be extended.
587
+ let dictionary = (_c = ecatDevice === null || ecatDevice === void 0 ? void 0 : ecatDevice.profile[0]) === null || _c === void 0 ? void 0 : _c.dictionary;
588
+ // If no dictionary is found in the device:
589
+ // - It may be located in a sub-module instead.
590
+ // - The device entry may not exist at all for this product code.
591
+ // - The same product code could potentially be shared among multiple devices.
592
+ if (!dictionary) {
593
+ console.warn('No matching device in ESI found by product code!', productCode);
594
+ return out;
595
+ }
596
+ // Attempt to find the object by index in the primary device dictionary.
597
+ let object = dictionary.objects.findByIndex(parameter.index);
598
+ // If not found, look into device modules (e.g., for modular devices like SMM LW2, shared object dictionary).
599
+ if (!object) {
600
+ const deviceModules = (_d = info.descriptions) === null || _d === void 0 ? void 0 : _d.getDeviceModules(ecatDevice);
601
+ if (deviceModules) {
602
+ // Iterate modules in reverse to prioritize the most recently added ones,
603
+ // since newer modules (like SMM LW2) tend to contain more complete definitions.
604
+ for (let i = deviceModules.length - 1; i >= 0; i--) {
605
+ const module = deviceModules[i];
606
+ // Try to find the object in the module's dictionary.
607
+ object = (_g = (_f = (_e = module.profile) === null || _e === void 0 ? void 0 : _e.dictionary) === null || _f === void 0 ? void 0 : _f.objects) === null || _g === void 0 ? void 0 : _g.findByIndex(parameter.index);
608
+ if (object) {
609
+ // If found, update the active dictionary reference to the module's.
610
+ dictionary = module.profile.dictionary;
611
+ // Identify if the object belongs to a known SMM module based on moduleIdent.
612
+ const moduleIdent = (_j = (_h = module.type) === null || _h === void 0 ? void 0 : _h.moduleIdent) === null || _j === void 0 ? void 0 : _j.toLowerCase();
613
+ if (['#x22d20001', '#x22d20002', '#x22d20003', '#x22d20004'].includes(moduleIdent)) {
614
+ out.isSmm = true;
615
+ }
616
+ break; // Exit early once the object is found.
617
+ }
618
+ }
619
+ }
620
+ }
621
+ // If no object was found in either the device or its modules dictionaries,
622
+ // return the current out (likely empty) as there is nothing to extend.
623
+ if (!object) {
624
+ return out;
625
+ }
626
+ // Check if the object is of a variable data type
627
+ if (dictionary.isObjectOfDataTypeVariable(object)) {
628
+ // Determine if the parameter is mandatory by checking the 'category' flag ('m' = mandatory)
629
+ out.mandatory = dictionary.adoptedObjectFlag(object, 'category') === 'm';
630
+ // For non-floating-point types, retrieve min and max allowed values for validation
631
+ if (!dictionary.isObjectTypeFloating(object)) {
632
+ // Skip min/max validation for REAL (floating) types due to complexity or unsupported constraints
633
+ out.min = dictionary.minAllowedValueForObject(object);
634
+ out.max = dictionary.maxAllowedValueForObject(object);
635
+ }
636
+ // Get the default value of the object, converted to a number if possible
637
+ out.defaultData = dictionary.defaultDataToNumberForObject(object);
638
+ // Extract unit symbol if available; fallback to empty string if none provided
639
+ out.unit = object.info.unit ? object.info.unitSymbol : '';
640
+ // Store the bit size of the object (parameter size in bits)
641
+ out.bitSize = object.bitSize;
642
+ // Handle STRING type parameters by extracting the defined max length for validation
643
+ const strTypeRegex = /STRING\((\d+)\)/;
644
+ const strTypeRegexMatch = object.type.match(strTypeRegex);
645
+ if (strTypeRegexMatch) {
646
+ // The firmware encounters issues when STRING(50) is used, and a value of 48 or more characters is assigned.
647
+ // Firmware will fail to load the value, resulting in an empty string. With 47 characters it works.
648
+ const strlen = parseInt(strTypeRegexMatch[1], 10) - 3;
649
+ out.strlen = strlen < 1 ? 1 : strlen;
650
+ }
651
+ // Store the exact ESI data type string (e.g., "UINT16", "STRING(50)", etc.)
652
+ out.esiType = object.type;
653
+ // Fetch a human-readable description for the parameter
654
+ out.description = dictionary.getDescriptionForObject(object);
655
+ // Attempt to retrieve options for the parameter, if any, and parse them from JSON-like string
656
+ const options = dictionary.getOptionsForObject(object);
657
+ if (options) {
658
+ // Clean up line breaks before parsing to avoid JSON parse errors
659
+ out.options = JSON.parse(options.replace(/\r?\n|\r/g, ''));
660
+ }
661
+ // Determine if parameter can be mapped as a RxPDO based on the 'pdoMapping' flag
662
+ out.canBeMappedAsRxPdo = ['r', 'tr'].includes(dictionary.adoptedObjectFlag(object, 'pdoMapping'));
663
+ // Determine if parameter can be mapped as a TxPDO based on the 'pdoMapping' flag
664
+ out.canBeMappedAsTxPdo = ['t', 'tr'].includes(dictionary.adoptedObjectFlag(object, 'pdoMapping'));
665
+ }
666
+ else {
667
+ // Assign the group name from the object's nameValue property
668
+ out.group = object.nameValue;
669
+ // Find the specific sub-item of the object matching the device parameter's subindex
670
+ const subItem = dictionary.findObjectSubItemBySubIndex(object, parameter.subindex);
671
+ if (!subItem && isPdoIndex(parameter.index)) {
672
+ console.warn(`No subitem found for object ${parameter.index}:${parameter.subindex} ${object.nameValue}.`);
673
+ }
674
+ else {
675
+ // Get the data type information for this sub-item
676
+ const subItemType = dictionary.subItemTypeForObjectSubItem(object, subItem);
677
+ // Determine if this sub-item is mandatory by checking its 'category' flag ('m' means mandatory)
678
+ out.mandatory = dictionary.adoptedObjectSubItemFlag(object, subItem, 'category') === 'm';
679
+ // For non-floating sub-item types, retrieve the minimum and maximum allowed values for validation
680
+ // Floating-point types (REAL) skip min/max validation due to complexity or lack of constraints
681
+ if (!dictionary.isObjectSubItemTypeFloating(object, subItem)) {
682
+ out.min = dictionary.minAllowedValueForObjectSubItem(object, subItem);
683
+ out.max = dictionary.maxAllowedValueForObjectSubItem(object, subItem);
684
+ }
685
+ // Extract the default value for the sub-item, converted to a number if possible
686
+ out.defaultData = dictionary.defaultDataToNumberForObjectSubItem(object, subItem);
687
+ // Use unit symbol from the sub-item's info if available; fallback to empty string otherwise
688
+ out.unit = subItem.info.unit ? subItem.info.unitSymbol : '';
689
+ // Store the bit size and ESI data type string of the sub-item for further use
690
+ out.bitSize = subItemType.bitSize;
691
+ out.esiType = subItemType.type;
692
+ // Retrieve the general description for the parent object
693
+ const objectDescription = dictionary.getDescriptionForObject(object);
694
+ // Handle description and options differently depending on subindex and data type
695
+ if (parameter.subindex === 0) {
696
+ // For subindex 0, use the object description directly
697
+ out.description = objectDescription;
698
+ }
699
+ else {
700
+ if (dictionary.isObjectOfDataTypeArray(object)) {
701
+ // For array data types, use the object description and attempt to parse options
702
+ out.description = objectDescription;
703
+ const options = dictionary.getOptionsForObject(object);
704
+ if (options) {
705
+ // Clean up newlines before parsing JSON options
706
+ out.options = JSON.parse(options.replace(/\r?\n|\r/g, ''));
707
+ }
708
+ }
709
+ else {
710
+ // For record data types, store the object description as recordDescription
711
+ if (dictionary.isObjectOfDataTypeRecord(object)) {
712
+ out.recordDescription = objectDescription;
713
+ }
714
+ // For sub-items, get a more specific description and options
715
+ out.description = dictionary.getDescriptionForObjectSubItem(object, subItem);
716
+ const options = dictionary.getOptionsForObjectSubItem(object, subItem);
717
+ if (options) {
718
+ out.options = JSON.parse(options.replace(/\r?\n|\r/g, ''));
719
+ }
720
+ }
721
+ }
722
+ // Determine if the sub-item can be mapped as a RxPDO based on its 'pdoMapping' flag
723
+ out.canBeMappedAsRxPdo = ['r', 'tr'].includes(dictionary.adoptedObjectSubItemFlag(object, subItem, 'pdoMapping'));
724
+ // Determine if the sub-item can be mapped as a TxPDO based on its 'pdoMapping' flag
725
+ out.canBeMappedAsTxPdo = ['t', 'tr'].includes(dictionary.adoptedObjectSubItemFlag(object, subItem, 'pdoMapping'));
726
+ }
727
+ }
728
+ // Correct the case where the dictionary returns the string 'undefined'
729
+ // instead of an actual undefined value for the description.
730
+ if (out.description === 'undefined') {
731
+ out.description = undefined;
732
+ }
733
+ // Assign typeValueKey and typeValue from parameter if typeValueKey is present.
734
+ // This prioritizes typeValueKey over typeValue for consistency.
735
+ if (parameter.typeValueKey) {
736
+ out.typeValueKey = parameter.typeValueKey;
737
+ out.typeValue = parameter.typeValueKey;
738
+ }
739
+ else if (parameter.typeValue) {
740
+ // Otherwise, fallback to using typeValue if available.
741
+ out.typeValue = parameter.typeValue;
742
+ }
743
+ // Determine the form input type based on the resolved typeValue.
744
+ // Use a text input for string or raw values.
745
+ if (out.typeValue === 'stringValue' || out.typeValue === 'rawValue') {
746
+ out.inputType = 'text';
747
+ }
748
+ else {
749
+ // Default to number input for all other types.
750
+ out.inputType = 'number';
751
+ }
752
+ // If the parameter has predefined options, override input type to a select dropdown.
753
+ if (out.options) {
754
+ out.inputType = 'select';
755
+ }
756
+ // Preserve the original unit and options for later reference or restoration.
757
+ out.originalUnit = out.unit;
758
+ out.originalOptions = out.options;
759
+ return out;
760
+ }
761
+ exports.getParameterEsiExtension = getParameterEsiExtension;
514
762
  //# sourceMappingURL=parameter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/parameter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../../../../libs/motion-master-client/src/lib/parameter.ts"],"names":[],"mappings":"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"}
@@ -682,8 +682,8 @@
682
682
  "type": "int16_t",
683
683
  "size": 2,
684
684
  "unit": null,
685
- "min": -4095,
686
- "max": 4095,
685
+ "min": -4096,
686
+ "max": 4096,
687
687
  "defaultValue": 0,
688
688
  "access": "rw",
689
689
  "resetValue": 0
@@ -736,7 +736,7 @@
736
736
  "max": 60000,
737
737
  "defaultValue": 0,
738
738
  "access": "rw",
739
- "resetValue": 0
739
+ "resetValue": 200
740
740
  },
741
741
  {
742
742
  "parameterName": "Brake with STO (SBC)",
@@ -802,7 +802,7 @@
802
802
  "max": 2147483647,
803
803
  "defaultValue": 0,
804
804
  "access": "rw",
805
- "resetValue": 0
805
+ "resetValue": 20
806
806
  },
807
807
  {
808
808
  "parameterName": "s_Zero_SOS",
@@ -1552,7 +1552,7 @@
1552
1552
  "max": null,
1553
1553
  "defaultValue": 1715470337,
1554
1554
  "access": "rw",
1555
- "resetValue": 1716518913
1555
+ "resetValue": 1715470337
1556
1556
  },
1557
1557
  {
1558
1558
  "parameterName": "SLT input",
@@ -393,3 +393,105 @@ export interface PartConfigurationTable {
393
393
  /** Rows of configuration data matching the header columns. */
394
394
  values: (string | number | boolean | null)[][];
395
395
  }
396
+ /**
397
+ * Extended information for a device parameter derived from the EtherCAT
398
+ * Slave Information (ESI) file.
399
+ *
400
+ * This interface represents additional metadata and constraints
401
+ * extracted from the ESI file, which enhances the base device parameter
402
+ * description with validation, description, unit, mapping capabilities, and UI hints.
403
+ */
404
+ export interface ParameterEsiExtension {
405
+ /** Indicates if the parameter is mandatory (true) or optional (false/undefined). */
406
+ mandatory?: boolean;
407
+ /** Minimum allowed numeric value for the parameter, if applicable. */
408
+ min?: number | null;
409
+ /** Maximum allowed numeric value for the parameter, if applicable. */
410
+ max?: number | null;
411
+ /** Default numeric value for the parameter, if defined. */
412
+ defaultData?: number;
413
+ /** Unit symbol associated with the parameter (empty string if none). */
414
+ unit?: string | null;
415
+ /** Size of the parameter in bits. */
416
+ bitSize?: number;
417
+ /**
418
+ * Maximum length allowed for STRING type parameters,
419
+ * adjusted to accommodate firmware-specific constraints.
420
+ */
421
+ strlen?: number;
422
+ /** Raw ESI data type string (e.g., "UINT16", "STRING(50)"). */
423
+ esiType?: string;
424
+ /** Human-readable description of the parameter or subitem. */
425
+ description?: string;
426
+ /** Description specifically for record data types, if applicable. */
427
+ recordDescription?: string;
428
+ /** Parsed options for enumerated parameter values, if available. */
429
+ options?: Record<string, any>;
430
+ /** Indicates if the parameter can be mapped as an RxPDO. */
431
+ canBeMappedAsRxPdo?: boolean;
432
+ /** Indicates if the parameter can be mapped as a TxPDO. */
433
+ canBeMappedAsTxPdo?: boolean;
434
+ /** Flag indicating if the parameter belongs to an SMM module. */
435
+ isSmm?: boolean;
436
+ /** Group or category name for the parameter. */
437
+ group?: string | null;
438
+ /** Optional type value key string, prioritizing typeValueKey over typeValue. */
439
+ typeValueKey?: string;
440
+ /** Optional type value string representing the parameter data type. */
441
+ typeValue?: string;
442
+ /**
443
+ * Suggested HTML form input type for the parameter.
444
+ */
445
+ inputType?: string;
446
+ /** Original unit value preserved for reference or restoration. */
447
+ originalUnit?: string;
448
+ /** Original options preserved for reference or restoration. */
449
+ originalOptions?: Record<string, any>;
450
+ }
451
+ /**
452
+ * Describes the mapping of Process Data Objects (PDOs) used in the UI configuration.
453
+ */
454
+ export interface UiPdoMapping {
455
+ /**
456
+ * Receive PDO mappings — maps each PDO index (e.g., "0x1600") to an array of mapped object dictionary entry identifiers.
457
+ */
458
+ rx: Record<string, string[]>;
459
+ /**
460
+ * Transmit PDO mappings — maps each PDO index (e.g., "0x1A00") to an array of mapped object dictionary entry identifiers.
461
+ */
462
+ tx: Record<string, string[]>;
463
+ }
464
+ /**
465
+ * Represents the unit configuration selected by the user for displaying feed values in the UI.
466
+ */
467
+ export interface InterfaceUnit {
468
+ /**
469
+ * Feed value in the selected unit.
470
+ * Indicates the distance (e.g., mm, degrees) moved per full rotation.
471
+ */
472
+ feed: number;
473
+ /**
474
+ * Unit label selected by the user (e.g., "mm", "deg") and used throughout the UI.
475
+ */
476
+ unit: string;
477
+ }
478
+ /**
479
+ * Represents the UI configuration stored on the device in the `ui.config.json` file.
480
+ */
481
+ export interface UiConfig {
482
+ /**
483
+ * Optional unit associated with the feed constant.
484
+ * Common examples: "mm", "inch", "deg", etc.
485
+ */
486
+ feedConstantUnit?: string;
487
+ /**
488
+ * Optional user-selected unit configuration for feed display.
489
+ * Determines how feed values are presented in the UI.
490
+ */
491
+ interfaceUnit?: InterfaceUnit;
492
+ /**
493
+ * Optional mapping of PDOs for both receive (Rx) and transmit (Tx) directions.
494
+ * Each key represents a PDO index (e.g., "0x1600"), and the value is a list of mapped entry identifiers.
495
+ */
496
+ pdoMapping?: UiPdoMapping;
497
+ }
package/src/lib/util.d.ts CHANGED
@@ -297,19 +297,38 @@ export declare function mergeUint8Arrays(...ary: Uint8Array[]): Uint8Array;
297
297
  */
298
298
  export declare function uniqueItems<T>(items: Array<T>): Array<T>;
299
299
  /**
300
- * Groups an array of objects by the value of a specified property.
301
- *
302
- * This function iterates over the array of objects and groups them into a new object,
303
- * where the key is the value of the specified property and the value is an array of
304
- * objects that have that property value.
305
- *
306
- * @param {T[]} objects - The array of objects to be grouped.
307
- * @param {string} prop - The property name by which the objects will be grouped.
308
- * @returns {{ [key: string]: T[] }} An object where the keys are the unique property values and the values are arrays of objects that have that property value.
300
+ * Groups an array of objects by the specified property.
301
+ *
302
+ * @typeParam T - The type of objects in the input array.
303
+ * @typeParam K - The key of the property in `T` to group by.
304
+ *
305
+ * @param items - The array of objects to group.
306
+ * @param property - The property name to group by. The property must be a key of `T`.
307
+ *
308
+ * @returns An object where each key is the stringified value of the specified property,
309
+ * and each value is an array of objects from `items` that share that property value.
310
+ *
311
+ * @example
312
+ * ```ts
313
+ * const data = [
314
+ * { index: '0x1600', value: '0x60400010' },
315
+ * { index: '0x1600', value: '0x60600008' },
316
+ * { index: '0x1601', value: '0x60fe0120' }
317
+ * ];
318
+ *
319
+ * const grouped = groupByProperty(data, 'index');
320
+ * // {
321
+ * // "0x1600": [
322
+ * // { index: "0x1600", value: "0x60400010" },
323
+ * // { index: "0x1600", value: "0x60600008" }
324
+ * // ],
325
+ * // "0x1601": [
326
+ * // { index: "0x1601", value: "0x60fe0120" }
327
+ * // ]
328
+ * // }
329
+ * ```
309
330
  */
310
- export declare function groupByProperty<T>(objects: T[], prop: keyof T): {
311
- [key: string]: T[];
312
- };
331
+ export declare function groupByProperty<T, K extends keyof T>(items: T[], property: K): Record<string, T[]>;
313
332
  /**
314
333
  * Maps an array of objects by a specified property, creating a map where the key is
315
334
  * the value of the specified property and the value is an array of objects that have
@@ -329,3 +348,52 @@ export declare function mapByProperty<V, K = string>(objects: V[], prop: keyof V
329
348
  * @throws Error if the given C type is not recognized.
330
349
  */
331
350
  export declare function convertCTypeToStructFormatCharacter(cType: string): string;
351
+ /**
352
+ * Converts a string or number representing a numeric value into a number.
353
+ *
354
+ * - If the input is already a number, it is returned as is.
355
+ * - If the input is a string starting with `#x`, it is parsed as a hexadecimal number.
356
+ * - Otherwise, the string is parsed using `Number()`, which supports
357
+ * decimal, hexadecimal (`0x`), binary (`0b`), octal (`0o`), and floating-point literals.
358
+ *
359
+ * @param value - The input value to convert. Can be a number or a string
360
+ * representing a numeric value with optional prefixes.
361
+ *
362
+ * @returns The numeric value parsed from the input. If parsing fails, returns `NaN`.
363
+ *
364
+ * @example
365
+ * ```ts
366
+ * hexDecValueToNumber(42); // returns 42
367
+ * hexDecValueToNumber("#x2A"); // returns 42 (hexadecimal 2A)
368
+ * hexDecValueToNumber("42"); // returns 42 (decimal)
369
+ * hexDecValueToNumber("0x2A"); // returns 42 (hexadecimal)
370
+ * hexDecValueToNumber("0b101010"); // returns 42 (binary)
371
+ * hexDecValueToNumber("0o52"); // returns 42 (octal)
372
+ * ```
373
+ */
374
+ export declare function hexDecValueToNumber(value: string | number): number;
375
+ /**
376
+ * Converts a value to a hexadecimal string representation.
377
+ *
378
+ * - If the value is a string that can be parsed as a number, converts it to hex.
379
+ * - If the value is a string that cannot be parsed as a number, returns it as is.
380
+ * - If the value is a Uint8Array, converts each byte to a hex string, with optional padding and prefix, then joins with spaces.
381
+ * - If the value is a number, converts it to hex with optional padding and prefix.
382
+ * - If the value is an array of numbers, converts each to hex with optional padding and prefix, then joins with spaces.
383
+ * - Returns an empty string for unsupported value types.
384
+ *
385
+ * @param value - The value to convert (string, number, Uint8Array, or array of numbers).
386
+ * @param pad - Optional minimum length for each hex number (without prefix).
387
+ * @param prefix - Optional prefix for each hex number (default '0x').
388
+ * @returns Hexadecimal string representation or original string.
389
+ *
390
+ * @example
391
+ * ```ts
392
+ * convertValueToHexString("255"); // "0xff"
393
+ * convertValueToHexString("not a number"); // "not a number"
394
+ * convertValueToHexString(255); // "0xff"
395
+ * convertValueToHexString([1, 255], 4); // "0x0001 0x00ff"
396
+ * convertValueToHexString(new Uint8Array([15,255]), 2); // "0x0f 0xff"
397
+ * ```
398
+ */
399
+ export declare function convertValueToHexString(value: string | number | Uint8Array | Array<number>, pad?: number | null, prefix?: string): string;