Startseite · Forum · Wiki 11. Oktober 2024 17:30
Goldene Bahnschranke
Die "Goldene Bahnschranke" des Monats August 2024 hat erhalten:
blank
» DB NETZ Instandhaltung... «

quest Hast Du schon für die
"Goldene Bahnschranke"
des Monats September gestimmt ?
» hier geht's zur Abstimmung «
Stimmen bisher: 6
bahnschranke.tt4u.de - Diskussionsforum
 Benutzername  Passwort  Angemeldet bleiben
RegistrierenForumsuche
Thema ansehen
bahnschranke.tt4u.de > Bildschirmschoner
->> Traffic
Vorheriges Thema Nächstes Thema

 
Autor Pools und Fahrplanzeilen   1  # 7  top
Ulrich
Erfahrener


User Avatar



Beiträge: 173

Ort: Berlin
Eingetreten: 25.07.12
Status: Offline
Eingetragen am 29.06.2024 02:46
Ich habe seit Jahren einen Fahrplan der aus Pool‘s besteht, so kann zumindest ein bisschen Kontrolle über die Häufigkeit der gezeigten Fahrplanzeilen haben.

Jetzt meine Frage: Wie kann man $GROUP`s in einen solchen Fahrplan integrieren. Da ich Anfänger in Sachen Szenen, Sektionen und Co. bin, brauche eine Antwort, die ich auch verstehe. Oder geht das überhaupt nicht.

Gruß Ulrich
Bearbeitet von Ulrich am 23.07.2024 14:12
Autor RE: Poo'ls und Fahrplanzeilen   2  # 7  top
godeny
Admin


User Avatar



Beiträge: 451

Ort: Budaörs - Ungarn
Eingetreten: 21.12.06
Status: Offline
Eingetragen am 29.06.2024 22:10
Hallo Ulrich,

ich verstehe leider Deine Frage nicht ganz.

 Zitat
Ich habe seit Jahren einen Fahrplan der aus Pool‘s besteht,


Das ist, was nicht (ganz) stimmen kann.

Ein Traffci Fahrplan besteht in erste Linie aus Zeilen, die Bewegungen oder Segmentierung angeben. (Andere Befehle gibt es schon haufenweise, z.B. Defaultwerte, Makrodefinitionen, aber das Hauptgerüst ist doch die Segmentierungsbefehlen und Bewegungszeilen). Wenn das Ablauf startet, hat Traffic einen leeren Bildschirm-Fläche, und versucht solange darin Bewegungen/Segmentirungsbefehlen durchzuführen, bis da noch genug Platz vorhanden ist.

Eine Bewegungszeile gibt seine vertikale Platzbedarf mit den Parametern IMGY, ABOVE, BELOW and.
Gibt es noch genug Platz, wird zufällig zu der Zeile Platz zugewiesen, und dort wird die Zeile laufen.

Segmentierungsbefehle - $SECTION, $GROUP, $SCENE - von Aussen gesehen verhalten sich, wie Bewegungszeilen. Jeder hat seine eigene Methode sein Platzbedarf zu definieren ( z.B. für $SECTION eine DY= Parameter ). In der Inneren passiert dann die wesentliche

- eine $SECTION spielt genau die selbe Spiel, wie das Gesamtbilschirm für das ganze Fahrplan, also weist Teile seiner Fläche solange den enthaltene Bewegungszeilen / weitere Segmentierungsbefehlen zu, bis es genug Platz gibt. (Falls eine innere Zeile mehr Platz benötigt, als insgesamt zur Verfügung steht, dann es wird übersprungen, nicht durchgeführ, sonst wird solange gewartet, bis einige Zeilen fertig sind, und genügend Platz für die neue Zeile da ist. Das ganze Mechanismus ist ein schritt komplizierter, weil eine einfache Bewegungszeile, ein $GROUP und auch eine $SCENE haben einen 'gewünschten / maximalen', und einen 'geforderten / minimalen' Platzbedarf. Bei Bewegungszeilen / $GROUP kann aus der Bereichen $ABOVE, $BELOW abgeschnitten werden, aus der Fahrweg $IMGY nicht, bei $SCENE sind so alle $PATH - Fahrwege Tabu, aber oberhalb der obersten, unt unterhalb des untersten Fahrsegs kann auch abgeschnitten werden )

- ein $GROUP verhält sich abhängig davon, ob sie Hintergrund / Vordergrund oder Fahrweg-Definitionen enthält. Gibt es mindestens eine solche Parameter,
Hintergrund und Vordergung-Grafik wird erstellt, und die enthaltene Bewegungszeilen laufen nacheinander in diese schon gezeichnete Umgebung. Gibt es aber keine Angabe zur Fahrweg oder Hintergrund / Vordergrund innerhalb des $GROUP - Befehls, der $GROUP stellt nur die Bildschirm-Platz zur Verfügung,
aber genau den selben Bereich für alle enthaltene Bewegungszeilen.

- eine $SCENE ist ähnlich zu der $GROUP mit Hintergrundangabe, die Umgebung ist gezeichnet, die Bewegungszeilen in jeder enthaltenen $PATH - Block laufen in der schon gezeichneten Umgebung.


$POOL-s ( $SPOOL, $IPOOL auch ) sind dagegen nur Speicher Für Parametersätze (nich ein mal für Befehle).
Sie liegen ausserhalb der üblichen Ablaufsteuerung, also ausserhalb von $SECTION / $GROUP / $SCENE und die Bewegungszeilen auf der oberste Ebene.

Innerhalb der Bewegungszeilen und innerhalb der Segmentierungsbefehlen sorgt eine POOL=<PoolName>; Parameter dafür, das ein Parametersatz aus den Pool geholt wird, und in die schon vorhandene Parametersatz eingearbeitet wird.

Falls als Bewegungszeile eine kurze zeile bestehend aus einem einzigen Parameter, POOL=<PoolName>; ist, dann holt Traffic alle wirksame Parametern aus der Pool-Zeile. Maistens ist es so, aber muss es nicht unbedingt so sein. Man kann sogar aus mehreren Pools Parametern holen lassen und zusammenfügen lassen, dann werden schon die Parameterangaben PARAM-=VALUE; PARAM+=VALUE; PARAM#=VALUE; PARAM<=VALUE; PARAM>=VALUE; PARAM/=VALUE; ihren sinn bekommen - zusammen mit den Parametern AP= ; , AP2= ; ENV= ; kann man am ende einen Parametersatz, sogar einzelne Parameter (wie der Hintergrunddefinition mit vielen Gebäuden, Bäumen) zusammenbauen lassen aus unterschidliche Quellen.

Also: was bestimmt nicht geht, $SECTION / $GROUP / $SCENE innerhalb der Pools zu haben. Pools sind nur Behälter für Parametersätze, nicht für Segmentierungsbefehlen.

Mann kann aber sehr wohl eine "Ablaufsteuerung" mit $SECTION / $GROUP Befehlen bauen, und die darin verwendete Bewegungen aus POOL-s zu holen.
So arbeitet der große Fahrplan, der mit Traffic mitgeliefert wird. Zugegeben, es kann erschreckend sein eine Fahrpolan, der aus mehr, als 100 Dateien besteht durchzusuchen, aber man braucht nur wenige Dateien anzuschauen.

Die meißte Pools darin haben die Aufgabe, eine Zugmenge ( und Bewegunsmenge ) zu definieren, aus der man bei den unterschiedlichen Blöcken eventuell Untermengen holen kann. Wie definieren Pools für unterschiedliche Länder, aber nutzen die Flags um nach Epochen oder Bewegunsarten (einfachen Durchfahrt, oder etwas komplizierteres, dass nur im Bahnhof sinnhat), oder auswahl zwischen Dampf, Diesel und Elektrischen Antrib.

Die Hauptfrage lautet: Wedelt der Hund mit dem Schwanz oder wedelt der Schwanz mit dem Hund? Wáhlt man einen Umgebung, einen Hintergrund aus, und sucht dazu die passende Züge, oder wählt man die Züge aus, und versucht dazu die passende Hintergünde zu verwenden. Die POOLs sind um diese Frage herum entstanden. Die einfache Lösung wäre in jede Szene, jede Hintergrund die wenige, passende Züge reinzuschreiben. Aber daas ist eine aussichtslose Aufgabe, wenn sowohl die Fahzeugzeichnungen als auch die Hintergrund-fotos und Nitergrundelemente sich ständig vermehren

POOLs hatten nicht nur mit ihren Flags die erweiterte Auswahlmöglichkeit, sondern sorgten auch dafür, dass eine Sammlung von Bewegungen zur Verfügung stehen konnte, aus der man in mehreren unterschiedlichen Plätzen innerhalb der Fahrplandateien gebrauch machen könnte.
Wegen WTraffic sind aber die $DSECTION/$CSECTION, $DGROUP/$CGROUP entstanden, die etwas ähnliches anbieten (ohne den detaillierten Auswahl mit Flags).
Diese relativ neue Segmentierungsbefehlen sind $DEFINESECTION und $CALLSECTION usw. Jeder Sektion kann eine Name bekommen, und unabhängig davon,
ob es mit normale $SECTION oder mit $DSECTION definirt wurde, kann man mit $CSECTION mit Angabe dessen Name aufrufen. Also, den selben Satz von Bewegungen für unterschiedliche Zwecke zu benutzen geht auch mit benannte Sektionen, nicht mit Pools.
(bei WTraffic muss das gesamte Fahrplan eingelesen und im Server zur Verfügung stehen, wenn Leute daraus nur Teile laufen lassen möchten, braucht man dazu eine andere Mechanismus, als es beim Traffic war, wo man einen anderen Fahrplandatei gestartet hat, oder mit Optionen schon beim Einlesen der Fahrplandeteien die Selektion gemacht hat).

Ich hoffe, es war verständlich - falls nicht, ihr sollt ruhig nachfragen. Und diese Forum ist auch der richtige Platz über Ideen, Wünsche zu reden, dass man in Traffic-Fahrplänen lösen möchte. Es kann sein, das schon jetzt in nicht ganz veröffentlichten Funktionen die Lösung da schlummert, und es kann auch sein, das ich mit einen reativ einfache Erweiterung etwas lösen kann, das andere gerne hätten.
godeny http://traffic.pxtr.de
Autor RE: Pools und Fahrplanzeilen   3  # 7  top
Ulrich
Erfahrener


User Avatar


Themenstarter

Beiträge: 173

Ort: Berlin
Eingetreten: 25.07.12
Status: Offline
Eingetragen am 30.06.2024 13:27
Hallo Zoltan,
hier meine Fahrplan Konstruktion als verkürztes Gerüst.


Code
$BGCOLOR #000000
$IV 0.5
$ABOVE 30
$BELOW 10
$WAY A;E;M;R;T;L=X
$IMGY= 50
$INCLUDE trassen_def.ttt

$POOL N=DE_Norm
$DEF TrasseUK=20:TraVariFD|30:TraVari
$DEF FdrhtVari=10:FdrhtGo_R|10:FdrhtGo_L|2:FdrhtStop_R|2:FdrhtStop_L
$DEF Busch=BUSCH_UF1|BUSCH_UF2|BUSCH_UF3|#BUSCH_UF1|#BUSCH_UF2|#BUSCH_UF3
$DEF tele=TELEGR1,TELEGR3|TELEGR2
$DEF F_Drat=FDUF_1,FDUF_2|FDUF_3
$DEF Fence = (Fence2,Fence1|Fence3)
C=<fahrzeug>
$ENDPOOL
#---------------Ende------------------#

$POOL N=DE_Selten
C=<fahrzeug>
$ENDPOOL

$POOL N=GB_Norm
C=<fahrzeug>
$ENDPOOL

$POOL N=FR_Norm
C=<fahrzeug>
$ENDPOOL

$POOL N=IT_Norm
C=<fahrzeug>
$ENDPOOL

$POOL N=UF_Abholen
C=<fahrzeug>
$ENDPOOL

POOL=30:DE_Norm|20:DE_Selten|20:GB_Norm |20:FR_Norm|20:IT_Norm|3:UF_Abholen


Soweit meine Pools.
Wenn ich versuche folgende Fahrplanzeilen hinzu zu fügen, bleibt der Bildschirm schwarz.

Code
$SCENE DY=200;SEQ=F;IMGY=120;
#---Trasse Gleis
$PATH Y=20; FG=Gleis23:..,^0;
M=0;
#-----WAGEN-ARBEITER-Trasse
$PATH Y=20;BG=WAG_ARBEIT:50+265;
M=0;
$ENDPATH
#-----FEA-ARBEITER-Trasse
$PATH Y=20;BG=FEA_ARBEIT:50+217,2;
M=0;
$ENDPATH
#----FEA Transport----
$PATH Y=20;
M=BACK;C=FEA_S,CLASS20905_GBRF;P=50+60;D=L;TB=40;V=6;
T=10,w,STEG_TR_DA,w,STEG_WEG,w,FEA_VOR,w,FEA_WEIT,w,FEA_FEST,w,FEA_BACK,w,FEA_WINKEN,w,FEA_ABG,w,12;
$ENDPATH

#-----STEG-ARBEITER-Trasse
$PATH Y=20; BG=STEG_ARBEIT:50+170,0;FG=STEG_HG:50+170;
M=0;
$ENDPATH

#---Kran----
$PATH Y=20;
TB=2,w,2;M=BACK;C=SHELDON_CRANE,CLASS20189;P=50+225;D=R;V=6;
T=4,KR_H,w,HA_DA,w,2,w,HA_AB,2,VOR,w,FEST,w,BACK,w,WINKEN,w,3,w,HA_H,STEG_H,
w,8,HA_ABTR,STEG_AB,w,8,w,VOR,WEG,w,FEST,w,BACK,8,HA_HENDE,18,w,KR_AB,
w,8,FEA_WEG,WA_VOR,w,BACK,WA_WEG,ZU;
$ENDPATH
#---MK1 CCT_ZUG--
$PATH Y=20;
TB=60,w,50,w;M=BACK;C=MK1_CCT_ZUG,CLASS20227,CLASS20132;P=50+390;D=R;V=5;
T=w,2,KUPP_H,w,2,ZU_H,w,6,w,4,CCT_DA,CCT_BG_WEG,w,4,w;
$ENDPATH
#---MK1 CCT_Hintergrund--
$PATH Y=20; BG=MK1_CCT_HG_ANI:50+325;
M=0;
$ENDPATH
#---Hintergrund-Trasse
$PATH Y=20;BG=(BUSH20:5-30+,-1;1*BUSH20:60-85+,-1);
M=0;
$ENDPATH
$ENDSCENE


Ich glaube dass ich von Anfang an Verstanden habe, wieso das so ist.
Es sind im Grundsatz zwei verschiedene Arten den Bildschirm auf zu teilen.
1. Zum Einen Zeile für Zeile, wo gerade Platz ist.
2. Zum Anderen wird der Ganze Bildschirm reserviert, weil die Zeilen z.B auch
übereinanderliegen können.

Meine Frage bezog sich also darauf wie die zwei verschieden Arten verbunden werden Können, oder ob das überhaupt geht.

Gruß Ulrich
Bearbeitet von Ulrich am 23.07.2024 14:15
Autor RE: Poo'ls und Fahrplanzeilen   4  # 7  top
godeny
Admin


User Avatar



Beiträge: 451

Ort: Budaörs - Ungarn
Eingetreten: 21.12.06
Status: Offline
Eingetragen am 30.06.2024 18:00
Hallo Ulrich,

auf den ersten Blick sehe ich nichts verdächtiges, es sollte funktionieren.

Pools haben mit dem Problem nichts zu tun, die liefern nur die Parametern.
Was sich hier abspeilt, passiert zwischen die Bewegungszeile, der den POOL=<Auswahl> ;
Parameter hat, und die $SCENE / $ENDSCENE .

Eine einzige Zeile - sowohl eine einfache, wie C=<Fahrzeug>; , aber auch eine POOL=<PoolName>; , dahinter mehrere unterschiedliche Bewegungen sich verbergen können,
können in der selben Zeit mehfach auf dem Bildschirm sein. Also, eine

POOL= xxx ;

$SCENE
...
$ENDSCENE

Konstrukt ist völlig legal, und sollte
- erst eine Bewegung aus einem Pool holen.
- danach ist die Frage, ob die Szene auf die gebliebene Fläche reinpasst. Man muss in betracht ziehen, dass die erste Zeile zufällig auf den Bildschirm kommt - eventuall in die Mitte - , also können mehrere, aber kleinere Bereiche frei bleiben.
Falls die Szene auf den Fenster reinpasst, nur neben die Bewegungszeile nicht mehr genug Platz ist, dann wartet ab, bis die Bewegungszeile zu Ende geht, und dann soll die Szene starten.

Hast Du schon mal nachgeschaut, was steht in der Fehlerdatei ?
In Konfigurationsfenster gibt es die Möglichkeit die Fehlerdatei zu öffnen, dann sieht man,
was passiert ist. Vielleicht geht etwas ganz anderes schief.

Andere Frage: falls Du nur die Szene laufen lässt (z.B. die POOL=<PoolAuswahl>; Zeile mit # Auskommentierst),
dann läuft es, oder kommt genau so eine dunkle Bildschirm nur ?

Falls Du selbst mit Hilfe der Fahlerdatei und mit teilweise auskommentieren und laufen lassen das Problem nicht lösen kannst, bleibt nur der Weg mir Deine Fahrplandateie(en), und falls sie es benötigen, dazu auch Deine Fahrzeuglistendatei und Bildbibliotheken zuzuschicken, dann kann ich da näher reinschauen - falls nötig, Traffic in Debug-Modus in der Entwicklungsumgebung laufen lassen, und während der einzelne Schritte nachschauen was geht schief.

Gruß
Zoltán
godeny http://traffic.pxtr.de
Autor RE: Pools und Fahrplanzeilen   5  # 7  top
Ulrich
Erfahrener


User Avatar


Themenstarter

Beiträge: 173

Ort: Berlin
Eingetreten: 25.07.12
Status: Offline
Eingetragen am 22.07.2024 23:34
Hallo Zoltan,
tatsächlich geht das, aber nur zwischen den einzelnen Pools.
Das war mein Fehler, aber wie bestimme ich die Häufigkeit mit die Szene abläuft.
Mit dem Life time Parameter LC?

Gruß
Ulrich
Bearbeitet von Ulrich am 23.07.2024 14:16
Autor RE: Pools und Fahrplanzeilen   6  # 7  top
MartinG
Spezialist


User Avatar



Beiträge: 292

Ort: Hamburch
Eingetreten: 29.12.06
Status: Offline
Eingetragen am 09.09.2024 18:41
Also ist die Frage eher, wie man die Wahrscheinlichkeit steuert, mit der z. B. eine $GROUP oder eine $SCENE oder so erscheint.

Meines Wissens geht das gar nicht. Also, nicht ohne schmutzige Tricks, z. B. solche Segmente komplett in Präprozessormakros packen und deren Wahrscheinlichkeit damit steuern, wie oft sie im Fahrplan aufgerufen werden.

Wenn das doch irgendwie ginge, wäre das auch für mich interessant. Dann könnte ich einiges anders machen als bisher. Dann bräuchte ich das nicht mehr mit Deko direkt in der Bewegungszeile machen.
Autor RE: Pools und Fahrplanzeilen   7  # 7  top
godeny
Admin


User Avatar



Beiträge: 451

Ort: Budaörs - Ungarn
Eingetreten: 21.12.06
Status: Offline
Eingetragen am 09.09.2024 20:06
Innerhalb eine $POOL sind die wahrscheinlichkeiten gleich. Genau so ist es innerhalb einen $GROUP / $SECTION / $PATH . Den $PATH lassen wir erst mal aus, da kann man mit einigen Tricks - Impulse - die unterschiedliche $PATH-Zeilen miteinander verknüpfen,
aber das war hier nicht die Frage.

Innerhalb von $SECTION / $GROUP und $POOL wahrscheinlichkeiten anzugeben wäre machbar, aber nicht trivial. Interessant wird das ganze in dem Ablaufmodus "Zufallsreihenfolge",
was heisst, solange wird keine Zeile wiederholt, bis alle Zeilen schon ein mal gelaufen sind.

Ich werde schon mal in die Quellen reinschauen, und sehen, was ich machen kann - aber bestimmt noch nicht in den nächsten, schon halbwegs fertigen Version, sondern nur in übernächsten.

Zoltán
godeny http://traffic.pxtr.de
 
Springe zu Forum:
Thema verlinken
URL:
BB-Code:
HTML:
Spenden
Anmelden
Bahnhofsuhr
Shoutbox
Du musst Dich einloggen, um eine Nachricht zu schreiben.

bullet Ulrich offline
08.09.2024 - 00:20
Allen eine schöne Zeit
in Bremerhaven
Grüße aus Berlin
Ulrich
bullet HvdWant offline
01.04.2024 - 13:09
Auch im März wieder viele neue Zeichnungen. Aber jetzt ist Schluss (vorerst)
http://www.sitebyhans.de/40674.html
bullet HvdWant offline
29.02.2024 - 20:36
Auch im Februar mehr als 50 neue Zeichnungen. Jetzt mal anschauen.
http://www.sitebyhans.de/40674.html
bullet HvdWant offline
01.02.2024 - 20:37
Allein im Januar schon mehr als 50 neue Zeichnungen. Du solltest es mal anschauen, oder?
https://www.sitebyhans.de/40674.html
bullet Staedteexpressfahrer offline
01.01.2024 - 22:23
Prosit Neujahr und alles Gute für 2024 !!
cookies   Cookie-Control :
Diese Webseite verwendet Cookies für die techn. Funktionalität und um Inhalte zu personalisieren und deiner Erfahrung anzupassen.
Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du den Einsatz von Cookies.       » Hier mehr lesen zum Datenschutz «
Cookies akzeptieren