liftboy Posted February 26, 2024 Posted February 26, 2024 Hallo, gibt es keinen Zugriff auf die Variablen im Depot ? if $("Depot").count>0 then local tblFahrzeuge = $("Depot").entries print(tblFahrzeuge[0].name) (1) print(tblFahrzeuge[0].variables.einfahrt) (2) end (1) funktioniert noch (2) funktioniert nicht Ich möchte ein Fzg nur aus dem Depot holen, wenn seine vorgesehene Fahrstrasse frei ist Grüße vom Liftboy
prinz Posted February 26, 2024 Posted February 26, 2024 (edited) Hallo @liftboy , Es gibt keinen Zugriff auf die Variablen von Fahrzeugen im Depot. Vielleicht hilft Dir meine Beispielanlage "Depot mit Bedienpanel" (ID 26881CED-3751-4420-9C3C-2E228BBA6801 ) weiter. Dort werden in einer Liste die Zugnamen und der Rang gespeichert. Es wäre einfach, für einen Zugeintrag eine weitere Informationen in die Liste aufzunehmen. Siehe besonders die Ereignisse "Zug eintragen" und "Zug austragen". Schau's Dir an und wenn Du Fragen hast ... Viele Grüße, Wolfgang Edited February 26, 2024 by prinz ID nachgetragen
Hawkeye Posted February 26, 2024 Posted February 26, 2024 Hallo @liftboy, ergänzend zum Beitrag von @prinz. vor 33 Minuten schrieb liftboy: print(tblFahrzeuge[0].variables.einfahrt) Diese Anweisung um auf Variablen zuzugreifen, müsste bei Fahrzeugen, die sich nicht in einem Depot befinden, lauten xxx.variables[“einfahrt“] (Bei Text oder Zahlenvariablen) Und wenn die Variable „Einfahrt“ ein Objekt oder eine Fahrstraße ist, dann xxx.variables[“einfahrt“].name Und die Variable darf keine Listen oder Tabelle sein, sonst must du noch den Listenplatz angeben. VG, Hawkeye
liftboy Posted February 26, 2024 Author Posted February 26, 2024 danke @prinz hallo @Hawkeye sorry die Lua Syntax läßt schon folgende im Ergebnis immer gleiche Schreibweisen zu: test = { test1= {test2=10} } Lok = {name="Köf",variables={name="Köf",test=true}} print(Lok.name) print(Lok.variables.name) print(Lok.variables.test) print(test.test1.test2) print(test["test1"].test2) print(test.test1["test2"]) print(test["test1"]["test2"]) es wird Köf Köf true 10 10 10 10 ausgegeben Gruß vom Liftboy
EASY Posted February 26, 2024 Posted February 26, 2024 Hallo @liftboy if $("Depot").count>0 then local tblFahrzeuge = $("Depot").entries print(tblFahrzeuge[0].name) -- (1) print(tblFahrzeuge[0].variables.einfahrt) -- (2) end (1) geht nicht, weil Dein Zugriff nicht stimmt. local tblFahrzeuge = $("Depot").entries liefert keine Liste zurück! sondern .entries ist ein Direktzugriff auf den Eintrag. if $("Depot").count>0 then print($("Depot").entries[0].name) -- (1) end ... dann wird der Name auch ausgegeben. Gruß EASY
liftboy Posted February 26, 2024 Author Posted February 26, 2024 sorry, @EASY (1) funktioniert, aber (2) nicht meine Schreibweise und Deine Schreibweise sind identisch ! Gruß vom Liftboy
liftboy Posted February 26, 2024 Author Posted February 26, 2024 (edited) wahrscheinlich ist der Depot-Eintrag serialisiert damit ist das Objekt komprimiert und auch leicht transportierbar, und aus dem Umfeld verschwunden aber das müßte @Neo beantworten Edited February 27, 2024 by liftboy ergänzt
liftboy Posted February 26, 2024 Author Posted February 26, 2024 vor 2 Stunden schrieb prinz: Hallo liftboy , Es gibt keinen Zugriff auf die Variablen von Fahrzeugen im Depot. Vielleicht hilft Dir meine Beispielanlage "Depot mit Bedienpanel" (ID 26881CED-3751-4420-9C3C-2E228BBA6801 ) weiter. Dort werden in einer Liste die Zugnamen und der Rang gespeichert. Es wäre einfach, für einen Zugeintrag eine weitere Informationen in die Liste aufzunehmen. Siehe besonders die Ereignisse "Zug eintragen" und "Zug austragen". Schau's Dir an und wenn Du Fragen hast ... Viele Grüße, Wolfgang Hallo @prinz Deine Anlage ist total interessant, da finde ich bestimmt Anregungen, danke !
Neo Posted February 27, 2024 Posted February 27, 2024 Hallo liftboy, aktuell unterstützt ein Depot-Eintrag nicht den Zugriff auf die Variablen. Das hat etwas damit zu tun, dass die Objekte in den Depots keine echten Objektinstanzen mehr sind. Es wäre zwar möglich, einen Zugriff auf die Variablen zu ermöglichen, allerdings wäre das dann auf Lua beschränkt. Das Ereignis "Variable wurde geändert" funktioniert damit nicht, und auch kann eine solche Variable nicht per grafischer EV adressiert werden. Weil das alles nicht richtig konsistent ist, gibt es aktuell diesen Variablenzugriff noch nicht. Viele Grüße, Neo
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now