Text

InhaltObjekteText

Sprich zu mir → Ton-Dateien und “espeak” als Befehle in Aktionen

perron-luidspreker.jpg

Einstellungen

Attribut Beschreibung Bemerkung
Kennung Eine eindeutige ID, unter der der Text von Rocrail angesprochen wird. Diese Kennung wird normalerweise von Rocrail automatisch vergeben. Eine Änderung in diesem Feld sollte nur mit Vorsicht vorgenommen werden.
Text In diesem Attribut wird die darzustellende Zeichenkette oder der Name des Bildes (s.u.) abgelegt und kann hier geändert werden.
Bild Über die Schaltfläche […] kann ein Bild ausgewählt werden, das anstelle eines Textes im Gleisplan dargestellt werden soll.
Hinweis Hier kann ein 'Tooltip' definiert werden, der beim Überfahren des Objektes mit der Maus angezeigt wird
Punktgröße Mit diesem Attribut kann die Schriftgröße des Texts geändert werden. 0 bedeutet die Standardgröße des Betriebssystems.
Farbe Vordergrundfarbe
Hintergrund Hintergrundfarbe Die Farbe wird nur angezeigt, wenn das Attribut 'transparent' nicht angewählt ist.
Lage Normal bedeutet horizontale Ausrichtung des Texts


Text-Format

Rev.3431+.

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 ist allerdings das Attribut cx von grösserer Bedeutung. Wenn eine Zeichenkette nicht komplett dargestellt wird, dann sollte man diesen Wert solange vergrössern, bis der Text komplett im Gleisplan dargestellt wird.

Anzeigen eines Bildes im Gleisplan


Wenn der eingegebene Text mit .png endet, versucht das Text-Objekt ein entsprechendes Bild in dem Ordner zu finden, der durch imagepath in der rocview.ini definiert ist.


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

Revision 1733.

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 hineingeschrieben wird oder leer bleibt, weil er durch eine Aktion geändert wird, die das Text-Objekt steuert.
Es ist wichtig, dass die Breite des Text-Objekts (Cx in Registerkarte “Position”) groß genug ist, um den gesamten Text aufzunehmen, der durch eine Aktion hineingeschrieben werden soll. Außerdem sollte die Kennung des Text-Objektes notiert werden, weil sie benötigt wird, wenn die Aktion definiert wird, die den Text ändern soll.




Definieren der Aktion

Im Menü “Tabellen” die Aktions-Tabelle auswählen und durch Klick auf “Neu” eine neue Aktion anlegen.
Im Feld “Typ” “Text” auswählen, im Feld “Kennung” die Kennung des angelegten Text-Objekts einstellen und im Feld Befehl “update” auswählen (es ist die einzige Option).
Das Feld “Parameter” enthält den Text, der im zugewiesen Text-Objekt erscheinen soll. D.h. in den Block %bkid% fährt die Lok %lcdesc% und kommt aus Ortschaft %frombkloc%. Die Texte zwischen den % sind die Variablen, die aktualisiert werden, wenn die Aktion ausgeführt wird.


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 (Rev 2120+)
%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

¹) 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 eingetragen werden. Hier kann nicht aus einer Liste ausgewählt werden, deshalb ist auf die korrekte Schreibweise zu achten.

"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

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]

Schnittstellen-Kennung

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