User Tools

Site Tools


gui-multi-de

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

gui-multi-de [2018/11/12 08:56] (current)
Line 1: Line 1:
 +======Mehrere Instanzen von Rocview======
 +[[german|{{ ​ rocrail-logo-32.png}}]]
 +[[german|Inhalt]] -> [[german#​rocview|Rocview]] ​ -> [[german#​Allgemeine Funktionen]]
 +  * [[gui-reports-de|Dokumentation]] ​ | [[gui-dnd-de|Drag and Drop]] | **[[gui-multi-de|Mehrere Instanzen von Rocview]]** | [[gui-connectto-de|Mit anderem Server verbinden]] | [[gui-cs-status-de|Status-Lampen]] | [[gui-accel-de|Tastenkürzel verwenden]]
 +
 + // \\ // \\
 +
 +**Aktivieren von mehreren Rocviews für einen besseren Überblick.** ​
 +
 +=====Windows / Linux=====
 +Größere Anlagen oder einzelne Module können in Rocrail zur besseren Übersicht auf mehrere Ebenen verteilt werden. Wenn Rocview nur einmal gestartet wird, ist hierbei jedoch erforderlich,​ dass häufig zwischen den einzelnen Ebenen umgeschaltet werden muss, damit der Überblick über das Geschehen auf der Anlage erhalten bleibt.\\
 +Die Client/​Server-Architektur von Rocrail erlaubt jedoch noch eine andere, elegantere Vorgehensweise:​ Es werden mehrere Instanzen von Rocview gestartet, die sich alle mit dem gleichen Server verbinden. In den einzelnen Instanzen werden unterschiedliche Teile der Anlage bzw. von der Benutzeroberfläche angezeigt.\\
 +Dieses Kapitel beschreibt Schritt für Schritt, wie mehrere Instanzen von Rocview gezielt aufsetzt werden.
 +
 +Als Beispeil dient die Konfiguration von vier verschiedenen frei verschiebbaren Fenstern:
 +
 +  * Fenster 1: Lokomotiven-Tabelle
 +  * Fenster 2: Modul 1 (Buchrain)
 +  * Fenster 3: Modul 2 (Grabtief)
 +  * Fenster 4: Schalttafel (Ebene mit verschiedenen Ausgängen zum Schalten von Licht, etc.)
 +
 +Die hier beschriebene Umsetzung erfolgt auf einem Rechner, kann aufgrund der Architektur aber problemlos auch auf verschiedenen (Client-) Rechnern umgesetzt werden.
 +
 +====Schritt 1: ini-Dateien erstellen====
 +Da jedes Fenster unterschiedlich konfiguriert werden soll, wird für jedes Fenster eine eigene ''​.ini''​-Datei benötigt. Deshalb wird die standardmäßig vorhandene ''​rocview.ini''​ viermal mit jeweils eigenem Dateinamen in das Arbeitsverzeichnis von Rocview kopiert.\\
 +Beispiel:
 +  * ''​rocview_locos.ini''​
 +  * ''​rocview_buchrain.ini''​
 +  * ''​rocview_grabtief.ini''​
 +  * ''​rocview_panel.ini''​
 +:!: Unbedingt sicherstellen,​ dass in jeder einzelnen **rocview_*.ini** die __**[[:​rocgui-trace-de#​trace-datei|Protokollierungen / "​Traces"​ deaktiviert sind.]]**__.\\
 +
 +====Schritt 2: Einstellungen der Fenster====
 +In diesem Schritt werden die kopierten ini-Dateien an die jeweiligen Bedürfnisse angepasst. Hierzu wird ein Kommandozeilen-Fenster (DOS-Box oder Terminal) geöffnet und Rocview mit der entsprechenden ini-Datei aufgerufen:
 +
 +Auf einem LINUX-System funktioniert das Kommando:
 +<​code>​
 +<​PfadZumProgrammVerzeichniss>/​rocview -i <​PfadZumArbeitsbereich>/​rocview_locos.ini
 +</​code>​
 +**Hinweis:​**\\
 +''<​PfadZumProgrammVerzeichniss>''​ wird durch die entsprechende Pfadangabe ersetzt. Ein ''/​opt/​rocrail''​ sollte reichen.\\
 +''<​PfadZumArbeitsbereich>''​ wird durch den Pfad zum Arbeitsbereich ersetzt. Das könnte z.B. so aussehen: ''/​home/<​user>/​rocrail''​ \\
 +\\
 +Auf einem WINDOWS-System funktioniert:​
 +<​code>​
 +rocview -i <​PfadZumArbeitsbereich>​\rocview_locos.ini
 +</​code>​
 +**Hinweise:​**\\
 +  * Auch hier wird ''<​PfadZumArbeitsbereich>''​ durch den entsprechenden Pfad-Hinweis ersetzt.
 +  * Wenn mehrere Rocrail-Installationen vorhanden sind (z.B. 32bit und 64bit) \\ oder der Speicherort des Programms aus anderen Gründen nicht transparent ist, \\ muss dem Programm-Namen der Pfad des Programm-Verzeichnisses vorangestellt werden:
 +<​code>​
 +<​PfadZumProgrammVerzeichniss>​\rocview -i <​PfadZumArbeitsbereich>​\rocview_locos.ini
 +</​code>​
 +Dies muss unter den gleichen Umständen auch bei den noch folgenden Beispielen berücksichtigt werden.\\ ​
 + \\
 +In der erscheinenden Rocview-Oberfläche werden im Ansicht-Menü die jeweils nicht anzuzeigenden Bildschirm-Bereiche deaktiviert und die verbleibenden Fensterelemente durch Ziehen anpasst.\\
 +{{:​rocview:​rocview-view-screen-de.png?​200}}\\
 +
 +Im folgenden Screenshot wird z.B. nur noch die Lok-Tabelle angezeigt.
 +
 +{{rocgui_mult_instances_locos.png}}
 +
 +Das Fenster zur Anzeige der Schalttafel sieht folgendermaßen aus:
 +
 +{{rocgui_mult_instances_panel.png}}
 +
 +Wenn Rocview nun beendet wird, werden diese Fenster-Einstellungen in der speziellen ini-Datei gespeichert. Dies kann durch einen erneuten Aufruf schnell geprüft werden. Zur Darstellung einzelner Ebenen werden diese vorerst manuell aktiviert und das Fenster so zurecht gezogen, dass alle wichtigen Bestandteile der Ebene sichtbar sind.
 +
 +====Schritt 3: Verbindungsdaten und Fenster====
 +Nach Abschluss der Arbeiten des vorherigen Schrittes war festzustellen,​ dass Rocview ohne weitere Angaben immer die erste Ebene eines Gleisplans anzeigt.
 +Dieses Verhalten kann aber durch den Parameter **//s//** beim Aufruf von Rocview beeinflusst werden.
 +<​code>​
 +rocview -s 2 -i rocview_panel.ini
 +</​code>​
 +Mit dem Paramter **//s//** kann vorgegeben werden, welche Ebene im Fenster aktiv bzw. sichtbar sein soll. Hierbei ist zu beachten, dass als
 +Argument der Index der Ebene angegeben werden muss. Diesen Index erkennt man aus der Reihenfolge der dargestellten Ebenen. Im Beispiel
 +dieser Anleitung werden die Ebenen in der folgenden Reihenfolge angezeigt:
 +  * Buchrain --> Index **0**
 +  * Grabtief --> Index **1**
 +  * Panel --> Index **2**
 +
 +====Schritt 4: Erstellen eines Start-Skriptes für den großen Überblick====
 +===Server ist bereits gestartet===
 +Der Server ''​rocrail.exe''​ muss in diesem Fall __**bereits vor**__ Start der Rocview-Instanzen auf der gleichen oder einer anderen Hardware gestartet sein und laufen.\\
 +Der Server muss dafür entweder aus dem Verzeichnis/​Arbeitsbereich gestartet werden, in dem sich die zu verwendende ''​plan.xml''​-Datei befindet:
 +<​code>​
 +<​Lfw:>​
 +cd <​PfadZumArbeitsbereich>​
 +start <​PfadZumRocrailprogrammVerzeichnis>​rocrail
 +</​code>​
 +oder beim Start muss der Parameter für den Arbeitsbereich angegeben werden:
 +<​code>​
 +start rocrail -w <​PfadZumArbeitsbereich>​
 +</​code> ​
 +Damit keine weitere Server-Instanz gestartet wird, __**muss unbedingt**__ in allen speziellen ''​rocview.ini''​-Dateien die Option **startdefaultworkspace="​false"​** gesetzt sein.\\
 +> **Hinweis:​** Für den Fall, dass mit der ersten Rocview-Instanz auch der Server gestartet werden soll, siehe __**[[#​server_im_arbeitsbereich|Server im Arbeitsbereich]]**__.\\
 +Damit nicht für jeden einzelnen Aufruf von Rocview mit den entsprechenden Parametern eine eigene Verknüpfung erstellt werden muss, empfiehlt sich die Verwendung eines kleinen Skriptes:
 +== Windows: ==
 +<​code>​
 +start rocview -i rocview_locos.ini
 +start rocview -s 2 -i rocview_panel.ini
 +start rocview -s 0 -i rocview_buchrain.ini
 +start rocview -s 1 -i rocview_grabtief.ini
 +</​code>​
 +Mit dem Aufruf dieses Skriptes wird Rocview viermal mit den entsprechenden Inhalten gestartet.\\
 +//​Windows://​ Falls es beim Starten Fehlermeldungen zum "​clipboard"​ gibt, so kann jeweils zwischen den einzelnen Rocview-Aufrufen durch Einfügen folgender Zeile eine Pausen von 1-2 Sekunden eingelegt werden. ​
 +<​code>​
 +ping -n 2 127.0.0.1 >NUL
 +</​code>​
 +Damit sollten die Rocview-Instanzen wieder reibungslos starten.
 +== Linux: ==
 +<​code>​
 +#!/bin/bash
 +
 +rocview -i rocview_locos.ini &
 +rocview -s 2 -i rocview_panel.ini &
 +rocview -s 0 -i rocview_buchrain.ini &
 +rocview -s 1 -i rocview_grabtief.ini
 +</​code>​
 +Die Hinweise zu den einzufügenden Pausen beim Windows-Skript gelten gleichermaßen auch unter Linux.
 +
 +===Server im Arbeitsbereich===
 +Soll mit der ersten Rocview-Instanz auch der Server gestartet werden((Start im definierten Arbeitsbereich auf der gleichen Hardware)), darf die Option **startdefaultworkspace="​true"​** __nur__ in der speziellen ''​rocview.ini''​-Datei __für die erste Rocview-Instanz__ gesetzt sein.\\
 +In allen anderen speziellen "''​rocview.ini''"​-Dateien __**muss unbedingt**__ die Option **startdefaultworkspace="​false"​** gesetzt sein.\\
 +Bei dem oben aufgeführten Start-Skript sollte zwischen dem Start der ersten Rocview-Instanz (mit Start des Servers) und den Zeilen für den Start der weiteren Instanzen eine Pause eingefügt sein, die dem Server z.B. 5-6 Sekunden Zeit für den Start gibt.\\
 +<​code>​
 +ping -n 6 127.0.0.1 >NUL
 +</​code>​
 +Wenn das funktioniert,​ können verkürzte Zeiten probiert werden.\\
 +Bei langsamer Hardware und / oder großen Gleisplänen muss die Zeit ggf. verlängert werden.
 +
 +====Schritt 5: Feineinstellungen der Fenster-Positionen====
 +Als letzter Schritt bleibt noch die Positionierung der einzelnen Fenster zueinander. Hierzu sind nach dem Starten aller Instanzen die einzelnen Fenster so zu verschieben,​ wie sie hinterher im Betrieb benötigt werden. Werden nach der Feineinstellung die Fenster nacheinander geschlossen,​ wird die jeweils eingestellte Position der Fenster in der entsprechenden ini-Datei gespeichert und beim erneuten Aufruf erscheint die gewünschte Darstellung:​
 +
 +{{rocgui_mult_instances_all.png}}
 +
 +\\
 +=====Mac OS X=====
 +Das Start-Skript könnte unter Mac OS X so aussehen:
 +<​code>​
 +#!/bin/sh
 +export DYLD_LIBRARY_PATH=./​Rocrail.app/​Contents/​MacOS
 +./​Rocrail.app/​Contents/​MacOS/​rocview -i rocview1.ini&​
 +./​Rocrail.app/​Contents/​MacOS/​rocview -i rocview2.ini&​
 +</​code>​
 +
 + \\
 +====Wie 2 Rocview-Fenster unter Mac OS-X mit 1 Rocrail-Server realisiert werden====
 +Anlass:
 +
 +  - Der Gleisplan enthält mehr als eine Ebene oder ist so groß, das er nicht gut in ein Fenster passt.
 +  - In eine Modul-Plan-Darstellung zu wechseln, ist keine Option ​
 +  - Die Nutzung von 2 Computer-Monitoren ist wünschenswert
 +
 +=== Schritt 1: Die Rocrail-Architektur verstehen ===
 +
 +Für diesen besonderen Fall sieht die Architektur wie folgt aus:
 +
 +{{Dual Rocview architecture.png}}
 +
 +Wichtig:
 +
 +  - Die zwei Rocview.ini-Dateien müssen im Rocrail/​Rocdaten-Ordner sein.
 +  - Der Gleisplan ist in einem separaten Verzeichnis (Um Löschen durch eine Update zu vermeiden)
 +  - Das Start-Programm ''​Start Rocview.sh''​ ist im Rocrail/​Rocdaten-Ordner
 +
 +=== Schritt 2: In Rocrail einen Gleisplan erzeugen, der zunächst 2 Ebenen-Register enthält ===
 +{{Dual Rocview Tabview.png}}
 +
 +Hinweis:
 +Am Anfang bestand die falsche Annahme, dass zwei separate Gleispläne in separaten Arbeitsbereichen gelegt sein müssen. ​
 +Dies sollte nicht gemacht werden. Es muss __ein__ Gleisplan in __einem__ Arbeitsbereich mit __zwei__ Ebenen-Registern angelegt werden.
 +
 +Später wird von beiden Rocview-Fenstern mit dem gleichen Gleisplan im Rocrail-Server kommuniziert.
 +
 +=== Schritt 3: Die erste Rocview.ini erzeugen===
 +Die erste Rocview.ini-Datei,​ die das erste Fenster öffnen soll, wird angelegt und in dieser Fall ''​Rocview_-1.ini''​ genannt.
 +
 +Es muss sichergestellt sein, dass die Datei den Pfad zum richtigen Gleisplan enthält:
 +
 +<​code>​
 +<​workspace path="/​Users/<​your name>/​Documents/​De Rangeerbaan"​ title="​De Rangeerbaan Plan"/>​
 +</​workspaces>​
 +</​code>​
 +
 +**Hinweis:​** ​
 +''/<​your name>/''​ enthält den Namen der "Apple computer ID", meistens den Login-Namen bzw. Benutzernamen.
 +
 +=== Schritt 4: Die zweite Rocview.ini erzeugen===
 +Die zweite Rocview.ini-Datei,​ die das zweite Fenster öffnen soll, wird angelegt und in dieser Fall''​Rocview_-0.ini''​ genannt.
 +
 +Es muss sichergestellt sein, dass die Datei den Pfad zum richtigen Gleisplan enthält:
 +
 +<​code>​
 +<​workspace path="/​Users/<​your name>/​Documents/​De Rangeerbaan"​ title="​De Rangeerbaan Plan"/>​
 +</​workspaces>​
 +</​code>​
 +
 +**Hinweis:​** ​
 +''/<​your name>/''​ enthält den Namen der "Apple computer ID", meistens den Login-Namen bzw. Benutzernamen.
 +
 +=== Schritt 5: Shell-Programm anlegen ===
 +Der Inhalt des Shell-Programms bestimmt, wie das Script arbeitet.\\ ​
 +Es muss sichergestellt sein, dass das Script getestet wird, bis es korrekt arbeitet!\\
 +In diesem Beispiel hat das Script folgenden Inhalt:
 +
 +<​code>​
 +
 +#!/bin/sh
 +export DYLD_LIBRARY_PATH=/​Applications/​Rocrail/​Rocrail.app/​Contents/​MacOS
 +
 +/​Applications/​Rocrail/​Rocrail.app/​Contents/​MacOS/​rocrail&​
 +
 +ping -c 2 127.0.0.1 >NUL
 +
 +/​Applications/​Rocrail/​Rocrail.app/​Contents/​MacOS/​rocview -i /​Applications/​Rocrail/​rocdata/​rocview_0.ini&​
 +
 +ping -c 2 127.0.0.1 >NUL
 +
 +/​Applications/​Rocrail/​Rocrail.app/​Contents/​MacOS/​rocview -i /​Applications/​Rocrail/​rocdata/​rocview_-1.ini&​
 +
 +</​code>​
 +
 +**Hinweis:​** ​
 +Mit den ''​ping''​-Befehlen erhält der Computer einige Zeit, den Rocrail-Server und die 2 Rocview-Fenster nacheinander zu starten. Das mag langsam aussehen, aber mit dem Zeitablauf arbeitet es richtig.
 +
 +Das Shell-Programm sollte mit einem wiedererkennbaren Namen gespeichert werden, wie: ''​Start dual Rocview.sh''​
 +
 +=== Schritt 6: Ausführen des Shell-Programm-Scripts ===
 +Nach einem Doppelclick startet das Script die Ausführung. Es können Fehlermeldungen erscheinen, falls die Pfade im Script nicht korrekt sind.
 +
 +Das kann nur beseitigt werden, wenn die korrekten Pfade im Script stehen ...und mit etwas Geduld...
 +
 +Nach einigen Sekunden werden die beiden Rocview-Fenster geöffnet, wie:
 +
 +{{Dual Rocview windows.png?​800}}
 +
 +**Hinweis:​**
 +Es kann der Fall sein, dass mit Click auf das Ebenen-Register in den Rocview-Fenstern manuell ausgewählt werden muss, welcher Gleisplan in welchem Fenster zu sehen sein soll. Ich war nicht in der Lage, das auch zu automatisieren.
 +
 +
 +=== Schritt 7: Create a shortcut form the Shell program to be placed in the Dock ===
 +Create a shortcut of the Shell program which enable you to put that in the Dock.
 +
 +1. Start the Automator
 +
 +2. Select in the Automator Library: execute Shellscript
 +
 +{{Automator library.png}}
 +
 +3. Drag the Library script to the right panel
 +
 +4. Empty the existing content in the script
 +
 +5. Open in the Start Rocview.sh script (with Terminal)
 +
 +6. Select the content in the script en copy
 +
 +7. Past the content in the Automator empthy windown in the right panel
 +
 +{{Automator script.png}}
 +
 +8. Test your Automator script with ‘push’ the execute button in the right uppercorner
 +
 +9. If it correct works, save your automator script with a valid name
 +
 +10. Drag the Automator script in the Dock
 +
 +{{Dock.png}}
 +
 +11. Click on the Automator icon and Rocrail will start with 2 Rocview windows.
 +
 +12. Ready
 +
 +
 +
 +
 +
 +
 +
 +
 +
  
gui-multi-de.txt · Last modified: 2018/11/12 08:56 (external edit)