User Tools

Site Tools


text-gen-de

Text: Allgemein

Einstellungen

Kennung

Eine eindeutige Kennung, mit der Rocrail das Text-Objekt anspricht. Sie wird normalerweise beim Anlegen des Objektes in der Form "tx20131219094806128" vorgegeben.
Die Kennung sollte in einen beschreibenden Namen geändert werden, wenn das Text-Objekt z.B. in Aktionen für dynamischen Text adressiert werden soll.

Text

Ist die darzustellende Zeichenkette oder der Name einer Bild-Datei.

Bild [ ... ]

Über die Schaltfläche kann ein Bild ausgewählt werden, das anstelle eines Textes im Gleisplan dargestellt werden soll.
Hinweis: Nur ".png"-Dateien werden als Bild dargestellt. Siehe auch: Anzeigen eines Bildes im Gleisplan

aktualisieren

Die Zeit zur Aktualisierung des Bildes in ms. Kann für WebCam-Bilder verwendet werden.
Zur Aktivierung muss der Wert > 99 sein.
Im Fall eines statischen Bildes muss dieser Wert Null sein, um ein Löschen der Datei zu verhindern.

Hinweis

Definiert den 'Tooltip', der angezeigt wird, wenn sich die Maus über dem Objekt befindet.
Ist das Hinweis-Feld leer, wird die Kennung des Textobjekts als Tooltip angezeigt.

Farbe

Schaltfläche Funktion
Text Normale Textfarbe im Schalter-Zustand AUS
Aktiver Text Textfarbe im Schalter-Zustand EIN, wenn Text-Typ = Schalter
Rahmen Farbe des Rahmens, wenn Rahmen-Option aktiv ist

Klicken auf die Schaltflächen öffnet den Standarddialog des Betriebssystems zur Farbeinstellung.
Standardmäßig wird der Text mit der ersten Farbe angezeigt.
Ist Typ "Schalter" definiert wird bei Status "Ein" die zweite Farbe verwendet.

Punktgröße

Bestimmt die Schriftgröße des Texts. Ist "0" eingestellt, wird die Standardgröße des Betriebssystems verwendet.

Größe cx/cy

Die Größe des Text-Objekts als Raster-Breite und -Höhe.

Eigenschaften

Optionen zur Funktion des Text-Feldes und Darstellung des Textes.

Typ

Text

Statischer oder dynamischer Text.
Durch Klick auf das Textfeld wird die Aktionssteuerung mit Status "click" aufgerufen.

Webcam

Optimiert die dynamischen Eigenschaften des Textfeldes, wenn die Bilddatei in kurzen Intervallen durch eine WebCam aktualisiert wird.

Eingabefeld

Ein Mausklick auf das Textfeld offnet einen Eingabedialog zur Änderung des Textes/Zahlenwertes.
Bei aktivierter Option Numerisch ist das Eingabefeld auf Zahlenwerte eingestellt.
Die Parameter Min/Max begrenzen den Bereich der Zahlenwerte. Im Eingabedialog wird zusätzlich der Hinweis angezeigt.
Der Text oder der Zahlenwert kann als Bedingung in Aktionen verwendet werden.

Schieber

Es wird ein vertikaler Schieberegler in der Größe des Textfeldes angezeigt.
Einstellung und Anwendung sind hier beschreiben: Schieberegler

  • Hinweis: Unabhängig von der Ausrichtung des Textobjektes oder einer Drehung des Gleisplans ist die Schieberrichtung immer vertikal.

Schalter

Mit Klick auf des Textfeld wird zwischen den Status "off(aus)" und "on(ein)" umgeschaltet.
Die Darstellung des Textes wird für "aus" und "ein" zwischen der ersten und zweiten Farbe umgeschaltet.
Durch Klick auf das Textfeld wird die Aktionssteuerung mit Status "on" bzw. "off" aufgerufen.

HTML

Rendert HTML anstelle von Klartext.
Dies in Kombination mit Ortschaft Fahrplan verwenden.
Hinweis: Diese Option wird ignoriert, falls Pipe-Zeichen, '|', im Text sind.

Zug-Bild

