/** * Types defined here represent a JSON file structure of the SMM (Safety Motion Module) object dictionary. */ /** * Represents a single parameter in the SMM object dictionary. */ export type SmmOdParameter = { parameterName: string; variableName: string | null; group: string | null; index: number; subindex: number; description: string; type: string; typeRef?: string | null; size: number; unit: string | null; min: number | null; max: number | null; defaultValue: number | string | null; access: 'rw' | 'ro' | null; resetValue: number | string | null; }; /** * Represents a single value in an enumeration type. */ export type SmmOdEnumValue = { identifier?: string; value: number; label: string; axis?: number | null; }; /** * Represents an enumeration type in the SMM object dictionary. */ export type SmmOdEnumType = { type: string; enum: SmmOdEnumValue[]; }; /** * Represents a single category of parameters in the SMM object dictionary. */ export type SmmOdParameterCategory = 'safety' | 'manufacturer' | 'constants' | 'globalVariables'; /** * Represents all parameters in the SMM object dictionary. */ export type SmmOdParameters = { [category in SmmOdParameterCategory]: SmmOdParameter[]; }; /** * Represents all types in the SMM object dictionary. */ export type SmmOdTypes = { [key: string]: SmmOdEnumType; }; /** * Represents the SMM object dictionary. */ export type SmmOd = { parameters: SmmOdParameters; types: SmmOdTypes; };