Railway-Daemon

Wenn ein Nodelink zu einer Leistungselektronik unter der Bahn aufgebaut wird, liegt dazwischen immer ein PC104-Rechner. Ein Systemprozeß namens railwayd ist dafür zuständig, die lokalen seriellen Schnittstellen zu verwalten und Datenpakete zwischen diesen und den Bussystemen zu routen. Auf einen Befehl von CAN-Bus oder dem Ethernet hin öffnet und schließt dieser die lokalen Schnittstellen. Datenpakete werden von den Bussen zu den Schnittstellen und anders herum weitergeleitet. Jede Statusänderung protokolliert der Daemon über syslog.

Damit die Latenzzeiten nicht zu groß werden, belegt der Daemon die CPU möglichst komplett, solange mindestens eine Schnittstelle offen ist. Die Verbindungen müssen regelmäßig benutzt werden, anderenfalls gibt railwayd sie schrittweise wieder frei. Nach drei Sekunden Inaktivität kann ein anderer Client die offene Verbindung übernehmen, nach insgesamt 20 Sekunden wird sie automatisch geschlossen. Dieser Mechanismus verhindert, daß noch offene Nodelinks eines abgestürzten Programms das System blockieren. Der Daemon wird beim Start mit Hilfe von Kommandozeilenparametern wie folgt konfiguriert.

  Usage:
    railwayd [options]

  This server allows clients to build nodelinks via CAN and UDP to local
  serial ports.

  Options:
    -c, --can dev           Enable CAN interface on the given device
    -d, --no-daemon         Don't daemonize, log messages to stdout
    -h, --help              Show this summary
    -n, --node              Set node number (starting at 0)
    -s, --simulate          Use simulated hardware for all serial ports
    -u, --udp               Enable UDP interface

  The node number must be unique inside the whole system. It is taken by
  default from the hostname it it contains a number (like in 'node01').
  At least one interface must be enabled for this program to make sense.

  Copyright 2005 Stephan Höhrmann, published under the GPL.

Das Programm läßt sich auch für Desktop-Rechner compilieren und dort benutzen, es ist in seinen Möglichkeiten nicht auf die PC104-Systeme beschränkt.