text-trainimg-en.jpg
Die Lokomotive und ihr zugeordneter Zug kann visualisiert werden, wenn die Aktion durch einen Block ausgelöst wird.
Die Aktion benötigt nur den Befehl 'update' und keinen Text bei folgenden Status:

  • enter
  • occupied
  • in
  • free.

Die Breite des Textfelds sollte lang genug sein, um den längsten Zug darstellen zu können.
Bilder werden mit einer Höhe von 80 Pixeln erwartet und werden so verkleinert, dass sie in der Höhe auf eine Rasterzelle passen.

fett / unterstrichen / kursiv / monospace

Text-Attribute.

Rahmen

Zeichnet einen Rahmen mit der definierten 3. Farbe um das Textfeld.

Bild spiegeln

Falls der Text auf ein Bild verweist, wird dies horizontal gespiegelt.

Blinken

Text blinkt, falls aktualisieren > 99 ist.
Ein guter "aktualisieren"-Wert ist 500.

Anzeigen

Wenn deaktiviert, wird das Textfeld im Gleisplan nicht angezeigt.

Modelluhr

Erlaubt das Modelluhr-Popup in einigen Clients:

Min./Max.

Bei Typ "Eingabefeld" mit Option "Numerisch" die min. und max. Werte.
Bei Typ "Schieber" die Werte der min. und max. Positionen.

Text zentrieren

Text zentrieren.

Numerisch

Die Option bestimmt beim Typ "Eingabefeld", ob das Format "Text" oder "Zahl" verwendet wird.

Ausrichtung

Standard bedeutet horizontale Ausrichtung des Texts.

Zurücksetzen

Löscht den gespeicherten Text-Inhalt beim Start. Ist sinnvoll bei dynamischem Text.


Text-Format

Zeichen Regel
| Neue Zeile

Wenn der dynamische Text mit dem |-Zeichen beginnt, wird er an den vorhandenen Text angehängt.
Bei HTML-Text wird das Zeichen "Neue Zeile" durch "<br>" ersetzt. (15607+)

Beispiel

"Regel 1|Regel 2|Regel 3"


Anzeigen eines Bildes im Gleisplan


Wenn der eingegebene Text mit .png endet (nur .png ist erlaubt), versucht das Text-Objekt ein entsprechendes Bild im Rocview-Bildverzeichnis zu finden.
Das Bild wird unter Beachtung des Seitenverhältnisses so skaliert, dass es zur mit "cx" und "cy" definierten Textfeld-Größe passt.

Anzeigen eines Live-Streams

Wenn der Text mit mjpg: beginnt, wird er als ein HTML-MJPEG-Live-Stream interpretiert.
Format:

mjpg:<host>:<port>


Aktionen

Eine Aktion kann dazu verwendet werden, dass ein Text durch ein Programm wie espeak gesprochen wird. (Ausgabe über die Soundkarte des Servers!).

Siehe Durchsage für Block für die Sprachausgabe eines von einem Block aktualisierten Textfeldes auf dem Client.

Diese Aktion wird nur dann ausgeführt, wenn dieser Text durch eine Text-Aktion aktualisiert wird.
→ Siehe Dynamischer Text.

Dies ist ein Beispiel, wie eine Aktion
zur Sprachausgabe des Textes definiert sein könnte.
In den Eigenschaften eines Textobjekts wird die
Aktion 'espeak' dann mit dem Textobjekt-Ereignis verbunden.


Dynamischer Text

Dynamischer Text ist ein Text, der durch eine Aktion aktualisiert oder geändert wird.
Ein Text-Objekt, das dynamischen Text enthalten soll, muss im Gleisplan eingerichtet werden.
Es ist nicht wichtig, welcher Text in das Feld geschrieben wird oder ob es leer bleibt, weil eine Aktion das Text-Objekt durch das Ändern des Textes steuert.
Die Breite des Text-Objekts (Cx in Registerkarte "Position") muss groß genug sein, um den gesamten durch eine Aktion geänderten Text aufzunehmen.
Die Kennung des Text-Objektes wird für das Einrichten der Aktion benötigt, die den Text ändern soll.


Einrichten der Aktion

