Development:Überarbeitung Skripting

Aus StellSi-Hilfewiki
Version vom 13. August 2015, 03:49 Uhr von BorisM (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= Grundlagen = [*] Einführung eines zustandsbasierten Skriptsystems (im folgenden vorläufig SimpleScript genannt) als Ergänzung zu AngelScript [*] Bessere V…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Grundlagen

[*] Einführung eines zustandsbasierten Skriptsystems (im folgenden vorläufig SimpleScript genannt) als Ergänzung zu AngelScript [*] Bessere Verknüpfung des zu steuernden Objekts (Relaisgruppe, Tischfeld, ...) mit dem Skripting

Anforderungen

AngelScript

Eingang von Daten von außen

Formulierung von SimpleScript-Ausdrücken in den Metadaten von Methoden. Ein Ausdruck pro Parameter. Wenn sich das Ergebnis des Ausdrucks ändert, wird die Methode aufgerufen. Dies ersetzt die Auswertung des Methodennamen vollständig (bis auf Abwärtskompatibilität)

Ausgabe von Daten

Der AngelScript-Klasse wird eine automatische generierte Klasse zur Verfügung gestellt, über die ein Zugriff auf die Daten des gesteuerten Tischfeldes, Relaisgruppe, ... zur Verfügung gestellt wird. Vorbild ist die "ui"-Membervariable von mit QT Designer erstellten Widgets.

Bei einem Tischfeld sind z.B. die Schnittstellen, aber auch die GUI-Elemente (Bitmap, SVG, Taster, ...) auf diese Weise erreichbar. Realisierbarkeit von Animationen bedenken!


TODO: Einbindung von SimpleScript auch zur Ausgabe der Daten. Beispiel: Die Daten, die auf einer Schnittstelle, an der ein Tischfeld angeschlossen werden kann, ausgegeben werden sollen, sollen auch per SimpleScript generierbar sein aus den internen Daten der Relaisgruppe.

Per AngelScript ist die Zuweisung von SimpleScript-Anweisungen an externe Elemente (z.B. eine Grafik) möglich. Damit kann z.B. in verschiedenen Phasen einer Animation die Berechnungsvorschrift für Position, Drehung o.ä. dynamisch angepasst werden.

SimpleScript

[*] Datenabruf von Leitungen einer SChnittstelle, reagiert auf Änderungen automatisch [*] Analog dazu auch von Tastern, Zuständen (brauchen wir die noch??), ... [*] TODO: Enthält geeignete Strukturen, um Relaisschaltungen zu simulieren [*] Operatoren (+, -, &&, ||, ...) [*] Bereitstellung von Funktionen inklusive return-Anweisung. TODO: Wo werden die Funktionen definiert? Müssen auch in stwb zur Verfügung stehen! [*] Anwendung überall, wo Daten eingehen [*] Ersetzt die Eingangslogik [*] Bereitstellung eines grafischen Editors (als Alternative zur Texteingabe) [*] Bereitstellung Syntaxprüfung/automatische Ergänzung bei Eingabe in Textfeldern


Realisierungsmöglichkeiten

SimpleScript: Entwurfsmuster "Interpreter" oder http://www.antlr.org/