✨ Struct
Struct permet la création de structures de données.
A la différence de Udt, Struct permet de déclarer une structure de données de façon locale.
import {Struct , Bool } from "@adclz/plcdatabuilder/types" const MyStruct = new Struct ({Content : {"MyStructProperty": new Bool ({})}})
🏗️ Constructeur
Struct.prototype.constructor = <T extends StructProperties>(Params: StructParameters<T>) => StructParams
Paramètres initiaux de construction d'une structure.
interface StructParameters<T extends StructProperties> extends BaseTypeParameters {
Content: T
}Content
Type: Content
StructParameters.Content = StructPropertiesContent va générer le contenu et la définition de la structure.
StructProperties détermine le contenu que vous pouvez utiliser dans la structure.
La clé enregistrée dans Content correspond au nom du champ qui sera utilisé lors de la compilation.
- Un
Structpeut contenir unArray. - Un
Structpeut contenir unUdtou unArrayd'Udt. - Un
Structpeut contenir un autreStruct.
📜 Champs
Content
Struct.prototype.Content = StructPropertiestype StructProperties = Record<string,
PrimitivePlcClass
| UDTImplementation<StructProperties>
| Struct<StructProperties>
| Array_<ArrayProperty>>| Type | Description |
|---|---|
PrimitivePlcClass | Représente un type primitif |
UDTImplementation | Implémentation d'une UDT |
Struct | Structure déclarée au sein du bloc |
Array | Tableau |
🧪 Méthodes
OverrideStructName est utilisé en interne par DataBlock afin de générer le nom de la structure.GetOffsets
Struct.prototype.GetOffsets = (OverrideStructName?: string) => Map<string, number>Positions des champs de la structure en mémoire.
StringifyHeader
Struct.prototype.StringifyHeader = (OverrideStructName?: string) => string[]En-tête de la structure.
StringifyBody
Struct.prototype.StringifyBody = (OverrideStructName?: string) => string[]Corps de la structure avec les valeurs par défauts (si définies).
✨ Exemple
Exemple montrant un DataBlock contenant un Struct composé de 2 booléens.