Im Menü "Tabellen" wird der Aktions-Dialog ausgewählt und durch Klick auf "Neu" eine neue Aktion angelegt.
Im Feld "Typ" wird "Text" eingestellt, im Feld "Kennung" die Kennung des angelegten Text-Objekts und im Feld Befehl "update" ausgewählt (Das ist die einzige Option).
In das Feld "Parameter" wird der Text eingegen, der in das zugewiesene Text-Objekt übertragen werden soll.
Der Text "In Gleis %bkid% fährt ein Lok %lcdesc% aus %frombkloc%" bedeutet, dass in den Block %bkid% die Lok mit der Beschreibung %lcdesc% einfährt und aus der Ortschaft %frombkloc% kommt.
Die mit den "%"-Zeichen geklammerten Namen bezeichnen die Variablen, die mit den situationsbezogenen Werten aktualisiert werden, wenn die Aktion ausgelöst wird.

Hinweis: Soll der Text z.B. für eine Sprachsynthese verwendet werden, können kurze strukturierende Pausen eingefügt werden.
Für espeak: eine kurze Pause = _: eine kürzere Pause = _
Im obigen Beispiel zwischen "fährt ein" und "Lok" als "fährt ein _: Lok"



Variablen

eingebaut

Allgemein
%year% Jahres-Teil der Modellzeit
%mon% Monats-Teil der Modellzeit
%mday% Monatstag-Teil der Modellzeit
%wday% Wochentag-Teil der Modellzeit
%hour% Stunden-Teil der Modellzeit
%min% Minuten-Teil der Modellzeit
%sec% Sekunden-Teil der Modellzeit: Nur verfügbar, wenn Aktion Zeiteinheit 60 Sek deaktiviert ist.
%sunriseH% Sonnenaufgang Stunde (Rocrail Eigenschaften → Dienst → Standort)
%sunriseM% Sonnenaufgang Minute
%sunsetH% Sonnenuntergang Stunde
%sunsetM% Sonnenuntergang Minute
%temp% Modell-Temperatur oder HUE-Sensor-Temperatur.
%temp100% HUE-Sensor-Temperatur in hundertstel von Grad.
%bri% Helligkeit durch Wetter oder HUE-Sensor.
%lux% HUE-Sensor Lux.
%pressure% Sensor-Druck in hPa.
%humidity% Sensor-Feuchtigkeit in Prozent.
%syshour% Stunden-Teil der Systemzeit
%sysmin% Minuten-Teil der Systemzeit
%syssec% Sekunden-Teil der Systemzeit: Nur verfügbar, wenn Aktion Zeiteinheit 60 Sek deaktiviert ist.
%callerid% Die Kennung des Objekts, das diese Aktion aufruft.
%calleraddr% Die Adresse des Objekts, das diese Aktion aufruft.
%callertype% Der Typ des Objekts, das diese Aktion aufruft.
%callerdesc% Die Beschreibung des Objekts, das diese Aktion aufruft.
%calleruserdata% Die Benutzerdaten des Objekts, das diese Aktion aufruft.
%state% Der Status des aufrufenden Objektes.
%substate% Der Sub-Status des aufrufenden Objektes.
%desc% Die Beschreibung des aufrufenden Objektes.
Lok & Wagon
%lcid% Lok 'Kennung'
%lcaddr% Lok 'Adresse'
%lcshortid% Lok 'Kurz-Kennung'
%lcclass% Lok-/Zug- 'Klasse'
%lcbes% Lok Block-Einfahrtseite als '<' oder '>'
%lcident% oder %lccode% Lok-Code (RFID, Railcom, Lissy, Barcode…)
%lcimg% Lok 'Bild'
%lccur% Aktueller Block der Lok
%lccurtrack% Aktuelles Gleis der Lok (Aufstellblock, Drehscheibe, Fiddleyard)
%lcdest% Lok-Ziel
%lcdesc% Lok 'Beschreibung'
%lcnr% Lok-Nummer
%lchome% Lok Heimat-Standort
%lchomedesc% Lok Heimat-Standort 'Beschreibung'
%lcdir% Lok Fahrrichtung: "fwd"/"rev"
%lcplacing% Logische Richtung der Lok: "norm"/"swap"
%lccargo% Lok- oder Zug-Fracht(Typ): Zugarten
%lcengine% Lok-Antrieb: "diesel", "electric", "steam", "automobile"
%lclen% Lok- oder Zug-Länge
%lcweight% Lok- oder Zug-Gewicht
%operatorid% Fahrdienstleiter-Kennung, falls der Lok ein Zug zugewiesen ist
Wagon
%carid% Wagon-Kennung
%cartype% Wagon-Typ: goods, passenger 1)
%carsubtype% Wagon-Untergruppe: boxcar, gondola, flatcar, reefer, stockcar, tankcar, wellcar, hopper, caboose, autorack, autocarrier, logdumpcar, coilcar, coach, lounge, dome, express, dinner, sleeper, baggage, postoffice 2)
%carimg% Wagon-Bild
%carlocation% Wagon-Standort
%operatorid% Fahrdienstleiter-Kennung, falls der Wagon Teil des Zuges ist
%operatorlocoid% Kennung der Zuglok, falls der Wagon Teil eines Zuges und dieser Zug einer Lok zugeordnet ist
%waybill% Die dem Wagon zugeordnete Frachtschein-Kennung
%waybilldest% Das Ziel des Frachtscheines, der dem Wagon zugeordnet ist.
Weichen
%swid% Weichen-Kennung (XmlScript foreach)
%swtype% Weichen-Typ (XmlScript foreach)
%swdesc% Weichen-Beschreibung (XmlScript foreach)
Ausgang
%coid% Ausgangs-Kennung (XmlScript foreach)
%cotype% Ausgangs-Typ (XmlScript foreach)
%codesc% Ausgangs-Beschreibung (XmlScript foreach)
BiDi-Code
%bidicode% Von einem Rückmelder gescannter Lok- oder Wagon-Code.
%bidicode2id% Lok- oder Wagon-Kennung die zu dem von einem Rückmelder gescannten Code passt.
%bidicode2img% Von einem Rückmelder gescannter Lok- oder Wagon-Code.
Wenn eine Lok oder ein Wagon mit diesem Code gefunden wird,
wird der Code-Text durch den Bild-Namen ersetzt.
Fahrplan
%lcscid% Fahrplan 'Kennung'
%lcscbk% Fahrplan Block 'Kennung'
%lcscbkloc% Fahrplan Block 'Ortschaft'
%lcschour% Fahrplan Abfahrt 'Stunde'
%lcscmin% Fahrplan Abfahrt 'Minute'
%lcscnextbk% Fahrplan nächster Block 'Kennung'
%lcscnextbkloc% Fahrplan nächster Block 'Ortschaft'
%lcscprevbk% Fahrplan kommt von Block 'Kennung'
%lcscprevbkloc% Fahrplan kommt von Block 'Ortschaft'
%callertext% Inhalt des Feldes 'Text'
%lcscfirstlocation% Erste Ortschaft oder Block im Fahrplan
%lcsclastlocation% Letzte Ortschaft oder Block im Fahrplan
Block
%bkid% Block 'Kennung'
%bkloc% Block 'Ortschaft'
%bkdesc% Block 'Beschreibung'
%frombkid% Kommt von Block 'Kennung'
%frombkloc% Kommt von Block 'Ortschaft'
%frombkdesc% Kommt von Block 'Beschreibung'
%bkmvspeed% Im Block gemessene Geschwindigkeit (Mit Status 'free'1) verwenden)
%bklen% Blocklänge
%eventlcid% Auto, welches zuletzt einen Blockmelder ausgelöst hat, je nach Status enter oder fifoin
Drehscheibe
%regval% Brücken-Position
Rückmelder
%counter% Anzahl der Status-EIN-Ereignisse
%carcount% Wagenzähler
%countedcars% gezählte Wagen
%wheelcount% Achszähler
%regval% Register-Wert
Booster
%load% Last in mA
%volt% Spannung in mV
%boostertemp% Temperatur in °C
Geschwindigkeits-Messstrecke
%mvspeed% Gemessene Geschwindigkeit in km/h
%mvtrainlen% Gemessene Zuglänge in mm
Text
$txtID Der Text eines Text-Objektes
@txtID Der Text-Wert eines Text-Objektes

