This is an old revision of the document!
Table of Contents
Text: Allgemein
-
- "Sprich zu mir ..." → Ton-Dateien und "espeak" als Befehle in Aktionen
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
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' | |
| 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"
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 FeldBefehl
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
- Laß' Rocview sprechen (Für eine Auswahl von Blöcken)