User Tools

Site Tools


text-gen-de

This is an old revision of the document!


Text: Allgemein

InhaltObjekteText



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 angesprochen wird.

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.

Aktualisieren

Bild-Aktualisierungs-Zeit in ms, die für WebCam-Bilder verwendet werden kann.
Diese Option muss größer als 99 sein, um aktiv werden zu können.

Hinweis

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

Punktgröße

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

CX/CY

Die Raster-Breite und -Höhe des Text-Objekts.

Farbe [ ... ]

Die Schaltfläche zeigt die aktuelle Vordergrundfarbe. Ein Klick öffnet den Standarddialog des Betriebssystems zur Farbeinstellung.

Hintergrund [ ... ]

Die Schaltfläche zeigt die aktuelle Hintergrundfarbe. Die Farbe wird nur angezeigt, wenn die Eigenschaft 'durchsichtig' nicht angewählt ist. Ein Klick öffnet den Standarddialog des Betriebssystems zur Farbeinstellung.

Eigenschaften

Optionen zur Darstellung des Textes.

HTML

Rendert HTML anstelle von Klartext.
Dies in Kombination mit Ortschaft Fahrplan verwenden.

Zurücksetzen

Setzt den gespeichertetn Text beim Start zurück; Nützlich bei dynamischem Text.

Eingabefeld

Ein linker Mausklick auf das Text-Objekt im Gleisplan öffnet einen Text-Eingabe-Dialog zur Änderung des Textes.
Text-Werte können als Bedingung in Aktionen verwendet werden.

Rahmen

Zeichnet einen Rahmen um das Textfeld.

Modelluhr

Erlaubt das Modelluhr-Popup in einigen Clients:

WebCam

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

Bild spiegeln

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

Anzeigen

Wenn deaktiviert, wird das Textfeld im Gleisplan nicht angezeigt.

Ausrichtung

Standard bedeutet horizontale Ausrichtung des Texts.

Zurücksetzen

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

Gemeinsame Dialog-Schaltflächen

Text-Format

Zeichen Regel
| Neue Zeile

Wenn der dynamische Text mit dem |-Zeichen beginnt, wird er an den vorhandenen Text angehängt.

Beispiel

"Regel 1|Regel 2|Regel 3"


Anzeigen eines Bildes im Gleisplan


Wenn der eingegebene Text mit .png endet, 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.

Aktionen

Eine Aktion kann dazu verwendet werden, einen Text durch ein Programm wie espeak sprechen zu lassen (Ausgabe auf der Soundkarte des Servers!).

Um ein Textfeld, welches von einem Block aktualisiert wurde, auf dem Client sprechen zu lassen, siehe Durchsage für Block.

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 zum Sprechen 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.
%temp% Modell-Temperatur
%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.
%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'
%lcshortid% Lok 'Kurz-Kennung'
%lcclass% Lok-/Zug- 'Klasse'
%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
%lcdir% Lok Fahrrichtung: "fwd"/"rev"
%lcplacing% Lok Platzierung: "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
%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
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
%temp% Temperatur in °C
Geschwindigkeits-Messstrecke
%mvspeed% Gemessene Geschwindigkeit in km/h
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…9, Textinhalt einer Variablen. Der Textinhalt muss eine kommaseparierte Liste sein.
##nvarID Der indizierte, n=0…9, 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.1542009373.txt.gz · Last modified: 2018/11/12 08:56 by 127.0.0.1