Text

InhaltObjekteText



perron-luidspreker.jpg

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.

Hinweis

Definiert den 'Tooltip', der angezeigt wird, wenn sich die Maus über dem Objektes befindet.

Punktgröße

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

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 das Attribut 'transparent' nicht angewählt ist. Ein Klick öffnet den Standarddialog des Betriebssystems zur Farbeinstellung.

Lage

Normal 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

Beispiel

"Regel 1|Regel 2|Regel 3"


Position & Größe


Das Register 'Position' ist im Kapitel Objekte eines Gleisbildes beschrieben. Hier sind allerdings die Attribute cx und cy für die Darstellung des Textets von Bedeutung. Damit eine längere Zeichenkette bzw. ein Bild vollständig dargestellt wird, kann mit diesen Werten die Anzahl der Raster und damit die Größe des Textfeldes festgelegt werden.

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 skaliert, dass es zur Textfeld-Größe passt, die in der Registerkarte Position definiert ist. (7374+)

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

Lok
%lcid% Lok 'Kennung'
%lcident% Lok 'Kennzeichnung' (RFID, Railcom, Lissy, Barcode…)
%lcimg% Lok 'Bild'
%lcdest% Lok-Ziel
%lcdesc% Lok 'Beschreibung'
%lcnr% Lok-Nummer
%lcdir% Lok Fahrrichtung: “fwd”/“rev”
%lcplacing% Lok Platzierung: “norm”/“swap”
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'
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 (benutze das mit state 'free'¹)
Rückmelder
%counter% 'Zähler'
%carcount% 'Wagenzähler'
%countedcars% 'gezählte Wagen'
%wheelcount% 'Achszähler'
Booster
%load% Last in mA
%volt% Spannung in mV
%temp% Temperatur in °C
Geschwindigkeits-Messstrecke
%mvspeed% Gemessene Geschwindigkeit in km/h
Variable
%#varname% oder mit Sub-Kennung %#varname#lcid% Der Ganzzahlwert


¹) 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.)

Umgebung

Auch alle definierten Umgebungsvariablen 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 zu Mac OS X:
say-Befehl verwenden.


Schnittstelle

cangc8-gc2-2.jpg Einige Systeme können Text-Meldungen auf Anzeigen verarbeiten, wie CBUS: CAN-GC8.
Um diese Eigenschaft zu verwenden, muss die Adresse größer als “0” sein.

cmdr0A40 OText    0281 send text [Good morning rob]
cmdr0A40 OCBUS    1638 translate: tx
cmdr0A40 OCBUS    2028 set display 5600:1 to "Good morning rob"
cbwriter OCBUS    0170 OPC_ACDAT(0xF6) address=5600 display=1 line=0 nr=0 text=[Good]
cbwriter OCBUS    0170 OPC_ACDAT(0xF6) address=5600 display=1 line=0 nr=1 text=[ mor]
cbwriter OCBUS    0170 OPC_ACDAT(0xF6) address=5600 display=1 line=0 nr=2 text=[ning]
cbwriter OCBUS    0170 OPC_ACDAT(0xF6) address=5600 display=1 line=0 nr=3 text=[ rob]

Schnittstellenkennung

Wenn mehr als eine Zentrale defineiert ist, kann dieses Feld verwendet werden um diesen Ausgang mit der Zentrale zu verbinden mit der er verdrahtet ist. Leer lassen, wenn nur eine Zentrale definiert ist oder wenn er mit der Standard-Zentrale verdrahtet ist. (Erste definierte Zentrale in der rocrail.in)

Adresse

Adresse des Anzeige-Moduls.

Anzeige

Die Anzeige-Nummer auf dem Modul. Bereich 1 bis 8.

Downloads

Zugehörige Themen


Personal Tools