1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311
|
Autor: Matthias Trute, et al
Datum: Mai 2004
Version: 2.0.6 ($Id: README 1756 2020-06-05 07:18:07Z gscholz $)
Lizenz: GNU General Public License Version 2 für das gesamte Packet
Zweck des Programms
SRCP Kommandos werden über das Netzwerk entgegengenommen und mit
am Server angeschlossener Interfaces an die Modellbahn übermittelt
und die Rückmeldemodule eingelesen.
SRCP
Simple Railroad Command Protocol, eine Entwicklung aus dem Usenet
(news:de.rec.modelle.bahn) um Modellbahnen mit dem Computer zu
steuern. Die Betonung liegt auf dem S ;=). Aktuell ist Version 0.8.3.
Konfiguration
Der Dämon wird ausschließlich über eine Konfigurationsdatei
konfiguriert. Diese heißt standardmäßig /etc/srcpd.conf. Es
handelt sich um eine Textdatei im XML Format, die mit jedem Editor
bearbeitet werden kann.
Die Dokumentstruktur basiert auf der Busstruktur des SRCP
0.8.x. Eine DTD ist in Arbeit.
Die Datei wird sequentiell ausgewertet. Dies bedeutet, das die
Busse in der numerisch korrekten Reihenfolge angegeben werden
müssen. Zu beachten ist, dass einige Treiber mehr als nur einen
Bus belegen. Dies muß in der korrekten Nummerierung beachtet
werden. Etwaige Fehler werden nicht immer erkannt. Bei Problemen
an dieser Stelle bitte immer die Konfigurationsdatei _und_ eine
verbale Beschreibung der angeschlossenen Hardware mitteilen!
Per Voreinstellung werden einige Parameter vorgegeben. Dies hat
den Effekt, dass nur Änderungen angeben werden müssen. Die
voreingestellten Werte werden sich nicht "heimlich" ändern.
Grundsätzliche Struktur
Ein Bus wird durch das <bus> Tag definiert. In ihm sind einige
Attribute und weitere Tags enthalten.
<bus number="lfd.nr">
<device>/dev/ttyS1</device>
<use_watchdog>yes</use_watchdog>
<restore_device_settings>no</restore_device_settings>
<verbosity>1</verbosity>
<!-- es folgt die Definition des Treibermoduls -->
<driver>
<driverdata1>value</driverdata1>
</driver>
<bus>
Device
Das Device ist der Pfadname, der das betreffende Gerät im
Unix-Verzeichnissystem bezeichnet. Er muß vollständig und ohne
umrahmende Leerzeichen oder Zeilenvorschübe angegeben werden.
use_watchdog
Einige Treiber unterstützen einen Watchdog, der den
betreffenden Programmteil bei Störungen der Kommunikation neu
startet. Defaultwert: no.
restore_device_settings
Beim Programmende sollen die Geräteeinstellungen auf den
ursprünglichen Zustand zurückgesetzt werden. Dies ist nur für
serielle Geräte sinnvoll und wird nicht von allen Treibern
unterstützt. Defaultwert no.
verbosity
Dieses Tag stellt den Umfang der Syslog-Meldungen ein.
0 keine Meldungen außer Start/Stop
1 nur Fatale Fehler
2 zusätzlich Fehler
3 zusätzlich Warnungen
4 zusätzlich Informationen
5 zusätzlich Debugmeldungen
>5 Hardware nicht immer tatsächlich angesprochen
Busspezifikation (driver)
In jedem Bus muß eine Busspezifikation enthalten sein. Diese wird
durch das nachfolgend angeführt xml-Tag ausgewählt. Innerhalb
dieser kann es (und wird es i.d.R.) weitere Angaben geben.
Anstelle von »driver« ist der nachfolgend bezeichnete xml-Tag
einzusetzen. Anstelle von »driverdata1« die angegebenen
Parameter. Als »value« wird alles inkl. Leerzeichen zwischen dem
beginnenden und dem abschließendem Tag übernommen.
Groß/Kleinschreibung ist signifikant.
Loopback
~~~~~~~
Dieser Bus dient zum einen zur offline Entwicklung von
Client-Programmen als auch als Skelett für neue Busse. Er verwaltet
die Geräte ohne jeglichen Hardwarebezug.
xmltag: loopback
Parameter
number_ga: Größte GA Adresse (256)
number_gl: Größte GL Adresse (80)
number_fb: Anzahl FB Kontakte (0)
Die FB koennen jeden numerischen Wert annehmen.
Die GA und GL werden eingehende Befehle sofort
als ausgeführt markieren.
DDL S88
~~~~~~~
Dieser Treiber unterstützt 1 oder 4 S88 Stränge am
Parallelport. Dies wird entsprechend dem Anschlußschema des DDL
Dämonen (http://www.vogt-it.com/OpenSource/DDL) übernommen. Die
Anschlußstränge entsprechend der Schaltung von Martin Wolf werden
als separate Busse geführt. Auch wenn nur ein Bus angeschlossen
ist, werden immer 4 Busse belegt. Der »ioport« sollte im
Hexadezimalformat angegeben werden (mit führendem 0x).
xmltag: ddl-s88
ioport: Portadresse des Parallelports (z.B. 0x378)
number_fb_1: Anzahl S88 Module am Strang 1
number_fb_2: Anzahl S88 Module am Strang 2 (0)
number_fb_3: Anzahl S88 Module am Strang 3 (0)
number_fb_4: Anzahl S88 Module am Strang 4 (0)
Auch ohne die Schaltung von Martin Wolf werden 4 Busse belegt, dann
ist allerdings nur der erste wirksam.
Märklin 6051
~~~~~~~~~~~~
xmltag: m605x
Das Märklin Interface belegt einen Bus, der die Gerätegruppen
GA, GL, FB, LOCK und POWER unterstützt. Ebenso wird ein Watchdog
unterstützt. Die Kombination mit dem 6050 und 6020 (und baugleiche)
wird ebenso unterstützt.
number_ga: Größte GA Adresse (256)
number_gl: Größte GL Adresse (80)
number_fb: Anzahl S88 Module (0)
mode_m6020: Features des 6021 abschalten (erweitertes
MM Protokoll abschalten)
Folgende Parameter dienen dem Finetuning, sie sollten nicht
geändert werden:
ga_min_activetime
Minimale Einschaltdauer für GA in Millisekunden (75 ms)
pause_between_commands
Pause zwischen 2 Befehlen in Millisekunden (200 ms)
pause_between_bytes
Pause zwischen 2 Bytes bei Mehrbytebefehlen (2 ms)
Das Timing der Datenübermittlung ist kritisch und "handverlesen",
die voreingestellten Werte haben sich aber für einen
betriebsstabilen Zustand als zweckmäßig erwiesen.
Die Totzeit bis zum Wirksamwerden eines Befehls kann schon mal
länger dauern, vor allem wenn viele Befehle für ein Gerät anstehen.
Beim 6021, das einige Befehle vom 6051 erst beim normalen Refresh
einarbeitet, kann es systembedingt einige Sekunden dauern ohne, dass
man was daran ändern könnte.
Um den Defaultzustand herzustellen, sollte vor dem Starten des srcpd
am 6021 die Adressfolge 9193 eingegeben werden. Damit werden alle
Loks auf einen definierten Zustand gesetzt. Dieserwird vom srcpd
vorausgesetzt. Quelle: Undocumented Features of the Maerklin 6021
Intellibox
~~~~~~~~~~
xmltag: intellibox
i2c dev
~~~~~~~
xmltag: i2c-dev
Das I2C Modul ist eine Eigenentwicklung. Für Details der Hardware
bitte http://www.matronix.de/ konsultieren.
Zimo MX1
~~~~~~~~
xmltag: zimo
Derzeit wird nur das kurze Lokformat und die Stromversorgung
geschaltet. Der Code für die GA ist ungetestet.
HSI S88
~~~~~~~
Das Highperformance S88 Interface von Littfinski.
xmltag: hsi-88
refresh: Wartezeit zwischen zwei Abfragezyklen in Mikrosekunden.
Voreinstellung: 10 000 (= 10 Millisekunden)
number_fb_left: Anzahl der S88 Module am "linken" Kanel
number_fb_center:Anzahl der S88 Module am "mittleren" Kanel
number_fb_right: Anzahl der S88 Module am "rechten" Kanel
DDL
~~~
Erzeugen der Signale direkt am tty des PC, einzig ein Booster
wird benötigt. Achtung: Derzeit ist nur eine Instanz dieses
Bustyps möglich, da verschiedene Datenstrukturen noch global
benutzt werden. Wenn mehrere Busse diesen Typs eingerichtet
werden, wird vermutlich keiner so funktionieren, wie er soll.
Kernroutinen zur Signalgenerierung aus erddcd von Torsten Vogt,
Packet DDL (erddcd-1.5.0wip5)
xmltag: ddl
spezifische Parameter:
enable-maerklin
Yes/No
enable-nmradcc
Yes/No
improve-nmradcc-timing
Yes/No recommended: Yes
nmradcc-translation-routine
1, 2 or 3 recommended: 3
enable-usleep-patch
Yes/No recommended: No
usleep-usecs
Voreingestellt: 500, usecs to sleep, recommended 100 - 5000
enable-shortcut-checking
Yes/No recommended: Yes, if booster supports
inverse-dsr-handling
Yes/No recommended: Yes, if booster supports
shortcut-failure-delay
Voreingestellt: 500, wait usecs before handle failure
enable-ringindicator-checking
Yes/No recommended: No
Installieren und Benutzen
Installation der rpm Packete erfolgt auf dem üblichen Weg mit
"rpm -i <dateiname>.rpm". Dabei werden die erforderlichen
Links zum Starten des Daemons in /etc/init.d angelegt (aber
nicht automatisch gestartet). Manuell kann der Daemon dann mit den
Standardverfahren gestartet und gestoppt werden.
Das Deinstallieren stoppt einen laufenden Daemon zuerst, bevor
die Dateien entfernt werden.
Hardware sollte im eigenen Interesse nur im komplett ausgeschaltetem
Zustand angeschlossen und entfernt werden.
Mit srcpd -h erhält man eine Übersicht über die möglichen
Parameter, das sind aber nicht allzuviele. Alle Einstellungen
werden ausschließlich über die beschriebene Konfigurationsdatei
vorgenommen.
Dann mit Administrationsberechtigung das Programm mit
"/etc/init.d/srcpd start" starten.
Je nach eingestellter <verbosity> werden mehr oder weniger viele
Daten an den Syslog-Daemon gesendet, der die Meldungen nach
/var/log/messages schreibt. Wird die <verbosity> auf null gesetzt,
werden nur gravierende Meldungen geschrieben, höherer Werte können,
je nach Treiber, zu einem bitgenauem Tätigkeitsprotokoll führen.
Verwandte Programme
Siehe http://www.der-moba.de/index.php/Digitalprojekt
Rechtliches
Für die vorliegende Software wird keine Haftung übernommen. Aus
der Tatsache, das es bei den Autoren zu deren Zufriedenheit
funktioniert kann niemals geschlußfolgert werden, das es auch
bei anderen funktioniert und keinen Schaden anrichtet. Wer
dieses Programm benutzt, tut es auf eigene Gefahr. Es gab schon
irreparable Hardwareschäden! Wenn jemanden dies widerfährt, hat er
unser Mitgefühl. Mehr aber auch nicht. Wir erstellen die Software
nicht gewerblich.
Sonst noch was?
Jede Änderung und jeder Erfahrungsbericht ist a) willkommen und
sollte b) irgendwie auch bei den Autoren ankommen. Hilfreich sind
dann Angaben zur Version (steht im Welcome des laufenden Servers).
Weitere Informationen
http://srcpd.sourceforge.net/
http://www.der-moba.de/index.php/Digitalprojekt
SVN checkout
------------
If you start with a fresh svn checkout, please first apply
autoreconf -i
to get a proper configure script. For more instructions about compiling
and installing this application please refer to the INSTALL file.
|