Control Extension

Hier findest du Informationen zur Control Extension

Was ist die Control Extension?

Die Control Extension erweitert Deine EEP-Anlage um einen strukturierten Laufzeitkern für Lua-Module. Du kannst Deine Anlagenlogik in wiederverwendbare Module aufteilen und bei Bedarf Daten und Steuerfunktionen über zusätzliche Werkzeuge nach außen bereitstellen.

Das Paket besteht aus vier Bausteinen:

  1. Lua Hub in ce.hub — der Laufzeitkern. Er lädt und führt alle registrierten Module aus.
  2. Data Bridge (optional) in ce.databridge — überträgt Daten aus EEP an externe Werkzeuge.
  3. Control Extension Server (optional) — bereitet die Daten auf und stellt sie für Clients bereit.
  4. Control Extension Web App (optional) — zeigt Daten im Browser an und erlaubt die Bedienung.

Für die Anlagensteuerung genügt der Lua Hub. Server und Web App sind optional.

Schnellstart

Damit ein EEP Anlage den Hub nutzt, wird der Einstiegspunkt ce.ControlExtension in den Lua Code der Anlage aufgenommen.

Kurzes Beispiel

Nutze den Lua-Editor von EEP und klicke dann auf Skript neu laden.
⚠️ Wenn du schon eigenen Lua-Code hast, dann füge nur die beiden Zeilen mit ControlExtension hinzu.

local ControlExtension = require("ce.ControlExtension")

function EEPMain()
   ControlExtension.runTasks(1)
   return 1
end

Langes Beispiel

Die zusätzliche Konfiguration ist optional. Wenn du sie nicht verwendest, bleiben die Standardwerte aktiv.

local ControlExtension = require("ce.ControlExtension")

ControlExtension
    .setDebug(true)
    .activateServer()
    .setPauseEepDuringInitialization(true)
    .addModules(
        require("ce.mods.road.CeRoadModule"),
        require("ce.hub.CeHubModule").setOptions({
            collectedCeTypes = {
                require("ce.hub.CeHubModule").CeTypes.Train,
            },
        })
    )

function EEPMain()
    ControlExtension.runTasks(1)
    return 1
end

Anlagenpfad fuer Achsnamen

Wenn die Control Extension Achsen von RollingStocks auswerten soll, muss der Pfad zur aktuellen .anl3-Datei gesetzt werden. Darueber findet der Hub die XML-/3dm-Modellpfade der RollingStocks und kann anschließend die passenden .ini- und .3dm-Ressourcen fuer Achsnamen parsen.

local ControlExtension = require("ce.ControlExtension").setOptions({
    anl3path = "C:\\Spiele\\Trend\\EEP18\\Resourcen\\Anlagen\\meine-anlage.anl3"
})

Control Server starten

Ist dein EEP in C:\Trend\EEP18 installiert, dann findest du den Control Server in C:\Trend\EEP18\LUA\ce\control-extension-server.exe.

Eine vollständige Beschreibung der API findest Du in hub/README.md.

Dokumentation

Für Anwender

Für Entwickler

Weitere Pakete