Datenmodell der aktiven Publisher
Diese Datei dokumentiert das aktuell erzeugte Datenmodell der aktiven Publisher- und DtoFactory-Pfade in ce.hub.data.
Grundlagen der Beschreibung:
- Primärquelle sind die heutigen
*Publisher.lua,*DtoFactory.luaund die dazugehörigen Domain-Modelle wieTrain,RollingStockoderStructure. - Discovery und Update werden heute durch
CeHubModuleorchestriert; die*StatePublisher.lua-Dateien sind nur noch dünne Sync-Adapter. - Für Felder, die direkt aus EEP-Funktionen stammen, wurden Typ, Wertebereich und Beschreibung soweit möglich aus
Lua_manual.pdfabgeleitet. - Wo das Datenmodell nicht direkt aus EEP stammt, sondern aus Bibliothekslogik, ist das in der Beschreibung vermerkt.
Wichtig:
- Updater lesen EEP-Zustand und beachten Fetch-Optionen.
- Publisher entscheiden anhand der Sync-Optionen, welche Änderungen tatsächlich auf den Bus gesendet werden.
- Die Tabellen unten beschreiben das effektive Event- und DTO-Modell der aktiven Architektur.
Überblick
| Datenbereich | Aktive Klassen | Effektive Ausgabe |
|---|---|---|
modules |
ModulesUpdater, ModulesPublisher, ModulesDtoFactory |
DataAdded/DataChanged für ce.hub.Module |
runtime |
RuntimeUpdater, RuntimePublisher, RuntimeDtoFactory |
ListChanged für ce.hub.Runtime |
framedata |
FrameDataUpdater, FrameDataPublisher, FrameDataDtoFactory |
ListChanged für ce.hub.FrameData |
version |
VersionUpdater, VersionPublisher, VersionDtoFactory |
ListChanged für ce.hub.EepVersion |
scenario |
ScenarioUpdater, ScenarioPublisher, ScenarioDtoFactory |
ListChanged für ce.hub.Scenario |
routes |
RouteDiscovery, RoutePublisher, RouteDtoFactory |
ListChanged für ce.hub.Route |
signals |
SignalDiscovery, SignalUpdater, SignalPublisher, SignalDtoFactory |
ListChanged für ce.hub.Signal und ce.hub.WaitingOnSignal |
switches |
SwitchDiscovery, SwitchUpdater, SwitchPublisher, SwitchDtoFactory |
ListChanged für ce.hub.Switch |
time |
TimeUpdater, TimePublisher, TimeDtoFactory |
ListChanged für ce.hub.Time |
weather |
WeatherUpdater, WeatherPublisher, WeatherDtoFactory |
ListChanged für ce.hub.Weather |
slots |
DataSlotsUpdater, DataSlotsPublisher, DataSlotsDtoFactory |
ListChanged für ce.hub.SaveSlot und ce.hub.FreeSlot |
structures |
StructureDiscovery, StructureUpdater, StructurePublisher, StructureDtoFactory |
DataAdded/DataChanged/DataRemoved für ce.hub.Structure |
tracks |
TrainDiscovery, TrackRegistry, TrackPublisher, TrackDtoFactory |
ListChanged/DataChanged für die fünf Track-CeTypes |
trains |
TrainDiscovery, TrainUpdater, TrainPublisher, TrainDtoFactory |
DataChanged/DataRemoved für ce.hub.Train |
rollingstock |
TrainDiscovery, RollingStockUpdater, RollingStockPublisher, RollingStockDtoFactory |
DataChanged/DataRemoved für ce.hub.RollingStock |
ce.mods.road |
weiterhin mod-spezifische Publisher | Events für Straßenmodul-Daten |
ce.mods.transit |
weiterhin mod-spezifische Publisher | Events für ÖPNV-Daten |
Transportform
| Thema | CeType | Schlüssel |
|---|---|---|
| Module | ce.hub.Module |
id |
| Laufzeit | ce.hub.Runtime |
id |
| Frame-Daten | ce.hub.FrameData |
id |
| Version | ce.hub.EepVersion |
id |
| Signale | ce.hub.Signal |
id |
| Wartende Fahrzeuge an Signalen | ce.hub.WaitingOnSignal |
id |
| Weichen | ce.hub.Switch |
id |
| Szenario | ce.hub.Scenario |
id |
| Routen | ce.hub.Route |
id |
| Zeit | ce.hub.Time |
id |
| Wetter | ce.hub.Weather |
id |
| Belegte Datenslots | ce.hub.SaveSlot |
id |
| Freie Datenslots | ce.hub.FreeSlot |
id |
| Strukturen | ce.hub.Structure |
id |
| Züge | ce.hub.Train |
id |
| RollingStock | ce.hub.RollingStock |
id |
| Sonstige Gleise | ce.hub.AuxiliaryTrack |
id |
| Steuerstrecken | ce.hub.ControlTrack |
id |
| Straßen | ce.hub.RoadTrack |
id |
| Bahngleise | ce.hub.RailTrack |
id |
| Straßenbahngleise | ce.hub.TramTrack |
id |
| Ampelmodell-Definitionen | ce.mods.road.TrafficLightModel |
id |
| Kreuzungen | ce.mods.road.Intersection |
id |
| Kreuzungs-Fahrspuren | ce.mods.road.IntersectionLane |
id |
| Kreuzungsphasen | ce.mods.road.IntersectionPhase |
id |
| Kreuzungs-Signalgeber | ce.mods.road.IntersectionTrafficLight |
id |
| Kreuzungs-Moduleinstellungen | ce.mods.road.ModuleSetting |
name |
| ÖPNV-Linien | ce.mods.transit.Line |
id |
| ÖPNV-Stationen | ce.mods.transit.Station |
id |
| ÖPNV-Moduleinstellungen | ce.mods.transit.ModuleSetting |
name |
| Änderungsereignisse für Liniennamen | ce.mods.transit.LineName |
id |
Datenschemata
ce.hub.Module
Elementtyp: Modulstatus
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string | number |
pro Modul eindeutig | Modul-ID aus dem registrierten Lua-Modul |
name |
string |
freier Text | Modulname aus der Registrierung |
enabled |
boolean |
true, false |
Aktivierungsstatus des Moduls |
Hinweis:
syncState()liefert keine Nutzdaten zurück; Moduländerungen werden überDataChangeBusveröffentlicht.
ce.hub.EepVersion
Elementtyp: Versionsinfo
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
fest versionInfo |
technischer Schlüssel |
name |
string |
fest versionInfo |
Anzeigename |
eepVersion |
string |
z. B. 16.3 |
EEP-Version aus EEPVer; im Updater bewusst als String formatiert |
luaVersion |
string |
Lua-Versionsstring | _VERSION des eingebetteten Lua |
singleVersion |
string |
Versionsstring | Programmversion des Web-/Single-Prozesses |
ce.hub.Scenario
Elementtyp: Szenarioinfo
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
fest scenario |
technischer Schlüssel |
name |
string |
fest scenario |
Anzeigename |
scenarioName |
string | nil |
freier Text | Name der geladenen Anlage aus EEPGetAnlName() |
scenarioPath |
string | nil |
Pfad | Dateipfad der geladenen Anlage aus EEPGetAnlPath() |
savedWithEep |
number | nil |
Versionsnummer | Versionsnummer der geladenen Anlage aus EEPGetAnlVer() |
scenarioLanguage |
string | nil |
Sprachkennung | Sprache der geladenen Anlage aus EEPGetAnlLng() |
eepLanguage |
string | nil |
Sprachkennung | Sprache der laufenden EEP-Instanz aus EEPLng |
activeTrain |
string | nil |
Zugname | aktiver Zug aus EEPGetTrainActive() |
activeRollingStock |
string | nil |
Fahrzeugname | aktives Rollmaterial aus EEPRollingstockGetActive() |
timeLapse |
number | nil |
Zeitraffer | aktueller Zeitrafferfaktor aus EEPGetTimeLapse() |
staticCameras |
string[] |
Kameranamen | statische Kameras aus .anl3 <Kammerasammlung> |
dynamicCameras |
string[] |
Kameranamen | dynamische Kameras aus .anl3 <Kammerasammlung> |
ce.hub.Route
Elementtyp: EEP-Route
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
integer |
Routen-ID aus der Anlage | technischer Schlüssel der gespeicherten Route |
name |
string |
Routenname aus der Anlage | Anzeigename aus den .anl3-Options-Attributen |
Abgeleitet aus:
.anl3<Options RouteItems="..." RouteId_n="..." RouteName_n="...">
ce.hub.Runtime
Elementtyp: Laufzeitmetrik
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
Metrikname | technischer Schlüssel der Laufzeitgruppe |
count |
integer |
>= 0 |
Anzahl gemessener Aufrufe |
time |
number |
Sekunden | akkumulierte Laufzeit der Gruppe |
lastTime |
number |
Sekunden | zuletzt gemessene Laufzeit |
framesPerSecond |
number | nil |
fps | aktuelle Bildrate aus EEPGetFramesPerSecond() |
currentFrame |
number | nil |
Framezähler | aktueller Framezähler aus EEPGetCurrentFrame() |
currentRenderFrame |
number | nil |
Framezähler | gesamter Framezähler aus EEPGetCurrentRenderFrame() |
ce.hub.Signal
Elementtyp: Signal
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
integer |
> 0 |
Signal-ID aus EEP |
position |
integer |
> 0; 0 wäre “existiert nicht” |
Signalstellung aus EEPGetSignal; laut Lua-Handbuch liefert 0 ein nicht existierendes Signal |
tag |
string |
freier Text bis 1024 Zeichen | Tag-Text des Signals; aktuell aus EEPSignalGetTagText, leere Zeichenkette wenn kein Tag gesetzt ist |
waitingVehiclesCount |
integer |
>= 0 |
Anzahl der am Signal wartenden Fahrzeugverbände aus EEPGetSignalTrainsCount; standardmäßig nur bei Interesse mit echtem Wert veröffentlicht, sonst Platzhalter 0 |
stopDistance |
number | nil |
Meter | Halteabstand des Signals aus EEPGetSignalStopDistance() |
itemName |
string | nil |
freier Text | Name des Signalartikels aus EEPGetSignalItemName(signalId, false) |
itemNameWithModelPath |
string | nil |
freier Text | Name inklusive Modellpfad aus EEPGetSignalItemName(signalId, true) |
signalFunctions |
string[] | nil |
Liste von Zustandswerten | alle auslesbaren Signalfunktionen; aktuell als Stringliste serialisiert |
activeFunction |
string | nil |
Eintrag aus signalFunctions |
zur aktuellen position passende Signalfunktion |
Abgeleitet aus:
EEPGetSignal(signalId)EEPGetSignalTrainsCount(signalId)EEPGetSignalStopDistance(signalId)EEPGetSignalItemName(signalId, includeModelPath)EEPGetSignalFunctions(signalId)EEPGetSignalFunction(signalId, selectionIndex)
ce.hub.WaitingOnSignal
Elementtyp: Wartender Fahrzeugverband an einem Signal
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
<signalId>-<position> |
zusammengesetzter technischer Schlüssel |
signalId |
integer |
> 0 |
referenziertes Signal |
waitingPosition |
integer |
>= 1 |
Position innerhalb der Warteschlange am Signal; standardmäßig nur bei Interesse mit echtem Wert veröffentlicht, sonst Platzhalter 0 |
vehicleName |
string |
Fahrzeugverbandsname oder "" |
Name aus EEPGetSignalTrainName; bei fehlendem Namen leerer String; standardmäßig nur bei Interesse mit echtem Wert veröffentlicht, sonst Platzhalter "" |
waitingCount |
integer |
>= 0 |
Gesamtanzahl wartender Fahrzeugverbände an diesem Signal; standardmäßig nur bei Interesse mit echtem Wert veröffentlicht, sonst Platzhalter 0 |
Abgeleitet aus:
EEPGetSignalTrainName(signalId, position)
ce.hub.Switch
Elementtyp: Weiche
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
integer |
> 0 |
Weichen-ID |
position |
integer |
> 0; 0 wäre “existiert nicht” |
Weichenstellung aus EEPGetSwitch; laut Lua-Handbuch liefert 0 eine nicht existierende Weiche |
tag |
string |
freier Text bis 1024 Zeichen | Tag-Text der Weiche; aktuell aus EEPSwitchGetTagText, leere Zeichenkette wenn kein Tag gesetzt ist |
Abgeleitet aus:
EEPGetSwitch(switchId)
ce.hub.Time
Elementtyp: EEP-Zeit
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
fest times |
technischer Schlüssel |
name |
string |
fest times |
Anzeigename |
timeComplete |
integer |
0 bis 86399 |
Sekunden seit Mitternacht aus EEPTime |
timeH |
integer |
0 bis 23 |
Stundenanteil aus EEPTimeH |
timeM |
integer |
0 bis 59 |
Minutenanteil aus EEPTimeM |
timeS |
integer |
0 bis 59 |
Sekundenanteil aus EEPTimeS |
Abgeleitet aus:
EEPTimeEEPTimeHEEPTimeMEEPTimeS
ce.hub.Weather
Elementtyp: globaler Wetterzustand
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
fest weather |
technischer Schlüssel |
name |
string |
fest weather |
Anzeigename |
season |
number | nil |
EEP-spezifisch | Jahreszeit aus EEPGetSeason() |
cloudsIntensity |
number | nil |
Prozent / EEP-Wert | globaler Wolkenanteil aus EEPGetCloudsIntensity() |
cloudsMode |
number | nil |
EEP-spezifisch | Wolkenmodus aus EEPGetCloudsMode() |
windIntensity |
number | nil |
Prozent / EEP-Wert | globale Windstärke aus EEPGetWindIntensity() |
rainIntensity |
number | nil |
Prozent / EEP-Wert | globale Regenintensität aus EEPGetRainIntensity() |
snowIntensity |
number | nil |
Prozent / EEP-Wert | globale Schneefallintensität aus EEPGetSnowIntensity() |
hailIntensity |
number | nil |
Prozent / EEP-Wert | globale Hagelintensität aus EEPGetHailIntensity() |
fogIntensity |
number | nil |
Prozent / EEP-Wert | globale Nebeldichte aus EEPGetFogIntensity() |
ce.hub.SaveSlot
Elementtyp: belegter Datenslot
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
integer |
1 bis 1000 |
Slotnummer |
name |
string |
freier Text, fallback "?" |
Name des Slots aus AkSlotNamesParser oder StorageUtility |
data |
string | number | boolean | nil |
EEP-Datenslot-Inhalt | Inhalt aus EEPLoadData(id) |
Abgeleitet aus:
EEPLoadData(slot)
ce.hub.FreeSlot
Elementtyp: freier Datenslot
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
integer |
1 bis 1000 |
Slotnummer |
name |
string | nil |
immer nicht gesetzt | bei freien Slots nicht belegt |
data |
string | nil |
immer nicht gesetzt | bei freien Slots nicht belegt |
ce.hub.Structure
Elementtyp: Struktur / Immobilie / Landschaftselement
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
#<nummer> |
Lua-Name der Struktur |
name |
string |
#<nummer> |
aktuell identisch zu id |
pos_x |
number |
Koordinate in Anlagenkoordinaten | X-Position aus EEPStructureGetPosition, auf zwei Nachkommastellen gerundet |
pos_y |
number |
Koordinate in Anlagenkoordinaten | Y-Position aus EEPStructureGetPosition, auf zwei Nachkommastellen gerundet |
pos_z |
number |
Koordinate in Anlagenkoordinaten | Z-Position aus EEPStructureGetPosition, auf zwei Nachkommastellen gerundet |
rot_x |
number |
Winkel in Grad | Rotation um X aus EEPStructureGetRotation, auf zwei Nachkommastellen gerundet |
rot_y |
number |
Winkel in Grad | Rotation um Y aus EEPStructureGetRotation, auf zwei Nachkommastellen gerundet |
rot_z |
number |
Winkel in Grad | Rotation um Z aus EEPStructureGetRotation, auf zwei Nachkommastellen gerundet |
modelType |
integer |
EEP-Modelltyp, z. B. 16, 17, 18, 19, 22, 23, 24, 25, 38 |
Modelltyp aus EEPStructureGetModelType |
modelTypeText |
string |
feste Textmenge | lesbarer Modelltyptext aus lokalem Mapping |
tag |
string |
freier Text bis 1024 Zeichen | Tag-Text aus EEPStructureGetTagText |
light |
boolean |
true, false |
Lichtzustand aus EEPStructureGetLight |
smoke |
boolean |
true, false |
Rauchzustand aus EEPStructureGetSmoke |
fire |
boolean |
true, false |
Feuerzustand aus EEPStructureGetFire |
Hinweis:
- Discovery und Initial-Update erzeugen heute ein gemeinsames DTO unter
ce.hub.Structure. - Die Discovery nimmt nur Strukturen auf, bei denen mindestens eines von
light,smokeoderfireverfügbar ist.
Vollständige Liste modelType für Strukturen laut Lua_manual.pdf und EEPStructureGetModelType:
| Wert | Bedeutung |
|---|---|
16 |
"Gleisobjekte" Bahngleise |
17 |
"Gleisobjekte" Straßenbahn |
18 |
"Gleisobjekte" Straßen |
19 |
"Gleisobjekte" Wasserwege/Diverse |
22 |
Immobilien |
23 |
Landschaftselemente Fauna |
24 |
Landschaftselemente Flora |
25 |
Landschaftselemente Terra |
38 |
Landschaftselemente, Bodenmodelle zur 3D-Texturierung |
ce.hub.Train
Elementtyp: Zugdaten
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
Zugname, typ. #... |
Name des Fahrzeugverbands |
name |
string |
Zugname | Anzeigename; aktuell identisch zu id |
route |
string |
Routenname, fallback Alle |
Route aus EEPGetTrainRoute |
rollingStockCount |
integer |
>= 0 |
Anzahl Rollmaterialien aus EEPGetRollingstockItemsCount |
length |
number |
Meter, >= 0 |
Zuglänge aus EEPGetTrainLength |
line |
string | nil |
freier Text | aus dem Tag-Modell der Bibliothek |
destination |
string | nil |
freier Text | aus dem Tag-Modell der Bibliothek |
direction |
string | nil |
freier Text | aus dem Tag-Modell der Bibliothek |
trackType |
string | nil |
z. B. rail, road, tram, auxiliary |
Bibliotheksklassifikation, nicht direkt EEP |
movesForward |
boolean |
true, false |
aus der Zuggeschwindigkeit abgeleitete Fahrtrichtung |
speed |
number |
km/h | aktuelle Geschwindigkeit aus EEPGetTrainSpeed(trainName) |
targetSpeed |
number |
km/h | Zielgeschwindigkeit aus EEPGetTrainSpeed(trainName, true) |
couplingFront |
integer |
Statuscode | Zustand der vorderen Zugkupplung |
couplingRear |
integer |
Statuscode | Zustand der hinteren Zugkupplung |
active |
boolean |
true, false |
ob der Zug aktuell in EEP ausgewählt ist |
inTrainyard |
boolean |
true, false |
ob sich der Zug in einem virtuellen Depot befindet |
trainyardId |
integer | string |
Depot-ID oder Platzhalter | ID des virtuellen Depots aus EEPIsTrainInTrainyard() |
Abgeleitet aus:
EEPGetTrainRoute(trainName)EEPGetRollingstockItemsCount(trainName)EEPGetTrainLength(trainName)EEPGetTrainSpeed(trainName)EEPGetTrainCouplingFront(trainName)EEPGetTrainCouplingRear(trainName)EEPGetTrainActive()EEPIsTrainInTrainyard(trainName)
Vollständige Liste trackType im aktuellen Discovery-Pfad:
| Wert | Bedeutung |
|---|---|
rail |
Bahngleise |
tram |
Straßenbahn-Gleise |
road |
Straßen |
auxiliary |
sonstige Splines / Wasserwege |
control |
Steuerstrecken / nicht direkt einem der vier Track-Systeme zugeordnet |
Hinweis:
- Das aktive DTO bündelt heute statische und dynamische Zugfelder in
ce.hub.Train. - Im
selected-Modus können dynamische Felder für nicht selektierte Objekte mit Platzhalterwerten gesendet werden.
ce.hub.RollingStock
Elementtyp: RollingStock-Daten
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
Fahrzeugname | technischer Schlüssel; aktuell gleich name |
name |
string |
Fahrzeugname | Name des Rollmaterials |
trainName |
string |
Zugname oder "" |
zugeordneter Fahrzeugverband |
positionInTrain |
integer |
0-basiert, -1 falls unbekannt |
Position im Zugverband |
couplingFront |
integer |
Statuscode der vorderen Kupplung | aus EEPRollingstockGetCouplingFront |
couplingRear |
integer |
Statuscode der hinteren Kupplung | aus EEPRollingstockGetCouplingRear |
length |
number |
Meter | Fahrzeuglänge aus EEPRollingstockGetLength |
propelled |
boolean | number |
im Projekt als “hat Antrieb” genutzt | abgeleitet aus EEPRollingstockGetMotor; das Lua-Handbuch beschreibt hier die Motor-/Ganginformation |
modelType |
integer |
1 bis 15 |
Modelltyp aus EEPRollingstockGetModelType |
modelTypeText |
string |
feste Textmenge | lesbarer Modelltyptext aus lokalem Mapping |
tag |
string |
freier Text bis 1024 Zeichen | Tag-Text aus EEPRollingstockGetTagText |
licencePlate |
string | nil |
freier Text | Kennzeichen aus dem bibliotheksinternen Tag-Modell; Tag-Schlüssel p |
vehicleNumber |
string | nil |
freier Text | Fahrzeugnummer aus dem bibliotheksinternen Tag-Modell; Tag-Schlüssel w |
nr |
string | nil |
freier Text | Kompatibilitätsalias für vehicleNumber |
trackType |
string | nil |
z. B. rail, road, tram, auxiliary |
Bibliotheksklassifikation, nicht direkt EEP |
hookStatus |
number |
Statuscode | Hakenzustand aus EEPRollingstockGetHook() |
hookGlueMode |
number |
Statuscode | Haken-/Ladezustand aus EEPRollingstockGetHookGlue() |
surfaceTexts |
table<string,string> |
Surface-ID als String -> Text | beschreibbare Textflächen aus EEPRollingstockGetTextureText() |
trackId |
integer |
Track-ID | aus EEPRollingstockGetTrack |
trackDistance |
number |
Meter vom Gleisanfang | aus EEPRollingstockGetTrack |
trackDirection |
integer |
1 oder 0 |
laut Lua-Handbuch: 1 = in Fahrtrichtung, 0 = entgegen |
trackSystem |
integer |
1 bis 4 |
laut Lua-Handbuch: 1 = Bahngleise, 2 = Straßen, 3 = Tram, 4 = sonstige Splines/Wasserwege |
posX |
number |
Anlagenkoordinate | X-Position aus EEPRollingstockGetPosition |
posY |
number |
Anlagenkoordinate | Y-Position aus EEPRollingstockGetPosition |
posZ |
number |
Anlagenkoordinate | Z-Position aus EEPRollingstockGetPosition |
mileage |
number |
Zahl | zurückgelegte Strecke in Metern seit Einsetzen des Modells |
orientationForward |
boolean |
true, false |
relative Ausrichtung im Zugverband aus EEPRollingstockGetOrientation() |
smoke |
number |
Statuscode | Rauchzustand des Rollmaterials aus EEPRollingstockGetSmoke() |
active |
boolean |
true, false |
ob das Rollmaterial aktuell in EEP ausgewählt ist |
rotX |
number |
Winkel in Grad | Rotation um die X-Achse aus EEPRollingstockGetRotation() |
rotY |
number |
Winkel in Grad | Rotation um die Y-Achse aus EEPRollingstockGetRotation() |
rotZ |
number |
Winkel in Grad | Rotation um die Z-Achse aus EEPRollingstockGetRotation() |
Abgeleitet aus:
EEPRollingstockGetLengthEEPRollingstockGetMotorEEPRollingstockGetModelTypeEEPRollingstockGetTagTextEEPRollingstockGetHookEEPRollingstockGetHookGlue
Hinweis:
- Das aktive DTO bündelt heute statische, dynamische, Text- und Rotationsfelder in
ce.hub.RollingStock. - Kennzeichen und Fahrzeugnummern bleiben RollingStock-Felder. Zugweite Anzeigen im Web werden daraus als eindeutige Wertelisten abgeleitet, damit Busse, Anhänger und gekuppelte Straßenbahnen unterschiedliche Nummerierungslogiken nutzen können.
- Die Werte werden vor Vergleich und Export an mehreren Stellen gerundet, um Event-Rauschen zu reduzieren.
ce.hub.*Track
Elementtyp: Track-Eintrag für ce.hub.AuxiliaryTrack, ce.hub.ControlTrack, ce.hub.RoadTrack, ce.hub.RailTrack, ce.hub.TramTrack
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
integer |
Track-ID | technische ID des Tracks |
reserved |
boolean | nil |
true, false |
ob der Track aktuell reserviert ist |
reservedByTrainName |
string | nil |
Zugname oder nil |
Name des reservierenden Zugs aus EEPIs*TrackReserved(..., true) |
Vollständige Liste trackType im aktuellen Discovery-Pfad:
| Wert | Bedeutung |
|---|---|
rail |
Bahngleise |
tram |
Straßenbahn-Gleise |
road |
Straßen |
auxiliary |
sonstige Splines / Wasserwege |
control |
Steuerstrecken / nicht direkt einem der vier Track-Systeme zugeordnet |
Vollständige Liste modelType für RollingStock laut Lua_manual.pdf und EEPRollingstockGetModelType:
| Wert | Bedeutung |
|---|---|
1 |
Tenderlok |
2 |
Schlepptenderlok |
3 |
Tender |
4 |
Elektrolok |
5 |
Diesellok |
6 |
Triebwagen |
7 |
U- oder S-Bahn |
8 |
Straßenbahn |
9 |
Güterwaggon |
10 |
Personenwaggon |
11 |
Luftfahrzeug |
12 |
Maschine (z.B. Kran) |
13 |
Wasserfahrzeug |
14 |
LKW |
15 |
PKW |
ce.mods.road.TrafficLightModel
Elementtyp: Ampelmodell-Definition
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
Modellname | technischer Schlüssel des Ampelmodells |
name |
string |
Modellname | Anzeigename |
type |
string |
aktuell fest road |
Modellfamilie |
positions.positionRed |
integer | nil |
Signalzustandsindex | Rotphase |
positions.positionGreen |
integer | nil |
Signalzustandsindex | Grünphase |
positions.positionYellow |
integer | nil |
Signalzustandsindex | Gelbphase |
positions.positionRedYellow |
integer | nil |
Signalzustandsindex | Rot-Gelb-Phase |
positions.positionPedestrians |
integer | nil |
Signalzustandsindex | Fußgängerphase |
positions.positionOff |
integer | nil |
Signalzustandsindex | ausgeschaltet |
positions.positionOffBlinking |
integer | nil |
Signalzustandsindex | Blinkbetrieb |
ce.mods.road.Intersection
Elementtyp: Kreuzung
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
integer |
laufende Nummer ab 1 |
technischer Schlüssel der Erfassungsrunde |
name |
string |
freier Text | Kreuzungsname |
currentPhase |
string | nil |
Phasenname | aktuell aktive Phase |
manualPhase |
string | nil |
Phasenname | manuell gewählte Phase |
nextPhase |
string | nil |
Phasenname | nächste geplante Phase |
ready |
boolean |
true, false |
Ergebnis von intersection:isGreenTimeFinished() |
greenTimeSeconds |
number |
Sekunden | Grünphasenlänge |
staticCams |
string[] |
Kameranamen | Liste statischer Kameras der Kreuzung |
ce.mods.road.IntersectionLane
Elementtyp: Fahrspur einer Kreuzung
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
<intersectionId>-<laneName> |
technischer Schlüssel |
intersectionId |
integer |
referenziert ce.mods.road.Intersection.id |
zugehörige Kreuzung |
name |
string |
freier Text | Fahrspurname |
currentIndication |
string |
NONE, YELLOW, RED, RED_YELLOW, GREEN, PEDESTRIAN |
aktuelle Signalindikation der Fahrspur |
vehicleMultiplier |
number |
projektabhängig | Gewichtungsfaktor für Zähler |
eepSaveId |
integer | nil |
Datenslot-ID | zugehörige persistente ID |
type |
string |
NORMAL, TRAM, PEDESTRIAN |
Fahrspurtyp |
countType |
string |
CONTACTS, SIGNALS, TRACKS |
Herkunft der Anforderungserkennung |
waitingTrains |
table |
Queue-Inhalt | wartende Fahrzeuge/Züge in aktueller Reihenfolge |
waitingForGreenCyclesCount |
integer |
>= 0 |
Anzahl Warteschleifen bis Grün |
directions |
table |
projektabhängig | Richtungsdefinition der Fahrspur |
phases |
string[] |
Phasennamen | Phasen, die diese Fahrspur freigeben |
tracks |
table |
Track-IDs oder Highlight-Daten | für Hervorhebung genutzte Tracks |
ce.mods.road.IntersectionPhase
Elementtyp: Kreuzungsphase
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
<crossingName>-<phaseName> |
technischer Schlüssel |
intersectionId |
string |
Kreuzungsname | aktueller Code verwendet hier den Namen, nicht die numerische ce.mods.road.Intersection.id |
name |
string |
Phasenname | Name der Phase |
prio |
number \| nil |
projektabhängig | Priorität der Phase |
ce.mods.road.IntersectionTrafficLight
Elementtyp: Signalgeber innerhalb einer Kreuzung
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
integer \| string |
Signal-ID | technischer Schlüssel |
signalId |
integer |
Signal-ID | referenziertes EEP-Signal |
modelId |
string |
Modellname | referenziertes Ampelmodell |
currentIndication |
number | string | nil |
projektabhängig | aktuelle interne Signalindikation |
intersectionId |
integer |
referenziert ce.mods.road.Intersection.id |
zugehörige Kreuzung |
lightStructures |
table<string, object> |
indexierte Map | zugehörige Lichtstrukturen |
axisStructures |
object[] |
Liste | zugehörige Achsstrukturen |
Unterobjekt lightStructures[*]:
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
structureRed |
string | nil |
Immobilienname | Immobilienname für das Rotlicht |
structureGreen |
string | nil |
Immobilienname | Immobilienname für das Grünlicht |
structureYellow |
string | nil |
Immobilienname | Immobilienname für das Gelblicht |
structureRequest |
string | nil |
Immobilienname | Immobilienname für die Anforderungsanzeige |
Unterobjekt axisStructures[*]:
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
structureName |
string |
Immobilienname | betroffener Immobilienname |
axisName |
string |
Achsname | betroffene Achse |
positionDefault |
number \| nil |
projektabhängig | Default-Position |
positionRed |
number \| nil |
projektabhängig | Position bei Rot |
positionGreen |
number \| nil |
projektabhängig | Position bei Grün |
positionYellow |
number \| nil |
projektabhängig | Position bei Gelb |
positionPedestrian |
number \| nil |
projektabhängig | Position bei Fußgängerphase |
positionRedYellow |
number \| nil |
projektabhängig | Position bei Rot-Gelb |
ce.mods.road.ModuleSetting
Elementtyp: Kreuzungs-Moduloption
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
category |
string |
feste Textmenge | logische Gruppe in der UI |
name |
string |
pro Gruppe eindeutig | Anzeigename der Option |
description |
string |
freier Text | Beschreibung für die UI |
type |
string |
aktuell boolean |
Optionstyp |
value |
boolean |
true, false |
aktueller Wert |
eepFunction |
string |
Lua-Funktionsname | Setter-Funktion für die Option |
ce.mods.transit.Line
Elementtyp: ÖPNV-Linie
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
Liniennummer | technischer Schlüssel |
nr |
string |
Liniennummer | Anzeigenummer der Linie |
trafficType |
string |
TRAM oder BUS |
Verkehrstyp der Linie |
lineSegments |
object[] |
Liste von Segmenten | Routenabschnitte der Linie |
Unterobjekt lineSegments[*]:
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
id |
string |
Routenname | technischer Schlüssel des Segments |
destination |
string |
freier Text | Ziel dieses Linienabschnitts |
routeName |
string |
EEP-Routenname | Referenz zur EEP-Route |
lineNr |
string |
Liniennummer | Rückverweis auf die Linie |
stations |
object[] |
Liste | Halte des Segments in Reihenfolge |
Unterobjekt stations[*]:
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
station.name |
string |
Stationsname | Name der Zielstation |
timeToStation |
number |
Minuten, >= 0 |
Fahrzeit bis zur Station |
ce.mods.transit.Station
Elementtyp: ÖPNV-Station
Aktueller Stand:
- Der aktuelle Pfad erzeugt derzeit immer eine leere Liste.
- Es gibt aktuell kein JSON-Schema, weil noch keine Stationseinträge erzeugt werden.
ce.mods.transit.ModuleSetting
Elementtyp: ÖPNV-Moduloption
| Name | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
category |
string |
feste Textmenge | logische Gruppe in der UI |
name |
string |
pro Gruppe eindeutig | Anzeigename der Option |
description |
string |
freier Text | Beschreibung für die UI |
type |
string |
aktuell boolean |
Optionstyp |
value |
boolean |
true, false |
aktueller Wert |
eepFunction |
string |
Lua-Funktionsname | Setter-Funktion für die Option |
ce.mods.transit.LineName
Elementtyp: Änderungsereignis für Linien
Schema:
- identisch zu
ce.mods.transit.Line - wird von
LineRegistry.fireChangeLinesEvent()gesendet
syncState()-Transport
Die heutigen Hub-Publisher senden ihre Nutzdaten über DataChangeBus.fire*().
Die *StatePublisher.lua-Dateien sind dünne Adapter auf die eigentlichen Publisher.
syncState() liefert keine Nutzdaten zurück.
Verwendete EEP-Funktionen und Handbuchbezug
Die wichtigsten direkt genutzten EEP-Funktionen für das Datenmodell sind:
EEPGetFramesPerSecond,EEPGetCurrentFrame,EEPGetCurrentRenderFrameEEPGetSignal,EEPGetSignalTrainsCount,EEPGetSignalTrainName,EEPGetSignalStopDistance,EEPGetSignalItemName,EEPGetSignalFunctions,EEPGetSignalFunctionEEPGetSwitchEEPLoadDataEEPStructureGetPosition,EEPStructureGetRotation,EEPStructureGetModelType,EEPStructureGetTagTextEEPGetTrainRoute,EEPGetTrainLength,EEPGetTrainSpeed,EEPGetTrainCouplingFront,EEPGetTrainCouplingRear,EEPGetTrainActive,EEPIsTrainInTrainyardEEPRollingstockGetLength,EEPRollingstockGetMotor,EEPRollingstockGetModelType,EEPRollingstockGetTagText,EEPRollingstockGetOrientation,EEPRollingstockGetSmoke,EEPRollingstockGetHook,EEPRollingstockGetHookGlue,EEPRollingstockGetActive,EEPRollingstockGetTextureText,EEPRollingstockGetRotation,EEPRollingstockGetTrack,EEPRollingstockGetPosition,EEPRollingstockGetMileageEEPIsAuxiliaryTrackReserved,EEPIsControlTrackReserved,EEPIsRoadTrackReserved,EEPIsRailTrackReserved,EEPIsTramTrackReservedEEPGetAnlVer,EEPGetAnlLng,EEPGetAnlName,EEPGetAnlPathEEPGetSeason,EEPGetCloudsIntensity,EEPGetCloudsMode,EEPGetWindIntensity,EEPGetRainIntensity,EEPGetSnowIntensity,EEPGetHailIntensity,EEPGetFogIntensity- die Zeitvariablen
EEPTime,EEPTimeH,EEPTimeM,EEPTimeSsowieEEPGetTimeLapse
Beschreibungen, Typen und Wertebereiche wurden, soweit vorhanden, aus Lua_manual.pdf übernommen oder daraus abgeleitet. Für fachliche Objekte der Bibliothek wie Kreuzungen, Fahrspuren, Linien und Moduloptionen stammt die Beschreibung aus dem Projektcode selbst.