liftboy Geschrieben 26. Februar Geschrieben 26. Februar 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 Geschrieben 26. Februar Geschrieben 26. Februar (bearbeitet) 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 Bearbeitet 26. Februar von prinz ID nachgetragen
Hawkeye Geschrieben 26. Februar Geschrieben 26. Februar 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 Geschrieben 26. Februar Autor Geschrieben 26. Februar 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 Geschrieben 26. Februar Geschrieben 26. Februar 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 Geschrieben 26. Februar Autor Geschrieben 26. Februar sorry, @EASY (1) funktioniert, aber (2) nicht meine Schreibweise und Deine Schreibweise sind identisch ! Gruß vom Liftboy
liftboy Geschrieben 26. Februar Autor Geschrieben 26. Februar (bearbeitet) 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 Bearbeitet 27. Februar von liftboy ergänzt
liftboy Geschrieben 26. Februar Autor Geschrieben 26. Februar 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 Geschrieben 27. Februar Geschrieben 27. Februar 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
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