1) Hinweis: %bkmvspeed% wird immer beim in-Ereignis neu gesetzt. Das nächste für Aktionen nutzbare Ereignis ist der Wechsel zu Status 'free'. Andere Zustände geben die letzte gemessene Geschwindigkeit zurück. (Die mit der aktuellen nichts zu tun haben muss.)

Benutzer-Variablen

Benutzer-Variablen
#varID oder mit Sub-Kennung #varID%lcid% Der Ganzzahlenwert
@varID Der Textinhalt einer Variablen
@@nvarID Der indizierte, n=0…99, Textinhalt einer Variablen. Der Textinhalt muss eine kommaseparierte Liste sein.
##nvarID Der indizierte, n=0…99, Textwert einer Variablen konvertiert in einen Ganzzahlenwert. (atoi) Der Textwert muss eine komma-separierte Liste sein.
~varID Ein Zeiger zum Text oder Wert der Variablen; Abhängig vom XMLScript-Befehl: value="~varID" oder text="~varID"


Umgebungs-Variablen

Auch alle im Betriebssystem definierten Umgebungs-Variablen können genutzt werden:
"Guten Morgen %USER%." (unter Windows: %USERNAME%)
wird dann etwa so ausgewertet:
"Guten Morgen rob."

Zuordnen der Aktion

