Die Software

Eigenschaften

Der Quellcode

Als "Proxy" zwischen CAN und Ethernet dient eine selbstgeschriebene Software. Der Quellcode steht auch auf der Download Seite zur Verfügung. Die Software setzt socketCAN als Schnittstelle zum CAN Interface voraus. Es ist aber auch eine Version für CAN4Linux und für die CC-Schnitte vorbereitet. An Linux/Unix bzw. Posix spezifischen Funktionen wird nicht viel benötigt. An zentraler Stelle werden die Sockets per select() abgefragt. Die Verwaltung der z-lib gepackten Dateien fragt das Dateisystem mittels stat() ab. Wer die Software übersetzen möchte, benötigt noch boolean.h, bytestream, finite state machine, Data Storage aus dem Kurs über Algorithmen und bitmask.h für die Definition von Bitmasken, den scanner für syntaktische Analyse und den ini parser. Sämtliche dieser Libs finden sich im Quellcode in der Lib-Sektion der Download Seiten. Zusätzlich wird als externes Paket die zlib benötigt.

Um den client_gpios88 zur Abfrage des S88 Bus per GPIO auf dem BPi zu übersetzen, muß das Projekt von Gerhard Bertelsmann parallel zu dem mrsystem liegen. Das Makefile greift direkt auf die Originalsourcen zu. Dazu kann einfach eine Arbeitskopie des Repositorys parallel zu mrsystem angelegt werden. Dies ergibt dann die folgende Verzeichnisstruktur:

|-- mrsystem
|   |-- client_cc
|   |-- client_cs2eth
|   |-- client_cs2sl
|   |-- client_gpios88
|   ...
|   `-- www
|-- railroad
|   |-- can2udp
|   |   |-- config
|   |   |-- files
|   |   |-- msd
|   |   |-- pictures
|   |   `-- src
|   ...

Die Komponenten

Die Software besteht aus eine Reihe von einzelnen Daemoen, die miteinander über Sockets kommunizieren. Als zentrale Schaltstelle zum Weiterleiten der Nachrichten an die Clients dient die drehscheibe. Mit der drehscheibe kommunizieren die Clients, die für die verschiedenen Schnittstellen bzw. Protokolle zuständig sind. Es gibt z.B. einen Client für MS2 Nachrichten auf dem CAN Bus und einen Client für die CS2 Ethernet Nachrichten. Eine spezielle Form des Clients ist die zentrale. Dieser Client dient zur Verwaltung der Loks, die von der MS2 ausgelesen werden. Und die Verwaltung der *.cs2 Dateien, die z.B. von der cs2.exe angefordert werden bzw. nach dem Editieren auch zurück geschickt werden. Folgende Clients zur Kommunikation nach auß sind vorhanden:

Ob ein Client zu Verfügung steht, hängt auch davon ab, ob das System, auf dem compiliert wird, die Schnittstelle unterstützt.

Das Verhalten des Systems kann sowohl über die Kommandozeile beim Start als auch über eine Konfigurationsdatei angepaßt werden. Wobei ein Parameter der Kommandozeile einen Parameter der Konfigurationsdatei überschreibt. Die Werte der Konfigurationsdatei können auch über ein Formular der Wegconfig gesetzt werden. Sollen auch die cs2 Dateien verändert werden, bietet sich dafür die Software C2X-Helper an, die als externer Editor benutzt werden kann.

Das Linux erhält seine IP Adresse per DHCP. Um auf das System zugreifen, zu können, sind als Server telnet, ssh, ftp, http (Apache) und X11 mit xdm eingerichtet. Das System antwortet auch auf einen Broadcast eines X11 choosers. Als Clients sind PuTTY (telnet, ssh) und ftp eingerichtet. Als zusätzlicher User ohne root-Rechte wurde developer eingerichtet.

UserBeaglebone BlackBanana Pi
rootbeaglebonebananapi
developerbeaglebonebananapi

Mit dem System wurde erfolgreich gegenüber den Märklin Apps und der CS2 Oberfläche für PCs eine Master CS2 simuliert. Da die Software versucht, sich möglichst ähnlich zu einer realen CS2 zu verhalten, sollten die meisten Programme, die eine CS2 steuern, mit dieser Lösung funktionieren. Da in der Märklin Doku nicht immer sämtliche Details korrekt beschrieben sind bzw. sich die Märklin Geräte nicht immer zu 100% an die eigene Doku halten, kann es dennoch sein, daß nicht jede Software funktioniert. Folgende Software wurde erfolgreich getestet:

Jedes der Programme erwartet eine Master CS2. Die cs2.exe kann auch mit einer Slave CS2 und damit mit dem "Proxy Mode" betrieben werden.

Externe Links


Zurück zur Modellbahn Startseite - Zurück zur Homepage