Text

Inhalt → Objekte → Text
Sprich zu mir → Ton-Dateien und “espeak” als Befehle in Aktionen
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
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"
espeak
Den Text vorlesen lassen
Um den aktualisierten Text z.B. mit espeak lesen zu lassen, gibt es 2 Möglichkeiten:
- Nutzung des Befehl/Script für Durchsage –> der Befehl wird auf dem Client Computer ausgeführt.
- 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 FeldBefehlder 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
- Laß' Rocview sprechen (Für eine Auswahl von Blocks)
Trace: » mgv101-nl » english » rocgui-lang-de » mgv-led-en » mvtrack-setup-fr » symbols-themes-road-en » stepbystep-en » operator-loco-de » roadmap-en » text-de








