✨ 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({})}})
const MyStruct: Struct<{ MyStructProperty: Bool; }>
 

🏗️ Constructeur

Struct.prototype.constructor = <T extends StructProperties>(Params: StructParameters<T>) => Struct

Params

Paramètres initiaux de construction d'une structure.

interface StructParameters<T extends StructProperties> extends BaseTypeParameters {
    Content: T
}

Content

Type: Content

StructParameters.Content = StructProperties

Content 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 Struct peut contenir un Array.
  • Un Struct peut contenir un Udt ou un Array d' Udt.
  • Un Struct peut contenir un autre Struct.

📜 Champs

Content

Struct.prototype.Content = StructProperties
type StructProperties = Record<string,
    PrimitivePlcClass
    | UDTImplementation<StructProperties>
    | Struct<StructProperties>
    | Array_<ArrayProperty>>
TypeDescription
PrimitivePlcClassReprésente un type primitif
UDTImplementationImplémentation d'une UDT
StructStructure déclarée au sein du bloc
ArrayTableau

🧪 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.