Jump to content

attempt to index a nil value (field 'variables')


jloos

Empfohlene Beiträge

Hallo Gemeinde,

ich möchte alle Variablen zentral ablegen. Also Verzögerung, Beschleunigung, und Geschwindigkeit getrennt nach ZugTyp.
ZugTyp ist eine Textvariable in der Lok.
Ich bekomme immer die Fehlermeldung "attempt to index a nil value (field 'variables')". Aber ich sehe den Wald vor Bäumen nicht.
Bitte schaut Euch das angehängte Beispiel mal an.

Danke

Gruß Jürgen

230220_zentrale_Variablenablage.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 23 Minuten schrieb jloos:

ich sehe den Wald vor Bäumen nicht.

Du erkennst den Fehler besser, wenn du eine Zeile in Lua konvertierst.
Dort steht:

vehicle.deceleration = $("Ereignisse").variables["Standard-Einstellungen"].variables[vehicle.variables["ZugTyp"]]["Verzögerung"]

 

Aber was du eigentlich haben willst, ist das hier:

vehicle.deceleration = $("Ereignisse").variables["Standard-Einstellungen"]["ZugTyp"][vehicle.variables["ZugTyp"]]["Verzögerung"]

 

Viele Grüße
Götz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo jloos,

probiere mal bei allen Formsignalen am Gleiskontakt die Richtung B (gelb) abzuwählen und stattdessen die Richtung A (grün) zu aktivieren. :) Dann müsste das Problem behoben sein und das Ereignis 'Signal schaltet' wirf dann auch keinen Fehler mehr aus, weil die Lok dann immer am richtigen Signal angemeldet ist, bevor es auf Hp1 geht. Um sicherzustellen, ob wirklich ein Zug am Signal angemeldet ist, würde ich über eine zusätzliche Bedingung "Variable besitzt den Wert" prüfen, ob die Objektvariable Zug im Signal nicht leer ist und nur dann dem Zug eine Geschwindigkeit zuweisen.

Viele Grüße,

Tim 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Minuten schrieb tim-fischertechnik:

Hallo jloos,

probiere mal bei allen Formsignalen am Gleiskontakt die Richtung B

Mit den Signalen ist alles in Ordnung, es funktionierte ja auch vorher, bevor ich auf die zentrale Datenbank umgestellt habe.

danke

Gruß Jürgen

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 11 Minuten schrieb tim-fischertechnik:

probiere mal bei allen Formsignalen am Gleiskontakt die Richtung B (gelb) abzuwählen und stattdessen die Richtung A (grün) zu aktivieren. :) Dann müsste das Problem behoben sein

Nein Tim, tut mir leid.

Es liegt an der falschen Schachtelung in seinem Tabellenaufruf.

So sähe er in der grafischen EV richtig aus:

1784450558_geschachtelteTabellen.thumb.jpg.5eab12499e599557c7b8bedb804c6585.jpg

 

Aufbau:

Wähle zuerst "Tabelle/Liste"
Dann klick auf das Zahnrad neben "Variable" und wähle anstatt der Variablen wieder "Variable/Liste"
Und wiederhole den Prozess noch ein drittes Mal.

Dann hast du diese Struktur und kannst jeden Index richtig befüllen:

2057047787_geschachtelteTabelle.jpg.663abf6bc2999d17063c9d193917efed.jpg

Bearbeitet von Goetz
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...