Handbuch

STS Handbuch

Stellwerksim Handbuch

Webseiten-Werkzeuge


Seitenleiste



JavaScript ist deaktiviert!

stellwerksim:erbauer:themascripte:ts_tester

Dies ist eine alte Version des Dokuments!


ThemaScripttester

Testparameter

Parameter Eingabe Funktion
Testlauf-Thema Thema und Klasse (Drop down) Nur Zeilen mit dem übergebenen Thema und Klasse werden im Test ausgeführt
testen mit Zugtemplate (TID) TID Füllt die Felder Länge und Geschwindigkeit aus; Liefert die vom Zugtemplate durchfahrenen AID's als Drop down
aktuelle Länge Zahl Startlänge für den Test (damit wird gerechnet)
aktuelle Geschwindigkeit Zahl Startgeschwindigkeit für den Test (damit wird gerechnet)
aktuelle Verspätung Zahl (Verspätung in min) Startverspätung für den Test (damit wird gerechnet)
aktiv? Aktivität zu Beginn des Tests
aktuelle AID AID (wenn eine AID verwendet wird: Auswahl aus Drop down Liste) Stellt die aktuelle AID für den Test zur Verfügung
wurde gesteuert? sagt dem Test ob das letzte Stellwerk gesteuert wurde
wird gesteuert? sagt dem Test ob das nächste Stellwerk gesteuert wird
aktuelle Spielstunde Zahl übergibt dem Test die Stunde zu der das Script ausgeführt wird
Für den Test nicht benötigte Felder können Leer gelassen/ignoriert werden.

Ausgabe

Thema: 'herbst'
Klasse: 'Start' aids: '' zids: ''
UPN-Code: '$tempo,$tempo,3,7,rnd,/,-,tempo'
Klasse: nok
Thema: nok
AID: nok
ZID: nok 

Für jeden Codeblock wird jeweils der Blockkopf aufgelöst und zusammen mit dem UPN-Code wie im obigen Beispiel dargestellt.
Anschliessend wird der Kopf ausgewertet: alle Bedingungen, welche durch den Blockkopf gestellt werden müssen erfüllt sein und somit ein ok erhalten (sind sie nicht erfüllt steht wie in diesem Beispiel „nok“ hinter der jeweiligen Bedingung), nur dann wie der UPN-Code ausgewertet.

Wird vom Tester ein Hook aufgerufen werden dessen Codeblocks im Tester angezeigt, wie wenn sie im selben ThemaScript stehen würden, welches getestet wird.
 Thema: 'herbst'
Klasse: 'Start' aids: '' zids: ''
UPN-Code: '$tempo,$tempo,3,7,rnd,/,-,tempo'
  Klasse: ok
  Thema: ok
  AID: ok
  ZID: ok
 Script passt ---
  #Stack vor  Token: {}
   #Token: '$tempo' 
  #Stack nach Token: {9}
  #Stack vor  Token: {9}
   #Token: '$tempo' 
  #Stack nach Token: {9},{9}
  #Stack vor  Token: {9},{9}
   #Token: '3' 
  #Stack nach Token: {9},{9},{3}
  #Stack vor  Token: {9},{9},{3}
   #Token: '7' 
  #Stack nach Token: {9},{9},{3},{7}
  #Stack vor  Token: {9},{9},{3},{7}
   #Token: 'rnd' 
  #Stack nach Token: {9},{9},{6}
  #Stack vor  Token: {9},{9},{6}
   #Token: '/' 
  #Stack nach Token: {9},{1}
  #Stack vor  Token: {9},{1}
   #Token: '-' 
  #Stack nach Token: {8}
  #Stack vor  Token: {8}
   #Token: 'tempo' 
 setze Tempo auf 8
  #Stack nach Token: {}

An diesem Beispiel ist schön zu sehen, wie die einzelnen Werte in den Speicher (Stack) geladen werden und sobald der Tester auf einen Operator oder Befehl trifft jeweils soviele Werte wie benötigt, beginnend von hinten, wieder daraus entnimmt.

  #Stack vor  Token: {},{nop}
#Token: '($verspaetung,0,$abstunde,1,+,$abstundev,-,3,*,rnd,+,verspaetung)' 
#Stack nach Token: {},{nop},{$verspaetung,0,$abstunde,1,+,$abstundev,-,3,*,rnd,+,verspaetung}
#Stack vor  Token: {},{nop},{$verspaetung,0,$abstunde,1,+,$abstundev,-,3,*,rnd,+,verspaetung}
#Token: 'if'

Bei „if-Befehlen“ werden die in Klammern stehenden Teile welche ausgewertet werden, wenn die Bedingung wahr bzw. falsch ist, als ganzes in Speicher geladen. Um Fehler in diesem Teil des Codes zu finden müssen diese Teilblöcke in einen neuen Codeblock kopiert werden und dieser durch den Tester ausgewertet werden lassen.

Boolsche Operatoren werden im Tester falsch dargestellt:
Ein True/Wahr im Speicher sieht so aus: {1}
Ein False/Falsch im Speicher sieht so aus:{}

Mit diesen Werten kann nicht gerechnet werden.

stellwerksim/erbauer/themascripte/ts_tester.1548241416.txt.gz · Zuletzt geändert: 2019/01/23 12:03 von billy