Jump to content

Neue Beta-Version V5


Neo

Empfohlene Beiträge

vor 18 Stunden schrieb BahnLand:

Do not use any time

Hi BahnLand

Thank you for your answer.  This means that I have to deeply review my layout, but I will try to apply your solutions.
Notice that Goetz already suggest to avoid timers and replace them by defer execution, but my difficulty was to restart the event triggering the check because this event was originally triggered by "train enters a track".  And when the train is stopped, the trigger will never restart automatically.

Regards

André

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hello André,

I have made a little demo layout:

444136331_PeriodischerCheck.thumb.jpg.3d6880f4b40bbe3d0bbdf2d229e9b804.jpg

Periodischer Check.mbp

This layout consists of a track circle containing the layout component "Anlagen-Baustein Signalhalt" and a simple switch. When the train reaches the track section near the signal, a specific condition is checked if true or not. If the condition is true, the signal gets opened, or otherwise, there is a wait about severeal seconds before a new check is made. Please open the event trace to see the sequence of executed events.

The condition which is checked is whether the switch is on. I.e. if the switch is OFF, the signal remains closed and the train will stop. Because the checked condition is not true, the train will wait 5 seconds and then check the switch condition again ... and so on until the switch is changed to ON and therefore the next check will be true.

The 1st check ist triggered by entering the track contact "Ausfahr-Check-Kontakt" near the preliminary signal. This triggers the event "Zug betritt Ausfahr-Check-Kontakt", where the user-defined event "Warten und neuer Versuch" is called with parameters "Signal" (referring the main signal "SH1_Hauptsignal") and "Wartezeit" with initial waittime 0. Here, at first, the "defer execution" is called with the waittime specified in the 2nd parameter, followed by the check, whether the condition "switch is ON" now is fullfilled. If yes (true), the main signal is opened an the train can start. If no (false), the user-defined event calls itself with the "Signal" parameter value from its own call and 5 seconds for the 2nd parameter "Wartezeit". This "loop" will be repeated until the switch is going to "ON" and therefore the checked condition is fullfilled.

This example especially shows how a specific reference value (here the "Signal" reference) can be transmitted to an "autonomous" user-defined event definition and iteratively passed to the next execution instance until the last (essential) instance evaluates this reference value for actions specific for this parameter (here for the specific main signal). Thus, the one common event specification "Warten und neuer Versuch" might be used also from different original (track contact) triggers for checking the implemented condition also for different main signal instances (referred each by the parameter "Signal" of the user-defined event).

Many greetings
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Neo,

ist mir so aufgefallen.
Wenn, in den rechten, grünen spezifizierungs Feldern, der Wertetyp bei Variablen von "Variable" auf "Variable (erweitert) umgestellt wird, wird das auch in der "Überschrift" sichtbar. Ist auch gut so.
Bei den Timern ist das nicht so. Stelle ich von "Timer" auf "Timer (erweitert)" um bleibt die Überschrift "Timer". Übersichtlicher wäre es wenn auch hier "Timer (erweitert)" angezeigt würde.

Gruß
Wolfgang

732916216_Timererweitert.thumb.jpg.7212e8605625ce69ce15c5b6ea39243a.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Neo

Ich möchte mich auch bedanken ( wenn auch Zeit später ) für die tolle Arbeitsleistung von Dir .

Im meinen kleinen Kreis , habe ich auch neue Begeisterungen für die Version 5 gefunden - die es sich auch erwerben wollen und/oder schon haben .

Die Möglichkeiten sind hier so vielseitig , damit gewinnt man noch mehr Bekannte .

(y):D    Herzlichen Dank !

Viele Grüße

H:xnS

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am ‎09‎.‎09‎.‎2019 um 21:16 schrieb BahnLand:

there are 2 solution possibiities in my eyes to solve this problem:

Hi BahnLand, hi Goetz

Thank you for your explanation and thank you also to Goetz for his help in Lua.  Here is my testing layout and I would appreciate to get your feedback on it. 

This is based on itinerary, predefined as shown in the table (excel) in the center of the ground; each train receives an itinerary to follow that gives the position of the different switches necessary to follow the foreseen way.  These itinerary are mentionned on the top of the 5 engines.
The objective is to have such a table for all switches in a layout permitting to a train to follow its itinerary safely.  In the future, such table may contain more information like stop timing at station, etc..

With such a system, adding a train becomes very easy : just give it an itinerary already existing, put it on one track foreseen for that itinerary and insert the parameters in the engine object.  If one want to create a nex itinerary, just add a line in the table with the position of the neede switches 

Regards

André

event gare centrale sep.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hello,

It seems that there is a bug when trying to implement multiple conditions linked by "And" or "Or".  It seems impossible to have :

condition 1
and
condition 2
or
condition 3

When I try to change the second "And" to "Or", both "And" becomes "Or" and vice-versus.

Regards

André

bug and-or 01.gif

bug and-or 02.gif

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hello André,

you cannot mix "AND" and "OR" at the same level!
Please "group" your conditions to make mixed conditions (with AND and OR) possible:

Grouping.jpg.441ee37844b0c9235d4cc68da35c8de0.jpg

For complex condition combinations, you can define "groups" as "brackets" for your condtions. After a group is declared, you can specify conditions inside and outside. But at one level, you can only use either "AND" or "OR" but not both together. Below some examples of mixed conditons:

2014873975_Group-ANDORGroup-AND.jpg.dc443da69ebf2af2397e23d2bfe5e779.jpg
211943786_Group-ORANDGroup-OR.jpg.bd82ebf03f02eb941d80a0365efff516.jpg
Cascade.jpg.b2d7e7cc65aa1dc89493e77db2de53bb.jpg

