<texit info> author=Alexander Krause title=Clever2Link - Dataobjecs/Templates backgroundtext=Clever2Link recurse=on </texit>

Templates/Vorlagen

Die Template Funktion wird hauptsächlich durch das Ordner-Link Objekt realisiert. Der Grundlegende Ablauf sieht wie folgt aus:

  1. Erstellen einer Objektstruktur mit
    • Ordnern/Unterordnern
    • Datenpunkten
      • mit dynamischen Eigenschaften (siehe Unten)
  2. Erstellen eines Links, außerhalb der Struktur
    • target Eigenschaft ist die Objekt-Nummer vom Template-Objekt der Objektstruktur (ab Version 1.22.0 dataobjects kann auch auf Objekte mit der Eigenschaft „is“ verwiesen werden)
  3. Link auflösen
  • Template-Objekt der Objektstruktur ist der Ordner `WHZ`
  • `room[?]` ist Template für `room[0]` bis `room[9]`

whz_template.jpg

dynamische Eigenschaften

Mitunter werden Templates auch innerhalb des gleichen Gerätes benutzt, dies bedeutet, dass die Eigenschaft address unterhalb jedes Links angepasst werden muß.

Beispiel

Aufgabe

  • ein iLON hat 30 Datenpunkte mit folgenden Adressen
    • Raumname: NVL_name_200 .. NVL_name_210
    • Sollwert: NVL_setpoint_200 .. NVL_setpoint_210
    • Istwert: NVL_temperature_200 .. NVL_temperature_210
  • die Datenpunkte sollen nach Raum gruppiert werden, das Template sähe wie folgt aus
    • Raum
      • Name
      • Sollwert
      • Istwert
  • es werden nun 10 Links erstellt, welche alle auf das selbe Template verweisen

Problem

  • Anpassung der Adresse für jeden Datenpunkt nötig

Lösung

  • Benutzen von dynamische Eigenschaften
  1. jeder Link besitzt zu der Eigenschaft address eine 2te, welche den Raumindex angibt
    • z.B. rid für Raum-ID
  2. rid wird nun für jeden der 10 Links festgelegt, der Name spielt keine Rolle
    • 1. Link: name=raum[0],rid=0
    • 2. Link: name=raum[1],rid=1
    • 3. Link: name=raum[2],rid=2
  3. dynamische Eigenschaften in dem Template benutzen
    • name=Name, address=NVL_name_{200+$rid}
    • name=Sollwert, address=NVL_setpoint_{200+$rid}
    • name=Istwert, address=NVL_temperature_{200+$rid}
  4. beim Auflösen wird nun der Teil `{200+$rid}` durch 200, 201 usw. ersetzt

Syntax dynamischer Addressen

  • Eigenschaften übergeordneter Objekte sind Variablen
  • Eigenschaft eines untergeordneten Objektes hat mehr Priorität und überschreibt Folge-Eigenschaften

Beispiel

  • Vater: Alter=30
    • Sohn: Alter=10 → $Alter==10
    • Tochter: → $Alter==10
  • Onkel: → $Alter==10
  • Tante: Alter=40 → $Alter==40
Regulärer Ausdruck Bedeutung Beispiel
[\w_] Konstante 123
abc_123
\$([\w_]+) Variable $rid
$Alter
[\+\-\.\/\%] Operator
+ Addieren
- Subtrahieren
. String-Addieren
/ Division
% Modulo
\|(%[\w]+) Formatierung |%02d

Beispiele dynamischer Eigenschaften

  • NVL_temperature_{200+$rid}
    • NVL_temperature_200
    • NVL_temperature_201
  • NVL_temperature_{$rid}
    • NVL_temperature_0
    • NVL_temperature_1
    • NVL_temperature_20
  • NVL_oRmTemp{$rid|%02d}_{200+$wid}
    • NVL_oRmTemp00_200
    • NVL_oRmTemp11_210
    • NVL_oRmTemp99_201

Auflösen

  • Objekte, welche im Template vorhanden sind, aber nicht im Link werden neu erzeugt
  • Objekte, welche nicht im Template sind werden gelöscht
  • Objekte mit gleichen Namen bleiben erhalten (Objet-Id bleibt gleich)
  • neue Eigenschaften werden bei vorhandenen Objekten im Link hinzugefügt
  • alte Eigenschaften werden gelöscht, außer sie beginnen und enden mit einem _
    • Beispiel: _nid_
doc/c2k-tng/modules/dataobjects/templates.txt · Zuletzt geändert: 2012.01.11 - 17:50 von 127.0.0.1
 
Copyright 2021, e-design / Alexander Krause