Arbre récursif
PlcData Builder ne permet pas seulement de créer des structures de données.
En fait, PlcData Builder peut aussi compiler des blocs de programme SCL, STL.
Plc Source Tree Builder
import PlcSourceTreeBuilder from "@adclz/plcdatabuilder/tree"; const MyPlcSourceTree = new PlcSourceTreeBuilder ("MySourceTree")
PlcSourceTree permet de créer une structure de fichiers avec une syntaxe similaire au schéma d'URI "file".
Vous pouvez rajouter des blocs de programmes, de données, d'Udt, ou une source déjà prête.
🏗️ Constructeur
PlcSourceTree.prototype.constructor = (Name: string, Override: boolean = false) => PlcSourceTreeName
Type: String
Nom de l'arbre.
Override
Type: Boolean
Précise si les blocs déjà existants peuvent être écrasés ou non.
🧪 Méthodes
createBlock
PlcSourceTreeBuilder.prototype.createBlock = (Uri: string, File: DataBlock<any>) => voidVous pouvez fournir un DataBlock en utilisant la méthode createBlock
import {DataBlock , Bool } from "@adclz/plcdatabuilder/types";import PlcSourceTreeBuilder from "@adclz/plcdatabuilder/tree"; const MyPlcSourceTree = new PlcSourceTreeBuilder ("MySourceTree") const MyDataBlock = new DataBlock ({Name : "MyDataBlock", Content : { "MyProperty": new Bool ({}) }}) // Root - '/MyDataBlock'MyPlcSourceTree .createBlock ("", MyDataBlock ) const MyDataBlock2 = new DataBlock ({Name : "MyDataBlock2", Content : { "MyProperty": new Bool ({}) }}) // Crée un dossier - '/Folder/MyDataBlock'MyPlcSourceTree .createBlock ("/Folder", MyDataBlock )
createUdt
PlcSourceTreeBuilder.prototype.createUdt = (Uri: string, UDT: UDT<any, any, any>) => voidVous pouvez fournir un UDT en utilisant la méthode createUdt
import {UDT , Bool } from "@adclz/plcdatabuilder/types";import PlcSourceTreeBuilder from "@adclz/plcdatabuilder/tree"; const MyPlcSourceTree = new PlcSourceTreeBuilder ("MySourceTree") const MyUdt = new UDT ({Name : "MyUdt", Version : 0.1, Content : {"MyProperty1": new Bool ({})}}) // Root - '/MyUdt'MyPlcSourceTree .createUdt ("", MyUdt )
getBlock
PlcSourceTreeBuilder.prototype.getBlock = (Uri: string) => DataBlock<any> | undefinedRetourne un bloc de l'arbre si il existe.
getUdt
PlcSourceTreeBuilder.prototype.getUdt = (Uri: string) => UDT<any, any, any> | undefinedRetourne un Udt de l'arbre si il existe.
Compile
PlcSourceTreeBuilder.prototype.Compile = () => PlcSourceTreeCrée la structure récursive de l'arbre.
interface SourceBlock {
Name: string,
Source: string[]
Override: boolean
}
interface Folder {
Name: string
Folders?: Folder[]
Blocks?: SourceBlock[]
}
interface PlcSourceTree {
Name: string,
PlcBlocks?: Folder,
UdtBlocks?: Folder,
Override?: boolean
}