Der nächste Schritt ist, das Objekt auszuwählen, dem die Aktion zugeordnet bzw. von dem aus die Aktion ausgelöst werden soll.
Im Beispiel oben würde es der Block sein, für den der dynamische Text mit der Lok-Beschreibung aktualisiert wird. Wenn der Block, dem die Aktion zugewiesen ist, Block LP1 ist, der Zug der das "enter"-Ereignis auslöst (628 123) die Beschreibung "Regionalbahn 5" hat und der Block, von dem der Zug kommt der Ortschaft "A-Stadt" zugeordnet ist, wird das zugeordnete Text-Objekt mit dem Text "In Gleis LP1 fährt ein Regionalbahn 5 aus A-Stadt" aktualisiert.
Wenn, wie hier angenommen, das "enter"-Ereignis die Aktion auslösen kann, muss das im Feld Status ausgewählt werden.

"Sprich zu mir"

loudspeaker.jpg

espeak

Den Text vorlesen lassen

Um den aktualisierten Text z.B. mit espeak lesen zu lassen, gibt es 2 Möglichkeiten:

  1. Nutzung des Befehl/Script für Durchsage –> der Befehl wird auf dem Client Computer ausgeführt.
  2. Auslösen durch eine zusätzliche Aktion wie hier beschrieben. –> Der Befehl wird auf dem Server-Computer ausgeführt.

Beispiele mit Ton-Dateien und espeak

Ein Linux-Script mit dem Inhalt:

mplayer jingle.wav;
espeak -vde+f2 " $* ";

spielt einen Gong, bevor der dynamische Text gesprochen wird.

Eine Windows-Batch-Datei könnte so aussehen:

c:\playwav ns.wav
c:\espeak -vnl+m3 %1%
exit

oder:

sndrec32 /play /close /embedding c:\sound\gong.wav
C:\Programme\eSpeak\command_line\espeak.exe -v de+f2 %* 
Hinweis:
Die gezeigten Beispiele von Befehlen in Skripten oder Stapel-Dateien mit Tönen und "espeak" können auch einzeln verwendet werden.
Wenn nur eine einzelne Befehlszeile abgearbeitet werden soll, kann diese auch ohne Skript/Stapel-Datei direkt im Feld Befehl der Aktion eingetragen werden.
Hinweis zu Win7:
Unter Win7 ist das Programm "sndrec32.exe" nicht verfügbar.
In diesem Forumbeitrag ist eine Lösung des Problems beschrieben.
Hinweis für Win7-64Bit-Nutzer:
"sndrec32.exe" in das Verzeichnis: "C:\Windows\SysWOW64\" kopieren.
Rechte/Kompatibilität der "sndrec32.exe"-Datei für Windows 7 ändern.
Siehe diesen Forumsbeitrag
Hinweis zu macOSX:
say-Befehl verwenden.


Downloads

Zugehörige Themen

1) , 2)
deutsche Begriffe auf der verlinkten Seite
text-gen-de.txt · Last modified: 2024/10/11 02:05 by rainerk