blabla
This commit is contained in:
parent
a2aa3cdb8b
commit
00cade71fd
78
README.md
78
README.md
@ -5,12 +5,40 @@ title: KsKit für Eisenbahn.exe
|
|||||||
|
|
||||||
# KsKit für Eisenbahn.exe
|
# KsKit für Eisenbahn.exe
|
||||||
|
|
||||||
KsKit ist eine Sammlung von Lua-Funktionalität, welche ich auf meinen Anlagen für eine vorbildgerechte Signalisierung einsetze.
|
KsKit enthält Steuer-Code für ESTW-basierende Strecken- und Bahnhofsanlagen.
|
||||||
Die hier geschilderten Anwendungsfälle und Programmschnipsel stellen kein Komplettpacket dar, sondern sind eher wie ein Kuchen anzusehen, aus denen man sich ein paar Rosinen herauspicken darf.
|
Epochenmäßig liegt der Fokus auf Bahnanlagen der Epoche VI.
|
||||||
Mehrere Anwendungsfälle benötigen überhaupt keinen Lua-Code und sind auch ohne KsKit anwendbar.
|
Die Vorbildsituation ist dem Bahnhof Bad Schandau entnommen.
|
||||||
|
|
||||||
Aus dem Basisscript dürfen Teile entnommen werden und anderswo verwendet werden, dabei ist die Herkunft und Versionsnummer zu nennen, z.B. als Quellcode-Kommentar.
|
Der Hauptanwendungsfall sind Anlagen mit realistischen Entfernungen und vorbildnaher Streckenausstattung.
|
||||||
Die Versionsnummer befindet sich am Anfang des Basisscripts und kann über die Variable `KsKitVer` abgefragt werden.
|
Daher enthält die Dokumentation auch Richtlinien zur Platzierung der Streckenaustattung.
|
||||||
|
|
||||||
|
## Übersicht über ähnliche Werke
|
||||||
|
|
||||||
|
["Automatic Train Control"](https://github.com/FrankBuchholz/EEP-LUA-Automatic-Train-Control) von Frank Buchholz und RudyB ist eine jüngere Lösung.
|
||||||
|
Hier merkt sich Lua, welche Weichen und Signale durch den Fahrweg eines Zuges blockiert sind.
|
||||||
|
Über eine Browseranwendung lassen die Definitionen für Lua direkt aus der Anlagendatei generieren.
|
||||||
|
Die Ausstattung der Strecken mit Fahrstraßensignalen und Kontakten ist nur minimal notwendig.
|
||||||
|
Die Dokumentation erfolgt über eine mitgelieferte PDF.
|
||||||
|
ATC eignet sich am besten für EEP-Bahner, welche nicht die Zeit oder Energie haben, sich in Lua einzuarbeiten.
|
||||||
|
|
||||||
|
Das Rundum-Sorglos-Packet von Parry36 ist die alteingewachsene Lösung.
|
||||||
|
Über die EEP-Eigenen Fahrstraßen wird hier die Zugsicherung realisiert.
|
||||||
|
Die Signale und Fahrstraßen werden über Tabellen ins Lua eingetragen.
|
||||||
|
Signalbeeinflussung findet über Kontakte statt.
|
||||||
|
Auf Youtube gibt es eine Anzahl von Video-Tutorials, wo man ihm beim Anwenden von RUS zusehen und nachmachen kann.
|
||||||
|
Allerdings sind dafür schon einige Lua-Kenntnisse notwendig.
|
||||||
|
Teile des RUS, z.B. die P36_Toolbox, sind auch alleinstehend nutzbar.
|
||||||
|
Das RUS ist gut geeignet für Lua-Bastler, welche Wert auf einen komplexen Bahnbetrieb legen.
|
||||||
|
|
||||||
|
KsKit basiert wie RUS auf den EEP-Fahrstrassen, ist aber auf die Ansteuerung von den Ks-Signalen von GK3 konzentriert.
|
||||||
|
Anders als bei den anderen beiden Frameworks werden Signale und Fahrwege nicht über eine Tabelle, sondern über Funktionsaufrufe bei der Lua-Initialisierung definiert.
|
||||||
|
Dabei sind sehr viele Informationen anzugeben, welche dann aber auch Signalschaltungen ermöglichen, welche bei RUS und ATC nicht möglich sind.
|
||||||
|
KsKit empfiehlt sich für EEP-Bahner, welche auf ihrer Anlage eine vorbildgerechte Vor- und Mehrabschnittsignalisierung realisieren wollen.
|
||||||
|
Fortgeschrittene Erfahrungen mit Lua sind dafür unerlässlich.
|
||||||
|
Ebenfalls ist die Lektüre von "Sicherung des Schienenverkehrs", Ulrich Maschek, Springer Vieweg zu empfehlen.
|
||||||
|
|
||||||
|
Diese Dokumentation behandelt ausschließlich KsKit.
|
||||||
|
Die Sektionen für die vorbildgerechte Platzierung der Streckenaustattung und Kontakte sind unabhängig von der verwendeten Lua-Lösung lesenswert.
|
||||||
|
|
||||||
## Einrichtung
|
## Einrichtung
|
||||||
|
|
||||||
@ -20,10 +48,8 @@ Das KsKit-Verzeichnis wird im EEP-Stammverzeichnis, dort im LUA/ Unterverzeichni
|
|||||||
|
|
||||||
Die Einbindung vom Anlagenscript aus erfolgt mittels `require("kskit")`.
|
Die Einbindung vom Anlagenscript aus erfolgt mittels `require("kskit")`.
|
||||||
|
|
||||||
**Wichtig**: Wenn KsKit verwendet wird, darf keine EEPMain definiert sein.
|
Findet EEP die Dateien von Lua nicht, wird im Ereignisfenster eine Liste von Pfaden ausgegeben, an denen die Dateien gesucht wurden.
|
||||||
|
Diese Pfade sind in diesem Fall mit dem Installationspfad abzugleichen.
|
||||||
Findet EEP die Dateien von Lua nicht, wird im Ereignisfenster eine Liste von Orten ausgegeben, an denen die Dateien gesucht wurden.
|
|
||||||
Die Orte sind in diesem Fall mit dem Installationsort abzugleichen.
|
|
||||||
|
|
||||||
## Platzierung von Hauptsignalen
|
## Platzierung von Hauptsignalen
|
||||||
|
|
||||||
@ -120,3 +146,37 @@ Für eine Vorbildgerechte Ansteuerung muss hier auf Lua zurückgegriffen werden.
|
|||||||
#### Blocksignale
|
#### Blocksignale
|
||||||
|
|
||||||
### Mehrabschnittssignale
|
### Mehrabschnittssignale
|
||||||
|
|
||||||
|
|
||||||
|
## EEPMain und Callbacks
|
||||||
|
|
||||||
|
KsKit übernimmt die Entgegennahme sämtlicher Callbacks und erlaubt es, mehrere Funktionen durch einen EEP-Callback auszuführen.
|
||||||
|
|
||||||
|
Das bedeutet allerdings auch, das im Anlagenscript keine EEPMain, EEPOnSignal und EEPOnSwitch zu definieren sind.
|
||||||
|
Als Ersatz dafür bietet KsKit eine eigene Schnittstelle an:
|
||||||
|
|
||||||
|
```
|
||||||
|
Main(function()
|
||||||
|
print("Main")
|
||||||
|
-- return-Wert von hier wird ignoriert
|
||||||
|
end)
|
||||||
|
|
||||||
|
OnSignal(1, function(Stellung)
|
||||||
|
print("Signal 1 zeigt jetzt Stellung ", Stellung)
|
||||||
|
end)
|
||||||
|
|
||||||
|
OnSwitch(2, function(Stellung)
|
||||||
|
if Stellung == 1 then
|
||||||
|
print("Weiche 2 ist auf Durchfahrt gestellt")
|
||||||
|
elseif Stellung == 2 then
|
||||||
|
print("Weiche 2 ist auf Abzweig gestellt")
|
||||||
|
elseif Stellung == 3 then
|
||||||
|
print("Weiche 2 ist auf Coabzweig gestellt")
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
```
|
||||||
|
|
||||||
|
Auf diese Art definierte Callbacks dürfen beliebig wiederholt werden.
|
||||||
|
Ruft EEP den Callback auf, werden alle dazu eingetragenen Funktionen aufgerufen.
|
||||||
|
|
||||||
|
Die Anmeldung bei EEP durch die `EEPRegister...` Funktionen wird von KsKit automatisch vorgenommen.
|
||||||
|
Loading…
Reference in New Issue
Block a user