Many greetings
BahnLand

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi @Neo

Koennte das objektvariablen-fenster bitte so gestaltet werden das es nicht, wenn eine grosse liste von variablen dargestellt ist, bei einer eingabe in einer variablen weiter unten sofort die liste nach oben schnellen laest und einen somit zum erneuten scrollen nach unten zwingt falls man noch mehr aenderungen machen moechte? Ich denke das war schoen oefter reklamiert.....

Cheers

Tom

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb metallix:

Hi Neo

Koennte das objektvariablen-fenster bitte so gestaltet werden das es nicht, wenn eine grosse liste von variablen dargestellt ist, bei einer eingabe in einer variablen weiter unten sofort die liste nach oben schnellen laest und einen somit zum erneuten scrollen nach unten zwingt falls man noch mehr aenderungen machen moechte? Ich denke das war schoen oefter reklamiert.....

Cheers

Tom

Gleiches bitte für die Modulvariablen. Da ist es genauso.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Ich wollte gerade mal die Endphase meiner Anlage einläuten und habe dazu die virtuelle Zeit mal laufen lassen.
Das Resultat war relativ schockierend. Alle 10 virtuelle Zeitminuten macht der Schatten eine Wanderungsanimation von ein paar Zehntelsekunden.
Dann steht er wieder stockesteif da. Ich denke mir, es wird seine Gründe haben, wieso das nicht anders verteilt ist. Schön ist das so nicht.
Doch um die Mittagszeit stimmt auch was mit der Animation nicht. Wenn der Schatten also eigentlich von links nach rechts wandern sollte, dann macht er das in der Phase ein paar Mal gleich, d.h. er läuft pro 'Tick' mehrfach die links->rechts-Animation.
Ich weiß nicht, ob, wenn es schon nicht anders geht, ihn nicht besser gleich hüpfen lassen sollte. Das müßte man sich mal ansehen.

Gruß
  Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 3 Stunden schrieb Andy:

Dann steht er wieder stockesteif da. Ich denke mir, es wird seine Gründe haben, wieso das nicht anders verteilt ist.

ja, bedingt durch die verwendete Schattentechnologie würde eine dauerhafte Aktualisierung in einem sichtbaren Zittern resultieren, was noch unschöner wäre (das Zittern sieht man kurz, wenn der Schatten wandert).

vor 3 Stunden schrieb Andy:

Wenn der Schatten also eigentlich von links nach rechts wandern sollte, dann macht er das in der Phase ein paar Mal gleich, d.h. er läuft pro 'Tick' mehrfach die links->rechts-Animation.

Das kann ich nicht nachvollziehen, kannst du davon eventuell ein Video drehen, was das Problem aufzeigt?

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also, es hängt wahrscheinlich von Entfernung und Winkel ab, von der Qualität auch (hier Normal). Ist wohl eine optische Täuschung, die durch das Rastern und damit unterschiedlichen 'Dichten' des Schattenschwarzes entsteht (also, das was Du Zittern nennst). Dieser sich dadurch bildende (ich sag' mal) Kernschatten wandert dann wohl durch Überlagerungen öfters als einmal durch die Animation und somit entsteht der Eindruck einer Schleife. Am Schatten vom FreeFallTower sieht man's. Zoomt man näher ran, gibt sich das logischerweise. Trotzdem bin ich jetzt ein wenig ratlos, denn ich möchte nicht, dass der 'Film' am Ende so aussieht. Wenn man ihn jede Sekunde springen läßt, bei virtueller Zeit 24 Minuten. Wie sieht's da aus? Da macht er ja nicht so einen weiten Weg.

Gruß
  Andy

p.s.: beim guten alten Skyrim haben sie den Schatten wohl nach einem sehr ähnlichen Verfahren gemacht zu haben. Auch alle paar Nasen lang wabernd nachgeholt...

p.p.s.: mir ist gerade eine Idee gekommen, wie ich die Idee mit dem Springen selbst testen und vielleicht auch anwenden kann.

 

 

freefall.zip

Bearbeitet von Andy
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

In den anfaengen der beta phase hatte ich mal angeregt die EV mit einer undo/redo funktion zu bestuecken.

Es ist einfacher und praktischer mit solchen funktionen einen fehlerhaften schritt zu revidieren anstatt die EV zuzuklappen und nicht die aenderungen zu speichern, um dann noch mal vom anfang an alles wieder neu durch zu gehen.

Gerade wenn man groessere umbauten vornimmt und irgendwann nach der 50igsten aenderung einen eintrag loescht nur um im naechsten schritt festzustellen das das ein fehler war.....

Cheers

Tom

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gebe dir recht, Tom. Und falls die EV dementsprechend aufgehübscht wird, dann wäre es auch schön, wenn der EV-Export aus V4 wieder aufleben würde. Man kann in der EV halt nur nach bestimmten wenigen Sachen suchen lassen, aber wenn man z.B. wissen will, in welchen Ereignissen eine bestimmte Variable einen Wert zugewiesen bekommt, findet man nichts, weil die Suche wohl nur Variablen findet, wenn sie als Auslöser verwendet werden. Da sucht man sich in einer umfangreichen EV einen Wolf.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Your code works just fine.

But instead of printing "liste" you may want to print out the elements inside the table:

voie = track.name
print (voie)

table.insert(liste, voie)

if voie == 6  then
  vehicle.currentSpeed = 0
  for k, v in ipairs(liste) do
    print("liste ", k," contains ", v)
  end
end

And to initialise your list, you may use liste = {} because all lists (actually tables) in Lua are dynamic. 
Besides, your Letters A to F were considered variables with the content nil. Your initial list had no elements.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...