export declare const statuswordBitNames: string[]; export declare const controlwordBitNames: string[]; export declare const supportedDriveModesBitNames: string[]; /** * An array of status bit names for the Circulo feedback encoder, ordered according to the specific * register sequence required by the firmware. Each entry corresponds to a bit in the encoder's status * registers, with the name and description of the error if available, or 'r = reserved' if not defined. * The array is padded with 'r = reserved' entries to ensure a total length of 32 bits. * * The bit names are constructed by iterating over the registers in the order specified by `registerOrder` * ([1, 2, 0]), and for each register, iterating through its bits. If a bit has an associated error with a * name and description in `circuloEncoderRegisterErrors`, it is included in the format `${error.name} = ${error.description}`. * Otherwise, 'r = reserved' is used. * * @remarks * - The ordering of registers and bits is critical to match the firmware's expected bit order. * - The source of error names and descriptions is the `circuloEncoderRegisterErrors` mapping. * - The final array always contains exactly 32 entries. */ export declare const circuloFeedbackEncoderStatusBitNames: string[]; export declare const safetyStatuswordBitsV1Array: string[]; export declare const safetyStatuswordBitsV2Array: string[]; export declare const digitalInputsBitNames: string[]; export declare const digitalOutputsBitNames: string[]; /** * Creates an array of {@link BitsViewEntry} objects describing the Safety Statusword * object (0x6621) byte-wise bit fields. * * Each entry represents one byte (8 bits) of the Safety Statusword and contains: * - CANopen object index (0x6621) * - Subindex corresponding to the byte position (1-based) * - Bit size (8) * - Bit names for that byte * - Optional SMM Launchwave version information * - A generated label in the format: * "Safety Statusword Byte X" or * "Safety Statusword V Byte X" * * If `parameterStructureVersion` is provided, it is converted to the corresponding * Launchwave version using `smmParameterStructureVersionToLaunchwaveVersion()`. * The resulting version is included in the returned entries and in the generated labels. * * If `parameterStructureVersion` is not provided, the entries are generated * for non-SMM devices and no Launchwave version is associated with them. * * @param parameterStructureVersion - Optional SMM parameter structure version. * If provided, version-specific bit names and labels are generated. * * @returns Array of {@link BitsViewEntry} objects representing the Safety Statusword bytes. */ export declare function createSafetyStatuswordBitsViewEntries(parameterStructureVersion?: number): BitsViewEntry[]; /** * Collection of {@link BitsViewEntry} definitions describing commonly used * parameter bit fields for the motion master client. * * Each entry specifies: * - CANopen object index and subindex * - Bit size (in bits) * - Associated bit name array * - Human-readable label used in the UI * * The collection includes: * - Encoder feedback status objects * - Safety module input diagnostics * - CiA 402 Controlword (0x6040) and Statusword (0x6041) * - Digital inputs and outputs (0x60FD, 0x60FE) * - Supported drive modes (0x6502) * - Safety Statusword (0x6621) entries * * Safety Statusword entries are generated dynamically using * {@link createSafetyStatuswordBitsViewEntries}: * - `undefined` → Non-SMM devices * - `0x0041` → SMM Launchwave V1 * - `0x0203` → SMM Launchwave V2 * * This array is intended to serve as the central registry of bit-field * definitions used for parameter bit visualization. */ export declare const parameterBitsViewEntries: BitsViewEntry[]; /** * Describes a bit-field view definition for a specific CANopen object entry. * * A {@link BitsViewEntry} defines how a parameter should be interpreted and * visualized as individual bits in the UI. * * Properties: * - `index` — CANopen object index (e.g. 0x6040). * - `subindex` — CANopen object subindex. * - `size` — Bit width of the value (e.g. 1, 8, 16, 32). * - `names` — Array of bit names. The array length should correspond to `size`, * where each element represents the label of a bit position. * - `label` — Human-readable label used for display in the UI. * - `smmLwVersion` — Optional SMM Launchwave version. If defined, the entry * applies only to that specific SMM version. */ export interface BitsViewEntry { index: number; subindex: number; size: number; names: string[]; label: string; smmLwVersion?: number; } /** * Finds a `BitsViewEntry` from the parameter bits view registry based on * a given CANopen object index and subindex, optionally filtering by * a specific parameter structure version. * * This function supports both standard (non-SMM) and SMM parameters: * - For non-SMM lookups (no `parameterStructureVersion` provided), it returns * entries without a SMM LW version. * - For SMM lookups (`parameterStructureVersion` provided), it maps the * structure version to a SMM LW version and returns the entry matching * that version. * * @param index - The CANopen object index of the parameter. * @param subindex - The CANopen object subindex of the parameter. * @param parameterStructureVersion - Optional version of the parameter structure * used to select the correct SMM LW entry. * * @returns The matching `BitsViewEntry` if found; otherwise, `undefined`. */ export declare function findBitsViewEntry(index: number, subindex: number, parameterStructureVersion?: number): BitsViewEntry | undefined; /** * Converts a SMM parameter structure version to the corresponding Launchwave version. * * @param version - The SMM parameter structure version as a number. * @returns The Launchwave version: returns 1 if the version is less than 0x0203, otherwise returns 2. */ export declare function smmParameterStructureVersionToLaunchwaveVersion(version: number): number;