Jump to content

Variable einer Lok im Depot abfragen


Recommended Posts

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

 

 

 

Link to comment
Share on other sites

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 by prinz
ID nachgetragen
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 by liftboy
ergänzt
Link to comment
Share on other sites

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 !

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...