Timba Geschrieben 5. Dezember 2019 Geschrieben 5. Dezember 2019 Hallo, gibt es in der grafischen EV auch irgendwo die Möglichkeit auf den Wert der Anlagenzeit (in Lua = layout:time) zuzugreifen oder ist das ausschließlich über Lua möglich? Meine Suche danach war gerade nicht von Erfolg gekrönt. Vielleicht mag mir jemand den Weg weisen. Gruß Timba
Andy Geschrieben 5. Dezember 2019 Geschrieben 5. Dezember 2019 (bearbeitet) oops - Moment ... das ist falsch rum. (Bild geht leider nicht mehr weg) Bearbeitet 5. Dezember 2019 von Andy
Timba Geschrieben 5. Dezember 2019 Autor Geschrieben 5. Dezember 2019 Andy, ich glaube allmählich, das geht gar nicht. Irgendwie erinnere ich mich sogar schwach, dass ich Ähnliches hier schon mal thematisiert habe. Ich glaube, man kann layout:time nur einen Wert zuweisen, aber ihn nicht auslesen und weiterverarbeiten.
Andy Geschrieben 5. Dezember 2019 Geschrieben 5. Dezember 2019 Ich glaube, es geht nur, wenn Du ein Zeitereignis mit 'jede Minute' nimmst. Dann kommst Du über den Auslöser ran! Aber da steht in der Lua-Übersetzung auch das Auslöser-Codewort time. Was dann aber vermutlich identisch ist. Ich glaube an _layout:time kann er gar nicht rankommen, wegen dem Doppelpunkt. Kriegst es halt nur jede volle Minute - wobei auszutesten wäre, ob es die Simulationsminute ist, oder die echte.
Timba Geschrieben 5. Dezember 2019 Autor Geschrieben 5. Dezember 2019 vor 1 Minute schrieb Andy: Kriegst es halt nur jede volle Minute - wobei auszutesten wäre, ob es die Simulationsminute ist, oder die echte. Man kann die Sim-Zeit mit der Echtzeit synchronisieren. Das ist also nicht das Problem.
Andy Geschrieben 5. Dezember 2019 Geschrieben 5. Dezember 2019 Bei dem fehlerhaften Bild oben setzt er layout:time. Aber - wie man sieht - mußte da wieder extra was eingerichtet werden, was die Optionen aufbläht (und zum Lesen noch nicht eingerichtet ist). Das gilt für alle anderen über Lua erreichbaren Variablen auch. Was in Lua ein paar Buchstaben sind, damit hat Neo in der 'Grafischen' richtig Arbeit. Deswegen nervt das, wenn die Leute da nicht in irgendeiner Weise entgegenkommend sind, wenn sie mal eine Zeile 'Skript ausführen' einsetzen müßten.
Timba Geschrieben 5. Dezember 2019 Autor Geschrieben 5. Dezember 2019 (bearbeitet) Naja, in diesem Fall geht es ja über Lua auch nicht. Besonders witzig ist ja, dass in der Hilfe zu "layout" als Beispiel so ein Aufruf angeboten wird: Aber gibst du den Befehl genau in der Form ein, verweigert die Kiste ihren Dienst. Da müsste @Neo vielleicht auch noch mal drübergucken. PS: War mein Fehler! Hatte statt Punkt einen Doppelpunkt gesetzt. Bearbeitet 5. Dezember 2019 von Timba Ergänzung
Timba Geschrieben 5. Dezember 2019 Autor Geschrieben 5. Dezember 2019 Oh, verdammt, ich sehe erst jetzt durch mein angehängtes Bild, dass da ja ein Punkt und kein Doppelpunkt ist !!! Ich glaube, ich habe mich wieder mal zu doof angestellt. Schnell noch mal testen.
Andy Geschrieben 5. Dezember 2019 Geschrieben 5. Dezember 2019 da ist egal, weil layout nicht zu anwählbaren Typen in der 'Grafischen' zählt. Es geht nur so (mit 'jaja' als Modulvariable vom Typ Zeit).
Timba Geschrieben 5. Dezember 2019 Autor Geschrieben 5. Dezember 2019 Ok, ich hab jetzt ein Script angehängt mit nem Zweizeiler. Musste ja nicht unbedingt grafisch sein. Mache grade einen Langzeittest. Als ich vorhin nach einigen Stunden nachgesehen habe, ob noch alles läuft, war ein Zug im Bahnhof stehengeblieben und es war nicht zu ermitteln, warum. Ereignisprotokoll reicht nur ne gute halbe Stunde zurück udn da steht's nicht mehr drin. Nun wollte ich nochmal starten und habe dem Zug eine OV spendiert, in der bei jedem Halt die Anlagenzeit hinterlegt wird. Dann weiß ich zwar immer noch nicht, warum der nicht weiterfuhr, aber wenigstens weiß ich dann, wann es passiert ist.
Andy Geschrieben 5. Dezember 2019 Geschrieben 5. Dezember 2019 Im Notfall externe Screen-Videoaufzeichnung mit offenem Ereignisprotokoll - und in Ruhe Kaffee trinken gehen..
Timba Geschrieben 5. Dezember 2019 Autor Geschrieben 5. Dezember 2019 vor 49 Minuten schrieb Andy: externe Screen-Videoaufzeichnung Habe ich nicht. Habe ich vor einiger Zeit mal versucht, scheiterte aber an mangelnder Performance vom Rechner. Bin bereits in Verhandlungen, einen Teil meiner Rente gegen eine neue Kiste zu tauschen. Aber es gibt ja noch ne andere Möglichkeit: Wenn das nochmal passiert, dann speichere ich nicht nur die Einfahrtszeit in den Bahnhof in der OV, sondern mache obendrein noch den minütlichen Abgleich mit der Anlagenzeit. Der Zug braucht ca. 3 Min. für eine Runde, also könnte man einen error programmieren, der die Anlage sofort auf Pause stellt, wenn die Differenz zwischen OV und Anlagenzeit größer als 5 Min. ist. Oder so. Dann hat man den Vorfall auf jeden Fall im EP und kann evtl. Rückschlüsse ziehen.
fzonk Geschrieben 5. Dezember 2019 Geschrieben 5. Dezember 2019 (bearbeitet) Hallo @Timba, was über die grafische EV möglich wäre ist das du die Simulationszeit in einem Textfeld mitlaufen lässt, dies ist wie folg möglich. Wenn dich dann ein bestimmter Zeitpunkt interessiert könntest du das Beschriftung setzten Ereignis einfach über die EV deaktivieren lassen. Damit bleibt der entsprechende Zeitpunkt auf dem Textfeld „eingefroren“ obwohl die Uhr weiterläuft. In meinem Beispiel habe ich als Auslöser einfach den Schalter. Zeit.mbp Gruß Frank Bearbeitet 5. Dezember 2019 von fzonk
Timba Geschrieben 5. Dezember 2019 Autor Geschrieben 5. Dezember 2019 Hi Frank, jepp, das ist auch noch ne Möglichkeit. Gibt eben immer viele Wege, die nach Rom führen. Gruß Timba
Andy Geschrieben 5. Dezember 2019 Geschrieben 5. Dezember 2019 vor 51 Minuten schrieb Timba: Gibt eben immer viele Wege, die nach Rom führen ... oder ins RAM
Neo Geschrieben 5. Dezember 2019 Geschrieben 5. Dezember 2019 Hallo Timba, was möchtest du denn konkret erreichen? Viele Grüße, Neo
Timba Geschrieben 5. Dezember 2019 Autor Geschrieben 5. Dezember 2019 Hallo Neo, danke, ich hab's ja schon erreicht. Wie oben beschrieben habe ich die EV für eine Anlage mit drei Bahnhöfen so weit fertig und machte einen Langzeittest. Dabei lasse ich den Rechner alleine, will ja nicht stundenlang auf den Monitor starren. Nach ca. 3 bis 4 Stunden schaute ich nach und der einzige Fehler war, dass ein Zug in einem Bahnhof stehengeblieben war. Das EP reichte nur eine gute halbe Stunde zurück und darauf war nichts mehr von diesem Zug zu finden. Alle Variablen und Werte, die noch vorhanden waren, ließen keinen Fehler erkennen. Das heißt, weiter probieren. Falls das nochmal vorkommt wollte ich dann wenigstens wissen, ob es gleich zu Anfang oder später oder wann überhaupt passiert. Deswegen wollte ich die Anlagenzeit (=Echtzeit) bei jeder Einfahrt des Zugs in den fraglichen Bahnhof in einer OV speichern. Wäre er stehengeblieben wäre in der OV der Zeitpunkt des Malheurs abzulesen gewesen. Das habe ich mit der Lua-Zeile »vehicle.variables["Ankunft"] = layout.time« erreicht. Zusätzlich hätte ich nun noch einen minütlichen Abgleich einbauen können, der die Anlage anhält, sobald die OV mehr als 4 bis 5 Minuten von der Anlagenzeit abweicht, was ein Beleg dafür gewesen wäre, dass der Zug stehengeblieben ist. Wie auch immer, der Fehler ist nicht mehr aufgetreten. Ich kann nur mutmaßen, dass ein Befehl "verschluckt" wurde. Der Gleiskontakt wurde jedenfalls ausgelöst, sonst hätte der Zug nicht anhalten können und derselbe Gleiskontakt startet mit einer Verzögerung gemäß der eingestellten Haltedauer den Zug wieder. Das ist aus irgendeinem Grund nicht passiert. Gruß Timba
Timba Geschrieben 5. Dezember 2019 Autor Geschrieben 5. Dezember 2019 Nochmal Hallo in die Runde, ein anderes Problem: Prüfen ob ein Zug auf einer Strecke steht kriege ich hin. Mit »layout:getVehiclesOnTrack« erhalte ich auch die Liste aller Fahrzeuge. Aber wie kann ich dem Programm mitteilen, welches Fahrzeug aus der Liste das Triebfahrzeug ist? Die Angabe brauche ich z.B., wenn ich den Fahrzeugverband in Bewegung setzen will. »GetVehicleGroup()« hilft mir auch nicht weiter, weil das Triebfahrzeug mal als erstes und mal als letztes angezeigt wird. Who has Ahnung? Gruß Timba
Neo Geschrieben 6. Dezember 2019 Geschrieben 6. Dezember 2019 Hallo Timba, local vehicles = layout:getVehiclesOnTrack(...) for k, v in pairs(vehicles) do if v:hasEngine() then -- Vehicle ist eine Lok end end jedes Fahrzeug besitzt die Funktion "hasEngine", mit der du prüfen kannst, ob es sich um ein angetriebenes Fahrzeug handelt. Viele Grüße, Neo
Timba Geschrieben 6. Dezember 2019 Autor Geschrieben 6. Dezember 2019 Hallo @Neo, vielen Dank. Auf etwas wie vor 34 Minuten schrieb Neo: jedes Fahrzeug besitzt die Funktion "hasEngine" hatte ich gehofft. Leider war das nirgends dokumentiert (oder ich hab's nicht finden können). Kommt jetzt sofort in meine persönliche Sammlung wichtiger Lua-Methoden und -Funktionen. Gruß Timba
Neo Geschrieben 6. Dezember 2019 Geschrieben 6. Dezember 2019 Hallo Timba, vor 42 Minuten schrieb Timba: Leider war das nirgends dokumentiert (oder ich hab's nicht finden können). alle Lua-Funktionen und Eigenschaften sind direkt im Skript-Editor durch die Autovervollständigung dokumentiert. Drücke Doppelpunkt (:) für eine Liste aller Funktionen, Punkt (.) für eine Liste aller Eigenschaften und STRG+Leertaste für eine Übersicht aller globalen Variablen und Parameter. Viele Grüße, Neo
Tesla Geschrieben 6. Dezember 2019 Geschrieben 6. Dezember 2019 vor 18 Stunden schrieb Timba: Bin bereits in Verhandlungen, einen Teil meiner Rente gegen eine neue Kiste zu tauschen. Oh weh, unsere Finanzminister sind noch penibler als einst Herr Schäuble Gruß, Michael
Timba Geschrieben 6. Dezember 2019 Autor Geschrieben 6. Dezember 2019 vor einer Stunde schrieb Tesla: unsere Finanzminister sind noch penibler als einst Herr Schäuble Ist bei dir vielleicht anders, bei uns bin ich der Finanzminister. Die "Verhandlungen" beschränken sich auf den Austausch zwischen meinem Dealer und mir. Nach dem ersten Angebot wollte ich eine bessere Grafikkarte und einen niedrigeren Preis, er hingegen will das andersrum. Da ist noch ne Menge Überzeugungsarbeit zu leisten. Gruß Timba
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden